Microsoft Commerce Server 2002 Standard Edition

  • Commerce Server のシステム
  • Commerce Server のチュートリアル
  • Commerce Server ドキュメント アップデート
  • Microsoft 製品サポート サービス
  • Commerce Server サポート
  • Commerce Server 2002 Partners
  • Commerce Server Solution Sites Web サイト
  • Microsoft セキュリティ Web サイト
  • Microsoft アクセシビリティ Web サイト
  • Commerce Server Web サイト
  • フィードバック
Copyright © 1996–2002 Microsoft Corporation.
All rights reserved.


ファースト ステップ ガイド

Microsoft Commerce Server 2002 には、サイト開発者、システム管理者、およびビジネス マネージャが Web 用の Commerce アプリケーションを開発、配置、および管理するためのツール群が用意されています。

次の表を使うと、Commerce Server 2002 ヘルプの重要トピックに簡単にアクセスできます。

参照内容 | 参照先
Commerce Server のインストール、アップグレード、および配置 | Commerce Server 2002 のインストール Commerce Server 2000 からのアップグレード サイトをアンパックする サイトの配置 カタログ コンテンツを複製する 高い可用性を維持する
Commerce Server のアーキテクチャ | Commerce Server のアーキテクチャ Business Desk Architecture Commerce Server .NET Application Framework Pipeline Basics サイト アーキテクチャの計画
新しいサイトの計画およびデザイン | ソリューション サイト Commerce Server のインストール計画 インターナショナル トランザクション
アプリケーションの開発 | デベロッパー ツール Software Development Kit Programmer's Reference Commerce Server .NET Application Framework International Retail Site Developing an International Site Integrating with BizTalk Server Integrating Custom Resources Building Business Desk Modules アプリケーションのトラブルシューティング
セキュリティ | セキュリティに関するヒント集 セキュリティに関する重要事項 セキュリティで保護されたサイトを開発する セキュリティで保護されたサイトの配置 データベースにセキュリティを設定する
認証 | 認証に関するヒント集 Passport と統合する Exchange 2000 Outlook Web Access (OWA) の基本認証 Core Objects Code to Retrieve Login Credentials Retail ソリューション サイト用の Login.asp のコード Supplier ソリューション サイト用の Login.asp のコード AuthManager Object
サイト、アプリケーション、およびリソースの管理 | システム管理者向けのツール Commerce サイトの管理 Commerce アプリケーションと Web サーバーの管理 Commerce リソースの管理 DTS タスクのスクリプト
データベースの管理 | データベース 管理データベースの管理 プロファイル リソースでデータ ソースを管理する
商品カタログ システム | 商品カタログ システム カタログの概念 カタログに関するヒント集 XML カタログ ファイルをインポートする カタログ定義を作成する 基本カタログを作成する 基本カタログの商品の価格を設定する Product Catalog Objects Catalog XML Structures Integrating a Third-Party Product Catalog カタログ コンテンツを複製する
プロファイル システム | プロファイル システム プロファイルの概念 Profiling System Objects Profiles Schema Profiling System and OLE DB Provider Profile XML Structures プロファイル リソースでデータ ソースを管理する プロファイル リソースでプロファイル定義を管理する 2 つのデータ ソースを持つプロファイル定義を作成する ビジネス デスク プロファイル
ビジネス分析システム | ビジネス分析システム Analysis/Reporting Schema Analysis/Reporting XML Structures ビジネス デスク分析
データ ウェアハウス | データ ウェアハウス データ ウェアハウスの概念 Data Warehouse, Analysis, and OLE DB Provider 複数のサイトと 1 つのデータ ウェアハウス データ ウェアハウスのインポート ウィザード データ ウェアハウスにデータをインポートする DTS タスクのスクリプト
対象化システム | 対象化システム 対象化とパーソナライズの概念 ビジネス デスク キャンペーン ExpressionBuilder Expression XML Structures Targeting Objects Extending the Content Selection Framework
キャンペーン | キャンペーン キャンペーンの概念 マーケティング キャンペーンを作成する 広告を作成する
割引 | 割引の概念 割引を作成する 割引の例
ダイレクト メール | Commerce Server ダイレクト メーラー ダイレクト メールの概念 ダイレクト メーラーの実行 ダイレクト メールを作成する メーリング リストを作成する Direct Mailer Pipeline
注文 | 注文管理の概念 注文を検索する、表示する、並べ替える
ビジネス プロセス パイプライン | パイプラインの概念 Working with Pipelines Building Pipeline Components Pipeline Objects Pipeline Component Reference


Commerce Server 2002 の紹介

Commerce Server は、電子商取引の包括的なプラットフォームであり、各種のユーザー (開発者、システム管理者、ビジネス マネージャ) のための機能を提供しています。また、Commerce Server では 3 つのエディションが利用でき、それぞれのエディションには異なる機能や拡張性のオプションが用意されています。

Commerce Server を使うと、拡張性が高く可用性の高い B2C サイトおよび B2B サイトのアプリケーションを構築できます。

Commerce Server のコンポーネント

Commerce Server のコンポーネントは、5 つのシステムに分類されます。これらのシステムによって、効果的なオンライン ビジネスの構築に必要な、電子商取引の重要なインフラストラクチャが提供されます。

  • 商品カタログ システム 数 100 万点の商品を管理します。また、多言語に対応可能なカタログや複数通貨に対応可能なカタログを作成します。さらに、ユーザーが必要な商品やサービスを容易に検索できます。
  • プロファイル システム 顧客や取引先のプロファイルを作成して管理します。これによって、サイトの利用を認証し、詳細な対象化とパーソナライズを行います。
  • ビジネス分析システム Commerce Server のレポートを実行するか、または独自のカスタム レポートを作成して、サイトの効果を分析します。
  • 対象化システム ワン ツー ワン マーケティングおよび対象化した商品取引により、買い物環境をパーソナライズします。これによって、顧客の注文の便利さやコンテンツの適切さが向上します。
  • ビジネス処理パイプライン システム 注文の処理や商品取引の処理を、最新の時点における要件に合わせて調整します。これらの処理は、ビジネスの拡大や変更に伴って、時間の経過と共に容易に変更することができます。

Commerce Server のツール

Commerce Server サイトの開発および管理をするには、次のツールを使います。

  • Commerce Server .NET Application Framework .NET Framework の新機能によって、.NET ベースの Commerce Server アプリケーションを作成するためのフレームワークです。Commerce Server .NET Application Framework では、Commerce Server プラットフォームに対して、新しい 2つの層が用意されています。Base Class Library および Common Language Runtime Interop Layer です。これらの層により、ASP.NET コードで Commerce Server のサービスとシステムを実行できるようになります。Visual Studio .NET を使って、Commerce Server の機能やツールにアクセスして Commerce Server アプリケーションを構築できます。
  • ソリューション サイト Commerce Server の機能を総合的に提供する開発用の参考サイトです。ソリューション サイトには、多言語対応、複数通貨対応、商品取引、カタログ表示、顧客サービス、および受注と受注確認の機能が用意されています。

    ソリューション サイトは包括的な電子商取引機能を備えているため、まず、これらの機能を基に独自の Web サイトを開発し、準備が整ってから、自社のビジネスに固有の機能を追加できます。

  • Commerce Server サイト パッケージャ サイトとそのアプリケーションおよびリソースを 1 つのファイルにパッケージ化し、そのファイルを他の環境に移動する配置ツールです。Commerce Server サイト (IIS メタベースの設定を含む)、ファイル システム、管理データベースからのリソース、および SQL Server データベースを 1 つのファイルにパッケージ化するときに使います。また、パッケージ化された Commerce Server サイト (またはその一部分) を他のコンピュータにアンパックするときにも使います。
  • Commerce Server ビジネス デスク ビジネス マネージャが Web サイトの管理および分析に使う、拡張性のあるツールです。たとえば、カタログの価格情報を更新したり、特定のユーザーを新しい広告の対象に指定するときに使います。また、レポートを実行して、サイトに加えた変更がサイトの生産性に与える影響を測定するときにも使用できます。

    ビジネス デスク アプリケーションは、ソリューション サイト パッケージに含まれています。ビジネス デスク アプリケーションをインストールするには、Commerce Server をインストールした後に、ソリューション サイトをアンパックする必要があります。

関連項目

Commerce Server 2002 のエディション

Commerce Server の機能の概要

Commerce Server のアーキテクチャ

Commerce Server の概念

International Retail Site


Commerce Server の機能の概要

Commerce Server 2002 の各機能は連携して、商品取引、カタログ表示、顧客サービス、および受注の管理と確認を行います。

次の表は、Commerce Server の機能の概要を示しています。

Commerce Server の機能 説明
商品カタログ システム
  • 販売する商品のカタログの作成と更新を行います。
  • 多言語に対応可能なカタログを作成します。
  • 複数通貨に対応可能なカタログを作成します。
  • 他のデータ ソースから商品のカタログを XML 形式または CSV 形式でインポートします。
  • XML 形式でカタログをエクスポートします。
  • 特定の日付以降に発生したカタログの変更内容をエクスポートします。
  • ユーザーが必要なものを簡単に見つけることができるように、次の統合検索機能を追加します。
    • カテゴリ検索商品カテゴリ別に参照します。
    • フリーテキスト検索名前またはプロパティの全体または一部によって商品を検索します。
    • プロパティによる検索価格が 1,000 円以下の商品など、プロパティ値によって商品を検索します。
    • 条件指定検索商品が見つかるまで検索条件を設定し直します。
  • ユーザーのグループごとに特別価格の仮想カタログを構築します。
  • 商品に割引を適用します。
  • Commerce Server のレポートを実行し、売れ行きの良い商品を特定します。
  • Microsoft BizTalk Server 2000 を使い、カタログ データをベンダとやりとりします。
プロファイル システム
  • 何百万ものユーザーと組織を管理します。
  • ユーザーが各自のプロファイル情報を管理したり、注文の状況を調べることができます。
  • ユーザーや組織など、あらゆるビジネス関連要素のプロファイルを構築します。
  • サイトを訪問するユーザーについて収集する情報を決定します。
  • 仮想カタログなど、特定のユーザーに表示する情報を決定します。
  • コンテンツをユーザーに合わせるために対象式を作成する。
  • 特定のユーザー グループを対象とした広告、割引、ダイレクト メールの各キャンペーンを作成します。
ビジネス分析システム
  • 各種データ ソースから収集した大量のサイト利用状況データを Commerce Server データ ウェアハウスにインポートし、そのデータを管理します。
  • Commerce Server のレポートを実行して、サイトの効果を分析します。
対象化システム
  • 対象化した商品取引でショッピング体験をパーソナライズします。
  • ユーザーとコンテキストに応じて最適なコンテンツを配信します。
  • パーソナライズされ、対象化された割引、ダイレクト メール、および広告キャンペーンを作成および管理します。
  • 広告や割引の対象を特定のプロファイルを持つユーザーに設定します。たとえば、週に 3 回サイトを訪問し、商品を 3 つ以上購入したことのある女性ユーザーを対象に広告を配信できます。
  • 同じ業種で競合する複数の顧客向けにキャンペーンを作成し、スケジュールを設定します。競合する広告が同じページに表示されることは決してありません。
  • 広告主が希望する広告要求数、またはクリック数に応じて広告料を請求します。
  • 広告主が希望する広告表示ページに応じて広告料を請求します。
ビジネス処理パイプライン システム
  • 注文、対象化、商品取引の各プロセスをカスタマイズします。
  • ビジネス プロセスの各ステージを定義し、それぞれをリンクします。

関連項目

Commerce Server 2002 のエディション

Commerce Server の各エディションにおける機能の比較

Commerce Server のアーキテクチャ

Commerce Server の概念

Commerce Server .NET Application Framework

International Retail Site


Commerce Server 2002 のエディション

現在利用可能な Microsoft Commerce Server 2002 のエディションには、次のものがあります。

  • Commerce Server 2002 Standard Edition

    Standard Edition は、中規模の Web サイトを開発し、管理するためのものです。Standard Edition では、次の規模まで拡張できます。

    • 2 基のプロセッサ。
    • 1 アプリケーションあたり 2 つの Web サーバー。1 台の IIS Web サーバーで、最大 10 のアプリケーションをサポートできます。
    • 各サイトに 2 つの Commerce Server アプリケーション。ビジネス デスク アプリケーション 1 つと非ビジネス デスク アプリケーション 1 つ。たとえば、Retail ソリューション サイト アプリケーションまたは Commerce 以外のアプリケーションをインストールし、さらにビジネス デスク アプリケーションをインストールすることができます。
    • 1 データ ウェアハウスあたり 10 サイト。
    • 1 プロファイル データベースあたり 10 サイト。

    Standard Edition には、Web の利用状況や商品別売り上げのデータ指標を分析する基本的な分析機能が用意されています。

  • Commerce Server 2002 Enterprise Edition

    Enterprise Edition は、大規模な (トラフィック量の多い) Web サイトを開発し、管理するためのものです。Enterprise Edition では、次の規模まで拡張できます。

    • 32 基のプロセッサ。
    • ハードウェアがサポートする数だけWeb サーバーと Commerce Server アプリケーションを追加できます。1 台の IIS Web サーバーで、最大 10 のアプリケーションをサポートできます。アプリケーションは、1 つのサイトに含めるか、複数のサイトに分散できます。
    • 1 データ ウェアハウスあたり 10 サイト。
    • 1 プロファイル データベースあたり 10 サイト。

    また、Enterprise Edition では、詳細な分析が必要とされるサイトもサポートされます。ユーザー プロファイル データやマーケティング キャンペーンを分析し、その分析結果によってサイトのコンテンツの対象を指定することができます。詳細な分析機能を使うと、サイトを訪問するユーザーにリアルタイムで推奨商品を提示することができます。

  • Commerce Server 2002 Developer Edition

    Developer Edition は、多言語に対応可能な、大規模で可用性の高いサイトを開発するための商取引ソリューションです。Developer Edition には、Enterprise Edition と同じ機能が含まれています。ただし、運用環境で使用することはできません。また、4 基のプロセッサの制限があります。

    Developer Edition には、開発者向けの詳細なマニュアルと豊富なサンプルが用意されています。

Standard Edition と Enterprise Edition の組み合わせを使用する

Commerce Server の Standard Edition、Enterprise Edition、および Developer Edition を使用する環境を設定することができます。この構成は、最初に Developer Edition を購入し、次に Standard Edition を購入した後で、Enterprise Edition で提供されている機能を追加する場合などに役立ちます。

次に、サポートされている配置のシナリオを示します。シナリオでは、Commerce Server の異なるエディションが複数使われています。その他の構成はサポートされていません。

  • 1 つの Commerce Server アプリケーションに、Standard Edition をインストールした 1 台か 2 台のWeb サーバーを使う。データ ウェアハウスに Standard Edition を使う。
  • 1 つの Commerce Server アプリケーションに、Standard Edition をインストールした 1 台か 2 台のWeb サーバーを使う。データ ウェアハウスに Enterprise Edition を使う。
  • Enterprise Edition をインストールしたWeb サーバーを使う。データ ウェアハウス に Enterprise Edition を使う。
  • Developer Edition をインストールした Web サーバーを使う。データ ウェアハウスに Standard Edition と Enterprise Edition を使う。
  • Developer Edition をインストールした Web サーバーを使う。データ ウェアハウスに Developer Edition を使う。この構成は、運用環境では使用できません。

Standard Edition と Enterprise Edition のサイトは、同じデータ ウェアハウスを共有できません。

Commerce Server 2002 Standard Edition へのアップグレード

Commerce Server 2000 から Commerce Server 2002 Standard Edition へのアップグレードについては、「Upgrading from a Previous Version」を参照してください。

Commerce Server 2002 Standard Edition には、インストール環境をアップグレードするための各種のツールが用意されています。アップグレードするリソースやコンポーネントに応じて、必要なツールを使用します。

関連項目

サイト間でリソースを共有する

Commerce Server の各エディションにおける機能の比較


Commerce Server の各エディションにおける機能の比較

ここでは、Microsoft Commerce Server 2000、Commerce Server 2002 Enterprise Edition、および Commerce Server 2002 Standard Edition のそれぞれでサポートされている機能の要約を示します。Commerce Server 2000 に関する情報は、比較のために提供します。

注

  • Commerce Server 2002 Developer Edition には、Enterprise Edition と同じ機能が含まれています。ただし、Developer Edition は運用環境では使用することはできません。また、4 基のプロセッサの制限があります。

Commerce Server 2002 における .NET 互換の機能については、「Commerce Server .NET Application Framework」を参照してください。International Retail サイトについては、「International Retail Site」を参照してください。

ここでは、次の機能について説明します。

  • 高可用性機能
  • 認証機能
  • 管理機能
  • ビジネス デスク機能
  • ビジネス分析機能
  • データ ウェアハウス機能
  • 商品カタログ システム機能
  • プロファイル システム機能
  • 対象化システム機能

高可用性機能

次の表は、Commerce Server の各エディションにおける高可用性機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
高可用性に優れている。 | あり | あり | なし
ダイレクト メーラーが Windows クラスタリングのクラスタ対応である。 | あり | あり | なし
ダイレクト メーラーがすべてのクラスタ ノードのフェールオーバーをサポートしている。 | あり | あり | なし
ダイレクト メーラーを Windows 2000 Advanced Server の 2 つのノードにインストールできる。 | あり | あり | なし
ダイレクト メーラーを Windows 2000 Datacenter Server の 2 ～ 4 つのノードにインストールできる | あり | あり | なし
従属する Windows サービス、アプリケーション サーバー、および基になるデータ ストアのフェールオーバーを、ランタイム コンポーネントで処理できる。 | あり | あり | なし
高可用性のためのヒントとして、オフラインで注文を処理する方法を示す注文キューのサンプルが SDK に用意されている。 | あり | あり | なし

認証機能

次の表は、Commerce Server の各エディションにおける認証機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
Exchange 2000 Outlook Web Access (OWA) の基本認証 | あり | あり | なし
古いプロファイルの cookie の暗号化解除 | あり | あり | なし
暗号化キーのローリング | あり | あり | なし
訪問履歴のデータ ウェアハウスへの保存 | あり | あり | あり
cookie を使わない買い物 | あり | あり | あり
アクセス制御リスト (ACL) を使ったきめ細かなアクセス制御の提供 | あり | あり | あり
Windows 資格情報を取得するカスタム ログイン ページのサポート | あり | あり | あり
URL の大文字小文字の訂正 | あり | あり | あり
Web ファーム環境 | あり | あり | あり
ASP 組み込みオブジェクト | あり | あり | あり
ユーザー プロファイルの格納場所として Active Directory、SQL Server、またはその両方を選択可能 | あり | あり | あり
アクセス レベルの制御 | あり | あり | あり
ユーザーのセキュリティ資格情報の使用 | あり | あり | あり

管理機能

次の表は、Commerce Server の各エディションにおける管理機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
リモート サーバーへのサイトのアンパックをサポートする。 | あり | あり | なし
Web サイトの管理データベースにホスト ヘッダーおよび複数の ID を格納可能にする。 | あり | あり | なし
Content Management Server 2001 以降のエディションと統合する。 | あり | あり | なし
BizTalk Server 2000 以降のエディションと統合する。 | あり | あり | あり

ビジネス デスク機能

次の表は、Commerce Server の各エディションにおけるビジネス デスク機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
アクセシビリティに対応したハイコントラストなど、各種のテーマのスタイルシートを作成する。 | あり | あり | なし
ビジネス デスク モジュール単位でアクセスを制御する。 | あり | あり | あり
ビジネス デスク タスクにセキュリティを設定する。 | あり | あり | なし
カタログを管理するためにセキュリティを設定する。 | あり | あり | なし
カタログ プロパティを編集するためにセキュリティを設定する。 | あり | あり | なし
カタログ カテゴリを管理するためにセキュリティを設定する。 | あり | あり | なし
プロファイル プロパティを管理するためにセキュリティを設定する。 | あり | あり | なし

ビジネス分析機能

次の表は、Commerce Server の各エディションにおけるビジネス分析機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
スタンドアロンとしてビジネス分析機能をインストールする。 | あり | あり | なし
データ ウェアハウスのインポート ウィザード。 | あり | あり | なし
OLAP キューブにリモートでアクセスする (SQL Server 2000 Enterprise Edition が必要)。 | あり | あり | なし
新しいレポートの作成がサポートされている。 | あり (ビジネス デスクを使う) | なし | あり
ユーザー プロファイル レポートを作成する。 | あり | なし | あり
マーケティング キャンペーン レポートを作成する。 | あり | なし | あり
リアルタイムの推奨がサポートされている。 | あり | なし | あり
レポートをリストとしてプロファイル システムや対象化システムにエクスポートする。 | あり | なし | あり
発行済みのレポートをグループ化する | あり | あり | なし
ドリルスルー レポートを作成する。 | あり | あり | なし
ドメイン間のレポートを作成する。 | あり | あり | なし
予測モデルを使って利用状況を分析する。 | あり | なし | あり
セグメント モデルを使ってユーザーのセグメントを分析する。 | あり | なし | あり
アフィニティ リストを作成する。 | あり | なし | なし
セグメント モデルをリストとしてエクスポートする。 | あり | なし | あり

データ ウェアハウス機能

次の表は、Commerce Server の各エディションにおけるデータ ウェアハウス機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
データ ウェアハウス スキーマ図を使用する。 | あり | なし | あり
ログファイルを再開するためのパラメータを設定する。 | あり | あり | なし
すべての DTS タスクを対象にして、接続を再試行するためのパラメータを設定する。 | あり | あり | なし
インポートされたログを定期的に削除する。 | あり | あり | なし
データ ウェアハウスのすべてのサイトに対して DTS タスクを実行する (関連する DTS タスクの場合)。 | あり | あり | なし
データ ウェアハウスの単一のサイトに対して DTS タスクを実行する。 | あり | あり | あり
予測モデルおよびセグメント モデルを自動的に再構築する。 | あり | なし | なし
DTS タスクのスクリプトをサポートする。 | あり | なし | なし
DTS パッケージのスケジュールを設定する。 | あり | あり | あり
インポートの進行状況に関するデータを表示する。 | あり | あり | なし
ログ ファイル マスクを使用する。 | あり | あり | なし
cookie を使わないユーザー データをインポートする。 | あり | あり | なし
Unicode 文字をインポートする。 | あり | あり | なし
UTF-8 および Unicode のログ ファイルをインポートする。 | あり | あり | なし

商品カタログ システム機能

次の表は、Commerce Server の各エディションにおける商品カタログ システム機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
* カタログ数を 10,000 に拡張する (テスト済みの制限)。 | あり | あり | なし
* 各カタログの商品数を 500 万に拡張する (テスト済みの制限)。 | あり | あり | なし
複数通貨に対応可能な価格を設定する。 | あり | あり | なし
多言語に対応可能なカタログ。 | あり | あり | なし
仮想カタログ。 | あり | あり | なし
カスタム カタログ。 | なし (仮想カタログに移行) | なし (仮想カタログに移行) | あり
カタログ セット。 | あり | あり | あり
集合カタログ (複数のカタログのコンテンツを集めたもの)。 | あり | あり | なし
XML カタログ ファイルのコンテンツを、インポートせずに評価する。 | あり | あり | なし
カタログ項目の削除内容をインポートおよびエクスポートする。 | あり | あり | なし
特定の日付以降に発生したカタログの変更内容をエクスポートする。 | あり | あり | なし
異なるカタログの商品間の関連付けを作成する。 | あり | あり | なし
Microsoft BizTalk Server 2000 以降を使い、カタログ データをベンダとやりとりする。 | あり | あり | あり
ユーザー定義のカタログ属性やプロパティ属性を追加する。 | あり | あり | なし
カテゴリ内を検索する。 | あり | あり | なし
商品に SQL テキスト データ型を設定できる (8 KB/行の制限なし)。 | あり | あり | なし
外部テーブルと結合したクエリを実行できる。 | あり | あり | なし

10,000 のカタログにそれぞれ 500 万点の商品を組み合わせた構成でのテストは実施していません。

プロファイル システム機能

次の表は、Commerce Server の各エディションにおけるプロファイル システム機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
Active Directory の一意のユーザー数を 1,000 万人に拡張する。 | あり | あり | なし
SQL Server の一意のユーザー数を 2,500 万人に拡張する。 | あり | あり | なし
プロファイル定義デザインのインターフェイス。 | あり | あり | あり
プロファイルを編集する。 | あり | あり | あり (ユーザー プロファイルおよび組織プロファイルのみ)
サイト用語を編集する。 | あり | あり | あり
ビジネス デスクを使って Active Directory グループを管理する。 | あり | あり | なし
複数の値を持つプロファイル。 | あり | あり | なし
複数の値を持つサイト用語。 | あり | あり | なし
埋め込みプロファイルを編集する。 | あり | あり | なし
汎用プロファイルを編集する。 | あり | あり | なし
プロファイル スキーマをインポートおよびエクスポートする。 | あり | あり | なし

対象化システム機能

次の表は、Commerce Server の各エディションにおける対象化システム機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
多言語に対応可能な広告や割引を作成する。 | あり | あり | なし
同じ項目や注文に複数の割引を適用し、割引の対象となる注文を制御する。 | あり | あり | なし
同じ項目や注文に金額割引とパーセント割引を適用し、割引の対象となる注文を制御する。 | あり | あり | なし
項目が割引可能かどうかを示すフラグを設定する。 | あり | あり | なし
SQL Server がインストールされていないサーバーにダイレクト メーラーを配置できる。 | あり | あり | なし
クラスタ化された可用性の高いリソースとしてダイレクト メーラーを配置し、Windows クラスタリングの機能を活用できる。 | あり | あり | なし
ダイレクト メーラーで一時的なエラーを処理できる。 | あり | あり | なし
SQL Server でダイレクト メーラーの統合認証を利用できる。 | あり | あり | なし

関連項目

Commerce Server .NET Application Framework

International Retail Site


デベロッパー ツール

次の Commerce Server 2002 開発ツールは、サイト開発者が短期間でサイトの構築とカスタマイズを行い、顧客に納品できるようにするためのツールです。

  • ソリューション サイト
  • International Retail サイト : .NET ベースのサイト
  • Commerce Server .NET Application Framework
  • Commerce Server デベロッパー ポータル
  • Commerce Server SDK
  • 開発者向けのドキュメント
  • Commerce Server 2000 リソース キット
  • ホワイト ペーパー
  • サポート技術情報の記事

ソリューション サイト

ソリューション サイトは、Commerce Server の機能を総合的に提供する開発用の参考サイトです。商品取引、カタログ表示、顧客サービス、受注と受注確認が用意されています。

ソリューション サイトは包括的な電子商取引機能を備えているため、まず、これらの機能を基に独自の Web サイトを開発し、準備が整ってから、自社のビジネスに固有の機能を追加できます。

また、ソリューション サイトには、ビジネス デスク アプリケーションも用意されています。ソリューション サイトをアンパックした場合のみ、ビジネス デスク アプリケーションを起動できます。

Commerce Server 2002 には、次のソリューション サイトが用意されています。

  • Blank サイト カスタム サイトを構築する基礎として使用できるソリューション サイトです。Commerce Server 2002 のリソースがすべて含まれています。SDK は、Commerce Server 2002 と共にインストールされます。
  • Retail サイト B2C サイトを構築する基礎として使用できるソリューション サイトです。パーソナライズ、商品取引、カタログ検索、顧客サービス、ビジネス分析などの B2C 機能が含まれています。ここに含まれる顧客サービスでは、ユーザーが各自のプロファイル情報を管理したり、注文状況を確認することができます。Retail サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。
  • Supplier サイト B2B サイトを構築する基礎として使用できるソリューション サイトです。これは、Microsoft Windows 2000 の Active Directory を使い、安全なユーザー認証とグループのアクセス許可を提供します。注文書と申請の処理、XML ベースのカタログの更新と交換、取引先のセルフサービスを備えています。このサイトに含まれる取引先サービスを使うと、代理管理者 (サプライヤ企業の連絡先) がサプライヤ企業の組織情報、注文書、および注文状況を管理できます。Supplier サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。

International Retail サイト : .NET ベースのサイト

International Retail サイトは、多言語および複数通貨に対応可能な B2C および B2B サイトの技術を紹介するものです。

International Retail サイトは、ASP.NET とマネージド コードを使って構築された Commerce Server 2002 サイトをデモンストレーションします。このサイトの機能の多くは、コンパイル済みのアセンブリ、およびアセンブリのクラスから継承されるコントロールに含まれています。

International Retail サイトは、多言語に対応可能なカタログをサポートしており、.NET CultureInfo データを使ってサイトがテキストと通貨を表示する方法の制御をデモンストレーションします。サイトのアーキテクチャは、複数のカルチャを管理するために設計されています。たとえば、サイトでフランス語のコンテンツとカナダ フランス語のコンテンツを区別することができます。同じフランス語コンテンツ変換を使う一方、それぞれ別の通貨、通貨記号、および区切り記号を使うことができます。

International Retail サイトは、Microsoft Commerce Server 2002\SDK フォルダにあります。セットアップの方法については、「Deploying the International Retail Site」を参照してください。

Commerce Server .NET アプリケーション フレームワーク

Commerce Server .NET Application Framework を使うと、.NET Framework の新機能によって、.NET ベースの Commerce Server アプリケーションを作成できます。Commerce Server .NET Application Framework では、Commerce Server プラットフォームに対して、新しい 2つの層が用意されています。Base Class Library および Common Language Runtime Interop Layer です。これらの層により、ASP.NET コードで Commerce Server のサービスとシステムを実行できるようになります。Visual Studio .NET を使って、Commerce Server の機能やツールにアクセスして Commerce Server アプリケーションを構築できます。

Software Development Kit (SDK) には、.NET Application Framework で使用できる次の 4 つのサイトレットがあります。

  • 広告サイトレット (Advertising Sitelet)
  • カタログ サイトレット (Catalog Sitelet)
  • プロファイル サイトレット (Profile Sitelet)
  • 注文サイトレット (Order Sitelet)

.NET Framework サイトレットは、Program Files\Microsoft Commerce Server 2002\SDK\Samples\WebForms にあります。また、SDK には、標準の COM アプリケーションで使用できる次の 7 つのサイトレットがあります。

  • 広告サイトレット (Advertising Sitelet)
  • オークション サイトレット (Auction Sitelet)
  • カタログ サイトレット (Catalog Sitelet)
  • 割引サイトレット (Discount Sitelet)
  • 注文サイトレット (Order Sitelet)
  • パスポート サイトレット (Passport Sitelet)
  • プロファイル サイトレット (Profile Sitelet)

COM サイトレットは、Program Files\Microsoft Commerce Server 2002\SDK\Samples\Sitelets にあります。詳細については、「Commerce Server .NET Application Framework」を参照してください。

Commerce Server デベロッパー ポータル

デベロッパー ポータルは、Visual Studio .NET と統合された Commerce Server ツール群です。デベロッパーポータルには、プロジェクト作成ウィザードが用意されています。このウィザードを使用すると、開発者は Visual Studio .NET 環境から Commerce Server プロジェクトの作成が、スキーマ設計者は Visual Studio .NET 環境で運用されるプロファイリング システムおよび商品カタログ システムの作成が可能になります。

詳細については、「Using the Developer Portal」を参照してください。

Commerce Server SDK

Commerce Server SDK には、Commerce Server 2002 で電子商取引ソリューションを開発するためのヘッダー ファイル、サンプル コード、サイトレット、およびツールがあります。

ヘッダー ファイル

サンプル コード

サイトレット

ツール

ヘッダー ファイル

SDK の Include フォルダには、Commerce Server 2002 が提供するサービスを Microsoft Visual C++ で使用、拡張するために必要なヘッダー ファイルとインターフェイス記述言語 (IDL) ファイルが含まれています。

サンプル コード

次に、SDK に用意されているサンプル コードの一部を紹介します。

  • 管理サンプル (Administration Samples) Commerce Server 2002 リソースの作成、Commerce Server マネージャの統合と拡張、Commerce Server サイト パッケージャのカスタム コンポーネントの構築、および Commerce Server ビジネス デスクのカスタム モジュールの構築に利用できるサンプル コードです。
  • ビジネス デスク モジュール フレームワーク (Business Desk Module Framework) 新しいビジネス デスク モジュールの開発に利用できる実用コード ベースです。このコード ベースは、XML データ アイランドの使い方を示し、技術者以外の人が Commerce Server サイトを管理できるように、充実した Web ベースのユーザー インターフェイス (UI) を作成するためのビジネス デスク ウィジェットを組み込んでいます。このサンプルには、Edit ウィジェットを実装するための Edit ページ、List ウィジェットを実装するための List ページ、ビジネス デスクの UI からの要求を処理するための Response ページがあります。さらに、新しいビジネス デスク モジュールを既存のビジネス デスクにインストールする方法を示すスクリプト AddModuleToConfig.vbs も用意されています。
  • ビジネス デスク インストーラ (Business Desk Installer) 管理 API をインターネット インフォメーション サービス (IIS) 5.0 メタベースと併用する方法、および Microsoft Extensible Markup Language (MSXML) パーサーによって新しいビジネス デスク モジュールを既存のビジネス デスクにインストールする方法を示す、単純な COM コンポーネントです。
  • カスタム サイト パッケージャ コンポーネント (Custom Site Packager Component) パッケージ化またはアンパックのプロセスにおいて、Commerce サイト パッケージで作成したサイト リソース固有のデータをパッケージ化およびアンパックする方法を示すコンポーネントです。カスタム サイト パッケージャ コンポーネントは、Microsoft Visual Basic ActiveX ダイナミック リンク ライブラリ (DLL) で、カスタム サイト パッケージャ コンポーネントに必要な IPuP インターフェイスを実装し、Microsoft SQL ServerTM データベースに保存されたデータをパッケージし、そのデータを指定されたサイトに展開します。
  • CSF スコア ヘッドライン (CSF Score Headline) コンテンツ選択フレームワーク (CSF) のキャッシュ読み込みとスコアリング用カスタム コンポーネントを使って、対象化システムを拡張する方法を示すサンプルです。CSF スコア ヘッドラインのサンプルは、ヘッドラインの経過時間と、どのヘッドラインが最も表示されているかに基づいて、サイトのユーザーに合わせてヘッドラインを対象化しようとしていることを前提に作成されています。このサンプルは、Microsoft Visual C++ と Microsoft Visual Basic の両方を使った対象化システムとの統合を示します。
  • CSF デバッグ ユーティリティ (CSF Debug Utils) CSF キャッシュの内容をダンプし、特定のコンテンツ要求に適用されるスコアリング論理を追跡するためにスクリプトに組み込む Active Server Pages (ASP) のセットです。CSF スコア ヘッドラインのサンプルでは、これらのデバッグ ユーティリティの使い方を示します。
  • CSF データベース ユーティリティ (CSF DB Utils) すべてのコンテンツの CSF、式エバリュエータ、リスト マネージャの各データベースをパージする SQL スクリプトのセットです。

サイトレット

Commerce Server 2002 SDK には、通常のサンプル コードのほかに、小規模な Commerce Server 2002 サイト ("サイトレット") も含まれています。サイトレットは、API セットを Commerce Server 2002 の他のランタイム サービスと統合せずに ASP ページから使用する方法を示します。サイトレットを実行すると、実行するタスクと関係がないコードを 1 つずつ手動で除外しなくても、特定の機能を実行するのに必要な API を特定できます。Commerce Server 2002 SDK には、次のサイトレットが用意されています。

  • 広告サイトレット (Advertising Sitelet) プロファイル システムを対象化システムと併用し、対象化された広告を表示する方法を示します。.NET Application Framework および COM の両方で利用可能です。
  • オークション サイトレット (Auction Sitelet) オークション コンポーネントを使い、入札によるオークションを実装する方法を示します。オークション管理用のカスタム ビジネス デスク モジュールが含まれます。COM で利用可能です。
  • カタログ サイトレット (Catalog Sitelet) 商品カタログ システムを使い、電子商取引サイトにカタログの参照および検索機能を提供する方法を示します。.NET Application Framework および COM の両方で利用可能です。
  • 割引サイトレット (Discount Sitelet) Web サイトでの受注プロセスにおいて、対象化された割引を利用する方法を示します。COM で利用可能です。
  • 注文サイトレット (Order Sitelet) Commerce Server で Web サイト上の受注プロセスを実装する方法を示します。.NET Application Framework および COM の両方で利用可能です。
  • パスポート サイトレット (Passport Sitelet) パスポート シングル サイン オン機能をプロファイル システムと統合する方法を示します。この機能を使うと、サイト運営者とユーザーがシングル サイン オン認証サービスを利用できる一方で、ユーザーの対象化、ユーザー データの管理などにプロファイル システムを使うこともできます。COM で利用可能です。
  • プロファイル サイトレット (Profile Sitelet) プロファイル システムを使い、電子商取引サイトのユーザーの登録と認証を行う方法を示します。.NET Application Framework および COM の両方で利用可能です。

COM 版のサイトレットは、Program Files\Microsoft Commerce Server 2002\SDK\Samples\Sitelets にあります。.NET Framework 版のサイトレットは、Program Files\Microsoft Commerce Server 2002\SDK\Samples\WebForms にあります。

ツール

Commerce Server 2002 SDK には、Commerce Server 2002 で運営するサイトの構築、Commerce Server 2002 と統合する商品の構築、および Commerce Server 2002 のアドオン コンポーネントの構築に伴う開発プロセスを短期間で簡単に進めるための、いくつかのツールが用意されています。

  • Visual Basic 用パイプライン コンポーネント ウィザード Visual Basic 開発者に、ビジネス処理パイプライン コンポーネントの構築用にリリースおよび配置 (RAD) 環境を提供するツールです。Visual Basic 用パイプライン コンポーネント ウィザードをインストールするには、SDK ツールの VB Pipe Wizard フォルダにある PipelineCompWizard.dll ファイルを登録します。このファイルは、たとえば、C:\Program Files\Microsoft Commerce Server\SDK\Tools\VB Pipe Wizard ディレクトリにあります。
  • Visual C++ 用パイプライン コンポーネント ウィザード Commerce Server パイプライン コンポーネントの作成を自動化するために、Microsoft Visual C++ 6.0 がインストールされた環境に追加するファイル グループで構成されるツールです。パイプライン コンポーネント ウィザードは、オブジェクト定義ファイルとインプリメンテーション ファイルを作成します。これらのファイルには、完全に機能するパイプライン コンポーネントを作成するために実装する必要がある、すべてのインターフェイスの関数のプロトタイプが含まれています。さらに、パイプライン コンポーネント ウィザードは、プロジェクトのプロパティ ページを作成します。ここに、ユーザーがコンポーネントのプロパティの設定に使うコントロールを追加します。
  • パイプライン コンポーネント登録ツール ステージとの関係についてパイプライン コンポーネントを登録するためのツールです。このツールを実行するコンピュータにパイプライン コンポーネントを登録すると、データをレジストリ スクリプト (.reg) ファイルにエクスポートして、他のサーバーに配置できます。パイプライン コンポーネント登録ツールは、SDK の Registration Tool フォルダにあります。たとえば、C:\Program Files\Microsoft Commerce Server\SDK\Tools\Registration Tool ディレクトリにあります。

開発者向けのドキュメント

Commerce Server 2002 ヘルプは、Commerce Server 2002 のカスタマイズ方法を詳しく説明するドキュメントです。たとえば、このドキュメントには次のトピックが含まれています。

  • Developing an International Site
  • Building Business Desk Modules
  • Building Pipeline Components
  • Extending the Content Selection Framework
  • Integrating with BizTalk Server

このほか、Commerce Server 2002 ヘルプには、各 Commerce Server オブジェクトのサンプル コードが含まれています。

アップデートを Commerce Server 2002 ヘルプにインストールするには、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=6724

Commerce Server 2000 リソース キット

『Microsoft Commerce Server 2000 リソース キット』は、Commerce Server 2000 による電子商取引ソリューションの開発に関する詳細な情報を提供します。これは Commerce Server 2002 Enterprise Edition だけを対象にしたものではありません。リソース キットは Microsoft Press から入手できます。

『Commerce Server 2000 リソース キット』には、次のトピックに関する情報が含まれています。

  • 識別と認証の実装
  • ビジネス分析システムの拡張
  • 複雑な価格スキーマの実装
  • プロファイル システムを使った開発
  • 注文処理の変更
  • SAP との統合
  • J.D. Edwards の OneWorld との統合
  • サイトのテスト
  • パフォーマンスの最適化

ホワイト ペーパー

ホワイト ペーパーは、マイクロソフトのコンサルタント、ソフトウェア開発エンジニア、およびシステム インテグレータによって記述されています。ホワイト ペーパーでは、開発やサイト インフラストラクチャに関する特定の問題を取り上げて、製品のマニュアルに記載されていない事項を含め、詳細な情報を提供しています。

Commerce Server に関するホワイト ペーパーの一覧については、http://go.microsoft.com/fwlink/?LinkId=6274 を参照してください。

サポート技術情報の記事

サポート技術情報 (KB) の記事は、マイクロソフトのサポート エンジニアが作成しています。サポート技術情報 (KB) の記事は、技術的な問題のトラブルシューティングや解決方法など、詳細な技術情報を提供しています。

Microsoft サポート技術情報の記事の詳細については、http://go.microsoft.com/fwlink/?LinkId=5166 を参照してください。

関連項目

サイト パッケージャを使う

Programmer's Reference


システム管理者向けのツール

Commerce Server には、システム管理者向けに 2 つのツールが用意されています。それは Commerce Server マネージャと Commerce Server サイト パッケージャです。システム管理者は、これらのツールを使って、リソース、サイト、アプリケーション、および Web サーバーの配置と管理を行います。

Commerce Server マネージャ

Commerce Server マネージャは、Commerce Server 2002 のリソース、サイト、アプリケーション、および Web サーバーの管理と設定に使用します。Microsoft Windows 2000 に付属の Windows ベースのインターフェイスである Microsoft 管理コンソール (MMC) が、Commerce Server マネージャのホストになります。

Commerce Server マネージャは、統合された単一のインターフェイス内で複数の Web サイトを管理するための共通のフレームワークを提供します。Commerce Server マネージャの機能は、Web ベース管理やコマンド ラインからの管理からは利用できません。その機能のほとんどは、COM オブジェクトを介して利用したり操作することになります。したがって、開発者は Windows スクリプト ホスト (WSH) や ASP ページを作成して管理環境を拡大できます。Commerce Server マネージャの詳細については、｢Commerce Server の管理｣を参照してください。

注

  • Commerce Server マネージャでは、Site Server 3.0 や Site Server 3.0, Commerce Edition (SSCE) を管理できません。サイトを Site Server から移行する方法については、「Site Server 3.0 からのアップグレード」を参照してください。

Commerce Server サイト パッケージャ

サイト パッケージャは、サイトとそのアプリケーションおよびリソースを 1 つのファイルにパッケージ化し、そのファイルを他の環境に移動する配置ツールです。Commerce Server サイト (IIS メタベースの設定を含む)、ファイル システム、管理データベースからのリソース、および SQL Server データベースを 1 つのファイルにパッケージ化するときに使います。また、パッケージ化された Commerce Server 2002 サイト (またはその一部分) を他のコンピュータにアンパックするときにも使います。

たとえば、サイトを開発または更新した後、サイト パッケージャを使って、そのサイトをパッケージ化し、開発環境からテスト環境に移動できます。そして最終的には、サイトを運用環境に移動することができます。

ほとんどの場合、サイトを最初に配置するときにサイト パッケージャを使います。それ以降の配置、インクリメンタル更新、およびロールバックには、Microsoft Application Center 2000 などのツールや、他のコンテンツ管理製品を使います。Commerce Server サイト パッケージャの詳細については、「サイト パッケージャを使う」を参照してください。

関連項目

Commerce Server の管理

サイト パッケージャを使う

Site Server 3.0 からのアップグレード


ビジネス マネージャ向けのツール

Commerce Server ビジネス デスクは、ビジネス マネージャが Web サイトの管理および分析に使う拡張性の高いツールです。たとえば、カタログの価格情報を更新したり、特定のユーザーを新しい広告の対象に指定するときに使います。また、レポートを実行して、サイトに加えた変更がサイトの生産性に与える影響を測定するときにも使用できます。

ビジネス デスクは、ビジネス マネージャを対象にしています。つまり、優れた電子商取引 Web サイトを作成および運用するために必要な事業目標、戦略、およびプロセスについての理解はあっても、サーバー アプリケーションの管理に必要な技術については詳しくないユーザーでも利用できるように設計されています。

ビジネス デスクは、ビジネス デスク アプリケーションとビジネス デスク クライアントの 2 つの要素で構成されます。

  • ビジネス デスク アプリケーション サイトの構成、管理、および分析を行うための管理ツールです。ビジネス デスクは、Microsoft Internet Explorer 5.5 以上を実行する任意のコンピュータから利用でき、安全なリモート アクセスを提供します。

    ビジネス デスク アプリケーションは、ソリューション サイト パッケージに含まれています。ビジネス デスク アプリケーションをインストールするには、Commerce Server をインストールした後に、ソリューション サイトをアンパックする必要があります。既存のサイトが存在し、ビジネス デスクでそのサイトを管理する場合は、ソリューション サイトをアンパックしてビジネス デスク アプリケーションを取得した後に、そのビジネス デスク アプリケーションを修正する必要があります。

    Commerce Server ソリューション サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。

  • ビジネス デスク クライアント ローカル コンピュータにインストールするクライアント ソフトウェアです。ビジネス デスク アプリケーションへのインターフェイスを提供します。URL を指定してビジネス デスク アプリケーションに初めてアクセスしたときに、ビジネス デスク クライアントはダウンロードされ、コンピュータにインストールされます。ビジネス デスク クライアントを実行するコンピュータは、ビジネス デスク アプリケーションに高速接続することをお勧めします。


ユーザー補助機能

Microsoft では、すべてのユーザーにとって使いやすい製品とサービスを提供するために努力しています。ここでは、身体に障害のある方のために、Commerce Server 2002 を使いやすくする機能に関する情報を提供します。

参照内容 | 参照先
キーボードを使ってヘルプ ビューア内を移動する方法 | ヘルプ ビューアのショートカット キー
Commerce Server ビジネス デスク内で頻繁に使用するキーボード ショートカット | キーボード ショートカットを使う

ここでは、次のトピックについて説明します。

  • Microsoft Windows 2000 Server のユーザー補助機能
  • ユーザー補助に関する追加情報

Microsoft Windows 2000 Server のユーザー補助機能

Commerce Server 2002 では、Microsoft Windows 2000 Server の次のユーザー補助機能がサポートされています。これらの機能は、Commerce Server ビジネス デスク、Commerce Server マネージャ、およびパイプライン エディタで使用できます。

  • 拡大鏡 画面の一部を、見やすいように別のウィンドウで拡大表示できるようにします。
  • ナレータ ダイアログ ボックス名、メニュー、入力した文字など、画面上の情報が読み上げられるようにします。ナレータ機能では、目の不自由な方が、Commerce Server の構成時や緊急の際に Commerce Server と対話するための、最小限のユーザー補助が提供されています。

    注

    • ナレータ機能は、英語 (米国) 版の Windows 2000 Server でのみ利用できます。
  • スクリーン キーボード 仮想キーボードを表示し、マウスやスイッチ式入力デバイスなどのポインティング デバイスを使って情報を入力できるようにします。スクリーン キーボードは、多くのキーボードおよびキーボード設定と互換性がありますが、すべてのキーボードおよびキーボード設定と互換性があるわけではありません。

これらを始めとするユーザー補助オプションの詳細については、Windows 2000 Server ヘルプの「ユーザー補助機能」を参照してください。

ユーザー補助に関する追加情報

ユーザー補助オプションについては、Windows 2000 ヘルプの「Windows 2000 Server の紹介」ブックの「ユーザー補助機能」を参照してください。

Microsoft SQL Server のユーザー補助オプションについては、SQL Server Books Online の「Accessibility for People with Disabilities (ユーザー補助機能)」を参照してください。

障害をお持ちの方が利用できる Microsoft 製品については、http://go.microsoft.com/fwlink/?LinkId=198 を参照してください。このサイトでは、次の情報を提供しています。

  • Microsoft 製品のユーザー補助サービスに関する詳細情報
  • パーソナル コンピュータを使いやすくする、さまざまなサードパーティ製ハードウェアおよびソフトウェア製品に関する情報
  • Microsoft およびその他の組織から入手できるその他のユーザー補助製品、サービス、および資料に関する概要


Microsoft 製品サポート サービス

製品名 ： Microsoft Commerce Server 2002

サポート オプション ： 本製品は、有償サポートとなります。有償サポートの詳細については、Microsoft 有償サポートの Web ページ (http://www.microsoft.com/japan/support/supportnet/is.asp) を参照してください。また、サポート内容の詳細については、Commerce Server サポート基本情報 (http://www.microsoft.com/japan/support/faq/products/commerceserver/default.asp) を参照してください。


Commerce Server ヘルプの使用

Commerce Server 2002 ヘルプ システムでは、サイト開発者、システム管理者、およびビジネス マネージャ向けのドキュメントを提供します。

Commerce Server 2002 ヘルプは、Commerce Server と共にインストールされるコンパイル済みの HTML ファイル (拡張子は .chm) です。Microsoft では、定期的に、顧客からのフィードバックや質問に基づいてこのファイルを新しい情報に更新し、http://go.microsoft.com/fwlink/?LinkId=6724 に掲載して、ダウンロードできるようにしています。製品と共にインストールされているファイルは、ダウンロードしたファイルと置き換えてください。

新しいバージョンのヘルプがリリースされるたびに、使用している Commerce Server 2002 ヘルプを更新することをお勧めします。

ここでは、次のトピックについて説明します。

  • Commerce Server ヘルプについて Commerce Server 2002 のヘルプの構成および内容について説明します。
  • Commerce Server のチュートリアル Commerce Server に用意されているチュートリアルの一覧表示です。
  • ヘルプ ビューアを使う ヘルプ ビューアを使って必要な情報を検索する方法について説明します。
  • ヘルプ トピックを検索する 完全に一致する語句を検索する方法、および OR、AND、NEAR、NOT を使ってトピックを検索する方法について説明します。
  • ヘルプ トピックにブックマークを設定する ヘルプ トピックにブックマークを設定し、トピックをすばやく参照できるようにする方法について説明します。
  • ヘルプ トピックを印刷する 1 つまたは複数のトピックを同時に印刷する方法について説明します。
  • ヘルプ トピックをコピーする ヘルプ トピックをコピーして、別の文書に貼り付ける方法について説明します。
  • 言語フィルタリング ツールを使う 言語フィルタリング ツールを使って、C++ または Microsoft Visual Basic のサンプル コードを表示する方法について説明します。
  • ヘルプ ビューアのショートカット キー ヘルプ ビューアを使うためのショートカット キーを示します。
  • その他の参照情報 Commerce Serverヘルプ以外の参照情報を示します。


Commerce Server ヘルプについて

Commerce Server 2002 のヘルプは、ユーザーが電子商取引サイトを効率的に運用、管理、または開発するために必要な情報 (ワークフロー、概念、操作手順、リファレンスなど) をすばやく見つけられる構成になっています。

ヘルプの構成

開発者向けヘルプ

ビジネス デスク ヘルプ

ヘルプの構成

目次はいくつかのブックに分かれ、それぞれが主な機能分野に対応しています。各ブックに含まれるノード、つまり章は、各分野でユーザーが行う主な作業に対応しているか、または、それらの作業を完了するために理解する必要のある重要な概念や技術を説明しています。

次の表は、Commerce Server のブックとその説明の一覧です。

ブック | 説明 | ユーザー
ファースト ステップ ガイド | Commerce Server の機能、ツール、および概念を説明します。Commerce Server サイトを設計する方法を説明し、インストール手順へのリンクを提供します。 | すべての Commerce Server ユーザー
Developer's Guide | 開発環境のセットアップ方法、Commerce Server オブジェクトによるプログラム方法、パイプラインのカスタマイズ方法、および Commerce Server と他のアプリケーションの統合方法を説明します。 | サイト開発者
サイトの配置 | SQL Server または Active Directory を使うサイトをサイト パッケージャで配置する方法と、サイトにインクリメンタル更新を行う方法を説明します。また、サイトにセキュリティを設定する方法についても説明します。 Commerce Server のインストール方法を、クラスタ構成の 4 台のコンピュータにインストールする場合と、非クラスタ構成の 3 台のコンピュータにインストールする場合に分けて、それぞれ詳細に説明します。 | システム管理者
Commerce Server の管理 | Commerce Server のリソース、サイト、アプリケーション、Web サーバー、および管理データベースと、それらの管理方法を説明します。また、プロファイル、CS 認証、ダイレクト メーラー、およびデータ ウェアハウスの管理方法についても説明します。BizTalk Server を使うための Commerce Server の設定方法についても説明します。 | システム管理者
ビジネス デスクの活用方法 | ビジネス デスクを使ってサイトを管理する方法を説明します。B2C サイトと B2B サイトの管理方法を学習するための実習を含むチュートリアルが用意されています。 | ビジネス マネージャ
Extending Commerce Server | Commerce Server にカスタム リソースを統合する方法、新しいビジネス デスク モジュールを構築する方法、および新しいパイプライン コンポーネントを構築する方法を説明します。また、サードパーティの商品カタログと統合し、Microsoft Passport と統合する方法を説明します。 | サイト開発者
Programmer's Reference | Commerce Server の各種機能を提供する COM コンポーネントに関する幅広いリファレンス資料を提供します。 | サイト開発者
Commerce Server のトラブルシューティング | Commerce Server の使用中に発生する可能性のある問題の症状と解決方法を説明します。 | システム管理者およびサイト開発者
用語集 | Commerce Server でよく使われる用語を定義します。 | すべての Commerce Server ユーザー

各ブックには、次の各種の情報が含まれるノードがあります。

  • ワークフロー図 ビジネス デスクの各カテゴリのドキュメントには、その機能分野で行う主な作業を説明する図が用意され、それぞれの作業を完了するための手順を説明するトピックにリンクしています。
  • ファースト ステップ ガイド Commerce Server とビジネス デスクの両方にあります。
  • 基本トピック 基本トピックは、ビジネス デスク、Commerce Server マネージャ、およびパイプラインの使用にあたって共通する作業を説明し、必要な参照情報を提供します。
  • 概念 ビジネス デスクの各トピックなどで、「～について」というタイトルが付いたものは、Commerce Server とそのコンポーネントを上手に利用するための重要な概念を説明しています。
  • 作業 作業トピックでは、ワークフローで示した作業を完了するための手順を説明しています。

開発者向けヘルプ

Commerce Server 2002 ヘルプは、使用するプログラミング環境に関連した情報だけを検索できるように、言語フィルタリング ツールを実装しています。「Programmer's Reference」に含まれるいくつかのトピックのタイトル バーには、言語メニューを表示するフィルタ ボタンがあります。このメニューを使うと、Visual C++ 向けと Visual Basic 向けのどちらのドキュメントを表示するかを選択できます。言語を選択すると、その後のページを表示する際にも選択内容が保持されます。

開発者向けの情報については、ヘルプのほかに、次の資料を参照してください。

  • Commerce Server Software Development Kit (SDK) Commerce Server で電子商取引ソリューションを開発するためのサンプル コードとドキュメントが含まれています。たとえば、関連セル (アップセリング、クロスセリング、および在庫セル) のコードを開発する方法が記述されています。SDK は、Commerce Server 2002 と共にインストールされます。

    SDK にアクセスするには、[スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Software Development Kit] をクリックします。

  • Commerce Server 2000 リソース キット Commerce Server のインストールを計画、開発、配置、拡張、および最適化する方法について、詳細な情報が用意されています。『Commerce Server 2000 リソース キット』は、Microsoft Press によって出版されています。

ビジネス デスク ヘルプ

ビジネス デスク ヘルプ システムは、Commerce Server 2002 ヘルプ システムのサブセットです。ビジネス デスクのユーザーは、「ビジネス デスクの使用」というブックに含まれるヘルプにアクセスできますが、クライアント コンピュータからその他の Commerce Server のブックにアクセスすることはできません。

ビジネス デスクからヘルプにアクセスするには、ツール バーの ビジネス デスク ヘルプのアイコン をクリックします。


Commerce Server のチュートリアル

Commerce Server には次のチュートリアルが用意されています。

  • Commerce Server .NET Application Framework Tutorial
  • ダイレクト メーラー チュートリアル
  • B2C サイトのチュートリアル
  • B2B サイトのチュートリアル
  • Exploring the International Retail Site


ヘルプ ビューアを使う

Commerce Server 2002 ヘルプ システムでは、情報の書式設定と表示に HTML が使われています。ヘルプ ビューアには、目次、キーワード、およびフルテキスト検索の機能が用意されており、情報を簡単に検索できます。ブック アイコンを開くと、サブブックとトピックが表示されます。

目次を展開してブック内のトピックを表示するには、ブック タイトルの横の展開インジケータ (+) をクリックします。折りたたみインジケータ (-) をクリックすると、トピックは非表示になります。ヘルプ ビューアを使うと、ヘルプ トピックを表示しながら、同時に目次、キーワード、または検索結果を表示できます。

ヘルプ ビューアには [お気に入り] タブも用意されています。このタブを使ってトピックにブックマークを設定できます。ブックマークを設定すると、たびたび参照するトピックをすばやく表示できるようになります。

Commerce Server の詳細な情報を得るには、目次を使ってマニュアル全体に目を通します。目次のトピックをクリックすると、情報がヘルプのコンテンツ ペインに表示されます。

ヘルプ ビューアでは、次の参照および検索のオプションを利用できます。

  • [目次] タブ
    1. 目次を参照するには、[目次] タブをクリックします。ブックのアイコンをダブルクリックすると、トピック エントリとサブブックが表示されます。
    2. 目次のエントリをクリックすると、対応するトピックが表示されます。
  • [キーワード] タブ
    1. キーワード エントリの一覧を表示するには、[キーワード] タブをクリックし、単語を入力するか、または一覧をスクロールします。キーワードの多くは、複数のトピックに関連付けられています。
    2. キーワード エントリをダブルクリックすると、対応するトピックが表示されます。
  • [検索] タブ
    1. 単語または語句が出現するすべての箇所を検索するには、[検索] タブをクリックして検索する単語または語句を入力し、[検索開始] をクリックします。検索結果を絞り込むには、複数の単語または語句を AND、OR、NEAR、または NOT で結合します。
    2. 検索結果のエントリをダブルクリックすると、対応するトピックが表示されます。

    トピックの検索の詳細については、「ヘルプ トピックを検索する」を参照してください。

  • [お気に入り] タブ
    1. トピックにブックマークを設定するには、[目次] タブ、[キーワード] タブ、または [検索] タブを使ってトピックを検索し、表示します。
    2. [お気に入り] タブをクリックし、[追加] をクリックして、そのトピックのタイトルを [トピック] ボックスの一覧に保存します。
    3. [トピック] ボックスの一覧でブックマークをダブルクリックすると、トピックをすばやく表示できます。

関連項目

ヘルプ トピックを検索する

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを印刷する

ヘルプ トピックをコピーする

言語フィルタリング ツールを使う

ヘルプ ビューアのショートカット キー


ヘルプ トピックを検索する

  1. 単語または語句が出現するすべての箇所を検索するには、[検索] タブをクリックして単語を入力し、[検索開始] をクリックします。
  2. 特定の語句を検索するには、その語句を引用符 (") で囲みます。たとえば、「"コンピュータとモニタ"」と入力すると、"コンピュータとモニタ" という語句を含むトピックが検索されます。
  3. 検索結果を絞り込むには、複数の単語または語句を AND、OR、NEAR、または NOT で結合します。

    次に例を示します。

    • 「コンピュータ AND モニタ」と指定すると、"コンピュータ" と "モニタ" の両方の単語を含むトピックが検索されます。
    • 「コンピュータ OR モニタ」と指定すると、"コンピュータ" と "モニタ" のどちらかの単語を含むトピックが検索されます。
    • 「コンピュータ NEAR モニタ」と指定すると、"コンピュータ" と "モニタ" の両方の単語が接近して含まれるトピックが検索されます。
    • 「コンピュータ NOT モニタ」と指定すると、"コンピュータ" というキーワードを含んでいて、"モニタ" というキーワードを含んでいないトピックが検索されます。
  4. 検索結果のエントリをダブルクリックすると、対応するトピックが表示されます。

関連項目

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを印刷する

ヘルプ トピックをコピーする

言語フィルタリング ツールを使う

ヘルプ ビューアのショートカット キー


ヘルプ トピックにブックマークを設定する

  1. [目次] タブ、[キーワード] タブ、または [検索] タブを使って、ブックマークを設定するトピックを検索し、表示します。
  2. [お気に入り] タブをクリックし、[追加] をクリックします。

[トピック] ボックスの一覧にトピックのタイトルが追加されます。後からこの一覧に戻ってブックマークをダブルクリックすると、トピックをすばやく表示できます。

注

  • 頻繁に参照するヘルプ トピックの一覧を作成できます。
  • [トピック] ボックスの一覧からブックマークを削除するには、ブックマークをクリックし、[削除] をクリックします。

関連項目

ヘルプ トピックを検索する

ヘルプ トピックを印刷する

ヘルプ トピックをコピーする

言語フィルタリング ツールを使う

ヘルプ ビューアのショートカット キー


ヘルプ トピックを印刷する

  • 印刷するトピックを右クリックし、[印刷] をクリックします。
  • ポップアップ トピックを印刷するには、ポップアップ ウィンドウの内側を右クリックし、[印刷] をクリックします。
  • ブックに含まれるすべての項目を印刷するには、[目次] タブで目的のブックをクリックします。ヘルプのツール バーの [オプション] をクリックし、[印刷] をクリックして、[選択された見出しおよびすべてのサブトピックを印刷] をクリックします。

注

  • 複数の図が含まれる複数のトピックで構成されたセクションを印刷する場合、図は印刷されません。
  • サンプル コードや大きな図を印刷すると、全体を印刷できない場合があります。コードの行が非常に長い場合や、図が非常に大きい場合、コードや図の右端の余白の境界を超えた部分は印刷されません。

関連項目

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを検索する

ヘルプ トピックをコピーする

言語フィルタリング ツールを使う

ヘルプ ビューアのショートカット キー


ヘルプ トピックをコピーする

  1. ヘルプ ビューアのトピック ウィンドウで、ウィンドウの内側を右クリックし、[すべて選択] をクリックします。
  2. トピックの上で、再び右クリックし、[コピー] をクリックします。
  3. トピックのコピー先となる文書を開きます。
  4. 文書内で、コピーした情報を表示する位置をクリックします。
  5. [編集] メニューの [貼り付け] をクリックします。

注

  • トピックの一部だけをコピーする場合は、コピーする部分を選択して、選択部分を右クリックし、[コピー] をクリックします。
  • 順序を示す番号はクリップボードにコピーされません。

関連項目

ヘルプ トピックを印刷する

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを検索する

言語フィルタリング ツールを使う

ヘルプ ビューアのショートカット キー


言語フィルタリング ツールを使う

Commerce Server ヘルプは、使用するプログラミング環境に関連した情報だけを検索できるように、言語フィルタリング ツールを実装しています。「Programmer's Reference」に含まれるいくつかのトピックのタイトル バーには、言語メニューを表示するフィルタ ボタンがあります。このメニューを使うと、ページのコンテンツによって、Visual C++ 向け、Visual Basic 向け、C# 向け、Visual Basic .NET 向けのいずれのドキュメントを表示するかを選択できます。言語を選択すると、その後のページを表示する際にも選択内容が保持されます。

言語フィルタリングのオプションを表示するには、タイトル バーのフィルタ ボタンをクリックし、次のいずれかのオプションをクリックします。

  • C++
  • VB
  • C#
  • Visual Basic .NET

関連項目

ヘルプ トピックを印刷する

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを検索する

ヘルプ ビューアのショートカット キー

ヘルプ トピックをコピーする

その他の参照情報


ヘルプ ビューアのショートカット キー

マウスが利用できない場合や、キーボードの方が使い慣れている場合は、次のキーボード コマンドを使ってヘルプ ビューア内を移動できます。

ヘルプ ビューアのショートカット キー

キー操作 | 説明
Alt + Space | システム メニューを表示します。
Shift + F10 ヘルプ ビューアのショートカット メニューを表示します。

注

  • このショートカットは、フォーカスがトピック ウィンドウにあるときに使います。
Alt + Tab | ヘルプ ビューアと、開いているほかのウィンドウを切り替えます。
Alt + O | [オプション] メニューを表示します。
Alt + O を押してから、T キーを押す | ナビゲーション ペインの表示/非表示を切り替えます。
Ctrl + Tab | ナビゲーション ペインの次のタブに切り替えます。
Ctrl + Shift + Tab | ナビゲーション ペインの前のタブに切り替えます。
↑ 目次、キーワード、または検索結果の一覧で、1 つ上のトピックに移動します。
↓ 目次、キーワード、または検索結果の一覧で、1 つ下のトピックに移動します。
PageUp | 目次、キーワード、または検索結果の一覧で、1 つ上のページに移動します。
PageDown | 目次、キーワード、または検索結果の一覧で、1 つ下のページに移動します。
F6 | ナビゲーション ペインとトピック ウィンドウの間でフォーカスを切り替えます。
Alt + O を押してから、R キーを押す | トピック ウィンドウに表示されているトピックを更新します。
↑ または ↓ トピックをスクロールします。
Ctrl + Home | トピックの先頭に移動します。
Ctrl + End | トピックの末尾に移動します。
Ctrl + A | トピック ウィンドウのすべてのテキストを強調表示します。
Alt + O を押してから、P キーを押す | トピックを印刷します。
Alt + O を押してから、B キーを押す | 前に表示したトピックに戻ります。
Alt + O を押してから、F キーを押す | 前に表示したトピックの次のトピックに進みます。
Alt + F4 | ヘルプ ビューアを閉じます。

[目次] タブのショートカット キー

キー操作 | 説明
Alt + C | [目次] タブを表示します。
→ | ブックを開きます。
← | ブックを閉じます。
BackSpace | 開いている前のブックに戻ります。
↑ または ↓ | トピックを選択します。
Enter | 選択したトピックを表示します。

[キーワード] タブのショートカット キー

キー操作 | 説明
Alt + N | [キーワード] タブを表示します。
↑ または ↓ | 一覧でキーワードを選択します。
Alt + D または Enter | 関連するトピックを表示します。

[検索] タブのショートカット キー

キー操作 | 説明
Alt + S | [検索] タブを表示します。
Alt + L | 検索を開始します。
Alt + D または Enter | 選択したトピックを表示します。

[お気に入り] タブのショートカット キー

キー操作 | 説明
Alt + I | [お気に入り] タブを表示します。
Alt + A | [トピック] ボックスの一覧にトピックを追加します。
Alt + P [トピック] ボックスの一覧でトピックを選択します。

注

  • このショートカットは、フォーカスがトピック ウィンドウにあり、[トピック] ボックスの一覧に移動するときに使います。
Alt + R | [トピック] ボックスの一覧からトピックを削除します。
Alt + D | [トピック] ボックスの一覧のトピックを表示します。

関連項目

ヘルプ トピックを印刷する

ヘルプ トピックにブックマークを設定する

ヘルプ トピックを検索する

言語フィルタリング ツールを使う

ヘルプ トピックをコピーする


その他の参照情報

Commerce Server 2002 ヘルプ システムのほかに、次のような参照情報を利用できます。

  • Program Files\Microsoft Commerce Server\SDK ディレクトリにある「Software Development Kit (SDK)」
  • Microsoft Press から刊行されている『Commerce Server リソース キット』
  • Commerce Server Web サイト


Commerce Server 2002 をインストールする

Commerce Server をインストールする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。

Commerce Server を実行しているコンピュータも含め、ビジネス デスクにアクセスするすべてのコンピュータに Commerce Server ビジネス デスク クライアントをインストールする必要があります。サイトをアンパッケージした後で、ビジネス デスク アプリケーションの Uniform Resource Locator (URL) に接続すると、ビジネス デスク クライアントをインストールできます。

また、ビジネス マネージャがビジネス デスク クライアントをダウンロードしてからインストールすることも可能です。ビジネス デスク クライアントをインストールする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。


Commerce Server をアンインストールする

ここでは、Commerce Server 2002 およびビジネス デスク クライアントをアンインストールする方法について説明します。Commerce Server をインストールする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。

ここでは、次のトピックについて説明します。

  • Commerce Server 2002 をアンインストールする Commerce Server 2002、Commerce Server データベース、サイトの仮想ディレクトリ、およびサイトのフォルダとファイルをアンインストールする方法について説明します。
  • ビジネス デスク クライアントをアンインストールする ビジネス デスク クライアントをアンインストールする方法について説明します。


Commerce Server 2002 をアンインストールする

Commerce Server 2002 をアンインストールするには、次に示す作業をこの順序で行う必要があります。各作業の手順の詳細を次に示します。

  • 手順 1 : Commerce Server 2002 ソリューション サイトを削除します。この手順は、Blank サイト、または http://go.microsoft.com/fwlink/?LinkId=1941 からダウンロードしたその他のソリューション サイトを削除するために実行します。この作業では、Microsoft Commerce Server\PuP Packages ディレクトリからソリューション サイトを削除し、これらのサイトを再びアンパックできないようにします。アンパックされたソリューション サイトは削除されません。
  • 手順 2 : Commerce Server 2002 プラットフォームを削除します。この作業を実行すると、Commerce Server Runtime オブジェクト、管理ツール、予測グローバル リソース、およびダイレクト メーラー グローバル リソースが削除されます。
  • 手順 3 : Commerce Server 2002 のインストール フォルダを削除します。
  • 手順 4 : Commerce Server 2002 のデータベースを削除します。データベースには、管理データベース、データ ウェアハウス データベース、プロファイル データベース、カタログ データベースなどがあります。
  • 手順 5 : Commerce Server 2002 分析サーバーのデータベースを削除します。
  • 手順 6 : Commerce Server 2002 サイトの仮想ディレクトリを削除します。この作業は、サイトをアンパックした場合にのみ行います。
  • 手順 7 : インターネット インフォメーション サービスから ISAPI フィルタを削除します。この作業は、自動 cookie を設定している場合、または Commerce アプリケーションの認証フィルタの設定をソリューション サイト パッケージが設定した既定値から変更している場合にのみ実行します。
  • 手順 8 : Commerce Server 2002 サイトのフォルダとファイルを削除します。この作業は、サイトをアンパックした場合にのみ行います。
  • 手順 9 : SQL Server のダイレクト メーラー ジョブを削除します。この作業は、ダイレクト メーラーをインストールし、ダイレクト メーラー ジョブを作成した場合にのみ行います。この作業を実行せずに後でダイレクト メーラーを再インストールすると、以前インストールしていたダイレクト メール ジョブが有効になります。

これらの作業を行った後に、コンピュータを再起動することをお勧めします。

次に、それぞれの作業を行う手順について詳しく説明します。

手順 1 : Commerce Server 2002 ソリューション サイトを削除する

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックします。
  2. [アプリケーションの追加と削除] をダブルクリックします。
  3. [アプリケーションの追加と削除] ダイアログ ボックスの [Microsoft Commerce Server 2002 ソリューション サイト] をクリックし、[削除] をクリックします。
  4. 次の [アプリケーションの追加と削除] ダイアログ ボックスで [はい] をクリックし、Commerce Server ソリューション サイトの削除を確認します。

手順 2 : Commerce Server 2002 プラットフォームを削除する

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックします。
  2. [アプリケーションの追加と削除] をダブルクリックします。
  3. [アプリケーションの追加と削除] ダイアログ ボックスの [Microsoft Commerce Server 2002] をクリックし、[削除] をクリックします。
  4. 次の [アプリケーションの追加と削除] ダイアログ ボックスで [はい] をクリックし、Commerce Server 2002 の削除を確認します。
  5. コンピュータを再起動するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

手順 3 : Commerce Server 2002 のインストール フォルダを削除する

  1. エクスプローラで、Commerce Server がインストールされているディレクトリ (C:\Program Files\Microsoft Commerce Server 2002 など) を表示します。
  2. 削除するフォルダを右クリックし、[削除] をクリックします。
  3. [フォルダの削除の確認] ダイアログ ボックスで、[はい] をクリックして削除を確認します。

手順 4 : Commerce Server 2002 データベースを削除する

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。

    注

    • SQL Server Enterprise Manager で、SQL Server が実行されていることを確認します。SQL Server が実行されている場合は、[Enterprise Manager] ウィンドウのアイコンが緑色を示しています。実行されていない場合は、SQL Server のコンピュータ名を右クリックし、[開始] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \Microsoft SQL Servers\SQL Server グループ\<SQL Server 名>\データベース
  3. 削除するデータベースを右クリックし、[削除] をクリックします。
  4. [データベースの削除] ダイアログ ボックスで、[はい] をクリックして削除するデータベースを確認します。
  5. 削除するデータベースごとに 3. と 4. を繰り返します。

手順 5 : Commerce Server 2002 分析サーバーのデータベースを削除する

  1. [スタート] ボタンをクリックし、[プログラム] をポイントし、[Microsoft SQL Server] をポイントします。次に [Analysis Services] をポイントして、[分析マネージャ] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \Analysis Servers\<SQL Server 名>
  3. 削除するデータベースを右クリックし、[削除] をクリックします。
  4. [データベースの削除] ダイアログ ボックスで、[はい] をクリックして削除するデータベースを確認します。

手順 6 : Commerce Server 2002 サイトの仮想ディレクトリを削除する

  1. [スタート] ボタンをクリックし、[プログラム]、[管理ツール] の順にポイントします。次に [インターネット サービス マネージャ] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \<コンピュータ名>\<IIS Web サイト名>
  3. 削除する仮想ディレクトリ (Retail や Supplier など) を右クリックし、[削除] をクリックします。
  4. フォルダの削除を確認するダイアログ ボックスで、削除する仮想ディレクトリごとに [はい] をクリックします。
  5. 削除する仮想ディレクトリごとに 3. と 4. を繰り返します。

手順 7 : インターネット インフォメーション サービスから ISAPI フィルタを削除する

  1. [スタート] ボタンをクリックし、[プログラム]、[管理ツール] の順にポイントします。次に [インターネット サービス マネージャ] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \<コンピュータ名>\<IIS Web サイト名> (たとえば、CSServer1\<既定の Web サイト>)
  3. IIS Web サイトを右クリックし、[プロパティ] をクリックします。
  4. Web サイトのプロパティのダイアログ ボックスの [ISAPI フィルタ] タブで [CSAuthFilter] を選択します。次に [削除] をクリックして [OK] をクリックします。

手順 8 : Commerce Server 2002 サイトのフォルダとファイルを削除する

  1. エクスプローラで、サイトのファイルがインストールされているディレクトリ (C:\Inetpub\wwwroot など) を表示します。
  2. 削除するフォルダを右クリックし、[削除] をクリックします。
  3. [フォルダの削除の確認] ダイアログ ボックスで、削除するフォルダごとに [はい] をクリックします。
  4. 削除するフォルダごとに 2. と 3. を繰り返します。

手順 9 : SQL Server のダイレクト メーラー ジョブを削除する

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \Microsoft SQL Servers\SQL Server グループ\<SQL server 名>\管理\SQL Server エージェント\ジョブ

    SQL Server Enterprise Manager の右側のウィンドウに、ダイレクト メーラー ジョブが表示されます。

  3. 削除するダイレクト メーラー ジョブを選択し、ツール バーの [削除] をクリックします。

これらの作業を行った後に、コンピュータを再起動することをお勧めします。

関連項目

ビジネス デスク クライアントをアンインストールする


ビジネス デスク クライアントをアンインストールする

ビジネス デスク クライアントをアンインストールするには

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックします。
  2. [アプリケーションの追加と削除] をダブルクリックします。
  3. [Commerce Server 2002 ビジネス デスク (アプリケーション名)] を選択し、[変更/削除] をクリックします。
  4. 次の [アプリケーションの追加と削除] ダイアログ ボックスで [はい] をクリックし、[Commerce Server 2002 ビジネス デスク] の削除を確認します。

ビジネス デスク クライアントがコンピュータから削除されます。

関連項目

Commerce Server 2002 をインストールする

Commerce Server 2002 をアンインストールする


Commerce Server のチュートリアル

Commerce Server には次のチュートリアルが用意されています。

  • ダイレクト メーラー チュートリアル ダイレクト メール キャンペーンを作成する手順を、順を追って説明します。
  • B2C サイトのチュートリアル ビジネス デスクで B2C サイトや B2B サイトを管理する方法について説明します。
  • B2B サイトのチュートリアル ビジネス デスクで B2C サイトや B2B サイトを管理する方法について説明します。
  • Commerce Server Developer Tutorials 開発者を対象とした Commerce Server チュートリアルの一覧です。


Commerce Server システムによる成功へのビジネス サイクル

ここでは、Commerce Server が備えるビジネス分析システム、対象化システム、およびプロファイル システムを利用して、成功へのビジネス サイクルを確立するためのチュートリアルを行います。

Microsoft Commerce Server 2002 のビジネス分析システムを利用して、データの収集と分析、レポートの実行、および予測を行います。Commerce Server の対象化システムを利用すると、Web サイトを訪問するユーザーに合わせて、コンテンツのパーソナライズとマーケティング キャンペーンの対象化を行うことができます。Commerce Server のプロファイル システムを利用すると、顧客や取引先のプロファイル作成と管理を行って、サイト利用状況の確認やパーソナライズを行うことができます。

次の表は、ビジネス分析システム、対象化システム、およびプロファイル システムの主要機能の一覧です。

ビジネス分析システム 対象化システム
プロファイル システム
  • 何百万ものユーザーと組織を管理します。
  • ユーザーが各自のプロファイル情報を管理したり、注文の状況を調べることができます。
  • ユーザーや組織など、あらゆるビジネス関連要素のプロファイルを構築します。
  • サイトを訪問するユーザーについて収集する情報を決定します。
  • 仮想カタログなど、特定のユーザーに表示する情報を決定します。
  • サイトを訪問しているユーザーを確認するためにプロファイル情報を分析します。
  • コンテンツをユーザーに合わせるための対象式を作成します。
  • 特定のユーザー グループを対象とした広告、割引、ダイレクト メールの各キャンペーンを作成します。
ビジネス分析システム
  • 各種データ ソースから収集した大量のサイト利用状況データを Commerce Server データ ウェアハウスにインポートし、そのデータを管理します。
  • Commerce Server のレポートを実行するか、または独自のカスタム レポートを作成して、サイトの効果を分析します。
  • レポートを実行して特定のユーザー グループを識別し、その結果をリストにエクスポートします。このリストは、ダイレクト メール キャンペーンで使用するか、またはユーザーのプロパティを更新して、ユーザーに合わせて商品またはコンテンツを対象化するために使います。
  • 収集したデータを確認して、隠れた傾向や新しい顧客セグメントを見つけたり、そのセグメントのプロパティを表示します。
  • インテリジェント クロスセル機能を提供し、ユーザーがサイト内を移動するのに合わせて商品を動的に推奨します。
対象化システム
  • 対象化した商品取引でショッピング体験をパーソナライズします。
  • ユーザーとコンテキストに応じて最適なコンテンツを配信します。
  • パーソナライズされ、対象化された割引、ダイレクト メール、および広告キャンペーンを作成、分析、管理します。
  • 予測機能を Web サイトに追加します。
  • 広告や割引の対象を特定のプロファイルを持つユーザーに設定します。たとえば、週に 3 回サイトを訪問し、商品を 3 つ以上購入したことのある女性ユーザーを対象に広告を配信できます。
  • 同じ業種で競合する複数の顧客向けにキャンペーンを作成し、スケジュールを設定します。競合する広告が同じページに表示されることは決してありません。
  • 広告主が希望する広告要求数、またはクリック数に応じて広告料を請求します。
  • 広告主が希望する広告ページに応じて広告料を請求します。

予測リソースの持つセグメント化機能を利用すると、行動パターンの類似したユーザーがグループとしてまとめられるので、マーケティング キャンペーンを対象化するときに、特定の商品を購入する可能性が高いユーザー層を指定することができるようになり、キャンペーンの効率が向上します。

シナリオ :

ソフトウェア小売業者であるあなたは、商品の売り上げを伸ばしたいと思っています。Web サイトへログオンするユーザー全員に広告を無作為に表示するのではなく、もっと工夫を凝らした広告キャンペーンを作成して、商品を購入する可能性が高いユーザーにだけそれを掲示することを考えています。たとえば、Commerce Server 2002 の広告を掲示するときは、以前に Web 開発ソフトウェアを購入したことがあり、Web 開発者である可能性が高い顧客を対象として指定できるのが理想です。

このチュートリアルでは、次の作業を行います。

  1. Web ログ データをデータ ウェアハウスにインポートします。
  2. セグメント モデルを構築します。
  3. ビジネス デスクを使ってセグメントを分析します。
  4. Web サイト訪問者の中から、Web 開発者を表すグループを見つけます。
  5. Web 開発者を表すユーザー グループをリスト マネージャにエクスポートします。
  6. カスタム プロファイル プロパティを作成し、Web 開発者を表すすべてのユーザーにそれを関連付けます。
  7. Web 開発者のためのキャンペーン式を作成します。
  8. 対象グループを作成して、開発者向け広告の対象に Web 開発者だけを指定できるようにします。
  9. Commerce Server 2002 を売り出すための広告キャンペーンを作成します。
  10. Web 開発者ユーザー リストのメンバとしてログインし、広告キャンペーンが機能していることを確認します。

ここでは、次のトピックについて説明します。

  • 実習 1 : チュートリアルの準備をする
  • 実習 2 : データ ウェアハウスにデータをインポートする
  • 実習 3 : セグメント モデルを構築する
  • 実習 4 : セグメント モデルを分析する
  • 実習 5 : カスタム プロファイル プロパティをユーザー リストにマップする
  • 実習 6 : キャンペーン式を作成する
  • 実習 7 : 広告キャンペーンを作成する
  • 実習 8 : 広告キャンペーンを確認する


実習 1 : チュートリアルの準備をする

ここでは、予測リソースのチュートリアルで扱ったサンプル データを使います。このデータを作成していない場合は、チュートリアルを始める前に、次の準備作業を行う必要があります。

  • 手順 1 : Populate.sql ファイルを編集する
  • 手順 2 : Predictor Demo サイトをアンパックする
  • 手順 3 : Predictor Demo ビジネス デスク アプリケーションをインストールする


手順 1 : Populate.sql ファイルを編集する

  1. エクスプローラを使って、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\Predictor Tutorial\ に移動し、populate.sql ファイルをメモ帳で開きます。
  2. C:\ 以外のドライブに Commerce Server 2002 をインストールしている場合は、populate.sql ファイルに記述されている「C:\Program Files\Microsoft Commerce Server 2002\Predictor Tutorial\」の「C:」という 5 つのドライブ名をすべて適切なドライブ名に書き換えます。
  3. ファイルを保存して、メモ帳を終了します。


手順 2 : Predictor Demo サイトをアンパックする

  1. エクスプローラを使用して <ドライブ名>:\Program Files\Microsoft Commerce Server 2002\Predictor Tutorial\ に移動し、PredictorDemoSite.pup ファイルをダブルクリックします。
  2. [アンパック] ダイアログ ボックスで [標準] を選択し、[次へ] をクリックします。
  3. [標準] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サイト名] | サイト名が PredictorDemo になっていることを確認します。サイト名は変更しないでください。
    [IIS Web サイト] | アプリケーションをインストールするインターネット インフォメーション サービス (IIS) 5.0 Web サイトの名前を選択します。
    [SQL Server コンピュータ] | サイト データベースの作成場所となる SQL Server の名前を入力します。
    [Windows 統合セキュリティを使用] | Predictor Demo サイトを設定する場合は、この Windows 統合セキュリティ オプションは使わないでください。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] サイトのデータベースの作成場所となる SQL Server へのアクセス許可を持つ SQL Server ログイン ユーザー名を入力します。

    注

    • セキュリティ上の理由から、管理データベースへのアクセスに sa ログインは使用しないでください。管理データベースの作成後にログイン情報を変更するには、SQL Server Enterprise Manager を使用します。
    [SQL Server ログイン パスワード] | データベースにアクセスするための SQL Server ログイン パスワードを入力します。
  4. [次へ] をクリックします。
  5. [データ ウェアハウス] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 既定の名前をそのまま使います。
    [サーバー] | データ ウェアハウスで使用される SQL 分析サーバーの名前を入力します。
    [データベース] | Analysis Services (OLAP) データベースの名前を入力します。
  6. [OK] をクリックします。
  7. [システム プロファイリング] ダイアログ ボックスでは、既定の .xml ファイルをそのまま使用し、[次へ] をクリックします。
  8. [システム プロファイリング] ダイアログ ボックスで、[データ生成スクリプト (*.sql)] ボックスの [参照] をクリックします。
  9. [ファイルを開く] ダイアログ ボックスで、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\Predictor Tutorial\ に移動し、一覧から Populate.sql ファイルを選択して、[開く] をクリックします。
  10. [OK] をクリックします。
  11. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。

    注

    • 設定中にエラーが発生した場合は、ログ ファイルを表示してエラーの原因を調べることをお勧めします。
  12. [完了] をクリックし、サイト パッケージャを閉じます。


手順 3 : Predictor Demo ビジネス デスク アプリケーションをインストールする

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Internet Explorer] をクリックします。
  2. インストールされているビジネス デスクの URL (たとえば、http://<コンピュータ名>/PredictorDemoBizDesk) を [アドレス] ボックスに入力し、Enter キーを押します。
  3. [フォルダの参照] ダイアログ ボックスで、HTML アプリケーション (HTA) ファイルの格納場所を指定します。既定のフォルダをそのまま使用するか、他のフォルダを選択し、[OK] をクリックします。

    ビジネス デスク クライアントのセットアップ プログラムが起動します。Microsoft ActiveX コントロールをダウンロードしていない場合は、[ビジネス デスク クライアントのセットアップ] 画面の上部にトラブルシューティングのヒントが表示されます。ビジネス デスク クライアントのインストールには、Microsoft ActiveX コントロールが必要です。

    画面の下部には、各処理が完了するたびにチェック マークが表示されます。4 つの処理がすべて終了すると、ビジネス デスクのインストールは完了します。ビジネス デスクへのリンクが画面に表示されます。

    注

    • ActiveX コントロールをダウンロードできない場合は、[ビジネス デスク クライアントのセットアップ] 画面に表示される指示に従って操作してください。
  4. ビジネス デスクのインストールが完了したら、Internet Explorer を終了します。

ビジネス デスクのショートカット アイコンが、デスクトップと [スタート] メニューに配置されます。


実習 2 : データ ウェアハウスにデータをインポートする

予測リソースのチュートリアルで扱ったサンプル データには、Web ログ、およびトランザクションとデモグラフィックスの結合データが含まれています。ここでは、これらのデータを利用して分析モデルを構築します。

サンプル データをデータ ウェアハウスにインポートするには、次の操作を行います。

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、[Microsoft SQL Server]、[SQL Server グループ] の順に展開し、使用している SQL Server を展開します。次に、[データ変換サービス] を右クリックし、[パッケージを開く] をクリックします。
  3. [ファイルの選択] ダイアログ ボックスで、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\Predictor Tutorial\ に移動し、ImportData.dts ファイルを選択して、[開く] をクリックします。
  4. [パッケージの選択] ダイアログ ボックスで、一覧から [PredictorDemo Import Data] を選択し、[OK] をクリックします。
  5. SQL Server Enterprise Manager で、[Microsoft OLEDB Provider for SQL Server] を右クリックし、[プロパティ] をクリックします。
  6. [接続プロパティ] ダイアログ ボックスで、Microsoft SQL Server の認証資格情報を確認し、[OK] をクリックします。
  7. [Transaction data import (Commerce Server)] タスクを右クリックし、[プロパティ] をクリックします。
  8. [プロパティ] ダイアログ ボックスで、[操作レベル] が [サイトのレベル]、[サイト名] が [PredictorDemo] となっていることを確認し、[OK] をクリックします。
  9. [Profile data import (Commerce Server)] タスク、[Campaign data import (Commerce Server)] タスク、および [Product catalog import (Commerce Server)] タスクについて、手順 7. と 8. を繰り返します。
  10. SQL Server Enterprise Manager で、ツール バーの 実行 をクリックします。
  11. [パッケージ実行結果] ダイアログ ボックスで、[OK] をクリックします。
  12. すべての処理が完了したら、[実行中の DTS パッケージ : PredictorDemo Import Data] ダイアログ ボックスの [終了] をクリックします。

    注

    • 設定中にエラーが発生した場合は、ログ ファイルを表示してエラーの原因を調べることをお勧めします。
  13. SQL Server Enterprise Manager を終了します。


実習 3 : セグメント モデルを構築する

セグメント化 (クラスタ化) の分析を行うには、セグメント ビューア モジュールを使います。セグメント化の分析では、サイトでのユーザーの行動およびユーザーのプロパティ (年齢や性別など) に従って、ユーザーをセグメントにグループ化します。

セグメント化を行った結果がセグメント モデルです。セグメント モデルは、セグメントまたはセグメント グループに属するユーザーが共有する特性を記述したものです。セグメントとセグメント グループは、データ ウェアハウスにあるデータに基づいて Commerce Server マネージャで作成されます。

セグメントを個別に調べたり、セグメントどうしを比較するには、セグメント ビューア モジュールを使います。セグメント ビューア モジュールは、すべてのセグメントの要約レポートを作成するときや、セグメントをリストにエクスポートするときにも使います。

セグメント モデルを構築するには、次の操作を行います。

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[Commerce Server マネージャ]、[グローバル リソース]、[Predictor on <サーバー名>]、[予測サービス] の順に展開し、[モデル構成] をクリックします。
  3. Commerce Server マネージャのコンテンツ ペインで、[DemoTransactions] を右クリックし、[構築] をクリックします。
  4. [モデル構築のプロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「Software Segments」と入力します。
    [モデルの種類] | 分析モデルの種類として、[セグメント] を選択します。
  5. [次へ] をクリックします。
  6. [モデル構築のプロパティ] ダイアログ ボックスで、[測定精度サンプル値] ボックスに「0.1」と入力し、[完了] をクリックします。

    注

    • 測定精度サンプル値は、予測への入力として使われるプロパティの割合です。たとえば、入力属性分数 0.05 を指定すると、入力属性のうち、最も有意な 5% を選択します。既定値は 1.0 で、この場合すべての属性が予測の入力属性とされます。商品数が 1,000 を超えるカタログの推奨商品のように、属性数が非常に多い場合は、1.0 未満の値を指定することをお勧めします。


実習 4 : セグメント モデルを分析する

セグメントを分析するときは、セグメントとセグメント グループという 2 つの要素を扱うことになります。

  • "セグメント" とは、Web サイトでの行動や特性 (年齢や性別など) が類似しているユーザーの集まりのことです。セグメントはデータベース レコードの要約で構成されます。このデータベース レコードは、類似のプロファイル プロパティを共有するユーザーのグループに属します。この要約は、データベース レコードのクラスタ化に使用したデータ ウェアハウス内のプロパティに基づいて作成されます。
  • "セグメント グループ" とは、類似したセグメントまたはセグメント グループの集まりのことです。

セグメント グループが形成するセグメント階層のさまざまなレベルでデータの傾向を分析し、相関関係を見つけることができます。ユーザーを類似性でグループ化すると、新たな相関関係が明らかになることもあります。このような新たに認められた相関関係に基づいて、対象化およびパーソナライズのルールを形成することもできます。

セグメント モデルを分析するには

  1. Predictor Demo ビジネス デスクを起動します。
  2. [分析] の [セグメント ビューア] をクリックします。
  3. [セグメント ビューア] 画面で [ソフトウェア セグメント] を選択し、 開く をクリックします。
  4. [セグメント ビューア : ソフトウェア セグメント] 画面で、次の点に注意してください。

    ソフトウェア セグメント モデル

    • ナビゲーション ボックス内のセグメント階層には、ユーザー全体が含まれています。すべてを合わせると 100% になります。セグメント階層は、セグメントとセグメント グループで構成されます。セグメントは、プロパティ値がよく似ているユーザーの集まりです。たとえば、同じような商品を購入したことがあるユーザーがまとめられます。"セグメント グループ" は、類似したセグメントの集まりです。
    • [母集団の要約] ボックスには、このユーザー全体で最も特徴的なプロパティと、その値が一覧表示されます。赤色のバーが長くなればなるほど、プロパティ/値の組み合わせがそのユーザー全体に含まれている可能性が高くなります。
  5. [セグメント階層] ウィンドウで、[母集団 (100%)] を展開し、セグメントおよびセグメント グループをすべて展開します。次の点に注意してください。

    • セグメント 5 の要約には、このセグメントに属しているユーザーの特徴を最もよく表すプロパティ/値の組み合わせが表示されます。この例にある [Money 2000 Business & Personal.QTY] と値 [3] は、このセグメントに属しているユーザーのほとんどが、Microsoft Money 2000 Business and Personal を 3 本購入したことを示しています。
    • セグメントどうしを比較できます。[セグメント 5 を以下と比較] ボックスの一覧では、当初は [母集団] が選択されています。任意のセグメントまたはセグメント グループを選択して、それらとセグメント モデル内の残りのセグメントとを比較することもできます。
    • 黄色のバーは、ユーザーをクラスタ 5 のメンバにするかどうかの基準となるプロパティ/値を示します。この例にある [Baseball 2000.QTY] と値 [1] は、Microsoft Baseball 2000 を 1 本購入したユーザーがセグメント 5 のメンバになることを意味します。
    • 青色のバーは、セグメント 5 のメンバシップからユーザーを外すかどうかの基準となるプロパティ/値を示します。この例にある [Windows 98 Second Edition.QTY] と値 [2] は、Microsoft Windows 98 Second Edition を 2 本購入したユーザーはセグメント 5 のメンバになる可能性が低いことを意味します。
    • Baseball 2000 と Microsoft NBA Inside Drive 2000 を購入すると、ユーザーはセグメント 5 に配置されます。このことから、母集団に含まれる他のセグメントと比較すると、クラスタ 5 に属しているユーザーはスポーツ コンピュータ ゲームを好む傾向があると言えます。
    • セグメントの名前を意味のあるものに変更して、参照しやすくすることができます。
  6. [セグメント階層] で、[セグメント 5] を選択し、[名前の変更] をクリックします。
  7. [セグメント名の変更] ダイアログ ボックスの [次の名前に変更] ボックスに「Sports Computer Games Fans」と入力し、[OK] をクリックします。
  8. [セグメント階層] で [セグメント 7] を選択します。次の点に注意してください。
    • クラスタ 7 に含まれるユーザーは、Site Server 3.0 Commerce Edition と SQL Server 7 を購入しています。これは、クラスタ 7 のユーザーが Web 開発者であることを示唆しています。
  9. [セグメント階層] で、[セグメント 7] を選択し、[名前の変更] をクリックします。
  10. [セグメント名の変更] ダイアログ ボックスの [次の名前に変更] ボックスに、「Web Developers」と入力し、[OK] をクリックします。
  11. [セグメント階層] で、[セグメント グループ 14] を選択します。次の点に注意してください。
    • 比較対照のセグメントを示すセクションには、セグメントおよびセグメント グループの要約や、その他の比較情報が表示されます。
    • モデル内のセグメントとセグメント グループをすべて閲覧して、セグメント モデルの詳細を把握する必要があります。
  12. [セグメント グループ 14] のすべてのセグメントを分析します。このセグメント グループが、ホーム ユーザーに相当すると推定できます。
  13. 名前を "セグメント グループ 14" から "ホーム ユーザー" に変更します。
  14. [セグメント階層] で、[セグメント グループ 12] を選択します。このセグメント グループは、小売業のユーザーに相当することがわかります。
  15. 名前を "セグメント グループ 12" から "小売業ユーザー" に変更します。
  16. [セグメント階層] で、[セグメント 3] を選択します。このセグメント グループは、開発者に相当することがわかります。
  17. 名前を "セグメント 3" から "開発者" に変更します。

  18. [セグメント ビューア : ソフトウェア セグメント] 画面で、ツール バーの レポート をクリックし、セグメント モデル全体の要約レポートを表示します。
    • このレポートをファイルに保存するには、インターネット ブラウザで [モデルの要約] Web ページを保存します。
    • ユーザー リストをエクスポートすることもできます。ユーザー リストは、特定の商品を購入する可能性のあるユーザーを対象としたダイレクト メール キャンペーンを作成し、対象化するときに使用します。
  19. [セグメント階層] セクションで、[ウェブ開発者] を選択し、ツール バーの エクスポート をクリックします。
  20. [セグメントをリストにエクスポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [リスト名の入力] | 「Web Developers」と入力します。
    [最小確率] 値が 0.50 になっていることを確認します。

    Commerce Server 2002 では、どのユーザーも、すべてのセグメントでメンバの一部になっています。セグメントには、特徴が似通っている他のセグメントと部分的に重なるという傾向があります。したがって、あるユーザーが 1 つのグループの 80% を占めるメンバで、他のグループの部分的なメンバであることもあります。ユーザーに割り当てる端数値が大きければ大きいほど、ユーザーのプロパティ値が、セグメントに含まれる典型的なユーザーのプロパティ値に近くなります。したがって、この端数値は、ユーザーが特定のセグメントのメンバになる可能性を表しています。

    [最小確率] には、ユーザーをエクスポート リストに含めるかどうかの基準として使われるしきい値を設定します。ユーザーのメンバシップの可能性が、ここに指定したしきい値を超えている場合、そのユーザーはエクスポート リストにはエクスポートされません。

    [最小確率] を大きな (1 に近い) 値に設定すると、ユーザー リストにエクスポートされるユーザーは非常に少なくなります。小さな (0 に近い) 値に設定すると、エクスポート リストにエクスポートされるユーザーは非常に多くなります。
  21. [OK] をクリックします。


実習 5 : カスタム プロファイル プロパティをユーザー リストにマップする

Web 開発者リストに含まれるすべてのユーザーを広告キャンペーンの対象に指定するには、ユーザー オブジェクトにカスタム プロファイル プロパティを追加して、そのプロパティを Web 開発者のリストにマップする必要があります。

ここでは、次のトピックについて説明します。

  • 手順 1 : カスタム プロファイル プロパティを追加する
  • 手順 2 : カスタム プロパティをユーザー リストにマップする


手順 1 : カスタム プロファイル プロパティを追加する

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、[ユーザー オブジェクト] を選択し、ツール バーの 開く をクリックします。
  3. [プロファイル : ユーザー オブジェクト] 画面の [プロパティ] ボックスで、[一般情報] を選択し、[追加] をクリックします。
  4. [追加] ダイアログ ボックスの [プロパティの新規追加] をクリックし、[OK] をクリックします。
  5. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「ListName」と入力します。
    [表示名] | 「リスト名」と入力します。
    [説明] | 「User List Name」と入力します。
    [型] | ボックスの一覧で、プロパティのデータ型として [文字列] を選択します。
  6. [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [アクティブ] | 新しいプロパティを [アクティブ] に指定します。
    [データへのマップ] 省略記号 [...] ボタンをクリックすると、[データ ソースの選択] ダイアログ ボックスが開きます。

    [データ ソースの選択] ダイアログ ボックスの [ユーザー オブジェクト] で、プロパティのデータ メンバとして [カスタム プロパティ 1 (STRING)] を選択します。

    [キーの種類] | 空欄のままにします。
    [必須] | このオプションの選択を解除します。
    [データウェアハウスにエクスポート] | このオプションの選択を解除します。
    [キャッシュ読み込みの遅延] | このオプションの選択を解除します。
    [複数値] | このオプションの選択を解除します。
    [検索可能] | このオプションの選択を解除します。
  7. 新しいプロパティを適用して [プロパティ] ボックスの一覧に表示するには、[適用] をクリックします。
  8. プロパティを保存するには、ツール バーの 保存 をクリックしてプロファイルを保存します。

プロファイル定義が新しいプロパティと共に保存されます。プロファイル定義にプロパティを追加したら、その変更内容を Web サイトに発行する必要があります。


手順 2 : カスタム プロパティをユーザー リストにマップする

  1. [プロファイル] の [ユーザー] をクリックします。
  2. 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  3. [検索条件] ボックスの一覧の [ユーザー リスト] をクリックします。
  4. [リスト名] ペインで、[Web Developers] をクリックし、[検索開始] をクリックします。
  5. [すべて選択] をクリックしてユーザー全員を選択し、ツール バーの 開く をクリックします。
  6. [選択したすべてのプロファイルの更新] 画面で、[新規] をクリックします。
  7. 式ビルダで、ボックスの一覧の [ユーザー オブジェクト] をクリックし、[一般情報] をクリックします。次に [リスト名] を選択します。
  8. 2 番目のドロップダウン リストで、[が右の項目と等しい] をクリックします。
  9. 3 番目のボックスに「WebDeveloper」と入力し、[適用] をクリックします。次に、ツール バーの 保存して前の画面に戻る をクリックします。
  10. [プロファイル] の [プロファイルの発行] をクリックします。
  11. [プロファイルの発行] 画面で、プロファイル定義への変更内容を発行するサイトをクリックし、ツール バーの 変更をサイトに発行し、キャッシュを更新 をクリックします。


実習 6 : キャンペーン式を作成する

割引の適用対象にする商品や商品カテゴリを決めたり、広告や割引の対象にするユーザーを指定したりするには、キャンペーン式を作成します。このシナリオでは、広告を対象化する式を作成します。対象化の基準は、ユーザーが WebDeveloper ListName のメンバであるかどうかです。また、Web 開発者を表す対象グループを作成します。

ここでは、次のトピックについて説明します。

  • 手順 1 : Web 開発者を対象化するための対象式を作成する
  • 手順 2 : Web 開発者を表す対象グループを作成する


手順 1 : Web 開発者を対象化するための対象式を作成する

  1. [キャンペーン] の [キャンペーン式] をクリックします。
  2. [キャンペーン式 : 対象式] 画面で、ツール バーの 新規 をクリックします。
  3. [対象式] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「WebDeveloper」と入力します。
    [説明] | 「Web 開発者」と入力します。
    [次の式に基づいて対象化します]
    • 1 番目のボックス ボックスの一覧の [ユーザー オブジェクト] をクリックし、[一般情報] の下にある [リスト名] をクリックします。
    • 2 番目のボックス ボックスの一覧で、演算子として [が右の項目と等しい] を選択します。
    • 3 番目のボックス 「WebDeveloper」と入力します。
  4. [適用] をクリックします。
  5. 新しい対象式が [次の式に基づいて対象化します] ボックスに追加されます。
  6. 対象式を保存するには、[保存] をクリックします。


手順 2 : Web 開発者を表す対象グループを作成する

  1. [キャンペーン] の [対象グループ] をクリックします。
  2. [対象グループ] 画面で、ツール バーの 新規 をクリックします。
  3. [対象グループ : 新規] 画面で、次の操作を行います。
    項目 | 操作
    [対象グループ名] | 「WebDeveloper」と入力します。[新規] をクリックします。
    [式] | ボックスの一覧の [WebDeveloper] をクリックします。
    [アクション] | ボックスの一覧で、新しい対象グループのアクションとして [適用] を選択し、[確認] をクリックします。
  4. 対象グループを保存して [対象グループ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。


実習 7 : 広告キャンペーンを作成する

特定のキャンペーン用の広告を作成するには、キャンペーン マネージャ モジュールを使用します。まず、広告の種類を選択します。表示頻度 (NOD) のスケジュールに応じて、有料広告または自社広告のどちらかを選択します。また、1 回のセッション中にユーザーにコンテンツを表示する回数の上限を設定することもできます。同じ業種で競合している複数の企業の広告が同じページに表示されないようにするには、広告の業種コードを選択します。

このシナリオでは、Web 開発者向けの新しい広告キャンペーンを作成し、実習 6 で作成したキャンペーン式を適用します。

新しい広告キャンペーンを作成するには、次の操作を行います。

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、[Microsoft Advertising] を展開し、[Advertising Demo Ads] を展開します。次に、ツール バーの 新規 をクリックします。次に、ボックスの一覧の [新しい広告] をクリックして新しい広告を作成します。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - 新規 (広告)] 画面の [広告プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [広告名] | 「WebDevAd」と入力します。
    [状態] | [アクティブ] を選択します。
    [種類] | ボックスの一覧の [自社広告] をクリックします。
  4. [広告の対象] セクションの [対象グループ] ボックスで、WebDeveloper を選択し、[追加] をクリックします。
  5. [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | ボックスの一覧の [フル バナー (468x60)] をクリックします。
    [種類] | ボックスの一覧の [イメージ] をクリックします。
    [イメージの保存場所] | Commerce Server 2002 の広告が保存されている場所を入力します。
    [クリック時のリンク先] | 「http://www.microsoft.com/CommerceServer」と入力します。
  6. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。
  7. [キャンペーン] の、[キャンペーンの発行] をクリックします。
  8. [キャンペーンの発行] 画面で、発行するキャンペーン項目を選択し、ツール バーの 変更をサイトに発行し、キャッシュを更新 をクリックします。

    キャンペーン項目が運用サイトに送信されます。サイトが更新され、新しいキャンペーン項目が追加されます。


実習 8 : 広告キャンペーンを確認する

セグメント モデルによって分類されたユーザーを対象とするキャンペーンが正しく機能しているかどうかを確認するには、Predictor Demo サイトに Web 開発者ユーザー リストのユーザーとしてログインし、Commerce Server 2002 のバナー広告を見てみます。Web 開発者ユーザー リストのユーザーとして認証を受けるには、このリストに含まれるユーザーのユーザー ID とパスワードが必要です。Commerce Server 2002 のパスワードは暗号化されているため、いずれかのユーザーのパスワードを再設定します。

ここでは、次のトピックについて説明します。

  • 手順 1 : ユーザー リストに含まれるユーザーのユーザー ID とパスワードを取得する
  • 手順 2 : Predictor Demo サイトにユーザーとしてログインする


手順 1 : ユーザー リストに含まれるユーザーのユーザー ID とパスワードを取得する

  1. [プロファイル] の [ユーザー] をクリックします。
  2. 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  3. [検索条件] ボックスの一覧の [ユーザー リスト] をクリックします。
  4. [リスト名] ペインで、[Web Developers] をクリックし、[検索開始] をクリックします。
  5. リストから任意のユーザー (Jane User など) を選択し、ツール バーの 開く をクリックします。
  6. [プロファイルの更新 : <ユーザー名>] 画面の [一般情報] セクションで、[ユーザー パスワード] ボックスの省略記号 ([...]) ボタンをクリックします。
  7. [パスワードの再設定] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [新しいパスワード] | 「password」と入力します。
    [パスワードの確認] | 「password」と入力します。
  8. [OK] をクリックします。
  9. [ビジネス デスク] セクションの [取引先サービス ロール フラグ] ボックスで、ボックスの一覧の [標準ユーザー] をクリックし、ツール バーの 保存して戻る をクリックします。


手順 2 : Predictor Demo サイトにユーザーとしてログインする

  1. Internet Explorer を起動し、http://localhost/predictordemo と入力して Predictor Demo サイトにアクセスします。
  2. 「手順 1」で取得したユーザー ID とパスワードを使って、サイトにログインします。

Commerce Server 2002 のバナーが表示されます。


ダイレクト メーラー チュートリアル

ダイレクト メールを作成して、対象として設定した特定のユーザー グループだけに電子メールを配信するようにすると、配信するメールにユーザーが反応する確率が高くなり、売り上げや Web サイト訪問者の増加につながります。作成するダイレクト メール メッセージに添付ファイルを設定して、ダイレクト メールと一緒に他の情報も送ることができます。ダイレクト メール サービスは、パーソナライズされた電子メール メッセージを大量のユーザーに一括送信するように設計されています。

このチュートリアルでは、あなたは、キャンプ用品を販売する Adventure-Works 社のシステム管理者です。キャンペーンの管理担当者は、ダイレクト メーラーを使って、新規登録済みユーザーに軽登山靴を宣伝するためのパーソナライズされた電子メール メッセージの広告を配信しようとしています。

ダイレクト メーラーの詳細については、「ダイレクト メーラーの実行」を参照してください。ダイレクト メーラーのアーキテクチャについては、「ダイレクト メールを処理する」を参照してください。

ここでは、次のトピックについて説明します。

  • ダイレクト メーラー チュートリアルの使用を準備する
  • 実習 1 : ダイレクト メーラーを設定する
  • 実習 2 : 配信用のメッセージ本文を作成する
  • 実習 3 : マーケティング キャンペーンを作成する
  • 実習 4 : ダイレクト メールを作成する
  • 実習 5 : ダイレクト メーラー ジョブの状態を監視する


ダイレクト メーラー チュートリアルの使用を準備する

ダイレクト メーラー チュートリアルを使用するには、次の準備作業を行う必要があります。

注

  • 次に示す作業を行う前に、Commerce Server の全機能を 1 台のコンピュータにインストールする必要があります。詳細については、「インストール ガイド」を参照してください。
  • サイトで Windows 統合セキュリティを利用する場合は、ダイレクト メーラーおよびリスト マネージャを実行するサービス アカウントに適切なアクセス許可を付与してください。Commerce Server ダイレクト メール サービスの構成を変更すると、Windows 統合セキュリティを利用することができます。詳細については、「サービス アカウントにセキュリティを設定する」を参照してください。
  • 運用中の Commerce Server コンピュータにこのチュートリアルをインストールすることはお勧めしません。

ここでは、次のトピックについて説明します。

  • ダイレクト メーラー チュートリアル用に Retail サイトをアンパックする
  • Retail ビジネス デスク アプリケーションをインストールする
  • NewUsers リストを作成およびインポートする
  • ユーザー プロファイルを追加する


ダイレクト メーラー チュートリアル用に Retail サイトをアンパックする

Commerce Server サイト パッケージャを使って、ダイレクト メーラー チュートリアルで使う Retail サイトをアンパックする必要があります。サイトをアンパックする方法については、「Commerce Server 2002のインストール」を参照してください。


Retail ビジネス デスク アプリケーションをインストールする

Retail サイトをアンパックした後で、ビジネス デスク アプリケーションの Uniform Resource Locator (URL) に接続すると、Commerce Server ビジネス デスク クライアントをインストールできます。

ビジネス デスク クライアントをインストールするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Internet Explorer] をクリックします。
  2. インストールされている Retail ビジネス デスクの URL (たとえば、http://<コンピュータ名>/RetailBizdesk) を [アドレス] ボックスに入力し、Enter キーを押します。
  3. [フォルダの参照] ダイアログ ボックスで、HTML アプリケーション (HTA) ファイルの格納場所を指定します。既定のフォルダをそのまま使用するか、他のフォルダを選択し、[OK] をクリックします。

    ビジネス デスク クライアントのセットアップ プログラムが起動します。Microsoft ActiveX コントロールをダウンロードしていない場合は、[ビジネス デスク クライアントのセットアップ] 画面の上部にトラブルシューティングのヒントが表示されます。ビジネス デスク クライアントのインストールには、Microsoft ActiveX コントロールが必要です。

    画面の下部には、各処理が完了するたびにチェック マークが表示されます。4 つの処理がすべて終了すると、ビジネス デスクのインストールは完了します。ビジネス デスクへのリンクが画面に表示されます。

    注

    • ActiveX コントロールをダウンロードできない場合は、[ビジネス デスク クライアントのセットアップ] 画面に表示される指示に従って操作してください。
  4. ビジネス デスクのインストールが完了したら、Internet Explorer を終了します。

ビジネス デスクのショートカット アイコンが、デスクトップと [スタート] メニューに配置されます。


NewUsers リストを作成およびインポートする

ダイレクト メール キャンペーンを作成するためには、まず NewUsers リストを作成する必要があります。リストを作成したら、それをリスト マネージャにインポートします。このリストは、ダイレクト メール メッセージの送付先にするユーザーの一覧になります。

注

  • このチュートリアルでは便宜上、ダイレクト メール キャンペーン用の NewUsers リストを使います。実際の運用環境では、開発者が新規登録済みユーザー レポートを実行し、その結果をリスト マネージャにエクスポートしてください。

リスト マネージャにリストをインポートする方法の詳細については、「リストをインポートおよびエクスポートする」を参照してください。

NewUsers リストを作成するには

NewUsers リストをインポートするには

NewUsers リストを作成するには

  1. 次のリストをコピーして、メモ帳に貼り付けます。

    BettyUser@microsoft.com,BettyUser

    JackUser@Microsoft.com,JackUser

    JaneUser@Microsoft.com,JaneUser

    JoeUser@Microsoft.com,JoeUser

  2. リストを NewUsers という名前で保存します。保存場所は <ドライブ名>:\ProgramFiles\Microsoft Commerce Server 2002 にします。

これで、リスト マネージャにリストをインポートできます。

NewUsers リストをインポートするには

  1. ビジネス デスクで、[キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、ツール バーの リストのインポート をクリックします。
  3. ボックスの一覧の [ファイル] をクリックします。
  4. [リストのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [リストの種類] | [静的] を選択します。
    [コピー先のリスト名を入力] | 「NewUsers」と入力します。
    [サーバーのファイルを指定] | 「<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\NewUsers.txt」と入力します。
  5. [OK] をクリックします。

"NewUsers" がリスト マネージャに表示されます。このリストは、後ほどダイレクト メール キャンペーンで使います。


ユーザー プロファイルを追加する

このチュートリアルでは、パーソナライズされたメッセージ本文をダイレクト メーラーに提供するためのパーソナライズされた Active Server Pages (ASP) ページを作成します。たとえば、電子メールの書き出しを "拝啓 サイト訪問者の皆様" などとするのではなく、"拝啓 <電子メール受信者の氏名> 様" とすることができます。ここで使っているメーリング リストには、ユーザー全員の電子メール アドレスとユーザー ID が記述されています。ダイレクト メーラーは、メーリング リストに含まれている受信者ごとに、ユーザー ID を基にしてユーザー プロファイル マネージャ cookie を作成します。

この実習では、Microsoft SQL Server に 4 名分のユーザー プロファイルを追加します。

注

  • Microsoft SQL Server にユーザー プロファイルを追加するときは、各受信者のユーザー ID を入力することになります。ユーザー プロファイルに定義する各ユーザーのユーザー ID は、メーリング リストに含まれている各受信者のユーザー ID と一致していなければなりません。

ユーザー プロファイルを追加するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server グループ\<SQL Server コンピュータ名>\データベース\Retail_commerce
    開いたら、[テーブル] をクリックします。
  3. 右側のウィンドウで、画面の下の方へスクロールしていき、UserObject テーブルを右クリックします。次に、[テーブルを開く] をポイントし、[全行を返す] をクリックします。
  4. BettyUser についての情報を入力します。
    フィールド | 入力するキー
    g_user_id | BettyUser
    u_user_title | システム管理者
    u_first_name | Betty
    u_last_name | User
    u_email_address | BettyUser@microsoft.com
    U_logon_name | BettyUser
  5. JackUser についての情報を入力します。
    フィールド | 入力するキー
    g_user_id | JackUser
    u_user_title | システム管理者
    u_first_name | Jack
    u_last_name | User
    u_email_address | JackUser@microsoft.com
    U_logon_name | JackUser
  6. JaneUser についての情報を入力します。
    フィールド | 入力するキー
    g_user_id | JaneUser
    u_user_title | システム管理者
    u_first_name | Jane
    u_last_name | User
    u_email_address | JaneUser@microsoft.com
    U_logon_name | JaneUser
  7. JoeUser についての情報を入力します。
    フィールド | 入力するキー
    g_user_id | JoeUser
    u_user_title | システム管理者
    u_first_name | Joe
    u_last_name | User
    u_email_address | JoeUser@microsoft.com
    U_logon_name | JoeUser
  8. SQL Server Enterprise Manager を終了します。


実習 1 : ダイレクト メーラーを設定する

ここでは、ダイレクト メーラーを設定してドロップ ディレクトリを使えるようにします。ドロップ ディレクトリを使うと、ダイレクト メーラー ジョブを Microsoft Exchange Server が処理できるようになります。つまり、ファイルを非同期に配信できます。ダイレクト メーラーと Exchange が非同期にリンクされるので、ダイレクト メーラー ジョブを配信するタイミングは早くなります。ダイレクト メーラーを構成する方法の詳細については、「ダイレクト メーラーを構成する」を参照してください。

ダイレクト メーラー ジョブの実行方法を制御するには、ダイレクト メーラーのプロパティを変更する必要があります。ここでは、ダイレクト メーラーによる配信先がドロップ ディレクトリになるように設定を変更します。

ダイレクト メーラーを設定してドロップ ディレクトリを使うようにするには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Direct Mail on <サーバー名>] を右クリックし、[プロパティ] をクリックします。
  2. [DirectMail on <サーバー名> のプロパティ] ダイアログ ボックスの [プロパティ] タブで、次の操作を行います。
    項目 (プロパティ) | 操作 (選択したプロパティの値)
    [配信場所] | 「<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\DML_drop」と入力します。
    [配信方法] | 「2」と入力して、ダイレクト メールがドロップ ディレクトリに配信されるようにします。
    [ログ フォルダ パス] | ログ フォルダのパスが <ドライブ名>:\WINNT\System32\LogFiles になっていることを確認します。
    [再試行回数] | DirectMailer データベースへの接続エラーが発生した場合に、接続を再試行する回数です。既定値の 10 をそのまま使います。
    [パイプライン構成ファイル] | パイプライン構成ファイル (DMLPipe.pcf) が含まれるフォルダのパスです。既定値の <ドライブ名>:\Program Files\Microsoft Commerce Server 2002\DMLPipe.pcf のままにします。
    [再試行間隔] | データベースへの接続が再試行されるまでの秒数です。既定値の 30 をそのまま使います。
  3. [OK] をクリックします。


実習 2 : 配信用のメッセージ本文を作成する

ここでは、パーソナライズされたメッセージ本文をダイレクト メーラーに提供するためのパーソナライズされた Active Server Pages (ASP) ページを作成します。ダイレクト メール メッセージの内容 (コンテンツ) を作成する方法は、いくつかあります。ダイレクト メーラーで使われるメッセージ形式については、「メッセージ形式」を参照してください。

このチュートリアルでは、ダイレクト メール コンテンツの作成に ServiceReminder.asp を使うことにします。この ASP ファイルの中には、Adventure-Works 社が Web サイトに追加した商品を新しいユーザーに紹介するための、パーソナライズされた電子メール メッセージを記述します。さらに、顧客がメーリング リストから脱退する場合に備えて、脱退手続きのページへのリンクも記述します。

パーソナライズされた Active Server Pages (ASP) ページを作成するには

  1. <ドライブ名>:\Inetpub\wwwroot\retail フォルダにある ServiceReminder.asp ファイルをメモ帳で開いて、この ASP ページを編集します。
  2. ServiceReminder.asp の内容を次のように変更します。
    変更前 | 変更後
    From:E-mail Notifier | From:Adventure-Works
    Subject:New product notice | Subject:New customer notice

    注

    • この ASP ページでは、strUserID = objAuthManager.GetUserID(1) という式を使って、UserID を AuthManager オブジェクトから取得します。ダイレクト メーラーは、この ASP ファイルへのアクセス中にユーザーの認証 cookie を受け取ります。UserObject プロファイルは、プロファイル サービスから取得されます。
  3. ASP ファイルを保存して閉じます。


実習 3 : マーケティング キャンペーンを作成する

ここでは、ダイレクト メールを利用したマーケティング キャンペーンを作成して、新しいユーザーを歓迎する意志を示します。マーケティング キャンペーンは、ダイレクト メールなどのコミュニケーション手段を使って特定の目的を達成しようとするものです。たとえば、市場シェアの拡大、新しい商品の紹介、または顧客の維持を図ります。マーケティング キャンペーンによって、顧客から契約や注文を得ることを目指します。マーケティング キャンペーンを作成するには、キャンペーン マネージャ モジュールに顧客を追加し、その顧客を対象にした広告キャンペーンを作成します。

  • 手順 1 : キャンペーンの顧客を追加する
  • 手順 2 : キャンペーンを追加する


手順 1 : キャンペーンの顧客を追加する

  1. Commerce Server ビジネス デスクで、[キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい顧客] をクリックします。
  3. [キャンペーン マネージャ - 新規 (顧客)] 画面の [顧客プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Adventure-Works」と入力します。
    [種類] | ボックスの一覧の [自社] をクリックします。
    [業種] ボックスの一覧の [トラベル] をクリックします。

    注

    • 業種コードを使うと、広告に関連付けられている業種を特定できるため、同じ業種で競合している複数の企業の広告が同じページに表示されないようにすることができます。業種コードについては、「業種コードを追加する」を参照してください。
  4. 新しい顧客を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい顧客 "Adventure-Works" が保存され、[キャンペーン マネージャ] 画面に表示されます。


手順 2 : キャンペーンを追加する

  1. [キャンペーン マネージャ] 画面で、[Adventure-Works] を選択します。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しいキャンペーン] をクリックします。
  3. [キャンペーン マネージャ - Adventure-Works - 新規 (キャンペーン)] 画面の [キャンペーン プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [キャンペーン名] | 「New Users」と入力します。
    [開始日] | ドロップダウン カレンダーから昨日の日付を選択します。
    [終了日] | ドロップダウン カレンダーから、今日から 1 か月後の日付を選択します。
    [状態] | ボックスの一覧の [アクティブ] をクリックします。
  4. キャンペーンを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

New Users キャンペーンが保存されます。


実習 4 : ダイレクト メールを作成する

ここでは、ダイレクト メール キャンペーン項目を作成します。一連の新規登録済みユーザー宛てにダイレクト メールを送信して、軽登山靴の特別割引を通知します。また、テスト メールを送信して、それが確実に送信されたかどうかを調べます。

このチュートリアルでは、サイトの開発者が、過去 2 か月間のログ ファイルをインポート済みであること、および "新規登録済みユーザー" 静的レポートが実行済みであることを前提としてます。サイト開発者がこのレポートを実行し終わったら、さらに、その結果をリスト マネージャにリストとしてエクスポートしてもらいます。この実習では便宜上、「ダイレクト メーラー チュートリアルの使用を準備する」の実習でリスト マネージャにインポートした NewUsers リストを使います。

ログ ファイル データのインポートとレポートの実行については、「レポートを実行する」を参照してください。

この実習では、次の作業を行います。

  • 手順 1 : ダイレクト メール キャンペーン項目を作成する
  • 手順 2 : テスト メールが送信されたことを確認する


手順 1 : ダイレクト メール キャンペーン項目を作成する

注

  • ダイレクト メール キャンペーンを作成する前に、必ず SQL Server Agent を実行しておいてください。SQL Server Agent が動作していない場合は、ダイレクト メール キャンペーンを保存できません。
  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で [Adventure-Works] を展開し、[New Users] キャンペーンを選択します。
  3. ツール バーの 新規 をクリックし、ボックスの一覧の [新しいダイレクト メール] をクリックします。
  4. [キャンペーン マネージャ - Adventure-Works – New Users - 新規 (ダイレクト メール)] 画面の [ダイレクト メールのプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ダイレクト メール名] | 「ターゲットメール」と入力します。
    [送信元電子メール アドレス] | 「WebMaster@Adventure-Works.com」と入力します。
    [メッセージの件名] | 「Special discount on hiking boots for our new customers」と入力します。
    [メッセージ本文を含む
    ファイル パスまたは URL]     		「http://<サーバー名>/retail/servicereminder.asp」と入力します。
    [メーリング リスト] | ボックスの一覧の [NewUsers] をクリックします。
    [ユーザーごとにパーソナライズするダイレクト メール] | このチェック ボックスがオンになっていることを確認してください。この実習では、パーソナライズされたダイレクト メール メッセージを送信します。
    [メールの形式] ボックスの一覧の [MHTML] をクリックします。

    メールの形式については、「メッセージ形式」を参照してください。
  5. [メール スケジュール] セクションで、次の操作を行います。
    項目 | 操作
    [開始日] | ボックスの一覧で、今日の日付をクリックします。
    [開始時刻] ボックスの一覧で、現在の時刻の次の正時をクリックします。

    注

    • 時刻は 24 時間制です。たとえば、現在の時刻が午後 2 時 45 分の場合は、ボックスの一覧の [1500] をクリックします。
    [メールの送信間隔] | [1 回限り] が表示されていることを確認します。
  6. [テスト] セクションで、次の操作を行います。
    項目 | 操作
    [テスト リスト] | ボックスの一覧の [NewUsers] をクリックします。
    [テスト メールの送信] | クリックしてテスト メールを送信します。
  7. [ダイレクト メール] ダイアログ ボックスの [はい] をクリックします。[ビジネス デスク] ダイアログ ボックスが表示されたら、[はい] をクリックします。
  8. [キャンペーン マネージャ] 画面に戻るには、ツール バーの 戻る をクリックします。

ダイレクト メール キャンペーンがキャンペーン マネージャ モジュールに追加されます。「手順 2 : テスト メールが送信されたことを確認する」に進みます。


手順 2 : テスト メールが送信されたことを確認する

「実習 1 : ダイレクト メーラーを設定する」で、電子メール メッセージがドロップ ディレクトリに配信されるように指定しました。テストを実施すると、電子メールがサーバーの DML ドロップ ディレクトリに送信されていることを確認できます。

  1. サーバーの DML_drop ディレクトリに移動します。エクスプローラを使って、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\DML_drop に移動します。 .eml という拡張子を持つファイルが表示されます。このファイルの中にはダイレクト メール メッセージが含まれています。
  2. .eml ファイルをダブルクリックして、テスト メールを表示します。

テスト メールの内容は、次のようになっています。

テスト メールの内容のうち、UserID は AuthManager オブジェクトから取得され、UserObject プロファイルはプロファイル サービスから取得されます。


実習 5 : ダイレクト メーラー ジョブの状態を監視する

ここでは、SQL Server Agent を使って、ダイレクト メーラー ジョブの状態を表示し、ジョブがスケジュールに従って実行される前に手動で実行します。

ダイレクト メーラー ジョブの状態を表示するには、コマンド ライン インターフェイスを使います。ダイレクト メーラー ジョブの実行中に発生する可能性のあるエラーについては、「ダイレクト メーラー ジョブを監視する」を参照してください。

  • 手順 1 : SQL Server Agent でダイレクト メーラー ジョブの状態を表示する
  • 手順 2 : SQL Server Agent でダイレクト メーラー ジョブを開始する
  • 手順 3 : ダイレクト メーラー ジョブの状態を監視する


手順 1 : SQL Server Agent でダイレクト メーラー ジョブの状態を表示する

ダイレクト メーラー ジョブの詳細を表示するには、SQL Server Agent (常に実行状態) を使います。SQL Server Agent では、ダイレクト メーラー ジョブの状態、最後に実行された日付と時刻、および次の実行予定時刻を確認できます。

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server グループ\<SQL Server 名>\管理\SQL Server エージェント
  3. [ジョブ] をクリックします。

SQL Server Enterprise Manager の右側のウィンドウに、ダイレクト メーラー ジョブが表示されます。


手順 2 : SQL Server Agent でダイレクト メーラー ジョブを開始する

メール ジョブの開始と停止、およびジョブ ヒストリの表示には SQL Server Agent を使います。

  1. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server Group\<SQL Server Name>\Management\SQL Server Agent
  2. [ジョブ] をクリックします。SQL Server Enterprise Manager の右側のウィンドウに、ダイレクト メーラー ジョブが表示されます。
  3. ダイレクト メーラー ジョブを右クリックし、[ジョブの開始] をクリックします。

注

  • ダイレクト メーラー ジョブのスケジュールを設定し直すには、Commerce Server ビジネス デスクのキャンペーン マネージャ モジュールを使います。


手順 3 : ダイレクト メーラー ジョブの状態を監視する

コマンド ライン インターフェイスを使って、メール送信を行うダイレクト メーラー ジョブの状態 (実行中、中断または終了、正常終了) を調べることができます。

  • コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。

ダイレクト メーラー ジョブの一覧が表示されます。

次の表は、ジョブの状態コードの一覧を示しています。

コード | 説明
0 | ジョブは作成済みですが、初期化されていません。
1 | ジョブは定義済みですが、まだ実行されていないか (非アクティブ)、または終了しました。
2 | ジョブは完了しました。
3 | ジョブは実行中です (アクティブ)。
4 | ジョブは実行中ですが、現在は中断しています (一時停止していますが、まだアクティブです)。
-2 | ジョブはダイレクト メーラーによって停止されました。深刻な問題が発生したか、またはエラーのしきい値が制限を超えました。
-3 | ジョブは css_site として定義されましたが、実行時に一部のデータが利用できませんでした。


B2C サイトのチュートリアル

Microsoft Commerce Server 2002 には、Web 用の電子商取引アプリケーションの構築に役立つ包括的なツール群が用意されています。このチュートリアルでは、Commerce Server を使って Web サイトを管理する方法を順を追って説明していきます。

ここでは、次のトピックについて説明します。

  • B2C サイトのシナリオについて
  • チュートリアルの使用を準備する
  • 実習 1 : カタログを構築する
  • 実習 2 : マーケティング キャンペーンを作成する
  • 実習 3 : 商品別の売り上げを分析する


B2C サイトのシナリオについて

あなたは、キャンプ用品を販売する Adventure Works 社のビジネス マネージャです。現在は通信販売のカタログで商品を頒布していますが、キャンプ用品をオンラインで販売するために、Web サイトを構築する開発者を新たに雇用しました。

Adventure Works 社の現在のカタログは、AdvWorksCatalog.xml ファイルに格納されています。商品は日本とアメリカの顧客に販売する予定なので、円とドルのどちらが使われてもトランザクションを処理できるように Web サイトを設計します。さらに、新設したキャンプ場マップ事業部のために新しいカタログを作成します。

このチュートリアルでは、次の作業を行います。

  • 既存の基本カタログをビジネス デスクにインポートします。
  • 新しい基本カタログを作成します。
  • 2 つの基本カタログを統合して、仮想カタログを作成します。
  • 広告キャンペーンを作成します。このキャンペーンの対象は、Web サイトで買い物をする特定のアウトドア愛好者です。


チュートリアルの使用を準備する

このチュートリアルを始める前に、システム管理者にいくつかの準備作業をしてもらう必要があります。システム管理者の作業が完了したら、B2C チュートリアルの実習 1 に進むことができます。

注

  • 次に示す作業を行う前に、Commerce Server の全機能を 1 台のコンピュータにインストールする必要があります。詳細については、「Commerce Server 2002 インストール ガイド」を参照してください。運用中の Commerce Server コンピュータにこのチュートリアルをインストールすることはお勧めしません。

システム管理者は、次の作業を行う必要があります。

  • チュートリアル用の Retail サイトをアンパックする
  • チュートリアル用のサイトに画像ファイルをコピーする
  • チュートリアルでドメインを越えてデータ ソースにアクセスする


チュートリアル用の Retail サイトをアンパックする

システム管理者は、Commerce Server サイト パッケージャを使って Retail サイトをアンパックする必要があります。このサイトは、B2C チュートリアル全体を通じて使用されます。

Commerce Server Retail サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。

サイトをアンパックする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。


チュートリアル用のサイトに画像ファイルをコピーする

チュートリアルを実行する前に、システム管理者は、サンプル画像ファイルを <ドライブ名>:\Program Files\Microsoft Commerce Server 2002\Documentation フォルダから <ドライブ名>:\Inetpub\wwwroot\Retail\Images\Catalog フォルダにコピーする必要があります。.gif という拡張子が付いたファイルをすべてコピーしてください。

システム管理者がこの作業を行っておくことで、チュートリアルの実習者は、チュートリアルで作成した広告を表示できるようになります。


チュートリアルでドメインを越えてデータ ソースにアクセスする

SQL Server などのデータ ソースが、ログオン先ドメイン以外のドメインに置かれている場合は、ビジネス デスクのクライアント コンピュータで次の操作を行います。不明な点がある場合は、システム管理者に問い合わせてください。

ドメイン間でデータ ソースにアクセスするには

  1. ビジネス デスク クライアントのホストとなっているコンピュータまたはサーバーで、Internet Explorer の [ツール] メニューの [インターネット オプション] をクリックします。
  2. [インターネット オプション] ダイアログ ボックスの [セキュリティ] タブで、[レベルのカスタマイズ] をクリックします。
  3. [セキュリティの設定] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [その他] の [ドメイン間でのデータ ソースのアクセス] | [有効にする] をクリックします。
    [異なるドメイン間のサブフレームの移動] | [有効にする] をクリックします。
  4. [OK] をクリックします。
  5. [警告] ダイアログ ボックスで、[はい] をクリックします。
  6. [セキュリティの設定] ダイアログ ボックスで、[OK] をクリックします。
  7. ブラウザ ウィンドウを閉じます。

設定したコンピュータで、ドメインを越えてデータ ソースにアクセスすることが可能になります。


実習 1 : カタログを構築する

完了までの予測時間 : 60 分

シナリオ : 日本とアメリカが商品の送付先になるため、送付方法を 2 種類のロケール (言語) で作成する必要があります。既存の Adventure Works カタログをインポートし、さらにキャンプ場マップのカタログを新しく作成することも必要です。会社に新設した書籍部門では、キャンプやサバイバル関連の書籍、マップなど、キャンピングに関する文献を取り扱います。顧客の使い勝手を考慮して、2 つのカタログ内を一度に検索できるようにする必要もあります。

この実習では、次の作業を行います。

  • 送付方法と税率を追加します。
  • 書籍のカタログを新しく作成し、そのカタログの中に商品を作成します。
  • 既存のカタログ (AdvWorksCatalog.xml) をインポートします。
  • 新しいカタログと Adventure Works の両方が含まれる仮想カタログを作成します。
  • 商品の販売対象となるユーザーを指定します。
  • サイト用語と新しいユーザーを追加します。

その後の実習では、広告キャンペーンを作成して、キャンプ カタログ内の商品を宣伝します。さらに、レポートを実行して、売り上げの増加や広告キャンペーンの効果を確認します。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : 送付方法と税率を追加する
  • レッスン 2 : 基本カタログを作成する
  • レッスン 3 : カタログをインポートする
  • レッスン 4 : 仮想カタログを作成する
  • レッスン 5 : 商品の対象ユーザーを指定する
  • レッスン 6 : 新しいプロファイルを持つユーザーを追加する


レッスン 1 : 送付方法と税率を追加する

オンライン カタログに記載された商品の注文を受け付けられるようにするには、送付方法と税率を設定する必要があります。キャンプ関連商品の販売先は日本とアメリカの顧客なので、日本とアメリカのそれぞれについて、現地で営業している運送業者に合わせた送付方法と税率を追加する必要があります。ビジネス デスクの注文モジュールを使用すると、さまざまな国/地域、または都道府県/州に合わせて、送付方法の追加と変更、および税率の設定を行うことができます。

このレッスンでは、次の操作を行います。

  • 手順 1 : 送付方法を追加する
  • 手順 2 : 別のロケールの送付方法を追加する
  • 手順 3 : 税率を追加する
  • 手順 4 : 別のロケールの税率を追加する
  • 手順 5 : 注文コードを発行する


手順 1 : 送付方法を追加する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [注文] の [送付方法] をクリックします。
  3. [送付方法] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [代金で課金] をクリックします。
  4. [代で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [名前] | 「XX 運送」と入力します。
    [説明] | 「大切なお荷物、お届けします。」と入力します。
    [有効] | [送付方法を有効にする] チェック ボックスがオンになっていることを確認します。
  5. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「1000」と入力します。
    [送料] | 「500」と入力します。
  6. [確認] をクリックします。
  7. 他の送付方法を追加するために、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「2000」と入力します。
    [送料] | 「1000」と入力します。
  8. [確認] をクリックします。
  9. 次の操作を行い、2,000 を超える代金に対する送付方法を追加します。
    項目 | 操作
    [代金 (～まで)] | [2000 を超える] をダブルクリックして、[送料] ボックスを利用可能な状態にします。
    [送料] | 「1500」と入力します。
  10. [確認] をクリックします。

    代金の小計を基準にした新しい送付方法が定義されます。

  11. 保存して前の画面に戻る をクリックして、新しい送付方法を保存して [送付方法] 画面に戻ります。

商品を日本国内に送付する場合の送付方法が追加されました。「手順 2 : 別のロケールの送付方法を追加する」に進み、アメリカ国内に送付される商品のための送付方法を追加します。


手順 2 : 別のロケールの送付方法を追加する

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [代金で課金] をクリックします。
  3. [代金で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [英語 - 米国] をクリックします。
    [名前] | 「Vigor Airlines」と入力します。
    [説明] | 「We will ship it for you.」と入力します。
    [有効] | [送付方法を有効にする] チェック ボックスがオンになっていることを確認します。
  4. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「1000」と入力します。
    [送料] | 「500」と入力します。
  5. [確認] をクリックします。
  6. 他の送付方法を追加するために、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「2000」と入力します。
    [送料] | 「1000」と入力します。
  7. [確認] をクリックします。
  8. 次の操作を行い、2,000 を超える代金に対する送付方法を追加します。
    項目 | 操作
    [代金 (～まで)] | [2000 を超える] をダブルクリックして、[送料] ボックスを利用可能な状態にします。
    [送料] | 「1500」と入力します。
  9. [確認] をクリックします。

    代金の小計を基準にした、アメリカ国内のユーザーのための送付方法が新しく定義されます。

  10. 保存して前の画面に戻る をクリックして、新しい送付方法を保存して [送付方法] 画面に戻ります。
  11. この言語の送付方法と送料が追加されたことを確認するには、画面の最上部にあるボックスの一覧の [英語 - 米国] をクリックします。送付方法の一覧に [Vigor Airlines] とその説明 [We will ship it for you.] が表示されます。

    送付方法が保存され、Retail サイトでの購入に対して代金の小計を基準に送料が適用されます。

商品をアメリカ国内に送付する場合の送付方法が追加されました。「手順 3 : 税率を追加する」に進み、日本国内のユーザーが購入した商品に適用される税率を追加します。


手順 3 : 税率を追加する

  1. [注文] の [税率] をクリックします。
  2. [税] 画面の [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [国/地域] | ボックスの一覧の [日本] をクリックします。
    [都道府県/州] | ボックスの一覧の [すべての都道府県/州] をクリックします。
    [税率 (%)] | 「10」と入力します。
  3. [確認] をクリックします。
  4. 新しい税率を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

税率が保存され、日本のユーザーが購入した商品に対して適用されます。

商品を日本国内に送付する場合の税率が追加されました。「手順 4 : 別のロケールの税率を追加する」に進み、アメリカ国内のユーザーが購入した商品に適用される税率を追加します。


手順 4 : 別のロケールの税率を追加する

  1. [注文] の [税率] をクリックします。
  2. [税] 画面の [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [国/地域] | ボックスの一覧の [アメリカ合衆国] をクリックします。
    [都道府県/州] | ボックスの一覧の [ワシントン] をクリックします。
    [税率 (%)] | 「10」と入力します。
  3. [確認] をクリックします。
  4. 新しい税率を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

税率が保存され、ワシントン州のユーザーが購入した商品に適用されます。「手順 5 : 注文コードを発行する」に進み、Retail Web サイトに送付方法と税率を発行します。


手順 5 : 注文コードを発行する

この実習で送付方法と税率を作成する前に、Retail サイトへのアクセスがあった場合、作成した送付方法と税率を Retail サイトに発行する必要があります。たとえば、システム管理者がこのチュートリアルの準備を調えたときに、Retail サイトにアクセスした可能性もあります。

  1. [注文] の [注文コードの発行] をクリックします。

    注

    • [注文コードの発行] 画面の [サイトに発行する項目] ボックスに項目が 1 つも表示されない場合は、サイトに注文コードを発行する必要はありません。その場合は「レッスン 2 : 基本カタログを作成する」に進みます。それ以外の場合には、次の手順に進みます。
  2. [注文コードの発行] 画面で、サイトに発行する項目 (送付方法と税率) をすべて選択します。
  3. ツール バーの 発行 をクリックします。

    注

    • [ビジネス デスク : エラー] ダイアログ ボックスが表示された場合は、[OK] をクリックします。

送付方法と税率が Web サーバーに送信され、Retail サイトで利用できるようになります。実習 1 が完了したら、Retail サイトを開いて注文を作成し、送付方法と税率がサイトに追加されたことを確認します。「レッスン 2 : 基本カタログを作成する」に進みます。


レッスン 2 : 基本カタログを作成する

シナリオ : "キャンプ場マップ" という名前の基本カタログを新しく作成することになりました。まず、マップのプロパティ定義とマップ商品を作成する必要があります。マップのプロパティは、たとえば "Map Title"、マップ商品は "North Cascades Mountain Map" となります。

カタログに追加するプロパティと商品を作成したら、"キャンプ場マップ" という新しい基本カタログを作成します。

このレッスンでは、次の操作を行います。

  • 手順 1 : プロパティ定義を作成する
  • 手順 2 : 商品定義を追加する
  • 手順 3 : 新しい基本カタログを作成する


手順 1 : プロパティ定義を作成する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [カタログ] モジュールの [カタログ定義デザイナ] をクリックします。
  3. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  4. [カタログ定義デザイナ : プロパティ定義] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [テキスト] をクリックします。
  5. [プロパティ定義 : 新規 (テキスト)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「MapTitle」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [商品リストに表示] | [はい] チェック ボックスをオンにし、商品リストにプロパティ定義を表示します。

    注

    • [プロパティ定義 : 新規 (テキスト)] 画面の値は既定値に設定されています。
  6. [プロパティ定義 : 新規 (テキスト)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「マップのタイトル」と入力します。
  7. [確認] をクリックします。
  8. 新しいプロパティ定義を保存して他のプロパティ定義を作成するために、ツール バーの 保存して新規作成 をクリックします。

    "保存しています。お待ちください" というメッセージがしばらく表示された後で、[新しいプロパティ定義] ダイアログ ボックスが表示されます。

  9. [新しいプロパティ定義] ダイアログ ボックスで、ボックスの一覧の [テキスト] をクリックし、[継続] をクリックします。
  10. [プロパティ定義 : 新規 (テキスト)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「MapLocation」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [商品リストに表示] | [はい] チェック ボックスをオンにし、商品リストにプロパティ定義を表示します。

    注

    • [プロパティ定義 : 新規 (テキスト)] 画面の値は既定値に設定されています。
  11. [プロパティ定義 : 新規 (テキスト)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「マップに描かれている場所」と入力します。
  12. [確認] をクリックします。
  13. 新しいプロパティ定義を保存して他のプロパティ定義を作成するために、ツール バーの 保存して新規作成 をクリックします。

    "保存しています。お待ちください" というメッセージがしばらく表示された後で、[新しいプロパティ定義] ダイアログ ボックスが表示されます。

  14. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの [テキスト] をクリックし、[継続] をクリックします。
  15. [プロパティ定義 : 新規 (テキスト)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「MapISBN」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [条件指定可能] | [はい] チェック ボックスをオフにします。
    [最小文字数] | 「10」と入力します。
    [最大文字数] | 「20」と入力します。
    [分析用にデータを保存] | [はい] を選択します。
    [商品リストに表示] | [はい] を選択します。

    注

    • [プロパティ定義 : 新規 (テキスト)] 画面の値は既定値に設定されています。
  16. [プロパティ定義 : 新規 (テキスト)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「マップの ISBN」と入力します。
  17. [確認] をクリックします。
  18. プロパティ定義を保存して [カタログ定義デザイナ : プロパティ定義] 画面に戻るには、ツール バーの 保存して新規作成 をクリックします。

新しいプロパティ定義が保存されます。「手順 2 : 商品定義を追加する」に進み、商品定義を作成して、その中にここで作成したプロパティ定義を組み入れます。


手順 2 : 商品定義を追加する

  1. [カタログ定義デザイナ : プロパティ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [商品定義] をクリックします。
  2. [カタログ定義デザイナ : 商品定義] 画面で、ツール バーの 新規 をクリックします。
  3. [商品定義 : 新規] 画面の [商品定義プロパティ] セクションで、[名前] ボックスに「ハイキングマップ」と入力します。
  4. [商品プロパティ] セクションの [利用できるプロパティ] ボックスで、下にスクロールして [MapISBN]、[MapLocation]、および [MapTitle] を表示します。
  5. Ctrl キーを押しながら [MapISBN]、[MapLocation]、および [MapTitle] をクリックし、Ctrl キーを離してから [追加] をクリックします。

    選択したプロパティが [割り当てられたプロパティ] ボックスに移動します。

    注

    • [割り当てられたプロパティ] ボックスに一覧表示されている他の項目の中には、背景が淡色表示されているものがありますが、これらは既定の商品プロパティです。
  6. 新しい商品定義を保存して [カタログ定義デザイナ : 商品定義] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

    商品定義 [ハイキングマップ] が [名前] ボックスに表示されます。

  7. 商品定義 [ハイキングマップ] を展開します。

[MapISBN]、[MapLocation]、[MapTitle]、および既定の商品プロパティが、商品定義 [ハイキングマップ] のプロパティとして表示されます。「手順 3 : 新しい基本カタログを作成する」に進みます。


手順 3 : 新しい基本カタログを作成する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい基本カタログ] をクリックします。
  3. [カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「キャンプ場マップ」と入力します。
    [通貨] | ボックスの一覧の [円 - JPY] をクリックします。
    [商品の一意の ID] | ボックスの一覧の [MapISBN] をクリックします。
    [商品のバリエーションの一意の ID] | ボックスの一覧の [MapISBN] をクリックします。
  4. ツール バーの 保存して戻る をクリックして、カタログ プロパティを保存します。

カタログ プロパティが新しい基本カタログと共に保存されます。「レッスン 3 : カタログをインポートする」に進み、ビジネス デスクに Adventure Works カタログをインポートします。


レッスン 3 : カタログをインポートする

シナリオ : カタログを Web サイトに公開し、オンラインの買い物客としてサイトをテストするには、主体となる基本カタログ (Adventure Works) をビジネス デスクにインポートする必要があります。ビジネス デスクでカテゴリとカタログを処理するには、カタログ エディタ モジュールを使います。カタログ エディタ モジュールを使うと、新しいカテゴリの作成、カテゴリの変更と削除、およびカタログの削除を行うことができます。

カタログは、拡張マークアップ言語 (XML) ファイルとコンマ区切り値 (.csv) ファイルのいずれからもインポートできます。

このレッスンでは、AdvWorksCatalog.xml カタログ ファイルをインポートします。次に、Web サイトをテストします。Web サイトを訪問してフリー テキスト検索を実行し、靴とその関連商品を見つけます。検索条件に一致する商品が見つかったら、その商品を買い物バスケットに追加して、支払いを済ませます。

このレッスンでは、次の操作を行います。

  • 手順 1 : Adventure Works カタログをインポートする
  • 手順 2 : カタログを更新および公開する
  • 手順 3 : フリーテキスト検索を使って靴を探す
  • 手順 4 : サイトで靴を注文する


手順 1 : Adventure Works カタログをインポートする

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、ツール バーの カタログのインポート をクリックし、ボックスの一覧の [XML のインポート] をクリックします。

    注

    • サーバー以外のコンピュータからビジネス デスクにアクセスしている場合は、手順 4. の操作を行います。サーバーからビジネス デスクにアクセスしている場合は、手順 5. の操作を行います。
  4. [XML カタログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ファイル名] | [ローカルにアクセスできる XML ファイルを指定] をクリックします。
    [サーバーの XML ファイルを指定] 「\\<コンピュータ名>\<ドライブ名>$\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction\AdvWorksCatalog.xml」と入力します。<コンピュータ名> は使用している Commerce Server コンピュータの名前、<ドライブ名> は Windows 2000 がインストールされているドライブです。

    注

    • この UNC パスを利用できるのは、Commerce Server コンピュータの管理者に限られます。
    [このカタログの既存のデータを削除する] | このチェック ボックスがオフになっていることを確認します。
    [XML ファイルの評価 (インポートなし)] | このチェック ボックスがオフになっていることを確認します。

    ここではサーバー以外のコンピュータからビジネス デスクにアクセスしているので、手順 5. と手順 6. の操作は行いません。

  5. [XML カタログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ファイル名] | [ローカルにアクセスできる XML ファイルを指定] をクリックします。
    [ローカルにアクセスできる XML ファイルを指定] | 「<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction\AdvWorksCatalog.xml」と入力します。
    [このカタログの既存のデータを削除する] | このチェック ボックスがオフになっていることを確認します。
    [XML ファイルの評価 (インポートなし)] | このチェック ボックスがオフになっていることを確認します。
  6. [XML カタログのインポート] 画面で、[OK] をクリックします。
  7. [ビジネス デスク : XML カタログのインポート] ダイアログ ボックスで、[OK] をクリックします。

    Adventure Works Catalog カタログのインポートが開始されます。インポートの状態は、[カタログ] 画面の一番下にあるステータス バーに表示されます。インポートが完了すると、"カタログのインポートが完了しました。" というメッセージが表示され、Adventure Works Catalog カタログが Retail サイトにインポートされたことが通知されます。

    注

    • Adventure Works Catalog カタログは、[カタログ] 画面を更新するまで、カタログ エディタの [名前] ボックスには表示されません。
  8. [カタログ] 画面を更新するには、[カタログ] モジュールの [カタログ エディタ] をクリックします。

[カタログ] 画面が更新され、Adventure Works Catalog カタログが [フィルタ ビュー] ボックスの一覧に表示されます。Adventure Works Catalog カタログがビジネス デスクにインポートされました。「手順 2 : カタログを更新および公開する」に進みます。


手順 2 : カタログを更新および公開する

  1. [カタログ] の [カタログ エディタ] をクリックします。

    更新が実行されている間、画面に "カタログをインポートしています..." というメッセージが表示される場合があります。

  2. "カタログをインポートしています..." というメッセージが表示されなくなったら、ツール バーの 最新の情報に更新 をクリックします。

    "カタログを更新しています。" というメッセージが表示されます。カタログが最新の状態に更新され、サイトに公開されるまでには多少の時間がかかるため、しばらく待ってから次の手順に進みます。

  3. 画面を最新の状態に更新するには、[カタログ] モジュールの [カタログ エディタ] をクリックします。

    画面が最新の状態に更新され、カタログが最新の状態に更新されると共に、Web サイトに公開されます。

    注

    • カタログをサイトに公開する処理が終了しないうちに Web サイトにアクセスしようとしても、"サーバーを再起動しています" という内容のメッセージが表示され、サイトにはアクセスできません。

「手順 3 : フリーテキスト検索を使って靴を探す」に進みます。


手順 3 : フリーテキスト検索を使って靴を探す

この手順では、Microsoft Internet Explorer などの Web ブラウザを使って Retail サイトにアクセスする必要があります。Commerce Server は、Internet Explorer 5.5 (SP2) 以降に対応しています。

  1. Web ブラウザを使用して Retail サイトを開きます。Retail サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<サーバー名>/retail」と入力します。<サーバー名> は、Retail サイトのホストとなっているサーバーの名前です。サーバーの名前がわからない場合は、システム管理者に問い合わせてください。
  2. [商品検索] ボックスに「rockshoes」と入力し、[検索] をクリックします。

    [検索結果] 画面に "Rockshoes" というカテゴリが表示されます。

  3. [Rockshoes] をクリックします。

    "Rockshoes" カテゴリと商品の一覧が表示されます。一覧には、次のようなアウドドア シューズがいくつか含まれています。

    • Morro
    • Plymouth
    • Tuscany

フリーテキスト検索を使って靴を見つけました。「手順 4 : サイトで靴を注文する」に進みます。


手順 4 : サイトで靴を注文する

  1. [Rockshoes] 画面で、[Tuscany] をクリックし、[バスケットに追加] をクリックして、画面ヘッダー セクションの [バスケット] をクリックします。

    [バスケット] 画面が表示されます。

  2. [バスケット] 画面で、[チェック アウト] をクリックします。

    [送付先] 画面が表示されます。

  3. [送付先] 画面で、次の操作を行います。
    項目 | 操作
    [姓] | 「Jones」と入力します。
    [名] | 「Amy」と入力します。
    [住所欄] 1 | 「笹塚 1-X-X」と入力します。
    [市区町村] | 「渋谷区」と入力します。
    [都道府県/州] | 「東京都」と入力します。
    [郵便番号] | 「151-XXXX」と入力します。
    [国/地域] | ボックスの一覧の [日本] をクリックします。
    [請求先は同じ住所です。] | このチェック ボックスがオンになっていることを確認します。
  4. [送信] をクリックします。

    [送付オプション] 画面が表示されます。

  5. [送付オプション] 画面で、[XX 運送] を選択し、[チェック アウト] をクリックします。

    [注文内容] 画面が表示されます。この画面で、送料が 500 円になっていること、および税率が商品の小計の 5% になっていることを確認します。

  6. [注文内容] 画面で、[チェック アウト] をクリックします。

    [クレジット カード] 画面が表示されます。

  7. [クレジット カード] 画面で、次の操作を行います。
    項目 | 操作
    [カード名] | 「Amy Jones」と入力します。
    [カード番号] | 「4111-1111-1111-1111」と入力します。
    [種類] | ボックスの一覧の [VISA] をクリックします。
    [有効期限 (月)] | ボックスの一覧の [10 月] をクリックします。
    [有効期限 (年)] | ボックスの一覧の [2005] をクリックします。
  8. [送信] をクリックします。

    [注文の確認] 画面に注文番号が表示されます。

  9. ブラウザ ウィンドウを閉じます。

Retail サイトで靴を注文しました。「レッスン 4 : 仮想カタログを作成する」に進み、仮想カタログを作成して、その中に "キャンプ場マップ" 基本カタログと Adventure Works 基本カタログを組み入れます。


レッスン 4 : 仮想カタログを作成する

シナリオ : "キャンプ場マップ" カタログと Adventure Works カタログにある商品を、顧客が簡単な操作で参照し、購入できるようにします。そのためには、両方のカタログが含まれる仮想カタログを作成します。作成した仮想カタログの中には、元のカタログがサブセットとして保持されるので、元のカタログに対して個別に特別割引を適用することができます。このチュートリアルでは、商品を "キャンプ場マップ" 基本カタログに追加すると、カタログに適用した包含ルールにより、その商品は関連付けられた仮想カタログにも表示されます。

このレッスンでは、仮想カタログを作成し、そこに 2 つの基本カタログを追加します。また、通貨と価格設定ルールも設定します。

このレッスンでは、次の操作を行います。

  • 手順 1 : 新しい仮想カタログを作成する
  • 手順 2 : 仮想カタログに基本カタログを追加する
  • 手順 3 : "キャンプ用品とキャンプ場マップ" 仮想カタログを再構築する
  • 手順 4 : "キャンプ用品とキャンプ場マップ" カタログに価格ルールを追加する
  • 手順 5 : "キャンプ場マップ" カタログに新しいカテゴリを追加する
  • 手順 6 : "キャンプ場マップ" カタログに新しい商品を追加する
  • 手順 7 : "キャンプ場マップ" カタログに別の商品を追加する
  • 手順 8 : Retail サイトに加えた変更の内容を確認する


手順 1 : 新しい仮想カタログを作成する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい仮想カタログ] をクリックします。
  4. [カタログ プロパティ - 新しい仮想カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「キャンプ用品とキャンプ場マップ」と入力します。
    [開始日] | ドロップダウン カレンダーで、現在の日付を選択します。
    [通貨] | ボックスの一覧の [円 - JPY] をクリックします。
  5. カタログ プロパティを保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。

カタログ プロパティが新しい仮想カタログと共に保存されます。「手順 2 : 仮想カタログに基本カタログを追加する」に進み、包含ルールを作成して、基本カタログを仮想カタログの中に組み入れます。


手順 2 : 仮想カタログに基本カタログを追加する

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[キャンプ用品とキャンプ場マップ] カタログを選択し、ツール バーの 開く をクリックします。
  3. [カタログ コンテンツ - キャンプ用品とキャンプ場マップ] (日本語 - 日本) 画面の [コンテンツの選択] セクションで、[新規] をクリックします。
  4. [カタログ] ボックスの 省略記号 [...] ボタン をクリックし、[カタログの選択] ダイアログ ボックスを開きます。

    [カタログの選択] ダイアログ ボックスが表示されます。

  5. [カタログの選択] ダイアログ ボックスで、[キャンプ場マップ] をクリックし、[選択] をクリックします。
  6. [カタログ コンテンツ - キャンプ用品とキャンプ場マップ (日本語 - 日本)] 画面の [コンテンツの選択] セクションで、[ルール] ボックスの一覧の [カタログを含める] をクリックします。
  7. [終了] をクリックし、包含ルールを保存します。
  8. 上の手順 3. ～ 手順 7. を繰り返して、Adventure Works Catalog カタログを追加します。

    [キャンプ場マップ] カタログと [Adventure Works] カタログが [コンテンツの選択] セクションの [カタログ] 列に表示されます。

  9. 仮想カタログに加えた変更内容を保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログリストに戻る をクリックします。

"キャンプ用品とキャンプ場マップ" 仮想カタログに Adventure Works Catalog カタログと "キャンプ場マップ" 基本カタログを含むルールが作成されました。仮想カタログを Retail サイトで利用するには、あらかじめ仮想カタログを再構築しておく必要があります。「手順 3 : "キャンプ用品とキャンプ場マップ" 仮想カタログを再構築する」に進みます。


手順 3 : "キャンプ用品とキャンプ場マップ" 仮想カタログを再構築する

  1. [カタログ] 画面で、"キャンプ用品とキャンプ場マップ" カタログを選択し、ツール バーの 仮想カタログの再構築 をクリックします。

    [ビジネス デスク : カタログの再構築] ダイアログ ボックスに "カタログ再構築プロセスが正常に開始されました" というメッセージが表示されます。

  2. [ビジネス デスク : カタログの再構築] ダイアログ ボックスで、[OK] をクリックし、[カタログ エディタ] をクリックして、カタログの一覧を最新の情報に更新します。
  3. 一覧に "キャンプ用品とキャンプ場マップ" カタログが表示され、[状態] 列に "最新" と表示されます。[状態] 列に "再構築中" と表示された場合は、しばらく待ってから [カタログ エディタ] をもう一度クリックします。

"キャンプ場マップ" カタログと Adventure Works Catalog カタログが "キャンプ用品とキャンプ場マップ" 仮想カタログに追加されました。これで、"キャンプ用品とキャンプ場マップ" 仮想カタログを Retail サイトで利用できるようになります。「手順 4 : "キャンプ用品とキャンプ場マップ" カタログに価格ルールを追加する」に進みます。


手順 4 : "キャンプ用品とキャンプ場マップ" カタログに価格ルールを追加する

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[キャンプ用品とキャンプ場マップ] カタログを選択し、ツール バーの 開く をクリックします。
  3. [カタログ コンテンツ - キャンプ用品とキャンプ場マップ] (日本語 - 日本) 画面の [価格ルール] セクションで、[新規] をクリックします。
  4. [項目] ボックスの 省略記号 [...] ボタン をクリックし、[商品の選択] ダイアログ ボックスを開きます。

    [商品の選択] ダイアログ ボックスが表示されます。

  5. [商品の選択] ダイアログ ボックスで、[カテゴリ] ボックスの一覧の [Tents (Adventure Works Catalog)] をクリックし、[OK] をクリックします。
  6. [価格ルール] セクションで、[種類] ボックスの一覧の [割引率] をクリックします。
  7. [値] ボックスに「10」と入力し、[終了] をクリックします。
  8. 仮想カタログの変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログリストに戻る をクリックします。

"キャンプ用品とキャンプ場マップ" カタログをもう一度構築し直す必要があります。操作方法については、「手順 3 : "キャンプ用品とキャンプ場マップ" 仮想カタログを再構築する」を参照してください。"キャンプ用品とキャンプ場マップ" カタログの再構築が終わったら、「手順 5 : "キャンプ場マップ" カタログに新しいカテゴリを追加する」に進みます。


手順 5 : "キャンプ場マップ" カタログに新しいカテゴリを追加する

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[キャンプ場マップ] カタログを選択し、ツール バーの 開く をクリックします。
  3. [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [カテゴリ] セクションで、[新規] をクリックします。

    [新しいカテゴリ] ダイアログ ボックスが表示されます。

  4. [新しいカテゴリ] ダイアログ ボックスで、[部門] を選択し、[継続] をクリックします。

    [カタログ エディタ - キャンプ場マップ (日本語 - 日本) - 新規 (部門)] 画面が表示されます。

  5. [カタログ エディタ - キャンプ場マップ (日本語 - 日本) - 新規 (部門)] 画面の [カテゴリ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「MapBooks」と入力します。
    [表示名] | 「マップと書籍」と入力します。
    [説明] | 「ハイキング マップと書籍」と入力します。
  6. 新しいカテゴリを保存して [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "キャンプ場マップ" カタログに MapBooks カテゴリが追加されます。

  7. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。

これで、"キャンプ場マップ" カタログ用に作成した MapBooks カテゴリに新しい商品を追加できます。「手順 6 : "キャンプ場マップ" カタログに新しい商品を追加する」に進み、このカテゴリに新しい商品を追加します。


手順 6 : "キャンプ場マップ" カタログに新しい商品を追加する

  1. [カタログ] 画面で、[キャンプ場マップ] カタログを選択し、ツール バーの 開く をクリックします。
  2. [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。

    [新しい商品] ダイアログ ボックスが表示されます。

  3. [新しい商品] ダイアログ ボックスで、[ハイキングマップ] を選択し、[OK] をクリックします。
  4. [カタログ エディタ - キャンプ場マップ (日本語 - 日本) - 新規 (ハイキングマップ)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [MapISBN] | 「1-2345-6789-0」と入力します。
    [Description] | 「ヒマラヤ ハイキングの本」と入力します。
    [Name] | 「ヒマラヤ ハイキング」と入力します。
    [MapLocation] | 「ネパール、南アジア」と入力します。
    [MapTitle] | 「ヒマラヤ ハイキング」と入力します。
    [価格] | 「2000」と入力します。

    注

    チュートリアルを実行した時点で既に Adventure Works Catalog カタログがインポートされていた場合は、この手順で [ProductCode] ボックスが表示されます。この場合は、[MapISBN] ボックスに入力したものと同じ値を [ProductCode] ボックスにも入力します。

  5. [割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 | 操作
    [利用できるカテゴリ] | [MapBooks] をクリックし、[追加] をクリックします。
    [割り当てられたカテゴリ] | 「MapBooks」を選択します。
    [プライマリ親カテゴリ] [設定] をクリックします。

    [プライマリ親カテゴリ] ボックスに MapBooks カテゴリが表示されます。
  6. [商品の関係] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] | 「他の山岳マップ」と入力します。
    [項目] | 省略記号 [...] ボタン をクリックすると、[商品の選択] ダイアログ ボックスが表示されます。

    [商品の選択] ダイアログ ボックスが表示されます。

  7. [商品の選択] ダイアログ ボックスの [カテゴリ] ボックスの一覧で、[MapBooks] をクリックし、[OK] をクリックします
  8. [商品の関係] セクションで、[確認] をクリックします。
  9. 商品を保存して [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。

    この新しいマップが MapBooks カテゴリに割り当てられます。

  10. [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    カタログに追加した商品が、[商品] ボックスの一覧に表示されます。

  11. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。

新しい商品 ("ヒマラヤ ハイキング" マップ) がカタログに保存されます。ただし、この商品がサイトに表示されるのは、仮想カタログを構築してサイトに公開した後です。この作業は、「手順 7. : "キャンプ場マップ" カタログに別の商品を追加する」で行います。

注

  • 仮想カタログを再構築してサイトに公開すると、それに含まれる基本カタログもすべて再構築され、公開されます。

「手順 7 : "キャンプ場マップ" カタログに別の商品を追加する」に進みます。


手順 7 : "キャンプ場マップ" カタログに別の商品を追加する

  1. [カタログ] 画面で、[キャンプ場マップ] 基本カタログを選択し、ツール バーの 開く をクリックします。

    [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面が表示されます。

  2. [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。

    [新しい商品] ダイアログ ボックスが表示されます。

  3. [新しい商品] ダイアログ ボックスで、[ハイキングマップ] を選択し、[OK] をクリックします。

    [カタログ エディタ - キャンプ場マップ (日本語 - 日本) - 新規 (ハイキングマップ)] 画面が表示されます。

  4. [カタログ エディタ - キャンプ場マップ (日本語 - 日本) - 新規 (ハイキングマップ)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [MapISBN] | 「2-3452-8892-9」と入力します。
    [Description] | 「デナリ ハイキングの本」と入力します。
    [名前] | 「デナリ ハイキング」と入力します。
    [MapLocation] | 「デナリ、アラスカ」と入力します。
    [MapTitle] | 「デナリ ハイキング」と入力します。
    [価格] | 「2400」と入力します。

    注

    チュートリアルを実行した時点で既に Adventure Works カタログがインポートされていた場合は、この手順で [ProductCode] ボックスが表示されます。この場合は、[MapISBN] ボックスに入力したものと同じ値を [ProductCode] ボックスにも入力します。

  5. [割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 | 操作
    [利用できるカテゴリ] | [MapBooks] をクリックし、[追加] をクリックします。
    [割り当てられたカテゴリ] | 「MapBooks」を選択します。
    [プライマリ親カテゴリ] [設定] をクリックします。

    [プライマリ親カテゴリ] ボックスに MapBooks カテゴリが表示されます。
  6. [商品の関係] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] | 「その他の山岳マップ」と入力します。
    [項目] 省略記号 [...] ボタン をクリックすると、[商品の選択] ダイアログ ボックスが表示されます。

    _

    [商品の選択] ダイアログ ボックスが表示されます。

  7. [商品の選択] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [カテゴリ] | 「MapBooks」を選択します。
    [カテゴリ内の商品 : MapBooks] | [MapISBN 番号 1-2345-6789-0 (ヒマラヤ ハイキング)] をクリックします。
  8. [OK] をクリックします。
  9. [商品の関係] セクションで、[確認] をクリックします。

    "ヒマラヤ ハイキング" マップとの関連付けが確立されます。

  10. カタログに新しい商品を保存して [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  11. [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    [カタログ コンテンツ - キャンプ場マップ (日本語 - 日本)] 画面の [商品] ボックスの一覧には、[ヒマラヤ ハイキング] マップと [デナリ ハイキング] マップの両方が表示されます。

  12. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。

カタログを再構築および公開する

基本カタログやカテゴリ、商品を含めるなど、仮想カタログに変更を加えるときには、仮想カタログを再構築する必要があります。"キャンプ場マップ" 基本カタログに商品を追加したので、仮想カタログを再構築します。

  1. [カタログ] 画面で、"キャンプ用品とキャンプ場マップ" カタログを選択し、ツール バーの 仮想カタログの再構築 をクリックします。

    [ビジネス デスク : カタログの再構築] ダイアログ ボックスに "カタログ再構築プロセスが正常に開始されました" というメッセージが表示されます。

  2. [ビジネス デスク : カタログの再構築] ダイアログ ボックスで、[OK] をクリックし、[カタログ エディタ] をクリックして、カタログの一覧を最新の情報に更新します。
  3. 一覧に "キャンプ用品とキャンプ場マップ" カタログが表示され、[状態] 列に "最新" と表示されます。[状態] 列に "再構築中" と表示された場合は、しばらく待ってから [カタログ エディタ] をもう一度クリックします。
  4. [カタログ] 画面を最新の情報に更新し、新しい商品をサイトに発行するには、ツール バーの 発行 をクリックします。

新しい商品 ("デナリ ハイキング" マップ) が "キャンプ場マップ" カタログに保存され、更新されたカタログが Web サイトに公開されます。「手順 8 : Retail サイトに加えた変更の内容を確認する」に進み、"デナリ ハイキング" マップを注文します。


手順 8 : Retail サイトに加えた変更の内容を確認する

この手順では、Microsoft Internet Explorer などの Web ブラウザを使って Retail サイトにアクセスする必要があります。Commerce Server は、Internet Explorer 5.5 (SP2) 以降に対応しています。この手順の操作は、サーバーとリモート コンピュータのどちらからでも実行できます。

  1. Web ブラウザを使用して Retail サイトを開きます。Retail サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<サーバー名>/Retail」と入力します。<サーバー名> は、Retail サイトのホストとなっているサーバーの名前です。サーバーの名前がわからない場合は、システム管理者に問い合わせてください。
  2. Retail サイトで、ウィンドウの左側にある [ログイン] の下の [新しいユーザー] をクリックし、次の操作を行います。
    項目 | 操作
    [ユーザー名] | 「JoeUser」と入力します。
    [パスワード] | 「open_sesame2」と入力します。
    [パスワードの確認] | 「open_sesame2」と入力します。
  3. [送信] をクリックします。
  4. [カタログ] 画面が表示されます。
  5. [カタログ] 画面で、[キャンプ場マップ] をクリックします。
  6. [キャンプ場マップ] 画面で、[MapBooks] をクリックします。

    [MapBooks] 画面が表示されます。

  7. [MapBooks] 画面で、[デナリ ハイキング] をクリックします。

    これで、実習 1 のレッスン 4 で作成した "デナリ ハイキング" がサイトに発行されていることを確認しました。このチュートリアルは演習を目的としているため、この購入は完了させません。

  8. ブラウザを閉じます。

「レッスン 5 : 商品の対象ユーザーを指定する」に進みます。


レッスン 5 : 商品の対象ユーザーを指定する

シナリオ : 特定のユーザーを対象に、キャンプ用品の特別割引と広告を実施したいと考えています。たとえば、サイト用語を使うことにより、ユーザーが女性だとわかっていれば、女性用アウドドア ウェア広告の対象にできます。

このレッスンでは、Male (男性) および Female (女性) というサイト用語を追加します。サイト用語を作成したら、後でそのユーザー プロファイルに一致するサイト ユーザーを、キャンプ関連商品の広告の対象として指定できるようにユーザー プロファイルにサイト用語を組み込みます。

このレッスンでは、次の操作を行います。

  • 手順 1 : サイト用語を作成する
  • 手順 2 : ユーザー プロファイルにサイト用語を追加する
  • 手順 3 : プロファイルの変更内容を Web サイトに発行する


手順 1 : サイト用語を作成する

サイト用語は "属性" というコンテナに組み込まれます。"属性" は "グループ" というコンテナに保持されます。この手順では、PersonalInfo (個人情報) というグループを作成します。次に、PersonalInfo グループ内に Gender (性別) という属性を作成します。最後に、Male (男性) と Female (女性) というサイト用語を作成します。これらは、後ほどユーザー プロファイルの一部として利用します。

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [プロファイル] の [サイト用語エディタ] をクリックします。

    [サイト用語エディタ] 画面が表示されます。

  3. [サイト用語エディタ] 画面で、[追加] をクリックします。

    [追加] ダイアログ ボックスが表示されます。

  4. [追加] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  5. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「PersonalInfo」と入力します。
    [表示名] | 「個人情報」と入力します。
  6. [適用] をクリックします。
  7. [サイト用語の構成] ボックスで、[個人情報] を選択し、[追加] をクリックします。

    [追加] ダイアログ ボックスが表示されます。

  8. [追加] ダイアログ ボックスで、[サイト用語の新規追加] をクリックし、[OK] をクリックします。
  9. [サイト用語エディタ] 画面の [サイト用語の属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Gender」と入力します。
    [表示名] | 「性別」と入力します。
  10. [用語] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [用語の名前] | 「Male」と入力します。
    [表示名] | 「男性」と入力します。
  11. [確認] をクリックします。
  12. [用語] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [用語の名前] | 「Female」と入力します。
    [表示名] | 「女性」と入力します。
  13. [確認] をクリックし、次に [適用] をクリックします。
  14. サイト用語を保存して [Commerce Server : ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

"Male (男性)" および "Female (女性)" というサイト用語が保存され、ユーザー プロファイルに追加できるようになります。「手順 2 : ユーザー プロファイルにサイト用語を追加する」に進みます。


手順 2 : ユーザー プロファイルにサイト用語を追加する

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。

    [プロファイル] 画面が表示されます。

  2. [プロファイル] 画面の [名前] ボックスで、[ユーザー オブジェクト] を選択し、ツール バーの 開く をクリックします。

    [プロファイル : ユーザー オブジェクト] 画面が表示されます。

  3. [プロファイル : ユーザー オブジェクト] 画面の [プロパティ] セクションで、[一般情報] をクリックし、[追加] をクリックします。

    [追加] ダイアログ ボックスが表示されます。

  4. [追加] ダイアログ ボックスで、[プロパティの新規追加] を選択し、[OK] をクリックします。
  5. [プロファイル : ユーザー オブジェクト] 画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Gender」と入力します。
    [表示名] | 「性別」と入力します。
    [型] | ボックスの一覧の [サイト用語] をクリックします。
    [型参照] 省略記号 [...] ボタン をクリックし、[サイト用語の選択] ダイアログ ボックスを開きます。

    [サイト用語の選択] ダイアログ ボックスで、[個人情報] をクリックし、[性別] をクリックします。
  6. [サイト用語の選択] ダイアログ ボックスで、[OK] をクリックします。
  7. [プロファイル : ユーザー オブジェクト] 画面の [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [アクティブ] | [はい] チェック ボックスがオンになっていることを確認します。
    [データへのマップ] 省略記号 [...] ボタン をクリックし、[データ ソースの選択] ダイアログ ボックスを開きます。

    [データ ソースの選択] ダイアログ ボックスで、[プロファイル サービスの SQL ソース] をクリックします。次に [ユーザー オブジェクト] を選択し、下にスクロールして [カスタム プロパティ 1 (STRING)] をクリックします。
  8. [OK] をクリックします。
  9. [プロファイル : ユーザー オブジェクト] 画面の [カスタム属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | [sUserAccess] を選択し、[編集] をクリックします。
    [値] | 値を「1」に変更します。
  10. [確認] をクリックし、次に [適用] をクリックします。
  11. ツール バーの 保存して前の画面に戻る をクリックすると、ユーザー プロファイルと共にサイト用語が保存され、[プロファイル] 画面に戻ります。

ユーザー プロファイルにサイト用語を追加したら、プロファイルの変更内容を Web サイトに発行する必要があります。「手順 3 : プロファイルの変更内容を Web サイトに発行する」に進み、変更内容を Retail Web サイトに発行します。


手順 3 : プロファイルの変更内容を Web サイトに発行する

  1. [プロファイル] モジュールの [プロファイルの発行] をクリックします。

    [プロファイルの発行] 画面が表示されます。

  2. [プロファイルの発行] 画面で、変更の発行元となる Retail サイトを選択し、ツール バーの 発行 をクリックします。

プロファイルが更新され、Retail Web サイトで利用できるようになります。「レッスン 6 : 新しいプロファイルを持つユーザーを追加する」に進みます。


レッスン 6 : 新しいプロファイルを持つユーザーを追加する

シナリオ : Retail Web サイトが運用段階に入り、Adventure Works Catalog カタログや "キャンプ場マップ" カタログから定期的に商品を購入してくれる Web サイト ユーザーもできました。そこで、サイトで認識されるユーザー、つまりオンライン登録フォームに記入したユーザー、キャンプ関連商品を注文したユーザー、およびサイトにユーザー アカウントを開設したユーザーを管理することにします。

このレッスンでは、前のレッスンで作成した Male (男性) および Female (女性) という新しいサイト用語を使って、新しいユーザーを 2 名追加します。この作業が終わったら、「実習 2 : マーケティング キャンペーンを作成する」で、広告キャンペーンの対象となるユーザーを指定します。

このレッスンでは、次の操作を行います。

  • 手順 1 : 男性のユーザーを作成する
  • 手順 2 : 女性のユーザーを作成する
  • 手順 3 : ビジネスデスクでユーザー アカウントを表示する
  • 手順 4 : サイト確認の手順


手順 1 : 男性のユーザーを作成する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [プロファイル] の [ユーザー] をクリックします。
  3. [ユーザー オブジェクト] 画面で、ツール バーの 新規 をクリックします。
  4. [新しいプロファイル : ユーザー オブジェクト] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 「JackUser」と入力します。
    [ユーザー パスワード] | 「open_sesame」と入力します。
    [電子メール] | 「JackUser@Microsoft.com」と入力します。
    [姓] | 「User」と入力します。
    [名] | 「Jack」と入力します。
    [性別] | ボックスの一覧の [男性] をクリックします。
  5. 男性のユーザーを保存して新しいユーザーを作成するために、ツール バーの 保存して新規作成 をクリックします。

サイト用語を使った JackUser という名前の男性ユーザーが保存されます。「手順 2 : 女性のユーザーを作成する」に進み、JillUser という名前のユーザーを新しく作成します。


手順 2 : 女性のユーザーを作成する

  1. [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 「JillUser」と入力します。
    [ユーザー パスワード] | 「shazzam」と入力します。
    [電子メール] | 「JillUser@Microsoft.com」と入力します。
    [姓] | 「User」と入力します。
    [名] | 「Jill」と入力します。
    [性別] | ボックスの一覧の [女性] をクリックします。
  2. ツール バーの 保存して前の画面に戻る をクリックし、女性のユーザーを保存して [ユーザー オブジェクト] 画面に戻ります。

サイト用語 Female (女性) を使った JillUser という名前の女性ユーザーが保存されます。「手順 3 : ビジネス デスクでユーザー アカウントを表示する」に進みます。


手順 3 : ビジネス デスクでユーザー アカウントを表示する

  1. [ユーザー オブジェクト] 画面の [検索] セクションで、次の操作を行います。
    項目 | 操作
    [検索条件] | ボックスの一覧の [ログオン名] をクリックします。
    [ログオン名] | 「*」 (アスタリスク) を入力します。
  2. [検索開始] をクリックします。

[フィルタ ビュー] ボックスに、ユーザーの "JackUser"、"JillUser"、および "JoeUser" が表示されます。「手順 4 : サイト確認の手順」に進みます。


手順 4 : サイト確認の手順

  1. Web ブラウザを使用して Retail サイトを開きます。Retail サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<サーバー名>/retail」と入力します。<サーバー名> は、Web サイトのホストとなっているサーバーの名前です。サーバーの名前がわからない場合は、システム管理者に問い合わせてください。
  2. [Retail] 画面で、ウィンドウの左側にある [ログイン] の下の [サインイン] をクリックします。

    注

    • [またのご来店ありがとうございます] 画面が表示された場合は、[ここをクリックして既存のアカウントでサインインしてください。] をクリックして [サインイン] 画面を開きます。
  3. [サインイン] 画面で、次の操作を行います。
    項目 | 操作
    [ユーザー名] | 「JackUser」と入力します。
    [パスワード] | 「open_sesame」と入力します。
  4. [送信] をクリックします。

    [カタログ] 画面が表示されます。

  5. [カタログ] 画面で、ウィンドウの左側にある [顧客サービス] の下の [プロファイル] をクリックします。

    [プロファイルを編集しています] 画面が表示されます。

  6. [プロファイルを編集しています] 画面の [一般情報] の下に、新しく作成したサイト用語の属性 "性別" とサイト用語 "男性" が表示されていることを確認します。
  7. ブラウザ ウィンドウを閉じます。

JackUser という名前の新しいユーザーが正しく作成されたことを確認しました。「実習 2 : マーケティング キャンペーンを作成する」に進みます。


実習 2 : マーケティング キャンペーンを作成する

完了までの予測時間 : 30 分

シナリオ : オンライン カタログでのビジネスを始めたばかりなので、キャンプ関連書籍の広告キャンペーンを作成したいと考えています。販売促進のために、これらの書籍の割引も作成することにしました。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : 広告キャンペーンを作成する
  • レッスン 2 : 対象式を作成する
  • レッスン 3 : 割引キャンペーンを作成する


レッスン 1 : 広告キャンペーンを作成する

シナリオ : 顧客の多くが登山愛好者であることがわかっているので、最初のキャンペーンは、登山関係の書籍にします。各種のマーケティング キャンペーンの作成やスケジュール設定を一度に行うには、Commerce Server ビジネス デスクのキャンペーン モジュールを使います。キャンペーン モジュールを使うと、広告キャンペーン、ダイレクト メール キャンペーン、および割引キャンペーンを作成することができます。

さらに、キャンペーンの参照テーブル モジュールを使って、書籍の業種コードを設定します。業種コードは、広告や割引の関連業種を識別するものです。業種コードを利用すると、複数の同業顧客 (広告主) による広告や割引が、同一の Web ページに 2 点表示されるのを防ぐことができます。

このレッスンでは、"書籍" という業種コードを追加します。次に、マウンテン パブリッシングという新しいキャンペーン顧客を追加し、さらに"登山書" という新しい広告キャンペーンを追加します。

このレッスンでは、次の操作を行います。

  • 手順 1 : 参照テーブルに書籍の業種コードを追加する
  • 手順 2 : キャンペーンの顧客を追加する
  • 手順 3 : キャンペーンを追加する


手順 1 : 参照テーブルに書籍の業種コードを追加する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [キャンペーン] モジュールの [参照テーブル] をクリックします。

    [参照テーブル] 画面が表示されます。

  3. [参照テーブル] 画面の [業種コード] セクションで、[新規] をクリックします。
  4. [参照テーブル] 画面で、[業種コード] セクションの [業種コード] ボックスに「書籍」と入力し、[確認] をクリックします。
  5. 新しい業種コードを保存して [Commerce Server : ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい業種コードが保存されます。これで、競合する 2 つの書籍販売業者がそれぞれ出稿した広告が、同一の Web ページに表示されるのを防ぐことができます。「手順 2 : キャンペーンの顧客を追加する」に進みます。


手順 2 : キャンペーンの顧客を追加する

  1. [キャンペーン] モジュールの [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [新しい顧客] をクリックします。

    [キャンペーン マネージャ - 新規 (顧客)] 画面が表示されます。

  3. [キャンペーン マネージャ - 新規 (顧客)] 画面の [顧客プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「マウンテン パブリッシング」と入力します。
    [種類] | ボックスの一覧の [広告主] をクリックします。
    [業種] | ボックスの一覧の [書籍] をクリックします。
  4. 新しい顧客を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい顧客 "マウンテン パブリッシング" が保存され、[キャンペーン マネージャ] 画面に表示されます。これで新しいキャンペーンを追加できるようになります。「手順 3 : キャンペーンを追加する」に進みます。


手順 3 : キャンペーンを追加する

  1. [キャンペーン マネージャ] 画面で、[マウンテン パブリッシング] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しいキャンペーン] をクリックします。

    [キャンペーン マネージャ - マウンテン パブリッシング - 新規 (キャンペーン)] 画面が表示されます。

  3. [キャンペーン マネージャ - マウンテン パブリッシング - 新規 (キャンペーン)] 画面の [キャンペーン プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [キャンペーン名] | 「登山書」と入力します。
    [開始日] | ドロップダウン カレンダーから、昨日の日付を選択します。
    [終了日] | ドロップダウン カレンダーから、今日から 1 か月後の日付を選択します。
    [状態] | ボックスの一覧の [アクティブ] をクリックします。
  4. [広告/キャンペーンの目標] セクションで、次の操作を行います。
    項目 | 操作
    [目標] | ボックスの一覧の [広告の項目] をクリックします。
    [カウント方法] | ボックスの一覧の [要求数] をクリックします。
  5. キャンペーンを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

"登山書" キャンペーンが保存され、この広告の項目のレベルに目標が設定されます。これで新しい広告を作成し、特定のユーザー層を対象に広告を表示できるようになります。「レッスン 2 : 対象式を作成する」に進みます。


レッスン 2 : 対象式を作成する

シナリオ : 広告の対象となるユーザー グループを指定します。対象とするユーザー グループを定義するには、キャンペーン式モジュールを使います。特定のユーザー グループを対象として広告やダイレクト メールを実施したり、割引キャンペーンを適用したりすることができます。

このレッスンでは、すべての男性顧客を対象にした広告キャンペーンを作成します。実習 1 の「レッスン 5 : 商品の対象ユーザーを指定する」で Gender (性別) 属性を定義しているので、Gender 属性に保持されている Male (男性) と Female (女性) というサイト用語を使って広告の対象を指定できます。

このレッスンでは、次の操作を行います。

  • 手順 1 : 対象式を作成する
  • 手順 2 : 対象グループを作成する
  • 手順 3 : 新しい広告を作成する
  • 手順 4 : 広告をプレビューする
  • 手順 5 : 対象を指定した広告の状態を確認する
  • 手順 6 : Retail サイトでキャンペーンを更新する
  • 手順 7 : Retail サイトに加えた変更の内容を確認する


手順 1 : 対象式を作成する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [キャンペーン] モジュールの [キャンペーン式] をクリックします。

    [キャンペーン式 : 対象式] 画面が表示されます。

  3. [キャンペーン式 : 対象式] 画面で、ツール バーの 新規 をクリックします。

    [対象式] ダイアログ ボックスが表示されます。

  4. [対象式] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「男性ユーザー」と入力し、[新規] をクリックします。
    [次の式に基づいて対象化します]
    • 左側の列 ボックスの一覧の [ユーザー オブジェクト] をクリックし、[一般情報] をクリックします。次に、[性別] を選択します。
    • 中央の列 ボックスの一覧の [が右の項目と等しい] をクリックします。
    • 右側の列 省略記号 [...] ボタン をクリックし、[サイト用語の選択] ダイアログ ボックスを開きます。

      [サイト用語の選択] ダイアログ ボックスで、サイト用語の一覧の [男性] をクリックし、[OK] をクリックします。

  5. [対象式] ダイアログ ボックスで、[適用] をクリックします。
  6. 式を保存するには、[保存] をクリックします。

男性ユーザーを対象にするための式が保存されます。「手順 2 : 対象グループを作成する」に進みます。


手順 2 : 対象グループを作成する

  1. [キャンペーン] モジュールの [対象グループ] をクリックします。
  2. [対象グループ] 画面で、ツール バーの 新規 をクリックします。

    [対象グループ : 新規] 画面が表示されます。

  3. [対象グループ : 新規] 画面で、次の操作を行います。
    項目 | 操作
    [対象グループ名] | 「男性顧客」と入力します。
    [式] | [新規] をクリックし、ボックスの一覧の [男性ユーザー] をクリックします。
    [アクション] | ボックスの一覧の [適用] をクリックします。
  4. [確認] をクリックします。
  5. 対象グループを保存して [対象グループ] 画面に戻るには、ツール バーの 保存して対象グループ リストに戻る をクリックします。

対象式 "男性ユーザー" を使った "男性顧客" という対象グループが作成されます。「手順 3 : 新しい広告を作成する」に進みます。


手順 3 : 新しい広告を作成する

  1. [キャンペーン] モジュールの [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、[マウンテン パブリッシング] を展開し、[登山書] を選択します。
  3. [キャンペーン マネージャ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい広告] をクリックします。

    [キャンペーン マネージャ - マウンテン パブリッシング - 登山書 - 新規 (広告)] 画面が表示されます。

  4. [キャンペーン マネージャ - マウンテン パブリッシング - 登山書 - 新規 (広告)] 画面の [広告プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [広告名] | 「男性顧客対象広告」と入力します。
    [状態] | ボックスの一覧の [アクティブ] をクリックします。
    [種類] | ボックスの一覧の [有料広告] をクリックします。
    [要求数] | 「1000」と入力します。
    [表示上限回数] | ボックスの一覧の [なし] をクリックします。
    [業種] | ボックスの一覧の [書籍] をクリックします。
  5. [広告の対象] セクションで、次の操作を行います。
    項目 | 操作
    [ページ グループ] [すべてのページ グループで表示] チェック ボックスがオンになっていることを確認します。

    このチェック ボックスをオンにしておくと、広告が Retail サイトのすべての Web ページに表示されます。
    [対象グループ : 利用可能] | [男性顧客] をクリックし、[追加] をクリックして、グループを [割り当て] ボックスに移動します。
  6. 下にスクロールし、[広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | ボックスの一覧の [フル バナー (468 x 60)] をクリックします。
    [種類] | ボックスの一覧の [イメージ] をクリックします。
    [イメージの保存場所] 「http://<サーバー名>/Retail/Images/catalog/Clockped.gif」と入力します。

    このシナリオでは架空の企業名を使用しているため、ここでは Clocktower 用の .gif ファイルを使用します。
    [クリック時のリンク先] 「http://MSPress.Microsoft.com」と入力します。

    このシナリオでは架空の企業名を使用しているため、ここでは Microsoft Press の Web サイトの URL を使用します。
    [代替テキスト] | 「マウンテン パブリッシング社のバナー」と入力します。

広告が定義されます。「手順 4 広告をプレビューする」に進み、新しい広告を運用環境に送信する前にプレビューします。


手順 4 : 広告をプレビューする

  1. [キャンペーン マネージャ - マウンテン パブリッシング - 登山書 - 新規 (広告)] 画面の [広告の表示] セクションで、[プレビュー] をクリックします。

    [プレビュー] ダイアログ ボックスが表示されます。

  2. [プレビュー] ダイアログ ボックスで、[はい] をクリックしてキャンペーン項目を保存します。

    [プレビュー] ボタンの下の表示領域に広告のコピーが表示されます。

  3. [キャンペーン マネージャ] 画面に戻るには、ツール バーの 戻る をクリックします。

広告をプレビューしました。「手順 5 : 対象を指定した広告の状態を確認する」に進みます。


手順 5 : 対象を指定した広告の状態を確認する

  1. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  2. [検索] セクションで、[状態] ボックスの一覧の [すべて] をクリックし、[検索開始] をクリックします。
  3. [フィルタ ビュー] ボックスで、[マウンテン パブリッシング]、[登山書] の順に展開し、対象を指定した広告 ([男性顧客対象広告]) が一覧に表示されていることを確認します。

[男性顧客対象広告] の状態はアクティブです。「手順 6 : Retail サイトでキャンペーンを更新する」に進みます。


手順 6 : Retail サイトでキャンペーンを更新する

  1. [キャンペーン] モジュールの [キャンペーンの発行] をクリックします。

    [キャンペーンの発行] 画面が表示されます。

  2. [キャンペーンの発行] 画面で、[サイトに発行する項目] ボックスの一覧の [advertising] をクリックします。
  3. キャンペーンを更新するには、ツール バーの カタログの公開 をクリックします。

更新中であることを示すメッセージが表示されます。広告キャンペーンが更新され、Retail サイトで、男性ユーザーを対象に広告が表示されます。

注

  • [ビジネス デスク : エラー] ダイアログ ボックスが表示された場合は、[OK] をクリックします。

キャンペーンを更新し、Retail サイトに発行しました。「手順 7 : Retail サイトに加えた変更の内容を確認する」に進みます。


手順 7 : Retail サイトに加えた変更の内容を確認する

  1. Web ブラウザを使用して Retail サイトを開きます。Retail サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<サーバー名>/Retail」と入力します。<サーバー名> は、Retail サイトのホストとなっているサーバーの名前です。サーバーの名前がわからない場合は、システム管理者に問い合わせてください。

    注

    • [またのご来店ありがとうございます] 画面が表示された場合は、[ここをクリックして既存のアカウントでサインインしてください。] をクリックして [サインイン] 画面を開きます。
  2. [ログイン] の下の [サインイン] をクリックし、次の操作を行います。
    項目 | 操作
    [ユーザー名] | 「JillUser」と入力します。
    [パスワード] | 「shazzam」と入力します。
  3. [送信] をクリックします。

    広告の対象を男性ユーザーに設定したため、Retail サイトに広告は表示されません。

  4. ブラウザ ウィンドウを閉じます。
  5. Web ブラウザを使用して Retail サイトを開きます。
  6. [ログイン] の下の [サインイン] をクリックし、次の操作を行います。
    項目 | 操作
    [ユーザー名] | 「JackUser」と入力します。
    [パスワード] | 「open_sesame」と入力します。
  7. [送信] をクリックします。

    今度は Retail サイトに広告が表示されます。

  8. ブラウザ ウィンドウを閉じます。

広告の対象が男性ユーザーだけになっていることを確認しました。「レッスン 3 : 割引キャンペーンを作成する」に進みます。


レッスン 3 : 割引キャンペーンを作成する

シナリオ : ある商品を紹介するために、オンライン カタログの利用者全員を対象とした割引を作成します。この割引は過去の購入品には適用しません。割引を作成するには、キャンペーン マネージャ モジュールを使用します。割引の作成では、割引を適用する商品、割引の金額、およびユーザーが割引を受けるのに必要な項目購入数を指定できます。

このレッスンでは、すべてのユーザーに全商品を 20% 割引で提供する、オンライン カタログ用の割引キャンペーンを作成します。

このレッスンでは、次の操作を行います。

  • 手順 1 : 割引キャンペーン項目を作成する
  • 手順 2 : 割引キャンペーンを運用サイトに送信する
  • 手順 3 : Retail サイトに加えた変更の内容を確認する


手順 1 : 割引キャンペーン項目を作成する

  1. [スタート] メニューまたはデスクトップから [ビジネス デスク - Retail] を開きます。
  2. [キャンペーン] モジュールの [キャンペーン マネージャ] をクリックします。
  3. [キャンペーン マネージャ] 画面で、[マウンテン パブリッシング] を展開し、[登山書] をクリックします。次に、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい割引] をクリックします。
  4. [キャンペーン マネージャ - マウンテン パブリッシング - 登山書 - 新規 (割引)] 画面の [割引プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [割引名] | 「20% オフ」と入力します。
    [状態] | ボックスの一覧の [アクティブ] をクリックします。
    [開始日] | ドロップダウン カレンダーから今日の日付を選択します。
    [終了日] | ドロップダウン カレンダーから、今日から 2 か月後の日付を選択します。
  5. [割引定義] セクションで、次の操作を行います。
    項目 操作
    [対象] [すべての商品] チェック ボックスをオンにします。

    このチェック ボックスをオンにすると、常に割引の適用が試みられます。
    [特典]
    • 1 番目の列 特典が適用される項目の数として [無制限] が指定されていることを確認します。
    • 2 番目の列 ボックスの一覧の [すべての商品] をクリックします。
    • 3 番目の列 ボックスの一覧の [パーセント (%)] をクリックします。
    • 4 番目の列 「20」と入力します。
  6. [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [バスケットの表示] | 「20% 割引適用」と入力します。
    [コンテンツ サイズ] | ボックスの一覧の [ハーフ バナー] をクリックします。
    [コンテンツの種類] | [イメージ] を選択します。
    [イメージの保存場所] 「http://<サーバー名>/retail/images/catalog/MSPress.gif」と入力します。

    このシナリオでは架空の企業名を使用しているため、ここでは Microsoft Press 用の .gif ファイルを使用します。
    [クリック時のリンク先] 「http://MSPress.Microsoft.com」と入力します。

    このシナリオでは架空の企業名を使用しているため、ここでは Microsoft Press の Web サイトの URL を使用します。
    [代替テキスト] | 「マウンテン パブリッシング社のバナー」と入力します。
  7. 割引を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

20% の割引が定義されました。この割引は、Retail サイトのマウンテン パブリッシング社の商品すべてに適用されます。「手順 2 : 割引キャンペーンを運用サイトに送信する」に進み、割引キャンペーンを Retail サイトに発行します。


手順 2 : 割引キャンペーンを運用サイトに送信する

  1. [キャンペーン] モジュールの [キャンペーンの発行] をクリックします。
  2. [キャンペーンの発行] 画面で、[discounts] をクリックし、ツール バーの 発行 をクリックします。

割引キャンペーンが運用サイトに送信され、Retail サイトでアクティブになります。「手順 3 : Retail サイトに加えた変更の内容を確認する」に進みます。


手順 3 : Retail サイトに加えた変更の内容を確認する

  1. Web ブラウザを使用して Retail サイトを開きます。Retail サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<サーバー名>/Retail」と入力します。<サーバー名> は、Retail サイトのホストとなっているサーバーの名前です。サーバーの名前がわからない場合は、システム管理者に問い合わせてください。
  2. ウィンドウの左側にある [ログイン] の下の [サインイン] をクリックするかまたは、[ここをクリックして既存のアカウントでサインインしてください] をクリックし、次の操作を行います。
    項目 | 操作
    [ユーザー名] | 「JackUser」と入力します。
    [パスワード] | 「open_sesame」と入力します。
  3. [送信] をクリックします。
  4. [キャンプ場マップ] リンクをクリックし、[MapBooks] カテゴリをクリックして、[ヒマラヤ ハイキング] を選択します。

    書籍の価格は 2000 円です。

  5. [バスケットに追加] をクリックします。
  6. 画面ヘッダー セクションの [バスケット] をクリックします。

    最終価格に対して、定価の 20% に当たる 400 円の割引が適用されます。

  7. ブラウザ ウィンドウを閉じます。

20% の割引キャンペーンが Retail サイトでアクティブになっていることを確認しました。「実習 3 : 商品別の売り上げを分析する」に進みます。


実習 3 : 商品別の売り上げを分析する

  • 完了までの予測時間 : 45 分

シナリオ : サイトの運用を開始してからしばらく経過したので、サイトの 1 日のアクセス数や、キャンプ関連商品の売り上げ状況を調べます。この実習では、売り上げを分析するために、まずログ ファイル データとトランザクション データをインポートし、次にレポートを実行します。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : ログ ファイル データをインポートする
  • レッスン 2 : 動的レポートを実行する


レッスン 1 : ログ ファイル データをインポートする

このレッスンは、システム管理者など、Commerce Server コンピュータと SQL Server Enterprise Manager へのアクセス許可を与えられている人が実行する必要があります。システム管理者以外の人は、このレッスンの作業をシステム管理者に依頼してください。このレッスンの作業が完了したら、この実習のレッスン 2 に進むことができます。

このチュートリアルの実習 1 と実習 2 を行ったことにより、データがサイトのログ ファイルに収集されています。このデータの収集エンジンは、Microsoft インターネット インフォメーション サービス (IIS) です。このレッスンでは、ログ ファイル データをデータ ウェアハウスにインポートして、ビジネス マネージャがビジネス デスクを使ってレポートを実行できるようにします。

このレッスンでは、システム管理者が次の作業を行います。

  • 手順 1 : データ ウェアハウスをアプリケーションと同期させる
  • 手順 2 : Web ログ ファイルをインポートする
  • 手順 3 : トランザクション データをインポートする
  • 手順 4 : OLAP キューブにインポート データを設定する
  • 手順 5 : DTS タスクを実行する


手順 1 : データ ウェアハウスをアプリケーションと同期させる

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. 左側のウィンドウで、[Microsoft SQL Servers] を展開し、[SQL Server グループ] を展開します。次に、[<サーバー名> (Windows NT)] を展開し、[データ変換サービス] を展開します。次に、[ローカル パッケージ] を右クリックし、[新規パッケージ] をクリックします。
  3. [DTS パッケージ : <新規パッケージ>] 画面で、ウィンドウ内の空白領域を右クリックし、[タスクの追加] をポイントして、[構成の同期 (Commerce Server)] をクリックします。
  4. [DW プロパティの同期] 画面の [操作のプロパティ] セクションで、[サイト] ボックスの一覧の [Retail] をクリックし、[OK] をクリックします。

    注

    • この手順で作成したデータ変換サービス (DTS) タスクを実行するまで、アプリケーションとデータ ウェアハウスは同期されません。DTS タスクは、[パッケージ] メニューの [実行] をクリックして個々に実行することもできます。ここでは、「手順 5 : DTS タスクを実行する」でまとめて実行します。

データ ウェアハウスをアプリケーションと同期させるための DTS タスク パッケージが作成されました。「手順 2 : Web ログ ファイルをインポートする」に進みます。


手順 2 : Web ログ ファイルをインポートする

  1. [DTS パッケージ : <新規パッケージ>] 画面で、ウィンドウ内の空白領域を右クリックし、[タスクの追加] をポイントして、[Web サーバー ログ インポート (Commerce Server)] をクリックします。
  2. [Web サーバー ログ インポートのプロパティ] 画面の [操作のプロパティ] セクションで、[サイト] ボックスの一覧の [Retail] をクリックします。
  3. [Web サーバー ログ インポートのプロパティ] 画面の [ログ ファイルの場所] タブで、[アプリケーション] 列の [<コンピュータ名>/retail]、[<コンピュータ名>] を選択します。
  4. [ログ ファイル パス] ボックスに「<ドライブ名>:\Winnt\System32\LogFiles\W3svc1」と入力し、[OK] をクリックします。

    注

    • この手順で作成した DTS タスクが実行されるまで、ログ ファイルはデータ ウェアハウスにインポートされません。DTS タスクは、[パッケージ] メニューの [実行] をクリックして個々に実行することもできます。ここでは、「手順 5 : DTS タスクを実行する」でまとめて実行します。
    • 運用中のサーバーでは、システム管理者が IIS ログ ファイルを既定のフォルダ以外のフォルダに保存していることもあります。その場合には、ログ ファイル パスは上のものと異なります。

Web ログ ファイルをインポートするための DTS タスク パッケージが作成されました。「手順 3 : トランザクション データをインポートする」に進みます。


手順 3 : トランザクション データをインポートする

トランザクション データは、Web サイトでユーザーがショッピング カートの品目を追加および削除したとき、または購入を行ったときに作成されます。ここでは、サイトのトランザクション データをデータ ウェアハウスにインポートします。

トランザクション データは、Commerce Server トランザクション データベースに格納されます。トランザクション データには、注文や注文番号などが含まれます。これらのデータは、商品ごとの販売状況や売り上げ金額、または顧客ごとの購入金額を調べるために、分析レポートで使用されます。

  1. [DTS パッケージ : <新規パッケージ>] 画面で、ウィンドウ内の空白領域を右クリックし、[タスクの追加] をポイントして、[トランザクション データ インポート (Commerce Server)] をクリックします。
  2. [トランザクション インポート プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | 「Retail サイトのトランザクション データ」と入力します。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧の [Retail] をクリックします。
    [処理モード] [すべて] を選択して、トランザクション データをすべてインポートします。

    注

    • トランザクション データをデータ ウェアハウスに初めてインポートするときは、[すべて] を選択して、フル インポートを実行する必要があります。トランザクション データをインポートした後は、[増分の読み込み] オプションを使って、最後のトランザクション データのインポート以降に作成された、新しいデータのみをインポートします。
  3. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 操作
    [再試行回数] 「10」と入力します。

    注

    • 既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] 「30」と入力します。

    注

    • 既定の再試行間隔は 30 秒です。
  4. [OK] をクリックします。

    注

    • この手順で作成した DTS タスクが実行されるまで、プロファイル ユーザー データはデータ ウェアハウスにインポートされません。DTS タスクは、[パッケージ] メニューの [実行] をクリックして個々に実行することもできます。ここでは、「手順 5 : DTS タスクを実行する」でまとめて実行します。

トランザクション データをインポートするための DTS タスク パッケージを作成しました。「手順 4 : OLAP キューブにインポート データを設定する」に進みます。


手順 4 : OLAP キューブにインポート データを設定する

  1. [DTS パッケージ : <新規パッケージ>] 画面で、ウィンドウ内の空白領域を右クリックし、[タスクの追加] をポイントして、[レポート準備 (Commerce Server)] をクリックします。[レポートの準備のプロパティ] ダイアログ ボックスが表示されます。
  2. [レポートの準備のプロパティ] ダイアログ ボックスの [操作のプロパティ] セクションで、[サイト] ボックスの一覧の [Retail] が選択されていることを確認します。
    注
    • [サイト] ボックスの一覧に Retail サイトが表示されない場合は、[データ ウェアハウス] ボックスの一覧で、Retail サイトに関連付けられている他のデータ ウェアハウスをクリックします。
  3. [処理モード] セクションの [すべて] をクリックし、[OK] をクリックします。

OLAP キューブにインポート データを設定するための DTS タスク パッケージを作成しました。この DTS タスク パッケージを実行すると、OLAP キューブにインポート データが設定されます。「手順 5 : DTS タスクを実行する」に進み、4 つの DTS タスク パッケージをまとめて実行します。


手順 5 : DTS タスクを実行する

  1. [DTS パッケージ : <新規パッケージ>] 画面で、Ctrl キーを押しながら 5 つの Commerce Server DTS タスクをクリックし、Ctrl キーを離します。

    Commerce Server DTS タスクの 5 つのアイコンがすべて選択されます。

  2. [ワークフロー] メニューの [完了時] をクリックします。
  3. [パッケージ] メニューの [実行] をクリックします。

    [パッケージ実行中] 画面が表示され、タスクが実行中であることを示す進捗インジケータが表示されます。

  4. タスクの実行が正常に完了したら、[パッケージ実行結果] ダイアログ ボックスで [OK] をクリックします。
  5. [パッケージを実行しています] 画面の [終了] をクリックします。
  6. パッケージを保存せずに SQL Server Enterprise Manager を終了します。

結果として、次の処理が行われます。

  • ログ ファイルのデータが、データ ウェアハウスにインポートされます。
  • OLAP キューブにインポート データが設定されます。
  • トランザクション データがデータ ウェアハウスにインポートされます。
  • データ ウェアハウス内のデータがアプリケーションと同期されます。

次のレッスンでは、このデータを使って動的レポートを作成します。「レッスン 2 : 動的レポートを実行する」に進みます。


レッスン 2 : 動的レポートを実行する

シナリオ : 商品ごとの販売状況や売り上げ金額、または顧客ごとの購入金額を調べるために、商品売り上げレポートを実行します。

レポート モジュールから動的レポートを実行することも、レポートが定期的に自動で実行されるようにスケジュールを設定することもできます。動的レポートは瞬時に実行され、独立したブラウザ ウィンドウにピボットテーブル レポート形式で表示されます。

このレッスンでは、次の操作を行います。

  • 手順 1 : 商品別の売り上げレポートを実行する


手順 1 : 商品別の売り上げレポートを実行する

日付単位の商品別販売数量と売り上げ金額を調べるには、商品別売り上げレポートを使います。このレポートでは、合計数量と売り上げ金額が、商品カテゴリの順で表示されます。

  1. [スタート] メニューまたはデスクトップから [Commerce Server ビジネス デスク - Retail] を開きます。
  2. [分析] の [レポート] をクリックします。
  3. [レポート] 画面で、ツール バーの 検索 をクリックします。
  4. 検索ペインで、次の操作を行います。
    項目 | 操作
    [検索条件] | ボックスの一覧の [名前] をクリックします。
    [名前] | 「商品別売り上げ」と入力します。
  5. [検索開始] をクリックします。
  6. 検索ペインの [フィルタ ビュー] セクションで、[商品別売り上げ] レポートをクリックし、ツール バーの レポートの実行 をクリックしてレポートを実行します。

実行したレポートが、ピボットテーブルとして新しいブラウザ ウィンドウに表示されます。

B2C サイトのチュートリアルの実習は、これで終了です。B2C Retail サイトのセットアップについて、すべてのレッスンが完了しました。


B2B サイトのチュートリアル

Microsoft Commerce Server 2002 には、Web 用の電子商取引アプリケーションの構築に役立つ包括的なツール群が用意されています。この B2B サイトのチュートリアルでは、Commerce Server 2002 のビジネス デスクを使って電子商取引 Web サイトを管理する方法について、順を追って説明していきます。

ここでは、次のトピックについて説明します。

  • B2B サイトのシナリオ
  • チュートリアルの準備を調える
  • 実習 1 : 送付方法と税率を追加する
  • 実習 2 : SupplierAD カタログを構築する
  • 実習 3 : カタログに商品を追加する
  • 実習 4 : 組織およびセキュリティに関する作業を行う


B2B サイトのシナリオ

あなたは、Northwind Traders 社のビジネス デスクの管理担当者です。会社の従業員が自社カタログにある商品を購入をする際に、Commerce Server Web サイトを使用できるようにすることを検討しています。また、会社のビジネス デスクの管理担当者が、各自の担当する Commerce Server カタログを更新できるようにする予定です。この B2B サイトのチュートリアルでは、次の作業を行う方法について説明します。

  • 社内の商品グループごとにそれぞれ別のカタログを作成します。
  • Web サイトにカタログを公開します。
  • 各商品グループのビジネス デスクの管理者に、ビジネス デスクのモジュールやタスクへの限定的なアクセス許可を付与して、各自が担当するカタログだけを更新できるようにします。

このチュートリアルには、4 つの実習が用意されています。これらの実習では、Commerce Server に付属する SupplierAD ソリューション サイトを使います。「実習 1 : 送付方法と税率を追加する」の作業を開始するには、システム管理者に依頼して、チュートリアルを使用するための準備を調えてもらう必要があります。チュートリアルの実行に必要な条件などについては、「チュートリアルの準備を調える」に記載してあります。システム管理者に参照してもらってください。

チュートリアルを使用する準備が整ったら、システム管理者に連絡して、Active Directory 対応の Supplier ソリューション サイトの場所、および Commerce Server コンピュータへのログオンに使うユーザー名とパスワードを確認します。その作業が終わったら、「実習 1 : 送付方法と税率を追加する」に進みます。


チュートリアルの準備を調える

システム管理者に次の作業を実施してもらう必要があります。

  • システムが、このチュートリアルの実行に必要な条件を満たしていることを確認します。
  • ドメイン コントローラ上で特定の構成設定を確認します。
  • SupplierAD ソリューション サイトをインストールします。

詳細については、「非クラスタ構成の 2 台のコンピュータにインストールする」を参照してください。

Commerce Server SupplierAD ソリューション サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。

システム管理者が上の作業を完了したら、「実習 1 : 送付方法と税率を追加する」に進むことができます。


実習 1 : 送付方法と税率を追加する

完了までの予測時間 : 15 分

シナリオ : カタログを作成する前に、送付方法と税率を追加します。次に、追加した税率と送付方法を SupplierAD サイトに発行します。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : 送付方法を追加する
  • レッスン 2 : 税率を追加する
  • レッスン 3 : 税率と送付方法を発行する


レッスン 1 : 送付方法を追加する

会社から従業員に商品を送付することになったため、送付方法と送料を設定する必要が生じました。このレッスンでは、個々の注文の小計に基づいて計算される送料を追加します。

送付方法を追加するには

  1. システム管理者が作成したユーザー名とパスワードを使って、Commerce Server コンピュータにログオンします。ユーザー名とパスワードがわからない場合は、システム管理者に問い合わせてください。
  2. [スタート] メニューまたはデスクトップから [ビジネス デスク - SupplierAD] を開きます。
  3. [注文] モジュールを展開し、[送付方法] をクリックします。
  4. [送付方法] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [代金で課金] をクリックします。

    [代金で課金 - 新規] 画面が表示されます。この画面を使って、個々の注文の小計に基づいた送付方法を作成します。

  5. [代金で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [名前] | 「Blue Yonder Airlines」と入力します。
    [説明] | 「We will ship it for you.」と入力します。
    [有効] | [送付方法を有効にする] チェック ボックスがオンになっていることを確認します。
  6. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「1000」と入力します。
    [送料] | 「500」と入力します。

    代金の合計が 1,000 円以下の注文に課す 500 円の送料を作成しました。

  7. [確認] をクリックします。次に [新規] をクリックし、他の送料を追加します。
  8. [料金] セクションで、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 「2000」と入力します。
    [送料] | 「1000」と入力します。

    代金の合計が 2,000 円以下の注文に課す 1,000 円の送料を作成しました。

  9. [確認] をクリックします。
  10. [料金] セクションで、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | [2000 を超える] をダブルクリックします。
    [送料] | 「1500」と入力します。

    代金の合計が 2,000 円を超える注文に課す 1,500 円の送料を作成しました。

  11. [確認] をクリックし、[2000 を超える] の送料を追加します。

    代金の合計が 2,000 円を超える注文に課す 1,500 円の送料を作成しました。このシナリオでは、注文の合計金額が 2,000 円を超える場合、送料は一律となります。

  12. 送料を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

送料が保存され、SupplierAD Web サイトでユーザーが商品を購入した場合に適用されます。「レッスン 2 : 税率を追加する」に進みます。


レッスン 2 : 税率を追加する

SupplierAD サイトから購入される項目は再販用ではないので、商品の送付先の税率が適用されます。このレッスンでは、SupplierAD サイトに税率を追加します。このシナリオは演習を目的としているため、税率を仮に定義します。

  1. ビジネス デスクの [注文] モジュールで、[税率] をクリックします。
  2. [税] 画面の [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [国/地域] | ボックスの一覧の [日本] をクリックします。
    [都道府県/州] | ボックスの一覧の [すべての都道府県/州] をクリックします。
    [税率 (%)] | 「10」と入力します。
  3. [確認] をクリックします。
  4. 新しい税率を保存して [Commerce Server : ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

10% の税率が保存され、日本国内に送付される注文に対して適用されます。「レッスン 3 : 税率と送付方法を発行する」に進みます。


レッスン 3 : 税率と送付方法を発行する

この実習のレッスン 1 と 2 で送付方法と税率を作成する前に、SupplierAD サイトへのアクセスがあった場合、その送付方法と税率を SupplierAD に発行する必要があります。たとえば、システム管理者がこのチュートリアルの準備を調えたときに、SupplierAD サイトにアクセスした可能性もあります。税率と送付コードをサイトに発行する必要があるかどうかを判断するには、「手順 1 : 注文コードを表示する」に進み、注文コードの発行モジュールを使って、運用サイトのキャッシュの状態を表示します。

  • 手順 1 : 注文コードを表示する
  • 手順 2 : 注文コードを発行する


手順 1 : 注文コードを表示する

  1. ビジネス デスクの [注文] モジュールを展開し、[注文コードの発行] をクリックします。

    [注文コードの発行] 画面が表示されます。

  2. [サイトに発行する項目] ボックスの一覧に項目が 1 つもない場合は、注文コードを発行する必要がないので、「実習 2 : SupplierAD カタログを構築する」に進みます。それ以外の場合は、「手順 2 : 注文コードを発行する」に進み、送付方法と税率を SupplierAD サイトに発行します。


手順 2 : 注文コードを発行する

  1. [注文コードの発行] 画面で、[サイトに発行する項目] ボックスの一覧にある項目をすべて選択します。
  2. ツール バーの [発行] をクリックします。
  3. この実習で作成した送付方法と税率が含まれている注文コードが、SupplierAD サイトに発行されます。「実習 2 : SupplierAD カタログを構築する」に進みます。


実習 2 : SupplierAD カタログを構築する

ここでは、後でカタログに追加する商品のカタログ定義を構成します。次に、2 つの商品グループ用にそれぞれ基本カタログを作成して、その中に商品を追加します。最後に、各商品グループ用のカタログ セットと、両方の基本カタログが含まれる仮想カタログを作成します。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : カタログ定義を作成する
  • レッスン 2 : 商品グループ用の基本カタログを作成する
  • レッスン 3 : SupplierAD サイト用の仮想カタログを作成する
  • レッスン 4 : SupplierAD サイト用のカテゴリを作成する
  • レッスン 5 : カタログ セットを作成する


レッスン 1 : カタログ定義を作成する

シナリオ : 各商品グループ用の基本カタログを作成して、その商品グループの商品をサイトに発行できるようにします。カタログ作成の最初の作業は、カタログ定義を作成することです。カタログ定義は、カテゴリ定義と商品定義で構成されます。カテゴリ定義と商品定義は、プロパティ定義で構成されます。

このレッスンの手順 1. では、Pens と Pencils というカテゴリ定義を作成します。このカテゴリ定義を使って、Web サイト上の商品を整理します。このレッスンの手順 2. と手順 3. では、商品定義とプロパティ定義を作成します。これらの定義は、実習 3 で、カタログに商品を追加するときに使います。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : カテゴリ定義を作成する
  • 手順 2 : Pencil 商品定義を作成する
  • 手順 3 : Pen 商品定義を作成する


手順 1 : カテゴリ定義を作成する

この手順で作成するカテゴリ定義は、Web サイト上の商品をカテゴリ別に整理するために使います。この手順では、Pens と Pencils という 2 つのカテゴリを作成します。後の実習 3 では、これらのカテゴリに商品を追加します。

Pens カテゴリ定義を作成するには

  1. ビジネス デスクの [カタログ] モジュールを展開し、[カタログ定義デザイナ] をクリックします。

    [カタログ定義デザイナ : カテゴリ定義] 画面が表示されます。

  2. [新規] をクリックします。
  3. [カテゴリ定義 : 新規] 画面の [カテゴリ定義プロパティ] セクションで、[名前] ボックスに「Pens」と入力します。
  4. [カテゴリ プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧の [Description] をクリックし、[追加] をクリックします。

    [Description] プロパティが [割り当てられたプロパティ] ボックスに移動します。

  5. このカテゴリ定義を保存して、新しいカテゴリ定義を作成するには、ツール バーの 保存して新規作成 をクリックします。

Pencils カテゴリ定義を作成するには

  1. [カテゴリ定義 : 新規] 画面の [カテゴリ定義プロパティ] セクションで、[名前] ボックスに「Pencils」と入力します。
  2. [カテゴリ プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧の [説明] をクリックし、[追加] をクリックします。

    [説明] プロパティが [割り当てられたプロパティ] ボックスに移動します。

  3. このカテゴリ定義を保存して、新しいカテゴリ定義を作成するには、ツール バーの 保存して新規作成 をクリックします。

Printers カテゴリ定義を作成するには

  1. [カテゴリ定義 : 新規] 画面の [カテゴリ定義プロパティ] セクションで、[名前] ボックスに「Printers」と入力します。
  2. [カテゴリ プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧の [Description] をクリックし、[追加] をクリックします。

    [Description] プロパティが [割り当てられたプロパティ] ボックスに移動します。

  3. Printers カテゴリ定義を保存して [カタログ定義デザイナ : カテゴリ定義] 画面に戻るには、ツール バーの 保存してカテゴリ定義リストに戻る をクリックします。

    [カタログ定義デザイナ : カテゴリ定義] 画面が表示されます。作成した Pens、Pencils、および Printers という 3 つのカテゴリが、この画面の [名前] ボックスの一覧に表示されます。

注
  • 定義名は、すべてのカテゴリ定義と商品定義にわたって一意にする必要があります。「手順 2 : Pencil 商品定義を作成する」および「手順 3 : Pen 商品定義を作成する」では Pencil と Pen という名前を商品定義として使うので、この手順では Pen および Pencil の名前を複数形 (Pens および Pencills) で使いました。

Pens と Pencils というカテゴリ定義を作成しました。後の実習 3 では、この手順で作成したカテゴリ定義を使って、カタログに商品を追加します。「手順 2 : Pencil 商品定義を作成する」に進みます。


手順 2 : Pencil 商品定義を作成する

商品定義を使うと、カタログに追加する特定の商品について、詳細に記述することができます。商品定義には、商品の定義または説明に使われるプロパティが含まれます。たとえば、ほとんどの商品定義には、"製造元" や "SKU" (在庫保管単位) という名前のプロパティが含まれています。

商品定義は、一種のテンプレートと考えることができます。カタログに商品を追加すると、商品定義の中に定義したプロパティに値が割り当てられます。これらのプロパティの値によって、個々の商品バリエーションの説明と識別が行われます。

この手順では、Pencil 商品の商品定義を作成します。次に、商品バリエーション プロパティを割り当てて、作成した商品定義のための新しいプロパティ定義を作成します。この鉛筆の商品定義は、後の実習 3 で、カタログに Pencil 商品を追加するときに使います。

Pencil 商品定義を作成するには

  1. ビジネス デスクの [カタログ] モジュールを展開し、[カタログ定義デザイナ] をクリックします。

    [カタログ定義デザイナ : カテゴリ定義] 画面が表示されます。

  2. ツール バーの [表示] をクリックし、ボックスの一覧の [商品定義] をクリックします。

    [カタログ定義デザイナ : 商品定義] 画面が表示されます。表示される商品定義は、あらかじめ定義され、利用可能な状態になっているものです。このチュートリアルの後のレッスンでは、プリンタ商品定義を使います。

  3. [新規] をクリックします。
  4. [商品定義 : 新規] 画面の [商品定義プロパティ] セクションで、[名前] ボックスに「Pencil」と入力します。

新しい商品定義に Pencil という名前を付けました。次は、Pencil 商品定義に商品バリエーション プロパティを割り当てます。

商品バリエーション プロパティを割り当てるには

  • [商品バリエーション プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧の [製造元] をクリックし、Ctrl キーを押しながら [SKU] をクリックして、Ctrl キーを離してから [追加] をクリックします。

    [製造元] と [SKU] の各プロパティが、[商品バリエーション プロパティ] セクションの [割り当てられたプロパティ] ボックスの一覧に表示されます。

Pencil 商品定義に "製造元" と "SKU" という商品バリエーション プロパティを割り当てました。次は、Pencil 商品の新しいプロパティ定義を作成および定義します。

LeadColor プロパティ定義を作成するには

  1. [商品バリエーション プロパティ] セクションで、[新規] をクリックします。
  2. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの一覧の [複数選択] をクリックし、[継続] をクリックします。
  3. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「LeadColor」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [既定値] 省略記号 [...] ボタン をクリックします。

    [複数選択値] ダイアログ ボックスが表示されます。
  4. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Black」と入力し、[追加] をクリックします。
  5. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Blue」と入力し、[追加] をクリックします。
  6. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Red」と入力し、[追加] をクリックします。

    [Black]、[Blue]、および [Red] の各値が、[複数選択値] ダイアログ ボックスの [値] ボックスの一覧に表示されます。

  7. 複数選択値を保存して [プロパティ定義 : 新規 (複数選択)] 画面に戻るには、[OK] をクリックします。
  8. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、[既定値] ボックスの一覧の [Black] をクリックします。
  9. [商品リストに表示] チェック ボックスの [はい] をオンにします。
  10. [プロパティ定義 : 新規 (複数選択)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「芯の色」と入力します。
  11. [確認] をクリックします。
  12. このプロパティ定義を保存して、新しいプロパティ定義を作成するには、ツール バーの 保存して新規作成 をクリックします。

    [新しいプロパティ定義] ダイアログ ボックスが表示されます。

LeadColor プロパティ定義を作成しました。このプロパティ定義は、Pencil 商品の芯の色を説明するために使います。次は、BodyColor という名前の新しいプロパティ定義を作成します。

BodyColor プロパティ定義を作成するには

  1. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの一覧の [複数選択] をクリックし、[継続] をクリックします。
  2. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「BodyColor」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [既定値] 省略記号 [...] ボタン をクリックします。

    [複数選択値] ダイアログ ボックスが表示されます。
  3. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Black」と入力し、[追加] をクリックします。
  4. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Blue」と入力し、[追加] をクリックします。
  5. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Red」と入力し、[追加] をクリックします。
  6. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Yellow」と入力し、[追加] をクリックします。

    [Black]、[Blue]、[Red]、[Yellow] の各値が、[複数選択値] ダイアログ ボックスの [値] ボックスの一覧に表示されます。

  7. 複数選択値を保存して [プロパティ定義 : 新規 (複数選択)] 画面に戻るには、[OK] をクリックします。
  8. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、[既定値] ボックスの一覧の [Yellow] をクリックします。
  9. 商品リストに表示] チェック ボックスの [はい] をオンにします。
  10. [プロパティ定義 : 新規 (複数選択)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「外装の色」と入力します。
  11. [確認] をクリックします。
  12. このプロパティ定義を保存して、新しいプロパティ定義を作成するには、ツール バーの 保存して新規作成 をクリックします。

    [新しいプロパティ定義] ダイアログ ボックスが表示されます。

BodyColor プロパティ定義を作成しました。このプロパティ定義は、Pencil 商品の外装の色を説明するために使います。次は、LeadSize という名前のプロパティ定義を作成します。

LeadSize プロパティ定義を作成するには

  1. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの一覧の [複数選択] をクリックし、[継続] をクリックします。
  2. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「LeadSize」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [既定値] 省略記号 [...] ボタン をクリックします。

    [複数選択値] ダイアログ ボックスが表示されます。
  3. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「#1」と入力し、[追加] をクリックします。
  4. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「#2」と入力し、[追加] をクリックします。

    [#1] および [#2] の各値が、[複数選択値] ダイアログ ボックスの [値] ボックスの一覧に表示されます。

  5. 複数選択値を保存して [プロパティ定義 : 新規 (複数選択)] 画面に戻るには、[OK] をクリックします。
  6. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、[既定値] ボックスの一覧の [#2] をクリックします。
  7. 商品リストに表示] チェック ボックスの [はい] をオンにします。
  8. [プロパティ定義 : 新規 (複数選択)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「芯のサイズ」と入力します。
  9. [確認] をクリックします。
  10. このプロパティ定義を保存して [商品定義 : 新規] 画面に戻るには、 保存して戻る をクリックします。

    LeadSize プロパティ定義を作成しました。このプロパティ定義は、Pencil 商品の芯の太さを説明するために使います。

    [商品定義 : 新規] 画面が表示されます。[製造元]、[SKU]、[LeadColor]、[BodyColor]、[LeadSize] の各プロパティが、[商品バリエーション プロパティ] セクションの [割り当てられたプロパティ] ボックスの一覧に表示されます。プロパティ定義と商品定義はサイト レベルで作成されるので、一度作成したプロパティ定義は、サイトに公開するどのカタログのどの商品を定義するときでも使用できます。

  11. Pencil の商品定義を保存して [カタログ定義デザイナ : 商品定義] 画面に戻るには、 保存して戻る をクリックします。

    Pencil という商品定義を作成しました。「手順 3 : Pen 商品定義を作成する」に進み、この手順で作成した BodyColor プロパティ定義を再利用して Pen 商品定義を作成します。


手順 3 : Pen 商品定義を作成する

この手順では、ペン商品の商品定義を作成します。次に、商品バリエーション プロパティを割り当てて、作成した商品定義のための新しいプロパティ定義を作成します。このペンの商品定義は、後の実習 3 で、カタログにペン商品を追加するときに使います。

  1. [カタログ] モジュールの [カタログ定義デザイナ] をクリックします。

    [カタログ定義デザイナ : カテゴリ定義] 画面が表示されます。

  2. ツール バーの [表示] をクリックし、ボックスの一覧の [商品定義] をクリックします。
  3. [カタログ定義デザイナ : 商品定義] 画面で、[新規] をクリックします。
  4. [商品定義 : 新規] 画面の [商品定義プロパティ] セクションで、[名前] ボックスに「Pen」と入力します。

新しい商品定義に Pen という名前を付けました。次は、Pen 商品定義に商品バリエーション プロパティを割り当てます。

商品バリエーション プロパティを割り当てるには

  1. [商品バリエーション プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧の [BodyColor] をクリックし、Ctrl キーを押しながら [製造元] と [SKU] をクリックして、Ctrl キーを離してから [追加] をクリックします。

    [BodyColor]、[製造元]、[SKU] の各プロパティが、[商品バリエーション プロパティ] セクションの [割り当てられたプロパティ] ボックスの一覧に表示されます。BodyColor プロパティ定義は、前の「手順 2 : Pencil 商品定義を作成する」で作成したものです。

Pen 商品定義に "BodyColor"、"製造元" および "SKU" という商品バリエーション プロパティを割り当てました。次は、Pen 商品の新しいプロパティ定義を作成および定義します。

InkColor プロパティ定義を作成するには

  1. [商品バリエーション プロパティ] セクションで、[新規] をクリックします。
  2. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの一覧の [複数選択] をクリックし、[継続] をクリックします。
  3. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「InkColor」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [既定値] 省略記号 [...] ボタン をクリックします。

    [複数選択値] ダイアログ ボックスが表示されます。
  4. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Black」と入力し、[追加] をクリックします。
  5. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Blue」と入力し、[追加] をクリックします。
  6. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Green」と入力し、[追加] をクリックします。
  7. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Red」と入力し、[追加] をクリックします。
  8. [複数選択値] ダイアログ ボックスの [新しい値] ボックスに「Silver」と入力し、[追加] をクリックします。

    [Black]、[Blue]、[Green]、[Red]、[Silver] の各値が、[複数選択値] ダイアログ ボックスの [値] ボックスの一覧に表示されます。

  9. 複数選択値を保存して [プロパティ定義 : 新規 (複数選択)] 画面に戻るには、[OK] をクリックします。
  10. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、[既定値] ボックスの一覧の [Blue] をクリックします。
  11. 商品リストに表示] チェック ボックスの [はい] をオンにします。
  12. [プロパティ定義 : 新規 (複数選択)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「インクの色」と入力します。
  13. [確認] をクリックします。
  14. この InkColor プロパティ定義を保存して、新しいプロパティ定義を作成するには、 保存して新規作成 をクリックします。

    [新しいプロパティ定義] ダイアログ ボックスが表示されます。

InkColor プロパティ定義を作成しました。このプロパティ定義は、Pen 商品のインクの色を説明するために使います。

TipType プロパティ定義を作成するには

  1. [新しいプロパティ定義] ダイアログ ボックスで、[種類] ボックスの一覧の [複数選択] をクリックし、[継続] をクリックします。
  2. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「TipType」と入力します。
    [サイトに表示] | [はい] チェック ボックスをオンにします。
    [既定値] 省略記号 [...] ボタン をクリックします。

    [複数選択値] ダイアログ ボックスが表示されます。
  3. [複数選択値] ダイアログ ボックスで、[新しい値] ボックスに「Ball Point」と入力し、[追加] をクリックします。
  4. [複数選択値] ダイアログ ボックスで、[新しい値] ボックスに「Felt Tip」と入力し、[追加] をクリックします。

    [Ball Point] および [Felt Tip] の各値が、[複数選択値] ダイアログ ボックスの [値] ボックスの一覧に表示されます。

  5. TipType 複数選択値を保存して [プロパティ定義 : 新規 (複数選択)] 画面に戻るには、[OK] をクリックします。
  6. [プロパティ定義 : 新規 (複数選択)] 画面の [プロパティ] セクションで、[既定値] ボックスの一覧の [Ball Point] をクリックします。
  7. 商品リストに表示] チェック ボックスの [はい] をオンにします。
  8. [プロパティ定義 : 新規 (複数選択)] 画面の [表示名] セクションで、[新規] をクリックし、次の操作を行います。
  9. 項目 | 操作
    [言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
    [表示名] | 「ペン先の種類」と入力します。
  10. [確認] をクリックします。
  11. TipType プロパティ定義を保存して [商品定義 : 新規] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    [商品定義 : 新規] 画面が表示されます。[BodyColor]、[製造元]、[SKU]、[InkColor]、[TipType] の各プロパティが、[商品バリエーション プロパティ] セクションの [割り当てられたプロパティ] ボックスの一覧に表示されます。作成したプロパティ定義は、どのカタログのどの商品を定義するときでも使用できます。

    TipType プロパティ定義を作成しました。このプロパティ定義は、Pen 商品の種類を説明するために使います。

  12. Pen の商品定義を保存して [カタログ定義デザイナ : 商品定義] 画面に戻るには、 保存して戻る をクリックします。

    [Pen] および [Pencil] という商品定義が、[カタログ定義デザイナ : 商品定義] 画面の [名前] ボックスの一覧に表示されます。

商品定義を作成したので、「レッスン 2: 商品グループ用の基本カタログを作成する」に進み、商品グループごとに基本カタログを作成します。


レッスン 2 : 商品グループ用の基本カタログを作成する

このレッスンでは、商品グループごとに Office Supplies と Office Machines という基本カタログを作成します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で行ってください。

  • 手順 1 : Office Supplies 基本カタログを作成する
  • 手順 2 : Office Machines 基本カタログを作成する


手順 1 : Office Supplies 基本カタログを作成する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。

  2. ツール バーの [新規] をクリックし、ボックスの一覧の [新しい基本カタログ] をクリックします。
  3. [カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Supplies」と入力します。
    [通貨] | ボックスの一覧の [円 - JPY] をクリックします。
    [商品の一意の ID] ボックスの一覧の [ラベル] をクリックします。

    注

    • このプロパティの値は、商品ごとに一意でなければなりません。
    [商品のバリエーションの一意の ID] ボックスの一覧の [SKU] をクリックします。

    注

    • このプロパティの値は、商品バリエーションごとに一意でなければなりません。

    注

    • このシナリオでは多言語のカタログを使わないので、[新しい基本カタログ] 画面の [カタログ言語] セクションで既定の言語を構成する必要は特にありません。カタログの言語を、Commerce Server を実行している Windows 2000 コンピュータの既定の言語と同じものにする場合、そのコンピュータの既定の言語を構成する必要はありません。カタログの既定の言語が構成されていない場合は、Commerce Server を実行している Windows 2000 コンピュータの既定の言語が使われます。このチュートリアルは演習を目的としているため、既定の言語を構成します。

既定のカタログ言語を構成するには

このチュートリアルは演習を目的としているため、Office Supplies 基本カタログの既定の言語として [日本語] を選択します。

  1. [カタログ プロパティ - 新しい基本カタログ] 画面で、[カタログ言語] セクションを展開し、[追加] をクリックします。
  2. [言語の選択] ダイアログ ボックスで、[言語] ボックスの一覧の [日本語 - 日本] をクリックし、[追加] をクリックします。

    選択した言語が、[カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ言語] セクションにある [言語] ボックスの一覧に表示されます。

  3. [カタログ言語] セクションで、[既定の言語] ボックスの一覧の [日本語 - 日本] をクリックします。
  4. [カタログ言語] セクションで、[レポート作成言語] ボックスの一覧の [日本語 - 日本] をクリックします。
  5. Office Supplies 基本カタログを保存して [カタログ] 画面に戻るには、 保存して戻る をクリックします。

    [カタログ] 画面が表示されます。[Office Supplies] が、[カタログ] 画面の [名前] 列に表示されます。

Office Supplies という基本カタログを作成しました。「手順 2 : Office Machines 基本カタログを作成する」に進みます。


手順 2 : Office Machines 基本カタログを作成する

  1. ビジネス デスクで、[カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面でツール バーの [新規] をクリックし、ボックスの一覧の [新しい基本カタログ] をクリックします。
  3. [カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Machines」と入力します。
    [通貨] | ボックスの一覧の [円 -JPY] をクリックします。
    [商品の一意の ID] | ボックスの一覧の [ラベル] をクリックします。
    [商品のバリエーションの一意の ID] | ボックスの一覧の [SKU] をクリックします。

既定のカタログ言語を構成するには

このチュートリアルは演習を目的としているため、Office Machines 基本カタログの既定の言語として [日本語] を選択します。

  1. [カタログ言語] セクションを展開し、[追加] をクリックします。
  2. [言語の選択] ダイアログ ボックスで、[言語] ボックスの一覧の [日本語 - 日本] をクリックし、[追加] をクリックします。

    選択した言語が、[カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ言語] セクションにある [言語] ボックスの一覧に表示されます。

  3. [カタログ言語] セクションで、[既定の言語] ボックスの一覧の [日本語 - 日本] をクリックします。
  4. [カタログ言語] セクションで、[レポート作成言語] ボックスの一覧の [日本語 - 日本] をクリックします。
  5. Office Machines 基本カタログを保存して [カタログ] 画面に戻るには、 保存して戻る をクリックします。

    [カタログ] 画面が表示されます。[Office Machines] が、[カタログ] 画面の [名前] 列に表示されます。

Office Machines 基本カタログを作成したので、「レッスン 3: SupplierAD サイト用の仮想カタログを作成する」に進みます。


レッスン 3 : SupplierAD サイト用の仮想カタログを作成する

仮想カタログの目的は、複数の基本カタログを単一のカタログとして Web サイトに表示することにあります。ここでは、仮想カタログを作成し、その中に「レッスン 2 : 商品グループ用の基本カタログを作成する」で作成した Office Supplies 基本カタログと Office Machines 基本カタログを追加します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : 仮想カタログを作成する
  • 手順 2 : 仮想カタログに基本カタログを追加する
  • 手順 3 : 仮想カタログを再構築する


手順 1 : 仮想カタログを作成する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの [新規] をクリックし、ボックスの一覧の [新しい仮想カタログ] をクリックします。
  3. [カタログ プロパティ - 新しい仮想カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] 「Virtual Catalog」と入力します。
    注
    • この名前が、SupplerAD サイトにカタログ名として表示されます。ここでは、サイトで識別しやすいように、"Virtual Catalog" という名前を使います。通常は、業務の内容に沿ったわかりやすい名前を付けるようにしてください。
    [通貨] | ボックスの一覧の [円 -JPY] をクリックします。

既定のカタログ言語を構成するには

  1. 仮想カタログの既定の言語として [日本語] を選択します。
  2. [カタログ言語] セクションを展開し、[追加] をクリックします。
  3. [言語の選択] ダイアログ ボックスで、[言語] ボックスの一覧の [日本語 - 日本] をクリックし、[追加] をクリックします。

    選択した言語が、[カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ言語] セクションにある [言語] ボックスの一覧に表示されます。

  4. [カタログ言語] セクションで、[既定の言語] ボックスの一覧の [日本語 - 日本] をクリックします。
  5. [カタログ言語] セクションで、[レポート作成言語] ボックスの一覧の [日本語 - 日本] をクリックします。

[セキュリティ] セクションを表示するには

  1. [セキュリティ] セクションを展開します。

    [セキュリティ] セクションの [アクセス許可] ボタンは利用できない状態になっています。これは、仮想カタログにアクセス許可を設定するには、あらかじめ仮想カタログを保存しておく必要があるためです。

  2. ツール バーの [保存] をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。このメッセージが消えたら、次の手順に進みます。

  3. [セキュリティ] セクションを展開します。

    [セキュリティ] セクションの [アクセス許可] ボタンが利用可能な状態になります。

  4. [アクセス許可] をクリックします。

    [アカウント] ダイアログ ボックスが表示されます。

    注

    • [アカウント] ダイアログ ボックスの [アカウント リスト] ボックスに表示されるのは、現時点で、このカタログについてのアクセス許可を付与されているユーザーとユーザー グループです。カタログとモジュールにセキュリティを設定する方法については、このチュートリアルの実習 4 で説明します。
  5. [アカウント] ダイアログ ボックスで、[閉じる] をクリックします。
  6. [カタログ] 画面に戻るには、 戻る をクリックします。

    [Virtual Catalog] が、[カタログ] 画面の [フィルタ ビュー] ボックスの一覧に表示されます。

仮想カタログを作成しました。「手順 2 : 仮想カタログに基本カタログを追加する」に進み、仮想カタログの中に Office Supplies 基本カタログと Office Machines 基本カタログを追加します。


手順 2 : 仮想カタログに基本カタログを追加する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[名前] 列の [Virtual Catalog] をクリックし、ツール バーの カタログを開く をクリックします。

    [カタログ コンテンツ - Virtual Catalog (日本語 - 日本)] 画面が表示されます。

  3. [コンテンツの選択] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [カタログ] 省略記号 [...] ボタン をクリックします。

    [カタログの選択] ダイアログ ボックスが表示されます。

    [カタログの選択] ダイアログ ボックスで、[カタログ] ボックスの一覧の [Office Supplies] をクリックし、[選択] をクリックします。
    [ルール] | ボックスの一覧の [カタログを含める] をクリックします。
  4. [終了] をクリックします。

    [カタログ コンテンツ - Virtual Catalog (日本語 - 日本)] 画面で、[コンテンツの選択] セクションの [カタログ] 列に、[Office Supplies] が表示されます。

  5. [コンテンツの選択] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [カタログ] 省略記号 [...] ボタン をクリックします。

    [カタログの選択] ダイアログ ボックスが表示されます。

    [カタログの選択] ダイアログ ボックスで、[カタログ] ボックスの一覧の [Office Machines] をクリックし、[選択] をクリックします。
    [ルール] | ボックスの一覧の [カタログを含める] をクリックします。
  6. [終了] をクリックします。

    [Office Machines] が、[コンテンツの選択] セクションの [カタログ] 列に表示されます。

  7. 仮想カタログへの変更を保存して [カタログ] 画面に戻るには、 [image] をクリックします。

仮想カタログに Office Supplies カタログと Office Machines カタログを追加しました。「手順 3 : 仮想カタログを再構築する」に進みます。


手順 3 : 仮想カタログを再構築する

基本カタログ、カテゴリ、商品などを仮想カタログに追加したときや、追加した基本カタログの 1 つを編集したときには、仮想カタログを再構築する必要があります。仮想カタログに Office Supplies 基本カタログと Office Machine 基本カタログを追加し、カテゴリもすべて作成したので、ここで仮想カタログを再構築します。

仮想カタログを再構築するには

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。

    注

    • "仮想カタログ" 行にある "状態" 列に "再構築が必要" と表示されています。このメッセージは、この仮想カタログを再構築する必要があることを示しています。
    • 仮想カタログを再構築すると、仮想カタログ内の基本カタログに加えた変更内容もすべて再構築されます。
  2. カタログを再構築してサイトに公開するには、[フィルタ ビュー] ボックスで [Virtual Catalog] を選択し、 再構築 をクリックします。
  3. [ビジネス デスク : カタログの再構築] ダイアログ ボックスで、[OK] をクリックしてダイアログ ボックスを閉じ、次の作業に進みます。

    [カタログ] 画面の "仮想カタログ" 行にある "状態" 列で、状態が "再構築中" と表示されます。状態の更新状況を表示するには、画面を最新の情報に更新する必要があります。Commerce Server がカタログを再構築するまでに多少の時間がかかるため、しばらく経ってから次の手順に進みます。

  4. 画面を最新の状態に更新するには、[カタログ] モジュールの [カタログ エディタ] をクリックします。

画面が最新の状態に更新され、"仮想カタログ" 行の状態メッセージが "最新" になります。「レッスン 4 : SupplierAD サイト用のカテゴリを作成する」に進みます。


レッスン 4 : SupplierAD サイト用のカテゴリを作成する

ここでは、Office Supplies カタログに Pens カテゴリと Pencils カテゴリを作成し、Office Machines カタログに Printers カテゴリを作成します。次に、仮想カタログを再構築します。ここで作成するカテゴリは、後で SupplierAD Web サイトの商品を整理するために使います。

  • 手順 1 : Office Supplies カタログにカテゴリを作成する
  • 手順 2 : Office Machines カタログにカテゴリを作成する
  • 手順 3 : 仮想カタログを再構築して最新の状態にする


手順 1 : Office Supplies カタログにカテゴリを作成する

  1. [カタログ] の [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。

  2. [フィルタ ビュー] ボックスで、[Office Supplies] 基本カタログをクリックし、ツール バーの 開く をクリックします。

    [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面が表示されます。

  3. [カテゴリ] を展開し、[新規] をクリックします。
  4. [新しいカテゴリ] ダイアログ ボックスで、[Pencils] を選択し、[継続] をクリックします。
  5. [カタログ エディタ - Office Supplies (日本語 - 日本) - 新規 (Pencils)] 画面の [カテゴリ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Pencils」と入力します。
    [表示名] | 「鉛筆カテゴリ」と入力します。
    [Description] | 「The Pencils category」と入力します。
    [検索可能] | [はい] チェック ボックスをオンにします。
  6. このカテゴリを保存して基本カタログの別のカテゴリを作成するには、ツール バーの 保存して新しいカテゴリを作成する をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。このメッセージが消えたら、次の手順に進みます。

  7. [カタログ エディタ - Office Supplies (日本語 - 日本) - 新規 (Pencils)] 画面の [カテゴリ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Pens」と入力します。
    [表示名] | 「ペン カテゴリ」と入力します。
    [Description] | 「The Pens category」と入力します。
    [検索可能] | [はい] チェック ボックスをオンにします。
  8. このカテゴリを保存して [カタログ コンテンツ – Office Supplies (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面が表示されます。Pencils カテゴリと Pens カテゴリが、[カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [カテゴリ] セクションで、[カテゴリ] ボックスの一覧に表示されます。

  9. [カタログ] 画面に戻るには、ツール バーの 戻る をクリックします。

Office Supplies カタログに新しいカテゴリを作成しました。「手順 2 : Office Machines カタログにカテゴリを作成する」に進みます。


手順 2 : Office Machines カタログにカテゴリを作成する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面の [フィルタ ビュー] ボックスの一覧で、[Office Machines] 基本カタログをクリックし、ツール バーの カタログを開く をクリックします。

    [カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面が表示されます。

  3. [カテゴリ] を展開し、[新規] をクリックします。
  4. [新しいカテゴリ] ダイアログ ボックスで、[Printers] を選択し、[継続] をクリックします。
  5. [カタログ エディタ - Office Machines (日本語 - 日本) - 新規 (Printers)] 画面の [カテゴリ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Printers」と入力します。
    [表示名] | 「プリンタ カテゴリ」と入力します。
    [Description] | 「Printers category」と入力します。
    [検索可能] | [はい] チェック ボックスをオンにします。
  6. 新しいカテゴリを保存して [カタログ コンテンツ – Office Machines (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "保存しています。お待ちください..." というメッセージが表示された後、[カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面が表示されます。Printers カテゴリが、[カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面の [カテゴリ] セクションで、[カテゴリ] ボックスの一覧に表示されます。

  7. [カタログ] 画面に戻るには、ツール バーの 戻る をクリックします。

    [カタログ] 画面の [Virtual Catalog] の状態が "再構築が必要" になります。カテゴリを追加した後、そのカテゴリが Web サイトに表示されるようにするには、あらかじめ仮想カタログを再構築しておく必要があります。「手順 3 : 仮想カタログを再構築して最新の状態にする」に進みます。


手順 3 : 仮想カタログを再構築して最新の状態にする

基本カタログ、カテゴリ、商品などを仮想カタログに追加したときや、追加した基本カタログの 1 つを編集したときには、仮想カタログを再構築する必要があります。Office Supplies 基本カタログと Office Machines 基本カタログに新しいカテゴリを追加したので、ここで仮想カタログを再構築します。

仮想カタログを再構築するには

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。

    注 注

    • [カタログ] 画面で、"仮想カタログ" 行の "状態" 列に "再構築が必要" と表示されます。このメッセージは、この仮想カタログを再構築する必要があることを示しています。
    • 仮想カタログを再構築すると、仮想カタログに含まれている基本カタログに加えた変更内容もすべて再構築されます。
  2. [Virtual Catalog] を選択し、 再構築 をクリックして、カタログの再構築とサイトへの公開を行います。
  3. [ビジネス デスク : カタログの再構築] ダイアログ ボックスで、[OK] をクリックしてダイアログ ボックスを閉じ、次の作業に進みます。

    [カタログ] 画面の "仮想カタログ" 行にある "状態" 列で、状態が "再構築中" と表示されます。

  4. 画面を最新の状態に更新するには、[カタログ] モジュールの [カタログ エディタ] をクリックします。

    画面が最新の状態に更新され、"仮想カタログ" 行の状態メッセージが "最新" になります。

  5. 作業中の基本カタログを最新の状態に更新するには、ツール バーの [最新の状態に更新] をクリックします。

    "カタログを更新しています。" というメッセージが表示されます。

更新が完了したら、「レッスン 5 : カタログ セットを作成する」に進みます。


レッスン 5 : カタログ セットを作成する

は組織単位の 1 つで、さまざまなユーザーや組織が利用できる基本カタログが含まれています。

カタログ セットを使うと、サイトでユーザーやユーザーのグループに表示するカタログを制御できます。また、ビジネス デスクにアクセスする特定のビジネス デスク管理担当者について、カタログ セットへのアクセスを拒否することもできます。これらの方法を使うと、特定のユーザーについて、そのユーザーがアクセスおよび更新できるカタログを制御できます。

注

  • カタログ セットは、組織では特に重要なツールです。組織やユーザーに対して付与できるのは、カタログ セットへのアクセス許可だけだからです。組織やユーザーに対して、基本カタログや仮想カタログへのアクセス許可を直接付与することはできません。

ここでは、ビジネス デスクのカタログ セット モジュールを使って、商品グループごとに 1 つずつ、Office Supplies と Office Machines という 2 つのカタログ セットを作成します。次に、各商品グループの基本カタログを、作成したカタログ セットに割り当てます。後の実習 4 では、特定の代理管理者に対して、これらのカタログ セットへの限定的なアクセス許可を付与します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : Office Supplies カタログ セットを作成する
  • 手順 2 : Office Machines カタログ セットを作成する


手順 1 : Office Supplies カタログ セットを作成する

  1. [カタログ] モジュールの [カタログ セット] をクリックします。
  2. [カタログ セット] 画面で、ツール バーの 追加 をクリックします。
  3. [新しいカタログ セット] 画面で、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Supplies」と入力します。
    [説明] | 「Catalog set for the Office Supplies product group」と入力します。
    [利用できるカタログ] [Office Supplies] をクリックし、[追加] をクリックします。

    [割り当てられたカタログ] ボックスの一覧に [Office Supplies] が表示されます。
  4. Office Supplies カタログ セットを保存して [カタログ セット] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。

    [カタログ セット] 画面が表示されます。

Office Supplies カタログ セットを作成し、その中に Office Supplies 基本カタログを追加しました。「手順 2 : Office Machines カタログ セットを作成する」に進みます。


手順 2 : Office Machines カタログ セットを作成する

  1. [カタログ] の [カタログ セット] をクリックします。
  2. [カタログ セット] 画面で、ツール バーの 追加 をクリックします。
  3. [新しいカタログ セット] 画面で、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Machines」と入力します。
    [説明] | 「Catalog set for the Office Machines product group」と入力します。
    [利用できるカタログ] [Office Machines] をクリックし、[追加] をクリックします。

    [割り当てられたカタログ] ボックスの一覧に [Office Machines] が表示されます。
  4. Office Machines カタログ セットを保存して [カタログ セット] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    [Office Supplies] と [Office Machines] が、[カタログ セット] 画面の [名前] 列に表示されます。

商品グループごとにカタログ セットを作成して保存し、それぞれのカタログ セットに適切な基本カタログを割り当てました。「実習 3 : カタログに商品を追加する」に進みます。


実習 3 : カタログに商品を追加する

ここでは、Office Supplies 基本カタログと Office Machines 基本カタログに商品を追加します。次に、カタログに加えた変更の内容を SupplierAD サイトに公開します。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : 基本カタログに商品を追加する
  • レッスン 2 : カタログを再構築および公開する


レッスン 1 : 基本カタログに商品を追加する

ここでは、Office Supplies カタログに Pen 商品と Pencil 商品を追加し、Office Machines カタログに printer 商品を追加します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : Office Supplies カタログにボールペン商品を追加する
  • 手順 2 : Office Supplies カタログにフェルトペン商品を追加する
  • 手順 3 : Office Supplies カタログに鉛筆商品を追加する
  • 手順 4 : Office Machines カタログにプリンタ商品を追加する


手順 1 : Office Supplies カタログにボールペン商品を追加する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[名前] 列の [Office Supplies] をクリックし、ツール バーの カタログを開く をクリックして Office Supplies カタログを開きます。
  3. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。
  4. [新しい商品] ダイアログ ボックスで、ボックスの一覧の [Pen] を選択し、[OK] をクリックします。
  5. [カタログ エディタ - Office Supplies (日本語 - 日本) - 新規 (Pen)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ラベル] | 「Pen - Ball Point」と入力します。
    [Name] | 「Ball Point Pen」と入力します。
    [Description] | 「The ball point pen product」と入力します。
  6. [商品のバリエーション] セクションを展開し、[新規] をクリックして、次の操作を行います。
    項目 | 操作
    [SKU] | 「bpp01」と入力します。
    [Body Color] | ボックスの一覧の [Black] をクリックします。
    [製造元] | 「Office Supplies」と入力します。
    [InkColor] | ボックスの一覧の [Black] をクリックします。
    [TipType] | ボックスの一覧の [Ball Point] をクリックします。
    [バリエーション価格] | 「99」と入力します。
  7. [終了] をクリックします。

    ボールペン商品である SKU "bpp01" が、[商品バリエーション] ボックスの一覧に表示されます。

  8. [商品のバリエーション] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [SKU] | 「bpp02」と入力します。
    [Body Color] | ボックスの一覧の [Blue] をクリックします。
    [製造元] | 「Office Supplies」と入力します。
    [InkColor] | ボックスの一覧の [Blue] をクリックします。
    [TipType] | ボックスの一覧の [Ball Point] をクリックします。
    [バリエーション価格] | 「99」と入力します。
  9. [終了] をクリックします。

    ボールペン商品である SKU "bpp02" が、[商品バリエーション] ボックスの一覧に表示されます。

この商品を Pens カテゴリに割り当てるには

  1. [割り当てられたカテゴリ] セクションを展開します。
  2. [割り当てられたカテゴリ] セクションで、[利用できるカテゴリ] ボックスの一覧の [Pens] をクリックし、[追加] をクリックします。

    [Pens] カテゴリが [割り当てられたカテゴリ] ボックスに表示されます。

変更内容を保存するには

  1. [カタログ コンテンツ – Office Supplies (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。

  2. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    作成した [Pen - Ball Point] という商品が、[商品] セクションの [商品] ボックスの一覧に表示されます。

「手順 2 : Office Supplies カタログにフェルトペン商品を追加する」に進み、基本カタログに 2 つのフェルトペンの商品バリエーションを追加します。


手順 2 : Office Supplies カタログにフェルトペン商品を追加する

  1. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。

    [新しい商品] ダイアログ ボックスが表示されます。

  2. [新しい商品] ダイアログ ボックスで、ボックスの一覧の [Pen] を選択し、[OK] をクリックします。
  3. [カタログ エディタ - Office Supplies (日本語 - 日本) - 新規 (Pen)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ラベル] | 「Pen - Felt Tip」と入力します。
    [Description] | 「The felt tip pen product」と入力します。
    [Name] | 「Felt Tip Pen」と入力します。
  4. [商品のバリエーション] セクションを展開し、[新規] をクリックして、次の操作を行います。
    項目 | 操作
    [SKU] | 「ftp01」と入力します。
    [Body Color] | ボックスの一覧の [Red] をクリックします。
    [製造元] | 「Northwind Traders」と入力します。
    [InkColor] | ボックスの一覧の [Green] をクリックします。
    [TipType] | ボックスの一覧の [Felt Tip] をクリックします。
    [バリエーション価格] | 「100」と入力します。
  5. [終了] をクリックします。

    フェルトペン商品である SKU "ftp01" が、[商品バリエーション] ボックスの一覧に表示されます。次に、フェルトペン商品をもう 1 つ作成します。

  6. [商品のバリエーション] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [SKU] | 「ftp02」と入力します。
    [Body Color] | ボックスの一覧の [Blue] をクリックします。
    [製造元] | 「Northwind Traders」と入力します。
    [InkColor] | ボックスの一覧の [Blue] をクリックします。
    [TipType] | ボックスの一覧の [Felt Tip] をクリックします。
    [バリエーション価格] | 「100」と入力します。
  7. [終了] をクリックします。

    フェルトペン商品である SKU "ftp02" が、[商品バリエーション] ボックスの一覧に表示されます。次に、フェルトペン商品を Pens カテゴリに割り当てます。

この商品を Pens カテゴリに割り当てるには

  1. [割り当てられたカテゴリ] セクションを展開します。
  2. [割り当てられたカテゴリ] セクションで、[利用できるカテゴリ] ボックスの一覧の [Pens] をクリックし、[追加] をクリックします。

    [Pens] カテゴリが [割り当てられたカテゴリ] ボックスに表示されます。

変更内容を保存するには

  • フェルトペン商品を保存して [カタログ コンテンツ – Office Supplies (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。

商品リストを表示するには

  • [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    作成した [Pen - Felt Tip] という商品が、[商品] セクションの [商品] ボックスの一覧に表示されます。

「手順 3 : Office Supplies カタログに鉛筆商品を追加する」に進み、2 つの鉛筆商品を追加します。


手順 3 : Office Supplies カタログに鉛筆商品を追加する

  1. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。
  2. [新しい商品] ダイアログ ボックスで、ボックスの一覧の [Pencil] を選択し、[OK] をクリックします。

    [カタログ エディタ - Office Supplies (日本語 - 日本) - 新規 (Pencil)] 画面が表示されます。

  3. [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ラベル] | 「Pencil」と入力します。
    [Description] | 「The pencil product」と入力します。
    [Name] | 「Pencil」と入力します。
  4. [商品のバリエーション] セクションを展開し、[新規] をクリックして、次の操作を行います。
    項目 | 操作
    [SKU] | 「pencil0001」と入力します。
    [製造元] | 「Northwind Traders」と入力します。
    [LeadColor] | ボックスの一覧の [Black] をクリックします。
    「BodyColor」と入力します。 | ボックスの一覧の [Yellow] をクリックします。
    [LeadSize] | ボックスの一覧の [#1] をクリックします。
    [バリエーション価格] | 「21」と入力します。
  5. [終了] をクリックします。

    最初の鉛筆商品が、[商品バリエーション] ボックスの一覧に表示されます。次に、2 つ目の鉛筆商品を作成します。

  6. [商品のバリエーション] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [SKU] | 「pencil0002」と入力します。
    [製造元] | 「Northwind Traders」と入力します。
    [LeadColor] | ボックスの一覧の [Black] をクリックします。
    「BodyColor」と入力します。 | ボックスの一覧の [Yellow] をクリックします。
    [LeadSize] | ボックスの一覧の [#2] をクリックします。
    [バリエーション価格] | 「20」と入力します。
  7. [終了] をクリックします。

    2 番目の鉛筆商品が、[商品バリエーション] ボックスの一覧に表示されます。

この商品を Pencils カテゴリに割り当てるには

  1. [割り当てられたカテゴリ] セクションを展開します。
  2. [割り当てられたカテゴリ] セクションで、[利用できるカテゴリ] ボックスの一覧の [Pencils] をクリックし、[追加] をクリックします。

    [Pencils] カテゴリが [割り当てられたカテゴリ] ボックスに表示されます。

変更内容を保存するには

  1. 鉛筆商品を保存して [カタログ コンテンツ – Office Supplies (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "保存しています。お待ちください..." というメッセージが表示された後、[カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面が表示されます。

商品リストを表示するには

  1. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面で、[検索開始] をクリックします。

    Office Supplies カタログ用に作成したペン商品と鉛筆商品が、[商品] セクションの [商品] ボックスの一覧に表示されます。

  2. [カタログ] 画面に戻るには、ツール バーの 戻る をクリックします。

「手順 4 : Office Machines カタログにプリンタ商品を追加する」に進みます。


手順 4 : Office Machines カタログにプリンタ商品を追加する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、[名前] 列の [Office Machines] をクリックし、ツール バーの カタログを開く をクリックして Office Machines カタログを開きます。
  3. [カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面の [商品] セクションで、[新規] をクリックします。
  4. [新しい商品] ダイアログ ボックスで、ボックスの一覧の [プリンタ] を選択し、[OK] をクリックします。
  5. [カタログ エディタ - Office Machines (日本語 - 日本) - 新規 (プリンタ)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ラベル] | 「Printer - Laser」と入力します。
    [Name] | 「Laser Printer」と入力します。
    [Description] | 「The laser printer product」と入力します。
    [製造元] | 「Northwind Traders」と入力します。
    [PPM] | 「20」と入力します。
    [重量] | 「75」と入力します。
    [印字方式] | ボックスの一覧の [Laser] をクリックします。
    [色の印刷] | ボックスの一覧の [いいえ] をクリックします。
    [価格] | 「59900」と入力します。
  6. レーザー プリンタ商品を保存して新しいプリンタ商品を作成するには、ツール バーの 保存して新規作成 をクリックします。
  7. [新しい商品] ダイアログ ボックスで、ボックスの一覧の [プリンタ] を選択し、[OK] をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。このメッセージが消えたら、次の手順に進みます。

  8. [カタログ エディタ - Office Machines (日本語 - 日本) - 新規 (プリンタ)] 画面の [商品プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ラベル] | 「Printer - Ink Jet」と入力します。
    [Name] | 「Ink Jet Printer」と入力します。
    [Description] | 「ink jet printer product」と入力します。
    [製造元] | 「Northwind Traders」と入力します。
    [PPM] | 「4」と入力します。
    [重量] | 「10」と入力します。
    [印字方式] | ボックスの一覧の [インク ジェット] をクリックします。
    [色の印刷] | ボックスの一覧の [はい] をクリックします。
    [価格] | 「20000」と入力します。
  9. インク ジェット プリンタ商品を保存して [カタログ コンテンツ – Office Machines (日本語 - 日本)] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

    "保存しています。お待ちください..." というメッセージが表示されます。このメッセージが消えたら、次の手順に進みます。

  10. [カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    作成した [Printer - Ink Jet] と[Printer - Laser] の商品が、[商品] セクションの [商品] ボックスの一覧に表示されます。

  11. [カタログ] 画面に戻るには、 戻る をクリックします。

    Pen 商品と Pencil 商品を Offiice Supplies 基本カタログに追加し、printer 商品を Office Machines カタログに追加したので、「レッスン 2: カタログを再構築および公開する」に進みます。


レッスン 2 : カタログを再構築および公開する

カタログに商品を追加するための最後の作業は、カタログを再構築して、Web サイトに公開することです。ここでは、仮想カタログを再構築し、それを SupplierAD サイトに公開します。仮想カタログを再構築してサイトに公開すると、そこに含まれる基本カタログもすべて再構築され、公開されます。

  • 手順 1 : 仮想カタログを再構築する
  • 手順 2 : 仮想カタログを SupplierAD サイトに公開する


手順 1 : 仮想カタログを再構築する

基本カタログ、カテゴリ、商品などを仮想カタログに追加したときや、追加した基本カタログの 1 つを編集したときには、仮想カタログを再構築する必要があります。Office Supplies 基本カタログと Office Machines 基本カタログに商品を追加したので、ここで仮想カタログを再構築します。

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。[カタログ] 画面の [Virtual Catalog] の状態が "再構築が必要" になります。

  2. [Virtual Catalog] をクリックし、ツール バーの 再構築 をクリックして、仮想カタログとそこに含まれる基本カタログを再構築します。
  3. [ビジネス デスク : カタログの再構築] ダイアログ ボックスで、[OK] をクリックしてダイアログ ボックスを閉じ、次の作業に進みます。

    [カタログ] 画面の "仮想カタログ" 行にある "状態" 列で、状態が "再構築中" と表示されます。

  4. 画面を最新の状態に更新するには、[カタログ] モジュールの [カタログ エディタ] をクリックします。

画面が最新の状態に更新され、"仮想カタログ" 行の状態メッセージが "最新" になります。「手順 2 : 仮想カタログを SupplierAD サイトに公開する」に進みます。


手順 2 : 仮想カタログを SupplierAD サイトに公開する

  1. [カタログ] モジュールの [カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。

  2. 変更内容を Web サイトに公開するには、ボックスの一覧の [Virtual Catalog] をクリックし、ツール バーの 最新の情報に更新 をクリックします。

    "カタログを更新しています。" というメッセージが表示されます。

更新が完了すると、仮想カタログとそこに含まれる基本カタログが SupplierAD Web サイトに公開されます。これで実習 3 が終了しました。「実習 4: 組織およびセキュリティに関する作業を行う」に進みます。


実習 4 : 組織およびセキュリティに関する作業を行う

完了までの予測時間 : 60 分

ここでは、次の作業について説明します。

  • 組織を使って管理作業を容易にする。
  • ビジネス デスクと SupplierAD サイトを使ってユーザーを作成する。
  • 個々のユーザーに対して、ビジネス デスクのモジュールやタスクへの限定的なアクセス許可を付与する。

ビジネス デスクの組織は、ユーザーやユーザーのグループをカタログにリンクして、管理作業を削減するために使います。基本カタログはカタログ セットに割り当て、カタログ セットは組織に割り当てます。基本カタログは、組織に直接割り当てることはできません。ユーザー (標準ユーザーおよび管理者) も組織に割り当てます。ユーザーやユーザーのグループを組織に割り当てることによって、ユーザーやユーザーのグループは組織のカタログ セットを継承するので、管理作業がしやすくなります。

シナリオ : この実習では、Office Supplies 商品グループと Office Machines 商品グループにそれぞれ組織を作成します。次に、商品グループごとに各グループの管理者が使う Windows アカウントを作成し、代理管理者とも呼ばれるこれらの管理者アカウントを各組織に割り当てます。最後に、実習 3 の「レッスン 5 : カタログ セットを作成する」で作成したカタログ セットをこの実習で作成する組織に割り当てます。

さらに、実習 3 の「レッスン 5 : カタログ セットを作成する」で作成したカタログ セットへのアクセス許可を適切な組織に付与します。次に、各商品グループの管理者が使うアカウントを作成し、適切な組織に追加します。次に、これらのユーザー アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加し、特定のモジュール、カタログ、およびタスクへの限定的なアクセス許可を付与して、これらのアカウントが適切なカタログ セットにアクセスできるようにします。最後に、アクセス可能な範囲が、ビジネス デスクで構成したモジュールやタスクのみであることを確認します。さらに、標準ユーザーを作成して、その標準ユーザーが管理者でないことも確認します。

SupplierAD ソリューション サイトには、次のような長所があります。

  • ビジネス デスクの管理担当者が、ビジネス デスクや SupplierAD サイトを使って、Windows ユーザー アカウントを作成できる。
  • ビジネス デスクの管理担当者がドメイン管理者でない場合や、Active Directory に初めて接する場合でも、サイトのユーザーを管理できる。
  • ユーザー パスワードが暗号化された形式で Active Directory に格納されるので、パスワードを SQL Server に格納したときよりもセキュリティが強固になる。

下記のそれぞれレッスンを行うには、それ以前のレッスンが既に終了している必要があります。レッスンは、ここに示す順序で行ってください。

  • レッスン 1 : 組織を作成する
  • レッスン 2 : ビジネス デスクを使ってユーザー アカウントを作成する
  • レッスン 3 : SupplierAD サイトを使ってユーザー アカウントを作成する
  • レッスン 4 : ビジネス デスクを使ってユーザー アカウントを表示する
  • レッスン 5 : ユーザー アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する
  • レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する
  • レッスン 7 : ビジネス デスクへのアクセス許可を確認する


レッスン 1 : 組織を作成する

シナリオ : ここでは、Office Supplies Product Group と Office Machines Product Group という 2 つの組織を作成します。さらに、それぞれの組織に適切なカタログ セットを割り当てます。それぞれの取引先用のカタログ セットは、このチュートリアルの実習 2 で作成したものです。その後で、ユーザー アカウントを作成し、ユーザーを適切な組織に追加します。カタログ セットとユーザーを組織に割り当てることによって、特定のカタログにアクセスできるユーザーを制御できるようになります。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : Office Machines Product Group 組織を作成する
  • 手順 2 : Office Supplies Product Group 組織を作成する
  • 手順 3 : 作成した組織を表示する


手順 1 : Office Machines Product Group 組織を作成する

  1. ビジネス デスクで、[プロファイル] モジュールの [組織] をクリックします。
  2. [組織] 画面で、ツール バーの 新規 をクリックします。
  3. [新しいプロファイル : 組織] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Machines Product Group」と入力します。
    [取引先番号] | 「01」と入力します。
    [組織カタログ セット] ボックスの一覧の [Office Machines] をクリックします。

    注

    • これは、「レッスン 5 : カタログ セットを作成する」で作成したカタログ セットです。
  4. Office Machines カタログ セットを割り当てられた新しい組織を保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

    Office Machines Product Group 組織が保存されました。「手順 2 : Office Supplies Product Group 組織を作成する」に進みます。


手順 2 : Office Supplies Product Group 組織を作成する

  1. [プロファイル] モジュールの [組織] をクリックします。
  2. [組織] 画面で、ツール バーの 新規 をクリックします。
  3. [新しいプロファイル : 組織] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「Office Supplies Product Group」と入力します。
    [取引先番号] | 「02」と入力します。
    [組織カタログ セット] ボックスの一覧の [Office Supplies] をクリックします。

    これは、「レッスン 5 : カタログ セットを作成する」で作成したカタログ セットです。
  4. Office Supplies カタログ セットを割り当てられた新しい組織を保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

    Office Supplies Product Group 組織が保存されました。「手順 3 : 作成した組織を表示する」に進みます。


手順 3 : 作成した組織を表示する

  1. [プロファイル] モジュールの [組織] をクリックします。
  2. [組織] 画面で、[名前] ボックスに「*」と入力し、[検索開始] をクリックします。

    [Office Supplies Product Group] と [Office Machines Product Group] という組織が、[組織] 画面の [フィルタ ビュー] ボックスの一覧に表示されます。「レッスン 2 : ビジネス デスクを使ってユーザー アカウントを作成する」に進みます。


レッスン 2 : ビジネス デスクを使ってユーザー アカウントを作成する

ここでは、ビジネス デスクを使って、2 つの商品グループ (Office Supplies Product Group と Office Machines Product Group) それぞれの管理者が使うユーザー アカウントを作成します。各商品グループのビジネス デスク管理担当者は、管理者ユーザー アカウントを使って SupplierAD Web サイトにアクセスできます。レッスン 5 とレッスン 6 では、これらのユーザー アカウントに対して、ビジネス デスクへの限定的なアクセス許可を付与します。

作業は、下に示す順序で進めてください。

  • 手順 1 : OffMachAdmin 管理者アカウントを作成する
  • 手順 2 : OffSuppAdmin 管理者アカウントを作成する


手順 1 : OffMachAdmin 管理者アカウントを作成する

ここでは、OffMachAdmin というアカウントを作成します。このアカウントは、Office Machines Product Group に属する信頼できるメンバが、SupplierAD サイトにアクセスするときに使います。後のレッスン 5 とレッスン 6 では、このユーザーをセキュリティのアクセス許可一覧に追加し、このアカウントにビジネス デスクへの限定的なアクセス許可を付与します。次に、このユーザーが Office Machines 基本カタログを更新します。

  1. ビジネス デスクで、[プロファイル] モジュールの [ユーザー] をクリックします。
  2. [ユーザー] 画面で、ツール バーの 新規 をクリックします。
  3. [新しいプロファイル : ユーザー] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] 「OffMachAdmin」と入力します。

    注

    • ユーザー名では、大文字と小文字は区別されません。このチュートリアルでは、読みやすくするために、ユーザー名を大文字と小文字を使って入力しています。
    [ユーザー パスワード] 「OpenSesame」と入力します。

    注

    • パスワードでは、大文字と小文字が区別されます。
    [電子メール] | 「OffMachdmin@NorthwindTraders.com」と入力します。
    [ユーザーの種類] | ボックスの一覧の [登録済みユーザー] をクリックします。
    [姓] | 「Admin」と入力します。
    [名] | 「OffMach」と入力します。
    [既定の言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
  4. [新しいユーザー] 画面の [アカウント情報] セクションで、次の操作を行います。
    項目 操作
    [組織 ID] ボックスの一覧の [既存のプロファイルの挿入] をクリックします。

    注

    • このユーザーの追加先となるプロファイルは、「レッスン 1 : 組織を作成する」で作成した Office Machines Product Group という組織です。
  5. [組織] 画面で、次の操作を行います。
    項目 | 操作
    [検索条件] | ボックスの一覧の [名前] をクリックします。
    [名前] | 「*」と入力し、[検索開始] をクリックします。

    [フィルタ ビュー] ボックスの一覧に [Office Machines Product Group] が表示されます。

  6. [フィルタ ビュー] ボックスの一覧の [Office Machines Product Group] をクリックし、ツール バーの [挿入] をクリックします。
  7. [新しいユーザー] 画面の [アカウント情報] セクションで、次の操作を行います。
    項目 操作
    [アカウントの状態] ボックスの一覧の [アクティブなアカウント] をクリックします。

    注

    • アカウントの既定の状態は、[アクティブなアカウント] です。アカウントの状態が非アクティブになっているユーザーは、サイトにアクセスできません。

    注

    • [新しいユーザー] 画面の [アカウント情報] セクションで、[ユーザー カタログ セット] の項目を設定する必要はありません。これは、「レッスン 1: 組織を作成する」で Office Machines カタログ セットを Office Machines Product Group 組織に割り当ててあり、ここでこのユーザーを Office Machines Product Group 組織に追加したためです。ユーザーに割り当てるカタログ セットを選択した場合、組織レベルで割り当てたカタログ セットは上書きされます。ユーザー レベルで構成したカタログ セットは、組織レベルで構成されたカタログ セットよりも優先されるためです。
  8. [新しいユーザー] 画面の [取引先サービス] セクションで、[取引先サービス ロール フラグ] ボックスの一覧の [管理者] をクリックします。

    注

    • [取引先サービス ロール フラグ] ボックスの一覧に表示されるオプションには、[標準ユーザー] と [管理者] の 2 種類があります。既定値は [標準ユーザー] です。"管理者" は代理管理者とも呼ばれます。代理管理者は、代理管理者に対応しているサイトでは組織に対して大きな権限を持ち、注文の確認やユーザー プロファイルの作成などができます。
  9. 新しいユーザーを保存して [ユーザー] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックして、新しいユーザーを保存し、[ユーザー] 画面に戻ります。

新しいユーザーが、Office Machines Product Group 組織プロファイルに保存されます。「手順 2 : OffSuppAdmin 管理者アカウントを作成する」に進みます。


手順 2 : OffSuppAdmin 管理者アカウントを作成する

ここでは、OffSuppAdmin というアカウントを作成します。このアカウントは、Office Supplies Product Group に属する信頼できるメンバが、SupplierAD サイトにアクセスするときに使います。レッスン 5 とレッスン 6 では、このユーザーをセキュリティのアクセス許可一覧に追加し、このアカウントにビジネス デスクへの限定的なアクセス許可を付与して、このユーザーが Office Supplies 基本カタログだけを更新できるようにします。

  1. [プロファイル] モジュールの [ユーザー] をクリックします。
  2. [ユーザー] 画面で、ツール バーの 新規 をクリックします。
  3. [新しいプロファイル : ユーザー] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 「OffSuppAdmin」と入力します。
    [ユーザー パスワード] | 「OpenSesame2」と入力します。
    [電子メール] | 「OffSuppAdmin@NorthwindTraders.com」と入力します。
    [ユーザーの種類] | ボックスの一覧の [登録済みユーザー] をクリックします。
    [姓] | 「Admin」と入力します。
    [名] | 「OffSupp」と入力します。
    [既定の言語] | ボックスの一覧の [日本語 - 日本] をクリックします。
  4. [新しいプロファイル : ユーザー] 画面の [アカウント情報] セクションで、次の操作を行います。
    項目 操作
    [組織 ID] ボックスの一覧の [既存のプロファイルの挿入] をクリックします。

    注

    • このユーザーの追加先となるプロファイルは、「レッスン 1 : 組織を作成する」で作成した Office Supplies Product Group という組織です。
  5. [組織] 画面で、次の操作を行います。
    項目 | 操作
    [検索条件] | ボックスの一覧の [名前] をクリックします。
    [名前] 「Office Supplies Product Group」と入力し、[検索開始] をクリックします。

    [フィルタ ビュー] ボックスの一覧に [Office Supplies Product Group] が表示されます。
  6. [フィルタ ビュー] ボックスの一覧の [Office Supplies Product Group] をクリックし、ツール バーの [挿入] をクリックします。
  7. [新しいプロファイル : ユーザー] 画面の [アカウント情報] セクションで、次の操作を行います。
    項目 操作
    [アカウントの状態] ボックスの一覧の [アクティブなアカウント] をクリックします。

    注

    アカウントの既定の状態は、[アクティブなアカウント] です。SupplierAD Web サイトにアクセスできるのは、アカウントの状態がアクティブになっているユーザーだけです。

    注

    • [新しいプロファイル : ユーザー] 画面の [アカウント情報] セクションで、ユーザー カタログ セットを選択する必要はありません。これは、「レッスン 1: 組織を作成する」で Office Supplies カタログ セットを Office Supplies Product Group 組織に割り当ててあり、ここでこのユーザーを Office Supplies Product Group 組織に追加したためです。ユーザーに割り当てるカタログ セットを選択した場合、組織レベルで割り当てたカタログ セットは上書きされます。ユーザー レベルで構成したカタログ セットは、組織レベルで構成されたカタログ セットよりも優先されるためです。
  8. [新しいプロファイル : ユーザー] 画面の [取引先サービス ロール] セクションで、[取引先サービス ロール フラグ] ボックスの一覧の [管理者] をクリックします。

    注

    • [取引先サービス ロール フラグ] ボックスの一覧に表示されるオプションには、[標準ユーザー] と [管理者] の 2 種類があります。既定値は [標準ユーザー] です。管理者は、代理管理者とも呼ばれます。代理管理者は、代理管理者に対応しているサイトでは組織の管理者の役割を与えられ、注文の確認やユーザー プロファイルの作成などができます。
  9. 新しいユーザーを保存して [ユーザー] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいユーザーが、Office Supplies Product Group 組織プロファイルに保存されます。ユーザーが作成されたことは、この実習の後のレッスンで確認します。「レッスン 3 : SupplierAD サイトを使ってユーザー アカウントを作成する」に進みます。


レッスン 3 : SupplierAD サイトを使ってユーザー アカウントを作成する

ここでは、SupplierAD サイトを使って、Office Machines Product Group 組織の代理管理者アカウントとユーザー アカウントをそれぞれ 1 つ作成します。次に、そのユーザーが SupplierAD Web サイトの管理者特権を持たないことを確認します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : 代理管理者を作成する
  • 手順 2 : ユーザーを作成する
  • 手順 3 : ユーザーが代理管理者でないことを確認する


手順 1 : 代理管理者を作成する

Office Machines 商品グループのユーザーを作成するので、OffMachAdmin Windows アカウントを使って SupplierAD サイトにログオンします。

  1. SupplierAD Web サイトを参照します。SupplierAD サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<コンピュータ名>/SupplierAD」と入力します。<コンピュータ名> は、使用している Commerce Server コンピュータの名前です。
  2. SupplierAD サイトのサインイン画面で、次の操作を行います。
    項目 操作
    [ユーザー名] 「<ドメイン名>\OffMachAdmin」と入力します。

    <ドメイン名> は、Windows ドメインの名前です。
    [パスワード] 「OpenSesame」と入力します。

    注

    • パスワードでは、大文字と小文字が区別されます。

    注

    • Office Machines 商品グループの代理管理者となるユーザーを作成するので、SupplierAD サイトには OffMachAdmin アカウントを使ってログオンします。この OffMachAdmin アカウントは、Office Machines Product Group 組織のメンバであり、代理管理者でもあります。代理管理者が作成する新しいユーザー アカウントは、作成者のアカウントと同じ組織に自動的に追加されます。ここでは、作成したアカウントは Office Machines Product Group 組織に追加されます。
  3. [送信] をクリックします。

    注 注

    • ページの末尾までスクロールしていくと、左側のウィンドウに [取引先サービス] が表示されます。このオプションは、代理管理者の場合のみ表示されます。
  4. 左側のウィンドウで、[取引先サービス] の下の [ユーザー] をクリックします。
  5. [ユーザー] 画面で、[新規] をクリックします。
  6. [ユーザーの詳細] 画面の [アカウント情報] セクションで、[アカウントの状態] ボックスの一覧の [アクティブ] をクリックします。

    注

    • サイトにアクセスできるのは、状態を "アクティブ" として指定したアカウントだけです。
  7. [ユーザーの詳細] 画面の [取引先サービス ロール] セクションで、[取引先サービス ロール フラグ] ボックスの一覧の [代理管理者] をクリックします。
  8. [ユーザーの詳細] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 「BettyAdmin」と入力します。
    [パスワード] | 「OpenSesame3」と入力します。
    [電子メール] | 「BettyAdmin@NorthwindTraders.com」と入力します。
    [姓] | 「Admin」と入力します。
    [名] | 「Betty」と入力します。
  9. [ユーザーの詳細] 画面で、[保存] をクリックし、[閉じる] をクリックします。

    [ユーザー] 画面が表示されます。BettyAdmin というアカウントが代理管理者として保存され、[ユーザー] 画面の [ログオン名] 列に表示されます。

  10. ブラウザ ウィンドウを閉じます。

「手順 2 : ユーザーを作成する」に進みます。


手順 2 : ユーザーを作成する

ここでは、「手順 1 : 代理管理者を作成する」で作成した BettyAdmin というユーザー アカウントを使って、サイトにログオンします。次に、NormUser という名前の標準ユーザーのアカウントを作成します。BettyAdmin アカウントは Office Machines Product Group 組織のメンバであるため、NormUser アカウントも Office Machines Product Group 組織のメンバになります。

  1. SupplierAD Web サイトを参照します。SupplierAD サイトを開くには、Internet Explorer の [アドレス] ボックスに「http://<コンピュータ名>/SupplierAD」と入力します。<コンピュータ名> は、使用している Commerce Server コンピュータの名前です。
  2. SupplierAD サイトのサインイン画面で、次の操作を行います。
    項目 | 操作
    [ユーザー名] 「<ドメイン名>\Bettyadmin」と入力します。

    <ドメイン名> は、Windows ドメインの名前です。
    [パスワード] | 「OpenSesame3」と入力します。
  3. [送信] をクリックします。

    注

    • ページの末尾までスクロールしていくと、左側のウィンドウに [取引先サービス] が表示されます。このオプションは、代理管理者の場合のみ表示されます。
  4. 左側のウィンドウで、[取引先サービス] の下の [ユーザー] をクリックします。
  5. [ユーザー] 画面で、[新規] をクリックします。
  6. [ユーザーの詳細] 画面の [アカウント情報] セクションで、[アカウントの状態] ボックスの一覧の [アクティブ] をクリックします。
  7. [ユーザーの詳細] 画面の [取引先サービス ロール] セクションで、[取引先サービス ロール フラグ] ボックスの一覧の [ユーザー] をクリックします。
  8. [ユーザーの詳細] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 「NormUser」と入力します。
    [パスワード] | 「OpenSesame4」と入力します。
    [電子メール アドレス] | 「NormUser@NorthwindTraders.com」と入力します。
    [姓] | 「User」と入力します。
    [名] | 「Norm」と入力します。
  9. [ユーザーの詳細] 画面で、[保存] をクリックし、[閉じる] をクリックします。

    NormUser というアカウントが非管理者ユーザーとして保存され、Office Machines Product Group 組織に追加されます。

  10. ブラウザ ウィンドウを閉じます。

「手順 3 : ユーザーが代理管理者でないことを確認する」に進みます。


手順 3 : ユーザーが代理管理者でないことを確認する

  1. SupplierAD サイトを参照します。Internet Explorer の [アドレス] ボックスに「http://<コンピュータ名>/SupplierAD」と入力してください。
  2. SupplierAD サイトのサインイン画面で、次の操作を行います。
    項目 | 操作
    [ユーザー名] 「<ドメイン名>\NormUser」と入力します。

    <ドメイン名> は、Windows ドメインの名前です。
    [パスワード] | 「OpenSesame4」と入力します。
  3. [送信] をクリックします。

    左側のウィンドウに、[取引先サービス] が表示されません。[取引先サービス] オプションは、代理管理者にのみ表示されます。

  4. Internet Explorer を閉じます。

NormUser という Windows アカウントが代理管理者でないことを確認しました。「レッスン 4 : ビジネス デスクを使ってユーザー アカウントを表示する」に進みます。


レッスン 4 : ビジネス デスクを使ってユーザー アカウントを表示する

ここでは、この実習のレッスン 2 とレッスン 3 で、ビジネス デスクのユーザー モジュールと SupplerAD サイトを使って作成したユーザー アカウントを、ビジネス デスクを使って [フィルタ ビュー] ボックスの一覧に表示します。次に、代理者である OffSuppAdmin アカウントと標準ユーザーである NormUser アカウントの詳細を表示します。

  • 手順 1 : ユーザー リストを表示する
  • 手順 2 : OffSuppAdmin アカウントを表示する
  • 手順 3 : NormUser アカウントを表示する


手順 1 : ユーザー リストを表示する

  1. [プロファイル] をクリックし、[ユーザー] をクリックします。
  2. [ユーザー] 画面で、次の操作を行います。
    項目 | 操作
    [検索条件] | ボックスの一覧の [ログオン名] をクリックします。
    [ログオン名] 「*」と入力します。

    注

    • * (アスタリスク) はワイルドカード文字なので、ビジネス デスクのすべてのユーザー アカウントが一覧表示されます。
  3. [検索開始] をクリックします。

    ビジネス デスクのユーザー サブモジュールと SupplierAD サイトを使って作成したすべての Windows ユーザー アカウントが、[フィルタ ビュー] ボックスの一覧に表示されます。「レッスン 2 : ビジネス デスクを使ってユーザー アカウントを作成する」で作成した OffMachAdmin ユーザーと OffSuppAdmin ユーザー、および「レッスン 3 : SupplerAD サイトを使ってユーザー アカウントを作成する」で作成した BettyAdmin ユーザーと NormUser ユーザーが、[ユーザー] 画面の [フィルタ ビュー] ボックスの一覧に表示されます。

    重要

    • これらの Windows ユーザー アカウントは、いずれも Commerce Server コンピュータの Administrators グループのメンバではありません。また、Administrators グループのメンバにはしないでください。

「手順 2 : OffSuppAdmin アカウントを表示する」に進みます。


手順 2 : OffSuppAdmin アカウントを表示する

  1. [ユーザー] 画面で、[フィルタ ビュー] ボックスの一覧の [OffSuppAdmin] をクリックし、ツール バーの 開く をクリックします。

    [プロファイルの更新 : 'OffSuppAdmin'] 画面が表示されます。[一般情報] セクションでは、[ログオン名]、[ユーザー パスワード]、および [変更者] が利用できないようになっています。

    注

    • [ユーザー パスワード] ボックスが利用できなくなっている場合でも、この画面でパスワードを変更することができます。パスワードを変更するには、[ユーザー パスワード] ボックスの右側にある 省略記号 [...] ボタン をクリックします。[パスワードの再設定] ダイアログ ボックスで、このアカウントのパスワードを再設定することができます。ここでは、ユーザー パスワードは変更しないでください。
  2. [アカウント情報] セクションを展開します。

    [組織 ID] ボックスは利用できない状態になっています。[アカウントの状態] ボックス、[ユーザー カタログ セット] ボックス、および [登録日] ボックスは利用できるようになっています。

  3. [取引先サービス ロール] セクションを展開します。

    [取引先サービス ロール フラグ] ボックスの一覧では、[管理者] が選択されています。取引先サービス ロールを [管理者] から [標準ユーザー] に変更して、このユーザー アカウントのロールを降格させることも可能です。ここでは、このユーザー プロファイルには変更を加えないでください。

  4. [ユーザー] 画面に戻るには、ツール バーの 戻る をクリックします。

「手順 3 : NormUser アカウントを表示する」に進みます。


手順 3 : NormUser アカウントを表示する

NormUser アカウントは、Internet Explorer を使って SupplierAD サイト上で作成したものです。

  1. [ユーザー] 画面で、[フィルタ ビュー] ボックスの一覧の [NormUser] をクリックし、ツール バーの 開く をクリックします。

    [プロファイルの更新 : NormUser] 画面の [一般情報] セクションでは、[ログオン名]、[ユーザー パスワード]、および [変更者] のフィールドが利用できないようになっています。

  2. [アカウント情報] セクションを展開します。

    [組織 ID] ボックスは利用できない状態になっています。[アカウントの状態] ボックス、[ユーザー カタログ セット] ボックス、および [登録日] ボックスは利用できるようになっています。アカウントの状態を一定の期間だけ非アクティブにする場合は、アカウントの状態を [アクティブなアカウント] から [非アクティブなアカウント] に変更します。これによって、アカウントを削除せずに済みます。ここでは、このユーザー プロファイルの状態には変更を加えないでください。

  3. [取引先サービス ロール] セクションを展開します。

    [取引先サービス ロール フラグ] ボックスの一覧では、[標準ユーザー] が選択されています。取引先サービス ロールを [標準ユーザー] から [管理者] に変更して、このユーザー アカウントのロールを事実上昇格させることも可能です。このユーザー プロファイルには、変更を加えないでください。

  4. [ユーザー] 画面に戻るには、ツール バーの 戻る をクリックします。

ビジネス デスクを使って、管理者アカウントと標準ユーザーのアカウントを表示しました。「レッスン 5 : ユーザー アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する」に進みます。


レッスン 5 : ユーザー アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する

シナリオ : Office Supplies Product Group と Office Machines Product Group の信頼できるメンバに対し、ビジネス デスクのモジュールへの限定的なアクセス許可を付与して、サイトに公開されるそれぞれのカタログをメンバが更新できるようにします。既定では、Commerce Server コンピュータのローカル Administrators グループのメンバにのみ、ビジネス デスクにアクセスするためのアクセス許可が付与されています。しかし、商品グループのビジネス デスク管理担当者に対して、Commerce Server コンピュータへのフル アクセスを許可することは避けたいと考えています。このため、商品グループ管理者のユーザー アカウントを Commerce Server コンピュータの Administrators グループに追加するのではなく、代理管理者のユーザー アカウントにビジネス デスクへの限定的なアクセス許可を付与することにします。

ユーザーにビジネス デスクのモジュールやタスクへのアクセス許可を付与するには、2 つの操作を行います。まず、ユーザー アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加し、次に、これらのユーザーに対して、モジュール、カタログ、およびタスクへのアクセス許可を付与します。ここでは、OffMachAdmin と OffSuppAdmin というユーザー アカウントを、ビジネス デスクのセキュリティのアクセス許可一覧に追加します。後の「レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する」では、これらのユーザー アカウントに対して、ビジネス デスクのモジュール、カタログ、およびモジュール内のタスクについての必要最小限のアクセス許可を付与します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : OffMachAdmin アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する
  • 手順 2 : OffSuppAdmin アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する


手順 1 : OffMachAdmin アカウントをビジネスデスクのセキュリティのアクセス許可一覧に追加する

  1. ビジネス デスクで、[セキュリティ] モジュールをクリックし、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面で、[リストに追加] をクリックします。
  3. [アカウントの追加] ダイアログボックスの [アカウント] ボックスに「<ドメイン名>\OffMachAdmin」と入力します。<ドメイン名> は Active Directory ドメインの名前です。
  4. [追加] をクリックします。

ビジネス デスクのセキュリティのアクセス許可一覧に OffMachAdmin アカウントを追加しました。「手順 2 : OffSuppAdmin アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する」に進みます。


手順 2 : OffSuppAdmin アカウントをビジネス デスクのセキュリティのアクセス許可一覧に追加する

  1. [セキュリティのアクセス許可] 画面で、[リストに追加] をクリックします。
  2. [アカウントの追加] ダイアログボックスの [アカウント] ボックスに「<ドメイン名>\OffSuppAdmin」と入力します。<ドメイン名> は Active Directory ドメインの名前です。
  3. [追加] をクリックします。
  4. [Commerce Server : ビジネス デスクへようこそ] 画面に戻るには、ツール バーの 戻る をクリックします。

ビジネス デスクのセキュリティのアクセス許可一覧に、OffMachAdmin と OffSuppAdmin という Windows アカウントを追加しました。この時点では、これらのアカウントにはビジネス デスク モジュールについてのアクセス許可が付与されていません。「レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する」に進み、これらのユーザー アカウントに対して、ビジネス デスクのモジュール、カタログ、およびタスクについての限定的なアクセス許可を付与します。


レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する

ここでは、Office Machines Product Group と Office Supplies Product Group に属する信頼できるメンバに対して、ビジネス デスクのモジュール、カタログ、およびタスクについての限定的なアクセス許可を付与します。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : OffMachAdmin アカウントに限定的なアクセス許可を付与する
  • 手順 2 : OffSuppAdmin アカウントに限定的なアクセス許可を付与する


手順 1 : OffMachAdmin アカウントに限定的なアクセス許可を付与する

  1. [セキュリティ] をクリックし、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面で、[Windows アカウント] ボックスの一覧の [<ドメイン名>\OffMachAdmin] をクリックします。
  3. [設定可能なエンティティ] セクションで、[カタログ] を展開します。
  4. [カタログ] 行で、[許可] をクリックし、[詳細] をクリックします。
  5. [アクセス許可の詳細 : カタログ] 画面の [アクセス許可 : 編集] セクションで、次の操作を行います。
    項目 | 操作
    [Office Supplies] | [拒否] チェック ボックスをオンにします。
    [Office Machines] | [許可] チェック ボックスをオンにします。
    [Virtual Catalog] | [拒否] チェック ボックスをオンにします。
  6. [セキュリティ許可] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  7. [セキュリティのアクセス許可] 画面の [設定可能なエンティティ] セクションで、[カタログ プロパティ] 行の [許可] チェック ボックスをオンにします。
  8. [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションを展開し、[カタログ] セクションが表示されるまでページを下にスクロールします。[カタログ エディタ] 行の [許可] チェック ボックスをオンにします。

    [許可] チェック ボックスは、[カタログ] 行と [カタログ エディタ] 行の両方でオンになっています。したがって、この Windows ユーザー アカウントには、ビジネス デスクのカタログ エディタ モジュールについてのアクセス許可だけが付与されています。

  9. [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションで、[カタログ] 行の [タスクのアクセス許可] をクリックします。
  10. [アクセス許可の詳細 : カタログ] 画面を下の方にスクロールして、すべての [カタログ エディタ] タスクを表示し、次の作業を行います。
    項目 操作
    [新規] [拒否] チェック ボックスをオンにします。

    この設定によって、新しいカタログを作成するユーザー アクセス許可を拒否します。
    [カタログを開く] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられているカタログを開くことを許可します。
    [プロパティの編集] [拒否] チェック ボックスをオンにします。

    この設定によって、プロパティ定義を編集するユーザー アクセス許可を拒否します。
    [インポート] [拒否] チェック ボックスをオンにします。

    この設定によって、このサイトにカタログをインポートするユーザー アクセス許可を拒否します。
    [エクスポート] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられたカタログをこのサイトからエクスポートすることを許可します。
    [削除] [拒否] チェック ボックスをオンにします。

    この設定によって、カタログを削除するユーザー アクセス許可を拒否します。
    [送信] [許可] チェック ボックスをオンにします。

    このユーザーが BizTalk サーバーにデータを送信することを許可します。ただし、このチュートリアルではこの機能は使いません。
    [再構築] [許可] チェック ボックスをオンにします。

    このユーザーが、カタログを再構築することを許可します。

    重要

    • [再構築] のタスクへのアクセス許可を付与するのは、カタログの再構築を任せられる代理管理者だけにしてください。ユーザーに対して、いずれかのカタログについての [再構築] タスクへのアクセス許可を付与すると、そのユーザーには、サイト内のどのカタログでも再構築できるアクセス許可が付与されます。
    [最新の情報に更新] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられているカタログに加えた変更の内容を最新の状態に更新 (公開) することを許可します。

    ユーザーにアクセス許可を付与して、ユーザーが、適切なアクセス許可のあるカタログを開いて操作できるようにしました。

  11. [セキュリティのアクセス許可] 画面に戻るには、 戻る をクリックします。

「手順 2 : OffSuppAdmin アカウントに限定的なアクセス許可を付与する」に進みます。


手順 2 : OffSuppAdmin アカウントに限定的なアクセス許可を付与する

  1. [セキュリティのアクセス許可] 画面で、[Windows アカウント] ボックスの一覧の [<ドメイン名>\OffSuppAdmin] をクリックします。
  2. [設定可能なエンティティ] セクションで、[カタログ] を展開します。
  3. [カタログ] 行で、[許可] をクリックし、[詳細] をクリックします。
  4. [アクセス許可の詳細 : カタログ] 画面の [アクセス許可 : 編集] セクションで、次の操作を行います。
    項目 | 操作
    [Office Supplies] | [許可] チェック ボックスをオンにします。
    [Office Machines] | [拒否] チェック ボックスをオンにします。
    [Virtual Catalog] | [拒否] チェック ボックスをオンにします。
  5. [セキュリティ許可] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  6. [設定可能なエンティティ] セクションで、[カタログ プロパティ] 行の [許可] チェック ボックスをオンにします。
  7. [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションで、[カタログ エディタ] 行の [許可] チェック ボックスをオンにします。

    [許可] チェック ボックスは、[カタログ] 行と [カタログ エディタ] 行の両方でオンになっています。したがって、この Windows ユーザー アカウントには、ビジネス デスクのカタログ エディタ モジュールについてのアクセス許可だけが付与されています。

  8. [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションで、[カタログ] 行の [タスクのアクセス許可] をクリックします。
  9. [アクセス許可の詳細 : カタログ] 画面を下の方にスクロールして、すべての [カタログ エディタ] タスクを表示し、次の作業を行います。
    項目 操作
    [新規] [拒否] チェック ボックスをオンにします。

    この設定によって、新しいカタログを作成するユーザー アクセス許可を拒否します。
    [カタログを開く] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられているカタログを開くことを許可します。
    [プロパティの編集] [拒否] チェック ボックスをオンにします。

    この設定によって、プロパティ定義を編集するユーザー アクセス許可を拒否します。
    [インポート] [拒否] チェック ボックスをオンにします。

    この設定によって、このサイトにカタログをインポートするユーザー アクセス許可を拒否します。
    [エクスポート] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられたカタログをこのサイトからエクスポートすることを許可します。
    [削除] [拒否] チェック ボックスをオンにします。

    この設定によって、カタログを削除するユーザー アクセス許可を拒否します。
    [送信] [許可] チェック ボックスをオンにします。

    このユーザーが BizTalk サーバーにデータを送信することを許可します。ただし、このチュートリアルではこの機能は使いません。
    [再構築] [許可] チェック ボックスをオンにします。

    このユーザーが、カタログを再構築することを許可します。

    重要

    • [再構築] タスクへのアクセス許可を付与するのは、カタログの再構築を任せられる代理管理者だけにしてください。ユーザーに対して、いずれかのカタログについての [再構築] タスクへのアクセス許可を付与すると、そのユーザーには、サイト内のどのカタログでも再構築できるアクセス許可が付与されます。
    [最新の情報に更新] [許可] チェック ボックスをオンにします。

    このユーザーが、アクセス許可を与えられているカタログに加えた変更の内容を最新の状態に更新 (公開) することを許可します。

    ユーザーにアクセス許可を付与して、ユーザーが、適切なアクセス許可のあるカタログを開いて上の操作を行うことができるようにしました。

  10. [セキュリティのアクセス許可] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  11. 構成した内容を保存して [Commerce Server : ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

「レッスン 7 : ビジネス デスクへのアクセス許可を確認する」に進みます。


レッスン 7 : ビジネス デスクへのアクセス許可を確認する

実際の業務では、Office Supplies Product Group や Office Machines Product Group に属するビジネス デスクの管理担当者は、各自のコンピュータを使ってビジネス デスクにアクセスすることになります。この状況をシミュレートするために、これまで作業に使ってきたドメイン コントローラや Commerce Server コンピュータとは別のワークステーション コンピュータから、Internet Explorer を使ってビジネス デスクにアクセスします。

重要

  • コンピュータを構成して、ビジネス デスク管理担当者がインターネット経由でビジネス デスクにアクセスできるようにすることはお勧めしません。ビジネス デスク管理担当者には、会社のイントラネットからビジネス デスクにアクセスしてもらうようにします。

下記のそれぞれの作業を行うには、それ以前の作業が既に終了している必要があります。作業は、下に示す順序で進めてください。

  • 手順 1 : OffMachAdmin アカウントのアクセス許可を確認する
  • 手順 2 : OffSuppAdmin アカウントのアクセス許可を確認する


手順 1 : OffMachAdmin アカウントのアクセス許可を確認する

  1. ワークステーション コンピュータにログオンします。

    注

    • ワークステーション コンピュータで Windows NT Version 4.0、Windows 2000、または Windows XP を実行している場合は、そのワークステーション コンピュータの Administrators グループのメンバになっている Windows アカウントを使ってログオンする必要があります。Windows 95 以降を実行しているコンピュータでは、この必要はありません。このログオン アカウントには、Commerce Server コンピュータやドメイン コントローラの Administrators グループのメンバは使わないでください。
    • ワークステーション コンピュータは、Commerce Server コンピュータと同じドメインに属している必要はありません。また、委任に対して信頼されている必要もありません。
    • ワークステーション コンピュータへのログオンに使う Windows アカウントは、Commerce Server コンピュータと同じドメインに属している必要はありません。
  2. ワークステーション コンピュータで Internet Explorer を開き、[セキュリティ] の設定が「ビジネス デスクをインストールできない」の説明どおりに構成されていることを確認します。

    注

    • セキュリティ設定は、ユーザー プロファイルごとに構成する必要があります。
  3. Internet Explorer の [アドレス] ボックスに「http://<コンピュータ名>/supplieradbizdesk」と入力し、Enter キーを押します。<コンピュータ名> は、使用している Commerce Server コンピュータの名前または IP アドレスです。

    注

    • "ページを表示できません" というメッセージが表示された場合は、コンピュータ名の代わりに Commerce Server コンピュータの IP アドレスを入力します。このエラーは、ワークステーション コンピュータがビジネス デスク コンピュータと同じドメインにない場合などに、コンピュータ名を IP アドレスに解決できないことが原因で発生する場合があります。

    [<コンピュータ名> に接続] ダイアログ ボックスが表示されます。

  4. [<コンピュータ名> に接続] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] 「<ドメイン名>\OffMachAdmin」と入力します。

    <ドメイン名> は、Windows ドメインの名前です。
    [パスワード] | 「OpenSesame」と入力します。
  5. [OK] をクリックします。

    個々のユーザーがビジネス デスクに初めてアクセスしたときは、[フォルダの参照] ダイアログ ボックスが表示されます。ここで指定するフォルダは、ビジネス デスクに初めてアクセスしたときに作成される *.hta ファイルの格納場所として使われます。デスクトップ上にも、このファイルへのショートカットが作成されます。

  6. [フォルダの参照] ダイアログ ボックスで、.hta ファイルの格納場所となるフォルダを選択し、[OK] をクリックします。
  7. Internet Explorer で、[状態] ウィンドウの [ビジネス デスクの起動] をクリックします。

    "読み込んでいます。お待ちください" というメッセージが表示され、しばらくして [Commerce Server : ビジネス デスクへようこそ] 画面が表示されます。ビジネス デスクには、[カタログ] モジュールだけが表示されます。これは、「レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する」で、OffMachAdmin ユーザーに対し、カタログ モジュールとカタログ エディタ サブモジュールへのアクセス許可だけを付与したためです。

  8. [カタログ] モジュールを展開し、[カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。ツール バーには [新規] タスクが表示されません。これは、「手順 1: OffMachAdmin アカウントに限定的なアクセス許可を付与する」で、新しいカタログを作成するアクセス許可を拒否したためです。

  9. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Office Supplies] をクリックします。

    ツール バーの [カタログを開く] は利用できないようになっています。これは、Office Supplies カタログへの OffMachAdmin アカウントのアクセスを制限したためです。

  10. [すべて選択解除] をクリックして、Office Supplies カタログについてのチェック ボックスをすべてオフにします。
  11. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Virtual Catalog] をクリックします。

    ツール バーの [カタログを開く] は利用できないようになっています。これは、仮想カタログへの OffMachAdmin アカウントのアクセスを制限したためです。

  12. [すべて選択解除] をクリックして、仮想カタログについてのチェック ボックスをすべてオフにします。
  13. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Office Machines] をクリックします。

    ツール バーのタスクは、[カタログを開く] も含めて、すべて利用できるようになっています。

  14. [カタログを開く] をクリックして、Office Machines カタログを開きます。
  15. [カタログ コンテンツ - Office Machines (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    実習 3 で作成したプリンタ商品が、[商品] ボックスの一覧に表示されます。

  16. [カタログ] 画面に戻るには、ツール バーの 戻る をクリックします。
  17. ビジネス デスクを終了し、ブラウザを閉じます。

OffMachAdmin Windows アカウントのアクセスが、Office Machines 基本カタログだけに制限されていることを確認しました。「手順 2 : OffSuppAdmin アカウントのアクセス許可を確認する」に進みます。


手順 2 : OffSuppAdmin アカウントのアクセス許可を確認する

  1. 手順 1 と同じワークステーション コンピュータを使って、Internet Explorer を開きます。
  2. In Internet Explorer の [アドレス] ボックスに「http://<コンピュータ名>supplieradbizdesk」と入力し、Enter キーを押します。<コンピュータ名> は、使用している Commerce Server コンピュータの名前または IP アドレスです。

    注

    • "ページを表示できません" というメッセージが表示された場合は、コンピュータ名の代わりに IP アドレスを入力します。
  3. [<コンピュータ名> に接続] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] 「<ドメイン名>\OffSuppAdmin」と入力します。

    <ドメイン名> は、Windows ドメインの名前です。
    [パスワード] | 「OpenSesame2」と入力します。
  4. [OK] をクリックします。

    個々のユーザーが Internet Explorer を使ってビジネス デスクに初めてアクセスしたときは、[フォルダの参照] ダイアログ ボックスが表示されます。ここで指定するフォルダは、Internet Explorer を使ってビジネス デスクにアクセスしたときに作成される *.hta ファイルの格納場所として使われます。デスクトップ上にも、このファイルへのショートカットが作成されます。

  5. [フォルダの参照] ダイアログ ボックスで、*.hta ファイルの格納場所となるフォルダを選択し、[OK] をクリックします。
  6. Internet Explorer で、[状態] ウィンドウの [ビジネス デスクを起動] をクリックします。

    "読み込んでいます。お待ちください" というメッセージが表示され、しばらくして [Commerce Server : ビジネス デスクへようこそ] 画面が表示されます。ビジネス デスクには、[カタログ] モジュールだけが表示されます。これは、「レッスン 6 : 代理管理者にビジネス デスクへの限定的なアクセス許可を付与する」で、このユーザーに対し、カタログ モジュールとカタログ エディタ サブモジュールへのアクセス許可だけを付与したためです。

  7. [カタログ] モジュールを展開し、[カタログ エディタ] をクリックします。

    [カタログ] 画面が表示されます。ツール バーには [新規] タスクが表示されません。これは、「手順 2 : OffSuppAdmin アカウントに限定的なアクセス許可を付与する」で、新しいカタログを作成するアクセス許可を拒否したためです。

  8. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Office Machines] をクリックします。

    ツール バーの [カタログを開く] は利用できないようになっています。これは、Office Machines カタログへの OffSuppAdmin アカウントのアクセスを制限したためです。

  9. [すべて選択解除] をクリックして、Office Machines カタログについてのチェック ボックスをすべてオフにします。
  10. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Virtual Catalog] をクリックします。

    ツール バーの [カタログを開く] は利用できないようになっています。これは、このカタログへの OffSuppAdmin アカウントのアクセスを制限したためです。

  11. [すべて選択解除] をクリックして、この仮想カタログについてのチェック ボックスをすべてオフにします。
  12. [カタログ] 画面の [名前] 列で、ボックスの一覧の [Office Supplies] をクリックします。

    ツール バーのタスクは、[カタログを開く] も含めて、すべて利用できるようになっています。

  13. [カタログを開く] をクリックして、Office Supplies カタログを開きます。
  14. [カタログ コンテンツ - Office Supplies (日本語 - 日本)] 画面の [商品] セクションで、[検索開始] をクリックします。

    実習 3 で作成した Pen 商品と Pencil 商品が、[商品] ボックスの一覧に表示されます。

  15. [カタログ] 画面に戻るには、 戻る をクリックします。

OffSuppAdmin Windows アカウントのアクセスが、Office Supplies 基本カタログだけに制限されていることを確認しました。

以上で、B2B サイトのチュートリアルの実習がすべて終了しました。


Commerce Server Developer Tutorials

Commerce Server includes the following developer tutorials:

  • Commerce Server .NET Application Framework Tutorial. Provides step-by-step procedures for using the Commerce Server .NET Application Framework and Microsoft Visual Studio .NET to implement user management features, authentication, catalogs, order basket, pipelines, and campaigns.
  • Exploring the International Retail Site. Describes the main features of the site from the perspective of a user.


Commerce Server .NET Application Framework Tutorial

Microsoft Commerce Server 2002 provides tight integration with Microsoft Visual Studio .NET. This enables developers to make use of the integrated development environment to build and manage Commerce Server applications, and to use Microsoft .NET Application Framework and its tools.

The intended audience for this tutorial is the developer, and its goal is to provide limited exposure to the Visual Studio .NET integrated development environment as it is used with Commerce Server. It does not cover the entire functionality and features provided in the product.

Before you begin this tutorial, you must have installed both Microsoft Commerce Server 2002 with its .NET components and Microsoft Visual Studio .NET installed.

After following this step-by-step tutorial, you will be able to use the .NET features in Commerce Server 2002 to do the following:

  • Register and authenticate on your Web site
  • Build and implement your product catalog
  • Use orders, baskets, and pipelines
  • Target users with marketing campaigns
  • Use debugging and tracing features

This tutorial contains:

Preparing to Use the Tutorial

Lab 1: Implementing User Management and Authentication

Lab 2: Building and Implementing a Catalog

Lab 3: Implementing the Basket and Order Pipelines

Lab 4: Implementing Marketing Campaigns

Lab 5: Debugging Commerce Server 2002 in ASP .NET


Preparing to Use the Tutorial

Before you begin the tutorial, you need to do the following:

Create a New Commerce Server 2002 Project

Copying the Required Files

Configure Permissions for the ASPNET User

Install Commerce Server 2002 Business Desk


Create a New Commerce Server2002 Project

このページに対するフィードバックを送信する Commerce Server 2002

Create a New Commerce Server 2002 Project

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, in the Profile box, select Visual C# Developer from the drop-down list, and then, in the left navigation menu, click Get Started.
  3. Click New Project.
  4. In the New Project dialog box, do the following:
    Use this | To do this
    Project Types | Select Commerce Projects.
    Templates | From the list, select Commerce C# ASP.NET Web Application.
    Location | Type http://localhost/NorthwindTraders.
  5. Click OK. The Commerce Server Project Wizard starts.
  6. In the Welcome page, click Next.
  7. In the Quick Unpack dialog box, select the Use Windows Integrated security option, and then click Next.
  8. In the Data Warehouse dialog box, in the Name box, type NorthwindTraders_dw, and then click OK.
  9. In the Profiling System dialog box, click Next.
  10. In the second Profiling System dialog box, click OK.
  11. In the Commerce Server Site Packager dialog box, click OK.

A new Commerce Project in Visual C# is created.


Copying the Required Files

  1. Using Windows Explorer, navigate to the \Support\NET Tutorial Data\ folder on the Commerce Server 2002 CD.
  2. Copy the Pipelines folder to <drive:>\InetPub\wwwroot\NorthwindTraders\.
  3. Create the image folder under <drive:>\InetPub\wwwroot\NorthwindTrader\.
  4. Copy the following image files from the Catalog Data folder to <drive:>\InetPub\wwwroot\NorthwindTraders\image folder:
    • corner_up_lft.gif
    • header_black.jpg
    • header_banner.gif
    • right.gif
    • spacer.gif
    • spacer_tan.gif
  5. Create the campaign folder under <drive:>\InetPub\wwwroot\NorthwindTrader\images.
  6. Copy the contents of the \Catalog Data\Campaign Items to the <drive:>\InetPub\wwwroot\NorthwindTrader\images\campaign folder.


Configure Permissions for the ASPNET User

  1. Using the Windows Explorer, navigate to the <drive>\InetPub\wwwroot\NorthwindTrader\Pipelines folder, right-click the log folder, and then click Properties.
  2. In the log Properties dialog box, in the Security tab, click Add.
  3. In the Select Users, Computers, or Groups dialog box, do the following:
    Use this | To do this
    Look in | Select your computer name from the drop-down list.
    Name | Select the ASPNET from the list.
  4. Click Add, and then click OK.
  5. In the log Properties dialog box, in the Security tab, grant the ASPNET user Full Control, and then click OK.


Install Commerce Server 2002 Business Desk

  1. Click Start, point to Programs, and then click Internet Explorer.
  2. In the Address box, type http://localhost/NorthwindTradersBizdesk, and then press Enter.
  3. In the Browse for Folder dialog box, accept the default folder, or select another folder to store the HTML Application (HTA) file, and then click OK.

    The Business Desk Client Setup begins. If the Microsoft ActiveX controls have not been downloaded, troubleshooting tips are displayed in the upper section of the Business Desk Client Setup screen. Microsoft ActiveX controls are needed to install the Business Desk Client.

    In the lower section of the screen, check marks appear when each task is complete. When all four tasks are complete, the Business Desk installation is complete. A link to Business Desk is displayed at the bottom of the screen.

    Note

    • If you are unable to download the ActiveX controls, follow the instructions on the Business Desk Client Setup screen.
  4. When you have completed the Business Desk installation, close Internet Explorer.

The Business Desk icon now appears as a shortcut on your desktop and the Start menu.


Lab 1: Implementing User Management and Authentication

Using Commerce Server 2002 and the .NET development environment, you can customize user profiles to include user properties that meet your business needs. Using Visual Studio .NET, you can customize user profiles and map them to your Web applications for content personalization. For example, you can personalize your Web site based upon common characteristics (custom attributes) of your users, such as, age, gender, country, language, and so forth.

To add custom attributes you do the following:

  1. Allocate space within Microsoft SQL Server to store the custom attributes.
  2. Extend the user profile by adding data members.
  3. Create a new profile property for each new data member.
  4. Create the new site terms custom attributes.
  5. Link site terms to the User Object in the Profiles database.

    Note

  • If you are using a string data type for your custom field then you do not have to perform steps 4 and 5.

In this lab you will learn how to create custom user profile attributes, extend user profiles using Visual Studio .NET, add registered users in the Commerce Server Users Profile Database, create pages for authentication, log off, and new user registration.

Step 1: Create Custom User Profiles Attributes

Step 2: Extend the User Profile Using Visual Studio .NET

Step 3: Create Custom Properties

Step 4: Create New Site Terms

Step 5: Link the Site Terms Using Visual Studio .NET

Step 6: Create a New User Using Visual Studio .NET

Step 7: Add User Login and Logoff Pages

Step 8: Add a New User Registration Page


Step 1: Create Custom User Profiles Attributes

In this step you will create new database columns for two new user attributes (gender and user description).

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Commerce Server Manager.
  2. In Commerce Server Manager, expand Microsoft SQL Servers, expand SQL Server Group, expand <Server Name>, expand Databases, expand NorthwindTraders_commerce, and then click Tables.

    Note

    • Make sure your SQL Server service has been started before proceeding to the following steps.
  3. In the tables list, right-click UserObject, and then select Design Table.
  4. In the Design Table 'UserObject' in 'NorthwestTraders_commerce' on <Server Name> window, scroll down to the bottom of the list, and then add the following two data members:
    Column Name | Data Type | Length | Allow Nulls
    u_gender | Char | 10 | Yes
    u_userDescription | Char | 20 | Yes

    Note

    • The Design Table displays all the data members present in the selected table.
  5. To save the data members click Save on the toolbar.
  6. Close Commerce Server Manager.


Step 2: Extend the User Profile Using Visual Studio .NET

In this step you will link the data members in the Commerce Server Profile Database with the Commerce Server User Profile System.

The data members created in Step 1 are the metadata that point to a database column in the user profile data. You must now create associated data members that point to the database column.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Commerce Server Manager.
  5. In Commerce Server Manager, expand Commerce Server Manager, expand Global Resources, expand Profiles(<Server Name>_NorthwindTraders_commerce), expand Profiles Catalog, expand Data Sources, expand ProfileService_SQLSource, expand Data Objects, right-click UserObject, and then select New Data Member.
  6. In the New Data Member dialog box, do the following:
    Use this | To do this
    Member Name | Select the u_gender data member from the list.
    Display Name | Type Gender.
    Type | Select the String data type for the data member.
  7. Click Add.
  8. In the New Data Member dialog box, do the following:
    Use this | To do this
    Member Name | Select the u_userDescription data member from the list.
    Display Name | Type User Description.
    Type | Select the String data type for the data member.
  9. Click Add, and then click Finish.


Step 3: Create Custom Properties

After you create additional columns for the User Object table and associate them with data members in Commerce Server Manager in Step 2, you create the actual profile attribute.

In the step you create a new profile property for each of the new data member.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Commerce Server Manager.
  5. In the Commerce Server Manager, expand Commerce Server Manager, expand Global Resources, expand Profiles(<Server Name>_NorthwindTraders_commerce), expand Profile Catalog, expand Profile Definitions, and then click User Object.

    Note

    • The User Object contains all the attributes of the User Profile.
  6. In the content pane, in the Properties list, expand General Information, and then click Add.
  7. In the Add – Web Page Dialog dialog box, select the Add a new property option from the list, and then click OK.
  8. In the Attributes section, do the following:
    Use this | To do this
    Name | Type u_gender.
    Display name | Type Gender.
    Description | Type a description for the property.
  9. In the Advanced Attributes section, do the following:
    Use this | To do this
    Active | Select Yes to specify that the new property is Active.
    Map to data Click the ellipsis [�] button to open the Data Source Picker dialog box.

    In the Data Source Picker dialog box, expand ProfileService_SQLSource, expand User Object, and then select Gender (STRING) from the list.

    The data members available for the property are the data members that are not already used in the profile definition you are editing. Properties that are being used by the profile definition are unavailable.

    If you do not map the property to a data member, the property will not be stored in a database, but will be available in memory, for example to store state information while a user is visiting your Web site.

  10. Click OK to close the Data Source Picker dialog box, and then click Apply.
  11. Click Save on the toolbar to save the Gender property to the General Information for the User Object.
  12. In the content pane, in the Properties list, select General Information, and then click Add.
  13. In the Add – Web Page Dialog dialog box, select the Add a new property option from the list, and then click OK.
  14. In the Attributes section, do the following:
    Use this | To do this
    Name | Type u_userDescription.
    Display name | Type User Description.
    Description | Type a description for the property.
  15. In the Advanced Attributes section, do the following:
    Use this | To do this
    Active | Select Yes to specify that the new property is Active.
    Map to data Click the ellipsis [�] button to open the Data Source Picker dialog box.

    In the Data Source Picker dialog box, expand ProfileService_SQLSource, expand User Object, and then select User Description (STRING) from the list.

  16. Click OK to close the Data Source Picker dialog box, and then click Apply.
  17. Click Save on the toolbar to save the User Description property to the General Information for the User Object.
  18. Close Commerce Server Manager.


Step 4: Create New Site Terms

Site terms are lists of the specific values that are pertinent to your site. You use a site term to assign this list of values to a property as an attribute. Using site terms you can standardize the values that are used throughout your site and to target products and advertisements to your users. You can also apply site terms to profile properties.

In this step, you will create a Gender site term, and define female and male as the possible values. When you create the profile property named Gender, and set the site term data type, only one of the possible values can be assigned to the profile.

After you have created your site terms, you will set up a user profile to include the site terms so you can later target an advertisement to those site users who match the user profile.

  1. Open the NorthwindTraders Business Desk.
  2. In Profiles, click Site Terms Editor.
  3. In the Site Terms Editor screen, select User Site Terms from the list, and then click Add.
  4. In the Add dialog box, select Add a new group from the list, and then click OK.
  5. In the Attributes section, do the following:
    Use this | To do this
    Name | Type PersonalInfo.
    Display name | Type Personal Information.
  6. Click Apply.
  7. In the Site term structure section, select Personal Information from the list, and then click Add.
  8. In the Add dialog box, select Add a new site-term from the list, and then click OK.
  9. In the Site Terms Editor screen, in the Site Term Attributes section, do the following:
    Use this | To do this
    Name | Type u_gender.
    Display Name | Type Gender.
  10. Click Apply.
  11. In the Site Terms Editor screen, in the Terms section, click New and then, do the following:
    Use this | To do this
    Term Name | Type Male as the name for the new term.
    Display Name | Type Male.
  12. To add the new term to the site term and display it in the term list, click Accept.
  13. In the Site Terms Editor screen, in the Terms section, click New and then, do the following:
    Use this | To do this
    Term Name | Type Female as the name for the new term.
    Display Name | Type Female.
  14. To add the new term to the site term and display it in the term list, click Accept.
  15. Click Apply, and the then click Save on the toolbar.
  16. In the Site term structure section, select Personal Info from the list, and then click Add.
  17. In the Add dialog box, select Add a new site-term from the list, and then click OK.
  18. In the Site Terms Editor screen, in the Site Term Attributes section, do the following:
    Use this | To do this
    Name | Type u_userDescription.
    Display Name | Type User Description.
  19. Click Apply.
  20. In the Site Terms Editor screen, in the Terms section, click New and then do the following:
    Use this | To do this
    Term Name | Type entrepreneur as the name for the new term.
    Display Name | Type Entrepreneur.
  21. To add the new term to the site term and display it in the term list, click Accept.
  22. In the Site Terms Editor screen, in the Terms section, click New and then, do the following:
    Use this | To do this
    Term Name | Type contractor as the name for the new term.
    Display Name | Type Contractor / Commercial Business.
  23. To add the new term to the site term and display it in the term list, click Accept.
  24. Click Apply, and the then click Save and go back on the toolbar.


Step 5: Link the Site Terms Using Visual Studio .NET

After you create new site terms using the Business Desk, you link them to user properties in the Commerce Server Profiles System using Visual Studio .NET.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Profile Definition Designer.
  5. In the Profiles screen, select the User Object from the list, and then click Open on the Business Desk toolbar.
  6. In the Properties list, expand General Information, and then select Gender from the list.
  7. In the Attributes section, do the following:
    Use this | To do this
    Type | Select the Site Term property type from the drop-down list.
    Type reference | Click the ellipsis Ellipsis button to open the Site Term Selection dialog box.
  8. In the Site Term Selection -- Web Page Dialog dialog box, expand User Site Terms, expand Personal Info, select Gender from the list, and then click OK.
  9. In Custom Attributes section, select sUserAccess from the list, click Edit, and change the Value to 1.

    Note

    • The sUserAcess custom attribute specifies registered user access to the property in the Customer Service page of the Web site. The value options for this custom attribute are as follows:

      0 = Hide from registered users

      1 = Read only

      2 = Editable

  10. Click Accept, and then click Apply.
  11. In the Properties list, under General Information, select User Description.
  12. In the Attributes section, do the following:
    Use this | To do this
    Type | Select the Site Term property type from the drop-down list.
    Type reference | Click the ellipsis Ellipsis button to open the Site Term Selection dialog box.
  13. In the Site Term Selection -- Web Page Dialog dialog box, expand User Site Terms, expand Personal Information, select User Description from the list, and the click OK.
  14. In Custom Attributes section, select sUserAccess from the list, click Edit, and change the Value to 1.
  15. Click Accept, and then click Apply.
  16. Click Save and go back on the toolbar.
  17. Perform an IIS Reset.

To verify that your changes are saved correctly, go back and view the User Object using Commerce Server Manager.


Step 6: Create a New User Using Visual Studio .NET

In Commerce Server Business Desk Profiles, you use the Users module to create, find, and update user profile information, such as assigning a user a new password. You use the Profile Definition Designer module to update the types of information you collect on your Web site.

The profile definition consists of profile properties, attributes, and optionally, site terms. Profile properties are the characteristics that specify the profile data to be collected, and each profile property has attributes. Attributes provide information about the property, such as, the data type of the property. For example, number, text, decimal, and site term. Attributes also provide information if the property is single-valued (for example, only one First Name is allowed), multi-valued, or indexed. The indexed attribute lets a user visiting the Web site to perform a search using the given property.

In this step you will add a new user using the Visual Studio .NET Integrated Commerce Server 2002 Components.

Note

  • If you have changed the properties in the User Object profile, your New User screen may not contain the same properties that are shown in this procedure.
  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Profiles, click Users.
  6. In the User Object screen, click New on the toolbar.
  7. In the New User Object screen, in the General information section, do the following:
    Use this | To do this
    Logon name | Type Mark.
    User password | Type password as the password for the new user.
    E-mail | Type mark.lee@microsoft.com.
    User type Select Registered user from the drop-down list.

    Typically, you will only create registered users.
    User title | Type Mr.
    Last name | Type Lee.
    First name | Type Mark.
    Telephone number | Type 425-555-5555.
    Telephone extension | Leave this blank.
    Fax number | Leave this blank.
    Fax extension | Leave this blank.
    Default Language | Select English from the drop-down list.
    Gender | Select Male from the drop-down list.
    User Description | Select Contractor / Commercial Business from the drop-down list.
  8. In the Account Info section, do the following:
    Use this | To do this
    Organization ID | Leave this blank.
    Account status From the drop-down list, specify Active Account.

    The default status is Active Account. Users with inactive accounts are not able to log in to your site.
    User catalog set From the drop-down list, select Registered User Default CatalogSet.

    This option limits the user Mark to ordering from the selected catalog set.

  9. In the Partner Service section, do the following:
    Use this | To do this
    Partner service role flags | From the drop-down list, select Normal User.
  10. To save the new user profile and return to the User Object screen, click Save and go back on the toolbar.

The new user profile is saved.


Step 7: Add User Login and Logoff Pages

In this step, you will add both user login and logoff pages to your Web site. Step-by-step instructions are provided to use the Visual Studio .NET interface and Commerce Server 2002 objects.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type Login.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx window, click View on the toolbar, and then click Toolbox.
  7. In the Toolbox window, in the Web Forms box, drag and drop a Label object onto the form.
  8. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type userNameLabel.
    Text | Type Username:.
    Font | Expand this property
    Bold | Select True from the drop-down list.
  9. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  10. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type passwordLabel.
    Text | Type Password:.
    Font | Expand this property.
    Bold | Select True from the drop-down list.
  11. In the Toolbox window, in the Web Forms list, drag and drop a Button object onto the form.
  12. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type loginBtn.
    Text | Type Login.
    Font | Expand this property.
    Bold | Select True from the drop-down list.
  13. In the Toolbox window, in the Web Forms list, drag and drop a TextBox object onto the form, and place it right next to the Username label object.
  14. In the Properties window, make sure the object you just created is selected, and then in the ID property box type userName.
  15. In the Toolbox window, in the Web Forms list, drag and drop another TextBox object onto the form, and place it right next to the Password label object.
  16. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type password.
    TextMode Select Password from the drop-down list.

    This option will hide the contents of the text box.
  17. In the Toolbox window, in the Web Forms list, drag and drop a Label object onto the form, and place it right under the Login button object.
  18. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type messageLabel.
    Text | Clear the contents.
  19. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx window, in the Solution Explorer - NorthwindTraders window, click View Code.
  20. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx.cs window, in the using section, add the following lines of code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Profiles;
using System.Diagnostics;
  21. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx window, in the Solution Explorer - NorthwindTraders window, click View Designer.
  22. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx window, double-click the Login button.
  23. Press F5 to build the solution. A blank Default.aspx appears in the browser.
  24. Close the Internet browser.
  25. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx window, in the LoginBtn_Click event, add the following lines of code:
    AuthenticationInfo authInfo = CommerceContext.Current.AuthenticationInfo;
Profile prof;
ProfileContext profContext = CommerceContext.Current.ProfileSystem;
string pwd;

try
{
   prof = profContext.GetProfile(userName.Text, "UserObject");

   pwd = (string)prof.Properties["GeneralInfo.user_security_password"].Value;
   if(string.Compare(pwd, password.Text)==0)
   {
      //Extract the user's ID
      string userID = (string)prof.Properties["GeneralInfo.user_id"].Value;
      //Set the authorization ticket.
      authInfo.SetAuthTicket(userID, true, 200);
      //Create the profile ticket.
      authInfo.SetProfileTicket(userID, true);
      Response.Redirect("default.aspx");
   }

}
catch(Exception)
{
   messageLabel.Text = "Login failed!";
}
  26. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx.cs window, click Debug on the toolbar, and then click Stop Debugging.
  27. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx.cs window, in the Solution Explorer - NorthwindTraders window, right-click Login.aspx, and then select Set As Start Page.
  28. Press F5 to build and execute the project.

    The Internet Browser displays the login page.

  29. Close the Internet Browser window.
  30. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Login.aspx.cs window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  31. In the Add new Item - NorthwindTraders dialog box, in the Name box, type Logoff.aspx, and then click Open.
  32. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Logoff.aspx window, in the Solution Explorer - NorthwindTraders window, click View Code.
  33. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Logoff.aspx.cs window, in the using section, add the following lines of code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Profiles;
using System.Diagnostics;
  34. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Logoff.aspx window, in the Page_Load() method, add the following lines of code:
    CommerceContext.Current.AuthenticationInfo.AuthTicket.SignOut();
Response.Redirect("default.aspx");


Step 8: Add a New User Registration Page

In this step you will create a user registration page for the new users on your Web site. Using the registration page, users will create a login ID, specify their password, and any other custom attributes you specify.

To create a user registration page, you first create the UserRegistration.aspx Web form, and then add references to the Commerce Server 2002 objects as indicated in the following procedure.

In this step you will do the following:

  1. Insert Commerce Server classes.
  2. Design the UserRegistration.aspx page.
  3. Insert code into the submit_Click() handler.
  4. Insert code into the Page_Load() handler.
  5. Set UserRegistration.aspx as the start page.

To insert Commerce Server classes

To design the UserRegistration.aspx page

To insert code into the submit_Click() handler

To insert code into the Page_Load() handler

To set UserRegistration.aspx as the start page

To insert Commerce Server classes

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type UserRegistration.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx window, in the Solution Explorer - NorthwindTraders window, click View Code.
  7. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx.cs window, in the using section, add the following lines of code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Profiles;
using System.Diagnostics;

To design the UserRegistration.aspx page

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx window, click View on the toolbar, and then click Toolbox.
  2. In the Toolbox window, in the Web Forms section, drag and drop a Label object onto the form.
  3. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type userNameLabel.
    Text | Type Username:.
  4. In the Toolbox window, in the Web Forms ?, drag and drop another Label object onto the form.
  5. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type passwordLabel.
    Text | Type Password:.
  6. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  7. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type passwordRetypeLabel.
    Text | Type Confirm Password:.
  8. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  9. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type firstNameLabel.
    Text | Type First Name:.
  10. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  11. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type lastNameLabel.
    Text | Type Last Name:.
  12. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  13. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type genderLabel.
    Text | Type Gender:.
  14. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  15. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type userDescriptionLabel.
    Text | Type User Description:.
  16. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  17. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type emailAddressLabel.
    Text | Type Email Address:.
  18. In the Toolbox window, in the Web Forms, drag and drop another Label object onto the form.
  19. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type messageLabel.
    Text | Clear the contents.
  20. Extend the messageLabel box across the bottom of the page.
  21. In the Toolbox window, in the Web Forms list, drag and drop a TextBox object onto the form, and place it right next to the Username label object.
  22. In the Properties window, make sure the object you just created is selected, and then in the ID property box type userName.
  23. In the Toolbox window, in the Web Forms list, drag and drop another TextBox object onto the form, and place it right next to the Password label object.
  24. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type password.
    TextMode Select Password from the drop-down list.

    This option will hide the contents of the text box.
  25. In the Toolbox window, in the Web Forms list, drag and drop another TextBox object onto the form, and place it right next to the Confirm Password label object.
  26. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type passwordRetype.
    TextMode Select Password from the drop-down list.

    The contents of the text box will be hidden.
  27. In the Toolbox window, in the Web Forms list, drag and drop a TextBox object onto the form, and place it right next to the First Name label object.
  28. In the Properties window, make sure the object you just created is selected, and then in the ID property box type firstName.
  29. In the Toolbox window, in the Web Forms list, drag and drop a TextBox object onto the form, and place it right next to the Last Name label object.
  30. In the Properties window, make sure the object you just created is selected, and then in the ID property box type lastName.
  31. In the Toolbox window, in the Web Forms list, drag and drop a TextBox object onto the form, and place it right next to the Email Address label object.
  32. In the Properties window, make sure the object you just created is selected, and then in the ID property box type emailAddress.
  33. In the Toolbox window, in the Web Forms list, drag and drop a DropDownList object onto the form, and place it right next to the User Description label object.
  34. In the Properties window, make sure the object you just created is selected, and then in the ID property box type userDescription.
  35. In the Toolbox window, in the Web Forms list, drag and drop a DropDownList object onto the form, and place it right next to the Gender label object.
  36. In the Properties window, make sure the object you just created is selected, and then in the ID property box type gender.
  37. In the Toolbox window, in the Web Forms list, drag and drop a Button object onto the form.
  38. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type submit.
    Text | Type Submit.

To insert code into the submit_Click() handler

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx window, double click the Submit button.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx.cs window, enter the following code in the submit_Click() event handler:
    // First, we need to see if there is already a user
// by that name on the site. If there is, we will
// need to error out but leave the fields filled
// in with the same data that they currently contain.
AuthenticationInfo authInfo = CommerceContext.Current.AuthenticationInfo;
ProfileContext profContext = CommerceContext.Current.ProfileSystem;
Profile prof;

try
{
// Having checked to see if there already is a user
// with that name on the site, we now need to create
// the new user account and populate its profile.
// Also, check to make sure that the passwords are
// the same.
if ((String.Compare(passwordRetype.Text, password.Text) == 0))
{

// Get the profile context and fill it with our data.
   prof = profContext.CreateProfile(userName.Text, "UserObject");
   prof.Properties["GeneralInfo.logon_name"].Value = userName.Text;
   prof.Properties["GeneralInfo.user_security_password"].Value = password.Text;
   prof.Properties["GeneralInfo.first_name"].Value = firstName.Text;
   prof.Properties["GeneralInfo.last_name"].Value = lastName.Text;
   prof.Properties["GeneralInfo.email_address"].Value = emailAddress.Text;
   prof.Properties["AccountInfo.account_status"].Value = 1;
   prof.Properties["AccountInfo.date_registered"].Value = DateTime.Now;
   prof.Properties["GeneralInfo.u_gender"].Value = (string) gender.SelectedItem.Value;
   prof.Properties["GeneralInfo.u_userDescription"].Value = (string) userDescription.SelectedItem.Value;
   prof.Update();

   // Set the authorization ticket.
   string userID = (string)prof.Properties["GeneralInfo.user_id"].Value;
   authInfo.SetAuthTicket(userName.Text, true, 200);
   authInfo.SetProfileTicket(userName.Text, true);

   messageLabel.Text = "";
   Response.Redirect("default.aspx");
}
else
{
   messageLabel.Text = "Password does not match";
}
}
catch(Exception exp)
{
   // This means that this is a brand new name!
   messageLabel.Text = exp.Message; }

Insert code into the Page_Load() handler

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx.cs window, enter the following code in the Page_Load() event handler:
    // In here, we need to load the DropDownLists with the data
// from the site terms.
ProfileContext profContext = CommerceContext.Current.ProfileSystem;
SiteTerm genderTerm = profContext.GetSiteTerm("u_gender");
SiteTerm userDescriptionTerm = profContext.GetSiteTerm("u_userDescription");

if (gender.Items.Count == 0)
{
   gender.Items.Add(new ListItem("",""));
   foreach(SiteTermElement item in genderTerm.Elements)
   {
      ListItem li = new ListItem(item.Name,item.Value);
      gender.Items.Add(li);
   }
}
if (userDescription.Items.Count == 0)
{
   userDescription.Items.Add(new ListItem("",""));
   foreach(SiteTermElement item in userDescriptionTerm.Elements)
   {
      ListItem li = new ListItem(item.Name,item.Value);
      userDescription.Items.Add(li);
   }
}

    The new registration page is created.

To set UserRegistration.aspx as the start page

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – UserRegistration.aspx.cs window, in the Solution Explorer - NorthwindTraders window, right-click UserRegistration.aspx, and then select Set As Start Page.
  2. Press F5 to build and execute the project.


Lab 2: Building and Implementing a Catalog

In this lab you will learn how to build a product catalog and implement it on your Web site using the development environment of Visual Studio. NET. After completing this lab, you will be able to do the following:

  • Create property, product, and category definitions.
  • Add new products, product variants, and product categories.
  • Categorize products.
  • Associate similar products into product families.
  • Search the site catalog.
  • Apply both category pricing and custom pricing to products.
  • Work with multiple variants of a common base product.

Using the new Commerce Server 2002 Base Class Libraries (BCLs), you will also be able to programmatically do the following:

  • Enumerate the catalog and display it.
  • Browse categories within the catalog.
  • Databind Commerce Server data to databinding controls.
  • Use the Commerce Server 2002 DataBinding Expression Wizard.
  • Manager product variations in code (including two different product display formats).

Step 1: Create Product Properties

Step 2: Create Product Definitions

Step 3: Create New Category Definition

Step 4: Create a New Base Catalog

Step 5: Add Category Values to the Category Definition

Step 6: Add Products to a Catalog

Step 7: Import a Catalog

Step 8: Create a Virtual Catalog

Step 9: Display Products in a Hierarchical Format

Step 10: Implement Product Drill-down

Step 11: Implement Product Detail Page


Step 1: Create Product Properties

The first step in building a catalog is to define product properties, which are used to define products in your catalog.

In this step you will define a new product (ResidentialSiding), which has several properties, such as name, description, year, make, and model. To define the ResidentialSiding product, you create all of its properties such as, siding types, their prices, SKU numbers.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Catalog Definition Designer.
  5. In the Catalog Definition Designer: Category Definitions screen, click View on the toolbar, and then select Property Definitions from the drop-down list.
  6. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select Multilingual Multiple Choice from the list.
  7. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type SidingType.
    Display on Site | Select this check box to display the specified property to users on your Web site.
    Store data for analysis | Select this check box to export the property to the Data Warehouse.
  8. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Display Names section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Display Name | Type Siding Type.
  9. Click Accept.
  10. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Values section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Value | Type Aluminum.
  11. Click Accept.
  12. Repeat steps 10 and 11 to add Values for: Vinyl, Wood-Laminate, and Cedar.
  13. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.
  14. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select Multilingual Multiple Choice from the list.
  15. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type SidingColor.
    Display on Site | Select this check box to display the specified property to users on your Web site.
    Store data for analysis | Select this check box to export the property to the Data Warehouse.
  16. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Display Names section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Display Name | Type Siding Color.
  17. Click Accept.
  18. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Values section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Value | Type White.
  19. Click Accept.
  20. Repeat steps 18 and 19 to add values for: Brown, Red, and Blue.
  21. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.
  22. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select Multilingual Multiple Choice from the list.
  23. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type SidingMaintenanceFree.
    Display on Site | Select this check box to display the specified property to users on your Web site.
  24. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Display Names section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Display Name | Type Is Siding Maintenance Free?.
  25. Click Accept.
  26. In the Property Definition: New (Multilingual Multiple Choice) screen, in the Values section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Value | Type Yes.
  27. Click Accept.
  28. Repeat steps 26 and 27 to add a value for No.
  29. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.
  30. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select Number from the list.
  31. In the Property Definition: New (Number) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type SidingWarrantyLengthYears.
    Display on Site | Select this check box to display the specified property to users on your Web site.
    Store data for analysis | Select this check box to export the property to the Data Warehouse.
    Minimum Value | Type 0.
    Maximum Value | Type 100.
  32. In the Property Definition: New (Number) screen, in the Display Names section, click New, and then do the following:
    Use this | To do this
    Language | Select English - United States from the drop-down list.
    Display Name | Type Siding warranty length in years.
  33. Click Accept.
  34. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.
  35. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select Text from the list.
  36. In the Property Definition: New (Text) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type ProductBaseName.
    Free text searchable | Clear the check box so that free text searching on your catalog does not apply to values stored in this property.
    Specification searchable | Clear the check box for this property. It is not used in specification searches.
    Minimum length | Type 0.
    Maximum length | Type 100.
    Assign to all product types | Select this check box to assign the property to all product types.
    Is required | Select this check box to indicate that this property must contain a value.
  37. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.
  38. In the Catalog Definition Designer: Property Definitions screen, click New on the toolbar, and then select File Name from the list.
  39. In the Property Definition: New (File Name) screen, in the Properties section, do the following:
    Use this | To do this
    Name | Type Image.
    Display on Site | Select this check box to display the specified property to users on your Web site.
    Assign to all product types | Select this check box to assign the property to all product types.
  40. To save the property definition and return to the Catalog Definition Designer: Property Definitions screen, click Save and go back on the toolbar.


Step 2: Create Product Definitions

After you create product properties, you must create product definitions.

Product definitions describe the specific qualities of a particular product. These product qualities are called product properties. You create a product definition by assigning product properties to it.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Catalog Definition Designer.
  5. In the Catalog Definition Designer: Category Definitions screen, click View on the toolbar, and then select Product Definitions from the drop-down list.
  6. In the Catalog Definition Designer: Product Definitions screen, click New on the toolbar.
  7. In the Product Definition: New screen, in the Name box, type ResidentialSiding.
  8. In the Product Properties section, add the following properties to the Assigned properties list:
    • Image
    • Name
    • ProductBaseName
    • Description
    • SidingMaintenanceFree
    • SidingWarrantyLengthYears
    • SidingType
  9. In the Product Variant Properties section, add the following properties to the Assigned properties list:
    • SidingColor
    • SKU
  10. To save the product definition and return to the Catalog Definition Designer: Product Definition screen, click Save and go back on the toolbar.


Step 3: Create New Category Definition

After you create product definitions, you create a category definition.

Category definitions describe the specific qualities of the categories in your catalog. These category qualities are called category properties. You create a category definition by assigning category properties to it. For example, the Department category definition might have the following category properties: Name, Description, Image File Name, Image Height, and Image Width. When you create a category based on the Department category definition, you enter values for the category properties. For example, the Name category property might be "Sport Shirts Department."

In this step you will create a category definition for Building Materials.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Catalog Definition Designer.
  5. In the Catalog Definition Designer: Category Definitions screen, click View on the toolbar, and then select Category Definitions from the drop-down list.
  6. In Category Definition: New screen, in the Name box, type Building Materials.
  7. To save the new category definition and return to the Catalog Definition Designer: Category Definitions screen, click Save and go back on the toolbar.


Step 4: Create a New Base Catalog

After you define product and category definitions for your new catalog, you add products to the catalog. You can then categorize your products to let users search and navigate the catalog on your site.

Before you can add products, you must first create a new catalog instance that will hold the products.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Catalogs, click Catalog Editor.
  6. In the Catalogs screen, click New on the toolbar, and then select New Base Catalog from the drop-down list.
  7. In the Catalog Properties - New Base Catalog screen, in the Catalog Properties section, do the following:
    Use this | To do this
    Name | Type ResidentialSiding.
    Start date | Type the start date for the catalog. This date does not have any effect on your Web site. However, if you exchange catalogs with a trading partner, your trading partner uses the Start date to determine when the catalog is valid.
    End date | Type the end date for the catalog. Your trading partners use this date to determine the last date the catalog is valid. By default this is the current date plus three months. For example, if you create your catalog in December, the catalog end date will be March.
    Currency | Select US Dollar - USD as the currency for the catalog from the drop-down list.
    Product unique ID | Select ProductBaseName as the unique identifier from the drop-down list.
    Product variant unique ID | Select SKU as the unique identifier from the drop-down list for the product variants.
  8. In the Catalog Languages section, do the following:
    Use this To do this
    Add Select the languages that the catalog will support.

    A catalog can support up to 10 languages. You can add five languages, save the catalog, and then add five more.

    For this step, add English - United States.
    Default Language Select English - United States from the drop-down list as the default language for your catalog.

    If you do not specify a default language, Commerce Server uses the same language as the Microsoft Windows operating system on your Business Desk client computer.
    Reporting Language Select English - United States from the drop-down list as the language to be used for the properties that will be stored in the Data Warehouse.

    This language will be used for reports and analysis.
  9. To enter the display name for the catalog, in the Language box, select the English - United States language, and then click Edit.
  10. In the Display name box, type Building Materials as the name for the catalog. This is the catalog name that will appear on your Web site.
  11. Click Accept.
  12. To save the catalog and return to the Catalogs screen, click Save and go back on the toolbar.


Step 5: Add Category Values to the Category Definition

After your create a base catalog, you add a list of categories to it that enables users to browse the catalog by category.

In this step you will add category values to the category definitions for the ResidentialSiding base catalog.

After you create a category tree, you first create all the categories, and then you organize them in a hierarchy that resembles what users see on the Web site when they search for products.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Catalogs, click Catalog Editor.
  6. In the Catalogs screen, select the ResidentialSiding catalog, and then click Open on the toolbar.
  7. In the Catalog Content - Residential Siding (English - United States) screen, in the Categories section, click New.
  8. In the New Category dialog box, select Building Materials, and then click Continue.
  9. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type SidingType.
    Display Name | Type Siding Type.
  10. To save the catalog property, click Save and create new on the toolbar .
  11. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type MaintenanceFree.
    Display Name | Type Is Maintenance Free?.
  12. To save the catalog property, click Save and create new on the toolbar.
  13. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type Aluminum.
    Display Name | Type Aluminum.
  14. To save the catalog property, click Save and create new on the toolbar.
  15. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type Vinyl.
    Display Name | Type Vinyl.
  16. To save the catalog property, click Save and create new on the toolbar.
  17. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type Wood-Laminate.
    Display Name | Type Wood-Laminate.
  18. To save the catalog property, click Save and create new on the toolbar.
  19. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type Cedar.
    Display Name | Type Cedar.
  20. To save the catalog property, click Save and create new on the toolbar.
  21. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type IsMaintenanceFree.
    Display Name | Type Is Maintenance Free.
  22. To save the catalog property and return to the Catalog Content - ResidentialSiding (English - United States) screen, click Save and create new on the toolbar.
  23. In the Catalog Editor - ResidentialSiding (English - United States) - new (Building Materials) screen, in the Category Properties section, do the following:
    Use this | To do this
    Name | Type IsNotMaintenanceFree.
    Display Name | Type Is Not Maintenance Free.
  24. To save the catalog property and return to the Catalog Content - ResidentialSiding (English - United States) screen, click Save and go back on the toolbar.
  25. In the Catalog Content - ResidentialSiding (English - United States) screen, in the Categories section, in the Categories list select Siding Type, and then click Edit.
  26. In the Catalog Editor - ResidentialSiding (English - United States) - Siding Type (Building Materials) screen, in the Assigned Categories section, add the following categories from the Available child categories to the Assigned child categories list:
    • Aluminum
    • Vinyl
    • Wood-Laminate
    • Cedar
  27. Click Save and go back on the toolbar to save the catalog and return to the Catalog Content - ResidentialSiding (English - United States) screen.
  28. In the Catalog Content - ResidentialSiding (English - United States) screen, in the Categories section, in the Categories list select MaintenanceFree, and then click Edit.
  29. In the Catalog Editor - ResidentialSiding (English - United States) - MaintenanceFree (Building Materials) screen, in the Assigned Categories section, add the following categories from the Available child categories to the Assigned child categories list:
    • IsMaintenanceFree
    • IsNotMaintenanceFree
  30. To save the catalog and return to the Catalog Content - ResidentialSiding (English - United States) screen, click Save and go back on the toolbar.


Step 6: Add Products to a Catalog

The final step in implementing the catalog is to add products. In this step you add products to the new catalog and refresh the product catalog system.

To add products to the catalog

To refresh and publish the catalog

To add products to the catalog

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Catalogs, click Catalog Editor.
  6. In the Catalogs screen, select the ResidentialSiding catalog, and then click Open on the toolbar.
  7. In the Catalog Content - <Residential Siding> screen, in the Products section, click New.
  8. In the New Product dialog box, select the product definition for ResidentialSiding, and then click OK.
  9. In the Catalog Editor - ResidentialSiding (English - United States) - new (ResidentialSiding) screen, in the Product Properties section, do the following:
    Use this | To do this
    ProductBaseName | Type WeatherOne.
    Name | Type WeatherOne.
    Description | Type 400-foot section.
    SideMaintenanceFree | Select Yes from the drop-down list.
    SideWarrantyLengthYears | Type 10.
    SideType | Select Vinyl from the drop-down list.
    Default Price | Type 999.95.
  10. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 1111.
    SidingColor | Select White from the drop-down list.
  11. Click Done.
  12. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 1112.
    SidingColor | Select Brown from the drop-down list.
  13. Click Done.
  14. In the Assigned Categories section, select both IsMaintenanceFree and Vinyl from the Available categories list, and then click Add.
  15. Click Save and create new on the toolbar.
  16. In the New Product dialog box, select the product ResidentialSiding definition, and then click OK.
  17. In the Catalog Editor - ResidentialSiding (English - United States) - new (ResidentialSiding) screen, in the Product Properties section, do the following:
    Use this | To do this
    ProductBaseName | Type TopChoice.
    Name | Type TopChoice.
    Description | Type 400-foot section.
    SideMaintenanceFree | Select Yes from the drop-down list.
    SideWarrantyLengthYears | Type 15.
    SideType | Select Vinyl from the drop-down list.
    Default Price | Type 1099.95.
  18. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 2113.
    SidingColor | Select Red from the drop-down list.
  19. Click Done.
  20. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 2114.
    SidingColor | Select Blue from the drop-down list.
  21. Click Done.
  22. In the Assigned Categories section, select both IsMaintenanceFree and Vinyl from the Available categories list, and then click Add.
  23. Click Save and create new on the toolbar.
  24. In the Catalog Editor - ResidentialSiding (English - United States) - new (ResidentialSiding) screen, in the Product Properties section, do the following:
    Use this | To do this
    ProductBaseName | Type WeatherMaster.
    Name | Type WeatherMaster.
    Description | Type 400-foot section.
    SideMaintenanceFree | Select No from the drop-down list.
    SideWarrantyLengthYears | Type 5.
    SideType | Select Aluminum from the drop-down list.
    Default Price | Type 799.95.
  25. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 3111.
    SidingColor | Select White from the drop-down list.
  26. Click Done.
  27. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 3112.
    SidingColor | Select Brown from the drop-down list.
  28. Click Done.
  29. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 3113.
    SidingColor | Select Red from the drop-down list.
  30. Click Done.
  31. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 3114.
    SidingColor | Select Blue from the drop-down list.
  32. Click Done.
  33. In the Assigned Categories section, select both IsMaintenanceNotFree and Aluminum from the Available categories list, and then click Add.
  34. Click Save and create new on the toolbar.
  35. In the New Product dialog box, select the product ResidentialSiding definition, and then click OK.
  36. In the Catalog Editor - ResidentialSiding (English - United States) - new (ResidentialSiding) screen, in the Product Properties section, do the following:
    Use this | To do this
    ProductBaseName | Type WeatherMaster2.
    Name | Type WeatherMaster2.
    Description | Type 400-foot section.
    SideMaintenanceFree | Select Yes from the drop-down list.
    SideWarrantyLengthYears | Type 30.
    SideType | Select Cedar from the drop-down list.
    Default Price | Type 1599.95.
  37. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 4112.
    SidingColor | Select Brown from the drop-down list.
  38. Click Done.
  39. In the Assigned Categories section, select both IsMaintenanceFree and Cedar from the Available categories list, and then click Add.
  40. Click Save and create new on the toolbar.
  41. In the New Product dialog box, select the product ResidentialSiding definition, and then click OK.
  42. In the Catalog Editor - ResidentialSiding (English - United States) - new (ResidentialSiding) screen, in the Product Properties section, do the following:
    Use this | To do this
    ProductBaseName | Type PrimeFace.
    Name | Type PrimeFace.
    Description | Type 400-foot section.
    SideMaintenanceFree | Select No from the drop-down list.
    SideWarrantyLengthYears | Type 5.
    SideType | Select Wood-Laminate from the drop-down list.
    Default Price | Type 599.95.
  43. In the Product Variants section, click New, and then do the following:
    Use this | To do this
    SKU | Type 5222.
    SidingColor | Select Brown from the drop-down list.
  44. Click Done.
  45. In the Assigned Categories section, select both IsMaintenanceNotFree and Wood-Laminate from the Available categories list, and then click Add.
  46. To save the product variant and return to the Catalog Editor screen click Save and go back on the toolbar.

After you have implemented a fully functioning catalog with property, product, and category definitions, and with products, you must refresh and publish the catalog using the Catalog Editor module.

To refresh and publish the catalog

  1. In Catalogs, click Catalog Editor.
  2. In the Catalogs screen, select the ResidentialSiding catalog, and then click Refresh on the toolbar.


Step 7: Import a Catalog

A Commerce Server catalog in Extensible Markup Language (XML) file format contains both catalog definitions and product data. You can import a Commerce Server catalog XML file, and then use the Catalog Editor module to make changes to the product data.

In this lab you will import a sample XML-based catalog from the Commerce Server 2002 CD into the Commerce Server catalog database. You can assume that your business partner created a catalog containing electrical products.

Note

  • The sample electrical.xml catalog is located in the \Support\.NET Tutorial Data\Catalog Data\Catalog Items\ folder on the Commerce Server 2002 CD. You must copy this catalog and save it on your computer.
  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Catalogs, click Catalog Editor.
  6. In the Catalogs screen, click Import on the toolbar, and then select Import XML from the drop-down list.
  7. In the Import XML Catalog dialog box, do the following:
    Use this | To do this
    Specify a locally accessible XML file | Click Browse to navigate to the electrical.xml XML catalog file located on your Business Desk client computer.
  8. Click OK.

This process may take a few minutes to complete.

To see the catalog after you import it, click Catalog Editor. This step refreshes the Catalog Editor screen.


Step 8: Create a Virtual Catalog

A Commerce Server 2002 virtual catalog references the product data in one or more base catalogs. Products are represented only once in the database, regardless of how many virtual catalogs they appear in.

There are three primary uses for virtual catalogs:

  • To aggregate multiple catalogs so they appear as one catalog to users
  • To price products in multiple currencies
  • To provide special pricing, or subsets of products, for specified groups of users

Virtual catalogs support price rules. That is, you can specify whether the price for the category or product is the same as the price in the base catalog, or different, for example, a percentage or set amount more or less.

In this step, you will implement multilingual/multicurrency properties and consolidate multiple base catalogs into a virtual catalog. In a fully multilingual and multi-currency enabled site, a virtual catalog is implemented for each language/currency combination that will be available for the user to browse.

To implement a simplified way of handling multiple locales, you will be appending the LCID (LocaleID) to the end of the catalog name. For example, LCID=1033 to implement a single virtual catalog to handle US English/US Dollars.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click Project on the toolbar, point to Commerce Server Project, and then select Business Desk.
  5. In Catalogs, click Catalog Editor.
  6. In the Catalogs screen, click New on the toolbar, and then select New Virtual Catalog from the drop-down list.
  7. In the Catalog Properties – New Virtual Catalog screen, in the Catalog Properties section, do the following:
    Use this | To do this
    Name | Type BuildingMaterials1033.
    Start date | Type the start date for the catalog. This date does not have any effect on your Web site. However, if you exchange catalogs with a trading partner, this date lets your trading partner know the first date that the catalog is valid.
    End date | Type the end date for the catalog. Your trading partners use this date to determine the last date the catalog is valid. By default this is the current date plus three months. For example, if you create your catalog in December, the catalog end date will be March.
    Currency | Select the US Dollar - USD currency for the catalog from the drop-down list.
  8. In the Catalog Languages section, click Add to select English - United States as the supported language for the catalog.
  9. In the Default Language box, select English - United States from the drop-down list.
  10. In the Reporting Language box, select English - United States from the drop-down list.
  11. To enter the display name for the catalog, in the Language box, select the language English - United States, and then click Edit.
  12. In the Display name box, type Building Materials as the name for the catalog. This is the catalog name that will appear on your Web site.
  13. Click Accept.
  14. To save the catalog and return to the Catalogs screen, click Save and go back on the toolbar.
  15. In the Catalogs screen, select BuildingMaterials1033, and then click Open on the toolbar.
  16. In the Catalog Content - BuildingMaterials1033 (English - United States) screen, in the Include/exclude section, click New.
  17. In the Catalog box, click the ellipsis [�] button.
  18. In the Catalog Picker dialog box, select the ResidentialSiding catalog, and then click Select.
  19. In the Rule box, select Include Catalog from the drop-down list.
  20. Click Done.
  21. Repeat steps 16 to 20 to add the Electrical base catalog to the BuildingMaterials1033 virtual catalog.
  22. To save the virtual catalog and return to the Catalogs screen, click Save and go back on the toolbar.
  23. In the Catalogs screen, select the BuildingMaterials1033 virtual catalog, and then click Rebuild virtual catalogs on the toolbar.

    The message, �Catalog Rebuild process has been started successfully�� appears.

  24. Click OK, and then click Catalog Editor to refresh the list of catalogs.

    The catalog you selected appears in the list with �Up-to-date� in the Status section.

    If �Rebuilding� appears in the Status section, wait a few seconds, and then click Catalog Editor again.


Step 9: Display Products in a Hierarchical Format

To display products in your catalog in a hierarchical format, you use the product drill-down method.

In this step you will create DataLists, a Web User Control. Using DataBindings properties, you will dynamically populate the Control and display it on the default page. You will implement code on three separate pages to handle the display of your catalog data. Your site will match the pages up with the levels as the following hierarchy:

Level | Category | Page | Description
1 | High-level | Default.aspx | Displays a text-only header.
2 | Subcategories | Default.aspx | Lists subcategories expanded under their parent (the high-level category) on the default page.
3 | Product Listing | ProductListing.aspx | Lists products from a given category on a custom ASP DataList.
4 | Product Detail | ProductDetail.aspx | Displays detailed information about the product and the product variants.

Note

  • In this step you will be adding label and DataList objects on to a Web User Control page. These objects are automatically arranged along the left-hand side in flow-layout mode. The Web form objects should be placed one above the other, alternating with first the label and then the DataList. The DataList should be slightly indented using a couple of spaces at the beginning of the line. You will be using it as a menu/navigation aid off of the default page, and the text values on the labels will be set programmatically later in this step.

In this step you will do the following:

  1. Add controls to display categories.
  2. Create DataList item templates.
  3. Create hyperlinks for the DataList items.
  4. Populate controls from Commerce Server data.
  5. Add the Web User control to the Default page.

To add controls to display categories

To create DataList item templates

To create hyperlinks for the DataList items

To populate controls from Commerce Server data

To add the Web User control to the Default page

To add controls to display categories

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web User Control.
  5. In the Add New Item - NorthwindTraders dialog box, in the Name box, type _Menu.acsx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, click View on the toolbar, and then click Toolbox.
  7. In the Toolbox window, in the Web Forms section, drag and drop a Label object onto the form.
  8. In the Properties window, make sure the object you just created is selected, and then in the ID box, type sidingTypeLabel.
  9. In the Toolbox window, in the Web Forms, drag and drop the DataList object onto the form.
  10. Make sure the DataList object is indented under the previous label object.
  11. In the Properties window, make sure the object you just created is selected, and then in the ID box, type sidingTypeDataList.
  12. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, click View on the toolbar, and then click Toolbox.
  13. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the form.
  14. In the Properties window, make sure the object you just created is selected, and then in the ID box, type sidingMainFreeLabel.
  15. In the Toolbox window, in the Web Forms, drag and drop DataList object onto the form.
  16. Make sure the DataList object is indented under the previous label object.
  17. In the Properties window, make sure the object you just created is selected, and then in the ID box, type sidingMainFreeDataList.
  18. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, click View on the toolbar, and then click Toolbox.
  19. In the Toolbox window, in the Web Forms section, drag and drop a Label object onto the form.
  20. In the Properties window, make sure the object you just created is selected, and then in the ID box, type electricLabel.
  21. In the Toolbox window, in the Web Forms, drag and drop a DataList object onto the form.
  22. Make sure that the DataList object is indented under the previous label object.
  23. In the Properties window, make sure the object you just created is selected, and then in the ID box, type electricDataList.

    Notes

    • The item-template is a pre-arranged set of controls used to display content for a given row in a dataset. For example, you can display a product with a picture right next to it. For each DataList object, you add a Hyper-Link to each of the DataList.

Now you will populate the DataList controls with the item-template content that will be displayed to the user.

To create DataList item templates

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click the sidingTypeDataList, select Edit Template, and then click Item Templates.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms, drag and drop a Hyperlink object onto the Item Template section of the DataList control.
  4. In the Properties window, make sure the control you just created is selected, and then in the ID box, type sidingTypeLink.
  5. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  6. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Display Name.
    Formatted Form | Select this option to get the DataBinder.Eval(), or formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression.

    Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "DisplayName")
  7. Click Copy and then click Close.
  8. Click the HyperLink control in the Item Templates section.
  9. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  10. In the sidingTypeLink Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to indicate that you want to edit the DataBinding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click on editing box, and then click Paste to create the following expression: DataBinder.Eval(Container.DataItem, "DisplayName").
  11. Click OK.
  12. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  13. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that Catalog System is selected.
    Data Source tree view | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Category Name.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression, and then do the following:
    • Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "CategoryName").
    • In the expression, after CategoryName, but before the parenthesis, add a comma ",", and then add the following text: "ProductList.aspx?CategoryID={0}" (Be sure to include the quotation marks.)
    • The expression should look like the following:

      DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}")

  14. Click Copy and then click Close.
  15. Click the HyperLink control in the Item Templates section.
  16. In the Properties window, select the Databindings check box, and then click the ellipsis [...] button.
  17. In the sidingTypeLink Databindings dialog box, do the following:
    Use this | To do this
    NavigateUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}").
  18. Click OK.
  19. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click the sidingTypeDataList, and then click End Template Editing.

Now you will add HyperLink controls and use Databinding expressions for both sidingMaingFreeDataList and electricDataList.

To create hyperlinks for the DataList items

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click the sidingMainFreeDataList, select Edit Template, and then click Item Templates.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms, drag and drop a Hyperlink object onto the Item Template section of the DataList control.
  4. In the Properties window, make sure the control you just created is selected, and then in the ID box, type sidingMainFreeLink.
  5. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  6. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Display Name.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression.

    Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "DisplayName")
  7. Click Copy and then click Close.
  8. Click the HyperLink control in the Item Templates section.
  9. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  10. In the sidingMainFreeLink Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "DisplayName").
  11. Click OK.
  12. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  13. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source tree view | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Category Name.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression, and then do the following:
    • Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "CategoryName").
    • In the expression, after CategoryName, but before the parenthesis, add a comma ",", and add the following text: "ProductList.aspx?CategoryID={0}" (Be sure to include the quotation marks.)
    • The expression should look like the following:

      DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}").

  14. Click Copy and then click Close.
  15. Click the HyperLink control in the Item Templates section.
  16. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  17. In the sidingMainFreeLink Databindings dialog box, do the following:
    Use this | To do this
    NavigateUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}").
  18. Click OK.
  19. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click sidingMainFreeDataList, and then click End Template Editing.
  20. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click electricDataList, select Edit Template, and then click Item Templates.
  21. Click View on the toolbar, and then click Toolbox.
  22. In the Toolbox window, in the Web Forms, drag and drop a Hyperlink object onto the Item Template section of the DataList control.
  23. In the Properties window, make sure the control you just created is selected, and then in the ID box, type electricLink.
  24. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  25. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Display Name.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression.

    Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "DisplayName")
  26. Click Copy and then click Close.
  27. Click the HyperLink control in the Item Templates section.
  28. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  29. In the electricLink Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item option from the Bindable Properties list.
    Custom binding expression Select this to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "DisplayName").
  30. Click OK.
  31. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  32. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Category definitions, expand Common Properties, and then select Category Name.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression, and then do the following:
    • Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "CategoryName").
    • In the expression, after CategoryName, but before the parenthesis, add a comma ",", and add the following text: "ProductList.aspx?CategoryID={0}" (Be sure to include the quotations marks.)
    • The expression should look like the following:

      DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}").

  33. Click Copy and then click Close.
  34. Click the HyperLink control in the Item Templates section.
  35. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  36. In the electricLink Databindings dialog box, do the following:
    Use this | To do this
    NavigateUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "CategoryName", "ProductList.aspx?CategoryID={0}").
  37. Click OK.
  38. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, right-click electricDataList, and then click End Template Editing.

Note

  • After you have created DataList controls, you initiate the DataBind control whenever the page is loaded. We will now link the DataLink controls to their respective data in the Page_Load() event handler.

To populate controls from Commerce Server data

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx.cs window, in the using section, add the following code:
    using System.Web.UI;
using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using System.Diagnostics;
  2. Add the following code in the Page_Load() event handler to initialize controls on the Web form with their respective data:
    ProductCatalog catalog = CommerceContext.Current.CatalogSystem.GetCatalog("BuildingMaterials1033");
if (!IsPostBack)
{
   // Set category name for lookup.  Note how commerce server builds a
   // path to the category name based upon the Base catalog it comes
   // from.
   string catName = "SidingType(ResidentialSiding)";

   // Extract the DataSet with the properties for the category in it.
   DataSet ds = catalog.GetCategory(catName).GetCategoryProperties();

   // Extract the category display name.
   sidingTypeLabel.Text = (string)ds.Tables[0].Rows[0]["DisplayName"];

   // Now, configure the sidingTypeDataList so that it will pull
   // the correct fields to populate it and then initiate a bind on it.
   sidingTypeDataList.DataSource = catalog.GetCategory(catName).GetChildCategories();
   sidingTypeDataList.DataBind();

   // Do it again for the MaintenanceFree category header.
   catName = "MaintenanceFree(ResidentialSiding)";
   ds = catalog.GetCategory(catName).GetCategoryProperties();
   sidingMainFreeLabel.Text = (string)ds.Tables[0].Rows[0]["DisplayName"];

   sidingMainFreeDataList.DataSource = catalog.GetCategory(catName).GetChildCategories();
   sidingMainFreeDataList.DataBind();

   // Do it again for the Electrical category header.
   catName = "ElectricProducts(Electrical)";
   ds = catalog.GetCategory(catName).GetCategoryProperties();
   electricLabel.Text = (string)ds.Tables[0].Rows[0]["DisplayName"];

   electricDataList.DataSource = catalog.GetCategory(catName).GetChildCategories();
   electricDataList.DataBind();
}

To add the Web User control to the Default page

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _Menu.acsx window, in the Solution Explorer window, double-click Default.aspx, and then drag and drop the _Menu.ascx page onto the default Web page.
  2. Right-click the Default.aspx page, and then click Set as Start Page.
  3. Click F5 to run your project.

Notes

  • The links are not functioning currently; we will fix them in the next exercise.
  • If you receive an error about not being able to reformat the page because of a line number, ignore it.


Step 10: Implement Product Drill-down

After you have implemented product category drill-down functionality, you add the product drill-down functionality to display the product hierarchy to users on your Web site.

In this step you will create a Web Form and DataList items with bindings to retrieve dynamic data from the Commerce Server catalog database.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type ProductList.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – ProductList.aspx window, click View on the toolbar, and then click Toolbox.
  7. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the form.
  8. In the Properties window, make sure the object you just created is selected, and then in the ID box, type categoryNameLabel.
  9. In the Toolbox window, in the Web Forms, drag and drop DataList object onto the form.
  10. In the Properties window, make sure the object you just created is selected, and then in the ID box, type productDataList.
  11. Right-click productDataList, select Edit Template, and then click Item Templates.
  12. Click View on the toolbar, and then click Toolbox.
  13. In the Toolbox window, in the Web Forms, drag and drop an Image object onto the Item Template section of the DataList control.
  14. In the Properties window, make sure the object you just created is selected, and then in the ID box, type productImage.
  15. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  16. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Catalogs, expand BuildingMaterials1033, and then select Image.
    Formatted Form | Select this option to get the expression DataBinder.Eval(), or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression.

    Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem,"Image").
  17. Click Copy and then click Close.
  18. Click the Image object in the Item Templates section.
  19. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  20. In the productLink Databindings dialog box, do the following:
    Use this | To do this
    ImageUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem,"Image").
  21. Click OK.
  22. Click the Image object in the Item Templates section.
  23. In the Properties window, do the following:
    Use this | To do this
    Height | Type 63.
    Width | Type 47.
  24. Click View on the toolbar, and then click Toolbox.
  25. In the Toolbox window, in the Web Forms, drag and drop a Hyperlink object onto the Item Template section of the DataList control.
  26. In the Properties window, make sure you the control you just created is selected, and then in the ID box, type productLink.
  27. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  28. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Catalogs, expand BuildingMaterials1033, and then select Name.
    Formatted Form | Select this option to get the expression DataBinder.Eval(), or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression.

    Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "Name").
  29. Click Copy and then click Close.
  30. Click the HyperLink control in the Item Templates section.
  31. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  32. In the productLink Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "Name").
  33. Click OK.
  34. Click Project on the toolbar, point to Commerce Server Project, and then click Databinding Expression Builder.
  35. In the Commerce Server Databinding Expression Builder (NorthwindTraders) dialog box, do the following:
    Use this | To do this
    Data Source | Make sure that the Catalog System is selected.
    Data Source Tree View | Expand Catalog System, expand Catalogs, expand BuildingMaterials1033, and then select ProductID.
    Formatted Form | Select this option to get the DataBinder.Eval() expression, or the formatted form of the expression.
    Edit Expression Select this option to edit the Formatted Form of the expression, and then do the following:
    • Delete the characters "<,%,#, and >" from the expression so that it looks like: DataBinder.Eval(Container.DataItem, "ProductID").
    • In the expression, after CategoryName, but before the parenthesis, add a comma ",", and add the following text: "ProductDetail.aspx?ProductID={0}" (Be sure to include the quotation marks.)
    • The expression should look like the following:

    DataBinder.Eval(Container.DataItem, "ProductID"," ProductDetail.aspx?ProductID={0}" ).
  36. Click Copy and then click Close.
  37. Click the HyperLink control in the Item Templates section.
  38. In the Properties window, select the Databindings box, and then click the ellipsis [...] button.
  39. In the productLink Databindings dialog box, do the following:
    Use this | To do this
    NavigateUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    Right-click the editing box, and then click Paste to get the following expression: DataBinder.Eval(Container.DataItem, "ProductID"," ProductDetail.aspx?ProductID={0}" ).
  40. Click OK.
  41. In the NorthwindTraders – Microsoft Visual C# .NET [design] – ProductList.aspx window, right-click productDataList, and then click End Template Editing.

Note

  • After you have created the DataList controls, you initiate the DataBind whenever the page is loaded. We will now link the DataLink controls to their respective data in the Page_Load() event handler.
  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – ProductList.aspx.cs window, in the using section, add the following code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using System.Diagnostics;
  2. Add the following code in the Page_Load() event handler to initialize controls on the Web form with their respective data:
    ProductCatalog catalog = CommerceContext.Current.CatalogSystem.GetCatalog("BuildingMaterials1033");
if (!IsPostBack)
{
   // Set category name for lookup.
   string catName = Request.Params["CategoryID"];

   // Extract the DataSet with the properties for the
   // category in it.
   DataSet ds = catalog.GetCategory(catName).GetCategoryProperties();

   // Extract the category display name.
   categoryNameLabel.Text = (string)ds.Tables[0].Rows[0]["DisplayName"];

   // Now, let's go find the products that are part of the category
   // we are currently trying to browse and initiate a databind.
   ds = catalog.GetCategory(catName).GetProducts();
   productDataList.DataSource = ds;
   productDataList.DataBind();
}

You should now have a product list, and can test the drill-down functionality.

Notes

  • On the ProductList.aspx page, you must have a parameter indicating the category to be displayed.
  • Leave the starting page set to the Default.aspx.


Step 11: Implement Product Detail Page

In this step you will create a page to display detailed information about a selected product including product variants such as multiple color selection for the selected siding.

You will create another Web Form, add controls, and assign properties to populate the controls from the Commerce Server 2002 catalog database.

You can either add item content to DataList/DataGrid/Repeater controls or manually populate the fields by extracting data from the dataset to display content on the Product Detail page. Label and image controls cannot be directly pointed to a data source and depend on their parent control for information.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type ProductDetail.aspx, and then click Open.
  6. Click View on the toolbar, and then click Toolbox.
  7. In the Toolbox window, in the Web Forms, drag and drop a DataList control onto the form.
  8. In the Properties window, make sure the control you just created is selected, and then in the ID property box type coreProdInfoDataList.
  9. Right-click coreProdInfoDataList, select Edit Template, and then click Item Templates.
  10. Click View on the toolbar, and then click Toolbox.
  11. In the Toolbox window, in the Web Forms, drag and drop an Image object onto the Item Template section of the DataList control.
  12. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type productImage.
    Height | Type 250.
    Width | Type 187
    (Databindings) | Click the ellipsis [...] button.
  13. In the productImage Databindings dialog box, do the following:
    Use this | To do this
    ImageUrl | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "Image").
  14. Click OK.
  15. Place the cursor next to the Image object in the Item Template section of the DataList control, press ENTER to add an additional line, and then type Name: .
  16. Click View on the toolbar, and then click Toolbox.
  17. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the Item Template section of the DataList control.
  18. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type nameLabel.
    (Databindings) | Click the ellipsis[...] button.
  19. In the productImage Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to indicate that you want to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "Name").
  20. Click OK.
  21. Place the cursor next to the Label object in the Item Template section of the DataList control, press ENTER to add an additional line, and then type Price:.
  22. Click View on the toolbar, and then click Toolbox.
  23. In the Toolbox window, in the Web Forms section, drag and drop a Label object onto the Item Template section of the DataList control.
  24. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type priceLabel.
    (Databindings) | Click the ellipsis [...] button.
  25. In the productImage Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this option to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "cy_list_price","{0:c}").
  26. Click OK.
  27. Place the cursor next to the last Label object in the Item Template section of the DataList control, press Enter to add an additional line, and then type Description:.
  28. Click View on the toolbar, and then click Toolbox.
  29. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the Item Template section of the DataList control.
  30. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type descriptionLabel.
    (Databindings) | Click the ellipsis [...] button.
  31. In the productImage Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to edit the DataBinding expression. You can use the editing box to create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "description").
  32. Click OK.
  33. Click View on the toolbar, and then click Toolbox.
  34. In the Toolbox window, in the Web Forms, drag and drop a DataList control onto the form.
  35. In the Properties window, make sure the control you just created is selected, and then in the ID property box type sidingProductInfoDataList.
  36. Right-click sidingProductInfoDataList, select Edit Template, and then click Item Templates.
  37. Place the cursor in the Item Template section of the DataList control, type Siding Information: ,press Enter to add an additional line, and then type Description:.
  38. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the Item Template section of the DataList control.
  39. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type sidingTypeLabel.
    (Databindings) | Click the ellipsis [...] button.
  40. In the sidingTypeLabel Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "SidingType").
  41. Click OK.
  42. Place the cursor next to the last Label object in the Item Template section of the DataList control, press Enter to add an additional line, type Maintenance Free?: , and then press ENTER again.
  43. Click View on the toolbar, and then click Toolbox.
  44. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the Item Template section of the DataList control.
  45. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type mainFreeLabel.
    (Databindings) | Click the ellipsis [...] button.
  46. In the mainFreeLabel Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to edit the data binding expression. The editing box is enabled and you can create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "SidingMaintenanceFree").
  47. Click OK.
  48. Place the cursor next to the Label object in the Item Template section of the DataList control, press Enter to add an additional line, and then type Siding Warranty: .
  49. Click View on the toolbar, and then click Toolbox.
  50. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the Item Template section of the DataList control.
  51. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type sidingWarrantyLabel.
    (Databindings) | Click the ellipsis [...] button.
  52. In the sidingWarrantyLabel Databindings dialog box, do the following:
    Use this | To do this
    Text | Select this item from the Bindable Properties list.
    Custom binding expression Select this to edit the data binding expression. You can use the editing box to create a new expression or edit the one generated by the dialog box.

    In the editing box, type: DataBinder.Eval(Container.DataItem, "sidingWarrantyLengthYears").
  53. Click OK.
  54. Place the cursor next to the Label object in the Item Template section of the DataList control, press Enter to add an additional line, and then type Years .
  55. Right-click the DataList, and then click End Template Editing.
  56. Click View on the toolbar, and then click Toolbox.
  57. In the Toolbox window, in the Web Forms, drag and drop a Label object onto the form.
  58. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type sidingColorLabel.
    Text | Type siding Color: .
  59. In the Toolbox window, in the Web Forms, drag and drop a DropDownList object onto the form.
  60. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type sidingColorList
    DataTextField | Type SidingColor.
    DataValueField | Type SKU.
  61. In the Toolbox window, in the Web Forms list, drag and drop a Button object onto the form.
  62. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type addToCartBtn.
    Text | Type Add To Cart >>.
  63. Double-click the Add to Cart >> button.
  64. Add the following code to the _Click method:
    if (defName.Trim().ToLower().Equals("electrical"))
{
   Response.Redirect("AddToBasket.aspx?ProductID=" + prodId.Value);
}
else
{
   Response.Redirect("AddToBasket.aspx?ProductID=" +
            prodId.Value + "&SKU=" + sidingColorList.SelectedItem.Value);
}
  65. In the Solution Explorer window, click View Designer.
  66. Click View on the toolbar, and then click Toolbox.
  67. In the Toolbox window, in the HTML list, drag and drop a Hidden object onto the form.
  68. In the Properties window, make sure the object you just created is selected, and then in the ID property box type prodId.
  69. Right-click the page, and then click View HTML Source.
  70. In the html, locate the line <INPUT style="Z-INDEX........id="prodId">, and then add the runat attribute and set its value to server. (runat="server")
  71. Right-click on the page, and then select View Design.
  72. In the Solution Explorer window, click View Code.
  73. In the NorthwindTraders – Microsoft Visual C# .NET [design] – ProductDetail.aspx.cs window, in the using section, add the following code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using System.Diagnostics;
  74. In the public class ProductDetail : System.Web.UI.Page section, add the following protected variables:
    protected string prodId;
protected string defName;
  75. In the Page_Load() method, add the following code:
    ProductCatalog catalog = CommerceContext.Current.CatalogSystem.GetCatalog("BuildingMaterials1033");

// Set product ID for lookup.
string prodName = Request.Params["ProductID"];
Product prod = catalog.GetProduct(prodName);

// Extract the DataSet with the properties for the
// category in it.
DataSet ds = prod.GetProductProperties();
// Extract the product definition.  If the definition matches our
// custom product definition (ResidentialSiding), we process one way.
// If it matches "Electrical" it is the one we imported from
// electrical.xml so process it as just having basic information.
defName = (string)ds.Tables[0].Rows[0]["DefinitionName"];
if (!IsPostBack)
{
   // We have to check and see what type of product we
   // are dealing with and enable fields on the form
   // accordingly.
   sidingProdInfoDataList.DataSource = null;
   coreProdInfoDataList.DataSource = ds;
   coreProdInfoDataList.DataBind();
   prodId.Value = (string)ds.Tables[0].Rows[0]["ProductID"];
   if (defName.Trim().ToLower().Equals("electrical"))
   {
      // An electrical product
      sidingProdInfoDataList.Visible = false;
      sidingColorLabel.Visible = false;
      sidingColorList.Visible = false;
   }
   else
   {
      // A siding product
      // Populate the siding-specific data
      // list with data.
      sidingProdInfoDataList.Visible = true;
      sidingProdInfoDataList.DataSource = ds;
      sidingProdInfoDataList.DataBind();
      sidingColorList.Visible = true;
      sidingColorLabel.Visible = true;
      sidingColorList.DataSource = prod.GetVariants();
      sidingColorList.DataBind();

   }
}


Lab 3: Implementing the Basket and Order Pipelines

In the lab you will learn how to configure Commerce Server 2002 pipeline components and create order basket, check-out, and order confirmation pages. After completing this lab you will be able to do the following:

  • Configure Commerce Server 2002 pipelines in the Web.Config file.
  • Add shipping methods using Commerce Server 2002 Business Desk.

Programmatically do the following with Commerce Server 2002 Base Class Libraries (BCLs):

  • Add items to the basket
  • View the basket
  • Add shipping addresses to user profiles
  • Run pipelines
  • Complete an order

This lab contains:

  • Step 1: Implement Header Control for Page Navigation
  • Step 2: Implement the AddtoBasket.aspx Page
  • Step 3: Implement the Basket.aspx Page
  • Step 4: Implement the Checkout.aspx Page
  • Step 5: Implement the OrderConfirmation.aspx Page


Step 1: Implement Header Control for Page Navigation

In the step you will configure project files for the entire lab and create a header control for navigation throughout your Web site. The header control will automatically configure itself based upon AuthManager information that checks the authentication status of a user on your Web site.

In this step you will do the following:

  1. Using Orders in Business Desk, you will also create a shipping method, which is required to complete the user check-out process.
  2. Copy Commerce Server 2002 pipeline components.
  3. Create a pipeline logging directory.
  4. Edit the Web.Config file to enable Commerce Server 2002 pipelines.
  5. Create the control and input the *.ASCX HTML code.
  6. Enter Commerce Server namespace information.
  7. Insert class-wide variable declarations.
  8. Update the _header.ascx.cs file.
  9. Add a stylesheet to the Web site.
  10. Add the stylesheet throughout the entire Web site.
  11. Add the header control to the pages throughout the Web site.

To create a shipping method

To edit the Web.Config file

To create the control in the *.ASCX HTML code

To insert the Commerce Server classes

To insert class-wide variable declarations

To update the _header.ascx.cs file

To add the stylesheet to the site

To add the stylesheet throughout the site

To add the header to all of the pages on the site

To create a shipping method

  1. Open the NorthwindTraders Business Desk.
  2. In Orders, click Shipping Methods.
  3. In the Shipping Methods screen, click Add on the toolbar, and then select Charge by Subtotal from the drop-down list.
  4. In the Charge by Subtotal - New screen, in the Shipping Method Properties section, do the following:
    Use this | To do this
    Language | Select English – United States from the drop-down list.
    Name | Type Flat Fee Express.
    Enabled | Select this check box to enable the shipping method.
  5. In the Rates section, and then do the following:
    Use this | To do this
    Price, up to | Select over 0, and then click Edit.
    Shipping Rate | Type 15.
  6. Click Accept.
  7. To save the shipping method and return to the Shipping Methods screen, click Save and go back on the toolbar.

The charge by subtotal shipping method is saved.

To edit the Web.Config file

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer window, double-click Web.config.
  5. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Web.config window, locate the <pipelines> tag, press ENTER to insert a new line, and then enter the following code:
                <pipeline
                name="basket"
                path="pipelines\basket.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true" />

            <pipeline
                name="checkout"
                path="pipelines\checkout.pcf"
                transacted="true"
                type="OrderPipeline"
                loggingEnabled="true" />

            <pipeline
                name="total"
                path="pipelines\total.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true" />

            <pipeline
                name="advertising"
                path="pipelines\advertising.pcf"
                transacted="false"
                type="CSFPipeline" />

            <pipeline
                name="discounts"
                path="pipelines\discounts.pcf"
                transacted="false"
                type="CSFPipeline" />

            <pipeline
                name="recordevent"
                path="pipelines\recordevent.pcf"
                transacted="false"
                type="CSFPipeline" />
  6. Remove comment tags around the <caches> record to enable caches that will be used with the pipeline components.

To create the control in the *.ASCX HTML code

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Web.config window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add Web User Control.
  2. In the Add new Item - NorthwindTraders dialog box, in the Name box, type _header.ascx, and then click Open.
  3. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _header.ascx window, in the lower-left corner, click HTML, and then add the following code:
    <%@ Control Language="c#" AutoEventWireup="false" Codebehind="_header.ascx.cs" Inherits="NorthwindTraders.__header" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
   <meta name="vs_showGrid" content="True">
<table width="650" cellpadding="0" cellspacing="0" border="0" background="images/header_back.jpg" style="WIDTH: 650px; HEIGHT: 110px">
   <tr>
      <td height="110" width="650" valign="top" style="WIDTH: 650px">
         <img src="images/header_banner.gif" width="208" height="110" border="0">
         <asp:HyperLink id="homeLink" runat="server"></asp:HyperLink>&nbsp;&nbsp;
         <asp:HyperLink id="loginLink" runat="server"></asp:HyperLink>&nbsp;&nbsp;
         <asp:HyperLink id="basketLink" runat="server"></asp:HyperLink>&nbsp;&nbsp;
         <asp:HyperLink id="userRegLink" runat="server"></asp:HyperLink>
      </td>
      <td height="110" width="30"></td>
      <td><IMG height="110" src="images/right.gif" width="30" border="0"></td>
   </tr>
</table>

To insert Commerce Server classes

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _header.ascx window, in the Solution Explorer - NorthwindTraders window, click View Code.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _header.ascx.aspx.cs window, in the using section, add the following code:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Orders;

To insert class-wide variable declarations

Notes

  • Visual Studio .NET automatically inserts these declarations when the HyperLink control is placed onto the form.
  • The Project Creation Wizard creates container controls with matching names (case-sensitive) including the IDs of the <asp:HyperLink> controls.
  • You can also manually link HTML elements to their Visual Studio .NET container variants and process them programmatically (the runat=敗erver� tag must be added to the HTML element).
  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _header.ascx.cs window, in the public abstract class section, add the following code:
    protected System.Web.UI.WebControls.HyperLink basketLink;
protected System.Web.UI.WebControls.HyperLink homeLink;
protected System.Web.UI.WebControls.HyperLink userRegLink;
protected System.Web.UI.WebControls.HyperLink loginLink;

To update the _header.ascx.cs file

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – _header.ascx window, in the Solution Explorer - NorthwindTraders window, click View Code.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – header.ascx.aspx.cs window, in the Page_Load event handler, add the following code:
             homeLink.Text = "Home";
         homeLink.NavigateUrl = "default.aspx";

         if (CommerceContext.Current.AuthenticationInfo.IsAuthenticated())
         {
            loginLink.Text = "Logoff";
            loginLink.NavigateUrl = "logoff.aspx";
            userRegLink.Visible = false;
            basketLink.Visible=true;
            basketLink.Text = "Basket";
            basketLink.NavigateUrl = "Basket.aspx";
         }
         else
         {
            loginLink.Text = "Login";
            loginLink.NavigateUrl = "login.aspx";
            userRegLink.Text = "Registration";
            userRegLink.NavigateUrl = "UserRegistration.aspx";
            userRegLink.Visible = true;
            basketLink.Visible = false;
         }

To add the stylesheet to the site

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – header.ascx.aspx.cs window, in the Solution Explorer - NorthwindTraders window, right-click NorthwindTraders, point to Add, and then click Add HTML Page.
  2. In the Add New Item – NorthwindTraders dialog box, do the following:
    Use this | To do this
    Templates | Select Style Sheet from the list.
    Name | Type stylesheet.css.
  3. Click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – StyleSeet.css window, at the end of document (after the Body element and the curly brackets), add the following code:
    .nrmText
{
    COLOR: #000000;
    FONT-FAMILY: Verdana, Arial, Helvetica;
    FONT-SIZE: 11px;
    FONT-WEIGHT: normal;
    LINE-HEIGHT: normal;
    MARGIN-TOP: 5px
}
A
{
    COLOR: #3c7144;
    FONT-FAMILY: Verdana, Arial, Helvetica;
    FONT-SIZE: 11px;
    FONT-WEIGHT: normal;
    TEXT-DECORATION: none
}
A:hover
{
    COLOR: #ff7e00;
    FONT-FAMILY: Verdana, Arial, Helvetica;
    FONT-SIZE: 11px;
    FONT-WEIGHT: normal;
    TEXT-DECORATION: underline
}
.indentText
{
    COLOR: #ffffff;
    FONT-FAMILY: Verdana, Arial, Helvetica;
    FONT-SIZE: 11px;
    FONT-WEIGHT: normal;
    PADDING-LEFT: 10px;
    PADDING-TOP: 5px
}
.bodyText
{
    COLOR: #3c7144;
    FONT-FAMILY: Verdana;
    FONT-SIZE: 11px;
    FONT-WEIGHT: normal;
    PADDING-LEFT: 10px;
    PADDING-RIGHT: 10px
}
.smallText
{
    COLOR: #3c7144;
    FONT-FAMILY: Verdana, Arial, Helvetica;
    FONT-SIZE: 9px;
    FONT-WEIGHT: normal
}

To add the stylesheet throughout the site

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – header.ascx.cs window, in the Solution Explorer - NorthwindTraders window, double-click the Default.aspx file.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – default.aspx window, in the lower-left corner, click HTML, and then add the following code between the <HEAD> and </HEAD> tags:
    <link rel="stylesheet" type="text/css" href="stylesheet.css">
  3. Repeat steps 1 and 2 for the following files:
    • Login.aspx
    • Logoff.aspx
    • UserRegistration.aspx
    • ProductList.aspx
    • ProductDetail.aspx
    • Basket.aspx
    • Checkout.aspx
    • ConfirmOrder.aspx

To add the header to all of the pages on the site

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – default.ascx window, in the Solution Explorer - NorthwindTraders window, double-click the Default.aspx file.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – default.ascx window, in the lower-left corner, click HTML, and then add the following code at the very top of the page:
    <%@ Register TagPrefix="ucx" TagName="_header" Src="_header.ascx" %>
  3. Add the following code in the fist line after the <BODY> tag:
    <ucx:_header id=_header1 runat="server"></ucx:_header>
  4. Repeat steps 1 through 3 for the following files:
    • Login.aspx
    • Logoff.aspx
    • UserRegistration.aspx
    • ProductList.aspx
    • ProductDetail.aspx
    • Basket.aspx
    • Checkout.aspx
    • ConfirmOrder.aspx


Step 2: Implement the AddtoBasket.aspx Page

The AddtoBasket.aspx page adds a selected product to the users shopping basket (cart) and then redirects users to the Basket.aspx page.

In this step, we will implement the AddtoBasket.aspx page to add selected products to the basket and then redirect the user to the basket page.

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type AddToBasket.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – AddToBasket.aspx window, in the Solution Explorer window, click View Code.
  7. Add the following references in the using section:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Profiles;
using Microsoft.CommerceServer.Runtime.Orders;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Caching;
  8. Add the following code to the Page_Load() event handler.
             // Receive the item to add to the basket from the ProductID
         // (and SKU if the product has variants).
         // Validate login and redirect if user if not.
         Microsoft.CommerceServer.Runtime.Orders.Basket basket;
         CommerceContext ctx = CommerceContext.Current;
         Profile userProfile = null;
         bool isLoggedOn = ctx.AuthenticationInfo.IsAuthenticated();

         // This simple process does not carry the product that the
         // user was attempting to enter.  This would be good to do
         // in a real site...

         if(!isLoggedOn) {Response.Redirect("login.aspx");}

         // Extract the userID to get the basket
         ProfileContext profContext = ctx.ProfileSystem;
         string userId = ctx.UserID;
         basket = CommerceContext.Current.OrderSystem.GetBasket(new Guid(userId));

         userProfile = profContext.GetProfile(ctx.UserID,"UserObject");
         //Extract the form variables that identify the product
         //These will be set as line item properties

         //Create a new line item
         LineItem li = new LineItem();

         li.ProductID = Request.Params["ProductID"];

         // Set the SKU if it is appropriate.  If the product
         // in question does not have variations, we can skip
         // this step.
         if (! ((Request.Params["SKU"] == null) ||
            (Request.Params["SKU"] == "")))
         {
            li.ProductVariantID = Request.Params["SKU"];
         }
         li.ProductCatalog = "BuildingMaterials1033";
         li.Quantity = 1;

         OrderContext oc = CommerceContext.Current.OrderSystem;
         OrderForm of;

         if (basket.OrderForms.Count == 0)
         {
            basket.OrderForms.Add(new OrderForm("default"));
         }
         of = basket.OrderForms["default"];
         of.LineItems.Add(li);
         basket.Save();

         Response.Redirect("basket.aspx");


Step 3: Implement the Basket.aspx Page

The Basket.aspx page implements a custom Repeater that iterates through the rows in the basket to display them on the screen.

In this step, you will implement a basket page to display the products in a user’s basket, and provide the functionality of deleting individual product items.

In this step you will do the following:

  1. Create the Basket.aspx page and insert the header information.
  2. Add a table to the page to organize the data displayed to the user.
  3. Insert a Repeater control onto the form and create an item template for it.
  4. Insert Commerce Server external reference information.
  5. Add variable declarations for to the HTML file.
  6. Add code to the Page_Load() handler.
  7. Add command handler for the remove method

To create the Basket.aspx page and insert header information

To add a table to the Basket.aspx page

To insert the Repeater control

To insert the Commerce Server classes

To add variable declarations for elements added to the HTML file

To add code to the Page_Load() event hander

To add a command handler for the remove method

To create the Basket.aspx page and insert header information

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type Basket.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx window, in the lower-left corner, click HTML, and then add the following code at the very top of the page, below the <%@ Page> but before the <!DOCTYPE> tags:
    <%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Orders" %>

To add a table to the Basket.aspx page

  1. Add the following HTML code to the page:
       <asp:Label id="PageSubTitle" runat="server"/>
   <table width="80%" cellpadding="1" cellspacing="0" border="0">
      <tr valign="top" bgcolor="#000000">
         <td align="center" id="Quantity" width="10%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="Name" width="60%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="Price" width="10%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="DiscountedPrice" width="10%" runat="server"
            style="COLOR: #ffffff"></td>
         <td >&nbsp;<br></td>
      </tr>
   </table>

To insert the Repeater control

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx window, in the lower-left corner, click Design.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms box, drag and drop a Repeater control onto the form.
  4. In the Properties window, make sure you the control that you just created is selected, and then in the ID box, type OrderListing.
  5. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx window, in the lower-left corner, click HTML.
  6. Move the <asp:Repeater> and </asp:Repeater> tags between the </tr> and </table> tags.
  7. Insert the following code (as a sub-element) between the <asp:Repeater> and </asp:Repeater> tags:
    <ItemTemplate>
   <tr>
   <td colspan=5>
      <%# DataBinder.Eval(Container.DataItem, "Name") %>
   </td>
   </tr>
   <asp:Repeater id="BasketListing"
      DataSource=’<%#DataBinder.Eval(Container.DataItem, "LineItems")%>’
      OnItemCommand="BasketListing_ItemCommand" runat="server">
   <ItemTemplate>
   <tr>
   <td align="left" width="10%" runat="server" ID="Td1">
      <asp:Label ID="QuantityContent" Runat="server">
            <%# ((LineItem)Container.DataItem)["Quantity"] %>
      </asp:Label>
   </td>
   <td align="left" width="60%" runat="server" ID="Td2">
      <asp:Label ID="ProductName" Runat="server">
         <%# ((LineItem)Container.DataItem)["_product_Name"] %>
      </asp:Label>
      <br />
      <asp:Label ID="Description" Runat="server">
         <%# ((LineItem)Container.DataItem)["_product_Description"] %>
      </asp:Label>
   </td>
   <td valign="right" width="10%" runat="server" ID="Td3">
      <asp:Label ID="PriceContent" Font-Name="verdana" Runat="server">
         <%# Decimal.Parse(((LineItem)Container.DataItem)["_product_cy_list_price"].ToString()).ToString("c") %>
      </asp:Label>
   </td>
   <td valign="right" width="10%" runat="server" ID="Td4">
      <asp:Label ID="DiscountedPriceContent" Font-Name="verdana" Runat="server">
         <%# Decimal.Parse(((LineItem)Container.DataItem)["_cy_oadjust_adjustedprice"].ToString()).ToString("c") %>
      </asp:Label>
   </td>
   <td valign="center">
      <asp:LinkButton id="RemoveBtn"
      CommandName='<%# ((LineItem)Container.DataItem)["product_id"].ToString() %>'
      CommandArgument='<%# ((LineItem)Container.DataItem)["product_variant_id"].ToString() %>' runat="server">
               Remove
      </asp:LinkButton>
   </td>
   </tr>
   </ItemTemplate>
   <SeparatorTemplate>
   <tr>
   <td colspan="5">
      <hr noshade runat="server" ID="Hr1"/>
   </td>
   </tr>
   </SeparatorTemplate>
   </asp:Repeater>
   <FooterTemplate>
      <tr>
      <td colspan="5" align="right">
         <a href='checkout.aspx'>
         Checkout
         </a>
      </td>
      </tr>
   </FooterTemplate>
</ItemTemplate>

To insert the Commerce Server classes

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx window, in the Solution Explorer window, click View Code.
  2. Add the following references in the using section:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Profiles;
using Microsoft.CommerceServer.Runtime.Orders;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Caching;

To add variable declarations for elements added to the HTML file

Note

  • The variables you declare here provide access to the controls added to the HTML view in one of the previous steps.
  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx.cs window, in the public class section, add the following code:
    protected System.Web.UI.HtmlControls.HtmlTableCell Quantity;
protected System.Web.UI.HtmlControls.HtmlTableCell Name;
protected System.Web.UI.HtmlControls.HtmlTableCell DiscountedPrice;
protected System.Web.UI.WebControls.Repeater BasketListing;

OrderContext    ordersys = CommerceContext.Current.OrderSystem;
Microsoft.CommerceServer.Runtime.Orders.Basket basket = null;

To add code to the Page_Load() event hander

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx.cs window, in the Page_Load() event handler, add the following code:
             // Render the basket
         // Validate login and redirect if user is not logged in
         if(!IsPostBack)
         {
            CommerceContext ctx = CommerceContext.Current;
            Profile userProfile = null;
            bool isLoggedOn = ctx.AuthenticationInfo.IsAuthenticated();

            // This simple process does not carry the product that the
            // user was attempting to enter.  This would be good to do
            // in a real site...

            if(!isLoggedOn)
            {
               Response.Redirect("login.aspx");
            }

            // Extract the userID to get the basket
            ProfileContext profContext = ctx.ProfileSystem;
            string userId = ctx.UserID;

            basket = ordersys.GetBasket(new Guid(userId));

            // If there isn't anything in the basket, then redirect
            // to the default.aspx page.
            if(!(basket.OrderForms.Count > 0))
            {
               Response.Redirect("default.aspx");
            }

            // Get the user profile
            userProfile = profContext.GetProfile(ctx.UserID,"UserObject");

            PipelineInfo info = new PipelineInfo("basket");

            info["CacheName"] = "discounts";
            info.Profiles.Add("User", CommerceContext.Current.UserProfile);
            basket.RunPipeline(info);

            string orderFormName = "default";
            if(null != basket.OrderForms[orderFormName]
               && 0 < basket.OrderForms[orderFormName].LineItems.Count)
            {
               OrderListing.DataSource = basket.OrderForms;
               OrderListing.DataBind();
            }
            basket.Save();
         }

To add a command handler for the remove method

Note

  • These steps add parameters for the remove command call inserted earlier in the HTML view (for the BasketListing Repeater OnItemCommand="BasketListing_ItemCommand" in the opening and the <asp:LinkButton id="RemoveBtn"> tags).
  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Basket.aspx.cs window, add the following code:
    public void BasketListing_ItemCommand(object source, RepeaterCommandEventArgs args)
{
   string orderFormName = "default";
   string product_variant_id = (args.CommandArgument).ToString();
   string product_id = (args.CommandName).ToString();
   int index;

   basket = ordersys.GetBasket(new Guid(CommerceContext.Current.UserID));
   if ((product_variant_id != null) && (product_variant_id != ""))
   {
      index = basket.OrderForms[orderFormName].LineItems.IndexOf("BuildingMaterials1033", product_id, product_variant_id);
   }
   else
   {
      index = basket.OrderForms[orderFormName].LineItems.IndexOf("BuildingMaterials1033", product_id, null);
   }
   basket.OrderForms[orderFormName].LineItems.Remove(index);
   basket.Save();

   Response.Redirect("basket.aspx");
}


Step 4: Implement the Checkout.aspx Page

The Checkout.aspx page processes orders and sets shipping and billing information for orders to be successfully post processed on the confirmation page.

In this step you will implement the Checkout.aspx page by doing the following:

  1. Create the Checkout.aspx page.
  2. Insert controls on the Checkout.aspx page.
  3. Insert class-wide variables.
  4. Add code to the Page_Load event handler.
  5. Add code to the Checkout_Click button handler.

To create the Checkout.asp page

To insert controls on the Checkout.aspx page

To insert class-wide variables

To add code to the Page_Load() event handler

To add code to the Checkout_Click() button handler

To create the Checkout.asp page

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type Checkout.aspx, and then click Open.
  6. In the Solution Explorer window, click View Code.
  7. Add the following references in the using section:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Profiles;
using Microsoft.CommerceServer.Runtime.Orders;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Caching;

To insert controls on the Checkout.aspx page

  1. In the Solution Explorer window, click View Designer.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms, drag and drop a Label control onto the form.
  4. In the Properties window, make sure you the control that you just created is selected, and then in the ID box, type PageSubTitle.
  5. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  6. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type Header.
    Text | Type Address Name.
  7. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  8. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type FirstNameHeader.
    Text | Type First Name.
  9. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  10. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type LastNameHeader.
    Text | Type Last Name.
  11. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  12. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type LineOneHeader.
    Text | Type Line One.
  13. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  14. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type LineTwoHeader.
    Text | Type Line Two.
  15. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  16. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CityHeader.
    Text | Type City.
  17. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  18. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type StateHeader.
    Text | Type State.
  19. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  20. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ZipcodeHeader.
    Text | Type Zip Code.
  21. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  22. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CardNameLable.
    Text | Type Card Name.
  23. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  24. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CardTypeLabel.
    Text | Type Card Type.
  25. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  26. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CardNumberLabel.
    Text | Type Card Number.
  27. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  28. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ExpiryMonthLabel.
    Text | Type Exp Month.
  29. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  30. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ExpiryYearLabel.
    Text | Type Exp Year.
  31. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  32. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ShippingMethodLabel.
    Text | Type Shipping Method.

    Note

    • Add the following TextBox controls next to their corresponding Label controls.
  33. In the Toolbox window, in the Web Forms, drag and drop a TextBox control onto the form.
  34. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type AddressName.
  35. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  36. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type FirstName.
  37. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  38. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type LastName.
  39. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  40. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type LineOne.
  41. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  42. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type LineTwo.
  43. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  44. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type City.
  45. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  46. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type State.
  47. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  48. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type Zipcode.
  49. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  50. In the Properties window, make sure that the control that you just created is selected, and then in the ID box, type CardName.
  51. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  52. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CardNumber.
    Text | Type 4111-1111-1111-1111.
  53. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  54. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ExpiryMonth.
    Text | Type 10.
  55. In the Toolbox window, in the Web Forms, drag and drop another TextBox control onto the form.
  56. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type ExpiryYear.
    Text | Type 2005.
  57. In the Toolbox window, in the Web Forms, drag and drop a DropDownList control onto the form.
  58. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CardList.
    Items | Click [�].
  59. In the ListItem Collection Editor dialog box, click Add.
  60. In the ListItem Properties section, do the following:
    Use this | To do this
    Selected | Select True from the drop-down list.
    Text | Type Visa.
    Value | Type visa.
  61. Click OK.
  62. In the Toolbox window, in the Web Forms, drag and drop another DropDownList control onto the form.
  63. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type shippingMethodList. (the values for this drop-down list will be populated programmatically using the site terms for shipping).
  64. In the Toolbox window, in the Web Forms, drag and drop a Button control onto the form.
  65. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type CheckoutBtn.
    Text | Type Checkout.

To insert class-wide variables

  1. In the Solution Explorer window, click View Code.
  2. In the public class section, add the following code:
    OrderContext    ordersys = CommerceContext.Current.OrderSystem;
Microsoft.CommerceServer.Runtime.Orders.Basket basket = null;

To add code to the Page_Load() event handler

  • In the Page_Load() event handler, add the following code:
    if (!IsPostBack)
{
string[] columns= {"shipping_method_id","shipping_method_name"};
   DataSet ds = ordersys.GetShippingMethods(null,null,columns);
   shippingMethodList.DataTextField="shipping_method_name";
   shippingMethodList.DataValueField="shipping_method_id";
   shippingMethodList.DataSource=ds;
   shippingMethodList.DataBind();

}

To add code to the Checkout_Click() button handler

  1. In the Solution Explorer window, click View Code.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Checkout.aspx window, double-click the Checkout button.
  3. In the CheckoutBtn_Click() button handler, add the following code:
    protected void Checkout_Click(object source, EventArgs args)
{
   if(IsValid)
   {
      //Microsoft.CommerceServer.Runtime.Orders.Basket basket;
      CommerceContext ctx = CommerceContext.Current;
      Profile userProfile = null;
      bool isLoggedOn = ctx.AuthenticationInfo.IsAuthenticated();

      // This simple process does not carry the product that the
      // user was attempting to enter.  This would be good to do
      // in a real site...

      if(!isLoggedOn)
      {
         Response.Redirect("login.aspx");
      }

      // Extract the userID to get the basket
      ProfileContext profContext = ctx.ProfileSystem;
      string userId = ctx.UserID;

      basket = ordersys.GetBasket(new Guid(userId));

      // If there isn't anything in the basket, then redirect to the
      // default.aspx page.
      if(!(basket.OrderForms.Count > 0))
      {
         Response.Redirect("default.aspx");
      }
      //Get the user profile
      userProfile = profContext.GetProfile(ctx.UserID,"UserObject");

      PipelineInfo info = new PipelineInfo("basket");

      info["CacheName"] = "discounts";
      info.Profiles.Add("User", CommerceContext.Current.UserProfile);

      string addrID = "";

      OrderAddress addr = new OrderAddress(AddressName.Text, AddressName.Text);

      addr.ID         = basket.Addresses.Count.ToString();
      addr.Name       = AddressName.Text;
      addr.FirstName  = FirstName.Text;
      addr.LastName   = LastName.Text;
      addr.Line1      = LineOne.Text;
      addr.Line2      = LineTwo.Text;
      addr.City       = City.Text;
      addr.RegionCode = State.Text;
      addr.PostalCode = Zipcode.Text;
      addr.CountryName = "US";
      basket.Addresses.Add(addr);

      // We are only allowing one address, so we
      // are just using the foreach enumerator
      // to crack the addresses collection and find
      // the first (only) address to set our billing
      // & shipping info.
      foreach(OrderAddress addr2 in basket.Addresses)
      {
         basket.SetBillingAddress(addr2.ID);
         basket.SetShippingAddress(addr2.ID);
         addrID = addr2.ID;
         break;
      }
      basket.SetPropertyOnOrderForms("payment_type", "credit_card");
      basket.SetPropertyOnOrderForms("cc_name", CardName.Text);
      basket.SetPropertyOnOrderForms("cc_type",                                     CardList.Items[CardList.SelectedIndex].Value);
            basket.SetPropertyOnOrderForms("_cc_number", CardNumber.Text);
      basket.SetPropertyOnOrderForms("_cc_expmonth", ExpiryMonth.Text);
      basket.SetPropertyOnOrderForms("_cc_expyear", ExpiryYear.Text);

      for (int i=0; i< basket.OrderForms["default"].LineItems.Count; i++)
      {

         LineItem item = basket.OrderForms["default"].LineItems[i];
         item.ShippingMethodID = "{" + shippingMethodList.SelectedItem.Value + "}";
         item.ShippingMethodName = shippingMethodList.SelectedItem.Text;
         item.ShippingAddress  = addrID;
      }
      basket.Save();

      Response.Redirect("OrderConfirmation.aspx");
   }
}


Step 5: Implement the OrderConfirmation.aspx Page

The OrderConfirmation.aspx page provides order confirmation. After a user confirms an order, this page submits the order information for post-processing by Commerce Server 2002.

In this step you will build and implement the order confirmation page by doing the folloiwng:

  1. Create the OrderConfirmation.aspx page and insert the header.
  2. Add a table to the page to organize the data displayed to the user.
  3. Insert a Repeater control onto the form and create an item template for it.
  4. Insert controls on the OrderConfirmation.aspx page.
  5. Insert Commerce Server classes.
  6. Insert class-wide variables.
  7. Add code to the Page_Load event handler.
  8. Add code to the confirmOrderBtn_click() event handler.

To create the OrderConfirmation.aspx page and insert the header

To add a table to the OrderConfirmation.aspx page

To insert the repeater control

To insert controls on the OrderConfirmation.aspx page

To insert Commerce Server classes

To insert class-wide variables

To add code to the Page_Load() event handler

To add code to the confirmOrderBtn_Click() event handler

To create the OrderConfirmation.aspx page and insert the header

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer window, right-click NorthwindTraders, point to Add, and then click Add Web Form.
  5. In the Add new Item - NorthwindTraders dialog box, in the Name box, type OrderConfirmation.aspx, and then click Open.
  6. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, in the lower-left corner, click HTML, and then add the following code at the very top of the page, below the <%@ Page> but before the <!DOCTYPE> tags:
    <%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Orders" %>

To add a table to the OrderConfirmation.aspx page

  • Add the following HTML code in to the page:
    <asp:Label id="PageSubTitle" runat="server"/>
   <table width="80%" cellpadding="1" cellspacing="0" border="0">
      <tr valign="top" bgcolor="#000000">
         <td align="center" id="Quantity" width="10%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="Name" width="60%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="Price" width="10%" runat="server"
            style="COLOR: #ffffff"></td>
         <td align="center" id="DiscountedPrice" width="10%"  runat="server"
            style="COLOR: #ffffff"></td>
         <td >&nbsp;<br></td>
      </tr>
   </table>

To insert the Repeater control

  1. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, in the lower-left corner, click Design.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms box, drag and drop a Repeater control onto the form.
  4. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type OrderListing.
  5. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, in the lower-left corner, click HTML.
  6. Move the <asp:Repeater> and </asp:Repeater> tags between the </tr> and </table> tags.
  7. Insert the following code (as a sub-element) between the <asp:Repeater> and </asp:Repeater> tags:
    <ItemTemplate>
   <tr>
   <td colspan=5>
      <%# DataBinder.Eval(Container.DataItem, "Name") %>
   </td>
   </tr>
   <asp:Repeater id="BasketListing" DataSource='<%#DataBinder.Eval(Container.DataItem, "LineItems")%>' runat="server">
      <ItemTemplate>
      <tr>
            <td align="left" width="10%" runat="server" ID="Td1">
               <asp:Label ID="QuantityContent" Runat="server">
                  <%# ((LineItem)Container.DataItem)["Quantity"] %>
               </asp:Label>
            </td>
            <td align="left" width="60%" runat="server" ID="Td2">
               <asp:Label ID="ProductName" Runat="server">
                  <%# ((LineItem)Container.DataItem)["_product_Name"] %>
               </asp:Label>
               <br />
               <asp:Label ID="Description" Runat="server">
                  <%# ((LineItem)Container.DataItem)["_product_Description"] %>
               </asp:Label>
            </td>
            <td valign="right" width="10%" runat="server" ID="Td3">
               <asp:Label ID="PriceContent" Font-Name="verdana" Runat="server">
                  <%# Decimal.Parse(((LineItem)Container.DataItem)["_product_cy_list_price"].ToString()).ToString("c") %>
               </asp:Label>
            </td>
            <td valign="right" width="10%" runat="server" ID="Td4">
               <asp:Label ID="DiscountedPriceContent" Font-Name="verdana" Runat="server">
                  <%# Decimal.Parse(((LineItem)Container.DataItem)["_cy_oadjust_adjustedprice"].ToString()).ToString("c") %>
               </asp:Label>
            </td>
            </tr>
         </ItemTemplate>
         <SeparatorTemplate>
            <tr>
            <td colspan="5">
               <hr noshade runat="server" ID="Hr1"/>
            </td>
            </tr>
         </SeparatorTemplate>
      </asp:Repeater>
   </ItemTemplate>
   <FooterTemplate>
   </FooterTemplate>

Note

  • All fields beginning with �_� are temporary and only exist until the current basket instance is shut down. They are regenerated each time the pipeline components are run.

To insert controls on the OrderConfirmation.aspx page

Note

  • Add the following controls above the basket listing code that was added in the procedure, "To insert the Repeater control."
  1. In the Solution Explorer window, click View Designer.
  2. Click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms, drag and drop a Label control onto the form.
  4. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type AddressTitleLabel.
    Text | Type Address:.
  5. In the Toolbox window, in the Web Forms, drag and drop another Label control onto the form.
  6. In the Properties window, make sure you the control that you just created is selected, and then in the ID box, type firstNameLabel.
  7. In the Toolbox window, in the Web Forms, drag and drop a Label control onto the form.
  8. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type lastNameLabel.
  9. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  10. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type addressLine1Label.
  11. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  12. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type addressLine2Label.
  13. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  14. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type cityLabel.
  15. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  16. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type stateLabel.
  17. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  18. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type zipLabel.
  19. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, in the lower-left corner, click HTML.
  20. Add the <br><br> tags after zipLabel.
  21. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, in the lower-left corner, click Design.
  22. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  23. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type subTotalLabel.
  24. In the Toolbox window, in the Web Forms, drag and drop a Label control onto the form.
  25. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type shippingTotalLabel.
  26. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  27. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type taxTotalLabel.
  28. In the Toolbox window, in the Web Forms section, drag and drop a Label control onto the form.
  29. In the Properties window, make sure the control that you just created is selected, and then in the ID box, type totalLabel.
  30. In the Toolbox window, in the Web Forms section, drag and drop a Button control onto the form.
  31. In the Properties window, make sure the control that you just created is selected, and then do the following:
    Use this | To do this
    ID | Type confirmOrderBtn.
    Text | Type Confirm Order >>.

To insert Commerce Server classes

  1. In the Solution Explorer window, click View Code.
  2. Add the following references in the using section:
    using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Profiles;
using Microsoft.CommerceServer.Runtime.Orders;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Catalog;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Runtime.Caching;

To insert class-wide variables

  1. In the public class section, add the following code:
    protected System.Web.UI.HtmlControls.HtmlTableCell Quantity;
protected System.Web.UI.HtmlControls.HtmlTableCell Name;
protected System.Web.UI.HtmlControls.HtmlTableCell DiscountedPrice;
protected System.Web.UI.WebControls.Repeater BasketListing;

OrderContext    ordersys = CommerceContext.Current.OrderSystem;
protected System.Web.UI.HtmlControls.HtmlTableCell Price;
Microsoft.CommerceServer.Runtime.Orders.Basket basket = null;

To add code to the Page_Load() event handler

  • In the Page_Load() event hander, add the following code:
    private void Page_Load(object sender, System.EventArgs e)
{
   // Render the basket
   // Validate login and redirect if user is not logged in

   if(!IsPostBack)
   {

      CommerceContext ctx = CommerceContext.Current;
      Profile userProfile = null;
      bool isLoggedOn = ctx.AuthenticationInfo.IsAuthenticated();

      // This simple process does not carry the product that the
      // user was attempting to enter.  This would be good to do
      // in a real site...

      if(!isLoggedOn)
      {
         Response.Redirect("login.aspx");
      }

      // Extract the userID to get the basket
      ProfileContext profContext = ctx.ProfileSystem;
      string userId = ctx.UserID;

      basket = ordersys.GetBasket(new Guid(userId));

      //If there isn't anything in the basket, then redirect to the default.aspx page.
      if(!(basket.OrderForms.Count > 0))
      {
         Response.Redirect("default.aspx");
      }

      //Get the user profile
      userProfile = profContext.GetProfile(ctx.UserID,"UserObject");

      PipelineInfo info = new PipelineInfo("basket");

      info["CacheName"] = "discounts";
      info.Profiles.Add("User", CommerceContext.Current.UserProfile);
      basket.RunPipeline(info);
      // Run the total pipeline...
      info = new PipelineInfo("Total");
      basket.RunPipeline(info);

      // Now, populate the controls with the data from the user's order.
      totalLabel.Text = basket.Total.ToString("C");
      shippingLabel.Text = basket.ShippingTotal.ToString("C");
      subTotalLabel.Text = basket.SubTotal.ToString("C");
      taxTotalLabel.Text = basket.TaxTotal.ToString("C");

      // Assume the billing address is our only address in the OrderGroup.
      // Also, assume a US format address.

      // First, get the address object.
      OrderAddress address = basket.Addresses[basket.OrderForms["default"].BillingAddress];
      addressLine1Label.Text = address.Line1;
      addressLine2Label.Text = address.Line2;
      firstNameLabel.Text = address.FirstName;
      lastNameLabel.Text = address.LastName;
      cityLabel.Text = address.City;
      stateLabel.Text = address.State;
      zipLabel.Text = address.PostalCode;

      string orderFormName = "default";
      if(null != basket.OrderForms[orderFormName] && 0 < basket.OrderForms[orderFormName].LineItems.Count)
      {
         OrderListing.DataSource = basket.OrderForms;
         OrderListing.DataBind();
      }
      basket.Save();
   }
}

To add code to the confirmOrderBtn_Click() event handler

  1. In the Solution Explorer window, click View Code.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – OrderConfirmation.aspx window, double-click the Confirm Order >> button.
  3. In the confirmOrderBtn_Click() button handler, add the following code:
    private void confirmOrderBtn_Click(object sender, System.EventArgs e)
{
   CommerceContext ctx = CommerceContext.Current;
   // Extract the userID to get the basket
   ProfileContext profContext = ctx.ProfileSystem;
   string userId = ctx.UserID;

   basket = ordersys.GetBasket(new Guid(userId));

   // This next command converts our basket into an order and initiates
   // post-processing inside of CS2002.
   basket.SaveAsOrder();

   // Bounce the user to the start page.  We would also include a
   // page that displays an order number/receipt for purchase in a
   // live production site.
   Response.Redirect("default.aspx");
}


Lab 4: Implementing Marketing Campaigns

In this lab, you will implement marketing campaigns on your site using Visual Studio .NET.

After completing this lab, you can:

  • Create Campaign Expressions
  • Create Target Groups
  • Create Campaign Customers
  • Create Campaigns
  • Create Ads and Discounts Campaign Items

You will learn to programmatically do the following with the new Commerce Server 2002 Base Class Library (BCL):

  • Retrieve and display a targeted Advertisement
  • Retrieve, display, and process a targeted Discount

This lab contains the following steps:

  • Step 1: Create a Campaign Expression
  • Step 2: Create a Target Group
  • Step 3: Create a Campaign Customer
  • Step 4: Create a Discount Campaign
  • Step 5: Create an Ad Campaign
  • Step 6: Implement Content Selector Code


Step 1: Create a Campaign Expression

In this step, you will create campaign expressions, which are simple phrases that define specific user groups or product groups.

You will create a target expression for female construction workers.

  1. Start the NorthwindTraders Business Desk.
  2. In Campaigns, click Campaign Expressions.
  3. In the Campaign Expressions: Target Expressions screen, click New on the toolbar.
  4. In the Target Expression dialog box, do the following:
    Use this | To do this
    Name | Type Female.
    Description | Type Female User.
    Target based on the following conditions: Click New.
    • First box. Select User Object from the drop-down list, and then select Gender under General Information.
    • Second box. Select is equal to as an operator from the drop-down list.
    • Third box. Click the ellipsis [...] button.
      In the Choose a Site Tem dialog box, select Female from the list, and then click OK.
  5. Click Apply.
  6. The new target expression is added to the Target based on the following conditions box.
  7. To save the target expression and return to the Campaign Expressions: Target Expressions screen, click Save on the toolbar.


Step 2: Create a Target Group

After you create a campaign expression, you create a target group, which is a collection of campaign expressions. You specify whether to include, exclude, or require each of the campaign expressions.

In this step, you will create a target group for female contractors on your site by requiring the Women and Contractor expressions. You use the Target Group module to create new expression, and then create a new target group.

To create a new expression

To create a new target group

To create a new expression

  1. In Campaigns, click Target Group.
  2. In the Target Group screen, click New on the toolbar.
  3. In the Target Group: New screen, in the Target group name box, type Female Contractors, and then click Create New Expression.

    Note

    • You can create a new campaign expression using a procedure similar to that shown in Step 1 "Create a Campaign Expression."
  4. In the Target Expression dialog box, do the following:
    Use this | To do this
    Name | Type Contractor.
    Description | Type Contractor / Commercial Business user.
    Target based on the following conditions: Click New.
    • First box. Select User Object from the drop-down list, and then select User Description under General Information.
    • Second box. Select is equal to as an operator from the drop-down list.
    • Third box. Click the ellipsis [...] button.
      In the Choose a Site Tem dialog box, select Contractor / Commercial Business from the list, and then click OK.
  5. Click Apply.
  6. To save the target expression click Save.
  7. Close the Target Expression dialog box.

To create a new target group

  1. In the Target Group: New screen, do the following:
    Use this | To do this
    Target group name | Type Female Contractors. Click New.
    Expression | Select Female from the drop-down list.
    Action | Select the Require action for the new target group from the drop-down list.
  2. Click Accept, and then click New to select another campaign expression.
  3. In the Target Group: New screen, do the following:
    Use this | To do this
    Expression | Select Contractor from the drop-down list.
    Action | Select the Require action for the new target group from the drop-down list.
  4. Click Accept
  5. To save the target group and return to the Target Group screen, click Save and go back on the toolbar.


Step 3: Create a Campaign Customer

After you have created the target group, you create a campaign customer, which is required to create any campaign item.

In this step, you will create a campaign customer as Northwind Traders (a self customer).

  1. In Campaigns, click Campaign Manager.
  2. In the Campaign Manager screen, click Add on the toolbar, and then select New Customer from the drop-down list.
  3. In the Campaign Manager - New (customer) screen, in the Customer Properties section, do the following:
    Use this | To do this
    Name | Type Northwind Traders.
    Address | Leave this field blank.
    Type | Select the Self as the type of relationship you have with the customer from the drop-down list.
    URL | Leave this field blank.
    Industry | Leave this field blank.
    Comments | Leave this field blank.
  4. In the Contact Information section, do the following:
    Use this | To do this
    Contact | Leave this field blank.
    Email | Leave this field blank.
    Phone | Leave this field blank.
    Fax | Leave this field blank.
  5. To save the customer information and return to the Campaign Manager screen, click Save and go back on the toolbar.

The customer information is saved.


Step 4: Create a Discount Campaign

After you create a campaign customer, you create campaign items for the customer. Each customer can have multiple campaigns.

In this step, you will do the following:

  1. Create a new discount campaign.
  2. Create discount properties.
  3. Create a discount definition for the following: female contractors who buy 10 units of switch (SKU # 6001) will receive one unit free.

To create a new discount campaign

To create discount properties

To create a discount promotion for female contractors

To create a new discount campaign

  1. In Campaigns, click Campaign Manager.
  2. In the Campaign Manager screen, select Northwind Traders from the list, click Add on the toolbar, and then select New Campaign from the drop-down list.
  3. In the Campaign Manager - Northwind Traders - New (campaign) screen, in the Campaign Properties section, do the following:
    Use this | To do this
    Campaign name | Type Contractors Discount.
    Start date | Select the default date.
    End date Select 12/31/2002 as the campaign end date from the drop-down calendar.

    Campaign dates are used as default dates for campaign item dates. However, campaign item dates override campaign dates. A campaign item date may be set to extend past the dates for the campaign.
    Status | Select Active as the campaign status from the drop-down list.
    Comments | Leave this field blank.
  4. To save the campaign information and return to the Campaign Manager screen, click Save and go back on the toolbar.

To create discount properties

  1. In Campaigns, click Campaign Manager.
  2. In the Campaign Manager screen, expand Northwind Traders customer. Select the Contractors Discount campaign, click Add on the toolbar, and then select New Discount from the drop-down list.
  3. In the Campaign Manager Northwind Traders - Contractors Discount - New (discount) screen, in the Discount Properties section, do the following:
    Use this | To do this
    Discount name | Type Electrical Switch targeted at Females.
    Status | Select Active as the discount campaign status from the drop-down list.
    Priority Select 10 as the priority of the discount from the drop-down list.

    The priority of the discount determines which discounts are applicable in the basket. For example, a discount with a priority of 10 is applied over a discount with a priority of 20.
    Comments | Leave this field blank.
    Start date | Select the default Start date (current date).
    End date | Select 12/31/2002 as the discount end date from the drop-down calendar.

To create a discount promotion for female contractors

  1. In the Campaign Manager Northwind Traders - Contractors Discount - New (discount) screen, in the Discount Definition section, do the following:
    Use this | To do this
    Buy: Buy Condition box
    • Type box. Select Quantity as the type of Buy condition from the drop-down list.
    • Value box. Enter 10 as the quantity amount.
    • Catalog expression. Click the ellipsis [...] button.

      In the Catalog Expressions dialog box, do the following:

      Name: Enter 6001.

      Description: Enter Switch.

      Click New to create a new target expression.

      • First box: Click Products, and then select SKU from the drop-down list.
      • Second box: Select is equal to from the drop-down list.
      • Third box: Type 6001.

      Click Apply, and then click Save.

    Get Get Condition box
    • Number. Type 1 as the number of units of the catalog item that the user is awarded when the rules of the discount are met.
    • Catalog expression. Select 6001 from the drop-down list.
    • Type. Select Percent (%) as the unit of measure for the discount award from the drop-down list.
    • Value. Type 100 as the percentage value of the discount award. This will offer selected users the eleventh item for free.

    For information about discount awards, see Discount Awards.
    Apply offer on Get product alone | Clear this option.
    Apply offer on both Get and Buy Products | Select this disjoint discount to have the buy condition reused as an award.
    Eligibility Requirements: Expression Available | Select both Female and Contractor expressions for the discount from the list, and then click Add.
  2. In the Campaign Manager Northwind Traders - Contractors Discount - New (discount) screen, in the Discount Display Target section, do the following:
    Use this To do this
    Page groups: Available Select the Female Contractors page group, and then click Add.

    The page group is moved to the Assigned box. To remove a page group from the Assigned box, click Remove. This moves the page group to the Available box.

  3. In the Campaign Manager Northwind Traders - Contractors Discount - New (discount) screen, in the Discount Display section, do the following:
    Use this | To do this
    Exposure limit | Accept the default None value.
    Basket display | Type Buy 10 switches get 1 free!.
    Content Size | Accept the default Full Banner (468x60) value.
    Content Type | Accept the default Image value.
    Image URL | Type http://localhost/northwindtraders/images/campaign/ ad_234x60_6001.gif.
    Click URL | Type productdetail.aspx?ProductID=THREEWAYSWITCH(electrical).
    Alternative text | Type 3-way Switch.
  4. To save the discount item, click Save on the toolbar.
  5. Click Preview to view the ad.
  6. To return to the Campaign Manager screen, click Back on the toolbar.


Step 5: Create an Ad Campaign

In Commerce Server 2002, Ad Campaigns can be targeted using the Content Selection Framework (CSF). Each Ad has a need of delivery based upon the number of impressions, the number of days to deliver them, and a relative weighting against other ads before they are displayed to the user visiting your Web site. You can set ads to be house ads so that the ads are rotated on your Web site on an "as possible" basis, which minimizes the impact on paying ads on your site through your business partners.

In this step, you will create a new ad campaign and then create a new house ad for Microsoft Commerce Server 2002 and Visual Studio .NET.

To create a new ad campaign

To create a new ad

To create a new ad campaign

  1. In Campaigns, click Campaign Manager.
  2. In the Campaign Manager screen, select Northwind Traders from the list, click Add on the toolbar, and then select New Campaign from the drop-down list.
  3. In the Campaign Manager - Northwind Traders - New (campaign) screen, in the Campaign Properties section, do the following:
    Use this | To do this
    Campaign name | Type Free Advertising.
    Start date | Select the default date (current date).
    End date Select 12/31/2002 as the campaign end date from the drop-down calendar.

    Campaign dates are used as default dates for campaign item dates. However, campaign item dates override campaign dates. A campaign item date may be set to extend past the dates for the campaign.
    Status | Select Active as the campaign status from the drop-down list.
    Comments | Leave this field blank.
  4. In the Campaign Manager - Northwind Traders - New (campaign) screen, in the Advertising/Campaign Goaling section, do the following:
    Use this | To do this
    Set goals by | Select the Campaigns as the goaling level from the drop-down list.
    Quantity ordered | Type 100000 as the number of requests ordered for this campaign.
    Scheduled by Select Request from the drop-down list.

    Request indicates that the goals of the campaign will be met when the ad is displayed on the specified page group(s).
  5. To save the campaign information and return to the Campaign Manager screen, click Save and go back on the toolbar.

To create a new ad

  1. In Campaigns, click Campaign Manager.
  2. In the Campaign Manager screen, expand Northwind Traders, expand Advertising Demo Ads, click New on the toolbar, and then select New Ad from the drop-down list to create the new ad.
  3. In the Campaign Manager - Northwind Traders - Free Advertising - New (ad) screen, in the Ad Properties screen, do the following:
    Use this | To do this
    Ad name | Type Microsoft Commerce Server 2002.
    Status | Select Active.
    Type | Select House Ad from the drop-down list.
    Weight Type 1 as the weight of the ad.

    Weight is a means of determining how frequently an ad is displayed, relative to all of the campaign items for a given customer. In a campaign, weight only applies to ads that are goaled at the campaign-level. If the ads are goaled at the item level, weight is not used for paid ads.

    For house ads the weight is relative to all other house ads for all customers and all campaigns. For paid ads, the weight is relative to other paid ads in the same campaign. The weight of an individual campaign item is relative to the weight of all the other campaign items.
    Exposure limit | Select None from the drop-down list to have no maximum limit to the number of times the ad can be shown to a user per session.
    Date received Accept the default settings.

    This box contains the current date as the default. After the ad is saved, the date cannot be changed.

    Industry | Accept the default setting of None.
    Comments | Leave this field blank.
  4. In the Ad Schedule section, do the following:
    Use this | To do this
    Start date | Select the default date (current date).
    End date | Select 12/31/2002 as the ad campaign end date from the drop-down calendar.
    Days | Select each day of the week.
    Start time | Make sure this is set to 00:00.
    End time | Make sure this is set to 00:00.
  5. In the Ad Target section, make sure that the Show on all Page Groups option is selected.
  6. In the Ad Display section, do the following:
    Use this | To do this
    Size | Select Full Banner (468x60) from the drop-down box.
    Type | Select Image from the drop-down box.
    Image URL | Type http://localhost/northwindtraders/images/campaign/468x60_ComServ2002.jpg.
    Click URL | Type http://www.microsoft.com/CommerceServer.
    Alternative text | Type Commerce Server 2002.
  7. To save the ad and return to the Campaign Manager screen, click Save and go back on the toolbar.
  8. In Campaigns, click Publish Campaigns.
  9. In the Publish Campaigns screen, select the campaign item, and then click Publish on the toolbar.

The campaign item is sent to production. The site is updated to include the new campaign item.


Step 6: Implementing Content Selector Code

Using the Commerce Server 2002 Base Class Library (BCL), you can easily and rapidly implement marketing campaigns on your Web site. In this step, you will implement the code required to enable Ads and Discounts campaign items on your Web site. You will add the <ContentSelection> tag and enable pipeline and caching components in the Web.config file. You will also add references to the CacheCompLib.dll Primary Interop Assembly (PIA), which is required to enable the ContentList Dictionary on the redir.aspx page.

In this step you will do the following:

  1. Add references to the CacheCompLib.dll (PIA).
  2. Edit the Web.config file.
  3. Add discount and ad labels to the default page.
  4. Add code to the default page.
  5. Create a page to record the click events and redirect users to advertisement URL.

To add references to the CacheCompLib.dll PIA

To edit the Web.config file

To add discount and ad labels to the default page

To add code to the default page

To create a page to record and redirect

To add references to the CacheCompLib.dll PIA

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. In the Microsoft Development Environment [design] – Start Page screen, click Open Project.
  3. In the Open Project dialog box, select the NorthwindTraders project, and then click Open.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, in the Solution Explorer - NorthwindTraders window, right-click References, and then click Add Reference.
  5. In the Add Reference dialog box, in the .NET tab, select CacheCompLib.dll from the list, click Select, and then click OK.
  6. In the Solution Explorer - NorthwindTraders window, collapse the References node.

To edit the Web.config file

  1. In the Solution Explorer - NorthwindTraders window, right-click the web.config file, and then click Open.
  2. Remove the comment tags around the <caches> and <pipelines> tags for the following records (name=� �):
    • Advertising
    • Discounts
    • Recordevents
  3. Add the following <contentSelection> record within the <CommerceServer> record:
    <contentSelection>
<add name="advertising" cacheName="advertising" selectionPipeline="advertising" eventPipeline="recordEvent" redirectUrl="./redir.aspx"/>
<add name="discounts" cacheName="discounts" selectionPipeline="discounts" eventPipeline="recordEvent" redirectUrl="./redir.aspx"/>
</contentSelection>

To add discount and ad labels to the default page

  1. In the Solution Explorer - NorthwindTraders window, right-click the default.aspx file, and then click View Designer.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx window, click View on the toolbar, and then click Toolbox.
  3. In the Toolbox window, in the Web Forms section, drag and drop a Label object onto the form.
  4. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type discountLabel.
    Text | Delete the contents of this box.
  5. In the Toolbox window, in the Web Forms section, drag and drop another Label object onto the form.
  6. In the Properties window, make sure the object you just created is selected, and then do the following:
    Use this | To do this
    ID | Type adLabel.
    Text | Delete the contents of this box.

To add code to the default page

  1. In the Solution Explorer - NorthwindTraders window, right-click the default.aspx file, and then click View Code.
  2. In the NorthwindTraders – Microsoft Visual C# .NET [design] – Default.aspx.cs window, in the using section, add the following lines of code:
    using System.Collections.Specialized;
using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Targeting;
using Microsoft.CommerceServer.Runtime.Profiles;
using System.Diagnostics;
  3. In the public class section, add the following protected labels:
    protected System.Web.UI.WebControls.Label adLabel;
protected System.Web.UI.WebControls.Label discountLabel;
  4. In the Page_Load() method, add the following code:
    // Create a targeting profile
CommerceContext ctx = CommerceContext.Current;
Profile userProfile = null;
bool isLoggedOn = ctx.AuthenticationInfo.IsAuthenticated();

if (isLoggedOn)
{
   // Extract the user's profile for the Campaign system to
   // decide if the user should be targeted for a given ad.
   ProfileContext profContext = ctx.ProfileSystem;

   string userId = ctx.AuthenticationInfo.AuthTicket.UserID;
   userProfile = profContext.GetProfile(userId, "UserObject");
}
//check for the profile

// Get the AD

// Get a ContentSelector and set its properties
ContentSelector csoAd = ctx.TargetingSystem.SelectionContexts["advertising"].GetSelector();
csoAd.TraceMode = true;
csoAd.ItemsRequested = 1;

if(null != userProfile)
{
   csoAd.Profiles.Add("User", userProfile);
}

csoAd.Size = "Banner";

// Get some content using CS2002 Content Selection Framework
StringCollection adpayload = csoAd.GetContent();
foreach (string adItem in adpayload)
{
   adLabel.Text = adLabel.Text + adItem.ToString() + "";
}

// Get the Discount

// Create a targeting profile

// ctx is still active

// Get a ContentSelector and set its properties
ContentSelector csoDiscount = ctx.TargetingSystem.SelectionContexts["discounts"].GetSelector();
csoDiscount.TraceMode = true;
csoDiscount.ItemsRequested = 1;

if(null != userProfile)
{
   csoDiscount.Profiles.Add("User", userProfile);
}

// Get the content using CS2002 Content Selection Framework
StringCollection discountPayload = csoDiscount.GetContent();
foreach (string discountItem in discountPayload)
{
   discountLabel.Text = discountLabel.Text + discountItem.ToString() + "";
}

To create a page to record and redirect

  1. In the Solution Explorer - NorthwindTraders window, right-click the NorthwindTraders, point to Add, and then click Add Web Form.
  2. In the Add new Item - NorthwindTraders dialog box, in the Name box, type redir.aspx, and then click Open.
  3. In the Solution Explorer - NorthwindTraders window, right-click the redir.aspx file, and then click View Code.
  4. In the NorthwindTraders – Microsoft Visual C# .NET [design] – redir.aspx.cs window, in the using section, add the following lines of code:
    using System.Collections.Specialized;
using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Pipelines;
using Microsoft.CommerceServer.Runtime.Targeting;
using Microsoft.CommerceServer.Runtime.Profiles;
using Microsoft.CommerceServer.Runtime.Caching;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Runtime.InteropServices;
using Microsoft.CommerceServer.Interop.Caching;
  5. In the Page_Load() method, add the following code:
    //Get query string parameters
NameValueCollection coll = Request.QueryString;
//Records event
//Note:  FormatterConverter is a .NET Framework function and it is used
//       to convert the string to an int in the record event call
FormatterConverter format = new FormatterConverter();
RecordEvent(format.ToInt32(coll["ciid"]), coll["cachename"], format.ToInt32(coll["PageGroupId"]));
//Redirect to target URL
Response.Redirect(coll["url"]);
  6. In the public class redir section, add the following code:
    public void RecordEvent(int ciid, string cacheName, int pageGroupId)
{
   //Get Commerce Context.
   CommerceContext ctx = CommerceContext.Current;
   if(null == ctx)
   {
      return;
   }

   //Get advertisement cache from cachemanager.
   CommerceCache cache = ctx.Caches[cacheName];
   if(null == cache)
   {
      return;
   }

   Microsoft.CommerceServer.Runtime.IDictionary cacheData = (Dictionary) cache.GetCache();
   if(null == cacheData)
   {
      return;
   }

   //Get record event pipeline from framework.
   PipelineBase recordEventPipeline = ctx.Pipelines["recordevent"];
   if(null != recordEventPipeline)
   {
      //Create order and context dictionaries, assuming it will be successful.
      Microsoft.CommerceServer.Runtime.IDictionary orderDictionary = new Microsoft.CommerceServer.Runtime.Dictionary();
      Microsoft.CommerceServer.Runtime.IDictionary contextDictionary = new Microsoft.CommerceServer.Runtime.Dictionary();
      if(null == orderDictionary && null == contextDictionary)
      {
         return;
      }

      //Initialize order dictionary.
      ContentListFactory contentFactory = null;
      orderDictionary["_winners"] = ciid;
      orderDictionary["_event"] = "CLICK";

      orderDictionary["_performance"] = cacheData["_performance"];
      contentFactory = (ContentListFactory)cacheData["Factory"];
      ContentList contentList = contentFactory.CreateNewContentList();
      orderDictionary["_content"] = contentList;

      //Initialize context dictionary.
      contextDictionary["SiteName"] = ctx.SiteName;
      contextDictionary["PageGroupId"] = pageGroupId;

      //Execute Record event pipeline and log event to weblog.
      recordEventPipeline.Execute(orderDictionary, contextDictionary);

      //Release refernces to COM objects.
      if(null != cacheData)
      {
         Marshal.ReleaseComObject(cacheData);
      }
      if(null != orderDictionary)
      {
         Marshal.ReleaseComObject(orderDictionary);
      }
      if(null != contextDictionary)
      {
         Marshal.ReleaseComObject(contextDictionary);
      }
      if(null != contentFactory)
      {
         Marshal.ReleaseComObject(contentFactory);
      }
      if(null != contentList)
      {
         Marshal.ReleaseComObject(contentList);
      }
   }
   else
   {
      return;
   }
}


Lab 5: Debugging Commerce Server 2002 in ASP .NET

Commerce Server 2002 supports several methods for the tracing and logging of code execution to help troubleshoot problems that may occur.

You can enable tracing on different objects within the hierarchy to view execution problems that may not have generated complete exceptions, but may have unexpectedly altered the results of a given operation.

You can also enable pipeline logging to view when pipelines are being executed, and what is triggering them. For example, you can view users as they are processed by the pipeline components (logfilename==user_id). You can also view internal pipeline component operations such as the fields that are being processed, and their values.

In this lab you will learn how to debug Commerce Server 2002 pipeline components, and utilize DebugContext object(s).

This lab contains the following steps:

  • Step 1: Commerce Server 2002 Pipeline Logging and Debugging
  • Step 2: Using the DebugContext and ConsoleDebugContext Objects


Step 1: Commerce Server 2002 Pipeline Logging and Debugging

In this step you will learn how to enable pipeline logging on the system and insert custom logging scripts to save the pipeline contents to a file.

To enable pipeline logging

To insert a custom logging script

Sample Scripter Code

To enable pipeline logging

  1. In the Solution Explorer - NorthwindTraders window, right-click the Web.config file, and then click Open.
  2. Locate the <pipelines> section, in the <pipeline> tag of the pipeline on which you want to enable logging, and insert the command loggingEnabled="true" at the very bottom of the pipeline record (before the end tag of the desired pipeline).

Notes

  • By default, the pipeline output log files are stored in the <Project Name>/pipelines/logs folder.
  • The output log files are broken apart by the UserID (GUID) of the user whose session initiated the given pipeline.

To insert custom logging script

  1. In the Solution Explorer - NorthwindTraders window, expand the Pipelines folder, and then double-click the file basket.pcf. The Commerce Server Pipeline Editor starts.

    Note

    • If you do not see the Pipelines folder, click Show All Files, right-click the Pipelines folder, and then click Include in Project.
  2. In the Commerce Server Pipeline Editor window, right-click any of the pipeline states after the QueryCatalogInfo and RequiredProdInfo components, point to Insert Component, and then click After.
  3. In the Choose a component dialog box, select Scriptor from the components list, and then click OK.
  4. In the Commerce Server Pipeline Editor window, double-click the newly added Scriptor component.
  5. In the Component Properties dialog box, click Edit for internal scriptor and insert the code provided below, or select external and specify the log file location to which you will save pipeline contents.
  6. In the Component Properties dialog box, in the Config box, type filename=c:\orderdump.log, and then click the Component Properties tab.
  7. In the Component Properties dialog box, on the Component Properties tab, in the Label box, type OrderDump.
  8. Click OK.
  9. To save the pipeline, click Save on the toolbar.

The next time youview the basket page and the basket.pcf pipeline is executed, an output file will be placed in the location specified (c:\orderdump.log) that will contain all of the parameters from the specified dictionary.

Sample Scripter Code

Following is sample code that can be used for internal scripting by the Scriptor pipeline component:

' DumpOrder is a simple example of building a component using VBS and scriptor
'
' To use dumporder, configure a Pipeline using one of the available
' Pipeline Editors.
' Set the Language to VBScript, choose File and set the file to DumpOrder.vbs
' (this file).
'
' In addition, this script assumes you set the filename parameter to a
' valid filename for output. The directory the output file is written to
' must be set up to
' have write access via the user your IIS is running as.
'
' For example, you could set
' filename=c:\orderdump.log
' in the Parameters control.
'
' This would assume your IIS user can write to c:\
'
function mscsexecute(config, orderform, context, flags)

   Set fs = CreateObject("Scripting.FileSystemObject")
   Set a = fs.CreateTextFile(config.filename, True)

   DumpOrderForm orderform, a

   a.Close

    mscsexecute = 1

end function

sub DumpItem(byRef item, byRef a)

   ' Dump all key/value pairs from a dictionary
   for each key in item
      on error resume next
      a.WriteLine("      Key [" + key + "] {" + TypeName(Key) + "} Value [" + _
            cstr(item.Value(key)) + "] {" + TypeName(item.Value(Key)) + "}")
      if err.number > 0 then
         if err.number = 450 then
            DumpItem key, a
         else
            a.writeline " *** ERROR in DumpItem # " & CStr(Err.Number) & _
                        " " & Err.Description
         end if
      end if
   next

end sub

sub DumpItems(byRef items, byRef a)

   'Iterate over List of Dictionaries, dump each dictionary
   n = 1
   for each item in items
      on error resume next
      a.WriteLine("   Item " + cstr(n))
      if err.number > 0 then a.writeline " *** ERROR in DumpItems # " & _
            CStr(Err.Number) & " " & Err.Description
      DumpItem item, a
      n = n + 1
   next

end sub

sub DumpList(byRef list, byRef a)

   'Iterates over list, write out each item and type
   for each item in list
      on error resume next
      a.WriteLine("   Value [" + item + "] {" + TypeName(item) + "}")
      if err.number > 0 then
         if err.number = 450 then
            a.WriteLine(" ")
            a.WriteLine("   Start Dictionary")
            DumpItem item, a
            a.WriteLine("   End of Dictionary")
            a.WriteLine(" ")

         else
            a.writeline " *** ERROR in DumpList # " & CStr(Err.Number) & _
                        " " & Err.Description
         end if
      end if
   next

end sub

sub DumpOrderForm(byRef orderForm, byRef a)

   a.WriteLine("** Orderform Contents **")

   for each key in orderForm

      if VarType(orderForm.Value(key)) <> vbObject then

         ' Dump out top level items
         a.WriteLine("Order Key [" + key + "] {" + TypeName(Key) + "} Value [" + _
                     cstr(orderForm.Value(key)) + "] {" + _
                     TypeName(orderForm.Value(key)) + "}")

      elseif key = "Items" then

         ' Dump out Items List
         a.WriteLine("Items List")
         DumpItems orderForm.Value(key), a
         a.WriteLine("End of Items List")
         a.WriteLine(" ")

      elseif key = "_Verify_With" then
         ' Dump out _Verify_With Dictionary
         a.WriteLine(" ")
         a.WriteLine("Order Key is [_Verify_With] Start Dictionary")
         DumpItem orderForm.Value(key), a
         a.WriteLine("End of Dictionary")
         a.WriteLine(" ")

      else
         ' Some object, assume it is a list
         a.WriteLine(" ")
         a.WriteLine("Order Key is [" + key + "]" + " Start List")
         on error resume next
         DumpList orderForm.Value(key), a
         if err.number > 0 then
            if err.number = 438 Then
               if TypeName(orderForm.Value(key)) = "IContentList" then
                  a.writeline " *** unable to write the contents of a " & _
                              TypeName(orderForm.Value(key)) & " with " & _
                              orderForm.Value(key).Count & " rows."
               end if
            else
               a.writeline " *** ERROR in DumpOrderForm # " & _
                           CStr(Err.Number) & " " & Err.Description
            end if
         end if
         a.WriteLine("End of List")
         a.WriteLine(" ")

      end if

   next

   a.WriteLine("** End of Orderform Contents **")

end sub


Step 2: Using the DebugContext and ConsoleDebugContext Objects

Commerce Server 2002 provides the DebugContext and ConsoleDebugContext objects to assist site developers in creating and debugging Commerce Server 2002 applications. Developers use these objects to pass properly formed exceptions from within their code and to send trace/warn messages from within the code.

The ConsoleDebugContext object functions are similar to those functions used by Web developers, with the difference that the object functions are designed to be utilized from within programs and executables (.EXEs) instead of being used from within World Wide Web (WWW) pages.

To call the DebugContext.Error() object

To call the ConsoleDebugContext.Error() object

To call the DebugContext.Error() object

  • You use the following code to call the DebugContext.Error() object:
CommerceContext ctx = CommerceContext.Current;
ctx.DebugContext.Error("Test Error", "Error Message");

To call the ConsoleDebugContext.Error() object

You use the following code to call the ConsoleDebugContext.Error() object:

CommerceContext ctx = CommerceContext.Current;
ConsoleDebugContext cdc= new
   ConsoleDebugContext(ctx.DebugContext.DebugMode);
cdc.Error("Test Error", "Error Message");


Exploring the International Retail Site

The International Retail Site provides a starting point for building an International Retail site on top of the Commerce Server 2002 .NET platform.

This section provides procedures that you can follow to explore the functionality of the International Retail site. These procedures should be performed in the following order:

  • Step 1. Adding data to the site. Before you can completely explore the International Retail Site, you must import the Adventure Works catalog, copy images, add a shipping method, add tax rates, and currency conversion information by using Commerce Server Business Desk. To create banner ads, see Creating an Ad in the Commerce Server 2002 help system.
  • Step. 2. Selecting a locale. Select from one of the following supported locales: English-United States, English-Canada, French-Canada, French-France, German-Germany, and Japanese-Japan are all supported.
  • Step 3. Creating a new user account. Create a new user account.
  • Step 4. Creating an address for the user. This address becomes the primary billing/shipping address.
  • Step 5. Logging onto the site using the new user account. This step verifies that the user account was created successfully.
  • Step 6. Shopping the Adventure Works catalog. In this step, you will do the following:
    • Add one item from the Adventure Works catalog to the shopping cart.
    • Check out with one line item in the shopping cart.
    • Add a new credit card to the profile for the registered user.
  • Step 7. Performing simple and advanced searches. You will perform searches of the Adventure Works catalog.
  • Step 8. Placing a multiple shipment order. In this step, you will do the following:
    • Add a new address for the registered user.
    • Add two items to the registered user’s cart, and then check out. Each item in the cart is sent to a different address.

See Also

International Retail Site Software Requirements

International Retail Site


International Retail Site Software Requirements

To run the International Retail Site, you must install the following software in the order shown:

  • Microsoft Windows 2000 Advanced Server with Service Pack 2
  • Windows 2000 Security Rollup Package 1, located at http://go.microsoft.com/fwlink/?LinkId=6537.
  • Nimda patch, available on the Microsoft TechNet Web site, located at http://go.microsoft.com/fwlink/?LinkId=6689.
  • Microsoft Internet Explorer 5.5 with Service Pack 1 or Internet Explorer 6.0 with Internet Explorer Security Update: October 2001, available at http://go.microsoft.com/fwlink/?LinkId=6690.
  • Microsoft SQL Server 2000 Enterprise Edition
  • SQL Server 2000 Enterprise Edition Analysis Services
  • SQL Server 2000 Enterprise Edition Service Pack 2
  • Microsoft Visual Studio .NET Enterprise (includes Visual Studio build 7.0.9466 and .NET Framework v. 1.0.3705)

Optional software includes the Microsoft Passport 2.0 Software Development Kit (SDK), available at http://go.microsoft.com/fwlink/?LinkId=6691.


Step 1. Adding Data to the Site

Before you can use the International Retail Site, you must add catalog data, a shipping method, a tax rate, and currency conversion information to the site by using Commerce Server Business Desk:

  • Import the Adventure Works catalog.

    If you have installed Commerce Server 2002 Standard or Enterprise Edition, you can import the Adventure Works catalog, located in \Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet. For instructions about importing the catalog, see Importing an XML Catalog File.

    To get the images for the Adventure Works catalog, unpack the Catalog Sitelet, which is located in the same SDK directory as the Adventure Works catalog. Under the International Retail Site \images folder, create a folder named Catalog, and copy the images to that folder.

  • Copy the Adventure Works catalog images into Business Desk.

    Copy the Adventure Works catalog \images folder from \inetpub\wwwroot\netcatalogsitelet to Business Desk \inetpub\wwwroot\<sitename>.

  • Add a "By Quantity" shipping method.

    A shipping method is required by the International Retail Site in order to successfully complete the checkout process. The Adventure Works catalog is configured to work with either the "By Quantity" or "By Subtotal" shipping method. You cannot use a "By Weight" method since it has not been defined for the products in this catalog.

    For instructions about adding a shipping method, see To add a charge by quantity shipping method or To add a charge by subtotal shipping method.

  • Add a tax rate.

    For instructions about adding a tax rate, see Adding a Tax Rate.

  • Add currency conversion information to the site.

    The Currency Converter control will only appear on the site if currency exchange rates were created using Business Desk. The multiplier uses the conversion from the base site currency to the currency code you want. For example, to convert Yen to U.S. dollars you multiply a Yen by 0.00750637. Exchange rate information can be found at http://go.microsoft.com/fwlink/?LinkId=6692.

To enable the currency converter on the site

To create Japanese Yen exchange rate

To create Euro exchange rate

To create US Dollars exchange rate

Use the following procedure to enable the currency converter on the site.

To enable the currency converter on the site

  1. In Commerce Server Business Desk , click Profiles, and then Profile Editor.
  2. In the Profiles screen, click Exchange Rate, and then click Open.
  3. In the Exchange Rate screen, click New.

Currency conversion is now enabled for the site.

To create the Japanese Yen exchange rate

  1. In the New Exchange Rate screen, do the following:
    Use this | To do this
    Currency Code | Type JPY.
    Currency Name | Select Japanese Yen from the drop-down list.
    Multiplier | Type 0.0075.

To create the euro exchange rate

  1. In the New Exchange Rate screen, do the following:
    Use this | To do this
    Currency Code | Type EUR.
    Currency Name | Select Euro from the drop-down list.
    Multiplier | Type 0.09.

To create the U.S. dollars exchange rate

  1. In the New Exchange Rate screen, do the following:
    Use this | To do this
    Currency Code | Type USD.
    Currency Name | Select US Dollars from the drop-down list.
    Multiplier | Type 1.
  2. Click Save.

To have exchange rates to appear on the site, you need to publish your profiles to the site. See Publishing Profile Definition Changes on Your Web Site.

Use the following procedure to verify the currency converter is enabled on the site.

To verify that the currency converter is enabled on the site

  1. Navigate to the site and select a locale.
  2. On the Default.aspx page, you should see a drop-down list that contains the available currencies.

Continue to the next step, Selecting a Locale.


Step 2. Selecting a Locale

Perform the following steps to select a locale for the International Retail site:

  1. Use your browser to navigate to http://<servername>/retail2002/.

    The introductory Retail 2002 page appears.

  2. On the Retail 2002 page, select a country/region and language representing your locale:
Select from one of the following supported locales: English-United States, English-Canada, French-Canada, French-France, German-Germany, and Japanese-Japan. The locale you select determines the manner in which site content is displayed.
For example, if you select the U.S. flag, the locale value is set to en-US. The Adventure Works catalog that is subsequently displayed on the site will show product items and descriptions in English, and the corresponding prices for these products are listed in U.S. dollars (USD). If you select the French flag, the locale value is set to fr-FR. Product items and descriptions are displayed in French.

Note

  • The corresponding price of the product is displayed in the base currency of the site. For example, if you select the French flag but the base currency of the site is in U.S. dollars, USD will be displayed on the site. The user has the option to use the currency converter drop-down list to change the currency for the product prices.

You cannot navigate to any other page within the International Retail site until you select a locale.

Notes

  • The locale selection is stored as a persisted cookie (it appears in the URL if cookies are disabled), and you will not see the locale selection page again until the cookie in which this information resides is deleted or you manually navigate back to localeselection.aspx page and make another locale selection.
  • The locale selection choice you make works in conjunction with the type of catalog available to the site. The Adventure Works catalog is a multilingual catalog that supports the majority of the available International Retail Site locales.
  • The locale selection you choose on the site determines which catalogs you can view. For example, if you are viewing the site in en-US (English USA) and one of the catalogs is only available in ja-JP (Japanese Japan), then you will not see that catalog listed as a choice.
  • Catalog supports failover to one catalog if the locale for the user cannot be determined. For example, .NET supports a hierarchal failover that allows a French-Canadian to see French localized strings if the French-Canadian localized strings are not available. This represents two different locale failover patterns in the site.

Continue to the next step, Creating a New User Account.


Step 3. Creating a New User Account

After you select the locale, the Default.aspx page is displayed. Because you imported the Adventure Works catalog, you will see a list of products on this page, beginning with the product Venus and ending with the product Daytrip First Aid Kit. In the top-right corner of this page is the link Sign In, which redirects you to the Login.aspx page. On this page you can either log in to the site using an existing account, or create a new account.

If the Microsoft Passport 2.0 SDK is installed on the server hosting the International Retail Site, an additional link, Sign In .NET, appears on the Login.aspx page. This link is used in conjunction with the Passport service.

Note

  • You need to register your passport server with the Passport service to get passport logout to work.

Use the following procedure to create a new user account.

To create a new user account

  1. On Login.apsx page, click If you need to create an account.
  2. On NewAccount.aspx page, do the following:
    Use this | To do this
    User name Type jdoe.

    Both the user name and password are case-sensitive.
    Password Type password.

    The password must be a minimum of eight characters.
    Re-enter password | Type password again.
    E-mail address Type jdoe@microsoft.com.

    The e-mail address is validated. It must contain a minimum of five characters, an "@" and a "." (an "at" sign and a period).
  3. Click Save.

The International Retail site checks the following:

  • If the password contains a minimum of eight characters (password length configuration is found in the web.config file).
  • If the password and re-entered password match.
  • If the e-mail address is at least five characters in length (e-mail address configuration is found in the web.config file), and contains an "@" and a "." (an "at" sign and a period).

After you create the new user account, a message confirming that your account has been created appears.

Continue to the next step, Creating the User Account Primary Address.


Step 4. Creating the User Account Primary Address

You establish the primary address for the user on the Myaccount.aspx page. This page records the shipping and billing addresses to be used for user transactions. To view the myaccount.aspx page, click Personal Information in the navigation control located on the left panel.

Use the following procedure to create a primary shipping/billing address.

To create a primary shipping/billing address

  1. On the Myaccount.aspx page, do the following:
    Use this | To do this
    First name | Type John.
    Last name | Type Doe.
    E-mail address | This box contains the e-mail address that you entered on the Login.aspx page.
    Telephone | Type 425-555-1212.
    Fax | Leave this box blank.
    Zip Code | Type 98052.
    Country | The country/region shown is determined by the locale you selected when you entered the site. If you clicked the U.S. flag, this value is set to United States.
    Address 1 | Type 1 Microsoft Way.
    Address 2 | Leave this box blank.
    City | Type Redmond.
    State | Select Washington from the drop-down list.
  2. Click Save.

The data you entered is saved in the <Retail2002_site>_commerce database.

Continue to the next step, Logging in Using the New User Account.


Step 5. Logging in Using the New User Account

Perform the following steps to verify that you can log in with the new user account you just created.

  1. Use your browser to navigate to http://<servername>/retail2002/.

    Important

    • Type the name of the server. Do not type localhost.
  2. On the International Retail Site, click Sign In.

    The Login.aspx page opens.

  3. On the Login.aspx page, type, do the following:
    Use this | To do this
    User name Type jdoe.

    Note

    • Both the user name and password are case-sensitive.
    Password | Type password.
  4. Click Login.

    The International Retail Site authenticates your login information. After you are authenticated, the Default.aspx page is displayed and you should see the message "Welcome, John Doe, please make yourself at home."

    If you are not authenticated, the following error message is displayed:

    "The username and/or password is incorrect or the account is invalid."

If you receive this error message, review the steps in To create a new user account. After you are authenticated, continue to the next step, Shopping the Adventure Works Catalog.


Step 6. Shopping the Adventure Works Catalog

On the Default.aspx page, you can do the following:

  • Search catalogs. Use the Search control, located in the upper left corner of the page, to perform simple searches, or select a hyperlink to perform a more advanced search on the contents of all available catalogs.
  • Browse catalogs. You can perform a hierarchical navigation of the various categories within the catalog using hyperlinks in the Browse control. Located under the Search control, the Browse control displays a collective list of all the catalogs users are allowed to view.
  • Toggle catalogs. Click the appropriate tab to move between catalogs.

In this step, you will view products in the Adventure Works catalog, add a product to your cart, remove the product, add a different product, and then check out.

To shop the Adventure Works catalog

To add a different product to your cart

To add credit card information

To shop the Adventure Works catalog

  1. In the Browse control, click Adventure Works Catalog.

    All the catalog categories are displayed. Verify that the following categories are listed in the Browse control:

    • Backpack
    • Boots
    • Carabiner
    • Crampon
    • Harness
    • Pants
    • Parka
    • Rockshoes
    • Shirts
    • SleepingBags
    • Supplies
    • Tents
  2. Click the Parka category.
  3. Select a product in the Parka category.
  4. Examine the contents of the page. Only the following four products should be listed:
    • Alpine
    • Campos
    • Sahara
    • Crystal
  5. Click the Add to Cart button that corresponds to the Alpine Parka.

    The Basket.aspx page displays the full product summary of Alpine parka. You need to select a color from the drop-down list. If a product family has more than one variant, then multiple drop-down lists will appear. As the user selects values from the drop-down list, the other drop-down lists will be refreshed with only the valid product offerings.

    In the international Retail2002.pup package, you configure the action that is performed when a user clicks the Add to Cart button to either remain on the page or to proceed to the Cart.

    On the Basket.aspx page, you can change the quantity of any item in your cart, navigate to the product page using the product link, or remove an item from your cart.

  6. To remove Alpine parka from your cart, select the check box under the label Delete.
  7. Click Update.

    The Alpine parka is removed from your cart. The Basket.aspx page is displayed, along with the message, "Your shopping Cart is Empty."

To add a different product to your cart

  1. In the Browse control, click Adventure Works Catalog.

    All the catalog categories are displayed. Verify that the following categories are listed in the Browse control:

    • Backpack
    • Boots
    • Carabiner
    • Crampon
    • Harness
    • Pants
    • Parka
    • Rockshoes
    • Shirts
    • SleepingBags
    • Supplies
    • Tents
  2. Click Crampon.
  3. Verify that category navigation worked by examining the contents of the page. Only the following three products should be listed on the page:
    • Wafflestomper
    • Edgehugger
    • Glory Grip
  4. Click Glory Grip.

    The Category.aspx page is displayed, providing detailed information about the Glory Grip product, as well as Recommendations and Product Reviews for that particular product.

  5. Click the Add to Cart button.

    The Basket.aspx page is displayed.

  6. Verify that the correct product was added to your cart, and then click Checkout.

    The Checkout.aspx page prompts for information such as the shipping address the product will be delivered to, displays the shipping methods available for selection, the products that are being ordered, order total information, and credit card information. Notice that the Complete Purchase button is not enabled.

    Instructions at the top of the page explain that you must provide a Payment Method to continue.

To add credit card information

  1. In the Payment section of the Checkout.aspx page, click Change.
  2. On the PaymentSelect.aspx page, click New.
  3. On the Payment Option form, do the following
    Use this | To do this
    Card type | Select Visa from the drop-down list.
    Card number | Type 4111-1111-1111-1111, 16 digits.
    Name on card | Type John Doe.
  4. Click Create.

    A credit card record is created for you.

  5. Click Continue.

    The PaymentSelect.aspx page is displayed, along with the following information:

    Visa ####-####-###--1111 01/2003

  6. Click Continue.
  7. Select the card you created for payment.

    The Checkout.aspx page is displayed and the Complete Purchase button is enabled. (If the Complete Purchase button is not enabled, you must first create a "By Quantity" shipping method. To create the shipping method, see To add a charge by quantity shipping method.)

  8. Click Complete Purchase.

    Your order is complete. The Receipt.aspx page is displayed and an Order Receipt is provided.

    The Order Receipt assigns a number to the order, indicates the payment option that was selected (credit card is the only payment means), and lists the billing address the order was billed to. If this is the first order placed, the Order Receipt Number is 1000. The Shipment section of the receipt shows the shipping address the order was sent to, the shipment method selected, and a line-item summary of the products ordered.

    To verify that the order was successfully received, use the Business Desk Orders module to search Order Status for all orders. For instructions, see Finding, Viewing, and Sorting Orders.

  9. Click Continue Shopping to return to the Default.aspx page, which displays the contents of the Adventure Works catalog.

Note

  • You can also create credit card information for your account by following the Payment Options link on the Myaccount.aspx page.

Continue to the next step, Performing Simple and Advanced Searches.


Step 7. Performing Simple and Advanced Searches

You can perform simple or advanced searches on the International Retail Site. Advanced search can be used to perform an intersection of multiple keywords using the logical AND operator.

To perform a search of the catalog

  1. On the Default.aspx page, in the Search control provided in the top left corner of the page, note that the catalog selection box is set to All catalogs.
  2. In the Search box, type scoutpride, and then click Go.

    The search returns scoutpride and the category in which it was found. This is an enumeration of all matches. This particular search should return the Scoutpride product.

  3. Click the Scoutpride link.

    The SearchResults.aspx page is displayed, which lists the details of the product you selected.

  4. Click Add To Cart.

    The Scoutpride cooking set is added to your shopping cart.

  5. Click the Advanced Search link from the cart page, and leave the Catalogs drop-down box set to All catalogs. Do the following:
    Use this | To do this
    Keywords | Type Petzl Spirit.
    Number of items to display | Accept the default of 5.
    Search type | Verify that the Search for keywords AND option is selected.
  6. Click Search.

    The advanced search returns two Petzl Spirit records. The two products listed on the AdvancedSearch.aspx page are different products in the catalog.

  7. Click the first Petzl Spirit link, and then click Add to Cart.

    Your basket now contains two products: the Scoutpride cooking set and the Petzl Spirit carabiner.

  8. Click Checkout.

The Checkout.aspx page is displayed. Continue to the next step, Placing a Multiple Shipment Order.


Step 8. Placing a Multiple Shipment Order

When you have more than one line item in your basket, and you are shipping products to two or more different addresses, you can place a multiple shipment order (that is, an order where different products get shipped to different addresses). In this example, the first requirement, that you have more than one line item in your basket, has been met. However, you need to create a new shipping address for the user, John Doe.

On the Checkout.aspx page, notice that the Shipping Address drop-down list contains only one address: Primary. You can create a new shipping/billing address, or edit an existing one.

To create a new shipping/billing address

  1. On the Checkout.aspx page, click New, and then do the following:
    Use this | To do this
    Address Name | Type Home.
    Last name | Type Jane.
    Last name | Type Doe.
    Country | Type United States.
    Address 1 | Type 2 Doe Way.
    Address 2 | Type Apartment #2.
    City | Type Sammamish.
    State | Type Washington.
    Zip Code | Type 98075.
  2. Click Save.

    The message "Your information has been successfully saved" appears.

  3. To return to checkout, click the Shopping Cart link, and then click Checkout again.
  4. On the Checkout.aspx page, confirm that the new address was created in the Shipping Address drop-down list. Verify that the Home address exists (select the address and its details appear below the drop-down list).
  5. To submit a multiple shipment order, click Multiple Shipments at the bottom of the page.

    The MultipleShiptoSelect.aspx page is displayed. Each line item in your cart now has a shipping address and shipping option control that can be modified.

  6. Select the Ship to Address for the Petzl Spirit.

    If multiple shipping options exist, you can select a different shipping option.

  7. Change the delivery address of this product to the Home address you just created. After you select the Home address, the page automatically updates the address information that appears below the address drop-down box. Verify that the correct address appears.
  8. Click Continue.

    The Checkout.aspx page shows two shipments: Order Shipment 1 and Order Shipment 2. The first shipment, consisting of the Scoutpride cooking set, is going to the Primary Address. The second shipment, which contains the Petzl Spirit carbiner, is going to a different address.

    Continue to the next step to select a payment method.

  9. To use the credit card created earlier, click Change.
  10. On the PaymentSelect.aspx page, select the Visa card ending in the digits 1111, and then click Continue.

    There are now two orders. The payment option has been updated to reflect the credit card you selected, and the Complete Purchase button is enabled.

  11. Click Complete Purchase.

    The Receipt.aspx page is displayed, providing a summary for order number 1001.

These procedures conclude the exploring of the International Retail Site.


Commerce Server のシステム

Commerce Server 2002 は、次に示す 5 つの主要な統合システムで構成されています。

  • ビジネス分析システム
  • プロファイル システム
  • 商品カタログ システム
  • 対象化システム
  • ビジネス処理パイプライン システム

それぞれのシステムは、サイト開発者がビジネス ニーズに合わせて容易にカスタマイズできるようになっています。

ビジネス マネージャが Commerce Server のシステムを操作するには、Commerce Server ビジネス デスクを使います。たとえば、カタログの更新、コンテンツのユーザーへの対象化、ユーザーと組織のプロファイル、サイトの利用状況と生産性の分析などを行うときに使います。システム管理者は、Commerce Server マネージャを使ってシステム リソースを構成し、アプリケーション、データベース、および Web サーバーを管理します。

Commerce Server の各システム、ビジネス デスク、Commerce Server マネージャ、および Commerce Server データベースは、ソリューション サイトにあらかじめ構成され、パッケージ化されています。サイト開発者は、カスタム サイトを構築し、サードパーティ製のアプリケーションを統合するための基礎としてこれらを利用できます。

次の図は、Commerce Server のシステムの概要を示しています。Commerce Server のシステムは、ビジネス デスク、Commerce Server マネージャ、および Commerce Server データベースと共に、ソリューション サイトに含まれています。

Commerce Server の概略図


ビジネス分析システム

ビジネス分析システムは、データ ウェアハウス、予測とデータ マイニング、および高度な分析を通して、完全な意思決定支援を提供するためのシステムです。Microsoft Commerce Server 2002 をインストールして、ビジネス分析システムをスタンドアロン機能として使えます。ビジネス分析システムは、Commerce 以外のアプリケーションと共に使えます。

ビジネス分析システムは、次の 3 つの主要な要素に分類されます。

ここでは、次のトピックについて説明します。

  • データ ウェアハウス SQL Server データベース、OLAP データベース、およびシステム管理者がサイトの利用状況に関する大量の操作データをインポートするために使用する一連のプロセスの組み合わせについて説明します。Commerce Server データ ウェアハウスでは、データベースを使ってデータを格納および管理し、ビジネス分析に備えています。ビジネス分析には、予測とデータマイニング、および分析レポートがあります。
  • 分析レポート 提供されている数多くのレポートを利用して、商品別売り上げ、Web の利用状況、Web サイトの診断などを分析できます。Commerce Server には、次のような、レポート作成をより簡単かつ高速にする機能が含まれています。
    • ピボット コントロールを使って、有意なデータを発見できるようにするドリルスルー機能
    • ビジネス マネージャが、ファイアウォールやプロキシ経由で OLAP データベースにアクセスしてレポートを実行できるようにするリモート アクセス機能

次の表は、データ ウェアハウス、予測、および分析レポートの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
データ ウェアハウス | データ ウェアハウスの概念 データ ウェアハウス構成ウィザード 複数のサイトと 1 つのデータ ウェアハウス データ ウェアハウスにインポートするデータを指定する データ ウェアハウスのインポート ウィザード データ ウェアハウスにデータをインポートする DTS タスクのスクリプト DTS タスクでの抽出/変換/読み込みプロセス Data Warehouse, Analysis, and OLE DB Provider
分析レポート | ビジネス デスク分析 Analysis/Reporting Schema Analysis/Reporting XML Structures


データ ウェアハウス

Commerce Server のデータ ウェアハウスは、SQL Server データベース、オンライン分析処理 (OLAP) データベース、およびシステム管理者がデータのインポートと保守に使用する一連のプロセスの組み合わせです。データ ウェアハウスでは、データベースを使ってデータを格納および管理し、ビジネス分析の実施に備えています。ビジネス分析には、データマイニング、予測、および分析レポートがあります。

複数のデータ ソースから収集した大量のデータをインポートします。サイトに訪れたユーザーに関する操作データを収集します。ユーザー プロファイル データ、トランザクション データ、およびクリック履歴データがあります。また、商品データと広告データも収集します。このデータは、Web サーバー ログ、Microsoft Commerce Server データベース、およびその他の指定されたデータ ソースから収集されます。データが収集された後は、データベース内のデータを管理し、予測モデルを使用する際やレポートを作成する際にユーザーがデータへ簡単にアクセスできるようにします。

データ ウェアハウスには、次の主要コンポーネントが含まれています。

  • データ ウェアハウス構成ウィザード 新しいデータ ウェアハウスを作成するために使うツールです。既存のデータ ウェアハウスを構成するためには使えません。
  • Commerce Server データ変換サービス (DTS) タスク データ ウェアハウスにデータをインポートして変換するために使われる Commerce Server タスクです。Commerce Server タスクは、サイトのアンパックのときに SQL Server に読み込まれます。Commerce Server DTS タスクを SQL Server パッケージに追加し、そのパッケージを実行すると、データ ウェアハウスに変更が加えられます。Commerce Server DTS タスクの動作の詳細については、「DTS タスクでの抽出/変換/読み込みプロセス」を参照してください。

    Commerce Server DTS タスクを手動で構成してデータをインポートすることも、データ ウェアハウスのインポート ウィザードを使ってインポートすることもできます。

  • データ ウェアハウスのインポート ウィザード データ ウェアハウスにデータを高速かつ簡単にインポートできるよう設計されたインターフェイスです。データ ウェアハウス DTS タスクを手動で構成して、どのデータをインポートするかを指定することもできます。

    データ ウェアハウス スキーマ図 データ ウェアハウスを拡張する前にデータ ウェアハウス スキーマを表示するには、この図を参照してください。この図は、Commerce Server 2002 Enterprise Edition Documentation Kit または http://go.microsoft.com/fwlink/?LinkId=672 で参照できます。

次の図は、データ ウェアハウスがインポート元とするデータ ソース、抽出/変換/読み込みプロセスを実行する DTS タスク、およびデータ ウェアハウスがサポートする分析ツールを示しています。

次の表は、データ ウェアハウス、予測、および分析レポートの詳細について説明している主な Commerce Server ヘルプ トピックの一覧です。

参照内容 | 参照先
データ ウェアハウスを配置する | データ ウェアハウスの概念 データ ウェアハウス構成ウィザード 複数のサイトと 1 つのデータ ウェアハウス データ ウェアハウスのインポート ウィザード
データ ウェアハウスにセキュリティを設定する | HTTPS 経由で分析サーバーにアクセスする DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト レポートがアクセスするデータベースにセキュリティを設定するスクリプト データ ウェアハウスの接続文字列
データ ウェアハウスにデータをインポートする | データ ウェアハウスにインポートするデータを指定する データ ウェアハウスのインポート ウィザード DTS タスクのスクリプト DTS タスクでの抽出/変換/読み込みプロセス データ ウェアハウスのインポート処理のトラブルシューティング
 | Data Warehouse, Analysis, and OLE DB Provider


分析レポート

分析レポート機能を使うと、データ ウェアハウスに格納されているデータを分析できます。Microsoft Commerce Server では、数多くのレポートが提供されるので、商品別売り上げ、Web サイトの利用状況、サイトの診断などを分析できます。

レポートを実行するには、Commerce Server ビジネス デスクの分析モジュールを使います。Commerce Server Enterprise Edition を使っている場合は、レポート結果をリストとしてエクスポートして、コンテンツの対象となるユーザーを設定できます。

Commerce Server には、レポート作成を簡単かつ高速にする次の機能が備わっています。

  • ビジネス マネージャが、ファイアウォールやプロキシ経由で OLAP データベースにアクセスしてレポートを実行できるようにするリモート アクセス機能(この機能には、Analysis Services の Enterprise Edition を含む SQL Server 2000 Enterprise Edition が必要)
  • ピボット コントロールを使って、有意なデータを発見できるようにするドリルスルー機能

また、多くのレポートに必要なデータが OLAP データベースに格納されているので、Commerce Server のレポート機能は高速に実行されます。

分析レポート機能には、次の主要コンポーネントが含まれています。

  • ビジネス デスク分析モジュール Microsoft ピボットテーブルと Microsoft ピボットチャートを使って Internet Explorer でレポートを実行し、操作するには、このモジュールを使います。
  • 動的レポート データ ウェアハウスにある最新データを収集するには、このレポートを使います。動的レポートは実行時に作成されます。
  • 動的ドリルスルー レポート 選択されたディメンションが含まれるキューブのディメンションすべてに関する詳細な情報を表示するには、この動的レポートを使います。
  • 静的レポート 要求に応じてこれらのレポートを直ちに実行し、データと共にレポートをデータ ウェアハウスに格納します。
  • 次の表は、Microsoft Commerce Server 2002 に用意されているレポートの一覧です。

注

  • アスタリスク (*) の付いたレポートは、Commerce Server 2002 Enterprise Edition でのみ利用できます。
OLAP キューブにアクセスする動的レポート (静的レポートはキューブにアクセスしません) | SQL Server データベースにアクセスする動的レポート | SQL Server データベースにアクセスする静的レポート
利用状況の傾向 (動的レポート) | * 登録済みユーザー数 (登録日別) | クエリ文字列 (複数値) (静的レポート)
ユーザーの傾向 (動的レポート) | * ユーザー登録までの日数 | クエリ文字列 (単数値) (静的レポート)
ブラウザごとの利用状況 (動的レポート) | * ユーザーの登録状況 | エントリ画面の分析 (静的レポート)
時間ごとの重複しないユーザー数 (動的レポート) |  | * 登録済みユーザーのプロパティ
利用状況の要約 (週単位/年間) (動的レポート) |  | * 顧客別の売り上げ
利用状況の要約 (曜日単位) (動的レポート) |  | * 新規登録済みユーザー
利用状況の要約 (時間単位) (動的レポート) |  |
一般的な利用状況の統計 (動的レポート) |  |
最初に参照したページ (動的レポート) |  |
最後に参照したページ (動的レポート) |  |
帯域幅の要約 (動的レポート) |  |
帯域幅の傾向 (動的レポート) |  |
商品別売り上げ (動的レポート) |  |
ヒット数 (HTTP ステータスごと) (動的レポート) |  |
ヒット数 (Win32 ステータスごと) (動的レポート) |  |
ディレクトリ (動的レポート) |  |
参照元ドメインを要求順に表示 (動的レポート) |  |
要求の多いページ (動的レポート) |  |
* ユーザー訪問の傾向 (動的レポート) |  |
* キャンペーン項目の要約 |  |
* 広告の表示回数とヒット率 (日付単位) |  |
* 広告の表示回数とヒット率 (広告主単位) |  |
* バイヤーの参照の状況 |  |
* キャンペーン イベントの要約 |  |
* 買い物バスケット イベント (動的レポート) |  |
* 注文イベント (動的レポート) |  |

次の表は、分析の詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
レポートのカスタマイズ | Analysis/Reporting Schema
レポートのセキュリティ | レポートがアクセスするデータベースにセキュリティを設定するスクリプト レポートにセキュリティを設定する HTTPS 経由で分析サーバーにアクセスする


プロファイル システム

ビジネス関連の任意の項目について情報を収集するには、Commerce Server のプロファイル システムを使います。プロファイル システムでは、たとえば、匿名ユーザー、コンテキスト (訪問日時など)、組織などのプロファイル情報を収集することが可能です。

Microsoft Commerce Server には、複数の物理ストアからユーザー プロファイル データを集計し、そのデータを単一のオブジェクトとしてアプリケーション開発者に提供する機能が備わっています。この機能は簡単に拡張でき、任意の論理ビジネス エンティティを管理できます。

プロファイル情報は、Active Directory、SQL Server のいずれか、またはその両方をベースとするプロファイル データ ストアに格納されます。プロファイル データ ストアのデータはデータ ウェアハウスにエクスポートでき、さらに、Commerce Server ビジネス デスクを使うと、収集したプロファイル データを分析することができます。

プロファイル システムには、次の主要コンポーネントが含まれています。

  • プロファイル リソース Web サイトでのユーザー データの収集を管理するには、このリソースを使います。プロファイル リソースは、Commerce Server マネージャを通じて管理します (Commerce Server マネージャのホストは、Microsoft 管理コンソールです)。データ ソース、データ オブジェクト、およびデータ メンバの作成、プロファイル定義の作成と評価、およびプロファイル スキーマのエクスポートとインポートを行います。
  • プロファイル ストア プロファイル定義、サイト用語、および名前付きの式を格納する、Microsoft SQL Server データベース内のテーブル グループです。
  • ProfileObject オブジェクトと ProfileService オブジェクト サイトを開発する場合は、ProfileObject オブジェクトを使って、特定のプロファイル オブジェクト インスタンス内のデータを取得し、そのプロファイル オブジェクトのプロパティ値を変更します。ProfileObject オブジェクトを作成、取得、および削除するには、ProfileService オブジェクトを使います。
  • OLE DB Provider for Commerce Server 基になる複数のデータ ストアから ProfileObject オブジェクト データを集計し、そのデータを 1 つの OLE DB の Row オブジェクトとして公開するために使われます。
  • 認証ツール 次のツールを使って、ユーザー認証を管理します。
    • 認証マネージャ (AuthManager) ユーザーを識別するメソッドと、動的コンテンツへのアクセスを制御するメソッドを公開する Component Object Model (COM) オブジェクトです。たとえば、サイト開発者は、AuthManager オブジェクトの GetUserID メソッドを呼び出して、cookie やクエリ文字列に基づいてユーザーを識別します。
    • 認証フィルタ (AuthFilter) IIS の Commerce Server アプリケーション レベルで使用および構成される Internet Server Application Programming Interface (ISAPI) フィルタです。アプリケーションを訪問するすべてのユーザーに適用できます。認証フィルタには、Windows 認証モード、カスタム認証モード、自動 Cookie 生成モード、Windows 認証と自動 Cookie の混合モード、およびカスタム認証と自動 Cookie の混合モードという 5 つの実装モードがあります。
  • 暗号化キーのローリング 非対称型の暗号化の公開キーと秘密キーを新しい組み合わせに変更し、データを移行して新しいキーを使うための機能です。Commerce Server は非対称型の暗号化と一方向のハッシュをサポートしています。非対称型の暗号化は、後で復号化する必要のあるデータを暗号化するために使われ、一方向のハッシュはデータを隠すために使われます。
  • ビジネス デスク プロファイル モジュール このモジュールでは、サイトを訪問するユーザーに関して収集する情報や、データ ウェアハウスにインポートする情報を指定します。また、特定のユーザーまたはユーザー グループに表示する情報を決定します。たとえば、コンテンツがユーザーに合うように対象式を作成したり、どのユーザーがどのカタログを参照するかを指定したりします。

    次の操作は、プロファイル リソースと、ビジネス デスクのプロファイル モジューツのどちらを使っても行うことができます。

    • サイト用語を作成、編集、および削除する。
    • プロファイル定義を編集および削除する。
    • プロファイルを作成、編集、および削除する。
  • Supplier ソリューション サイトの取引先サービス機能 Web サイトが Supplier ソリューション サイトに基づいて作成されている場合、取引先は Web サイトの取引先プロファイル機能を使うことができます。取引先組織の代理管理者は、その組織のプロファイルを編集したり、ユーザー プロファイルを追加または更新したり、すべてのユーザーの注文を参照することができます。代理管理者が利用できるフィールドを制御するには、ビジネス デスクを使います。
  • Retail ソリューション サイトの顧客サービス機能 Web サイトが Retail ソリューション サイトに基づいて作成されている場合、Web サイトのユーザーは顧客プロファイル機能を使って、各自のプロファイルを編集したり、注文の状況を調べたりすることができます。ユーザーが Web サイトの顧客プロファイル機能にアクセスすると、各自のプロファイル データは表示されます。ユーザーが編集できるフィールドを制御するには、ビジネス デスクを使います。

次の表は、プロファイルの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | プロファイルの概念 プロファイルに関するヒント集 認証の概念 認証に関するヒント集
プログラミング | Privacy Samples ASP-Based Profile Sitelet Example Code for Profile Objects Retail ソリューション サイトの認証フィルタを有効にする Supplier ソリューション サイトで認証フィルタを有効にする Passport と統合する Exchange 2000 Outlook Web Access (OWA) の基本認証 Code to Retrieve Login Credentials 暗号化されたプロパティを持つプロファイル インスタンスを作成および取得する Example Code for the Microsoft.CommerceServer.Profiles Namespace
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Profiles Microsoft.CommerceServer.Interop.Profiles Profiling System Objects Profiles Schema Profiling System and OLE DB Provider Profile XML Structures
プロファイルのセキュリティ | プロファイル データベースにセキュリティを設定する 暗号化されたプロファイル プロパティを管理する ビジネス デスク セキュリティ
プロファイル システムの配置 | 2 つのデータ ソースを持つプロファイル定義を作成する プロファイル リソースでプロファイル スキーマをエクスポートおよびインポートする 拡張プロファイル スキーマをパッケージ化する
プロファイルの作成と管理 | プロファイル リソースでデータ ソースを管理する プロファイル リソースでプロファイル定義を管理する ビジネス デスク プロファイル


商品カタログ システム

オンライン カタログのインポート、エクスポート、作成、および管理を行うには、商品カタログ システムを使います。Commerce Server ビジネス マネージャは、ビジネス デスクのカタログ モジュールを使って、商品カタログを作成し、商品データを追加および更新することができます。

ビジネス デスクのユーザーは、商品のカタログを複数のサプライヤなどの異なるソースから集める場合でも、商品データを格納するデータベースに関する専門知識は必要ありません。

ビジネス デスクのカタログ モジュールを使って、次のような作業を行うことができます。

  • 複数の言語および複数の通貨をサポートするカタログを作成する。
  • 拡張マークアップ言語 (XML) 形式またはコンマ区切り値ファイル (CSV) 形式のカタログをインポートまたはエクスポートする。
  • 指定の日付以降にカタログに適用された変更内容をエクスポートする。
  • 複数のカタログからコンテンツを集計する。
  • Microsoft BizTalk Server 2000 以降を使って取引先とカタログを交換する。
  • サイトを訪問するユーザーがカタログから必要なものを見つけられるように、複数の検索機能を適用する。

商品カタログ システムには、次の主要コンポーネントが含まれています。

  • ビジネス デスク カタログ モジュール カタログを構築および管理するには、このモジュールを使います。
  • CatalogManager オブジェクト サイトを開発する場合、商品カタログ システム全体を操作するには、このオブジェクトを使います。このオブジェクトのメソッドとプロパティは、商品カタログ システムに含まれているすべてのカタログに影響します。

    Microsoft Commerce Server 2002 の新しい CatalogManager オブジェクト機能は、結合キーのサポートです。結合キーを使って、外部テーブルにリンクして実行時に在庫データを取得したり、商品に複数の値を関連付けたりします。

  • MSCS_CatalogScratch データベース 商品カタログ システムでは、MSCS_CatalogScratch データベースを使って、一時的なカタログ テーブルが格納されます。
  • CatalogCleanup.vbs スクリプト MSCS_CatalogScratch データベースから一時的なテーブルを削除するには、このスクリプトを使います。CatalogCleanup.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。
  • Updatefulltextcatalogs.vbs スクリプト 1 つのフルテキスト カタログにあるすべての商品カタログのフルテキスト インデックスを更新するには、このスクリプトを使います。Updatefulltextcatalog.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。
  • UpdateLanguageInfo.vbs スクリプト CatalogLanguageMap テーブルを設定するには、このスクリプトを使います。言語に依存しないテーブルでは、フルテキスト インデックス化された列ごとに単語区切りを構成する。

次の表は、カタログの詳細について説明している主な Commerce Server ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | カタログの概念 カタログに関するヒント集
プログラミング | Programming Best Practices for Catalogs Example Code for the Microsoft.CommerceServer.Catalog Namespace Example Code for Product Catalog Objects ASP-Based Catalog Sitelet Integrating a Third-Party Product Catalog
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Catalog Microsoft.CommerceServer.Interop.Catalog Product Catalog Objects Catalog XML Structures
カタログのセキュリティ | 商品カタログ データベースにセキュリティを設定する ビジネス デスク セキュリティ
カタログ システムの配置 | カタログ コンテンツを複製する XML カタログ ファイルをインポートする
カタログの作成 カタログ コンテンツの更新 | カタログ定義を作成する 基本カタログを作成する 仮想カタログを作成する 多言語に対応可能なカタログを作成する 基本カタログの商品の価格を設定する


対象化システム

対象化システムは、ビジネス マネージャがコンテンツをビジネス関連の項目や条件に合わせて対象化するための、高性能で柔軟性のあるプラットフォームです。一貫した対象化モデルを採用しているので、1 つの技術でさまざまなビジネス条件を対象化できます。

対象化システムを使って、次の作業を行うことができます。

  • 対象化した商品取引でショッピング体験をパーソナライズする。
  • 同じ業種で競合する複数の顧客向けにキャンペーンを作成し、スケジュールを設定する。競合する広告が同じページに表示されることは決してありません。
  • 広告主が希望する広告要求数、またはクリック数に応じて広告料を請求する。
  • 広告主が希望する広告掲載ページに応じて広告料を請求する。

対象化システムには、次の 5 つの主要機能があります。

  • ビジネス デスク キャンペーン
  • コンテンツ選択フレームワーク
  • 式ビルダ
  • リスト マネージャ
  • Commerce Server ダイレクト メーラー


キャンペーン

Commerce Server ビジネス デスクのキャンペーン モジュールは、式によってプロファイル システムおよび商品カタログ システムと密接に統合されています。式を使うと、ユーザーに合わせて広告を対象化したり、商品に割引を適用することができます。Microsoft Commerce Server 2002 Enterprise Edition では、キャンペーン モジュールがビジネス分析システムとも統合されているので、キャンペーンの成否を分析することも可能です。

次の表は、キャンペーンの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | キャンペーンの概念 広告の概念 割引の概念 Content Selection Framework Concepts
プログラミング | Targeting Samples Example Code Targeting Objects Order Processing Samples Order Queuing Sample ASP.NET-Based Advertising Sitelet ASP-Based Discount Sitelet Extending the Content Selection Framework
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Targeting Microsoft.CommerceServer.Interop.Targeting Targeting Objects Expression XML Structures
キャンペーンのセキュリティ | キャンペーン データベースにセキュリティを設定する ビジネス デスク セキュリティ
キャンペーンの作成 | Commerce Server システムによる成功へのビジネス サイクル B2C サイトのチュートリアル マーケティング キャンペーンを作成する 広告を作成する 割引を作成する キャンペーンを拡張する 割引の例


コンテンツ選択フレームワーク

コンテンツ選択フレームワーク (CSF) は、広告キャンペーンや割引キャンペーンで配信するコンテンツを決定するパイプライン ベースのシステムです。CSF では、1 回の呼び出しで複数のコンテンツを取得できるため、時間が大幅に節約されます。

CSF のアーキテクチャは、配信するコンテンツの選択に使うアルゴリズムをサイト開発者が変更できるオープン スコアリング システムをサポートしています。また、コードのデバッグによって、スコアリング プロセス中に発生するイベントを監視できます。

次の図は、コンテンツ選択フレームワークのコンポーネントを示しています。

次の表は、コンテンツ選択フレームワークの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | Content Selection Framework Concepts
プログラミング | Targeting Samples Example Code Targeting Objects Order Processing Samples ASP.NET-Based Advertising Sitelet Extending the Content Selection Framework
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Targeting Microsoft.CommerceServer.Interop.Targeting Targeting Objects Expression XML Structures
キャンペーンのセキュリティ | キャンペーン データベースにセキュリティを設定する ビジネス デスク セキュリティ
キャンペーンの作成 | Commerce Server システムによる成功へのビジネス サイクル B2C サイトのチュートリアル マーケティング キャンペーンを作成する 広告を作成する 割引を作成する 割引の例


式ビルダ

"式" とは、プロファイルに対して評価される条件で、コンテンツを配信するか、またはその他のアクションを実行するかを決定します。たとえば、user.totalvisit > 100 (ユーザーの訪問回数の合計 > 100 回) という式があるとします。この式の評価結果が True の場合 (つまりユーザーが 101 回以上サイトを訪問している場合)、ユーザーに対して該当するコンテンツが表示されます。

式ビルダは、ビジネス マネージャがユーザーに合わせて対象化したコンテンツを配信する式を構築できるよう、Commerce Server ビジネス デスク モジュールでユーザー インターフェイスを提供しています。式ビルダは、Microsoft Commerce Server データベース内の適切なプロパティにアクセスして式を構築し、構築した式に名前を付け、データベースに格納します。

式ビルダは、サイト開発者が、その機能やユーザー インターフェイスを他のビジネス デスク モジュールに簡単に組み込めるように設計されています。また、式ビルダは、式を使用したり操作する任意の Web アプリケーションから呼び出せるため、他の処理と統合できます。たとえば、既存のコンテンツ管理処理がある場合、式ビルダの機能を組み込んで、ユーザーに合わせてコンテンツを対象化できます。

式ビルダはユーザー インターフェイスに Dynamic Hypertext Markup Language (DHTML) を使うため、アプリケーションのスタイル シートが式ビルダのユーザー インターフェイスに適用され、アプリケーションの外観が一貫したものになります。

次の表は、式ビルダの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | 式に基づく対象化 式ビルダ
プログラミング | Targeting Samples Example Code Targeting Objects ASP.NET-Based Advertising Sitelet Extending the Content Selection Framework
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Targeting Microsoft.CommerceServer.Interop.Targeting Targeting Objects Expression XML Structures ExpressionBuilder ExpressionBuilder Configuration
式のセキュリティ | プロファイル データベースにセキュリティを設定する ビジネス デスク セキュリティ
式の作成 | Commerce Server システムによる成功へのビジネス サイクル B2C サイトのチュートリアル キャンペーン式を作成する


リスト マネージャ

リスト マネージャは、Commerce Server ビジネス デスクのユーザー インターフェイスで利用するサービスです。ユーザー プロファイル リストのインポートとエクスポートを行うには、リスト マネージャを使います。Microsoft Commerce Server 2002 Enterprise Edition では、リスト マネージャがビジネス分析システムと統合されているので、プロファイルのリストを生成するレポートを実行し、そのリストをリスト マネージャにインポートできます。また、セグメント データをリスト マネージャにインポートすることもできます。

ユーザー プロファイルのリストをリスト マネージャにインポートした後、それをユーザー モジュールにエクスポートし、必要に応じてプロファイル情報を更新します。たとえば、対象化に必要な情報を収集するためのプロパティをユーザー プロファイルに追加します。このリストを使って、ダイレクト メール キャンペーンを作成することもできます。

次の表は、リスト マネージャの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | 式に基づく対象化 式ビルダ
プログラミング | Targeting Samples Example Code Targeting Objects ASP.NET-Based Advertising Sitelet Extending the Content Selection Framework
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Targeting Microsoft.CommerceServer.Interop.Targeting Targeting Objects Expression XML Structures ExpressionBuilder ExpressionBuilder Configuration
リスト マネージャのセキュリティ | リスト マネージャのサービス アカウント キャンペーン データベースにセキュリティを設定する ビジネス デスク セキュリティ
リスト マネージャを使った操作 | Commerce Server システムによる成功へのビジネス サイクル B2C サイトのチュートリアル ユーザー レコード リストを管理する


Commerce Server ダイレクト メーラー

ダイレクト メーラーは、多数の受信者のグループ宛に Web ページからパーソナライズされた電子メール メッセージを送信したり、フラット テキスト ファイルからパーソナライズされていないメールを送信する、高速でスケーラブルな Microsoft Windows 2000 ベースのサービスです。ダイレクト メーラーは単体で使い、ダイレクト メール ジョブを直接構成することもできれば、Commerce Server ビジネス デスクのキャンペーン モジュールと統合して使い、ダイレクト メール キャンペーンの成否を追跡することもできます。Microsoft Commerce Server 2002 Enterprise Edition では、電子メールを追跡し、送信されたメッセージとクリックされた (開封された) メッセージを記録することで、ダイレクト メール キャンペーンの成否を分析することも可能です。

ダイレクト メーラー パイプラインは、受信者のリストを処理するために使われます。たとえば、メールで使われるテンプレートを変更する場合には、パイプラインに新しいコンポーネントを追加したり、コンポーネントを基幹業務システムに統合したり、コンポーネントをサード パーティが供給するコンポーネントと交換することができます。

次の表は、ダイレクト メーラーの詳細について説明している主な Commerce Server ヘルプ トピックの一覧です。

参照内容 | 参照先
概念 | ダイレクト メールの概念 Direct Mailer Pipeline
プログラミング リファレンス | Microsoft.CommerceServer.Runtime.Targeting Microsoft.CommerceServer.Interop.Targeting Targeting Objects Expression XML Structures ExpressionBuilder ExpressionBuilder Configuration
ダイレクト メーラーの配置 | Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする ダイレクト メーラー用に SMTP サーバーを構成する
ダイレクト メーラーのセキュリティ | ダイレクト メーラーのサービス アカウント ダイレクト メーラー データベースにセキュリティを設定する ビジネス デスク セキュリティ
ダイレクト メーラーを使った操作 | ダイレクト メーラー チュートリアル ダイレクト メーラーの実行 ダイレクト メールを作成する メーリング リストを作成する


ビジネス処理パイプライン システム

注文、対象化、および商品取引の各処理をカスタマイズするには、ビジネス処理パイプライン システムを使います。パイプラインを使うと、ビジネス プロセスの各ステージを定義し、それぞれをリンクすることができます。

たとえば、注文処理パイプライン (OPP) は、サイトで行われた購入の処理に使われる一連の手順を提供します。注文処理パイプラインの最初のステージでは、カタログ データを格納するデータベースから商品情報を取得します。次のステージでは、注文にユーザーの住所を追加します。パイプラインの各ステージは、作業のカテゴリを表します。各ステージの順序によって、作業を完了する順序が決まります。

Microsoft Commerce Server 2002 には、パイプライン機能が用意されています。これにより、さまざまな注文や割引に柔軟に対応できるようになり、送付方法も管理しやすくなります。また、パイプラインの読み込みや実行も効率的に行えます。これらの機能には、次のものがあります。

  • 通貨の有効桁数処理
  • 複数の発送処理
  • 割引処理
  • パイプラインのプーリング

ビジネス処理パイプライン システムには、次の主要コンポーネントが含まれています。

  • パイプライン Commerce Server には、あらかじめ構成されたカスタマイズ可能なパイプラインがいくつか用意されています。各パイプラインの詳細については、「Working with Pipelines」を参照してください。
  • パイプライン エディタ Commerce Server のパイプラインを作成および編集するには、このアプリケーションを使います。

次の表は、パイプラインの詳細について説明している主な Commerce Server 2002 ヘルプ トピックの一覧です。

参照内容 | 参照先
パイプラインのカスタマイズ | Working with Pipelines Discount Objects Pooled Pipelines パイプラインの概念 Building Pipeline Components Pipeline Objects Pipeline Component Reference
複数通貨注文の処理 | Currency Enhancements Multiple-shipment Shipping Architecture


Commerce Server のアーキテクチャ

Microsoft Commerce Server 2002 は、既存のバックエンド システムと統合された高度な電子商取引アプリケーションを構築するための、充実した拡張性のある基盤を提供します。Commerce Server のアーキテクチャは Component Object Model (COM) に基づいているため、サードパーティのさまざまな統合ソリューションの中から選択することや、ビジネス ニーズに合わせてサイト開発者に Commerce Server のツールをカスタマイズしてもらうことによって、プラットフォームを容易に拡張できます。

Commerce Server 2002 には、ASP.NET プログラミング モデルを拡張した Commerce Server .NET アプリケーション フレームワークが含まれています。開発者はこのフレームワークを使って、ASP.NET コードで Commerce Server のサービスやシステムを実行する、Commerce Server アプリケーションを作成することができます。Commerce Server の機能およびツールは、Visual Studio .NET から入手できます。詳細については、「Commerce Server .NET Application Framework」を参照してください。International Retail サイトについては、「International Retail サイト」を参照してください。

Commerce Server は、Microsoft Active Directory サービスのサポートを含めた、Microsoft Windows 2000 の機能を十分に活用しており、他の .NET Enterprise Servers と組み合わせて使用できるように最適化されています。

ここでは、Commerce Server のアーキテクチャにおける主要なコンポーネントの概要を紹介します。

ここでは、次のトピックについて説明します。

  • リソース、サイト、アプリケーション、および Web サーバー リソース、サイト、アプリケーション、および Web サーバー、およびそれぞれの異なる点について説明します。
  • Commerce Server と IIS IIS と Commerce Server オブジェクトの関係、および Commerce Server に影響するインターネット インフォメーション サービス (IIS) 5.0 のプロパティについて説明します。
  • データベース Commerce Server データベースと、各データベースに格納されるデータについて説明します。
  • ビジネス デスクのアーキテクチャ Commerce Server ビジネス デスクのコンポーネントと、ビジネス デスクのフレームワークについて説明します。
  • Commerce Server と .NET Enterprise Servers 通常、Commerce Server と共に使用される .NET 技術について説明します。


リソース、サイト、アプリケーション、および Web サーバー

Commerce Server には、次の 4 つの主要なコンポーネント グループがあります。

  • リソース Commerce Server サイトのアプリケーションに機能を提供するエンティティ。リソースには、アプリケーションの Web ページからリソースの機能にアクセスするための、1 つ以上の COM オブジェクトがあります。リソースは、グローバル プロパティまたはサイト レベルのプロパティを持つことがありますが、その両方を持つことはありません。
  • サイト Commerce Server Component Object Model (COM) オブジェクトを使用する ASP ベースのアプリケーションの集合、またはプライマリ相互運用機能アセンブリ (PIA) オブジェクトや基本クラス ライブラリ (BCL) オブジェクトを使用する ASP .NET ベースのアプリケーションの集合。これらのアプリケーションは、リソースを使用および変更します。サイトは、サイト内のアプリケーションをグループとして管理するための手段となります。
  • アプリケーション Web サイト。この Web サイトはインターネット インフォメーション サービス (IIS) アプリケーションを論理的に表現したもので、Commerce Server マネージャと IIS の両方のコンソール ツリーに表示されます。IIS のコンソールでは、アプリケーションは Web サイトのホーム ディレクトリ レベルまたはサブディレクトリ レベルで表示されます。
  • Web サーバー Commerce Server では、Web サーバーはインターネット インフォメーション サービス (IIS) 5.0 を実行している物理的なサーバー コンピュータで、IIS Web サイトからプロパティを継承します。Commerce Server は、IIS が実行されていない Web サーバーや、Commerce Server コンポーネントが含まれていない Web サーバーもサポートしています。

これらのコンポーネントを構成および管理するには、Commerce Server マネージャを使います。このツールは、Microsoft 管理コンソール (MMC) によって管理されます。

次の図は、Commerce Server マネージャのコンソールと、Commerce Server コンポーネントの各グループを示しています。

Commerce Server マネージャのコンソールとその構成要素を示す図

関連項目

リソース

サイト

アプリケーション

Web サーバー

Commerce Server と IIS


リソース

リソースは、Commerce Server サイトのアプリケーションに機能を提供します。

リソースは、アプリケーションの Web ページでリソース機能へのアクセスに使われる、1 つ以上の COM オブジェクトで構成されます。リソースには、管理データベースに格納されているプロパティがあります。これらのプロパティは、Commerce Server マネージャを使ってアクセスし、変更できます (また、Config オブジェクトを通じてプログラムから変更できます)。

リソースには、グローバル リソースとサイト リソースの 2 種類があります。サード パーティは、Commerce Server で使用するカスタム グローバル リソースとサイト リソースを開発できます。詳細については、「Integrating Custom Resources」を参照してください。

グローバル リソース

グローバル リソースは、すべてのサイトで使用できます。

グローバル リソースには、Commerce Server のセットアップ時に作成されるものと、Commerce Server サイト パッケージャを使ってサイトをアンパックするときに作成されるものがあります。Commerce Server マネージャの [グローバル リソース] ノードには、グローバル レベルのプロパティを持つリソースのみが表示されます。グローバル リソースを使うサイトはすべて、そのグローバル リソースに割り当てられたプロパティも使います。

次の表は、Commerce Server に用意されているグローバル リソースの一覧と説明を示しています。

グローバル リソース | 説明 | リソースをインストールするプログラム
Direct Mail (ダイレクト メーラー) (Windows 2000 のサービスでもあります) | パーソナライズされたメーリングまたはパーソナライズされていないメーリングを、多数の受信者のグループ宛てに送信します。 | Commerce Server のセットアップ プログラム
Data Warehouse (データ ウェアハウス) | Web ログ ファイル、Commerce Server データベース、およびその他のデータ ソースから Web サイトのデータをインポートして管理します。 | Commerce Server サイト パッケージャ
CS Authentication (CS 認証) | Commerce Server サイトの認証と識別の方法を構成します。 | Commerce Server サイト パッケージャ
Profiles (プロファイル) | プロファイル データを格納するデータ ソースを作成し、プロファイル定義とプロパティの作成と格納を行います。 | Commerce Server サイト パッケージャ

サイト リソース

サイト リソースは、特定のサイトに機能を提供します。

Commerce Server マネージャでは、サイトの下にグローバル リソース ポインタとサイト リソースが表示されます。サイト リソースのプロパティはサイト レベルで設定します。グローバル リソース ポインタは、グローバル レベルでグローバル リソースを指すように設定します。

リソースは、そのすべてのプロパティをサイト レベルまたはグローバル レベルにすることができます。ただし、両方のレベルのプロパティを持つことはできません。

次の表は、Commerce Server に用意されているサイト リソースの説明の一覧です。

サイト リソース | 説明
アプリケーション既定の構成 | 通貨のロケールと記号、請求と支払いのオプション、プライバシーのオプション、重量の測定単位、BizTalk Server との統合のオプションなど、サイトを構成するためのプロパティを格納します。
ビジネス デスク アクセス許可 | ビジネス デスクのユーザー インターフェイスにセキュリティを設定するために使われるセキュリティ識別子や定義などのデータを格納するデータベースに接続します。
キャンペーン | キャンペーン (広告、割引、およびダイレクト メール) に関するデータを格納するデータベースに接続します。
商品カタログ | カタログ スキーマと商品データを格納するデータベースに接続します。
トランザクション | バスケットと注文のデータを格納するデータベースに接続します。
トランザクション構成 | 送付方法、税率、都道府県/州コード、および注文状況コードのデータを格納するデータベースに接続します。

サイト間でリソースを共有する

次の表は、各リソースについて、複数のサイト間で共有できるかどうかを示しています。

リソース | 共有の可能性
アプリケーション既定の構成 | 不可
ビジネス デスク アクセス許可 | 不可
キャンペーン | 不可
CS 認証 | 可
データ ウェアハウス | 可
ダイレクト メーラー | 可
予測 | 可
商品カタログ | 不可
プロファイル | 可
トランザクション | 不可
トランザクション構成 | 不可

関連項目

Commerce リソースの管理

Integrating Custom Resources

Integrating a Custom Snap-in Extension

サイトの配置

複数のサイトと 1 つのデータ ウェアハウス


サイト

サイトとは、Commerce Server Component Object Model (COM) オブジェクトを使用する ASP ベースのアプリケーションの集合、またはプライマリ相互運用機能アセンブリ (PIA) オブジェクトや基本クラス ライブラリ (BCL) オブジェクトを使用する ASP .NET ベースのアプリケーションの集合です。サイトは、リソースを使用および変更します。サイトは、サイト内のアプリケーションをグループとして管理するための手段となります。

サイトには、通常、少なくとも 2 つのアプリケーションがあります。1 つはユーザーがオンライン ストアを表示するためのアプリケーションで、もう 1 つはビジネス マネージャが Commerce Server ビジネス デスクにアクセスするために使用するアプリケーションです。また、サイトには、その他のアプリケーションが含まれることもあります。たとえば、1 つのサイトには www.alpineskihouse.com、www.alpineskihouse.com/equipment、www.alpineskihouse.com/clothing、www.alpineskihouse.com/BusinessDesk などが含まれます。これらのアプリケーションはすべて、複数のサーバーに分散できます。

サイトでは、グローバル リソース (複数のサイトで共有されるリソース) と、サイト リソース (特定のサイト用として明示的に定義されるリソース) の両方を使用できます。

Commerce Server マネージャのサイト ノードから、サイトをパッケージ化したり、リソースの追加と削除を行うことができます。

関連項目

Commerce サイトの管理

サイトの配置

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


アプリケーション

Commerce Server 2002 のアプリケーションは Web サイトです。この Web サイトはインターネット インフォメーション サービス (IIS) 5.0 アプリケーションを論理的に表現したもので、Commerce Server マネージャと IIS の両方のコンソール ツリーに表示されます。IIS のコンソールでは、アプリケーションは Web サイトのホーム ディレクトリ レベルまたはサブディレクトリ レベルで表示されます。

アプリケーションは、Web クライアントがアクセスする Web アドレスを表しています。Commerce Server にアプリケーションを追加すると、そのアプリケーションの構成データを使って、管理データベースが更新されます。アプリケーションに Web サーバーを追加すると、Web サーバー コンピュータに Active Server Pages (ASP) ファイルがインストールされます。

Commerce Server サイトをアンパックすると、通常、2 つのアプリケーションがインストールされます。1 つは商品の参照と購入のためにユーザーがアクセスする Web サイト用のアプリケーションで、もう 1 つはそのサイトの管理に使用される Commerce Server ビジネス デスク用のアプリケーションです。アプリケーションが使用できるのは、そのアプリケーションが属するサイトのリソースだけです。

アプリケーションにはそれぞれ独自の Web サーバーがあり、Web サーバーは Web サイト用の ASP ページのコンテンツを提供します。アプリケーションには、少なくとも 1 つの Web サーバーが必ず含まれます。複数の Web サーバーが含まれることもあります。サイトは、IIS Web サイトのルート レベル、またはルートの下の任意レベルの仮想ディレクトリに設定できます。

IIS のコンソールと Commerce Server マネージャのコンソールからは、次の機能を実行できます。

  • IIS スナップインのアプリケーション ノードからは、仮想ディレクトリ レベルにあるすべてのプロパティを設定できます。たとえば、仮想ディレクトリのプロパティ、既定の文書、ディレクトリのセキュリティ、ハイパーテキスト転送プロトコル (HTTP) ヘッダー、カスタム エラーなどを設定できます。また、Microsoft FrontPage Server Extensions を構成したり、アプリケーションの名前の変更や削除を行うこともできます。
  • Commerce Server マネージャのアプリケーション ノードからは、保護なしのホスト名の設定、保護付きのホスト名の設定、IIS アプリケーション パスの設定、HTTPS の有効化、自動 cookie の有効化、認証フィルタの有効化、およびアプリケーションに含まれるすべての Web サーバーに共通した設定の構成を行うことができます。

IIS から Commerce Server に継承されるプロパティの詳細については、「Commerce Server と IIS」を参照してください。

関連項目

Commerce アプリケーションと Web サーバーの管理

サイトの配置

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


Web サーバー

Commerce Server では、インターネット インフォメーション サービス (IIS) 5.0 がインストールされているコンピュータを Web サーバーと呼びます。Commerce Server 2002 で Web サーバーを使うには、IIS と同じコンピュータに Commerce Server をインストールする必要があります。

Commerce Server では、1 つの Web サーバーを 1 つまたは複数のアプリケーションと関連付けることができます。したがって、複数のアプリケーションで同じ Web サーバーを共有することが可能です。Web サーバーには、アプリケーション用の ASP ファイルとサブフォルダがあります。1 つのアプリケーションに複数の Web サーバーが含まれ、まとまって Web ファームを形成する場合もあります。

次の図は、IIS のコンソール ツリーおよび Commerce Server マネージャのコンソール ツリーに表示されるオブジェクトと、各オブジェクト間の関係を示しています。

IIS および Commerce Server マネージャのコンソール上のオブジェクトを示す図

Web サーバーに ASP ファイルを追加するには、Commerce Server サイト パッケージャを使って、その Web サーバーをアンパックします。アンパックが完了すると、Commerce Web サーバー オブジェクトはアプリケーションに追加されます。Commerce Server マネージャでは、Web サーバー オブジェクトは関連付けられたアプリケーションの下に公開されます。

Web サーバー オブジェクトには、データ ウェアハウスにログ ファイルをインポートするために必要なプロパティが含まれています。

次の表は、Commerce Server マネージャの Web サーバー ノードから表示または変更できるプロパティの一覧です。操作方法については、「Web Server を構成する」を参照してください。

プロパティ | 説明
[サーバー名] | Web サーバーがインストールされているコンピュータの名前です。サーバー名を変更した場合にだけ、この値を変更してください。
[ID] | このボックスには、Web サーバーについて、インターネット プロトコル (IP) アドレス、TCP ポート、ホスト ヘッダー名が表示されます。これらの値は、最初は IIS から読み込まれます。
[SSL ID] | このボックスには、Web サーバーの IP アドレスと SSL ポートが表示されます。これらの値は、最初は IIS から読み込まれます。
[新しいログ期間] | IIS Web サイトが、ログ ファイルへの書き込みを始めてから新しいログ ファイルを作成するまでの間隔を指定します。この値は、最初は IIS から読み込まれます。
[ログ ファイル マスク] | 必要に応じて、独自の交換を指定します。ログ ファイルの交換とは、IIS Web サイトが、ログ ファイルを書き込み始めてから新しいログ ファイルを作成するまでの間隔を示します。このボックスでの指定例など、詳細については「Web サーバーのログ ファイル マスクを指定する」を参照してください。
[ログ ファイルのディレクトリ] | C:\Winnt\System32\LogFiles\W3SVC など、IIS Web サイトがイベントを記録するログ ファイルのパスです。この値は、最初は IIS から読み込まれます。ただし、Web のログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、Web サーバー ログ インポート データ変換サービス (DTS) タスクを実行する前に、ここでディレクトリを指定しておいてください。
[ログ ファイルのコード ページ] | このボックスには、ログ ファイルのコード ページが表示されます。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。
[URL エンコーディングのコード ページ] | このボックスには、すべての URL で使われるコード ページが表示されます。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。

Web サーバーを追加すると、これらのプロパティが IIS 5.0 から Commerce Server 管理データベースに自動的に読み込まれます。

複数のアプリケーションで 1 つの Web サーバーを共有できます。各アプリケーションには一意の URL があり、一意の URL は 1 つの IIS Web サイトで利用できます。たとえば、www.microsoft.com と www.microsoft.com/commerceserver は、同じ IIS Web サイトで利用できます。

Web ファームを実行している場合は、Web サーバーを複製する必要があります。Microsoft Application Center 2000 またはその他の製品を使って、コンテンツ レプリケーションを実行することをお勧めします。

Commerce 以外の Web サーバー

IIS を実行する Web サーバーのサポートに加え、Commerce Sever では、IIS を実行していない Web サーバーおよび Commerce Server コンポーネントを含んでいない Web サーバーもサポートされます。Commerce 以外の Web サーバーをサポートすることによって、Web サーバーのログ ファイルをデータ ウェアハウスにインポートできるようにしています。

Commerce Server には、データ ウェアハウス構成ウィザードが用意されています。このウィザードを使うと、Commerce 以外のアプリケーションと Web サーバーを Commerce Server のデータ ウェアハウスと共に利用できるように、簡単に構成することができます。詳細については、「サイトに Commerce 以外のアプリケーションを追加する」および「アプリケーションに Commerce 以外の Web サーバーを追加する」を参照してください。

関連項目

Web サーバーを構成する

Commerce Server と IIS

サイトの配置

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


Commerce Server と IIS

Microsoft Commerce Server 2002 の日常的な管理を担当しているシステム管理者は、一般的に Microsoft インターネット インフォメーション サービス (IIS) 5.0 の管理も担当します。

Commerce Server は IIS 上で動作しますが、IIS オブジェクトと Commerce Server オブジェクトが厳密な階層を形成しているわけではありません。Commerce Server サイトに影響を与えるプロパティには、次のようなものがあります。

  • IIS レベルでのみ設定されるプロパティ
  • IIS から独立した、Commerce Server でのみ設定されるプロパティ
  • IIS から継承されるプロパティ
  • Web サイトのアクセス許可とセキュリティ、パフォーマンス、ディレクトリとパス、Web サイト名の識別、および IP アドレスとポート番号の管理には、IIS スナップインを使います。

Commerce Server マネージャでは、次の作業を行います。

  • Commerce Server のグローバル リソースとサイト リソースの管理、Commerce Server 固有のプロパティの設定、リソースのデータベース接続文字列の設定、およびアプリケーションへの Web サーバーの追加と削除。
  • Commerce Server のアプリケーション レベルでは、IIS アプリケーション パス、IIS Web サイト、保護なしのホスト名、保護付きのホスト名、IP ポート、および保護付きの IP ポートを指定できます。また、プロパティを設定することで、HTTPS の有効化、自動 cookie の有効化、および認証フィルタの選択を行うことができます。これらのプロパティは、アプリケーションが使用するすべての Web サーバーに適用されます。

    Commerce Server でポートのプロパティを変更した場合、その変更は自動では IIS に反映されません。ポートのプロパティのうち、IIS で実際に使用されるプロパティを次に示します。

    アプリケーション レベルで使用されるプロパティ

    • 伝送制御プロトコル (TCP) ポート
    • Secure Sockets Layer (SSL) ポート

    各 Web サーバーで使用されるプロパティ

    • IP (インターネット プロトコル) アドレス
    • ログ ファイル パス
    • ログ ファイル出力期間

    IIS でポートのプロパティを変更する場合は、Commerce Server でも同じプロパティを変更する必要があります。

    Web サーバーのプロパティは IIS から継承されます。継承されたプロパティは、簡単にアクセスできるように管理データベースに格納されます。IIS 側のプロパティを変更する場合は、手動で新しい値を更新するか、または [<アプリケーション名> のプロパティ] ダイアログ ボックスの [Web サーバー] タブの [値の同期] をクリックして、管理データベースを同期させる必要があります。詳細については、「アプリケーションを構成する」を参照してください。

    [値の同期] をクリックすると、アプリケーション レベルのプロパティと、そのアプリケーションの下にあるすべての Web サーバー オブジェクトのプロパティとの同期が取られます。具体的には、アプリケーション レベルのプロパティ (TCP ポートと SSL ポート) に、最初の Web サーバーの対応するプロパティの値が読み込まれます。これには、すべての Web サーバーがまったく同一に構成されていることが前提となります。構成が異なると、Web ファームは正常に機能しません。

  • Commerce Server の Web サーバー レベルでは、IP アドレスやログ ファイル出力期間に関するプロパティを表示したり変更することができます。

関連項目

Commerce Server の管理

サイトに非 Commerce のアプリケーションを追加する

サイトの配置

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


IIS に対する Commerce Server の依存関係

ここでは、サードパーティのツール (ファイアウォールでのコンテンツ フィルタなど) を使う場合に、最低限有効にする必要があるインターネット インフォメーション サービスの機能について説明します。

Commerce Server に必要な IIS の機能は、次のとおりです。

  • サービス :
    • HTTP。
    • SMTP。ダイレクト メーラーは SMTP メール サーバーにアクセスする必要があります。顧客の Web サイトには、注文の確認メールを送信するコードが含まれていることがあります。この場合、顧客の Web サイトは SMTP メール サーバーにアクセスする必要があります。この SMTP サーバーは、IIS が提供する SMTP サーバーである場合と、そうでない場合があります。どちらを使うかは、顧客が選択します。

    Commerce Server では、FTP と NNTP は必要ありません。

  • HTTP 動詞 : GET、POST、PUT。
  • IIS で利用できるようにする必要があるファイル拡張子 : ASP、HTM、GIF、JPG、HTA、HTC、XML、XSL、CSV、CAB、TXT、CSS、CHM、HHC、HHK、JS、VBS、および EXE。

    JS と VBS はクライアントにダウンロードされます。サーバー上では実行されません。Commerce Server では、OWC10.exe (Office Web Controls version 10) をクライアントのブラウザにダウンロードできます。サーバー上では実行されません。

  • HTTP ヘッダー : Translate:、IF:、Lock-Token:。

    Commerce Server は、WebDAV を使って、カタログ インポート ファイル (ファイル拡張子は XML または CSV) を取り込みます。

  • 既定の Web サイトにインストールされる仮想ディレクトリ : なし。

    Commerce Server は、IISSamples、MSADC、または Scripts に依存しません。

  • IUSR アカウントと IWAM アカウントは、System32 ディレクトリおよびその親ディレクトリに対する "フォルダの一覧/ファイルの実行" アクセス許可の拒否 ACE を持つことはできません。

    既定では、Commerce Server の DLL は \Program Files\Microsoft Commerce Server 2002 ディレクトリに配置されます。インストール時にインストール パスを変更することはできますが、Commerce Server には Visual Studio .NET Framework の DLL が必要です。次のものも必要です。

    • C:\WINNT\System32\Assembly にあるグローバル アセンブリ キャッシュ (GAC)
    • C:\WINNT\System32\Microsoft.NET\* に格納されているシステム ポリシーのデータ
  • IUSR アカウントと IWAM アカウントには、Web コンテンツ ディレクトリに対する書き込み禁止 ACL を設定しないでください。

    Commerce Server には、カタログ ファイルの更新 (ファイル拡張子は XML または CSV) を受け取るために、サイトのビジネス デスク仮想ルートの下の商品カタログ ディレクトリへの書き込みアクセス権が必要です。仮想ルートの名前は、ユーザーが定義します。


データベース

次の表は、Commerce Server サイトでよく使用されるデータベースの一覧です。実際のデータベースの数は、サイトで選択した機能と設定によって増減します。

これらのデータベースの接続文字列は、セットアップ時とアンパック処理時に指定します。ただし、接続文字列は Commerce Server マネージャを使って変更できます。

データベースと名前 | 説明
Commerce Server <サイト名>_commerce | カタログ、キャンペーン、トランザクション、プロファイル、およびイベントのデータです。
管理 MSCS_Admin | Commerce Server で使用される構成データです。
データ ウェアハウス <サイト名>_dw | ユーザー プロファイル データ、トランザクション データ、クリック履歴データなど、サイトを訪問するユーザーに関する日々の操作データです。このデータは、Commerce Server のデータ変換サービス (DTS) タスクを使って、Web ログ ファイルや Commerce Server データベースからインポートされます。
ダイレクト メーラー DirectMailer | メーリング リスト、メッセージ、およびイベントのデータです。

ここでは、次のトピックについて説明します。

  • Commerce Server データベースの関連付け
  • Commerce Server データベースの接続文字列
  • 接続文字列、サイト パッケージャ、および管理オブジェクト
  • OLE DB Provider の接続プーリング
  • 管理データベース テーブル
  • 分析/レポート データベース テーブル
  • データ ウェアハウス データベース テーブル
  • ダイレクト メーラー データベース
  • キャンペーン データベース テーブル
  • カタログ データベースのコンポーネント
  • MSCS_CatalogScratch データベース
  • プロファイル データベース テーブル
  • トランザクション データベース テーブル
  • トランザクション構成データベース テーブル


Commerce Server データベースの関連付け

SQL Server で Commerce Server データベースのダイアグラムを表示するには、次の操作を行います。

Commerce Server データベースのダイアグラムを表示するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、目的のデータベースがインストールされているサーバーを展開し、[データベース] を展開し、目的のデータベースを展開します。
  2. [ダイアグラム] を右クリックし、[新規データベース ダイアグラム] をクリックします。

    データベース ダイアグラム作成ウィザードが起動します。

  3. [追加するテーブルの選択] ダイアログ ボックスの [関連テーブルを自動的に追加] チェック ボックスをオンにし、[次へ] をクリックします。
  4. [終了] をクリックします。

データベース ダイアグラム作成ウィザードによって、関連付けが描画されます。

関連項目

Copyright © 1996–2002 Microsoft Corporation.
All rights reserved.


Commerce Server データベースの接続文字列

ログイン ユーザー名とパスワードを含む Commerce Server の接続文字列は、管理データベースに格納されます。

注

  • Commerce Server の接続文字列には、すべて Microsoft SQL Server のセキュリティが使用されます。ただし、データ ウェアハウス リソースからオンライン分析処理 (OLAP) サーバー データベースに接続するための接続文字列については、Microsoft Windows NT 認証のみがサポートされています。

Commerce Server は、次のデータベースの接続文字列を使います。

  • 管理データベースとダイレクト メーラー データベース 管理データベースおよびダイレクト メーラー データベースのログイン ユーザー名とパスワードは、セットアップ中に入力します。これらの情報は、Commerce Server マネージャを使って後で変更できます。
  • リソースが使用するデータベース Commerce Server サイト パッケージャを使ったサイトのアンパックでは、いくつかのリソースについて、適切なデータベースへの接続文字列の入力を求められます。次の表は、各リソースの接続文字列の一覧です。
    リソース | 接続文字列
    商品カタログ | Catalog データベース
    キャンペーン | Campaigns データベース
    トランザクション | Transactions データベース
    トランザクションの構成 | Transactions Config データベース
    プロファイル | s_BizDataStoreConnectionString、s_CommerceProviderConnectionString、s_ProfileServiceConnectionString
    データ ウェアハウス | データ ウェアハウスには独自の拡張スナップインがあるため、接続文字列はユーザー インターフェイス上では名前が付いていません。
  • その他のデータベース次のような場合も接続文字列を指定します。
    機能 | 接続文字列
    リスト マネージャ : リストのインポートおよびエクスポート | Commerce Server ビジネス デスクのリスト マネージャ モジュールで、インポートまたはエクスポートする SQL Server データベース テーブルへの接続文字列を設定します。
    Migration ProfileBuilder ツール | Migration ProfileBuilder ツールを修正した後、Commerce Server プロファイル データ ストアのデータ ソース名 (DSN) を作成します。
    プロファイル リソース : データ ソースの追加 | [データ ソースの選択] ダイアログ ボックスを使って、データ ソースのパーティションをマップするデータベースへの接続文字列を入力します。パーティションを Lightweight Directory Access Protocol (LDAP) ソースにマップする場合は、[LDAP 接続文字列] ダイアログ ボックスを使用します。

データベースへの接続文字列を変更する必要がある場合は、Commerce Server マネージャを使用します。

関連項目

データベースの接続文字列を変更する

OLE DB Connection Strings for the Data Warehouse

OLE DB Connection Strings for the Profiling System

Code to Connect to the Expression Store

Code to Connect to the Profile Store


接続文字列、サイト パッケージャ、および管理オブジェクト

サイト パッケージャは、接続文字列名の先頭に付く connstr_db に基づいて、プロパティが接続文字列かどうかを判断します。

管理オブジェクトは、MSCS_Admin データベースの ExtendedProps テーブルにある f_IsConnStr フラグに基づいて、プロパティが接続文字列かどうかを判断します。

Connstr_db

アンパック処理中に、サイト パッケージャは、先頭に connstr_db が付いているプロパティ名を読み取ると、このプロパティにデータを入力します。

サイト パッケージャを標準モードで実行すると、データはすべて既定値に設定され、アンパック処理中に値を変更することはできません。サイト パッケージャをカスタム モードで実行すると、このプロパティがその他の接続文字列と共に表示され、値を変更することができます。

サイト パッケージャによって接続文字列にデータを入力する必要がある場合に、プロパティ名の先頭に connstr_db を付けます。そうでない場合は、プロパティ名の先頭に別の文字列を付けます。サイト パッケージャは、この識別手段だけで、プロパティが接続文字列かどうかを判断します。

f_IsConnStr フラグ

管理オブジェクトは、MSCS_Admin データベースの ExtendedProps テーブルにある f_IsConnStr フラグに基づいて、プロパティが接続文字列かどうかを判断します。サイト パッケージャは、サイトをパックするときに、リソースに関するすべての構成データをテキスト ファイルにエクスポートして、パッケージ内に配置します。これは、接続文字列に関して、セキュリティ上の問題になります。接続文字列にはユーザー名とパスワードが含まれているためです。f_IsConnStr が 1 (True) に設定されている場合、管理オブジェクトのエクスポート機能は接続文字列の値を書き出しません。これにより、ユーザー名とパスワードの機密性が保持されます。

構成データは、複合ファイル内の名前付きストリームでパッケージに格納されるため、公開されているドメイン ツールを使って簡単に表示できます。


OLE DB Provider の接続プーリング

Visual Basic や ActiveX Data Objects (ADO) などのアプリケーションによって SQL Server への接続が開始されると、OLE DB Provider for Commerce Server は、良好なパフォーマンスを得るために、接続のプールを開き、接続を初期化します。ただし、一部の接続は初期化段階ではアクティブになりません。接続オブジェクトが作成され、空キューに配置されます。OLE DB Provider for Commerce Server は接続要求を受け取ると、アイドル キューに接続オブジェクトがあるかどうかを確認します。ない場合は、空キューから接続オブジェクトを取得し、それを使って SQL Server に接続します。


管理データベース テーブル

Commerce Server に用意されている Commerce Server 2002 のリソースに関する構成データは、MSCS_Admin という名前の Microsoft SQL Server データベースに格納されます。このデータベースには 7 つのテーブルがあります。これらのテーブルは、このデータベース内で、カスタム リソースに関連付けられた構成データを保守する方法を理解する上で重要なものです。また、これらのテーブルは、Commerce Server マネージャを通じて表示され、Commerce Server サイト パッケージャを使って配置されます。

次のトピックでは、これらのテーブルの詳細について説明します。管理データベースにセキュリティを設定する方法の詳細については、「管理データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは特に重要なものであるため、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 | 説明
ExtendedProps | リソース プロパティの特性 (リソース プロパティのスキーマ) が格納されます。
PupDBScripts | GenericPuP オブジェクトを使うように構成する場合に必要です。
ResourceProps | ExtendedProps テーブルに定義されているリソース プロパティの実際の値が格納されます。
Resources | SystemProps テーブルに定義されているリソースの実際のインスタンスが定義されます。
SiteResources | サイトにインストールされているすべてのリソースに対する検索機能として使われます。
Sites | サイトに関するデータを取得するときの開始点となります。
SystemProps | リソースに関する特性 (リソース スキーマ) が格納されます。

リソース プロパティの値を取得するプロセスは、複数の段階に分かれています。最初に、Sites テーブル内のサイト名を検索します。Sites テーブル、SiteResources テーブル、Resources テーブルの順に検索された後、リソース プロパティの実際の値が格納されている ResourceProps テーブルが検索されます。

これらのテーブルにアクセスし、値の取得および新しい値の設定を行うには、次の表に示す管理オブジェクトを使います。

オブジェクト | 説明
GlobalConfig | グローバル リソースを管理するためのメソッドが提供されます。
SiteConfig | サイト リソースを管理するためのメソッドが提供されます。
SiteConfigReadOnly | グローバル リソースとサイト リソースのプロパティ値を高速に取得するためのメソッドが提供されます。

関連項目

管理データベースにセキュリティを設定する


ExtendedProps テーブル

ExtendedProps テーブルには、リソース プロパティの特性が格納されます。SystemProps テーブルと共に、このテーブルには、管理データベースのスキーマが定義されます。

次の表は、ExtendedProps テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
s_ResourceType
 このテーブル内の関連付けられたリソース プロパティを使って SystemProps テーブルの単一行をマップするときに使われる文字列です。この単一行は、単一のリソースの種類を表します。SystemProps テーブル内の対応する列の名前も s_ResourceType です。
s_PropertyName
 プロパティの内部名として機能する任意の文字列に設定され、プログラムによってプロパティにアクセスするときに、GlobalConfig オブジェクト、SiteConfig オブジェクト、および SiteConfigReadOnly オブジェクトで使われます。

通常、この内部名はわかりやすい名前が付けられ、プロパティのデータ型を示す 1 文字とアンダースコアで始まります。たとえば、"i_AuctionOptions" は、Integer データ型であることを示します。

f_IsConnStr
 "1" に設定されている場合は、プロパティが OLE DB 接続文字列であることを示します。"1" に設定されている場合、Commerce Server マネージャは [Universal Data Link (UDL)] ダイアログ ボックスを使って、その接続文字列の値を設定し、Commerce Server サイト パッケージャはアンパック時に特定のデータベースに関する接続情報の入力を要求します。

このフラグの詳細、および接続文字列の構成値との関連付けについては、「ResourceProps テーブル」の注を参照してください。

f_IsHidden
 "1" に設定されている場合は、[Generic Resource] ダイアログ ボックスにプロパティが表示されません。MMC のカスタム スナップインで使われるプロパティについては、このフラグを "1" に設定してください。
f_IsSimpleList
 "1" に設定されている場合は、新しいプロパティが SimpleList オブジェクトであることを示します。この機能を使うと、複数の値を持つプロパティを格納できます。
s_Description
 [Generic Resource] ダイアログ ボックスに表示される説明用の任意の文字列です。
i_Vartype
 Variant 型のデータとして格納される整数です。たとえば、8 は 1 つの文字列を示し、8200 は配列の文字列を示します。SafeArray、IUnknown、および IDispatch を除くすべての Variant 型を使うことができます。
s_Value
 このリソース プロパティの既定値です (存在する場合)。
s_DisplayName
 プロパティのわかりやすい表示名です。これは、[Generic Resource] ダイアログ ボックスに表示されます。

関連項目

管理データベースにセキュリティを設定する


PupDBScripts テーブル

PupDBScripts テーブルは、GenericPuP オブジェクトを使うように構成する場合に必要です。

次の表は、PupDBScript テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_SiteID
 特定のサイトに関連付けられた特定のリソースを識別する整数です。

この列は、SiteResources テーブルと Sites テーブルの i_SiteID 列に対応しています。

i_ResourceID
 この GenericPuP オブジェクトのエントリに関連付けられたリソースを識別する整数です。この列の値は、ResourceProps テーブル、Resources テーブル、および SiteResources テーブルの i_ResourceID 列の値に対応しています。
u_scriptname
 この GenericPuP オブジェクトのエントリに関連付けられたスクリプトの名前です。この名前は、Resources テーブルの s_PupParam2 列または s_PupParam3 列にコンマ区切りのリストで表示されます。
txt_script
 この GenericPuP オブジェクトのエントリに関連付けられた SQL スクリプトです (存在する場合)。この列のスクリプトのエントリを管理するには、SiteConfig オブジェクトの GetSQLScript メソッド、PutSQLScript メソッド、および DeleteSQLScript メソッドを使います。詳細については、「SiteConfig Object」を参照してください。

関連項目

管理データベースにセキュリティを設定する


ResourceProps テーブル

ResourceProps テーブルには、リソース プロパティの実際の値が格納されます。Resources テーブル、SiteResources テーブル、および Sites テーブルと共に、このテーブルには、管理データベースのデータが格納されます。

次の表は、ResourceProps テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_ResourceID
 このプロパティに関連付けられたリソースを識別する整数です。この列の値は、PupDBScript テーブル、Resources テーブル、および SiteResources テーブルの i_ResourceID 列の値に対応しています。
s_PropertyName
 プロパティの内部名として機能する任意の文字列に設定され、プログラムによってプロパティにアクセスするときに、GlobalConfig オブジェクト、SiteConfig オブジェクト、および SiteConfigReadOnly オブジェクトで使われます。

通常、この内部名はわかりやすい名前が付けられ、プロパティのデータ型を示す 1 文字とアンダースコアで始まります。たとえば、"i_AuctionOptions" は、Integer データ型であることを示します。

f_IsConnStr
 "1" に設定されている場合は、プロパティが OLE DB 接続文字列であることを示します。"1" に設定されている場合、Commerce Server マネージャは [Universal Data Link (UDL)] ダイアログ ボックスを使って、その接続文字列の値を設定し、Commerce Server サイト パッケージャはアンパック時に特定のデータベースに関する接続情報の入力を要求します。

このフラグの詳細、および接続文字列の構成値との関連付けについては、下記の注を参照してください。

f_IsHidden
 "1" に設定されている場合は、[Generic Resource] ダイアログ ボックスにプロパティが表示されません。MMC のカスタム スナップインで使われるプロパティについては、このフラグを "1" に設定してください。
f_IsSimpleList
 "1" に設定されている場合は、新しいプロパティが SimpleList オブジェクトであることを示します。この機能を使うと、複数の値を持つプロパティを格納できます。
s_Description
 この列は使用されていません。
i_Vartype
 Variant 型のデータとして格納される整数です。たとえば、8 は 1 つの文字列を示し、8200 は配列の文字列を示します。SafeArray、IUnknown、および IDispatch を除くすべての Variant 型を使うことができます。
s_Value
 プロパティの値です。
s_DisplayName
 プロパティのわかりやすい表示名です。これは、[Generic Resource] ダイアログ ボックスに表示されます。

注

  • Commerce Server サイト パッケージャは、"connstr_db" で始まる名前のリソース プロパティに対して特殊な処理を行います。これらのプロパティに関連付けられた値はパッケージ化されますが、アンパック時には、パッケージ化された値は無視され、接続文字列の既定値が設定されます。標準モードでアンパックすると、これらの既定値がそのまま自動的に使われます。カスタム モードでアンパックすると、既定値が表示され、変更できるようになります。パッケージ化された値はアンパック時に無視されますが、これらの接続文字列はクリア テキストにパッケージ化されます。このため、接続文字列に対するセキュリティ リスクが生じます。
  • 接続文字列の値をパッケージ化すると、パスワードなどの値がクリア テキストとしてサイト パッケージに格納されるため、潜在的なセキュリティ リスクとなります。このセキュリティ リスクを回避するために、次の機能が開発されました。

    f_connstr 属性を使うことで、接続文字列の値 (機密扱いの構成プロパティである可能性があるもの) をパッケージ化しないようにすることができます。この属性が 1 に設定されている場合は、関連付けられたプロパティ値はパッケージ化されません。

  • ユーザー操作を介さずに接続文字列のパッケージ化およびアンパックを行う場合、潜在的なセキュリティ リスクになると思われるときは、接続文字列のプロパティに "connstr_db" で始まる名前を付けること、および、関連付けられた f_connstr 属性を 1 に設定することは行わないでください。代わりに、IPuP インターフェイスを実装する Component Object Model (COM) オブジェクトを作成し、それを使って接続文字列のパッケージ化およびアンパックを処理することができます。

関連項目

管理データベースにセキュリティを設定する


Resources テーブル

Resources テーブルには、リソースの実際のインスタンスが定義されます。ResourceProps テーブル、SiteResources テーブル、および Sites テーブルと共に、このテーブルには、管理データベースのデータが格納されます。

Resources テーブルのエントリと ResourceProps テーブルのエントリとの間には、一対多の関連付けがあります。

次の表は、Resources テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_ResourceID
 このテーブル内のリソースを識別する整数です。この列の値は、PupDBScript テーブル、ResourceProps テーブル、および SiteResources テーブルの i_ResourceID 列の値に対応しています。
s_DisplayName
 リソースのプログラム上の定義名を格納する文字列です。これは、GlobalConfig オブジェクト、SiteConfig オブジェクト、および SiteConfigReadOnly オブジェクトの Fields プロパティを通じてリソースにアクセスするときに使われます。詳細については、それぞれ「GlobalConfig.Fields」、「SiteConfig.Fields」、および「SiteConfigReadOnly.Fields」を参照してください。
s_Description
 わかりやすいリソース名を格納する文字列です。
s_Type
 このリソースの種類を示す文字列です。この列は、SystemProps テーブルと ExtendedProps テーブルの s_ResourceType 列にマップします。
f_IsGlobal
 リソースがグローバル リソース (1) であるかサイト リソース (0) であるかを示すフラグです。
f_ResourceFlags
 この列の値は、リソースの複数のブール値特性に関する情報を格納するビット フィールドです。Commerce Server マネージャと Commerce Server サイト パッケージャは、これらの特性を調べて、各リソースの処理方法を判断します。ビットは次のように定義されています。
  • 0x00000001 – この行がグローバル リソースへの参照である場合に設定します。

    定数 : IS_REFTOGROUPRES

  • 0x00000002 – このリソースを MMC で表示できるようにする場合に設定します。

    定数 : IS_SNAPINITEM

  • 0x00000004 – このリソースに独自のスナップインがある場合に設定します。このビットが設定されている場合は、拡張スナップインのプログラム ID を s_ProgIDSnapIn 列に格納する必要があります。

    定数 : IS_SNAPINAVAILABLE

  • 0x00000008 – このリソースがサイト内のアプリケーションである場合に設定します。外部のアプリケーションには使われません。

    定数 : IS_ADDRESS

  • 0x00000010 – このリソースが物理リソースである場合に設定します。この設定は削除機能に影響します。設定しない場合は、最初のグローバル リソースへの参照になります。カスタム モードでアンパックするときは、既存のグローバル リソースを選択する必要があります。IS_REFTOGROUPRES と組み合わせて使われます。

    定数 : IS_PHYSICAL

  • 0x00000080 – 非標準の拡張スナップイン (現在はデータ ウェアハウス リソース専用) を使うリソースに対して設定します。プログラミングについて詳しく検討する必要があるため、このフラグを使うことはお勧めしません。

    定数 : IS_SNAPIN_NNSE

  • 0x00000100 – Commerce Server サイト パッケージャでパッケージ化しないリソースに対して設定します。リソースをコンピュータ間で転送させない場合に、このビットを設定します。

    定数 : IS_NOTPACKED

  • 0x00000200 – このリソースがビジネス デスク アプリケーションである場合に設定します。

    定数 : IS_BIZDESK

定数は、cssnapin.h というファイルの ConfigFlags の列挙で定義されています。

s_ProgIDSnapIn
 このリソースの拡張スナップインのプログラム ID を格納する文字列です。拡張スナップインには IDispatch インターフェイスを実装する必要があります。この列に値がある場合は、f_ResourceFlags 列の IS_SNAPINAVAILABLE ビットを設定する必要があります。
s_Computer
 Commerce Server がインストールされているコンピュータの名前をオプションで表示する文字列です。
i_Status
 現在、この列は使用されていません。
f_PupFlags
 ゼロ (0) に設定されている場合、パッケージ化およびアンパックの処理時に渡される名前がファイル名であることが、Commerce Server サイト パッケージャに通知されます。1 に設定されている場合、パッケージ化およびアンパックの処理時に渡される名前がフォルダ名であることが、Commerce Server サイト パッケージャに通知されます。
s_ProgIDPUP
 Commerce Server サイト パッケージャ (IPuP) インターフェイスを実装する COM コンポーネントのプログラム ID を格納する文字列です。詳細については、「Site Packager Interface」を参照してください。
s_PupParam1
 リソースに対してパッケージ化およびアンパックされるデータベース テーブルの名前をコンマで区切ったリストを格納する文字列です。
s_PupParam2
 リソースをインポートするときに実行する SQL スキーマ スクリプトの名前をコンマで区切ったリストを格納する文字列です。
s_PupParam3
 リソースを削除するときに実行する SQL スクリプトの名前をコンマで区切ったリストを格納する文字列です。

関連項目

管理データベースにセキュリティを設定する


SiteResources テーブル

SiteResources テーブルは、サイトにインストールされているすべてのリソースに対する検索機能として使われます。ResourceProps テーブル、Resources テーブル、および Sites テーブルと共に、このテーブルには、管理データベースのデータが格納されます。

SiteResources テーブルのエントリと Resources テーブルのエントリとの間には、多対多の関連付けがあります。

次の表は、SiteResources テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_SiteID
 対応するリソースに関連付けられた特定のサイトを識別する整数です。

この列は、PupDBScripts テーブルと Sites テーブルの i_SiteID 列に対応しています。

i_ResourceID
 特定のリソースを対応するサイトに関連付ける整数です。この列の値は、PupDBScript テーブル、ResourceProps テーブル、および Resources テーブルの i_ResourceID 列の値に対応しています。

関連項目

管理データベースにセキュリティを設定する


Sites テーブル

Sites テーブルは、サイトに関するデータを取得するときの開始点となります。このテーブルは、サイト ID を使ってサイト名をマップします。この ID は、サイトに対するインターネット インフォメーション サービス (IIS) のメタベース ID とは異なります。ResourceProps テーブル、Resources テーブル、および SiteResources テーブルと共に、このテーブルには、管理データベースのデータが格納されます。

Sites テーブルのエントリと SiteResources テーブルのエントリとの間には、一対多の関連付けがあります。

次の表は、Sites テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_SiteID
 特定のサイトを識別する整数です。

この列は、PupDBScripts テーブルと SiteResources テーブルの i_SiteID 列に対応しています。

s_Name
 わかりやすいサイト名を格納する文字列です。
s_Description
 サイトのわかりやすい説明を格納する文字列です。省略可能です。
i_Status
 現在、この列は使用されていません。
d_DateCreated
 このサイトのエントリが作成された日付と時刻です。
d_DateModified
 このサイトのエントリが最後に変更された日付と時刻です。

関連項目

管理データベースにセキュリティを設定する


SystemProps テーブル

SystemProps テーブルには、リソースの特性が定義されます。ExtendedProps テーブルと共に、このテーブルには、管理データベースのスキーマが定義されます。

次の表は、SystemProps テーブルの各列の説明です。

注

  • このテーブルは、どのような理由があっても変更を加えないでください。このテーブルについては、次の表を参照してください。
列 説明
i_ApplicationID
 現在、この列は使用されていません。
s_Name
 現在、この列は使用されていません。
s_ClassName
 任意の文字列に設定されます。この文字列は、GlobalConfig.CreateServiceConfig メソッドと SiteConfig.CreateComponentConfig メソッドの両方に対する bstrConfigSchemaClass パラメータとして使われます。
s_ResourceType
 ExtendedProps テーブル内の関連付けられたリソース プロパティを使って、このテーブルの単一行をマップするときに使われる文字列です。この単一行は、単一のリソースの種類を表します。ExtendedProps テーブル内の対応する列の名前も s_ResourceType です。
s_Description
 現在、この列は使用されていません。
f_ResourceFlags
 この列の値は、リソースの複数のブール値特性に関する情報を格納するビット フィールドです。このフラグに設定されるビットの意味の詳細については、「Resources テーブル」の「f_ResourceFlags」列を参照してください。

このフラグのビットの定数は、cssnapin.h というファイルの ConfigFlags の列挙で定義されています。

f_PupFlags
 ゼロ (0) に設定されている場合、パッケージ化の処理時に渡される名前がファイル名であることが、Commerce Server サイト パッケージャに通知されます。1 に設定されている場合、パッケージ化の処理時に渡される名前がフォルダ名であることが、Commerce Server サイト パッケージャに通知されます。
s_RefResource
 現在、この列は使用されていません。
s_MachineName
 現在、この列は使用されていません。
i_Status
 現在、この列は使用されていません。
s_ProgidSnapin
 このリソースの拡張スナップインのプログラム ID を格納する文字列です。拡張スナップインには IDispatch インターフェイスを実装する必要があります。
s_ProgidPUP
 Commerce Server サイト パッケージャ (IPuP) インターフェイスを実装する COM コンポーネントのプログラム ID を格納する文字列です。詳細については、「Site Packager Interface」を参照してください。
s_PUPParam1
 現在、この列は使用されていません。
s_PUPParam2
 現在、この列は使用されていません。
s_PUPParam3
 現在、この列は使用されていません。

関連項目

管理データベースにセキュリティを設定する


分析/レポート データベース テーブル

データ ウェアハウスには、次のテーブルが含まれています。これらのテーブルにセキュリティを設定する方法、およびレポートにセキュリティを設定する方法の詳細については、「データ ウェアハウスにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
Report
 主要なレポート定義テーブルで使われる属性を示します。
ReportDbObject
 静的レポートで使うために作成されたデータベース オブジェクトを示します。
ReportDimension
 レポートにディメンションを追加するときに使われる属性を示します。
ReportInstanceDbObject
 静的レポートで使うために作成されたデータベース オブジェクトのインスタンスを示します。
ReportInstanceParam
 ユーザー インターフェイスを介して入力される、クエリ式のパラメータを格納するときに使われる属性を示します。
ReportParam
 静的レポートにパラメータ化クエリ式を追加するときに使われる属性を示します。
ReportStatus
 静的レポートに関する状態情報を提供するときに使われる属性を示します。

関連項目

データ ウェアハウスにセキュリティを設定する


データ ウェアハウス データベース テーブル

データ ウェアハウスには、テーブルを作成するために使われる論理スキーマとメタモデルを構成するクラスと関連が含まれています。

関連項目

データ ウェアハウスにセキュリティを設定する


ダイレクト メーラー データベース

ダイレクト メーラー データベースには、次のテーブルが含まれています。このデータベースにセキュリティを設定する方法の詳細については、「ダイレクト メーラー データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
Dml_attachments
 ダイレクト メーラー ジョブ用の添付ファイルを指定するときに使われる属性が格納されます。
Dml_job_errors
 ダイレクト メーラー メッセージの送信中に発生したエラーを説明するときに使われる属性が格納されます。
Dml_jobs
 ダイレクト メーラー ジョブの一覧が格納されます。

関連項目

ダイレクト メーラー データベースにセキュリティを設定する


キャンペーン データベース テーブル

キャンペーン サイト リソースによって参照されるデータベースには、次のマーケティング テーブルが含まれています。これらのデータベース テーブルにセキュリティを設定する方法の詳細については、「キャンペーン データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
Ad_item
 Web ページのスケジュール設定された広告コンテンツを表します。広告の実施時期を示すデータ メンバ、および広告とその商品をリンクするコードが格納されます。
Campaign
 広告主のマーケティング キャンペーンの実施に必要なビジネス プロセスが定義されます。
Campaign_item
 マーケティング キャンペーンやスケジュール設定された広告に含まれるコンテンツを表します。
Campaign_item_types
 マーケティング システムで利用できるキャンペーン項目の種類を示します。
Campaigns_version
 スキーマのバージョン情報が格納されます。カスタムのキャンペーン項目の種類を作成した場合は、ここに登録する必要があります。
Creative
 広告や割引の表示方法に関する情報が格納されます。
Creative_property
 クリエイティブの各種類に含まれる置換文字列を示します。クリエイティブの各種類の置換文字列ごとに 1 つのエントリが含まれます。
Creative_property_value
 クリエイティブ プロパティの値が格納されます。
Creative_size
 特定のクリエイティブをページに表示するために必要なスロットのサイズを示します。
Creative_type
 クリエイティブの表示方法を示す書式情報が格納されます。
Creative_type_xref
 キャンペーン項目の種類ごとに、利用できるクリエイティブの種類 (テンプレート) が決定されます。
Customer
 Commerce Server 2002 Web サイトで広告を利用する顧客が定義されます。
Dm_item
 アドレス、書式情報など、スケジュール設定されたダイレクト メール項目を示します。
Event_type
 マーケティング イベントの分類です。
Industry_code
 選択アルゴリズムを使って、同じページに同じ業種の広告が 2 つ表示されたり、異なる顧客の広告が 2 つ表示されたりすることを防止するための属性が格納されます。
Order_discount
 割引セールの項目を表します。クラスには、セールの項目と条件を示すデータ メンバが含まれます。
Order_discount_expression
 割引の資格要件式が識別さます。
Order_discount_misc
 ビジネス デスク内部だけで使われます。
Page_group
 マーケティング キャンペーン用に Web ページで使われるカスタム コンテンツ項目のグループを表します。
Page_group_xref
 Web ページのカスタム コンテンツと、そのコンテンツを含む Web ページまたは Web ページの論理的な集合との間のクロス リファレンスとして機能します。
Performance_total
 キャンペーン項目ごとのクリックや要求などのイベントの集計値が記録されます。
Target
 マーケティングおよびカスタム Web コンテンツの対象 (特定の種類のユーザーなど) が定義されます。
Target_group
 マーケティングおよびカスタム Web コンテンツの対象グループが定義されます。
Target_group_xref
 対象グループと、対象グループ向けのカスタム コンテンツとの間のクロス リファレンスとして機能します。

関連項目

キャンペーン データベースにセキュリティを設定する


カタログ データベースのコンポーネント

商品カタログ データベースは、ソリューション サイトのアンパック時に作成されます。一連のテーブルも作成されます。これらのテーブルは、データベースの一般的な保守と操作のために使われます。

これらのテーブルにセキュリティを設定する方法の詳細については、「商品カタログ データベースにセキュリティを設定する」を参照してください。

注
  • これらのテーブルは特に重要なものであるため、どのような理由があっても変更を加えないでください。これらについては、ここでは 1 つの例として紹介しています。

新しい商品カタログの作成を開始すると、新しいカタログのデータ格納を補助するためのテーブルが動的に作成されます。新しいカタログ用に生成されるコンポーネントは、次のとおりです。

  • 基本カタログ用のテーブル
  • 仮想カタログ用のテーブル
  • 言語固有のカタログ テーブル
  • カタログ固有のストアド プロシージャ
  • カタログ固有のビュー
  • フルテキスト検索インデックス
  • MSCS_CatalogScratch データベース

基本カタログ用のテーブル

基本カタログで使われるカタログ テーブルを次に示します。

  • <カタログ名>_CatalogProducts
  • <カタログ名>_CatalogRelationships
  • <カタログ名>_CatalogHierarchy
  • <カタログ名>_CatalogDeletedProducts (このテーブルは運用環境では必要ありません)
  • <カタログ名>_CatalogDependentCatalogs

仮想カタログ用のテーブル

仮想カタログを作成すると、カタログ名と、そのカタログをサポートするためのテーブルのロールが収集され、次のテーブルが動的に生成されます。

注

  • Adventure Works カタログのシナリオでは、次のテーブルは使われません。基本カタログ用のテーブルだけが使われます。
  • <カタログ名>_CatalogRelationships
  • <カタログ名>_CatalogHierarchy
  • <カタログ名>_CatalogProducts
  • <カタログ名>_CatalogDeletedProducts (このテーブルは運用環境では必要ありません)
  • <カタログ名>_CatalogIncludedProductsAndCategories
  • <カタログ名>_CatalogPricingRules
  • <カタログ名>_CatalogVirtualProducts

言語固有のカタログ テーブル

商品カタログの国際化をサポートするため、カタログで使う言語を新しく定義すると、その言語固有のテーブルが作成されるようになっています。

  • <カタログ名>_<言語>_Catalog

この例では、AdventureWorksCatalog_en-US_Catalog という名前の米国英語版のテーブルを使います。

カタログ固有のストアド プロシージャ

新しいカタログを作成すると、その新しいカタログ固有のストアド プロシージャが作成されます。これらのストアド プロシージャの標準の名前付け規則は、次のとおりです。

  • ctlg_DeleteProduct_for_<カタログ名>
  • ctlg_GetRelationships_for_<カタログ名>
  • ctlg_DeleteCategory_for_<カタログ名>

言語固有のストアド プロシージャには、次のものがあります。

  • ctlg_AncestorCategories_for_<カタログ名>_<言語>
  • ctlg_GetCategoryResults_for_<カタログ名>_<言語>
  • ctlg_GetProducts_for_<カタログ名>_<言語>
  • ctlg_GetDescProds_for_<カタログ名>_<言語>
  • ctlg_GetDescProdsOnly_for_<カタログ名>_<言語>
  • ctlg_GetChildCategories_for_<カタログ名>_<言語>
  • ctlg_GetRootCategories_for_<カタログ名>_<言語>
  • ctlg_GetRootProducts_for_<カタログ名>_<言語>
  • ctlg_Specsearch_for_<カタログ名>_<言語>

カタログ固有のビュー

新しいカタログ用に、いくつかのビューが作成されます。ビューの名前は、テーブルやストアド プロシージャと同じ名前付け規則に従って付けられます。

  • <カタログ名>_ClassTypes
  • <カタログ名>_LNG_NEUTRAL

カタログ用に定義した言語ごとに、次のような言語固有のビューが作成されます。

  • <カタログ名>_<言語>_RelationsView
  • <カタログ名>_<言語>_Catalog

フルテキスト検索インデックス

商品カタログでは、SQL フルテキスト検索インデックスが使われます。このインデックスは、新しいカタログの一部として動的に作成されます。このインデックスの内容は複製されず、運用データベース サーバーで再生成されます。

<カタログ名>_FullTextCatalog カタログは、次のカタログのフルテキスト インデックスをサポートするために作成されます。

  • <カタログ名>_CatalogProducts ビジネス デスクで "検索可能" と指定されたフィールドが保持されます。
  • <カタログ名>_<言語>_Catalog (カタログ用に定義された言語ごとに作成される) このテーブルには、名前フィールドと表示名フィールドが保持されます。

MSCS_CatalogScratch

商品カタログ システムでは、MSCS_catalog_scratch というスクラッチ データベース (作業用の一時データベース) を使って、一時的なテーブルを格納します。このデータベースが運用環境のカタログ データベース サーバーにあること、および CTLG_PropertyTableMap テーブルが複製されていることを必ず確認してください。

このデータベースの詳細については、「MSCS_CatalogScratch」を参照してください。


MSCS_CatalogScratch データベース

商品カタログ システムは、カタログ API の実行時のメソッドによって作成される固定テーブルや空のテーブルを格納するために、このスクラッチ データベースを使います。このデータベースは、カタログ pup オブジェクトおよび catalogcreate.sql スクリプトによって作成されます。

このデータベースは運用環境のカタログ データベース サーバーに配置する必要があります。また、商品カタログ システムのデザイン時および実行時のユーザーは、このデータベースに対する db_owner アクセス許可を持つ必要があります。

このデータベース内の一時的なテーブルを削除するには、Program Files\Microsoft Commerce Server 2002\Support ディレクトリにある catalogcleanup.vbs を使います。

固有のデータは、このデータベースに格納しないでください。

このデータベースは、複数のカタログ リソース間で共有されます (たとえば、2 つのサイトでそれぞれ異なるカタログ データベースを使っている場合でも、MSCS_CatalogScratch データベースは 1 つだけです)。

商品カタログ システムのストアド プロシージャは、必要に応じて、このデータベースに一時的なテーブルを作成し、データを設定して使用します。そして、終了時に、この一時的なテーブルを空にします。空になったテーブルは、このストアド プロシージャの次回の実行時に使用されます。このテーブルの名前とスキーマは固定であるため、SQL Server は、そのクエリ プランを再利用することができ、新しいクエリを生成する必要がありません。その結果、パフォーマンスが向上します。


プロファイル データベース テーブル

プロファイル サイト リソースによって参照されるデータベースには、次のプロファイル テーブルが含まれています。これらのテーブルにセキュリティを設定する方法の詳細については、「プロファイル データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
Addresses
 ユーザーと組織の住所が格納されます。プロファイル システムの運用時にサイトで収集されたデータを格納するために使われます。
BlanketPOs
 注文書の情報が含まれます。プロファイル システムの運用時にサイトで収集されたデータを格納するために使われます。
ClassDef
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
ClsAttrib
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
ColDef
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
CommerceServerCatalogs
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
ES_ExprExprDeps
 式どうしの依存関係が格納されます。
ES_ExprInfo
 式に関する情報が格納されます。
ES_ExprProfDeps
 プロファイルに対する式の依存関係が格納されます。
GroupMem
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
MemAttrib
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
MemberDef
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
OrganizationObject
 組織オブジェクトの情報が格納されます。プロファイル システムの運用時にサイトで収集されたデータを格納するために使われます。
Relation
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
SourceAttrib
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
SourceDef
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
TableDef
 プロファイル スキーマまたはデータ ウェアハウス スキーマの情報が格納されます。
UserObject
 ユーザー オブジェクトの情報が格納されます。プロファイル システムの運用時にサイトで収集されたデータを格納するために使われます。

関連項目

プロファイル データベースにセキュリティを設定する


トランザクション データベース テーブル

トランザクション サイト リソースによって参照されるデータベースには、次のトランザクション テーブルが含まれています。これらのテーブルにセキュリティを設定する方法の詳細については、「トランザクション データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
BasketGroup
 status = basket (注文状況 = バスケット) または status = basket (注文状況 = テンプレート) の注文グループが保持されます。
CatalogProducts_AuctionBid
 オークション項目の入札額が保持されます。
CatalogProducts_AuctionItem
 オークションの対象となる項目を示します。
counters
 GenId オブジェクトで使われるカウンタが格納されます。たとえば、注文を追跡するための連番に使われます。
OrderFormHeader
 注文フォーム レベルの注文グループ情報がで格納されます。
OrderFormLineItems
 項目レベルの注文グループ情報が格納されます。
OrderGroup
 外部レベルの注文グループ情報が保持されます。
OrderGroupAddresses
 注文グループに含まれている住所が保持されます。
TransCategory
 トランザクション DTS タスクで転送されるテーブルが格納されます。
TransDimension
 DTS でユーザー インターフェイスに表示される列が格納されます。既定では、キー フィールドが転送され、ユーザー インターフェイスには表示されません。ユーザー インターフェイスで選択される既定の列は、RequiredDim 列によって決まります。
UserFilter
 顧客サービスおよび取引先サービスの場合、ユーザー検索の状態が保持されます。

関連項目

トランザクション データベースにセキュリティを設定する


トランザクション構成データベース テーブル

トランザクション構成サイト リソースによって参照されるデータベースには、次のトランザクション構成テーブルが含まれています。これらのテーブルにセキュリティを設定する方法の詳細については、「トランザクション構成データベースにセキュリティを設定する」を参照してください。

注

  • これらのテーブルは、どのような理由があっても変更を加えないでください。これらの各テーブルについては、次の表を参照してください。
テーブル名 説明
CatalogCache_Virtual_Directory
 カタログ情報に基づいてキャッシュを使用しているアプリケーションの一覧が格納されます。このテーブルは、Web ファームのサーバーが、カタログ情報をキャッシュしているということをビジネス デスクに通知するときに使います。
Decode
 コードのデコードに使われます (たとえば、1 = バスケット、2 = テンプレート、3 = 注文)。
Region
 国/地域および都道府県/州の名前とコードが保持されます。
RegionalTax
 SampleRegionalTax パイプライン コンポーネント用の税率が格納されます。
ShippingConfig
 利用可能な送付方法に関する情報が格納されます。
TableShippingRates
 StepwiseShipping パイプライン コンポーネント用の送料の情報が格納されます。
TxVirtual_Directory
 送料と税金のキャッシュを使用しているアプリケーションの一覧が格納されます。このテーブルは、Web ファームのサーバーが、キャッシュについてビジネス デスクに通知するときに使います。

関連項目

トランザクション構成データベースにセキュリティを設定する


ビジネス デスクのアーキテクチャ

Commerce Server ビジネス デスクは、Commerce Server 2002 で利用できる Web ベースのサイト管理ツールです。ビジネス デスクは、サイトの構成、管理、および分析に使うビジネス管理モジュールのホストの役割を果たします。たとえば、ビジネス デスク モジュールを使って、カタログの価格情報を更新したり、特定のユーザーを新しい広告の対象に指定します。また、レポートを実行して、サイトに加えた変更がサイトの生産性に与える影響を測定するときにも使用できます。

ビジネス デスクは、ビジネス デスク アプリケーションとビジネス デスク クライアントの 2 つの要素で構成されます。

  • ビジネス デスク アプリケーション サイトの構成、管理、および分析を行うための管理ツールです。ビジネス デスクは、Microsoft Internet Explorer 5.5 以上を実行する任意のコンピュータから利用でき、安全なリモート アクセスを提供します。

    ビジネス デスク アプリケーションは、ソリューション サイト パッケージに含まれています。ビジネス デスク アプリケーションをインストールするには、Commerce Server をインストールした後に、ソリューション サイトをアンパックする必要があります。既存のサイトが存在し、ビジネス デスクでそのサイトを管理したい場合は、ソリューション サイトをアンパックしてビジネス デスク アプリケーションを取得した後に、そのビジネス デスク アプリケーションを修正する必要があります。

  • ビジネス デスク クライアント ローカル コンピュータにインストールするクライアント ソフトウェアです。ビジネス デスク アプリケーションへのインターフェイスを提供します。URL を指定してビジネス デスク アプリケーションに初めてアクセスしたときに、ビジネス デスク クライアントはダウンロードされ、コンピュータにインストールされます。ビジネス デスク クライアントを実行するコンピュータとビジネス デスク アプリケーションは、高速回線で接続することをお勧めします。

次の図は、ビジネス デスク クライアントを使ってリモートからビジネス デスク アプリケーションにアクセスし、Web サイトを更新する方法を示しています。

ビジネス デスク クライアントがビジネス デスク アプリケーションにアクセスする方法を示す図

ここでは、次のトピックについて説明します。

  • ビジネス デスクのモジュールとカテゴリ
  • ビジネス デスク フレームワーク


ビジネス デスクのモジュールとカテゴリ

サイトのさまざまな側面の管理には、Commerce Server ビジネス デスクの主要なコンポーネントであるモジュールを使います。次の表は、ビジネス デスクのモジュール、そのモジュールが属するカテゴリ、およびそれぞれの機能の一覧を示しています。

モジュール/カテゴリ | 説明
分析 レポート 完了したレポート | サイトの利用状況を表すレポートの実行や確認を行います。分析モジュールには、サイトのさまざまな側面を扱う多くのレポートが含まれています。
キャンペーン キャンペーン マネージャ リスト マネージャ キャンペーン式 対象グループ 参照テーブル キャンペーンの発行 | マーケティング キャンペーンの作成とスケジュール設定を行います。顧客情報を追加し、広告バナー、ダイレクト メーラー ジョブ、および商品割引の作成などによってキャンペーンとキャンペーン項目を管理します。各キャンペーン項目の対象を特定のユーザー層に絞って、きわめてパーソナライズされたユーザー環境を作成できます。
カタログ カタログ定義デザイナ カタログ エディタ カタログ セット | カタログのインポート、カタログの作成、および商品の追加と価格設定を行います。また、特別価格が含まれ、クラブの会員などの特定のユーザーだけに表示されるカタログを作成します。
注文 バスケット マネージャ 注文状況コード 場所コード 送付方法 税率 トランザクションの発行 | Commerce Server データベースから既存の注文情報を検索したり、注文情報の追加、削除、承認、および変更を行います。また、送付方法と税率の追加、削除、および変更を行います。
プロファイル プロファイル エディタ ユーザー 組織 グループ マネージャ プロファイル定義デザイナ サイト用語エディタ プロファイルの発行 | ユーザー、組織、およびプロファイルの作成と変更を行います。また、サイト用語の作成と変更を行います。

関連項目

ビジネス デスクの活用方法


ビジネス デスク フレームワーク

Commerce Server ビジネス デスクは、主に Dynamic Hypertext Markup Language (DHTML) を含んだ Active Server Pages (ASP) ページとして実装されるユーザー インターフェイス フレームワークです。このフレームワークが提供する構造化された環境を利用することによって、サードパーティの開発者は Commerce Server 2002 に備わっている管理機能を容易に拡張できます。この環境には、構造化されたページ ナビゲーション、データ操作のための標準的なしくみ、共有ユーティリティ ルーチン、一貫したユーザー環境を実現するための規則などが含まれます。

特に指定しない限り、すべての Commerce Server Web サイトにビジネス デスクの個別のインスタンスが関連付けられます。ビジネス デスクは、データベースなど、一連の Commerce Server リソースを Web サイトと共有しますが、独自のディレクトリ構造と仮想ルートを持つ独立した ASP アプリケーションとして存在します。

Commerce Server ビジネス デスク フレームワークは、ビジネス デスク モジュールの実行環境を提供します。次の図は、ビジネス デスク フレームワークがナビゲーションをサポートするために必要な 2 種類の重要な情報を、構成ファイルで指定するしくみを示しています。1 番目の種類の情報は、ビジネス デスク内でアクセスできる分類されたモジュール群を規定します。2 番目の種類の情報は、通常、操作ページごとに異なるタスク バーの作成と管理に使われます。

ビジネス デスク フレームワークを示す図

この図は、最初の操作ページが一覧ページであり、そこからタスク ボタンを使って編集ページにアクセスできるようにモジュールがデザインされる一般的なしくみも示しています。また、ユーザーが別のモジュールに移動するには最初の一覧ページに戻る必要がある、一般的なデザインも示しています。

ビジネス デスク フレームワークには、次のような特徴があります。

  • マスタ構成ファイルは、一連のモジュール構成ファイルと共に、ビジネス デスク フレームワークが各操作ページに表示されるナビゲーション ペインとタスク バーを管理するために必要な情報を提供します。
  • 読み取り専用の一覧が表示される操作ページ (一覧ページ) は、常にナビゲーション ペインと共に表示されます。このため、ユーザーは編集ページからではなく、一覧ページから別のモジュールに移動する必要があります。一覧ページは (削除タスクを除いて) 読み取り専用なので、通常はモジュールから別のモジュールに移動するユーザーに対して、データの変更を保存するかどうかの確認は行われません。
  • 操作ページ間の移動は、通常、タスク バーのタスク ボタンを使って行います。このしくみを利用することで、ビジネス デスク フレームワークは操作ページ間の移行中に発生するサービスを提供できます。操作ページをページ内のボタンに直接リンクすることは、できるだけ避ける必要があります。

関連項目

Building Business Desk Modules


Commerce Server と .NET Enterprise Servers

Commerce Server 2002 はスタンドアロンの製品ですが、Microsoft .NET Enterprise Servers を構成する他の製品とシームレスに運用できるように設計されています。

.NET Enterprise Servers は、短期間で市場に投入できる、スケーラブルで統合された Web ソリューションを構築、配置、および管理するための、包括的なサーバー アプリケーション群です。.NET Enterprise Servers を使って、Commerce Server サイトと他の情報管理システムを統合したシステムを構築できます。このレベルの統合を必要としている場合は、Commerce Server と共に 1 つまたは複数の .NET 技術を実装できます。

Commerce Server と共に使用される .NET 技術には、次のものがあります。

  • Microsoft Visual Studio .NET
  • Microsoft Content Management Server 2001 以降
  • Microsoft BizTalk Server 2000 以降
  • SQL Server
  • Microsoft Application Center 2000 以降
  • Microsoft Internet Security and Acceleration Server 2000 以降
  • Microsoft Host Integration Server 2000


Microsoft Visual Studio .NET

Commerce Server .NET Application Framework を使うと、.NET Framework の新機能によって、.NET ベースの Commerce Server アプリケーションを作成できます。Commerce Server .NET Application Framework では、Commerce Server プラットフォームに対して、新しい 2 つの層が用意されています。Base Class Library および Common Language Runtime Interop Layer です。これらの層により、ASP.NET コードで Commerce Server のサービスとシステムを実行できるようになります。Visual Studio .NET を使って、Commerce Server の機能やツールにアクセスして Commerce Server アプリケーションを構築できます。

Visual Studio .NET を使って Commerce Server アプリケーションを開発するためのソフトウェア要件については、「Commerce Server 2002 インストール ガイド」を参照してください。

.NET ベースの Commerce Server アプリケーションの開発については、「Commerce Server .NET Application Framework」を参照してください。

サンプルの International Retail サイトを使ってサイトを開発する方法については、「International Retail Site」を参照してください。

関連項目

Commerce Server .NET Application Framework

International Retail Site

サイトの配置


Microsoft Content Management Server 2001 以降

Microsoft Content Management Server 2001 (MSCMS) 以降のエディションを使うと、テンプレートに基づいて MSCMS フォルダのページを定義できます。このテンプレートは、MSCMS テンプレート ギャラリーで定義され、MSCMS チャネルに掲載されます。また、MSCMS Content Connector を使うと、Microsoft Commerce Server 2002 と部分的に統合できます。

Content Management Server には、発行処理を自動化する機能があります。また、スケジュール設定、バージョン管理、カスタマイズ可能なワークフロー、ブラウザ ベースの発行、およびアーカイブの機能も含まれています。この製品を使うことで、企業のアプリケーション間でコンテンツを再利用および共有が可能になります。コンテンツ作成者は、技術スタッフの支援を受けずに、コンテンツを追加または変更することができます。

注

  • Content Management Server 2001 の MethodSystems サイトは、Commerce Server 2002 を使用できません。

関連項目

サイトの配置


Microsoft BizTalk Server 2000 以降

Commerce Server は、Microsoft BizTalk Server 2000 以降のエディションと統合できます。BizTalk Server は、企業間の電子文書交換やビジネス プロセス統合のための、包括的なソリューションを提供します。BizTalk Server は、取引先間でのビジネス文書のゲートウェイの役割を果たし、さまざまな転送方法に対応したデータ変換、暗号化、デジタル署名、および文書追跡サービスを管理します。

Commerce Server と BizTalk Server を統合すると、たとえば Web サイトに載せる商品のカタログを交換したり、Web サイトに入力された注文に応じるため、その注文をサプライヤに送信することができます。

Commerce Server と BizTalk Server を統合する方法の詳細については、「Integrating with BizTalk Server」を参照してください。

関連項目

Integrating with BizTalk Server

サイトの配置


Microsoft SQL Server 2000

Microsoft SQL Server 2000 は、複雑な分析ツールやデータ ウェアハウス ツールを使いやすくした、スケーラブルなデータベースを提供します。SQL Server には、充実したグラフィカル ユーザー インターフェイス (UI) と共に、データ処理を中心としたアプリケーションを作成するための完成された開発環境が用意されています。

Commerce Server では、いくつかの重要な分野で、SQL Server のデータ ウェアハウス機能と分析機能を利用しています。たとえば、Commerce Server データ ウェアハウスでは、SQL Server のデータ変換サービス (DTS) を使って、SQL Server データベースに格納されているデータを Commerce Server リソースで使用する形式に変換します。

Commerce Server では、カタログ レプリケーションについても SQL Server を利用しています。詳細については、「カタログ コンテンツを複製する」を参照してください。

関連項目

カタログ コンテンツを複製する

サイトの配置


Microsoft Application Center 2000 以降

Commerce Server 2002 は、Microsoft Application Center 2000 以降のエディションと統合できます。Application Center は、Windows 2000 上の Web アプリケーションのための、有用性の高い配置および管理ツールです。Microsoft Windows 2000 で使われる主要な Web アプリケーション サービス (インターネット インフォメーション サービス (IIS) 5.0、アクティブ サーバー ページ (ASP)、COM+、メッセージ キュー) を拡張し、コア オペレーティング システムにはない監視、テスト、および診断ツール群を提供します。Application Center は、スケーラビリティと有用性を強く求める顧客向けに設計されています。

Application Center を Commerce Server と組み合わせることで、配置、Web サイトのインクリメンタル更新、およびロールバックを行うことができます。Application Center を Commerce Server と組み合わせて使う方法の詳細については、「サイトの配置」を参照してください。

関連項目

サイトの配置


COM+ サービス

Microsoft COM+ サービス (Microsoft Transaction Server を含むコンポーネント サービス) は、コンポーネント ベースの 3 層分散アプリケーションを構築するための、統一プログラミング モデルです。COM+ は、COM と Microsoft Transaction Server (MTS) のトランザクション機能を組み合わせて、Microsoft Component Object Model (COM) 上に構築されています。サイト開発者が、スケーラビリティの高いコンポーネント ベースの分散ソリューションを開発、配置、および管理しやすいように、豊富な機能を追加してプログラミング環境を拡張しています。


Microsoft Internet Security and Acceleration Server 2000 以降

Commerce Server 2002 は、Microsoft Internet Security and Acceleration Server 2000 (ISA) 以降のエディションと統合できます。ISA は、拡張可能な企業向けファイアウォールおよび Web キャッシュ サーバーであり、強力なセキュリティとネットワークの高速化を実現します。この製品は、配置環境でのセキュリティのために必要となるファイアウォールとして利用できます。

関連項目

サイトのセキュリティ設定

サイトの配置


Microsoft Host Integration Server 2000

Microsoft Host Integration Server 2000 は、既存のシステムへの投資を保護しながら、インターネット、イントラネット、およびクライアント/サーバー技術のサポートを提供する包括的な統合プラットフォームです。企業のコンピューティング リソースを活用する上で、既存のデータへのアクセスは単なる第一歩にすぎません。Host Integration Server は、企業の開発者がクライアント/サーバーまたは Web コンピューティングとホスト情報を十分に活用する分散アプリケーションを作成する手段を提供します。


Commerce Server の概念

Commerce Server 2002 を最大限活用するには、この製品の基本概念を十分に理解することが重要です。

ここでは、次のトピックについて説明します。

  • 成功へのビジネス サイクル Commerce Server を使って、常に Web サイトでのユーザーの利用状況に関するデータを収集し、そのデータを分析し、分析結果を使ってサイトを更新する方法を説明します。
  • サイト運営のための役割分担と責任 Commerce Server が、3 つの主要なユーザー層の技術に合わせて設計されていることを説明します。3 つのユーザー層とは、Web サイト開発者、システム管理者、およびビジネス マネージャです。また、各ユーザー層が利用できるインターフェイスとツールを紹介します。
  • プロファイルの概念 Commerce Server のプロファイル、プロファイルの作成方法、および Web サイトの管理におけるプロファイルの使い方について説明します。
  • ユーザー リストとメーリング リストの概念 Commerce Server のユーザー リストとメーリング リスト、および Web サイトの管理におけるこれらのリストの使い方について説明します。
  • カタログの概念 Commerce Server のカタログ、Web サイトの管理におけるカタログの使い方、カタログの構築方法、およびカタログの商品データの設定方法について説明します。
  • データ ウェアハウスの概念 Commerce Server のデータ ウェアハウス、Web サイトの管理におけるデータ ウェアハウスの使い方、およびデータ ウェアハウスのデータの設定方法について説明します。
  • パイプラインの概念 Commerce Server のパイプライン、およびその使い方について説明します。
  • 対象化とパーソナライズの概念 Commerce Server での対象化とパーソナライズについて、その使用方法と共に説明します。
  • キャンペーンの概念 Commerce Server のキャンペーン、Web サイトの管理におけるキャンペーンの使い方、キャンペーンの構築方法、およびキャンペーンの処理方法について説明します。
  • 広告の概念 Commerce Server の広告、そのコンポーネント、および広告の処理方法について説明します。
  • 割引の概念 Commerce Server の割引、割引の種類、割引の使用方法、および割引の処理方法について説明します。
  • ダイレクト メールの概念 Commerce Server のダイレクト メール、脱退リストの使い方、およびダイレクト メールの処理方法について説明します。
  • 注文管理の概念 Commerce Server の注文、注文の管理方法、および注文の処理方法について説明します。
  • インターナショナル ソリューションの概念 サイトを国際化するプロセスについて説明します。


成功へのビジネス サイクル

"成功へのビジネス サイクル" とは、ユーザー プロファイル情報を収集して、ユーザーをマーケティング キャンペーンの対象に指定し、そのキャンペーンの結果を分析して、判明したことに基づいて次の企画に向けた変更を加えていくプロセスです。このサイクルは、企業レベルの分析に基づいて構築するのが原則です。戦略的な分析に基づいて、サイトを改善していくことになります。そうすることで、サイトのパフォーマンスを継続的に、しかも総合的な視野から評価することが可能になります。

"成功へのビジネス サイクルのパーソナライズ" とは、ツールを利用して、対象化したカスタム コンテンツの対象となる層を予測し、最適なタイミングで顧客に提示するプロセスです。

Commerce Server 2002 には、サイトを管理してその有効性を高めるための、一連の機能が用意されています。Commerce Server 使って、次のようなことができます。

  • ユーザー データを収集および格納する
  • ユーザー データを分析する
  • サイトを更新する
  • サイクルを実現する - 共同作業

サイトでのユーザーの利用状況を分析することで、サイトの向上を図り事業目標を達成する方法を決定できます。

ユーザー データを収集および格納する

サイトを訪問するユーザーに関して、次の 3 種類のデータを収集できます。

  • 明示プロファイル データ ユーザーがオンライン フォーム、アンケート、および投票に入力し、自分に関する情報を提供したときに取得されます。
  • クリック履歴 ユーザーがサイトを訪問し、サイト ページへのリンクをクリックしたときに取得されます。クリック履歴には、ユーザーがサイトの訪問に費やした時間、参照元サイトのアドレス、広告クリックの数、広告到達、クリックの頻度、および最初に参照したページと最後に参照したページを含めてユーザーがサイトで利用した経路が含まれます。たとえば、あるユーザーがサイトを 17 分間訪問し、3 つのカタログ商品のカタログ説明を表示し、そのうちの 2 つをバスケットに入れ、1 つの宣伝広告をクリックし、その宣伝品目をバスケットに追加したなど、ユーザーがサイトを利用する状況を収集できます。
  • トランザクション履歴 ユーザーが商品を購入したときに取得されます。トランザクション履歴には、バスケットと注文が記録されます。たとえば、トランザクション履歴に、ユーザー名、送付先、日時、購入商品、および注文金額合計を含めることができます。

このデータは、Web サーバー ログ ファイルと Commerce Server データベースに収集されます。システム管理者は、Web サーバー ログ ファイルと Commerce Server データベースのデータを、Commerce Server データ ウェアハウスに定期的にインポートします。データ ウェアハウスには、Web サーバー ログ ファイル、Commerce Server データベース、およびユーザーが指定したその他のデータ ソースなど、複数のデータ ソースから収集した大量のデータを格納する管理データベースがあります。

次の図は、ユーザー データが Web サーバー ログと Commerce Server データベースに収集され、データ ウェアハウスに格納されるしくみを示しています。

ユーザー データを分析する

データ ウェアハウスのデータを分析して、ビジネスに関する重要な情報を判断します。Commerce Server 2002 Enterprise Edition を使って、売れ行きの良い商品、サイトを訪問するユーザーの種類、購入者における共通の特徴、および成功した広告キャンペーンを確認できます。

サイトでのユーザーの利用状況に関するデータを分析するには、Commerce Server ビジネス デスクの分析モジュールを使います。ユーザーの利用状況を分析するには、データ ウェアハウスに対してレポートを実行します。

次の図は、ビジネス デスクを使ってデータ ウェアハウスのデータにアクセスし、さまざまな種類の分析を実行する方法を示しています。

Commerce Server には、サイトでの利用状況の分析に使用できる次の 2 種類のレポートが用意されています。

  • 動的レポート このレポートは、特定のデータを Microsoft® PivotTable® 形式に変換します。これを基に、列の再配置やチャートの作成を行うことができます。
  • 静的レポート レポートはブラウザのウィンドウに HTML 形式で表示されます。この種類のレポートは、電子メールで他の人に送信したり、Web サイトに掲載したり、他のアプリケーションで編集することができます。たとえば、Microsoft Internet Explorer を使ってレポートを Word 文書にエクスポートし、編集することができます。

Commerce Server には、ビジネス デスクから実行できるレポートがいくつか用意されています。そのようなレポートには、商品別売り上げレポート、Web の利用状況レポートなどがあります。サイト開発者はこれらのレポートのいずれかを使うことも、他のデータを取得できるようにレポートをカスタマイズすることもできます。Commerce Server に用意されているすべてのレポートの一覧については、「Commerce Server 2002 のレポート」を参照してください。

サイトを更新する

対象ユーザーの絞り込み戦略の設定し直しや人気ページの宣伝をしたり、人気商品を検索しやすくするために、ユーザー データの分析に基づいてサイトを変更することができます。たとえば、すべてのユーザーが、ホーム ページから 4 回クリックすると表示されるページを閲覧していることがわかった場合、その人気ページが 1 回のクリックで表示されるようにサイトのデザインを変更できます。

サイクルを実現する - 共同作業

サイト管理サイクルを効果的に構築するには、ビジネス マネージャ、サイト開発者、およびシステム管理者が連絡を取り合って、共同でサイトを更新する必要があります。この連絡を円滑に行うには、連絡方法を確立する必要があります。たとえば、多数のユーザー プロファイルを一括更新する場合は、ビジネス マネージャがシステム管理者に連絡し、システム管理者がこの作業を実行します。ビジネス デスクに商品券を販売するモジュールなどの新しい機能を追加する場合は、ビジネス マネージャーがサイト開発者に連絡し、要求を伝える必要があります。

多くの組織では、ビジネス マネージャ、システム管理者、およびサイト開発者が、それぞれ異なる部署、都市、または国/地域に勤務している場合があります。このため、効果的な連絡方法を確立し、適切に機能しているかどうかを定期的に確認する必要があります。

ビジネス マネージャ、サイト開発者、およびシステム管理者が一般的に行う作業の概要については、「サイト運営のための役割分担と責任」を参照してください。

関連項目

対象化とパーソナライズの概念

サイト運営のための役割分担と責任

プロファイルの概念

データ ウェアハウスの概念


サイト運営のための役割分担と責任

Commerce Server 2002 には、Web サイトを開発、配置、および管理するための、一連の機能とツールが用意されています。Commerce Server を扱うには、組織内の 3 つの専門分野に及ぶ特定の技能を必要とします。次の表は、Commerce Server の機能を組織内の 3 つの一般的な役割分野に分類し、それぞれに必要な技能を示しています。

役割 | 必要とされる知識
サイト開発者 | Dynamic Hypertext Markup Language (DHTML)、拡張マークアップ言語 (XML)、Microsoft ActiveX Data Objects (ADO)、HTML コンポーネント (HTC)、および Active Server Pages (ASP)
システム管理者 | Microsoft Windows 2000 Server、Microsoft SQL Server 2000、インターネット インフォメーション サービス (IIS) 5.0
ビジネス マネージャ | 優れた電子商取引 Web サイトを作成および運用するための、事業目標、戦略、プロセス

組織によっては、これらの役割がさまざまな形で組み合わされたり、他の名前で呼ばれていることがあります。それぞれの役割は、Commerce Server の機能を使うために必要な 3 つの異なる技能を表していると考えてください。

次の表は、これらの 3 つの役割、それぞれの役割が実施する作業の例、および担当作業を実施するための Commerce Server 2002 ツールとそのヘルプ トピックを示しています。

役割 任務 ツールとユーザー インターフェイス
サイト開発者
  • Web サイトを構築する
  • Web サイトを既存のシステムと統合する
  • 既存の電子商取引サイトとデータベースを移行する
  • Commerce Server ビジネス デスクをカスタマイズする
  • 新しいビジネス デスク モジュールを構築する
  • Microsoft 管理コンソール (MMC) に新しい拡張スナップインを追加する
  • Developer's Guide
  • Programmer's Reference
  • Pipeline Editor
  • Pipeline Component Reference
  • サイト パッケージャを使う
システム管理者
  • サイトをパッケージ化し、運用コンピュータに移動する
  • Commerce Server のリソースを設定し、最適化する
  • データ ウェアハウスのインポート タスクのスケジュールを設定する
  • ダイレクト メーラー ジョブのスケジュールを設定する
  • Commerce Server データベースを保守する
  • Web サイト環境のトラブルシューティングを行う
  • サイト パッケージャを使う
  • Commerce Server の管理
ビジネス マネージャ
  • Web サイト開発の仕様を作成する
  • 事業目標を達成するためにどのように Web サイトを更新するべきかを決定する
  • ビジネス デスクの新しいモジュールやカスタマイズしたモジュールを要求する
  • 広告キャンペーンを作成する
  • 商品カタログを管理する
  • ユーザーの利用状況とサイトの有効性を分析する
  • 登録済みユーザーと取引先を管理する
  • ビジネス デスクの活用方法


プロファイルの概念

プロファイルは、サイトを訪問するユーザーや、それらのユーザーがサイトをどのように使うかなどの情報を提供するため、Web サイトの管理には必要不可欠です。プロファイルを使って、ユーザー データを分析したり、コンテンツの対象として指定するユーザー層を設定したりします。

プロファイルとは、ユーザー、会社、コンテキスト (日付と時刻) などのビジネス関連項目を定義する一連の特性です。たとえば、ユーザー プロファイルに定義される特性には、名、姓、市町村、性別、年齢、電子メール アドレスなどがあります。会社プロファイルに定義される特性には、会社名、連絡先、市町村、電子メール アドレスなどがあります。コンテキスト プロファイルに定義される特性には、ページが表示された日時、ユーザーがそのページにたどり着くまでの経路などがあります。

次の図は、各種のプロファイルを示しています。

Commerce Server では、プロファイルを使ってビジネス関連項目に関する情報を収集します。たとえば、プロファイルを使って Web サイト上のユーザーからデータを収集します。また、ビジネス デスクを使って、ユーザーや組織のプロファイルにデータを直接入力することもできます。

プロファイル データは、Microsoft Active Directory と SQL Server のどちらかまたは両方、あるいは OLE DB 準拠の任意のデータ ストアに格納します。プロファイル データ ストアを管理するには、Commerce Server マネージャからアクセスできるプロファイル リソースを使います。

Commerce Server 2002 Enterprise Edition では、データをプロファイル データ ストアからデータ ウェアハウスにエクスポートすると、収集したプロファイル データをビジネス デスクで分析することができます。データ ウェアハウスにエクスポートされるプロファイル データを指定するには、ビジネス デスク プロファイル モジュールを使います。

注
  • Commerce Server に、Microsoft Site Server 3.0 の Membership ディレクトリは含まれていません。Membership ディレクトリから Commerce Server へプロファイル情報を移行する方法については、「Site Server 3.0 からのアップグレード」を参照してください。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にプロファイルを使う
  • プロファイルの構造
  • プロファイル定義
  • プロファイル プロパティ
  • プロファイル プロパティの属性
  • プロファイルを収集および格納する
  • サンプルのプロファイル定義
  • Web ファーム シナリオでプロファイルを使う


Web サイトの管理にプロファイルを使う

Commerce Server ビジネス デスクでは、次のことができます。

  • サイトを訪問するユーザーについて収集する情報を決定する。
  • プロファイル情報を分析する。
  • コンテンツをユーザーに合わせるために対象式を作成する。
  • 特定のユーザー グループを対象とした広告、割引、ダイレクト メールの各キャンペーンを作成する。
  • パーソナライズしたダイレクト メール メッセージをユーザーに配信する。

たとえば、サイトでスポーツ用品を販売しているとします。次のワークフローは、プロファイルを使ってユーザーの利用状況を分析し、コンテンツをユーザーに合わせて対象化する方法の例を示しています。ワークフローの詳細については、Commerce Server 2002 ヘルプの「B2C サイトのチュートリアル」を参照してください。

  1. システム管理者が、スポーツ用品 Web サイトに訪問する登録済みユーザーと匿名ユーザーのプロファイル定義を作成します。
  2. サイトを一定期間運用した後で、プロファイル データを分析し、サイトを訪問しているユーザー層と購入商品を調べます。
    • "新規登録済みユーザー" レポートおよび "登録済みユーザーのプロパティ" レポートを実行して、サイトを訪問するユーザーのプロファイル プロパティを分析します。
    • "商品別売り上げ" レポートを実行して、日付単位の商品別販売数量と売り上げ金額を調べます。このレポートでは、合計数量と売り上げ金額が、商品カテゴリの順で表示されます。
    • "顧客別の売り上げ" レポートを実行して、顧客の詳細、合計販売数、および合計注文数を参照します。
  3. 分析結果に基づいて、コンテンツをユーザーに合わせて対象化したキャンペーンを作成します。
    • "顧客別の売り上げ" レポートを Commerce Server ビジネス デスクのリスト マネージャ モジュールにエクスポートし、そのプロファイル情報を使って、顧客を対象化すると共に、これらのユーザーに割引を提供するための割引キャンペーンを作成します。
  4. 割引キャンペーンを一定期間実施した後で、キャンペーンの結果を分析します。
    • "キャンペーン項目の要約" レポートを実行して、キャンペーンがクリックされた割合を調べます。
    • "広告の表示回数とヒット率 (日付単位)" レポートを実行し、サイトのキャンペーン項目に対するユーザーの行動を調べます。このレポートでは、キャンペーン項目ごとに、1 日あたりのユーザーの利用状況が表示されます。
  5. 割引商品の購入数が増加しない場合は、"顧客別の売り上げ" レポートをもう一度実行し、リスト マネージャ モジュールにエクスポートします。ダイレクト メール キャンペーンを作成し、ユーザー プロファイルに基づいてパーソナライズされたダイレクト メールを配信します。

式の作成、およびユーザーに合わせたコンテンツの対象化については、「対象化とパーソナライズの概念」を参照してください。


プロファイルの構造

プロファイル リースおよびプロファイル モジュールを使って、プロファイルを作成および管理します。Commerce Server のプロファイルは、次の要素で構成されます。

  • プロファイル定義 特定の種類のプロファイルについて収集するデータの詳細です。たとえば、"ユーザー オブジェクト" プロファイル定義を使用して、サイトに登録されている個々のユーザーのプロファイルを作成できます。プロファイル定義を作成するには、システム管理者が、Commerce Server マネージャのプロファイル リソースを使用します。
  • プロファイル プロパティ ユーザーが Web サイトを訪問したときに収集するプロファイル データを指定する特性です。たとえば、"名" プロパティでは、ユーザーの名を収集することを指定します。プロファイル定義にプロファイル プロパティを追加するには、ビジネス デスクのプロファイル定義デザイナ モジュールを使用します。
  • プロファイル プロパティ属性 プロファイル プロパティのデータ型 (たとえば、Number、文字列 (String)、Decimal、Site Term) など、プロパティに関する情報を指定する特性です。

各プロファイルは、1 つのプロファイル定義に基づいています。プロファイルにプロファイル定義を埋め込むと、相互に参照し合うプロファイルを作成できます。たとえば、"住所" プロファイル定義をユーザー オブジェクトのプロファイル定義に追加すると、ユーザーの住所を収集できます。また、そのユーザーも住所を参照できるようになります。プロファイル定義を編集および管理するには、Commerce Server ビジネス デスクのプロファイル定義デザイナ モジュールを使います。

次の表は、"ユーザー オブジェクト" プロファイル定義の例と、この定義に Sean Chai のデータを格納したユーザー プロファイルの例を示しています。

プロファイル定義 : ユーザー | プロファイル : Sean Chai
名 | Sean
姓 | Chai
市区町村 | Seattle
性別 | M
年齢 | 52
電子メール アドレス | seanchai@microsoft.com

関連項目

Web サイトの管理にプロファイルを使う

プロファイル定義

プロファイル プロパティ

プロファイル プロパティの属性

プロファイルを収集および格納する

サンプルのプロファイル定義


プロファイル定義

プロファイル定義とは、ユーザー、会社、ビジネス プロセスなどのビジネス関連項目を定義する一連の特性です。サイト開発者がソリューション サイトを使ってサイトを構築した場合は、次の 5 つのサンプル プロファイル定義を利用できます。

  • 住所
  • 一括注文数 (注文書)
  • 組織
  • 対象とするコンテキスト
  • ユーザー オブジェクト

新しいプロファイル定義を作成する前に、まずプロファイル データをデータベースのどこに格納するかを決めて、データ用の適切なテーブルと列を追加する必要があります。たとえばビジネス マネージャが、"Music という新しいプロファイル定義を作成し、そのプロファイル プロパティとして First Concert、Last Concert、Favorite CD、および未定のプロパティ 2 つを格納する" ことを求めたとします。システム管理者は、このデータを Arts という名前の新しい SQL Server データベースの、Music という名前の新しいテーブルに格納することが適切であると判断します。Music プロファイル定義を作成するには、次の作業を行います。

  • SQL Server Enterprise Manager を使って、次の操作を行います。
    1. Arts という名前の SQL Server データベースを作成します。
    2. Arts データベースに Music テーブルを作成し、そこに格納される 5 つのデータ メンバ用の列を追加します。
  • プロファイル リソースを使って、次の操作を行います。
    1. 新しいデータ ソースの Arts にマップします。この操作は 1 度だけ行います。新しいデータ ソースをプロファイル リソースにマップした後は、同じ操作をもう一度実行する必要はありません。
    2. Music という名前のデータ オブジェクトを作成し、Arts データベースの Music テーブルにマップします。
    3. First Concert、Last Concert、Favorite CD、Placeholder1、および Placeholder2 という名前のデータ メンバを作成し、Music テーブルの該当する列にマップします。

    次の図は、SQL Server データベース、プロファイル リソース、およびプロファイル定義の各要素が互いにマップされた状態を示しています。

    SQL Server、プロファイル リソース、およびプロファイル定義の関係を示す図

プロファイル リソースを使ってプロファイル スキーマを拡張する方法の詳細については、「プロファイル リソースの実行」を参照してください。

プロファイル定義とプロパティを作成すると、ビジネス マネージャはビジネス デスクのプロファイル定義デザイナ モジュールを使って、First Concert、Last Concert、および Favorite CD をプロファイル定義に追加できるようになります。この作業を行うためには、ビジネス マネージャはシステム管理者が作成したデータ メンバにこれらのプロパティをマップします。そのため、システム管理者はデータ メンバの名前をビジネス マネージャに通知する必要があります。システム管理者がデータ メンバにプロパティをマップする場合は、Commerce Server マネージャを使います。

後日、Music プロファイル定義を使って収集する残りの情報が決まったら、ビジネス マネージャはプロファイル定義デザイナ モジュールを使って 2 つの新しいプロパティを作成し、Music テーブルに作成されているプレースホルダのデータ メンバにそれらのプロパティをマップします。

Commerce Server ソリューション サイトには、"住所"、"一括注文数"、"組織"、"ユーザー オブジェクト"、および "対象とするコンテキスト" というサンプル プロファイル定義が用意されています。"ユーザー オブジェクト" プロファイル定義には名前の付いていないプロパティが 5 つ含まれているので、データベースを拡張することなくプロパティを追加できます。各プロファイル定義に含まれるプロパティの一覧については、「サンプルのプロファイル定義」を参照してください。

プロファイル定義のキー

プロファイル定義を有効なものにするには、プロファイル定義にキーを定義する必要があります。プロファイル定義のキーが、一意キー、主キー、結合キー、またはハッシュ キーのいずれであるかを特定するには、ビジネス デスクのプロファイル定義デザイナ モジュール、または Commerce Server マネージャのプロファイル リソースのプロファイル定義で、[詳細属性] セクションの "キーの種類" プロパティを調べます。

一意キー

一意キーは、このプロパティの値がすべてのメンバに対して一意になることを示します。一意キーとして指定された属性は、SQL Server データベースの一意のフィールド、または Lightweight Directory Access Protocol (LDAP) ソースの一意の属性にマップします。

プロファイル定義のキーとして指定されているプロパティは、必ず "一意キー" 属性がオンになっています。キーとして指定できるのは、データ型が文字列または Number のプロパティだけです。プロファイル定義に定義するキーの数に制限はありませんが、パフォーマンスやメモリに対する影響を考慮して、最小限にとどめておくことをお勧めします。

プロファイル システムでは、プロファイル オブジェクトの管理操作のうち、主なもの (CreateProfile、GetProfile、GetProfileByKey、DeleteProfile、DeleteProfileByKey) はすべて、キーになっているメンバだけを処理します。一意キーとして指定されているプロパティの一意性は、プロファイル システムでは保証されません。プロパティの一意性は、基になるデータ ストア (リレーショナル データベースではテーブル、ディレクトリ ストアではクラス) のオブジェクトに課された制約によって、暗黙的に実現されます。

主キー

主キーは、このプロパティの値がすべてのメンバに対して一意になることを示します。主キーとして指定された属性は、SQL Server データベースのプライマリ フィールド、または LDAP ソースの一意の属性にマップします。主キーは、埋め込みプロファイル定義を使って作成されたプロファイルの関連付けに使用します。

プロファイル定義には、一意のキー プロパティを 1 つだけ、主キーとして指定する必要があります。主キーとして指定するのは、プロファイル プロパティの中で、プロファイル オブジェクトのインスタンスを操作する際に最もよく使われるものにします。

主キーは、インジケータによって識別できます。赤色の "P" または緑色の "D" (2 重のキー (主キーおよび結合キー) の場合) が、ビジネス デスクのプロファイル デザイナ モジュール、および Commerce Server マネージャのプロファイル リソースのプロファイル定義で、プロパティ名の先頭に表示されます。

結合キー

結合キーは、プロファイル サービスの共通のプロパティによって、複数のデータ ストアを関連付けます。データを収集するための結合キーとして定義したプロパティを編集するには、結合キーのデータが含まれるデータベース列を削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

プロファイル定義には、一意のキー プロパティを 1 つだけ、結合キーとして指定する必要があります。最適なパフォーマンスを得るためには、プロファイル定義で、主キーを結合キーとしても指定する必要があります。プロファイル オブジェクトを作成する際に、結合キー プロパティの値を指定しなかった場合、このメンバの値が、プロファイル システムによって自動的に生成されます。

結合キーは、インジケータによって識別できます。青色の "J" または緑色の "D" (2 重のキー (主キーおよび結合キー) の場合) が、ビジネス デスクのプロファイル デザイナ モジュール、および Commerce Server マネージャのプロファイル リソースのプロファイル定義で、プロパティ名の先頭に表示されます。プロファイル システムでは、結合キー プロパティを使って、複数のデータ ストアに格納されているプロファイル オブジェクトのフラグメントを結合します。結合キー プロパティの値は、すべてのデータ ストアに複製されます。

注

  • 結合キー プロパティは、コミットされ、基になるストアに格納された後は更新できません。

ハッシュ キー

プロファイル定義には、一意のキー プロパティを 1 つ、ハッシュ キーとして指定することができます。プロファイル集計層では、ハッシュ キー プロパティを使って、プロファイル オブジェクトをハッシュし、データ ソース内の一意のパーティションに格納します。したがって、プロファイル定義のインスタンスをデータ ソース内の複数のパーティションに格納するには、ハッシュ キー プロパティを指定する必要があります。このプロパティが存在しない場合、プロファイルのインスタンスはすべて既定のパーティションに格納されます。

プロファイル定義では、結合キーをハッシュ キーとして指定してください。これは、最適なパフォーマンスを得るには、主キー、結合キー、およびハッシュ キーに同じプロパティを指定する必要があるためです。

ハッシュ キーを見つけるには、ビジネス デスクのプロファイル デザイナ モジュール、または Commerce Server マネージャのプロファイル リソースのプロファイル定義で、[詳細属性] セクションの [ハッシュ キー] チェック ボックスを調べます。

注

  • プロファイル オブジェクトがコミットされ、基になるストアに格納された後は、ハッシュ キー プロパティを更新することはできません。
  • 複数のパーティションに分割された ANSI SQL ストアの場合に限り、ハッシュ キー以外のキーと ProfileObject オブジェクトの GetInfo メソッドを使ってプロファイル オブジェクトを取得しようとすると、失敗する可能性があります。ただし、LDAPv3 準拠のストアについては失敗しません。

関連項目

プロファイル リソースの実行

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル プロパティ

プロファイル プロパティの属性

プロファイルを収集および格納する

サンプルのプロファイル定義


プロファイル プロパティ

システム管理者にプロファイル定義を作成してもらったら、ビジネス デスクのプロファイル定義デザイナ モジュールを使って、そのプロファイル定義にプロファイル プロパティを追加できます。プロファイルにどのような情報が収集されるかは、プロファイル プロパティによって決まります。"ユーザー オブジェクト" プロファイル定義には、たとえば、ユーザーの姓、名、市町村 (居住地または所在地)、性別、年齢、電子メール アドレスなどのプロパティを定義します。

次の図は、サンプルの "ユーザー オブジェクト" プロファイル定義の各要素を示しています。

関連項目

プロファイル リソースの実行

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル定義

プロファイル プロパティの属性

プロファイルを収集および格納する

サンプルのプロファイル定義


プロファイル プロパティの属性

各プロファイル プロパティには、属性があります。属性は、プロパティのデータ型 (たとえば、Number、文字列、Decimal、Site Term)、プロパティが単一値 (たとえば、"名" には 1 つしか設定できません) と複数値のどちらであるか、プロファイル プロパティがインデックス付きかどうかなど、プロパティに関する情報を提供します。

Site Term は、ビジネス デスクのユーザーが作成するデータ型です。これは、サイトに関連する特定の値のリストです。サイト用語を使って、この値のリストを属性としてプロパティに割り当てます。たとえば、"性別" という名前のサイト用語を作成し、"女性"、"男性"、"不明" という選択値を定義します。"性別" という名前のプロファイル プロパティを作成し、それに Site Term というデータ型を割り当てると、定義した選択値のいずれか 1 つだけをプロファイルに割り当てることができます。サイト用語は、ビジネス デスクのサイト用語エディタ モジュールを使って作成し、プロファイル定義デザイナ モジュールを使ってプロファイル定義に割り当てます。

サイト用語をプロファイル プロパティに割り当て、Commerce Server 全体で使用できる一般的な用語を確立することで、たとえば、ユーザーの好みとコンテンツを対応付けることができます。プロファイルを使ってコンテンツを配信する方法の詳細については、「対象化とパーソナライズの概念」を参照してください。

カスタム属性と詳細属性

プロファイルの属性には、カスタム属性と詳細属性という 2 つの特殊な属性があります。

プロファイルのカスタム属性は、アプリケーション固有の属性です。プロパティにはカスタム属性を定義できます。たとえば、Web サイト ページ上でのプロパティの表示方法を制御するカスタム属性を作成できます。

プロファイル エディタ モジュールの検索画面やプロファイルの編集画面で汎用プロファイルがどのように表示されるかは、カスタム属性によって決まります。

新しく作成した汎用プロファイルには、必ずカスタム属性の sDisplayColumn と sFriendlyName を設定します。これらの属性が定義されていない場合、[検索開始] ボタンが利用できなくなるため、それらのプロファイルのインスタンスを検索することはできません。

  • sDisplayColumn プロパティの表示名です。[検索] 画面に列名として表示されます。

    sDisplayColumn カスタム属性を設定したプロパティは、[検索] 画面の左から右へ向かって、[プロファイル] 画面の [プロパティ] 一覧と同じ順序で表示されます。sDisplayColumn カスタム属性の値によって、各プロパティの相対的な列幅が決まります。たとえば、列幅の値が先頭のプロパティで 2、2 番目のプロパティで 4 になっている場合、2 番目のプロパティの列幅は、先頭のプロパティの列幅の 2 倍になります。

    この属性では、大文字と小文字が区別されます。また、列幅の最大値は 100 です。sDisplayColumn カスタム属性が定義されているプロパティだけがプロファイルに含まれる場合、特に指定しない限り、プロファイル表示列はそのプロパティの昇順で格納されます。この属性を持つプロパティは、結合キーや 2 重のキーとして定義したり、Site Term 型参照や Profile 型参照にすることはできません。また、データ メンバにマップする必要があります。

  • sFriendlyName プロパティの表示名です。[プロファイルの更新 : <プロファイルの表示名>] 画面のタイトル バーに表示されます。表示名は、[検索] 画面の左端列の名前としても使われます。

    この属性では、大文字と小文字が区別されます。この属性を持つプロパティは、結合キーや 2 重のキーとして定義したり、Site Term 型参照や Profile 型参照にすることはできません。また、データ メンバにマップする必要があります。

アプリケーションによるプロファイル プロパティの使い方を変更するには、詳細属性を使います。たとえば、プロパティをデータ ウェアハウスにインポートするかどうかは、"データ ウェアハウスにエクスポート" 属性を使って指定します。

次の表は、詳細属性とその用途を示しています。

属性 | 目的
[アクティブ] プロファイル システムでこのプロパティを利用できるかどうかを示します。非アクティブなプロパティはビジネス デスクに表示されません。

プロパティを "アクティブ" に設定できるのは、プロパティがデータにマップされている場合のみです。
[データへのマップ] | プロパティがマップするデータ メンバです。特定のプロファイル定義を基にしたプロファイルを追加、削除、および編集できるのは、基となったプロファイル定義の中に、マップされたプロパティが少なくとも 1 つ含まれている場合のみです。
[キーの種類] 4 種類のキーを割り当てることができます。これらのキーの詳細については、「プロファイル定義のキー」を参照してください。
  • 一意キー このプロパティの値はすべてのメンバに対して一意になります。一意キーとして指定された属性は、SQL Server データベースの一意のフィールド、または Lightweight Directory Access Protocol (LDAP) ソースの一意の属性にマップします。
  • 主キー このプロパティの値はすべてのメンバに対して一意になります。主キーとして指定された属性は、SQL Server データベースのプライマリ フィールド、または LDAP ソースの一意の属性にマップします。主キーは、埋め込みプロファイル定義を使って作成されたプロファイルの関連付けに使用します。
  • 結合キー プロファイル サービスの共通のプロパティによって、複数のデータ ストアを関連付けます。データを収集するための結合キーとして定義したプロパティを編集するには、結合キーのデータが含まれるデータベース列を削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。
  • 2 重のキー (主キーと結合キー) このプロパティの値は一意になります。また、このプロパティを他のデータ ストアにあるプロパティに関連付けます。
[必須] | 編集中のプロパティは必須のプロパティになります。プロパティを "必須" に設定した場合、"アクティブ" にも設定する必要があります。
[データウェアハウスにエクスポート] | プロパティがデータ ウェアハウスにインポートされるかどうかを指定します。
[キャッシュ読み込みの遅延] | このプロパティが、プロファイルを取得したときには読み込まれず、このプロパティそのものに対してアクセスが行われたときに読み込まれるように指定します。
[複数値] | 編集中のプロパティと関連性のある複数の値を取り込めるようにします。プロパティを "複数値" に設定する場合、"検索可能" には設定できません。
[検索可能] | 基になるデータ ストア内でこのプロパティにインデックスを付けて、検索時に [検索条件] の項目として利用できるようにします。検索可能な属性は、SQL Server データベースまたは LDAP ソースのインデックス付きフィールドにマップします。プロパティを "検索可能" に設定する場合、"複数値" には設定できません。
[RDN] | ディレクトリ ストアの相対識別名 (RDN) です。プロパティにこの属性が設定された場合、このメンバは基になるデータ ストア内の LDAP クラスの RDN 属性にマップされます。これは、OLE DB Provider for Microsoft Commerce Server (OLE DB) ソースなどのデータ ソースには適用されません。
[ハッシュ キー] | 複数のパーティションにプロファイルのインスタンスを配布するときに、このプロパティが使われます。このプロファイルを取得するには、このキーに対するクエリを実行する必要があります。

ハッシュ キーを使ってプロファイル定義データを複数のデータベースに格納する

ハッシュ キーは、物理的には複数のデータベースに格納されていますが、1 つのソース (この場合はプロファイル定義) からのデータを一元管理するために使われる一意のキーです。データ ソースは、ハッシュ キーを使って、複数のデータベースに及ぶデータをパーティションに分割します。プロファイル定義でハッシュ キーにするプロファイル プロパティを選択するには、プロファイル リソース (または Commerce Server ビジネス デスクのプロファイル定義デザイナ モジュール) を使います。

プロファイル プロパティをハッシュ キーとして定義しない場合は、プロファイル定義で収集されたすべてのデータは、既定のパーティションに割り当てられているデータベースに格納されます。一度ハッシュ キーを定義すると、後で再定義することはできません。

関連項目

プロファイル リソースの実行

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル定義

プロファイル プロパティ

プロファイルを収集および格納する

サンプルのプロファイル定義


プロファイルを収集および格納する

プロファイル データは、Commerce Server サイトで 2 とおりの方法で収集されます。サイトを訪問するユーザーが自分自身に関するプロファイル データを提供する方法を、明示プロファイルと呼びます。たとえば、ユーザーがサイトで商品を購入するときには、通常、名前、住所、電話番号、および電子メール アドレスを入力します。この情報をユーザー プロファイルの設定に使います。

また、黙示プロファイルという方法でデータを収集することもできます。黙示プロファイルでは、ユーザー (匿名ユーザーと登録済みユーザー) が Web サイトで対話的な操作を実行すると、その操作内容が Web ログ ファイルに記録されます。たとえば、匿名ユーザーがクリックしたリンク、検索した商品、セッションの長さ、特定の Web ページで費やした時間などが記録されます。ユーザーが匿名で、名前や電子メール アドレスなどの情報がわからなくても、ユーザーがサイトをどのように利用したかという情報は貴重です。たとえば、クリック履歴には訪問した Web ページの経路が示されるので、この情報を使ってユーザーの興味対象の組み合わせを知ることができます。cookie が Commerce Server でどのように使われるかについては、「認証の概念」を参照してください。

特定のユーザー セッションで収集されたすべての情報は、1 つのプロファイル、つまりプロファイル定義の 1 つのインスタンスに収集されます。

関連項目

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル定義

プロファイル プロパティ

サンプルのプロファイル定義


サンプルのプロファイル定義

Commerce Server ソリューション サイトには、サンプルのプロファイル定義が用意されています。サイト開発者がソリューション サイトを使ってサイトを構築した場合は、次の表に示す 5 つのプロファイル定義があらかじめ用意されています。

プロファイル定義 | プロパティ (データ型) | 説明
住所 | 住所 ID (文字列) | 住所の識別子
 | ID (文字列) | 組織/ユーザー ID
 | 姓 (文字列) | ユーザーの姓
 | 名 (文字列) | ユーザーの名
 | 住所名 (文字列) | この住所の名前
 | 住所の種類 (Number) | 住所/送付先/請求先
 | 説明 (文字列) | この住所の説明
 | 住所欄 1 (文字列) | 住所の 1 行目
 | 住所欄 2 (文字列) | 住所の 2 行目
 | 市町村 (文字列) | 市町村名
 | 地域コード (文字列) | 州、地域、または都道府県コード
 | 都道府県名 (文字列) | 州、地域、または都道府県名
 | 郵便番号 (文字列) | 郵便番号
 | 国/地域コード (文字列) | 国/地域の国際標準化機構 (ISO) コード
 | 国/地域名 (文字列) | 国/地域名
 | 電話番号 (文字列) | この住所の電話番号
 | 内線番号 (文字列) | この住所の電話内線番号
 | ロケール ID (Number) | 住所フォームを表示するロケール
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
一括注文数 | 注文書 ID (文字列) | 一括注文を示すグローバル一意識別子 (GUID)
 | 組織 ID (文字列) | 組織 ID
 | 注文書番号 (文字列) | 一括注文書番号
 | 説明 (文字列) | 注文書の説明
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
組織 | 組織 ID (文字列) | 組織 ID
 | 名前 (文字列) | 組織の名前
 | 取引先番号 (文字列) | 取引先番号
 | 管理連絡先 (文字列) | 管理連絡先の GUID
 | 受取人 (文字列) | サプライヤからの商品を受け取る担当者のユーザー ID
 | 組織カタログ セット (文字列) | 組織カタログ セット
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 購買マネージャ (文字列) | 購入側組織の購買マネージャのユーザー ID
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
ユーザー オブジェクト | ユーザー ID (文字列) | ユーザー ID
 | ログオン名 (文字列) | ログオン名
 | ユーザー パスワード (Password) | ユーザー パスワード
 | 電子メール (文字列) | ユーザーの電子メール アドレス
 | ユーザーの種類 (Number) | ユーザーの種類
 | 敬称 (文字列) | ユーザーの敬称
 | 姓 (文字列) | ユーザーの姓
 | 名 (文字列) | ユーザーの名
 | 電話番号 (文字列) | ユーザーの電話番号
 | 内線番号 (文字列) | ユーザーの電話内線番号
 | FAX 番号 (文字列) | ユーザーの FAX 番号
 | FAX 内線番号 (文字列) | ユーザーの FAX 内線番号
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 組織 ID (文字列) | 組織 ID
 | アカウントの状態 (Number) | アカウントの状態
 | ユーザー カタログ セット (文字列) | ユーザー カタログ セット
 | 登録日 (Date/Time) | ユーザーが登録した日付
 | キャンペーン履歴 (文字列) | キャンペーン履歴
 | 取引先サービス ロール フラグ (Number) | 取引先サービス ロール
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
対象とするコンテキスト | ページ グループ (文字列) | ページ グループの名前 (スポーツ ページなど)

関連項目

プロファイル リソースの実行

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル定義

プロファイル プロパティ

プロファイル プロパティの属性

プロファイルを収集および格納する


Web ファーム シナリオでプロファイルを使う

Web ファーム シナリオでは、個々のサーバーがローカル プロファイル キャッシュを提供します。あるキャッシュ内のユーザーのプロファイル (ユーザー オブジェクト) の値は、別のサーバー上で変更が加えられて、古くなっている可能性があります。ユーザーのプロファイルに変更が加えられたことをサーバーが認識できるようにするために、UpdateUserProfile メソッドによってプロファイルが作成または更新されると、ユーザーのプロファイル (Profiles ストアに存在) とユーザーの cookie の両方に、最終更新日時が記録されます。

ユーザーが Web ファームのサーバーを訪れると、GetCurrentUserProfile メソッドが使われ、ローカル キャッシュにあるプロファイルのタイムスタンプが cookie の内のタイムスタンプと比較されます。2 つのタイムスタンプが一致していない場合、プロファイルの取得元は Profiles ストアになり、ローカルのキャッシュはバイパスされます。取得には IADs インターフェイスの GetInfo メソッドが使われます。cookie が有効になっていない場合には、キャッシュは常にバイパスされます。ユーザーが [戻る] ボタンをクリックする場合や、ページの表示を更新する場合などもあるので、プロファイルの最終更新日時を追跡する確実な方法がないからです。

また、住所プロファイルの検索でもキャッシュは常にバイパスされます。このような仕様になっているのは、住所プロファイルはアクセスされることが少なく、また、追跡するプロファイルの数が膨大なものになる可能性があるためです。組織プロファイルの検索では、キャッシュは必要に応じてバイパスされます。バイパスされるかどうかは、プロファイル内のデータに変更が加えられる可能性が大きいか小さいかによって決まります。

タイムスタンプを利用したソリューションを採用する場合でも、プロファイルとキャッシュとの整合性に関する問題が解消されるわけではありません。たとえば、現在キャッシュ内にあるユーザー プロファイルが、別のユーザーによって別のコンピュータのビジネス デスクまたは取引先デスクから変更されることがあります。この場合、サイトではキャッシュの内容が最新でないことを認識できません。この問題をある程度緩和するには、ユーザーがソリューション サイトにログインしたときに、GetInfo メソッドを呼び出すようにします。この程度の回避策で十分とはいえない場合は、ソリューション サイトの中で、include\setupenv.asp に宣言されている m_iGlobalProfileLookUpOption 変数を利用します。この変数を設定すると、必ず GetInfo メソッド呼び出しが使われるようになり、プロファイルがプロファイル ストアから取得されるようになります。

以下に示すのは、ソリューション サイトに含まれている EnsureUpToDateUserProfile 関数です。この関数は、上のような問題に対処するための実装が備えなければならない、中核機能の一例です。Web ファームの問題に対処するためのコードのコンテキスト全体を確認するには、ソリューション サイトに含まれている login.asp ファイルと stdprofile_lib.asp ファイルのコードを参照してください。

Sub EnsureUpToDateUserProfile(ByRef rsUser)Sub EnsureUpToDateUserProfile(ByRef rsUser)
   Dim sCookieTimeStamp, sCacheTimeStamp

   ' Since testing cookie support on every page that
   ' calls UpdateUserProfile is
   ' expensive, we assume cookie support unless we detect a ticket in URL.
   If m_iTicketLocation <> 1 Then
      sCookieTimeStamp = Request.Cookies("UserProfileTimeStamp")
      sCacheTimeStamp = CStr(rsUser.Fields("ProfileSystem.date_last_changed").Value)

         If (sCookieTimeStamp = "") Or (sCacheTimeStamp <> sCookieTimeStamp) Then
            Call GetProfileFromDB(rsUser)

            ' Set/update the cookie timestamp
               If rsUser Is Nothing Then
                  ' Delete the cookie for a deleted profile.
                  Response.Cookies("UserProfileTimeStamp").Expires=Now - 1
               Else
          Response.Cookies("UserProfileTimeStamp") =
rsUser.Fields("ProfileSystem.date_last_changed").Value
               End If
         End If
         Else
            ' Get the current user's profile from the database
            ' if cookies are not supported.
            Call GetProfileFromDB(rsUser)
         End If
End Sub

関連項目

プロファイル リソースの実行

Web サイトの管理にプロファイルを使う

プロファイルの構造

プロファイル定義

プロファイル プロパティ

プロファイル プロパティの属性

プロファイルを収集および格納する


ユーザー リストとメーリング リストの概念

ユーザー リストとメーリング リストは、ユーザー プロファイル プロパティを含むテキスト ファイルです。ユーザー リストは、ユーザー プロファイル プロパティを検索したり更新したりするときに使います。メーリング リストは、ダイレクト メール キャンペーンを送信するときに使います。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にリストを使う
  • メーリング リスト
  • ユーザー リスト
  • 汎用リスト


Web サイトの管理にリストを使う

Commerce Server ビジネス デスクのリスト マネージャ モジュールを使って、ビジネス デスクのユーザー リストとメーリング リストのインポートとエクスポートを行います。

  • リストをリスト マネージャに追加する また、SQL Server (SQL テーブルを作成する場合)、メモ帳 (ASCII テキスト ファイルを作成する場合)、Microsoft Excel (スプレッドシートを作成する場合)、Microsoft Outlook (アドレスのリストを含む .pst ファイルをエクスポートする場合) など、他のアプリケーションで作成したリストも、リスト マネージャにインポートできます。

    たとえば、アドレスのリストが Microsoft Excel のスプレッドシートにある場合は、リスト マネージャを使ってそれをビジネス デスクにインポートし、ダイレクト メール キャンペーンで使用できます。

    リスト マネージャにリストをインポートする方法については、「リストをインポートおよびエクスポートする」を参照してください。

  • リスト マネージャからリストを使う リスト マネージャ モジュールからユーザー モジュールにユーザー リストをインポートし、リストのユーザー プロファイルを更新できます。リスト マネージャからユーザー モジュールにユーザー リストをインポートし、ユーザー プロファイルのプロファイル プロパティに特別な値を割り当てて、リストのユーザー プロファイルを更新します。その値を使って、変更したプロファイルを持つユーザーを、特定の広告または割引キャンペーンの対象に指定します。ユーザー モジュールにリストをインポートする方法については、「メーリング リスト内のユーザー プロファイルを検索する」を参照してください。複数のユーザー プロファイルを変更する方法については、「複数のユーザー プロファイルを編集する」を参照してください。

    また、リストを他のアプリケーションにエクスポートすることもできます。ファイルへのリストのエクスポートについては、「リストをインポートおよびエクスポートする」を参照してください。

次の図は、さまざまなソースのデータをリスト マネージャにインポートして、リストをキャンペーンで使う方法、およびプロファイルを更新し、その後、データベースの情報を更新またはユーザーを対象としてコンテンツをパーソナライズする方法を示しています。

関連項目

メーリング リスト

ユーザー リスト

汎用リスト


メーリング リスト

メーリング リストには、ダイレクト メール キャンペーン用の電子メール アドレスが列挙されます。リストの各行に受信者が 1 人ずつ記載され、次の要素がカンマ区切り形式で並べられます。

要素 | 説明
電子メール アドレス | 必須。名前または <名前@ドメイン> 形式にします。
GUID | 省略可。パーソナライズされたメール メッセージにコンテンツを提供するときに使用する一意のユーザー ID です。
メッセージ形式 | 省略可。メッセージ形式の種類を指定します。Collaboration Data Objects (CDO) により、指定した形式に変換されます。たとえば、テキスト、MIME Encapsulation of Aggregate HTML Documents (MHTML)、Multipurpose Internet Mail Extensions (MIME) などの形式があります。
言語 | 省略可。メール メッセージのコード ページ値です。
URL | 省略可。ユーザーごとに個々の URL を CDO に渡すことができます。

リストは、メモ帳などの任意のテキスト エディタを使って作成できます。リスト マネージャ モジュールを使って、ASCII テキスト ファイル、Microsoft Excel や Microsoft Outlook のファイル、または SQL Server データベースのテーブルをインポートすると、ビジネス デスクにメーリング リストを追加できます。Microsoft Outlook の .pst ファイルの情報を使ってメーリング リストを作成する方法については、Microsoft Outlook ヘルプの「ファイルや個人用フォルダ ファイルにアイテムをエクスポートする」を参照してください。

ダイレクト メール キャンペーン用のメーリング リストをインポートする方法については、「メーリング リストをインポートする」を参照してください。

関連項目

Web サイトの管理にリストを使う

ユーザー リスト

汎用リスト


ユーザー リスト

ユーザー リストには、ユーザー ID と、必要に応じてその他のユーザー プロファイル プロパティが列挙されます。リスト マネージャ モジュールからプロファイル定義デザイナ モジュールにユーザー リストをエクスポートし、特定のユーザーのプロパティに対する一括更新を実行できます。

関連項目

Web サイトの管理にリストを使う

メーリング リスト

汎用リスト


汎用リスト

汎用リストには、任意の情報を入れることができるほか、次の例に示すようにヘッダーを含めることができます。

ProductID | ProductName | Unit
1 | 靴下 | 100
2 | シャツ | 20

ユーザー リストやメーリング リストと異なり、汎用リストに内容の要件はありません。汎用リストを使うには、サイト開発者がアプリケーションをカスタマイズする必要があります。

汎用リストは、商品プロパティを設定する場合などに使います。Commerce Server の商品別売り上げレポートを実行し、Web サイトで最も人気のある商品 (売上高の点で) を特定します。次に、カタログ エディタ モジュールを使って、これらが売れ筋商品であることを示すプロパティを設定します。このプロパティを使って、対象式を作成したり、売れ筋商品の価格を 5% 割り増したりすることができます。

汎用リストのその他の使い方として、現実世界の店舗で利用できる割引券を、オンラインのリピータに郵送できます。

関連項目

Web サイトの管理にリストを使う

メーリング リスト

ユーザー リスト


カタログの概念

"カタログ" は、販売する商品を系統立てる手段です。カタログを使って、サイトで公開するデータベースの商品データを整理および管理したり、商品の対象ユーザーを特定します。

Commerce Server ビジネス デスクでは、カタログを整理するために、カタログごとに定義されたプロパティの説明がカタログ定義に保持されます。定義には、カタログで許可されるすべてのカテゴリ、商品、およびプロパティが列挙されます。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にカタログを使う
  • カタログ構造の概要
  • カタログ : 商品とカテゴリ
  • カタログ定義 : 商品およびカテゴリの説明
  • カタログの一意識別子
  • カタログの階層と関連付け
  • 基本カタログと仮想カタログ
  • カタログの名前とサイズの制限
  • 複数サプライヤからのカタログ
  • 集合カタログ
  • 多言語に対応可能なカタログ
  • 外部カタログ : 結合キーを使う
  • カタログ セット
  • 商品価格の設定方法


Web サイトの管理にカタログを使う

カタログを作成および保守するには、Commerce Server ビジネス デスクのカタログ モジュールを使います。カタログの商品の販売を促進するには、他のビジネス デスク モジュールを使います。たとえば、サイトの運用中に、分析モジュールを使ってレポートを実行して売れ行きの良くない商品を特定し、キャンペーン モジュールを使って、これらの商品の売り上げを拡大するための割引キャンペーンを作成できます。

ビジネス デスクを使うと、次のようなことができます。

  • 他のデータ ソースからカタログをインポートする 拡張マークアップ言語 (XML) 形式またはコンマ区切り値 (CSV) 形式のカタログをインポートできます。たとえば、他のデータベースにカタログがある場合は、Commerce Server のカタログ データベースにインポートし、ビジネス デスクを使って管理できます。

    カタログを XML 形式または CSV 形式に変換するには、既存のデータベース管理システムを使って XML 形式または CSV 形式でカタログを保存するか、カタログを変換するスクリプトの作成をサイト開発者に依頼します。

  • カタログをエクスポートする カタログを XML 形式でエクスポートできます。たとえば、商品を卸で販売している場合、小売業者にカタログを提示するには、カタログをエクスポートします。また、在庫管理システムや価格設定システムなどのアプリケーションに、カタログをエクスポートすることもできます。

    カタログを定期的に Commerce Server にインポートまたはエクスポートする場合は、サイト開発者はその機能を追加できます。

  • 商品に割引を適用する 割引は、カテゴリのすべての商品に適用することも、指定した条件を満たす特定の商品に適用することもできます。たとえば、Product.price > 2000 (商品の値段 > 2,000 円) であれば、ユーザーがこの商品を買い物バスケットに追加したときに、商品の価格に 10% の割引を適用するように指定できます。
  • カタログの商品を編集する 必要に応じて、商品名、価格、説明、およびその他の商品プロパティを変更できます。
  • 商品情報をリアルタイムで更新する 商品価格などの商品情報を更新し、変更を直ちに Web サイトで公開できます。たとえば、ユーザーが商品をバスケットに追加し、その支払の前にサイトが更新された場合は、バスケット内の商品に新しい価格が適用されます。ユーザーがバスケットを保存し、価格の更新後にバスケットに戻ると、新しい価格が表示されます。
  • 売れている商品を特定する Commerce Server のレポートを実行すると、最もよく売れている商品を販売数量または合計販売数に基づいて特定できます。また、最もよく売れているカテゴリも、販売数量または合計販売数に基づいて特定できます。分析結果を利用して、売れ行きのよくない商品に割引を適用したり、よく売れている商品の付属品の販売を促進することもできます。さらに、サイト開発者は、アップセルやインテリジェント クロスセルなどの関連セルをサポートするようにサイトをカスタマイズできます。
  • 商品を検索する プロパティによる検索やフリーテキスト検索を実行して、商品を検索できます。

次の図は、商品カタログ システムでの処理概要を示しています。処理には、カタログのインポートとエクスポート、カタログ データベースの更新、レポート作成のための、カタログ データのデータ ウェアハウスへのインポートが含まれます。


カタログ構造の概要

Commerce Server 2002 のカタログは、次の 3 つの主要な要素で構成されます。

  • カタログ定義 カタログのカテゴリと商品プロパティを記述したものです。定義には、カタログで許可されるすべてのカテゴリ、商品、およびプロパティが列挙されます。カタログ定義は、サイトのすべてのカタログに適用できます。
  • 基本カタログ カタログ定義の単一のインスタンスで、データが格納されます。
  • 仮想カタログ 1 つまたは複数の基本カタログの商品データを参照するカタログです。商品は、データベース内で一意に表されます。これは、その商品が表示される仮想カタログの数とは無関係です。

次の表は、サンプルのカタログ定義 "衣料" と、"スポーツ ウェア" カタログのデータが格納された Clothes カタログ定義の単一のインスタンスを示しています。

カタログ定義 基本カタログ : Sports Clothes
カテゴリ定義 : 部門
カテゴリ プロパティ :
名前
説明
イメージ ファイル名
イメージの高さ
イメージの幅
 カテゴリ : スポーツ シャツ部門

スポーツ シャツ部門
2002 年度版スポーツ シャツ カタログ
Sports_shirts.gif
100
200
商品定義 : シャツ
商品プロパティ :
名前
製造元
価格
商品バリエーション プロパティ :
サイズ
色
SKU
 商品 : Ace サッカー シャツ

Ace サッカー シャツ
Ace シャツ
\2,000

M
グリーン
23354

Commerce Server カタログを理解するには、次のトピックを参照してください。次のトピックでは、スポーツ ウェア カタログなどの Web サイト上に表示される内容から始まって、基本構造となるカタログ定義まで掘り下げて、カタログについて説明しています。


カタログ : 商品とカテゴリ

Commerce Server カタログはカタログ定義のインスタンスであり、個別の商品およびその商品が属するカテゴリに関するデータが格納されます。カタログを作成するには、Commerce Server ビジネス デスクのカタログ モジュールを使って外部カタログをインポートするか、新しいカタログを構築して、そのカタログを Web サイトで公開します。

ここでは、次のトピックについて説明します。

  • カタログ
  • カテゴリ
  • 商品
  • 商品グループと商品バリエーション


カタログ

カタログは、カテゴリ、商品、商品バリエーション、およびプロパティで構成されます。Web サイトを訪問するユーザーは、カテゴリを経由してページ間を移動し、商品の説明を参照し、特定の商品または商品バリエーションを購入します。プロパティは、ユーザーが商品を検索するためのキーワードになります。


カテゴリ

"カテゴリ" は、カテゴリ定義の個別のインスタンスです。たとえば、"部門" という名前のカテゴリ定義を使って、"サッカー シャツ" カテゴリを作成できます。

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、ある商品が複数のカテゴリに属し、価格がカテゴリ レベルで設定されている場合は、プライマリ親カテゴリの価格がその子カテゴリおよび商品に適用されます。価格は、カテゴリ レベルの価格設定を使って、またはカテゴリの仮想カタログ価格ルールを使って設定することができます。


商品

"商品" は、カタログの中の 1 項目です。商品は、プロパティ定義の組み合わせによって定義されます。たとえば、サッカー シャツという名前の商品定義が存在し、"名前"、"色"、および "サイズ" という 3 つのプロパティが定義されている場合は、名前、色、およびサイズの組み合わせをカタログに登録するごとに商品を 1 つ作成します。


商品グループと商品バリエーション

"商品グループ" は、"商品バリエーション" を含む商品です。商品グループと商品の違いはこの点だけです。

前の図で、Ace サッカー シャツは、同じ種類のシャツの、入手可能な色とサイズのすべての組み合わせを含む商品グループです。種類、サイズ、および色の各組み合わせが商品バリエーションです。サイズが L、色がグリーン、SKU が 114 のシャツは、サッカー シャツ商品の商品バリエーションの 1 つです。この場合、サイズ、色、および SKU の組み合わせが商品バリエーションを構成します。

商品グループには、商品名など、常に一意の識別子があります。

商品バリエーションには、SKU などの一意の識別子と価格が必ず含まれます。各商品バリエーションは、同じ商品定義に基づいています。


カタログ定義 : 商品およびカテゴリの説明

カタログ定義は、特定の種類のカタログにおけるカテゴリと商品の特性を記述したものです。たとえば、スポーツ ウェア カタログのカタログ定義には、シャツ、パンツ、シューズなどの商品定義を含めることができます。カタログ定義を作成するには、Commerce Server ビジネス デスクのカタログ定義デザイナ モジュールを使います。

次の図は、カタログ定義の各要素と、それらがカタログの各要素にどのようにマップされるかを示しています。プロパティは、カテゴリ定義と商品定義で使われています。"DEPT" カテゴリ定義は、"サッカー シャツ" カテゴリに使われています。"サッカー シャツ" 商品定義は、"Ace サッカー シャツ" 商品に使われています。

ここでは、次のトピックについて説明します。

  • カタログ定義
  • カテゴリ定義
  • 商品定義
  • プロパティ定義


カタログ定義

カタログ定義は、カテゴリ定義、商品定義、およびプロパティ定義で構成されます。カテゴリ定義と商品定義は、プロパティ定義を使って作成されます。

次の図は、サンプルのカタログ定義の各要素を示しています。

カタログにデータを登録した後でも、カタログ定義は編集できます。たとえば、次の作業を行うことができます。

  • 商品定義またはカテゴリ定義の名前を変更する
  • カテゴリ定義または商品定義に含まれているプロパティを変更する

次の操作を行うことはできません。

  • プロパティ定義の名前を変更する
  • プロパティのデータ型を変更する (数値型から文字列型への変更など)


カテゴリ定義

カテゴリ定義は、カタログの各カテゴリの特性を記述したものです。これらの特性は、カテゴリ プロパティと呼ばれます。カテゴリ定義を作成するには、カテゴリ定義にカテゴリ プロパティを割り当てます。たとえば、"部門" カテゴリ定義に "名前"、"説明"、"イメージ ファイル名"、"イメージの高さ"、"イメージの幅" などのカテゴリ プロパティを割り当てます。"部門" カテゴリ定義に基づいてカテゴリを作成する場合は、カテゴリ プロパティの値を入力します。たとえば、"名前" カテゴリ プロパティに "スポーツ シャツ部門" と指定します。


商品定義

商品定義は、特定の商品の特性を記述したものです。これらの特性は、商品プロパティと呼ばれます。商品定義を作成するには、商品定義に商品プロパティを割り当てます。たとえば、"シャツ" という商品定義を作成し、"名前"、"製造元"、および "価格" という 3 つの商品プロパティを割り当てます。"シャツ" 商品定義に基づいて商品を作成する場合は、商品プロパティの値を入力します。たとえば、"名前" 商品プロパティは "Ace サッカー シャツ" とします。


プロパティ定義

カテゴリ プロパティと商品プロパティは、いずれもプロパティ定義に基づいています。プロパティ定義は、プロパティに関する情報を記述したものです。プロパティのデータ型 (テキスト、文字列、多言語テキスト、Decimal など)、プロパティの名前、およびプロパティの最小値を記述します。たとえば、"S サイズ"、"M サイズ"、"L サイズ" のいずれかの値を取る "シャツのサイズ" という名前のプロパティを作成したり、最小値が 10 で最大値が 120 である "長さ" という名前のプロパティを作成することができます。


カタログの一意識別子

基本カタログを作成するときには、商品と商品バリエーションの一意識別子となるプロパティを指定します。商品と商品バリエーションは、いずれも一意の識別子を持ちます。一意の識別子は、テキスト型または数値型のプロパティです。

注

  • 仮想カタログでは、商品 ID は常に "ProductId"、バリエーション ID は常に "VariantId" です。したがって、仮想カタログを作成するときは、商品 ID やバリエーション ID を指定する必要はありません。

書籍のカタログの場合、たとえば、書名を商品の一意の識別子とし、ISBN 番号を商品バリエーションの一意の識別子とすることができます。『The Quest Ahead』という書籍の場合、ハード カバー版が第 1 のバリエーション、ペーパーバック版が第 2 のバリエーション、オーディオ版が第 3 のバリエーションになります。これら 3 つの商品バリエーションは、いずれも商品グループ "The Quest Ahead" の一部となります。

次の例は、商品グループ "The Quest Ahead" のコンポーネントを示しています。

Product Family = The Quest Ahead
Unique ID = Title:The Quest Ahead

Product Variant = The Quest Ahead hardback
Unique ID = ISBN:1102334
Price = 2000
Product Variant = The Quest Ahead paperback
Unique ID = ISBN:1102335
Price = 1000
Product Variant = The Quest Ahead audio
Unique ID = ISBN:1102336
Price = 1500

一意の識別子の割り当てに関するヒント集の一覧については、「カタログに関するヒント集」を参照してください。


カタログの階層と関連付け

カタログ定義でカタログの基本構造を提供する一方、カタログ内の商品を整理して、ユーザーが目的の商品に移動しやすくするために、カタログの階層と関連付けを作成します。

カタログの階層と関連付けは、同じカタログ内または異なるカタログ内のカテゴリと商品の間で作成することができます。たとえば、大規模なカタログの場合、親カテゴリを作成して、その中に別のカテゴリ、つまり子カテゴリを含むことができます。ユーザーが親カテゴリに移動すると、子カテゴリが表示され、目的の商品が含まれているカテゴリにすぐに移動できます。

ここでは、次のトピックについて説明します。

  • プライマリ親カテゴリ


プライマリ親カテゴリ

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、ある商品が複数のカテゴリに属し、価格がカテゴリ レベルで設定されている場合は、プライマリ親カテゴリの価格がその子カテゴリおよび商品に適用されます。価格は、カテゴリ レベルの価格設定を使って、またはカテゴリの仮想カタログ価格ルールを使って設定することができます。

次の図は、親カテゴリに含まれる複数の子カテゴリが、同時に親カテゴリにもなっているようすを示しています。

前の図で、スポーツ ウェア カタログにはシャツとパンツという 2 つのカテゴリがあります。シャツ カテゴリには、サッカー シャツとツーピースのトラックスーツという 2 つの子カテゴリがあります。このように構成することによって、ユーザーはツーピースのトラックスーツ カテゴリに 2 つの経路で移動できます。つまり、シャツ カテゴリ経由とパンツ カテゴリ経由になります。

この図は、Ace サッカー シャツと Ace サッカー パンツの間のアクセサリの関連付けも示しています。シャツに関心を示すユーザーは、ショートパンツにも関心を示す可能性があります。


基本カタログと仮想カタログ

カタログを作成して整理する前に、基本カタログと仮想カタログという 2 つの種類のカタログを作成できることを理解しておくことが重要です。ここでは、この 2 種類のカタログについて説明し、仮想カタログの使用例を 3 つ示します。

ここでは、次のトピックについて説明します。

  • 基本カタログ
  • 仮想カタログ
  • 仮想カタログの例 1 :特別価格を提示する
  • 仮想カタログの例 2 :別の通貨で商品の価格を設定する
  • 仮想カタログの例 3 :商品のサブセットを提示する


基本カタログ

基本カタログは、カテゴリと商品が含まれますが、特定の価格設定ルールは含まれません。基本カタログには、カタログ データベースに格納されている商品データも含まれます。


仮想カタログ

仮想カタログは、1 つまたは複数の基本カタログに格納されている商品データを参照しています。基本カタログに商品を追加すると、包含ルールによっては、関連付けられた仮想カタログにもその商品が表示される場合があります。仮想カタログの商品がデータベースに表されるのは 1 回だけです。これは、その商品が表示される仮想カタログの数には関係しません。

仮想カタログには、3 つの主要な用途があります。

  • 複数のカタログを集計し、1 つのカタログとしてユーザーに表示する。
  • 複数の通貨で商品の価格を設定する。
  • 特別価格や商品のサブセットを特定のグループのユーザーに提供する。

仮想カタログでは、価格ルールがサポートされます。これによって、カテゴリまたは商品の価格を基本カタログの価格と同じものにするか、違うものにするかを指定できます。これは、たとえば、割合または設定金額を増減して指定します。


仮想カタログの例 1 : 特別価格を提示する

次の図では、ヨーロッパの架空の 2 つの会社、Wheels Express 社と Bikes Galore 社が契約を結んでいます。Wheels Express 社は、Bikes Galore 社の顧客に対してオートバイの車輪を 20% の割引で販売します。商品はすべてユーロ通貨で価格が設定されています。


仮想カタログの例 2 : 別の通貨で商品の価格を設定する

次の図は、基本カタログの商品を含む仮想カタログを示しています。基本カタログの商品の価格は US ドルで設定されています。仮想カタログの価格には 0.56 が掛けられています。したがって、カナダで販売される商品の価格は、カナダ ドルで表示することができます。


仮想カタログの例 3 : 商品のサブセットを提示する

次の図は、基本カタログの商品のサブセットを含む仮想カタログを示しています。商品のサブセットはフランスで販売されます。商品はすべてユーロ通貨で価格が設定されています。


カタログの名前とサイズの制限

ここでは、Commerce Server ビジネス デスク レベルでの、およびカタログ アプリケーション プログラミング インターフェイス (API) レベルでの、カタログの名前とサイズの制限について説明します。

ここでは、次のトピックについて説明します。

  • ビジネス デスクとカタログ API
  • 商品カタログの条件


ビジネス デスクとカタログ API

次の表は、プロパティに使用できる文字についての制限を示しています。

項目 | 名前とサイズの制限
プロパティ定義名
  • プロパティ定義名は 100 文字以内で設定します。
  • 先頭の 1 文字には数字を使用できません。
  • また、コンマ ( , ) またはピリオド ( . ) も使用できません。
  • XML タグ名として認められない文字は使用できません。XML タグ名に使用できる文字の一覧については、次の Web サイトで「Microsoft XML 3.0 - XML Developer's Guide」を参照してください。
    http://go.microsoft.com/fwlink/?LinkId=5161
  • 商品 ID またはバリエーション ID をプロパティ定義名として使うことはできません。
商品定義名 | 商品定義名は 128 文字以内で設定します。
カテゴリ定義名 | カテゴリ定義名は 128 文字以内で設定します。
カタログ名 (内部名、Web サイトにはこの名前は表示されません)
  • この名前は一意でなければなりません。
  • カタログ名は 85 文字以内で設定します。
  • 角かっこ [ ]、単一引用符 (')、丸かっこ ( )、またはシャープ (#) は使用できません。また、コンマ ( , ) またはピリオド ( . ) も使用できません。
  • カタログ表示名には制限はありません。
  • カタログ データを格納する別々のデータベースを備えた複数の Commerce Server サイトが存在し、サイト間で同じデータ ウェアハウスを共有している場合は、それぞれのサイトの別々のカタログに同じ名前を付けないでください。同じ名前のカタログが複数存在する場合、データ ウェアハウスはそれらを 1 つのカタログとして処理します。
カテゴリ名
  • この名前は一意でなければなりません。
  • スラッシュ ( / ) または二重引用符 ( " ) は使用できません。コンマ (,) は使用できません。
  • 100 文字を超える名前は使用できません。
商品名
  • 商品名の最大長は、商品定義で指定される値によって異なります。Commerce Server による長さの制限はありません。
  • 商品ごとに一意の名前を使用します。
  • カテゴリ名と商品名の組み合わせは一意でなければなりません。
    • サイトのカタログを作成したときに一意でない商品名がカテゴリに存在する場合は、ユーザーが購入のために商品を選択すると、正しくない商品が買い物バスケットに追加されることがあります。このような現象は、商品名がカテゴリ名に追加されている場合に発生します。たとえば、商品 "1A" がカテゴリ "B" に存在し、商品 "A" がカテゴリ "B1" に存在すると、これらの商品はいずれも "B1A" として格納されます。
商品 ID
  • 整数または文字を使用します。
  • 日付、時刻、または通貨は使用できません。


商品カタログの条件

次の表は、Commerce Server カタログの条件を示しています。

項目 | サポートされるサイズまたは数
カタログ数 | 10,000 までの基本カタログ、10,000 までの仮想カタログ、または 10,000 までの基本カタログと仮想カタログの組み合わせ
カタログあたりの商品数 | 5,000,000 それぞれ 5,000,000 の商品を含む 10,000 のカタログではテストされていません。
カタログあたりの言語数 | 10
カタログあたりのプロパティ定義数 | 1,000
仮想カタログあたりの基本カタログ数 | 80
仮想カタログあたりの商品数 | 1,000,000
仮想カタログあたりの価格ルール数 | 10,000
カテゴリあたりの商品数 | 10,000
カテゴリのネスト数 | 5

また、Commerce Server では、SQL テキスト データ型がサポートされます。SQL テキスト データ型では、SQL Server における、行のサイズが 8,060 バイトまでという制限は受けません。複数の商品カタログで、SQL Server の 1 つのフルテキスト カタログを共有できます。


複数サプライヤからのカタログ

カタログを複数のサプライヤからインポートし、1 つのカタログとして Web サイトに表示することができます。また、カタログの商品が購入されるときに、注文をサプライヤに直接伝送することができます。

各 Commerce Server カタログには、ベンダ ID 属性が含まれます。この属性が設定されるのは、システム管理者が Microsoft BizTalk Server を使ってベンダとの取引契約を設定するとき (およびアプリケーション既定の構成リソースを構成して BizTalk Options プロパティを 1 に設定するとき) です。ベンダ ID 属性が空の場合は、ビジネス マネージャがそのカタログのベンダであると見なされます。

BizTalk Server と統合した場合は、ベンダ ID 属性は、カタログから購入された項目のベンダに注文書を自動的に送信するために使われます。システム管理者がベンダとの取引契約を設定すると、新しいベンダが Commerce Server ビジネス デスクの、ベンダのボックスの一覧に追加され、そのボックスの一覧からベンダを選択できるようになります。

このシナリオを実現するための主な手順としては次の 2 つがあります。

  • 仮想カタログを作成して、サプライヤのカタログからコンテンツを集計する。手順については、Commerce Server 2002 ヘルプの「仮想カタログを作成する」を参照してください。
  • Commerce Server を BizTalk Server と統合し、注文を取引先に伝送する。手順については、Commerce Server 2002 ヘルプの「BizTalk Server との統合」を参照してください。

次に、ビジネス マネージャとベンダが BizTalk Server を使ってカタログを交換する手順の概要を示します。

  1. BizTalk Server をインストールして、ベンダからカタログを受信できるように構成します。
  2. アプリケーション既定の構成リソースを構成して、BizTalk Options プロパティを 1 に設定します。
  3. ベンダとの取引契約を設定します。
  4. ベンダから電子メールまたは BizTalk Server を使ってカタログが送信されたら、ビジネス マネージャは、ビジネス デスクのカタログ エディタ モジュールを使って Commerce Server のカタログ データベースにインポートします。
  5. カタログ エディタ モジュールのツール バーにある送信ボタンをクリックすると、カタログをビジネス デスクからベンダに送信できます。BizTalk Server および契約で定義されているベンダを示すダイアログ ボックスが表示されます。これらのベンダにカタログを送信できます。

1 つのベンダには、複数のカタログを関連付けることができます。また、ビジネス マネージャは、商品レベルでベンダを指定できます。商品レベルでベンダを指定する場合は、サイト開発者が Web サイトの _additem.asp ページをカスタマイズする必要があります。_additem.asp のカスタマイズについては、「Commerce Server Solution Sites」を参照してください。


集合カタログ

集合カタログでは、複数のカタログのコンテンツが表示されます。たとえば、複数のサプライヤからのコンテンツを販売する場合で、各サプライヤから 1 つまたは複数のカタログが送信される場合は、コンテンツを 1 つの集合カタログに結合できます。

2 つ以上のカタログを集計するには、まず、仮想カタログを作成し、次に、基本カタログのコンテンツを含めます。集合カタログは、サイトを訪問するユーザーには 1 つのカタログとして表示されます。

集合カタログとカタログ セットは、それぞれを構成するコンポーネントが異なり、また、その用途も異なります。

  • 集合カタログとは、複数のカタログを組み合わせて 1 つの仮想カタログとしたものです。
  • カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。カタログ セットを作成する場合は、集合カタログおよびデータベース内の他のカタログを含むカタログ セットを作成できます。

カタログ セット内のカタログは、表示可能なユーザーや組織を指定できます。集合カタログがカタログ セットのメンバでない場合は、集合カタログはすべてのユーザーで利用可能です。


多言語に対応可能なカタログ

多言語に対応可能なカタログでは、カテゴリおよび商品のテキストが複数の言語によって表示されます。たとえば、商品情報を、英語、フランス語、および日本語で表示できます。

多言語に対応可能なカタログを作成する手順の概要を次に示します。手順の詳細については、Commerce Server 2002 ヘルプを参照してください。

  1. 多言語プロパティ定義を追加する 複数の言語で表示する項目に対して多言語プロパティ定義を追加します。

    既定では、カタログ定義には、次のような一連の多言語プロパティが含まれます。

    • "商品名" - "多言語テキスト"
    • "説明" - "多言語テキスト"
    • "色" – "多言語の複数選択"
  2. 商品定義を追加する 多言語プロパティを使う商品定義を追加します。たとえば、"商品名"、"説明"、および "色" を各商品定義に割り当てます。
  3. カタログを作成する カタログを作成して、カタログがサポートする言語 (英語、フランス語、日本語など) を指定します。
  4. 商品を追加する、および、カテゴリを追加する "商品名"、"説明" などの多言語プロパティを含む、商品およびカテゴリを追加します。
  5. 多言語に対応可能な商品およびカテゴリを、カタログでサポートされる言語に変換します。カタログを変換するには、次のいずれかの方法を使います。
    • カタログをエクスポートおよびインポートして変換する 多数の商品を変換する場合は、カタログ エディタ モジュールを使ってカタログを XML にエクスポートし、カタログを変換プログラムに送信します。カタログが変換されると、変換されたカタログを Commerce Server で使われるカタログ データベースにインポートできます。これで、Commerce Server ビジネス デスクを使って、必要に応じてカタログを更新して公開することができます。
    • ビジネス デスクを使ってカタログを変換する 少数の商品を変換する場合は、ビジネス デスクのカタログ エディタ モジュールを使って、別の言語の商品データを手動で追加します。


外部カタログ : 結合キーを使う

Commerce Server 2002 の新機能として、結合キーのサポートがあります。結合キーを使うと、外部テーブルにリンクして実行時に在庫データを取得したり、商品に複数の値を関連付けたりすることができます。

次に、結合キーを使うための一般的なシナリオを 2 つ示します。

  • 在庫データなど、更新される頻度の高いカタログ データは、実行時に取得する。カタログ自体に在庫データを含むことはできません。これは、サイトではカタログ データベースへの書き込みが行われないためです。さらに、ネットワーク負荷分散を使うには、カタログ データベースが読み取り専用でなければなりません。
  • 1 つの商品に複数に値を関連付ける。たとえば、CD に対しては曲目リストを、映画のタイトルに対しては配役リストを関連付けます。また、商品に対する顧客評価のリストを関連付けます。

次の図は、結合キーを使って、外部テーブルおよび Commerce Server カタログ データベースからデータを取得する方法を示しています。


カタログ セット

"カタログ セット" を作成すると、サイトでユーザーに対して表示するカタログを決定できます。カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。

カタログ セットと集合カタログは、それぞれを構成するコンポーネントが異なり、また、その用途も異なります。

  • 集合カタログとは、複数のカタログを組み合わせて 1 つの仮想カタログとしたものです。
  • カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。カタログ セットを作成する場合は、集合カタログおよびデータベース内の他のカタログを含むカタログ セットを作成できます。

カタログ セット内のカタログは、表示可能なユーザーや組織を指定できます。集合カタログがカタログ セットのメンバでない場合は、集合カタログはすべてのユーザーで利用可能です。

カタログを作成するには、たとえば、2 つの基本カタログと 1 つの仮想カタログを作成し、これらの基本カタログと仮想カタログを含むカタログ セットを定義して、特定の組織のメンバにこのカタログ セットを表示します。次の図は、特別価格が設定されたチーム ウェアのカタログを、サッカー クラブのメンバが表示できるようにするしくみを示しています。

ユーザーが表示可能なカタログ セットを指定するには、ビジネス デスクのプロファイル モジュールを使います。新しいユーザーを作成するときに、カタログ セットの名前を指定します。


商品価格の設定方法

一般的に、商品の価格は定期的に更新する必要があります。カタログにある商品の当初の価格は、直接価格設定、間接価格設定、および特別価格設定 (価格ルール) のいずれかの方法で設定できます。

ここでは、次のトピックについて説明します。

  • 直接価格設定
  • 間接価格設定
  • 特別価格設定 (仮想カタログの価格ルール)


直接価格設定

商品の価格を商品自体に定義します。商品を作成または編集するときに価格を設定できます。


間接価格設定

価格は、特定の価格カテゴリとの関連によって決定されます。商品が価格カテゴリに関連付けられていると、商品の価格はそのカテゴリで指定された価格に置き換えられます。特定の価格カテゴリとの関連付けがなくなると、商品の価格は元に戻ります。

すべての商品が 200 円の特別なカテゴリを作成するなど、商品のグループに同じ価格設定をする場合は、通常、間接価格設定を使います。


特別価格設定 (仮想カタログの価格ルール)

仮想カタログでは、カテゴリ、商品、または商品バリエーションに価格ルールを適用できます。

代替通貨で仮想カタログを作成する場合、または割引価格を適用するクラブのメンバなど特定のユーザーのグループだけに表示する仮想カタログを作成する場合は、価格ルールを適用します。

1 つのカテゴリ、商品、または商品バリエーションには、1 つの価格ルールしか設定できません。

仮想カタログのカテゴリおよび商品には、次の価格ルールを適用できます。

  • 設定価格 正確な商品価格を指定します。たとえば、商品を 1,000 円で販売するときに使います。
  • 割増 基本価格に上乗せする金額を指定します。
  • 割増率 価格に上乗せする基本価格の割合を指定します。
  • 割引 基本価格から差し引く金額を指定します。
  • 割引率 価格から差し引く割合を指定します。たとえば、価格の 20% を差し引く場合は 20% を指定します。

特別価格設定の詳細については、「複数の通貨で商品の価格を設定する」を参照してください。

関連項目

Using Current Product Prices vs Original Product Prices


データ ウェアハウスの概念

Commerce Server 2002 のデータ ウェアハウスは、SQL Server データベースとオンライン分析処理 (OLAP) データベースとの組み合わせで、システム管理者がデータのインポートと保守に使用する一連のプロセスです。データ ウェアハウスは、さまざまなデータ ソースから収集した大量のサイト利用状況データをインポートします。このデータは、Web サーバー ログや Commerce Server データベース (カタログ、およびトランザクション) から収集されます。また、データ ソースを指定することもできます。収集されたデータは、SQL Server と OLAP データベースで管理されます。さらに、これらのデータベースを使って、レポートの作成が行われます。

データ ウェアハウスは、強力なクエリや分析機能をサポートしています。データ ウェアハウスのデータを分析するには、Commerce Server ビジネス デスクの分析モジュールを使います。サイトを更新して、コンテンツの対象として特定のユーザー グループを指定したり、特定の商品を販売したりできます。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にデータ ウェアハウスを使う
  • データ ウェアハウスの構造
  • データ ウェアハウスへのデータ インポートの概要
  • OLAP Server で分析するデータを準備する
  • レポート : 動的と静的


Web サイトの管理にデータ ウェアハウスを使う

データ ウェアハウスは、複数のデータ ソースから収集したデータを 1 つの構造にまとめます。このため、レポートの作成に使うデータが、一貫したものになります。これを Commerce Server ビジネス分析システムと呼びます。ビジネス分析では、Web サイトのデータに基づいて Web サイトのパフォーマンスを確認します。ビジネス分析で得られた情報を使って、顧客サービスの向上を図り、コンテンツの対象となるユーザーを設定できます。

ビジネス分析を行うと、Web サイトのパフォーマンスについて、次のような判断材料が得られます。

  • このサイトにアクセスする前にユーザーが訪問していたサイト (参照元サイト)
  • 最も人気があるページ
  • 最も売れ行きが良い商品

これらの判断材料を利用すると、売り上げを伸ばしてユーザーを維持するように、Web サイトを変更できます。たとえば、広告を表示して、新しい商品を宣伝するとします。広告を 1 週間表示した後でレポートを実行し、広告によって商品の売り上げが伸びたかどうかを確認できます。売り上げが伸びなかった場合は、新しい商品に 10% の割引を適用するなどしてサイトを更新し、割引によって売り上げが伸びたかどうかを 1 週間後に確認します。

関連項目

データ ウェアハウスの構造

データ ウェアハウスへのデータ インポートの概要

OLAP Server で分析するデータを準備する

レポート


データ ウェアハウスの構造

データ ウェアハウスには、2 つの主要な要素があります。

  • 物理ストア SQL クエリを使ってクエリを実行できる Microsoft SQL Server データベース、およびレポートの実行に使用できる OLAP データベースです。
  • 論理スキーマ 物理ストアのデータにマッピングする概念モデルです。

次の図は、物理ストアと論理スキーマの関係を示しています。

物理ストア

データ ウェアハウスの物理ストアには、SQL クエリを使ってクエリを実行できる、1 つのデータベースが含まれます。物理ストアには、さまざまなデータ ソースからインポートしたすべてのデータが格納されます。

アンパック処理中に、Commerce Server は、SQL Server データベースと OLAP データベースの両方に、自動的にデータ ウェアハウスの物理ストアを構築します。データ ウェアハウスは、ビジネス デスクの分析モジュールで利用できるすべての Commerce Server レポートに必要なデータを提供します。

論理スキーマ

論理スキーマは、データ ウェアハウスのデータをわかりやすい形式で表示し、効率的なインポート処理をサポートします。たとえば、サイト開発者は論理スキーマを使って、基になる物理テーブルにおけるデータの格納場所を変更します。サイト開発者がデータ ウェアハウスのデータを追加、更新、または削除するコードを記述する場合は、論理スキーマと対話します。Commerce Server がデータ ウェアハウスのデータにアクセスするときには、論理スキーマを通じてアクセスします。論理スキーマに関する詳細な知識を必要とするのは、サイト開発者だけです。

論理スキーマには次の要素が含まれます。

  • クラス データ メンバの論理コレクションです。たとえば、RegisteredUser クラスには、登録済みユーザーを表すデータ メンバが含まれます。
  • データ メンバ データを格納する構造体です。たとえば、RegisteredUser クラスの E-mail データ メンバは、登録済みユーザーの電子メール アドレスを格納します。
  • リレーション 2 つのクラス間の親子関係による結びつきです。親子関係は、親のインスタンスに対して、子が持つことのできるインスタンスの数 (1 つまたは複数) を定義します。たとえば、RegisteredUser は子クラス Request の親です。1 人の登録済みユーザーに対して多くの要求が発生する可能性があります。

論理スキーマは、クラス、データ メンバ、リレーション、およびその他のデータ構造を使って、物理ストアのデータをマッピングします。

関連項目

Web サイトの管理にデータ ウェアハウスを使う

データ ウェアハウスの構造

データ ウェアハウスへのデータ インポートの概要

OLAP Server で分析するデータを準備する

レポート


データ ウェアハウスへのデータ インポートの概要

データ ウェアハウスに格納されるデータは、通常、Web サーバー ログ、Commerce Server データベース、およびその他の指定されたデータ ソースなど、複数のデータ ソースから収集されます。次の図は、操作データのソース、およびビジネス デスクで実行する作業のサポートにデータが使われる方法を示しています。

データ ウェアハウスはランタイム環境の一部ではありません。このため、システム管理者は、操作データをデータ ウェアハウスにインポートする頻度を決定する必要があります。たとえば、新しいデータを自動的に毎日または毎週インポートするように、データ ウェアハウスを設定できます。データをインポートする頻度は、操作データ ソースで毎日収集される新しいデータの量によって異なります。Commerce Server には、データ ウェアハウスへのデータのインポートを簡略化する、カスタム データ変換サービス (DTS) タスクが含まれています。これらの DTS タスクは、ビジネス デスクで利用できるレポートが使うデータをインポートします。

操作データは、さまざまな種類のデータベースから、またデータベースではない記憶媒体からもインポートできますが、データ ウェアハウスに収集された後で、すべてのデータが一貫した方法で構築されます。たとえば、ユーザーの姓と名が同じフィールドに格納されたデータ ソースと、姓と名が別個のフィールドに格納されたデータ ソースがあるとします。これらのデータをデータ ウェアハウスにインポートすると、自動的に同じ形式に構築されるため、分析が可能になります。

関連項目

Web サイトの管理にデータ ウェアハウスを使う

データ ウェアハウスの構造

OLAP で分析するデータを準備する

レポート

データ ウェアハウスの実行

ビジネス デスク分析


OLAP で分析するデータを準備する

データがデータ ウェアハウスの SQL Server データベースにインポートされた後で、ビジネス マネージャがレポートを実行できるように、分析の準備を行う必要があります。レポート用のデータを準備するには、システム管理者が DTS タスクを実行して、選択したデータのサブセットを SQL Server データベースから OLAP データベースにエクスポートします。OLAP データベースでは、データがマルチディメンション キューブに格納されます。

データを SQL Server のリレーショナル テーブルではなく OLAP キューブに格納すると、データ ウェアハウスがレポート用にデータを取得する速度が向上します。データは集計されているため、キューブから取得する方が速くなります。つまり、一般的には OLAP の方が SQL Server よりもはるかに高速です。OLAP データは集計されたものですが、SQL Server データには詳細なデータがすべて含まれているためです。たとえば、OLAP を使って、ユーザーの訪問時刻と最初にアクセスした ASP ページに基づいて、サイトを訪問したユーザーをリストするレポートを実行できます。大規模な SQL Server データベースに対してこのようなレポートを実行するのは困難です。

マルチディメンション キューブでは、データは次の 2 種類の構造体にグループ化されます。

  • メジャー 分析の対象となる数値です。
  • ディメンション 色、サイズ、商品、時刻などのビジネス エンティティです。たとえば、赤色の商品と青色の商品の販売数量を比較するには色ディメンションを使い、大きい商品と小さい商品の販売数量を比較するにはサイズ ディメンションを使います。

ユーザーの利用状況に関するレポートの基礎となるのは、ディメンション (色など) とメジャー (商品の販売数量など) の関係です。

次の図は、レポートのディメンションとメジャーを示しています。

関連項目

Web サイトの管理にデータ ウェアハウスを使う

データ ウェアハウスの構造

データ ウェアハウスへのデータ インポートの概要

レポート


レポート : 動的と静的

データ ウェアハウスに格納されているデータを分析するために、Commerce Server には動的レポートと静的レポートが用意されています。

動的レポート

静的レポート

HTTPS 経由で OLAP サーバーを使うレポート


動的レポート

"動的レポート" は実行時に作成されます。このレポートを実行すると、必ず最新のデータが収集されます。収集元が OLAP サーバーの場合は動的 OLAP データ、データ ウェアハウス (SQL Server) の場合は動的 SQL データが対象です。

時間が経過しても変化しないレポート定義だけが保存されます。Commerce Server は、完成した動的レポートを保存しません。ただし、動的レポートの結果を Microsoft Excel にエクスポートして保存することはできます。動的レポートの結果を Microsoft Excel にエクスポートする方法については、「動的レポートをエクスポートする」を参照してください。

次の図は、動的レポートが生成されるしくみを示しています。データ ウェアハウスに格納されているデータが、レポート準備 DTS タスクが実行されると OLAP データベースにキャッシュされ、レポートを実行するためにビジネス デスク クライアントによってアクセスされます。


静的レポート

"静的レポート" は、要求に応じて直ちに実行され、データと共に完成したレポート モジュールに格納されます。レポートはブラウザのウィンドウに HTML 形式で表示されます。静的レポートの結果をリスト マネージャ モジュールにエクスポートし、このリストをダイレクト メール キャンペーンで使用できます。これらのレポートは、電子メールで他の人に送信したり、Web サイトに掲載したり、他のアプリケーションで編集することができます。たとえば、Microsoft Internet Explorer を使ってレポートを Word 文書にエクスポートし、編集することができます。

Commerce Server 2002 には、エグゼクティブ サマリー レポート、販売数量別商品レポート、ユーザー ヒット数レポートなど、ビジネス デスクから実行できるレポートがいくつか含まれています。これらのレポートのいずれかを使うことも、レポートをカスタマイズして他のデータを取得することもできます。

次の図は、静的レポートが生成されるしくみを示しています。データ ウェアハウスに格納されているデータが、OLAP データベースにキャッシュされ、レポート マネージャ コンポーネントによって表示され、レポートを実行するためにビジネス デスク クライアントによってアクセスされます。


HTTPS 経由で OLAP サーバーを使うレポート

ビジネス分析システムでは、インターネット インフォメーション サービス (IIS) 経由で Analysis Services に接続 (OLAP データベースにアクセス) することによって、ビジネス デスク ユーザーが動的レポートを実行できます。この接続方法を構成すると、PivotTable サービスがファイアウォールまたはプロキシ サーバーを通過して Analysis Services サーバーに到達できます。

HTTPS 経由で Analysis Services にアクセスするよう構成するには、次の操作を行います。手順の詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

  • インターネット インフォメーション サービスおよび SQL Server 2000 Enterprise Edition (Enterprise Edition の分析サーバーを含む) を同じコンピュータにインストールします。
  • Commerce Server マネージャを使って [データ ウェアハウスのプロパティ] ダイアログ ボックスにアクセスして、Analysis Services クライアント接続文字列 (ConnStr_OLAP_Client) を構成します。接続文字列のデータ ソース プロパティに URL を指定します。
  • インターネット インフォメーション サービスを使って、Msolap.asp を構成します。

次の図は、HTTPS 経由で OLAP を使うレポートを作成するために使うコンポーネントを示しています。

関連項目

データ ウェアハウスの実行

ビジネス デスク分析


パイプラインの概念

"パイプライン" は、1 ステージ以上のビジネス プロセスを定義して相互にリンクし、それらを順次実行して特定のタスクを完了する、拡張可能なソフトウェア フレームワークです。たとえば、注文処理パイプラインは、サイトで行われた購入の処理に使われる一連の手順を提供します。注文処理パイプラインの最初のステージでは、カタログ データを格納するデータベースから商品情報を取得します。次のステージでは、注文にユーザーの住所を追加します。パイプラインの各ステージは、作業のカテゴリを表します。各ステージの順序によって、作業を完了する順序が決まります。

Commerce Server 2002 には、Commerce Server サイトで必要とされる標準的な処理の大部分を実行する、パイプラインのセットが用意されています。サイト開発者は、サイトのニーズに応じて、これらのパイプラインを調整できます。たとえば、パイプラインに新しいステージを追加したり、パイプライン コンポーネントを既存のシステムと統合したり、コンポーネントをサードパーティが供給する他のコンポーネントに置き換えることができます。

ここでは、次のトピックについて説明します。

  • パイプラインの種類
  • パイプラインの構造
  • パイプラインを作成および編集する


パイプラインの種類

Commerce Server には、次のパイプラインが用意されています。

  • コンテンツ選択パイプライン ユーザーに対して表示するコンテンツを選択します。たとえば、Commerce Server ビジネス デスクを使って作成した対象式、配信する広告の数などに基づいて、ユーザーに対して表示する広告、またはユーザーに提供する割引を決定します。
  • イベント処理パイプライン 表示されたコンテンツに関連するイベント (ユーザーによる広告のクリックなど) を記録し、Commerce Server データベースに格納します。この情報は、たとえば広告をクリックしたユーザーの数など、レポートのために使われます。
  • ダイレクト メーラー パイプライン ダイレクト メール キャンペーン用のメッセージを構築および配信します。パーソナライズした電子メール メッセージも、静的な内容の電子メール メッセージも構築できます。
  • 注文処理パイプライン B2C サイト (Retail) での注文と B2B サイト (Supplier) での注文の両方を処理します。これらのパイプラインによって、必要なステージをすべて経由して、注文が適切に処理されます。たとえば、カタログから商品説明を取得し、ユーザーの送付先を取得し、税額を計算し、合計金額を計算します。

    Commerce Server には、次の注文処理パイプラインが用意されています。

    • 商品パイプライン 商品の価格情報と割引情報を計算します。
    • プラン パイプライン 注文が完全であるかどうかを確認します。たとえば、注文に項目が含まれていない場合は、エラーが生成されます。
    • 購入パイプライン 注文フォームの最終的な購入を受け付けて、データベースの記憶領域に注文を書き込みます。また、レシートを作成して、注文の内容をレシート データベースに書き込むことも可能です。

関連項目

Working with Pipelines

Building Pipeline Components

Pipeline Component Reference

Extending the Content Selection Framework


パイプラインの構造

パイプラインは、パイプライン構成ファイル (.pcf) で定義されます。.pcf ファイルでは、パイプラインの各ステージが示されます。各ステージには、1 つ以上のパイプライン コンポーネントが含まれます。サイト開発者は、サイト固有の要求に対応するように、各ステージを構成できます。

次の図は、リテール購入パイプライン (Purchase.pcf ファイル) の各ステージを示しています。

ASP ページからパイプラインに情報が渡されるときには、次の 2 つのディクショナリが使われます。

  • コンテキスト ディクショナリ 環境に関する情報をパイプラインに提供する、読み取り専用のディクショナリです。たとえば、データベースの接続文字列などが含まれます。
  • 注文ディクショナリ パイプラインが処理するデータを提供する、読み取りと書き込みの両方が可能なディクショナリです。たとえば、ユーザーが注文を送信すると、注文ディクショナリにすべての情報が収集され、注文処理パイプラインに渡されます。

各ディクショナリの内容は、パイプラインの種類に依存します。サイト開発者は、ASP ページのディクショナリに含める情報を指定します。

Commerce Server のパイプラインはトランザクションとして実行できるため、エラーが発生した場合は処理をロール バックできます。さらに、Commerce Server のパイプラインでは、Microsoft Windows 2000 Server のオブジェクト プーリングを利用して、処理速度が大幅に強化されています。オブジェクト プーリングについては、Windows 2000 Server のオンライン マニュアルを参照してください。

関連項目

Working with Pipelines

Building Pipeline Components

Pipeline Component Reference

Extending the Content Selection Framework


パイプラインを作成および編集する

サイト開発者が新しいパイプラインを作成したり、既存のパイプラインを変更するには、パイプライン エディタを使います。Commerce Server には、独自のカスタム パイプラインの基礎として使用できる、7 つの構成済みパイプライン テンプレートが用意されています。新しいパイプラインを作成するためのテンプレート ファイルは、.pct (パイプライン構成テンプレートの略) というファイル拡張子を持ちます。ステージの名前を変更したり、ステージを追加または削除することができます。任意のステージの任意のコンポーネントを追加または削除できます。

関連項目

Working with Pipelines

Building Pipeline Components

Pipeline Component Reference

Extending the Content Selection Framework


対象化とパーソナライズの概念

対象化とパーソナライズは、パーソナライズされたコンテンツを 1 人または複数のユーザー、あるいはプロファイルを持つその他のビジネス エンティティに配信する処理です。たとえば、スポーツに関する Web サイトを運用している場合、テニス関連の情報を、テニス プレーヤーのみに配信したり、テニスに興味がある人に配信することができます。近日開催されるテニス トーナメントに関する発表や、テニス商品の広告と宣伝を配信することもできます。

Commerce Server 2002 Standard Edition では、式に基づく対象化が可能です。これは明示対象化とも呼ばれます。配信対象となるユーザーのプロファイル プロパティがわかっている場合、またはコンテキストがわかっている場合で、配信するコンテンツが明確なときに使われます。Commerce Server ビジネス デスクのキャンペーン モジュールを使ってこの情報を指定し、ユーザーにコンテンツを配信します。

式に基づく対象化を使った場合、受信するユーザーの興味を引くコンテンツを配信できる可能性が高まります。パーソナライズされたコンテンツを期待できる場合、ユーザーが再びサイトを訪問する確率が上がります。

ここでは、次のトピックについて説明します。

  • Web サイトの管理に対象化を使う
  • 式に基づく対象化
  • 式を処理する


Web サイトの管理に対象化を使う

プロファイルを持つビジネス関連の項目に合わせて、コンテンツを対象化できます。たとえば、匿名ユーザー、登録済みユーザー、企業、またはコンテキストに合わせて、コンテンツを対象化できます。プロファイルの概念については、「プロファイルの概念」を参照してください。

ビジネス関連の項目に合わせてコンテンツを対象化するには、ビジネス デスクを使います。たとえば、次の作業を行うことができます。

  • ユーザーにパーソナライズされたメッセージを配信するためのダイレクト メール キャンペーンを作成する。
  • 特定のユーザー プロファイル プロパティに基づいて、ユーザーに広告などのコンテンツを配信する。たとえば、"好きなスポーツ" プロパティが "自転車" に設定されているユーザーに、自転車の広告を表示します。
  • Web ページのグループを特定し、それらのページにのみ、または特定のプロパティを持つユーザーがそれらのページにアクセスした場合にのみ表示されるようにコンテンツを対象化する。
  • ページ上の他のコンテンツのプロパティに基づいて、ページにコンテンツを表示する。たとえば、Web サイトでニュースを提供する場合、Weather_Type プロパティが "Hot" か "Cold" かを指定して、コンテンツにプロファイルを割り当てます。Weather_Type = Hot (天気 = 暑い) の場合、エアコンの広告を表示できます。
  • 商品自体の特性やユーザー プロファイルに基づいて、カタログの特定の商品に割引を適用する。
  • 割引を表示する時期、および注文に割引を適用する時期を選択する。たとえば、ユーザーが項目をバスケットに入れたとき、または支払うときに、割引を適用できます。

関連項目

式に基づく対象化

式を処理する

式ビルダ


式に基づく対象化

式に基づく対象化は、対象化するユーザーまたはコンテキスト、および配信するコンテンツを定義する式を作成する処理です。"式" とは、プロファイルに対して評価される条件で、コンテンツを配信するか、またはその他のアクションを実行するかを決定します。たとえば、user.totalvisit > 100 (ユーザーの訪問回数の合計 > 100 回) という式があるとします。この式の評価結果が True の場合、ユーザーに対して該当するコンテンツが表示されます。

ビジネス デスクのキャンペーン モジュールを使って式を作成し、式を評価した後に実行するアクションに式を結合します。次の 2 種類の式を作成できます。

  • 対象式 どこで、いつ、だれにコンテンツを表示するかを特定します。たとえば、特定のプロファイル プロパティを持つユーザーをコンテンツの対象に設定できます。また、"ページ グループ" と呼ばれる、Web サイトの特定のセクションをコンテンツの対象に設定することもできます。たとえば、スポーツのページにのみ特定の広告を表示する対象式を作成できます。
  • カタログ式 割引を適用できるカタログの商品を指定します。たとえば、Product.price = 2000 (商品の値段 = 2,000 円) というカタログ式を作成します。この式の評価結果が特定の商品で True の場合、ユーザーが買い物バスケットにその商品を追加すると、商品の価格に 10% の割引が適用されます。

対象式を作成した後で、それらを結合して対象グループを形成できます。"対象グループ" は、式とアクションの集合です。たとえば、サイトを 10 回訪問したユーザーに特定のコンテンツを表示する式と、サッカー シャツを購入したユーザーにコンテンツを表示する式を作成します。これら 2 つの式を AND または OR ステートメントで結合し、対象グループにします。次に例を示します。

ユーザーがサイトを 10 回訪問し、かつ、そのユーザーがサッカー シャツを購入した場合、
サッカー商品の広告を表示する。

対象グループでは、各式の評価結果が True になったときに実行する "アクション" を指定して、式を結合します。各アクションにはそれぞれ 2 つの乗数があります。式が True の場合に適用する乗数と、式が False の場合に適用する乗数です。乗数が適用されると、式にはスコアが与えられ、コンテンツの配信が有効かどうかに影響します。次のアクションを指定できます。

  • 対象 式の評価結果が True の場合、スコアは増加し、コンテンツが表示される確率も上がります。式の評価結果が False の場合、スコアは変わりません。いずれの場合でも、コンテンツの配信は有効です。
  • 適用 式の評価結果が True の場合、コンテンツの配信は有効です。False の場合、コンテンツの配信は無効です。
  • 除外 式の評価結果が True の場合、コンテンツの配信は無効です。False の場合、コンテンツの配信は有効です。
  • スポンサー 式の評価結果が True の場合、コンテンツの配信は有効です。他のコンテンツは、同じ action = Sponsor (アクション = スポンサー) の式がない限り無効です (スポンサーの乗数は 1 つだけです)。たとえば、Microsoft がホーム ページの広告のスポンサーである場合は、Microsoft の広告だけが表示されます。ただし、他にもそのホーム ページのスポンサー企業の広告がある場合は、それらの広告の表示も有効になります。

サイト開発者は、Commerce Server に用意されている乗数の値を変更できます。あるアクション タイプが設定された式の優先順位を、他のアクション タイプが設定された式より高くする場合などに、この値を変更します。

関連項目

Web サイトの管理に対象化を使う

式を処理する

式ビルダ


式を処理する

Commerce Server は、いくつかの処理を実行して、ユーザーに対して表示するコンテンツを指定します。この処理では、次のコンポーネントが使われます。

  • 式エバリュエータ この Component Object Model (COM) オブジェクトは、式とユーザー データを入力すると、式を処理して評価結果が True と False のいずれになるかを決定します。
  • コンテンツ選択フレームワーク (CSF) このプラットフォーム レベルのフレームワークには、式の結果として実行されるアクションを決定する一連のコンポーネントとパイプライン (コンテンツ選択パイプラインとイベント処理パイプライン) が含まれます。

次の図は、対象式、カタログ式、ユーザー データ、およびコンテキスト データが式エバリュエータに入力され、その結果が True、False、または未定義になるしくみを示しています。結果は CSF に入力され、CSF は実行するアクションを決定します。

式エバリュエータと CSF が式を処理するしくみを表す図

関連項目

Extending the Content Selection Framework

キャンペーンの概念

ビジネス デスク キャンペーン

式ビルダ


キャンペーンの概念

"キャンペーン" とは、市場シェアの拡大、新製品の発売、顧客の維持など、特定の目的を達成するために、さまざまなコミュニケーション手段を使って行うマーケティング プログラムです。Commerce Server には、オンライン キャンペーンを実施するためのさまざまな機能が用意されています。たとえば、広告、割引、またはダイレクト メールのキャンペーンを作成できます。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にキャンペーンを使う
  • キャンペーンの構造
  • キャンペーン目標設定
  • キャンペーンの参照テーブル


Web サイトの管理にキャンペーンを使う

キャンペーン モジュールは、顧客と協力し、広告、割引、およびダイレクト メールの効果を最大にできるように設計されています。キャンペーンを使うと、次のようなことができます。

  • 広告や割引の対象を特定のプロファイルを持つユーザーに設定する プロファイル定義デザイナ モジュールを使ってユーザー プロファイルを設定し、キャンペーンに組み込みます。広告のページごとに、ページを参照しているユーザーのプロファイルを参照し、対象化されたコンテンツを表示するか、またはまったく表示しないかを指定することができます。
  • 同じ業種で競合する複数の顧客向けにキャンペーンを実行する 競合する広告が同じページに表示されることは決してありません。
  • 顧客が希望する広告要求数に基づいて顧客に料金を請求する コンテンツ選択フレームワークは、コンテンツのランク付けの際にこれを考慮します。

次の図は、対象化システムのキャンペーン機能で使うコンポーネントを示しています。


キャンペーンの構造

キャンペーン、およびキャンペーンに関連付けられたキャンペーン項目は、顧客ごとにグループ化されます。請求先などの顧客情報が、その顧客用に作成されるすべてのキャンペーン、およびレポートの作成に使われます。キャンペーン マネージャでは、すべての顧客をアルファベット順で表示できます。

キャンペーンは、"キャンペーン項目" をグループ化したものです。キャンペーン項目には、広告、割引、およびダイレクト メール キャンペーンの 3 種類があります。各キャンペーンは、複数のキャンペーン項目を持つことができます。たとえば、新しい商品を宣伝するキャンペーンに、ホーム ページ上の広告バナー、新しい商品を発表するパーソナライズされたダイレクト メール メッセージ、および 6 月中にその商品を購入したユーザーに 10% の割引を提供する割引キャンペーン項目の 3 つのキャンペーン項目を含めることができます。

1 つのキャンペーンに含まれるキャンペーン項目は、顧客と日付範囲がすべて共通です。たとえば、新聞サイトの旅行セクションで、広告主が米国北西部からユーザーに対して 1 週間以内に 10,000 件の要求を配信するように要請したとします。この広告主は、10,000 件の要求を実現するために 3 種類の広告を掲載し、クリック数が最も多い広告を特定しようとしているとします。この場合、各広告がキャンペーン項目となります。

関連項目

Web サイトの管理にキャンペーンを使う

キャンペーン目標設定

キャンペーンの参照テーブル


キャンペーン目標設定

"キャンペーン目標設定" は、一定期間内に配信する広告の数 (目標) を指定する処理です。広告のクリック数または広告に対する要求数で目標を設定できます。キャンペーンの目標は、キャンペーン レベルまたは広告レベルで設定できます。

  • "キャンペーン レベルの目標設定" では、要求の総数をウエイトに従って配分することによって、キャンペーンのすべてのキャンペーン項目 (広告) に目標を適用します。

    たとえば、ある顧客について、キャンペーン レベルで目標を設定するとします。顧客からは 2 種類の広告を与えられ、25,000 回の広告要求の注文を受けています。キャンペーン レベルでは、一方の広告には広告要求数の 60% が表示されるように設定し、もう一方の広告には広告要求数の 40% が表示されるように設定します。たとえば、顧客が広告要求の数を 40,000 回に変更した場合でも、広告が表示される回数を手動で変更する必要はありません。表示回数は 60% と 40% のままになります。

  • "広告レベルの目標設定" では、キャンペーン項目レベルで目標を適用します。キャンペーンの要求の総数は、注文された各キャンペーン項目の要求の合計数と等しくなります。たとえば、ある顧客が 1 か月で 50,000 回の広告要求を注文したとします。この場合は、広告の項目を 50,000 回配信する必要があります。

キャンペーン レベルの目標設定と広告レベルの目標設定は、切り替えることができます。キャンペーン レベルの目標設定によって、広告のウエイトの計算方法が決まります。たとえば、キャンペーン マネージャでキャンペーン レベルの目標設定を行い、各キャンペーン項目のウエイトに 1 を割り当てておきます。目標設定のレベルは、後で広告レベルに変更することができます。また、キャンペーン項目の 1 つについて、追加の広告要求を出すこともできます。キャンペーンの合計の目標値は、追加の広告要求を足した値になります。

広告レベルの目標設定からキャンペーン レベルの目標設定に変更したキャンペーンに広告を追加する場合は、すべての広告のウエイトを変更する必要があります。ウエイトを変更しない場合は、広告の配信にゆがみが生じることになります。キャンペーン レベルの目標設定と広告レベルの目標設定を切り替える方法については、「キャンペーン レベル目標設定と広告の項目目標設定を切り替える」を参照してください。

関連項目

Web サイトの管理にキャンペーンを使う

キャンペーンの構造

キャンペーンの参照テーブル


キャンペーンの参照テーブル

ビジネス デスクの参照テーブル モジュールは、サイトに表示されるコンテンツのサイズを設定し、ページ グループの名前を管理し、同じ業種の 2 つの広告が同時に同じページに表示されないようにするための業種コードを設定するときに使います。参照テーブル モジュールのプロパティによって、サイト全体で広告コンテンツの一貫性を保つことができます。

  • "コンテンツ サイズ" は、コンテンツ (広告および割引) に指定するサイズです。Commerce Server 2002 では、既定のコンテンツ サイズがいくつか用意されています。これらのコンテンツ サイズは、Internet Advertising Bureau (IAB) によって承認された、一般に使われるサイズのリストに基づいています。コンテンツ サイズは、参照テーブル モジュールの [コンテンツ サイズ] セクションで確認します。

    参照テーブルのコンテンツ サイズは、キャンペーン項目のコンテンツ サイズを選択するときに利用できます。定義済みのサイズは、どれでも表示、編集、および削除できます。必要に応じて新しいコンテンツ サイズを作成することもできます。

  • "業種コード" は、自動車、航空、飲料などのさまざまな業種に対応するコードです。業種コードを使うと、広告に関連付けられている業種を特定できるため、同じ業種で競合している複数の企業の広告が同じページに表示されないようにすることができます。業種コードは、割引には適用されません。

    たとえば、業種コードを更新して、コーヒー用に 1 つとミルク用に 1 つ、のように複数の飲料コードを含めると、種類の異なる飲料の広告を同じページに表示できます。たとえば、コーヒーの広告とミルクの広告が同じページで競合しても問題のない場合があります。このテーブルのエントリ数を調整することによって、業種の競合を監視するレベルを設定できます。

    Commerce Server には、一般的な業種コードがいくつか用意されています。広告で使用する業種コードは、参照テーブル モジュールの [業種コード] セクションで確認します。参照テーブルの業種コードは、キャンペーン項目の業種コードを選択するときに利用できます。参照テーブル モジュールの [業種コード] セクションでは、現在のすべての業種コードを一覧表示したり、新しい業種コードを追加したり、業種コードを編集および削除することができます。

  • "ページ グループ" は、特定のページ グループ名を付けられ、広告の対象化に使われる、関連性のある Web ページの集合です。たとえば、新聞のサイトを運用している場合は、トップ記事用に 1 つとローカル ニュース用に 1 つ、スポーツのページ グループを作成できます。さらに、特定のページ グループのページだけに表示されるように広告の対象を指定できます。

    サイトで表示する広告の料金を顧客に請求するときには、ページ グループを広告料の基準に設定できます。たとえば、ホーム ページに表示される広告には割増料金を請求し、それ以外のページに表示される広告には低い料金を請求することができます。

    注
    • ページ グループを使用するには、ページでの広告を有効にする必要があります。詳細については、「Commerce Server Software Development Kit」を参照してください。

関連項目

Web サイトの管理にキャンペーンを使う

キャンペーンの構造

キャンペーン目標設定


広告の概念

Commerce Server では 2 種類の広告をサポートしています。1 つは有料広告で、もう 1 つは自社広告です。

  • "有料広告" は、表示頻度 (NOD) と呼ばれる配信用の特定の計算式に基づいて配信されるコンテンツです。
  • "自社広告" は、有料広告が指定された表示頻度のスケジュールよりも先行して配信された場合に配信されるコンテンツです。たとえば、顧客が 1,000 回の有料広告を 4 か月かけて配信する注文をしているにもかかわらず、最初の 2 か月で 850 回の広告が配信されたとします。この場合、表示頻度のスケジュールを調整するために、自社広告を配信します。

    自社広告は、有料広告を円滑に配信する上で重要な役割を果たします。また、要求に適した有料広告がない場合にも、自社広告が表示されます。たとえば、すべての有料広告が、要求される対象に適さない場合には、自社広告が配信されます。

    自社広告は、売れ残りの在庫を割引価格で販売するときにも使われます。また、サイトの広告が特定の配信目標を持たないけれども指定したウエイトで広告を実行する必要がある場合にも使われます。

ここでは、次のトピックについて説明します。

  • 広告のコンポーネント
  • 広告を対象化する : ウエイトと対象グループ
  • 広告を処理する : コンテンツ選択フレームワーク


広告のコンポーネント

Commerce Server では、広告を次の 4 つの部分から成るものとして扱います。

  • "広告プロパティ" は、広告の名前、種類 (有料広告または自社広告)、ウエイトまたは配信する要求数やクリック数 (有料広告と自社広告の割合)、表示上限回数、および広告に関連付けられた業種を指定します。
  • "広告のスケジュール" は、開始日/時刻と終了日/時刻です。広告を表示する曜日と、曜日ごとの時刻を選択できます。
  • "広告の対象" は、割引を表示するページと、その対象グループを指定します。
  • "広告の表示" は、広告のサイズや種類 (イメージ、テキスト、HTML など) を指定できます。また、必要に応じて、ユーザーが他のページ (または Web サイト) に移動するためにクリックする画像や URL も指定します。広告は、イメージ、テキスト、HTML、クリックできないイメージ、Buy Now、Windows メディア サービス、またはビネットとして表示できます(ビネット広告は、広告を表示するイメージと、それに隣接して表示されるテキストで構成されます)。

関連項目

広告を対象化する : ウエイトと対象グループ

広告を処理する : コンテンツ選択フレームワーク


広告を対象化する : ウエイトと対象グループ

Commerce Server を使って、広告をいつ、どこで、だれに対して表示するかを指定できます。広告を作成するときに、次の項目を指定します。

  • 表示上限回数 1 回のセッション中にユーザーに広告を表示できる回数です。サイトでユーザー プロファイルを使用してキャンペーン履歴を保存する場合、表示上限回数は、セッションを越えてユーザーに広告を表示できる回数となります。
  • ウエイト 特定の顧客のすべてのキャンペーン項目との相関関係で、広告を表示する頻度を決める方法です。キャンペーンでは、キャンペーン レベルで目標が設定されている広告にのみウエイトが適用されます。広告の目標が項目レベルで設定されている場合、有料広告にウエイトは適用されません。

    自社広告では、ウエイトは、すべての顧客とすべてのキャンペーンに対する他のすべての自社広告と相関関係にあります。有料広告では、ウエイトは同じキャンペーンの他の有料広告との相関関係になります。個々のキャンペーン項目のウエイトは、他のすべてのキャンペーン項目のウエイトとの相関関係になります。

    たとえば、塗料を販売する 4 つの広告に、次のようなウエイトを割り当てるとします。

    広告 | ウエイト | 配信回数の割合
    青色の塗料 | 1 | 10
    緑色の塗料 | 2 | 20
    赤色の塗料 | 3 | 30
    黄色の塗料 | 4 | 40
    ウエイトの合計 | 10 | 100

    すべての広告のウエイトを合計すると、100 (10 + 20 + 30 + 40 = 100) になります。青色の塗料の広告のウエイトは 1 なので、10 回の広告要求ごとに 1 回表示されます。

    有料広告のウエイトは、そのキャンペーンのすべてのキャンペーン項目の合計に対する 1 つの広告の割合になります。自社広告の場合、キャンペーンの他のすべての自社広告のウエイトの合計がウエイトになります。

    キャンペーン項目レベルで目標が設定されている広告では、広告配信の決定にウエイトは使われません。代わりに、配信する要求数またはクリック数を直接指定します。

  • ページ グループ 特定のページ グループ名を付けられ、広告の対象化に使われる、関連性のある Web ページの集合です。たとえば、新聞のサイトを運用している場合は、トップ記事用に 1 つとローカル ニュース用に 1 つ、スポーツのページ グループを作成できます。さらに、特定のページ グループのページだけに表示されるように広告の対象を指定できます。

    ページ グループは、参照テーブル モジュールを使って作成します。

  • 対象グループ コンテンツが表示される対象の集合です。たとえば、特定のプロファイル プロパティを持つユーザーを広告の対象に指定できます。

関連項目

広告のコンポーネント

広告を処理する : コンテンツ選択フレームワーク


広告を処理する : コンテンツ選択フレームワーク

コンテンツ選択フレームワーク (CSF) は、広告に指定した変数 (キャンペーン目標設定、表示上限回数、スケジュール、ウエイト、ページ グループ、および対象グループ) を処理するものです。ユーザーがサイトを訪問するたびに、コンテンツ選択フレームワークは広告を表示すべきかどうかを判断します。

広告のコンテンツ選択フレームワークは、"表示頻度" (NOD) と呼ばれる計算式を使って、まず配信がどの程度スケジュールより遅れているかを基準に広告のスコアを付けます。この計算式では、配信するコンテンツの合計数と、その数量を配信する期間が考慮に入れられます。表示頻度は、コンテンツ選択フレームワークが広告要求を処理した後で、広告要求ごとに計算されます。表示頻度は有料広告にのみ適用され、自社広告には適用されません。

複数の広告があり、それらがどのような基準で表示されているかを知る必要がある場合は、サイト開発者に問い合わせてください。Commerce Server には、サイト開発者が選択処理を追跡するための TraceScores というツールが用意されています。TraceScores を使って、内部のコンテンツ決定処理が実際にどのように機能しているのかを調べます。

同じ対象グループと同じ優先順位を使って多くのキャンペーンを同時に実行する場合、コンテンツ選択フレームワークは広告の種類に基づいて表示する広告を選択します。広告がどちらも自社広告の場合は、ウエイトを相対的確率として使った無作為の選択が行われます。広告が有料広告の場合、表示される広告は表示頻度の計算に基づいて選択されます。この計算では、開始日、終了日、スケジュールされているイベントの数、および現在までに配信されたイベントの数が考慮されます。スコアを変更する要因の 1 つがペナルティ履歴で、ユーザーが最近表示した広告に、スコアを減らすペナルティが適用されます。ペナルティ履歴を有効にすると、広告は時間の経過と共に "循環" します。

関連項目

広告のコンポーネント

広告を対象化する : ウエイトと対象グループ


割引の概念

割引は、Commerce Server による商品取引システムで重要な役割を担う要素です。Commerce Server の割引機能を利用すると、販売促進キャンペーンの管理担当者が、商品または商品グループに販促価格を設定して、その価格を特定の条件を満たすユーザーに提示できます。割引は、カタログのどの項目にも適用できます。注文全体に対して適用する (注文レベルの割引) ことも、注文の特定の項目に対して適用する (項目レベルの割引) こともできます。

ここでは、次のトピックについて説明します。

  • Web サイトの管理に割引を使う
  • 割引の優先順位
  • 割引の条件
  • 割引の特典
  • 割引の制限
  • 条件解除割引
  • クリック必須の割引
  • 割引の特典を受ける対象
  • 複数の割引
  • 割引を処理する


Web サイトの管理に割引を使う

Commerce Server 2002 には、キャンペーンの管理担当者のための機能が用意されています。この機能を使って、1 つの項目または注文に複数の割引を適用したり、割引の適用順序を制御したりできます。また、1 つの注文の中で、項目レベルの割引と注文レベルの割引を混在させることもできます。

  • "注文レベルの割引" は、買い物バスケットのすべての商品に適用されます。たとえば、送料無料は注文レベルの割引の一種です。バスケット内にあるすべての商品の送料を無料にすることができます。Commerce Server で利用できる注文レベルの割引には、送料を無料にする割引、合計金額の何割かを差し引く割引、および合計金額から一定額を差し引く割引があります。

    優待ユーザーに対する 10% の割引など、その他の注文レベルの割引を提供する場合は、サイト開発者がサイトに独自の変更を加える必要があります。

  • "項目レベルの割引" は、バスケット内の特定の商品に適用されます。項目または注文 1 つに対して、複数の割引を適用することができます。

Commerce Server を使って、次の種類の割引を作成および適用できます。

  • "クリック必須の割引" は、ユーザーが割引 URL をクリックした場合にのみ適用されます。たとえば、"10% オフ" などと書かれた商品のイメージが、割引 URL になります。サイト開発者は、この種類の割引を他の用途に拡張し、たとえば顧客が割引を受けるために必要な割引券を提供することなどができます。
  • "レバレッジ割引" は、他の商品の購入に基づいて適用されます。たとえば、ユーザーがバスケットに電話機を追加したら、両手が自由になるヘッドセットを支払い時に提供し、ユーザーがそれをバスケットに追加して受け取るようにすることができます。また、他の付属品を割引価格で提供することもできます。
  • "パーセンテージ割引" は、商品の価格を金額ではなくパーセンテージで引き下げます。たとえば、商品に 10% の割引を適用した後で、必要に応じて商品の価格を変更できます。商品の価格を変更すると、割引金額は自動的に更新されます。
  • "金額割引" は、商品の価格を固定金額で引き下げます。たとえば、特定の商品に対して 500 円の割引を提供できます。商品の価格を変更しても、この割引金額 (500 円) は変わりません。
  • "期間限定割引" は、特定の日数の間だけ、または特定の時間帯だけ商品の価格を引き下げます。割引を特定の時間帯だけ適用するようにスケジュールを設定するには、"現在の時刻" プロパティを評価する式を作成します。たとえば、Current Time > 5:00 pm (現在の時刻 > 午後 5:00) および Current Time < 9:00 pm (現在の時刻 < 午後 9:00) の場合は、商品に 10% の割引を適用します。

これらの割引は、個々の商品に適用することも、カテゴリのすべての商品に適用することもできます。また、特定のメーカーのすべての項目に 10% の割引を適用するような、特定の条件を満たす商品に割引を適用する式を作成することもできます。

たとえば、次の状況で適用する割引を作成できます。

  • 商品の価格が 2,000 円を超えている割引条件式です。割引条件式は、商品プロパティに基づいています。
  • 商品を 2 点購入した 必要な割引条件基準の一部です。
  • スポーツ ページの割引広告をクリックした クリック必須の割引です。
  • 登録済みユーザーである 割引資格要件式です。割引資格要件式は、ユーザー プロファイルとコンテキスト プロファイルに基づいています。


割引の優先順位

割引にはすべて優先順位を設定し、商品に適用される可能性のある他の割引との相関関係で、その割引をいつ適用するかを決定します。広告とは異なり、割引では適用のタイミングの決定にウエイトを使いません。割引は、順位の数値が最も小さいものから順に適用されます。たとえば、優先順位が 10 の割引は、優先順位が 20 の割引よりも先に適用されます。これは、割引が同じ特典項目に適用される場合でも同様です。

たとえば、オンライン ストアの飲料部門が "ジュースを 1 ケース購入したお客様には、2 ケース目を半額でご提供" という夏期特別企画を実施するとします。ただし、このオンライン ストアでは、飲料カテゴリの各商品に 10% の割引を適用する特別提供も実施しています。これらの割引に、次の表に示す優先順位を設定します。

割引 | 優先順位
ジュースを 1 ケース購入すると 2 ケース目は 50% の割引 | 10
飲料カテゴリの各商品に対して 10% の割引 | 20

ユーザーがジュースを 4 ケース購入した場合、割引は次のように適用されます。

  • 1 ケース目 : 割引なし。
  • 2 ケース目 : 50% の割引。
  • 3 ケース目 : 割引なし。
  • 4 ケース目 : "1 ケース購入すると 2 ケース目は半額" の割引に制限が設定されていない場合にのみ、50% の割引。50% の割引の方が優先順位が高いので、10% の割引ではなく 50% の割引が再び適用されます。

1 つの割引項目が複数の割引を受ける場合、それらの割引の優先順位がすべて等しく、種類 (パーセンテージ割引または金額割引) も同じであるときは、それらの割引が結合されます。次のシナリオの例では、2 つの割引が結合されて 1 つの 30% 割引になります。これは、2 つの割引の優先順位 (10) が等しく、種類も同じ (項目レベルのパーセンテージ割引) であるためです。

2 つの割引を作成し、それぞれに、次の表に示すように優先順位 10 を割り当てるとします。

割引 | 優先順位
電話機を購入するとラジオが 10% の割引 | 10
テレビ ゲーム機を購入するとラジオが 20% の割引 | 10

2 つの割引は、結合されて 1 つの 30% 割引になります。これは、2 つの割引の優先順位 (10) が等しく、種類も同じ (項目レベルのパーセンテージ割引) であるためです。

ユーザー バスケット

商品 | 価格 | 割引 | 調整済み合計価格
電話機 | 4,000 |  | 4,000
テレビ ゲーム機 | 5,000 |  | 5,000
ラジオ | 3,000 | 900 (3,000*.30) | 2,100
 |  | 合計 | 11,100

金額割引についても、同様に処理されます。優先順位の等しい金額割引が複数ある場合は、それらの金額割引が結合されます。

割引の優先順位が等しく、種類だけが異なる場合は、注文割引パイプライン コンポーネントによって、最初に適用される割引の種類が決定されます。注文割引パイプライン コンポーネントについては、「How Discounts are Applied Programmatically」を参照してください。


割引の条件

割引の条件 (対象の条件) は、特典をユーザーに提供するかどうかを指定する式です。特典は、ユーザーが購入した内容によって決まります。割引を受けるには、対象の条件を満たす必要があります。この条件は、注文フォームの項目ごとに評価されます。条件を式にして、割引を特定の項目に適用することも、すべての項目に適用するように指定することもできます。対象の条件には、"すべての商品" プロパティ、条件の種類、値、およびカタログ式という要素があります。

  • すべての商品 これを指定すると、特典の対象となる商品がバスケットの中にある場合は、割引が必ず適用されます。たとえば、何か購入すると、ベルトを無料で提供します。"すべての商品" プロパティは、バスケット内の品目が条件として使われないことも示しています。
    • バスケットが空の場合でも、"すべての商品" 割引は常に受ける資格があります。"すべての商品" は、"ゼロ (0) 個の商品を購入する" と同じ意味になります。
  • 条件の種類 対象の条件の種類を決定します。割引の対象の条件には、"数量" と "金額" の 2 種類があります。割引は、ユーザーが購入した数量または金額に基づいて適用できます。たとえば、ユーザーがジュースを 3 ケース購入した場合 (数量) に適用される割引や、ジュースを 2,000 円分購入した場合 (金額) に適用される割引を作成できます。
  • 条件値 条件となる金額または数量を指定します。
  • カタログ式 商品カタログに基づく式です。カタログ式は、ユーザー バスケット内の各項目について評価されます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。次に、条件 (対象の条件) 列にはカタログ式の例、特典 (特典の条件) 列には特典の例を示します。
    条件 (対象の条件) | 特典 (特典の条件)
    ジーンズ 1 本 | シャツが 50% 割引
    "デジタル カメラ" カテゴリ内の商品を 2 つ購入 | フィルム 1 本が 30% 割引
    "デジタル カメラ" カテゴリ内の商品を 1 つ購入
    OR
    カムコーダーを購入     		ラジオが 2,000 円引

割引は、必ず適用されるとは限りません。これは、割引の特典の在庫状況が常に変動するためです。

カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。


割引の特典

"割引の特典 (特典の条件)" は、ユーザーに提供される割引の内容を指定します。割引の特典には、対象商品の種類、値の種類、およびカタログ式という要素があります。

  • 対象商品の種類 特典の対象となる商品を定義します。提供できる特典は、項目レベルの割引、注文レベルの割引、送料割引の 3 種類です。Commerce Server 2002 でサポートされている送料割引は、"送料なし" だけです。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。
  • 値の種類 特典の値を定義します。特典の値は、パーセンテージ割引または金額割引のいずれかです。

    Commerce Server 2002 では、0 円の割引は作成できますが、0% の割引はサポートされません。

  • カタログ式 割引の特典が適用されるのは、この式を評価した結果が True となった場合だけです。カタログ式は、商品カタログに基づいています。割引のためのカタログ式は、ユーザー バスケット内の各項目について評価されます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。

    次の表は、カタログ式の例です。

    条件 (対象の条件) | 特典 (特典の条件) | 割引
    ジーンズ 1 本 | Lee のタートルネック T シャツ 1 枚 | 50% の割引
    注文代金が 50,000 円を超える | "Calvin Klein のブルー ジーンズ" カテゴリ内の任意のズボン | 無料
    カムコーダー "モデル 123" を 1 台購入 フラッシュ メモリ カード 1 枚
    OR
    カムコーダー スタンド 2 脚     		40% の割引

カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。

ユーザーに特典を与える方法は、いくつかあります。Commerce Server では、次の 3 種類の特典をサポートしています。

  • "項目レベルの割引" は、バスケット内の特定の商品に適用されます。項目または注文 1 つに対して、複数の割引を適用することができます。
  • "注文レベルの割引" は、買い物バスケットのすべての商品に適用されます。
  • "送料割引" は、ユーザーが、注文した項目を自分の住所に配送してもらうために支払う送料に適用されます。Commerce Server 2002 でサポートされている送料割引は、"送料なし" だけです。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。

ここでは、次のトピックについて説明します。

  • 注文小計の割引
  • 送料なし


注文小計の割引

"注文小計の割引" では、割引が注文の小計に適用されます。小計の額は、バスケット内の品目ごとに計算されます。払い戻しを正しく処理するためには、たとえ注文レベルの割引であっても、品目ごとに代金を計算する必要があるからです。Commerce Server 2002 が提供できるのは、パーセンテージ割引と金額割引です。

たとえば、キャンペーンの管理担当者が、優待客に 10% の割引を提供することにしたとき、次のような注文があったとします。

  • 1 冊 2,500 円の本を 4 冊 = 10,000 円

割引を最終価格に対してだけ適用した場合、レシートは次のようになります。

項目 | 金額
書籍 1 | 2,500
書籍 2 | 2,500
書籍 3 | 2,500
書籍 4 | 2,500
小計 | 10,000
割引 | (1,000)
合計 | 9,000

この例では、買い物客が本を 1 冊返品した場合、2,500 円全額が返金されます。ただし、買い物客は 1 冊につき 2,500 円支払ったわけではありません。買い物客は 10% の割引を受けているので、実際に支払ったのは 1 冊につき 2,250 円です。このようなことがあるので、たとえ注文レベルの割引であっても、注文された項目すべてについて個々に代金を計算する必要があります。

パーセンテージ割引を適用する

次に、パーセンテージ割引がバスケット内の品目ごとに計算される例を示します。この例では、キャンペーンの管理担当者が、優待客に 10% の割引を提供することにしたとき、次のような注文があったとします。

  • 1 冊 2,500 円の本を 4 冊 = 10,000 円
項目 | 金額
書籍 1 | 2,500
割引 | (250)
小計 | 2,250
書籍 2 | 2,500
割引 | (250)
小計 | 2,250
書籍 3 | 2,500
割引 | (250)
小計 | 2,250
書籍 4 | 2,500
割引 | (250)
小計 | 2,250
合計 | 9,000

最終的な販売価格は変わりません。各項目の調整済み価格は 2,250 として記録され、割引は適切に反映されています。この例では、買い物客が商品を返品しても、払い戻しを多く受けることはありません。

パーセント割引では、整数に丸められます。小数点以下の桁数の変更については、サイト開発者に問い合わせてください。

金額割引を適用する

金額割引を適用するには、各項目の割引金額を計算し、バスケット内のすべての項目に割引を適用します。金額割引では、次のアルゴリズムが使われます。

ItemDiscount = Truncate(((ItemAdjustedPrice/OrderAdjustedSubtotal)*DiscountAmount),2);

これは次と同じことを意味しています。

ItemAdjustedPrice/OrderAdjustedSubtotal の値を小数点以下第 2 位まで切り捨てます。ここで、ItemAdjustedPrice は、注文レベルの割引の前に適用された割引で調整済みの項目の価格です。OrderAdjustedSubtotal は、注文レベルの割引の後に適用された割引で調整済み注文の合計です。

注

  • 金額割引では、小数点以下第 2 位で丸められます。

次に、金額割引がバスケット内の品目ごとに計算される例を示します。キャンペーンの管理担当者が、ユーザーに 2,500 円の割引を提供することにしたとき、次のような注文があったとします。

  • 3,000 円のシャツ 2 枚
  • 5,000 円のズボン 2 本
  • 1,000 円のベルト 1 本

次に、2,500 円の割引が適用される前のユーザー バスケットを示します。

ユーザー バスケット

項目 | 数量 | 単価 | 合計額
シャツ | 2 | 3,000 | 6,000
パンツ | 2 | 5,000 | 10,000
ベルト | 1 | 1,000 | 1,000
合計 |  |  | 17,000

次に、2,500 円の割引が適用された後のユーザー バスケットを示します。

ユーザー バスケット

項目 | 単価 | 割引 | 調整済み価格
1 枚目のシャツ | 3,000 | 441 | 2,559
2 枚目のシャツ | 3,000 | 441 | 2,559
1 本目のズボン | 5,000 | 735 | 4,265
2 本目のズボン | 5,000 | 735 | 4,265
ベルト | 1,000 | 147 | 852
合計 | 17,000 | 2,499 | 14,500

割引の合計が、注文の割引の合計 2,500 円ではなく、2,499 円であることに注意してください。

次に、丸めの問題を訂正する方法を 2 つ示します。

方法 1

方法 1 では、項目リストの、最後に割引を適用する項目との差を適用します。

If (CurrentItem = LastItemThatCanReceiveADiscount)

If (TotalDiscountApplied < AwardAmount)

ItemDiscount = (AwardAmount – TotalDiscountApplied)

注

  • 値が切り捨てられているため、常に TotalDiscountApplied <=AwardAmount になります。

方法 2

方法 2 では、次の計算を行います。

  1. 小数点以下の桁数を基に、最低価格を算出します。たとえば、小数点以下の桁数が 0 (ゼロ) の場合、最低価格は 1 になります (通貨がドルなどで、小数点以下の桁数が 2 の場合、最低価格は 0.01 になります)。
  2. 最も高価な品目から、品目の割引に "最低価格" を追加します。2 つの品目が同じ "最高価格" である場合は、バスケット内の順番が先のほうの品目の割引に適用します。
  3. この値を割引誤差から引きます。
  4. 手順 2. と 3. を、割引誤差がゼロ (0) になるまで繰り返します。

次に、方法 1 を使って 2,500 円の割引を適用する方法を示します。

  • 3,000 円のシャツ 2 枚
  • 5,000 円のズボン 2 本
  • 1,000 円のベルト 1 本

ユーザー バスケット

項目 | 単価 | 割引 | 調整済み価格
1 枚目のシャツ | 3,000 | 441 | 2,559
2 枚目のシャツ | 3,000 | 441 | 2,559
1 本目のズボン | 5,000 | 735 | 4,265
2 本目のズボン | 5,000 | 735 | 4,265
ベルト | 1,000 | 148 | 852
合計 | 17,000 | 2,500 | 14,500

上の例では、ベルトは割引を受けることができる最後の項目です。したがって、1 円 (割引誤差) がベルトの割引特典 148 (147+1) 円に追加され、注文の割引合計は 2,500 円になります。

さらに、方法 1 を使って金額割引を適用する例を示します。

  • すべての商品
  • 500 円の注文レベルの割引

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 249 | 501
2 | 項目 1 | 750 | 249 | 501
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 498 | 1,003

この例では、割引の合計が、注文の割引の合計 500 円ではなく、498 円であることに注意してください。

次に、方法 1 を使って上の例の割引を適用する方法を示します。

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 249 | 501
2 | 項目 1 | 750 | 251 | 499
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 500 | 1,001

上の例では、バスケット内の順番が 2 の項目 1 が、割引を受けることができる最後の項目です (項目 3 は単価が 1 円のため、2 円の割引ができません)。したがって、2 (割引誤差) がバスケット内の順番が 2 の項目 1 の合計 251 に追加され、注文の割引合計が 500 円になります。

次に方法 1 を使った推論を示します。

  • バスケット内の順番 1 および 2 は同じ項目番号を含みます (単価も同じ)。しかし、割引は異なります。
  • 項目 3 に割引は適用されません。
  • 項目 1 と項目 2 は単価が同じため、項目 1 が返品された場合、ユーザーに 501 円と 499 円のどちらを払い戻すかが問題になります。

次に、方法 2 を使って上の例の割引を適用する方法を示します。

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 250 | 500
2 | 項目 1 | 750 | 250 | 500
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 500 | 1,001

各項目の調整済み価格は記録され、ユーザーは 500 円の払い戻しを受けます。バスケット内の順番が 1 および 2 は、同じ割引を受けます。これによって、どちらかの項目が返品されても、両方の項目の払い戻しは同じになります。

注

  • 上の例では、割引の適用に OrderDiscountApply パイプライン コンポーネントが使われます。OrderDiscountApply コンポーネントの詳細については、Commerce Server 2002 ヘルプの「Programmer's Reference」の「OrderDiscount」を参照してください。

関連項目

割引を処理する

割引のコンポーネント

割引を作成する


送料なし

"送料なし" プロパティは、注文されたすべての商品の送料を、割引の特典として無料にするものです。送料割引が注文に適用される際は、個々の項目レベルではなく、累積レベルで適用されます。この点は、注文レベルの割引と似ています。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。

すべての割引を格納するために使う order_discount テーブルには、b_disc_order_level_discount と u_disc_special_offer_type という 2 つの割引プロパティがあります。この 2 つの割引プロパティは、注文レベルの割引と送料の割引を区別するために使われます。

複数の送付先

Commerce Server 2002 では、複数の送付先がサポートされています。たとえば、顧客はいくつかの商品を購入し、それらを別々の送付先に送付することができます。

項目 | 数量 | 単価 | 合計額 | 送付先
シルバー ペンダント | 2 | 3,000 | 6,000 | Joe User 1234 NE 34th St Redmond, WA 98052
レーシング カーの模型 | 2 | 5,000 | 10,000 | Joe User 4930 Maple Ave Dallas, TX 75235
合計 |  |  | 16,000 |

送料割引と管理ポリシー

ここでは、送料割引と注文レベルの割引それぞれの管理ポリシーが、互いにどのようにリンクするのかについて説明します。

割引 | 条件 (対象の条件) | 特典 (特典の条件) | 優先順位
割引 1 | 注文の小計が 30,000 円を超える | 2,000 円の注文レベルの割引 | 10
割引 2 | カムコーダーを購入 | "送料なし" を適用 | 20

ユーザー バスケットの内容は、次のとおりです。

項目 | 数量 | 単価 | 合計額
カムコーダー | 1 | 20,000 | 20,000
デジタル カメラ | 1 | 30,000 | 50,000
合計 |  |  | 70,000

割引 1 の優先順位が 10 であるため、割引 1 が最初に適用されます。送料割引は累積割引であるため、Commerce Server の一般的な割引管理ポリシーが使われて、送料割引と注文レベルの割引がリンクされます。したがって、割引 1 によってそれ以上の特典がブロックされるため、割引 2 は適用されません。


割引の制限

バスケットに適用できる割引の回数を制限できます。割引の制限の値をなしに設定すると、割引は無制限になります。バスケットで割引の条件が何回も満たされた場合には、割引が何回も適用されます。割引の制限は 1 つのバスケットの制限なので、他のバスケットでは適用されません。たとえば、支払いを終えたユーザーが、再びサイトに戻って、同じ割引項目を購入した場合は、再度同じ割引を受けることができます。


条件解除割引

条件解除割引は、"対象の条件" 句と "特典の条件" 句が同じ商品を参照している場合に適用される割引です。このプロパティによって、割引の条件として使っている項目を特典として再利用するかどうかを決定します。条件解除割引には、次の 2 種類があります。

  • [特典で指定された商品のみ割引を適用] "対象" 条件は、特典として再利用できません。商品の販促活動を適度に展開するには、ビジネス マネージャはこれを使用します。
  • [特典および対象で指定された商品の両方に割引を適用] "対象" 条件は、特典として再利用できます。商品の販促活動を積極的に推し進めるには、ビジネス マネージャはこれを使用します。

次のような割引がある場合、どの条件解除割引を選択したかによって、最終的な代金が異なってきます。条件解除割引ごとに、バスケットの結果を示します。

条件 : ユニセックス シャツ 2 枚を購入

特典 : ユニセックス シャツが 40% 割引

条件解除割引 : [特典] で指定した商品にのみ割引を適用します。

次のバスケットでは、3 枚目のユニセックス シャツが 40% の割引になっています。条件解除割引として [特典で指定された商品のみ割引を適用] が選択されているので、条件項目を特典として再利用することはできません。1 枚目と 2 枚目のシャツが条件として使用され、3 枚目のユニセックス シャツに 40% の割引が適用されます。4 枚目のシャツには、条件も特典も当てはまりません。

条件 : ユニセックス シャツ 2 枚を購入

特典 : ユニセックス シャツが 40% 割引

条件解除割引 : [特典] および [対象] で指定した商品の両方に割引を適用します。

次のバスケットでは、2 枚目と 4 枚目のユニセックス シャツが 40% の割引になっています。条件解除割引として [特典および対象で指定された商品の両方に割引を適用] が選択されているので、条件項目が特典として再利用されます。バスケット内の 1 枚目と 2 枚目のユニセックス シャツが条件として使用され、2 枚目のシャツに 40% の割引が適用されます。バスケット内の 3 枚目と 4 枚目のシャツが条件として使用され、4 枚目のシャツに 40% の割引が適用されます。


クリック必須の割引

"クリック必須" 割引プロパティが "True" の場合、ユーザーが割引の資格を得るためには、その割引に関連付けられている広告をクリックする必要があります。このプロパティによって、ビジネスにおける広告機能と商品取引機能がリンクされます。


割引の特典を受ける対象

"特典を受ける対象" は、割引の適用対象となるユーザーを指定します。特典を受ける対象は、対象式になります。対象式の評価結果が True になると、割引が適用されます。たとえば、favorite sport = mountain climbing (好きなスポーツ = 登山) である場合、割引が適用されます。

特典を受ける対象は、"ユーザー オブジェクト"、"対象とするコンテキスト"、"埋め込みエバリュエータ" (現在の日付、現在の時刻) などの "コンテキスト" プロパティを使って作成します。対象式を作成することで、割引を受けるユーザーを対象化できます。たとえば、音楽が好きなユーザーを対象にして、ジャズ CD に対して 20% の割引を提供することができます。

対象グループを使って、どのユーザーに対して割引を表示するかを決めることもできます。


複数の割引

割引管理ポリシーを使って、複数の割引を作成することができます。割引管理ポリシーは、1 つの項目が複数の割引や特典を受けることを許可するかどうかを決定するルールです。Commerce Server では、次の 4 つの割引管理ポリシーをサポートしています。

  • この割引の条件を、他の割引の条件でも使用できるようにする 割引資格を得るために使用された条件項目を再利用して、別の割引資格を得ることができるように指示します。
  • この割引の条件が、他の割引の特典を受けられるようにする 割引資格を得るために使用された項目に対しても、割引を受ける資格を与えることを指示します。
  • この割引の特典を、他の割引の条件でも使用できるようにする 特典を与えられた項目を使用して、さらに他の割引資格を得ることができるように指示します。
  • この割引の特典に加え、他の割引の特典も受けられるようにする 特典を与えられた項目が、別の割引も受ける資格を与えることを指示します。1 つの項目が、複数の特典を受けることができるようになります。

これらの 4 つの管理ポリシーは、すべてを同時に選択することができます。ポリシーを同時に選択すると、割引の適用形態をきめ細かく調整することができます。


割引を処理する

割引の処理には、割引コンテンツ選択パイプラインと注文割引パイプライン コンポーネントを使います。割引 CSF パイプラインは、ユーザーに最適な割引を広告するために使います。バスケット パイプラインの注文割引コンポーネントは、買い物バスケットに割引を適用するために使います。

  • "割引コンテンツ選択パイプライン" は、割引の開始日と終了日をチェックし、適用可能な割引の一覧のスコアを調整します。これにより、現在のユーザーに最も関連のある割引に最高の優先順位が与えられるようにします。
  • "注文割引パイプライン コンポーネント" は、まず利用可能な割引に必要条件を適用します。適用される割引に応じて、ユーザー プロファイルとコンテキスト プロファイルの情報を使って対象式を評価します。さらに、クリックが必要な割引の場合は、クリックされるすべての項目のキャンペーン項目 ID の一覧をチェックします。次に、注文割引パイプラインは条件と特典をテストしながら各項目を処理します。割引は、優先順位が最も高いものから適用されます。2 つの割引の優先順位が同じ場合は、優先順位以外のプロパティによって、割引が適用される順序が決まります。


ダイレクト メールの概念

ダイレクト メールを作成し、対象となるユーザー グループに電子メール メッセージの広告を配信します。配信したメールから高い応答率を得ることが目的となります。Web ページからパーソナライズされた電子メール メッセージを送ることも、フラット テキスト ファイルからパーソナライズされていないメッセージを送ることもできます。写真、割引、URL などの添付ファイルを含むダイレクト メール メッセージを作成できます。ダイレクト メーラー サービスは、パーソナライズされた電子メール メッセージを大量のユーザーに一括送信するように設計されています。

ここでは、次のトピックについて説明します。

  • ダイレクト メールの作成の概要
  • 脱退リスト
  • ダイレクト メールを処理する


ダイレクト メールの作成の概要

ダイレクト メールを作成し、対象となるユーザー グループに電子メール メッセージの広告を配信します。配信したメールから高い応答率を得ることが目的となります。Web ページからパーソナライズされた電子メール メッセージを送ることも、フラット テキスト ファイルからパーソナライズされていないメッセージを送ることもできます。写真、割引、URL などの添付ファイルを含むダイレクト メール メッセージを作成できます。ダイレクト メーラー サービスは、パーソナライズされた電子メール メッセージを大量のユーザーに一括送信するように設計されています。

ダイレクト メールを設定するには、ビジネス デスクのキャンペーン マネージャ モジュールを使用します。ダイレクト メールは、大量の電子メールを高速に送信できる強力なエンジンである、ダイレクト メーラー サービスによって処理されます。

ダイレクト メールを作成するには、次の操作を行います。

  • メッセージを作成する パーソナライズされた電子メール メッセージを作成するには、まずサイト開発者がパーソナライズされたテキストを含む ASP ページを作成し、Web サーバーに追加する必要があります。サイト開発者は、ASP ページの場所の URL をビジネス デスクのユーザーに知らせる必要があります。パーソナライズされていないメッセージを作成するには、メモ帳などを使ってテキストをフラット テキスト ファイルに入力します。
  • ダイレクト メール キャンペーンを作成し、スケジュールを設定する キャンペーン マネージャ モジュールを使って、キャンペーンの名前、受信者のリストの名前、キャンペーン項目の開始時刻と日付、およびダイレクト メーラーがメッセージ本文を取得する URL (パーソナライズされたメッセージの場合) または静的ファイルを指定します。

関連項目

メーリング リスト

メーリング リストをインポートする

脱退リスト

ダイレクト メールを処理する


脱退リスト

ダイレクト メーラーは、脱退機能をサポートしています。キャンペーン項目の一部として実行されるダイレクト メール ジョブでは、個々の受信者がダイレクト メール キャンペーン項目からの脱退を要求できます。脱退 ASP ページは、ユーザーが自分自身を脱退リストに追加できるように設計されています。

サンプルの脱退 ASP ページは、サンプルの ServiceReminder ASP ページと共に使用します。後者は、ダイレクト メーラー コンテンツを作成するためのページです。この ASP ファイルを実装すると、各顧客に宛てて、Web サイトを訪れて新商品を見るように促すパーソナライズされた電子メール メッセージが送信されます。この ASP ファイルには、顧客がメーリング リストから脱退する場合に備えて、脱退リンクも含まれています。

Web サーバーからのダイレクト メーラー ジョブ用の ASP ページを作成する開発者であれば、脱退 ASP ページへのリンクを配置できます。これにより、受信者は該当するリンクをクリックすることで、サイトの全メーリング リスト、またはダイレクト メール キャンペーン項目から脱退できるようになります。キャンペーン項目の一部として実行されるダイレクト メーラー ジョブが実行されると、ダイレクト メーラーはサイト レベルの脱退リストとキャンペーン項目レベルの脱退リストが存在するかどうかを調べます。脱退リストがどちらか一方でも存在している場合は、これらの項目が元のメーリング リストから削除され、削除後のリストが新しいメーリング リストとして機能します。

関連項目

ダイレクト メールの作成の概要

ダイレクト メールを処理する


ダイレクト メールを処理する

ダイレクト メーラーでは、コマンド ライン インターフェイスを使って、ダイレクト メーラー ジョブの作成、実行、監視、および削除を行ったり、ジョブの開始と回復を行います。ダイレクト メーラーに関するプロパティを構成するには、Commerce Server マネージャを使います。

ダイレクト メーラーでは、次の作業を行います。

  • ダイレクト メール ジョブの管理
  • パーソナライズされているメッセージ本文、またはパーソナライズされていないメッセージ本文の作成
  • 電子メール メッセージ ヘッダーの書式設定
  • コード ページ値 (言語) の設定と、メッセージ本文の正しいメッセージ形式への変換。MIME Encapsulation of Aggregate HTML Documents (MHTML)、Multipurpose Internet Mail Extensions (MIME)、またはテキストに変換します。
  • 受信者への電子メール メッセージの送信

ダイレクト メーラー パイプラインは、受信者のリストを処理するために使われます。パイプラインに新しいコンポーネントを追加したり、コンポーネントを基幹業務システムに統合したり、そのコンポーネントをサード パーティが供給するコンポーネントと交換することができます。

次の図は、Commerce Server 2002 Enterprise Edition を使っている場合に、サイトを訪問するユーザーの情報を収集し、データをデータ ウェアハウスにインポートし、ダイレクト メール キャンペーンでどのユーザーを対象とするかを識別するレポートを実行し、そのデータをリスト マネージャにエクスポートする方法を示しています。ダイレクト メール キャンペーンを設定すると、ダイレクト メール ジョブはダイレクト メーラー サービスによって実行されます。

関連項目

ビジネス デスク キャンペーン

ダイレクト メーラーの実行

Working with Pipelines

Extending the Content Selection Framework

対象化とパーソナライズの概念


注文管理の概念

ユーザーが Web サイトで商品を購入すると、Commerce Server によって注文が作成されます。注文は、Commerce Server 注文処理パイプライン (OPP) によって処理されます。OPP は、作業のカテゴリを表すいくつかのステージに注文処理を分割します。一般的な OPP には、買い物客情報ステージ、支払いステージ、および送料ステージが含まれます。たとえば、Commerce Server データベースから商品説明と送付先が取得され、税金が計算されます。注文情報と合計金額は、Commerce Server データベースのトランザクション テーブルに保存されます。

ここでは、次のトピックについて説明します。

  • 注文を処理する
  • OrderGroup、OrderForm、および OrderGroupManager オブジェクト
  • 注文状況コード


注文を処理する

次の図は、注文処理パイプラインのコンポーネント群と、それらが連係して機能するようすを示しています。これらのコンポーネントは、ユーザーが品目をバスケットに追加する、チェック アウトに進む、割引を受ける、注文を Commerce Server データベースのトランザクション テーブル (分散環境では注文データベース) に保存するという過程で、連係して機能します。

サイトで BizTalk Server を利用している場合には、注文はベンダに送られます。BizTalk Server と Commerce Server を併用する方法については、Commerce Server 2002 ヘルプの「Integrating with BizTalk Server」を参照してください。

サイトでのニーズに応じて注文処理パイプラインに変更を加えるには、Commerce Server パイプライン エディタを使います。たとえば、クレジット カードの利用承認処理を行うサード パーティ製のクレジット カード コンポーネントを追加できます。


OrderGroup、OrderForm、および OrderGroupManager オブジェクト

OrderGroup オブジェクトは Commerce Server 2002 で使われるオブジェクトで、サイトのバスケットと注文情報の格納、アクセス、および計算を行います。OrderGroupManager オブジェクトは、OrderGroup オブジェクトと連係して、注文の検索などの管理機能を提供します。

OrderForm オブジェクトは、個々のエントリを保持するためのディクショナリです。さらに、実体が Dictionary オブジェクトや SimpleList オブジェクトであるエントリも保持します。この構造を活用すると、ユーザーや注文処理パイプライン (OPP) に対して、1 つ以上の買い物セッションの一部または全体に関する詳細な要約を提示することができます。この要約には、氏名、住所、クレジット カード情報、および購入した商品に関する情報が含まれます。

次の図は、OrderGroup オブジェクトと OrderForm オブジェクトの間にある相互関係と、この 2 つのオブジェクトと Addresses ディクショナリおよび LineItem ディクショナリとの関係を示しています。

OrderGroup オブジェクトは、注文情報を記録するオブジェクトです。注文フォームを分類して集計操作を行い、総計を保持します。このオブジェクトは、OrderForm オブジェクトと Address ディクショナリにリンクしています。複数の OrderForm オブジェクトや Address ディクショナリにリンクしていることもあります。

OrderForm オブジェクトは、注文のヘッダー情報を指定するオブジェクトです。ヘッダー情報には、合計送料、合計税額、注文の処理に必要なその他のデータなどがあります。OrderForm オブジェクトは、購入される製品を記録する 1 つ以上の LineItem ディクショナリを参照します。Addresses ディクショナリは、注文書の請求先住所と送付先住所を指定するためのディクショナリです。通常、各 OrderForm オブジェクトには billing_address_id 値を指定し、各品目には shipping_address_id 値を指定します。

次の図は、OrderForm オブジェクトのコンポーネントを示しています。

OrderGroup オブジェクトに含める OrderForm オブジェクトは、通常は 1 つだけにしますが、ユーザーがさまざまなサプライヤから商品を購入できるようにする場合は、OrderGroup オブジェクトに複数の OrderForm オブジェクトを含めることができるのを利用します。これによって、サプライヤの区別はそのまま維持しつつ、買い物をするユーザーに対しては、複数サプライヤの商品をまとめて購入できる環境を提供できます。

OrderGroup オブジェクトの中に保持されるオブジェクトとして一般的なのは、次のものです。

  • Address ディクショナリ このディクショナリには、注文書の請求先住所と送付先住所を指定します。
  • OrderForm オブジェクト このオブジェクトの中には、品目情報を収めた Item ディクショナリから成る、Items という名前の SimpleList オブジェクトが保持されます。
  • Items SimpleList オブジェクト このオブジェクトの中には、Item ディクショナリが保持されます。
  • Item ディクショナリ このディクショナリには、注文フォーム内にある品目の内訳が格納されます。OrderForm オブジェクトは注文フォームの処理に使われる情報を表し、Item リスト経由で Item ディクショナリを参照します。この Item ディクショナリは、1 つもない場合もあります。


注文状況コード

OrderGroup オブジェクトは購入単位を表すためのもので、特定の注文状況を保持しています。この状況は OrderGroup.value ("order_status_code") に格納され、該当する OrderGroup オブジェクトが、バスケット Basket (1)、保存済みの注文またはテンプレート (2)、新規注文 (4) などのいずれに相当するのかを示します。

新規顧客の状況コードは、Commerce Server ビジネス デスクの注文モジュールを使って作成できます。たとえば、Approved、Cancelled などの状況値を作成できます。これらの値の状況コードは、2 の累乗の数値 (8、16、32 など) に設定する必要があります。

既定では次の注文状況コードが用意されています。

  • "バスケット" 状態 "バスケット" 状態は、注文の送信に先立って、集計と確認が行われている OrderGroup オブジェクトを示します。状況コードは 1 です。
  • "テンプレート" 状態 ("保存済みの注文" 状態) "テンプレート" 状態は、同一の品目が週 1 回定期的に注文されることの多い食料品販売サイトなどで、ユーザーの繰り返し購入をスムーズに進めることを目的としています。この状態は、保存済みの注文と同じ状態です。状況コードは 2 です。
  • "新規注文" 状態 "新規注文" 状態は、送信が完了し、処理が進められている注文を示します。通常は、ユーザーが [注文の送信] ボタンをクリックするとこの状態になります。状況コードは 4 です。


インターナショナル ソリューションの概念

インターネットは世界規模の市場を形成しています。つまり、ビジネスを国際的に展開する意思がなくても、電子商取引ビジネスを行えば国際的なビジネスになります。Commerce Server 2002 Web サイトを国際的に展開するには、世界中のユーザーに向けてビジネスをどのように提示するかを判断する必要があります。

サイトを参照するユーザーがブラウザに入力する文字は、ユーザーのコンピュータに設定されている地域のオプションによって決まります。この設定によって、キーボード入力によって記録される文字のほか、通貨記号や桁位置の区切り記号などの特殊記号の表示が制御されます。たとえば、英語キーボードが接続されていて、入力ロケールが英語 (U.S.) に設定されているコンピュータで ; キーを押すと、セミコロンが表示されます。英語キーボードが接続されている同じコンピュータで入力ロケールの設定をスペイン語 (メキシコ) に変更した場合、; キーを押すと、"�" (n) と表示されます。

世界中のユーザーを対象とした計画を立てるには、さまざまなロケール設定に対応するシステムを開発する必要があります。ユーザーに適したロケール設定を使って、データを表示し、入力を受け付けるようにする必要があります。Commerce Server 2002 の商品カタログ システムでは、単一のカタログで複数の言語を扱えるようになっています。インターナショナル ソリューションの開発技法の詳細については、「Developing an International Site」を参照してください。

ここでは、サイトを国際化するプロセスについて、架空のシナリオを使って説明します。このシナリオは、インターナショナル ソリューションを開発するための原則を多数示していますがインターナショナル ソリューションを開発する手法の一例にすぎません。

ここでは、次のトピックについて説明します。

  • インターナショナル ソリューションの機能概要 インターナショナル ソリューションの開発に関する機能の概要について説明します。
  • インターナショナル ソリューションの開発作業および管理作業 インターナショナル ソリューションの作成に必要な作業の概要について説明します。
  • インターナショナル シナリオの概要 世界中のユーザーを対象とした単の一サイトを作成するための架空のビジネス シナリオの概要について説明します。
  • インターナショナル トランザクション 複数の通貨が含まれるトランザクションをサポートするために、2 種類の通貨変換を適用する方法について、架空のビジネス シナリオを使って説明します。
  • インターナショナル カタログ 適切なカタログ コンテンツを配信するために多言語と複数通貨の機能を適用する方法について、架空のビジネス シナリオを使って説明します。
  • インターナショナル キャンペーン 文化的に適切なキャンペーン情報を表示するために Commerce Server 対象化システムの 2 つの分野を適用する方法について、架空のビジネス シナリオを使って説明します。
  • インターナショナル対応の送付方法 特定のロケールの送付情報を配信する機能を実装する方法について、架空のビジネス シナリオを使って説明します。


インターナショナル ソリューションの機能概要

Commerce Server 2002 ではインターナショナル ソリューションを次の方法で構築します。

  • 既存のサイト コードを変更する。
  • インターナショナルに対応するように設計された新規サイトを最初から作成する。
  • International Retail サイトを基に構築する。
  • サイト リソースを構成し、ビジネス プロセスを設定する。

以上のいずれの場合にも、Commerce Server 2002 SDK のサイトレットと International Solution サイトには、作業の基礎となるサンプルとガイダンスが用意されています。

SDK のサイトレットには、サイト コードを変更する方法を示すサンプルが含まれています。Commerce Server 2002 サイトレットの詳細については、「ASP.NET Samples」を参照してください。

International Retail サイトは、インターナショナル サイトを新規に作成する際の基礎となります。このサイトから始めると、完全に機能するインターナショナル サイトの運用を最短期間で開始することができます。

次の表は、インターナショナル ソリューションの開発に関する各種機能の概要です。この表は、国際的な問題に影響を受けるさまざまな機能について、Commerce Server のシステム別に示してします。

システム | 機能 | 概要
商品カタログ | 多言語に対応可能なカタログ | サイトでサポートするすべての言語に対して多言語プロパティを追加することで、複数言語の情報を持つ共通の商品カタログを共有できます。たとえば、商品説明に対して多言語プロパティを定義できます。このプロパティの "表示名" フィールドには、英語の "Description" と、ドイツ語の "Beschreibung" (ドイツ語で "Description" を意味する) を含めることができます。
複数通貨に対応可能なカタログ カタログごとに基本通貨を定義できます。別の通貨で商品の価格を設定するには、価格設定ルールを適用するか、または特別な通貨プロパティを追加します。

注

  • 通貨に使われる Money データ型は、小数点以下 4 桁までサポートしています。
プロファイル サイト用語 サポートする言語ごとに一意のサイト用語を作成する必要があります。たとえば、英語で "Favorite Sport" というサイト用語を作成した場合、Web サイトでスペイン語をサポートするときは、スペイン語で "Deporte Favorito" というサイト用語も作成する必要があります。この情報は、『Commerce Server 2000 リソース キット』の "Sweet Forgiveness" サンプル インターナショナル サイトの実装について説明しているセクションに掲載されています。オンライン ドキュメントは、次の Web ページにあります。
http://go.microsoft.com/fwlink/?LinkId=5595.
プロファイル プロパティ プロパティ定義にカスタム属性を追加することで、多言語に対応可能なプロファイル プロパティを作成できます。たとえば、英語の住所プロファイルに "City" というプロパティがある場合は、次の値を持つカスタム属性を作成できます。
  • 名前 : City_Fr
  • 表示名 : Ville (フランス語の "City")
  • 説明 : Votre ville (フランス語の "Your city")
  • 値 : Paris
  • プロファイル システムのデータ ストアでは、Unicode がサポートされています。
ビジネス分析 データ ウェアハウス 複数の言語固有のアプリケーションからデータをインポートする、単一の Commerce Server データ ウェアハウスを作成できます。たとえば、フランス語のアプリケーションと日本語のアプリケーションからトランザクション データを、単一の Commerce Server データ ウェアハウスにインポートできます。

複数のコード ページ設定 (西ヨーロッパ言語と日本語など) を使って、世界中のユーザーをサポートする単一のサイトを作成するには、ログ ファイルのコード ページ設定と URL エンコーディング設定を UTF-8 に設定する必要がありますWindows 2000 がログの記録時にサポートするのは ANSI コードだけです。UTF-8 には Windows .NET Server が必要です。詳細については、http://go.microsoft.com/fwlink/?LinkId=6728 を参照してください。

注

  • この値を UTF-8 に設定すると、UTF-8 をサポートしないブラウザで予期しない動作が発生します。
分析 複数の言語および通貨のデータを要約するレポートを生成できます。たとえば、サイトに複数の言語固有のアプリケーションが含まれている場合は、Commerce Server に用意されている要求の多いページ レポートを生成して、言語グループ全体で最も人気があるページを要約することができます。レポートでのデータ表示は、ユーザーが使うブラウザの言語設定によって異なります。

注

  • 言語ごとにデータを要約する定義済みのレポートは Commerce Server には用意されていません。
対象化 | 広告 | 言語ごとに別々の広告コンテンツを作成する必要があります。
割引 | 言語ごとに別々の割引を作成する必要があります。
ダイレクト メール | 言語ごとに別々のダイレクト メール キャンペーンを作成する必要があります。
ビジネス プロセス パイプライン 注文処理 サイトに表示されている変換済みの品目が、ユーザーに請求される合計額と一致しない可能性がありますが、これは為替レートが刻一刻変化するためです。価格は、表示する際に概算値であることを示す必要があります。

Commerce Server 2002 では、カート内の各品目の価格は同一通貨であることを前提としています。

Commerce Server の割引機能は、複数通貨を処理するように設計されていません。

広告や割引を複数の言語で利用する場合は、言語ごとに広告や割引を作成し直す必要があります。

関連項目

インターナショナル ソリューションの開発作業および管理作業

インターナショナル トランザクション

インターナショナル カタログ

インターナショナル キャンペーン

インターナショナル対応の送付方法


インターナショナル ソリューションの開発作業および管理作業

次の表は、インターナショナル ソリューションの作成または更新に必要な開発作業および管理作業の概要です。各作業の詳細情報へのリンクも含まれています。

参照内容 | 参照先
インターナショナル カタログを開発する。 | 「ASP-Based Catalog Sitelet」、「Code to filter catalog data for a particular language」
複数通貨トランザクションをサポートする。 | 「ASP-Based Order Sitelet」、「Code to set the language properties for a user profile」
インターナショナル対応の送付方法を表示する。 | 「ASP-Based Order Sitelet」、「Code to display shipping methods for a particular language」
ロケール固有の広告および割引の情報を表示する。 | 「ASP-Based Discount Sitelet」
サイトの代替言語と代替通貨の構成設定を設定する。 | 「アプリケーション既定の構成リソースを構成する」
ビジネス プロセスのロケール固有のカタログを作成する。 | 「多言語に対応可能なカタログを作成する」、「複数の通貨で商品の価格を設定する」
インターナショナル対応の送付方法のビジネス プロセスを作成する。 | 「送付方法」

さらに、International Retail サイトには、新規のインターナショナル サイトの基盤として利用できる実用的な統合サイトが用意されています。

関連項目

インターナショナル ソリューションの機能概要

インターナショナル シナリオの概要

インターナショナル トランザクション

インターナショナル カタログ

インターナショナル キャンペーン

インターナショナル対応の送付方法


インターナショナル シナリオの概要

ここで使用する架空のシナリオでは、Contoso 社という大規模な国際商社を想定しています。この会社は、小売事業と卸売事業の両方を手がけており、各事業向けに Web ベースのインターフェイスを開発しました。これらの Web サイトのアドレスは、それぞれ www.contosoretail.com と www.contososupplier.com です。

Contoso 社では、言語や通貨の設定に関係なく、小売販売の対象となるすべてのユーザーが参照できる単一のサイトを作成する計画を立てました。コンテンツの表示言語は、英語、スペイン語、フランス語、ドイツ語、および日本語の 5 つに決定しました。Contoso 社の世界中のユーザーを対象とした単一のサイトを作成するために、同社が行った具体的な処理の一部を次に示します。

  • すべての商品の多言語プロパティと複数通貨プロパティが含まれる単一のカタログを作成しました。これらのプロパティを更新するためのローカライズ プロセスを設定しました。
  • 5 つの各言語に対応する割引メッセージ、広告コンテンツ、およびダイレクト メール メッセージを作成しました。
  • 5 つの各言語に対応する送付方法を作成しました。
  • ユーザーが使っているブラウザが UTF-8 エンコーディングをサポートするかどうか判断するコードを default.asp ページに追加しました。Contoso 社のサイトでは UTF-8 エンコーディングをサポートするブラウザが必須となるため、サポートしていないブラウザを検出すると、UTF-8 エンコーディングをサポートするブラウザのダウンロード ページにリダイレクトします。
  • ユーザー プロファイルからユーザーの言語と通貨の設定を取得するコードをサイトに追加しました。
  • 5 つの各言語の文字列を XML ファイルに追加し、言語と通貨の設定に関するユーザー プロファイル プロパティに一致する言語の文字列を取得するサイト コードを追加しました。

関連項目

インターナショナル トランザクション

インターナショナル カタログ

インターナショナル キャンペーン

インターナショナル対応の送付方法


インターナショナル トランザクション

Commerce Server 2002 には、通貨変換が必要なトランザクションを処理するための拡張サポートが用意されています。具体的には、次の 2 種類の通貨変換のサポートが追加されています。

  • 変動レート変換
  • 固定レート変換

次に示す架空のビジネス シナリオは、複数の通貨が含まれるトランザクションをサポートするために、2 種類の通貨変換を適用する方法を例示しています。

ここでは、次のトピックについて説明します。

  • インターナショナル トランザクションを使用するビジネス シナリオ


インターナショナル トランザクションを使用するビジネス シナリオ

電子商取引市場においては、複数の通貨でトランザクションを処理できる機能の重要性が急速に高まっています。B2B トランザクションには、多数のトランザクション通貨で取引するバイヤー組織、および複数のトランザクション通貨を使うサプライヤで構成され、さらに、バイヤーが単一通貨のみで取引しているのに対してサプライヤは複数の通貨形式に対応しているような小売トランザクションも含まれます。

複数通貨トランザクションには次の種類があります。

  • すべての通貨に対して、交渉による変換を適用するサプライ チェーン/B2B 取引
  • すべての通貨に対して、市場ベースの変換を適用するサプライ チェーン/B2B 取引
  • 単一の通貨に対して、市場ベースの変換を適用するサプライヤ/B2C 取引

次の架空のシナリオでは、Contoso 社は米国に拠点を置き、同社のすべての財務勘定を米国ドルで管理しています。Contoso 社は、米国ドル以外の通貨で商品を扱っているサプライヤと取引しています。また、同社の Web サイトでは、小売販売の対象となるユーザーがさまざまな通貨を使って商品を購入しています。このような種類のインターナショナル トランザクション (サプライヤおよび小売) には、それぞれ独自の必要条件があります。たとえば、小売販売の対象となるユーザーはクレジット カードだけを使って購入するとします。ユーザーの通貨変換レートは、クレジット カード会社がトランザクションを変換する時点で決まります。これは、"変動レート" 変換の例です。

一方、Contoso 社と取引するサプライヤのレートが、トランザクションの発生前に、設定されているシナリオもあります。Contoso 社では、設定した期間の変換レートについて各サプライヤとの間で契約を結びます。Contoso 社が代替通貨を使うサプライヤの商品の注文を受けた場合、トランザクションに適用する変換レートは、レート契約によって決まります。これは、"固定レート" 変換の例です。

すべてのシナリオに適用される前提条件

複数通貨トランザクションをサポートする

複数通貨トランザクションを追跡する

複数通貨トランザクションの問題点

すべてのシナリオに適用される前提条件

次の前提条件は、すべてのインターナショナル トランザクションのシナリオに適用されます。

  • サイト上のすべてのカタログには、既定の単一通貨 (サイトが銀行との取引に採用している通貨) が使われます。
  • ユーザーは、1 つの注文で複数の通貨を使う必要はありません。つまり、その注文で、ユーザーは品目 "A" を米国ドルで購入し、品目 "B" を円で購入する必要はないということです。

注

  • Web サイトでの変換処理は、サード パーティ製の会計システムを利用して実行することをお勧めします。Commerce Server SDK に含まれている注文サイトレットには、簡単なサンプル コードが使われていますが、これは運用環境で使うコードとしてはお勧めできません。

シナリオ 1 :

  • 単一のユーザーが、www.contosoretail.com を通じて、市場レートの通貨変換で商品を購入します。トランザクションは米国ドルで発生しますが、ユーザーには概算価格が円でも表示されます。

これは、最も単純でよく使われる国際的な小売、つまり B2C トランザクションです。バイヤーと電子商取引サイトは、同じ既定の通貨を使っていない場合でも取引を行います。ユーザーは、米国ドルが既定の通貨になっている英語の Web サイト www.contosoretail.com を訪問します。このユーザーは、使用する通貨として円を選択します。ユーザーがサイトを参照すると、価格はすべて円で表示されるようになります。

サイトでの円表示の価格はすべて "概算価格" であることを示しています。これはユーザーの銀行の変換レートによっては請求される金額に微妙な差異が生じる可能性もあるためです。このレートは近似値である可能性はありますが、正確な値は、トランザクションが完了するまでわかりません。ユーザーが注文を送信すると、使用する通貨でのおおよその合計金額と、サイトの既定の通貨での正確な金額が表示されます。

www.contosoretail.com は、ユーザーの銀行から支払いを米国ドルで受け取ります。ユーザーの銀行は、このドルを円に変換してユーザーに請求します。この時点で初めて、円での正確な料金が明らかになります。

シナリオ 2 :

  • 単一のユーザーが、単一のサイト (www.contosoretail.com) を通じて、市場レートの通貨変換で商品を購入します。
  • www.contosoretail.com は、交渉による変換を適用して、別の会社 (1 社または複数社) の商品を販売します。

www.contosoretail.com とのユーザーのトランザクションは、最初のシナリオの場合と同じですが、今回は www.contosoretail.com が販売店となって、需要に応じてサプライヤから商品を仕入れる必要があるため、トランザクションが 1 つ (または複数) 追加されます。

www.contosoretail.com に商品を提供するサプライヤはスイス フランを既定の通貨として採用しています。そして、www.contosoretail.com とサプライヤは設定済みの変換レートを適用することで合意しました。設定済みの変換レートを採用する利点は、www.contosoretail.com がサプライヤとのトランザクションごとに請求される金額を正確に把握できるという点にあります。銀行は、www.contosoretail.com とユーザー間の変換には関与しますが、サプライヤと www.contosoretail.com 間の変換には関与しません。

このシナリオでは、複数のサプライヤが存在し、各サプライヤは販売店またはバイヤーの既定の通貨以外の通貨を使う場合もあります。

シナリオ 3 :

  • 単一のユーザーが、www.contosoretail.com を通じて、市場レートの通貨変換で商品を購入します。
  • www.contosoretail.com は、市場レートの通貨変換を使って、別の会社 (1 社または複数社) の商品を販売します。

www.contosoretail.com とのユーザーのトランザクションは、最初のシナリオおよび 2 番目のシナリオの場合と同じです。

このシナリオは、www.contosoretail.com とのサプライヤのトランザクションが変換時点の市場レートによって決まるという点で 2 番目のシナリオと異なります。このような状況は、トランザクションの継続期間中の多く時点で発生します。たとえば、サプライヤが www.contosoretail.com に請求するとき、あるいは www.contosoretail.com がサプライヤに支払い額を送金するときなどに発生します。

ユーザー、www.contosoretail.com、およびサプライヤが、それぞれ異なる通貨を採用している場合もあります。変換レートに対する責任を負っているのは銀行です。つまり、www.contosoretail.com では、トランザクションが発生するまで、その請求金額はわかりません。

重要なことは、以上の 3 つのシナリオのいずれの場合も、購入処理が完了して銀行が顧客に請求するまで、ユーザーは購入金額に適用される変換レートが正確にはわからないという点です。そのため、電子商取引サイトに表示される価格はすべて "概算価格" であることを示す必要があります。

複数通貨トランザクションをサポートする

複数通貨トランザクションに適用される変換レートと、このトランザクションに関連するコストを管理することは、ビジネスを成功に導くうえで重要です。Commerce Server 2002 は、ビジネスの観点から複数通貨トランザクションのライフサイクルに完全に対応しているわけではありません。完全に対応するには、オプション コンポーネントや会計システムが必要になります。代わりに、サード パーティ製のオプション コンポーネントや会計システムの組み込みサポートを利用できます。

この組み込みサポートを実現するために、Commerce Server 2002 のビジネス処理パイプライン システムには、次の機能が用意されています。

  • 電子商取引サイトのユーザーが使用する通貨を指定して追跡する機能
  • 注文に適用される変換レートを追跡する機能

これらの機能をサポートするために、Commerce Server 2002 では次のことを前提としています。

  • カタログ価格は、電子商取引サイトの既定の通貨で保存する必要があります。
  • 注文処理パイプラインは常に、電子商取引サイトの既定の通貨で実行されます。
  • 通貨の変換は Commerce Server 2002 の外部で行われることもありますが、常に Settlement = Default Currency * Conversion (決済金額 = 既定の通貨 × 変換レート) の形をとります。ここで、Settlement は商品の購入者が支払う金額です。
  • データはすべてサイト別にグループ化されているので、データ ウェアハウスは、拡張分析を使う場合でも、常にサイトの既定の通貨でデータの保存やレポートの作成を行います。

複数通貨トランザクションを追跡する

次の表は、ビジネス処理パイプライン システムが追跡するデータを示しています。ビジネス処理パイプライン システムは、パイプラインを経由するトランザクションごとにデータを追跡します。このデータは、注文フォームに格納され、最終的には注文データベースに格納されます。

フィールド名 | 位置 | 説明
billing_currency | 注文フォーム ヘッダー | サイトの既定の通貨です。
supplier_currency | 品目 | 商品を www.contosoretail.com に供給するサプライヤの既定の通貨です。
buyer_currency | 注文フォーム ヘッダー | ユーザーの使用する通貨です。

次の表は、ビジネス処理パイプライン システムでは本来追跡されないデータを示しています。これらのデータは、サード パーティ製のオプション コンポーネントや会計システムで追跡する必要があります。

フィールド名 | 説明
変換レート | サイトの既定の通貨を、サプライ チェーンのメンバーが受け入れた通貨に変換するときに使う乗数です。
変換の種類 | 静的 (契約) レートまたは動的 (銀行指定) レートのいずれかです。
変換時刻 | 銀行が変換レートを確定した時刻です。静的変換の場合は、注文の受付時刻と常に等しくなります。
契約 ID | 変換レートを指定する契約の ID です。これは、静的変換の場合にのみ使われます。

複数通貨トランザクションの問題点

複数通貨トランザクションに関連する問題を次に示します。

  • サイトに表示されている変換済みの品目が、ユーザーに請求される合計額と一致しない可能性があります。
  • International Retail サイトでは、カート内の各品目の価格は同一通貨であることを前提としています。そのため、通貨の種類は確認されません。カート内のある品目が 1 ドル (米国ドル) で、別の品目が 2 円の場合、サイトは、小計が 1 米国ドルと 2 円であることをユーザーに知らせることもなければ、2 円を米国ドルに変換して小計を米国ドルで表示することもありません。サイト開発者は、この種の注文確認の情報を適切に表示する機能を独自に実装する必要があります。
  • 現在、割引は複数通貨に対応していません。
  • 現在、1 つのトランザクションを異なる通貨に分割するクレジット カード会社や銀行はありません。そのため、記帳や変換はすべてサイトで内部処理する必要があります。
  • 広告や割引を複数の言語で利用する場合は、言語ごとに広告や割引を作成し直す必要があります。

関連項目

ASP Order Sitelet

ASP.NET Order Sitelet

インターナショナル シナリオの概要

インターナショナル カタログ

インターナショナル キャンペーン

インターナショナル対応の送付方法


インターナショナル カタログ

Commerce Server 2002 には、特定のロケールに対応するカタログ情報を配信するための拡張サポートが用意されています。多言語プロパティと複数通貨プロパティが含まれるカタログを作成できます。作成後は、アプリケーションで、特定のロケールに対応する通貨記号および言語を使ったカタログ コンテンツを配信できます。

次に示す架空のビジネス シナリオは、適切なカタログ コンテンツを配信するために多言語と複数通貨の機能を適用する方法を例示しています。このシナリオは、「インターナショナル トランザクションを使用するビジネス シナリオ」に示したシナリオを拡張したものです。

インターナショナル カタログのビジネス シナリオ

この架空のシナリオでは、Contoso 社の Retail サイトに、ユーザーの言語と通貨の設定に対応するカタログ コンテンツが表示されます。Contoso 社のサイト開発者は、この機能を実装するために、サイトの対象となる 5 つの各ロケールのデータが含まれるカタログを作成しました。最初に、カタログは英語で作成され、基本通貨として米国ドルが使われました。その後、他の 4 か国にある Contoso の各子会社に配属されたコンテンツの管理担当者によって、4 つの言語 (スペイン語、フランス語、ドイツ語、および日本語) と通貨に変換されました。

仮想カタログの価格は、価格設定ルールで決まります。この価格設定ルールは、為替レートに基づいて価格を増減することで、仮想カタログの価格を設定します。次の表は、価格設定ルールの例を示しています。

基本カタログの価格 | 為替レート | 価格設定ルール | 仮想カタログの価格
1 | .5 | 基本価格 × 200% |

Contoso 社では、サード パーティのサービスを利用して、為替レートの情報を定期的に自動更新しています。このような更新を行うのは、ユーザーが負担する料金をより正確に表示するためです。ただし、ユーザーが実際に負担する料金は、ユーザーのクレジット カード会社がトランザクションを完了した時点で適用される為替レートによって決まります。

適切なコンテンツを表示するために、サイト開発者は、ユーザーの使用する言語と通貨に一致するカタログの項目が表示されるように、カタログ参照コードを変更しました。言語と価格の設定がない場合 (ユーザーが匿名で買い物をしている場合など) は、英語のカタログと米国ドルの価格が表示されます。

注

  • フランス市場向けの仮想カタログを作成することもできます。この仮想カタログでは、フランス語のみを使用し、フランス市場に限定した商品を扱い、ユーロで価格を設定できます。

関連項目

Code to Set the Language Properties for a User Profile

インターナショナル シナリオの概要

インターナショナル トランザクション

インターナショナル キャンペーン

インターナショナル対応の送付方法

カタログをエクスポートおよびインポートして変換する

ビジネス デスクを使ってカタログを変換する


インターナショナル キャンペーン

Commerce Server 2002 には、特定のロケールに対応するキャンペーン情報を配信するための拡張サポートが用意されています。この拡張サポートは、次の分野で利用できます。

  • 割引
  • 広告コンテンツ

次に示す架空のビジネス シナリオは、文化的に適切なキャンペーン情報を表示するために Commerce Server 対象化システムの 2 つの分野を適用する方法を例示しています。このシナリオは、「インターナショナル トランザクションを使用するビジネス シナリオ」に示したシナリオを拡張したものです。

インターナショナル キャンペーンを使用するビジネス シナリオ

この架空のシナリオでは、Contoso 社の Retail サイトに、ロケール固有の割引と広告コンテンツが表示されます。Contoso 社のコンテンツ開発チームは、5 つのロケール (英語、スペイン語、フランス語、ドイツ語、および日本語) に対応するコンテンツを作成します。このコンテンツの名前は、対象となる文化グループを特定する規則に基づいて決められています。たとえば、フランス語のユーザーに表示するゴルフ シューズの広告には、golf_FR という名前が付けられます。

Contoso 社では、ページ グループを使って所定のページに表示する広告を決定し、対象グループを使って特定のユーザー グループに表示するロケール固有の割引メッセージと広告を決定しています。また、この対象グループごとに、使用する言語と通貨のプロファイル プロパティに基づいて対象式が作成されています。開発者は、必要な各言語をサポートするために個別のキャンペーンを作成しました。

関連項目

Code to Set the Language Properties for a User Profile

インターナショナル シナリオの概要

インターナショナル トランザクション

インターナショナル カタログ

インターナショナル対応の送付方法


インターナショナル対応の送付方法

Commerce Server 2002 には、特定のロケールに対応する送付情報を配信するための拡張サポートが用意されています。次に示す架空のビジネス シナリオは、このサポートを実装する方法を例示しています。このシナリオは、「インターナショナル トランザクションを使用するビジネス シナリオ」に示したシナリオを拡張したものです。

インターナショナル対応の送付方法を使用するビジネス シナリオ

この架空のシナリオでは、Contoso 社の Retail サイトに、ロケール固有の送付情報が表示されます。Contoso 社の送付の管理担当者は、5 つのロケール (英語、スペイン語、フランス語、ドイツ語、および日本語) に対応する送付方法を作成しました。たとえば、コンテンツの名前は、関連付けられたロケールを特定する規則に基づいて決めるようにします。サイトでフランス語のユーザーに表示する航空便に使う送付方法には、Air_FR という名前が付けられます。

Contoso 社では、ShippingConfig データベース テーブルの language_id フィールドを使って、送付ページに表示される送付方法を追跡します。

関連項目

Code to Display Shipping Methods for a Particular Language

インターナショナル シナリオの概要

インターナショナル トランザクション

インターナショナル カタログ

インターナショナル キャンペーン


Commerce Server のインストール計画

Microsoft Commerce Server 2002 の開発と配置を行う前に、決定することが必要な事項がいくつかあります。Commerce Server を正しく開発および配置するには、以下に示す計画事項について十分に検討し、Commerce Server 2002 のヘルプの他の部分を参照して、これらの事柄がどのような意味を持つかを調べることが重要です。

Commerce Server の実装計画は、計画、開発、配置、管理のサイクルの中で最初の、そして最も重要と考えられるフェーズです。将来の拡大も考慮に入れて慎重にサイトを計画しておけば、後でコストと時間を費やして変更する必要がありません。

Commerce Server は、密接に統合された 5 つのサブシステムで構成されます。これらのサブシステムの計画以外に、システム全体について、運用、管理、アーキテクチャ、およびセキュリティの計画を立てる必要があります。

ここでは、次のトピックについて説明します。

  • 管理運用ツールの計画 サイトの管理と運用に関する検討事項について、推奨される対応を説明します。
  • ビジネス分析システムの計画 データのアクセスと更新に関する検討事項について、推奨される対応を説明します。
  • ビジネス プロセス パイプラインの計画 パイプライン機能に関する検討事項について、推奨される対応を説明します。
  • 商品カタログ システムの計画 商品カタログ システムに関する検討事項について、推奨される対応を説明します。
  • プロファイル システムの計画 プロファイル システムに関する検討事項について、推奨される対応を説明します。
  • 対象化システムの計画 対象化システムに関する検討事項について、推奨される対応を説明します。
  • サイト アーキテクチャの計画 サイトのアーキテクチャに関する検討事項について、推奨される対応を説明します。


管理運用ツールの計画

Commerce Server 2002 には、システムを運用および管理するための 3 つのツール、Commerce Server ビジネス デスク、取引先サービス、および Commerce Server マネージャが含まれています。

ビジネス デスクを使って、さまざまなサイト オプションを構成したり、日常のマーケティングやサイト利用状況の分析を管理することができます。ビジネス デスクを最適な方法で利用するには、サイトに関していくつかの事柄を決定する必要があります。

次の表は、管理運用ツールの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
サイトは主として消費者向けか? 取引先向けか? | サイトが消費者向けである場合は、ユーザーが各自のプロファイル情報にアクセスできる顧客サービスが含まれた、Retail ソリューション サイトを基に開発を開始します。 サイトが取引先向けである場合は、取引先が各自のアカウントにアクセスできる取引先サービスが含まれた、Supplier ソリューション サイトを基に開発を開始します。 ソリューション サイトについては、「Commerce Server Solution Sites」を参照してください。
取引先との対話機能を計画している場合、取引先とビジネス文書を交換する必要はあるか? | 取引先とビジネス文書を交換する場合は、Microsoft BizTalk Server 2000 を統合することを計画します。
サイトではどのような支払いオプションをサポートするか? | クレジット カードによる支払いをサポートする計画がある場合は、金融機関との手続きが必要です。
サイトではどの通貨をサポートするか? | サイトでの情報を複数の通貨で表示する場合は、商品カタログ システムを拡張する必要があります。
ビジネス マネージャが大量のデータ セットにアクセスする必要はあるか? | サイト管理には、ビジネス デスクで大量のデータ セットにアクセスすることには適していない面もあります。たとえば、商品カタログに 10 万以上の品目がある場合、ビジネス デスクのカタログ モジュールを使うのではなく、スクリプトによって更新を発行することが必要となる場合があります。ビジネス デスクのキャパシティ要件を計画してください。

関連項目

Localizing Currencies

Integrating with BizTalk Server

キャパシティとパフォーマンスの計画

アプリケーション既定の構成リソースを構成する


ビジネス分析システムの計画

ユーザー プロファイル データ、トランザクション データ、クリック履歴データなど、サイトを訪問するユーザーに関する日々の操作データを収集するには、Commerce Server 2002 のデータ ウェアハウスを使います。収集したデータは分析モジュールを使って分析します。たとえば、ユーザーの傾向調査やキャンペーンの効果分析を行って、その結果に基づいてサイトを更新できます。特定のユーザー グループを対象に指定したり、特定の商品を売り出したりします。

次の表は、ビジネス分析システムの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
サイトに関して必要となる重要なビジネス上の決定に、データ分析がどの程度影響するか?それらの決定を下すために、どのようなレポートが必要か? | ビジネス分析システムから得られるレポートを調べるには、「Commerce Server 2002 のレポート」を参照してください。多くのサードパーティ ソフトウェア ベンダが、ビジネス分析システムと連携するレポート ソリューションを提供しています。
組織の中でデータにアクセスする必要がある人はだれか?それらの人は、どの程度の頻度でレポートを実行する必要があり、更新の際にどの程度の詳細情報が必要か? | レポートの実行スケジュールを確立します。予想されるビジネス要件によっては、データ変換サービス (DTS) を使って、静的レポートを定期的に実行します。
どの程度の頻度で Web サーバーのログを処理するか? | ログに保存されるデータのサイズと性質によって、この頻度が決まります。ログを処理する頻度が高いほど、ログが小さくなります。 ログ ファイルが大きくなると、データ セットは充実しますが、処理に時間がかかります。 それぞれの後処理に関連するオーバーヘッドもあります。大規模なサイトでは、1 日ごとに実行するログのインポート処理とその後処理を少なくすることをお勧めします。ログ インポート処理は、データ ウェアハウスのサイズに比例して、処理に時間がかかります。 テスト環境で適切な処理頻度を判断してから、それを運用環境に適用してください。

関連項目

Commerce Server 2002 のレポート

データ ウェアハウスの概念


ビジネス プロセス パイプラインの計画

パイプラインを使うと、1 ステージ以上のビジネス プロセスを定義してお互いにリンクさせ、それらを連続実行して特定のタスクを完了できます。パイプラインの各ステージには、1 つ以上のパイプライン コンポーネント、つまりサイト独自の要件に合わせて構成できる Component Object Model (COM) オブジェクトがあります。

サイト開発者は、このインフラストラクチャを使って、注文処理パイプライン (OPP) とコンテンツ選択パイプライン (CSP) の 2 つのパイプライン モデルを実装します。

次の表は、ビジネス プロセス パイプラインの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
Commerce Server に含まれているパイプライン コンポーネントは要件を満たすか?要件を満たさない場合は、独自のコンポーネントを構築するか? サードパーティのパイプライン コンポーネントを購入するか? | Commerce Server 2002 に含まれているパイプラインが提供する機能を検討します。次に、処理ステージが要件を満たすかどうかを判断します。要件を満たさない場合は、自分でパイプラインを拡張するか、またはサードパーティのパイプライン コンポーネントの開発者からパイプライン コンポーネントを購入します。たとえば、複雑な税計算や送料計算、およびクレジット カード処理を実行する、サードパーティ製パイプライン コンポーネントを追加できます。

関連項目

Working with Pipelines

Building Pipeline Components

Extending the Content Selection Framework


商品カタログ システムの計画

商品カタログ システムを使うと、商品のカタログを作成したり、商品データを追加および更新することができます。このシステムにはインポート機能とエクスポート機能があり、カタログのスキーマを定義および変更できます。

次の表は、商品カタログ システムの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
商品カタログ システムの情報をオフライン カタログと同期する予定か? | 商品カタログ システムの情報をオフライン カタログと同期する場合は、カスタム ソフトウェアを開発する必要があります。この機能が必要な場合は、システム管理者に問い合わせてください。
カタログに最適な組織スキーマはどのようなものか? | 商品カタログ システムには柔軟性があり、多様なスキーマに対応できます。新しいカタログをデザインする場合は、スキーマを拡張する余地を十分にとるようにします。
サイトではどの言語をサポートするか? | サイトで複数の言語を利用する場合、レポート作成言語を選択する必要があります。レポート作成言語とは、データ ウェアハウスにデータをエクスポートする際、および分析レポートに使われる言語のことを言います。
サイトではどの通貨をサポートするか? サイトでの情報を複数の通貨で表示する場合は、通貨間での価格設定方法を決める必要があります。次の 3 つのうちの 1 つを使って、通貨を変換できます。
  • 固定レート変換 使用する新しい通貨ごとに、適切な基本カタログを格納する仮想カタログを作成し、新しい通貨に価格を変換するための、カタログ レベルの価格ルールを作成します。
  • 動的レート変換 この方式を選択すると、ユーザーに表示される前、つまり実行時に通貨の値が動的に計算されます。Software Development Kit (SDK) のインターナショナル サイトの例は、この方式を使っています。
  • 明示的な代替価格設定 各通貨ごとに明示的に価格を定義します。たとえば、ある商品の価格を、日本円では 3,000、アメリカ ドルでは 29.99、ユーロでは 24.99 と設定します。この価格設定を行うには、USD_Price プロパティや EURO_Price プロパティなどのように、カタログに "通貨" という種類のプロパティを追加する必要があります。その後、ビジネス デスクのカタログ エディタ モジュールを使って、それらのプロパティに価格を追加します。実行時に、パイプライン コンポーネントを使って、買い物客が使っている通貨を、商品の適切な価格プロパティから選択します。
複数のユーザー グループにカスタム価格またはセット商品を提供するか? 特別価格や商品のサブセットを特定のグループのユーザーに提供するには、仮想カタログを作成します。

さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログを識別するには、カタログ セットを作成します。
レポートで分析するカタログ データは何か? | レポートを実行して、データに関する分析を行うために、データ ウェアハウスに必要な情報をエクスポートします。プロパティ定義を作成するときに、データ ウェアハウスにエクスポートする商品データを指定します。
取引先とカタログを交換するか? | 交換する場合は、配置計画に Microsoft BizTalk Server を組み込みます。BizTalk Server は、取引先と自動的にカタログを交換する機能を提供します。

関連項目

カタログについて

ビジネス デスク カタログ

Integrating with BizTalk Server

Integrating a Third-Party Product Catalog


プロファイル システムの計画

Commerce Server 2002 では、プロファイルを使って、Web サイトを訪問するユーザーに関する情報を収集および格納します。プロファイルを形成するデータは、Web のログ ファイル、Commerce Server のデータベースなど、複数のデータ ソースから取得されます。プロファイル データをデータ ウェアハウスにインポートして分析すると、分析結果に基づいて、コンテンツの対象を特定のユーザー グループに設定できます。

次の表は、プロファイル システムの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
プロファイル システムで収集した情報に基づいて、どのようなビジネス上の決定を下すか? | プロファイル システムの計画は、この事項を検討することから始まります。プロファイル システムの計画に必要なその他の決定事項は、この検討結果によって決まります。
現在、どのような種類のビジネス エンティティ (顧客、企業、商品、注文、アカウントなど) を保存しているか?これらの中で、どのエンティティについての情報をプロファイル システムに保存する必要があるか? | プロファイル システムは柔軟性が高いため、多様なビジネス エンティティに関する情報を取得および格納できます。システムは、異なる種類のデータ ソースからこれらの情報を集計できます。システムを設定するには、エンティティとデータ ソースを定義します。この計画については、データベース管理者と調整して、定義したデータ エンティティが、データベース管理システムに存在するエンティティと矛盾しないようにする必要があります。
どのようなプロファイル情報をデータ ウェアハウスにエクスポートするか? | 「ビジネス分析システムの計画」に記述されている検討事項に対しての対応策で決定したレポートを作成するには、必要な情報をエクスポートする必要があります。
ユーザーに関するどのような情報を収集するか? | ユーザーから情報を直接収集できます。
プロファイルの格納にはどのデータ ストアを使用するか? | Microsoft Windows 2000 のセキュリティ コンテキストによってユーザーを認証する必要がある場合は、プロファイル情報の一部を Microsoft Active Directory に格納する必要があります。その必要がない場合は、Microsoft SQL Server 2000 を使ってプロファイル データを格納します。
プロファイル システムに移行する必要のある既存のユーザー アカウントはあるか?現在のシステムからすべての属性を移行する必要はあるか? | Microsoft Site Server 3.0 Membership ディレクトリから移行する場合は、[Directory Migration] ツールボックスを使ってこれらの情報を移行します。移行した後で Membership ディレクトリを残すことは計画しないでください。

関連項目

プロファイル リソースについて

プロファイル リソースの実行

Membership ディレクトリを移行する


対象化システムの計画

対象化システムを使うと、1 人または複数のユーザーにコンテンツを配信できます。対象化システムには、3 種類のサブシステムがあります。対象化システムの計画にあたっては、これらの種類を考慮する必要があります。

ここでは、次のトピックについて説明します。

  • コンテンツ選択フレームワークの計画
  • ダイレクト メーラーの計画
  • 式エバリュエータの計画


コンテンツ選択フレームワークの計画

コンテンツ選択フレームワーク (CSF) は、Commerce Server 2002 のパイプライン アーキテクチャに基づくフレームワークです。CSF は主にキャンペーン管理 (広告と宣伝の配信) に使いますが、柔軟性が高いため、あらゆる種類のコンテンツのランク付け、選択、およびスケジュール設定にも使用できます。

次の表は、オンライン キャンペーンの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
特定のユーザー グループを対象にしたキャンペーンを行うか?行う場合は、どのユーザー属性を対象とするか? | ビジネス分析システムを使って、サイトの一般的な購買パターンを決定し、この情報を対象化システムに組み込みます。この計画は継続的なプロセスになります。
他の組織に広告を販売するか?販売する場合は、どのような広告の価格スケジュールになるか? | 価格スケジュールがまだない場合は、設定します。Commerce Server ビジネス デスクでキャンペーンを設定するには、この情報が必要です。
在庫の割引についてはだれが決定するか?これらの決定に関して、どのような方針があるか? | 割引と広告キャンペーンを併用することで、効果を最大限に高めます。
価格決定のために、ビジネス分析システムからどのような情報を得る必要があるか? | 必要な CSF の情報を決定し、必要に応じて、この決定をビジネス分析システムが提供するレポートの評価および変更に使います。

関連項目

Extending the Content Selection Framework


ダイレクト メーラーの計画

ダイレクト メーラーを使うと、ユーザー メーリング リストを管理して、リストのメンバへのダイレクト電子メール送信を調整できます。作成する電子メールは、Active Server Pages (ASP) を使ってパーソナライズすることも、静的ファイルにすることもできます。フラット ファイルや Microsoft SQL Server データベースに含まれている電子メール アドレスをメーリング データベースにインポートするには、リスト マネージャ モジュールを使います。

次の表は、ダイレクト メール キャンペーンの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
ダイレクト メール リストからの削除を希望するユーザーは、どのような方法でそれを伝えるか? | ダイレクト メールには、必ず脱退リストを加えます。
ダイレクト メールはどれぐらいの頻度で送信するか? | スケジュールを設定し、送信を自動化するスクリプトを作成します。
ダイレクト メールをパーソナライズするか?パーソナライズする場合は、どのようなユーザー プロファイル情報を使用するか? | パーソナライズしたメールは、より効果的です。ダイレクト メールの対象として使う属性を組み込むように、ユーザー プロファイルをデザインします。

関連項目

ダイレクト メーラーについて

Direct Mailer Pipeline

ダイレクト メーラーの実行

ダイレクト メールのコンテンツを作成する


式エバリュエータの計画

式エバリュエータを使うと、パーソナライズした広告、割引、およびコンテンツの配信に関するビジネス ルールを作成できます。これらのルールは条件式です。

次の表は、式エバリュエータの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
ユーザーにどのような体験を提供するのか?それを実現するには、どのようなビジネス ルールを作成する必要があるか? | 提供するユーザー体験を作成するために、式エバリュエータが評価する式を作成する必要があります。対象化システム用に設定したパーソナライズ要件に基づいて、式を作成します。たとえば、参照元 Uniform Resource Locator (URL) に基づいてコンテンツを表示する場合は、"Referrer が右の項目と等しい URL" という式を作成できます。
必要なビジネス ルールを作成するには、どのようなサイト用語が必要か? | 特定した式をサポートするためのサイト用語を作成します。上記の例では、"Referrer" というサイト用語を作成する必要があります。

関連項目

式ビルダ

式に基づく対象化

広告を対象化する

サイト用語を作成する


サイト アーキテクチャの計画

電子商取引プレゼンス全体のアーキテクチャの計画には、拡大の計画、パフォーマンス予想の設定、およびセキュリティ要件の設定が含まれます。ここでは、これらの計画にあたって検討すべき事項をいくつか説明します。

ここでは、次のトピックについて説明します。

  • キャパシティとパフォーマンスの計画
  • 拡大の計画
  • 既存システムとの統合の計画
  • Active Directory 統合の計画


キャパシティとパフォーマンスの計画

サイト デザイン、コーディング慣行、ユーザーの利用状況、およびサイト アーキテクチャの組み合わせがサイトのパフォーマンスに与える影響を予測することは困難です。このため、運用環境で実際の運用を開始する前に、サイトのキャパシティとパフォーマンスについて計画し、テストすることが重要です。

既存のサイトを移行する場合は、既存のデータを分析して、新しいサイトの計画の基盤にすることができます。初めてサイトを作成する場合は、『Microsoft Commerce Server 2000 リソース キット』にある拡張のガイドラインを使ってテスト サイトを設定し、負荷をかけ、テストし、最適化してから実際の運用を開始できます。

パフォーマンス プランとキャパシティ プランは互いに関連していますが、それぞれ異なる側面に対応します。パフォーマンス プランはサイトの技術的な側面に対応し、Active Server Pages (ASP) ページ スループットや ASP 待機時間などのパフォーマンス指標に焦点を当てています。キャパシティ プランはビジネス面に対応し、サイトが扱うことのできるユーザー数を最大化することに焦点を当てています。

この 2 つのプランのうちでは、パフォーマンス プランの方がより単純です。1 秒あたりの支払いトランザクションの回数を計測し、他の商業サイトと比較することは、比較的簡単です。

ユーザー キャパシティの分析は、これよりやや複雑です。ユーザー キャパシティの上限を予測する前に、ユーザー操作をプロファイル化し、ユーザー プロファイル情報をパフォーマンス指標と併用してキャパシティを計算する必要があります。ユーザー操作は、ショッピング体験の充実度 (ページ デザイン、サイト デザイン、応答時間)、および販売商品の種類や品揃えに応じて、サイトにより異なります。ユーザー操作の違いのため、1,000 人のユーザーをサポートできるサイトもあれば、同じプラットフォームにインストールしても 200 人のユーザーしかサポートできないサイトもあります。

パフォーマンス分析およびキャパシティ プランの詳細については、http://go.microsoft.com/fwlink/?LinkId=6278 にあるホワイト ペーパー「Sizing Guidelines for Windows 2000 Domain Controller and Global Catalog Server」を参照してください。

次の表は、パフォーマンスの計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
サイトのパフォーマンスを判断するために、主にどのような項目を測定するか? | ユーザー体験の目標にできるだけ合致する要素を選択します。たとえば、ユーザーがすばやくカタログを参照できるようにすることが目標である場合は、カタログ参照要求が返される速度を測定します。
サイトのパフォーマンスを測定するために、主にどのような利用状況プロファイルを使用するか? | 予想されるユーザーのサイトへの接続手段と予想負荷を決定します。この利用状況プロファイルをテスト環境で使用して、Commerce Server データ ウェアハウスで利用状況情報を収集したときに、プロファイルが正しいかどうかを確認します。
サイトのパフォーマンスを測定するには、どのようなツールとリソースが必要か? | 『Commerce Server 2000 リソース キット』で提供されるパフォーマンス ツールを確認して、要件を満たすかどうかを判断します。
サイトには何台のサーバーが必要か? それらをどのように構成する必要があるか? | まず、『Commerce Server 2000 リソース キット』に示される利用状況シナリオ構成の情報を参照してください。これらのシナリオをサイトの要件と比較して、必要に応じて構成を変更します。
サイト利用が拡大する速度について、どのように予想しているか? | サイト開発の初期段階で、キャパシティに余裕を持たせます。定期的に、実際の拡大ペースと予測を比較してください。
インストールしたサイトのサーバー間で、どのように負荷を分散するか? | ネットワーク負荷分散 (NLB) については、『Microsoft Windows 2000 リソース キット』を参照してください。

関連項目

Commerce Server の最適化

Commerce Server サイトの監視


拡大の計画

最初のサイト デザインで、将来の拡張を考慮しておく必要があります。十分に計画されたサイトは、優れた費用対効果で拡大または拡張し、パフォーマンスを維持しながらサイト トラフィックの増加に対応できます。

サイトの将来の拡大について計画するには、サイト アーキテクチャを大きく 2 層に分ける必要があります。1 つはフロントエンドの Web サーバーで、もう 1 つはデータを格納したりビジネス プロセス システムを置くためのバックエンド システムです。これらの各層は、予想されるサイトの拡大パターンに合わせて、複数の層に再分割できます。Commerce Server 2002 は柔軟性が高いため、必要に合わせて最も適切なアーキテクチャを選択できます。

バック エンドについては、通常、まず垂直方向拡張を行います。つまり、サーバーのアップグレードと大容量記憶装置の追加によって拡張します。さらに、2 台以上のサーバーの間で、機能ごとにデータ層を再分割できます。たとえば、1 台のサーバーに Commerce Server データ ウェアハウスを置き、他のサーバーにプロファイル情報格納用のデータベースを置きます。Commerce Server では、セットアップ中に複数のサーバーに機能を分割するか、または後で Commerce Server マネージャを使って機能を分割できます。きわめて大規模なサイトの場合は、個々のデータベースを複数のサーバーに分割して置くこともできます。

次の表は、拡大の計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
長期的なキャパシティの増加に関する要件に最も合ったサイト アーキテクチャはどのようなものか? | 『Commerce Server 2000 リソース キット』に示される利用状況シナリオ構成の情報を参照してください。最も適切な構成を選択します。
利用要求が増加した場合、どのようにサイト キャパシティを拡大するか? | サーバーの種類、ネットワーク接続、および Commerce Server の機能ごとに、拡張パスを計画します。拡張パスには、指定されたしきい値 (同時にアクセスするユーザーの数、メモリの利用状況、ディスクの利用状況など) に達したときのサイトの拡張計画が含まれます。

関連項目

サイトの配置


既存システムとの統合の計画

計画プロセスでは、既存のシステムとデータを評価して、それらを Commerce Server 2002 コンポーネントと統合するか、または Commerce Server データベースにインポート可能な形式に変換するための最も有効な手段を決定する必要があります。さらに、電子商取引ビジネスのサブシステムの統合を計画する必要もあります。

次の表は、統合の計画にあたって検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
既存のデータベースと、カタログ、ユーザー プロファイル、顧客などのデータを格納したデータベース サーバーを統合するか? | オフライン ビジネスとオンライン ビジネスのデータ ソースを分離して管理する場合は、データの同期をとるシステムを確立する必要があります。システム全体のデザインに Microsoft Host Integration Server 2000 と Microsoft Application Center 2000 を統合することを検討してください。
既存の注文処理システム、支払いトランザクション システム、在庫管理システム、および注文遂行システムを Commerce Server と統合するか? | これらのシステムの統合を計画している場合は、これらのシステムを Commerce Server と接続する Component Object Model (COM) コンポーネントを開発します。システム全体のデザインに Microsoft BizTalk Server 2000 を組み込むことを検討してください。
Enterprise Resource Planning (ERP) システムをサプライヤや取引先と統合する必要があるか? | ERP システムの統合を計画している場合は、システム全体のデザインに BizTalk Server を組み込む必要があります。
データの変換については、どのような要件があるか? | データを既存の形式から Commerce Server で使用できる形式に変換するシステムを確立します。たとえば、既存のタブ区切り形式のカタログ データは、拡張マークアップ言語 (XML) に変換してから商品カタログ システムにインポートする必要があります。
カスタム開発については、どのような要件があるか? | Commerce Server は充実した機能を備えた製品ですが、ビジネス要件に合わせてさまざまな機能をカスタマイズできるように設計されています。カスタム開発を計画する前に、「Commerce Server の機能の概要」に記載された機能の一覧を確認してください。
カスタム開発は社内で行うか? ソフトウェア ベンダと協力するか? | http://go.microsoft.com/fwlink/?LinkId=6772 にある Microsoft パートナーに関する情報を参照してください。

関連項目

Integrating with BizTalk Server

Integrating a Third-Party Product Catalog

サイトに非 Commerce のアプリケーションを追加する

アプリケーションに非 Commerce の Web サーバーを追加する


Active Directory 統合の計画

Active Directory は、Windows 2000 に組み込まれたディレクトリ サービスです。Active Directory を使うと、組織のビジネス エンティティを追加、変更、削除、および整理できます。たとえば、Windows 2000 のユーザー アカウント、コンピュータ アカウント、セキュリティと配布グループ、および公開リソースは、すべて Active Directory からアクセスできます。

Active Directory は、プロファイル データのデータ ソースとして使用できます。プロファイル システムが Active Directory のデータとその他のデータ ソースのデータを 1 つのビジネス エンティティに集約し、それを Commerce Server システムで使用できます。たとえば、ユーザーのアカウント番号とパスワードを Active Directory に格納し、その他のアカウント情報 (連絡先情報、クレジット制限、各種設定など) は Microsoft SQL Server に格納するとします。プロファイル システムはこれらの 2 つのデータ ソースのデータを 1 つのプロファイルに結合し、それを対象化や分析に使用できます。

Active Directory は、きわめて堅牢で拡張性の高い技術です。ただし、それを適切に使うようにサイト アーキテクチャをデザインすることが重要です。

ユーザーを Active Directory 内のグループに分割することを計画している場合は、Active Directory サーバーのパフォーマンスが常に適切となるように特別な注意が必要です。グループにユーザーを追加することは、Active Directory では比較的コストがかかる操作になります。また、各グループのユーザー数の上限は 5,000 です。

この上限数を回避するため、Microsoft Commerce Server Software Development Kit (SDK) には SubgroupManager というオブジェクトが用意されています。このオブジェクトは、5,000 を超えるユーザーを "仮想" のグループに格納し、ユーザーが格納される実際のグループは非表示にします。詳細については、「SubgroupManager」を参照してください。このオブジェクトを使うと、コストがかかる操作にさらにコストをかけることになります。Web サイトのこのコンポーネントに適したハードウェアを決定するときには、この点を十分に考慮する必要があります。

次の表は、サイト デザインに Active Directory を活用するために検討する必要がある事項を示しています。

計画上の検討事項 | 推奨される対応
Active Directory にはどのようなデータを格納するか? | Active Directory には変更頻度の低いデータのみを格納します。
Active Directory にはどれぐらいの量のデータを格納するか? 1 つの Active Directory ドメインには、最大で 100 万件のユーザー アカウントを含めることができます。この見積もりは、次の仮定に基づいています。
  • 同時に活発にサイトを利用するユーザーは全体の 1% (10,000 人)。
  • Active Directory から読み取られる項目数に対する Active Directory に書き込まれる項目数の比率は 14% 以下。

Active Directory ストアで 100 万人以上のユーザーに対応する必要がある場合は、それぞれ 100 万人ずつのユーザーを含む複数のドメインを組み合わせることができます。

より大規模なシステムに Active Directory を使う場合は、Microsoft Consulting Services (MCS) と契約して、計画の支援を受けてください。

関連項目

Active Directory を使った小規模サイトの構成

ドメインを設定する

Membership ディレクトリを移行する

2 つのデータ ソースを持つプロファイル定義を作成する


インターナショナル ソリューションの計画

Commerce Server では、インターナショナル ソリューションを開発するためのツールが数多く提供されています。ただし、ソリューションを実装する前に、決めておくべき主要な事項を理解しておくことが重要です。これらの決定を行うには、次の 2 つの主要カテゴリにおいて、ソリューション要件を分析する必要があります。

  • 表示する文字の要件
  • 表示する通貨の要件


表示する文字の要件

Commerce Server 2002 で表示できる文字は、Windows 2000 および SQL Server 2000 で表示できる文字に依存します。Windows 2000 や SQL Server 2000 で複数の種類の文字を表示できる場合、Commerce Server 2002 のソリューションでもそれらの文字を表示できます。ただし、そのためには、いくつかの検討事項を考慮に入れる必要があります。次の表は、検討する必要のある事項を示しています。

計画上の検討事項 | 推奨される対応
単一の Web サイトで異なるコード ページの文字を表示する必要があるか? 異なるコード ページの文字を表示することは可能ですが、いくつかの制限があります。一般的に、次の項目では、単一のコード ページを使う必要があります。
  • クエリ文字列
  • Commerce Server イベント
  • ファイル名

ファイル名は URL フィールドに表示されるので、単一のコード ページにする必要があります。IIS の Web ログ ファイルは、単一のコード ページにのみ対応しています。これらの Web ログ ファイルはデータ ウェアハウスにインポートされます。
商品カタログ項目で異なるコード ページの文字を表示する必要があるか? | 説明を含む単一の基本カタログを作成します。また、言語プロパティを設定して、文字が適切な言語で表示されるようにします。さらに、「ASP-Based Catalog Sitelet」と「ASP .NET-Based Catalog Sitelet」の説明に従って、適切なコード ページを使って商品カタログの説明を表示するコードをサイトに追加します。
キャンペーン コンテンツで異なるコード ページの文字を表示する必要があるか? | 一般的に、言語ごとにキャンペーン コンテンツを作成する必要があります。マーケティング キャンペーンは、言語的にも文化的にも固有のものにすることができます。そのためには、通常の翻訳以上の作業が必要になります。各キャンペーン項目にそれぞれ異なるコード ページが必要な場合は、適切なコード ページを使って商品カタログの説明を表示するコードをサイトに追加します。詳細については、「ASP-Based Advertising Sitelet」と「ASP .NET-Based Advertising Sitelet」を参照してください。


表示する通貨の要件

Commerce Server で表示できる通貨は、Windows 2000 および SQL Server 2000 で表示できる通貨に依存します。一般的に、表示する通貨の形式 (通貨記号と桁位置の区切り記号) はロケール ID (LCID) で決まります。通貨記号の位置、桁区切り記号、および小数点 (小数点がある場合) は、ロケールによって決まっています。また、通貨記号および小数部の有無は、通貨によって決まっています。たとえば、ロケールとその値が何であっても、日本円の記号は \ です (円には小数部はありません)。

Commerce Server 2002 では、簡単な手続きで、LCID をサイトごとに設定したり、アプリケーションの通貨形式コードを統合したりできます。LCID を設定するには、アプリケーション既定の構成リソースにプロパティを設定します。ただし、そのためには、いくつかの検討事項を考慮に入れる必要があります。次の表は、検討する必要のある事項を示しています。

計画上の検討事項 | 推奨される対応
カタログ項目で同時に 2 つの通貨 (米国ドルと日本円など) を表示する必要があるか? | 会計システムが会計レポートに使用する基本通貨を、アプリケーションの既定の構成リソースで設定します。また、第 2 通貨用の代替通貨を設定します。カタログ内に基本通貨を格納し、適切な変換レートを使って、運用時の代替価格を予想します。 アプリケーション既定の構成のプロパティについては、「アプリケーション既定の構成リソースを構成する」を参照してください。
固定変換レート契約に基づく代替通貨でカタログの価格を表示する必要があるか? | データベースに固定変換レートを格納し、このレートを使って適切な価格設定ルールを計算します。計算は、価格設定ルールと仮想カタログを使って行います。


サイトのセキュリティ設定

セキュリティを主要な機能としてデザイン、構築、および配置した Web サイトは、配置後にセキュリティ機能を追加した Web サイトよりも堅牢です。ただし、Web サイトが複雑になるほど、セキュリティの設定は困難になります。小数の特定のプロパティを設定したり、特定のツールを使うだけでは、十分なセキュリティは実現できません。サイトの計画、開発、および配置のすべての段階で、総合的にセキュリティに取り組む必要があります。

Windows 統合セキュリティを使うように Commerce Server を構成する方法の詳細については、「Windows 認証を使って Commerce Server を配置する」を参照してください。

ここでは、次のトピックについて説明します。

  • セキュリティのチェックリスト
  • セキュリティに関するヒント集
  • セキュリティに関する注意事項
  • Windows 認証を使う
  • SQL 認証を使う
  • セキュリティで保護されたサイトを開発する
  • セキュリティで保護されたサイトの配置
  • 匿名アカウントにセキュリティを設定する
  • サービス アカウントにセキュリティを設定する
  • ビジネス デスクのセキュリティを設定する
  • データベースにセキュリティを設定する
  • 予測の配置にセキュリティを設定する
  • ネットワークにセキュリティを設定する
  • Web サーバーにセキュリティを設定する
  • セキュリティに関する追加情報


セキュリティのチェックリスト

Commerce Server のインストール環境にセキュリティを設定するための推奨手順の概要を次に示します。

  • セキュリティで保護されたインフラストラクチャを配置する。
    • ファイアウォールを使う。
    • SQL サービス、Windows サービス、および Commerce Server サービス (リスト マネージャ、ダイレクト メーラー) を、最小の権限のアカウントで実行する。イベント ログのユーザー アカウントは、そのマシンの管理者である必要があります。
    • バスケットや支払いなどの要求を絞り込む。
    • Commerce Server で使われるインターネット インフォメーション サービス (IIS) のアプリケーションを、保護が "中 (プール)" で実行するように構成する。複数サイト構成の場合、Commerce Server で使われる IIS アプリケーションは、保護が "高 (分離プロセス)" で実行する必要があります。
  • Windows 認証を使って Commerce Server を配置する。
    • Commerce Server のサービスおよびユーザー用のドメイン アカウントを作成する。
    • Windows 統合セキュリティを使って Commerce Server をインストールする。
    • 匿名アカウントを、ドメイン アカウントにマップするように構成する。
    • ビジネス デスクの Web サーバーに信頼関係接続を設定する。
  • ビジネス デスク アプリケーションとユーザー インターフェイスにセキュリティを設定する。
    • Windows NT 4.0 またはそれ以前のバージョンを実行しているビジネス デスク クライアント コンピュータに NTLM 認証を適用する。
    • ビジネス デスクのアクセス許可モジュールを使って、モジュール、タスク、フィールド、およびプロパティへのアクセスを制限する。
    • ビジネス デスクの物理ディレクトリと仮想ディレクトリのアクセス許可を設定し、管理者だけがアクセスできるようにする。
    • BDRefresh.asp、RefreshApp.asp、および Opt-Out.asp スクリプトのアクセス許可を設定し、ビジネス デスク サーバーの IP アドレスからのヒットだけを受け付けるようにする。
  • 管理データベースにセキュリティを設定する。このデータベースには、サイトに関する構成情報が含まれます。
    • 管理データベースへの接続に Windows 認証を使う。
    • SiteConfigReadOnly オブジェクト、SiteConfig オブジェクト、および GlobalConfig オブジェクトにセキュリティを設定する。
    • 実行可能スクリプトを制限して、攻撃者がこれらの構成オブジェクトにアクセスできないようにする。
    • SiteConfig オブジェクトおよび GlobalConfig オブジェクトの使用を制限する。これを行うには、これらのオブジェクト クラスのレジストリ キーのアクセス制御リスト (ACL) を変更します。
  • 実行時の Commerce Server データベースにセキュリティを設定する。
    • データベースへの接続に Windows 認証を使う。
    • Commerce Server セキュリティ スクリプトを実行して、データベースごとに適切なロールを作成する。次に、ビジネス デスクのユーザー アカウントと実行時のユーザー アカウントを適切なロールに割り当てます。
    • 名前付きパイプに暗号化を配置して、暗号化されたネットワーク接続を使う。具体的には、IPSec 認証を使い、Secure Sockets Layer (SSL) 暗号化を有効にし、マルチプロトコル クライアント暗号化を有効にします。
    • Commerce Server の暗号化機能 (一方向ハッシュや非対称暗号化など) を使って、ユーザーのパスワード (つまり復号化の必要がないデータ) を暗号化する。非対称暗号化を使って、クレジット カードの番号と有効期限を暗号化します。
    • 実行時のユーザー (Web サイトを訪問するユーザー) とデザイン時のユーザー (ビジネス デスクを使ってサイトを更新するユーザー) に、Commerce Server データベース、テーブル、およびストアド プロシージャへのアクセス許可を設定する。
  • データ ウェアハウスにセキュリティを設定する。
    • DTS タスクでアクセスする必要がある Commerce Server データベースごとに、DTS タスクのセキュリティ スクリプトを実行する。これらのスクリプトは、データベースごとに DTS_ImportRole を作成し、ロールに適切なデータベースのアクセス許可を付与します。DTS_ImportRole には、DTS タスクを実行する権限のあるユーザーのログイン アカウントを割り当てます。
    • データ ウェアハウスのデータベースに対してレポートのセキュリティ スクリプトを実行する。これらのスクリプトは、データ ウェアハウスのデータベースの 2 つのロールを作成します。1 つは、レポートを実行および表示するユーザー用のロールで、もう 1 つは、レポートを作成、削除、および変更するユーザー用のロールです。ロールには、それぞれの適切なデータベースのアクセス許可が付与されます。ビジネス デスクのユーザーを、ユーザーのジョブ要件により、適切なロールに割り当てます。
    • HTTPS 経由で分析サーバーにアクセスするように設定する。この設定により、ビジネス デスクのユーザーがインターネット経由でレポートを実行できるようになります。
  • ダイレクト メーラー データベースにセキュリティを設定する。
    • ダイレクト メーラー サービスに db_owner アクセス許可を付与する。
    • リスト マネージャ サービスに db_owner アクセス許可を付与する。
  • Web ログ ファイルにセキュリティを設定する。このファイルは、データ ウェアハウスにインポートされます。
    • ログ ファイルのディレクトリにアクセス制御リスト (ACL) を設定する。
    • 暗号化されたネットワーク接続を使う (SSL と IPSec を適用します)。
  • Web サーバー、アプリケーション、および Web サーバー上にインストールされている特定のファイルにセキュリティを設定する。
    • FTP サーバー、SMTP サーバー、インデックス サービス、Microsoft FrontPage Extensions、Script Debugger、およびインターネット サービス マネージャ (HTML) について、サーバー上のどのアプリケーションでも使われていないものを削除する。
    • ACL を使って pipelines ディレクトリにセキュリティを設定し、.PCF ファイルと .PIPELOG ファイルのダウンロードを防止する。
    • IIS で csappi.ini ファイルへの読み取りアクセスと匿名アクセスの両方を拒否することによって、このファイルにセキュリティを設定する。NTFS ファイル システム (NTFS) のアクセス許可を使ってこのファイルにセキュリティを設定しないでください。このファイルは、IUSR アカウントなどのユーザー資格情報で読み取り可能でなければならないためです。
    • サイトのアンパック後に、サイトに含まれるファイルとフォルダにセキュリティを設定するスクリプトを作成する。Commerce Server サイト パッケージャでは、NTFS のフォルダやファイルのアクセス許可 (アクセス制御リスト) のパッケージ化やアンパックは行われません。
    • Web サーバーに対話形式でログオンできるアカウントを構成する場合は注意する。Guest アカウントが無効になっていること、および Web サーバーにアクセスする必要があるアカウントだけにアクセス許可が与えられていることを確認します。
    • インターネット インフォメーション サービス (IIS) のアプリケーションとフォルダの書き込みアクセス許可を無効にする ([ホーム ディレクトリ] タブで行う)。
  • Microsoft Strategic Technology Protection Program のツールをインストールする。これらのツールは、http://go.microsoft.com/fwlink/?LinkId=6689 から入手できます。
    • インターネット インフォメーション サービス (IIS) Lockdown ツールを使って、インターネット サービス マネージャから不要なリンク (スクリプト、イメージ、iishelp、iisadmin、msadc など) をすべて削除する。IIS Lockdown ツールをダウンロードするには、http://go.microsoft.com/fwlink/?LinkId=6689 を参照してください。
    • URLScan ツールを使って、Web サーバーが正当な要求だけに応答するようにする。
    • HFNetCheck ツールを使ってローカルとリモートのサーバーをスキャンし、Windows 2000、IIS 5.0、Internet Explorer、および SQL Server に有効なセキュリティ パッチがすべて最新のものになっていることを確認する。HFCheck ツールをダウンロードするには、http://go.microsoft.com/fwlink/?LinkId=6715 を参照してください。
    • Qchain.exe ツールを使って複数の修正プログラムを同時にインストールし、再起動を 1 回で済ませる。Qchain.exe ツールをダウンロードするには、http://go.microsoft.com/fwlink/?LinkId=6716 で、Microsoft サポート技術情報の記事「JP296861 : QChain.exe を使用して複数の修正プログラムを同時にインストールし、再起動を 1 回で済ませる方法」を参照してください。


セキュリティに関するヒント集

インストールされた Commerce Server にセキュリティを確実に設定するには、ここに示すヒント集に従うことを強くお勧めします。

  • Windows 認証を使って Commerce Server をインストールする。

    既定のインストール オプションを使わずに、SQL Server 認証を使って Commerce Server をインストールする場合は、配置にセキュリティ リスクが生じる可能性があります。このセキュリティ リスクに関する情報や、サイトにセキュリティを設定するための手順については、「セキュリティに関する注意事項」を参照してください。

    Commerce Server のリソースによって SQL Server 認証と Windows 統合認証を使い分けてデータベースにアクセスするように構成することはお勧めできません。すべてのリソースで同じセキュリティ方式を使うようにしてください。

    次の問題は、特定の構成に適用されます。

    • SQL Server がリモートの場合、Windows 認証を使ってデータベースにアクセスするときは、IIS 匿名アカウントをドメイン アカウントに必ずマップする。

      リモート SQL Server と Windows 認証を使う場合は、IIS 匿名アカウント (既定値は IUSR_<コンピュータ名>) をドメイン アカウントにマップする必要があります。次に、実行時の Commerce Server データベースへのフル アクセス許可を持つ SQL Server ログインをドメイン アカウント用に作成する必要があります。

    • SQL Server がローカルの場合、Windows 認証を使ってデータベースにアクセスするときは、IIS 匿名アカウントに使われるアカウントのアクセス許可を SQL Server に必ず割り当てる。

      SQL Server では、IIS 匿名アカウントがデータ ストアへのアクセス許可を持つ必要があります。

      必要なソフトウェアがすべてインストールされている 1 台のコンピュータ上で開発するような場合は、この構成を設定できます。

  • ビジネス デスク ユーザーに対しては、IIS の基本認証を構成する。

    ビジネス デスク ユーザーがレポートを実行する場合、Analysis Services データベースからデータが取得されます。ビジネス デスク ユーザーが HTTPS 経由で Analysis Services を使用するには、Windows 2000 資格情報を渡す基本認証を使用して認証される必要があります。

    Web 上で Windows 2000 資格情報を渡す場合は、HTTPS を使用して、Windows アカウントとパスワードがセキュリティで保護されるようにします。

    注

    • ビジネス デスク ユーザーがレポートを実行し、HTTPS 経由で Analysis Services にアクセスする場合、ユーザーの有効な Windows 2000 ユーザー ID とパスワードは、ビジネス デスクの HTML 内に格納されます。詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。
  • 複数サーバー環境で認証フィルタを使う場合は、管理データベースへの接続文字列に対して必ず SQL Server 認証を使う。

    このシナリオは次のとおりです。

    • Windows 認証を使って Commerce Server を配置する。
    • Microsoft Active Directory の代わりに SQL Server を使う。
    • 認証フィルタを使う。
    • 管理データベースへの接続文字列を SQL Server 認証に変更します。

    このシナリオで認証フィルタを使うときは、管理データベースへの接続文字列を変更する必要があります。これは、ISAPI フィルタ (つまり、認証フィルタ) が、LocalSystem とも呼ばれる IIS プロセス (inetinfo) のセキュリティ コンテキストで実行されるためです。このため、認証フィルタにより、LocalSystem からの資格情報を使って、別のコンピュータ上の SQL Server への接続が試行されますが、この接続は無効です。これは、認証フィルタには、ネットワーク経由で接続する権限がないためです(管理データベースがローカルの場合には接続が機能することもあります。しかし、管理データベースは必ず Web サーバー以外に配置する必要があります)。

    このシナリオは、インターネット インフォメーション サービス 6.0 を使う場合には適用されません。

    詳細については、「分散環境で Windows 認証を使う」を参照してください。

  • 複数のサイトがある環境では、スクリプトのアップロードを許可しない。

    アップロードされたスクリプトを十分に監視しないと、アップロードされたスクリプトのコードによるセキュリティ リスクが生じる可能性があります。

関連項目

セキュリティに関する重要事項

分散環境で Windows 認証を使う

サービス アカウントにセキュリティを設定する

実行時の Commerce Server データベースにセキュリティを設定する

データ ウェアハウスにセキュリティを設定する

ビジネス デスクのセキュリティを設定する


セキュリティに関する注意事項

ここでは、Commerce Server における既知のセキュリティ問題、およびセキュリティ リスクを緩和するための手順について説明します。

既知のセキュリティ問題

  • カタログ セキュリティ : ビジネス デスクのユーザーを db_owner ロールに割り当てる
  • サイト パッケージャ : unpack.vbs ファイルを削除する
  • Config COM+ アプリケーション : Web Users ロールから Everyone を削除する
  • 認証フィルタでは管理データベース用に SQL 認証を使う

カタログ セキュリティ : ビジネス デスクのユーザーを db_owner ロールに割り当てる

ビジネス デスクのユーザーによるカタログの編集 (カタログ定義の編集、カタログの再構築、フルテキスト インデックスの更新、カタログの公開など) を可能にするには、ユーザーをカタログ データベースの db_owner ロールに割り当てる必要があります。操作方法については、「Windows 認証を使って Commerce Server を配置する」を参照してください。

db_owner ロールに割り当てるビジネス デスクのユーザーが信頼できるかどうかを慎重に検討してください。このロールにビジネス デスクのユーザーを割り当てる場合は、次のセキュリティ リスクを考慮に入れる必要があります。

重要

  • db_owner ロールに割り当てられたビジネス デスクのユーザーが、データベースを削除する可能性があります。このリスクを緩和するには、ファイアウォールを配置し、カタログを含む SQL Server データベースにビジネス デスク クライアントから直接接続できないようにする必要があります。このセキュリティが設定された構成を使うことをお勧めします。ファイアウォールの配置方法の詳細については、「セキュリティで保護されたサイトの配置」を参照してください。

サイト パッケージャ : unpack.vbs ファイルを削除する

リモート Web サーバーにアプリケーションをアンパックするときに、unpack.vbs ファイルを作成する場合は、アンパック後すぐにファイルを削除してください。

unpack.vbs ファイルはルート ディレクトリにあり、匿名ユーザーからもアクセスできます。このバッチ ファイルが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。

Config COM+ アプリケーション : Web Users ロールから Everyone を削除する

Commerce Server では 5 つの COM+ アプリケーションがインストールされますが、管理データベースへのアクセスに使われる Config アプリケーションだけは、割り当て済みのロールを使います。このロールは次のとおりです。

  • Administratorsこのロールのアカウントは、オブジェクトを使って管理データベースへの書き込みを行います。既定では、Commerce Server のセットアップ時にログオンしたユーザーと、ローカル Administrators グループが、このロールに追加されます。

    Commerce Server マネージャを使用するアクセス許可をシステム管理者に与えるには、このロールを使います。

  • Web Usersこのロールのアカウントには、アプリケーションに Web サーバーを追加するアクセス許可が付与されます。

    このロールは、たとえば Web ファームを使うような場合に、Web サーバーの自動追加をサポートします。新規の Web サーバーで Commerce Server アプリケーションが初めて起動する場合を考えます。たとえば、ユーザーが Web サーバーに接続したり負荷を分散したりします。次に、global.asa を起動します。これにより、Web サーバーが管理データベースに自動的に追加されます。管理データベースを更新する関数は JoinWebFarm で、ソリューション サイトに含まれています。

    既定では、Everyone がこのロールに追加されます。これを変更するには、次の操作を行います。

    1. Everyone を削除します。
    2. 匿名アカウント (既定値は IUSR_<コンピュータ名>) を追加します。
    3. IIS Process アカウント (既定値は IWAM_<コンピュータ名>) を追加します。
    4. サイトへの接続を許可するその他のユーザーのアカウントを追加します。

    JoinWebFarm の詳細については、「JoinWebFarm」および「サイト パッケージャを使わずに Web サーバーを追加する」を参照してください。

認証フィルタでは管理データベースに SQL 認証を使う

分散環境で認証フィルタを使う場合は、管理データベースへの接続文字列を SQL 認証に変更する必要があります。次の理由により、接続文字列の変更が必要です。

ISAPI フィルタ (つまり、認証フィルタ) が、LocalSystem とも呼ばれる IIS プロセス (inetinfo) のセキュリティ コンテキストで実行されるためです。このため、認証フィルタにより、LocalSystem からの資格情報を使って、別のコンピュータ上の SQL Server への接続が試行されますが、この接続は無効です。これは、認証フィルタには、ネットワーク経由で接続する権限がないためです。

管理データベースがローカルの場合には接続が機能することもあります。しかし、管理データベースは必ず Web サーバー以外に配置する必要があります。

関連項目

サービス アカウントにセキュリティを設定する

実行時の Commerce Server データベースにセキュリティを設定する

データ ウェアハウスにセキュリティを設定する

ビジネス デスクのセキュリティを設定する


Windows 認証を使う

Commerce Server では、SQL Server に対する Windows 認証がサポートされています。Windows 認証は、Windows 統合セキュリティとも呼ばれます。

Commerce Server のインストール環境には、Windows 認証を使うことをお勧めします。Windows 認証では、SQL Server への認証に Windows ユーザー アカウントが使われます。Commerce Server では、特定のデータベースにアクセスしようとするユーザーのセキュリティ コンテキストを確認する際に、SQL Server に Windows 認証を使うように指示するためのタグが接続文字列に設定されます。

Windows 認証を使うと、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。

ここでは、次のトピックについて説明します。

  • Windows 認証を使うためのチェックリスト
  • Windows 認証を使って Commerce Server を配置する
  • 1 台のコンピュータ環境で Windows 認証を使う
  • 分散環境で Windows 認証を使う
  • ダイレクト メーラーと Windows 認証を使う


Windows 認証を使うためのチェックリスト

ドメイン コントローラを含む分散環境で Windows 認証を使う、セキュリティで保護された配置を構成するためのチェックリストを次に示します。セキュリティで保護された配置の図については、「セキュリティで保護された配置の例」を参照してください。

ドメイン コントローラ

  • Active Directory をネイティブ モードでインストールする。
  • setspn.exe を実行して、サービス プリンシパル名 (SPN) を設定する。
  • setspn –L を実行して、host/WebServerNetbios と host/WebServerDNSName が存在することを確認します。
  • setspn -L SQLnetbiosName を実行して、SQL サービス プリンシパル名が存在することを確認します。

Web サーバー

  • アプリケーションの保護が "中 (プール)" (OOB) で IWAM\<コンピュータ名> を使うように構成する。これ以外に IWAM の資格情報は必要ありません。

    アプリケーションの保護が "高 (分離プロセス)" の構成は、複数サイト配置で必要になります。

  • TCP/IP が SQL クライアント接続用の有効なプロトコル/ネットワーク ライブラリになっていることを確認する。

SQL Server

  • 混合モード認証を使うように構成する。
  • サーバー用に TCP/IP プロトコルを有効にする。名前付きインスタンスを使う場合は、ポート番号を入力します。この場合、SQL Server が、サービス (MSSQLSVC) の再起動時に、サービス プリンシパル名 (つまり、mssqlsvc/<DNS 名>:<ポート番号>) を追加します。

ビジネス デスク クライアント

  • ビジネス デスク クライアントをインストールするコンピュータは、データ層のコンピュータと同じドメイン (フォレスト)、または信頼される側のドメインに配置する必要がある。
  • Internet Explorer 5.5 以降を使う。Internet Explorer 6.0 をインストールすると、既定で、"Windows 統合認証を使用" が無効になります。これについては、有効にする必要があります。


Windows 認証を使って Commerce Server を配置する

Windows 統合セキュリティを使って Commerce Server をインストールすること、および Windows 認証を使うためにデータベースにセキュリティを設定することを強くお勧めします。

Windows 統合セキュリティを使って Commerce Server をインストールするための手順、および Windows 認証を使うためにサービスとデータベースにセキュリティを設定する手順を次に示します。各手順の詳細については、後続のセクションで説明します。

  • 手順 1 : dcpromo を実行して Active Directory サービスをインストールする
  • 手順 2 : 必要なアカウントを作成する
  • 手順 3 : Windows 統合セキュリティを使って Commerce Server をインストールする
  • 手順 4 : サイトをアンパックしてデータベースの接続文字列を Windows 認証用に構成する
  • 手順 5 : ビジネス デスクのユーザーに信頼関係接続を設定する
  • 手順 6 : Web サイトの匿名アカウントを匿名ドメイン アカウントにマップする
  • 手順 7 : 必要なアカウントごとに SQL ログイン アカウントを作成する
  • 手順 8 : Commerce Server データベースのセキュリティ スクリプトを実行する
  • 手順 9 : 必要なアカウントをデータベース ロールに追加する
  • 手順 10 : OLAP データベースを設定する
  • 手順 11 : サービス アカウントを Config COM+ アプリケーション ロールに追加する
  • 手順 12 : 個々のユーザー アカウントをグループ ドメイン アカウントに追加する
  • 手順 13 : ユーザーにビジネス デスク アクセス許可を付与する
  • 手順 14 : Internet Explorer で統合 Windows 認証を有効にする
  • 手順 15 : ユーザーのログイン アカウントをデータベース所有者 (dbo) ユーザーにマップする

手順 1 : dcpromo を実行して Active Directory サービスをインストールする

ここでは、Active Directory サービスがどのコンピュータにもインストールされていないこと、ドメイン ネーム システム (DNS) がインストールされていないこと、およびドメイン コントローラがないことを前提としています。Active Directory サービスが既にインストールされている場合は、「手順 2 : 必要なアカウントを作成する」に進んでください。

dcpromo を実行する方法、および Active Directory サービスをインストールする方法の詳細については、「コンピュータ 1 に Active Directory と DNS を構成する」を参照してください。

dcpromo を実行して Active Directory サービスをインストールするには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「dcpromo」と入力し、[OK] をクリックします。

    Active Directory のインストール ウィザードが起動します。

  3. ウィザードのオンラインの指示に従います。ただし、次の点に注意してください。
    • [ディレクトリ サービス復元モード Administrator パスワード] ダイアログ ボックスで、DNS サーバーの Administrator アカウントに割り当てるパスワードを入力するように求められます。このアカウントは、コンピュータの Administrator アカウントとは異なります。

手順 2 : 必要なアカウントを作成する

Active Directory サービスをインストールしたコンピュータで、必要なユーザー アカウントとグループ アカウントを作成します。

必要なアカウントを作成するには

  1. コンピュータの "管理者" としてログオンします (ドメイン管理者としてログオンしないでください)。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーとコンピュータ] をクリックします。
  3. [Active Directory ユーザーとコンピュータ] で、[ユーザー] を右クリックし、[新しいユーザー] をクリックします。
  4. [新しいユーザー] ダイアログ ボックスで、ユーザー アカウント名 (たとえば「CSDM」) とパスワードを入力し、[作成] をクリックします。
  5. これらの手順を繰り返し、次のアカウントをそれぞれ作成します。
    アカウント ユーザー | サンプルのアカウント名 | 説明
    実行時のユーザー | Anonymous | Web サイトを訪問する匿名ユーザー用の "ユーザー" アカウント。
    ダイレクト メーラー サービス | CSDM | ダイレクト メーラー サービス用の "ユーザー" アカウント。
    リスト マネージャ サービス | CSLM | リスト マネージャ サービス用の "ユーザー" アカウント。
    Config COM+ アプリケーション | CSCOMPlus | Config COM+ アプリケーション用の "ユーザー" アカウント。
    ビジネス デスク グループ | BDGroup | レポートを実行するユーザーを含む、ビジネス デスクのすべてのユーザー用の "グループ" アカウント。デザイン時のユーザーとも呼ばれます。
    詳細レポート グループ | ReportAdvanced | 動的レポートの保存、レポートの変更、およびレポートの削除を行う必要があるビジネス デスクのユーザー用の "グループ" アカウント。
    DTS タスク インポート グループ | DTSImport | DTS タスクを実行してデータ ウェアハウスへのインポートおよび拡張を行うシステム管理者用の "グループ" アカウント。

    ビジネス デスクのグループ アカウントを作成するには、[ユーザー] の代わりに [グループ] を右クリックし、[新しいグループ] をクリックします。

手順 3 : Windows 統合セキュリティを使って Commerce Server をインストールする

ダイレクト メーラーをインストールする前に、SQL Server Agent が起動していることを確認します。起動していない場合は、ダイレクト メーラーがインストールされません。

Windows 統合セキュリティを使って Commerce Server をインストールするには

  1. コンピュータの "管理者" としてログオンします。ドメイン管理者としてログオンしないでください。
  2. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入します。Commerce Server 2002 の CD-ROM のルートで、Setup.exe をダブルクリックします。Commerce Server 2002 のセットアップ プログラムが起動します。
  3. [管理データベースの構成] 画面で、[Windows 統合セキュリティを使用] を選択し、[次へ] をクリックします。
  4. [ダイレクト メーラー データベースの構成] 画面で、[Windows 統合セキュリティを使用] を選択し、[次へ] をクリックします。
  5. [サービス アカウント] 画面で [ダイレクト メーラー サービス] をクリックし、ダイレクト メーラー用の Windows 2000 アカウント (たとえば CSDM) を指定します。
  6. 次のサービスについて、手順 5. を繰り返します。
    サービス | サンプルのアカウント名
    リスト マネージャ | CSLM
    Config COM+ アプリケーション | CSCOMPlus

    Commerce のセットアップ時に、指定したアカウントに対して "サービスとしてログオン" の権利が自動的に与えられます。

    イベント ログは、そのマシンの管理者のアカウントの下で実行する必要があります。

  7. [インストール] をクリックすると、インストール処理が開始されます。
  8. インストール処理が完了したら、[完了] をクリックします。

手順 4 : サイトをアンパックしてデータベースの接続文字列を Windows 認証用に構成する

サイトをアンパックすると、データベースへの接続文字列が、Windows 認証を使うように自動的に構成されます。

  1. Web サーバー コンピュータとデータベース コンピュータへの管理者特権を持つドメイン ユーザーとしてログインします。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  3. オンラインの指示に従います。既定では、すべてのデータベースの接続文字列が、Windows 認証を使うように構成されます。

    [カスタム] オプションを選択して、次のデータベースを作成するとします。

    • ビジネス デスク アクセス許可
    • カタログ
    • プロファイル
    • キャンペーン
    • トランザクション構成
    • トランザクション

    使用するデータベースが異なる場合や、すべてのリソースを 1 つのデータベースにインストールした場合は、それに従って、次の手順を読み替えてください。

手順 5 : ビジネス デスクのユーザーに信頼関係接続を設定する

「手順 1 : dcpromo を実行して Active Directory サービスをインストールする」で Active Directory サービスをインストールしたコンピュータで、次の操作を行います。

ビジネス デスク ユーザーに信頼関係接続を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーとコンピュータ] をクリックします。
  2. [Active Directory ユーザーとコンピュータ] 画面で、コンピュータ名を右クリックし、[プロパティ] をクリックします。
  3. [<コンピュータ名> のプロパティ] ダイアログ ボックスの [全般] タブで、[コンピュータを委任に対して信頼する] チェック ボックスをオンにして、[OK] をクリックします。

手順 6 : Web サイトの匿名アカウントを匿名ドメイン アカウントにマップする

ここでは、Web サイトの匿名ユーザー アカウント (インターネット インフォメーション サービスでは既定で IUSR_<コンピュータ名>) を、「手順 2 : 必要なアカウントを作成する」で作成した匿名ドメイン アカウントにマップします。

サイトの匿名アカウントをドメイン アカウントに変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. [インターネット サービス マネージャ] で、アプリケーション (たとえば Retail_Site) に移動します。
  3. アプリケーション (たとえば Retail_Site) を右クリックし、[プロパティ] をクリックします。
  4. [プロパティ] ダイアログ ボックスの [ディレクトリ セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
  5. [認証方法] ダイアログ ボックスの [匿名アクセス] セクションで、[編集] をクリックします。[編集] をクリックするには [匿名アクセス] チェック ボックスをオンにします。
  6. [匿名ユーザー アカウント] ダイアログ ボックスの [ユーザー名] ボックスに、匿名ドメイン アカウントの名前 (たとえば「Anonymous」) を入力します。
  7. [OK] を必要なだけクリックして、ダイアログ ボックスを閉じます。
  8. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  9. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「iisreset」と入力し、[OK] をクリックします。
コマンド ボックスが表示され、IIS のリセットが始まります。IIS のリセットが完了すると、コマンド ボックスが閉じます。

手順 7 : 必要なアカウントごとに SQL ログイン アカウントを作成する

ここでは、SQL Server に SQL ログイン アカウントを作成します。Config COM+ アプリケーション アカウントを除くドメイン アカウントごとに、アカウントを 1 つ作成します。

SQL ログイン アカウントを作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、ノードを展開して Microsoft SQL Servers\SQL Server グループ\<コンピュータ名>\セキュリティを開きます。
  3. [ログイン] を右クリックし、[新規ログイン] をクリックします。
  4. [SQL Server ログインのプロパティ - 新規ログイン] 画面の [全般] タブで、次の操作を行います。
    項目 | 操作
    [名前] | ドメイン ユーザー アカウントの名前を入力します (たとえば、実行時のユーザー用のサンプルのユーザー アカウントである「Anonymous」と入力します)。
    [Windows 認証] | このオプションが選択されていることを確認します。
    [ドメイン] | ボックスの一覧で、アカウントのドメインを選択します。
    [アクセス許可] | セキュリティで保護されたアクセスを行うために、このオプションが選択されていることを確認します。
    [データベース] | ボックスの一覧で、このログイン用のデータベースとして [master] をクリックします。
    [言語] | ボックスの一覧で、このログイン用の既定の言語を選択します。
  5. [OK] をクリックします。
  6. これらの手順を繰り返し、次のドメイン アカウントごとに SQL Server ログイン アカウントを作成します。
    アカウント | サンプルのアカウント名
    実行時のユーザー | Anonymous
    ダイレクト メーラー サービス | CSDM
    リスト マネージャ サービス | CSLM
    ビジネス デスク グループ | BDGroup
    詳細レポート グループ | ReportAdvanced
    DTS タスク インポート グループ | DTSImport
    Config COM+ アプリケーション | CSCOMPlus

手順 8 : Commerce Server データベースのセキュリティ スクリプトを実行する

Commerce Server セキュリティ スクリプトを実行することで、必要なアカウントのセキュリティ ロールを自動的に作成し、適切なデータベースのアクセス許可を割り当てます。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

スクリプトを実行してセキュリティ ロールを作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザで、[データベース] ボックスの一覧から、スクリプトの対象となるデータベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、実行するスクリプトを選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、選択したデータベースに対してスクリプトを実行します。
  7. これらの手順を繰り返し、次の表に示すデータベースへのスクリプトをすべて実行します。

注

  • ReportAdvanced.sql スクリプトを実行する場合は、先に ReportViewer.sql スクリプトを実行する必要があります。

実行時の Commerce Server データベース用のセキュリティ スクリプト

スクリプト名 | 対象となるデータベース
BDReaderRole と BDWriterRole | ビジネス デスク アクセス許可
CampaignReaderRole と CampaignWriterRole | キャンペーン
CatalogSecurityRoles | 商品カタログ
ProfileReaderRole と ProfileWriterRole | プロファイル
TransactionConfigReaderRole と TransactionConfigWriterRole | トランザクション構成
TransactionReaderRole と TransactionWriterRole | トランザクション

分析とデータ ウェアハウスのセキュリティ スクリプト

スクリプト | 対象となるデータベース
ReportViewer.sql | データ ウェアハウス
ReportAdvanced.sq | データ ウェアハウス
Dts_AdminDB_SecurityRole.sql | 管理 (MSCS_Admin)
Dts_CommerceDB_Campaign_SecurityRole.sql | キャンペーン
Dts_CommerceDB_Catalog_SecurityRole.sql | 商品カタログ
Dts_CommerceDB_Transaction_SecurityRole.sql | トランザクション
Dts_CommerceDB_UPM_SecurityRole.sql | プロファイル

注

  • 次のいずれかの作業を実行したら、CatalogSecurityRoles スクリプトと Dts_CommerceDB_Catalog_SecurityRole スクリプトを再実行してください。
    • 新しいカタログの作成
    • カタログへの言語の追加
    • 仮想カタログの再構築

実行時の Commerce Server データベース テーブルは、1 つのデータベースに保持することも、各リソース固有のデータベースに保持することもできます。

これらのスクリプトは、SQL Server に対して機能し、実行時の Commerce Server データベースと管理データベースに格納されているデータを処理するように設計されています。Active Directory や Oracle データベースには利用できません。

手順 9 : 必要なアカウントをデータベース ロールに追加する

スクリプトをすべて実行したら、必要なアカウントを、新しく作成したロールに追加します。

必要なアカウントをデータベース ロールに追加するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、[セキュリティ] を展開し、[ログイン] をクリックします。
  3. SQL ログイン アカウントを右クリックし、[プロパティ] をクリックします。
  4. [SQL Server ログインのプロパティ] ダイアログ ボックスの [データベース アクセス] タブをクリックします。
  5. 一番上のボックスでデータベースを選択し、一番下のボックスでアカウント用のロールを指定します。
  6. これらの手順を繰り返し、必要なアカウントをすべて、必要となるデータベース ロールへのメンバシップに割り当てます。最後に、[OK] をクリックします。

    次の表は、アカウント、データベース、およびアカウントを割り当てる必要があるロールをすべて示しています。

アカウント (サンプルのアカウント名) | 対応するデータベース | 割り当て先のデータベース ロール
* 実行時のユーザー (Anonymous) | 管理 (MSCS_Admin) | 詳細については、「管理データベースにセキュリティを設定する」を参照してください。
 | MSCS_CatalogScratch | db_owner
 | カタログ | ctlg_CatalogReaderRole
 | ビジネス デスク アクセス許可 | BDReaderRole
 | プロファイル | ProfileReaderRole
 | キャンペーン | CampaignReaderRole
 | トランザクション構成 | TransactionConfigReaderRole
 | トランザクション | TransactionReaderRole
ビジネス デスク グループ (BDGroup) | 管理 (MSCS_Admin) | db_datareader
 | MSCS_CatalogScratch | db_owner
 | カタログ | db_owner
 | ビジネス デスク アクセス許可 | BDWriterRole
 | プロファイル | ProfileWriterRole
 | キャンペーン | CampaignWriterRole db_datareader
 | トランザクション構成 | TransactionConfigWriterRole
 | トランザクション | TransactionWriterRole
 | データ ウェアハウス | ReportViewerRole
詳細レポート グループ (ReportAdvanced) | データ ウェアハウス | ReportAdvancedRole
ダイレクト メーラー サービス (CSDM) | 管理 (MSCS_Admin) | db_datareader
 | ダイレクト メーラー | db_owner
リスト マネージャのサービス アカウント (CSLM) | 管理 (MSCS_Admin) | db_datareader
 | ダイレクト メーラー | db_owner
 | キャンペーン | db_owner
DTS タスク インポート グループ (DTSImport) | 管理 (MSCS_Admin) | DTS_ImportRole
 | カタログ | DTS_ImportRole
 | ビジネス デスク アクセス許可 | DTS_ImportRole
 | プロファイル | DTS_ImportRole
 | キャンペーン | DTS_ImportRole
 | トランザクション構成 | DTS_ImportRole
 | トランザクション | DTS_ImportRole
 | データ ウェアハウス SQL Server | sp_addalias を実行してデータ ウェアハウスの dbo に割り当てます。
 | データ ウェアハウスの OLAP データベース | ** OLAP Administrators グループに追加します。
 | DTS タスクの実行元のコンピュータ | Power Users グループ
 | Config COM+ アプリケーション | Administrators (「手順 11 : サービス アカウントを Config COM+ アプリケーション ロールに追加する」を参照してください)。
Config COM+ アプリケーション | データ ウェアハウス SQL Server | db_owner

** DTSImport アカウントについては、OLAP データベースのコンピュータと、レポート準備 DTS タスクの実行元のコンピュータの両方の OLAP Administrators グループに割り当てる必要があります。この操作は、レポート準備 DTS タスクを実行するために必要となります。

ビジネス デスクのユーザーによるカタログの編集 (カタログ定義の編集、カタログの再構築、フルテキスト インデックスの更新、カタログの公開など) を可能にするには、ユーザーを db_owner ロールに割り当てる必要があります。

特にカタログを編集するビジネス デスク ユーザーのグループ アカウントを作成することをお勧めします。

db_owner ロールに割り当てるビジネス デスクのユーザーが信頼できるかどうかを慎重に検討してください。このロールにビジネス デスクのユーザーを割り当てる場合は、次のセキュリティ リスクを検討する必要があります。

重要

  • db_owner ロールに割り当てられたビジネス デスクのユーザーが、カタログ データベースを削除する可能性があります。このリスクを緩和するには、ファイアウォールを作成し、カタログを含む SQL Server データベースにビジネス デスク クライアントから直接接続できないようにする必要があります。このセキュリティが設定された構成を使うことをお勧めします。操作方法の詳細については、「セキュリティで保護されたサイトの配置」を参照してください。

手順 10 : OLAP データベースを設定する

ここでは、OLAP リポジトリを SQL Server に移行します。この操作は、OLAP リポジトリのセキュリティを向上させるために行います。次に、DTSImport ユーザー アカウントに、リポジトリにアクセスするための適切なアクセス許可を割り当てます。

OLAP リポジトリを SQL Server に移行するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、新しい SQL データベースを作成します。
  3. 分析マネージャで、サーバー名を右クリックし、[リポジトリの移動] をクリックします。
  4. 推奨される Analysis Services のネイティブ形式を選択します。
  5. OLAP リポジトリの移行先となる SQL Server の名前を選択します。
  6. この接続を追跡する場合は、管理者レベルの SQL 認証アカウントを使います。

DTS_Import ユーザー アカウントに適切なアクセス許可を割り当てるには

  1. DTSImport アカウントを、OLAP サーバーと SQL Server の両方の OLAP Administrator グループに割り当てます。そのためには、次の操作を行います。
    • [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[コンピュータの管理] をクリックします。
    • [ローカルユーザとグループ] を展開し、[グループ] を展開します。
    • [OLAP Administrators] グループを右クリックし、[プロパティ] をクリックします。
    • DTSImport グループを OLAP Administrators グループのメンバとして追加します。
  2. OLAP サーバーで、<olap_server_root>\bin の下の bin ディレクトリへの "フル コントロール" を DTS_Import ユーザーに割り当てます。そのためには、次の操作を行います。
    • <olap_server_root>\bin ディレクトリに移動します (たとえば、\Program Files\Microsoft Analysis Services\Bin)。
    • [Bin] を右クリックし、[選択] をクリックします。
    • [アクセス許可] をクリックし、DTSImport アカウントをこのディレクトリに追加します。
    • [フル コントロール] アクセスを割り当てます。
    • [OK] をクリックします。
  3. DTS タスクの実行元となるコンピュータで、DTSImport アカウントを "Power Users" グループに割り当てます。

    このセキュリティ コンテキストでは、このタスクで生成されるデバッグ メッセージが表示されなくなります。詳細については、サポート技術情報の記事 Q274559 (現在英語版技術情報でのみ提供) を参照してください。この問題を回避するには、ユーザーをそのマシンの管理者のアカウントで実行します。

  4. OLAP キューブとデータ ウェアハウスが別々のコンピュータ上にインストールされている場合は、MSSQLServerOLAPService サービス用のアカウントがデータ ウェアハウスに関する db_owner ロールの特権を持つように設定します。

手順 11 : サービス アカウントを Config COM+ アプリケーション ロールに追加する

Config COM+ アプリケーションは、Administrators ロールを持ちます。このロールのアカウントは、オブジェクトを使って管理データベースへの書き込みを行います。既定では、Commerce Server のセットアップ時にログオンしたユーザーと、ローカル Administrators グループが、このロールに追加されます。

サービス アカウントを Administrators ロールに追加する必要があります(この操作では、DTSImport アカウントが既に Administrators ロールに追加されていることを前提としています。追加されていない場合は、先に追加します)。

サービス アカウントを Administrators ロールに追加するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. [コンポーネント サービス]、[コンピュータ]、[マイ コンピュータ]、[COM+ アプリケーション]、[Commerce Server Config]、[ロール]、[Administrators] の順に展開します。
  3. [ユーザー] を右クリックし、[新規作成] をクリックします。次に、[ユーザー] をクリックします。
  4. [ユーザーまたはグループの選択] の [場所] ボックスで、ダイレクト メーラーのサービス アカウント (たとえば CSDM) を選択します。
  5. [OK] をクリックします。
  6. この手順を繰り返し、リスト マネージャのサービス アカウントを追加します。

手順 12 : 個々のユーザー アカウントをグループ ドメイン アカウントに追加する

ビジネス デスクを使うユーザーごとに、Windows ユーザー アカウントを作成します。次に、Windows アカウントを、次の適切なグループ アカウントに割り当てます。

  • BDGroup アカウント すべてのビジネス デスク ユーザーを割り当てます。
  • ReportAdvanced アカウント 保存、変更および動的レポートを削除するユーザを割り当てます。

注

  • ReportAdvanced グループのメンバは、BDGroup のユーザーに付与された特権も持ちます。

ビジネス デスクの個々のユーザー アカウントをグループ アカウントに割り当てるには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーとコンピュータ] をクリックします。
  2. [Active Directory ユーザーとコンピュータ] で、グループ アカウントを右クリックし、[プロパティ] をクリックします。
  3. [メンバ] タブで、[追加] をクリックします。
  4. 適切なユーザーの Windows アカウントを入力し、[OK] をクリックします。
  5. これらの手順を必要なだけ繰り返し、ユーザー アカウントをグループ アカウントに追加します。

手順 13 : ユーザーにビジネス デスク アクセス許可を付与する

ビジネス デスク アクセス許可モジュールを使って、ビジネス デスクのドメイン グループ アカウントをアクセス許可モジュールに追加し、ビジネス デスクを使うためのアクセス許可をドメインのメンバに付与する必要があります。

注

  • Windows アカウントがアクセス許可モジュールのアカウント一覧に存在しない場合、または、Windows アカウントに "許可" オプションが割り当てられていない場合は、そのアカウントに割り当てられているユーザーはビジネス デスクにアクセスできません。
  • アクセス許可モジュールのアカウント一覧に、既に存在しない Windows アカウントがある場合、そのアカウントのユーザーはビジネス デスクのカテゴリおよびモジュールにアクセスできません。

アクセス許可モジュールのアカウント一覧に Windows アカウントを追加するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の [Windows アカウント] セクションで、[リストに追加] をクリックします。
  3. [アカウントの追加] ダイアログ ボックスで、アクセス許可を追加する Windows アカウント (たとえば「BDGroup」) を入力し、[追加] をクリックします。
  4. [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 戻る をクリックします。

    アクセス許可モジュールのアカウント一覧に Windows アカウントが追加されます。

  5. これらの手順を繰り返し、ReportAdvanced グループ アカウントを追加します。

Windows アカウントに対してアクセス許可を設定するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の、[Windows アカウント] ボックスのアクセス許可モジュールのアカウント一覧で、アクセス許可を追加する Windows アカウントを選択します。
  3. [セキュリティのアクセス許可] 画面の [安全なエンティティ] セクションで、次のアカウントにこれらのアクセス許可を付与します。
    • BDGroup – すべて許可
    • ReportAdvanced – すべて許可

    詳細については、「Windows アカウントに対してビジネス デスク アクセス許可を設定する」を参照してください。

  4. 変更を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

重要

  • ビジネス デスクのユーザーのアクセス許可を変更した後で新しい設定を有効にするためには、そのユーザーはビジネス デスクを閉じて再起動する必要があります。

    ビジネス デスク ユーザーの Windows ID (グループ メンバシップ、権限、ACL など) が変更された場合は、そのユーザーはいったんログオフし、新しい設定がサーバーで有効になるように再度ログオンする必要があります。そのようにしないと、クライアントは正しく機能しても、サーバーは正しく機能しません。

手順 14 : Internet Explorer で統合 Windows 認証を有効にする

この操作は、ビジネス デスク クライアントがインストールされている各コンピュータで行います。また、クライアント コンピュータで、ビジネス デスクのアカウントを Administrators グループに割り当てる必要があります。

統合 Windows 認証を有効にするには

  1. デスクトップの [Internet Explorer] を右クリックし、[プロパティ] をクリックします。
  2. [インターネットのプロパティ] ダイアログ ボックスの [詳細設定] タブをクリックします。
  3. [セキュリティ] セクションまでスクロールし、[統合 Windows 認証をしようする (再起動が必要)] を選択します。
  4. [OK] をクリックし、クライアント コンピュータを再起動します。

ビジネス デスクのユーザーを Power Users グループに割り当てるには

  1. ビジネス デスク クライアント コンピュータで、[スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[コンピュータの管理] をクリックします。
  2. [ローカルユーザとグループ] を展開し、[グループ] をクリックします。
  3. [Administrators] を右クリックし、[プロパティ] をクリックします。
  4. ビジネス デスクのグループ アカウントを追加し、[OK] をクリックします。

手順 15 : ユーザーのログイン アカウントをデータベース所有者 (dbo) ユーザーにマップする

この操作は、Commerce Server DTS タスクを実行するユーザーや、リスト マネージャのサービス アカウントに対して行います。DTS タスクで作成されるオブジェクトが dbo によって所有されるようにする場合は、この操作を行う必要があります。

たとえば、"joeuser" としてログオンしたユーザーが dbo に別名化されていない場合、このユーザーが DTS タスクを実行すると、データ ウェアハウスの拡張テーブルの名前が "joeuser" によって所有され、間違って "joeuser.<テーブル>" と修飾されます。

次の操作を行うことで、テーブル名が正しく "dbo.<テーブル>" と修飾されるようになります。

データベース所有者 (dbo) や sp_addalias の使い方については、SQL Server Books Online を参照してください。

ユーザーのログイン アカウントを dbo ユーザーにマップするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、データ ウェアハウスのデータベースを選択します。
  4. [クエリ アナライザ] ウィンドウで、「exec sp_addalias '<ドメイン>\<ログイン名>','dbo'」を入力します。

    たとえば、次のように入力します。

        Exec sp_addalias '<domain>\joeuser','dbo'
  5. ツール バーの 実行 をクリックします。

    これで、指定したユーザー アカウントが、データベース所有者 (dbo) ユーザーに別名化されます。

  6. この手順を繰り返し、dbo という別名を、データ ウェアハウスに対するリスト マネージャのユーザーに割り当てます。

    たとえば、次のように入力します。

        Exec sp_addalias '<domain>\CSLM','dbo'


1 台のコンピュータ環境で Windows 認証を使う

開発者がサイトを構築するような場合は、1 台のコンピュータに Commerce Server を配置できます。

ここでは、次のような配置のシナリオについて説明します。

  • インターネット インフォメーション サービス (IIS) と SQL Server データベース (管理データベースおよび Commerce Server サイト データベース) は、同じコンピュータにインストールされます。
  • SQL Server は "混合モード" 認証 (Windows 認証と SQL Server 認証) を使うように構成されます。
  • Commerce Server は Windows 認証を使うように構成されます。

    Windows ユーザー アカウントを使ってビジネス デスクと Commerce Server サイトに接続するユーザーは、信頼関係接続 (Windows によって評価される接続) を使うことができます。これらのユーザーは Windows ログイン ID で識別されるため、別途 SQL Server ログイン ID を入力する必要がありません。

信頼関係接続を使うように Commerce Server サイトを設定するには

  1. Active Directory ドメインを作成します。操作方法については、「手順 1 : コンピュータ 1 に Active Directory と DNS を構成する」を参照してください。
  2. Active Directory ドメインにユーザー アカウントを作成し、匿名ユーザーが SQL Server にアクセスできるようにします。
  3. IIS の IUSR_<コンピュータ名> アカウントを、手順 2. で作成した匿名アカウントに変更します。
  4. IWAM_<コンピュータ名> アカウントに対しては、Commerce Server サイト データベース (MSCS_Admin データベースではない) の SQL Server db_owner ロールを割り当てます。
  5. Commerce Server サービス (ダイレクト メーラー、リスト マネージャ) をインストールする場合は、SQL Server へのアクセス許可を持つ Windows アカウントを指定します。

    Commerce のセットアップ時に、指定したアカウントに対して "サービスとしてログオン" の権利が自動的に与えられます。

サービス アカウントについては、「サービス アカウントにセキュリティを設定する」を参照してください。

サービスのアカウントまたはパスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。

次の操作を行う必要はありません。

  • 委任に対する信頼をドメイン ログオンに付与する。
  • セキュリティ ポリシーを変更する。
  • COM+ ロールを変更する。


分散環境で Windows 認証を使う

リモート SQL Server と Windows 認証を配置する場合、インターネット インフォメーション サービス (IIS) の匿名アカウント (既定では IUSR_<コンピュータ名>) をドメイン アカウントに変更する必要があります。次に、実行時の Commerce Server データベースに対して適切なアクセス許可を持つ SQL ログインをドメイン アカウントに割り当てる必要があります。これらのデータベースは、「実行時の Commerce Server データベースにセキュリティを設定する」に指定されています。

注

  • SQL Server がローカルの場合、Windows 認証を使うときは、IIS 匿名アカウント (既定では IUSR_<コンピュータ名>) 用の SQL ログイン アカウントを作成する必要があります。
  • リモート SQL Server と SQL Server 認証を使う場合は、ドメイン アカウントに SQL ログインを割り当てる必要はありません。

ここでは、次のような配置のシナリオについて説明します。

  • インターネット インフォメーション サービス (IIS) は 1 台のコンピュータにインストールされます。
  • SQL Server データベース (管理データベースと実行時の Commerce Server データベース) は 2 台目のコンピュータにインストールされます。
  • SQL Server は "混合モード" 認証 (Windows 認証と SQL Server 認証) を使うように構成されます。
  • Commerce Server は Windows 認証を使うように構成されます。
  • 認証フィルタはカスタム認証を使うように構成されます。このシナリオでは、管理データベースの接続文字列を SQL Server 認証に変更する必要があります。操作方法については、このトピックで説明します。

リモート SQL Server と Windows 統合セキュリティを使うので、IIS 匿名アカウント (既定値は IUSR_<コンピュータ名>) をドメイン アカウントに変更する必要があります。次に、実行時の Commerce Server データベースに対して適切なアクセス許可を持つ SQL ログインをドメイン アカウントに割り当てる必要があります。これらのデータベースは、「実行時の Commerce Server データベースにセキュリティを設定する」に指定されています。

ビジネス デスク ユーザーに信頼関係接続を設定するには

  1. Active Directory サーバーで、[スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[Active Directory ユーザーとコンピュータ] を展開します。
  3. コンピュータ名を右クリックし、[プロパティを]クリックします。[<コンピュータ名> のプロパティ] ダイアログ ボックスの [コンピュータを委任に対して信頼する] チェック ボックスをオンにして、[OK] をクリックします。

サイトの匿名アカウントをドメイン アカウントに変更するには

  1. この操作を行う前に、Active Directory ドメインにユーザー アカウントを作成し、匿名ユーザーが SQL Server にアクセスできるようにします。
  2. Commerce Server マネージャで、[インターネット インフォメーション サービス] を展開し、使用するアプリケーション (my_site など) に移動します。
  3. アプリケーションを右クリックし、[プロパティ] をクリックします。
  4. [プロパティ] ダイアログ ボックスの [ディレクトリ セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
  5. [認証方法] ダイアログ ボックスの [匿名アクセス] セクションで、[編集] をクリックします。[編集] をクリックするには [匿名アクセス] チェック ボックスをオンにします。
  6. [ユーザー名] ボックスに、ドメイン アカウントの名前を入力します。
  7. [OK] を必要なだけクリックして、ダイアログ ボックスを閉じます。
  8. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  9. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「iisreset」と入力し、[OK] をクリックします。
コマンド ボックスが表示され、IIS のリセットが始まります。IIS のリセットが完了すると、コマンド ボックスが閉じます。

ドメイン アカウントに SQL Server へのアクセス許可を割り当てるには

  1. Commerce Server マネージャで、[Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、Commerce Server データベースで使用するサーバーを展開し、[セキュリティ] を展開します。
  2. [ログイン] を右クリックし、[新規] をクリックします。
  3. [SQL Server ログインのプロパティ - 新規ログイン] ダイアログ ボックスの [全般] タブで、[名前] ボックスの [image] をクリックし、ドメイン アカウントを参照して選択します。
  4. [ドメイン] ボックスに、アカウントのドメイン名を入力します。
  5. [データベース アクセス] タブで、このログインでアクセスされる Commerce Server データベースを選択します。
  6. [OK] をクリックします。

管理データベースへの接続文字列を SQL Server 認証に変更するには

  1. Commerce Server マネージャで、[Commerce Server マネージャ] ノードを右クリックし、[プロパティ] をクリックします。
  2. [管理データベース] タブの [変更] をクリックします。
  3. 必要に応じて、[データ リンク プロパティ] ダイアログ ボックスで SQL Server 名を変更します。
  4. SQL 認証を使うには、[特定のユーザー名とパスワードを使用] を選択し、[ユーザー名] ボックスと [パスワード] ボックスに入力します。

    空のパスワードは使わないでください。空のパスワードを使うと、環境のセキュリティの脆弱性となります。

  5. [OK] をクリックします。

注

  • データベースと関連付けられていない接続文字列を追加することはできますが、機能しません。この場合、Microsoft Data Link によるエラー メッセージは表示されません。
  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS とCommerce Server サービスを再起動する」を参照してください。


ダイレクト メーラーと Windows 認証を使う

ダイレクト メーラー サービスと Windows 認証を併用するには、ここで説明する操作を行います。

サイトで Windows 認証を使う場合は、ダイレクト メーラーとリスト マネージャを実行するサービス アカウントにアクセス許可を与えないと、ビジネス デスクを使うときに、"ダイレクト メールの保存またはスケジュール設定ができませんでした。" というエラー メッセージが表示されることがあります。

Windows 認証を使うようにダイレクト メーラー サービスを構成するための手順を次に示します。

  • SQL ログインを作成する
  • ダイレクト メーラーに Commerce Server COM オブジェクトへのアクセス許可を与える
  • サービスの資格情報を設定する
  • 接続文字列を Windows 認証用に変更する
  • IIS とダイレクト メーラー サービスを再起動する

SQL ログインを作成する

ダイレクト メーラー サービスとリスト マネージャ サービスの実行時に使われる資格情報と一致する SQL ログインを作成するには、次の操作を行います。サービスの資格情報は、セットアップの実行中に作成されます。サービスの資格情報を変更する場合は、「サービスの資格情報を設定する」を参照してください。

ここでは、ダイレクト メーラー データベースと <サイト名>_Commerce データベースの両方に対する db_owner アクセス許可を持つ SQL ログインを作成します。

SQL ログインを作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、ノードを展開して Microsoft SQL Servers\SQL Server グループ\<コンピュータ名>\セキュリティ\ログイン を開きます。
  3. 右側のウィンドウで右クリックし、[新規ログイン] をクリックします。

    注

    • 既存の名前は右クリックしないでください。
  4. [SQL Server ログインのプロパティ - 新規ログイン] 画面の [全般] タブで、次の操作を行います。
    項目 | 操作
    [名前] | サービス用に構成されたドメイン アカウントの名前を入力します。
    [Windows 認証] | このオプションが選択されていることを確認します。
    [ドメイン] | ボックスの一覧で、アカウントのドメインを選択します。
    [アクセス許可] | セキュリティで保護されたアクセスを行うために、このオプションが選択されていることを確認します。
    [データベース] | ボックスの一覧で、このログイン用のデータベースとして [master] をクリックします。
    [言語] | ボックスの一覧で、このログイン用の既定の言語を選択します。
  5. [データベース アクセス] タブで、次の操作を行います。
    項目 | 操作
    [権限] | このログインで <サイト名>_commerce データベースにアクセスすることを指定するには、このデータベースの横にあるこのチェック ボックスをオンにします。
    [db_owner] | <サイト名>_commerce データベースのための db_owner データベース ロールを指定するには、このチェック ボックスをオンにします。

    注

    • ダイレクト メーラー データベースについても、手順 5. を繰り返します。
  6. [OK] をクリックします。

ダイレクト メーラーに Commerce Server COM オブジェクトへのアクセス許可を与える

ダイレクト メーラーに Commerce Server COM オブジェクトへのアクセス許可を与える必要があります。これは、ダイレクト メーラーが、GlobalConfig COM オブジェクトを通じて管理データベースにアクセスし、初期設定を読み込むためです。

ダイレクト メーラーに Commerce Server COM オブジェクトへのアクセス許可を与えるには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. ノードを展開して、コンポーネント サービス\コンピュータ\マイ コンピュータ\COM+ アプリケーション\Commerce Server Config\ロール\ユーザー を開きます。
  3. [ユーザー] を右クリックし、[ここから新しいウィンドウ] をクリックします。
  4. [ユーザー] を右クリックし、[新規作成] をクリックします。次に、[ユーザー] をクリックします。
  5. [ユーザーまたはグループの選択] の [場所] ボックスで、サービスを実行するユーザーのコンピュータ名を選択します。
  6. 下側のウィンドウで、サービスを実行するユーザーの名前を入力するか、一覧からユーザーを選択して、[OK] をクリックします。

サービスの資格情報を設定する

Commerce Server ダイレクト メーラー サービスと Commerce Server リスト マネージャ サービスの資格情報は、セットアップの実行中に作成されます。サービスの資格情報を変更する場合は、セットアップの完了後に次の操作を行います。これらの操作は、ダイレクト メーラー サービスとリスト マネージャ サービスの両方について行う必要があります。

サービスの資格情報を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[サービス] をクリックします。
  2. [サービス] ダイアログ ボックスの右側のウィンドウで、[Commerce Server Direct Mailer] を右クリックし、[プロパティ] をクリックします。
  3. [Commerce Server Direct Mailer のプロパティ] ダイアログ ボックスの [ログオン] タブで、[アカウント] オプションをクリックし、次の操作を行います。
    項目 | 操作
    [アカウント] | サービスを実行するユーザーの名前を入力します。
    [パスワード] | サービスを実行するユーザーのパスワードを入力します。
    [パスワードの確認入力] | サービスを実行するユーザーのパスワードを、確認のためにもう一度入力します。
  4. [OK] をクリックします。
  5. サービスを再開するため、[サービス] ダイアログ ボックスで [Commerce Server Direct Mailer] を右クリックし、[再開] をクリックします。
注
  • [Commerce Server List Manager] サービスについても、手順 2. ～ 5. を繰り返します。

接続文字列を Windows 認証用に変更する

ダイレクト メーラー用の接続文字列は、サービスのセットアップ時や、サイト固有のサービスのためのサイトのアンパック時に作成されます。セットアップ時に SQL Server 認証を選択した場合は、Windows 認証を使うように接続文字列を変更する必要があります。

接続文字列を Windows 認証用に変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Direct Mail on <サーバー名>] を右クリックし、[プロパティ] をクリックします。
  3. [Direct Mail on <サーバー名> のプロパティ] ダイアログ ボックスの [接続文字列] タブで、[変更] をクリックします。
  4. [データ リンク プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー名を入力または選択します] | ボックスの一覧からサーバー名を選択するか、またはアクセスするデータベースのパスを入力します。
    [Windows NT 統合セキュリティを使用する] | Windows 2000 上で実行している SQL Server への、セキュリティが設定された (信頼できる) 接続をプロバイダが要求するように指定するときにクリックします。
    [サーバー上のデータベースを選択する] | ボックスの一覧の [DirectMailer] をクリックします。
  5. [OK] をクリックします。
  6. [Direct Mail on <サーバー名> のプロパティ] ダイアログ ボックスで、[OK] をクリックします。
  7. Commerce Server マネージャで、[Commerce サイト] を展開し、[<サイト名>] を展開します。次に、[サイト リソース] を展開し、[キャンペーン] を右クリックします。次に、[プロパティ] をクリックします。
  8. [キャンペーンのプロパティ] ダイアログ ボックスの [変更] をクリックします。
  9. [データ リンク プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー名を入力または選択します] | ボックスの一覧からサーバー名を選択するか、またはアクセスするデータベースのパスを入力します。
    [Windows NT 統合セキュリティを使用する] | Windows 2000 上で実行している SQL Server への、セキュリティが設定された (信頼できる) 接続をプロバイダが要求するように指定するときにクリックします。
    [サーバー上のデータベースを選択する] | ボックスの一覧の [<サイト名>_commerce] をクリックします。
  10. [OK] をクリックします。
  11. [Direct Mail on <サーバー名> のプロパティ] ダイアログ ボックスで、[OK] をクリックします。

IIS とダイレクト メーラー サービスを再起動する

接続文字列を変更したら、IIS を再起動する必要があります。ダイレクト メーラー サービスについても、設定を反映させるために再起動する必要があります。ダイレクト メーラーは、コマンド ライン インターフェイスまたは管理ツールを使って再起動できます。

IISReset コマンドを使って IIS を再起動するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「iisreset」と入力し、[OK] をクリックします。

    コマンド ボックスが表示され、IIS のリセットが始まります。IIS のリセットが完了すると、コマンド ボックスが閉じます。

コマンド ライン インターフェイスからダイレクト メーラーを再起動するには

  1. コマンド ラインで、「net stop dmlservice」と入力します。
  2. サービスが停止したら、「net start dmlservice」と入力します。

サービスを使ってダイレクト メーラーを再起動するには

  1. [スタート] メニューの [サービス] を開きます。[スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[サービス] をクリックします。
  2. [サービス] 画面の右側のウィンドウで、[Commerce Server Direct Mailer] を右クリックし、[再開] をクリックします。

関連項目

ダイレクト メーラーを構成する

セキュリティリスク : ダイレクトメーラーのグローバル リソースに SQL 認証を使用する


SQL 認証を使う

データベースへの接続には、SQL 認証の代わりに Windows 認証を使うことを強くお勧めします。ここでは、Commerce Server 配置で SQL 認証を使う場合のセキュリティ リスクについて説明します。

SQL Server 認証

SQL Server パスワード

分散環境での SQL Server

Commerce Server のリソース用の SQL アカウントを作成する

SQL Server 認証

SQL Server 認証の代わりに Windows 認証を使うことをお勧めします。SQL Server 認証を使う場合は、次のセキュリティ リスクと、サイトにセキュリティを設定するための手順に注意してください。

  • 接続文字列内のクリア テキスト パスワードは、管理データベースに格納される。

    Commerce Server データベースに接続すると、クリア テキスト パスワードが送信されるため、攻撃者に検出される可能性があります。

    インストール環境にセキュリティを設定するには

    • Web サーバーから SQL Servers へのプライベート ネットワークを実装します。これにより、攻撃者は Web サーバーから SQL Server データベースへのトラフィックをスニッフィングできなくなります。
    • SQL Server のMultiprotocol Net-Library 暗号化を有効にします。詳細については、SQL Server Books Online を参照してください。
    • Web サーバーのポート 1433 の Secure Sockets Layer (SSL) を有効にします。操作方法については、IIS 5.0 のマニュアルの「Web サーバーに SSL をセットアップするには」を参照してください。
    • ネットワーク接続には IPSec を使います。操作方法については、Windows 2000 ヘルプを参照してください。
  • クリア テキスト パスワードは、\Program Files\Microsoft Analysis Services\bin\msmdrep.mdb の OLAP ファイルに保存される。

    このファイルにセキュリティを設定するには、その内容を SQL Server データベースのリポジトリに移行するか、Windows 統合セキュリティを使います。

SQL Server パスワード

  • SQL Server 認証を使って Web サーバーから SQL Server に接続するときに、SQL Server パスワードはクリア テキストで送信されます。SQL Server の接続を侵入者から保護するには、SQL Server でマルチプロトコル ネットワーク ドライバを使用し、セッションの接続を暗号化します。Windows NT 認証を使うと、このパスワードは保護されます。ただし、Commerce Server のセットアップ時、および Commerce Server サイト パッケージャで [標準] オプションを選択した場合は除きます。
  • SQL Server が既定で作成する "sa" というログイン名は使わないでください。データベース サーバーに別の管理者ログイン名を指定します。空のパスワードは使わないでください。空のパスワードを使うと、サイトのセキュリティ リスクが増大します。

分散環境での SQL Server

SQL Server がリモートの場合、IIS 匿名アカウント (既定値は IUSR_<コンピュータ名>) はドメイン アカウントを使う必要があります。

管理データベースにアクセスするために IUSR に付与する必要があるデータベース アクセス権限については、「管理データベースにセキュリティを設定する」を参照してください。

ドメイン アカウントの設定については、「分散環境で Windows 認証を使う」を参照してください。

Commerce Server のリソース用の SQL アカウントを作成する

SQL 認証を使う場合は、次のリソース用の SQL ログインを作成する必要があります。

  • ビジネス デスク アクセス許可
  • キャンペーン
  • 商品カタログ
  • プロファイル
  • ダイレクト メーラー
  • データ ウェアハウス
  • トランザクション
  • トランザクション構成


セキュリティで保護されたサイトを開発する

ここでは、セキュリティで保護されたサイトをデザインおよび開発するための手順について重点的に説明します。ここでの説明には、『Writing Secure Code』(Michael Howard and David LeBlanc (Microsoft Press, 2002)) という優れた書籍の内容を、著者の許可を得て使用しています。Commerce Server サイトの開発を始める前に、『Writing Secure Code』を読むことを強くお勧めします。

セキュリティが設定された Commerce Server サイトを配置する方法の詳細については、「セキュリティで保護されたサイトの配置」を参照してください。

ここでは、次のトピックについて説明します。

  • 脅威モデルによるセキュリティ デザイン
  • 安全なコードを記述する
  • Web セキュリティに関する犯しやすい誤り
  • クロスサイト スクリプティングの問題
  • 安全な SQL ステートメントを作成する
  • 最小の権限で実行する
  • サービス拒否攻撃を防止する


脅威モデルによるセキュリティ デザイン

Web サイト開発のデザイン段階では、"脅威モデル" を作成する必要があります。これは、Commerce Server サイトの最も脆弱なエリア、各エリアへの攻撃のリスク、リスクを緩和する方法、および緩和機能を実装するときの優先順位に関するリストです。脅威モデルを作成すると、Commerce Server のインストール環境で最も脆弱なエリアを特定でき、さらにその脆弱性を保護するために適切なツールを選択したり、最適なデザインを実装することができます。

脅威モデルの作成プロセスは次のとおりです。

  1. システムに対する既知の脅威を特定します。
  2. 脅威をリスクの高い順にランク付けします。
  3. 脅威に対処する方法を決めます。
  4. 脅威を緩和する手法を特定します。
  5. 特定した手法から適切な技術を選択します。

考えられるすべての脅威を 1 回で定式化することは難しいため、場合によってはこのプロセスを 2 回以上繰り返す必要があります。また、技術が時間の経過と共に変化し、新しい問題が発生して、ビジネスおよび技術全体が新しいリスクにさらされる可能性があります。一方で、現在の脅威が無害になる可能性もあります。以上の内容はすべて、システムに対する既知の脅威に影響を及ぼします。

ここでは、次のトピックについて説明します。

  • 既知の脅威を特定する
  • 脅威をリスクの高い順にランク付けする
  • 脅威を緩和する手法を特定する
  • 特定した手法から適切な技術を選択する


既知の脅威を特定する

Commerce Server のインストール環境に対する脅威を特定することが重要です。次の種類のデータに対する脅威が考えられるかどうかを検討する必要があります。

  • 構成データ : データベースの接続文字列
  • 認証データ : プロファイル データベースに格納されているユーザー名とパスワード
  • 固定データ : SQL Server データ、XML データ、レジストリ データ、ファイル、認証と権限のデータ、ログなど、Commerce Server プロセスによって格納および使用されるデータ
  • 通信チャネルを経由して送信されるデータ : cookie、認証情報、購入と注文の情報、およびクレジット カード番号
  • 状況データ : ユーザーがログインまたはログアウトしていることを示すデータ、および買い物バスケットに格納されるデータ
  • 一時データ : サイトを実行するプロセスによって作成されるデータ

これらのデータへの脅威を特定するには、システムのアーキテクチャ全体の概要を把握する必要があります。システムのアーキテクチャには、次のような要素が含まれます。

  • 実行可能ファイル、COM オブジェクト、サービスなど、主要なプロセス
  • 構成データ、認証データ、固定データ、および通信チャネル経由で送信されるデータ
  • ソケット、パイプライン、リモート プロシージャ コール (RPC)、Distributed Component Object Model (DCOM)、TCP/IP、Simple Object Access Protocol (SOAP) など、プロセス間で使われる通信チャネル

次に、組織の各部門から少なくとも 1 人のメンバが参加するミーティングを開きます。たとえば、Web デザイナ、開発者、システム管理者、テクニカル ライターなどを召集します。アーキテクチャ全体を検討し、セキュリティへの脅威をできる限り多く特定します。このミーティングの目的は、考えられる脅威を特定することであり、その問題を解決することではありません。

アプリケーションで使われる主要プロセス、固定データと一時データ、および通信プロトコルの一覧表を作成します。この一覧表の例を次に示します。

コンポーネントまたはプロトコル | コメント
ブラウザ | これは、プロファイルや注文の情報を表示するためにクライアントで使われます。
ハイパーテキスト転送プロトコル (HTTP) | ブラウザは HTTP を使って Web サーバーと通信します。
Web サーバー | Web サーバーは、ブラウザに表示される HTML データを作成します。
Web ページ | Web ページは Active Server Page (ASP) として作成されます。
認証データ | これは、登録済みユーザーを認証するために使われます。
データベース サーバー | Commerce Server には、実行時やデザイン時のデータにアクセスするために使われるストアド プロシージャが含まれています。

次の段階では、これらのコンポーネントやプロトコルに対する脅威を分類および分析します。

ここでは、次のトピックについて説明します。

  • STRIDE 脅威モデル
  • STRIDE を適用する
  • Commerce Server での STRIDE 脅威


STRIDE 脅威モデル

脅威について検討する場合、次のような質問が役立ちます。

  • 攻撃者はどのようにして認証データを変更するか?
  • 攻撃者にユーザー プロファイル データが読み取られた場合、どのような影響があるか?
  • ユーザー プロファイル データベースへのアクセスが拒否された場合、どのような事態になるか?

このような質問を定式化するには、脅威をカテゴリに分類します。有用なモデルには STRIDE があります。この名前は、次の 6 つの脅威のカテゴリの頭文字を取ったものです。

  • 資格情報のスプーフィング (Spoofing identity) 資格情報のスプーフィングとは、たとえば、他のユーザーの認証情報 (ユーザー名やパスワードなど) に不正にアクセスし、使用することです。
  • データの改ざん (Tampering with data) データの改ざんとは、データを不正に変更することです。たとえば、データベースに保持されているような固定データを不正に変更することや、インターネットなどのオープン ネットワークを通して 2 台のコンピュータ間を流れるデータを変更することが挙げられます。
  • 否認 (Repudiation) 否認の脅威とは、アクションの実行を証明する方法がない状況でアクションを実行し、それを否認するユーザーが現れることを指します。たとえば、禁止された操作の追跡機能がないシステムで、ユーザーが不正な操作を行うことが挙げられます。"否認防止 (Nonrepudiation)" は、否認の脅威に対抗するシステム機能を指します。たとえば、商品を購入したユーザーは、商品のレシートに署名する必要があります。その後、ベンダは、その署名入りのレシートを、ユーザーがパッケージを受け取った証拠として使うことができます。
  • 情報の暴露 (Information disclosure) 情報の暴露の脅威とは、情報へのアクセス権を持っていないユーザーに対してその情報がさらされることを指します。たとえば、ファイルへのアクセス権を与えられていないユーザーがそのファイルを読み取ることや、侵入者が 2 台のコンピュータ間を通過するデータを読み取ることが挙げられます。
  • サービス拒否 (Denial of service) サービス拒否 (DoS) 攻撃は、Web サーバーを一時的に利用不能にするなどの方法で、有効なユーザーへのサービスを拒否します。システムの可用性と信頼性を向上させるには、特定の種類の DoS 脅威を防止する要があります。
  • アクセス権の昇格 (Elevation of privilege) この種類の脅威では、権限のないユーザーがアクセス権を取得することによって、システム全体を危険にさらしたり破壊したりします。アクセス権の昇格の脅威には、攻撃者がすべてのシステム防御を完全に見破り、信頼されたシステムそのものの一部になるという非常に危険な状況があります。

関連項目

STRIDE を適用する

Commerce Server での STRIDE 脅威


STRIDE を適用する

アプリケーションに STRIDE モデルを適用する最も簡単な方法は、モデルの各脅威が各 Commerce Server コンポーネントに与える影響、および各コンポーネントと他のアプリケーションとの接続や関連付けに与える影響を検討することです。基本的には、アプリケーションの各部分を調べ、Commerce Server のコンポーネントやプロセスに対して、上記の S、T、R、I、D、または E のカテゴリに分類される脅威が存在するかどうかを判断します。ほとんどの部分に多数の脅威が存在するものと思われますが、それらの脅威をすべて記録しておくことが重要です。

Web サイトへの脅威の例を次に示します。この一覧では、要点だけを説明しています。ミーティングで脅威の分析を 2 時間行うと、一般的に、セキュリティの脅威を 20 ～ 40 項目特定できます。

  • 脅威 1 悪質なユーザーが、Web サーバーとクライアント間を流れる個人のプロファイル データを途中で表示したり改ざんしたりします (データの改ざん、または情報の暴露)。
  • 脅威 2 悪質なユーザーが、Web サーバーと COM コンポーネント間を流れる個人のプロファイル データを途中で表示したり改ざんしたりします (データの改ざん、または情報の暴露)。
  • 脅威 3 悪質なユーザーが、データベース内のプロファイル データに直接アクセスしたり改ざんしたりします (データの改ざん、または情報の暴露)。
  • 脅威 4 悪質なユーザーが、ライトウエイト ディレクトリ アクセス プロトコル (LDAP) 認証パケットを表示し、その応答方法を調べて、"なりすまし" ユーザーになろうとします (資格情報のスプーフィング、情報の暴露、またはアクセス権の昇格 (使用する認証データが管理者のものである場合))。
  • 脅威 5 悪質なユーザーが、Web ページを変更して Web サーバーに損傷を与えます (データの改ざん)。
  • 脅威 6 攻撃者が、プロファイル データベースのサーバー コンピュータに大量の TCP/IP パケットを送信して、このコンピュータへのアクセス拒否を引き起こします (DoS)。
  • 脅威 7 攻撃者が監査ログを削除したり変更したりします (データの改ざん、または否認)。
  • 脅威 8 攻撃者が、分散 DoS 攻撃によって実際の Web サーバーを停止させた後に、攻撃者自身の Web サーバーをネットワークに配置します (資格情報のスプーフィング。また、きわめて悪質なユーザーは、パスワードやその他の認証データを盗んだりデータを削除したりすることで、すべてのカテゴリの脅威を誘発する可能性があります)。

関連項目

STRIDE 脅威モデル

Commerce Server での STRIDE 脅威


Commerce Server での STRIDE 脅威

次の図は、Commerce Server のインストール環境での STRIDE 脅威、および各脅威を緩和する手法を示しています。たとえば、管理データベースへの脅威は、データの改ざん、情報の暴露、およびサービス拒否です。これらの脅威を緩和するには、アクセス制御リスト (ACL)、Secure Socket Layer (SSL)、Transport Layer Security (TLS)、および IPSec 認証を使います。

関連項目

STRIDE 脅威モデル

STRIDE を適用する


脅威をリスクの高い順にランク付けする

Commerce Server のインストール環境の資産ごとに次の項目を判断し、考えられる脅威に優先順位を設定します。

  • 攻撃を受ける可能性はどの程度か?つまり、攻撃に必要な労力、コスト、または時間はどの程度か?1 = 可能性が高い、10 = 可能性が低い。
  • 攻撃を受けた場合のサイトのコストや損害はどの程度か?1 = 損害が小さい、10 = 損害が大きい。
  • リスク = 攻撃を受けた場合の損害、または攻撃を受ける可能性。1 = リスクが小さい、10 = リスクが大きい。

Commerce Server のインストール環境へのリスクを軽減するには、最初にリスクの高い項目に対処します。その場合、次の表の統計情報に留意してください。この統計情報は、7 つの主要な脅威に基づく脆弱性の最新の分布を示しています。

脆弱性 | 攻撃のパーセンテージ
回避可能な制限 | 20
引数チェック | 19
未チェックのバッファ | 18
不適切なコントロール マーキング | 10
不適切なアクセス許可 | 9
アーキテクチャに関するエラー | 6
その他の実装に関するエラー | 18

関連項目

脅威を緩和する手法を特定する


脅威を緩和する手法を特定する

次の表は、STRIDE モデルの脅威を緩和するために使用できる手法を示しています。

脅威の種類 緩和の手法
資格情報のスプーフィング (Spoofing identity)
  • 認証
  • 機密情報にセキュリティを設定する
  • 機密情報を格納しない
データの改ざん (Tampering with data)
  • 権限
  • ハッシュ
  • メッセージ認証コード
  • デジタル署名
  • 改ざんを防ぐプロトコル
否認 (Repudiation)
  • デジタル署名
  • タイム スタンプ
  • 監査記録
情報の暴露 (Information disclosure)
  • 権限
  • プライバシを強化するプロトコル
  • 暗号化
  • 機密情報にセキュリティを設定する
  • 機密情報を格納しない
サービス拒否 (Denial of service)
  • 認証
  • 権限
  • フィルタリング
  • スロットル
  • サービスの品質
アクセス権の昇格 (Elevation of privilege)
  • 最小の権限で実行する

関連項目

特定した手法から適切な技術を選択する


特定した手法から適切な技術を選択する

Commerce Server には、データベース、ビュー、およびストアド プロシージャに対する適切なレベルのアクセス許可を付与するための認証機能、暗号化機能、およびスクリプトが用意されています。

また、Windows 統合セキュリティ (Kerberos 認証や Windows 認証とも呼ばれる) を実装して、データベースへのアクセスにセキュリティを設定し、アクセス制御リスト (ACL)、Secure Socket Layer (SSL)、Transport Layer Security (TLS)、および IPSec 認証を使うことをお勧めします。

脅威の緩和に利用できる技術の包括的な説明については、『Writing Secure Code』(Michael Howard and David LeBlanc) を参照してください。このオンライン ヘルプでは、「安全なコードを記述する」というトピックに、この書籍の情報を記載しています。


安全なコードを記述する

安全なコードを記述すれば、確実にサイトにセキュリティを設定できます。ここでは、コーディングの手法と、開発者が Web アプリケーションのコードを記述するときに犯しやすい誤りについて説明します。

ここでは、次のトピックについて説明します。

  • バッファ オーバーラン
  • バッファ オーバーランを防止する


バッファ オーバーラン

攻撃者が n バイト バッファに過剰なバイトを書き込むと、バッファ オーバーランが発生します。その結果、次の 3 つの問題がサイトで発生する可能性があります。

  • アクセス違反 (AV) が発生する。
  • サイトが不安定になる。
  • 攻撃者がアプリケーションにコードを挿入した後、そのアプリケーションを実行して、すべてのユーザーをサイトの管理者にする。

次のトピックでは、異なる種類のバッファ オーバーラン、配列インデックス エラー、書式文字列のバグ、および Unicode と ANSI のバッファ サイズの不一致について説明します。書式文字列のエラーは厳密にはバッファ オーバーランとは関係ありませんが、攻撃者は、この新しく公表された問題を利用して、バッファ オーバーランで発生する問題の多くを引き起こすことができます。最初にバッファ オーバーランのしくみについて説明し、次に、これらの問題を回避する手法について説明します。

注

  • Microsoft® Visual Studio .NET に含まれているバージョンの Visual C++ には、スタック ベースで利用できる、特定の種類のオーバーランを防止するサポート機能が用意されています。コンパイラの技術は、すべての Windows C++ アプリケーションに適用されますが、.NET マネージド コードに対してだけは適用されません。

ここでは、次のトピックについて説明します。

  • 静的バッファ オーバーラン
  • ヒープ オーバーラン
  • 配列インデックス エラー
  • 書式文字列のバグ
  • Unicode と ANSI のバッファ サイズの不一致


静的バッファ オーバーラン

スタック上に宣言されたバッファが、そのバッファよりも大きなデータのコピーによって上書きされると、静的バッファ オーバーランが発生します。スタック上に宣言された変数は、関数の呼び出し側のリターン アドレスの次にあります。この原因となるのは、一般的に、strcpy などの関数に渡される未チェックのユーザー入力です。結果的に、関数のリターン アドレスが攻撃者の選択したアドレスで上書きされます。

次の図の上部に、スタックの例を示します。問題になるのは、bar() のバッファが攻撃者のコードで上書きされる可能性があることです。その結果、fog() へのリターン アドレスが処理されると、2 番目のボックスに示すように、アドレスが攻撃者のアセンブリ コードに返されます。攻撃者は、3 番目のボックスに示すように、単純なコピー関数を使って 2 つのアドレスを加算することができます。

多くの場合、攻撃者はこれを達成するためには、いくつかの問題を克服する必要があります。たとえば、ユーザー入力は完全に未チェックではないという問題や、バッファに収まる文字数が限られているという問題などです。ダブルバイト文字セットが使われている場合、克服するのは困難ですが、これに関する問題は克服不可能ではありません。

C で記述された次のプログラムは、オーバーランを利用する単純な例です。

/*This program shows an example of how a static
  buffer overrun can be used to execute arbitrary code. Its
  objective is to find an input string that executes the function bar.
*/

#include <stdio.h>
#include <string.h>

void foo(const char* input)
{
    char buf[10];

    //What? No extra arguments supplied to printf?
    //It is a cheap trick to view the stack
    printf("My stack looks like:\n%p\n%p\n%p\n%p\n%p\n%p\n\n");

    //Pass the user input straight to secure code public enemy #1.
    strcpy(buf, input);
    printf("%s\n", buf);

    printf("Now the stack looks like:\n%p\n%p\n%p\n%p\n%p\n%p\n\n");
}

void bar(void)
{
    printf("The attack!\n");
}

int main(int argc, char* argv[])
{
    //A blatant shortcut
    printf("Address of foo = %p\n", foo);
    printf("Address of bar = %p\n", bar);
    foo(argv[1]);
    return 0;
}

このアプリケーションは、"Hello, World" というあいさつ文を記述するのと同じくらい単純なものです。まず、printf 関数の %p オプションを使って、foo と bar の 2 つの関数のアドレスを出力するコードを記述します。これにより、アドレスが表示されます。実際の攻撃者は、アプリケーションをハッキングするとき、foo で宣言された静的バッファにジャンプしようとしたり、システムのダイナミック リンク ライブラリ (DLL) からロードされる有用な関数を探そうとしたりする場合があります。この例の目的は、bar 関数を実行することです。foo 関数には、可変引数を持つ関数の副作用を利用してスタック上の値を出力する 1 組の printf ステートメントが含まれています。foo 関数がユーザー入力をそのまま受け付け、10 バイト バッファにコピーすると、問題が発生します。

次に、文字列をコマンド ライン引数として渡す例を示します。

[d:\]StaticOverrun.exe Hello
Address of foo = 00401000
Address of bar = 00401045
My stack looks like:
00000000
00000000
7FFDF000
0012FF80
0040108A <-- To overwrite the return address for foo.
00410EDE

Hello
Now the stack looks like:
6C6C6548 <-- You can see where "Hello" was copied in.
0000006F
7FFDF000
0012FF80
0040108A
00410EDE

ここで、バッファ オーバーランのテストを行うために、長い文字列を入力します。

[d:\]StaticOverrun.exe AAAAAAAAAAAAAAAAAAAAAAAA
Address of foo = 00401000
Address of bar = 00401045
My stack looks like:
00000000
00000000
7FFDF000
0012FF80
0040108A
00410ECE

AAAAAAAAAAAAAAAAAAAAAAAA
Now the stack looks like:
41414141
41414141
41414141
41414141
41414141
41414141

アプリケーションのエラー メッセージが表示され、0x41414141 の命令がアドレス 0x41414141 のメモリにアクセスしようとしたことが示されます。

次に、アプリケーションに入力する文字を調べる方法の例を示します。

[d:\]StaticOverrun.exe ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
Address of foo = 00401000
Address of bar = 00401045
My stack looks like:
00000000
00000000
7FFDF000
0012FF80
0040108A
00410EBE

ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
Now the stack looks like:
44434241
48474645
4C4B4A49
504F4E4D
54535251
58575655

ここで、アプリケーションのエラー メッセージは、攻撃者が 0x54535251 の命令を実行しようとしていることを示しています。攻撃者は、ASCII 表を調べて、0x54 が "T" という文字のコードであることを確認し、このコードを変更対象とします。

攻撃者は、ユーザー入力を変更することで、プログラムが実行しようとしている次の命令の場所を操作できます。次に例を示します。

[d:\]StaticOverrun.exe ABCDEFGHIJKLMNOPQRS
Address of foo = 00401000
Address of bar = 00401045
My stack looks like:
00000000
00000000
7FFDF000
0012FF80
0040108A
00410ECE

ABCDEFGHIJKLMNOPQRS
Now the stack looks like:
44434241
48474645
4C4B4A49
504F4E4D
00535251
00410ECE

攻撃者は、QRS の代わりに 0x45、0x10、0x40 をプログラムに送ることができれば、bar を実行できます。このような特殊な文字 (0x10 は出力不可能) をコマンド ラインで渡すには、次の HackOverrun.pl という Perl スクリプトを使って、アプリケーションに任意のコマンド ラインを簡単に送ることができます。

$arg = "ABCDEFGHIJKLMNOP"."\x45\x10\x40";
$cmd = "StaticOverrun ".$arg;

system($cmd);

このスクリプトを実行すると、目的の結果が得られます。

[d:\devstudio\myprojects\staticoverrun]perl HackOverrun.pl
Address of foo = 00401000
Address of bar = 00401045
My stack looks like:
77FB80DB
77F94E68
7FFDF000
0012FF80
0040108A
00410ECA

ABCDEFGHIJKLMNOPE?@
Now the stack looks like:
44434241
48474645
4C4B4A49
504F4E4D
00401045
00410ECA

You have been hacked!

実際の攻撃で、攻撃者は、損害を与えるように設計したアセンブリ コードを最初の 16 文字に入れ、リターン アドレスをバッファの先頭に設定すると考えられます。

注

  • 64 ビットの Intel Itanium プロセッサでは、リターン アドレスはスタックにプッシュされず、レジスタに保持されます。ただし、このプロセッサではバッファ オーバーランが発生しないということではありません。オーバーランを利用するのが困難になるだけです。


ヒープ オーバーラン

ヒープ オーバーランは、静的バッファ オーバーランとほぼ同じ問題が発生しますが、利用するのはより困難です。静的バッファ オーバーランの場合と同様に、攻撃者はアクセス権のないアプリケーション内の場所に任意の情報を書き込むことができます。この問題については、『w00w00 on Heap Overflows』(Matt Conover of w00w00 Security Development (WSD)) という優れた論文があります。この記事は、www.w00w00.org/files/articles/heaptut.txt にあります。

次のアプリケーションは、ヒープ オーバーランを利用する方法を示しています。

/*
  HeapOverrun.cpp
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

/*
  Very flawed class to demonstrate a problem
*/

class BadStringBuf
{
public:
    BadStringBuf(void)
    {
        m_buf = NULL;
    }

    ~BadStringBuf(void)
    {
        if(m_buf != NULL)
            free(m_buf);
    }

    void Init(char* buf)
    {
        //Really bad code
        m_buf = buf;
    }

    void SetString(const char* input)
    {
        //This is stupid.
        strcpy(m_buf, input);
    }

    const char* GetString(void)
    {
        return m_buf;
    }

private:
    char* m_buf;
};

//Declare a pointer to the BadStringBuf class to hold our input.
BadStringBuf* g_pInput = NULL;

void bar(void)
{
    printf("You have been hacked!\n");
}

void BadFunc(const char* input1, const char* input2)
{
    //Someone said that heap overruns were not exploitable,
    //so allocate the buffer on the heap.

    char* buf = NULL;
    char* buf2;

    buf2 = (char*)malloc(16);
    g_pInput = new BadStringBuf;
    buf = (char*)malloc(16);
    //Bad programmer - no error checking on allocations

    g_pInput->Init(buf2);

    //The worst that can happen is a crash, right?
    strcpy(buf, input1);

    g_pInput->SetString(input2);

    printf("input 1 = %s\ninput2 = %s\n", buf, g_pInput->GetString());

    if(buf != NULL)
        free(buf);

}

int main(int argc, char* argv[])
{
    //Simulated argv strings
    char arg1[128];

    //This is the address of the bar function.
    char arg2[4] = {0x0f, 0x10, 0x40, 0};
    int offset = 0x40;

    //Using 0xfd is an evil trick to overcome heap corruption checking.
    //The 0xfd value at the end of the buffer checks for corruption.
    //No error checking here – it is just an example of how to
    //construct an overflow string.
    memset(arg1, 0xfd, offset);
    arg1[offset]   = (char)0x94;
    arg1[offset+1] = (char)0xfe;
    arg1[offset+2] = (char)0x12;
    arg1[offset+3] = 0;
    arg1[offset+4] = 0;

    printf("Address of bar is %p\n", bar);
    BadFunc(arg1, arg2);

    if(g_pInput != NULL)
        delete g_pInput;

    return 0;
}

上の例を見ると、BadFunc を記述したプログラマは、ヒープ オーバーランが利用できないと認識していたのではないかと推測できます。また、このプログラマは入力バッファのポインタを保持するために BadStringBuf という C++ クラスを記述しています。このクラスの最も優れている点は、デストラクタのバッファを解放することで、メモリ リークを防止することです。BadStringBuf バッファを初期化する場合に malloc というメモリ割り当て関数を使わないと、解放関数を呼び出すときに問題が発生する可能性があります。

攻撃者は、最初の引数または 2 番目の引数が長すぎると、このアプリケーションが暴走することに気付きます。また、エラー メッセージに示されるエラーのアドレスを見れば、ヒープ内のメモリの内容が破壊されていることもわかります。そこで、攻撃者はプログラムをデバッガで起動し、最初の入力文字列の場所を探します。重要なメモリがこのバッファに隣接している可能性があることに気付きます。少し調査を進めると、2 番目の引数が、別の動的に割り当てられるバッファに書き込まれることがわかりました。そこで、そのバッファのポインタを探します。2 番目のバッファに対応するバイトのメモリを探したところ、2 番目のバッファのポインタが、最初のバッファの開始点からちょうど 0x40 の場所にあることがわかりました。これで、攻撃者はこのポインタを任意のものに変更できるようになります。その結果、2 番目の引数として渡される文字列がアプリケーションのプロセス領域の任意の場所に書き込まれます。

最初の例と同様に、攻撃者の目的は bar 関数を実行することです。そこで、この例では 0x0012fe94 を参照するポインタを上書きします。このポインタは、この例では BadFunc 関数のリターン アドレスが保持されているスタック内の地点になっています。

攻撃者は 2 番目の文字列として、0x0012fe94 のメモリを bar 関数のアドレス (0x0040100f) に設定する文字列を作成します。この手法では、攻撃者はスタックを破壊しないようにします。従って、スタックを保護する機能によって変更が検出されることはありません。アプリケーションに対して作業を進めていくと、次の結果が得られます。

Address of bar is 0040100F
input 1 = 2222222222222222222222222222222222222222222222222222�??
input2 = *?@
You have been hacked!

攻撃者はこのコードをデバッグ モードで実行し、作業を進めることができます。これは、Visual C++ のデバッグ モードのスタック チェック機能がヒープに適用されないためです。


配列インデックス エラー

配列インデックス エラーは、バッファ オーバーランに比べ、利用されることはほとんどありません。このエラーは文字の配列のみで利用されます。また、メモリの任意の場所に書き込みを行うには、他の型の配列も使うことができます。

次のサンプル コードは、配列インデックス エラーを使ってメモリの任意の場所に書き込む方法を示ていします。

/*
    ArrayIndexError.cpp
*/

#include <stdio.h>
#include <stdlib.h>

int* IntVector;

void bar(void)
{
    printf("You have been hacked!\n");
}

void InsertInt(unsigned long index, unsigned long value)
{
    printf("Writing memory at %p\n", &(IntVector[index]));

    IntVector[index] = value;
}

bool InitVector(int size)
{
    IntVector = (int*)malloc(sizeof(int)*size);
    printf("Address of IntVector is %p\n", IntVector);

    if(IntVector == NULL)
        return false;
    else
        return true;
}

int main(int argc, char* argv[])
{
    unsigned long index, value;

    if(argc != 3)
    {
        printf("Usage is %s [index] [value]\n");
        return -1;
    }

printf("Address of bar is %p\n", bar);

    //Initialize the vector - 64 KB should be enough for
    //anyone <g>.
    if(!InitVector(0xffff))
    {
        printf("Cannot initialize vector!\n");
        return -1;
    }

    index = atol(argv[1]);
    value = atol(argv[2]);

    InsertInt(index, value);
    return 0;
}

一般的に、この種のエラーによる攻撃では、予想される要素数をユーザーがアプリケーションに知らせます。アプリケーションでは境界チェックに失敗するため、ユーザーは配列が作成された後で配列にランダムにアクセスできるようになります。

この例の配列の開始点は 0x00510048 です。また、攻撃者が書き込もうとする値は、0x0012FF84 にあるスタック上の戻り値です。次の式は、1 つの配列要素のアドレスが、配列の基底、インデックス、および配列要素のサイズによって決定されるしくみを示しています。

Address of array element = base of array + index * sizeof(element)

式に値を代入すると次のようになります。

0x10012FF84 = 0x00510048 + index * 4

式では、0x0012FF84 の代わりに 0x10012FF84 が使われます。電卓で計算すると、インデックスは 0x3FF07FCF (1072725967)、bar のアドレス (0x00401000) は 10 進数で 4198400 となります。プログラムの実行結果は次のとおりです。

[d:\]ArrayIndexError.exe 1072725967 4198400
Address of bar is 00401000
Address of IntVector is 00510048
Writing memory at 0012FF84
You have been hacked!

このように、デバッガを使う攻撃者であれば、この種のエラーは簡単に利用できます。


書式文字列のバグ

書式文字列のバグは、厳密にはバッファ オーバーフローとは異なりますが、結果として同じ問題になるため、ここで説明します。

書式文字列のバグの基本的な問題は、任意の個数の引数を受け取る関数において、渡された引数の個数を調べる現実的な方法がないという事実に起因します (任意の個数の引数を受け取る最も一般的な関数は、C のランタイム関数も含め、printf 呼び出しグループです)。この問題の興味深い点は、書式文字列で記述されたバイト数が %n 書式指定子によってその引数のポインタに書き込まれることです。多少手を加えると、プロセスのメモリ領域内の任意ビットが攻撃者のバイトで上書きされるようになります。このようなバグを Windows システム上で利用するのは少し困難です。多くの場合、書き込み対象のメモリは 0x00ffffff 以下にあるためです。たとえば、スタックは通常 0x00120000 程度の範囲に存在します。

この問題は比較的簡単に解決できます。常に、書式文字列で printf 関数グループに渡すようにします。たとえば、printf(input); は不正利用できますが、printf("%s", input); は不正利用できません。

いったん攻撃者がアプリケーションのどこかでメモリに書き込めるようになると、クラッシュさせたり任意のコードを実行したりする方法を習得するのは時間の問題であることに留意してください。このバグは非常に簡単に回避できます。さまざまな言語に対応するバージョンのアプリケーション用にカスタムの書式文字列を格納する場合は、特に注意してください。この場合、権限のないユーザーによって文字列が書き込まれないようにする必要があります。


Unicode と ANSI のバッファ サイズの不一致

Unicode と ANSI のバッファ サイズの不一致によるバッファ オーバーランは、Windows プラットフォームでは比較的起こりやすい問題です。この問題は、Unicode バッファの要素数とバイト サイズが混同された場合に発生します。この問題がよく発生するのは、次の 2 つの理由によります。Microsoft Windows NT 以降のバージョンでは ANSI と Unicode の文字列がサポートされているため、および、ほとんどの Unicode 関数ではワイド文字がバイト サイズではなくバッファ サイズで扱われるためです。

この種のバグに弱い関数の中で最も一般的に使われるのは、MultiByteToWideChar です。次のコードについて検討します。

BOOL GetName(char *szName)
{
    WCHAR wszUserName[256];

    // Convert ANSI name to Unicode.
    MultiByteToWideChar(CP_ACP, 0,
                        szName,
                        -1,
                        wszUserName,
                        sizeof(wszUserName));
    // Snip

}

問題になるのは、MultiByteToWideChar の最後の引数です。この呼び出しに渡される値は sizeof(wszUserName) です。これは Unicode 文字列で、256 ワイド文字です。ワイド文字は 2 バイトであるため、sizeof(wszUserName) は実際には 512 バイトです。従って、関数はバッファのサイズを 512 ワイド文字と認識します。wszUserName はスタック上にあるため、バッファ オーバーランが利用される可能性があります。

この関数を記述する適切な方法を次に示します。

    MultiByteToWideChar(CP_ACP, 0,
                        szName,
                        -1,
                        wszUserName,
                        sizeof(wszUserName) / sizeof(wszUserName[0]));


バッファ オーバーランを防止する

バッファ オーバーランを防止するには、堅牢なアプリケーションを作成する必要があります。優れた文献として、『Writing Solid Code』(Steve Maguire (Microsoft Press, 1993)) があります。これを参照してください。

バッファ オーバーランを防止するための最も重要な作業は、すべての入力を常に確認することです。同様に、関数の内部実装に関するすべて、および関数の所定の入出力を除くすべてに対して、関数の外部からアクセスできないようにする必要もあります。

安全な文字列処理

文字列処理がバッファ オーバーランの最大の原因です。ここではシングル バイト バージョンの問題について説明しますが、この問題はワイド文字の文字列処理関数にも当てはまります。また、Windows システムでは lstrcpy、lstrcat、および lstrcpyn がサポートされ、Windows シェルには Shlwapi.dll からエクスポートされる StrCpy、StrCat、StrCpyN などの類似関数が含まれています。lstr 呼び出しグループは細部で多少の相違点があり、呼び出し時はアプリケーションによる LPTSTR の定義に応じてシングル バイトとマルチバイトの文字セットの両方を処理しますが、問題としてはより一般的な ANSI バージョンと同様です。

関数 | コメント
strcpy | strcpy 関数は基本的に安全ではないため、できるだけ使用しないでください。 出力先バッファまたはソース バッファが NULL の場合は、例外ハンドラで終了するようにします。最大の問題は、ソース文字列が出力先バッファより長い場合にオーバーフローが発生することです。
strncpy | この関数は strcpy よりは安全ですが、NULL が渡されたり、ソースや出力先の不正なポインタが渡されたりすると例外が発生します。
sprintf | この関数を安全に使う方法はほとんどありません。sprintf を呼び出す前にバッファの長さがデータを格納するのに十分なものかどうかを確認することは容易ではありません。
_snprintf | この関数には柔軟性があり安全ですが、バッファが NULL で終了する保証はありません。文字数をバッファ サイズより 1 文字少ない値に指定して、常に NULL 文字の空間を終端に確保し、常にバッファの最後の文字を NULL で終了するようにします。
標準テンプレート ライブラリ文字列 (STL) | C++ コードを記述するときは STL を使用できます。STL には、文字列内の文字や部分文字列を検索したり、文字列を切り捨てたりするための有用なメンバ関数が含まれています。
gets および fgets | gets は使用しないでください。gets がバッファをオーバーフローさせるかどうかを確認する方法はありません。代わりに、fgets または C++ ストリーム オブジェクトを使用してください。


Web セキュリティに関する犯しやすい誤り

信頼されていない環境と信頼された環境の境界を越えてデータが移動するときは、そのデータを確認する必要があります。定義上、信頼されたデータとは、サイト運営者自身が完全に管理しているデータ、またはサイト運営者が明示的に信頼するエンティティが完全に管理しているデータであり、それ以外のデータが信頼されていないデータとなります。ユーザーが送信するデータは、最初は信頼されていないデータです。

ここでは、次のトピックについて説明します。

  • ユーザー入力の脆弱性
  • マネージド コードを使って入力を信頼する例
  • セキュリティの脆弱性 : 無制限のサイズ
  • セキュリティの脆弱性 : SQL ステートメントでユーザー入力を直接使う
  • ユーザー入力の処置


ユーザー入力の脆弱性

Web アプリケーションはすべて、ユーザーの要求に基づいて何らかのアクションを実行します。有効なデータを判別し、無効な入力はすべて拒否する必要があります。

ある Web サイトの Active Server Pages (ASP) コードに基づく例を次に示します。この Web サイトでは、Web サイト デザイナに対して、ASP ベースのアプリケーションで次の Microsoft® JScript® コードを使ってフォームによる認証を実装することを推奨しています。

// Get the username and password from the form.
if (isValidUserAndPwd(Request.form("name"),
                      Request.form("pwd"))) {
    Response.write("Authenticated!");
} else {
    Response.write("Access Denied");
}

function isValidUserAndPwd(strName, strPwd) {
    var fValid = false;
    var oConn = new ActiveXObject("ADODB.Connection");
    oConn.Open("Data Source=c:\\auth\\auth.mdb;");

    var strSQL = "SELECT count(*) FROM client WHERE " +
        "name='" + strName + "' " +
        “ and pwd='" + strPwd + "'";
    var oRS = new ActiveXObject("DODB.RecordSet");
    oRS.Open(strSQL, oConn);
    fValid = (oRS(0).Value > 0) ? true : false;

    oRS.Close();
    delete oRS;
    oConn.Close();
    delete oConn;

    return fValid;
}

次に、HTTP POST を使ってユーザー名とパスワードを JScript コードに送信するためのクライアント コードを示します。

<FORM ACTION="Logon.asp" METHOD=POST>
    <INPUT TYPE=text MAXLENGTH=32 NAME=name>
    <INPUT TYPE=password MAXLENGTH=32 NAME=pwd>
    <INPUT TYPE=submit NAME=submit VALUE="Logon">
</FORM>

ユーザーは、上の HTML フォームを使ってユーザー名とパスワードを入力し、[Logon] をクリックします。ASP コードは、入力されたユーザー名とパスワードを使って SQL ステートメントを作成し、データベースに対するクエリを実行します。クエリで返される行数 (SELECT count(*) が返す値) が 1 以上の場合、ユーザー名とパスワードの組み合わせは有効であり、ユーザーはシステムにログオンできます。

ただし、クライアントとサーバーの両方のコードには弱点があります。これは、ソリューションがユーザー入力を直接取得し、有効かどうかをチェックせずにその入力を使ってデータベースにアクセスするためです。つまり、信頼されていないソース (ユーザー) から、信頼されたソース (アプリケーションの管理下にある SQL データベース) にデータが転送されます。

悪意のないユーザーが "Blake" というユーザー名と "$qu1r+" というパスワードを入力するとします。これにより、次の SQL ステートメントが作成されます。

SELECT count(*) FROM client
WHERE name='Blake'
AND pwd='$qu1r+'

このユーザー名とパスワードの組み合わせが有効である場合、count(*) は 1 以上の値を返し、ユーザーはシステムにアクセスできます。同じユーザー名とパスワードを持つユーザーが 2 人存在する場合や、管理上のエラーによってデータが 2 回入力された場合は、クエリで 2 以上の値が返される可能性があります。

ユーザー名とパスワードが ASP アプリケーションによってチェックされないため、攻撃者は任意の入力を送信できます。

関連項目

ユーザー入力を直接信頼しない


ユーザー入力を直接信頼しない

ユーザー入力を直接信頼しないでください。ユーザー入力が匿名の場合は特に信頼しないでください。"ユーザー入力を信頼しない" および "信頼されていないドメインから信頼されたドメインにデータが移動するときは必ずデータをチェックする" という 2 つの重要な原則に留意してください。

アプリケーションでユーザー入力を取得し、その入力に基づいて他のユーザー向けに出力を作成するようになっている場合は、悪質なユーザーの入力に警戒する必要があります。たとえば、ユーザーが商品評価を作成および掲載することができ、また、システムの他のユーザーが商品を購入する前にその商品評価を読むことができるような Web サービスを構築したとします。その場合のセキュリティの問題について検討してみます。攻撃者は Product A が嫌いで Product B が好きだとします。そこで、攻撃者は Product A に関するコメントを作成します。このコメントは、他のすべての評価と共に Product A の Web ページに表示されます。次のようなコメントです。

<meta http-equiv="refresh"
    content="2;URL=http://www.northwindtraders.com/productb.aspx">

この HTML コードは、ユーザーのブラウザが Product A の商品ページを 2 秒間表示した後に、ブラウザを Product B の商品ページに切り替えます。


マネージド コードを使って入力を信頼する例

次のコードは、マネージド コードを使って入力を信頼する例です。

using System.Data.SQLClient;
using System.Data.SQLTypes;public static SqlMoney FreightByCargo(string company) {
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select sum(cost) as cost " +
         "from orders "  +
         "where companyname = '" + company + "'"; return cmd.ExecuteScalar();
}

次の例は、このコード例が不正である理由と、攻撃者がそれを利用する方法を示しています。

ユーザー入力 : 予想される有効な入力の例

Name: Foo Corp
SELECT sum(cost)
FROM orders
WHERE companyname='Foo Corp'

攻撃者の入力 : 攻撃者の実際の入力

Name: Blah' or 1=1 --
SELECT sum(cost)
FROM orders
WHERE companyname='Blah' or 1=1 -- '

上の例で、不正な入力は 'Blah' or 1=1 -- ' です。この入力が不正である理由は、攻撃者はこの入力を使うことで、普通のユーザー レベルの権限を使ってコードに SQL ステートメントを挿入できるかどうかをテストできるためです。

攻撃者の悪質な入力

Name: b' drop table orders --
SELECT sum(cost)
FROM orders
WHERE companyname= 'b' drop table orders -- '

上の例で、不正な入力は b' drop table orders -- です。この入力が不正である理由は、攻撃者がドロップ テーブルに SQL ステートメントを挿入できるようになるためです。ただし、攻撃者がこれを達成するには、db_owner レベルの権限が必要です。

攻撃者のきわめて悪質な入力

Name: b' xp_cmdshell('fdisk.exe') --
SELECT sum(cost)
FROM orders
WHERE companyname= 'b' xp_cmdshell('fdisk.exe') -- '

上の例で、不正な入力は b' xp_cmdshell('fdisk.exe') – です。この入力が不正である理由は、攻撃者がこの入力を使ってシステム レベルのコマンド (コマンド ライン モードのシェル) を実行できるためです。ただし、攻撃者がこれを達成するには、sa レベルの権限を使って SQL Server データベースに接続できなければなりません。

より安全なマネージド コードの例

次のコード例は、上記の攻撃を防止するための、より適切な方法を示しています。

using System.Data.SqlServer;
using System.Data.SqlTypes; public static SqlMoney FreightByCargo(string company) {
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select sum(cost) as cost" +
"from orders " +
"where companyname = @CompanyName";
SqlParameter param = cmd.Parameters.Add("@CompanyName",
company);
return cmd.ExecuteScalar( );
}


セキュリティの脆弱性 : 無制限のサイズ

クライアント データのサイズが制限およびチェックされない場合、攻撃者は必要なだけのデータを送信できます。このことは、SQL クエリが起動されたときに呼び出されるデータベース コードの中に、その時点では未知のバッファ オーバーランが存在する場合に、セキュリティの問題となる可能性があります。攻撃者は、詳しく調べれば、前のクライアント HTML フォーム コードで制限されたユーザー名とパスワードの最大サイズ (どちらのフィールドも 32 文字) を簡単に回避できます。その方法は、クライアント コードを使わないようにするだけです。代わりに、攻撃者は Perl などの独自のクライアント コードを書き込んだり、Telnet クライアントを使ったりするだけです。

そのような例として、有効な HTML フォームを Logon.asp に送信し、パスワードとユーザー名を 32,000 文字の "A" に設定する例を次に示します。

use HTTP::Request::Common qw(POST GET);
use LWP::UserAgent;

$ua = LWP::UserAgent->new();
$req = POST 'http://www.northwindtraders.com/Logon.asp',
         [ pwd => 'A' x 32000,
           name => 'A' x 32000,
         ];
$res = $ua->request($req);

クライアント側の HTML セキュリティ チェックを信頼しないでください。つまり、この例ではユーザー名とパスワードの長さが 32 文字に制限されるとは考えないでください。これは、攻撃者が、クライアントを完全に回避することでそのような制御をいつでも回避できるためです。


セキュリティの脆弱性 : SQL ステートメントでユーザー入力を直接使う

入力は信頼されていないうえに、有効かどうかがチェックされていないため、攻撃者が SQL ステートメントのセマンティックを変更する可能性があります。次の例では、攻撃者が完全に無効なユーザー名とパスワード (どちらも 'b' or '1' = '1') を入力します。これにより、次の有効な SQL ステートメントが作成されます。

SELECT count(*)
FROM client
WHERE name='b' or '1'='1' and pwd='b' or '1'='1'

このステートメントは、行数の値として常に 2 以上を返します。これは、"and" 句の両側で "'1' = '1'" の部分が True になるためです。攻撃者は有効なユーザー名とパスワードを知らなくても認証されます。これは、入力によって単純に SQL クエリの動作が変更されたためです。

次に、別の例を示します。ユーザー名を知っている攻撃者がそのユーザー アカウントをスプーフィングする場合は、SQL コメントを使うと実行できます。SQL コメントは、たとえば、Microsoft SQL Server では 2 つのハイフン (--)、mySQL では番号記号 (#) です。その他、セミコロン (;) をコメント記号として使うデータベースもあります。攻撃者は「'b' or '1' = '1'」ではなく「'Cheryl' --」を入力します。これにより、次の有効な SQL ステートメントが作成されます。

SELECT count(*)
FROM client
WHERE name='Cheryl' --and pwd=''

Cheryl という名前のユーザーがシステムで定義されていれば、攻撃者はログインできます、これは、SQL ステートメントのパスワードを評価する部分をコメント化したことで、パスワードがチェックされなくなるためです。

SQL ステートメントは結合できます。たとえば、次の SQL ステートメントは有効です。

SELECT * from client INSERT into client VALUES ('me', 'URHacked')

この 1 行は実際には 2 つの SQL ステートメントです。最初のステートメントはクライアント テーブルのすべての行を選択し、2 つ目のステートメントは同じテーブルに新しい行を挿入します。

注

  • 攻撃者の INSERT ステートメントが機能する理由には、ほとんどのユーザーが、SQL Server サーバーのシステム管理者アカウント (sa) などの高いアカウントを使って SQL データベースに接続するということがあります。このため、Web アプリケーションをデザインするときは最小の権限を使うという原則があります。

攻撃者はこのログイン ASP ページを使い、ユーザー名に「'b' INSERT INTO client VALUES ('me', 'URHacked') --」と入力する可能性があります。この場合は、次の SQL ステートメントが作成されます。

SELECT count(*)
FROM client
WHERE name='b' INSERT INTO client VALUES ('me', 'URHacked') --and pwd=''

パスワードはチェックされません。これは、クエリのパスワード部分がコメント化されたためです。また、攻撃者は、"me" をユーザー名として、"URHacked" をパスワードとして含む新しい行を追加したため、"me" と "URHacked" を使ってログインできます。


ユーザー入力の処置

ユーザー入力のすべての問題に関する第 1 のルールは、有効な入力を判別し、無効な入力はすべて拒否することです。これ以外にも、低下する可能性があるセキュリティに有効な機能を使う方法があります。

次の手法を使うと、ユーザー入力の脅威を軽減できます。

  • 有効な入力を判別し、無効な入力はすべて拒否する。
  • 正規表現を使う。
  • ユーザー入力は、校正してから表示する。
  • パスワードの問題は、Server.URLEncode または HttpServerUtility.URLEncode を使って回避する。
  • アプリケーションから SQL Server にログオンするときは絶対に "sa" アカウントを使わない。これは、最小の権限を使うという原則が守るためです。
  • SQL 文字列は作成しない。
  • プレースホルダやストアド プロシージャを使う。

ここでは、次のトピックについて説明します。

  • 入力テストの構想
  • 有効な入力を制限する


入力テストの構想

サイトを配置する前に、アプリケーションのエントリ ポイントをすべて列挙することをお勧めします。たとえば、ソケット、RPC、名前付きパイプ、ファイル、レジストリ キー、SOAP パラメータ、HTTP ヘッダー、フォームの値、クエリ文字列などが挙げられます。次に、Perl、C#、C++ などのツールを使って、それらのエントリ ポイントをレーダーのように探知します。入力値として、極端に大きな値、極端に小さな値、未登録の値、または不正なデータ型の値を作成し、それらの値を使ってテストします。


有効な入力を制限する

ユーザー名の有効な文字を、たとえば、A ～ Z、a ～ z、および 0 ～ 9 などの範囲に含まれる文字に簡単に制限することができます。次のサーバー側の JScript は、サーバーでユーザー名を解析するための正規表現を作成および使用する方法を示しています。

// Determine whether user name is valid.
// Valid format is 1 to 32 alphanumeric characters.
var reg = /^[A-Za-z0-9]{1,32}$/g;
if (reg.test(Request.form("name")) > 0) {
    // Username is valid.
} else {
    // Username is invalid.
}

この正規表現の末尾に "g" オプションが使われていることに注意してください。これは、正規表現ですべての入力がパターン チェックされるようにするグローバル オプションです。このオプションがない場合、チェックされるのは最初の行だけです。グローバル オプションを設定していないと、攻撃者が複数の行を入力できる場合に深刻な結果になる可能性があります。

この正規表現では、ユーザー名が一部の文字に制限されるだけでなく、文字列の長さが 1 ～ 32 文字に制限されます。

注

  • 正規表現で "^" と "$" を使うと、入力の先頭 (^) から末尾 ($) までのすべての文字がこの正規表現にマッチする必要があるという意味になります。これらを使わない場合は、正規表現が文字列の一部のみに一致する可能性があります。たとえば、/[A-Za-z0-9]{1,32}/ の場合は、入力文字列の任意の部分のみに一致します。また、<script>alert("hi!")</script> などの HTML タグまたはスクリプトは一致します。これは、"script" という単語が正規表現に一致するためです。

コードを記述する場合は、フォーム、HTTP ヘッダー、またはクエリ文字列の一部も含めてすべての入力に正規表現を適用する必要があります。

Web サーバーにクエリ文字列として渡されるファイル名の場合は、次の正規表現を使うと、クエリ文字列内でスクリプトが使われる場合に対処できます。この正規表現は有効なファイル名を表しています (ディレクトリやドライブ名は考慮していません)。

// Determine whether filename is valid.
// Valid format is 1 to 24 alphanumeric characters
// followed by a period, and 1 to 3 alpha characters.
var reg = /^[A-Za-z0-9]{1,24}\.[A-Za-z]{1,3}$/g;
if (reg.test(Request.Querystring("file")) > 0) {
    // Valid filename.
} else {
    // Invalid filename.
}

多くの Web 開発者が犯しやすい誤りは、"安全な" HTML の構成を使えるようにすることです。たとえば、<IMG> タグや <TABLE> タグをユーザーが Web アプリケーションに送信できるようにすることです。このようにすると、ユーザーがテキストではなく HTML タグだけを送信する可能性があります。そのため、これは行わないでください。攻撃者はこのようなタグにスクリプトを組み込むことができるため、クロスサイト スクリプティングの危険性もあります。

いくつかの例を次に示します。

<img src=javascript:alert(document.domain)>
<link rel=stylesheet href="javascript:alert(document.domain)">
<input type=image src=javascript:alert(document.domain)>
<bgsound src=javascript:alert(document.domain)>
<iframe src="javascript:alert(document.domain)">
<frameset onload=vbscript:msgbox(document.cookie)></frameset>
<table background="javascript:alert(document.domain)"></table>
<object type=text/html data="javascript:alert(document.domain);"></object>
<body onload="javascript:alert(document.cookie)"></body>
<body background="javascript:alert(document.cookie)"></body>
<p style=left:expression(alert(document.cookie))>


クロスサイト スクリプティングの問題

クロスサイト スクリプティング攻撃では、攻撃者がリンクを含む電子メールをユーザーに送信するなどの方法でユーザーを Web サイトへのリンクに注目させます。その URL には、悪質なペイロードを含むクエリ文字列が組み込まれています。この攻撃が特に悪質なのは、Web サイトで、組み込まれたクエリ文字列に関するエラー メッセージがエラー テキストの一部として作成される場合です。

クロスサイト スクリプティング攻撃は一般的になりつつあります。脆弱性の原因となる主要な問題は、ユーザー入力をエコーすることです。また、弱点のあるページがドメイン全体で 1 つでもあれば、攻撃を受けやすくなります。

注

  • SSL/TLS を使っても、クロスサイト スクリプティングの問題は緩和されません。

ここでは、次のトピックについて説明します。

  • クロスサイト スクリプティング攻撃のしくみ


クロスサイト スクリプティング攻撃のしくみ

次の図は、ユーザーにデータを返すときに発生する可能性がある問題の例を示しています。この例では、"Hello Blake" というパーソナライズされたあいさつ文が Web サイトに表示されます (同じ問題は、サイトでユーザーが検索文字列を入力して商品やその他のコンテンツを検索するような場合にも発生する可能性があります)。パーソナライズされたコンテンツが表示された後で、攻撃者はサイトのセキュリティをテストするために、URL にスクリプトを追加し、これがサイトで実行されるかどうかを調べます。

この例では、スクリプトが実行され、現在は、すべてのユーザーが攻撃者の Web site (www.hackerserver.com) にリダイレクトされるようになっています。ユーザーが攻撃者の Web サイトに入るときに、攻撃者はユーザーのプロファイル データを収集できます。

この攻撃は、ファイアウォールの内側のコンピュータにも使用できます。多くの企業のローカル エリア ネットワーク (LAN) では、クライアント コンピュータは LAN 上のサーバーは信頼しますが、外部のインターネット上のサーバーは信頼しないという構成になっています。ただし、ファイアウォールの外側のサーバーからファイアウォールの内側のクライアントを騙して、ファイアウォールの内側のサーバーがクライアントにプログラムの実行を要求したものと思い込ませることができます。攻撃者に必要なものは、フォーム内のフィールドで特殊文字をチェックしないファイアウォールの内側にある Web サーバーの名前だけです。内部情報がないとこれを調べることは困難ですが、不可能ではありません。

クロスサイト スクリプティングの問題の詳細については、http://go.microsoft.com/fwlink/?LinkId=6717 で「Cross-Site Scripting Overview」(英語) を参照してください。


安全な SQL ステートメントを作成する

コード内に SQL 文字列を作成することには問題があります。この問題を簡単に解決するには、SQL 文字列の作成をデータベースに任せ、コード内で SQL 文字列を作成しないようにします。これは 2 つの方法で実行できます。まず、ユーザーの入力をストアド プロシージャに渡します。SQL Server ではストアド プロシージャがサポートされています。

Web アプリケーションでオープン データベース コネクティビティ (ODBC) を使う場合、パラメータを使うときは、SQLNumParams 関数と SQLBindParam 関数を使う必要があります。OLE DB を使う場合は、ICommandWithParameters インターフェイスを使うことができます。


最小の権限で実行する

ユーザーと実行可能プロセスは、タスクの実行に必要な最小の権限で実行する必要があります。

注

  • Commerce Server サイトに Windows 認証ではなく SQL 認証を使う場合は、追加の操作を行って、運用環境でビジネス デスクと Commerce Server マネージャにアクセスするユーザーに不要な特権を与えないようにする必要があります。

セキュリティの問題につながる可能性のある、バッファ オーバーランなどの重大なソフトウェアの欠陥による損害は、弱点のあるソフトウェアが低い権限で実行されていれば小さくなります。ユーザーが、ユーザーの高い権限で動作する悪質なコードを無意識に実行すると問題が発生します。このようなコードには、電子メールの添付ファイルに含まれるトロイの木馬や、バッファ オーバーランを利用したコード挿入があります。たとえば、トロイの木馬が起動するときに作成されるプロセスは、呼び出し側のすべての権限を継承します。また、ユーザーがローカル Administrators グループのメンバである場合は、実行されたコードによってすべてのシステム権限とオブジェクトへのアクセス権が取得される可能性があります。損害を受ける可能性はきわめて高くなります。


サービス拒否攻撃を防止する

前で説明したように、サービス拒否 (DoS) 攻撃は、サイトにアクセスしようとする有効なユーザーへのサービスを拒否します。たとえば、攻撃者が Web サーバーに大量の要求を送信して、Web サーバーを一時的に利用不能にします。サービス拒否攻撃が問題になるのは、実行が簡単で、匿名が使えるためです。

サービス拒否攻撃の主な種類には、CPU 消費、メモリ消費、リソース (またはディスク領域) 消費、およびネットワーク帯域幅消費 の 4 つがあります。これらの DoS 攻撃については、次のセクションで説明します。また、攻撃を緩和するための手法についても説明します。詳細については、『Writing Secure Code』(Michael Howard and David LeBlanc) を参照してください。

ここでは、次のトピックについて説明します。

  • CPU 消費攻撃
  • メモリ消費攻撃
  • リソース消費攻撃
  • ネットワーク帯域幅攻撃


CPU 消費攻撃

攻撃者の観点で言えば、CPU 消費攻撃の目的は、コストの高い計算を実行する緊密なループの途中でアプリケーションを停止させることです。たとえば、攻撃者は、システム リソースを超える複数の支払い要求を Web サイトに発行する可能性があります。この結果、サーバーの CPU 能力が短時間で欠乏します。

CPU 消費攻撃を緩和するには、支払いサーバーを分割し、支払いサーバー上で要求を絞り込みます。これを行うには、支払いを http://checkout.<mystore.com> にリンクし、そのサイトに IIS 要求スロットルを配置します。


メモリ消費攻撃

メモリ消費攻撃では、Web サイトのメモリが過剰に消費されます。この種の攻撃は、サイトをコーディングする側がメモリの割り当てや新しいメモリの要求が成功するかどうかを確認しないで、メモリが不足することはないと思い込んでいた場合に多く見受けられます。

たとえば、攻撃者は、品目を大量に追加するスクリプトを使って、バスケットに品目を連続的に追加することができます。Commerce Server サイトでは、バスケットが Dictionary オブジェクトとしてメモリにロードされるため、攻撃者は最終的にサーバーの利用可能なメモリを使い果たします。この結果、DoS が発生します。Retail ソリューション サイトでは、この攻撃を緩和するため、品目数が 999 に制限されます。独自の Commerce Server サイトの場合は、必要に応じて制限を選択します。

IIS 自体に対するメモリ消費攻撃を緩和するには、次の設定を行います。

  • Adsutil.vbs set w3svc/*/ConnectionTimeout 30
  • Adsutil.vbs set w3svc/*/UploadReadAheadSize 2000
  • HKLM/System/CurrentControlSet/Service/w3svc/parameters/ の下にある MaxClientRequestBuffer=16384 というレジストリ値を変更または追加します。


リソース消費攻撃

リソース消費攻撃 (ディスク領域攻撃とも呼ばれる) では、特定のリソースが欠乏するまで消費されます。たとえば、攻撃者が Web サイトに要求を連続的に発行して、バスケットやユーザーを作成する可能性があります。この攻撃を受けると、ディスク領域がすべて使い果たされます。

バスケットを使うリソース消費攻撃を緩和するには、次の擬似コードに示すように、使われていないバスケットを削除するストアド プロシージャを使います。このストアド プロシージャは SQL タスク スケジューラを使って実行します。

while (select outdated baskets not end of file)
    delete top 20 outdated baskets
end while

このプロシージャはループ内で実行され、古い方から 20 個のバスケットだけを削除してバスケット テーブルのロックを防止します。この攻撃を受けると、その他のトランザクションが抑止され、結果的に SQL サーバーがクラッシュします。

ユーザーを作成する要求の場合は、必ず大容量のディスク システムを使用し、使われていないユーザーを定期的に削除します。これを行うには、バスケットの削除で示したものと同様のスクリプトを使います。


ネットワーク帯域幅攻撃

一般的なネットワーク帯域幅攻撃では、echo サービスと chargen (character generator) サービスが使われます。echo は与えられた入力をそのまま返し、chargen は任意のクライアントに延々と文字を送信し続けます。通常、これらの 2 つのアプリケーションは、ネットワークの問題を診断したり、2 点間で利用できる帯域幅を推定したりするために使います。ところが、攻撃者は、chargen サービスを実行しているシステムの chargen ポートから発信されるパケットをスプーフィングして、broadcast アドレスから echo サービスにパケットを送信します。この攻撃を受けた場合、複数のシステムが echo ポートと chargen ポート間でパケットを交換し続けることになります。

ネットワーク帯域幅攻撃を緩和するには、ユーザーからの要求に対してエラー応答を送信する前に各要求を確認します。


セキュリティで保護されたサイトの配置

ここでは、セキュリティで保護された構成の概要について説明します。

このセクションで説明している構成の設定方法については、http://go.microsoft.com/fwlink/?LinkId=6724 を参照してください。

ここでは、次のトピックについて説明します。

  • セキュリティで保護された配置例の概要
  • セキュリティで保護された配置のファイアウォールおよびポート


セキュリティで保護された配置例の概要

次の図は、9 台のコンピュータの構成例です。

この図は、次の構成を示します。:

  • プレゼンテーション層 受信するクライアント要求は、すべて Commerce Server 2002 Web サイトを実行するプレゼンテーション層で受信されます。
  • データ層 SQL Server 2000 を実行しているサーバーは、データベースとのトランザクションを処理します。サーバーはファイアウォールによって保護されています。ファイアウォールは、ハードウェア ファイアウォールか ISA Server を実行しているサーバーのどちらかになります。この配置例では ISA がファイアウォールに使われています。
  • ドメイン コントローラ DNS とその他の層のネットワーク サーバーを含みます。これらのサービスは、データ層とプレゼンテーション層の間で共有されます。

Commerce Server データベースにセキュリティを設定するために、SQL 認証と Windows 認証のどちらを使う場合でも、3 層配置を使うことをお勧めします。

次の表は、セキュリティで保護された配置内の各コンポーネントと、その機能の説明を示しています。

コンポーネント | 説明
ISA Server 1 | プレゼンテーション層とデータ層の間のファイアウォール
ISA Server 2 | プレゼンテーション層とインターネットの間のファイアウォール
ISA Server 3 | 企業内 LAN とデータ層の間のファイアウォール
SQL Server 1 | 実行時の Commerce Server データベース
SQL Server 2 | データ ウェアハウス データベース
ビジネス デスク サーバー | Commerce Server コンポーネントおよびビジネスデスクアプリケーション
Web サーバー | Web アプリケーションを運用している Web サーバー
ドメイン コントローラ 1 | データ層のドメイン コントローラ
ドメイン コントローラ 2 | プレゼンテーション層のドメイン コントローラ

この構成の設定方法については、http://go.microsoft.com/fwlink/?LinkId=6724 を参照してください。


セキュリティで保護された配置のファイアウォールおよびポート

次の表は、Commerce Server で使用するサービスと、各サービスで使用するポートの一覧です。"方向"(受信または送信) は、ISA ファイアウォールを構成するときに指定するトラフィックの方向です。

たとえば、Microsoft 分散トランザクション コーディネータ (DTC) では受信トラフィックにポート 135 を開きます。

次の表をセキュリティで保護された配置を設定する際のガイドとして使います。

ISA ファイアウォール | サービス | TCP/IP ポート | 方向
データ層 | SQL Server | 1433 | 受信
データ層 | DTC | 135 | 受信
データ層 | DTC | 5000-5030 | 受信 (セカンダリ)
データ層 | DTC | 135 | 送信
データ層 | DTC | 5000-5030 | 送信
企業層 プレゼンテーション層 | HTTP | 80 | 双方向
企業層 プレゼンテーション層 | HTTPS | 443 | 双方向
企業層 プレゼンテーション層 | SMTP | 25 | 送信

次に、一般的なセキュリティで保護された配置のファイアウォールの場所を図示します。

  • プレゼンテーション層のファイアウォールは、インターネットと Web サーバーの間にあります。
  • データ層のファイアウォールは、Web サーバーとデータベースの間にあります。
  • 企業のファイアウォールは、データベースとビジネス デスク クライアントの間にあります。


匿名アカウントにセキュリティを設定する

匿名認証は、ユーザーにユーザー名やパスワードの入力を要求せずに、Web サイトの公開領域へのアクセス権限を与えます。ユーザーが公開 Web サイトに接続しようとすると、Web サーバーは、"URSR_<コンピュータ名>" という Windows ユーザー アカウントにそのユーザーを割り当てます。<コンピュータ名> は、IIS を実行しているサーバーの名前です。

注

  • サイトが ASP.NET に基づいている場合、匿名アカウントは "ASPNET" です。

特に指定しない限り、IUSR_<コンピュータ名> アカウントは、Windows の Guest ユーザー グループに含まれます。このグループは、一般ユーザーのアクセス権限のレベルと利用可能なコンテンツの種類を指定する NTFS アクセス許可により、セキュリティ上の制限を受けます。

サーバーに複数のサイトがある場合、またはサイトの中に異なるアクセス権限を必要とする領域がある場合は、Web サイト、ディレクトリ、またはファイルごとに、複数の匿名アカウントを作成できます。これらのアカウントに異なるアクセス許可を与えるか、またはこれらのアカウントを異なる Windows ユーザー グループに割り当てることによって、公開 Web コンテンツの領域ごとに、ユーザーの匿名アクセスを許可できます。

注

  • global.asa ファイルのデータベースへのアクセス許可を必要とする Commerce Server のカスタム コンポーネントを作成した場合、IWAM_<コンピュータ名> アカウントには実行時のアクセス許可が必要になります。

匿名アカウントと Windows 認証を使う

Windows 認証を使うように Commerce Server を構成することを強くお勧めします。

Windows 認証を使うには、次の作業を行う必要があります。

  1. Active Directory ドメインにユーザー アカウントを作成し、匿名ユーザーが SQL Server にアクセスできるようにします。これは、実行時のユーザー アカウントです。
  2. IIS の IUSR_<コンピュータ名> アカウントを、手順 1. で作成した実行時のユーザー アカウントに変更します。
  3. 実行時のユーザー アカウントに SQL Server へのアクセス許可を割り当てます。実行時のユーザー アカウントに与える必要があるアクセス許可の詳細な一覧については、「データベースにセキュリティを設定する」を参照してください。

関連項目

分散環境で Windows 認証を使う

匿名認証用のアカウントを変更する


匿名認証用のアカウントを変更する

Web サーバーのサービス レベルで、または仮想ディレクトリとファイルごとに、インターネット インフォメーション サービス スナップインで匿名認証に使用されるアカウントを変更できます。匿名アカウントには、ローカルにログオンするユーザー権限が必要です。アカウントに "ローカル ログオン" アクセス許可がない場合、IIS は、匿名の要求に対してサービスを提供できません。

IIS では、IUSR_<コンピュータ名> アカウントに限り、"ローカル ログオン" アクセス許可を与えます。特に指定しない限り、ゲスト アカウントにドメイン コントローラの IUSR_<コンピュータ名> アカウントは与えられません。匿名ログオンを許可するには、"ローカル ログオン" に変更する必要があります。

注

  • IUSR_<コンピュータ名> アカウントを変更すると、Web サーバーによってサービスが提供される "すべて" の匿名 HTTP 要求に影響を与えます。このアカウントを変更する場合は、注意してください。


サービス アカウントにセキュリティを設定する

Commerce Server セットアップ プログラムの実行中に、[サービス アカウント] ダイアログ ボックスを使って、次の Commerce Server サービスの Windows ユーザー名とパスワードを指定します。

  • リスト マネージャ
  • ダイレクト メーラー
  • イベント ログ (このサービスを実行するアカウントは、使用するコンピュータの管理者でなければなりません)

これらの Windows アカウントには、"サービスとしてログオン" の権利が自動的に与えられます。セットアップ プログラムでは、これらのサービスでローカル システム アカウントを使うように設定することはできません。セットアップ後に手動で設定することは可能ですが、それによってサービスに必要以上のアクセス許可が割り当てられる場合があるため、お勧めできません。

同じダイアログ ボックスで、イベント ログの記録を実行するアカウントも指定します。このアカウントは、セットアップ時に作成される Commerce Event Logging COM+ パッケージで使われます。このアカウントについては、「セキュリティに関する重要事項」を参照してください。

ここでは、次のトピックについて説明します。

  • リスト マネージャのサービス アカウント
  • ダイレクト メーラーのサービス アカウント


リスト マネージャのサービス アカウント

リスト マネージャでは、Commerce Server ビジネス デスクのユーザーが、リストのインポート元のフォルダを読み取って、リストのエクスポート先のフォルダに書き込めるようにする必要があります。リスト マネージャのサービス アカウントには、ユーザーがリストをインポートおよびエクスポートするフォルダに対する適切な NTFS アクセス許可が必要です。

Windows 認証を使うように Commerce Server を構成する場合、リスト マネージャのサービス アカウントには、次のアクセス許可が必要です。

  • 管理データベースに対する db_datareader ロール。
  • キャンペーン データベースおよびダイレクト メーラー データベースに対する db_owner ロール。詳細については、「キャンペーン データベースにセキュリティを設定する」および「ダイレクト メーラー データベースにセキュリティを設定する」を参照してください。
  • インポートする必要があるすべてのファイル対する読み取りアクセス許可。このアクセス許可は、それらのファイルに設定される ACL です。

関連項目

リスト マネージャ : 動的データベース オブジェクト

リスト マネージャのストアド プロシージャ


ダイレクト メーラーのサービス アカウント

ダイレクト メーラー サービスに割り当てるアカウントには、ダイレクト メーラー データベースへのアクセス許可が必要です。

ダイレクト メーラー サービスを実行するには、次のセキュリティ アクセス許可が必要です。

  • ダイレクト メーラー サービスを開始するためのアクセス許可。これは Windows ドメインのアクセス許可です。
  • リスト マネージャ サービスを開始して使用するためのアクセス許可。これは Windows ドメインのアクセス許可です。

Windows 認証を使うように Commerce Server を構成する場合、ダイレクト メーラーのサービス アカウントには、次のアクセス許可が必要です。

テーブル名 | ダイレクト メーラーのサービス アカウント
ダイレクト メーラー データベース | db_owner ロール
キャンペーン データベース | db_owner ロール
dml_attachments
 参照
挿入
更新
dml_job_errors
 参照
挿入
更新
dml_jobs
 参照
挿入
更新
ML_<GUID>
 参照
挿入
更新

さらに、ダイレクト メーラー サービスには、次のファイルに対する書き込みアクセス許可 (ACL) が付与されている必要があります。

dml_drop
Winnt\system32\logfiles folders

これらのファイルに対する書き込みアクセス許可が必要なのは、ダイレクト メーラーによるログ ファイルの作成、書き込み、およびメール送信を可能にするためです。メール送信には、配信先に対するアクセス許可が必要です。

関連項目

ダイレクト メーラー データベースにセキュリティを設定する

キャンペーン データベースにセキュリティを設定する

ダイレクト メーラーと Windows 認証を使う


ビジネス デスクのセキュリティを設定する

Commerce Server ビジネス デスクのセキュリティを設定するには、いくつかの操作を行う必要があります。

ビジネス デスク ユーザーに対しては、インターネット インフォメーション サービス (IIS) の基本認証を構成します。ビジネス デスク ユーザーがレポートを実行する場合、分析サーバー (OLAP) データベースからデータが取得されます。ビジネス デスク ユーザーが HTTP 経由で Analysis Services を使用するには、Windows 2000 資格情報を渡す基本認証を使用して認証される必要があります。

Web 上で Windows 2000 資格情報を渡す場合は、HTTPS を使用して、Windows アカウントとパスワードがセキュリティで保護されるようにします。

注

  • ビジネス デスク ユーザーがレポートを実行し、HTTP 経由で Analysis Services にアクセスする場合、ユーザーの有効な Windows 2000 ユーザー ID とパスワードは、ビジネス デスクの HTML 内に格納されます。 詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

ここでは、次のトピックについて説明します。

  • ビジネス デスク セキュリティの概要
  • ビジネス デスク セキュリティの注意事項
  • BDRefresh.asp、RefreshApp.asp、および Opt-Out.asp にセキュリティを設定する
  • ビジネス デスクのセッションにセキュリティを設定する
  • ビジネス デスク モジュールのセキュリティを設定する

関連項目

Windows 認証を使って Commerce Server を配置する

セキュリティに関する重要事項

セキュリティに関するヒント集


ビジネス デスク セキュリティの概要

既定のビジネス デスク ユーザー アカウントは、ビジネス デスク Administrators グループだけです。ビジネス デスク アプリケーションをインストールした直後は、このグループ アカウントはインストール先の Web サーバーの Administrators グループに属するユーザーで構成されています。

ビジネス デスク Administrators グループのメンバにはすべてのアクセス許可があり、他のユーザーを追加することができます。

ビジネス マネージャがビジネス デスク アプリケーションにセキュリティを設定するには、次の操作を行うことをお勧めします。詳細については、「Windows 認証を使って Commerce Server を配置する」を参照してください。

  1. Windows のグループ アカウントを作成し、適切なグループ アカウントにビジネス デスクのユーザーを追加します。最低 3 つのグループ アカウントを作成することをお勧めします (ここではアカウント名の例を示します)。
    • BDGroup アカウント すべてのビジネス デスク ユーザーを割り当てます。
    • ReportAdvanced アカウント 動的レポートを保存、変更および削除するユーザを割り当てます。
    • SegmentViewer アカウント セグメント ユーザ モジュールを使うユーザを割り当てます。
  2. Commerce Server データベース上で Commerce Server のセキュリティ スクリプトを実行し、ビジネス デスク ユーザーに適切な許可を持つデータベース ロールを作成します。
  3. 適切なデータベース ロールにビジネス デスクのグループ アカウントを割り当てます。
  4. アクセス許可モジュールにビジネス デスクのグループ アカウントを追加し、ドメインのメンバにビジネス デスクを使用する許可を付与します。

    ビジネス デスクのアクセス許可モジュールを使うと、ビジネス デスクのユーザー インターフェイスにセキュリティを設定できます。Web サーバーや Commerce Server データベースにセキュリティを設定することはできません。

  5. ビジネス デスク クライアントをインストールしている各コンピュータで、統合 Windows 認証を有効にします。
  6. ファイアウォールの反対側からレポートを実行する必要があるビジネス デスク ユーザーは、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

上記の操作に加え、BDRefresh.asp、RefreshApp.asp、および Opt-Out.asp にセキュリティを設定する必要があります。

関連項目

BDRefresh.asp、RefreshApp.asp、および Opt-Out.asp にセキュリティを設定する


ビジネス デスク セキュリティの注意事項

ビジネス デスクにセキュリティを設定する場合は、次の点に留意してください。

  • サイトをパックする前に、ビジネス デスク アクセス許可を持つ Windows アカウントを確認します。

    Commerce Server サイト パッケージャを使用してサイトをアンパックするときに、ビジネス デスク アクセス許可を持つ Windows アカウントもアンパックされます。

    たとえば、Commerce Server がある 1 台のコンピュータにインストールされていて、ローカルのグループおよびアカウントが追加されているとします。 このサイトをパックし、次に、そのサイトを別のコンピュータでアンパックすると、アカウントもアンパックされます。ビジネス デスクを開いた時点で、アクセス許可が有効になります。

  • BizDataServices.asp ファイルの DEBUG_MODE フラグが有効になった場合に、ビジネス デスク ユーザーがプロファイル定義の変更を保存するには、[Profiles] フォルダにあるログ ファイルへのアクセス許可が必要です。このフラグは、既定では無効になっています。
  • 既定では、BizDataManager.dll ファイルの ACL は Everyone オプションに設定されます。これは Commerce Server Manager のセキュリティに影響を与えません。Administrators グループのユーザーのみ Commerce Server Manager を実行できます。
  • Microsoft Visual Studio .NET でビジネス デスクを使用する場合、ローカル コンピュータ上にある XML カタログ ファイルをインポートするときは、次のいずれかの操作を行う必要があります。
    • ローカル ファイルをサーバーに移動し、サーバー上で XML ファイルをインポートします。
    • Visual Studio .NET とは別にビジネス デスクを実行し、XML カタログ ファイルをインポートします。
    • Internet Explorer のセキュリティ設定を変更し、安全ではないコンポーネントの実行に対して、有効にするかダイアログを表示するようにしたうえで、ローカル コンピュータから XML カタログ ファイルをインポートします。この方法はコンピュータのセキュリティを損なうので、お勧めできません。
  • BizDeskSecurity オブジェクトは、セキュリティで保護されていない方法で、Commerce Server データベースに対して読み取りおよび書き込みを行います。これは、カタログなど、その他のオブジェクトについても同様です。スクリプトのアップロードを含む、サーバーへのアクセスについては、システム管理者が独自に管理する必要があります。
  • BizDeskSecurity オブジェクトは、2 台以上の異なるコンピュータ上にある組み込み済みのローカル グループを区別しません。これは、ユーザーが作成したローカル グループには適用されません。
    • たとえば、次のように Commerce Server が 2 台のコンピュータにインストールされているとします。
    • コンピュータ A では、完全インストールが実行され、ソリューション サイトがアンパックされています。
    • コンピュータ B では、Web サーバー インストールが実行され、ビジネス デスク アプリケーションがアンパックされています。

    両方のコンピュータ上のローカル Guest グループに domain\account1 を追加します。

    コンピュータ A では、ビジネス デスクのアクセス許可モジュールを使って、Windows のアカウント一覧に guests ローカル グループを追加し、このグループにプロファイル モジュールへのアクセス許可を付与します。

    コンピュータ B では、domain\account1 としてログオンし、ビジネス デスクを開いた時点で、プロファイル モジュールへのアクセス許可が有効になります。


BDRefresh.asp、RefreshApp.asp、および Opt-Out.asp にセキュリティを設定する

IP アドレスのアクセス制限を使って Bdrefresh.asp および RefreshApp.asp に対するアクセス許可を制限し、認証されていないユーザーがこれらのスクリプトを実行できないようにします。既定では、Bdrefresh.asp および Refreshapp.asp は、ビジネス デスクのユーザーが Web サイトに対する変更を発行できるように匿名アクセスで設定されています。これらのファイルにセキュリティを設定するためには、インターネット インフォメーション サービス (IIS) 5.0 で IP アドレス アクセス制限を使うことにより、特定のビジネス デスク ユーザーにアクセス許可を与えます。

Bdrefresh.asp スクリプトは、ビジネス デスクのキャッシュを消去します。RefreshApp.asp スクリプトは、プロファイルのキャッシュを消去します。このいずれかのキャッシュが繰り返し消去されると、ユーザーへのサービス拒否が発生することがあります。これらのファイルは、アンパックしたソリューション サイトのルート フォルダに置かれています。

Commerce Server ソリューション サイトには、他にも同じようなファイルが含まれています。詳細については、「Commerce Server Solution Sites」を参照してください。

IP アドレスのアクセス制限を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. インターネット インフォメーション サービスで Bdrefresh.asp を表示します。
  3. [Bdrefresh.asp] を右クリックし、[プロパティ] をクリックします。
  4. [ファイル セキュリティ] タブの [IP アドレスとドメイン名の制限] セクションで [編集] をクリックします。
  5. [IP アドレスとドメイン名の制限] ダイアログ ボックスの [追加] をクリックし、Bdresfresh.asp へのアクセス許可を与えるコンピュータを追加します。次に [拒否する] をクリックし、[OK] をクリックします。
  6. Refreshapp.asp に移動し、[Refreshapp.asp] を右クリックして、[プロパティ] をクリックします。
  7. 手順 4 と手順 5 を繰り返して Refreshapp.asp にセキュリティを設定します。


ビジネス デスクのセッションにセキュリティを設定する

Commerce Server サイト パッケージャが Commerce Server ビジネス デスク アプリケーションをアンパックするときに、アプリケーションは Windows 統合セキュリティを使うように構成されます。これによってクライアント認証の安全は確保されますが、ビジネス デスクのセッション自体はデータをクリア テキストで送信します。

ビジネス デスクのセッションにセキュリティを設定するには、インターネット ファイアウォールの内側にあるビジネス デスク クライアントだけを許可するようにします。ビジネス デスク のセッションは、ファイアウォールの内側でクリアテキストのまま、ファイアウォール内のユーザーからスニッフィングを受けますが、これはあまり発生しないシナリオです。

セキュリティをさらに強化するには、ビジネス デスクの接続に Secure Sockets Layer (SSL) を使います。

関連項目

Commerce Server サイトで SSL を有効にする

HTTPS 経由で分析サーバーにアクセスする


ビジネス デスク モジュールのセキュリティを設定する

ここでは、ビジネス デスクASP ファイルにアクセス制御エントリ (ACE) を設定することによって、インストールされている Commerce Server 2000 のビジネス デスク モジュールにセキュリティを設定する方法について説明します。この操作には、インストールされている Commerce Server 2000 との下位互換性が必要です。

このセキュリティ方式を、インストール されている Commerce Server 2002 に使わないでください。ビジネス デスク ユーザーに、特定のビジネス デスク機能へのアクセスを許可および拒否するには、ビジネス デスクのアクセス許可モジュールを使います。ビジネス デスク アクセス許可モジュールの使用方法については、「ビジネス デスク セキュリティ」を参照してください。

各 Commerce Server 2000 ビジネス デスク モジュールには、そのモジュールがビジネス デスクのナビゲーション ペインに追加される前に ACE と照合される、メインの ASP ファイルがあります。ビジネス デスクを実行しているログイン ユーザーが、モジュールのメインの ASP ファイルに対する読み取りのアクセス許可を持っていない場合、そのモジュールはユーザーのナビゲーション ペインに表示されません。

注

  • 個人ユーザーおよび Authenticated Users グループが Commerce Server ビジネス デスク モジュールに対するアクセス許可を持ち、その個人ユーザーのアクセス許可を取り消す場合は、ユーザーが使用できるモジュールがナビゲーション バーで更新されるように、クライアント コンピュータを再起動してナビゲーション バーを再描画します。
  • Administrator アカウントの ACE を含める場合は、Everyone グループにもアクセス許可を与える必要があります。アクセス許可の設定自体は重要ではありませんが、ユーザーおよびグループの一覧に Everyone グループが存在していなければなりません。Everyone グループがビジネス デスク モジュールに対するアクセス許可を持たないと、管理者はそのモジュールにアクセスできません。
  • プロファイルの発行、キャンペーンの発行、または注文コードの発行のいずれかのモジュールにセキュリティを設定すると、既定では、これらすべてのモジュールにセキュリティが設定されます。

Commerce Server 2000 ビジネス デスク モジュールへのアクセスを制限するには

  1. Windows エクスプローラで、Commerce Server 2000 ビジネス デスク アプリケーションのファイルが格納されているフォルダを開きます。

    このフォルダが IIS Web サイトのホストになっています。既定では、このフォルダは Inetpub\wwwroot フォルダに置かれます。

  2. アクセスを制限するモジュールが格納されているフォルダをクリックします。
  3. 次の表の情報を使って、アクセスを制限するモジュールに対応する各ファイルの名前を右クリックします。次に、[プロパティ] をクリックします。
  4. [セキュリティ] タブをクリックします。
[セキュリティ] タブでは、そのファイルのアクセス制御リスト (ACL) に含まれる ACE を管理できます。

次の表は、各ビジネス デスク モジュールで ACE を設定できるファイルを示します。

アクセスを制限するカテゴリ/モジュール | ACE を設定する ASP ファイル
分析/レポート | Analysis\Analysis_reports.asp
分析/完成したレポート | Analysis\Analysis_report_viewer.asp
分析/セグメント ビューア | Segviewer\Modellist.asp
キャンペーン/キャンペーン マネージャ | Marketing\Cmanager.asp
キャンペーン/リスト マネージャ | Marketing\Listmanager.asp
キャンペーン/キャンペーン式 | Marketing\Targetexpr.asp
キャンペーン/対象グループ | Marketing\Target_group.asp
キャンペーン/参照テーブル | Marketing\Reftable.asp
キャンペーン/キャンペーンの発行 | Productionrefresh\refresh.asp
カタログ/カタログ デザイナ | Catalogs\Designer\List_categorydefinitions.asp
カタログ/カタログ エディタ | Catalogs\Editor\List_catalogs.asp
カタログ/カタログ セット | Catalogsets\Catalogsets_list.asp
注文/バスケット マネージャ | Orders\Basket_list.asp
注文/データ コード | Application\Datacodes_list.asp
注文/注文状況 | Orders\Orderstatus_list.asp
注文/注文コードの発行 | Productionrefresh\refresh.asp
注文/送付方法 | Shipping\Shipping_list.asp
注文/税率 | Tax\Regionaltax.asp
プロファイル/ユーザー | Users\Registered.asp
プロファイル/組織 | Organizations\Orgs.asp
プロファイル/プロファイル定義デザイナ | Profiles\Profileselector.asp
プロファイル/サイト用語エディタ | Profiles\Profileeditor.asp
プロファイル/プロファイルの発行 | Profiles\Refreshprofilesvcall.asp
プロファイル/プロファイル エディタ | Profiles\Genericprofileeditor.asp


データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なアクセス許可を割り当てる必要があります。

ここでは、SQL Server データベースに対して Windows 認証を使うようにサイトを構成する場合に、データベースにセキュリティを設定する方法について説明します。

ここでは、次のトピックについて説明します。

  • データベースにセキュリティを設定するスクリプト
  • SQL Server データベース ロールを割り当てる
  • 管理データベースにセキュリティを設定する
  • 実行時の Commerce Server データベースにセキュリティを設定する
  • ダイレクト メーラー データベースにセキュリティを設定する
  • データ ウェアハウスにセキュリティを設定する


データベースにセキュリティを設定するスクリプト

Windows 認証を使うようにサイトを構成する場合は、実行時のユーザー用のアカウントとビジネス デスクのユーザー用のアカウントを作成し、これらのアカウントを適切なデータベース ロールに割り当てる必要があります。

Commerce Server では、データベース ロールを作成する複数のスクリプトが用意されています。また、ビジネス デスクのユーザーと実行時のユーザーに適切なデータベース アクセス許可が割り当てられます。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、次の 2 つのロールを作成します。

  • <データベース>ReaderRole サイトを訪問する実行時のユーザーをこのロールに割り当てます。
  • <データベース>WriterRole サイトを更新するビジネス デスクのユーザーをこのロールに割り当てます。

これらのスクリプトを実行し、適切なロールを作成したら、これらのロールに、ビジネス デスクのグループ アカウントと実行時の匿名アカウント (ドメイン アカウント) を割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

次の表は、Commerce Server のセキュリティ スクリプトと、各スクリプトの対象となるデータベースの一覧です。

スクリプト | 対象となるデータベース
BDReaderRole と BDWriterRole | ビジネス デスク アクセス許可
CampaignReaderRole と CampaignWriterRole | キャンペーン
CatalogSecurityRoles | カタログ
ProfileReaderRole と ProfileWriterRole | プロファイル
TransactionReaderRole と TransactionWriterRole | トランザクション
TransactionConfigReaderRole と TransactionConfigWriterRole | トランザクション構成

実行時の Commerce Server データベース テーブルは、1 つのデータベースに保持することも、各リソース固有のデータベースに保持することもできます。

これらのスクリプトは、SQL Server に対して機能し、実行時の Commerce Server データベースと管理データベースに格納されているデータを処理するように設計されています。Microsoft Active Directory や Oracle データベースには利用できません。

関連項目

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト

Windows 認証を使って Commerce Server を配置する

管理データベースにセキュリティを設定する

ダイレクト メーラー データベースにセキュリティを設定する


SQL Server データベース ロールを割り当てる

Commerce Server ビジネス デスクのユーザーおよび実行時のユーザーが Commerce Server の商品カタログなどのリソースにアクセスするには、そのリソースに対応する SQL Server データベースへの十分なアクセス許可が必要です。たとえば、送付方法に変更を加えるビジネス デスクのユーザーには、トランザクション構成データベースへのアクセス許可が必要です。

Windows 認証を使うようにサイトを構成する場合は、次のユーザーおよびサービス用のドメイン アカウントを作成し、ドメイン アカウントごとに SQL ログイン アカウントを作成することをお勧めします。

アカウント ユーザー | サンプルのアカウント名 | 説明
実行時のユーザー | Anonymous | Web サイトを訪問する匿名ユーザー用の "ユーザー" アカウント。
ビジネス デスクのユーザー | BDGroup | ビジネス デスクのすべてのユーザー用の "グループ" アカウント。デザイン時のユーザーとも呼ばれます。
詳細レポート グループ | ReportAdvanced | 動的レポートの保存、レポートの変更、およびレポートの削除を行う必要があるビジネス デスクのユーザー用の "グループ" アカウント。
DTS タスク インポート グループ | DTSImport | DTS タスクを実行してデータ ウェアハウスへのインポートおよび拡張を行うシステム管理者用の "グループ" アカウント。
ダイレクト メーラー サービス | CSDM | ダイレクト メーラー サービス用の "ユーザー" アカウント。
リスト マネージャ サービス | CSLM | リスト マネージャ サービス用の "ユーザー" アカウント。
Config COM+ アプリケーション | CSCOMPlus | Config COM+ アプリケーション用の "ユーザー" アカウント。

これらのドメイン アカウントの作成方法については、「Windows 認証を使って Commerce Server を配置する」を参照してください。

ドメイン アカウントを作成したら、ビジネス デスクのユーザーと実行時のユーザーに必要なデータベース ロールを作成する Commerce Server のセキュリティ スクリプトを実行します。操作方法については、「データベースにセキュリティを設定するスクリプト」を参照してください。

ここでは、ドメイン アカウントの作成と Commerce Server のセキュリティ スクリプトの実行が完了していることを前提としています。その次の手順である SQL ログイン アカウントの作成と、データベース ロールへのドメイン アカウントの割り当てについて説明します。

SQL ログイン アカウントを作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、ノードを展開して Microsoft SQL Servers\SQL Server グループ\<コンピュータ名>\セキュリティを開きます。
  3. [ログイン] を右クリックし、[新規ログイン] をクリックします。
  4. [SQL Server ログインのプロパティ - 新規ログイン] 画面の [全般] タブで、次の操作を行います。
    項目 | 操作
    [名前] | ドメイン ユーザー アカウントの名前を入力します (たとえば、実行時のユーザー用のサンプルのユーザー アカウントである「Anonymous」と入力します)。
    [Windows 認証] | このオプションが選択されていることを確認します。
    [ドメイン] | ボックスの一覧で、アカウントのドメインを選択します。
    [アクセス許可] | セキュリティで保護されたアクセスを行うために、このオプションが選択されていることを確認します。
    [データベース] | ボックスの一覧で、このログイン用のデータベースとして [master] をクリックします。
    [言語] | ボックスの一覧で、このログイン用の既定の言語を選択します。
  5. [OK] をクリックします。
  6. これらの手順を繰り返し、ビジネス デスクのユーザー (グループ アカウント)、リスト マネージャ サービス、ダイレクト メーラー サービス、および Config COM+ アプリケーションの各ドメイン アカウント用の SQL Server ログイン アカウントを作成します。

ログインに SQL Server データベース ロールを割り当てるには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で、[セキュリティ] を展開し、[ログイン] をクリックします。
  3. SQL ログイン アカウントを右クリックし、[プロパティ] をクリックします。
  4. [SQL Server ログインのプロパティ] ダイアログ ボックスの [データベース アクセス] タブをクリックします。
  5. 一番上のボックスでデータベースを選択し、一番下のボックスでアカウント用のロールを指定します。
  6. これらの手順を繰り返し、必要なアカウントをすべて、必要となるデータベース ロールへのメンバシップに割り当てます。最後に、[OK] をクリックします。

注

  • SQL Server 認証を使うと、リソースの接続文字列には SQL のログイン名とパスワードが含まれます。接続文字列に SQL Server 認証が使われている場合は、接続文字列が使われるたびに、接続文字列内のログイン名が使われます。このため、異なるアクセス許可が設定されている別のログインを使ってデータベースに接続することはできません。

関連項目

データベースにセキュリティを設定するスクリプト

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト

Windows 認証を使って Commerce Server を配置する

管理データベースにセキュリティを設定する

ダイレクト メーラー データベースにセキュリティを設定する


管理データベースにセキュリティを設定する

サイトの管理データベースのホストとなるサーバーにセキュリティを設定することは重要です。Commerce Server のセットアップ プログラムを実行すると、そのコンピュータのユーザーに、管理データベースに対するフル コントロールのアクセス許可が与えられます。

重要

  • 各管理データベース テーブルに対する適切なアクセス許可を匿名アカウントに付与するには、ここで説明するように、各管理テーブルにセキュリティを設定することをお勧めします。

管理データベース ログインの SQL パスワードは Windows レジストリで暗号化されていますが、ユーザーは SiteConfigReadOnly、SiteConfig、または GlobalConfig のいずれかのプログラミング オブジェクトにアクセスするスクリプトを使って、パスワードにアクセスすることが可能です。セットアップを実行した後で、ユーザーがコンピュータにアクセスしたり、コンピュータでスクリプトを実行したりできないようにする必要があります。

SiteConfig と GlobalConfig は、セキュリティ ロールを持つ COM+ コンポーネントとして登録されています。ただし、SiteConfigReadOnly はセキュリティ ロールを持たないため、一般ユーザーによる利用が可能です。

SiteConfig オブジェクトおよび GlobalConfig オブジェクトは、これらのオブジェクト クラスのレジストリ キーのアクセス制御リスト (ACL) を変更することで、使用を制限できます。これらのオブジェクトへのアクセスを制限するには、Windows レジストリ エディタを使ってオブジェクトのアクセス許可を変更します。操作方法については、「管理用オブジェクトに対するアクセス許可を変更する」を参照してください。

ここでは、次のトピックについて説明します。

  • SiteConfigReadOnly オブジェクトにセキュリティを設定する
  • 管理用オブジェクトに対するアクセス許可を変更する
  • MSCS_Admin テーブルにセキュリティを設定する
  • ExtendedProps テーブルにセキュリティを設定する
  • Pupdbscripts テーブルにセキュリティを設定する
  • ResourceProps テーブルにセキュリティを設定する
  • Resources テーブルにセキュリティを設定する
  • SiteResources テーブルにセキュリティを設定する
  • Sites テーブルにセキュリティを設定する


SiteConfigReadOnly オブジェクトにセキュリティを設定する

Web サイトは SiteConfigReadOnly オブジェクトを使って、実行時のリソースへの接続文字列を管理データベースから取得します。SiteConfigReadOnly オブジェクトは、Commerce Server アプリケーションにアクセスするすべてのユーザー アカウントからアクセスできるようにしなければなりません。匿名ユーザーが、実行時に Commerce Server データベースにアクセスするには、管理データベースに対する読み取りのアクセス許可が必要です。

Windows 統合セキュリティを使うと、SiteConfigReadOnly オブジェクトに返されるデータはセキュリティで保護されます。このデータには、ユーザー名とパスワードが格納されないためです。

重要

  • SQL 認証 (この構成はお勧めしません) を使っている場合、または Web サーバーにセキュリティが設定されていない場合は、攻撃者がスクリプトをアップロードおよび実行することができ、すべてのデータベースへの接続文字列情報を取得し、ファイアウォールを通り抜ける可能性があります。

匿名アクセスを許可するには、匿名アカウントから SiteConfigReadOnly オブジェクトを利用できるようにする必要があります。匿名アカウントの名前は IUSR_<コンピュータ名> です。ASP.NET サイトを使っている場合、匿名アカウントは ASPNET です。SiteConfigReadOnly オブジェクトのキーは D1AA04A4-B00D-4D30-88AA-E3070DAE8040 です。

また、COM+ アプリケーションを使って SiteConfigReadOnly オブジェクトをロック ダウンすることで、このオブジェクトにセキュリティを設定することをお勧めします。

COM+ アプリケーションを使って SiteConfigReadOnly オブジェクトにセキュリティを設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. [コンポーネント サービス] を展開し、[マイ コンピュータ] を展開します。次に、[COM+ アプリケーション] を展開します。
  3. [Commerce Server Config] を右クリックし、[新規作成] をクリックします。次に、[コンポーネント] をクリックします。

    COM コンポーネント インストール ウィザードが起動します。

  4. [次へ] をクリックします。
  5. [既に登録されているコンポーネントをインポートする] をクリックします。
  6. [インポートするコンポーネントの選択] ダイアログ ボックスで [CS_MSCSCfg.SiteConfigReadOnly] を選択し、[次へ] をクリックします。
  7. [完了] をクリックします。
  8. [コンポーネント] を展開し、[CS_MSCSCfg.SiteConfigReadOnly] を右クリックします。次に、[プロパティ] をクリックします。
  9. [セキュリティ] タブで [Administrators] と [Web Users] を選択し、[OK] をクリックします。


管理用オブジェクトに対するアクセス許可を変更する

SiteConfig オブジェクトおよび GlobalConfig オブジェクトは、これらのオブジェクト クラスのレジストリ キーのアクセス制御リスト (ACL) を変更することで、使用を制限できます。これらのオブジェクトへのアクセスを制限するには、Windows レジストリ エディタを使ってオブジェクトのアクセス許可を変更します。

管理用オブジェクトに対するアクセス許可を変更するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「regedt32」と入力します。
  3. [HKEY_LOCAL_MACHINE] をクリックします。
  4. [表示] メニューの [キーの検索] をクリックします。
  5. [検索] ダイアログ ボックスの [検索する文字列] ボックスに、次の表に示す該当するキーを入力します。
    キーを検索するオブジェクト | 入力するキー
    SiteConfig | 31B031AE-8877-4973-BC58-FEE0EF8CE07B
    GlobalConfig | CB438FDD-81EC-45FF-9DBB-9F9FBBF717AF
  6. [単語単位で探す] チェック ボックスをオフにして、[次を検索] をクリックします。

    キーの一覧が表示されます。指定したキーが、細い黒の枠線で囲まれて選択されます。選択されたキーを表示するために、一覧を下方向にスクロールしなければならないことがあります。

  7. 検索したキーのノードをクリックします。
  8. [セキュリティ] メニューの [アクセス許可] をクリックします。
  9. [アクセス許可] ダイアログ ボックスで、必要に応じて適切なアクセス許可を設定します。読み取りのアクセス許可は、管理データベースを変更する必要がないアカウントだけに限定します。


MSCS_Admin テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある MSCS_Admin テーブルのアクセス許可の一覧です。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが Component Object Model (COM) に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
テーブル名 | IUSR または ASPNET | IWAM | サービス アカウント | COM+ アカウント | システム管理者 | ビジネス マネージャ
ExtendedProps | アクセスなし | アクセスなし | アクセスなし | アクセスなし | 参照 挿入 更新 削除 | アクセスなし
pupdbscripts | アクセスなし | アクセスなし | アクセスなし | アクセスなし | 参照 挿入 更新 削除 | アクセスなし
ResourceProps | 参照 | 参照 | 参照 | 参照 | 参照 挿入 更新 削除 | 参照 更新
Resources | 参照 | 参照 | 参照 | 参照 | 参照 挿入 更新 削除 | 参照
SiteResources | 参照 | 参照 | 参照 | 参照 | 参照 挿入 更新 削除 | 参照
Sites | 参照 | 参照 | 参照 | 参照 | 参照 挿入 更新 削除 | 参照


ExtendedProps テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある ExtendedProps テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
s_ResourceType
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
s_PropertyName
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
f_IsConnStr
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
f_IsHidden
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
f_IsSimpleList
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
s_Description
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
i_Vartype
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
s_Value
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
s_DisplayName
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし


Pupdbscripts テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある Pupdbscripts テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
i_SiteID
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
i_ResourceID
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
u_scriptname
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
txt_script
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし


ResourceProps テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある ResourceProps テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
i_ResourceID
 参照 参照 参照 参照 参照
更新 		参照
s_PropertyName
 参照 参照 参照 参照 参照
更新 		参照
f_IsConnStr
 参照 参照 参照 参照 参照
更新 		参照
f_IsHidden
 参照 参照 参照 参照 参照
更新 		参照
f_IsSimpleList
 参照 参照 参照 参照 参照
更新 		参照
s_Description
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし
i_Vartype
 参照 参照 参照 参照 参照
更新 		参照
s_Value
 参照 参照 参照 参照 参照
更新 		参照
s_DisplayName
 アクセスなし アクセスなし アクセスなし アクセスなし 参照
更新 		アクセスなし


Resources テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある Resources テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
i_ResourceID
 参照 参照 参照 参照 参照
更新 		参照
s_DisplayName
 参照 参照 参照 参照 参照
更新 		参照
s_Description
 参照 参照 参照 参照 参照
更新 		参照
s_Type
 参照 参照 参照 参照 参照
更新 		参照
f_IsGlobal
 参照 参照 参照 参照 参照
更新 		参照
f_ResourceFlags
 参照 参照 参照 参照 参照
更新 		参照
s_ProgIDSnapIn
 参照 参照 参照 参照 参照
更新 		参照
s_Computer
 参照 参照 参照 参照 参照
更新 		参照
i_Status
 参照 参照 参照 参照 参照
更新 		参照
f_PupFlags
 参照 参照 参照 参照 参照
更新 		参照
s_ProgIDPUP
 参照 参照 参照 参照 参照
更新 		参照
s_PupParam1
 参照 参照 参照 参照 参照
更新 		参照
s_PupParam2
 参照 参照 参照 参照 参照
更新 		参照
s_PupParam3
 参照 参照 参照 参照 参照
更新 		参照


SiteResources テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある SiteResources テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
i_SiteID
 参照 参照 参照 参照 参照
更新 		参照
i_ResourceID
 参照 参照 参照 参照 参照
更新 		参照


Sites テーブルにセキュリティを設定する

次の表は、指定された各アカウントに与える必要がある Sites テーブルのアクセス許可の一覧です。このテーブルは、MSCS_Admin データベースに存在します。アクセス許可を設定するには、SQL Server Enterprise Manager を使います。

注

  • サイトが COM に基づいている場合、IIS の既定の匿名アカウントは IUSR_<コンピュータ名> です。サイトが ASP.NET に基づいている場合、既定の匿名アカウントは ASPNET です。
列 IUSR または ASPNET IWAM サービス アカウント COM+ ID アカウント システム管理者 ビジネス マネージャ
i_SiteID
 参照 参照 参照 参照 参照
更新 		参照
s_Name
 参照 参照 参照 参照 参照
更新 		参照
s_Description
 参照 参照 参照 参照 参照
更新 		参照
i_Status
 参照 参照 参照 参照 参照
更新 		参照
d_DateCreated
 参照 参照 参照 参照 参照
更新 		参照
d_DateModified
 参照 参照 参照 参照 参照
更新 		参照


実行時の Commerce Server データベースにセキュリティを設定する

Commerce Server データベースのテーブルやストアド プロシージャなどのオブジェクトにアクセスする必要があるのは、次の 2 種類のユーザー アカウントです。

  • デザイン時のユーザー アカウント ビジネス デスクのユーザー用のアカウントです。
  • 実行時のユーザー アカウント Web サイトを訪問するユーザー用のアカウントです。

ここでは、デザイン時のユーザーと実行時のユーザーに、データベースに対する適切なアクセス許可を与えるための詳細な情報を示します。

実行時の Commerce Server データベースに対して、Commerce Server DTS タスクが必要とするアクセス許可については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

Commerce Server サービス (リスト マネージャ、ダイレクト メーラー) が必要とするアクセス許可については、「サービス アカウントにセキュリティを設定する」を参照してください。

ここでは、次のトピックについて説明します。

  • ビジネス デスク アクセス許可データベースにセキュリティを設定する
  • キャンペーン データベースにセキュリティを設定する
  • 商品カタログ データベースにセキュリティを設定する
  • プロファイル データベースにセキュリティを設定する
  • トランザクション データベースにセキュリティを設定する
  • トランザクション構成データベースにセキュリティを設定する


ビジネス デスク アクセス許可データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なアクセス許可を割り当てる必要があります。

ビジネス デスク アクセス許可データベースにセキュリティを設定できるように、Commerce Server には、BDReaderRole.sql と BDWriterRole.sql という 2 つのセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、ビジネス デスク アクセス許可データベースに対する次の 2 つのロールを作成し、テーブルおよびストアド プロシージャに対する必要なアクセス許可を割り当てます。

  • BDReaderRole 実行時のユーザーをこのロールに割り当てます。
  • BDWriterRole ビジネス デスクのユーザーをこのロールに割り当てます。

BDReaderRole と BDWriterRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、ビジネス デスク アクセス許可データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、BDReaderRole を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、選択したデータベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、BDWriterRole スクリプトを実行します。
  8. ロールを作成したら、実行時の匿名ユーザー アカウントとビジネス デスクのグループ アカウントを適切なロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

スクリプトはロールを作成し、次のアクセス許可テーブルおよびストアド プロシージャに対するアクセス許可を付与します。

テーブル BDReaderRole
(実行時のユーザー) 		BDWriterRole
(ビジネス デスクのユーザー)
BDSecurityDefinition
 アクセスなし 参照
更新
挿入
削除
BDSecurityIdentifiers
 アクセスなし 参照
更新
挿入
削除

アクセス許可のストアド プロシージャ

ビジネス デスクのセキュリティ スクリプトは、次のストアド プロシージャに対するアクセス許可を付与します。

ストアド プロシージャ BDReaderRole
(実行時のユーザー) 		BDWriterRole
(ビジネス デスクのユーザー)
sp_AddAccount
 アクセスなし あり
sp_AddSIDsToTempTable
 アクセスなし あり
sp_GetAccounts
 アクセスなし あり
sp_GetAccountsForRight
 アクセスなし あり
sp_GetPermissions
 アクセスなし あり
sp_GetUID
 アクセスなし あり
sp_RemoveAccount
 アクセスなし あり
sp_RemoveSecurityDefinitions
 アクセスなし あり
sp_SetPermissions
 アクセスなし あり


キャンペーン データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なレベルのアクセス許可を割り当てる必要があります。

キャンペーン データベースにセキュリティを設定できるように、Commerce Server には、CampaignReaderRole.sql と CampaignWriterRole.sql という 2 つのセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、キャンペーン データベースに対する次の 2 つのロールを作成し、テーブルおよびストアド プロシージャに対する必要なアクセス許可を割り当てます。

  • CampaignReaderRole 実行時のユーザーをこのロールに割り当てます。
  • CampaignWriterRole デザイン時のユーザーをこのロールに割り当てます。

重要

  • ビジネス デスクのユーザーについては、キャンペーン データベースに対する CampaignWriterRole および db_datareader ロールに割り当てる必要があります。
  • ビジネス デスクのユーザーがキャンペーン項目を削除できるようにするには、ダイレクト メーラー データベースに対するパブリック ロールにビジネス デスクのユーザーを割り当てる必要があります。

CampaignReaderRole と CampaignWriterRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、キャンペーン データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、CampaignReaderRole を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、選択したデータベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、CampaignWriterRole スクリプトを実行します。
  8. ロールを作成したら、実行時の匿名ユーザー アカウントとビジネス デスクのグループ アカウントを適切なロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

スクリプトはロールを作成し、次のキャンペーン テーブルおよびストアド プロシージャに対するアクセス許可を付与します。

テーブル名 CampaignReaderRole
(実行時のユーザー) 		CampaignWriterRole
(ビジネス デスクのユーザー)
Ad_item
 参照 参照
更新
挿入
Campaign
 参照 参照
更新
挿入
Campaign_item
 参照 参照
更新
挿入
Campaign_item_types
 参照 参照
更新
挿入
Campaigns_version
 参照 参照
Creative
 参照 参照
更新
挿入
Creative_property
 参照 参照
更新
挿入
Creative_property_value
 参照 参照
更新
挿入
削除
Creative_size
 参照 参照
更新
挿入
削除
Creative_type
 参照 参照
Creative_type_xref
 参照 参照
Customer
 参照 参照
更新
挿入
Dm_item
 アクセスなし 参照
更新
挿入
削除
Event_type
 参照 参照
Industry_code
 参照 参照
更新
挿入
削除
Order_discount
 参照 参照
更新
挿入
Order_discount_expression
 参照 参照
更新
挿入
削除
Order_discount_misc
 参照 参照
更新
挿入
削除
Page_group
 参照 参照
更新
挿入
削除
Page_group_xref
 参照 参照
更新
挿入
削除
Performance_total
 参照
更新
挿入 		参照
Target
 参照 参照
更新
挿入
削除
Target_group
 参照 参照
更新
挿入
削除
Target_group_xref
 参照 参照
更新
挿入
削除
Virtual_directory
 参照
更新
挿入 		参照
削除

キャンペーンのストアド プロシージャ

キャンペーンのセキュリティ スクリプトは、次のストアド プロシージャに対するアクセス許可を付与します。

キャンペーンのストアド プロシージャ CampaignReaderRole
(実行時のユーザー) 		CampaignWriterRole
(ビジネス デスクのユーザー)
sp_camp_item_archive
 なし あり
sp_clean_archived_campaigns
 なし あり
sp_clean_delete_campaign
 なし あり
sp_clean_delete_campitem
 なし あり
sp_clean_delete_customer
 なし あり
sp_cs_campitem_add
 なし あり
sp_cs_campitem_delete
 なし あり
sp_cs_campitem_update
 なし あり
sp_cs_mail_add
 なし あり
sp_cs_mail_delete
 なし あり
sp_cs_mail_schedid
 なし あり
sp_cs_mail_update
 なし あり
sp_DeleteCampaign
 なし あり
sp_DeleteCampaignItem
 なし あり
sp_DeleteCustomer
 なし あり
sp_dm_item_delete
 なし あり
sp_dm_item_edit
 なし あり
sp_dm_item_new
 なし あり
sp_GetCampItemGUID
 なし あり
sp_InsertAdItem
 なし あり
sp_InsertCampaign
 なし あり
sp_InsertCampaignItem
 なし あり
sp_InsertCPValue
 なし あり
sp_InsertCreative
 なし あり
sp_InsertCustomer
 なし あり
sp_InsertDiscount
 なし あり
sp_InsertDiscount2
 なし あり
sp_InsertDiscountMisc
 なし あり
sp_InsertPageGroup
 なし あり
sp_InsertPageGroupMain
 なし あり
sp_InsertTargetGroup
 なし あり
sp_InsertTargetGroupMain
 なし あり
sp_InsertTargetMain
 なし あり
sp_UndeleteCampaign
 なし あり
sp_UndeleteCampaignItem
 なし あり
sp_UndeleteCustomer
 なし あり
sp_update_performance_total
 あり あり
sp_update_vdir
 あり あり
sp_UpdateAdItem
 なし あり
sp_UpdateCampaign
 なし あり
sp_UpdateCampaignItem
 なし あり
sp_UpdateCreative
 なし あり
sp_UpdateCustomer
 なし あり
sp_UpdateDiscount
 なし あり
sp_UpdateDiscount2
 なし あり
sp_UpdateDiscountMisc
 なし あり
sp_UpdateTargetGroupMain
 なし あり
sp_UpdateTargetMain
 なし あり

リスト マネージャ : 動的データベース オブジェクト

リスト マネージャ サービスはサービス アカウントで動作し、リストがインポートされるたびに新しいテーブルを作成します。たとえば、次のようなテーブルが作成されます。

LM_MAILLIST_40FBCA60_ABE8_4392_BB0B_2B02BA95AE03

リスト マネージャ サービスは、最初の起動時に、接続文字列を使って適切なデータベースを見つけ、そのデータベースにリスト マネージャ テーブルが含まれているかどうかを確認します。含まれていない場合、リスト マネージャ サービスは次の 2 つのテーブルを作成します。

lm_master
lm_master_operations

ダイレクト メーラー ジョブが動作し、リスト マネージャ サービスを呼び出すと、リスト マネージャはダイレクト メーラー データベースにもテーブルを作成します。

次の表は、リスト マネージャ、予測 (Commerce Server 2002 Enterprise Edition)、ビジネス デスクのユーザー、および実行時のユーザーに必要なアクセス許可を示しています。

テーブル名 | 実行時のユーザー | ビジネス デスクのユーザー | リスト マネージャのサービス アカウント | 予測のサービス アカウント
キャンペーン データベース セキュリティ要件については、「Campaigns tables」を参照してください。 セキュリティ要件については、「Campaigns tables」を参照してください。 db_owner ロール db_ddladmin
db_datawriter
db_datareader
ダイレクト メーラー データベース | セキュリティ要件については、「ダイレクト メーラー データベースにセキュリティを設定する」を参照してください。 | セキュリティ要件については、「ダイレクト メーラー データベースにセキュリティを設定する」を参照してください。 | db_owner ロール | アクセスなし
lm_master
 なし なし 参照
更新
挿入
削除 		参照
更新
挿入
削除
lm_master_operations

なし
なし
参照

更新

挿入

削除
参照

更新

挿入

削除

LM_MAILLIST_<GUID>

なし
なし
参照

更新

挿入

削除
参照

更新

挿入

削除

リスト マネージャのストアド プロシージャ

ストアド プロシージャ
実行時のユーザー
ビジネス デスクのユーザー
リスト マネージャのサービス アカウント

sp_lm_CheckLMStore

なし
なし
あり

sp_lm_DeleteListAndData

なし
なし
あり

sp_lm_GetSchema

なし
なし
あり

sp_lm_LoadAllLists

なし
なし
あり

sp_lm_LoadAllOperations

なし
なし
あり

sp_lm_LoadListById

なし
なし
あり

sp_lm_LoadListByName

なし
なし
あり

sp_lm_LoadOperationInfo

なし
なし
あり

sp_lm_SaveListDetails

なし
なし
あり

sp_lm_SaveOperationDetails

なし
なし
あり

sp_lm_SetListCreationTime

なし
なし
あり

sp_lm_SetOpCompletionTime

なし
なし
あり

sp_lm_UpdateListRecentOperLid

なし
なし
あり

sp_lm_UpdateListStatus

なし
なし
あり

sp_lm_UpdateOperStatus

なし
なし
あり

これらのテーブルとストアド プロシージャを作成した後で、リスト マネージャ用のアカウントを変更する場合は、新しいアカウントに適切なアクセス許可を付与する必要があります。

関連項目

リスト マネージャのサービス アカウント


商品カタログ データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なレベルのアクセス許可を割り当てる必要があります。

ここでは、ビジネス デスクのユーザーと実行時のユーザーがカタログ データベースにアクセスするために必要なアクセス許可について説明します。

ビジネス デスクのユーザー

ビジネス デスクのユーザーによるカタログの編集 (カタログ定義の編集、カタログの再構築、フルテキスト インデックスの更新、カタログの公開など) を可能にするには、ユーザーを db_owner ロールに割り当てる必要があります。

db_owner ロールに割り当てるビジネス デスクのユーザーが信頼できるかどうかを慎重に検討してください。このロールにビジネス デスクのユーザーを割り当てる場合は、次のセキュリティ リスクを考慮に入れる必要があります。

重要

  • db_owner ロールに割り当てられたビジネス デスクのユーザーが、データベースを削除する可能性があります。このリスクを緩和するには、ファイアウォールを作成し、カタログを含む SQL Server データベースにビジネス デスク クライアントから直接接続できないようにする必要があります。このセキュリティが設定された構成を使うことをお勧めします。操作方法の詳細については、「セキュリティで保護されたサイトの配置」を参照してください。

BizTalk Server を使って取引先とカタログを交換する場合は、CatalogToVendorAssociation.GetVendorList() API 用に、BizTalk メッセージ管理データベース (InterchangeBTM) に対するアクセス許可が必要になります。InterchangeBTM データベースで、btsint_organizations_selectvalidvendors ストアド プロシージャに対する実行のアクセス許可を付与する必要があります。このアクセス許可がないと、CatalogToVendorAssociation.GetVendorList() API は失敗します。

実行時のユーザー

Web サイトを訪問する実行時のユーザーに、カタログに対する適切なレベルのアクセス許可を割り当てるには、CatalogSecurityRoles.sql スクリプトを実行します。

CatalogSecurityRoles.sql スクリプトは、Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。このスクリプトは、ctlg_CatalogReaderRole を作成して db_datareader ロールに追加します。

ctlg_CatalogReaderRole には、カタログ テーブルおよびビューに対する参照のアクセス許可と、実行時のストアド プロシージャに対する実行のアクセス許可が付与されます。これらのアクセス許可は、Web サイトを訪問するユーザーに必要になります。

次のいずれかの作業を実行したら、CatalogSecurityRoles.sql スクリプトを実行してください。

  • 新しいカタログの作成
  • カタログへの言語の追加
  • 仮想カタログの再構築

カタログを作成すると、カタログのビューが作成されます。ビューは言語固有です。これらの作業のいずれかを実行し、CatalogSecurityRoles.sql スクリプトを実行すると、Web サイトのユーザーに、新しいカタログのビューに対する適切な参照のアクセス許可が与えられます。

注

  • ctlg_CatalogReaderRole のメンバは、MSCS_CatalogScratch データベースに対する db_owner アクセス許可を持っている必要があります。MSCS_CatalogScratch データベースは一時データベースであり、データを永続的に保持するものではないので、セキュリティ上の問題はありません。サイトを訪問するユーザーが MSCS_CatalogScratch データベースに対するアクセス許可を持っていない場合、そのユーザーは商品カタログを検索できません。
  • ctlg_CatalogReaderRole のメンバは、管理データベースに対する db_reader アクセス許可を持っている必要があります。このアクセス許可は、メンバが、商品カタログ データベースへの接続文字列を取得し、カタログを表示するために必要になります。
  • 結合キーを使って外部テーブルにするリンクする場合は、ctlg_CatalogReaderRole のメンバに、外部テーブルに対する参照のアクセス許可も付与する必要があります。

ctlg_CatalogReaderRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、カタログ データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、ctlg_CatalogReaderRole を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、カタログ データベースに対してスクリプトを実行します。

    カタログ データベースに対する ctlg_CatalogReaderRole が作成され、datareader ロールに追加されます。

  7. ロールを作成したら、実行時の匿名ユーザー アカウントをロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

グローバル カタログ用のテーブル

CatalogSecurityRoles.sql スクリプトは、次の商品カタログ テーブルに対する参照のアクセス許可を ctlg_CatalogReaderRole に付与します。

テーブル名 ctlg_CatalogReaderRole
(実行時のユーザー)
CatalogAttributes
 参照
CatalogDefinitions
 参照
CatalogDefinitionProperties
 参照
CatalogenumValues
 参照
CatalogGlobal
 参照
CatalogLanguage
 参照
CatalogLanguageMap
 アクセスなし
CatalogSchemaVersion
 参照
CatalogSet_Catalogs
 参照
CatalogSet_Info
 参照
CatalogStatus
 参照
CatalogToVendorAssociation
 参照
CatalogUsedDefinitions
 参照

基本カタログ用のテーブル

次の表は、各基本カタログで使われる基本カタログ用テーブルの一覧です。

各基本カタログで使われるテーブル

テーブル名 ctlg_CatalogReaderRole
(実行時のユーザー)
<Catalog Name>_CatalogDeletedProducts
 アクセスなし
<Catalog Name>_CatalogDependentCatalogs
 参照
<Catalog Name>_CatalogHierarchy
 参照
<Catalog Name>_CatalogProducts
 参照
<Catalog Name>_CatalogRelationships
 参照

カタログの各言語で使われるテーブル

テーブル名 ctlg_CatalogReaderRole
(実行時のユーザー)
<Catalog Name>_<LANGUAGE>_Catalog
 参照

仮想カタログ用のテーブル

次の表は、各仮想カタログで使われる仮想カタログ用テーブルの一覧です。

各仮想カタログで使われるテーブル

テーブル名 ctlg_CatalogReaderRole
(実行時のユーザー)
<VirtualCatalog Name>_CatalogDeletedProducts
 アクセスなし
<VirtualCatalog Name>_CatalogHierarchy
 参照
<VirtualCatalog Name>_CatalogIncludedProductsAndCategories
 アクセスなし
<VirtualCatalog Name>_CatalogPricingRules
 アクセスなし
<VirtualCatalog Name>_CatalogProducts
 参照
<VirtualCatalog Name>_CatalogRelationships
 参照
<VirtualCatalog Name>_CatalogVirtualProducts
 参照

カタログの各言語で使われるテーブル

テーブル名 ctlg_CatalogReaderRole
(実行時のユーザー)
<VirtualCatalog Name>_<LANGUAGE>_Catalog
 参照

カタログ用のビュー

グローバル カタログで使われるビュー

ビュー ctlg_CatalogReaderRole
(実行時のユーザー)
CatalogGlobal_LNG_NEUTRAL
 参照

商品カタログ システムの各言語で使われるビュー

ビュー ctlg_CatalogReaderRole
(実行時のユーザー)
<CatalogGlobal_<LANGUAGE>
 参照

各カタログで使われるビュー

ビュー ctlg_CatalogReaderRole
(実行時のユーザー)
<Catalog Name>_ClassTypes
 参照
<Catalog Name>_LNG_NEUTRAL
 参照

各カタログで使われるビュー

ビュー ctlg_CatalogReaderRole
(実行時のユーザー)
<Catalog Name>_<LANGUAGE>_RelationsView
 参照
<Catalog Name>_<LANGUAGE>
 参照

カタログのストアド プロシージャ

CatalogSecurityRoles.sql スクリプトは、次のストアド プロシージャに対する適切なアクセス許可を付与します。次の表では、デザイン時のユーザー アカウントに必要なアクセス許可も示しています。

カタログのストアド プロシージャ ctlg_CatalogReaderRole
(実行時のユーザー) 		ビジネス デスクのユーザー
ctlg_AddAttributeToCatalog
 アクセスなし あり
ctlg_AddCatalogDefinitionProperty
 アクセスなし あり
ctlg_AddCatalogLanguage
 アクセスなし あり
ctlg_AddCatalogLanguageMap
 アクセスなし あり
ctlg_AddChildCategoryToCategory
 アクセスなし あり
ctlg_AddColumnsToCatalog
 アクセスなし あり
ctlg_AddColumnsToRelationships
 アクセスなし あり
ctlg_AddDefaultToProperty
 アクセスなし あり
ctlg_AddDisplayNameToCatalog
 アクセスなし あり
ctlg_AddDisplayNameToProperty
 アクセスなし あり
ctlg_AddFullTextCatalogForLanguage
 アクセスなし あり
ctlg_AddParentCategoryToCategory
 アクセスなし あり
ctlg_AddPricingCategory
 アクセスなし あり
ctlg_AddProductToCategory
 アクセスなし あり
ctlg_AddPropertyAttribute
 アクセスなし あり
ctlg_AddPropertyForCSVImport
 アクセスなし あり
ctlg_AddPropertyToDefinition
 アクセスなし あり
ctlg_AddPropertyValue
 アクセスなし あり
ctlg_AddRelationshipToCategory
 アクセスなし あり
ctlg_AddRelationshipToProduct
 アクセスなし あり
ctlg_AlterClassTypesToProduct
 アクセスなし あり
ctlg_AlterClassTypesToProductFamily
 アクセスなし あり
ctlg_AlterColumnInTable
 アクセスなし あり
ctlg_AlterFullTextColumns
 アクセスなし あり
ctlg_AlterPropertyInFullTextCatalogs
 アクセスなし あり
ctlg_AlterPropertyLength
 アクセスなし あり
ctlg_CheckCatalog
 あり あり
ctlg_CompleteCatalogImport
 アクセスなし あり
ctlg_CreateCatalogClassTypesView
 アクセスなし あり
ctlg_CreateCatalogLanguageView
 アクセスなし あり
ctlg_CreateCatalogLanguageViews
 アクセスなし あり
ctlg_CreateCatalogProcedures
 アクセスなし あり
ctlg_CreateCatalogSystem_LanguageView
 アクセスなし あり
ctlg_CreateCatalogSystem_LanguageViews
 アクセスなし あり
ctlg_CreateCategory
 アクセスなし あり
ctlg_CreateCategoryDefinition
 アクセスなし あり
ctlg_CreateFullTextCatalog
 アクセスなし あり
ctlg_CreateProduct
 アクセスなし あり
ctlg_CreateProductDefinition
 アクセスなし あり
ctlg_CreateProductVariant
 アクセスなし あり
ctlg_CreateProperty
 アクセスなし あり
ctlg_CreateTriggers
 アクセスなし あり
ctlg_DeleteCatalog
 アクセスなし あり
ctlg_DeleteCatalogDefinition
 アクセスなし あり
ctlg_DeleteImportProduct
 アクセスなし あり
ctlg_DeleteProductsFromDeletedTable
 アクセスなし あり
ctlg_DeleteProperty
 アクセスなし あり
ctlg_DeleteVariant
 アクセスなし あり
ctlg_DropCatalogLanguageView
 アクセスなし あり
ctlg_DropCatalogObjectFromDatabase
 アクセスなし あり
ctlg_DropCatalogProcedures
 アクセスなし あり
ctlg_DropCatalogProceduresAndViews
 アクセスなし あり
ctlg_DropFullTextCatalog
 アクセスなし あり
ctlg_DropViewOnCatalogGlobal
 アクセスなし あり
ctlg_EnsurePropTableMapExists
 あり あり
ctlg_GetBaseCatalogName
 あり あり
ctlg_GetCatalogDefinitionProperties
 あり あり
ctlg_GetCatalogGlobalProperties
 あり あり
ctlg_GetCatalogLanguages
 あり あり
ctlg_GetCatalogLanguagesForExport
 あり あり
ctlg_GetCatalogProperties
 あり あり
ctlg_GetCatalogPropertiesForExport
 あり あり
ctlg_GetCatalogPropertiesForUpdate
 アクセスなし あり
ctlg_GetCatalogRelationships
 あり あり
ctlg_GetCatalogType
 あり アクセスなし
ctlg_GetCatalogs
 あり あり
ctlg_GetCatalogsInCatalogSet
 あり あり
ctlg_GetCategoryOID
 あり あり
ctlg_GetCategoryProperties
 あり あり
ctlg_GetDefinedCatalogAttributes
 あり あり
ctlg_GetDefinedPropertyAttributes
 あり あり
ctlg_GetDefinitionProperties
 あり あり
ctlg_GetDefinitions
 あり あり
ctlg_GetDefnPropertiesForCatalogImport
 アクセスなし あり
ctlg_GetDefnPropertiesForCSVImport
 アクセスなし あり
ctlg_GetDeletedProducts
 アクセスなし あり
ctlg_GetDistinctPropertiesIncatalog
 アクセスなし あり
ctlg_GetFTSColumnLCID
 アクセスなし あり
ctlg_GetFTSQuery
 あり あり
ctlg_gethierarchy
 アクセスなし あり
ctlg_gethierarchy2
 アクセスなし あり
ctlg_GetHierarchy_For_VC
 アクセスなし あり
ctlg_GetJoinType
 あり あり
ctlg_GetParentCategories
 あり あり
ctlg_GetPricingCategory
 あり あり
ctlg_GetPricingCategoryOIDs
 あり あり
ctlg_GetPrimaryParentCategory
 あり あり
ctlg_GetProductCategory_UniqueID
 あり あり
ctlg_GetProductOID
 あり あり
ctlg_GetProductOIDAndType
 あり あり
ctlg_GetProductProperties
 あり あり
ctlg_GetProductsForExport
 アクセスなし あり
ctlg_GetProductVariantProperties
 あり あり
ctlg_GetProperties
 あり あり
ctlg_GetPropertiesForCatalog
 アクセスなし あり
ctlg_GetPropertiesInCatalog
 あり あり
ctlg_GetPropertiesInDefinitions
 アクセスなし あり
ctlg_GetPropertiesUsedInCatalogs
 あり あり
ctlg_GetPropertyAttributes
 あり あり
ctlg_GetPropertyAttributesForDefinition
 あり あり
ctlg_GetPropertyValues
 あり あり
ctlg_GetRelationships_For_VC
 あり あり
ctlg_GetResults
 あり あり
ctlg_GetSearchableCategories
 あり あり
ctlg_GetSmallestFulltextcatalog
 アクセスなし あり
ctlg_GetSourceCatalogsForExport
 アクセスなし あり
ctlg_GetSpecsearchableProps
 あり あり
ctlg_GetSQLQuery
 あり あり
ctlg_GetValidLanguage
 あり あり
ctlg_ImportRelationship
 アクセスなし あり
ctlg_InsertCatalogGlobal
 アクセスなし あり
ctlg_InsertCatalogsBeingExportedOrImported
 アクセスなし あり
ctlg_InsertCatalogStatus
 アクセスなし あり
ctlg_InsertCSVCatalog
 アクセスなし あり
ctlg_InsertDefinition
 アクセスなし あり
ctlg_InsertDefinitionProperties
 アクセスなし あり
ctlg_InsertEnumValues
 アクセスなし あり
ctlg_InsertHierarchy
 アクセスなし あり
ctlg_InsertHierarchy2
 アクセスなし あり
ctlg_InsertUsedDefinition
 アクセスなし あり
ctlg_IsCatalogPropertyRemovable
 アクセスなし あり
ctlg_IsCatalogValidForFTSearch
 あり あり
ctlg_IsCategorySpecSearchable
 あり あり
ctlg_IsDefinitionPresent
 アクセスなし あり
ctlg_IsDefinitionPropPresent
 アクセスなし あり
ctlg_IsDefinitionUsedInCatalog
 アクセスなし あり
ctlg_IsEnumPresent
 あり あり
ctlg_IsProductvalid
 あり あり
ctlg_IsPropertyPresentInDefinition
 アクセスなし あり
ctlg_JoinQueryWithTable
 あり あり
ctlg_PersistTT_EnsureExists
 あり あり
ctlg_PersistTT_GetName
 あり あり
ctlg_PersistTT_Purge
 あり あり
ctlg_PersistTT_PurgeTablesUsingProperty
 アクセスなし あり
ctlg_PurgeCatalog
 アクセスなし あり
ctlg_RecordCatalogExport
 アクセスなし あり
ctlg_RemoveAllCatalogLanguages
 アクセスなし あり
ctlg_RemoveCatalogAttribute
 アクセスなし あり
ctlg_RemoveCatalogLanguage
 アクセスなし あり
ctlg_RemoveChildCategoryForCategory
 アクセスなし あり
ctlg_RemoveColumnsFromRelationships
 アクセスなし あり
ctlg_RemoveDefinitionFromCatalog
 アクセスなし あり
ctlg_RemoveFullTextCatalogForLanguage
 アクセスなし あり
ctlg_RemoveParentCategoryForCategory
 アクセスなし あり
ctlg_RemoveProductFromCategory
 アクセスなし あり
ctlg_RemovePropertyAttribute
 アクセスなし あり
ctlg_RemovePropertyFromDefinition
 アクセスなし あり
ctlg_RemovePropertyValue
 アクセスなし あり
ctlg_RemoveRelationship
 アクセスなし あり
ctlg_RenameCatalogDefinition
 アクセスなし あり
ctlg_RenameCatalogProperty
 アクセスなし あり
ctlg_SetPricingCategory
 アクセスなし あり
ctlg_SetPrimaryParentCategory
 アクセスなし あり
ctlg_TableExistsInFullTextCatalog
 アクセスなし あり
ctlg_UpdateCategoryDisplayNames
 アクセスなし あり
ctlg_UpdateCategoryRelationships
 アクセスなし あり
ctlg_UpdateParentOids
 アクセスなし あり
ctlg_UpdateProductRelationships
 アクセスなし あり
ctlg_ValidateCatalogForCSVImport
 アクセスなし あり
ctlg_ValidateJoinTableInfo
 あり あり
ctlg_VC_AddHierarchy
 アクセスなし あり
ctlg_VC_AddPriceRule
 アクセスなし あり
ctlg_VC_AddVCRule
 アクセスなし あり
ctlg_VC_ApplyCatalogLevelPriceRule
 アクセスなし あり
ctlg_VC_ApplyPriceRule
 アクセスなし あり
ctlg_VC_ApplyPriceRuleToDescendents
 アクセスなし あり
ctlg_VC_BC_GetDependentCatalogs
 アクセスなし あり
ctlg_VC_DoesPriceRuleExist
 アクセスなし あり
ctlg_VC_DoesProdOrCategExist
 アクセスなし あり
ctlg_VC_DoesVCRuleExist
 アクセスなし あり
ctlg_VC_EvaluateVCRule
 アクセスなし あり
ctlg_VC_ExcludeCatalog
 アクセスなし あり
ctlg_VC_ExcludeCategory
 アクセスなし あり
ctlg_VC_ExcludeCategoryDescendents
 アクセスなし あり
ctlg_VC_ExcludeProduct
 アクセスなし あり
ctlg_VC_ExcludeVariant
 アクセスなし あり
ctlg_VC_FTS_GetResults
 あり あり
ctlg_VC_GetPriceRules
 アクセスなし あり
sp_VC_GetProductOrVariantOrCategoryOID
 アクセスなし あり
ctlg_VC_GetRelationshipDescColumns
 アクセスなし あり
ctlg_VC_GetSourceCatalogs
 あり あり
ctlg_VC_GetUserDefinedBCProperties
 アクセスなし あり
ctlg_VC_GetUserDefinedVCProperties
 アクセスなし あり
ctlg_VC_GetVCRules
 アクセスなし あり
ctlg_VC_ImportPriceRule
 アクセスなし あり
ctlg_VC_ImportRelationship
 アクセスなし あり
ctlg_VC_ImportRule
 アクセスなし あり
ctlg_VC_IncludeCatalog
 アクセスなし あり
ctlg_VC_IncludeCategory
 アクセスなし あり
ctlg_VC_IncludeCategoryDescendents
 アクセスなし あり
ctlg_VC_IncludeExcludeCatalog
 アクセスなし あり
ctlg_VC_IncludeProduct
 アクセスなし あり
ctlg_VC_IncludeVariant
 アクセスなし あり
ctlg_VC_IsVirtualCatalog
 あり あり
ctlg_VC_MaterializeVCViews
 アクセスなし あり
ctlg_VC_PropagateBCChanges
 アクセスなし あり
ctlg_VC_PropagateBCChanges_DeleteCatalog
 アクセスなし あり
ctlg_VC_PropagateBCChanges_Hierarchy
 アクセスなし あり
ctlg_VC_PropagateBCChanges_PrimaryParentCategory
 アクセスなし あり
ctlg_VC_PropagateBCChanges_ProductCategory
 アクセスなし あり
ctlg_VC_PropagateBCChanges_Relationship
 アクセスなし あり
ctlg_VC_PropagateBCChanges_Variant
 アクセスなし あり
ctlg_VC_PropagateDependentCatalogChanges
 アクセスなし あり
ctlg_VC_PropagateVCChanges_DeleteCatalog
 アクセスなし あり
ctlg_VC_RebuildVirtualCatalog
 アクセスなし あり
ctlg_VC_ReEvaluateAllPricingRules
 アクセスなし あり
ctlg_VC_ReEvaluateAllVCInclusionOrExclusionRules
 アクセスなし あり
ctlg_VC_ReEvaluateAllVCRules
 アクセスなし あり
ctlg_VC_RemovePriceRule
 アクセスなし あり
ctlg_VC_RemoveVCRule
 アクセスなし あり
ctlg_VC_Reset_Evaluated_Tables
 アクセスなし あり
ctlg_VC_ResetUserDefinedLinks
 アクセスなし あり
ctlg_VC_SetVCDirtyFlag
 アクセスなし あり
ctlg_VC_SetVCRebuildStatus
 アクセスなし あり
ctlg_VC_SetVCStatus
 アクセスなし あり
ctlg_VC_SplitVCIdentifierName
 アクセスなし あり
ctlg_VC_UpdateDependentVCs_DeletedProductsTables
 アクセスなし あり
ctlg_VC_UpdateVCs_Dependent_On_DefinitionName
 アクセスなし あり
ctlg_VC_UpdateVCs_Dependent_On_PropertyName
 アクセスなし あり

カタログ固有のストアド プロシージャ

各カタログで使われるストアド プロシージャ

ストアド プロシージャ ctlg_CatalogReaderRole
(実行時のユーザー) 		ビジネス デスクのユーザー
ctlg_DeleteCategory_for_<Catalog Name>
 アクセスなし あり
ctlg_DeleteProduct_for_<Catalog Name>
 アクセスなし あり
ctlg_GetRelationships_for_<Catalog Name>
 あり あり
ctlg_GetResults_for_AllColumns_<Catalog Name>
 あり あり

各カタログ言語で使われるストアド プロシージャ

ストアド プロシージャ ctlg_CatalogReaderRole
(実行時のユーザー) 		ビジネス デスクのユーザー
ctlg_AncestorCategories_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetCategoryResults_For_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetChildCategories_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetDescProds_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetDescProdsOnly_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetProductsFor_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetRootCategories_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_GetRootProducts_for_<Catalog Name>_<LANGUAGE>
 あり あり
ctlg_Specsearch_for_<Catalog Name>_<LANGUAGE>
 あり あり

関数

関数名

 ctlg_CatalogReaderRole
(実行時のユーザー) 		ビジネス デスクのユーザー
fn_AddTablePrefixToColumnList
 あり あり
fn_CS_AppendClause
 あり あり
fn_IsSingleLanguageCatalog
 あり あり
fn_VC_GetMungedIdentifier
 あり あり
GetSQLDataType
 アクセスなし あり


プロファイル データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なレベルのアクセス許可を割り当てる必要があります。

システム管理者は、プロファイル データベースにもアクセスする必要があるので、db_owner ロールに割り当てる必要があります。

プロファイル データベースにセキュリティを設定できるように、Commerce Server には、ProfileReaderRole.sql と ProfileWriterRole.sql という 2 つのセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、プロファイル データベースに対する次の 2 つのロールを作成し、テーブルおよびストアド プロシージャに対する必要なアクセス許可を割り当てます。

  • ProfileReaderRole 実行時のユーザーをこのロールに割り当てます。
  • ProfileWriterRole デザイン時のユーザーをこのロールに割り当てます。

ProfileReaderRole と ProfileWriterRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、プロファイル データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、ProfileReaderRole を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、プロファイル データベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、ProfileWriterRole スクリプトを実行します。
  8. ロールを作成したら、実行時の匿名ユーザー アカウントとビジネス デスクのグループ アカウントを適切なロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

スクリプトは、2 つのロールを作成し、次のプロファイル テーブルおよびストアド プロシージャに対するアクセス許可を付与します。

テーブル名 ProfileReaderRole
(実行時のユーザー) 		ProfileWriterRole
(ビジネス デスクのユーザー)
Addresses
 参照 参照
挿入
削除
更新
BlanketPOs
 参照 参照
挿入
削除
更新
ClassDef
 参照 参照
更新
ClsAttrib
 参照 参照
ColDef
 参照 参照
CommerceServerCatalogs
 参照 参照
ES_ExprExprDeps
 参照 参照
更新
挿入
削除
ES_ExprInfo
 参照 参照
更新
挿入
削除
ES_ExprProfDeps
 参照 参照
更新
挿入
削除
GroupMem
 参照 参照
更新
挿入
MemAttrib
 参照 参照
更新
挿入
削除
MemberDef
 参照 参照
更新
挿入
削除
OrganizationObject
 参照
挿入
更新 		参照
挿入
削除
更新
RelDef
 参照 参照
SourceAttrib
 参照 アクセスなし
SourceDef
 参照 アクセスなし
TableDef
 参照 参照
挿入
削除
更新
UserObject
 参照
挿入
更新 		参照
挿入
削除
更新

プロファイルのストアド プロシージャ

プロファイルのストアド プロシージャにセキュリティを設定するために、スクリプトは、次の表のように、ProfileReaderRole と ProfileWriterRole にアクセス許可を付与します。

注

  • カタログ データベースでは、CatalogSet_Info テーブルに対する参照のアクセス許可をビジネス デスクのユーザー アカウントに付与する必要があります。付与していない場合は、組織モジュールとプロファイル モジュールで使われるカタログ セットをロードできません。
プロファイルのストアド プロシージャ ProfileReaderRole
(実行時のユーザー) 		ProfileWriterRole
(ビジネス デスクのユーザー)
sp_CheckDeleteExpr
 なし あり
sp_CheckExprExprDeps
 なし あり
sp_CheckExprStore
 あり あり
sp_DelProfile
 なし あり
sp_DelProfileCatalog
 なし あり
sp_DelProfileGroup
 なし あり
sp_DelProfileGroupHelper
 なし あり
sp_DelProfileHelper
 なし あり
Sp_DelProfileProperty
 なし あり
sp_DelProfilePropHelper
 なし あり
sp_DelDataMember
 なし あり
sp_DelDataObject
 なし あり
sp_DelDataSource
 なし あり
sp_EnsureEmptyStore
 なし あり
sp_ExprIDFromName
 あり あり
sp_ExprNameFromID
 あり あり
sp_GetProfileCustomProps
 なし あり
sp_GetDataSourceDepends
 なし あり
sp_GetDataSourceInfo
 なし あり
sp_GetProfileCatalogInfo
 あり あり
sp_GetProfileCatalogs
 なし あり
sp_GetProfileDomains
 なし あり
sp_GetProfileInfo
 あり あり
sp_GetProfileMemAttrs
 なし あり
sp_GetProfileMember
 なし あり
sp_GetProfileProps
 あり あり
sp_GetProfileSources
 なし あり
sp_ImportExprInfo
 なし あり
sp_UpdateExprModDate
 なし あり

関連項目

Active Directory のプロファイル データ ソース用の資格情報


Active Directory のプロファイル データ ソース用の資格情報

プロファイル リソースを使うと、基になる Active Directory のデータ ソースに接続するためにプロファイル サービスが使う認証の種類を構成できます。データ ソースを構成する場合は、Active Directory のコンテナに対する操作を実行するためのアクセス許可を持つ資格情報を指定することをお勧めします。[システム属性] ダイアログ ボックスで、[すべてのユーザーに同じ資格情報を使用] を選択すると、プロファイル サービスは必ず、特定の資格情報を使うようになります。

このオプションが選択されている場合、プロファイル サービスは、Active Directory ストアにバインドするときに、LDAPv3 のバインド資格情報に格納されているユーザー名とパスワードを使います。このユーザー名とパスワードの組は、クリア テキストでデータベースに格納されます。

たとえば、ユーザーがサイトにログオンすると、資格情報が SQL Server データベースから読み取られ、プロファイル サービスがその資格情報を使って Active Directory にバインドします。

[すべてのユーザーに同じ資格情報を使用] を選択しない場合は、Active Directory に対してプロファイル システムの統合 Windows 認証モードを使うことになります。つまり、プロファイル システムが、呼び出しスレッドのセキュリティ コンテキストを使って Active Directory への呼び出しを行い、Active Directory がそのセキュリティ コンテキストに基づいて呼び出しを許可または拒否することになります。

この方法によってプロファイル サービスを顧客の自動登録サイトで効果的に使うには、ユーザー データの格納先となる Active Directory コンテナを作成するためのアクセス許可を IIS 匿名ユーザー アカウントに付与します。

次の図は、[システム属性] ダイアログ ボックスです。

[システム属性] ダイアログ ボックスを示す図

関連項目

プロファイル リソースで新しいデータソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する


トランザクション データベースにセキュリティを設定する

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なレベルのアクセス許可を割り当てる必要があります。

トランザクション データベースにセキュリティを設定できるように、Commerce Server には、TransactionsReaderRole.sql と TransactionsWriterRole.sql という 2 つのセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、トランザクション データベースに対する次の 2 つのロールを作成し、テーブルおよびストアド プロシージャに対する必要なアクセス許可を割り当てます。

  • TransactionsReaderRole 実行時のユーザーをこのロールに割り当てます。
  • TransactionsWriterRole デザイン時のユーザーをこのロールに割り当てます。

TransactionsReaderRole と TransactionsWriterRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、トランザクション データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、TransactionsReaderRole を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、トランザクション データベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、TransactionsWriterRole スクリプトを実行します。
  8. ロールを作成したら、実行時の匿名ユーザー アカウントとビジネス デスクのグループ アカウントを適切なロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

TransactionsReaderRole スクリプトと TransactionsWriterRole スクリプトは、2 つのロールを作成し、次のトランザクション テーブルおよびストアド プロシージャに対するアクセス許可を付与します。

テーブル名 TransactionsReaderRole
(実行時のユーザー) 		TransactionsWriter
Role
(ビジネス デスクのユーザー)
BasketGroup
 参照
挿入
更新
削除 		参照
削除
CatalogProducts_AuctionBid
 参照
挿入
更新
削除 		参照
挿入
更新
削除
CatalogProducts_AuctionItem
 アクセスなし 参照
挿入
更新
削除
Counters
 参照
挿入
更新 		アクセスなし
OrderFormHeader
 参照
挿入
更新 		参照
削除
OrderFormLineItems
 参照
挿入
更新 		参照
削除
OrderGroup
 参照
挿入
更新 		参照
削除
OrderGroupAddresses
 参照
挿入
更新 		参照
削除
TransCategory
 アクセスなし アクセスなし
*TransDimension
 アクセスなし アクセスなし
UserFilter
 参照
挿入
更新
削除 		アクセスなし

* TransDimension は、トランザクション データ インポート データ変換サービス (DTS) タスクで使われます。詳細については、「トランザクション データ インポート DTS タスクでの ETL プロセス」を参照してください。

ストアド プロシージャ

トランザクションのストアド プロシージャは、OrderSummaryProc の 1 つだけです。実行時のユーザーもデザイン時のユーザーも、アクセスする必要はありません。このストアド プロシージャは、OrderGroupManager.GetOrderSummary スクリプトによって呼び出されます。


トランザクション構成データベースにセキュリティを設定する

データベースへのアクセスを制御するには Windows 認証を使うことを強くお勧めします。データベースの接続文字列を Windows 認証用に構成する場合は、ビジネス デスクのユーザーと実行時のユーザー (匿名ドメイン アカウントを使うユーザー) に、データベースに対する適切なレベルのアクセス許可を割り当てる必要があります。

トランザクション構成データベースにセキュリティを設定できるように、Commerce Server には、TransactionsConfigReaderRole.sql と TransactionConfigWriterRole.sql という 2 つのセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトは、トランザクション構成データベースに対する次の 2 つのロールを作成し、テーブルおよびストアド プロシージャに対する必要なアクセス許可を割り当てます。

  • TransactionConfigReaderRole 実行時のユーザーをこのロールに割り当てます。
  • TransactionConfigWriterRole デザイン時のユーザーをこのロールに割り当てます。

TransactionConfigReaderRole と TransactionConfigWriterRole を作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザの [データベース] ボックスの一覧で、トランザクション構成データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、TransactionConfigReaderRole を選択します。
  6. スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。
  7. ツール バーの 実行 をクリックして、選択したデータベースに対してスクリプトを実行します。
  8. これらの手順を繰り返して、TransactionConfigWriterRole スクリプトを実行します。
  9. ロールを作成したら、実行時の匿名ユーザー アカウントとビジネス デスクのグループ アカウントを適切なロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

スクリプトは、2 つのロールを作成し、次のトランザクション構成テーブルおよびストアド プロシージャに対するアクセス許可を付与します。

テーブル名 TransactionConfigReaderRole
(実行時のユーザー) 		TransactionConfigWriterRole
(ビジネス デスクのユーザー)
CatalogCache_Virtual_Directory
 参照
挿入
更新 		参照
削除
Decode
 参照 参照
挿入
更新
削除
Region
 参照 参照
挿入
更新
削除
RegionalTax
 参照 参照
挿入
更新
削除
ShippingConfig
 参照 参照
挿入
更新
削除
TableShippingRates
 参照 参照
挿入
更新
削除
TxVirtual_Directory
 参照
挿入
更新 		参照
削除

トランザクション構成のストアド プロシージャ

スクリプトは、次の表のように、TransactionConfigReaderRole と TransactionConfigWriterRole にアクセス許可を付与します。

ストアド プロシージャ | TransactionConfigReaderRole (実行時のユーザー) | TransactionConfigWriterRole (ビジネス デスクのユーザー)
sp_GetShippingRateProc | あり | あり


ダイレクト メーラー データベースにセキュリティを設定する

ダイレクト メーラー サービスは、ダイレクト メーラー グローバル リソースで指定されている接続文字列を使って、ダイレクト メーラー データベースに接続します。

ダイレクト メーラー サービスは、最初の起動時に、ダイレクト メーラー データベースに次のテーブルを作成します。

  • dml_attachments
  • dml_job_errors
  • dml_jobs

また、Sp_create_dml_sqlagent_job ストアド プロシージャも作成します。

ダイレクト メーラーは、ダイレクト メーラー ジョブで使われる一意のリストごとに、次のような個別のテーブルをダイレクト メーラー データベースに作成します。

ML__13F0BA4B_AD15_45BD_AE07_E33DB423A076_

次の表は、ダイレクト メーラー データベースおよびその他のダイレクト メーラー テーブルの一覧です。実行時のユーザー アカウント、デザイン時のユーザー アカウント、およびダイレクト メーラーのサービス アカウントがアクセスする必要があるかどうかを示しています。

テーブル名 | 実行時のユーザー | デザイン時のユーザー アカウント | ダイレクト メーラーのサービス アカウント
ダイレクト メーラー データベース | なし | なし | db_owner ロール
dml_attachments
 なし なし 参照
挿入
更新
dml_job_errors
 なし なし 参照
挿入
更新
dml_jobs
 なし なし 参照
挿入
更新
ML_<GUID>
 なし なし 参照
挿入
更新

さらに、ダイレクト メーラー サービスには、次のファイルに対する書き込みアクセス許可 (ACL) が付与されている必要があります。

dml_drop
Winnt\system32\logfiles folders

これらのファイルに対する書き込みアクセス許可が必要なのは、ダイレクト メーラーによるログ ファイルの作成、書き込み、およびメール送信を可能にするためです。メール送信には、配信先に対するアクセス許可が必要です。

重要

  • ダイレクト メーラー サービスがコンピュータ A に配置され、ダイレクト メーラー データベースがコンピュータ B に配置されている場合があります。ビジネス デスクを使ってダイレクト メール キャンペーン項目を作成すると、SQL Server Agent ジョブがダイレクト メーラー データベース (コンピュータ B) に作成されます。このジョブは、ジョブのスケジュールに従って、実際にメールを処理するためにコンピュータ A のダイレクト メーラー サービスを呼び出します。

    この配置で処理を正しく行うには、ダイレクト メーラー サービスをコンピュータ B にもインストールする必要があります。このインストールが必要になるのは、コンピュータ B の SQL Server Agent ジョブがコンピュータ A のダイレクト メーラー サービスと通信する場合のみです。実際のメール処理は、コンピュータ A だけで行われます。

ダイレクト メーラーのストアド プロシージャ

次の表は、ダイレクト メーラーのストアド プロシージャの一覧です。実行時またはデザイン時のユーザー アカウントがアクセスする必要があるかどうかを示しています。

ストアド プロシージャ 実行時のユーザー デザイン時のユーザー アカウント ダイレクト メーラーのサービス アカウント
sp_create_dml_
sqlagent_job
 なし あり あり

関連項目

ダイレクト メーラーのサービス アカウント

ダイレクト メーラーと Windows 認証を使う


データ ウェアハウスにセキュリティを設定する

ここでは、セキュリティを設定する必要があるデータ ウェアハウスのオブジェクトとデータについて説明します。また、これらのオブジェクトとデータにセキュリティを設定する方法の詳細についても説明します。

データベースへのアクセスには Windows 認証を使うことを強くお勧めします。Windows 認証用のデータベース接続文字列を構成するには、Commerce Server ビジネス デスクのユーザーとシステム管理者に、データ ウェアハウス データベースに対する適切なアクセス許可を割り当てる必要があります。

Commerce Server には、SQL Server データベースのロールを作成し、各ロールに適切なデータベース アクセス許可を割り当てる 7 つのスクリプト (ReportViewer.sql、ReportAdvanced.sql、および 5 つの DTS タスク用スクリプト) が用意されています。これらのスクリプトを実行した後、ビジネス デスクのユーザーとシステム管理者用の SQL Server ログインを適切なロールに割り当てることができます。

ここでは、次のトピックについて説明します。

  • データ ウェアハウスのセキュリティの概要
  • セキュリティを必要とするデータ ウェアハウス コンポーネント
  • セキュリティで保護されたデータ ウェアハウスの配置の概要
  • DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト
  • DTS タスクの実行に必要なアクセス許可
  • レポートがアクセスするデータベースにセキュリティを設定するスクリプト
  • 分析サーバーのアカウントを構成する
  • HTTPS 経由で分析サーバーにアクセスする
  • データ ウェアハウスの接続文字列を構成する
  • データ ウェアハウスのパスワードを変更する
  • レポート マネージャのアカウントを変更する


データ ウェアハウスのセキュリティの概要

データ ウェアハウスは、次の作業を行うときにアクセスされます。

  • Web サーバー ログ ファイルおよび実行時の Commerce Server データベースのデータをインポートする。
  • ビジネス デスクからレポートを実行する。

これらの作業を実行する際にデータベースを危険にさらさないように、サイトにセキュリティを設定する必要があります。これらの各作業について、サイトにセキュリティを設定するために必要な手順と使用するツールの概要を次に示します。

  • データをインポートする Commerce Server には、データ変換サービス (DTS) タスクでアクセスする必要がある Commerce Server データベースごとにセキュリティ スクリプトが用意されています。

    実行時の Commerce Server データベースと管理データベースに対して適切なスクリプトを実行します。セキュリティ スクリプトによって、各データベースに対する DTS_ImportRole が作成され、適切なアクセス許可がこのロールに割り当てられます。

    DTS タスクのセキュリティ スクリプトについては、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

  • レポートを実行する Commerce Server には、データ ウェアハウスの SQL Server データベースに対して実行するセキュリティ スクリプトとして、ReportViewer および ReportAdvanced が用意されています。

    これらのスクリプトは、データ ウェアハウス データベースに対する 2 つのロールを作成し、データ ウェアハウスに対する適切なアクセス許可をこれらのロール割り当てます。

    • ReportViewer ロールには、レポートを実行および表示するビジネス デスク ユーザー用のアクセス許可が付与されます。
    • ReportAdvanced ロールには、レポートを作成、削除、および変更するビジネス デスク ユーザー用のアクセス許可が付与されます。

    これらの 2 つのロールを作成したら、各ロールにビジネス デスクのユーザー アカウントを割り当てます。これらのロールを使うと、ビジネス デスク ユーザーはデータベースに損傷を与えずにレポートを処理することができます。

    これらのスクリプトの実行については、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

関連項目

セキュリティを必要とするデータ ウェアハウス コンポーネント


セキュリティを必要とするデータ ウェアハウス コンポーネント

ここでは、セキュリティを設定する必要なデータ ウェアハウス オブジェクト (データベース、接続文字列、およびレポート) について説明します。また、各データ ウェアハウス コンポーネントに関する詳細な参照情報と、それらのコンポーネントにアクセスするために必要なアクセス許可を示します。

これらのコンポーネントにセキュリティを設定するには、次の操作を行います。

  • データベース データ ウェアハウス データベースのセキュリティは、必ずファイアウォールの内側で設定します。操作方法については、「セキュリティで保護されたサイトの配置」を参照してください。さらに、次の操作を行います。
    • SQL Server データベースの場合は、ReportViewer.sql と ReportAdvanced.sql の各セキュリティ スクリプトを実行して、データ ウェアハウス データベースに対するロールを作成します。これらは、ビジネス デスク ユーザーがレポートを実行するために必要なロールです。次に、ビジネス デスク ユーザーを適切なロールに割り当てます。
    • OLAP データベースの場合は、分析サーバー用に定義したアカウントに、すべての Commerce Server ビューに対する参照のアクセス許可が必要です。
    • データ ウェアハウスのインポート ウィザードを実行してパッケージを保存するには、DTS タスクを実行している SQL Server の msdb データベースに対する参照、挿入、および更新のアクセス許可が、アカウントに付与されている必要があります。msdb データベースは、SQL Server Agent が警告とジョブのスケジュールを設定するときに使われます。また、DTS パッケージを保存するときにアクセスされます。さらに、ユーザーが DTS パッケージを保存できるように、sysDTSPackage オブジェクトについても同じアクセス許可を割り当てます。
  • 接続文字列 Windows 認証を使うように接続文字列を構成します。
  • レポート ビジネス デスク アクセス許可モジュールを使って、レポートの実行、作成、および変更のためのユーザー インターフェイス機能に対するアクセス許可をビジネス デスク ユーザーに付与します。

ここでは、次のトピックについて説明します。

  • データ ウェアハウスの SQL Server データベース
  • データ ウェアハウスの OLAP データベース
  • データ ウェアハウスの接続文字列
  • データ ウェアハウスの SQL Server 接続文字列
  • データ ウェアハウスの分析サーバー接続文字列
  • データ ウェアハウスの DTS タスク
  • Commerce Server のレポート
  • OLAP キューブと SQL Server にアクセスするレポートの一覧


データ ウェアハウスの SQL Server データベース

ここでは、セキュリティを必要とする次のデータ ウェアハウスの SQL Server データベース コンポーネントについて、セキュリティの参照情報を示します。

データ ウェアハウスのテーブル

データ ウェアハウスのビュー

データ ウェアハウスの関数

SQL Server データベースのデータは、次の作業が行われるときにアクセスされます。

  • Commerce Server DTS タスクを実行する。DTS タスクの実行に必要なアクセス許可については、「DTS タスクの実行に必要なアクセス許可」を参照してください。
  • ビジネス デスク ユーザーが静的レポートを実行する。データ ウェアハウスの SQL Server データベースにセキュリティを設定するには、Commerce Server のセキュリティ スクリプトを使って、データベースに対してレポートを実行するビジネス デスク ユーザー用のデータベース ロールを作成します。詳細については、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

    また、Commerce Server レポート マネージャの COM+ コンポーネントで指定したアカウントに、データ ウェアハウス データベースの db_owner ロールを割り当てる必要もあります。操作方法については、「レポート マネージャのアカウントを変更する」を参照してください。

データ ウェアハウスのテーブル

次の表は、ビジネス デスク ユーザー (デザイン時のユーザー) がレポートを実行するときにアクセスする必要があるデータ ウェアハウスのテーブルの一覧です。特定のアクセス許可を必要とするレポートおよび作業に必要なの一覧については、「ReportViewer.sql スクリプト」および「ReportAdvanced.sql スクリプト」を参照してください。

テーブル デザイン時のユーザーのアクセス許可
GroupReportDbObject
 参照
挿入
削除
GroupReportJob
 参照
挿入
削除
GroupReportStatus
 参照
挿入
削除
LinkSiteRegisteredUserRel
 参照
PredictorModelCfgs
 参照
更新
RegisteredUser
 参照
挿入
Report
 参照
挿入
ReportDimension
 参照
挿入
削除
ReportInstanceDbObject
 参照
挿入
ReportInstanceParam
 参照
挿入
ReportParam
 参照
挿入
削除
ReportStatus
 参照
挿入
削除

データ ウェアハウスのビュー

SQL Server データベースに対して動的レポートを実行すると、Analysis Services 内のキューブとディメンションにデータを設定するために、次の Commerce Server ビューが使われます。

分析サーバー (OLAP データベース) 用に定義したアカウントに、これらのすべてのビューに対する参照のアクセス許可を付与します。その他のロールまたはアカウントには、これらのビューへのアクセス許可は必要ありません。操作方法については、「分析サーバーのアカウントを構成する」を参照してください。

CampaignItemDimensionView
csdw_BuyerTypeDimensionView
csdw_CampaignEventsDXView
csdw_CampaignEventsFactView
csdw_SalesToUser
csdw_UserStatusViewLU
csdw_UserStatusViewRU
csdw_UserTypeDimensionView
csdw_VisitByUser
csdw_VisitInfoDXView
csdw_VisitInfoFactView
csdw_VisitTypeDimensionView
DateDimensionView
EventsDimensionView
FirstRequest
IsRequestDimensionView
PageGroupDimensionView
RegisteredUserDimensionView
SiteDimensionView
Trans_Predictor
UserBrowsingtoPurchaseFactView
UserRegistrationFactView

データ ウェアハウスの関数

次に示す Commerce Server の関数は、レポート準備 DTS タスクで使われます。ビジネス デスク ユーザーがこれらにアクセスする必要はありません。

レポート準備タスクには、これらの関数に対する実行のアクセス許可が必要です。この DTS タスクに対して実行のアクセス許可を有効にするための操作は必要ありません。他の DTS タスクを実行するためにアカウントを構成する作業の中で、必要なアクセス許可が付与されます。

csdw_fnGetDataTypeString
csdw_fnGetValAsSQLConstant
csdw_fnVarBinToHexStr


データ ウェアハウスの OLAP データベース

分析サーバーが、データ ウェアハウスの OLAP データベース (キューブ) をホストします。レポート準備 DTS タスクが、キューブにデータを設定します。レポート キャッシュ DTS タスクとビジネス デスク ユーザーが、動的 OLAP レポートを実行するときに、このデータにアクセスします。

OLAP データベースにセキュリティを設定するには、次の操作を行います。

  • 分析サーバー用に定義したアカウントに、Commerce Server のすべてのビューに対する参照のアクセス許可を付与します。
  • Windows 認証を使うように OLAP データベースへの接続文字列を構成します。OLAP データベースへの接続文字列は、ConnStr_OLAP (サーバー側) と ConnStr_OLAP_Client (クライアント側) です。詳細については、「データ ウェアハウスの接続文字列を構成する」を参照してください。

重要

  • OLAP キューブがデータ ウェアハウスの SQL Server データベースとは異なるコンピュータに存在するときは、次の場合にログイン資格情報を MSSQLServiceOLAPService サービスに与える必要があります。
    • ログイン ユーザーにデータ ウェアハウスの SQL Server データベースへのアクセス許可が付与されている。
    • ログイン ユーザーが OLAP Administrators グループのメンバである。

次の表は、動的レポートと、各レポートがアクセスする OLAP データベースのキューブの一覧です。これは参考のための情報です。

レポート | 参照のアクセス許可が必要な OLAP キューブ
利用状況の傾向 | mscsWebUsage
ユーザーの傾向 | mscsWebUsage
ブラウザごとの利用状況 | mscsWebUsage
時間ごとの重複しないユーザー数 | mscsWebUsage
利用状況の要約 (週単位/年間) | mscsWebUsage
利用状況の要約 (曜日単位) | mscsWebUsage
利用状況の要約 (時間単位) | mscsWebUsage
一般的な利用状況の統計 (動的レポート) | mscsWebUsage
最初に参照したページ | Entry Pages
最後に参照したページ | Exit Pages
帯域幅の要約 | Bandwidth
帯域幅の傾向 | Bandwidth
商品別売り上げ | mscsSales
ヒット数 (HTTP ステータスごと) | Page Usage
ヒット数 (Win32 ステータスごと) | Page Usage
ディレクトリ | Page Usage
参照元ドメインを要求順に表示 | mscsWebUsage
要求の多いページ | Page Usage
ユーザーの訪問の傾向 | mscsWebUsage
キャンペーン項目の要約 | mscsCampaign
広告の表示回数とヒット率 (日付単位) | mscsCampaign
広告の表示回数とヒット率 (広告主単位) | mscsCampaign
バイヤーの参照の状況 | Buyer Visits
キャンペーン イベントの要約 | mscsCampaign
買い物バスケット イベント | Basket Events
注文イベント | OrderEvents

次のキューブに対するアクセス許可は付与しないでください。レポートからこれらのキューブに直接アクセスすることはありません。

mscsCampaignEvents
mscsDateIntersect
mscsOrderedImpressions
mscsVisitInfo


データ ウェアハウスの接続文字列

次の表は、データ ウェアハウスの接続文字列の一覧です。

接続文字列 | 説明
connstr_db_dw connstr_db_Analysis | データ ウェアハウスの SQL Server データベースに対してレポートを実行するときに使うサーバー側とクライアント側の接続文字列です。
ConnStr_OLAP ConnStr_OLAP_Client | 分析サーバー OLAP データベースに対してレポートを実行するときに使うサーバー側とクライアント側の接続文字列です。これらは、プライマリ分析サーバーの接続文字列です。
ConnStr_OLAP_HA | 2 台目の分析サーバーが用意されている可用性の高い配置で使われます。これは、セカンダリ分析サーバーの接続文字列です。
ConnStr_DW | OLE DB Provider for Commerce Server を介してデータ ウェアハウスにアクセスする DTS タスクで使われます。

Windows 認証を使うように各接続文字列を構成します。

これらの接続文字列は、管理データベースに格納されます。

関連項目

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse


データ ウェアハウスの SQL Server 接続文字列

データ ウェアハウスには、次の SQL Server データベースへの接続文字列があります。

サーバー側の接続文字列 : connstr_dw

サーバー側の接続文字列 : connstr_db_dw

クライアント側の接続文字列 : connstr_db_Analysis

サーバー側の接続文字列 : connstr_dw

これは、OLE DB Provider for Commerce Server 用のデータ ウェアハウスの接続文字列です。

SQL 認証を使う場合、この接続文字列の形式は次のようになります。

"URL=mscop://InProcConnect/Server=myserver:Database=dbname: Catalog=DWSchema:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

または

"Provider=commerce.dso.1;Data Source=mscop://InProcConnect/Server=myserver: Catalog=DWSchema:Database=dbname:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

Windows 認証を使う場合、この接続文字列の形式は次のようになります。

"URL=mscop://InProcConnect/Server=myserver:Database=dbname:Catalog=DWSchema:Trusted_Connection=true:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

または

"URL=mscop://InProcConnect/Server=myserver:Database=dbname:Catalog=DWSchema:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

サーバー側の接続文字列 : connstr_db_dw

ASP コードでは、g_MSCSDataWarehouseSQLConnStr になります。

これはサーバー側のデータ ウェアハウスの接続文字列です。分析モジュールによって、レポート モジュールおよび "完成したレポート" モジュールの ListSheet に設定するデータを取得するために使われます。この接続文字列は、次の処理で使われます。

  • レポートの実行またはエクスポート
  • レポート定義および完成したレポートの削除
  • 動的レポートの保存

この接続文字列には、データ ウェアハウスのテーブルの作成と削除のアクセス許可、およびそのレコードの参照、挿入、削除のアクセス許可、さらに、ストアド プロシージャの実行のアクセス許可が必要です。データ ウェアハウス リソースをアンパックする場合に、この接続文字列を設定します。この接続文字列には、管理者特権があります。

SQL 認証を使う場合、この接続文字列の形式は次のようになります。

Provider=SQLOLEDB.1;Data Source=ServerName;Initial
Catalog=DataWarehouseName;Integrated Security='SSPI';Extended
Properties=;Network Library=dbmssocn

Windows 認証を使う場合、この接続文字列の形式は次のようになります。

'Provider=SQLOLEDB.1;Data Source= ServerName;Initial Catalog=
 DataWarehouseName;Integrated Security=SSPI;Persist Security
Info=False;Network Library=dbmssocn'

クライアント側の接続文字列 : connstr_db_Analysis

ASP コードでは、g_MSCSDataWarehouseSQLConnStrPivot になります。

これはクライアント側のデータ ウェアハウスの接続文字列です。動的レポートのピボットテーブルによって、レポート データを取得するクエリを実行するために使われます。SQL ベースの動的レポートを実行するには、レポート クエリで参照されるすべてのデータベース オブジェクトに対する参照のアクセス許可を Windows ログオン ユーザーに与える必要があります。

クライアントはこの接続文字列にアクセスして、動的レポートが表示されるときにソースを表示できます。したがって、この接続文字列は、データ ウェアハウス リソースをアンパックするときに SQL セキュリティを指定した場合でも、既定で Windows 認証を使います。

この接続文字列の形式は次のようになります。

'Provider=SQLOLEDB.1;Data Source= ServerName;Initial Catalog=
DataWarehouseName;Integrated Security=SSPI;Persist Security
Info=False;Network Library=dbmssocn'

この接続文字列は Windows 認証を使うので、SQL Server のアクセス許可を持っていない Windows ユーザーは動的 SQL レポートを実行できません。

多数のユーザーが動的 SQL レポートを実行できるようにするには、SQL Server のアクセス許可が付与された Windows ユーザー グループを作成します。詳細については、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

注

  • Commerce Server 2000 には、この接続文字列が含まれていません。Commerce Server 2000 から Commerce Server 2002 にアップグレードすると、このリソースに関する接続文字列の情報は connstr_db_dw からコピーされます。その後、Windows 認証を使うように、connstr_db_Analysis を手動で変更する必要があります。

関連項目

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse


データ ウェアハウスの分析サーバー接続文字列

データ ウェアハウスには、次の分析サーバー OLAP データベースへの接続文字列があります。

サーバー側の接続文字列 : ConnStr_OLAP

クライアント側の接続文字列 : ConnStr_OLAP_Client

セカンダリ分析サーバーの接続文字列 : ConnStr_OLAP_Ha

サーバー側の接続文字列 : ConnStr_OLAP

ASP コードでは、g_MSCSDataWarehouseOLAPConnStr になります。

これはサーバー側の接続文字列です。OLAP データベースに対するクエリを実行するために使われます。この接続文字列は、次のように、OLAP レポートの実行時に使われます。

  • 静的レポートの場合、この接続文字列は、OLAP データベースに対してレポート データを取得するクエリを実行するために使われます。
  • 動的レポートの場合、この接続文字列は、レポートの実行に先立って、レポート用のキューブに対してクエリを実行できる状態にあるかどうかを確認するために使われます。

この接続文字列の形式は次のようになります。

Provider=MSOLAP;Integrated Security=SSPI;Persist Security Info=False;Data Source=ServerName;Initial Catalog=OLAPDatabaseName

既定では、OLAP が存在するサーバーの Windows ドメインのメンバには、Commerce Server 2002 の OLAP キューブへのクエリ (読み取り) アクセス許可があります。

クライアント側の接続文字列 : ConnStr_OLAP_Client

ASP コードでは、g_MSCSDataWarehouseOLAPConnStrPivot になります。

これはクライアント側の接続文字列です。動的 OLAP レポートのピボットテーブルによって、OLAP データベースに対するクエリを実行するために使われます。

この接続文字列の形式は次のようになります。

Provider=MSOLAP;Integrated Security=SSPI;Persist Security Info=False;Data Source=ServerName;Initial Catalog=OLAPDatabaseName

既定では、OLAP が存在するサーバーの Windows ドメインのメンバには、Commerce Server 2002 の OLAP キューブへのクエリ (読み取り) アクセス許可があります。

注

  • 上記の接続文字列では、HTTPS および基本認証を使うことをお勧めします。ユーザー ID とパスワードは、Analysis Services コンピュータ上の有効な Windows ユーザーのもので、<ドメイン名>\<ユーザー ID> という形式であれば、どれでもかまいません。たとえば、REDMOND\SeanChai となります。
  • OLAP キューブだけにクエリを実行するアクセス許可を持つ新しいユーザー アカウントを作成できます。
  • この接続文字列は、Commerce Server 2000 には存在しません。Commerce Server 2000 から Commerce Server 2002 にアップグレードすると、この接続文字列の情報は ConnStr_OLAP からコピーされます。

HTTPS 経由で OLAP を構成する方法については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

セカンダリ分析サーバーの接続文字列 : ConnStr_OLAP_HA

これは、OLAP 用の接続文字列です。1 台目の分析サーバーに障害が発生した場合に備えて 2 台目の分析サーバーが用意されている可用性の高いインストール環境および準備環境で使われます。この接続文字列は、顧客が利用することはできますが、現在、ビジネス デスクの分析モジュールによって参照されません。

この接続文字列の形式は次のようになります。

Provider=MSOLAP;Integrated Security=SSPI;Persist Security Info=False;Data Source=ServerName;Initial Catalog=OLAPDatabaseName

関連項目

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse


データ ウェアハウスの DTS タスク

データ ウェアハウスにデータをインポートする Commerce Server DTS タスクを実行するには、Administrators グループのメンバであるアカウント、またはデータ ウェアハウスの dbo ユーザーに別名化されているアカウントを使う必要があります。詳細については、「DTS タスクの実行に必要なアクセス許可」を参照してください。

実行時の Commerce Server データベースと管理データベースにセキュリティを設定して、DTS タスクを安全に実行するには、Commerce Server DTS セキュリティ スクリプトを使って、各データベースに対する DTS_ImportRole を作成します。詳細については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

各データベースの DTS_ImportRole を作成したら、DTS タスクを実行するユーザーのアカウントを各データベースの DTS_Import ロールに割り当てます。

データのインポートおよびデータ ウェアハウスの拡張を行う Commerce Server DTS タスクは、次のとおりです。

  • 構成の同期
  • Web サーバー ログ インポート
  • トランザクション データ インポート
  • 商品カタログ インポート
  • IP 解決
  • レポート準備
  • データ削除

次の表は、これらの DTS タスクがアクセスするデータベースと、各データベースに必要なアクセス許可の種類の一覧です。Commerce Server のセキュリティ スクリプトを実行すると、適切なアクセス許可が DTS_ImportRole に割り当てられます。

オブジェクト | DTS タスク | アクセス許可の種類
MSCS_Admin データベース | すべての DTS タスク | 参照 挿入 更新 削除
実行時の Commerce Server データベース | トランザクション データ インポート 商品カタログ インポート プロファイル データ インポート キャンペーン データ インポート | 実行時の Commerce Server データベースのホストになっている SQL Server コンピュータ上の tempdb データベースの一時テーブルに対する参照と作成
データ ウェアハウスの SQL Server データベース | すべてのインポート タスク | 使用するログイン アカウントが、Administrators グループのメンバになっているか、またはデータ ウェアハウスの dbo に別名化されている必要があります。
データ ウェアハウスの OLAP データベース | レポート準備タスク | ユーザーが、OLAP Administrators グループのメンバになっている必要があります。
Active Directory | プロファイル データ インポート | 参照

データ ウェアハウスのインポート ウィザードを実行してパッケージを保存するには、DTS タスクを実行している SQL Server の msdb データベースに対する参照、挿入、および更新のアクセス許可が、アカウントに付与されている必要があります。

msdb データベースは、SQL Server Agent が警告とジョブのスケジュールを設定するときに使われます。また、DTS パッケージを保存するときにアクセスされます。さらに、ユーザーが DTS パッケージを保存できるように、sysDTSPackage オブジェクトについても同じアクセス許可を割り当てます。

関連項目

DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト


Commerce Server のレポート

ビジネス デスク ユーザーがレポートを実行できるようにするために、適切なデータベース アクセス許可およびビジネス デスクのユーザー インターフェイス アクセス許可をビジネス デスク ユーザーに必ず付与してください。

ビジネス デスク アクセス許可

静的レポート

動的レポート

ビジネス デスク アクセス許可

分析レポートを実行するためのアクセス許可をビジネス デスク ユーザーに付与または拒否するには、ビジネス デスクのアクセス許可モジュールを使います。選択したユーザーやユーザー グループだけが特定のレポート機能を利用できるように、ビジネス デスク分析の領域別にセキュリティを設定できます。

たとえば、レポート モジュールの 実行 ボタンを無効にして、あるグループのユーザーがビジネス デスクでレポートを実行できなくすることができます。

既定のビジネス デスク ユーザー アカウントは、ビジネス デスク Administrators グループだけです。ビジネス デスク アプリケーションをインストールした直後は、このグループ アカウントはインストール先の Web サーバーの Administrators グループに属するユーザーで構成されています。

ビジネス デスク Administrators グループのメンバはすべてのアクセス許可があり、他のユーザーを追加したり、[新規] レポート アクセス許可を割り当てることができます。[新規] レポート アクセス許可があると、ユーザーは新しいレポートを作成して保存することができます。

重要

  • 新しいレポートのアクセス許可がある場合、ビジネス デスクのユーザーは SQL レポート クエリをデータ ウェアハウスに保存することができます。このクエリは、レポートを実行するすべてのユーザーが実行することができます。レポートを作成するユーザーは、レポート クエリを直接実行するアクセス許可がない場合でもレポートをデータ ウェアハウスに保存できます。

    高位の SQL アクセス許可を持つユーザーは、レポートを実行することによってクエリを実行できます。このようにすると、損傷を与える可能性のあるクエリを実行することが回避できます。新しいレポートのアクセス許可を与えるユーザーを決めるときは、このことも考慮する必要があります。

静的レポート

静的レポートを生成するために、レポート表示コンポーネントであるレポート マネージャが SQL Server コンピュータ上で動作し、その静的レポートに必要なデータ ウェアハウスのテーブルにアクセスします。ビジネス デスク ユーザーがレポート マネージャに直接アクセスすることはありません。

レポート マネージャはローカル アカウントで動作します。このセキュリティ コンテキストを使うと、ビジネス デスク アプリケーションは、IIS に対するアクセス許可を追加しなくてもレポートを実行できますが、セキュリティ上の問題が発生する可能性があります。

重要

  • 静的レポートを実行するには、Commerce Server レポート マネージャの COM+ コンポーネントで指定したアカウントに、データ ウェアハウス データベースの db_owner ロールを割り当てる必要があります。操作方法については、「レポート マネージャのアカウントを変更する」を参照してください。

動的レポート

ビジネス デスク ユーザーが動的レポートを実行できるようにするには、SQL Server データベースのクライアント側の接続文字列 (connstr_db_Analysis) を構成する必要があります。この文字列には、動的レポートのクエリで参照されるデータ ウェアハウスのテーブルとビューにビジネス デスク ユーザーがアクセスできるようにするためのアクセス許可を設定します。

SQL Server データベースのクライアント側の接続文字列は、レポート データに対するクエリを実行する動的レポートのピボットテーブルによってのみ使われます。

重要

  • SQL Server データベースのクライアント側の接続文字列 (connstr_db_Analysis) はビジネス デスク クライアントに存在するので、ビジネス デスク ユーザーは、動的レポートを表示するときにソースを表示することによって、この接続文字列にアクセスできます。そのため、パスワードがクリア テキストにならないように、Windows 認証を使う必要があります。ユーザーは分析サーバーの名前を表示して、できる限りの多くのアクセスを試行できます。そのため、サーバー上のすべての OLAP データベースにセキュリティを設定することが重要です。
  • 既定では、OLAP が存在するサーバーの Windows ドメインのメンバには、Commerce Server 2002 の OLAP キューブに対する参照のアクセス許可が付与されています。

関連項目

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


OLAP キューブと SQL Server にアクセスするレポートの一覧

ここでは、分析サーバーと SQL Server のデータベースにアクセスする分析レポートを示します。

この一覧を使って、ビジネス マネージャのグループがアクセスするレポートを特定し、そのユーザーに適切なセキュリティ資格情報を割り当てます。

分析サーバー データベース (OLAP キューブ) にアクセスする動的レポート

SQL Server データベースにアクセスする動的レポート

SQL Server データベースにアクセスする静的レポート

分析サーバー データベース (OLAP キューブ) にアクセスする動的レポート

静的レポートでは OLAP キューブは使われません。次の表は、動的レポートと、各レポートがアクセスする OLAP データベースのキューブの一覧です。

レポート | OLAP キューブ | connstr_OLAP (サーバー側) のアクセス許可
利用状況の傾向 | mscsWebUsage | 参照
ユーザーの傾向 | mscsWebUsage | 参照
ブラウザごとの利用状況 | mscsWebUsage | 参照
時間ごとの重複しないユーザー数 | mscsWebUsage | 参照
利用状況の要約 (週単位/年間) | mscsWebUsage | 参照
利用状況の要約 (曜日単位) | mscsWebUsage | 参照
利用状況の要約 (時間単位) | mscsWebUsage | 参照
一般的な利用状況の統計 (動的レポート) | mscsWebUsage | 参照
最初に参照したページ | Entry Pages | 参照
最後に参照したページ | Exit Pages | 参照
帯域幅の要約 | Bandwidth | 参照
帯域幅の傾向 | Bandwidth | 参照
商品別売り上げ | mscsSales | 参照
ヒット数 (HTTP ステータスごと) | Page Usage | 参照
ヒット数 (Win32 ステータスごと) | Page Usage | 参照
ディレクトリ | Page Usage | 参照
参照元ドメインを要求順に表示 | mscsWebUsage | 参照
要求の多いページ | Page Usage | 参照
ユーザーの訪問の傾向 | mscsWebUsage | 参照
キャンペーン項目の要約 | mscsCampaign | 参照
広告の表示回数とヒット率 (日付単位) | mscsCampaign | 参照
広告の表示回数とヒット率 (広告主単位) | mscsCampaign | 参照
バイヤーの参照の状況 | Buyer Visits | 参照
キャンペーン イベントの要約 | mscsCampaign | 参照
買い物バスケット イベント | Basket Events | 参照
注文イベント | OrderEvents | 参照

SQL Server データベースにアクセスする動的レポート

次の表は、SQL Server データベースにアクセスする動的レポートと、各レポートがアクセスするデータベースのテーブルの一覧です。

レポート | データ ウェアハウスのテーブル | connstr_db_dw (サーバー側) のアクセス許可
登録済みユーザー数 (登録日別) | RegisteredUser LinkSiteRegisteredUserRel Site | 参照
ユーザー登録までの日数 | UserRegistrationFactView | 参照
ユーザーの登録状況 | RegisteredUser LinkSiteRegisteredUserRel Site | 参照

HTTPS 経由でこれらのレポートにアクセスする場合は、静的レポートに書き換える必要があります。

SQL Server データベースにアクセスする静的レポート

次の表は、ビジネス デスクのレポートと、各レポートが使うデータ ウェアハウスのテーブルの一覧です。

レポート | データ ウェアハウスのテーブル | アクセス許可
クエリ文字列 (複数値) | MVQueryStringFactTable MVQStringName Site Date | 参照
クエリ文字列 (単数値) | SVQueryStringFactTable Site Date | 参照
登録済みユーザーのプロパティ | RegisteredUser LinkSiteRegisteredUserRel Site | 参照
顧客別の売り上げ | OrderFormHeader OrderGroup RegisteredUser Site CurrencyCode | 参照
新規登録済みユーザー | RegisteredUser LinkSiteRegisteredUserRel Site | 参照
レポート | データ ウェアハウスのストアド プロシージャ | アクセス許可
エントリ画面の分析 | CSDW_MakePathAnalysis | 実行

関連項目

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

データ ウェアハウスの接続文字列

データ ウェアハウスの接続文字列を構成する

分析サーバーのアカウントを構成する

HTTPS 経由で分析サーバーにアクセスする


セキュリティで保護されたデータ ウェアハウスの配置の概要

次の図は、セキュリティで保護された運用環境にデータ ウェアハウスを配置するときの推奨される構成を示しています。

この図で、データ ウェアハウスが、実行時の Commerce Server データベースと異なるサーバーに配置されているのは、セキュリティ上の理由ではなく、パフォーマンス上の理由です。

データ ウェアハウスは、必ずファイアウォールの内側に配置します。Web サーバー ログ ファイルは、インポートする前にファイアウォールの内側のサーバーにコピーします。Microsoft Internet Security and Acceleration Server を使ってファイアウォールを作成する方法については、「セキュリティで保護されたサイトの配置」を参照してください。

データ ウェアハウスの SQL Server データベースおよび Analysis Services (OLAP) データベースへの接続には、Windows 認証を使います。ビジネス デスク ユーザーには、基本認証を使います。

SQL Server 認証を使って既に Commerce Server をインストールしている場合は、Windows 統合セキュリティを使うようにデータ ウェアハウスの接続文字列を変更できます。操作方法については、「データ ウェアハウスの接続文字列を構成する」を参照してください。

関連項目

セキュリティで保護されたサイトの配置

1 つのデータ ウェアハウスを共有する複数のサイトを配置する

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト

Commerce Server には、実行時の Commerce Server データベースおよび管理データベースに対して実行するセキュリティ スクリプトが用意されています。これらのスクリプトは、Program Files\Microsoft Commerce Server\Support フォルダにあります。

これらのスクリプトによって、各データベースに対する DTS_ImportRole が作成され、指定されたデータベースに対する適切なアクセス許可がこのロールに割り当てられます。

次の表は、DTS タスクのセキュリティ スクリプトと、各スクリプトの対象となるデータベースの一覧です。

スクリプト | 対象となるデータベース
Dts_AdminDB_SecurityRole.sql | 管理データベース
Dts_CommerceDB_Campaign_SecurityRole.sql | キャンペーン
Dts_CommerceDB_Catalog_SecurityRole.sql | カタログ
Dts_CommerceDB_Transaction_SecurityRole.sql | トランザクション
Dts_CommerceDB_UPM_SecurityRole.sql | プロファイル

実行時の Commerce Server データベース テーブルは、1 つのデータベースに保持することも、各リソース固有のデータベースに保持することもできます。

これらのスクリプトは、SQL Server に対して機能し、実行時の Commerce Server データベースと管理データベースに格納されているデータを処理するように設計されています。Active Directory や Oracle データベースには利用できません。

注

  • DTS_ImportRole には、データ ウェアハウス構成ウィザードを使って非 Commerce Server アプリケーションを作成するためのアクセス許可はありません。DTS_ImportRole に属するユーザーは非 Commerce Server アプリケーションを作成する作業を行うことはできますが、アプリケーションは作成されません。

    データ ウェアハウス構成ウィザードを使って非 Commerce Server アプリケーションを作成できるのは、Administrators グループのメンバだけです。

  • データ ウェアハウスのインポート ウィザードを実行してパッケージを保存するには、DTS タスクを実行している SQL Server の msdb データベースに対する参照、挿入、および更新のアクセス許可が、アカウントに付与されている必要があります。msdb データベースは、SQL Server Agent が警告とジョブのスケジュールを設定するときに使われます。また、DTS パッケージを保存するときにアクセスされます。さらに、ユーザーが DTS パッケージを保存できるように、sysDTSPackage オブジェクトについても同じアクセス許可を割り当てます。
  • SQL Server Agent で Commerce Server DTS タスクのスケジュール設定する場合は、DTS_ImportRole のメンバになっている Windows サービス アカウントで SQL Server Agent サービスを実行する必要があります。
  • Commerce Server マネージャ、Windows Scripting Host、または SQL Server Enterprise Manager から直接 Commerce Server DTS タスクを実行する場合は、Windows ログイン アカウントが DTS_ImportRole のメンバである必要があります。

DTS タスクのセキュリティ スクリプトを実行するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザで、[データベース] ボックスの一覧から、スクリプトの対象となるデータベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、実行する DTS セキュリティ スクリプトを選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、選択したデータベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、DTS タスクの各セキュリティ スクリプトを、該当するデータベースに対して実行します。
  8. 各データベースの DTS_ImportRole を作成したら、DTS タスクを実行する適切なユーザーのアカウントに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

関連項目

DTS タスクの実行に必要なアクセス許可


Dts_AdminDB_SecurityRole.sql スクリプト

このスクリプトは、管理データベースに対して実行します。操作方法については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

このスクリプトによって、管理データベースに対する DTS_ImportRole が作成されます。このロールに、Commerce Server DTS タスクを実行するユーザーを追加します。

Dts_AdminDB_SecurityRole.sql スクリプトは、管理データベースの次のテーブルに対するアクセス許可を DTS_Import ロールに付与します。

管理データベースのテーブル | DTS タスクに必要なアクセス許可
ExtendedProps | 参照 挿入 更新 削除
Pupdbscripts | 参照
ResourceProps | 参照 挿入 更新 削除
Resources | 参照 更新
SiteResources | 参照
Sites | 参照 更新
SystemProps | 参照

関連項目

DTS タスクの実行に必要なアクセス許可


Dts_CommerceDB_Campaign_SecurityRole.sql スクリプト

このスクリプトは、キャンペーン データベースに対して実行します。操作方法については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

このスクリプトによって、キャンペーン データベースに対する DTS_ImportRole が作成されます。このロールに、キャンペーン データ インポート DTS タスクを実行するユーザーを追加します。

Dts_CommerceDB_Campaign_SecurityRole.sql スクリプトは、キャンペーン データベースの次のテーブルに対する参照のアクセス許可を DTS_Import ロールに付与します。

ad_item
campaign
campaign_item
campaign_item_types
creative
creative_size
creative_type
creative_type_xref
customer
dm_item
event_type
industry_code
order_discount
page_group
page_group_xref
target
target_group
target_group_xref

関連項目

DTS タスクの実行に必要なアクセス許可


Dts_CommerceDB_Catalog_SecurityRole.sql スクリプト

このスクリプトは、カタログ データベースに対して実行します。操作方法については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

このスクリプトによって、カタログ データベースに対する DTS_ImportRole が作成されます。このロールに、商品カタログ インポート DTS タスクを実行するユーザーを追加します。

Dts_CommerceDB_Catalog_SecurityRole.sql スクリプトは、カタログ データベースの次のテーブルに対する参照のアクセス許可を DTS_Import ロールに付与します。

  • CatalogGlobal
  • CatalogAttributes
  • CatalogGlobal テーブルのカタログ名がプレフィックスとして付いているすべてのテーブルとビュー

関連項目

DTS タスクの実行に必要なアクセス許可


Dts_CommerceDB_Transaction_SecurityRole.sql スクリプト

このスクリプトは、トランザクション データベースに対して実行します。操作方法については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

このスクリプトによって、トランザクション データベースに対する DTS_ImportRole が作成されます。このロールに、トランザクション データ インポート DTS タスクを実行するユーザーを追加します。

Dts_CommerceDB_Transaction_SecurityRole.sql スクリプトは、トランザクション データベースの次のテーブルに対する参照のアクセス許可を DTS_Import ロールに付与します。

OrderFormHeader
OrderFormLineItems
OrderGroup
OrderGroupAddresses
TransCategory
TransDimension

関連項目

DTS タスクの実行に必要なアクセス許可


Dts_CommerceDB_UPM_SecurityRole.sql スクリプト

このスクリプトは、プロファイル データベースに対して実行します。操作方法については、「DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

このスクリプトによって、プロファイル データベースに対する DTS_ImportRole が作成されます。このロールに、プロファイル データ インポート DTS タスクを実行するユーザーを追加します。

Dts_CommerceDB_UPM_SecurityRole.sql スクリプトは、プロファイル データベースの次のテーブルに対する参照のアクセス許可を DTS_Import ロールに付与します。

ClassDef
ClsAttrib
ColDef
CommerceServerCatalogs
GroupMem
MemAttrib
MemberDef
RelDef
SourceAttrib
SourceDef
TableDef

プロファイル スキーマの変更

プロファイル スキーマを変更し、新しいオブジェクトを追加する場合は、プロファイル データ インポート タスクが正常に動作するように、これらのオブジェクトに対する参照のアクセス許可を付与する必要があります。

たとえば、ソリューション サイトをアンパックする場合は、ソリューション サイトに含まれるプロファイル スキーマのための、次のテーブルに対する参照のアクセス許可を付与する必要があります。

Addresses
BlanketPOs
OrganizationObject
UserObject

関連項目

DTS タスクの実行に必要なアクセス許可


DTS タスクの実行に必要なアクセス許可

Commerce Server DTS タスクを実行するには、ログイン アカウントを次のように構成する必要があります。

  • アカウントは、該当の DTS タスクで使うデータベースの DTS_ImportRole のメンバにする必要があります。
  • DTS タスクを実行するコンピュータで、DTSImport アカウントを "Power Users" グループに割り当てます。
  • アカウントは、データ ウェアハウス データベースの dbo ユーザーにマップする必要があります。ログイン名を dbo にマップするには、クエリ アナライザで、次のように sp_addalias ストアド プロシージャを実行します。
    Exec sp_addalias 'domain\login','dbo'

    クエリ アナライザで sp_addalias ストアド プロシージャを実行するには、"sa" 権限でログインする必要があります。

    マップ対象のユーザーがデータ ウェアハウスに既に追加されている場合、sp_addalias ストアド プロシージャは失敗します。sp_addalias ストアド プロシージャ以外の方法でアカウントを追加しないでください。

  • アカウントは、DTS タスクを実行しようとするコンピュータ上の Commerce Server Config COM+ アプリケーションの Administrators ロールのメンバにする必要があります。

    Administrators ロールのユーザーだけが、DTS タスクの実行に必要な GlobalConfig2 オブジェクトのインスタンスを作成できます。Config アプリケーションの Administrators ロールの詳細については、「Commerce Server Config COM+ アプリケーション」を参照してください。

  • データ ウェアハウスのインポート ウィザードを実行してパッケージを保存するには、DTS タスクを実行している SQL Server の msdb データベースに対する参照、挿入、および更新のアクセス許可が、アカウントに付与されている必要があります。msdb データベースは、SQL Server Agent が警告とジョブのスケジュールを設定するときに使われます。また、DTS パッケージを保存するときにアクセスされます。さらに、ユーザーが DTS パッケージを保存できるように、sysDTSPackage オブジェクトについても同じアクセス許可を割り当てます。

次の表は、各 DTS タスクを実行するログイン アカウントが所属しなければならないロールの一覧です。

実行対象の DTS タスク | 所属しなければならないロール
構成の同期 | 管理データベースの DTS_ImportRole
Web サーバー ログ インポート | 管理データベースの DTS_ImportRole
トランザクション データ インポート | トランザクション データベースの DTS_ImportRole
商品カタログ インポート | カタログ データベースの DTS_ImportRole
データ削除 | 管理データベースの DTS_ImportRole
IP 解決 | 所属しなければならないロールは特になし
レポート準備 | OLAP Administrators グループ

注

  • 次のいずれかの作業を実行したら、CatalogSecurityRoles スクリプトと Dts_CommerceDB_Catalog_SecurityRole スクリプトを再実行してください。
    • 新しいカタログの作成
    • カタログへの言語の追加
    • 仮想カタログの再構築
  • 新しいキャンペーンを作成したら、Dts_CommerceDB_Campaign_SecurityRole スクリプトを再実行してください。
  • プロファイル データベースの拡張 (新しいプロファイル定義の作成) を行う場合は、DTSImport アカウントにアクセス許可を手動で割り当てます。
  • Config COM+ アプリケーション アカウントは、データ ウェアハウスの SQL Server に対する db_owner ロールのメンバにする必要があります。

モデル ビルダ DTS タスクの実行に必要なアクセス許可の詳細については、「予測の配置にセキュリティを設定する」を参照してください。

関連項目

DTS タスクがアクセスするデータベースにセキュリティを設定するスクリプト


レポートがアクセスするデータベースにセキュリティを設定するスクリプト

Commerce Server には、次の 2 つのスクリプトが用意されています。これらのスクリプトを使って、2 つのレポート ロールを作成することができます。

  • ReportViewer.sql このスクリプトを使うと、データ ウェアハウスの SQL Server データベースに対する ReportViewerRole が作成されます。ReportViewerRole には、ビジネス デスク ユーザーが次の作業を行うためのアクセス許可が付与されます。
    • 動的レポートおよび静的レポートの実行と表示
    • 完成した静的レポートの削除
  • ReportAdvanced.sql このスクリプトを使うと、データ ウェアハウスの SQL Server データベースに対する ReportAdvancedRole が作成されます。ReportAdvancedRole には、ビジネス デスク ユーザーが次の作業を行うためのアクセス許可が付与されます。
    • 動的レポートの保存
    • 既存のシステム以外の動的レポートの変更
    • システム以外の動的レポートと静的レポートの削除

    このスクリプトは、自分自身を ReportViewerRole にメンバとして追加します。そのため、ReportAdvancedRole のユーザーは、ReportViewerRole のすべてのアクセス許可を継承します。

これらのスクリプトには、Commerce データベースに対する必要なアクセス許可は含まれていません。Commerce データベースに対するテーブル作成のアクセス許可を割り当てる必要があります。

これらのスクリプトは、\Program Files\Microsoft Commerce Server\Support フォルダにあります。

ReportViewer スクリプトと ReportAdvanced スクリプトを実行するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザで、[データベース] ボックスの一覧からデータ ウェアハウスの SQL Server データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、ReportViewer を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、データ ウェアハウス データベースに対してスクリプトを実行します。
  7. これらの手順を繰り返して、ReportAdvanced スクリプトを実行します。

    ReportAdvanced スクリプトは、自分自身を ReportViewerRole のメンバとして追加します。そのため、ReportAdvancedRole のユーザーは、ReportViewerRole のすべてのアクセス許可を継承します。

  8. ロールを作成したら、ビジネス デスクのグループ アカウントを ReportViewerRole に割り当て、ReportAdvanced アカウントを ReportAdvancedRole に割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。


ReportViewer.sql スクリプト

ReportViewer.sql スクリプトは、\Program Files\Microsoft Commerce Server\Support フォルダにあります。

ReportViewer.sql スクリプトは、データ ウェアハウの SQL Server データベースと OLAP データベースのテーブルに対するアクセス許可を ReportViewer ロールに付与します。

ここでは、付与されるテーブルおよびビューのアクセス許可について説明します。

動的レポートを実行および表示する (SQL) : 参照のアクセス許可

次の 2 つの動的レポートが、データ ウェアハウスの SQL Server データベースのデータにアクセスします。

  • 登録済みユーザー数 (登録日別) レポート
  • ユーザーの登録状況レポート

ビジネス デスク ユーザーがこれらの動的レポートを実行および表示できるように、ReportViewer.sql スクリプトは、データ ウェアハウスの次のテーブルに対する参照のアクセス許可を ReportViewer ロールに付与します。

Report
RegisteredUser
LinkSiteRegisteredUserRel

動的レポートを実行および表示する (OLAP) : 参照のアクセス許可

ビジネス デスク ユーザーが、データ ウェアハウスの OLAP データベースのデータを使う動的レポートを実行および表示できるように、ReportViewer.sql スクリプトは、OLAP データベースの次のビューに対する参照のアクセス許可を ReportViewer ロールに付与します。

CampaignItemDimensionView
csdw_BuyerTypeDimensionView
csdw_CampaignEventsDXView
csdw_CampaignEventsFactView
csdw_SalesToUser
csdw_UserStatusViewLU
csdw_UserStatusViewRU
csdw_UserTypeDimensionView
csdw_VisitByUser
csdw_VisitInfoDXView
csdw_VisitInfoFactView
csdw_VisitTypeDimensionView
DateDimensionView
EventsDimensionView
FirstRequest
IsRequestDimensionView
PageGroupDimensionView
RegisteredUserDimensionView
SiteDimensionView
sysconstraints
syssegments
Trans_Predictor
UserBrowsingtoPurchaseFactView
UserRegistrationFactView

静的レポートを表示する : 参照のアクセス許可

ビジネス デスク ユーザーが、データ ウェアハウスの SQL Server データベースのデータを使う静的レポートを表示できるように、ReportViewer.sql スクリプトは、データ ウェアハウス データベースの次のテーブルに対する参照のアクセス許可を ReportViewer ロールに付与します。

ReportDimension
ReportInstanceDbObject
ReportInstanceParam
ReportParam
ReportStatus
GroupReportJob
GroupReportStatus
GroupReportDbObject

静的レポートを実行する : 挿入のアクセス許可

ビジネス デスク ユーザーが、データ ウェアハウスの SQL Server データベースのデータを使う静的レポートを実行できるように、ReportViewer.sql スクリプトは、データ ウェアハウス データベースの次のテーブルに対する挿入のアクセス許可を ReportViewer ロールに付与します。

ReportInstanceDbObject
ReportInstanceParam
ReportStatus
GroupReportJob
GroupReportStatus
GroupReportDbObject

完成した静的レポートを削除する : 削除のアクセス許可

ビジネス デスク ユーザーが、データ ウェアハウスの SQL Server データベースのデータを使う静的レポートを削除できるように、ReportViewer.sql スクリプトは、データ ウェアハウス データベースの次のテーブルに対する削除のアクセス許可を ReportViewer ロールに付与します。

ReportInstanceParam
ReportStatus

関連項目

データ ウェアハウスの接続文字列

データ ウェアハウスの接続文字列を構成する

分析サーバーのアカウントを構成する

HTTPS 経由で分析サーバーにアクセスする


ReportAdvanced.sql スクリプト

ReportAdvanced.sql スクリプトは、\Program Files\Microsoft Commerce Server\Support フォルダにあります。

ReportAdvanced.sql スクリプトを実行すると、ReportAdvanced データベース ロールが作成されます。ReportAdvanced ロールは、ReportViewer ロールに付与されたすべてのアクセス許可を継承します。

ReportAdvanced.sql スクリプトは、データ ウェアハウスの SQL Server データベースのテーブルに対するアクセス許可を ReportAdvanced ロールに付与して、ビジネス デスク ユーザーが次の作業を実行できるようにします。

  • 新しい動的レポートの作成
  • カスタム レポートの削除
  • 既存のレポートの変更

ReportAdvanced.sql スクリプトは、データ ウェアハウスの次のテーブルに対するアクセス許可を ReportAdvanced ロールに付与します。

データ ウェアハウスのテーブル アクセス許可
Report
 挿入
更新
削除
ReportDimension
 削除
ReportParam
 削除
ReportStatus
 削除
GroupReportJob
 削除
GroupReportStatus
 削除
GroupReportDbObject
 削除


分析サーバーのアカウントを構成する

次の Commerce Server ビューは、SQL Server データベースに対して実行される動的レポートで使われます。分析サーバー (OLAP) データベース用に定義したアカウントに、これらのすべてのビューに対する参照のアクセス許可を付与します。その他のロールまたはアカウントには、これらのビューへのアクセス許可は必要ありません。

CampaignItemDimensionView
csdw_BuyerTypeDimensionView
csdw_CampaignEventsDXView
csdw_CampaignEventsFactView
csdw_SalesToUser
csdw_UserStatusViewLU
csdw_UserStatusViewRU
csdw_UserTypeDimensionView
csdw_VisitByUser
csdw_VisitInfoDXView
csdw_VisitInfoFactView
csdw_VisitTypeDimensionView
DateDimensionView
EventsDimensionView
FirstRequest
IsRequestDimensionView
PageGroupDimensionView
RegisteredUserDimensionView
SiteDimensionView
sysconstraints
syssegments
Trans_Predictor
UserBrowsingtoPurchaseFactView
UserRegistrationFactView

関連項目

データ ウェアハウスの接続文字列

データ ウェアハウスの接続文字列を構成する

分析サーバーのアカウントを構成する

HTTPS 経由で分析サーバーにアクセスする


HTTPS 経由で分析サーバーにアクセスする

注

  • この機能には、分析サーバーの Enterprise Edition を含む SQL Server 2000 Enterprise Edition が必要です。

ビジネス分析システムでは、インターネット インフォメーション サービス (IIS) 経由で Analysis Services に接続 (OLAP データベースにアクセス) することによって、ビジネス デスク ユーザーが動的レポートを実行できます。これは、HTTP または HTTPS を使って実行できます。HTTPS を使ってこの接続方法を構成すると、PivotTable サービスがファイアウォールまたはプロキシ サーバーを通過して Analysis Services サーバーに到達できます。

ビジネス デスク ユーザーがファイアウォールを経由してレポートを実行できるようにサイトを構成する方法を示す図

HTTPS 経由で Analysis Services にアクセスするよう構成するには、次の操作を行います。

  • IIS と SQL Server Analysis Services 2000 を同じコンピュータにインストールします。操作方法については、「Commerce Server 2002 インストール ガイド」を参照してください。
  • Commerce Server マネージャを使って [データ ウェアハウスのプロパティ] ダイアログ ボックスにアクセスして、Analysis Services クライアント接続文字列 (ConnStr_OLAP_Client) を構成します。接続文字列のデータ ソース プロパティに URL を指定します。
  • IIS を使って Msolap.asp を構成します。

HTTPS 経由で Analysis Services にアクセスする場合、ConnStr_OLAP_Client 接続文字列の形式は次のようになります。

Provider=MSOLAP;user id=Domain\Username;password=Password;Data Source=https://ServerName;Initial Catalog=OLAPDatabaseName

注

  • 上記の接続文字列では、HTTPS および基本認証を使うことをお勧めします。ユーザー ID とパスワードは、Analysis Services コンピュータ上の有効な Windows ユーザーのもので、<ドメイン名>\<ユーザー ID> という形式であれば、どれでもかまいません。たとえば、REDMOND\SeanChai となります。レポート ロール用に作成する Windows アカウントを使うことをお勧めします。レポート ロールについては、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」で説明しています。
  • Secure Sockets Layer (SSL) および HTTPS では、HTTP より多くのハードウェア リソースが必要になります。詳細については、インターネット インフォメーション サービス 5.0 のマニュアルの「暗号化について」を参照してください。

Analysis Services クライアント接続文字列 (ConnStr_OLAP_Client) を構成するには

  1. [Commerce Server マネージャ]、[グローバル リソース] の順に展開し、[データ ウェアハウス] を右クリックして、[プロパティ] をクリックします。
  2. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [分析サーバー] タブにある [クライアント接続] セクションで、次の操作を行います。
    項目 | 操作
    [HTTP を使用して接続する] | このオプションを選択します。
    [SSL を使用] | このオプションを選択します。
    [ユーザー ID] と [パスワード] 有効な Windows ユーザー ID とパスワードを <ドメイン>\<ユーザー ID> の形式で入力します。たとえば、「REDMOND\SeanChai」と入力します。

    レポート ロール用に作成する Windows アカウントを使うことをお勧めします。
    [サーバー] | 分析サーバーの名前を入力します。
    [データベース] | データ ウェアハウスの OLAP データベースの名前を入力します。
  3. [OK] をクリックして、変更を保存します。

Msolap.asp を構成するには

  1. エクスプローラを使って、\Program Files\Microsoft Analysis Services\Bin フォルダにある Msolap.asp を \Inetpub\wwwroot フォルダにコピーします。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  3. 管理しているサーバーを展開し、[既定の Web サイト] をクリックします。
  4. 詳細ペインで、[Msolap.asp] を右クリックし、[プロパティ] をクリックします。
  5. [プロパティ] ダイアログボックスの [ファイル] タブで、[読み取り] を選択し、[スクリプト ソース アクセス] を選択します。
  6. [適用] をクリックして、プロパティを設定します。
  7. [ファイル セキュリティ] タブの [IP アドレスとドメイン名の制限] セクションで [編集] をクリックします。
  8. [拒否する] をクリックし、[追加] をクリックして、アクセス許可を付与する対象を権限のある IP 範囲に限定します。
  9. [OK] をクリックして、プロパティを設定します。
  10. [ファイル セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
  11. [匿名アクセス] が選択されていないこと、および [基本認証] が選択されていることを確認します。
  12. [ファイル セキュリティ] タブの [セキュリティ保護された通信] セクションで、[編集] をクリックします。
  13. [保護されたチャンネル (SSL) を要求する] が選択されていることを確認します。

    重要

    • このコンピュータに SSL 証明書を設定していない場合は、Commerce Server マネージャの [データ ウェアハウスのプロパティ] ダイアログ ボックスの [クライアント接続] セクションで [SSL を使用] を使うことができません。使おうとしても、接続は評価されません。SSL 証明書の設定については、IIS のマニュアルを参照してください。
  14. [OK] をクリックして、[データ ウェアハウスのプロパティ] ダイアログ ボックスを閉じます。
  15. IISReset コマンドで IIS を再起動して、新しいプロパティを有効にします。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


データ ウェアハウスの接続文字列を構成する

データ ウェアハウスの接続文字列は、プログラムによって構成することも、Commerce Server マネージャを使って構成することもできます。

Commerce Server マネージャを使って接続文字列を構成する

プログラムによって接続文字列を構成する

管理データベースからデータ ウェアハウスの接続文字列を読み取るためのクエリ

Commerce Server マネージャを使って接続文字列を構成する

  1. [Commerce Server マネージャ] の [グローバル リソース] を展開し、[データ ウェアハウス] を右クリックして、[プロパティ] をクリックします。
  2. [SQL Server] タブで、接続文字列 connstr_db_dw および connstr_db_Analysis の認証モードを指定します。
    • SQL Server 認証を指定した場合、connstr_db_dw にはユーザー ID とパスワードが使われます。ただし、connstr_db_Analysis (クライアント側の接続文字列) には、セキュリティ上の理由から、引き続き Windows 認証が使われます。
    • [Windows NT 認証] を指定すると、connstr_db_dw は Windows 認証を使うように構成されます。

    次のダイアログ ボックスの例は、ダイアログ ボックスで構成される接続文字列を示しています。

    SQL Server のデータ ウェアハウス データベース用に構成される接続文字列を示す画面の例

  3. [分析サーバー] タブで、接続文字列 ConnStr_OLAP、ConnStr_OLAP_HA、および ConnStr_OLAP_Client の認証モードを指定します。

    次のダイアログ ボックスの例は、ダイアログ ボックスの各セクションで構成される接続文字列を示しています。

プログラムによって接続文字列を構成する

データ ウェアハウスの接続文字列をプログラムによって構成するときは、解析されたプロパティのセットも更新する必要があります。

  • データ ウェアハウスの SQL Server 接続文字列 (ConnStr_dw、connstr_db_dw、および connstr_db_Analysis) を更新するときは、次の解析されたプロパティも更新する必要があります。
    プロパティ 説明
    Schema_ctlgDbName
            データ ウェアハウス データベース名 (BlankSite_dw など)。
    Schema_ctlgName
            スキーマ カタログ名 (DWSchema など)。
    Schema_ctlgUserID
            データ ウェアハウスの接続文字列に含まれるユーザー ID。Windows 認証を使う場合は、この文字列は空でなければなりません。
    Schema_ctlgPsw
            データ ウェアハウスの接続文字列に含まれるパスワード。Windows 認証を使う場合は、この文字列は空でなければなりません。
    Schema_ctlgSqlServerName
            データ ウェアハウス SQL Server 名。
  • 分析サーバー OLAP データベースの接続文字列 (ConnStr_OLAP) を更新するときは、次の解析されたプロパティも更新する必要があります。
    プロパティ 説明
    Schema_ctlgNameOLAPDbName
            分析サーバー OLAP データベース名
    Schema_ctlgNameOLAPServerName
            分析サーバー名

管理データベースからデータ ウェアハウスの接続文字列を読み取るためのクエリ

次のクエリを使って、MSCS_Admin データベースからデータ ウェアハウスの接続文字列を読み取ることができます。これらのクエリは、管理データベースにどのような接続文字列が格納されているかを調べる場合に役立ちます。

Select s_Value from ResourceProps where s_PropertyName = 'connstr_db_dw'
Select s_Value from ResourceProps where s_PropertyName = 'ConnStr_DB_Analysis'
Select s_Value from ResourceProps where s_PropertyName = 'ConnStr_OLAP'
Select s_Value from ResourceProps where s_PropertyName = 'ConnStr_OLAP_Client'
Select s_Value from ResourceProps where s_PropertyName = 'ConnStr_OLAP_HA'

関連項目

データ ウェアハウスの接続文字列を構成する

分析サーバーのアカウントを構成する

HTTPS 経由で分析サーバーにアクセスする

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


データ ウェアハウスのパスワードを変更する

SQL Server コンピュータの管理者のパスワードを変更する場合は、Commerce Server データ ウェアハウスのパスワード、およびすべてのリソースの接続文字列も変更する必要があります。

データ ウェアハウスのパスワードを変更するときは、次の 2 箇所で変更する必要があります。

  • SQL Server データ ウェアハウス データベースへのデータベース接続文字列を指定するデータ ウェアハウスのグローバル リソース
  • SQL Server データ ウェアハウス データベースに接続するデータ ウェアハウスの OLAP データベース

データ ウェアハウスのパスワードを変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[グローバル リソース] を展開し、パスワードを変更するデータ ウェアハウスを右クリックして、[プロパティ] をクリックします。
  3. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [SQL Server] タブをクリックします。
  4. [SQL Server] タブの [パスワード] ボックスに新しいパスワードを入力し、[OK] をクリックします。
  5. Commerce Server マネージャで [分析サーバー] を展開し、OLAP サーバー名を展開します。次に OLAP データベースを展開し、[データ ソース] を展開します。
  6. データ ウェアハウスのデータ ソース (COMMERCE_DataWarehouse など) を右クリックし、[編集] をクリックします。
  7. [データ リンク プロパティ] ダイアログ ボックスで、新しいパスワードを入力し、[OK] をクリックします。

関連項目

グローバル リソースを構成する

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

データ ウェアハウスの接続文字列を構成する

分析サーバーのアカウントを構成する

HTTPS 経由で分析サーバーにアクセスする


レポート マネージャのアカウントを変更する

静的レポートを生成するために、レポート表示コンポーネントであるレポート マネージャが SQL Server コンピュータ上で動作し、その静的レポートに必要なデータ ウェアハウスのテーブルにアクセスします。ビジネス デスク ユーザーがレポート マネージャに直接アクセスすることはありません。

レポート マネージャはローカル アカウントで動作します。このセキュリティ コンテキストを使うと、ビジネス デスク アプリケーションは、IIS に対するアクセス許可を追加しなくてもレポートを実行できますが、セキュリティ上の問題が発生する可能性があります。

重要

  • 静的レポートを実行するには、Commerce Server レポート マネージャの COM+ コンポーネントで指定したユーザーに、データ ウェアハウス データベースの db_owner ロールを割り当てる必要があります。

レポート マネージャのアカウントを変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. [コンピュータ] を展開し、[マイ コンピュータ] を展開します。次に [COM+ アプリケーション] を展開します。
  3. [Commerce Server Report Manager] を右クリックし、[プロパティ] をクリックします。
  4. [Commerce Server Report Manager のプロパティ] ダイアログ ボックスの [接続情報] タブで、レポート マネージャのユーザーとパスワードを指定し、[OK] をクリックします。


予測の配置にセキュリティを設定する

Windows 認証を使う予測の配置にセキュリティを設定するには、次の作業を実行します。

予測のサービス アカウントにセキュリティを設定する

モデル ビルダ DTS タスクを実行するためのアクセス許可を付与する

予測リソースの接続文字列を構成する

SegmentViewer スクリプトを実行して予測テーブルにセキュリティを設定する

Web サーバーに配置した予測モデルにセキュリティを設定する

セグメント ビューア モジュールとアフィニティ リスト モジュールを使うためのアクセス許可を付与する

予測のサービス アカウントにセキュリティを設定する

予測サービスに割り当てるアカウントには、"サービスとしてログオン" の権利が付与されている必要があります。Commerce Server は、セットアップ時にこの権利をアカウントに付与します。

予測サービスに割り当てるアカウントは、次のロールに割り当てる必要があります。

  • 管理データベース db_datareader ロールに割り当てます。
  • データ ウェアハウスの SQL Server データベース db_datareader、db_datawriter、および db_ddladmin ロールに割り当てます。
  • リスト マネージャのテーブル 参照、更新、挿入、および削除のアクセス許可を割り当てます。
  • キャンペーン データベース db_ddladmin、db_datawriter、および db_datareader ロールに割り当てます。
  • Config COM+ アプリケーション Administrators ロールに割り当てます。

予測のサービス アカウントに適切なデータベースへのアクセス許可を付与するには

  1. SQL Enterprise Manager で [セキュリティ] を展開し、[ログイン] を右クリックします。次に、[新規ログイン] をクリックします。
  2. Windows 認証を使う予測サービスの新しいログインを作成し、[OK] をクリックします。
  3. 表示ペインで、新しいログインを右クリックし、[プロパティ] をクリックします。
  4. [QL Server ログインのプロパティ] ダイアログ ボックスの [データベース アクセス] タブで、管理データベースを指定し、[db_datareader] ロールを選択します。
  5. データ ウェアハウスの SQL Server データベースを指定し、[db_datareader]、[db_datawrite]、および [db_ddladmin] の各ロールを割り当てます。
  6. [OK] をクリックします。

詳細については、SQL Server Books Online を参照してください。

予測のサービス アカウントを Administrators ロールに割り当てるには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. [コンポーネント サービス]、[コンピュータ]、[マイ コンピュータ]、[COM+ アプリケーション]、[Commerce Server Config]、[ロール]、[Administrators] の順に展開します。
  3. [ユーザー] を右クリックし、[新規作成] をクリックします。次に、[ユーザー] をクリックします。
  4. [ユーザーまたはグループの選択] ダイアログ ボックスの [場所] ボックスで、予測のサービス アカウント (CSPred など) を選択します。
  5. [OK] をクリックします。

モデル ビルダ DTS タスクを実行するためのアクセス許可を付与する

モデル ビルダ DTS タスクを実行する前に、まず予測サービス コンポーネントのセキュリティ コンテキスト (予測サービスを呼び出すことができるユーザー アカウントのリスト) にアカウントを追加する必要があります。

スケジュールに従って実行するようにモデル ビルダ タスクを設定する場合は、予測サービスを呼び出すことができるユーザー アカウントのリストに SQL エージェントのアカウントを追加する必要もあります。

予測のセキュリティ コンテキストにアカウントを追加するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。次に、「Dcomcnfg」と入力し、Enter キーを押します。
  2. [アプリケーション] タブで、[Microsoft Commerce Server Predictor Service] を選択し、[プロパティ] をクリックします。
  3. [セキュリティ] タブで、[独自のアクセス許可を使う] を選択し、[編集] をクリックします。
  4. [レジストリ値のアクセス許可] ダイアログ ボックスの [追加] をクリックします。
  5. モデル ビルダ タスクを実行するユーザー アカウントを追加し、[アクセスの種類] ボックスで [アクセスの許可] を選択します。
  6. Administrators グループには、"サービスとしてログオン" の権利が付与されている必要があります。
  7. [OK] をクリックして、変更を保存します。次に、[OK] をクリックして、[プロパティ] ダイアログ ボックスを閉じます。さらに、[OK] をクリックして、Dcomcnfg を終了します。
  8. 予測サービスを再起動します。

予測リソースの接続文字列を構成する

データ ウェアハウス データベース以外のデータベースでモデルを構築する場合は、外部データベースへの予測リソースの接続文字列を構成する必要があります。

外部データベースへの予測リソースの接続文字列は、常に Windows 認証用に構成することをお勧めします。

Windows 認証を使うように予測リソースを構成する場合、予測リソースで使うアカウントは、外部データベースに対する次のロールのメンバでなければなりません。

  • db_datareader
  • db_datawriter
  • db_ddladmin

予測サービスと外部データベースが別々のコンピュータにある場合、予測のサービス アカウントはドメイン ユーザー アカウントでなければなりません。

Windows 認証用に予測リソースの接続文字列を構成するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Predictor on <サーバー名>] を右クリックし、[プロパティ] をクリックします。
  2. [Predictor on <サーバー名> のプロパティ] ダイアログ ボックスの [接続文字列] タブで、[外部データベース] を選択し、[変更] をクリックします。
  3. [データ リンク プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー名を選択または入力します] | アクセスするデータ ウェアハウス データベース、または外部データベースがあるサーバーの名前を選択します。
    [Windows NT 統合セキュリティを使用する] | データ ウェアハウス データベースではなく、外部データベースに対して Windows 認証を使うときにクリックします。
    [サーバー上のデータベースを選択する] | アクセスするデータベース名を入力します。
  4. [OK] をクリックします。

SegmentViewer スクリプトを実行して予測テーブルにセキュリティを設定する

ここでは、データ ウェアハウスの SQL Server データベースに対して SegmentViewer スクリプトを実行します。このスクリプトを実行すると、データ ウェアハウスに対する SegmentViewer ロールが作成され、ビジネス デスクのセグメント ビューア モジュールでの作業に必要なアクセス許可が付与されます。

予測テーブルは、データ ウェアハウス データベースにあります。次の表は、予測テーブルと、システム管理者およびビジネス マネージャに必要なアクセス許可の一覧です。

テーブル システム管理者に必要なアクセス許可 ビジネス マネージャに必要なアクセス許可
PredictorDataTables
 フル アクセス 参照
更新
PredictorModelCfgs
 フル アクセス 参照
更新
PredictorModels
 フル アクセス 参照
更新
*PredictorAttribute_<model_config>
 フル アクセス 参照

* モデル構成 1 つにつき 1 つの PredictorAttribute_<モデル構成> テーブルがあります。このテーブルは、モデルを最初に構築するときに作成されます。

システム管理者は、モデル ビルダ DTS タスクを実行するとき、このテーブルへのフル アクセスが必要です。ビジネス デスク ユーザーは、ビジネス デスクのセグメント ビューア モジュールを使ってセグメントを操作できるように、参照のアクセス許可が必要です。

注

  • 予測サービスの実行とモデル ビルダ DTS タスクの実行には、異なるアカウントを使うことをお勧めします。両方のアカウントが Administrators グループに割り当てられていると、アクセス許可の拒否エラーが発生して、モデル ビルダ タスクは失敗します。

Windows グループの作成、Windows グループへの Windows アカウントの割り当て、および上記のテーブルの SQL Server ロールへの Windows グループの割り当てについては、「SQL Server データベース ロールを割り当てる」を参照してください。

SegmentViewer スクリプトを実行するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、使用する SQL Server を指定します。
  3. クエリ アナライザで、[データベース] ボックスの一覧からデータ ウェアハウスの SQL Server データベースを選択します。
  4. [ファイル] をクリックし、[開く] をクリックします。
  5. Program Files\Microsoft Commerce Server\Support フォルダにあるスクリプトに移動し、SegmentViewer を選択します。

    スクリプトが開き、そのコードが [クエリ アナライザ] ウィンドウに表示されます。

  6. ツール バーの 実行 をクリックして、データ ウェアハウスに対してスクリプトを実行します。

    SegmentViewer ロールが作成されます。

  7. ロールを作成したら、適切なビジネス デスクのグループ アカウントをロールに割り当てます。操作方法については、「SQL Server データベース ロールを割り当てる」を参照してください。

Web サーバーに配置した予測モデルにセキュリティを設定する

予測の配置にセキュリティを設定するための手順は、予測モデルが Web サーバー上のファイルにあるか、データベースにあるかによって異なります。

  • データベース データ ウェアハウスにある予測テーブルを Web サーバー上のデータベースにコピーする場合は、予測テーブルに対する参照のアクセス許可を匿名アカウントに付与する必要があります。IIS では、匿名ユーザー アカウントは IUSR_<コンピュータ名> で、コンピュータ アカウントは IWAM_<コンピュータ名> です。

    サイトが ASP.NET に基づいている場合は、予測テーブルに対する参照のアクセス許可を ASP.NET サイトで使われる匿名アカウント (ASPNET アカウント) に付与する必要があります。

  • ファイル 予測モデルをファイルとして Web サーバーにコピーする場合は、アクセス制御リスト (ACL) を使って、そのファイルにセキュリティを設定する必要があります。Everyone に読み取りのアクセス許可を付与します。操作方法については、Windows 2000 ヘルプを参照してください。

セグメント ビューア モジュールとアフィニティ リスト モジュールを使うためのアクセス許可を付与する

ビジネス デスク アクセス許可モジュールを使って、ビジネス デスク ユーザーにセグメント ビューア モジュールとアフィニティ リスト モジュールへのアクセス許可を付与します。これらのモジュールを開くことができるビジネス デスク ユーザー、および、これらのモジュールを使って特定の作業を実行できるビジネス デスク ユーザーを指定できます。たとえば、次の作業を指定できます。

  • セグメント ビューア モジュール : 開く。セグメント ラベルを保存する。レポートを作成する。ユーザー リストをリスト マネージャ モジュールにエクスポートする。
  • アフィニティ リスト モジュール : 開く。アフィニティ リスト リストをリスト マネージャ モジュールにエクスポートする。

アクセス許可モジュールを使って、セグメント ビューア モジュールとアフィニティ リスト モジュールへのアクセス許可を付与する方法の詳細については、「Windows アカウントに対してビジネス デスク アクセス許可を設定する」を参照してください。


ネットワークにセキュリティを設定する

ネットワークにセキュリティを設定する方法の詳細については、「セキュリティで保護されたサイトの配置」を参照してください。

電子商取引サイトにネットワークの保護を実装するには、次のセキュリティ要素を使います。

  • Commerce Server サイトで SSL を有効にする
  • 侵入検出システムを使う


Commerce Server サイトで SSL を有効にする

電子商取引サイトでは、顧客のクレジット カード番号などの機密情報を扱います。このようなデータは、安全なチャネルで暗号化され、伝送されます。セキュリティで保護されたデータ転送を実装するには、Secure Sockets Layer (SSL) を使います。

この機能を実装するには、デジタル証明書を取得し、サーバーにインストールする必要があります。デジタル証明書は、任意の証明機関から取得できます。商用の証明機関としては、VeriSign、CyberTrust、GTE などが有名です。

SSL は、HTTP (セキュリティで保護する場合は HTTPS と呼ばれる)、FTP、ネットワーク ニュース転送プロトコル (NNTP) などのプロトコルに使われるしくみです。データの送信に SSL を使うと、次のようになります。

  • データが暗号化される。
  • セキュリティで保護された接続が、送信元サーバーと送信先サーバー間に確立される。
  • サーバー認証が有効になる。

Commerce Server サイトで SSL を有効にするには

  1. インターネット サービス マネージャで、サーバー証明ウィザードを使って、サーバー証明書を Web サーバーにインストールし、構成します。操作方法については、IIS 5.0 のマニュアルの「サーバーに SSL をセットアップする」を参照してください。
  2. Commerce Server マネージャで、[Commerce サイト] を展開し、管理するサイトをクリックします。
  3. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  4. [<アプリケーション> のプロパティ] ダイアログ ボックスの [全般] タブで、[HTTPS を有効にする] チェック ボックスをオンにします。
  5. [Web サーバー] タブの [値の同期] をクリックして、IIS から Commerce Server 管理データベースに SSL ポートのプロパティをコピーします。

    SSL ポートの既定値は 443 です。443 以外の値にする場合は、[全般] タブの [保護付きのホスト名] ボックスに設定値を入力する必要があります。たとえば、「www.microsoft.com: 441」と入力します。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

セキュリティで保護されたサイトの配置

アプリケーションを構成する

Web サーバーを構成する

CS 認証リソースのプロパティを設定する


侵入検出システムを使う

侵入検出システム (IDS) は、攻撃の特徴やパターンを識別し、アラームを生成してオペレーション スタッフに警告し、ルーターの危険なソースとの接続を終了させることができます。このようなシステムは、サービス拒否攻撃を防ぐこともできます。

サービス拒否攻撃は、攻撃者が、正規の TCP 要求としてマークが付けられている TCP 要求のフラグメントを送信したとき、あるいは不良な IP ソースから要求を送信したときに発生します。サーバーは、処理できないほど大量の要求を受信すると、正規のサイト ユーザーにサービス拒否のメッセージを表示します。IDS はネットワーク トラフィックをリアルタイムで監視し、セキュリティの "予防、検出、反応" アプローチを実装しています。

IDS は、すべてのセキュリティ ドメインで、ファイアウォールの前面に実装する必要があります。IDS はセキュリティのために必要ですが、その使用にあたっては、次の問題点を考慮する必要があります。

  • IDS は集中的に処理を行うため、サイトのパフォーマンスに影響を及ぼすことがある。
  • IDS にはコストがかかる。
  • IDS は通常のネットワーク トラフィックを危険な攻撃と間違えて、不要な警告を発することがある。

侵入の検出に使用できる、サード パーティ製のツールが数多く出回っています。たとえば、Cisco の NetRanger や ISS の RealSecure を使って、ネットワーク トラフィックをリアルタイムで監視することができます。コンピュータ産業界では、IDS の拡張および開発が現在も継続しています。

関連項目

サービス拒否攻撃を防止する


Web サーバーにセキュリティを設定する

IIS Web サーバーのアクセス許可を設定し、匿名ユーザーによるアプリケーションへのアクセスを制限できます。また、Windows のアクセス許可 (またはアクセス制御エントリ) を持つユーザーに対しても、インターネット経由でのソース コードの参照を制限できます。

Web サーバーのアクセス許可と NTFS のアクセス許可の相違点を次に示します。

  • Web サーバーのアクセス許可は、Web サイトにアクセスするすべてのユーザーに適用されます。
  • NTFS のアクセス許可は、有効な Windows アカウントを持った特定のユーザーまたはユーザーのグループにのみ適用されます。NTFS はサーバーの物理ディレクトリへのアクセスを制御するのに対して、Web サーバーのアクセス許可は Web サイトの仮想ディレクトリへのアクセスを制御します。

サイト パッケージャを使ってサイトをパッケージ化すると、元のサイトで設定されていた Web サーバーのアクセス許可が継承されます。たとえば、元のコンピュータでアプリケーションのルート フォルダの [スクリプトおよび実行可能ファイル] に実行アクセス許可を設定していた場合は、インストール先のコンピュータの仮想ルート フォルダでも同じ設定になります。

たとえば、次の表は、Commerce Server ソリューション サイトで IIS のアクセス許可がどのように設定されているかを示しています。

フォルダ | アクセス許可
ルート | [スクリプトおよび実行可能ファイル] に実行アクセス許可を設定します。
Pipeline、Include、Template | 読み取り、書き込み、および実行のアクセス許可を拒否します。

ここでは、次のトピックについて説明します。

  • ビジネス デスク以外のアプリケーションにセキュリティを設定する


ビジネス デスク以外のアプリケーションにセキュリティを設定する

作成した unpack.vbs スクリプト ファイルを使って、ビジネス デスク以外のアプリケーションをアンパックする場合は、アンパック終了後、直ちにそのスクリプト ファイルを削除するか、またはセキュリティを設定する必要があります。このファイルはルート ディレクトリにあり、匿名ユーザーからもアクセスできます。このスクリプトが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。

ただし、サイトを再パッケージ化する場合は、この unpack.vbs ファイルが必要になります。

Commerce Server サイト パッケージャは、Windows アクセス制御リスト (ACL) の設定を変更しません。

サイトをアンパックした後で、Commerce Server サイトのいくつかのファイルおよびフォルダのアクセス許可を変更し、セキュリティを設定する必要があります。これと同時に、Web サーバーのアクセス許可を設定して、ファイルへのアクセスを制限することもできます。詳細については、「Web サーバーのアクセス許可の設定方法」を参照してください。

Commerce Server ソリューション サイトでは、unpack.vbs ファイルに既定でセキュリティが設定されます。


セキュリティに関する追加情報

セキュリティ ツールやサービス パックのリリースについては、http://go.microsoft.com/fwlink/?LinkId=6679 の Microsoft Security Web サイトにアクセスしてください。

サイトを開発および配置する前に、セキュリティに関する次の書籍を読むことを強くお勧めします。

  • 『Writing Secure Code』(Michael Howard and David LeBlanc, published by Microsoft Press, 2002.
    ISBN 0-7356-1588-8)
  • 『Designing Secure Web-Based Applications for Microsoft Windows 2000』(Michael Howard, Marc Levy, and Richard Waymire, published by Microsoft Press, 2000. ISBN 0-7356-0995-0)

次の書籍は優れた参考文献です。いずれも Microsoft Certified Systems Engineer (MCSE) プログラムに対応しています。

  • 『MCSE Training Kit: Designing Microsoft Windows 2000 Network Security』(published by Microsoft Press, 2001, ISBN 0-7356-1134-3)この書籍は Microsoft Certified Systems Engineer プログラムに対応しています。
  • 『MCSE Training Kit : Microsoft Internet Security and Acceleration Server 2000』(J.C. Mackin, published by Microsoft Press, 2001, ISBN 0-7356-1347-8)
  • 『MCSE Training Kit : Designing Highly Available Web Solutions with Microsoft Windows 2000 Server Technologies』(published by Microsoft Press 2001, ISBN 0-7356-1425-3)


ユーザーの認証

Commerce Server では、Windows 2000 が備えるアクセス制御リスト (ACL) や Windows 認証などのセキュリティ機能を利用しています。また、Windows のセキュリティ機能を拡張するための Commerce Server 独自の認証機能も用意されています。

ここでは、次のトピックについて説明します。

  • 認証の概念 認証チケット、cookie、CS 認証リソース、および Csapp.ini ファイルについて説明します。
  • 認証に関するヒント集 Active Directory、認証フィルタ、プロキシ アカウントを使用する際、およびパスワードにセキュリティを設定する際の推奨事項について説明します。
  • 認証フィルタと認証マネージャの比較 認証フィルタと認証マネージャの機能上の違いについて説明します。
  • 認証フィルタ 認証フィルタを使ってシングル サインオンをサポートする方法と、Retail ソリューション サイトや Supplier ソリューション サイト、または .NET ベースのサイトで認証フィルタを使う方法について説明します。
  • 認証マネージャ AuthManager オブジェクトについて説明します。認証マネージャによる要求処理のしくみを示す図も記載されています。
  • Windows 認証モード Windows 認証モードで認証フィルタを使う方法について説明します。
  • カスタム認証モード カスタム認証モードで認証フィルタを使う方法について説明します。
  • 自動 cookie モード 自動 cookie モードで認証フィルタを使う方法について説明します。
  • Windows 認証と自動 Cookie の混合モード Windows 認証モードと自動 cookie の混合モードで認証フィルタを使う方法について説明します。
  • カスタム認証と自動 cookie の混合モード カスタム認証モードと自動 cookie の混合モードで認証フィルタを使う方法について説明します。
  • CS 認証リソースのプロパティを設定する CS 認証リソースのプロパティについて説明します。
  • Exchange 2000 Outlook Web Access の基本認証 認証フィルタと Exchange 2000 OWA の基本認証を使う方法について説明します。
  • ドメイン コントローラにセキュリティ モードを設定する Commerce Server サイトで Windows 認証モードを使わなければならないドメイン ユーザーを有効にする方法について説明します。
  • cookie の新しい暗号化キーを生成する cookie データの暗号化および復号化に使用する新しい cookie 暗号化キーを生成する方法について説明します。
  • 認証チケットに対する暗号化キーのローリング 暗号化キーのローリング機能を使って、サイトの認証チケットの暗号化/復号化に使われる暗号化キーを変更する方法について説明します。
  • Login.asp を構成して GUID を使う Login.asp ページを更新する方法について説明します。このページの中に、ユーザーのチケットにグローバル一意識別子 (GUID) 文字列を割り当てるためのカスタム プロパティ "guid" を追加して、分散サービス拒否 (DDoS) 攻撃からサイトを保護します。
  • Passport と統合する Commerce Server を、Passport Express Purchase および Passport シングル サインインと統合する方法について説明します。


認証の概念

認証とは、ユーザー資格情報の有効性を確認するプロセスです。ユーザーがサイトにログオンする場合、ユーザー資格情報が承認リストと比較されます。Commerce Server によって一致していることが検出された場合は、Web サイトへのアクセス許可が付与されます。

ユーザー資格情報には、ユーザー名とパスワードの組み合わせ、証明書、または認証チケットがあります。この認証チケットは、cookie に格納されるか、URL 内にエンコードされます。ユーザーがサイトからログオフすると、認証の有効期間が終了します。したがって、ユーザーは、サイトに戻った場合は、再認証を受ける必要があります。

Commerce Server には、CS 認証リソースがあります。CS 認証リソースは、チケットをサイトに実装する方法を指定するために使われます。CS 認証リソースのプロパティは、Commerce Server マネージャで構成します。

ここでは、次のトピックについて説明します。

  • 認証チケット
  • Commerce Server cookie
  • CS 認証リソース
  • 認証用の Csapp.ini ファイルの値


認証チケット

Commerce Server は、認証チケットを使って、サイトを訪問するユーザーを認証します。認証チケットとは、ユーザーの認証に使われる手段です。認証チケットは、userID とその値など、プロパティ/値の組で構成されます。たとえば、"userID/joeuser" は、認証チケットに含まれるプロパティ/値の組です。

Commerce Server のチケットには、ログオン ID、ユーザーが前回サイトを訪問した時刻、チケットの有効期間を示す時間ウィンドウなど、サイトを訪問するユーザーに関する情報が含まれます。Commerce Server は、cookie を使ってユーザーの識別と認証を行い、ユーザーに関して収集したプロファイル情報にユーザー ID を関連付けます。

Commerce Server は、MSCSProfile チケットと MSCSAuth チケットの 2 種類の認証チケットを使います。ユーザーが初めてサイトにアクセスした場合、Commerce Server は、そのユーザーに MSCSProfile チケットを作成して、HTTP ヘッダーに書き込みます。登録済みユーザーが認証を受ける場合、Commerce Server は、MSCSAuth チケットを作成して、HTTP ヘッダーに書き込みます。どちらのチケットも、cookie に格納することや、URL クエリ文字列内にエンコードすることが可能です。

ここでは、次のトピックについて説明します。

MSCSProfile チケット

MSCSAuth チケット

登録する匿名ユーザー用のチケット

MSCSAuth チケットと MSCSProfile チケットの特性


MSCSProfile チケット

Commerce Server は、MSCSProfile チケットを使って、サイトを訪問する匿名ユーザーを識別および追跡します。MSCSProfile チケットは、固定 cookie を許可しているユーザーの固定 cookie に格納されます。ユーザーが固定 cookie を許可していない場合、MSCSProfile チケットは URL 内にエンコードされます。

MSCSProfile チケットを固定 cookie に格納する場合は、MSCSProfile チケットの有効期間 (通常は数年間) を指定できます。指定するには、CS 認証リソースの "プロファイル cookie の有効期限" プロパティを設定します。固定 cookie の詳細については、「Commerce Server cookie」を参照してください。

MSCSProfile が固定 cookie に格納された場合、チケットはセッションが終了した後もクライアント コンピュータ上に残ります。ユーザーが削除しない限り、固定 cookie は削除されません。

匿名ユーザーには MSCSProfile チケットだけを使うことをお勧めします。MSCSProfile チケットは固定 cookie に格納されるため、ユーザーの認証に MSCSProfile チケットを使わないでください。たとえば、インターネット カフェのシナリオを考えます。MSCSProfile チケットを使ってユーザーを認証すると、並んで待っていた次のユーザーが、前のユーザーにアクセス許可が付与されたページにアクセスできる可能性があります。

MSCSProfile チケットを使って、クレジット カード番号や社会保障番号など、機密性を要する個人情報へのアクセスを提供しないでください。MSCSProfile チケットは、パーソナライズ (名前付きのあいさつ文など) や各種設定 (UI 言語や表示の設定など) の提供、またはサイトを参照する匿名ユーザーの追跡に使います。

注

  • 暗号化されていないチケットは使わないでください。チケットが暗号化されていない場合、攻撃者はユーザー ID を合成することで、容易にチケットを乗っ取ることができ、またサイトを訪問する正規ユーザーの識別情報を盗むことができます。

関連項目

MSCSAuth チケット

登録する匿名ユーザー用のチケット

MSCSAuth チケットと MSCSProfile チケットの特性

認証チケットに対する暗号化キーのローリング

cookie を暗号化する


MSCSAuth チケット

Commerce Server は、MSCSAuth チケットを使って、登録済みおよび認証済みのユーザーを識別および追跡します。

MSCSAuth チケットは、セッション cookie に格納することや、URL 内にエンコードすることが可能です。セッションが終了すると、ブラウザがセッション cookie を自動的に削除します。したがって、ユーザーはサイトを再訪問する場合、再認証を受ける必要があります。

Commerce Server の認証メソッドである IsAuthenticated メソッドは、MSCSAuth チケットが存在するかどうかを確認し、チケットが有効であること、およびアクセス時間がチケットに含まれている時間ウィンドウの期間内にあることを確認します。

注

  • 暗号化されていないチケットは使わないでください。チケットが暗号化されていない場合、攻撃者はユーザー ID を合成することで、容易にチケットを乗っ取ることができ、またサイトを訪問する正規ユーザーの識別情報を盗むことができます。

関連項目

MSCSProfile チケット

登録する匿名ユーザー用のチケット

MSCSAuth チケットと MSCSProfile チケットの特性

認証チケットに対する暗号化キーのローリング

cookie を暗号化する


登録する匿名ユーザー用のチケット

匿名でサイトを訪問するユーザーは、MSCSProfile チケットを受け取ります。匿名ユーザーは、サイトに登録するときに MSCSAuth チケットを受け取ります。この結果、ユーザーは、MSCSProfile チケットと MSCSAuth チケットの 2 つのチケットを持つことになります。どちらのチケットも、HTTP ヘッダーに格納されます。HTTP ヘッダーでのチケットの順序は未知のものであり、要求によって異なる可能性があります。認証フィルタはこの事実を踏まえ、すべての cookie を対象に、MSCSProfile チケットと MSCSAuth チケットの両方を自動的に検索します。

Web ログ ファイル内の 2 つのチケット

どちらの cookie も、HTTP 要求のヘッダーでの順序で Web ログ ファイルに記録されます。Web サーバー ログ インポート DTS タスクは、最初に検出した cookie をインポートします。DTS タスクでは、ログ ファイル内に順序の異なる cookie のヒットが見つかった場合は、ユーザーが 1 人であっても 2 人のユーザーとして表示されることがあります。このため、ユーザーの追跡が正常に機能しなくなり、訪問やユーザーに関する計算でエラーが発生する場合があります。特定のログ エントリに両方のチケットが存在する場合、DTS タスクでは MSCSProfile チケットが使われます。

推奨される解決方法

上記の問題を回避するには、次の操作を行います。

  1. MSCSAuth チケットと MSCSProfile チケットの両方のユーザー ID を、同じユーザー ID にマップします。
  2. 認証中に、MSCSProfile チケットのユーザー ID と MSCSAuth チケットのユーザー ID が一致することを確認します。ユーザー ID が一致しない場合は、MSCSProfile チケットのユーザー ID を更新する必要があります。

関連項目

Windows 認証と自動 cookie の混合モード

カスタム認証と自動 cookie の混合モード

自動 cookie モード

認証チケットに対する暗号化キーのローリング

CS 認証リソース

Commerce Server cookie

cookie をインポートする

Web サーバー ログ インポート DTS タスクを実行する


MSCSAuth チケットと MSCSProfile チケットの特性

次の表は、MSCSAuth チケットと MSCSProfile チケットの主要な特性を示しています。

特性 | MSCSAuth | MSCSProfile
ユーザーの種類 | 登録済みユーザーに割り当てられます。 この場合の "登録済み" とは、関連サイトへの登録処理を正常に完了したユーザーを指します。 | 匿名ユーザーに割り当てられます。
格納 | セッション cookie として格納されるか、URL 文字列内にエンコードされます。セッションの間または指定された時間ウィンドウの期間だけ有効で、その後は削除されます。 | ユーザーのコンピュータに固定 cookie として格納されます。URL 文字列内にエンコードされた場合、MSCSProfile チケットは格納されません。したがって、セッションが終了すると、チケットは削除されます。
内容 | 一意のユーザー ID、前回のログイン時刻、時間ウィンドウ、およびオプションのカスタム プロパティが含まれます。 | 一意のユーザー ID とオプションのカスタム プロパティが含まれます。

関連項目

MSCSProfile チケット

MSCSAuth チケット

登録する匿名ユーザー用のチケット

認証チケットに対する暗号化キーのローリング

Commerce Server cookie


Commerce Server cookie

Commerce Server は、固定 cookie とセッション cookie (非固定 cookie とも呼ばれる) を作成します。また、固定 cookie を使って、サイトを訪問する匿名ユーザーを追跡します。さらに、セッション cookie を使って、サイトを訪問する認証済みユーザーを追跡します。

ここでは、次のトピックについて説明します。

  • 固定 cookie
  • セッション cookie
  • cookie の機能の要約


固定 cookie

Commerce Server は、固定 cookie を使って、サイトを訪問する匿名ユーザーを追跡します。cookie を許可している匿名ユーザーの場合、固定 cookie はユーザーのコンピュータに格納されます。

CS 認証リソースを構成するときに、固定 cookie の有効期間を決定します。既定では、固定 cookie は 2038 年 1 月 15 日まで有効です。

セッションの固定 cookie には、MSCSProfile チケットを含めることができます。または、MSCSProfile チケットを URL 内にエンコードすることもできます。

固定 cookie にはユーザー ID が含まれます。ユーザー ID として使う値を指定できます。たとえば、ASP ページのいずれかによって生成されるグローバル一意識別子 (GUID) を使うことができます (Commerce Server には、GUID の生成に使用できる GenID オブジェクトが含まれています)。匿名ユーザーがサイトに登録し、認証済みユーザーになった場合は、この GUID をユーザーのセッション cookie に転送できます。

注

  • 固定 cookie にはカスタム プロパティを追加できます。ただし、クレジット カード番号や社会保険番号など、機密性を要する情報は cookie に保管しないでください。これらの情報を保管することは、セキュリティ リスクになります。

関連項目

認証チケット

cookie の機能の要約

認証チケットに対する暗号化キーのローリング


セッション cookie

Commerce Server は、セッション cookie を使って、サイトを訪問する認証済みユーザーを追跡します。セッションが終了すると、Commerce Server はセッション cookie を削除します。

セッション cookie には、MSCSAuth チケットを含めることができます。または、MSCSAuth チケットを URL 内にエンコードすることもできます。

セッション cookie には、次のデータが含まれます。

  • ユーザー ID ユーザー ID は、ユーザーを一意に識別するために使われます。ユーザー ID として使う値を指定できます。
  • 前回のログイン時刻 ユーザーがサイトにアクセスした時刻が記録されます。
  • 時間ウィンドウ セッション cookie の有効期間 (分) です。認証を受けたユーザーが、ログオフせずにコンピュータから離れ (または、しばらくコンピュータを操作せずに)、時間ウィンドウが閉じる前に戻った場合、そのユーザーは再び認証を受ける必要がありません。ただし、時間ウィンドウが閉じた後で戻った場合は、再度ログインする必要があります。

注

  • セッション cookie にはカスタム プロパティを追加できます。ただし、クレジット カード番号や社会保険番号など、機密性を要する情報は cookie に保管しないでください。これらの情報を保管することは、セキュリティ リスクになります。

関連項目

認証チケット

セッション cookie

cookie の機能の要約


cookie の機能の要約

Commerce Server で cookie を使って、特定の機能をサイトに適用することができます。

cookie を暗号化する

サイトで生成される固定 cookie とセッション cookie の両方を暗号化するように Commerce Server を構成できます。cookie を暗号化すると、使用する Commerce Server アプリケーションでしか cookie を読み取れなくなります。

既定では、Cookie は Commerce Server ソリューション サイトで暗号化されます。ただし、デバッグなどの場合は、暗号化を無効にできます。運用サイトでは cookie の暗号化を無効にしないでください。

暗号化を無効にするには、CS 認証リソースの "暗号化を有効にする" プロパティを 0 に設定します。詳細については、「CS 認証リソースのプロパティを設定する」を参照してください。

cookie データのキーを暗号化する方法については、「cookie の新しい暗号化キーを生成する」を参照してください。

ドメイン間での cookie の共有

複数のドメイン間で cookie を共有するように、Commerce Server を設定できます。各 cookie は、その cookie が有効なドメインを示すドメイン プロパティを持ちます。ドメイン間での cookie の共有の詳細については、「認証フィルタのシングル サイン オンのサポート」を参照してください。

注

  • アプリケーションに Secure Sockets Layer と保護付きハイパーテキスト転送プロトコル (SSL/HTTPS) を使っている場合、ドメイン スコープは保護付きのホスト名から作成されます。HTTP を使っている場合、ドメイン スコープは保護なしのホスト名から作成されます。アプリケーションの保護付きのホスト名と保護なしのホスト名の構成については、「アプリケーションを構成する」を参照してください。

アプリケーション間での cookie の共有

同一サイトのアプリケーション間で cookie を共有できるように Commerce Server を構成できます。

cookie があるとサイトでのユーザーの利用状況の分析結果に影響を及ぼすため、同じサイトのアプリケーション間で cookie を共有しない方がよい場合もあります。たとえば、オフィス用品を販売するサイトを運用し、サプライヤ アプリケーションとリテール アプリケーションで cookie を共有する場合、分析結果に 2 つのアプリケーション間のユーザーの利用状況の違いが現れません。Supplier サイトで行われる購入では、1 人のユーザーが大量のオフィス用品を購入することが考えられます。これに対して Retail サイトの場合は、ユーザーが少量のオフィス用品を購入すると考えられます。

アプリケーション間での cookie の共有の詳細については、「アプリケーション間で cookie の共有を有効にする」を参照してください。

関連項目

アプリケーションを構成する

cookie の新しい暗号化キーを生成する

暗号化されたプロファイル プロパティを管理する

認証フィルタのシングル サイン オンのサポート

認証チケット


CS 認証リソース

CS 認証リソースは、AuthManager オブジェクトや認証フィルタを構成するためのプロパティを含む、プロパティの集まりです。Commerce Server サイトをグローバル レベルおよびアプリケーション レベルで構成するには、CS 認証リソースを使います。CS 認証プロパティをサイト レベル用に設定しないでください。

CS 認証リソースを Commerce Server 認証と混同しないでください。Commerce Server 認証は、認証フィルタ ツールと認証マネージャ ツールで構成されています。

グローバル レベルの認証プロパティ

グローバル レベルで、CS 認証グローバル リソースのプロパティを設定します。この認証プロパティは、特定の CS 認証リソースを使うすべての Commerce Server サイトで使われます。操作手順については、「CS 認証リソースのプロパティを設定する」を参照してください。

サイトごとに、CS 認証へのグローバル リソース ポインタが存在します。2 つ以上のサイトで、同じグローバル CS 認証リソースを共有できます。

アプリケーション レベルの認証プロパティ

特定のアプリケーションだけで使われる認証プロパティは、アプリケーション レベルで (Commerce Server マネージャでアプリケーションを右クリックして) 設定します。手順については、「アプリケーションを構成する」を参照してください。

また、Commerce Server ソリューション サイトを使ってサイトを開発している場合は、アプリケーション既定の構成リソースのサイト認証プロパティも設定できます。アプリケーション既定の構成プロパティについては、「App Default Config Settings for Solution Sites」を参照してください。

注

  • Commerce Server マネージャを使ってアプリケーション既定の構成レベルで構成される "認証マネージャの認証チケットのタイムアウト" プロパティは、認証フィルタでは使われません。このプロパティは、認証マネージャで MSCSAuth チケットのタイムアウト値を取得するときに使われます。
  • Commerce Server 2000 からアップグレードした場合、"チケットの有効時間" プロパティは、CS Authentication (サイト名) の [チケットの有効時間のプロパティ] ダイアログ ボックスに表示されます。ただし、Commerce Server 2002 では、このプロパティは使われません。

関連項目

  • CS 認証リソースのプロパティを設定する
  • アプリケーションを構成する
  • アプリケーション既定の構成リソースを構成する
  • 認証フィルタと認証マネージャの比較
  • 認証フィルタ
  • 認証マネージャ


認証用の Csapp.ini ファイルの値

Commerce Server サイト パッケージャでは、アンパックの処理中に csapp.ini ファイルが生成されます。このファイルは、認証マネージャと認証フィルタの両方に必要で、サイトのルート フォルダに配置する必要があります。

認証マネージャと認証フィルタは、csapp.ini ファイルから次の値を読み取ります。

キー名 | キー値 | 用途
SiteName この値には、管理データベース内の有効なサイト名を設定する必要があります。 この値は、SiteConfigReadOnly コンポーネントを初期化してサイトの関連情報を取得するために使います。

重要

  • Commerce Server でサポートされるサイト名の文字数は、1 ～ 127 文字です。
AddressKeyName | この値には、SiteName キーで定義されたサイト内の、有効なアプリケーション名を設定する必要があります。 | この値は、SiteName キーで定義されたサイト内のアプリケーションの関連情報を取得するために使います。

関連項目

Csapp.ini ファイル


認証に関するヒント集

インストールされた Commerce Server にセキュリティを確実に設定するには、ここに示すヒント集に従うことを強くお勧めします。

Active Directory を使う

認証フィルタを使う

認証マネージャのインスタンスを作成する

自動 cookie 生成モードを使う

パスワードにセキュリティを設定する

プロキシ アカウント

認証プロパティを構成する

Active Directory を使う

  • Active Directory を大規模なシナリオで使う場合は、SQL Server を使って集合プロファイルを格納する。

    ログイン名、パスワード、グループ、電子メール アドレスなど、機密性の高いデータを格納するには Active Directory を使い、ユーザー設定やトランザクション データなど、より動的で機密性の低いデータを格納するには、SQL Server を使います。

    SQL Server は Active Directory よりも高速ですが、Active Directory では、追加のセキュリティ機能やアプリケーション間のディレクトリ統合が利用できます。特定のプロファイル プロパティを Active Directory に、その他のプロファイル プロパティを SQL Server に格納する操作方法の例については、「新しいプロパティをサイトのプロファイル定義に追加する」を参照してください。

    Active Directory には多数のオブジェクトを格納できますが、電子商取引のシナリオで良好なパフォーマンスを得るため、Active Directory に格納するオブジェクトおよびユーザーの数を、ドメイン 1 つあたり 300 万以内に抑えることをお勧めします。Commerce Server では、Active Directory の拡張に複数フォレストのパーティション分割サポートが利用できます。これについては、オブジェクトおよびユーザー数 1,000 万までテストされていますが、ハードコードの制限はありません。または、より簡単に解決するには、プロキシ アカウントの使用を検討します。詳細については、「プロキシ アカウント」を参照してください。

認証フィルタを使う

  • Commerce Server が Windows 認証と共にインストールされている場合は、管理データベースへの SQL Server 認証を有効にする場合に限り、認証フィルタを使うことができる。

    Windows 認証を使う Commerce Server 配置で認証フィルタを使うときは、管理データベースへの接続文字列を変更する必要があります。これは、ISAPI フィルタ (つまり、認証フィルタ) が、LocalSystem とも呼ばれる IIS プロセス (inetinfo) のセキュリティ コンテキストで実行されるためです。このため、認証フィルタにより、LocalSystem からの資格情報を使って、別のコンピュータ上の SQL Server への接続が試行されますが、この接続は無効です。これは、認証フィルタには、ネットワーク経由で接続する権限がないためです (管理データベースがローカルの場合には接続が機能することもあります。しかし、管理データベースは必ず Web サーバー以外に配置する必要があります)。

    このシナリオで認証フィルタを使うための操作方法については、「分散環境で Windows 認証を使う」を参照してください。

  • Web ファームおよび複数ドメインの環境でシングル サイン オンをサポートするには、Windows 認証モードで認証フィルタを使う。

    Web ファームで認証フィルタを使うと、サーバーにログオンした認証済みユーザーが、ログイン情報を再送信しなくても、別のサーバー上のサイトにアクセスできるようになります。

    注

    • この機能を実装するには、Login.asp ページにカスタム コードを追加する必要があります。サンプル コードについては、「Supplier ソリューション サイト用の Login.asp のコード」を参照してください。

    ただし、非スティッキー セッションを使い、Post メソッドで要求を送信する場合、ヘッダー本体に含まれる情報は、必要なリダイレクトの実行中に失われます。スティッキー セッションでは、Post メソッドだけを使います。非スティッキー セッションを使う場合は、必ず、強化したセキュリティに対応する Get メソッドと SSL (HTTPS) を使います。詳細については、「Web ファームでユーザーを認証する」を参照してください。

  • AuthFiles フォルダに変更 (フォルダ名の変更など) を加えた後や、フォルダ内のファイルを変更した後は、AuthFiles フォルダのセキュリティ設定を確認する。

    AuthFiles フォルダに変更を加えた後は、インターネット サービス マネージャを使ってサイトの仮想ディレクトリに移動し、セキュリティ プロパティが匿名アクセス用に設定されていることを確認します。

    プロパティを匿名アクセス用に設定するには

    1. インターネット サービス マネージャで、[AuthFiles] を右クリックし、[プロパティ] をクリックします。
    2. [ディレクトリ セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
    3. [匿名アクセス] が選択されていることを確認し、[OK] をクリックします。
  • サイトを訪問する認証済みユーザーと匿名ユーザーの両方を追跡するには、認証フィルタを混合モードで使う (Windows 認証モードまたはカスタム認証モードを、自動 cookie モードと併用する)。

    認証済みユーザー専用のコンテンツと、匿名ユーザーが利用できるコンテンツを分けて管理できます。これにより、匿名ユーザーの参照傾向を追跡する間、匿名ユーザーにサイトの参照を許可することができます。

    カスタム認証モードを使う場合は、ユーザー登録が必須になります。したがって、ユーザーは認証済みユーザーとしてサイトにアクセスする必要があります。認証フィルタは、仮想ディレクトリのファイルへのアクセスを認証済みユーザーだけに許可することにより、特定の仮想ディレクトリのすべてのファイルにセキュリティを設定します。仮想ディレクトリは、認証済みユーザー向けコンテンツと、匿名ユーザー向けコンテンツを同時に利用できるようには構成できません。

    ログイン ページでユーザー資格情報の有効性が確認されると、すべてのコンテンツおよびページが、Microsoft インターネット インフォメーション サービス (IIS) 5.0 の匿名アカウントのコンテキストの下で実行されます。匿名アカウントは、既定では IUSR_<コンピュータ名> になります。<コンピュータ名> はサイトがインストールされているコンピュータの名前です。

    匿名ユーザーによるアクセスが可能なコンテンツを管理するには、次の操作を行います。

    1. ログイン ページにリンクを追加します。登録されていないユーザーや登録する意思のないユーザーは、このリンクをクリックすることで、匿名ユーザー向けコンテンツにアクセスできます。
    2. URL を、元の仮想ディレクトリとは別の仮想ディレクトリに設定します。URL を元の仮想ディレクトリ内にネストすることはできません。
  • 認証フィルタを使う場合は、ログイン ページ用の SSL/HTTPS を指定する。

    認証フィルタを使う場合に、ログイン ページ用の SSL/HTTPS を指定するには、[CS Authentication ログインフォーム] プロパティを使います。Login.asp ページへの完全なパス (たとえば、https://www.microsoft.com/authfilter/login.asp) を指定する必要があります。[CS Authentication ログインフォーム] プロパティの設定方法については、「CS 認証リソースのプロパティを設定する」を参照してください。

    認証マネージャを使っている場合は、"ログイン フォーム" プロパティを構成する必要はありません。代わりに、Commerce Server マネージャを使って、"HTTPS を有効にする" と "保護付きのホスト名" の 2 つのアプリケーション プロパティを構成します。認証フィルタでは、これらのプロパティは使いません。これらのプロパティの設定方法については、「アプリケーションを構成する」を参照してください。

  • ホスト ヘッダーは、認証フィルタを実装した複数のサイトを配置する場合は使用できません。

    IIS では、SSL を利用する場合のホスト ヘッダーの使用をサポートしていません。一方、認証フィルタは、基本的なセキュリティ保護を目的としたものであっても、ログイン資格情報をサーバーへ渡す際に SSL を必要とします。

  • 相互認証とクライアント証明書を併用せずに、SSL を認証フィルタ、Active Directory、および ACL と併用する。

    相互認証の場合、クライアントは証明書を使ってサーバーの識別情報を確認します。同様に、サーバーは、証明書を使ってクライアントの識別情報を確認します。ただし、証明書を使ってユーザーの有効性を確認するには、証明書、証明サーバー、証明機関など、公開キーのインフラストラクチャに投資する必要があります。また、証明書を確認するには、CPU 時間など、追加のサーバー リソースも必要になります。証明書を発行および確認するようにシステムを構成するよりも、SSL を認証フィルタ、Active Directory、およびアクセス制御リスト (ACL) と併用する方が簡単です。証明書の詳細については、IIS のオンライン ドキュメントを参照してください。

  • 認証フィルタによって保護されている複数の Commerce サイトを単一の Web サーバーに追加するには、各 Commerce サイトを別々のディレクトリにアンパックする。

    別のサイトのサブディレクトリ内に Commerce サイトをインストールしないでください。仮想ディレクトリ内の別々のディレクトリにサイトを格納すると、同じ仮想ディレクトリに複数のサイトをインストールできます。

  • 認証フィルタを使う場合は、すべての Commerce サイトが、類似しない名前を持つ必要がある。

    たとえば、あるサイトの名前を "Retail" にし、別のサイトの名前を "retail2" にすることを避けます。このような名前にすると、IIS が間違ったサイトに cookie を送信する可能性があります。

認証マネージャのインスタンスを作成する

  • アプリケーション スコープで AuthManager オブジェクトのインスタンスを作成する。

    アプリケーション スコープで AuthManager オブジェクトのインスタンスを 1 つ作成し、初期化する必要があります。この結果、SiteConfig オブジェクト データのキャッシュが初期化されます。これにより、キャッシュが作成済みとなるため、次回以降に AuthManager オブジェクトの初期化を呼び出すときのパフォーマンスが向上します。ただし、このインスタンスを使って AuthManager API を利用しないでください。

    要求ごとに、AuthManager オブジェクトを各 ASP ページ上で作成および破棄する必要があります。これは、認証マネージャが個々のユーザー セッションと依存関係にあるためです。

    AuthManager オブジェクトは、ASP 組み込みオブジェクトと依存関係にあるため、Active Server Pages (ASP) だけを通じて使う必要があります。AuthManager オブジェクトをこれ以外の方法で使わないでください。

注

  • ASP スクリプトとは別に、AuthManager オブジェクトの Initialize メソッド、Refresh メソッド、GetUserIDFromCookie メソッド、および GetUserIDFromCookieAndKey メソッドを使うことができます。

自動 cookie 生成モードを使う

  • 自動 cookie 生成モードでは、匿名ユーザーが登録するときに、ユーザーの固定 cookie が自動的に更新されるようにできる。これにより、ユーザーが匿名である間に収集されたプロファイル データは失われなくなる。

    更新機能をプログラムによって追加するには、AuthManager オブジェクトを使います。登録ページでは、この更新を実行するために、登録されたプロファイルから正しい GUID またはユーザー ID を取得し、SetProfileTicket メソッドを使って GUID またはユーザー ID を設定する必要があります。匿名ユーザーを登録済みユーザーに移行するプロセスはアプリケーションによって異なるため、このロジックが必要です。たとえば、同じプロファイルが使われるか、別のプロファイルが使われるかということによって異なります。

    匿名ユーザーが登録済みユーザーになった場合、ユーザーがログインして認証されると、常に 2 つのチケットが存在するようになります。

    • 新しいプロファイルが使われる場合は、MSCSProfile チケットを新しい識別情報に更新します。一方、新しいプロファイルが作成されず、フラグだけが設定される場合は、必要に応じて適切なプロパティを設定します。
    • MSCSAuth チケットと MSCSProfile チケットの両方が存在する場合は、Web ログ インポート データ変換サービス (DTS) タスクによって、MSCSProfile チケットに含まれるユーザー ID が取得されます。

      MSCSProfile チケットが存在しない場合、ユーザー ID は MSCSAuth チケットから取得されます。認証フィルタは、このユーザー ID に基づいて、ユーザー インポート DTS タスクによってエクスポートされたプロファイル スキーマの主キーからプロファイルを検索します。プロファイル インポート DTS タスクによってデータ ウェアハウスにエクスポートされる既定のスキーマには、GUID と LoginName が含まれます。

パスワードにセキュリティを設定する

  • Active Directory を使っている場合は、Active Directory からクリア テキスト パスワードを取得することができない。したがって、スティッキー セッションを有効にする必要がある。

    Active Directory では、ユーザー パスワードは、暗号化された形式で格納されます。ログイン ページでこのパスワードを最初に取得するとき、クリア テキストのパスワードにアクセスするには、次の 2 つの方法があります。

    • クリア テキスト パスワードを格納する新しいプロパティを追加し、プロファイル スキーマを拡張します。Commerce Server ビジネス デスクのプロファイル デザイナ モジュールを使って、スキーマを拡張する必要があります。詳細については、「プロファイル定義にプロパティを追加する」を参照してください。
    • カスタム キャッシュを作成し、取得するパスワードをクリア テキストで格納します。詳細については、「クリア テキスト パスワード」を参照してください。
  • Active Directory と SQL Server を統合して使っている場合は、パスワードを Login.asp ページから取得して、SQL Server のユーザーのプロファイル ストアに格納する。

    これで、別の Web サーバーからパスワードにアクセスできるようになります。また、Login.asp ページでカスタム コードを使うと、ユーザーが意識することなくログインできるようになります。これにより、ログイン ページからユーザー資格情報を、ユーザーのリダイレクト先となるサーバー上で実行されている認証フィルタに送信できるようになります。この認証プロセスでは、スティッキー セッションは必要ありません。

注

  • プロファイル プロパティは暗号化できます。詳細については、「暗号化されたプロファイル プロパティを管理する」を参照してください。

認証プロパティを構成する

  • net stop iisadmin コマンドと net start w3svc コマンドを使って、IIS を再起動する。

    次のいずれかのタスクを実行した場合は、IIS を再起動する必要があります。

    • CS 認証リソースのプロパティの構成
    • ドメイン/アプリケーションで共有する cookie の有効化
    • 認証フィルタの有効化または無効化

    IIS を再起動することで、すべてのアプリケーションがアンロードされ、認証フィルタのローカル サイト キャッシュにあるサイト構成プロパティが更新されます。

    IISReset コマンドは使わないでください。IISReset コマンドは IIS を停止して再起動しますが、特定の条件下では Inetinfo.exe (W3SVC サービス) を再起動しません。たとえば、W3SVC サービスが自動ではなく手動で起動するように構成されている場合は、IISReset コマンドでは IIS を再起動できません。net stop コマンドと net start コマンドの使用方法については、「IIS と Commerce Server サービスを再起動する」を参照してください。


認証フィルタと認証マネージャの比較

Commerce Server には、ユーザーの認証と識別を管理するための 2 つのツールが用意されています。

  • 認証マネージャ ユーザーを識別するメソッドと、動的コンテンツへのアクセスを制御するメソッドを公開する Component Object Model (COM) オブジェクトです。たとえば、サイト開発者は、AuthManager オブジェクトの GetUserID メソッドを呼び出し、cookie やクエリ文字列に含まれているチケットに基づいてユーザーを識別できます。認証マネージャは、サイト上の、セキュリティが設定されている ASP ページごとに使われ、ユーザーにページの表示を許可するかどうかを IsAuthenticated メソッドを使って確認します。

    認証マネージャは、cookie を使わないショッピングをサポートしています。認証チケットをサイトで作成されるすべての URL クエリ文字列に追加し、すべての要求に対して認証チケットが確実に渡されるようにする必要があります。これは、GetUrl メソッドを通じて行われます。URL に追加できるチケットは 1 つのみです。その場合は、MSCSAuth チケットが MSCSProfile チケットよりも優先されます。

    認証マネージャは、アンパッケージ処理中に適用される構成設定には依存しません。

  • 認証フィルタ Commerce Server アプリケーション レベルで使用および構成される Internet Server API (ISAPI) フィルタです。認証フィルタは、サイトを訪問するすべてのユーザーに適用できます。認証フィルタの構成は、サイトのアンパック後に行います。認証フィルタは、cookie を使わないショッピングをサポートしていません。

認証フィルタと認証マネージャの相違点の要約

次の表は、認証フィルタと AuthManager オブジェクトがサポートする機能の違いをまとめたものです。

特徴と機能 | AuthFilter : Windows 認証 | AuthFilter : カスタム認証 | AuthFilter : 自動 cookie | 認証マネージャ
セッション (非固定) cookie がサポートされているかどうかの確認 | あり | あり | あり | なし
cookie を使わない B2C のサポート | なし | なし | なし | あり
アクセス制御リスト (ACL) を使ったきめ細かなアクセス制御の提供 | あり | なし | なし | なし
カスタム ログイン ページのサポート | あり | あり | なし | なし 認証マネージャを使ってチケットの有効性を確認しない場合は、ユーザーの要求をカスタム ログイン ページにリダイレクトできます。
URL の大文字小文字の訂正のサポート | あり | あり | あり | なし
Web ファーム環境のサポート | あり (Post 要求に一部制限あり) | あり | あり | あり
ASP 組み込みオブジェクトの使用 | なし | なし | なし | あり
Active Directory を使ったユーザー プロファイルの格納のサポート | あり | なし | あり (*混合モード) | なし
SQL Server を使ったユーザー プロファイルの格納のサポート | あり (Active Directory と SQL Server を併用) | あり | あり (*混合モード) | あり
ユーザーの権限の借用 | あり | いいえ (匿名) | いいえ (匿名) | いいえ (匿名)
アクセス制御リスト (ACL) | 仮想ディレクトリ レベルおよび動的ページ レベル | 仮想ディレクトリ レベル | 匿名のみ | 動的ページ レベル
ユーザーのセキュリティ資格情報のサポート | あり | カスタム (匿名) | 匿名 | なし
クライアントに対する cookie の要求 | あり | あり | あり | なし

* 混合モードでは、自動 cookie モードと、カスタム認証モードまたは Windows 認証モードが併用されます。

Commerce Server 認証では、Windows 2000 サーバーと UNIX サーバーの混合環境などの異種シナリオはサポートされていません。

関連項目

認証チケット

認証フィルタ

認証マネージャ


認証フィルタ

認証フィルタとは、Commerce Server 2002 に用意されている ISAPI フィルタです。認証フィルタは、IIS の既定の動作を変更し、HTTP 要求と応答の処理方法に影響を与えます。

既定では、認証フィルタを使う場合、このフィルタは IIS サイト レベルおよび低い優先度でインストールされます。つまり、その他の ISAPI フィルタが IIS で実行されている場合、ISAPI フィルタが認証フィルタより先に要求を処理します。他のアプリケーションの ISAPI フィルタ、またはカスタム ISAPI フィルタが Web サーバーにインストールされている場合に、認証フィルタよりも前にこれらの ISAPI フィルタで要求を処理するときは、これらのフィルタを高い優先度で構成できます。

認証フィルタは、異なる認証モードで使うことができます。認証フィルタについては、「認証フィルタの認証モードの概要」を参照してください。

認証モードに関係なく、認証フィルタは、受信された要求に関する通知を受けると、自動的に次の処理を行います。

  • 要求された URL が正しいかどうかを検出する。認証フィルタは、インターネット インフォメーション サービス (IIS) の仮想ディレクトリのルートの大文字小文字を自動的に訂正します。

    注意

    • 認証フィルタは、要求された URL の大文字小文字を訂正するときは、リダイレクトを発行します。要求された URL の Post データはすべて失われます。
  • ブラウザで cookie がサポートされているかどうかを確認する。クライアントのブラウザで cookie がサポートされていない場合、認証フィルタはユーザーを cookie を使わないページにリダイレクトします。認証フィルタでは、ブラウザで cookie がサポートされていることが必要となります。

    注意

    • 認証フィルタは、ブラウザで cookie がサポートされているかどうかを確認するときは、リダイレクトを発行します。この確認は、セッション中の最初の要求に対してのみ行われます。要求された URL の Post データはすべて失われます。
  • ユーザーが有効なチケットを持っていることを確認する。Windows 認証モードとカスタム認証モードでは、要求に有効な MSCSAuth チケットが含まれていない場合、要求は Login.asp ページにリダイレクトされます。自動 cookie モードでは、要求に有効な MSCSProfile チケットが含まれていない場合、要求は autocookie.asp ページにリダイレクトされます。

認証フィルタは、これらのタスクを実行した後、認証モードに応じて追加のタスクを実行します。

ここでは、次のトピックについて説明します。

  • 認証フィルタの認証モードの概要
  • 認証フィルタの初期化
  • 認証フィルタが cookie を確認するしくみ
  • 認証フィルタと IIS のイベント通知
  • 認証フィルタのシングル サイン オンのサポート
  • Retail ソリューション サイトの認証フィルタを有効にする
  • Retail ソリューション サイトの認証フィルタに関する重要な情報
  • Supplier ソリューション サイトで認証フィルタを有効にする
  • Supplier ソリューション サイトの認証フィルタに関する重要な情報
  • Retail ソリューション サイト用の Login.asp のコード
  • Supplier ソリューション サイト用の Login.asp のコード
  • .NET ベースのサイトで認証フィルタを使う
  • 認証フィルタを無効にする


認証フィルタの認証モードの概要

認証フィルタを実装する場合は、このトピックで説明する以下のいずれかの認証モードを選択できます。

Windows 認証

このモードでは、認証フィルタは、Windows 認証を使ってサイトへのアクセスを制御します。ユーザー ID やパスワードなどのユーザー資格情報は、Active Directory に対して認証されます。Windows 認証を使う場合は、指定した一部のページとディレクトリのみに、ログイン アクセスを要求できます。Windows 認証の使い方については、「Windows 認証を有効にする」を参照してください。

認証フィルタは、Windows 認証を使い、アクセス制御リスト (ACL) を通じてサイトへのアクセスを制御します。匿名ユーザーと登録済みユーザーによるサイトへのアクセスは、ACL に依存します。このモードの詳細については、「Windows 認証モード」を参照してください。

ユーザーがページやディレクトリへのアクセスを要求するときに送信した MSCSAuth チケットが有効ではない場合、認証フィルタは、ユーザーにログイン資格情報の入力を要求します。ログイン ページは、ユーザーが入力した資格情報を認証フィルタに送信します。次に、認証フィルタが、認証フィルタ パスワード キャッシュにパスワードが存在するかどうかを確認します。パスワードが認証フィルタ パスワード キャッシュに存在しない場合、認証フィルタは、ユーザーがログイン ページで入力したパスワードをキャッシュに格納します。

Windows 認証モードを、データベースの Windows 認証 (Kerberos) と混同しないように注意してください。

カスタム認証

このモードでは、ユーザー ID とパスワードなどのユーザー資格情報は、SQL Server データベースまたはその他の種類のデータベースに対して認証されます。

カスタム認証を使う場合は、Commerce Server サイトの各ページとディレクトリに対して、ログイン アクセスが必要です。認証フィルタは、Commerce Server サイトの仮想ディレクトリを照合し、Commerce Server 管理データベースを照合して、サイトでカスタム認証が有効であるかどうかを決定します。

ユーザーがページやディレクトリへのアクセスを要求するときに送信した MSCSAuth チケットが有効ではない場合、認証フィルタは、ユーザーにログイン情報の入力を要求します。ユーザーが資格情報をログイン ページに送信すると、ログイン ページは、SQL Server データベースまたはその他の種類のデータ ソースに照合して、資格情報を確認します。

このモードでは、認証フィルタはサイトへのアクセスを制御するため、サイト設計者にカスタム認証プロセスを提供することを許可します。このモードの詳細については、「カスタム認証モード」を参照してください。カスタム認証の使い方については、「カスタム認証を有効にする」を参照してください。

自動 cookie モード

このモードでは、認証フィルタは、要求に有効な MSCSProfile チケットが含まれているかどうかを確認します。有効な MSCProfile チケットが見つからない場合、要求は、MSCSProfile チケットをユーザーに発行する autocookie.asp ページにリダイレクトされます。MSCSProfile チケットを使ってサイトにアクセスするユーザーは、匿名ユーザーとして識別されます。

MSCSProfile チケットをユーザーに発行すると、匿名ユーザーによるサイトでの移動および利用状況についてのプロファイル データを収集できます。この場合、最初にユーザーにサイトへの登録を課す必要はありません。

匿名ユーザーが登録した場合、MSCSProfile チケット内のユーザー ID をプログラムによって更新できるため、ユーザーが匿名であったときに収集したプロファイル データは失われません。更新機能をプログラムによって追加するには、AuthManager オブジェクトを使います。更新機能は、MSCSProfile チケット内のユーザー ID を変更するために使われます (登録ページは、この更新を実行するために、登録されたプロファイルから正しい GUID またはユーザー ID を取得し、SetProfileTicket() メソッドを使って GUID またはユーザー ID を設定する必要があります。匿名ユーザーを登録済みユーザーに移行するプロセスはアプリケーションによって異なるため、このロジックが必要です。たとえば、同じプロファイルが使われるか、別のプロファイルが使われるかによって異なります)。

自動 cookie モードとフィルタなしモードの両方を選択した場合、サイトに登録済みユーザーは存在しません。

このモードの詳細については、「自動 cookie モード」を参照してください。

フィルタなしモード

このモードでは、認証フィルタは無効です。Commerce Server 2002 のソリューション サイトは、既定でフィルタなしモードを使い、認証マネージャに基づく認証方式を実装します。

認証フィルタが利用できるようにサイトに変更を加える場合は、そのサイトの Login.asp ページと他のヘルパー ページに変更を加える必要があります。詳細については、「Retail ソリューション サイトの認証フィルタを有効にする」と「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。

モードの組み合わせ

認証フィルタを使うときは、次の認証モードの組み合わせを選択できます。

  • Windows 認証と自動 cookie の混合モード このモードの組み合わせを使うと、登録済みユーザーと匿名ユーザーがサイトにアクセスできます。また、匿名ユーザーの追跡に固定 cookie が利用できます。このモードの詳細については、「Windows 認証と自動 cookie の混合モード」を参照してください。
  • カスタム認証と自動 cookie の混合モード このモードの組み合わせを使うと、登録済みユーザーと匿名ユーザーがサイトにアクセスできます。また、匿名ユーザーの追跡に固定 cookie が利用できます。サイト開発者は、Windows ACL を使って個々のファイルやフォルダへのアクセスを制御する機能の代わりに、カスタム認証プロセスを実装できます。このモードの詳細については、「カスタム認証と自動 cookie の混合モード」を参照してください。

関連項目

Windows 認証モード

カスタム認証モード

自動 cookie モード

Windows 認証と自動 cookie の混合モード

カスタム認証と自動 cookie の混合モード

Windows 認証を有効にする

カスタム認証を有効にする

自動 cookie モードを有効にする


認証フィルタの初期化

ここでは、サイト開発者に役立つ情報を示します。次の操作を行うには、認証フィルタが初期化中に行う処理を知っておく必要があります。

  • 認証フィルタが初期化済みであることを確認する。これは、インターネット サービス マネージャを使って実行できます。
  • csapp.ini ファイルが正しいフォルダに存在し、正しい情報 (正しいサイト名など) を含んでいることを確認する。
  • 管理データベースへの接続文字列が正しいことを確認する。認証フィルタは siteconfig オブジェクトを通じて管理データベースに接続するため、この操作が必要になります。
  • COM+ アプリケーション (siteconfig) が正しく構成されていることを確認する。認証フィルタで siteconfig COM+ アプリケーションを使って管理データベースから情報をクエリできるようにする必要があるため、この操作が必要になります。

Web サイトでユーザーからの最初の要求が受信されると、認証フィルタは次の処理を行います。

  1. サイト名とアプリケーション名を取得します (Csapp.ini ファイルに格納されている SiteName プロパティと AddressKeyName プロパティの値を使います)。
  2. グローバル キャッシュを作成します。このキャッシュは、サイト構成の認証プロパティを格納するために使われます。サイトごとに 1 つのエントリを割り当てます。各エントリは、そのサイトの認証プロパティの集まりになります。
  3. サイト キャッシュを作成し、SiteConfig オブジェクトを使って管理データベースから読み取った CS 認証リソースのプロパティを入力します。

関連項目

Csapp.ini ファイル

Csapp.ini


認証フィルタが cookie を確認するしくみ

認証フィルタは次の手順で、クライアントのブラウザで cookie がサポートされているかどうかを確認します。

  1. cookie およびクエリ文字列フラグの設定時に、リダイレクトをブラウザに送信します。リダイレクトされたクエリとクエリ文字列フラグが cookie と共に戻ってきた場合、認証フィルタは、ブラウザで cookie がサポートされていることを認識します。
  2. ブラウザで cookie がサポートされていない場合、リダイレクトされた文字列は cookie なしで戻ってきます。認証フィルタは、クエリ文字列フラグ (必ず戻る) を検出し、ブラウザを Nocookie.asp ページにリダイレクトします。
  3. この確認は、cookie が未設定で、ユーザーがログインしていない場合のセッションの開始時にだけ行われます。


認証フィルタと IIS のイベント通知

ここでは、システム管理者とサイト開発者に対して情報を示します。次の場合は、認証フィルタの登録先のイベントを把握する必要があります。

  • 他の ISAPI フィルタを実行するように IIS を構成した場合に、そのフィルタが認証フィルタと互換性があることを確認する。
  • 独自の認証フィルタを記述して、認証フィルタと併用する。

認証フィルタは、データの入出力ストリームを監視します。また、IIS に次のイベントの通知を登録します。

  • SF_NOTIFY_ORDER_LOW。フィルタの一覧の最後で認証が行われるように、認証フィルタを低い優先度でロードします。つまり、その他の ISAPI フィルタが IIS で実行されている場合、ISAPI フィルタが認証フィルタより先に要求を処理します。顧客が他のアプリケーションの ISAPI フィルタ、または独自のカスタム ISAPI フィルタをインストールしている場合で、認証フィルタよりも先にこれらの ISAPI フィルタで要求を処理する場合は、これらのフィルタを高い優先度で構成できます。
  • SF_NOTIFY_SECURE_PORT / SF_NOTIFY_NONSECURE_PORT。認証フィルタは、このイベントに基づいて、保護付き/保護なしの要求をサポートします。
  • SF_NOTIFY_PREPROC_HEADERS。単一の SF_PREPROC_HEADERS。ページ要求ごとに発生するイベントで、サーバーでヘッダーの前処理が終了し、ヘッダー内の情報を処理できる状態になったことを通知します。認証フィルタは、この時点で cookie を確認します。
  • SF_NOTIFY_URL_MAP。URL を物理パスにマップし、必要に応じて、大文字小文字が区別される仮想ディレクトリのルートの URL を訂正するイベントです。CS 認証リソースのプロパティを取得するために使われます。
  • SF_NOTIFY_AUTHENTICATION。IIS がユーザー認証を開始する直前に送信される通知です。認証フィルタは、この時点でユーザー ID とパスワードを取得して設定します。
  • SF_NOTIFY_ACCESS_DENIED。アクセスが拒否されたときに発生します。認証フィルタは、必要に応じて、ログイン ページまたはエラー ページにリダイレクトします。
  • SF_NOTIFY_SEND_RESPONSE。リダイレクト (302) クエリ文字列からプロキシ アカウントの情報を読み取ってキャッシュに格納するために使われます。また、要求された最初の URL を含むカスタム リダイレクトのヘッダーと本体をフォーマットするためにも使われます。
  • SF_NOTIFY_SEND_RAW_DATA。元のリダイレクト要求をフィルタで除去し、カスタム リダイレクトを実行するために使われます。
  • SF_NOTIFY_END_OF_REQUEST。特定の要求が終了したときに発生します。認証フィルタは、カスタム リダイレクト メッセージを記述してクライアントに返します。
  • SF_NOTIFY_AUTH_COMPLETE。Outlook Web Access (OWA) の認証用に使われます。


認証フィルタのシングル サイン オンのサポート

シングル サイン オンがサポートされている場合、サイトまたはサーバーに正常にログオンしたユーザーは、再度ログオンしなくても、別のサイトやサーバーにアクセスできます。認証フィルタでは、ドメイン間、アプリケーション間、および Web ファーム シナリオで、シングル サイン オンがサポートされます。

ドメイン間およびアプリケーション間のシングル サイン オンのサポートは、cookie の共有を使って実現されます。

ここでは、次のトピックについて説明します。

  • DNS ドメインの名前空間の概要
  • cookie の共有
  • ドメイン間のシングル サイン オン
  • Web ファームでユーザーを認証する
  • Web ファームでの認証フィルタ処理


DNS ドメインの名前空間の概要

DNS ドメインの名前空間はいくつかのレベルで構成されます。シングル サイン オンのサポートの設定や cookie の共有の設定を構成する場合は、これらのレベルの名前と、その完全なドメイン名の部分を知る必要があります。

次の表は、Commerce Server を構成する場合に把握しておく必要のある DNS ドメイン レベルを示しています。

名前の種類 | 説明 | 例
トップ レベルのドメイン | 国/地域、または名前を使う組織の種類を示すために使われる 2 ～ 3 文字の名前。 | ".com"。これは、インターネット上で商用に使うために組織に登録された名前を示します。
セカンド レベルのドメイン | インターネット上で使うために個人または組織に登録された可変長の名前です。この名前は、常にトップ レベルのドメインに基づき、名前を使う組織の種類または地理的位置に応じて付けられます。 | "microsoft.com"。これは、DNS ドメイン名登録機関によって Microsoft に登録されたセカンド レベルのドメイン名です。
サブドメイン | 登録されたセカンド レベルのドメイン名に基づいて組織が作成できる追加の名前です。これには、追加して組織の名前の DNS ツリーを拡大し、それを部門または地理的位置に分割する名前が含まれています。 | "example.microsoft.com"。これは、ドキュメントの例で使うために Microsoft が割り当てた架空のサブドメインです。

DNS ドメイン名の構造の詳細については、Windows 2000 のオンライン ヘルプの「DNS ドメイン名」のトピックを参照してください。


cookie の共有

認証フィルタを有効にすると、複数のドメイン間およびアプリケーション間で cookie を共有し、複数のドメインおよびアプリケーションにリダイレクトされたユーザーを追跡することができます。cookie の共有を実現するには、ドメイン (domain) とパス (path) という、cookie の 2 つのプロパティを設定します。次のように設定します。

      ";domain=DomainName;path=Path"

ドメイン プロパティは、cookie の有効なドメインを指定するために使われます。パス プロパティは、cookie の有効なドメインの URL のサブセットを指定するために使われます。

クライアントのブラウザは、要求を送信する前に、要求する URL で指定されているホストの完全なドメイン名の末尾に一致するドメイン プロパティを含む cookie が利用できるかどうかを確認します。このような cookie が存在する場合は、cookie のパス プロパティを、要求する URL のパス名のコンポーネントと比較します。一致した場合は、cookie を要求と共に送信します。

サーバー側では、ドメイン プロパティの値がプロパティの設定時に指定されていない場合、この値は、cookie を生成したサーバーのホスト名に設定されます。cookie のドメイン プロパティに設定できるホストは、指定されたドメイン内のホストのみです。最も一般的なパス プロパティは "/" です。パス プロパティが指定されていない場合、このプロパティは、cookie を生成した IIS アプリケーションの仮想ディレクトリのパスに設定されます。

Commerce Server 2002 では、既定でサイトごとに独自の cookie が作成されますが、認証フィルタを使うとこれらの cookie を共有できます。

ここでは、次のトピックについて説明します。

  • ドメイン間で cookie の共有を有効にする
  • アプリケーション間で cookie の共有を有効にする


ドメイン間で cookie の共有を有効にする

cookie は、ドメイン間で共有できます。cookie を共有するには、ドメインに共通のセカンド レベルのドメイン名が必要です。たとえば、msdn.microsoft.com と premier.microsoft.com は、.microsoft.com に設定されたドメイン プロパティで cookie を共有できます。これは、.microsoft.com が、msdn.microsoft.com と premier.microsoft.com のセカンド レベルのドメイン名であるためです。ドメイン プロパティを .com などのトップ レベルのドメインだけに設定することはできません。

ドメイン レベルの詳細については、「DNS ドメインの名前空間の概要」を参照してください。

ドメイン間で cookie の共有を有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. [共有ドメイン レベルの数] ボックスに、cookie を共有する必要があるドメイン レベルを指定します。

    たとえば、premier.microsoft.com と msdn.microsoft.com のサブドメイン間で cookie の共有を有効にするには、この値を 2 に設定します。

    注

    この場合の 2 という数値は、トップ レベルのドメイン (.com) とセカンド レベルのドメイン (microsoft.com) を合計したものです。つまり、2 つのドメイン レベルが存在します。これにより、msdn.microsoft.com や premier.microsoft.com など、microsoft.com ドメインの任意のサブドメインで cookie を共有できます。

  4. [OK] をクリックします。
  5. IIS を再起動します。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

注

  • 暗号化を使ってチケットを暗号化している場合は、両方のドメインで暗号化キーが同じであることを確認します。新しい暗号化キーの生成については、「cookie の新しい暗号化キーを生成する」を参照してください。

関連項目

cookie の共有

DNS ドメインの名前空間の概要

暗号化されたプロファイル プロパティを管理する

認証チケットに対する暗号化キーのローリング


アプリケーション間で cookie の共有を有効にする

アプリケーション間で cookie を共有するには、cookie のパス プロパティをアプリケーション パスに設定します。たとえば、Retail サイトのすべてのアプリケーションで cookie を共有するには、パスを /retail に設定します。同じ仮想ディレクトリ名を持たないアプリケーション間で cookie を共有するには、パスをルート (/) レベルに設定する必要があります。

同じサイトのアプリケーション間で cookie の共有を有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. [アプリケーションに cookie のパスを設定] チェック ボックスをオフにして、[OK] をクリックします。

    注

    • この結果、ホストのパス プロパティが "/" に設定されます。
  4. net stop コマンドと net start コマンドを使って IIS を再起動します。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

注

  • 暗号化を使っている場合は、両方のアプリケーションで暗号化キーが同じであることを確認します。新しい暗号化キーの生成については、「cookie の新しい暗号化キーを生成する」を参照してください。
  • CookiePath_ApplicationScope プロパティが選択されている場合、パス プロパティは現在のアプリケーション パスに設定されます。

関連項目

cookie の共有

DNS ドメインの名前空間の概要

Exchange 2000 Outlook Web Access の基本認証

認証の概念

アプリケーションを構成する

BDSecurity Object

AuthManager Object

暗号化されたプロファイル プロパティを管理する


ドメイン間のシングル サイン オン

同じセカンド レベルのドメイン内の 2 つの異なるサブドメインに異なるサイトがある場合は、ドメイン間でシングル サイン オン (SSO) を使うことができます。ここでは、DNS ドメインの名前空間という用語を理解していることを前提としています。DNS ドメインの名前空間については、「DNS ドメインの名前空間の概要」を参照してください。

複数ドメインでのシングル ログイン機能を実装するには、ドメイン プロパティを使ってドメイン間で cookie を共有する必要があります。cookie の共有は、ドメインのトップ レベルのドメイン名とセカンド レベルのドメイン名が共通である場合にだけ機能します。たとえば、microsoft.com のトップ レベルのドメイン名は .com で、セカンド レベルのドメイン名は microsoft.com です。したがって、premier.microsoft.com と msdn.microsoft.com はどちらも同じトップ レベルのドメイン名とセカンド レベルのドメイン名を共有しており、cookie を共有できるようになります。

注

  • ドメイン間で cookie を共有する場合は、2 以上のドメイン レベルで共有する必要があります。3 以上のドメイン レベルも共有できます。

microsoft.com と microsoft.uk などの 2 つのドメインは、cookie を共有できません。これは、それぞれのトップ レベルのドメイン (この場合は .com と .uk) が異なるためです。この場合、ユーザーはこれらのドメインを切り替えるときに再度ログインを要求されます。

トップ レベルのドメイン名が異なるドメイン間で SSO 機能を有効にするには、Passport 統合を使いますPassport 統合の詳細については、「Passport と統合する」を参照してください。

ドメイン間でシングル サイン オンのサポートを有効にするには、次のいずれかのトピックを参照してください。

  • アプリケーション間で cookie の共有を有効にする
  • ドメイン間で cookie の共有を有効にする


Web ファームでユーザーを認証する

Web ファーム シナリオでのシングル サイン オン (SSO) は、認証フィルタをカスタム認証モードまたは Windows 認証モードで使うことでサポートされます。

  • カスタム認証モード ユーザーがサイトにログインすると、Commerce Server は、ログイン ページでユーザーが入力したログインおよびパスワードを、プロファイル データ ストアに格納されているログインおよびパスワードと照合して確認し、ユーザーを認証します。ユーザー情報が確認されると、Commerce Server は MSCSAuth チケットを発行し、資格情報を認証フィルタに渡して、アプリケーションの認証フィルタ キャッシュに格納します。cookie は、ユーザーが認証され、セキュリティが設定されたサイト上のページにアクセスする許可を得ていることを示します。
  • Windows 認証モード Login.asp ページでの確認は不要です。代わりに、ログイン ページで MSCSAuth チケットを発行し、ユーザー資格情報を認証フィルタに送信します。次に、認証フィルタが、これらの資格情報を使って認証ヘッダーを作成します。この認証ヘッダーにより、IIS は要求を Active Directory に対して認証できるようになります。

Web サーバー ファームのシナリオでは、ユーザーが Web サーバーで認証され、リダイレクトや負荷分散によって他の Web サーバーに移動した場合、2 番目の Web サーバーがユーザーに再びログインを求めることはありません。この機能をサポートするには、Commerce Server によって IIS の Web サイト レベルにインストールされる認証フィルタを有効にします。ユーザーが 2 番目の Web サーバーにリダイレクトされると、ISAPI フィルタはユーザーの cookie を読み取り、その cookie にユーザー ID が含まれ有効であることを確認します。カスタム認証モードを使っている場合、これ以外の手順は実行されません。

Windows 認証モードを使っている場合、Commerce Server は次の手順を実行します。

  1. ユーザーによってこのサーバーのページへのアクセスが初めて要求された場合、認証フィルタのキャッシュにはユーザー資格情報がないため、認証フィルタは要求を Login.asp にリダイレクトします。
  2. Login.asp では、要求に有効な MSCSAuth チケットが含まれているため、チケット内のユーザー ID を使い、プロファイル データ ストアに対してユーザー プロファイルに関するクエリを実行します。これによって、ユーザーのログイン ID とパスワードがクリア テキストで返されます。

    重要

    • サイト開発者はこの機能を実装する必要があります。詳細については、「クリア テキスト パスワード」を参照してください。
  3. このログイン ID とパスワードを URL に追加し、セキュリティの設定されたページに対する要求をリダイレクトします。
  4. 認証フィルタは、セキュリティの設定されたページに対する要求を読み取り、URL からユーザー ID とパスワードを削除し、ログイン ID とパスワードを認証フィルタ キャッシュに格納します。
  5. 次に、認証フィルタはセキュリティの設定されたページをユーザーに表示します。ユーザー ID とパスワードはユーザーに転送されません。


Web ファームでの認証フィルタ処理

Web ファームで認証フィルタを使うと、サーバーにログオンした認証済みユーザーが、ログイン情報を再送信しなくても、別のサーバー上のサイトにアクセスできるようになります。ただし、非スティッキー セッションを使い、Post メソッドを使って要求を送信する場合、ヘッダー本体に含まれる情報は、必要なリダイレクトの実行中に失われます。スティッキー セッションでは、Post メソッドだけを使います。非スティッキー セッションを使う場合は、必ず Get メソッドと HTTPS を使います。

認証済みユーザーが新しいサーバーに初めてアクセスした場合は、次の操作が行われます。

  1. 認証フィルタが、URL が正しいかどうかを確認します (さらに大文字小文字を自動的に訂正します)。
  2. 認証フィルタが、セッション cookie がサポートされているかどうかを確認します。
  3. 認証フィルタが、MSCSAuth チケットを確認します。
  4. 認証フィルタが、MSCSAuth チケットが有効であることを確認します (現在の時刻と、チケットで指定されている前回のログイン時刻と時間ウィンドウの合計値を比較します)。
  5. ホスト間でパスワード キャッシュが共有されていないこと、およびユーザーがこのサイトを初めて訪問したことにより、チケット内のユーザー ID に対応するキャッシュにはエントリが存在しません。認証フィルタはこのことを検出すると、cookie の MSCSFirstRequestedURL プロパティを、要求された現在の URL にリセットします。
  6. 処理がログイン ページに渡されます。
  7. ログイン ページは、処理が Submit アクションではないこと、およびユーザーが有効な MSCSAuth チケットを持っていることを確認します。ユーザー ID がチケットから取得され、これを基にユーザーのプロファイルが取得されます。
  8. プロファイルからユーザーのパスワードが取得され、ユーザー ID と共に、要求された URL クエリ文字列に追加されます。パスワードはクリア テキストで取得できるようにする必要があります。クリア テキスト パスワードの使用については、「クリア テキスト パスワード」を参照してください。
  9. ユーザーが、要求された URL にリダイレクトされます。認証フィルタは、IIS からイベントの通知を受けると、ユーザー ID とパスワードをクエリ文字列から削除して、キャッシュに格納します。
  10. ブラウザから要求が再送信されると、認証フィルタは、キャッシュを確認し、対応するエントリを検索します。次に、現在の時刻が時間ウィンドウの期間内にあるかどうかを確認します。
  11. 現在の時刻が時間ウィンドウの期間内にある場合、認証フィルタは、要求に対するユーザー ID とパスワードを設定し、要求の処理を進めます。
  12. 要求された URL へのアクセス許可がユーザーに割り当てられている場合は、要求された URL が IIS によって処理され、返されます。

注

  • カスタム認証の場合、パスワード キャッシュは使われません。したがって、要求が新しいサーバーにリダイレクトされた場合は、そのサーバー上の認証フィルタだけが、要求に含まれている MSCSAuth チケットが有効であることを確認します。有効である場合は、要求の処理を進め、無効である場合は、要求を Login.asp ページにリダイレクトします。


認証フィルタと Retail ソリューション サイト

ここでは、Retail ソリューション サイトの認証フィルタを有効にする手順について説明します。さらに、login.asp のサンプル コード、Retail ソリューション サイトの認証フィルタを有効にするための必要条件、およびシナリオに基づいた重要な情報を示します。

ここでは、次のトピックについて説明します。

  • Retail ソリューション サイトの認証フィルタを有効にする
  • Retail ソリューション サイトの認証フィルタに関する重要な情報
  • Retail ソリューション サイト用の Login.asp のコード


Retail ソリューション サイトの認証フィルタを有効にする

注

  • 以下の操作を行う前に、「Retail ソリューション サイトの認証フィルタに関する重要な情報」を一読しておくことをお勧めします。
  • Retail ソリューション サイト用の認証フィルタの Login.asp ページについては、「Retail ソリューション サイト用の Login.asp のコード」を参照してください。

Retail ソリューション サイトで認証フィルタを有効にするには

  1. Commerce Server サイト パッケージャを使って、Retail ソリューション サイトをアンパックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  3. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  4. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[Windows 認証] または [カスタム認証] をクリックし、[OK] をクリックします。
  5. テキスト エディタを使って、Retail サイトの Authfiles\Login.asp を開きます。
  6. Login.asp で、Retail\Login\Login.asp でインクルードされるファイルが存在し、コードが例と一致していることを確認します。例のコードを確認するには、「Retail ソリューション サイト用の Login.asp のコード」を参照してください。
  7. 更新した Login.asp ページを保存して閉じます。
  8. Commerce Server ビジネス デスクのユーザー モジュールを使って、Retail サイトの新規ユーザーを作成します。詳細については、「ユーザー プロファイルを追加する」を参照してください。
  9. Internet Explorer を使って、http://<コンピュータ名>/Retail に移動します。

登録済みユーザーであれば、ログイン ページでユーザー名とパスワードを入力します。まだ登録していない場合は、ページ下部のリンクをクリックして登録を済ませてから、この手順を実行してください。

Login.asp ページは、登録済みユーザーの MSCSAuth チケットを設定し、ユーザーのプロファイルを取得します。さらに、取得したプロファイル情報を使って、Web ページを読み込みます。

ユーザー プロファイルが見つからない場合は、Login.asp ページがもう一度表示されます。このページには、エラーメッセージと、前述したログイン用の 2 つのオプションが表示されています。ユーザー名またはパスワードが無効な場合は、Login.asp ページがもう一度表示されます。ただし、エラー メッセージは表示されません。認証フィルタを使って Web サイトに登録または新規ユーザー ページを追加するには、Login.asp ページの手順に従います。

関連項目

Retail ソリューション サイトの認証フィルタに関する重要な情報

Retail ソリューション サイト用の Login.asp のコード


Retail ソリューション サイトの認証フィルタに関する重要な情報

  • 認証フィルタを有効にして IIS のルート ディレクトリにサイトをアンパックする場合、アプリケーション レベル プロパティの [アプリケーションに cookie のパスを設定] チェック ボックスをオフにする必要があります。このプロパティは、cookie に設定されるパス プロパティを表しています。既定では、このフラグが有効になっており、パス プロパティがサイトの仮想ディレクトリに設定されています (たとえば、/retail)。チェック ボックスをオフにすると、cookie のパス プロパティとしてルート (/) が設定されます。このプロパティの更新後、IIS を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • インクルード ファイル、.gif ファイル、またはヘルパ ファイルのうち、Login.asp で使用されているファイルへのアクセスには匿名アクセスを使っていることを確認してください。
  • Windows 認証の場合、既定のログイン ページでは Login-Submit に GET アクションを使います。Login.asp では、POST アクションもサポートされています。POST アクションのサポートについては、Login.asp のコメントを参照し、操作手順に従ってください。
  • Login.asp で GET アクションを使っている場合は、既知のセキュリティ問題があります。ログオフ後にブラウザの履歴が自動的に消去されるようにブラウザを設定するか、ブラウザの履歴を手動でクリアするように、サイトを訪れるユーザーに通知することをお勧めします。
  • Windows 認証では、次のサーバー変数が設定されません。AUTH_USER および AUTH_TYPE 変数です。サーバー変数 LOGON_USER の値は、ログインに使用するユーザー ID になります。
  • Secure Sockets Layer (SSL) を使うには、CS 認証リソースの "ログイン フォーム" プロパティに完全なパスを設定する必要があります。操作手順については、「CS 認証リソースのプロパティを設定する」を参照してください。
  • 認証フィルタを無効にした後、もう一度有効にする場合は、インターネット インフォメーション サービス (IIS) 5.0 のセキュリティ設定を手動で再設定する必要があります。詳細については、IIS 5.0 のマニュアルを参照してください。
  • Commerce Server マネージャで CS 認証のプロパティ値を変更した場合、その変更を有効にするには、Web サーバーごとにメモリから Commerce アプリケーションをアンロードする必要があります。アンロードの方法については、「メモリからアプリケーションをアンロードする」を参照してください。

関連項目

ユーザー プロファイルを追加する

Retail ソリューション サイト用の Login.asp のコード

Supplier ソリューション サイト用の Login.asp のコード

メモリからアプリケーションをアンロードする

CS 認証リソースのプロパティを設定する


Retail ソリューション サイト用の Login.asp のコード

ここでは、Retail ソリューション サイトで使われる Login.asp ページのコードを掲載します。Retail サイトで認証フィルタを使うには、サイトの Login.asp でこのコードを使う必要があります。詳細については、「Retail ソリューション サイトの認証フィルタを有効にする」を参照してください。

<!-- #INCLUDE FILE="../include/header.asp" -->
<!-- #INCLUDE FILE="../include/const.asp" -->
<!-- #INCLUDE FILE="../include/html_lib.asp" -->
<!-- #INCLUDE FILE="../include/form_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_access_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_profile_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_cookie_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_url_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_util_lib.asp" -->
<!-- #INCLUDE FILE="../include/setupenv.asp" -->
<!-- #INCLUDE FILE="../template/no_menu.asp" -->

<%
REM sample file for using with AuthFilter
REM This file handles Login for user
%>

<%

   Sub Main()
   End Sub

   Dim strSelect, strUsername, strPassword, strPWD, retAsp
   dim objAuth
   Dim strAuthErr, strSiteName, sUserID

   set objAuth = Server.CreateObject("Commerce.AuthManager")
   strSiteName = CStr(Application("MSCSCommerceSiteName"))
   objAuth.Initialize(strSiteName)

   'Get the hidden variable to determine if this is the first run of the page
   strSelect = Request.Querystring("realSubmit")

   'If users pressed the submit button
   if strSelect = "fromButton" then
      'authenticate the user
      strUsername = Request.Querystring("txtUsername")
      strPassword = Request.Querystring("txtPassword")

         if (strUsername = "") or (strPassword = "") then
            Response.Redirect "Login.asp"
         end If

         Set mscsUserProfile = GetUserProfileByLoginName(strUsername)
         if (mscsUserProfile is nothing) then
            Response.Redirect "Login.asp"
         end if

         if (mscsUserProfile.Fields("GeneralInfo.user_security_password").Value = strPassword) then
            sUserID = mscsUserProfile.Fields(GetQualifiedName(GENERAL_INFO_GROUP, FIELD_USER_ID)).Value
            ' for Custom/NT Auth
            objAuth.SetAuthTicket sUserID, 1, 90

            ' Go to the Original requested ASP which is stored in cookie MSCSFirstRequestedURL"
            retAsp = Request.Cookies("MSCSFirstRequestedURL")
            if (retAsp = "" Or IsNUll(retAsp)) then
            retAsp = objAuth.GetURL("default.asp", True, False)
            end if
            Response.Redirect retAsp
         else
            Response.Redirect "Login.asp"
         end if
   else
      PrintLogin
   End if
%>

<%Sub PrintLogin() %>
<HTML>
<HEAD>
<TITLE>Login</TITLE>
</HEAD>
<BODY>
<FORM NAME="frmLogin" ACTION="Login.asp" METHOD="GET">
<br>
<br>
<br>
<H2 ID=L_LoginForm_HTMLText>CS2K-LoginForm</H2><ID Id=L_EnterCredential_ErrorMessage>
To access authenticated content, please enter your UserID & Password</ID>
<br>
<br>
<br>

<H3 ID=L_UserName_HTMLText>Username:<INPUT TYPE="text" NAME="txtUsername" SIZE=32 MAXLENGTH=32><br><ID ID=L_UserPassword_HTMLText>
Password :</ID><INPUT TYPE="password" NAME="txtPassword" SIZE=32 MAXLENGTH=32></H3><br>
<br>

<INPUT type=HIDDEN name="realSubmit" value="fromButton">
<p align="left">
   <input type="submit" name="action" id=L_Submit_Button value="Submit">
   <input type="reset" name="action" id=L_Reset_Button value="Reset">
</p>
</FORM>

<H4>
<br>
<br>
<%
REM SOLUTION SITES: Retail
REM    need to add own registration file under '\AuthFiles\' sub-Dir Or Copy ..\Retail\login\newuser.asp to '\AuthFiles\newuser.asp'
REM    in global.asa update: dictPages.NewUser = "AuthFiles/newuser.asp"
REM
%>
<A HRef="newuser.asp" ID=L_RegisterIf_HTMLText>Register if you are a new user
   (solution sites: need to add own registration file under '\AuthFiles\' sub-Dir Or Copy ..\Retail\login\newuser.asp & update NewUser-File in Global.asa)</A>
<br>
</H4>

</BODY>
</HTML>
<%end sub%>

関連項目

Retail ソリューション サイトの認証フィルタを有効にする


認証フィルタと SupplierAD ソリューション サイト

ここでは、SupplierAD ソリューション サイトの認証フィルタを有効にする手順について説明します。さらに、login.asp のサンプル コード、SupplierAD ソリューション サイトの認証フィルタを有効にするための必要条件、およびシナリオに基づいた重要な情報を示します。

ここでは、次のトピックについて説明します。

  • Supplier ソリューション サイトで認証フィルタを有効にする
  • Supplier ソリューション サイトの認証フィルタに関する重要な情報
  • Supplier ソリューション サイト用の Login.asp のコード


Supplier ソリューション サイトで認証フィルタを有効にする

注

  • 以下の操作を実行する前に、「Supplier ソリューション サイトの認証フィルタに関する重要な情報」を読むことをお勧めします。
  • Supplier ソリューション サイト用の認証フィルタの Login.asp ページについては、「Supplier ソリューション サイト用の Login.asp のコード」を参照してください。

Supplier ソリューション サイトおよび認証フィルタを Windows 認証モードで使うには、ローカルにログインするセキュリティ モードをドメイン コントローラに設定する必要があります。操作方法については、「ドメイン コントローラにセキュリティ モードを設定する」を参照してください。

Supplier ソリューション サイトでは、基本認証だけを有効にしてください。他のセキュリティ設定は変更しないでください。詳細については、IIS のオンライン ヘルプを参照してください。

AuthFiles サブフォルダと、そのフォルダにあるすべてのページでは、匿名アクセスを有効にします。

ドメイン コントローラおよび Web サーバーが、同じドメインで異なるコンピュータにインストールされている場合、プロファイルとユーザーに対してログイン ページで ProfileService.GetUserProfileByKey() メソッドの実行を成功させるには、認証フィルタには Web サーバーの匿名アカウントが必要です。

既定では、匿名ユーザー アカウントは IUSR_<サーバー名> です。インターネット サービス マネージャでは、IUSR_<サーバー名> にはメソッドを実行するために必要なアクセス許可がありません。また、Web サーバーがドメイン コントローラ サーバーと異なる場合、ドメインのユーザー アカウントを匿名アカウントとして追加する必要があります。この操作を行うには、まずドメインで、ユーザー プロファイルを読み取るアクセス権を持つユーザー アカウントを、Active Directory から作成します。次に、Web サーバーで IIS マネージャを使って、AuthFiles サブフォルダとそのサブフォルダ内のすべてのファイルに対して、同じユーザー アカウントを匿名アカウントとして設定します。

Supplier ソリューション サイトで認証フィルタを有効にするには

  1. Commerce Server サイト パッケージャを使って、Supplier ソリューション サイトをアンパックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  3. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  4. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[Windows 認証] または [カスタム認証] をクリックし、[OK] をクリックします。
  5. [インターネット インフォメーション サービス] を展開し、Supplier サイトを右クリックします。次に、[プロパティ] をクリックします。
  6. [プロパティ] ダイアログ ボックスの [ディレクトリ セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
  7. [認証方法] ダイアログ ボックスで、[統合 Windows 認証] チェック ボックスをオフにします。

    注

    • Supplier ソリューション サイトでは、基本認証だけを有効にしてください。他のセキュリティ設定は変更しないでください。
  8. テキスト エディタを使って、Supplier サイトの Authfiles\Login.asp を開きます。
  9. Web ファームを使っている場合、またはプロキシ アカウントのサポートが必要な場合は、「Supplier ソリューション サイト用の Login.asp のコード」に示すコードに一致するように、Login.asp のコードを更新します。
    重要
    • プロキシ アカウントのサポートを必要としない単一のサーバーの場合、Login.asp ページを更新する必要はありません。
  10. Windows 認証では、\SupplierAD\include\Std_access_lib.asp の GetUserInfo() メソッドを次のように変更します。
Sub GetUserInfo()
    Dim sAuthUser, mscsUser
    Dim aName

    If dictConfig.i_DelegatedAdminOptions = DELEGATED_ADMIN_SUPPORTED Then
       sAuthUser = LoginName(Request.ServerVariables("LOGON_USER"))
Else
       sAuthUser = ""
End If
        Rem Integrated Windows and basic auth take precedence over HTML form auth
        If sAuthUser <> "" Then
            m_UserAccessType = IIS_AUTH ' BASIC_AUTH
            m_UserType = AUTH_USER
            Set mscsUser = GetUserProfileByLoginName(sAuthUser)
            If mscsUser Is Nothing Then
               m_UserID = ""
            Else
               m_UserID = mscsUser.Fields(GetQualifiedName(GENERAL_INFO_GROUP, USER_ID)).Value
            End If
        Else
            If mscsAuthMgr.IsAuthenticated() Then
              sAuthUser = mscsAuthMgr.GetUserID(AUTH_TICKET)
              Set mscsUser = GetUserProfileByLoginName(sAuthUser)
                If mscsUser Is Nothing Then
                   m_UserID = ""
                Else
                  m_UserID = mscsUser.Fields(GetQualifiedName(GENERAL_INFO_GROUP, USER_ID)).Value
                End If
              m_UserAccessType = TICKET_AUTH
              m_UserType = AUTH_USER
            Else
                If Not IsNull(mscsAuthMgr.GetUserID(GUEST_TICKET)) Then
                   m_UserID = mscsAuthMgr.GetUserID(GUEST_TICKET)
                   m_UserAccessType = GUEST_VISIT
                   m_UserType = GUEST_USER
                Else
                   m_UserID = ""
                   m_UserAccessType = ANON_VISIT
                   m_UserType = ANON_USER
                End If
            End If
        End If
End Sub

  Function LoginName(ByVal sUserName)
    Dim aName

    If (sUserName = "") Then
      Exit Function
    End IF
    aName = Split (sUserName, "\")
    LoginName = aName(UBound(aName))
  End Function
  1. Windows 認証の場合、\SupplierAD\template\menu.asp の PrepareLoginSection メソッドで、"AUTH_USER" サーバー変数を参照している Request.ServerVariables 文字列のコードを、"LOGON_USER" サーバー変数を参照するように変更します。次に例を示します。

    変更前 : sAuthUser = Request.ServerVariables("AUTH_USER")

    変更後 : sAuthUser = Request.ServerVariables("LOGON_USER")

  2. 更新した Login.asp ページと menu.asp ページを保存して閉じます。
  3. ビジネス デスクを使って、Supplier サイトの新規ユーザーを作成します。
    重要
    • ユーザーを追加する前、または新規ユーザーを作成する前に、組織を作成する必要があります。
  4. Internet Explorer を使って、http://<コンピュータ名>/SupplierAD に移動します。
  5. ログイン ページで、DomainName\userID またはユーザー プリンシパル名 (UPN) 形式を使ってユーザー名を入力します (Login.asp にロジックを追加して、これらを userID/name に追加できます)。

    注

    • パーティションに分割された Active Directory/SQL Server のユーザー プロファイルがある場合は、ログイン ページで「<ユーザー名>@」だけを入力します。ここで、<ユーザー名> はユーザー ID です。このシナリオの場合は、認証フィルタがユーザー名からドメイン名を解決します。
  6. 登録済みユーザーであれば、ログイン ページでパスワードを入力します。または、ページ下部のリンクをクリックして登録を済ませてから、この手順を実行してください。つまり、Active Directory にアカウントを作成するための独自の登録ページを追加する必要があります。

Login.asp ページは、登録済みユーザーの MSCSAuth チケットを設定し、ユーザーのプロファイルを取得します。さらに、必要に応じて資格情報を確認します。また、取得したプロファイル情報を使って既定の Web ページを読み込むよう要求します。

ユーザー名またはパスワードが無効な場合、あるいはユーザー プロファイルが見つからない場合、Login.asp ページがもう一度表示されます。このページには、エラーメッセージと、前述したログイン用の 2 つのオプションが表示されています。


Supplier ソリューション サイトの認証フィルタに関する重要な情報

  • 認証フィルタを有効にして IIS のルート ディレクトリにサイトをアンパックする場合、アプリケーション レベル プロパティの [アプリケーションに cookie のパスを設定] チェック ボックスをオフにする必要があります。このプロパティは、cookie に設定されるパス プロパティを表しています。既定では、このフラグが有効になっており、パス プロパティがサイトの仮想ディレクトリに設定されています (たとえば、/retail)。チェック ボックスをオフにすると、cookie のパス プロパティとしてルート (/) が設定されます。このプロパティの更新後、net start w3svc コマンドを使って IIS を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • インクルード ファイル、.gif ファイル、またはヘルパ ファイルのうち、Login.asp で使用されているファイルへのアクセスには匿名アクセスを使っていることを確認してください。
  • Windows 認証の場合、既定のログイン ページでは Login-Submit に GET アクションを使います。Login.asp では、POST アクションもサポートされています。POST アクションのサポートについては、Login.asp のコメントを参照し、操作手順に従ってください。
  • Login.asp で GET アクションを使っている場合は、既知のセキュリティ問題があります。ログオフ後にブラウザの履歴が自動的に消去されるようにブラウザを設定するか、ブラウザの履歴を手動でクリアするように、サイトを訪れるユーザーに通知することをお勧めします。
  • Windows 認証では、次のサーバー変数が設定されません。AUTH_USER および AUTH_TYPE 変数です。サーバー変数 LOGON_USER の値は、ログインに使用するユーザー ID になります。
  • Secure Sockets Layer (SSL) を使うには、CS Authentication リソースの "ログイン フォーム" プロパティに完全なパスを設定する必要があります。操作手順については、「CS 認証リソースのプロパティを設定する」を参照してください。

関連項目

Supplier ソリューション サイト用の Login.asp のコード

IIS と Commerce Server サービスを再起動する


Supplier ソリューション サイト用の Login.asp のコード

ここでは、Supplier ソリューション サイトで使われる Login.asp ページのコードを掲載します。この変更が加えられた Login.asp ページが必要になるのは、ドメイン コントローラが Commerce Server から分離されている場合のみです。それ以外の場合は、このコードを使う必要はありません。この Login.asp を単一のコンピュータ構成に使うと、ユーザーにログインを要求するログイン プロンプトが 2 回表示されることになります。

詳細については、「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。

<!-- #INCLUDE FILE="../include/header.asp" -->
<!-- #INCLUDE FILE="../include/const.asp" -->
<!-- #INCLUDE FILE="../include/html_lib.asp" -->
<!-- #INCLUDE FILE="../include/form_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_access_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_profile_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_cookie_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_url_lib.asp" -->
<!-- #INCLUDE FILE="../include/std_util_lib.asp" -->
<!-- #INCLUDE FILE="../include/setupenv.asp" -->
<!-- #INCLUDE FILE="../template/no_menu.asp" -->

<%
REM sample file for using with AuthFilter
REM This file handles Login for user
%>

<%

   Sub Main()
   End Sub

   Dim strSelect, strUserName, strPassword, strPasswordTest, strPWD, strRetAsp, sAuthUser
   dim objAuth, objMSCSProfileObj
   Dim strAuthErr, strSiteName, sUserID

   ' AuthManager : Create & Initialize
   set objAuth = Server.CreateObject("Commerce.AuthManager")
   strSiteName = CStr(Application("MSCSCommerceSiteName"))  ' Get SiteName
   objAuth.Initialize(strSiteName)

   'Get the hidden variable to determine if this is the first run of the page
   strSelect = Request.Querystring("realSubmit")

   'If users pressed the submit button
   if strSelect = "fromButton" then

      'authenticate the user
      strUserName = Request.Querystring("txtUsername")
      strPassword = Request.Querystring("txtPassword")

         if (strUserName = "") or (strPassword = "") then
            Response.Redirect "Login.asp"
         end If

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT: start
         '   To get Proxy-Account
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' For Proxy-Account usage: you may need to update 'strUserName' && 'strPassword', which you may get from Profile
         '   Or some other similar way ...
         ' if password-available:   if (objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value = strPassword) then
         ' sUserID = objMSCSProfileObj.Fields(GetQualifiedName(GENERAL_INFO_GROUP, FIELD_USER_ID)).Value
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT: end
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PASSWORD: start
         '   To get Clear-Text-Password:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         sAuthUser = LoginName(strUserName)   ' as per profile-schema we need to filter DomainName here. 'strUserName' is in format: Domain\UserLoginID
         Set objMSCSProfileObj = GetUserProfileByLoginName(sAuthUser)
         if (objMSCSProfileObj is nothing) then
            Response.Redirect "Login.asp"
         end if
         ' if password-available: in clear-text for Proxy-Account
         ' strPasswordTest = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("user_security_password") ' objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value
         Set objMSCSProfileObj = Nothing

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' End Of getting Clear-Text password
         ' $PASSWORD: End
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' for Custom/NT Auth
            ' if password-available: in clear-text for Proxy-Account
            ' if (strPasswordTest = strPassword) then
            objAuth.SetAuthTicket strUserName, 1, 90
            ' Else
            '   Response.Redirect "Login.asp"
            ' EndIF

            ' Go to the Original requested ASP which is stored in cookie "MSCSFirstRequestedURL" & the following is required for a POST in Login instead of GET(by default)
            strRetAsp = Request.Cookies("MSCSFirstRequestedURL")   'retAsp = "..\default.asp"    '  (or) use: Request.Cookies("MSCSFirstRequestedURL") &  First requested URL (even if there is no QueryString this URL ciontains '?' at the end
            strRetAsp = strRetAsp + "&proxyuser="               ' make sure the QS-separator '?' is added by filter
            strRetAsp = strRetAsp + strUserName
            strRetAsp = strRetAsp + "&proxypwd="            ' Password
            strRetAsp = strRetAsp + strPassword

            if (strRetAsp = "" Or IsNUll(strRetAsp)) then
               strRetAsp = objAuth.GetURL("default.asp", True, False, Array("proxyuser", "proxypwd"), Array(strUserName, strPassword))
            end if

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Distributed-Denial-Of-Service Attack (DDoS)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' this is to avoid DDos Attacks with known User login ID
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Set objGenID =  Server.CreateObject("Commerce.GenID") '$PERF: store one in Application scope in GLOBAL.ASA, Application("MSCSAuthGenID")
            ' strGUID = objGenID.GenGUIDString
            '
            ' objAuth.SetProperty 2, "guid", strGUID ' after setting Ticket
            ' strRetAsp = strRetAsp + "&guid="
            ' strRetAsp = strRetAsp + strGUID
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

            Response.Redirect strRetAsp
   else
      if objAuth.IsAuthenticated(30) Then      ' for Web-Farm scenario <valid-Auth-Ticket Exist, but not cached in Filter>
         strUserName = objAuth.GetUserID(2)   ' Get LoginID <only in case of AD-Site>
         if (strUserName = "") or (IsNull(strUserName)) then
            Response.Redirect "Login.asp"
         end If
         sAuthUser = LoginName(strUserName)   ' as per profile-schema we need to filter DomainName here. 'strUserName' is in format: Domain\UserLoginID

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT: start
         '   To get Proxy-Account
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' For Proxy-Account usage: you may need to update 'strUserName' && 'strPassword', which you may get from Profile
         '   Or some other similar way ...
         ' if password-available:   if (objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value = strPassword) then
         ' sUserID = objMSCSProfileObj.Fields(GetQualifiedName(GENERAL_INFO_GROUP, FIELD_USER_ID)).Value
 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PROXY-ACCOUNT: end
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' $PASSWORD: start
         '   To get Clear-Text-Password:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         Set objMSCSProfileObj = GetUserProfileByLoginName(sAuthUser)   ' Helper method from SupplierAD solution-site
         if (objMSCSProfileObj is nothing) then
            Response.Redirect "Login.asp"
         end if
         ' if password-available: in clear-text <same for proxy-account-scenario>
         strPassword = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("user_security_password") ' objMSCSProfileObj.Fields("GeneralInfo.user_security_password").Value
         'strPassword = "password"   ' if PWD not avalable & for test purposes only
         Set objMSCSProfileObj = Nothing
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
         ' End Of getting Clear-Text password
         ' $PASSWORD: End
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

         strRetAsp = Request.Cookies("MSCSFirstRequestedURL") '  (or) use: "../default.asp"
         strRetAsp = strRetAsp + "&proxyuser="               ' make sure the QS-separator '?' is added by filter
         strRetAsp = strRetAsp + strUserName
         strRetAsp = strRetAsp + "&proxypwd="               ' Password
         strRetAsp = strRetAsp + strPassword

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' Distributed-Denial-Of-Service Attack (DDoS)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' this is to avoid DDoS Attacks with known User login ID
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' strGUID = objAuth.GetProperty(2, "guid")   ' if this exists, you need to pass this also on Query string
            '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ' If Not IsNull(strGUID) Then
            '    strRetAsp = strRetAsp + "&guid="
            '    strRetAsp = strRetAsp + strGUID
            ' End If
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

         Response.Redirect strRetAsp
      Else
         PrintLogin
      End If
   End if

   Set objAuth = Nothing
%>

<%Sub PrintLogin() %>
<HTML>
<HEAD>
<TITLE>Login</TITLE>
</HEAD>
<BODY>
<FORM NAME="frmLogin" ACTION="Login.asp" METHOD="GET">
<br>
<br>
<br>
<H2 ID=L_LoginForm_HTMLText>CS2K-LoginForm</H2><ID Id=L_EnterCredential_ErrorMessage>
To access authenticated content, please enter your UserID & Password</ID>
<br>
<br>
<br>

<H3 ID=L_UserName_HTMLText>Username:<INPUT TYPE="text" NAME="txtUsername" SIZE=32 MAXLENGTH=32><br><ID ID=L_UserPassword_HTMLText>
Password :</ID><INPUT TYPE="password" NAME="txtPassword" SIZE=32 MAXLENGTH=32></H3><br>
<br>

<INPUT type=HIDDEN name="realSubmit" value="fromButton">
<p align="left">
   <input type="submit" name="action" id=L_Submit_Button value="Submit">
   <input type="reset" name="action" id=L_Reset_Button value="Reset">
</p>
</FORM>

<H2>
<br>
<br>
<A HRef="register.asp" ID=L_RegisterIf_HTMLText>Register if you are a new user (need to add this registration file)</A>
<br>
</H2>

</BODY>
</HTML>
<%end sub%>

関連項目

Supplier ソリューション サイトで認証フィルタを有効にする


.NET ベースのサイトで認証フィルタを使う

Visual Studio .NET を使ってサイトを開発し、認証フィルタを有効にした場合、Visual Studio .NET がサイトに接続しようとすると、認証フィルタがリダイレクトを発行するため、Visual Studio .NET はプロジェクトを開くことができません。

認証フィルタを無効にして、IIS を再起動する必要があります。認証フィルタを無効にしても、IIS を再起動しない限り、認証フィルタは IIS のプロセス領域からはアンロードされません。無効にした段階では、メタベースから認証フィルタのエントリが削除されるだけです。

関連項目

認証フィルタを無効にする

IIS と Commerce Server サービスを再起動する


認証フィルタを無効にする

認証フィルタをサイト レベルでサイトに適用しない場合は、次の操作を行う必要があります。

  • アプリケーションの [一般のプロパティ] タブの [Commerce 認証フィルタ] セクションで、フィルタなしモードを選択します。
  • サイトの自動 cookie 生成を削除します。

フィルタなしモードを選択した場合、認証フィルタは Web サイトに適用されません。ただし、他のサイトが認証フィルタを使っている可能性があるため、フィルタは IIS に残ります。認証フィルタを完全に削除する場合は、インターネット サービス マネージャでフィルタを削除します。

ただし、フィルタなしモードを選択して自動 cookie 生成を有効にした場合、認証フィルタはサイトに適用されます。

フィルタなしモードでは、サイト開発者は、AuthManager オブジェクトが公開しているメソッドを呼び出すことで、個々の Active Server Pages (ASP) ページに認証を適用できます。AuthManager オブジェクトは、ユーザーを識別するメソッドと、動的コンテンツへのアクセスを制御するメソッドを公開する Component Object Model (COM) オブジェクトです。たとえば、サイト開発者は、AuthManager オブジェクトの GetUserID メソッドを呼び出して、cookie やクエリ文字列に基づいてユーザーを識別します。

Commerce Server 2002 のソリューション サイトは、既定でフィルタなしモードを使い、認証マネージャに基づく認証方式を実装しています。ベータ版のソリューション サイトで認証フィルタを使うには、そのサイトの Login.asp ページと他のヘルパ ページに変更を加える必要があります。詳細については、「Retail ソリューション サイトの認証フィルタを有効にする」と「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。

認証フィルタを無効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[フィルタなし] をクリックします。
  4. [自動 cookie] チェック ボックスをオフにし、[OK] をクリックします。

注

  • Commerce Server マネージャでプロパティ値を変更した場合、その変更を有効にするには、インターネット インフォメーション サービス (IIS) 5.0 を再起動する必要があります。ISAPI フィルタをメモリからアンロードした場合も同様に再起動する必要があります。これは、ISAPI フィルタをメモリからアンロードすると、フィルタの IIS メタベース設定だけが削除されるためです。IIS の再開方法については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • フィルタなしモードを選択してサイトの認証フィルタを無効にする場合、サイトに必要なセキュリティ設定を手動で設定する必要があります。セキュリティ設定を手動で設定するには、IIS を使って、サイトに設定するセキュリティ設定を選択します。次に IIS を再起動します。

関連項目

IIS と Commerce Server サービスを再起動する

Retail ソリューション サイトの認証フィルタを有効にする

Supplier ソリューション サイトで認証フィルタを有効にする


認証マネージャ

AuthManager オブジェクトは、ユーザーを識別するメソッドと、動的コンテンツへのアクセスを制御するメソッドを公開する Component Object Model (COM) オブジェクトです。このオブジェクトのメソッドとプロパティは、cookie およびエンコードされた URL 文字列の内容に対する制御とアクセスを行います。

次の図は、認証マネージャの動作のしくみを示しています。

AuthManager オブジェクトには、チケットが cookie と URL クエリ文字列のどちらに格納されているかに関係なく機能するインターフェイスが用意されています。また、このオブジェクトは、チケットの暗号化と復号化を処理して、確実にセキュリティを設定します。

AuthManager オブジェクトは、ASP 組み込みオブジェクトと依存関係にあるため、Active Server Pages (ASP) だけを通じて使う必要があります。

注

  • ASP スクリプトとは別に、認証マネージャの GetUserIDFromCookie メソッドと GetUserIDFromCookieAndKey メソッドを使うことができます。

AuthManager オブジェクトには、クライアントで cookie が有効になっている場合はチケットを cookie に格納し、cookie が無効になっている場合はチケットをエンコードされた URL 文字列に格納するメソッドが用意されています。AuthManager オブジェクトを ISAPI フィルタである認証フィルタで使う場合は、cookie を有効にする必要があります。

関連項目

Authentication Features


Windows 認証モード

Windows 認証モードでは、MSCSAuth チケットを含むセッション cookie を設定することで、ユーザーの有効性が確認されます。cookie は、有効期限が指定されず、セッションの終了後に削除されます。MSCSAuth チケットには、ユーザー ID、前回のログイン時刻、および前回のログイン時刻からの有効期間を指定する時間ウィンドウが含まれます。有効性が確認されたユーザーに、要求された URL へのアクセスが自動的に許可されることはありません。有効性が確認された後は、URL へのアクセス許可についてユーザーの資格情報が確認されます。このアクセス許可は、アクセス制御リスト (ACL) を通じて管理されます。

次の図は、Windows 認証の動作のしくみを示しています。

Windows 認証がプロキシ アカウントに対して動作するしくみを示す図については、「プロキシ アカウント」を参照してください。

注

  • Windows 認証モードを有効にすると、サイトのセキュリティが自動的にインターネット インフォメーション サービス (IIS) 基本認証に設定されます。IIS から認証フィルタにイベントが通知されるようになるため、この設定は変更しないでください。
  • Commerce Server 2002 で使うソリューション サイトをアンパックすると、<サイト名>\AuthFiles フォルダに含まれるファイルによって匿名アクセスが有効になります。これらのファイルを使わない場合は、削除する必要があります。ソリューション サイトの詳細については、「Commerce Server ソリューション サイト」を参照してください。

ここでは、次のトピックについて説明します。

  • Windows認証モードでユーザーの要求を処理する
  • ログイン ページ : Get メソッドと Post メソッド
  • クリア テキスト パスワード
  • Windows 認証を有効にする
  • 認証フィルタと DDoS 攻撃
  • プロキシ アカウント


Windows 認証モードでユーザーの要求を処理する

Windows 認証モードでは、ユーザーが URL を要求した場合の結果がいくつかのケースに分かれます。インターネット インフォメーション サービス (IIS) は、ブラウザから送信された要求を検出し、認証フィルタに SF_NOTIFY_PREPROC_HEADERS イベントを通知します。この時点で、認証フィルタは、要求の処理を制御し、次のアクションを実行します。

  1. ローカル サイト構成キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取り、ローカル サイト構成キャッシュに格納します。
  2. URL が正しいかどうかを確認し、IIS 仮想ディレクトリのルートの大文字小文字を自動的に訂正します。
  3. セッション cookie がブラウザでサポートされているかどうかを確認します。

この時点で、ブラウザで cookie が有効になっているか無効になっているかに応じて、3 つのアクションに分かれます。ユーザーをサポート ページにリダイレクトする、ログイン ページにリダイレクトする、または要求された URL をユーザーに送信することになります。

1 ケース目 : サポート ページにリダイレクトする

2 ケース目 : 要求された URL を送信する

3 ケース目 : ログイン ページにリダイレクトする

1 ケース目 : サポート ページにリダイレクトする

このケースでは、cookie が無効になっています。認証フィルタは、セッション cookie が無効になっていることを検出すると、ユーザーをサポート ページにリダイレクトします。サポート ページは、ユーザーに対して、cookie が必要であること、および cookie を有効にしてから要求を再送信する必要があることを通知します。

これを実現するには、認証フィルタは SF_NOTIFY_PREPROC_HEADERS イベントの発生を IIS に通知した後、バックグラウンドで次の手順を実行する必要があります。

  1. ローカル サイト キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取ります。
  2. セッション cookie がブラウザでサポートされているかどうかを確認します。セッション cookie がサポートされていない場合、ユーザーは、CS 認証リソースの [CS Authentication] プロパティの "cookie を使用しないフォーム" プロパティで指定されている Active Server Pages (ASP) ページにリダイレクトされます。通常、このページはユーザーに対して cookie が必要であること、および cookie を有効にしてから要求を再送信する必要があることを通知します。この場合は、既定で、Nocookie.asp という名前の ASP ページが使われます。このファイルは、Commerce Server のインストール ディレクトリにある AuthFiles フォルダにあります。

2 ケース目 : 要求された URL を送信する

このケースでは、cookie は有効になっています。次のいずれかの場合は、要求された URL がユーザーに返されます。

  • 要求に有効な MSCSAuth チケットが含まれており、要求された URL へのアクセス許可がユーザーに割り当てられている。
  • 要求に MSCSAuth チケットが含まれていないが、要求された URL に匿名アクセス許可が割り当てられている。

これを実現するには、認証フィルタは SF_NOTIFY_PREPROC_HEADERS イベントの発生を IIS に通知した後、バックグラウンドで次の手順を実行する必要があります。

  1. ローカル サイト キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取ります。
  2. cookie の MSCSFirstRequestedURL プロパティを、要求された元の URL に設定します。
  3. 要求に MSCSAuth チケットが含まれていない場合は、要求を Login.asp ページにリダイレクトします。
  4. 要求された URL に匿名アクセス許可が割り当てられている場合は、URL を返します。
  5. cookie に MSCSAuth チケットが含まれている場合、認証フィルタは、cookie に含まれているユーザー ID に一致するエントリがローカル パスワード キャッシュにあるかどうかを確認します。
  6. 一致するエントリが見つかった場合、認証フィルタは、現在の時刻をチケットに設定されている前回のログイン時刻と照合し、現在の時刻が、チケットで指定されている時間ウィンドウの期間内にあるかどうかを確認します。現在の時刻が、前回のログイン時刻と時間ウィンドウの合計値から 5 分以内のところにある場合は、チケット上の前回のログイン時刻を現在の時刻に変更します。この結果、アクティブ ユーザーが参照を続行できるようになります。
  7. 現在の時刻が時間ウィンドウの期間内にあるため、チケットを有効と見なし、要求された URL へのアクセスに関するユーザー ID とパスワードを IIS に送信します。
  8. 要求された URL へのアクセス許可がユーザーに割り当てられているため、IIS がページを返します。

3 ケース目 : ログイン ページにリダイレクトする

このケースでは、cookie は有効になっています。認証フィルタは、次のいずれかの場合に、ユーザーをログイン ページにリダイレクトします。

  • 要求に MSCSAuth チケットが含まれておらず、要求された URL に匿名アクセス許可が割り当てられていない。
  • 要求に無効な MSCSAuth チケットが含まれている。
  • 要求に有効な MSCSAuth チケットが含まれているが、要求された URL へのアクセス許可がユーザーに割り当てられていない。ユーザーのリダイレクト先の Active Server Pages (ASP) ページが、CS 認証リソースの "ログイン フォーム" プロパティで指定されている。
  • 要求に有効な MSCSAuth チケットが含まれているが、ユーザーの資格情報が認証フィルタのパスワード キャッシュに含まれていない (Web ファーム シナリオで要求が新しい Web サーバーに送信された場合)。

これを実現するには、認証フィルタは SF_NOTIFY_PREPROC_HEADERS イベントの発生を IIS に通知した後、バックグラウンドで次の手順を実行する必要があります。

  1. ローカル サイト キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取ります。
  2. cookie を送信し、MSCSFirstRequestedURL プロパティを要求された元の URL に設定します。
  3. 要求に MSCSAuth チケットが含まれていない場合は、要求を Login.asp ページにリダイレクトします。
  4. 要求された URL に匿名アクセス許可が割り当てられていない場合は、IIS が認証フィルタに SF_NOTIFY_ACCESS_DENIED イベントを通知します。次に、認証フィルタが、必要に応じてユーザーをログイン ページまたはエラー ページにリダイレクトします。
  5. cookie に MSCSAuth チケットが含まれていない場合、認証フィルタは、cookie に含まれているユーザー ID に一致するエントリがパスワード キャッシュにあるかどうかを確認します。
  6. 一致するエントリが見つからない場合は、ユーザーがログイン ページにリダイレクトされます。
  7. 一致するエントリが見つかった場合、認証フィルタは、現在の時刻をログイン時刻と照合し、現在の時刻が、チケットで指定されている時間ウィンドウの期間内にあるかどうかを確認します。
  8. 現在の時刻が、チケットで指定されている時間ウィンドウの期間を過ぎている場合は、ユーザーをログイン ページにリダイレクトします。
  9. 現在の時刻が時間ウィンドウの期間内にある場合は、チケットを有効と見なし、要求された URL へのアクセスに関するユーザー ID とパスワードを IIS に送信します。
  10. 要求された URL へのアクセス許可がユーザーに割り当てられていない場合は、IIS が SF_NOTIFY_ACCESS_DENIED 通知を発行します。次に、認証フィルタがユーザーをログイン ページにリダイレクトします。

ログイン ページのイベントについては、「ログイン ページ : Get メソッドと Post メソッド」を参照してください。

関連項目

Windows 認証を有効にする

カスタム認証モードでユーザーの要求を処理する

自動 cookie モードでユーザーの要求を処理する


ログイン ページ : Get メソッドと Post メソッド

サイト開発者は、ユーザーが資格情報を入力するための Login.asp ページを作成する必要があります。このログイン ページは、CS 認証リソースの "ログイン フォーム" プロパティで指定します。サンプルの Login.asp ページについては、\Microsoft Commerce Server 2002\AuthFiles フォルダを参照してください。

ユーザーがログイン ページを要求した場合、その要求の送信にフォームが使われていないときは、ページがユーザーに送信されます。この時点ではユーザーが認証されていないため、ログイン ページには匿名アクセス許可が必要です。ログイン ページには、新しいユーザー向けの登録ページへのリンクを含めます。ユーザーが、ユーザー ID とパスワードを含むログイン フォームを送信します。どちらかの資格情報が欠落している場合、ユーザーは再度ログイン ページにリダイレクトされます。認証フィルタは、送信が Get メソッドと Post メソッドのどちらを通じて行われたかに応じて、異なるアクションを実行します。

良好なパフォーマンスを得るため、ログイン ページには固定 cookie を設定しないでください。

Get メソッド

Post メソッド

Get メソッド

Get メソッドが使われた場合、送信されたユーザー ID とパスワードは HTTP ヘッダーに格納され、認証フィルタが SF_NOTIFY_PREPROC_HEADERS イベントを受け取ったときに、認証フィルタで利用できるようになります。この処理は、ログイン ページで要求が処理される前に行われます。

次の手順が実行されます。

  1. 認証フィルタが、送信されたユーザー ID とパスワードを、QueryString コレクションの txtUserName プロパティと txtPassword プロパティから取得します。
  2. 認証フィルタが、ユーザー ID に一致するエントリがパスワード キャッシュにあるかどうかを確認します。
  3. エントリが見つかった場合は、そのパスワードを、送信されたパスワードで更新します。
  4. エントリが見つからない場合は、送信されたユーザー ID とパスワードを使って新しいエントリが作成されます。
  5. 認証フィルタが、処理をログイン ページに返します。
  6. ログイン ページでは、送信されたユーザー ID とパスワードが、Request オブジェクトの QueryString コレクションの txtUserName プロパティと txtPassword プロパティから取得されます。
  7. 送信されたユーザー ID を使って Commerce Server プロファイル リソース、またはその他のプロファイル システムからユーザーのプロファイルが取得されます。
  8. ユーザーにプロファイルがない場合は、ユーザーが登録ページにリダイレクトされます。
  9. ユーザーのプロファイルがある場合で、プロファイルに関連付けられたパスワードが、送信されたパスワードに一致しないときは、ログイン ページがユーザーに再送信されます。
  10. パスワードが一致した場合は、MSCSAuth チケットをユーザーのセッション cookie に設定するために AuthManager オブジェクトが使われます。
  11. ユーザーが元の URL にリダイレクトされます。この URL は、前に認証フィルタによって、個別のセッション cookie の MSCSFirstRequestedURL プロパティに格納されたものです。ブラウザから要求が再送信された場合は、認証フィルタが、チケットが有効であることを判別し、処理を IIS に返します。
  12. ユーザーに URL へのアクセス許可が割り当てられている場合は、URL が返されます。

Post メソッド

Post メソッドが使われた場合、送信されたユーザー ID とパスワードは HTTP 本体に格納され、ログイン ページで要求が処理された後で、認証フィルタで利用できるようになります。この処理には、Get メソッドを使った要求を処理する場合の操作の他に、追加操作を行う必要があります。この操作では、ユーザー ID とパスワードを URL クエリ文字列に追加します。これらの操作を示すサンプル コードについては、「Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket」を参照してください。

次の手順が実行されます。

  1. 最初は、送信されたユーザー ID とパスワードは認証フィルタでは利用できないため、直ちに処理がログイン ページに返されます。
  2. ログイン ページでは、送信されたユーザー ID とパスワードが、Request オブジェクトの Form コレクションの txtUserName プロパティと txtPassword プロパティから取得されます。
  3. 送信されたユーザー ID を使って Commerce Server プロファイル リソース、またはその他のプロファイル システムからユーザーのプロファイルが取得されます。
  4. ユーザーにプロファイルがない場合は、ユーザーが登録ページにリダイレクトされます。
  5. ユーザーのプロファイルがある場合で、プロファイルに関連付けられたパスワードが、送信されたパスワードに一致しないときは、ログイン ページがユーザーに再送信されます。
  6. パスワードが一致した場合は、MSCSAuth チケットをユーザーのセッション cookie に設定するために AuthManager オブジェクトが使われます。
  7. proxyuser と proxypwd の 2 つのプロパティを使って、ユーザー ID とパスワードが元の URL クエリ文字列に追加されます。この URL クエリ文字列は、前に認証フィルタによって、個別のセッション cookie の MSCSFirstRequestedURL プロパティに格納されたものです。クエリ文字列は次のようになります。
       "<MSCSFirstRequestedURL>&proxyuser=UserID&proxypwd=Password"
  8. ユーザーが元の URL にリダイレクトされます。
  9. IIS が認証フィルタに、SF_NOTIFY_SEND_RESPONSE イベントを通知することで、リダイレクトへの応答の送信を開始することを通知します。
  10. 認証フィルタが、URL クエリ文字列からユーザー ID とパスワードを削除します。資格情報はブラウザに送信されなくなります。
  11. 認証フィルタが、パスワード キャッシュにユーザー ID があるかどうかを確認し、見つかった場合は、パスワードを更新します。
  12. ユーザー ID が見つからない場合は、ユーザー ID とパスワードを使って新しいエントリが作成されます。
  13. ブラウザから要求が再送信された場合は、認証フィルタが、チケットが有効であることを判別し、処理を IIS に返します。
  14. 要求された URL へのアクセス許可がユーザーに割り当てられている場合は、URL が返されます。

関連項目

BDSecurity Object

Windows認証モードでユーザーの要求を処理する

Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket


クリア テキスト パスワード

Active Directory では、ユーザーのパスワードは暗号化された形式で格納されます。ログイン ページでこのパスワードを最初に取得するときに、クリア テキストのパスワードにアクセスするには、次の 2 つの方法があります。

  1. クリア テキスト パスワードを格納する新しいプロパティを追加し、プロファイル スキーマを拡張します。Commerce Server ビジネス デスクのプロファイル定義デザイナを使って、スキーマを拡張する必要があります。詳細については、「プロファイル定義にプロパティを追加する」を参照してください。
  2. カスタム キャッシュを作成し、クリア テキスト パスワードを格納します。

注

  • プロファイル サービスでは、プロファイル プロパティを暗号化できます。詳細については、「暗号化されたプロファイル プロパティを管理する」を参照してください。


Windows 認証を有効にする

Windows 認証モードを選択すると、認証フィルタは、Active Directory 内のユーザーのアクセス許可を照合します。このモードで運営されているサイトにユーザーがログインすると、認証フィルタは、ユーザー名とパスワードをハイパーテキスト転送プロトコル (HTTP) 要求から取得してキャッシュに格納します。Windows 認証モードでは、アクセス制御リスト (ACL) によって、Web サイトのリソースに対するアクセスが決定されます。

Windows 認証は、シングル ログインでの Web ファーム シナリオをサポートしています。また、プロキシ アカウントにも対応しています。

注

  • 次の手順では、ローカルにログインするというセキュリティ モードをドメイン コントローラに設定していることを前提としています。この設定方法については、「ドメイン コントローラにセキュリティ モードを設定する」を参照してください。

Windows 認証モードを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[Windows 認証] をクリックし、[OK] をクリックします。

認証フィルタは、資格情報をインターネット インフォメーション サービス (IIS) 5.0 に渡します。IIS は、Active Directory データ ストアに照合して、ユーザーのログインとパスワードの有効性を確認します。

注

  • Commerce Server マネージャでプロパティ値を変更した場合、その変更を有効にするには、Web サーバーごとにメモリからアプリケーションをアンロードする必要があります。アンロードの方法については、「メモリからアプリケーションをアンロードする」を参照してください。

関連項目

カスタム認証を有効にする

自動 cookie モードを有効にする

ドメイン間で cookie の共有を有効にする

アプリケーション間で cookie の共有を有効にする

BDSecurity Object

AuthManager Object


認証フィルタと DDoS 攻撃

分散型サービス拒否 (DDoS) 攻撃とは、サーバーへのアクセスを妨害しようとすることです。認証フィルタには既知の脆弱性があり、これが悪用されると、登録済みユーザーが Web ページごとに再認証を受けなければならなくなる可能性があります。この現象は、悪質なユーザーが、既知の有効なユーザー ID と不正なパスワードを使って、サイトに繰り返しログオンすることによって発生します。

ユーザーがサイトにログオンすると、ユーザーがログイン ページに入力したパスワードが、認証フィルタのパスワード キャッシュに格納されます。既定では、認証フィルタは、そのパスワード キャッシュ内のパスワードを、ログイン資格情報を入力したユーザーのユーザー ID と関連付けます。

ただし、認証フィルタは、そのパスワード キャッシュ内の各パスワードを、1 つのクライアント セッションと関連付けることはしません。ユーザーが有効なユーザー ID を使ってログオンすると、パスワード キャッシュが、送信されたパスワードで更新されます。この更新は、パスワードが無効であっても行われます。この DDoS 手法により、サービスが妨害されます。これは、認証済みユーザーが、新しい Web ページにリダイレクトされたときに再認証を受けなければならなくなるためです。

悪質なユーザーは、サイトに侵入せずに、アクティブ セッションを使っている登録済みユーザーが再度ログインしなければならなくなるようにします。これは、認証フィルタのパスワード キャッシュにある登録済みユーザーのパスワードが無効になるためです。

この攻撃を回避するには、認証フィルタのパスワード キャッシュに、ユーザー ID とパスワードの他に、カスタム プロパティを格納します。このカスタム プロパティには、通常、グローバル一意識別子 (GUID) を使います。これは、同じユーザー ID および異なるパスワードを使う可能性のある、別々のクライアント セッションを識別するために使われます。

満杯になったパスワード キャッシュ

認証フィルタのパスワード キャッシュが正当なユーザー ID のパスワードでいっぱいになると、その後の認証はログイン ページにリダイレクトされます。

パスワード キャッシュが最大容量に達した場合は、キャッシュ サイズを増やす必要があるというメッセージがイベント ログに書き込まれます。

直ちにキャッシュ サイズを増やさない場合、ユーザーがログインできなくなります。

注

  • GUID を Login.asp ページに実装する方法については、「Login.asp を構成して GUID を使う」を参照してください。

DDoS 攻撃を防ぐために更新された、サンプルのログイン ページは、「Supplier ソリューション サイト用の Login.asp のコード」を参照してください。

関連項目

Supplier ソリューション サイト用の Login.asp のコード

BDSecurity Object

AuthManager Object

Code to Set a Custom Property on a Ticket

Web ファームでプロキシ アカウントを使う

プロファイル定義に新しいプロパティを追加する


プロキシ アカウント

プロキシ アカウントは、個々の認証済みユーザーのアカウントの代わりに使われるロール ベースの Windows アカウントです。プロキシ アカウントを使うと、サイトにロール ベースのセキュリティを実装できます。

たとえば、サイトのロールとして、買い物客、販売担当者、マネージャ、および管理者を作成します。これらのロールごとに Active Directory Windows アカウントを 1 つ作成します。個々のユーザー アカウントを、ユーザー認証に使われる SQL Server などのデータベースに格納します。ユーザーが、一意の資格情報を使ってサイトにログオンします。ユーザーがデータベースに対して認証され、ユーザーの "ロール" が特定されると、ユーザーは、そのロール用のプロキシ アカウント (Active Directory に格納されている) の資格情報を使ってサイトにアクセスします。

Windows アカウント (このシナリオでは Active Directory に格納されている) は、プロキシ アカウントと呼ばれます。このように呼ばれるのは、プロキシ アカウントが、ユーザー認証に使われるユーザー アカウント (SQL Server に格納されている) の代わりに、サイトへのアクセス許可の付与に使われるためです。

Login.asp ページに、ユーザー アカウント (SQL Server などのデータベースに格納されている) を、プロキシ アカウント (Active Directory に格納されている) にマップするコードを追加する必要があります。

ここでは、次のトピックについて説明します。

  • プロキシ アカウントを使う場合の長所と短所
  • プロキシ アカウントを使ってユーザーにアクセス許可を付与する
  • プロキシ アカウントを有効にする
  • ユーザーによるプロキシ アカウントの切り替えを可能にする
  • Web ファームでプロキシ アカウントを使う
  • プロキシ アカウントを実装するコード
  • Web ファーム シナリオでプロキシ アカウントを実装するコード


プロキシ アカウントを使う場合の長所と短所

プロキシ アカウントをサポートすると、多数のユーザーを SQL Server データベース (Active Directory よりも大容量) に保持し、Active Directory に格納されている少ない Windows アカウントにマップすることができます。したがって、Windows ACL セキュリティを引き続き利用できます。

プロキシ アカウントを使うと、ACL を構成するときの管理上のオーバーヘッドが最小限になります。これは、サイトへのアクセス許可の付与に使われる Windows アカウントが少なくなるためです。また、プロキシ アカウントを使うと、サイトのパフォーマンスが向上します。これは、SQL Server が Active Directory よりも高速であるためです。ただし、プロキシ アカウントを使うことにより、ユーザー アカウントをすべて Active Directory に格納する場合よりも、セキュリティが基本的に低下します。

サイトのリピーターが多数存在するため Active Directory に保持しない一方で、Windows 認証を利用し、アクセス制御リスト (ACL) を使ってサイト リソースにセキュリティを設定する場合は、プロキシ アカウントを使うと便利です。

ユーザー アカウントを Active Directory よりも大容量の SQL Server などのデータベースに保持し、少量の Windows アカウントを Active Directory に保持します (Windows アカウントはプロキシ アカウントとして使われます)。これにより、多数のユーザー (このシナリオでは通常数百万) を、少ないプロキシ アカウントにマップできます。また、ACL の構成対象となる Windows アカウントが少なくなるため、アクセス許可の管理が簡単になります。各ユーザーを特定のロールに属するものとして指定できます。このロールは、ユーザーを特定のプロキシ アカウントにマップするために使われます。

注

  • ユーザー アカウントをプロキシ アカウントにマップする方法は、個々のサイトのデザインに依存します。ログイン ページに、SQL Server にプロパティを要求してユーザー ロールを特定するロジックを追加する必要があります。ログイン ページでは、次に、このロールに関するプロキシ資格情報を Active Directory から取得し、プロキシ資格情報を含むセッション cookie をユーザーに送信します。詳細については、「プロキシ アカウントを実装するコード」を参照してください。

次に、プロキシ アカウントを使う場合の長所と短所の概要を示します。

プロキシ アカウントを使う場合の長所

  • パフォーマンスの向上 : SQL Server によるユーザー認証は、Active Directory よりもはるかに高速です。
  • 拡張性 : Active Directory ドメイン 1 つあたりのユーザー数が、推奨される上限 (約 1,000 万) を超える場合は、Active Directory パーティションまたはドメインを追加する必要があります。ただし、これを行うと、Active Directory の管理が複雑になります。1 つの SQL Server には、多くのユーザーを格納できます。その方法としては、1 台のコンピュータにハード ドライブ領域やプロセッサを追加するだけです。
  • 情報システム総合コストの低減 : Active Directory には非常に多くのオブジェクトを格納できますが、電子商取引のシナリオで良好なパフォーマンスを得るため、Active Directory に格納するオブジェクト/ユーザーの数を、ドメイン 1 つあたり 300 万以内に抑えることをお勧めします。

    Commerce Server では、Active Directory の拡張に複数フォレストのパーティション分割サポートが利用できます。これについては、オブジェクトおよびユーザー数 1,000 万までテストされていますが、ハードコードの制限はありません。

    SQL Server には、コンピュータ 1 台あたりで、Active Directory よりもはるかに多くのユーザー アカウントを格納できます。格納する Windows ユーザー アカウントが 1,000 万を超える場合は、情報システム総合コストが低減されます。

  • より簡単な管理 : ユーザーが各自のロール用のプロキシ アカウントの資格情報を使ってサイトにアクセスすることや、数百万ものユーザーを少ないロールにマップできることにより、サイト リソースに ACL を設定する作業がはるかに軽減されます。

プロキシ アカウントを使う場合の短所

  • セキュリティの基本的な低下 : SQL Server では、パスワードはクリア テキストで格納され (ただし、プロファイル システムの暗号化機能でパスワードを暗号化することは可能)、Active Directory では、既定で、パスワードは暗号化された形式で格納されます。したがって、プロキシ アカウントを使うと、ユーザー アカウントをすべて Active Directory に格納する場合よりも、セキュリティが低下します。

重要

  • 上記のような短所があるため、Retail ソリューション サイトなどの B2C 環境にはプロキシ アカウントを実装しないでください。

関連項目

暗号化されたプロファイル プロパティを管理する


プロキシ アカウントを使ってユーザーにアクセス許可を付与する

ここに示す情報は、システム管理者とサイト開発者を対象にしています。ここでは、プロキシ アカウントを使うための必要条件について説明します。また、プロキシ アカウントを使ってユーザーにサイトへのアクセス許可を付与する方法の詳細についても説明します。このシナリオを実装するようにログイン ページをカスタマイズするサイト開発者は、この詳細情報を把握しておく必要があります。

プロキシ アカウントを使うための必要条件を次に示します。

  • Windows 認証モードを使うようにサイトを構成します。
  • サイトの認証フィルタを有効にします。
  • Active Directory に Windows ユーザー アカウント (プロキシ アカウント) を、ロールごとに 1 つ作成します。
  • 個々のユーザー アカウントを、ユーザー認証に使われる SQL Server などのデータベースに格納します。
  • クライアント ブラウザで cookie がサポートされている必要があります。

重要

  • SQL Server パスワードはクリア テキストでネットワーク上を移動するため、ファイアウォールを使って非武装地帯 (DMZ) を実装することをお勧めします。DMZ の使用については、「ネットワークにセキュリティを設定する」を参照してください。

Windows 認証を認証フィルタおよびプロキシ アカウントと併用してサイトへのアクセス許可を付与する

ユーザーは、Windows 認証を認証フィルタと併用するサイトと同じように認証されます。その認証については、「Windows 認証モード」のトピックを参照してください。違いは、下図のように、ユーザーがプロキシ アカウントのコンテキストでサイトにアクセスするという点です。

次の図は、Windows 認証を認証フィルタおよびプロキシ アカウントと併用して、ユーザーにサイトへのアクセス許可を付与するしくみを示しています。

Windows 認証およびプロキシ アカウント


プロキシ アカウントを有効にする

サイトでプロキシ アカウントを使えるようにするには、次の操作を行う必要があります。

  • ソリューション サイトをアンパックする
  • サイトで、Windows 認証モードで認証フィルタを有効にする
  • Active Directory にユーザー アカウント (プロキシ アカウント) を作成する
  • 新しいプロパティをサイトのプロファイル定義に追加する
  • SQL Server にユーザー アカウントを作成する

Active Directory に Windows ユーザー アカウントを作成する

Active Directory に Windows ユーザー アカウントを、ロールごとに 1 つ作成します。

新しいプロパティをサイトのプロファイル定義に追加する

サイトのプロファイル定義に 2 つの新しいプロパティを追加します。1 つは、プロキシ アカウント (Active Directory にある) の名前を格納するためのプロパティで、もう 1 つは、プロキシ アカウントのパスワードを SQL Server データベースに格納するためのプロパティです。SQL Server データベースに格納することで、パスワードをクリア テキストで取得できるようになります。Password 型のプロパティについては、暗号化する必要があります。詳細については、「プロファイル定義にプロパティを追加する」を参照してください。

注

  • プロキシ アカウントの名前を格納するプロパティは、文字列値にし、データにマップする必要があります。さらに、必須プロパティにする必要があります。
  • プロキシ アカウントのパスワードを格納するプロパティは、文字列値にし、データにマップする必要があります。さらに、必須プロパティにし、非対称暗号化用に構成する必要があります。これにより、パスワードがクリア テキストでログイン ページに返されます。
  • Active Directory 内のプロキシ パスワードと SQL Server 内のプロキシ パスワードは、同期化されません。Active Directory 内のプロキシ アカウントのパスワードを変更する場合は、ユーザーごとに SQL Server 内のプロキシ アカウントのパスワードも変更する必要があります。

サイトの Login.asp を更新します。Login.asp ページの更新では、ユーザー認証だけでなく、次の処理も行われるようにする必要があります。

  • プロファイルを取得し、ユーザーのプロキシ アカウントとプロキシ パスワードを取得します。
  • MSCSAuth チケットにユーザーのユーザー ID を設定します。ただし、クエリ文字列経由でフィルタに渡される資格情報は、プロキシ アカウントのものです。認証フィルタでパスワード キャッシュがチケット内のユーザー ID ではなく GUID に基づいて検索されるようにするには、GUID プロパティをチケットとクエリ文字列に設定する必要があります。

詳細については、「Login.asp を構成して GUID を使う」を参照してください。

プロキシ アカウントを使うように Login.asp を構成するサンプル コードについては、「プロキシ アカウントを実装するコード」を参照してください。

注

  • パスワードについては、クリア テキストでログイン ページに返されるようにする必要があります。その理由は、プロキシ アカウントのパスワードがプロファイルに格納されるためです。

詳細については、「クリア テキスト パスワード」を参照してください。

SQL Server にユーザー アカウントを作成する

SQL Server 内のユーザー アカウントを、Active Directory 内のプロキシ アカウントにマップします。

注

  • 新しいユーザーを作成する場合は、ユーザーのロールを入力します。既存のユーザーの場合は、ユーザー アカウントごとにロール情報を入力する必要があります。
  • ユーザーを追加する管理者は、ユーザー ロールのプロキシ パスワードを入力する必要もあります。このプロキシ パスワードは、プロファイルに追加したプロパティです。
  • サイトにプロキシ アカウントを実装する場合は、すべてのユーザー アカウント (SQL Server に格納されている) を、プロキシ アカウント (Active Directory に格納されている) にマップする必要があります。

Active Directory ドメイン コントローラでは、ローカルで、ログオンをドメイン ユーザー用に構成する必要があります。

関連項目

Post メソッド

プロファイル定義にプロパティを追加する

認証フィルタと DDoS 攻撃

BDSecurity Object

AuthManager Object

クリア テキスト パスワード


ユーザーによるプロキシ アカウントの切り替えを可能にする

サイトを訪問するユーザーが別のプロキシ アカウントを使って Active Directory に再認証されるようにすることができます。

たとえば、ユーザーのログインに使われるアカウントをシームレスに切り替えることができます。ユーザーが最初に認証を受ける場合、ログイン ページは、正しいプロキシ (Proxy1) アカウントの資格情報を選択して認証フィルタに渡します。認証フィルタは、その資格情報を IIS に渡してユーザーを認証します。次に、ユーザーが、別のプロキシ アカウントの資格情報 (Proxy2) が必要になるディレクトリを表示するとします。ユーザーの現在の資格情報ではページにアクセスできないため、ユーザーは Login.asp にリダイレクトされます。ログイン ページは、新しい資格情報 (Proxy2) を認証フィルタに渡し、認証フィルタは、新しい資格情報を IIS に渡します。この結果、ユーザーは新しい資格情報を使ってシームレスにログオンできます。

このシナリオをサポートするには、Login.asp に、ユーザーが認証済みであることを認識し、Proxy2 の資格情報を取得してフィルタに渡すようなアプリケーション固有のコードを実装する必要があります。認証フィルタでパスワード キャッシュがユーザー ID ではなく GUID に基づいて検索されるようにするために、GUID プロパティがユーザーの MSCSAuth チケットに追加されているため、新しい GUID を生成せずに、この GUID をフィルタに渡す必要があります。ユーザーを正しいプロキシ アカウントにマップする方法は、アプリケーションに依存します。認証フィルタで確実に行われることは、ユーザーが要求に関してアクセスを拒否された場合に、要求を Login.asp ページにリダイレクトすることだけです。

関連項目

  • プロキシ アカウント


Web ファームでプロキシ アカウントを使う

ユーザーが別の Web サーバーに返された場合、有効な MSCSAuth チケットを持っている場合でも、ユーザーの資格情報は認証フィルタのパスワード キャッシュには格納されません。したがって、要求はログイン ページにリダイレクトされます。

Web ファーム シナリオでプロキシ アカウントを使わずに Windows 認証モードを実行する方法と同じように、ロジックを追加して、シームレスにログオンできるようにする必要があります。この場合の違いは、プロキシ アカウントのシナリオでは、認証フィルタでパスワードをユーザー ID ではなく GUID に基づいて検索できるようにするために、GUID プロパティをチケットに設定しているため、資格情報をクエリ文字列経由でフィルタに渡す場合は、新しい GUID を作成せずに、チケットに含まれているこの GUID をクエリ文字列に含めて渡す必要があるという点です。

プロキシ アカウントを使うように Login.asp を構成するサンプル コードについては、「Web ファーム シナリオでプロキシ アカウントを実装するコード」を参照してください。

関連項目

プロキシ アカウント

認証フィルタと DDoS 攻撃

Login.asp を構成して GUID を使う


プロキシ アカウントを実装するコード

次のサンプル コードは、Login.asp ファイルの一部です。この部分は、プロキシ アカウントが使えるようにカスタマイズされています。

' if the user has a valid authticket but was redirected here, it must mean that the request was bounced to a new server on the farm
' and the authfilter on this server does not have the credentials in its cache
if (objAuth.IsAuthenticated()) then
' retrieve the userid from the authticket
strUserID = objAuth.GetUserID(1)

' retrieve the profile for the user
Set objMSCSProfileService = Application("MSCSProfileService")
Set objMSCSProfileObj = objMSCSProfileService.GetProfile(strUserID, "UserObject")' GetUserProfileByLoginName(strUsername)
if (objMSCSProfileObj is nothing) then
' clear the authticket before redirecting back to login page because the profile for the user does
' not exist and will treat this as a new login request
objAuth.SetAuthTicket "", true, 90
Response.Redirect "Login.asp"
end if

' these are the new properties that were created to extend the user profile to contain the proxyuser and proxypassword values
proxyUser = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("proxy_user")
proxyPassword = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("proxy_password")

' set the user's userid in the authticket
objAuth.SetAuthTicket strUserID, True, 90

' appened the proxyuser and proxypassword the querystring to allow the authfilter to use these credentials
strRetAsp = Request.Cookies("MSCSFirstRequestedURL")
strRetAsp = strRetAsp + "&proxyuser="
strRetAsp = strRetAsp + proxyUser
strRetAsp = strRetAsp + "&proxypwd="
strRetAsp = strRetAsp + proxyPassword

' create a new guid to allow the authfilter to do lookups in its password cache based on the guid and not the userid in the ticket
Set objGenID =  Server.CreateObject("Commerce.GenID") '$PERF: store one in Application scope in GLOBAL.ASA, Application("MSCSAuthGenID")
strGUID = objGenID.GenGUIDString

' set the guid property in the authticket and append it to the querystring as well
objAuth.SetProperty 2, "guid", strGUID ' after setting Ticket
strRetAsp = strRetAsp + "&guid="
strRetAsp = strRetAsp + strGUID

Response.Redirect strRetAsp
end if

関連項目

プロキシ アカウントを有効にする


Web ファーム シナリオでプロキシ アカウントを実装するコード

次のサンプル コードは、Login.asp ファイルの一部です。この部分は、Web ファーム シナリオでプロキシ アカウントが使えるようにカスタマイズされています。

' if the user has a valid authticket but was redirected here, it must mean that the request was bounced to a new server on the farm
' and the authfilter on this server does not have the credentials in its cache
if (objAuth.IsAuthenticated()) then
' retrieve the userid from the authticket
strUserID = objAuth.GetUserID(1)

' retrieve the profile for the user
Set objMSCSProfileService = Application("MSCSProfileService")
Set objMSCSProfileObj = objMSCSProfileService.GetProfile(strUserID, "UserObject")' GetUserProfileByLoginName(strUsername)
if (objMSCSProfileObj is nothing) then
' clear the authticket before redirecting back to login page because the profile for the user does
' not exist and will treat this as a new login request
objAuth.SetAuthTicket "", true, 90
Response.Redirect "Login.asp"
end if

' these are the new properties that were created to extend the user profile to contain the proxyuser and proxypassword values
proxyUser = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("proxy_user")
proxyPassword = objMSCSProfileObj.Fields.Item("GeneralInfo").Value.Item("proxy_password")

' appened the proxyuser and proxypassword the querystring to allow the authfilter to use these credentials
strRetAsp = Request.Cookies("MSCSFirstRequestedURL")
strRetAsp = strRetAsp + "&proxyuser="
strRetAsp = strRetAsp + proxyUser
strRetAsp = strRetAsp + "&proxypwd="
strRetAsp = strRetAsp + proxyPassword

' retrieve the guid that is already in the authticket
strGUID = objAuth.GetProperty 1, "guid"
if len(strGUID) = 0 then
' if there isn't one, then create a new one
Set objGenID =  Server.CreateObject("Commerce.GenID")
strGUID = objGenID.GenGUIDString
objAuth.SetProperty 2, "guid", strGUID ' after setting Ticket
end if

' append the guid to the querystring as
strRetAsp = strRetAsp + "&guid="
strRetAsp = strRetAsp + strGUID

' redirect to the originally requested url
Response.Redirect strRetAsp
end if

関連項目

プロキシ アカウントを有効にする

Web ファームでプロキシ アカウントを使う


カスタム認証モード

カスタム認証を使う場合、Commerce Server サイトのすべての ASP ページおよびディレクトリで、ログイン アクセスが要求されます。認証フィルタは、Commerce Server サイトの仮想ディレクトリを照合し、Commerce Server 管理データベースを照合して、サイトでカスタム認証が有効であるかどうかを決定します。

ユーザーが ASP ページやディレクトリへのアクセスを要求するときに送信した MSCSAuth チケットが有効ではない場合、認証フィルタは、ユーザーにログイン情報を入力するよう要求します。ユーザーが資格情報をログイン ページに送信すると、ログイン ページは、SQL Server データベースまたはその他の種類のデータベースに照合して、資格情報を確認します。

ユーザーの認証が完了すると、Login.asp ページは MSCSAuth チケットを発行します。MSCSAuth チケットは、認証フィルタが要求を認証して、要求の実行を許可するかどうかを判別するときに確認されます。

このモードでは、認証フィルタはサイトへのアクセスを制御するため、サイト設計者にカスタム認証プロセスを提供することを許可します。

ここでは、次のトピックについて説明します。

  • カスタム認証モードでユーザーの要求を処理する
  • カスタム認証を有効にする


カスタム認証モードでユーザーの要求を処理する

カスタム認証を有効にした場合、認証フィルタは、SF_NOTIFY_PREPROC_HEADERS イベントの発生の通知を受けた後で、次の処理を行います。

  1. ローカル サイト キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取り、サイト キャッシュに格納します。
  2. 要求された URL が正しいかどうかを検出し、URL の大文字小文字を自動的に訂正します。
  3. セッション cookie がサポートされているかどうかを確認し、サポートされていない場合は、ユーザーを、CS 認証リソースの "cookie を使用しないフォーム" プロパティで指定されている ASP ページにリダイレクトします。通常、このページはユーザーに対して cookie が必要であること、および cookie を有効にしてから要求を再送信する必要があることを通知します。
  4. cookie に MSCSAuth チケットが含まれているかどうかを確認し、含まれていない場合は、ユーザーをログイン ページにリダイレクトします。
  5. cookie に MSCSAuth チケットが含まれている場合は、現在の時刻をチケット上の前回のログイン時刻と照合し、現在の時刻が、チケットで指定されている時間ウィンドウの期間内にあるかどうかを確認します。
  6. 現在の時刻が、チケットで指定されている時間ウィンドウの期間を過ぎている場合は、ユーザーを無効なユーザーとしてログイン ページにリダイレクトします。
  7. 現在の時刻が時間ウィンドウの期間内にある場合は、チケットを有効と見なし、ユーザーを確認済みユーザーとして、要求されたページに送信します。現在の時刻が、前回のログイン時刻と時間ウィンドウの合計値から 5 分以内のところにある場合は、チケット上の前回のログイン時刻を現在の時刻に変更します。この結果、アクティブ ユーザーが参照を続行できるようになります。

関連項目

Windows認証モードでユーザーの要求を処理する

カスタム認証を有効にする

Authentication Features


カスタム認証を有効にする

カスタム認証を実装しなければならない場合にも、認証フィルタでカスタム認証をサイトに組み込むことができます。カスタム認証を選択した場合、認証フィルタは有効な MSCSAuth チケットを確認します。有効な MSCSAuth チケットが見つからない場合、ユーザーはログイン ページにリダイレクトされます。このページでは、資格情報を検証し、成功時に MSCSAuth チケットを設定することで、独自のカスタム認証を行うことができます。

たとえば、プロファイル システムを使って、ユーザーのログイン時にユーザー プロファイルからアクセス権を取得できます。プロファイル システムには、データ ソースからユーザー情報を取得するという機能があります。このデータ ソースには、Microsoft SQL Server データベース、Windows 2000 Active Directory の他、OLE DB 準拠のデータ ソースまたは有効なライトウエイト ディレクトリ アクセス プロトコル (LDAP) バージョン 3 ストアを使用できます。

カスタム認証モードを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[カスタム認証] をクリックし、[OK] をクリックします。

認証フィルタはユーザーの要求を Login.asp ページにリダイレクトします。Login.asp ページは、SQL Server データベースまたはその他のデータ ストアに照合して、ユーザーのログインとパスワードの有効性を確認します。

注

  • Commerce Server マネージャでプロパティ値を変更した場合、その変更を有効にするには、Web サーバーごとにメモリからアプリケーションをアンロードする必要があります。アンロードの方法については、「メモリからアプリケーションをアンロードする」を参照してください。

関連項目

ドメイン間で cookie の共有を有効にする

アプリケーション間で cookie の共有を有効にする

Windows 認証を有効にする

自動 cookie モードを有効にする

BDSecurity Object

AuthManager Object


自動 cookie モード

ページ間およびセッション間で匿名ユーザーを追跡するには、自動 cookie モードを使います。自動 cookie モードでは、ユーザーを識別する一意の ID が生成され、さらに必要に応じて、ユーザーに関する情報を格納するプロファイルが作成されます。この手順を示すサンプル コードについては、「Code to Set a New MSCSProfile Ticket」を参照してください。

ここでは、次のトピックについて説明します。

  • 自動 cookie モードでユーザーの要求を処理する
  • 自動 cookie モードを有効にする


自動 cookie モードでユーザーの要求を処理する

ユーザーがサイトへのアクセス要求を送信した場合、ISAPI フィルタである認証フィルタは、インターネット インフォメーション サービス (IIS) から SF_NOTIFY_PREPROC_HEADERS イベントの発生の通知を受けた後で、次の処理を行います。

  1. ローカル サイト キャッシュにあるサイト構成プロパティを確認します。プロパティが見つからない場合は、SiteConfig オブジェクトを使って管理データベースからサイト構成プロパティを読み取り、サイト キャッシュに格納します。
  2. URL が正しいかどうかを確認し、大文字小文字を自動的に訂正します。
  3. ブラウザで cookie がサポートされているかどうかを確認します。
  4. cookie がサポートされていない場合は、ユーザーを、CS 認証リソースの "cookie を使用しないフォーム" プロパティで指定されている Active Server Pages (ASP) ページにリダイレクトします。通常、このページはユーザーに対して cookie が必要であること、および cookie を有効にしてから要求を再送信する必要があることを通知します。この場合は、既定で、ソリューション サイトに用意されている nocookie.asp という名前の ASP ページが使われます。このファイルは、Commerce Server のインストール ディレクトリにある AuthFiles フォルダにあります。
  5. 認証フィルタが、要求に MSCSProfile チケットが含まれているかどうかを確認します。

    注

    • 自動 cookie モードでは、自動 cookie モードと Windows 認証の併用を指定した場合を除き、匿名アクセスが許可されます。併用を指定した場合、認証フィルタは、cookie に有効な MSCSAuth チケットが存在するかどうかを確認します。
  6. cookie に MSCSProfile チケットが存在する場合、認証フィルタは、匿名ユーザー アカウントを使って、IIS のユーザーの権限を借用します。既定では、匿名ユーザー アカウントは IUSR_<コンピュータ名> です。<コンピュータ名> は、IIS がインストールされているコンピュータの名前です。
  7. 要求された URL に匿名アクセス許可が割り当てられている場合は、URL を返します。
  8. 要求に MSCSProfile チケットが存在しない場合は、ユーザーを、CS 認証リソースの "cookie を使用しないフォーム" プロパティで指定されている ASP ページにリダイレクトします。

自動 cookie ページ

前の「自動 cookie モード」のトピックで示した 8 つの手順は、サイト開発者を対象としていません。自動 cookie ページで行われるアクションを次に示します。これらのアクションについては、サイト開発者が実装する必要があります。

  1. 固定 cookie がサポートされているかどうかが確認され、サポートされていない場合、ユーザーは cookie を使わないページにリダイレクトされます。
  2. 固定 cookie のサポートが有効になっている場合は、ユーザーを識別するグローバル一意識別子 (GUID) などの一意識別子が作成されます。
  3. 一意の ID がユーザーの MSCSProfile チケット内に設定されます。
  4. この時点で、匿名ユーザーに関する情報を格納するプロファイルを作成できるようになります。
  5. ユーザーが、要求された URL にリダイレクトされます。

この機能のほとんどを実行する Autocookie.asp という既定のページが、インストールされた製品に用意されています。これは、\Microsoft Commerce Server\AuthFiles フォルダにあります。

関連項目

自動 cookie モードを有効にする

ドメイン間で cookie の共有を有効にする

アプリケーション間で cookie の共有を有効にする


自動 cookie モードを有効にする

自動 cookie モードを有効にした場合、認証フィルタは、ブラウザにこの匿名 cookie があるかどうかを常に確認するようになります。ブラウザに匿名 cookie がない場合、ユーザーは自動 cookie フォームにリダイレクトされます。

自動 cookie モードにより、Commerce Server 2002 は匿名ユーザーを追跡できます。匿名 cookie を持つユーザーが登録した場合でも、そのユーザーの固定 cookie は、Commerce Server で更新できます。したがって、ユーザーが匿名である間に収集されたプロファイル データが失われることはありません。ただし、Commerce Server が固定 cookie を更新するかどうかは、アプリケーションの開発方法に依存します。

自動 cookie モードを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログボックスの [全般] タブで、[自動 cookie] を選択し、[OK] をクリックします。

注

  • Commerce Server マネージャでプロパティ値を変更した場合、その変更を有効にするには、Web サーバーごとにメモリからアプリケーションをアンロードする必要があります。アンロードの方法については、「メモリからアプリケーションをアンロードする」を参照してください。

関連項目

Windows 認証を有効にする

カスタム認証を有効にする

ドメイン間で cookie の共有を有効にする

アプリケーション間で cookie の共有を有効にする

BDSecurity Object

AuthManager Object


Windows 認証と自動 cookie の混合モード

ここでは、Windows 認証と自動 cookie の混合認証モードについて説明します。このモードでは、匿名ユーザーと登録済みユーザーはどちらも許可されます。また、両者を追跡することが可能です。このモードは、サイトのコンテンツに、すべてのユーザーが利用できる部分と、登録済みユーザー専用の部分が含まれている場合に役立ちます。

混合モードと Windows 認証モードの主な違いは、次のとおりです。

  • 混合モードでは、匿名ユーザーを追跡できます。
  • 混合モードでは、匿名ユーザーは、アクセス制御リスト (ACL) の設定に関係なく、すべての URL にアクセスするときに、有効な MSCSProfile チケットが必要になります。Windows 認証モードでは、匿名ユーザーは、チケットが不要であり、匿名アクセス許可を使ってすべての URL にアクセスできます。

Windows 認証と自動 cookie の混合モードを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブで、[自動 cookie] を選択します。
  4. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[Windows 認証] をクリックし、[OK] をクリックします。

関連項目

カスタム認証と自動 cookie の混合モード

登録する匿名ユーザー用のチケット


カスタム認証と自動 cookie の混合モード

カスタム認証と自動 cookie モードを併用する場合、登録済みユーザーと匿名ユーザーはどちらもサイトにアクセスできます。また、固定 cookie を通じて匿名ユーザーを追跡することが可能になります。Windows アクセス制御リスト (ACL) を通じてアクセスを制御する代わりに、カスタム認証プロセスを提供できます。

カスタム認証と自動 cookie の混合モードを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブで、[自動 cookie] を選択します。
  4. [プロパティ] ダイアログ ボックスの [全般] タブの [認証フィルタ] ボックスで、[カスタム認証] をクリックし、[OK] をクリックします。

注

  • ログイン ページに、現在の仮想ディレクトリのルートの下にはない、独立した仮想ディレクトリのルートへのリンクを配置します。この独立した仮想ディレクトリのルートの下に、匿名アクセス用のコンテンツをすべて保持します。

関連項目

Windows 認証と自動 cookie の混合モード

登録する匿名ユーザー用のチケット


CS 認証リソースのプロパティを設定する

グローバルな CS 認証リソースのプロパティを表示および編集できます。

注

  • 認証プロパティの多くは、サイト レベルで設定します。サイト レベルの認証プロパティを設定する方法については、「アプリケーションを構成する」を参照してください。
  • 次の認証プロパティは、アプリケーション既定の構成リソースで設定されています (サイト チケット オプション、サイト プライバシ オプション、フォーム ログイン オプション、および認証マネージャの認証チケットのタイムアウト)。これらのプロパティは、Commerce Server ソリューション サイトを使ってサイトを開発している場合に適用されます。これらのアプリケーション既定の構成プロパティを設定する方法については、「アプリケーション既定の構成リソースを構成する」を参照してください。

CS 認証リソースのプロパティを設定するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] をクリックします。
  2. 右側のウィンドウで、[CS Authentication(サイト名)] リソースを右クリックします。(サイト名) は構成対象となるサイトの名前です。次に、[プロパティ] をクリックします。

    [CS Authentication(サイト名) Properties] ダイアログ ボックスが表示されます。

  3. [プロパティ] ボックスで、値を設定するプロパティを選択します。
  4. [選択したプロパティ値] ボックスに設定値を入力し、[OK] をクリックします。

次の表は、Commerce Server サイト向けにグローバル リソース レベルで設定できる CS Authentication リソースのプロパティの一覧です。

プロパティ | 説明
ログイン フォーム ユーザーのログインに使用するフォームの名前です。次の値のいずれかを指定できます。
  • Login.asp ページへの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • Login.asp ページへの完全なパス。

Secure Sockets Layer (SSL) を使う場合は、Login.asp ページへの完全なパスを指定する必要があります。

たとえば、http://www.microsoft.com/authfilter/login.asp とします。
ログイン再試行回数 ユーザー名とパスワードを再入力できる回数です (この回数を超えると、ユーザーは顧客サービス担当者に連絡するように求められます)。

このプロパティは、Windows 認証を使っている場合にのみ適用されます。
パスワード キャッシュ サイズ | 認証フィルタのユーザー パスワード キャッシュにユーザーの資格情報を保存できるユーザーの最大数です。このプロパティは、Windows 認証モードでのみ使用できます。
パスワード キャッシュ TTL | 認証資格情報がパスワード キャッシュに保存される時間です (分単位)。このプロパティは、Windows 認証モードでのみ使用できます。
認証プロファイル名 | プロファイル システムのデータ ソースをパーティション化するときに使うプロファイル オブジェクトの名前です。既定のスキーマを使う場合、この値は Profile Definitions.UserObject である必要があります。
認証フィルタ ヘルパ フォルダ | 認証フィルタがヘルパー ファイルの格納先として使うフォルダの名前です。認証フィルタ関連のファイルはすべて、このフォルダにまとめて保存しておく必要があります。既定のサブフォルダは、\AuthFiles です。すべての認証フィルタ ファイルについて、匿名アクセスを有効にしておく必要があります。
エラー フォーム アクセス拒否エラーの発生時に使うフォームの名前です。次の値のいずれかを指定できます。
  • フォームの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • フォームの完全なパス。
ヘルプ フォーム ログインのヘルプ情報を掲載するフォームの名前です。次の値のいずれかを指定できます。
  • フォームの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • フォームの完全なパス。
内部エラー フォーム 内部エラーの発生時に表示するエラー フォームの名前です。次の値のいずれかを指定できます。
  • フォームの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • フォームの完全なパス。
cookie を使用しないフォーム ブラウザで cookie が有効になっていない場合、または cookie がサポートされていない場合に表示するフォームの名前です。次の値のいずれかを指定できます。
  • フォームの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • フォームの完全なパス。
自動 ookie フォーム 自動 cookie が有効になっているときにリダイレクトされるフォームの名前です。次の値のいずれかを指定できます。
  • フォームの相対パス。http://<サーバー名> と認証フィルタ ヘルパ フォルダが使用されます。
  • フォームの完全なパス。
プロファイル cookie の有効期限 | cookie の有効期限が切れる日付です。
暗号化を有効にする | cookie データの暗号化を有効にし、このプロパティを Commerce サイト レベルで設定します。手順については、「アプリケーションを構成する」を参照してください。
cookie データの暗号化キー | cookie データの暗号化または復号化に使用する暗号化キーです。新しい暗号化キーを生成するには、「cookie の新しい暗号化キーを生成する」を参照してください。

注

  • 認証フィルタに関連のあるファイルはすべて、認証フィルタ ヘルパ フォルダ プロパティで指定したフォルダにまとめる必要があります。既定のサブフォルダは、\AuthFiles です。すべての認証フィルタ ファイルについて、匿名アクセスを有効にしておく必要があります。
  • グローバル CS 認証プロパティに変更を加えた後、認証フィルタを使っている場合は、net stop コマンドと net start コマンドを使って、インターネット インフォメーション サービス (IIS) 5.0 を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

アプリケーション既定の構成リソースを構成する

BDSecurity Object

AuthManager Object


Exchange 2000 Outlook Web Access の基本認証

Outlook Web Access (OWA) は、Microsoft Exchange Server 2000 のインストール処理中にインストールおよび構成されるハイパーテキスト転送プロトコル (HTTP) の仮想サーバーです。Exchange Server 2000 の OWA は、IIS の基本認証方法を使って、サイトへのアクセスにセキュリティを設定します。この認証方法を使うと、ユーザー名に関する AUTH_USER という IIS のサーバー変数が作成されます。OWA は AUTH_USER を使って、セッション用に開く Exchange 2000 メールボックスを特定します。

OWA の詳細については、Microsoft Exchange Server 2000 とインターネット インフォメーション サービスのマニュアルを参照してください。

サイトをアンパックする場合は、Commerce Server サイトを既定の Web サイト レベル (Exchange 2000 OWA アプリケーションが存在する仮想ルートより 1 つ上のレベル) で設定します。既定では、Exchange 2000 OWA アプリケーションは、"Exchange" という名前の既定の Web サイトの仮想ディレクトリにインストールされます。

認証フィルタは、仮想ルート レベルでセキュリティを設定します。したがって、Exchange サイトへの要求を読み取るには、Exchange 2000 OWA アプリケーションを、認証フィルタによってセキュリティが設定されるサイト レベルの 1 つ下のレベルにインストールする必要があります。

注

  • Commerce サイトは、Exchange Server サイトよりも上のレベルで設定する必要があります。

認証フィルタを Windows 認証に設定するには

  1. [Commerce Server マネージャ] を展開します。
  2. 適切なアプリケーションを右クリックし、[プロパティ] をクリックします。
  3. [アプリケーションに cookie のパスを設定] チェック ボックスをオフにします。
  4. [全般] タブで、次の値を確認します。
    • [IIS アプリケーション パス] の値は、スラッシュ (/) のみ
    • [認証フィルタ] の値は、[Windows 認証]
  5. [OK] をクリックします。

IIS のサイトの仮想ルート用の設定を確認するには

  1. [インターネット サービス マネージャ] を展開します。
  2. [既定の Web サイト] を右クリックし、[プロパティ] をクリックします。
  3. [ホーム ディレクトリ] タブで、次の値を確認します。
    • [アプリケーション名] の値は、スラッシュ (/)
  4. [ISAPI フィルタ] タブで、順序の一覧で [CSAuthFilter] が [Exchange ISAPI filter] より上にあることを確認します。
  5. [OK] をクリックします。

関連項目

Windows 認証を有効にする


ドメイン コントローラにセキュリティ モードを設定する

Commerce Server サイトで Windows 認証を使うには、Domain Users を有効にする必要があります。

ドメイン コントローラにセキュリティ モードを設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[ドメイン コントローラ セキュリティ ポリシー] をクリックします。
  2. 左側のウィンドウで、[セキュリティの設定] を展開し、[ローカル ポリシー] を展開します。次に、[ユーザー権利の割り当て] をクリックします。

    [ドメイン コントローラ セキュリティ ポリシー] 画面の [ポリシー] ウィンドウに、ユーザー権利の割り当てのポリシーが表示されます。

  3. [ポリシー] ウィンドウで、[ローカル ログオン] をダブルクリックします。

    [セキュリティ ポリシーの設定] ダイアログ ボックスが表示されます。

  4. [セキュリティ ポリシーの設定] ダイアログ ボックスで、[追加] をクリックします。

    [ユーザーまたはグループの追加] ダイアログ ボックスが表示されます。

  5. [ユーザーまたはグループの追加] ダイアログ ボックスの [ユーザーとグループ名] ボックスに、「<ドメイン>\Domain Users」を入力するか、[参照] をクリックして [Domain Users] グループを追加します。ここで、<ドメイン> は Active Directory ドメインの名前です。
  6. [OK] をクリックして、[ユーザーまたはグループの追加] ダイアログ ボックスを閉じます。
  7. [セキュリティ ポリシーの設定] ダイアログ ボックスのボックスに、[<ドメイン>\Domain Users] グループが表示されます。
  8. [OK] をクリックして [セキュリティ ポリシーの設定] ダイアログ ボックスを閉じます。

関連項目

Supplier ソリューション サイトで認証フィルタを有効にする


cookie の新しい暗号化キーを生成する

CS 認証リソースは、暗号化キーを使って cookie データを暗号化または復号化します。既定では、サイトをアンパックする場合に、パッケージの暗号化キーが使われます。暗号化キーは、パッケージの AuthSetup.ini ファイルに格納されます。キーが存在しない場合は、Commerce Server サイト パッケージャが、AuthManager.GenerateEncryptionKey() を使って新しいキーを生成します。

サイトをアンパックするたびに、新しいキーが作成されます。CS 認証リソースで独自の暗号化キーをパッケージ化した場合、そのカスタム パッケージをアンパックするときは常に同じキーになります。サイトのアンパックのたびに新しいキーまたは異なるキーが必要な場合は、サイトをアンパックした後に、Commerce Server マネージャの [新しい暗号化キーの作成] ボタンを使う必要があります。

サイトがアクティブな間は、暗号化キーを変更しないでください。サイトがアクティブな間に暗号化キーを更新すると、既存の MSCSAuth チケットが無効になるため、ユーザーはもう一度ログオンする必要があります。特定のキーで暗号化されたチケットは、同じキーを使わなければ復号化できません。

Commerce Server 2000 では、チケットを暗号化および復号化する暗号化キーが変更された場合は、固定 cookie を復号化できません。Commerce Server 2000 で暗号化されたチケットを復号化するには、GetUserIDFromCookieAndKey メソッドを使います。古いチケットの情報を保持し、新しいチケットを発行するようにサイトをカスタマイズできます。

注

  • 既存の暗号化キーを更新する前に、暗号化キー ファイルのバックアップを作成する必要があります。Commerce Server は、バックアップを作成しません。新しいキーを作成した後に、以前のキーを取り出すことはできません。

新しい暗号化キーを生成するには

重要

  • サイトが Web ファーム シナリオで実装されている場合は、cookie の新しい暗号化キーを生成する前に、「認証チケットに対する暗号化キーのローリング」を参照してください。
  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. ダイアログ ボックス下部の [新しい暗号化キーの作成] をクリックします。
  4. 確認用のダイアログ ボックスで [OK] をクリックします。
  5. IIS を再起動します。

    IIS の再開については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

AuthManager::GenerateEncryptionKey

AuthManager.GetUserIDFromCookie

認証チケットに対する暗号化キーのローリング

IIS と Commerce Server サービスを再起動する


認証チケットに対する暗号化キーのローリング

暗号化キーを変更するには、暗号化キーのローリング機能を使います。この暗号化キーは、サイトの認証チケットを暗号化および復号化するために使われます。管理クラスの従業員が退職した場合や、外部のセキュリティ上の問題が検出された場合、またはセキュリティ ポリシーとして定期的に暗号化キーを変更する場合は、サイトの暗号化キーを変更できます。

サイトの暗号化キーを変更した場合は、認証フィルタが新しい暗号化キーで再初期化されるようにするため、IIS を再起動する必要があります。暗号化キーの変更については、「cookie の新しい暗号化キーを生成する」を参照してください。

Web ファーム シナリオ以外では、これ以上の操作は必要ありません。ただし、Web ファームで暗号化キーを変更する場合は、さらに次に示す操作を行います。

Web ファーム シナリオでの暗号化キーのローリング

Web ファーム シナリオで暗号化キーを変更する場合は、Web サーバーごとに IIS を再起動する必要があります。これにより、各 Web サーバーの認証フィルタが新しい暗号化キーで再初期化されます。ただし、サーバーがリセットされている間に、古い暗号化キーや新しい暗号化キーで暗号化されたチケットを含む要求が、リセット済みのサーバーにリダイレクトされる場合があります。したがって、リダイレクトされた要求がこのサーバーに到着した場合、新しい暗号化キーで初期化された認証フィルタは、要求内のチケットを復号化できません。これは、リダイレクトされた要求内のチケットが、古い暗号化キーで暗号化されているためです。認証フィルタは、要求内のチケットを復号化できないため、この要求をログイン ページにリダイレクトします。

暗号化キーの変更後に、確認済みのユーザーをログイン ページにリダイレクトしないようにするには、古い暗号化キーで暗号化されている受信チケットからユーザー ID を取得できるようにする新しいコードを Login.asp ページに追加する必要があります。新しいコードでは、次に、新しいキーで暗号化された新しいチケットをユーザーに発行する必要があります。

Web ファーム シナリオで暗号化キーのローリングをサポートするために必要なコードをログイン ページに追加するには、AuthManager API の GetUserIDFromCookieAndKey メソッドを使います。次のコードは Login.asp ページの一部です。この部分は、このシナリオをサポートするようにカスタマイズされています。

Dim sUserID

On Error Resume Next

sUserid = auth.GetUserid(enumMSCS_ProfileTicketType)

if (err.number = ...)  get the error codes for NTE_BAD_DATA ,  NTE_BAD_KEY  , NTE_BAD_HASH
{
Dim sCookie, sOldEncryptionKey
sOldEncryptionKey = ** retrieve this from whereever you save old encryption keys
sCookie = Request.Cookies("MSCSAuth")
sUserid = auth.GetUseridFromCookieAndKey(sCookie, sOldEncryptionKey)

if Not ((err.number = ...)  get the error codes for NTE_BAD_DATA ,  NTE_BAD_KEY  , NTE_BAD_HASH)
{
auth.SetAuthTicket(sUserID, bCookieSupport, nTimeWindow)
}
else
{
*** rediret to reforce a login.
}

*** note you can try more than one old key if you have saved more than one old encryption key
}

On Error Goto 0

最後に、暗号化キーを変更する前に、Web サーバー ログ インポート DTS タスクを使って、IIS ログをデータ ウェアハウスにインポートする必要があります。暗号化キーを変更する前にデータをインポートしておかないと、Web サーバー ログ インポート タスクで、ログを含むチケットを復号化できなくなります。これは、Web サーバー ログ インポート タスクが、管理データベースに格納されている現在の暗号化キーを使ってログ ファイル内のチケットを復号化しようとするためです。

注

  • 上記のサンプル コードとの併用で、古い暗号化キーを、アプリケーションが暗号化キーを取得する場合の格納先に格納する必要があります。この古い暗号化キーは、古いキーで暗号化されたチケットを後で復号化するときに使うことができます。この復号化の方法はアプリケーションに依存します。ただし、古いチケットからはユーザー ID しか取得できません。カスタム プロパティはすべて失われます。

関連項目

IIS と Commerce Server サービスを再起動する


Login.asp を構成してGUID を使う

Login.asp ページを更新し、GUID という名前のカスタム プロパティを追加することができます。Login.asp ページは、ユーザーのチケットにグローバル一意識別子 (GUID) 文字列を格納し、サイトを分散型サービス拒否 (DDoS) 攻撃から保護します。

GUID をユーザーのチケットに格納するには、ログイン ページをソリューション サイト用の Login.asp ページに更新する必要があります。GUID がチケットに格納されると、認証フィルタは GUID に基づいて、認証フィルタのパスワード キャッシュにあるユーザーのパスワードを検索します。GUID は、AuthManager オブジェクトの SetProperty メソッドによって、カスタム プロパティとしてユーザーのチケットに格納されます。また、このプロパティは、リダイレクトされる URL のクエリ文字列に追加されます。

GUID が設定されると、認証フィルタは、ユーザー ID ではなく GUID プロパティを使ってパスワード キャッシュにアクセスします。ユーザーが同じユーザー ID および異なるパスワードを使ってログオンする場合、認証フィルタは、このユーザーを別のユーザーとして識別し、パスワード キャッシュで、元のパスワードを上書きせずに新しいエントリを作成します。認証フィルタは、次に、新しいユーザーについて同じ処理を行います。この手順を示すサンプル コードについては、「Code to Set a Custom Property on a Ticket」を参照してください。

DDoS 攻撃を防ぐために更新された、サンプルのログイン ページは、「Supplier ソリューション サイト用の Login.asp のコード」を参照してください。

次のサンプルで、隣に矢印が付いているコードは、Login.asp ファイルに変更を加える必要がある箇所を示しています。

' after setting AuthTicket
     objAuth.SetAuthTicket strUserID, True, 90
  objAuth.SetProperty 2, "guid", strGUID   change this line

' at the redirect in both the FirstTime and WebFarm paths:
      strRetAsp = Request.Cookies("MSCSFirstRequestedURL")
      strRetAsp = strRetAsp + "proxyuser="
      strRetAsp = strRetAsp + "MyDomain\User1"
      strRetAsp = strRetAsp + "&proxypwd="
      strRetAsp = strRetAsp + "password"
   strRetAsp = strRetAsp + "&guid="  change this line
   strRetAsp = strRetAsp + strGUID   change this line

strGUID 変数は、GUIDGen オブジェクトなどによって生成される GUID/UniqueID です。GUID は一意の識別子である必要があります。

関連項目

Supplier ソリューション サイト用の Login.asp のコード

BDSecurity Object

AuthManager Object

Code to Set a Custom Property on a Ticket

Code to Generate a GUID

Web ファームでプロキシ アカウントを使う

プロファイル定義に新しいプロパティを追加する


Passport と統合する

Microsoft Passport には、次に示す 2 つのサービスが用意されています。いずれのサービスも、Microsoft Commerce Server Web サイトに統合することができます。これらのサービスは、それぞれ別のサイトに統合することも、両方を同じサイトに統合することもできます。

  • Passport シングル サインイン Passport が提供する認証サービスです。このサービスを利用すると、Passport ユーザーは、ユーザー名とパスワードを 1 組覚えておくだけで、Passport 認証を使用する Web サイトへ認証されたアクセスを行うことができるようになります。
  • Passport Express Purchase Passport が提供する Wallet サービスです。このサービスを利用すると、Passport ユーザーは、Passport を使ってクレジット カード情報や送付先を格納しておいて、Passport Wallet を使用する Web サイトでその情報を利用できるようになります。

Passport と統合した場合、顧客は 1 組のユーザー名とパスワードを覚えるだけで済むので、電子商取引サイトで買い物をするたびにクレジット カードや宛先の情報を入力しなくても済み、機密情報の保管場所を減らすことができます。Web サイトを Passport と統合する場合は、標準化されたプライバシ ポリシーに従う必要があります。

Passport と統合した場合、商用サイトの運営者にとっては、ユーザーから見た使い勝手が向上することで、Web サイトの登録ユーザーの増加につながり、ショッピング カートが放棄される回数が減るという利点があります。また、標準化されたプライバシ ポリシーに従うことにより、個人情報を提供してくれるユーザーの増加にもつながります。

ここでは、これら 2 つの統合について個別に説明します。

ここでは、次のトピックについて説明します。

  • Passport シングル サインインを統合する Passport 認証サービスについて説明し、このサービスを Commerce Server Web サイトに統合する方法を示します。
  • Microsoft Passport と共に Secure Sockets Layer を使う SSL の必要性について説明します。Passport では、Wallet の情報を SSL を利用してサイトに転送し、チェックアウトします。また、さらに詳しい情報を得るための www.microsoft.com へのリンクも示します。
  • Passport Express Purchase を統合する Passport Wallet サービスについて説明し、このサービスを Commerce Server Web サイトに統合する方法を示します。
  • Passport との統合に必要な作業 Passport の詳細や、Passport を Commerce Server Web サイトに統合する方法の詳細について、より深く知ることができる参照先を示します。


Passport シングル サインインを統合する

Microsoft Commerce Server 2002 では、認証とプロファイルを分離できます。認証で Commerce Server を使わない場合でも、認証プロセスが完了した後で Commerce Server プロファイルを使うことができます。この分離設計を利用すれば、Microsoft Passport シングル サインイン認証サービスを統合して、Commerce Server の組み込み認証モードと置き換えることができます。置き換えた場合でも、Commerce Server プロファイル サービスの統合された機能は失われません。

Passport 認証の処理手順

Passport 認証では、次の手順で処理が行われます。

  1. 認証されていないユーザーが、サイト運営者の Web サイトにあるセキュリティ保護付きのページにアクセスしようとします。
  2. ページ上のコードにより、Passport の Manager オブジェクトが呼び出されます。このオブジェクトによって、ユーザーのブラウザ画面が、Passport Web サイトのログオン ページにリダイレクトされます。リダイレクト URL には、戻り先 URL などの項目を含んだ、クエリ文字列が記述されています。
  3. Passport Web サイトのログオン ページで、ユーザーは標準化された Passport 資格情報を入力します。
  4. ユーザーの資格情報が受け付けられると、ユーザーのブラウザ画面はサイト運営者の Web サイトに戻ります。Passport のプロファイル データは暗号化され、クエリ文字列の中に記述されます。
  5. Passport の Manager オブジェクトにより、クエリ文字列内のデータが解析され、削除されます。次に、セッション cookie がユーザーのブラウザに送信されます。
  6. ユーザーのログイン設定に応じて、セッション cookie または固定 cookie が設定されます。
  7. このユーザーが、今後このセキュリティ保護付きページにアクセスしようとした場合、Passport の cookie に基づいて認証が行われます。

推奨される統合方針

Passport 認証を統合する場合は、Commerce Server プロファイル サービスと Passport シングル サインイン認証サービスを統合して使うことをお勧めします。この方法では、Commerce Server プロファイル サービスと、認証機能以外の Commerce Server 機能との統合環境が失われることがありません。

Passport を通じたユーザー認証が正常に終了すると、そのユーザーに対応するユーザー プロファイルが Commerce Server プロファイル サービスから取得され、セッションが終了するまで使用されます。このタイプの統合を実現するには、次の方法をとることをお勧めします。

  • ユーザー プロファイルの内容を変更して、PassportID という名前の新しいプロパティを含めます。このプロパティには、Passport サービスで使われる 64 ビットの一意のユーザー ID を設定します。この ID は Passport Unique ID (PUID) とも呼ばれます。PUID の詳細については、Passport SDK のドキュメントを参照してください。
  • Passport によるユーザー認証が正常に終了したら、Passport のコア プロファイルから MemberIDHigh プロパティと MemberIDLow プロパティを取得し、次の計算式を使ってこのユーザーの PUID を計算します。
    dim sPassportKey, sHex
sHex = Hex(nMemberIDHigh)
sPassportKey = String(8 - len(sHex), "0") & sHex
sHex = Hex(nMemberIDLow)
sPassportKey = sPassportKey & String(8 - len(sHex), "0") & sHex

    PUID の計算に関する詳細な例については、http://go.microsoft.com/fwlink/?LinkId=6740 の Passport Web サイトを参照してください。

  • 計算した PUID を使って、それに対応する Commerce Server ユーザー プロファイルを取得します。プロファイルの取得には、次のようなコードを使います。
    Dim csUserProfile
Set csUserProfile = ProfileService.GetProfileByKey( _
                                      "PassportID", _
                                      sPassportKey, _
                                        "UserObject")
  • AuthManager オブジェクトを使って、このユーザーのチケットの種類とユーザー ID を設定します。次の 2 組のコードは、これらの値を設定する方法を示しています。このコードは、Passport Sitelet の Include\Profilelib.asp ファイルに記述されている LogOnUser 関数の抜粋です。この関数は、Commerce Server SDK に収められています。
    objAuthMgr.SetAuthTicket strUserName, fCookieSupport, strTimeout
objAuthMgr.SetUserID enumMSCS_ProfileTicketType, _
                     objProfile.Fields(USER_ID).Value

    詳細については、「AuthManager.SetAuthTicket Method」と「AuthManager.SetUserID Method」を参照してください。

  • 対応する Commerce Server ユーザー プロファイルが見つからない場合は、新しいユーザー用にユーザー プロファイルを作成し、PUID を PassportID プロパティに格納します。この処理を行うテスト コードは、次のようになります。
    If ( csUserProfile Is Nothing ) Then
    ' Use your standard method for creating new
    ' user profiles here, probably involving calls
    ' to GenID.GenGUIDString and ProfileService.CreateProfile.
    ' Don't forget to store the PUID so that the proper
    ' profile can be stored next time. For example:
    CreateNewUserProfile(sPassportKey)
End If
  • 対応する Commerce Server ユーザー プロファイルが見つかった場合は、最新の Passport プロファイル データと、それに対応する Commerce Server プロファイル データを同期させることができます。同期させることにより、ユーザーにとって望ましい結果を得ることができます。たとえば、Passport Web サイトのユーザー個人データが変更されていた場合、商用 Passport Web サイトでは変更済みの内容が使われます。

    Passport プロファイルには、ProfileVersion プロパティが含まれています。このプロパティを使うと、ユーザーのプロファイル データが、前回の訪問以降に変更されたかどうかを判別できます。

また、認証ソリューションを新たに開発して、Passport ユーザーに対しては Passport シングル サインインを使い、非 Passport ユーザーに対しては Commerce Server 認証方式を使うこともできます。


Microsoft Passport と共に Secure Sockets Layer を使う

Microsoft Passport には、Passport Express Purchase という機能があります。この機能を利用すると、Passport のユーザーは、Passport を使ってクレジット カード情報や送付先情報を格納しておくことができます。格納した情報は、Passport Express Purchase に対応する Web サイトで利用できます。

Microsoft Passport を採用する場合は、併せて Secure Sockets Layer (SSL) も使う必要があります。Passport では、Wallet の情報を SSL を利用してサイトに転送し、チェックアウトします。

サイトの開発コンピュータを設定する場合、Express のチェックアウト機能を使うときは、SSL 証明書が必要になります。SSL の設定については、次に示す 2 つの Web サイトを参照してください。

  • Windows 2000 アプリケーション カタログ
    http://go.microsoft.com/fwlink/?LinkId=6741
  • Step-by-Step Guide to Automatic Certificate Request for Computers
    http://go.microsoft.com/fwlink/?LinkId=6742


Passport Express Purchase を統合する

Microsoft Passport は、Wallet 機能を備えています。この機能を利用すると、電子商取引サイトでの購入に必要なクレジット カード番号や送付先などのデータを、Passport Web サイトという 1 つの保管場所に格納することができます。Passport プログラムに参加している商用サイト運営者は、この情報を Passport Wallet Web サイトから取得できるため、サイト利用者の立場から見ると、電子商取引サイトで買い物をするたびに同じデータを入力する手間が省けることになります。Passport シングル サインイン認証サービスとは異なり、Passport Express Purchase サービスでは、Passport 固有の Component Object Model (COM) オブジェクトをサイト運営者の Web サーバーにインストールする必要がありません。サイト運営者は、認証に Passport シングル サインインを使うかどうかにかかわらず、Passport Express Purchase サービスを使うことができます。

Passport Express Purchase の処理手順

Passport Express Purchase では、次の手順で処理が行われます。

  1. ユーザーが、サイト運営者の商用 Web サイトにあるページで、Passport Express Purchase による支払いを選択します。
  2. ユーザーのブラウザ画面が、Passport Web サイトの Wallet ページにリダイレクトされます。リダイレクト URL には、戻り先 URL、クレジット カード設定、および共同ブランディング データを含むクエリ文字列が記述されます。
  3. ユーザーが Passport にサインインしていない場合は、標準化された Passport 資格情報を入力するように求められます。
  4. ユーザーが、利用するクレジット カード、請求先、送付先などについて、Wallet ページで選択します。ユーザーは、クレジット カード情報や別の送付先を新しく入力することも、Wallet に既に記録されている情報を編集することもできます。
  5. ユーザーのブラウザ画面が、Passport Web サイトからサイト運営者の Web サイトにもう一度リダイレクトされ、このとき、選択した Wallet 情報を含んだフォームも渡されます。このフォームの書式には、Electronic Commerce Markup Language (ECML) が使われます。
  6. 返された Wallet データがサイト運営者の Web サイトで使われ、購入の処理が完了します。

推奨される統合方針

Passport Express Purchase を統合する場合は、購入処理を可能な限り合理化することをお勧めします。ユーザーは Wallet ページでクレジット カードや宛先のデータを既に確認しているため、Web サイトの中で、個人データをもう一度確認するように求めることは避けてください。Passport Wallet サイトから返されたデータを何らかの方法で確認し、他に必要な情報があれば収集します。その後で注文内容のページを表示し、ユーザーが注文内容を最終的に承認できるようにします。Passport Wallet サイトから提供された情報を注文内容のページにもう一度表示すれば、確認の意味を持たせることができます。ただし、完全なクレジット カード番号は表示しないようにすることをお勧めします。

重要

  • Passport Wallet サイトから返されるデータを利用するにあたって、避けなければならないのは、フォーム ページに既定の情報を入力する目的にだけデータを利用することです。フォーム ページは、ユーザーには必ず表示されます。このような方法では、"迅速な購入手続き" という Passport の本来の使用効果が、ほとんど失われることになります。

Passport ページの共同ブランディングについては、十分に検討する価値があります。共同ブランディングを行うと、Passport ページを Web サイトにシームレスに融合することができます。そのためには、Passport に登録するときに、Cascading Style Sheet (.CSS) ファイルの URL を入力します。CSS ファイルを使うと、Passport ログイン ページ、登録ページ、および Wallet ページにあるほぼすべての要素について、色やプロパティを定義できます。さらに、Wallet ページには、ほとんどの場合、質問項目などの独自コンテンツを挿入することができます。この方法を使えば、購入手続きの完了に必要な情報がある場合、Passport Wallet ページで収集することができます。ユーザーは、Web ページに戻ったときに、注文の内容ページに直接進めるようになります。


Passport との統合に必要な作業

Commerce Server Web サイトと、Passport シングル サインイン認証サービスまたは Passport Express Purchase サービスとの統合を成功させるには、次の作業を行う必要があります。

  • Passport Web サイトを参照して、Passport とそのサービスの詳細を把握します。Passport Web サイトには、ホワイト ペーパー、デモ、実装ガイド、サンプル コードのほか、Passport ディスカッション グループに関する情報や、Passport チームに直接質問する方法が掲載されています。
  • http://go.microsoft.com/fwlink/?LinkId=6740 の Passport サイトにアクセスし、サインアップします。サインアップが完了したら、Passport Software Development Kit (SDK) をダウンロードし、その機能の詳細を調べます。
  • 使用する Web サイトが、Passport Web サイトに参加するための基準に適合していることを確認します。この基準は、プライバシやセキュリティなどに関するものです。
  • Passport Express Purchase サービスを採用する場合は、認定された証明機関から証明書を取得します。これは、Passport Express Purchase サービスでは Secure Socket Layer (SSL) 技術を利用してサイトにセキュリティを設定するので、証明書が必要になるためです。
  • Commerce Server SDK に用意されている Passport Sitelet のソース コードを調べます。詳細については、「Software Development Kit」を参照してください。


サイトの配置

Microsoft Commerce Server 2002 の Web サイトを配置するには、必要なハードウェアおよびソフトウェアを準備して構成し、Commerce Server 2002 をインストールし、Web サイトをアンパッケージし、サイトを監視および保守するための手順を整えます。ここでは、サンプルの配置構成、配置方法、および、Commerce Server 2002 を配置する前に考慮する必要がある問題点について説明します。

サイトを構成して Windows 認証を使う方法については、「Windows 認証を使って Commerce Server を配置する」を参照してください。

ここでは、次のトピックについて説明します。

  • 配置のチェックリスト 配置作業を始める前に完了しておくべき項目について説明します。
  • 以前のバージョンからのアップグレード Commerce Server の既存のインストール環境をアップグレードする方法について説明します。
  • 配置の計画 3 つの主要な環境での配置方法、クラスタリングの概念、およびファイアウォールを使うときの検討事項について説明します。
  • 一般的な配置の構成 一般的な配置を構成する場合の作業について、さまざまな段階に分けて説明します。ハードウェアやネットワークの構成から開始し、ソフトウェアのインストールまでを行います。
  • ビジネス分析スタンドアロン機能をインストールする 1 台のコンピュータに、ビジネス分析機能を使う Commerce Server をインストールする方法について説明します。
  • サンプルの構成のインストール サンプルの構成で Commerce Server 2002 をセットアップする方法について説明します。
  • 分散環境での配置 各種の Commerce Server コンポーネントをそれぞれ専用のデータベース サーバーに配置する場合の依存関係の一覧です。
  • サイトをバックアップする サイトをバックアップおよび復元する方法について説明します。
  • カタログ コンテンツを複製する 準備環境にあるカタログ コンテンツを運用環境へと複製する方法について説明します。
  • サイトを更新する 最初の配置後に、サイトのコンテンツおよびデータベースを更新する方法について説明します。
  • サイト パッケージャを使う Commerce Server サイト パッケージャの機能について、およびサイトをパッケージ化したりアンパッケージしたりする方法の概要について説明します。また、サイト パッケージャの参照情報も示します。
  • 高い可用性を維持する 可用性の高い配置を実現する方法について説明します。


配置のチェックリスト

サイトを配置する前に、次のチェックリストを使って、計画が完了しているかどうかを確認します。

サイトへのセキュリティ設定で必要な作業のチェックリストについては、「セキュリティのチェックリスト」を参照してください。

ここでは、次のトピックについて説明します。

  • サイトの開発およびテストのチェックリスト サイトの開発およびテストを行うためのチェックリストを提供します。
  • ビジネス プロセスのチェックリスト ビジネス プロセスの計画および実装を行うためのチェックリストを提供します。

関連項目

配置の計画

Commerce Server のインストール計画


サイトの開発およびテストのチェックリスト

サイトを配置する前に、サイトの開発およびテストが完了しているかどうかを確認します。次の項目をチェックしてください。

  • サイトの開発が完了している。
  • サイトがパッケージ化されている。
  • サイト リソースの一覧が文書化されている。
  • サイト サーバーの名前が決定されている。
  • データベース名、ユーザー名、およびパスワードが決定されている。
  • テストが完了している。テストを行う項目には、コンテンツ、ブラウザの互換性、パフォーマンス、サーバー負荷、データベース、検索オプション、クエリ応答時間、データの有効性と整合性、システムの回復、外観の一貫性、リンク、およびルーターがあります。サイトのパフォーマンスをテストするには、Web Application Stress ツールを使います。
  • 独立した、外部の会社がサイトのセキュリティ監査を完了している。セキュリティ リスクを発見するには、こうした調査が効果的です。

サイトをテストする方法の詳細については、『Commerce Server 2000 リソース キット』を参照してください。


ビジネス プロセスのチェックリスト

サイトを配置する前に、ビジネス プロセスの計画が立てられ、実装されているかどうかを確認します。次の項目をチェックしてください。

  • ワークフローが決定され、テストされている。
  • システム管理者が初期トレーニングを受けており、Commerce Server ビジネス デスクの主なユーザーであるビジネス マネージャがビジネス デスク チュートリアルを完了している。
  • サーバー環境チームが特定され、運用手順 (変更依頼、変更管理ログ、サーバーの更新、保守のスケジュール、上司への問題報告手順など) が確立されている。

関連項目

ビジネス プロセス パイプラインの計画


以前のバージョンからのアップグレード

Commerce Server 2002 には、Site Server 3.0、Site Server 3.0 Commerce Edition、および Commerce Server 2000 のサイトを移行するためのツールが用意されています。これらのツールは、サイト開発者向けに設計されています。サイト開発者は、サイトのニーズに合わせてこれらのツールをカスタマイズできます。

ここでは、次のトピックについて説明します。

  • Commerce Server 2000 からのアップグレード
  • Site Server 3.0 からのアップグレード
  • Membership ディレクトリを移行する


Commerce Server 2000 からのアップグレード

Commerce Server 2000 から Commerce Server 2002 へのアップグレードについては、「Commerce Server 2000 からのアップグレード」を参照してください。


Site Server 3.0 からのアップグレード

Commerce Server 2002 には、Microsoft Site Server 3.0 のサイトや Microsoft Site Server 3.0 Commerce Edition (SSCE) のサイトを Commerce Server 2002 に移行するためのツールが用意されています。これらのツールは、サイト開発者向けに設計されています。サイト開発者は、サイトのニーズに合わせてこれらのツールをカスタマイズできます。

ここでは、次のトピックについて説明します。

  • 移行する Site Server 3.0 の機能 Commerce Server 2002 の機能や他の Microsoft 製品に組み込まれている機能について説明します。
  • Site Server から Commerce Server 2002 への移行計画 Commerce Server 2002 への移行計画を立案する方法について説明します。
  • 移行ツールの概要 Site Server 3.0 移行ツールとその使い方について説明します。
  • 移行に関するマニュアルの概要 移行に関するマニュアルの参照先を示し、パイプラインとカタログが Site Server と Commerce Server 2002 とでどのように異なるかについて説明します。


移行する Site Server 3.0 の機能

Commerce Server 2002 には、Commerce Server 2002 に組み込む Microsoft Site Server 3.0 と Microsoft Site Server 3.0, Commerce Edition (SSCE) の機能の移行手段が用意されています。

Site Server 3.0 の機能の大部分は、Commerce Server 2002 に組み込まれています。ただし、一部の機能は他の Microsoft 製品に組み込まれています。次の表は、Site Server 3.0 および SSCE の移行した機能の一覧と、移行先の製品および機能を示しています。

Commerce Server 2002 に組み込まれた Site Server 3.0 と Site Server 3.0, Commerce Edition (SSCE) の機能

Site Server 3.0 の機能 | Commerce Server 2002 の機能
Ad Server / Ad Manager | コンテンツ選択フレームワーク / キャンペーン マネージャ
分析 : Report Writer、Custom Import、Usage Import | 分析 : レポート、カスタム インポート、データ ウェアハウス、ビジネス分析
ダイレクト メール | ダイレクト メール
パイプライン | パイプライン
オンライン ストア | 商品カタログ システム
Personalization & Membership | ユーザー プロファイル
サイト ボキャブラリ | サイト用語
ルール ビルダ | 式ビルダ
Starter Site | ソリューション サイト
トランザクション | トランザクション
Content Deployment および Content Replication System | Commerce Server 2002 サイト パッケージャ (コンテンツの配置と複製の一部を処理)

その他の Microsoft 製品に組み込まれた Site Server 3.0 および Site Server 3.0 Commerce Edition (SSCE) の機能

Site Server 3.0 の機能 | Microsoft 製品
Content Deployment および Content Replication System | Microsoft Application Center 2000 (コンテンツの配置と複製の一部を処理)
Commerce インターチェンジ パイプライン | Microsoft BizTalk Server 2000
Internet Locator Service (ILS) / Dynamic Directory | Microsoft Windows 2000 – Site Server ILS サービス
Search:インデックス、クロール、スクリプト | Microsoft SharePoint Portal Server に組み込み
Knowledge Manager | SharePoint Portal Server に組み込み
Posting Acceptor | Microsoft WebDAV

Site Server 3.0 の機能のうち、Publishing ウィザード、Push (Active Channel Multicaster、Active Channel Server)、Content Analyzer、および Tag Tool は、Commerce Server 2002 にも、他の Microsoft 製品にも組み込まれていません。また、サポートもされません。

注

  • インターネット インフォメーション サービス (IIS) は、Version 5.0 で応答バッファリングの既定の設定が変更されました。応答バッファリングは、Version 4.0 では既定でオフでしたが、5.0 で既定でオンになりました。ASP ページを Site Server 3.0 Commerce Edition サイトから Commerce Server 2002 サイトに移行するには、この点を考慮する必要があります。


Site Server から Commerce Server 2002 への移行計画

Site Server 3.0 Commerce Edition から Commerce Server 2002 へのサイトの移行を計画する場合は、次の点を考慮する必要があります。

  • Commerce Server 2002 の各コンポーネントに 1 つずつ移行することはできません。
  • 新しいサイトを作成し、その動作、コンテンツ、およびデータの移行が無事に完了してから、そのサイトの運用を開始する必要があります。
  • SSCE サイトを正常に Commerce Server 2002 に移行するには、サイト コードの移行が必要です。

移行を成功させるには、いくつかの戦略がありますが、特に検討するとよい 2 つの重要な戦略として、パラレル Web ファームとデュアル ブートの 2 つを紹介します。

パラレル Web ファーム

パラレル Web ファーム戦略は、移行プロセス中に、Commerce Server 2002 と Site Server をそれぞれ別の場所で同時に実行します。パラレル Web ファームを構築すると、既存の SSCE サイトの機能が Commerce Server 2002 の技術によって複製されます。パラレル Web ファームによる移行は多くのリソースを必要としますが、サイトの安定性を積極的に管理しているサイトの場合は、最適なリスク管理が可能な移行方法です。

パラレル Web ファームの長所

  • Commerce Server 2002 サイトが完全に機能し、顧客をサポートするようになるまで、運用中の SSCE サイトに影響が及ぶことがありません。
  • 新しい Commerce Server 2002 サイトに対して、Microsoft Web Application Stress などのツールでユーザーの負荷をシミュレートして生成し、その負荷の下で機能とパフォーマンスを完全にテストできます。
  • サイトをユーザーに公開する前に、サイト コードとデータの移行を完全にテストできます。
  • 新しい Commerce Server 2002 サイトの運用を開始する前に、すべての操作手順を確立して文書化できます。

パラレル Web ファームの短所

  • ハードウェア、スペース、およびネットワーク インフラストラクチャなどのリソースを多く必要とします。

デュアル ブート

デュアル ブート戦略を採用する場合は、SSCE サーバー上の別のディスク システムに、Microsoft Windows 2000 を新たにインストールします。新たにオペレーティング システムをインストールしたら、新しいパーティションに Commerce Server 2002 をインストールできます。Commerce Server 2002 と SSCE では SQL 構成が異なるため、Commerce Server 2002 データベースは他のサーバーにインストールする必要があります。

デュアル ブート戦略の例

SSCE を実行しているサーバーが、次のディスク構成になっているとします。

  • ドライブ C : オペレーティング システム ドライブ
  • ドライブ D : IIS、SSCE、およびサイト コードのドライブ
  • ドライブ E : IIS およびシステムのログ ドライブ

ディスク ドライブを追加し、デュアル ブート戦略を実装したサーバーのディスク構成は、次のようになります。

  • ドライブ C : オペレーティング システム ドライブ
  • ドライブ D : IIS、SSCE、およびサイト コードのドライブ
  • ドライブ E : IIS およびシステムのログ ドライブ
  • ドライブ F : オペレーティング システム ドライブ (Commerce Server 2002 用の Windows 2000 をインストール)
  • ドライブ G : IIS、Commerce Server 2002、およびサイト コードのドライブ (Commerce Server 2002 用の Windows 2000 をインストール)
  • ドライブ H : IIS およびシステムのログ ドライブ (Commerce Server 2002 用の Windows 2000 をインストール)

この例では、サーバーが起動するときに、どちらのサイトを稼働させるかによって、ドライブ C またはドライブ F のいずれかから起動する構成になっています。

デュアル ブート戦略の長所

  • 必要なハードウェアが少なくて済みます。
  • 既存のネットワーク インフラストラクチャを使用できます。
  • ビジネス ニーズに合った実績のあるハードウェアを使用できます。

デュアル ブート戦略の短所

  • 一度に 1 つのサイトしか稼働できません。SSCE サイトまたは Commerce Server 2002 サイトを稼働できますが、両方は稼動できません。
  • SSCE サイト全体をオフラインにし、サーバーを再起動して Commerce Server 2002 インスタンスを選択しなければ、新しい Commerce Server 2002 サイトのプラットフォーム全体としての機能とパフォーマンスは完全にテストできません。
  • 移行の前に、データベースを別のサーバーに移行する必要があります。


移行ツールの概要

Commerce Server 2002 の移行ツールは、必要に応じてカスタマイズできます。Commerce Server 2002 には、ソース コードと、移行ツールのカスタマイズおよび拡張を行う方法を説明する Software Development Kit (SDK) が用意されています。ここでは、移行ツールとその使い方の概要について説明します。

Directory Migration ツールボックス

Ad Server 移行ツール

Directory Migration ツールボックス

Directory Migration ツールボックスには、C++ で記述された一連のツールおよび Component Object Model (COM) オブジェクトがあります。これには、MigrationMainObj、MigrationReadObj、MigrationWriteObj、MigrationModifyObj、および MigrationLogObj の各オブジェクトが含まれます。Site Server の Membership ディレクトリから Commerce Server 2002 のプロファイル データベースにユーザー データを移行するには、これらのオブジェクトを使います。Directory Migration ツールボックスには、Membership ディレクトリの実装に合わせて変更できるように、ソース コードが含まれています。

次の図は、移行オブジェクトの機能の概要を示しています。

Directory Migration ツールの機能の概要を示す図

Directory Migration ツールボックスの主要なコンポーネントは、実際の移行を実行する Directory Migration ツールです。Directory Migration ツールは、リアルタイム モード実装の複数のインスタンスと、バッチ モード実装の 1 つのインスタンスの間で、状態を維持するように設計されています。これは、Directory Migration ツールの各インスタンスの間で、同じアカウントを移行しようとして競争状態が生じるのを防ぐためです。Directory Migration ツールは、次の 2 つのモードで使用できます。

  • リアルタイム モード ユーザーが Login.asp ファイルで認証を受けようとしたときに、ユーザーを移行するためのモードです。通常の Login.asp コードが拡張され、ユーザー プロファイルがデータベースにないために認証に失敗した場合に、移行ツールを呼び出して、ユーザー プロファイルを "リアルタイム" で Commerce Server 2002 の新しいプロファイル システムに移行できるようになります。移行が無事に完了すると、Login.asp ファイルによるユーザーの認証が完了し、通常の処理が再開されます。
  • バッチ モード Membership ディレクトリのユーザーを、Commerce Server 2002 プロファイル サービスが使用するプロファイル ストアに移行するためのモードです。スタンドアロン サーバーで、ユーザー リスト全体を処理します。リストの処理が終わると、記録された移行失敗の解決を除いて、移行プロセスがすべて完了します。失敗の原因となった問題を解決したら、失敗したアカウントに対する移行プロセスを再実行して、それらを移行します。

Ad Server 移行ツール

Ad Server 移行ツールは、広告データを SSCE から Commerce Server 2002 に移行するために使います。このツールのファイル名は Adservermigration.exe で、保存先のフォルダは Microsoft Commerce Server 2002\SDK\Tools\SSCE Migration\Ad Server です。

Ad Server 移行ツールは、対象評価のための式を作成し、Web サイト間で広告を移動します。また、このツールは、現在の式を使って広告選択のプロセスを実行します。

関連項目

Membership ディレクトリを移行する


移行に関するマニュアルの概要

ここでは、移行に関するマニュアルの参照先を示し、パイプラインとカタログが Site Server と Commerce Server 2002 とでどのように異なるかについて説明します。Membership ディレクトリの移行については、「Membership ディレクトリを移行する」を参照してください。

パイプライン

Commerce Server 2002 パイプラインは、アプリケーション プログラミング インターフェイス (API) に関して、Site Server 3.0 Commerce Edition (SSCE) パイプラインと互換性があります。SSCE で使用していたサードパーティ製パイプライン コンポーネントは、次の点を除き、Commerce Server 2002 でも動作します。

  • 通貨は 64 ビット値に変更されています (SSCE の通貨は 32 ビット整数)。
  • 住所/送料情報は、複数の "送付先" 住所を処理するように変更されています。

サードパーティ製コンポーネントが、Dictionary オブジェクト レベルでパイプライン データと対話する場合、これらの変更はサイトに影響を与えない可能性もあります。ただし、サードパーティ製コンポーネントが、データが実際に格納されているデータベース レベルでパイプライン データと対話する場合、Commerce Server 2002 ではデータベース層に変更があるため、コンポーネントが影響を受けます。

カタログ

Commerce Server 2002 と SSCE のカタログには、大きな違いがあります。SSCE ウィザードで生成されるのは、オンライン ストアという基本的なカタログだけでした。一方、Commerce Server 2002 で作成されるカタログは、より複雑で高い柔軟性を備えています。SSCE を配置している顧客のほとんどはカスタム カタログ ソリューションを使っていることが、Commerce Server 2002 商品カタログ システムに移行するための汎用ツール開発の障害になっています。

これは、オンライン ストアまたはカスタム カタログ ソリューションを Commerce Server 2002 カタログに移行する前に、Commerce Server 2002 のカタログを作成する必要があるためです。Commerce Server 2002 のカタログを作成するには、カタログ スキーマを作成する必要があります。カタログ スキーマを作成したら、カタログを作成し、その中に商品を設定します。

オンライン ストアまたはカスタム カタログを Commerce Server 2002 カタログに移行するには、次の戦略を利用できます。

  • カタログ データの入った XML ファイルを作成し、Commerce Server 2002 商品カタログ システムにインポートします。この XML ファイルは、商品カタログ システムがインポートできる形式にする必要があります。XML カタログ ファイルには、スキーマ定義とカタログ データが含まれている必要があります。

    カタログ データをインポートするための正確な XML 形式を決定するもう 1 つの方法は、目的のカタログ スキーマを構築し、そこにいくつかのサンプル商品を作成します。次に、このカタログを XML としてエクスポートし、生成された XML ファイルを調べます。オンライン ストアまたはカスタム カタログ ソリューションのデータは、この形式に従っている必要があります。

    商品カタログ システムで必要な XML 形式の詳細については、「Catalog XML Structures」を参照してください。

    構築済み XML ファイルのインポートの詳細については、「XML カタログ ファイルをインポートする」を参照してください。

  • カタログ データの入ったコンマ区切り値 (CSV) ファイルを作成し、Commerce Server 2002 商品カタログ システムにインポートします。この CSV ファイルは、商品カタログ システムがインポート可能で、Commerce Server 2002 カタログ用に定義したスキーマと互換性のある形式にする必要があります。

    商品カタログ システムで必要な CSV 形式の詳細については、「Catalog XML Structures」を参照してください。

    商品カタログ システムで必要な CSV 形式と構築済み CSV ファイルのインポートの詳細については、「CSV カタログ ファイルをインポートする」を参照してください。

  • オンライン ストアまたはカスタム カタログ ソリューションからカタログ構造とデータを読み取るユーティリティ スクリプトを作成し、Commerce Server 2002 カタログ オブジェクトを使って目的のスキーマによる Commerce Server 2002 カタログを作成して、このカタログに商品データを設定します。

    Commerce Server 2002 カタログ オブジェクトの詳細については、「Product Catalog Objects」を参照してください。

関連項目

カタログ定義を作成する

基本カタログを作成する

カタログに商品を追加する


Membership ディレクトリを移行する

Directory Migration ツールボックスは、Microsoft Site Server 3.0 Membership ディレクトリを Commerce Server 2002 のユーザー プロファイル ストアに移行するためのコンポーネントの集まりです。

ここでは、これらのコンポーネントのアーキテクチャと、Membership ディレクトリを移行する方法について説明します。ここで説明する内容は、Site Server 3.0 に基づくサイトを Commerce Server 2002 に移行する作業を担当するシステム管理者やサイト開発者を対象にしています。Directory Migration ツールボックスを使う前に、両製品のマニュアルを参照してください。

ここでは、次のトピックについて説明します。

  • Directory Migration ツールボックスについて Directory Migration ツールボックスのコンポーネントについて説明します。
  • 移行の計画 移行を開始する前に考慮する必要のある問題について説明します。
  • 移行の準備をする プロファイル データ ストアにあらかじめ Active Directory グループを作成しておく方法と、Membership ディレクトリの属性をプロファイル データ ストアの属性にマップする方法について説明します。
  • 移行プロセスを開始する 移行プロセスを開始する方法について説明します。
  • 移行ログ ファイルを使ったトラブルシューティング 移行ログ ファイルを使って問題点を調べる方法について説明します。
  • 移行が成功したことを確認する 移行プロセスが正常に機能したことを確認する方法について説明します。
  • Migration Utility ライブラリ MigUtil ライブラリ ファイルの内容について説明します。
  • XML ファイルの例 移行プロファイル (XML ファイル) の例を示します。


Directory Migration ツールボックスについて

Directory Migration ツールボックスには、ユーザーを Site Server 3.0 Membership ディレクトリから Commerce Server プロファイル データ ストアに移行するときに使うコンポーネントが含まれています。Directory Migration ツールボックスのコンポーネントを使うと、移行コンポーネントのソース コードを変更したり、プロファイル データ ストアに Active Directory ディレクトリ サービス グループをあらかじめ作成したりすることができます。また、Membership ディレクトリの属性をプロファイル データ ストアの属性にマップしたり、Membership ディレクトリからプロファイルをバッチ モード、またはオンデマンド モードを使って移行したり、Active Directory のユーザーの格納場所を特定するコードに変更を加えることもできます。SubgroupManager は、グループのメンバシップを特定するのに役立ちます。

ここでは、次のトピックについて説明します。

  • 移行コンポーネントのソース コード
  • Groups Pre-Population ツール
  • Migration ProfileBuilder ツール
  • Directory Migration ツール
  • SubgroupManager


移行コンポーネントのソース コード

Directory Migration ツールボックスには、コンパイル済みの移行コンポーネントが含まれています。これらを使うことによって、Microsoft Site Server 3.0 Membership ディレクトリから Commerce Server プロファイル データ ストアへとすばやく移行することができます。さらに、すべてのコンポーネントのソース コードも含まれているため、これらのコードを修正して、要件を満たすコンポーネントを作成することができます。

移行コンポーネントのソース コードは、次のフォルダに収められています。<ドライブ名>:\Program Files\Microsoft Commerce Server\SDK\Tools\SSCE Migration\Membership

次の表は、Membership フォルダのサブフォルダと、各サブフォルダに入っているコンポーネントの一覧です。

サブフォルダ | 説明
\bin\release | ディレクトリ移行オブジェクトと移行テスト クライアントの、プリコンパイル済みバイナリ。
\Client | 単一のユーザー プロファイルを移行するための、単一クライアント用の C++ ソース コード。
\GroupMigration | ユーザー プロファイルの移行前に Active Directory グループを設定しておくためのツールの Microsoft Visual Basic ソース コード。
\include | オブジェクトの構築に使用されるヘッダー ファイル。
\MigrationLogObj | Directory Migration ツールの MigrationLogObj オブジェクトの C++ ソース コード。
\MigrationMainObj | MigrationMainObj オブジェクトの C++ ソース コード。
\MigrationModifyObj | MigrationModifyObj オブジェクトの C++ ソース コード。
\MigrationReadObj | MigrationReadObj オブジェクトの C++ ソース コード。
\MigrationUtil | Directory Migration ツールの Migration Utility ライブラリの C++ ソース コード。
\MigrationWriteObj | MigrationWriteObj オブジェクトの C++ ソース コード。
\ProfileBuilder | Migration ProfileBuilder ツールの Visual Basic ソース コード。このツールは、Directory Migration ツールのオブジェクトによって使われる、拡張マークアップ言語 (XML) 構成ファイルを作成するために使います。
\SubGroupManager | ヘルパー オブジェクトの Visual Basic ソース コード。このオブジェクトは、ユーザーが属するグループを特定するときに使います。

Membership フォルダの Readme.htm ファイルには、このリリースの Commerce Server の Directory Migration ツールボックスに関する重要な情報が記載されています。

関連項目

Migration Objects


Groups Pre-Population ツール

Commerce Server をインストールした環境でグループを利用する場合は、Groups Pre-Population ツールを使って、Active Directory ディレクトリ サービス グループを事前に作成しておきます。グループは、必要に応じて Active Directory のドメインまたはフォレストに作成できます。グループにユーザーを追加するには、グループを事前に作成しておく必要があります。そのため、Groups Pre-Population ツールはユーザーを移行する前に実行してください。

Active Directory グループを事前に作成しておくことによって、Commerce Server サイトを有効にする前に、ファイル システムにアクセス制御リスト (ACL) を設定できます。

関連項目

Groups Pre-Population ツールを実行する


Migration ProfileBuilder ツール

Microsoft Site Server 3.0 Membership ディレクトリにある属性を Commerce Server プロファイル データ ストアにマップするには、Migration ProfileBuilder ツールを使います。

Directory Migration ツールを実行すると、Membership ディレクトリにあるユーザー属性をプロファイル データ ストアにマップするための拡張マークアップ言語 (XML) ファイルが読み込まれます。

Migration ProfileBuilder ツールを使うと、次のタスクが実行されます。

  • Membership ディレクトリスキーマからユーザー属性を読み取る。
  • ユーザー プロファイル オブジェクト スキーマからユーザー属性を読み取る。
  • Directory Migration ツールが読み取る XML 構成ファイルを作成する。

注

  • このツールを使うには、Active Directory フォレストのすべてのドメインを表示できる管理者特権が必要です。

関連項目

Migration ProfileBuilder ツールを実行する


Directory Migration ツール

Directory Migration ツールは、次のいずれかのモードで実行できます。

  • バッチ モードある範囲の連続したユーザーを移行します。
  • オンデマンド モード必要に応じて、一度に 1 ユーザーずつ移行します。

Directory Migration ツールのインスタンスは、同時に複数実行することができます。両方のモードを使ってディレクトリを移行する場合は、バッチ モードを使ってすべてのユーザーをまとめて移行します。アカウントが移行される前にサイトにアクセスするユーザーについては、オンデマンドでの移行を開始します。このように使い分けることで、ユーザーが新しいサイトを利用できるようになるまでの中断時間を最小限に抑えることができます。要求が発生すると、1 つまたは複数のサーバー上にインストールされている移行オブジェクトによって、ユーザーが移行されます。バッチ モードでは、ある範囲の連続したユーザーが移行されます。オンデマンド モードでは、ユーザーが Commerce Server 2002 サイトにログインするときに、そのユーザーが 1 人ずつ移行されます。ユーザーをオンデマンドで移行できるようにするには、<ドライブ名>:\Program Files\Microsoft Commerce Server\SDK\Tools\SSCE Membership\Client ディレクトリにある Login.asp ファイルを使います。

各ユーザーの移行状況を追跡するには、Membership ディレクトリのユーザー スキーマに Migration 属性を追加します。Migration 属性は Binary 型です。

移行する属性ごとに、移行が成功した場合は True、移行が失敗した場合は False の値が Migration 属性に割り当てられます。移行が失敗した場合は、ログを確認して原因を調べます。

注

  • Migration 属性が欠落していた場合、Directory Migration ツールでは "移行が実行されなかった" と解釈されます。

MigrationMainObj オブジェクト

MigrationMainObj オブジェクトは、個々のユーザーまたはある範囲のユーザーの移行をオンデマンドで管理するための主要オブジェクトです。このオブジェクトは、移行するユーザーごとに、次のオブジェクトをこの順序で呼び出します。

  1. MigrationReadObj オブジェクト
  2. MigrationModifyObj オブジェクト
  3. MigrationWriteObj オブジェクト
  4. MigrationLogObj オブジェクト

MigrationMainObj オブジェクトは、バッチ モードで実行するように構成されている場合、フィルタを使い、フィルタ条件に一致するユーザーを検出するための LDAP クエリを生成します。フィルタ条件とは、たとえば "ユーザー名が Aaa から Adz までの文字で始まる" などです。このようなフィルタを使うことで、LDAP タイムアウトを防止しています。このフィルタの詳細については、「Migration ProfileBuilder ツール」を参照してください。

次の図は、Directory Migration ツールによるユーザー プロファイルの処理のしくみを示しています。

Directory Migration ツールによるユーザー プロファイル処理のしくみを示す図

Directory Migration ツールは、次の手順でユーザー プロファイルを処理します。

  1. 使用するオブジェクトの詳細と、読み取りデータを書き込みデータにマップするための手順とが含まれた拡張マークアップ言語 (XML) 構成ファイルの情報を取得します。
  2. MigrationMainObj オブジェクトが、ユーザー プロファイルの移行要求を受け取ります。
  3. MigrationMainObj オブジェクトが、要求を MigrationReadObj オブジェクトに送信します。
  4. Migration 属性が True にも False にも設定されていない場合は、MigrationReadObj オブジェクトが Migration 属性を True に設定します。これにより、Directory Migration ツールの他のインスタンスによって同じユーザー プロファイルが再び移行されることがなくなります。更新が成功した場合は移行プロセスが次の手順に進み、失敗した場合はプロセスが終了します。
  5. MigrationReadObj オブジェクトが、Membership ディレクトリからユーザー プロファイルを取得します。
  6. XML 構成ファイルの中で指定されていた場合は、MigrationReadObj オブジェクトが MigrationModifyObj オブジェクトを呼び出します。
  7. MigrationModifyObj オブジェクトが、指定されたとおりにユーザー プロファイルに変更を加え、変更済みのバッファを MigrationReadObj オブジェクトに返します。
  8. MigrationReadObj オブジェクトが、変更済みのバッファへのポインタを MigrationMainObj オブジェクトに送信します。MigrationReadObj オブジェクトが失敗を返した場合は、MigrationMainObj オブジェクトが失敗をログに記録し、MigrationReadObj オブジェクトを呼び出して、Migration 属性を "失敗" に設定します。その後で、次の移行要求を処理する準備をします。
  9. MigrationMainObj オブジェクトがバッファを MigrationWriteObj オブジェクトに送信し、MigrationWriteObj オブジェクトがユーザー プロファイルをプロファイル データ ストアに書き込みます。
  10. MigrationWriteObj オブジェクトが、書き込み要求を ProfileService オブジェクトに送信します。書き込みが成功した場合、MigrationWriteObj オブジェクトはユーザー プロファイルを適切なグループに追加し、それに従って MemberOf 属性を更新します。書き込みが失敗した場合、その書き込みはロールバックされます。ロールバックが失敗した場合は、その失敗がログに記録されます。
  11. ProfileService オブジェクトが、書き込みについての成功リターン コードまたは失敗リターン コードを返します。
  12. 移行が Active Directory への移行である場合、MigrationWriteObj オブジェクトが、Active Directory Service Interfaces (ADSI) 呼び出しを通じて、ユーザーを適切なグループに追加します。
  13. MigrationWriteObj オブジェクトが、書き込みの成功または失敗をログに記録し、記録が完了した後に、ユーザーを適切なグループに追加します。MigrationWriteObj オブジェクトが、成功コードまたは失敗コードを返します。
  14. MigrationMainObj オブジェクトが、移行の成功または失敗をログに記録し、呼び出し元のコンポーネントに成功コードまたは失敗コードを返します。

MigrationReadObj オブジェクト

MigrationReadObj オブジェクトは、ユーザー プロファイル属性を Site Server 3.0 Membership ディレクトリから読み取ります。MigrationMainObj オブジェクトが各ユーザー プロファイルを移行するときに、このオブジェクトを呼び出します。

MigrationReadObj オブジェクトのソース コードは、SDK\Tools\SSCE Migration\Membership フォルダにあります。

MigrationModifyObj オブジェクト

移行時にユーザー プロファイル データに変更を加えるには、MigrationModifyObj オブジェクトを使います。このオブジェクトはバッファ管理を担当します。バッファ管理の例については、ソース コードを参照してください。

MigrationModifyObj オブジェクトのソース コードは、SDK\Tools\SSCE Migration\Membership フォルダにあります。

MigrationWriteObj オブジェクト

MigrationWriteObj オブジェクトは、移行されるユーザー プロファイル データを ProfileService オブジェクトに書き込みます。また、ユーザーがグループのメンバである場合は、ユーザーを Active Directory 内の対応するグループに追加します。

MigrationLogObj オブジェクト

MigrationLogObj オブジェクトは、トランザクション ログを作成するときに使われます。トランザクション ログは、移行プロセスで発生した問題を診断するために使うログです。


SubgroupManager

SubGroupManager オブジェクトは、Active Directory ディレクトリ サービス内でのユーザーの格納場所を特定するコードの中で、グループのメンバシップを特定するために使われるヘルパー オブジェクトです。

SubGroupManager オブジェクトは、ユーザーとその親グループの識別名を入力として受け取る、Microsoft Visual Basic ActiveX ダイナミック リンク ライブラリ (DLL) ファイルおよび、関連付けられたテスト用の実行可能ファイルです。

グループには、1 グループあたり事実上 5,000 オブジェクトまでという制限があるため、大きなグループのユーザーを完全に格納するためには、ほとんどのグループで一連のサブグループが必要になります。たとえば、Membership ディレクトリに "friends" という名前のグループがあり、そこに 10,000 人のユーザーが含まれているとします。この場合は、Active Directory に "friends" というマスタ グループを作成し、その中にサブグループを作成します。すべてのユーザーを実際に保持するのは、このサブグループです。サブグループの名前は、マスタ グループの名前に数字のサフィックスを付けたものになるため、個々のサブグループを識別することが可能です。たとえば、"friends_0001" という名前になります。

次の表は、SubGroupManager オブジェクトでサポートされているメソッドと、その説明を示しています。

メソッド 説明
SubGroupMembership
  • ユーザー プロファイルを格納するサブグループの識別名 (DN) を文字列として返します。
  • Active Directory に対しては何も実行しません。
AddUserToMasterGroup
  • このユーザー プロファイルが、マスタ グループのどのサブグループにあるかを特定します。
  • サブ グループが存在するかどうかを確認します。サブグループが存在しない場合は、自動的に作成します。
  • ユーザー プロファイルをサブグループに書き込みます。
RemoveUserFromMasterGroup
  • このユーザー プロファイルが、マスタ グループのどのサブグループにあるかを特定します。
  • サブグループからユーザー プロファイルを削除します。
IsUserOfMasterGroup
  • このユーザー プロファイルが、マスタ グループのどのサブグループにあるかを特定します。
  • ユーザー プロファイルがメンバであるかどうかについて、サブグループをテストし、メンバである場合は True を返し、メンバでない場合は False を返します。

SubGroupManager オブジェクトは、機能的には完全なものですが、ディレクトリ サービスに接続するためのユーザー名とパスワードが、内部にハードコードされて含まれています。これらの定数を変更した後で再コンパイルし、生成された DLL を次のコマンドを使って登録する必要があります。

regsvr32 subgroupmanager.dll

SubGroupManager オブジェクトを作成するためのプログラム ID は、SubgroupManagerProject.SubGroupManager です。

注

  • ハッシュ アルゴリズムを変更する場合は、Migrationutil.dll ファイルのソース コードも同じように変更する必要があります。


移行の計画

移行プロセスを開始するには、事前にプロセスの内容を取り決めて、それを把握しておく必要があります。

ここでは、次のトピックについて説明します。

  • 認証の種類を移行する
  • グループを移行する
  • Active Directory または SQL Server に移行する


認証の種類を移行する

Directory Migration ツールボックスのツールを使ってデータを移行するときは、Membership ディレクトリのすべての種類の認証がサポートされます。


グループを移行する

Commerce Server プロファイル システムではグループをサポートしていますが、実装についてはプロファイル データ ストアの機能に依存しています。Microsoft Site Server 3.0 Membership ディレクトリに実装したときと同じようにグループを実装するには、Active Directory ディレクトリ サービスを使う必要があります。

Active Directory を使うと、グループを作成して、ファイルとディレクトリにアクセス制御リスト (ACL) とアクセス制御エントリ (ACE) を割り当てることができます。ただし、この実装方法では、Site Server 3.0 Membership ディレクトリを使って実装したときのサイトと完全な互換性があるわけではありません。Active Directory には、グループごとのオブジェクト数は最大で 5,000 までという制限があります。このような制限が必要な理由は、グループの内容がドメイン コントローラ間で複製されるときの方法にあります。この制限は Active Directory の将来のバージョンで撤廃される予定ですが、Membership ディレクトリを移行するにあたっては何らかの回避策が必要です。

Directory Migration ツールを使うと、サブグループを作成して、そのサブグループにユーザー プロファイルを追加することができます。ユーザー プロファイルやサブグループの増加に備えて領域を確保するため、このツールによって格納されるユーザー プロファイルは、1 サブグループあたり 4,500 個になっています。

次の表は、 100,000 個のユーザー プロファイルを含んだ Membership ディレクトリ グループが、Active Directory にどのように移行されるかを示しています。

Membership ディレクトリの構造 | 対応する Active Directory の構造
GroupA | GroupA
User1 ～ User100000 | GroupA_0000
 | User1 ～ User4500
 | GroupA_0001
 | User4501 ～ User9000
 | …
 | GroupA_0023
 | User99001 ～ User100000

注意

  • Active Directory は、ネイティブ モードに設定する必要があります。混在モードには設定しないでください。混在モードに設定すると、必要なグループ階層が Active Directory に作成されません。

ドメインのフォレストを使ってユーザー プロファイルを格納する場合は、移行の過程がさらに複雑になります。次の図は、ユーザー プロファイルと ACL を Active Directory にマップし、サイトのセキュリティも維持する方法を示しています。


Active Directory または SQL Server に移行する

ユーザーの移行先を Active Directory ディレクトリ サービスと Microsoft SQL Server のどちらにするかについて、決定する必要があります。

ここでは、次のトピックについて説明します。

  • 移行のパフォーマンスと拡張性
  • 移行する属性の互換性

移行のパフォーマンスと拡張性

Active Directory

Microsoft Windows 2000 Server の Active Directory ディレクトリ サービスは、堅牢で安全性の高いディレクトリ ストアです。パフォーマンスや拡張性についての計画を立てる場合は、次の点に注意してください。

  • ユーザーのグループにマップするファイルにアクセス制御が必要な場合は、Active Directory が必要です。
  • Active Directory では、ドメイン コントローラは、ディレクトリの入出力全体の一部でのみ書き込みトランザクションを行うようにチューニングされています。
  • 現在のテストでは、ドメインに含まれるユーザー数が 1,000,000 程度になったときに、ドメインの Active Directory インスタンス間でレプリケーションの入出力を行うと、プロファイルの読み取り/書き込み操作に影響が出始めることが確認されています。また、ドメイン内のユーザー数が 1,000,000 になる場合、ドメインの数は 5 つ程度が実質上の限界であり、これを超えると、グローバル カタログのレプリケーションのオーバーヘッドによって、プロファイル要求の入出力に影響が出始めます。これらの数字は、ハードウェアのパフォーマンスとチューニングの最適化によって異なってきます。

次の推奨事項は、一般的な電子商取引のユーザー プロファイルを使って実施したテストに基づいたものです。

  • Active Directory ドメイン 1 つあたりのユーザー数は、最大でも 1,000,000 までにします。
  • ドメインのフォレスト 1 つあたりの Active Directory ドメイン数は、5 つまでにします。5 ドメインという数字は、Active Directory の配置における実用上の限界である、5,000,000 アカウントに相当します。

詳細については、http://go.microsoft.com/fwlink/?LinkId=945 にアクセスし、パフォーマンスと拡張性に関する最新のドキュメントを参照してください。

SQL Server

Commerce Server では、Microsoft SQL Server 7.0 はサポートされていません。Microsoft SQL Server 2000 のみサポートされています。パフォーマンスや拡張性についての計画を立てる場合は、次の点に注意してください。

  • SQL Server は、拡張性および安定性という面で優れています。さらに、読み取り/書き込みの比率を 50 : 50 に近づけるようにチューニングされているため、変更頻度の高い動的データにも対応できます。チューニングによるパフォーマンスの低下は、ほとんどありません。このため、お気に入りや前回の訪問日時など、変更頻度の高い動的なユーザー属性を電子商取引サイトにマップするのに適しています。
  • データ ストアに 10,000,000 のユーザーが含まれていて、そのうちの 1% が同時に処理されている状況でも、パフォーマンス上の限界はまったく確認されませんでした。
  • SQL Server で作成したグループには、イメージ ファイルやオーディオ ファイルなどの静的コンテンツにセキュリティを設定するために使われる、システム ACL/ACE が統合されていません。
  • SQL Server を使って実装するグループは、複数値の文字列として作成され、1 グループあたり 200 ユーザー未満という実用上の制限があります。

Active Directory と SQL Server を併用する

Active Directory によって提供されるアクセス制御機能と SQL Server のパフォーマンスの両方がサイトに必要な場合は、Active Directory と SQL Server を一緒に使ってユーザー プロファイル情報を格納することをお勧めします。この場合、ユーザー資格情報に関連付けられたデータ、および静的データは Active Directory データ ストアに格納します。それ以外の属性は SQL Server に格納します。

たとえば、次のように属性別に格納できます。

  • Active Directory に格納するユーザー プロファイル属性 :
    • ユーザー名
    • パスワード
  • SQL Server に格納するユーザー プロファイル属性 :
    • クレジット カード
    • 自宅の住所 (市町村、都道府県、郵便番号など)
    • 自宅の電話番号
    • 前回の訪問日時
    • 好きな色
    • 前回訪問したページ
    • 過去 1 年間にサイトの訪問に費やした累計時間

移行する属性の互換性

Site Server 3.0 Membership ディレクトリの属性には、Commerce Server のプロファイル データ ストアの中に、対応する属性がないものがあります。

次の表は、Membership ディレクトリの属性のデータ型、それに対応するプロファイル データ ストア内の属性のデータ型、および Active Directory と SQL Server のデータ型の一覧です。これらの属性は、特に何も設定しなくても Commerce Server で利用することができます。

Membership ディレクトリの属性のデータ型 | Commerce Server プロファイル システム内の対応するデータ型 | Active Directory 内部でのデータ型 | SQL Server 内部でのデータ型
String | Text、Password、Site Term、および Profile | String | String
Integer | Numbers Only、Decimal Currency | Number | Number
Date/Time | Date/Time、Date、Time | Date/Time | Date/Time
Distinguished Name (DN) | Text、Password、Site Term、および Profile | String | String
Binary | Binary | Binary | Binary
複数値文字列 | 複数値 (Text、Password、Site Term、および Profile) | 複数値文字列 | 複数値文字列
複数値 Integer | 複数値 Number | 複数値 Integer | サポートなし
複数値 Date/Time | 複数値 Date/Time、Date、Time | 複数値 Date/Time | サポートなし
複数値 DN | 複数値 (Text、Password、Site Term、および Profile) | 複数値文字列 | 複数値文字列
複数値 Binary | 複数値 Binary | 複数値 Binary | サポートなし

注意

  • プロファイル内で複数値の属性を有効にする場合は注意してください。基になる (内部の) データ型は、複数値データ型としてマークされているかどうかについては確認されません。
  • プロファイルで現在サポートされているデータ型の中には、SQL Server ストアや Active Directory ストアのデータ層で有効にならないものがあります。このようなデータ型としては、Integer、Long Text、Reference などがあります。


移行の準備をする

Membership ディレクトリを Commerce Server に移行する前に、次の作業を行う必要があります。

  1. Commerce Server プロファイルを設定する この作業を行うと、Commerce Server プロファイル データ ストアのデータ要素とデータ型が作成されます。
  2. 移行オブジェクトに変更を加える この作業を行うと、移行オブジェクトでユーザー情報をすべて読み取り、それを必要に応じて変更してから Commerce Server プロファイル ストアに書き込めるようになります。
  3. Migration ProfileBuilder ツールを実行する この作業を行うと、Directory Migration ツールで使われる拡張マークアップ言語 (XML) ファイルが作成されます。
  4. Groups Pre-Population ツールを実行する この作業は、Windows 2000 Server Active Directory を使う場合に行います。
  5. 移行オブジェクトをコンパイルする この作業は、移行オブジェクトに変更を加えた場合のみ行います。
  6. 移行オブジェクトを登録する この作業を行うと、Directory Migration ツールのオブジェクトが登録されます。この作業は、移行オブジェクトに変更を加えていない場合でも行う必要があります。


Commerce Server プロファイルを設定する

次の手順は、使用する環境に Commerce Server 2002 がインストールされていること、および Solution Site が正常に動作することを前提にしています。また、Commerce Server プロファイル システムから、必要なデータ ストアにアクセスできることを確認する必要があります。データ ストアには、SQL Server、Active Directory、その他の OLE DB ストア、LDAPv3 準拠のストアなどがあります。

Commerce Server プロファイルを設定するには

  1. Membership ディレクトリにあるメンバ クラスについて、どの属性を移行するかを決めます。
  2. Commerce Server マネージャのプロファイル サービスを使って、基になるデータ要素を作成します。
  3. プロファイル サービスを使って、データ要素を、対応する利用可能なデータ型にマップします。

関連項目

プロファイル リソースの実行


移行オブジェクトに変更を加える

サイトで必要とされる条件によっては、MigrationRead オブジェクト、MigrationWriteObj オブジェクト、または MigrationModifyObj オブジェクトに変更を加える必要があります。これらのオブジェクトは C++ で記述されています。

オブジェクトの修整は、Migration ProfileBuilder ツールの実行前に実施する必要があります。


Migration ProfileBuilder ツールを実行する

Commerce Server プロファイルを設定し、必要に応じて移行オブジェクトに変更を加えた後は、Migration ProfileBuilder ツールを実行して、移行の拡張マークアップ言語 (XML) ファイルを生成できます。

ここでは、次のトピックについて説明します。

  • Migration ProfileBuilder ツールをコンパイルする
  • Membership ディレクトリからプロファイル データ ストアに属性をマップする


Migration ProfileBuilder ツールをコンパイルする

Migration ProfileBuilder ツールの動作を変更する必要がある場合は、次のフォルダにあるソース コードを利用してください。<ドライブ名>:\Program Files\Microsoft Commerce Server\SDK\Tools\Membership Migration\ProfileBuilder

このアプリケーション イメージは、Microsoft Visual Basic 6.0 Professional を使って作成されています。

Migration ProfileBuilder ツールに変更を加えた後は、データ ソース (ODBC) マネージャを使って、Commerce Server プロファイル データ ストアのデータ ソース名 (DSN) を作成する必要があります。データ ソース (ODBC) マネージャは、[スタート] メニューの [プログラム] にある [管理ツール] の[データ ソース(ODBC)] の中にあります。SQL Server ドライバを使って、システム DSN を作成します。既定の接続文字列を変更して、適切なプロファイル データ ストア (Retail_commerce など) を指すようにします。

Membership ディレクトリからプロファイル データ ストアに属性をマップする

Migration ProfileBuilder ツールを実行するには、このツールを実行するサーバーが、Membership ディレクトリの LDAP サーバー、および ProfileService オブジェクトを実行する Commerce Server コンピュータにアクセスできるようになっている必要があります。

Migration ProfileBuilder ツールを実行するには

  1. エクスプローラで、Migration ProfileBuilder ツールが収められているフォルダに移動し、ProfileBuilder.exe をダブルクリックします。
  2. [Step 1] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Location to store all of the profiles] | MigrationMainObj オブジェクトで使用する XML ファイルの含まれるディレクトリを入力します。使用する XML ファイルは、通常は 1 つだけです。
    [XML file name] | 生成されるファイルの名前を入力します。この名前の末尾に、プロファイル ID が追加されます。ここでは "migration"<n>.xml という名前になります。"n " は、プロファイルが生成されるたびに増加していきます。
    [ProgID of IMigrationRead] | MigrationReadObj オブジェクトのプログラム ID を入力します。既定値は、インクルードしたソース コードによって生成されます。
    [ProgID of ImigrationWrite] | MigrationWriteObj オブジェクトのプログラム ID を入力します。既定値は、インクルードしたソース コードによって生成されます。
    [ProgID of IMigrationModify] | MigrationModifyObj オブジェクトのプログラム ID を入力します。既定値は、インクルードしたソース コードによって生成されます。
    [ProgID of IMigrationLog] | MigrationLogObj オブジェクトのプログラム ID を入力します。既定値は、インクルードしたソース コードによって生成されます。
  3. [Step 2] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Membership Directory Server] | Membership ディレクトリの NETBIOS 名を入力します。
    [Port Number] | Membership ディレクトリ インスタンスのポート番号を入力します。
    [MD User Name] | Membership ディレクトリへの接続に使用するユーザーの識別名を入力します。
    [Password] | [MD User Name] ボックスに入力した Membership ディレクトリ ユーザー名に対応するパスワードを入力します。
    [Server Name] | Commerce Server 管理データベースを実行する SQL Server の名前を入力します。
    [Database Name] | プロファイル ストアが置かれているデータベースの名前を入力します。
    [DBA Name] | システム管理者 (sa) 特権を持つユーザーのログイン名を入力します。
    [DBA's Password] | ログイン ユーザーのパスワードを入力します。
  4. [Step 3] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Migrate MemberOf] | この XML ファイルを読み取る移行オブジェクトが、ユーザーを Active Directory グループへと移行させるかどうかを指定します。
    [Object Schema] | 読み取り対象のユーザーを表しているスキーマを入力します。たとえば、「member」と入力します。他のカスタム クラスを移行する場合は、それらのクラス名を入力します。
    [Filter Depth] | 検索のレベルを指定する数値を入力します。この項目は、LDAP クエリのタイムアウトを防止するために用意されています。たとえば、フィルタの深さが 2 の場合は、cn=xx* が検索されます。フィルタの深さが 3 の場合は、cn=xxx* が検索されます。ここで、x は a ～ z、または 0 ～ 9 を表しています。
    [Search Scope] | ボックスの一覧で、ルートの下にあるサブコンテナをどの程度の深さまで検索するかを選択します。
    [Search Filter Base] | バッチ モードで移行するアカウント名のプレフィックスを入力します。たとえば、「cn=a」と入力します。
  5. [Step 4] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Group's parent RDN] | Active Directory の相対識別名 (RDN) を入力します。
    [AD Administrator's User Name] | Active Directory にデータを書き込むときのログイン アカウント名を入力します。<ドメイン名>\<アカウント名>という形式で入力します。
    [AD Administrator's Password] | [AD Administrator's User Name] ボックスに入力したアカウントのパスワードを入力します。
    [Catalog] | 使用するプロファイル カタログを選択します。通常は、[プロファイル定義] をクリックします。
  6. 読み取り元の属性を書き込み先の属性にマップします。プロファイル定義をボックスの一覧から選択することで、右側のウィンドウに表示されるオブジェクトを変更できます。関連付けを作成するには、[Site Server] ボックスで属性をクリックし、[Commerce Server] ボックスで対応する属性をクリックします。

    属性の左側にある番号は、マッピングを示しています。たとえば、49 Telephone Number = 49 tel_number という対応になります。

    次の図は、Membership ディレクトリから Commerce Server プロファイル データ ストアにマップされた属性を示しています。

  7. 属性のマッピングが完了したら、[Preview] をクリックします。

    [Step 5] ダイアログ ボックスに、XML ファイル全体が表示されます。

  8. XML ファイルが完成している場合は、[はい] をクリックします。

    Migration ProfileBuilder ツールによって XML ファイルが保存されます。


Groups Pre-Population ツールを実行する

Migration ProfileBuilder ツールを実行して XML ファイルを作成したら、ユーザー プロファイルの移行先となるグループを作成できます。

Groups Pre-Population ツールを実行するには、このツールを実行するサーバーが、Membership ディレクトリの LDAP サーバー、および Commerce Server を実行しているコンピュータにアクセスできるようになっている必要があります。

Groups Pre-Population ツールを実行するには

  1. エクスプローラで、Groups Pre-Population ツールが収められているフォルダに移動し、GroupMigration.exe をダブルクリックします。
  2. [Create group structure in AD] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Server Name] | Membership ディレクトリ サーバーの名前を入力します。
    [Port Number] | Membership ディレクトリ LDAP サーバーのポート番号を入力します。
    [User Name] | LDAP サーバーへの接続に使用するログイン名を入力します。<ドメイン名>\<ユーザー名> という形式で入力します。
    [Password] | ログイン名のパスワードを入力します。
    [Groups DN] | グループ オブジェクトの識別名を入力します。
    [Group's Schema] | グループのスキーマを表すオブジェクトの名前を入力します。
    [Organizational Unit] | 作成するグループの所属先となる Active Directory の組織単位を入力します。
    [Server] | Commerce Server がインストールされているサーバーの名前を入力します。
    [Port] | Commerce Server がインストールされているサーバーのポート番号を入力します。
    [Partition] | Active Directory フォレストに含めるパーティションのリストを入力します。dc = <ドメイン名> という形式で入力します。
    [Domain User Name] | 権限を持つ Active Directory ユーザーのログイン名を入力します。<ドメイン ユーザー> という形式で入力します。
    [Password] | 上で入力したドメイン ユーザーのパスワードを入力します。

    注

    • パーティションを入力するときは、[追加] をクリックしてエントリを保存する必要があります。
  3. [次へ] をクリックします。
  4. [Group Attributes Map] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Top box on left] | Membership ディレクトリのグループ属性カテゴリを選択します。
    [Top box on right] | Active Directory プロファイル データ ストアの名前を入力します。
  5. ユーザー プロファイルの属性を、それに対応する Active Directory プロファイル データ ストア内の属性にマップするには、[Description] の下にあるボックスの一覧でユーザー プロファイルの属性を選択し、[Map] をクリックします。

    既定では、Description と MBSTokenID という 2 つのエントリがあります。

  6. 右側の列に、マップ先の属性の名前を入力します。入力した属性名が Active Directory に存在し、データ型も一致していることを確認してください。
  7. マップしない属性を削除するには、[Remove] をクリックします。
  8. 属性のマッピング処理を完了するには、[Finish] をクリックします。

Membership ディレクトリにあるグループが読み取られ、それらが Active Directory に再作成されます。グループの数によっては、この作成プロセスにかなりの時間がかかることがあります。


移行オブジェクトをコンパイルする

移行オブジェクトに変更を加えた場合は、次の順序でコンパイルしていく必要があります。

  1. MigUtil
  2. MigrationModifyObj
  3. MigrationLogObj
  4. MigrationReadObj
  5. MigrationWriteObj
  6. MigrationMainObj

移行オブジェクトの間には次のような依存関係があるため、コンパイルするときの順序は決まっています。

  • MigrationMainObj は、他の 4 つのオブジェクトに依存します。
  • MigrationReadObj は、MigUtil と MigrationModifyObj に依存します。
  • MigrationWriteObj は、MigUtil と MigrationLogObj に依存します。
  • MigrationLogObj は、MigUtil に依存します。
  • MigrationModifyObj は、MigUtil に依存します。

MigrationLogObj オブジェクトは、MigrationWriteObj オブジェクトと MigrationMainObj オブジェクトがエラーをログに記録するときに使われます。

MigrationReadObj オブジェクトは、MigrationMainObj オブジェクトがログに記録したエラーを返します。エラーをログに直接記録することはありません。

MigrationWriteObj オブジェクトは、データの書き込み中にエラーを検出すると、ユーザー レコード全体をロールバックし、エラーを MigrationMainObj オブジェクトに返します。次に、MigrationMainObj オブジェクトがエラーをログに記録します。ロールバック プロセス自体にエラーが発生した場合、MigrationWriteObj は MigrationLogObj だけを直接使います。

コードに変更を加えた場合は、Microsoft Visual Basic 6.0 Service Pack 3 または Microsoft Visual C++ 6.0 Service Pack 3 を使ってそのコードを再コンパイルします。

次の表は、各コンポーネントに必要なコンパイラ設定の一覧です。

コンポーネント | コンパイラ | コンパイラのオプション
GroupMigration | Visual Basic 6 | 既定の設定を使います。
ProfileBuilder | Visual Basic 6 | 既定の設定を使います。
SubGroupManager | Visual Basic 6 | 既定の設定を使います。
MigrationLogObj | Visual C++ 6 | アクティブなプロジェクトを "Release Unicode MinSize" に設定します。
MigrationMainObj | Visual C++ 6 | アクティブなプロジェクトを "Release Unicode MinSize" に設定します。
MigrationModifyObj | Visual C++ 6 | アクティブなプロジェクトを "Release Unicode MinSize" に設定します。
MigrationReadObj | Visual C++ 6 | アクティブなプロジェクトを "Release Unicode MinSize" に設定します。
MigrationWriteObj | Visual C++ 6 | アクティブなプロジェクトを "Release Unicode MinSize" に設定します。
MigUtil | Visual C++ 6 | [プロジェクトの標準構成] を "Release" に設定します。


移行オブジェクトを登録する

ディレクトリ移行オブジェクトをインストールするコンピュータごとに、それらのオブジェクトを登録する必要があります。次に例を示します。

Regsvr32 /s MigrationLogObj.dll

次のコード例を .bat ファイルの中にコピーし、それを実行すると、5 つのオブジェクトがすべてまとめて登録されます。

Regsvr32 /s MigrationLogObj.dll
Regsvr32 /s MigrationMainObj.dll
Regsvr32 /s MigrationModifyObj.dll
Regsvr32 /s MigrationReadObj.dll
Regsvr32 /s MigrationWriteObj.dll


移行プロセスを開始する

移行プロセスを開始するには、移行プロセスを実行するサーバーに移行オブジェクトを配置します。次の操作を行います。

  1. Membership ディレクトリに Migration 属性を作成して、メンバの属性を拡張します。
  2. Migration ProfileBuilder ツールを使って、移行プロファイルを少なくとも 1 つ作成します。移行プロファイルは、計画している移行の種類 (バッチ モード、オンデマンド モード、両者の併用) ぞれぞれについて、1 つずつ作成する必要があります。
  3. 完成した移行オブジェクトを各サーバーにコピーし、登録して、オブジェクトを配置します。詳細については、「移行オブジェクトを登録する」を参照してください。
  4. レジストリ キーが正しく設定されていることも確認します。詳細については、「MigrationLogObj Object」の「Requirements」を参照してください。

ユーザーが新しいサイトにログインするのを利用して、ユーザーをオンデマンドで移行する計画を立てている場合は、移行オブジェクトを Web サーバーにインストールし、<ドライブ名>:\Program Files\Microsoft Commerce Server\SDK\Tools\SSCE Migration\Membership\Client ディレクトリにある Login.asp ファイルを使います。このファイルは、新しい Commerce Server サイトをユーザーが初めて訪問したときに移行処理を開始するコードの例として利用してください。

すべてのユーザーをまとめて移行する場合は、移行元のサーバーに移行オブジェクトをインストールします。最高のパフォーマンスを得るには、移行プロセス専用のコンピュータを用意し、それを使って移行します。Migration ProfileBuilder ツールを使って、ある範囲のユーザーを移行するためのプロファイルを作成する場合は、[Step 3] ダイアログ ボックスで、フィルタの深さ、検索範囲、および検索フィルタ ベースを設定します。実際に移行プロセスを開始する前に、さまざまな値でテストを実施しておくと、移行パフォーマンスを最適化することができます。このチューニング プロセスでは、Membership ディレクトリの中で、ユーザー アカウント名がどのような法則性で分散しているかが大きな意味を持っています。

オンデマンドの移行プロセスは、運用サイトに導入する前に必ずテストを行ってください。


移行ログ ファイルを使ったトラブルシューティング

移行オブジェクトは、"LogFilePath" レジストリ キーに指定されたディレクトリのテキスト ログ ファイルに問題を記録します。このログ ファイルには、移行の失敗に関するレポートや、正常な移行の妨げとなったイベントが記録されます。移行の失敗に関する情報は、他にも、失敗したオブジェクトから返されるデータを使って記録されます。

現行のログ ファイルの行数が、"MaxNumLinesEachFile" レジストリ キーに指定された上限に達した場合は、新しいログ ファイルが自動的に作成され、使われます。


移行が成功したことを確認する

すべてのユーザーが正常に移行されたことを確認するには、Membership ディレクトリにクエリを実行して、Migration 属性が欠落しているアカウントや、Migration 属性が False に設定されているアカウントをすべて検出します。クエリによって返されるアカウントがなくなるまで、返されたアカウントを個別に移行します。

クエリを実行してもレコードが返されない場合は、すべてのユーザーが移行されています。

ユーザーをすべて移行したことを確認したら、必ず次の作業を行ってください。

  • オンデマンド移行を起動するバージョンの Login.asp ファイルを、必要に応じて元の Login.asp ファイルに置き換えます。
  • 移行オブジェクトをインストールしたサーバーで、オブジェクトの登録を解除し、オブジェクトを削除します。
  • 移行ログ ファイルをバックアップし、削除します。


Migration Utility ライブラリ

Migration Utility ライブラリ "MigUtil" には、グローバルな設定やメソッドが含まれています。たとえば、次のグローバル変数があります。

  • グローバル変数 g_pwszUserObjectCommerce Server の既定の設定に対応します。別のプロファイル (UserObject 以外) に切り替える場合は、新しいプロファイルの名前をこのグローバル変数に割り当てる必要があります。
  • グローバル変数 g_searchOrder一般名 (CN) の検索フィルタで使うことのできる記号のうち、0 ～ 9 の数字を除くすべてが保持されます。0 ～ 9 の数字は、初期化段階で文字に変換されます。この 10 個の数字を保持するために、配列には 10 個分の領域を余分に確保しておく必要があります。次に例を示します。
    WCHAR g_searchOrder[128] = {L'a', L'b', L'c', L'd', L'e', L'f', L'g',
                            L'h', L'i', L'j', L'k', L'l', L'm', L'n',
                            L'o', L'p', L'q', L'r', L's', L't', L'u',
                            L'v', L'w', L'x', L'y', L'z'};

    この例では 128 文字を確保し、10 個の追加文字を保持しても十分な空き領域が残るようにしています。

  • グローバル変数 g_numSymbolsg_searchOrder の配列に格納する記号 (10 個の数字は除く) の数を保持します。次に例を示します。
    int g_numSymbols = 26;


XML ファイルの例

ここでは、移行プロファイル XML ファイルの例を示します。Microsoft Commerce Server 2002 Software Development Kit (SDK) の Migration ProfileBuilder ツールを使うと、次のような XML ファイルが作成されます。

<?xml version="1.0" ?>
<PROFILE1>
    <MIGRATION-PROFILE>
        <ProfileID>2</ProfileID>
    </MIGRATION-PROFILE>
    <MigrationObjects>
        <ReadObj>MigrationReadObj.MigrationRead</ReadObj>
        <WriteObj>MigrationWriteObj.MigrationWrite</WriteObj>
        <ModifyObj>MigrationModifyObj.MigrationModify</ModifyObj>
        <LogObj>MigrationLogObj.MigrationLog</LogObj>
    </MigrationObjects>
    <MembershipDirectory>
        <MConnectionString>LDAP://localhost1:1003</MConnectionString>
        <MigrateMemberOf>TRUE</MigrateMemberOf>
        <MDUserName>cn=administrator,ou=members,o=migration</MDUserName>
        <MDPassword>password</MDPassword>
    </MembershipDirectory>
    <SearchFilterInfo>
        <FilterDepth>2</FilterDepth>
        <ADsSearchScope>2</ADsSearchScope>
        <SearchFilterBase>cn=</SearchFilterBase>
    </SearchFilterInfo>
    <UserProfileService>
        <ADSite>TRUE</ADSite>
        <GenerateSamAccount>TRUE</GenerateSamAccount>
        <UConfigStore>SERVER=localhost2;
                      DATABASE=supplierAD_commerce;
                      UID=sa;PWD=</UConfigStore>
        <UCatalog>Profile Definitions</UCatalog>
        <GroupOUToDC>OU=MSCS_40_Root</GroupOUToDC>
        <CSUserName>administrator</CSUserName>
        <CSPassword>csdqfe</CSPassword>
    </UserProfileService>
    <Mapping>
        <FromMembership>givenName</FromMembership>
        <ToUPS>GeneralInfo.first_name</ToUPS>
        <WProfileType>UserObject</WProfileType>
        <WTypes>VT_BSTR</WTypes>
        <FromMembership>sn</FromMembership>
        <ToUPS>GeneralInfo.last_name</ToUPS>
        <WTypes>VT_BSTR</WTypes>
        <WProfileType>UserObject</WProfileType>
        <FromMembership>cn</FromMembership>
        <ToUPS>ProfileSystem.sam_account_name</ToUPS>
        <WTypes>VT_BSTR</WTypes>
        <WProfileType>UserObject</WProfileType>
    </Mapping>
</PROFILE1>


配置の計画

Commerce Server 2002 および Web サイトの配置には、慎重な計画が必要です。ビジネス要件に適時に、かつ組織的に対応できるように、時間をかけて包括的な配置計画を立ててください。開発アプリケーションを実際に Web サイトに移動する前に、このトピックの情報を確認してください。また、『Commerce Server 2000 リソース キット』の情報も確認してください。

さらに重要となるのは、組織が独自の計画を作成していること、その計画にビジネス マネージャ、システム管理者、およびサイト開発者の意見が含まれていることです。

配置に際しては、開発、テスト、および運用の 3 種類のハードウェア環境の間で Web サイトを移動します。次の図は、これらの環境を単純化して示しています。これらの環境の実際の外観は、サイトの規模やビジネス目標によって異なります。

Commerce Server 2002 を配置する前に、次の事項が検討済みであることを確認してください。

  • 配置を実施するにあたって、どの配置シナリオを参考にするか?
  • 配置の規模はどの程度か?
  • どのような方法で可用性を維持するか?
  • 配置されるさまざまな要素をどのように監視および更新するか?

ここでは、次のトピックについて説明します。

  • 3 つの層を分離する 管理を容易にするために各層を分離する方法について説明します。
  • クラスタリングの概念 各層のクラスタリングの概念を説明します。
  • ファイアウォールの構成 さまざまなファイアウォール構成オプションの長所と短所を説明します。
  • 配置のシナリオ 配置の際に参考となる配置シナリオの例を紹介します。

関連項目

サイトの配置

Site Server 3.0 からのアップグレード

Membership ディレクトリを移行する


3 つの層を分離する

ほとんどのインターネット サービスでは、ユーザー インターフェイス層は、セキュリティ上の理由により、ビジネス ロジック層とデータベース層から分離して構成する必要があります。

次の図は、多くの電子商取引サイトでは、ビジネス ロジックを、基になるデータからさらに分離させていることを示しています。

ここで示すような複数層による構成では、クライアント ブラウザは Web ページにアクセスします。Web ページは、Web サーバーをホストとする関連のビジネス ロジックをアクティブにします。ビジネス オブジェクトが必要とする固定データは、独立したデータベース層で管理されます。

データと状態の情報は、処理ロジックおよびクライアント環境を制御します。次の表は、各層を分離するために使用する、デザインの一般的な方針を示しています。

層 方針
ユーザー インターフェイス層
  • Low 状態 (アプリケーション コード状態情報はあまり多く保持しない)。一意のデータは cookie またはレジストリに格納する。
  • 各種のローエンド サーバー。
  • 中断時間は最小限に抑える。このため、追加のサーバーを使用する。
ビジネス ロジック層
  • Web アプリケーションはこの層で実行する。商品カタログ システム、プロファイル システム、ビジネス プロセス パイプラインなど。
  • Low 状態。一意のデータなし。廉価のサーバー。
  • 中断時間は最小限に抑える。このため、ソフトウェアまたはハードウェアで 1 つのインターネット プロトコル (IP) アドレスによる負荷分散を使用する。
データベース層
  • Commerce Server が使用するデータは、この層のデータ ウェアハウスで管理および格納する。
  • システム状態とデータは、この層に格納する。
  • 中断時間を最小限に抑える。このため、クラスタ化されたまたは複製された構成を使用する。


クラスタリングの概念

配置を拡張するための鍵となるのは、クラスタリングです。複数のサーバーをまとめて 1 つのクラスタにすることによって、各サーバーのリソースを利用し、クライアントの負荷をそれらのサーバーに分散できます。サイトの使用量が増えるにしたがって、クラスタにサーバーを追加し、増加した負荷に対応することができます。

サイト アーキテクチャや配置デザインによっては、クラスタリングを行って、一点に集中する障害を取り除いたり特定の機能を向上させたりすることで、パフォーマンスと可用性を高めることもできます。配置を分離して複数の独立したクラスタにすると、各層で独立してクラスタを管理できます。このようにして、問題のあるサーバーを独自のクラスタに隔離することによって、ボトルネックを解消できます。たとえば、トランザクション処理がボトルネックである場合は、この機能を独自のデータベースに隔離できます。その後、配置内のその他のサーバーとは関係なく、クラスタリングを通じて、このデータベースの可用性とパフォーマンスを向上させることができます。

通常、Commerce Server 2002 コンポーネントは、次の目的で、次の 2 つの主なクラスタリング方法を使用します。

  • 負荷分散と拡張性を提供するための、Web 層でのネットワーク負荷分散 (NLB)
  • フォールト トレランスを提供するための、データベース層でのクラスタ サービス

どちらのクラスタリング方法を採用しても、可用性と信頼性を高めることができます。Web 層の負荷分散を行うと、Web 層に拡張性を持たせることができます。この方法が適しているのは、ステートレスなデータ (Web サーバー、ストリーミング メディア、VPN、プロキシ サーバーなどのデータ) です。データベース層をクラスタ化する方法が適しているのは、変更頻度の高いデータ (SQL Server、Exchange Server、ファイル サーバー、プリント サーバーなどのデータ) です。

NLB を使う Web クラスタは、通常、複数のクラスタ メンバで構成されます。各メンバは、独立した Web サーバーとして動作し、他のクラスタ メンバとデータ (クラスタ操作に使用されるデータ以外) を共有しません。クラスタ メンバに障害やエラーが発生した場合は、このメンバをオフラインに設定するか、またはクラスタから取り除くことによって、受信するクライアント要求の負荷を、動作しているメンバだけに分散することができます。NLB の詳細については、Windows 2000 Advanced Server または Windows 2000 Datacenter Server のドキュメントを参照してください。

クラスタ サービスを使う SQL Server データベース クラスタは、通常、2 つのメンバで構成されます。両方のメンバが、共通の外部記憶デバイスを共有します。これらのメンバは、正確な複製です。一方のメンバに障害またはエラーが発生した場合は、他方のメンバが代理を務めるので、データベース機能が動作を続行できます。NLB の詳細については、Windows 2000 Advanced Server または Windows 2000 Datacenter Server のドキュメントを参照してください。

関連項目

Web サーバーをクラスタ化する

SQL Server をクラスタ化する


ファイアウォールの構成

Commerce Server 2002 構成の規模にかかわらず、ファイアウォールの配置方法を決定する必要があります。ファイアウォールが多いほどコストは増大しますが、顧客、従業員、および機密データを隔離できます。ただし、問題はコストだけではありません。各ファイアウォール ソリューションには、それぞれ長所と短所があります。

ここでは、次のトピックについて説明します。

  • ファイアウォールが 1 つの構成を使用する
  • ファイアウォールが 2 つの構成を使用する
  • ファイアウォールが 3 つの構成を使用する


ファイアウォールが 1 つの構成を使用する

小規模サイトの構成で最もコストがかからない方法は、1 つのファイアウォールでインターネット ブラウザ、サイト、および内部ネットワークを分離する方法です。ファイアウォールに 3 個のネットワーク アダプタが内蔵され、それぞれが 3 つの環境に接続している場合は、この構成が可能です。

ファイアウォールを 1 つで済ませることのできる場所の 1 つは、開発環境です。ファイアウォールが 1 つの構成図については、「小規模サイトの開発環境」を参照してください。

1 つのファイアウォールのソリューションには、次のような長所があります。

  • Web サーバーとデータベース サーバーを含むネットワークが、物理的に他のネットワークから分離されるため、サイトへの侵入を制限できます。一般にアクセスできるサーバーをだれかが利用しても、内部ネットワークに直接アクセスすることはできません。
  • 購入および管理するファイアウォールが 1 つで済みます。
  • 内部ネットワーク (準備環境のサーバー、ビジネス デスク サーバー、開発コンピュータなどのコンピュータを含む) が機能する際に、Web サイト環境に依存しません。サイトにネットワーク障害が起きた場合、内部ネットワークが接続不可能になるとは限りません。
  • 内部ネットワークとインターネットを分離するために既にファイアウォールが機能している場合、このデザインは既存のアーキテクチャに簡単に実装できます。既存のファイアウォールに 3 つ目のネットワーク アダプタを追加するだけで済みます。

1 つのファイアウォールのソリューションには、次のような短所があります。

  • データベース サーバーが Web サーバーから分離されません。インターネットから Web サーバーに許可されるプロトコルは、ハイパーテキスト転送プロトコル (HTTP) と保護付きハイパーテキスト転送プロトコル (HTTPS) だけです。
  • ISP ネットワークのサーバーにアクセスした侵入者が、サイトの他のサーバーにもアクセスする可能性があります。これらのサーバーにセキュリティを設定するには、さらに強力なセキュリティが必要です。
  • Web サーバーとデータベース サーバーの間の通信が、ISP ネットワーク内を保護されずに通ります。
  • Commerce Server ビジネス デスク コンピュータは、Web サーバーとネットワーク トラフィックを共有するため、データのセキュリティを確保するには、ビジネス デスクのコンピュータで HTTPS を実行する必要があります。
  • 3 つのインターフェイスをサポートしていないファイアウォール ベンダもあります。

関連項目

サイトの配置

Site Server 3.0 からのアップグレード

Membership ディレクトリを移行する


ファイアウォールが 2 つの構成を使用する

この構成では、1 つのファイアウォールが Web サーバーからインターネットを分離し、もう 1 つのファイアウォールが、データベース サーバーと Commerce Server ビジネス デスク コンピュータを含む内部ネットワークから Web サーバーを分離します。ファイアウォールが 2 つの構成図については、「小規模サイトの構成」を参照してください。

2 つのファイアウォールのソリューションには、次のような長所があります。

  • システム管理者が、内部ネットワークを Web サーバーやインターネット ブラウザから分離できます。ISP ネットワークではなく、内部ネットワークでサイト管理が行われます。侵入者にとって、内部ネットワークにアクセスすることがはるかに難しくなります。
  • Web サーバーとデータベース サーバーの関係に依存しない弱点からデータベース サーバーにセキュリティを設定するために、保護層が実装されます。このような弱点は、サービス拒否攻撃につながる可能性があります。
  • インターネット ブラウザにアクセスできるコンピュータの数を最小限にすることができます。2 つのファイアウォールを使うことにより、データベース サーバーやビジネス デスク サーバーを破壊または悪用することが難しくなります。
  • ビジネス デスクのクライアントおよびサーバー コンピュータは同じネットワーク上にあるため、ビジネス デスクを保護付きハイパーテキスト転送 (HTTPS) プロトコルで実行する必要はありません。
  • 通信が公共のネットワークを経由しないため、ビジネス デスクとデータベース サーバーの通信を暗号化する必要がありません。
  • インターネット ブラウザが正当なユーザーになりすますことを防ぎやすくなります。たとえば、特定の IP アドレスからのデータベース サーバー要求のみを受け付けるように Web サーバーを設定できます。ファイアウォールが両方の接続を制御するため、特定のアドレスを不正に使うことはできません。
  • Web サーバーが他のネットワークから物理的に分離されるため、サイトへの侵入を制限できます。一般にアクセスできるサーバーをだれかが利用しても、内部ネットワークに直接アクセスすることはできません。

2 つのファイアウォールのソリューションには、次のような短所があります。

  • 構成の異なる 2 つのファイアウォールを管理することは難しく、またコストがかかります。
  • Web サーバーとデータベース サーバーの間の通信が、ISP ネットワーク内で保護されません。このような通信にセキュリティを設定するには、さらに強力なセキュリティが必要です。
  • 社内ネットワークが機能する際に Web サイトに依存します。Web サイトにネットワーク障害が起きた場合、内部ネットワークが接続不可能になる可能性があります。内部ネットワークのコンピュータを ISP ネットワークを経由せずにインターネットに接続するために、他のネットワーク回線を設置する必要があります。このような接続は、内部ネットワークから ISP ネットワークを分離しているファイアウォールをバイパスします。
  • 内部ネットワークとインターネットの間で許可されるトラフィックは、ISP ネットワークとインターネットの間、およびデータベース サーバー ネットワークとインターネットの間でも許可されます。セキュリティの効果は、ユーザーの既定のセキュリティ ポリシーでどのプロトコルを許可するかによって決まります。

関連項目

サイトの配置

Site Server 3.0 からのアップグレード

Membership ディレクトリを移行する


ファイアウォールが 3 つの構成を使用する

この構成は、ファイアウォールが 2 つの構成に似ていますが、データベース サーバーと Commerce Server ビジネス デスク コンピュータから内部ネットワークを分離するファイアウォールが追加されます。ファイアウォールが 3 つの構成図については、「大規模サイトの構成」を参照してください。

3 つのファイアウォールのソリューションには、次のような長所があります。

  • Web サイト (Web サーバー、データベース サーバー、およびビジネス デスク サーバー) が他のネットワークから物理的に分離されるため、侵入を最大限に防ぐことができます。
  • インターネット ブラウザが正当なユーザーになりすますことを防ぎやすくなります。たとえば、特定の IP アドレスからのデータベース サーバー要求のみを実行するように Web サーバーを設定できます。ファイアウォールが両方の接続を制御するため、特定のアドレスを不正に使うことはできません。
  • Web サーバーとデータベース サーバーの関係に依存しない弱点からデータベース サーバーにセキュリティを設定するために、保護層が実装されます。このような弱点は、サービス拒否攻撃につながる可能性があります。
  • 3 つのファイアウォールを設置することで、インターネット経由で直接アクセスできるコンピュータの数を最小限にすることができます。データベース サーバーやビジネス デスク サーバーを破壊または悪用することが難しくなります。
  • データベース サーバーとビジネス デスク サーバーが、内部ネットワークにいる侵入者から保護されます。

3 つのファイアウォールのソリューションには、次のような短所があります。

  • 構成の異なる 3 つのファイアウォールを管理することは難しく、またコストがかかります。
  • Web サーバーとデータベース サーバーの間の通信が、ISP ネットワーク内で保護されません。このような通信にセキュリティを設定するには、さらに強力なセキュリティが必要です。
  • 内部ネットワークとインターネットの間で許可されるトラフィックは、ISP ネットワークとインターネットの間、およびデータベース サーバーとインターネットの間でも許可されます。セキュリティの効果は、ユーザーの既定のセキュリティ ポリシーでどのプロトコルを許可するかによって決まります。
  • 構成の設定と管理が難しくなります。

関連項目

サイトの配置

Site Server 3.0 からのアップグレード

Membership ディレクトリを移行する


配置のシナリオ

配置計画を作成する際は、次に示すシナリオのいずれかを参考にしてください。配置のシナリオで独自に検討しなければならない事項があるかどうかは、配置先のリソースや要件によって異なります。

ここでは、次のトピックについて説明します。

  • 小規模サイトの構成 2 ～ 5 台のサーバーで構成する小規模サイトの配置シナリオについて説明します。
  • 大規模サイトの構成 各種の Commerce Server コンポーネントをそれぞれ別のデータベースに配置する、大規模サイトの配置シナリオについて説明します。
  • グローバル サイトの構成 サーバーが複数の地域に分散しているグローバル サイトの配置シナリオについて説明します。


小規模サイトの構成

すべての Commerce Server 2002 コンポーネントを 1 台のサーバーにインストールすることも可能ですが、2 台のコンピュータを使えば、ビジネス ロジック層とデータベース層を分離することができます。

2 台のコンピュータによる構成では、Web サーバー層とデータベース サーバー層にサーバーを 1 台ずつ割り当てます。フォールト トレラントと高可用性を実現するには、4 台のコンピュータが必要になります。それぞれの層で、2 台のコンピュータをクラスタ化します。次の図は、4 台のコンピュータによる運用環境を示しています。

Commerce Server 2002 の小規模な配置

この構成では、ネットワーク負荷分散 (NLB) によって Web サーバーの負荷が分散されています。可用性を高めるため、Web サーバーのフロントには 1 つのインターネット プロトコル (IP) アドレスを配置します。すべてのビジネス ロジックは、両方のステートレス Web サーバー上で動作します。いずれの Web サーバーにも、Commerce Server の管理ツール、サービス、Commerce Server ビジネス デスク、およびアプリケーションが含まれます。すべての Commerce Server ビジネス ロジックが 1 台のサーバー上で動作すると、ユーザー セッションのキャッシュ使用量は最大になります。クラスタ内で、顧客が別の Web サーバーに向けられると、その新しいサーバーがデータを取得し、顧客は、引き続き買い物ができます。Commerce Server コンポーネントは、バックエンド データベース、cookie、または Uniform Resource Locator (URL) クエリ文字列間で変わりません。したがって、別の物理サーバーに向けられても、顧客の買い物環境にはほとんど影響がありません。

データベース サーバーは、共有 Microsoft SQL Server データベースを持つ Windows サーバー クラスタとして構成されます。これらには、管理データベース、Commerce Server データ ウェアハウス、およびその他の Commerce Server データベースが含まれます。

この構成では、2 つのファイアウォールが使われます。1 つはインターネットからの入力にセキュリティを設定し、もう 1 つは企業ネットワークに対する入出力にセキュリティを設定します。

この構成では、ユーザー認証に SQL Server を使います。ユーザー認証に Microsoft Active Directory を使うこともできます。この場合、セキュリティは高まりますが、運用環境にドメイン コントローラを組み込む必要があります。

Commerce Server を 1 台のコンピュータにインストールする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。Commerce Server 2002 を 2 台のコンピュータにインストールする方法については、「クラスタ構成の 4 台のコンピュータにインストールする」を参照してください (ただし、各層のクラスタ化は行いません)。この項の説明に従って 4 台のコンピュータでクラスタを構成すると、各層にある 2 台のコンピュータがクラスタ化されるため、可用性が高まります。Commerce Server 2002 を 2 台のコンピュータにインストールするだけの場合は、クラスタ化の項は無視して、配置先で 2 台のコンピュータを使います。

Commerce Server 2002 を 3 台のコンピュータにインストールする方法については、「非クラスタ構成の 3 台のコンピュータにインストールする」を参照してください。Commerce Server 2002 を 4 台以上のコンピュータにインストールする方法については、「大規模サイトの構成」を参照してください。

Active Directory を使った小規模サイトの構成

小規模サイトの開発環境

Active Directory を使った小規模サイトの構成

Active Directory を使って、Commerce Server サイトにセキュリティ コンテキストを提供することもできます。Active Directory は、次のような場合に役立ちます。

  • ユーザーのセキュリティ情報に基づいてサイト リソースへのアクセスを制御する場合。
  • 他のアプリケーションにセキュリティを提供する場合。

サイトに Active Directory を実装する場合は、構成に 2 台のサーバーを追加する必要があります。次の図は、Active Directory サーバーを含む小規模な Commerce Server の構成を示しています。

Active Directory を使った Commerce Server 2002 の小規模な配置

可用性を高めるには、複製された 2 台の Active Directory ドメイン コントローラを使うことをお勧めします。Active Directory は、自らの複製を使って、ドメイン コントローラ間にデータの矛盾が起きないようにします。この構成の Web サーバーとデータベース サーバーは、4 台のコンピュータによる構成のサーバーと同じものです。Active Directory の処理負荷は比較的軽いため、Active Directory サーバーを SQL Server コンピュータと同じクラスタに置くことができます。

サンプルの Supplier サイトをインストールして Active Directory と共に利用する方法については、「サンプルの Supplier サイトをインストールする」を参照してください。このサンプル構成は、2 台のサーバーで構成されています。1 台は Active Directory を使うドメイン コントローラで、もう 1 台は Commerce Server と SQL Server を実行するサーバーです。

小規模サイトの開発環境

次の図は、小規模サイトの開発環境の例を示しています。

Commerce Server 2002 の小規模な配置環境

この開発環境は、準備/テスト環境や運用環境とは物理的に分離されています。この環境は、社内ネットワークの中にあります。


大規模サイトの構成

Commerce Server サイトのキャパシティを向上させる最も簡単な方法は、Web サーバーを追加し、Commerce Server コンポーネントを別々のデータベース サーバーに分散することです。各データベースで予測される利用状況に基づいて、可用性を決定する必要があります。可用性を高めるために、また、サイトの複雑さを顧客に意識させないように、Web サービスのフロントに、1 つの IP アドレスによるソリューションを配置できます。SQL Server クラスタリングや SQL Server レプリケーションを組み合わせることによって、データベース層の可用性を高めることができます。大規模な Web クラスタを構築すれば、すべてのビジネス ロジックをステートレスな Web サーバー上で実行することもできます。ただし、一部の環境では、サイトの買い物機能からいくつかの機能を分離する必要があります。たとえば、コンポーネントが特に CPU を多く消費する場合 (大きなファイルの暗号化など) や、コンポーネントが、セキュリティで保護されているデータにアクセスする必要がある場合 (社会保険番号、クレジット履歴、または医療報告書を処理しながら保険料を計算する場合など)、別の Web クラスタ上でパイプライン コンポーネントを実行する必要があります。CPU を多く消費するために別のサーバー上で実行する必要がある機能には、分析モデルの生成などがあります。

次の図は、サーバーが 10 ～ 100 台ある大規模サイトの運用環境の例を示します。

重要

Commerce Server 2002 のデータ ウェアハウスは、OLAP クラスタリングをサポートしていません。

この構成では、各コンポーネント データベースをそれぞれの Microsoft SQL Server クラスタに分離します。さらに、カタログ データベースを複数の負荷分散クラスタにインストールします。Commerce Server のサービスとアプリケーションへの負荷を分散するため、Web サーバーが追加されます。

Windows クラスタリングではノードが 4 台に制限されていますが、データベース層でそれよりも多くのキャパシティが必要な場合は、データベース層に対して次の方針を検討する必要があります。

  • OLAP サーバー 1 つの IP アドレスによるソリューションに、サーバーを追加します。アーカイブと復元を使ってデータを同期させます。OLAP の Windows クラスタリングはサポートされていません。
  • カタログ 1 つの IP アドレスによるソリューションに、サーバーを追加します。SQL Server のレプリケーション機能を使ってデータを同期させます。
  • 注文フォーム 複数のデータ パーティションを作成して、それらのパーティションにトランザクションを分散します。たとえば、分散 SQL Server データベース (連合ビュー) を実装できます。詳細については、SQL Server 2000 ヘルプの「連合データベース サーバーの設計」を参照してください。
  • プロファイル リソース 複数のデータ パーティションを作成し、それらのパーティションにユーザー データを分散します。データ ソース パーティションは、ハッシュ キーとして指定されているプロファイル プロパティを使って、データを一元管理します。このアーキテクチャでは、サイトをセットアップするときにパーティションを作成する必要があることに注意してください。既にユーザー プロファイルのあるサイトにパーティションを追加する場合は、ユーザー データを再度読み込む必要があります。パーティション分割は、SQL Server プロファイル ストアと Active Directory プロファイル ストアの両方で役立ちます。Active Directory の拡張には、ユーザー フォレスト内のドメインからリソース フォレスト内のドメインに対して確立された信頼関係を持つマルチフォレスト デザインが必要です。

大規模サイトの構成の計画と配置の詳細については、『Commerce Server リソース キット』を参照してください。


グローバル サイトの構成

グローバル サイトは、通常、世界各地の複数の大規模サイトを、専用の広域ネットワーク (WAN)、または WAN が提供する 1 つまたは複数の ISP または ASP で接続したものです。

次の図は、グローバル サイトの構成例を示しています。

グローバル サイトの構成の計画と配置の詳細については、『Commerce Server リソース キット』を参照してください。


一般的な配置の構成

一般的な配置は、Web 層とデータベース層で構成されます。Web 層は、1 台の Web サーバー、またはクラスタとして機能している複数の Web サーバーから成ります。データベース層は、SQL Server およびビジネス デスクを実行しているサーバーから成ります。さらに、各層には、認証と DNS サービスのためにドメイン コントローラが存在する場合があります。

次の図は、Commerce Server 2002 の一般的な配置のトポロジを示しています。

Commerce Server 2002 の一般的な配置のトポロジ

配置内で使うサーバーの数は、パフォーマンスの要件や可用性の目標レベルによって異なります。可用性とパフォーマンスを向上させるために、Web クラスタ、SQL Server クラスタ、およびビジネス デスク クラスタにサーバーを追加できます。

ここでは、一般的な配置を構成するさまざまな段階を順序立てて説明します。

ここでは、次のトピックについて説明します。

  • 推奨ハードウェア構成
  • サーバー固有のソフトウェア要件
  • ベース プラットフォームをインストールする
  • ネットワークを構成する
  • ドメインを設定する
  • Web 層を構成する
  • データベース層を構成する
  • Commerce Server 2002 をインストールする
  • サイトをアンパックする
  • ビジネス デスク クライアントをインストールする


推奨ハードウェア構成

次の表は、「Commerce Server 2002 インストール ガイド」に記載されているハードウェアの必要条件以外で、Commerce Server 2002 の一般的な配置で推奨されるハードウェア構成を示しています。

サーバー | プロセッサ | RAM | ハード ディスクの空き容量 | ネットワーク アダプタ
Web サーバー | 700 MHz を 2 基 | 1 GB | 12 GB | 2
SQL Server | 500 MHz を 4 基 | 1 GB | 25 GB | 2
ISA Server | 500 MHz を 1 基 | 512 MB | 8 GB | 3
ビジネス デスク | 700 MHz を 2 基 | 1 GB | 12 GB | 2
Active Directory | 500 MHz を 1 基 | 512 MB | 8 GB | 1

クラスタ サービスを使う SQL Server クラスタは、9 GB の SCSI ハード ドライブを 4 つ搭載した共通の外部記憶デバイスを、1 つの 25 GB RAID 5 論理ドライブとして構成する必要があります。

一般的な配置では、次のハードウェアも使います。

  • 3 台のハブ 1 台には Web サーバー上のフロントエンド ネットワーク アダプタを接続します。もう 1 台には Web サーバー上のバックエンド ネットワーク アダプタを接続します。残りの 1 台にはデータベース層で SQL Server およびビジネス デスクを実行するサーバーを接続します。
  • 2 つのファイアウォール 1 つは配置をインターネットから分離する外部ファイアウォールです。もう 1 つは Web 層をデータベース層から分離する内部ファイアウォールです。必要に応じて、配置を内部ネットワークから分離する追加のファイアウォールを使うこともできます。


サーバー固有のソフトウェア要件

配置作業は、Commerce Server コンポーネントをインストールする場所によって大きく異なります。最も単純な構成では、すべての Commerce Server コンポーネントが 1 台のコンピュータにインストールされます。多くの大規模な配置では、Commerce Server コンポーネントが異なるコンピュータにインストールされます。たとえば、Commerce Server の分析およびデータ ウェアハウス コンポーネントは、通常、SQL Server を実行している別のコンピュータにインストールされます。

Web サーバーの要件

Commerce Server 2002 を配置する場合は、各 Web サーバーには次のソフトウェア製品が必要です。

  • Microsoft Windows 2000 Advanced Server Service Pack 2
  • インターネット インフォメーション サービス (IIS) 5.0
  • MSXML Version 3.0 Service Pack 2、Commerce Server の製品 CD-ROM (\Support\MSXML 3.0 Sp2\msxml3sp2setup.exe) より入手可能
  • MDAC 2.7、Commerce Server の製品 CD-ROM (\Support\MDAC 2.7\mdac_typ.exe) より入手可能
  • Commerce Server 2000 Service Pack 2 (ビジネス デスクは不要)

データベース サーバーの要件

Commerce Server 2002 を配置する場合は、各データベース サーバーには次のソフトウェア製品が必要です。

  • Windows 2000 Advanced Server Service Pack 2
  • Microsoft SQL Server 2000 Service Pack 2
  • MDAC 2.7、Commerce Server の製品 CD-ROM (\Support\MDAC 2.7\mdac_typ.exe) より入手可能

ビジネス デスクの要件

Commerce Server 2002 を配置する場合は、ビジネス デスクを実行する各サーバーには次のソフトウェア製品が必要です。

  • Windows 2000 Advanced Server Service Pack 2
  • インターネット インフォメーション サービス (IIS) 5.0
  • MSXML Version 3.0 Service Pack 2
  • Commerce Server 2000 Service Pack 2 (ビジネス デスクが必要)

ドメイン コントローラの要件

  • Windows 2000 Advanced Server Service Pack 2

ファイアウォールの要件

  • Windows 2000 Advanced Server Service Pack 2
  • Microsoft Internet Security and Acceleration Server 2000


ベース プラットフォームをインストールする

必要なハードウェアとソフトウェアを用意したら、ネットワークの構成およびソフトウェアのインストールを行う前に、各サーバーにベース プラットフォームをインストールします。ベース プラットフォームをインストールする方法は、次のとおりです。

  1. すべてのサーバーに Microsoft Windows 2000 Advanced Server Service Pack 2 (SP2) をインストールします。
  2. Web サーバー、およびビジネス デスクを実行するサーバーにインターネット インフォメーション サービス (IIS) 5.0 をインストールします。最新の修正プログラムについては、IIS サイトを参照してください。
  3. Web サーバー、およびビジネス デスクを実行するサーバーに MSXML Version 3.0 SP2 をインストールします。

    Microsoft Internet Explorer Version 6.0 (MSXML 3.0 SP2 を含む) がインストールされていない場合は、Microsoft Commerce Server 2002 の製品 CD-ROM から、\Support\MSXML 3.0 Sp2\msxml3sp2setup.exe ファイルを使って MSXML 3.0 SP2 をインストールできます。インストール中に、サイドバイサイド モードでインストールするためのオプションを選択します。このオプションを使うと、MSXML 3.0 SP2 が MSXML Version 2.6 を上書きするのを防ぐことができます。MSXML Version 2.6 はビジネス デスクに必要です。

ベース プラットフォームのインストールが完了したら、ネットワーク アダプタを接続し、IP アドレスを割り当てて、ネットワークの構成を開始します。


ネットワークを構成する

ベース プラットフォームをインストールしたら、ネットワーク アダプタを適切なハブまたはスイッチに接続し、適切な IP アドレスを割り当てます。配置のこの段階では、配置内のすべてのサーバー間の通信を確立することも必要です。

ここでは、次のトピックについて説明します。

  • Web サーバーを接続する
  • SQL Server を接続する
  • ビジネス デスク サーバーを接続する
  • ファイアウォールのポートを開く


Web サーバーを接続する

ここでは、配置中に、各 Web サーバー上のネットワーク アダプタを接続および構成する方法について説明します。各 Web サーバーは、2 つのネットワーク アダプタを使います。1 つはインターネット上のクライアントと通信するためのものです。もう 1 つはデータベース層のサーバーと通信するためのものです。

次の図は、3 台の Web サーバーで構成される Web クラスタのサンプル ネットワーク構成を示しています。

サンプル Web クラスタ ネットワーク構成

Web サーバーを接続するには

  1. フロントエンド ネットワーク アダプタ (インターネット上のクライアントとの通信用) を、外部ファイアウォールに接続されているハブに接続します。
  2. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク]、および [デフォルト ゲートウェイ] の値を入力します。ここで入力する IP アドレスによって、このサーバー専用の IP アドレスが指定されます。
  3. バックエンド ネットワーク アダプタ (バックエンド データベースとの通信用) を、内部ファイアウォール (Web 層をデータベース層から分離する) に接続されているハブに接続します。
  4. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク] の値を入力します。[デフォルト ゲートウェイ] は空白のままにします。
  5. 各 Web サーバーに対して別の IP アドレスを使って、手順 1. ～ 4. を繰り返します。

これで、Web サーバー上のネットワーク構成は完了です。ネットワーク負荷分散 (NLB) をインストールするには、「Web サーバーをクラスタ化する」を参照してください。


SQL Server を接続する

ここでは、配置中に、SQL Server を実行する各サーバー上のネットワーク アダプタを接続および構成する方法について説明します。各サーバーは、2 つのネットワーク アダプタを使います。1 つはハブによって Web クラスタに接続され、もう 1 つはクロスオーバー ケーブルによって、SQL Server を実行するもう 1 台のサーバーに接続されます。各サーバーは、SCSI ケーブルによって共有記憶装置にも接続されます。

SQL Server クラスタには、2 つの異なるクラスタ名と 2 つの異なるクラスタ IP アドレスが必要です。1 つは SQL Server によって使われ、もう 1 つはクラスタ サービスによって使われます。

次の図は、SQL Server クラスタのサンプル ネットワーク構成を示しています。

SQL Server クラスタのサンプル ネットワーク構成

SQL Server を実行するサーバーを接続するには

  1. 共有記憶装置の電源が入っていないことを確認します。電源が入っている間に共有記憶装置が両方のサーバーに接続されると、その共有記憶装置が破損する可能性があります。
  2. フロントエンド ネットワーク アダプタを、内部 Web 層をデータベース層から分離するファイアウォールに接続されているハブに接続します。
  3. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク]、および [デフォルト ゲートウェイ] の値を入力します。
  4. クロスオーバー ケーブルを、バックエンド ネットワーク アダプタから、SQL Server を実行するもう 1 台のサーバーのバックエンド ネットワーク アダプタに接続します。
  5. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク] の値を入力します。[デフォルト ゲートウェイ] は空白のままにします。
  6. [インターネット プロトコル (TCP/IP) のプロパティ] で、[詳細設定] をクリックします。
  7. [TCP/IP 詳細設定] の [WINS] タブで、[NetBIOS over TCP/IPを無効にする] を選択します。
  8. SCSI ケーブルを共有記憶装置に接続します。
  9. SQL Server を実行するもう 1 台のサーバーに対して別の IP アドレスを使って、手順 1. ～ 8. を繰り返します。

これで、SQL Server クラスタ上のネットワーク構成は完了です。クラスタ サービスをインストールするには、「データベース層を構成する」を参照してください。


ビジネス デスク サーバーを接続する

ここでは、配置中に、ビジネス デスクを実行する各サーバー上のネットワーク アダプタを接続および構成する方法について説明します。ビジネス デスクを実行する各サーバーは、2 つのネットワーク アダプタを使います。1 つは Web クラスタと通信するためのものです。もう 1 つは、ビジネス デスクを実行する 2 台のサーバー間で通信するためのものです。

次の図は、ビジネス デスク クラスタのサンプル ネットワーク構成を示しています。

ビジネス デスク クラスタのサンプル ネットワーク構成

ビジネス デスクを実行するサーバーを接続するには

  1. フロントエンド ネットワーク アダプタを、内部 Web 層をデータベース層から分離するファイアウォールに接続されているハブに接続します。
  2. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク]、および [デフォルト ゲートウェイ] の値を入力します。
  3. クロスオーバー ケーブルを、バックエンド ネットワーク アダプタから、ビジネス デスクを実行するもう 1 台のサーバーのバックエンド ネットワーク アダプタに接続します。
  4. このアダプタの [インターネット プロトコル (TCP/IP) のプロパティ] で、[IP アドレス]、[サブネット マスク] の値を入力します。[デフォルト ゲートウェイ] は空白のままにします。
  5. ビジネス デスクを実行するもう 1 台のサーバーに対して別の IP アドレスを使って、手順 1. ～ 4. を繰り返します。

これで、ビジネス デスクを実行するサーバー上のネットワーク構成は完了です。


ファイアウォールのポートを開く

外部ファイアウォール (配置をインターネットから分離する) 上で、受信ポート 80 と 443 を、それぞれ HTTP と HTTPS 用に開きます。ファイアウォールを使って Web 層をデータベース層から分離する場合は、受信ポート 1433 を SQL Server に対して開きます。さらに、このファイアウォール上で、Microsoft 分散トランザクション コーディネータ (MSDTC) に対して、ポート 135 および 5000 ～ 5030 を介した双方向 (受信と送信) のアクセスを可能にします。

内部ファイアウォール (配置を内部ネットワークから分離する) 上で、送信ポート 80 を HTTP 用に開いて、ビジネス デスクを実行する内部サーバーが、公開されたカタログおよびプロファイル スキーマをリセットできるようにします。


ドメインを設定する

ネットワーク接続を確立したら、Commerce Server 2002 をインストールする前に、サーバーをグループ化して 2 つの独立した信頼関係のないドメインを作成します。1 つは Web 層の非武装ゾーン (DMZ) で、もう 1 つはデータベース層のイントラネット ゾーンです。各ゾーンに、DNS サービスを提供するドメイン コントローラを構成する必要があります。

各ドメイン コントローラ上で、別のドメイン内の適切なサーバー (またはクラスタ) を認識するために、新しいホストを追加します。たとえば、DMZ ドメイン コントローラ上で、Web クラスタの仮想 IP アドレスおよび SQL Server クラスタのクラスタ IP アドレスを使って、2 つの新しいホストを追加できます。イントラネット ドメイン コントローラ上では、Web クラスタ内のサーバーごとに新しいホストを追加できます。

2 つのドメインを作成して適切なホストを追加した後、各サーバーをそれぞれのドメインに参加させます。たとえば、各 Web サーバーは DMZ ドメインのメンバである必要があり、各 SQL Server およびビジネス デスク サーバーはイントラネット ドメインのメンバである必要があります。サーバーをドメインに参加させる方法については、「Web サーバーを Active Directory ドメインに参加させる」を参照してください。適切なドメインに参加したすべてのサーバーが再起動すると、ドメインの構成は完了します。

Active Directory ディレクトリ サービスを実装してユーザー プロファイルやその他のデータを格納する場合は、これ以降のトピックで説明するいくつかの操作を完了する必要があります。

注

  • これ以降の手順を実行する前に、Active Directory について、およびサイト計画での Active Directory の役割について理解しておくことが大切です。Active Directory の詳細については、Windows 2000 のマニュアルを参照してください。

ここでは、次のトピックについて説明します。

  • Active Directory ドメインを作成する
  • Active Directory ドメイン コントローラを同期させる
  • 既存のドメインにドメイン コントローラを追加する
  • Web サーバーでのほかのサーバーのユーザー認証を可能にする

関連項目

プロファイル システムの計画

Active Directory 統合の計画


Active Directory ドメインを作成する

Commerce Server Web サイトでユーザー プロファイル情報の Active Directory ディレクトリ サービス認証を有効にする前に、サイトで Active Directory ドメインを設定する必要があります。1 組みの複製サーバーを専用に設けることをお勧めします。

これ以降の手順を実行するには、Active Directory の概念を理解していることと、既に Active Directory 構造の計画が立てられていることが不可欠です。Active Directory については、『Microsoft Windows 2000 Server Deployment Planning Guide』を参照してください。

新しいドメイン ツリーを作成して Active Directory ドメインを設定するには

既存のドメイン ツリーに新しい子ドメインを作成して Active Directory ドメインを設定するには

新しいドメイン ツリーを作成して Active Directory ドメインを設定するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「dcpromo」と入力し、[OK] をクリックします。
  3. [Active Directory のインストール ウィザード] の [次へ] をクリックします。
  4. [ドメイン コントローラの種類] ダイアログ ボックスで、[新しいドメインのドメイン コントローラ] を選択し、[次へ] をクリックします。
  5. [ツリーまたは子ドメインの作成] ダイアログ ボックスで、[新しいドメイン ツリーを作成] を選択し、[次へ] をクリックします。
  6. [フォレストの作成または追加] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ドメイン ツリーの新しいフォレストを作成] | これが組織の最初のドメインの場合、または作成する新しいドメイン ツリーを現在のフォレストから完全に独立させる場合に、このオプションを選択します。
    [既存のフォレストに新しいドメイン ツリーを配置] | 新しいドメイン ツリーのユーザーが既存のドメイン ツリーのリソースにアクセスできるようにし、またその逆方向のアクセスもできるようにする場合に、このオプションを選択します。
  7. [ドメイン ツリーの新しいフォレストを作成] を選択した場合は、[新しいドメイン名] ダイアログ ボックスの [新しいドメインの完全な DNS 名] ボックスに新しいドメインのフル ドメイン ネーム システム (DNS) 名を入力します。
  8. [NetBIOS ドメイン名] ダイアログ ボックスの [ドメイン NetBIOS 名] ボックスに、以前のバージョンの Microsoft Windows のユーザーがドメインの識別に使用する名前を入力します。ここでは、完全な DNS 名の短縮版である既定の名前をそのまま使うことをお勧めします。[次へ] をクリックします。
  9. [データベースとログの場所] ダイアログ ボックスでは、特に必要でない限り、既定の設定をそのまま使います。
  10. [共有システム ボリューム] ダイアログ ボックスでは、特に必要でない限り、既定の設定をそのまま使います。
  11. コンピュータに DNS がインストールされていない場合は、インストールするように求められます。[はい、DNS をこのコンピュータにインストールして構成します (推奨)] を選択し、[次へ] をクリックします。
  12. [アクセス許可] ダイアログ ボックスで、[Windows 2000 サーバーとのみ互換性があるアクセス許可] を選択し、[次へ] をクリックします。
  13. [ディレクトリ サービス復元モード Administrator パスワード] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [パスワード] | サーバーの管理者アカウントに割り当てるパスワードを入力します。
    [パスワードの確認入力] | 確認のためにもう一度パスワードを入力します。
  14. [概要] ダイアログ ボックスで、選択したオプションを点検し、Active Directory の構成が正しいかどうかを確認します。構成が正しければ [次へ] をクリックします。そうでない場合は [戻る] をクリックし、選択したオプションを変更します。

    構成した Active Directory がコンピュータにインストールされている最中であることを示す [Active Directory の構成中] ダイアログ ボックスが表示されます。

  15. [Active Directory のインストール ウィザードの完了] ダイアログ ボックスの [完了] をクリックします。

既存のドメイン ツリーに新しい子ドメインを作成して Active Directory ドメインを設定するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「dcpromo」と入力し、[OK] をクリックします。
  3. [Active Directory のインストール ウィザード] の [次へ] をクリックします。
  4. [ドメイン コントローラの種類] ダイアログ ボックスで、[新しいドメインのドメイン コントローラ] を選択し、[次へ] をクリックします。
  5. [ツリーまたは子ドメインの作成] ダイアログ ボックスで、[既存のドメイン ツリーに新しい子ドメインを作成] を選択し、[次へ] をクリックします。
  6. [子ドメインのインストール] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [親ドメイン] | 親ドメイン名を入力します。
    [子ドメイン] | 子ドメイン名を入力します。
  7. [NetBIOS ドメイン名] ダイアログ ボックスの [ドメイン NetBIOS 名] ボックスに、以前のバージョンの Microsoft Windows のユーザーがドメインの識別に使用する名前を入力します。ここでは、完全な DNS 名の短縮版である既定の名前をそのまま使うことをお勧めします。[次へ] をクリックします。
  8. [データベースとログの場所] ダイアログ ボックスでは、特に必要でない限り、既定の設定をそのまま使います。
  9. [共有システム ボリューム] ダイアログ ボックスでは、特に必要でない限り、既定の設定をそのまま使います。
  10. コンピュータに DNS がインストールされていない場合は、インストールするように求められます。[はい、DNS をこのコンピュータにインストールして構成します (推奨)] を選択し、[次へ] をクリックします。
  11. [アクセス許可] ダイアログ ボックスで、[Windows 2000 サーバーとのみ互換性があるアクセス許可] を選択し、[次へ] をクリックします。
    注意
    • 下位互換性を有効にすると、Microsoft Commerce Server 2002 でセキュリティ上の問題が起きる可能性があります。
  12. [ディレクトリ サービス復元モード Administrator パスワード] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [パスワード] | サーバーの管理者アカウントに割り当てるパスワードを入力します。
    [パスワードの確認入力] | 確認のためにもう一度パスワードを入力します。

    構成した Active Directory がコンピュータにインストールされている最中であることを示す [Active Directory の構成中] ダイアログ ボックスが表示されます。

  13. [Active Directory のインストール ウィザードの完了] ダイアログ ボックスの [完了] をクリックします。

関連項目

小規模サイトの構成

Web サーバーを Active Directory ドメインに参加させる


Active Directory ドメイン コントローラを同期させる

各ドメインには 1 台のドメイン コントローラが必要ですが、1 台だけのドメイン コントローラは単一障害点 (SPOF : Single Point of Failure) となる可能性があります。ドメインにドメイン コントローラを追加して、可用性を高めることができます。Active Directory ディレクトリ サービスは、双方向レプリケーション戦略を使って、1 つのドメイン内のドメイン コントローラ間の整合性を保証します。Active Directory ドメイン コントローラは、マルチマスタ レプリケーションをサポートして、各ドメイン コントローラ上のデータを同期させ、情報の整合性を保証します。

各ドメイン コントローラ上の Active Directory に格納されている情報は、そのドメイン コントローラがグローバル カタログ サーバーであるかどうかに関係なく、ドメイン データ、スキーマ データ、および構成データという 3 つのカテゴリに分類されます。これらの各カテゴリは、別々のディレクトリ パーティション ("名前付けコンテキスト" とも呼ばれる) に置かれます。ディレクトリ パーティションは、レプリケーションの単位です。ドメイン データ パーティションには、そのドメインのディレクトリ内にあるすべてのオブジェクトが含まれます。各ドメイン内のデータは、そのドメイン内のすべてのコントローラに複製されますが、ドメインを越えて複製されることはありません。

ドメイン コントローラがグローバル カタログ サーバーである場合は、ドメイン コントローラに、さらに別のカテゴリの情報が含まれます。それは、すべてのドメインのドメイン データ ディレクトリ パーティションの部分レプリカです。この部分レプリカには、すべてのドメイン内のすべてのオブジェクトのプロパティのサブセットが含まれます。部分レプリカは読み取り専用で、完全なレプリカは読み取り/書き込み可能です。

既定では、グローバル カタログに格納される属性の部分的なセットとは、検索操作で頻繁に使われる属性などです。これは、グローバル カタログの主要機能の 1 つが、ディレクトリに対してクエリを実行するクライアントをサポートすることであるためです。グローバル カタログを使って、完全なドメイン レプリケーションではなく、部分的なドメイン レプリケーションを実行すると、WAN トラフィックを減らすことができます。

次の図は、サイト内のレプリケーションを示しています。3 台のドメイン コントローラ (そのうち 1 台はグローバル カタログ) は、スキーマ データ、構成データ、およびすべてのディレクトリ オブジェクト (各オブジェクトの属性の完全なセットを含む) を複製します。

ドメイン コントローラ間のデータ レプリケーション

Active Directory は、各ドメイン コントローラへの少なくとも 2 つの接続を可能にするトポロジを確立しようとします。これにより、1 台のドメイン コントローラが利用できなくなっても、ディレクトリ情報はもう 1 つの接続を介してすべてのオンライン ドメイン コントローラに到達できます。また、Active Directory は、ネットワークの状態の変化を自動的に評価し、調整を行います。たとえば、サイトにドメイン コントローラが追加されると、その新しく追加されたドメイン コントローラを効率的に組み込むようにレプリケーション トポロジが調整されます。

サイト間のレプリケーション

WAN リンク上のサーバーとサーバー間およびクライアントとサーバー間のトラフィックを最適化する場合にも、Active Directory を使います。複数のサイトが存在する場合は、地理的な災害が発生した場合に冗長性を提供できます。複数のサイトをセットアップするためのヒント集は、次のとおりです。

  • 最新の Active Directory 情報に高速にアクセスする必要があるすべての地理的領域にサイトをセットアップする。
  • 各サイトに少なくとも 1 台のドメインコントローラを配置し、各サイト内の少なくとも 1 台のドメイン コントローラをグローバル カタログにする。独自のドメイン コントローラと少なくとも 1 つのグローバル カタログを持たないサイトは、ディレクトリ情報を他のサイトに依存するので、効率が悪くなります。


既存のドメインにドメイン コントローラを追加する

複数のドメイン コントローラを作成すると、Active Directory ディレクトリ サービスは頻繁に、しかも自動的にドメイン コントローラ間でディレクトリ情報を複製します。1 台のドメイン コントローラが利用できなくなっても、ほかのドメイン コントローラを通じてディレクトリ情報を参照できます。

既存のドメインにドメイン コントローラを追加するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「dcpromo」と入力し、[OK] をクリックします。
  3. [ドメイン コントローラの種類] ダイアログ ボックスで、[追加ドメイン コントローラ] を選択します。これにより、ドメイン コントローラが複製パートナーとして作成されます。
  4. [ネットワーク資格情報] ダイアログ ボックスで、ドメイン管理者のユーザー名、パスワード、およびドメイン名を入力し、[次へ] をクリックします。
  5. [追加ドメイン コントローラ] ダイアログ ボックスの [次へ] をクリックします。
  6. [データベースとログの場所] ダイアログ ボックスでは、既定値をそのまま使用し、[次へ] をクリックします。
  7. [共有システム ボリューム] ダイアログ ボックスの [次へ] をクリックします。
  8. [ディレクトリ サービス復元モード Administrator パスワード] ダイアログ ボックスでは、各ボックスを空白のままにして、[次へ] をクリックします。
  9. [概要] ダイアログ ボックスの [次へ] をクリックします。
  10. [Active Directory のインストール ウィザード] ダイアログ ボックスが表示されたら [完了] をクリックし、Windows を再起動します。


Web サーバーでのほかのサーバーのユーザー認証を可能にする

Microsoft Commerce Server 2002 では、ほかのサーバーにあるサービスにアクセスするユーザーを、Web サーバーで認証できるようにする必要があります。Microsoft Windows がこのようなアクセスを許可できるようにする必要があります。

注

  • 委任を有効にするには、Windows 2000 ドメインに適切な管理者特権が必要です。

Web サーバーでのほかのサーバーのクライアント認証を可能にするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャのコンソールで、[Active Directory ユーザーおよびコンピュータ] を展開します。次に、ドメイン ノードを右クリックし、[検索] をクリックします。または、コンピュータが属している組織単位がわかっている場合は、コンソール ツリーの組織単位を右クリックし、[検索] をクリックします。

    または、[検索] コマンドを使わずに、変更するコンピュータ アカウントを選択し、手順 9. に進むこともできます。

  3. [ユーザー、連絡先およびグループを検索します] ダイアログ ボックスの [検索] ボックスで、ボックスの一覧の [コンピュータ] をクリックします。
  4. [コンピュータ] タブの [コンピュータ名] ボックスに、検索対象のコンピュータ名を入力します。
  5. [場所] ボックスで、検索するドメインまたは組織単位をボックスの一覧から選択します。

    または、[参照] をクリックし、検索を開始するフォルダまたはドメインを選択します。

  6. (省略可能) [所有者] ボックスに、ドメイン内にコンピュータを所有するユーザーの名前を入力します。
  7. (省略可能) [役割] ボックスで、コンピュータの役割を一覧から選択します。ネットワーク上のすべてのコンピュータ、ワークステーションまたはサーバーになっているコンピュータ、あるいはドメイン コントローラになっているコンピュータを検索できます。
  8. [検索開始] をクリックします。

    目的のコンピュータの名前が [コンピュータを検索します] ダイアログ ボックスの下部にある一覧に表示されます。

  9. コンピュータの名前を右クリックし、[プロパティ] をクリックします。
  10. [<コンピュータ名> のプロパティ] ダイアログ ボックスで、[コンピュータを委任に対して信頼する] チェック ボックスをオンにし、[OK] をクリックします。


Web 層を構成する

ここでは、一般的な配置用に Web 層を構成する方法について説明します。ここでは、ベース プラットフォームのインストール、ネットワークの構成、および 2 つのドメインの設定が既に完了していることを前提としています。Web サーバーが、Web サイトおよび Commerce Server ランタイム コンポーネントのホストになるコンピュータであることを確認します。ビジネス ロジック層とデータベース層を分離するには、Web サーバーにデータベースが含まれないようにします。

ここでは、次のトピックについて説明します。

  • Web サーバーをクラスタ化する
  • Web サーバーを Active Directory ドメインに参加させる
  • IIS を構成する


Web サーバーをクラスタ化する

Commerce Server アプリケーションの可用性および拡張性を高めるために、Web サーバーをクラスタ化できます。Web サーバーをクラスタ化するには、ハードウェア負荷分散デバイスや Microsoft Windows 2000 ネットワーク負荷分散 (NLB) など、さまざまな負荷分散ソリューションを使うことができます。ここでは、NLB を使って Web サーバーをクラスタ化する方法について重点的に説明します。クラスタリングの詳細については、「クラスタリングの概念」を参照してください。

NLB を使う Web クラスタでは、各メンバが通常 2 つのネットワーク アダプタを持ちます。1 つはクライアントの要求を処理するためのフロントエンド アダプタで、もう 1 つは内部通信用 (クラスタ操作やデータベースへのアクセスなど) のバックエンド アダプタです。すべてのメンバが 1 つのクラスタ IP アドレス、つまり仮想 IP (VIP) アドレスを共有します。必要に応じて、各メンバは専用の IP (DIP) アドレスを持ちます。

次の図は、サンプル NLB 構成の IP アドレスを示しています。

サンプル NLB 構成の IP アドレス

1 つのサブネット上のすべてのメンバは、クラスタの VIP で受信するすべての要求を同時に検出します。NLB は、完全分散アルゴリズムを使って、その要求を処理するメンバを決定します。他のすべてのメンバはその要求を破棄します。

NLB は、フロントエンド アダプタを介して NLB 交換メッセージを送信することによって、クラスタの状態の変化 (メンバがオフラインまたはオンラインに設定された、追加された、削除されたなど) を自動的に検出します。クラスタの状態が変化していると、これらのメッセージ交換で矛盾が生じます。これらの矛盾が、構成可能な時間 (既定では 1 秒) を超えて持続すると、NLB は、クラスタの負荷を適切に分散するために、クラスタの現在の状態を調べるプロセスを開始します。NLB は、アクティブな残りのメンバの間で要求を自動的に再分散します。このプロセスにより、アクティブなメンバだけが要求を受信することが保証されます。

NLB をインストールするには、次のいずれかのプログラムを使います。

  • Microsoft Application Center 2000
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Datacenter Server

NLB をインストールするには

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [ネットワークとダイヤルアップ接続] をクリックします。
  2. NLB をインストールする [ローカル エリア接続] を右クリックし、[プロパティ] をクリックします。
  3. [ローカル エリア接続のプロパティ] ダイアログ ボックスの [チェック マークがオンになっているコンポーネントがこの接続で使用されています] ボックスで、[ネットワーク負荷分散] チェック ボックスをオンにして、[プロパティ] をクリックします。
  4. [ネットワーク負荷分散] ダイアログ ボックスの [プライマリ IP アドレス] ボックスに、クラスタ IP アドレス、つまり仮想 IP (VIP) アドレスを入力します。これは、クラスタのすべてのメンバによって共有される IP アドレスです。
  5. [サブネット マスク] ボックスに、対応するサブネット マスクを入力し、[OK] をクリックします。
  6. [OK] をクリックし、NLB のインストールを完了します。
  7. NLB クラスタの各メンバに対して、この手順を繰り返します。

NLB を構成する

ここでは、一般的な配置用に Web 層で NLB を構成する方法について説明します。

Web 層で NLB を構成するには

  1. フロントエンド アダプタ (インターネット上のクライアントとの通信用) のプロパティを開きます。
  2. [ネットワーク負荷分散] ダイアログ ボックスの [クラスタ パラメータ] タブで、[プライマリ IP アドレス] ボックスに、すべてのクラスタ メンバによって共有される仮想 IP アドレスを入力し、[サブネット マスク] ボックスと [フル インターネット名] ボックスに、適切な値を入力します。
  3. [ネットワーク付加分散のプロパティ] ダイアログ ボックスの [ホスト パラメータ] タブで、[優先順位 (一意のホスト ID)]、[専用 IP アドレス]、[サブネット マスク] のそれぞれのボックスに適切な値を入力します。
  4. [ネットワーク付加分散のプロパティ] ダイアログ ボックスの [ポートの規則] タブで、ポート 0 ～ 65535 の既定のポート規則を選択し、[削除] をクリックして、そのポート規則を削除します。
  5. 次の表の情報を使って HTTP 用のポート規則を作成し、[追加] をクリックします。
    フィールド | 入力
    [ポートの範囲] | 80 ～ 80
    [プロトコル] | 両方
    [アフィニティ] | なし
  6. 次の表の情報を使って HTTPS 用のポート規則を作成し、[追加] をクリックします。
    フィールド | 入力
    [ポートの範囲] | 443 ～ 443
    [プロトコル] | 両方
    [アフィニティ] | 単一
  7. [インターネット プロトコル (TCP/IP) のプロパティ] ダイアログ ボックスで、[詳細設定] をクリックします。
  8. [TCP/IP 詳細設定] ダイアログボックスの [IP 設定] タブの [IP アドレス] セクションで、[追加] をクリックし、[IP アドレス] ボックスにすべてのメンバによって共有される仮想 IP アドレスを入力します。次に、[サブネット マスク] ボックスにクラスタのサブネット マスクを入力します。
  9. サーバーを再起動します。
  10. 各 Web サーバーに対して別の専用 IP アドレスを使って、手順 1. ～ 9. を繰り返します。クラスタに追加する後続の Web サーバーごとに、[優先順位 (一意のホスト ID)] の値を 1 つずつ増やします。

関連項目

Web サーバーを接続する


Web サーバーを Active Directory ドメインに参加させる

Microsoft Active Directory ディレクトリ サービス ドメインを作成する場合は、Web サーバーがドメインに参加していることを確認してから Microsoft Commerce Server 2002 をインストールします。Active Directory の詳細については、｢ドメインを設定する」を参照してください。

注

  • コンピュータをドメインに参加させるには、ローカル コンピュータに管理者としてログオンし、有効なユーザー名とパスワードを使う必要があります。使用するユーザー名とパスワードがわからない場合は、システム管理者に問い合わせてください。

ドメインに参加するには

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックし、[システム] をクリックします。
  2. [システムのプロパティ] ダイアログ ボックスの [ネットワーク ID] タブで、[プロパティ] をクリックします。
  3. [識別の変更] ダイアログ ボックスの [次のメンバ] で [ドメイン] を選択します。参加するドメインの名前を入力し、[OK] をクリックします。

    コンピュータをドメインに参加させるためのユーザー名とパスワードの入力を求められます。

    注

    • Active Directory ドメインで長い名前が認識されるようにするには、ドメイン管理者が 16 バイト以上のドメイン ネーム システム (DNS) 名の登録を有効にする必要があります。
  4. ユーザー名とパスワードを入力したら、[OK] をクリックして [システムのプロパティ] ダイアログ ボックスを閉じます。

変更を適用するために、コンピュータを再起動するように求められます。

関連項目

ドメインを設定する


IIS を構成する

インターネット インフォメーション サービス (IIS) 5.0 は、Microsoft Windows 2000 Server および Microsoft Windows 2000 Advanced Server に既定でインストールされます。

Web サイトのセキュリティを強化するには、Commerce Server でインストールするサイトごとに、新しい IIS Web サイトを作成する必要があります。既定では、Commerce Server によりサイトが IIS の既定の Web サイトにインストールされます。Commerce Server サイト パッケージャを使ってサイトをアンパックするときに、既定の Web サイトではなく、自分で作成した IIS Web サイトにサイトを配置するように指定できます。

新しい IIS Web サイトを作成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. [インターネット インフォメーション サービス] で、新しい IIS サイトを作成するコンピュータの名前を右クリックします。次に [新規作成] をポイントし、[Web サイト] をクリックします。
  3. [Web サイトの作成ウィザード] ダイアログ ボックスの [次へ] をクリックします。
  4. [Web サイトの説明] ダイアログ ボックスの [説明] ボックスに、新しい Web サイトの名前を入力します。入力した名前は、サイト名として Internet Services Manager に表示されます。[次へ] をクリックします。
  5. [IP アドレスとポートの設定] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [この Web サイトで使用される IP アドレスを入力してください] | この Web サイトのインターネット プロトコル (IP) アドレスを入力するか、またはボックスの一覧から選択します。ボックスの一覧の [未使用の IP アドレスすべて] という値は、コンピュータに割り当てられているものの、特定のサイトに割り当てられていない IP アドレスを意味します。既定の Web サイトは、他のサイトに割り当てられていないすべての IP アドレスを使います。割り当てられていない IP アドレスを使用できるのは、1 つのサイトだけです。
    [Web サイトが使用する TCP ポート] (既定値 : 80) | この Web サイトのポート アドレスを入力します。
    [このサイトのホスト ヘッダー] (既定 : なし) | この Web サイトのホスト ヘッダー名を割り当てます。ホスト ヘッダーを使って 1 つの IP アドレスに別のサイトを追加する場合は、ホスト ヘッダー名を割り当てる必要があります。
  6. [次へ] をクリックします。
  7. [Web サイト ホーム ディレクトリ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [パス] | Windows ファイル システムにおけるサイトのルート ディレクトリの場所を入力します。
    [この Web サイトへの匿名アクセスを許可する] | リモート ユーザーがユーザー名とパスワードを入力せずにサイトに接続することを許可します。
  8. [次へ] をクリックします。
  9. [Web サイトのアクセス許可] ダイアログ ボックスで、前の手順で指定した Web サイトのホーム ディレクトリにアクセスするユーザーに割り当てるアクセス許可を指定し、[次へ] をクリックします。
  10. [完了] をクリックしてウィザードを終了します。

注

  • イントラネット上のコンピュータにドメイン ネーム システム (DNS) サービスをインストールすることをお勧めします。イントラネットが小規模な場合は、ネットワークのすべてのコンピュータで Hosts ファイルや Lmhosts ファイルを使用できます。DNS を使うと、ユーザーは IP アドレスの代わりにテキスト名を使ってサイトにアクセスできるようになります。
  • セキュリティ上の理由から、IIS で使用するドライブはすべて NTFS でフォーマットすることをお勧めします。

関連項目

Commerce Server と IIS


データベース層を構成する

データベース サーバーは、Commerce Server データベースおよびアプリケーション データベースのホストとして使うコンピュータです。また、Commerce Server ダイレクト メーラー リソースをインストールする場合は、そのホストにもなります。

ビジネス ロジック層とデータベース層を分離するには、データベース サーバーにアプリケーションや管理ツールが含まれないようにします。ただしダイレクト メーラーは例外で、小規模なサイト構成ではデータベース サーバーにダイレクト メーラーをインストールできます。

ここでは、一般的な配置用にデータベース層を構成する方法について説明します。ここでは、ベース プラットフォームのインストール、ネットワークの構成、および 2 つのドメインの設定が既に完了していることを前提としています。

ここでは、次のトピックについて説明します。

  • SQL Server をクラスタ化する
  • SQL Server 2000 をインストールする
  • Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする
  • SQL Server のレプリケーション機能を使う
  • SQL Server のログ配布を使う

関連項目

カタログを複製するように SQL パブリケーションを構成する


SQL Server をクラスタ化する

SQL Server データベースの可用性を高めるには、クラスタ サービスを使うサーバー クラスタにデータベースを格納することをお勧めします。クラスタ サービスを使うように構成されたサーバーは、共通データを共有し、1 つのシステムとして機能します。各サーバーは、クラスタ内のほかのサーバーから独立して動作させることができます。このため、1 台のサーバーで障害が発生しても、別のサーバーがその機能を引き継ぎます。

各ノードは、独自のメモリ、システム ディスク、オペレーティング システム、およびクラスタ内のリソースのサブセットを持ちます。あるノードに障害が発生すると、別のノードが、障害が発生したノードのリソースの所有権を得ます。クラスタ サービスは、そのリソースのネットワーク アドレスを新しいノードに登録し、クライアント トラフィックがその新しいサーバーにルートされるようにします。障害の発生したサーバーがオンラインに戻ると、リソースおよびクライアント要求を再分散するようにクラスタ サービスを構成できます。

サーバー クラスタでは、ニーズと予算に応じて、共有ディスクやミラー化されたディスクをはじめとするいくつかの手法を選択できます。また、サーバーをアクティブ/アクティブで構成し、各サーバーでアプリケーションを実行しながら、同時に他方のサーバーのバックアップとして機能させることや、アクティブ/パッシブで構成し、一方のサーバーをアプリケーションの実行用、もう一方のサーバーをバックアップ用にすることもできます。これらの決定を下す際は、サイトにおけるサーバー クラスタの役割を考慮する必要があります。次の表は、ディスク データを複数のサーバーで利用できるようにするための 3 つの手法を示しています。

手法 | 説明
共有ディスク | 高価な配線作業やスイッチが不要です。ただし、共有ディスク手法 (複数のサーバーが同じディスクを共有する) には、Distributed Lock Manager (DLM) と呼ばれるソフトウェアを使う特別仕様のアプリケーションが必要です。
ミラー ディスク | ミラー ディスク手法は、共有ディスク手法より柔軟な手法です。この手法は、独自のディスクを持ち、かつ "ミラー" ソフトウェアを使う各サーバーに基づいています。このソフトウェアは、すべての書き込みを、あるサーバーから別のサーバー上のデータのコピーに "ミラー" します。 この手法は、災害回復サイトのデータをプライマリ サーバーと同期させるために非常に役立ちます。
シェアド ナッシング | シェアド ナッシング アーキテクチャ構成では、各サーバーが独自のディスク リソースを所有します。シェアド ナッシング クラスタは、サーバーに障害が発生した場合に、ディスクの所有権を、あるサーバーから別のサーバーに移すことができるソフトウェアを持ちます。 この手法は、共有ディスク クラスタと同じレベルの可用性を提供します。また、DLM のような本質的なボトルネックがないため、高い拡張性があります。

サーバー クラスタを作成する前に、綿密な計画を立てる必要があります。互換性のあるディスク ドライブ、ネットワーク アダプタ、およびディスク コントローラを使ってクラスタ内のサーバーを構成する必要があります。これらの要件の詳細については、ハードウェア メーカーに問い合わせてください。サーバー クラスタの計画の詳細については、『Microsoft Windows 2000 Server Deployment Planning Guide』を参照してください。サーバー クラスタの計画を立てたら、Windows クラスタ サービスの構成ウィザードを使ってサーバー クラスタを作成および構成します。クラスタ サービスをインストールする方法については、「クラスタ サービスのインストール」を参照してください。

Windows クラスタリングを使って SQL データベースをクラスタ化します。詳細な例については、http://go.microsoft.com/fwlink/?LinkId=6687 から入手できる「Commerce Server 2000 High Availability Reference Architecture: Compaq-Microsoft High Availability Reference Architecture Validation」を参照してください。

クラスタにダイレクト メーラーおよび予測をインストールする方法については、「Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする」を参照してください。


SQL Server 2000 をインストールする

Microsoft SQL Server 2000 は、Windows クラスタ サービスとの高度な相互運用性を提供します。SQL Server 2000 以前、SQL クラスタリングは、各 SQL Server コンポーネントまたはクライアント コンポーネントと、対応するカーネル DLL との間に挿入された 3 つのリバインディング仮想 DLL を使っていました。SQL Server 2000 は、以前のバージョンに比べて次の点も改良されています。

  • クラスタリングの管理が容易です。クラスタリングは、SQL Instancing を使って実装されます。SQL Instancing では、仮想マッピング層が不要なので、クラスタ環境内の個々のコンポーネントを直接管理できます。
  • すべての SQL Server ツールがクラスタに対応しています。これにより、環境が非常に堅牢になります。現在これらのツールは統合されているので、複数のツールを組み合わせて使う必要はありません。以前は、クラスタの管理に複数のツールを使う必要があったので、ツールの組み合わせを誤ったり欠けているツールがあったりすると、クラスタに障害が発生することがありました。
  • クラスタには、最大 4 台のノードを含めることができます (以前のバージョンでは 2 台)。
  • Windows クラスタ サービス クラスタ内のノード上でローリング アップグレードを実行できます。SQL Server 2000 以前は、アップグレードを実行する場合にクラスタ全体をオフラインにする必要がありました。SQL Server 2000 では、アップグレードを実行するときに 1 台のノードだけをオフラインにし、他のノードをオンラインのままにしておくことができます。
  • フルテキスト検索がクラスタに対応しています。

重要

  • Commerce Server 2002 のデータ ウェアハウスは、OLAP クラスタリングをサポートしていません。

注

  • Commerce Server では、データ ウェアハウスおよび OLAP サーバー データベースで Microsoft SQL Server 7.0 および SQL Server 2000 を混在させることはできません。

データベース層に SQL Server 2000 をインストールするには、SQL Server クラスタ内の各サーバーに対して次の操作を行います。

データベース層に SQL Server 2000 をインストールするには

  1. SQL Server を実行するサーバーが外部記憶デバイス (または共有記憶装置) を共有する場合は、SCSI ケーブル (または必要な接続機器) を使ってそのデバイスをサーバーに接続し、構成します。この手順の詳細については、記憶デバイスに付属のマニュアルを参照してください。
  2. 「クラスタ サービスのインストール」の指示に従って、クラスタ サービスをインストールします。
  3. Microsoft 分散トランザクション コーディネータ (MSDTC) 用の新しいクラスタ ディスク リソースを作成します。
  4. comclust.exe コマンドを実行し、クラスタ上で動作するように MSDTC を構成します。
  5. 配置に適切なオプションを指定しながら SQL Server 2000 をインストールします。
  6. SQL Server クライアント ネットワーク ユーティリティを使って、名前付きパイプを無効にします。
  7. SQL Server 2000 Service Pack 2 をインストールします。

関連項目

SQL Server をクラスタ化する


Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする

可用性の高い、クラスタ化されたリソースとして、Commerce Server 2002 ダイレクト メーラー リソースをインストールして、Microsoft Cluster Server (MSCS) の機能を活用することができます。 MSCS クラスタ サーバーに Commerce Server リソースをインストールすると、高可用性のサポートが提供されます。たとえば、オペレーティング システムのフェールオーバー中に、クラスタ構成内の別のノードにフェールオーバーするように、ダイレクト メーラー リソースを構成できます。

ここでは、Microsoft Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールするための要件およびインストール手順について説明します。

注

  • Commerce Server 2002 では、クラスタ化されたリソースの自動的かつ電子的なソフトウェア配布もサイレント インストールも実行できません。

前提条件

DirectMailer リソースをクラスタ化されたリソースとしてインストールする前に、次の点に注意してください。

  • Microsoft Windows 2000 Advanced Server または Microsoft Windows 2000 Datacenter Server が必要です。

    注

    • Advanced Server クラスタは最大 2 台のクラスタ ノードを含むことができ、Datacenter Server クラスタは最大 4 台のクラスタ ノードを含むことができます。
  • Commerce Server 2002 リソースをインストールするノードに Microsoft クラスタ サービスをインストールし、構成します。クラスタ ノードをインストールする方法については、Windows 2000 ヘルプの「クラスタノードのインストールとアップグレード」を参照してください。
  • インストールする各リソースに、クラスタ ディスク リソースと、一意な IP アドレスおよびネットワーク名を割り当てます。ネットワーク セグメント上でまだ使われていない IP アドレスおよびネットワーク名を選択する必要があります。
  • クラスタ ノードが、SQL Server を実行しているサーバーを参照するようにします。

ダイレクト メーラー リソースをクラスタ化されたリソースとしてインストールするには

注

  • 各仮想サーバー グループは、1 つのサービスを表します。
  • ダイレクト メーラーでクラスタ セットアップをするときに、先頭に 0 が入力されていると、サービスが開始されません。詳細については、サポート技術情報の「Ping と FTP は最初にゼロのある IP アドレスを 8 進とする」を、次の Web ページで参照してください。
    http://go.microsoft.com/fwlink/?LinkId=5593
  1. Commerce Server のインストール後、MSCS クラスタ サーバーが存在する場合は、[仮想サーバーのリソース グループ] ダイアログ ボックスが表示されます。[仮想サーバーのリソース グループ] ダイアログ ボックスで、[はい] をクリックし、ダイレクト メーラーの仮想サーバーのリソース グループを作成します。次に、次の操作を行います。
    注
    • クラスタ内のノードにダイレクト メーラー リソースが既にインストールされている場合は、ダイアログ ボックス内のフィールドが淡色表示されます。セットアップ プログラムは、そのノードを "実行可能な所有者" としてダイレクト メーラー グループ内の各リソースに追加します。
    項目 | 操作
    [IP アドレス] | ダイレクト メーラー サービスのインターネット プロトコル (IP) アドレスを入力します。
    [ネットマスク] ダイレクト メーラー サービスのネットマスク アドレスを入力します。

    ネットマスク アドレスは、クラスタ グループの IP リソースで使われるネットマスクと一致している必要があります。ネットマスクについては、Windows 2000 ヘルプの「TCP/IP」を参照してくだい。
    [ネットワーク名] | このリソース グループのネットワーク名を入力します。
  2. [次へ] をクリックします。

    クラスタ上に Commerce DirectMailer クラスタ グループが作成されます。ネットワーク インターフェイス カード (NIC) によって構成されたドメイン ネーム システム (DNS) コンピュータに、仮想 IP アドレスとネットワーク名が登録されます。仮想 IP アドレスは、指定した NIC に割り当てられます。

    注
    • クラスタ化されたリソースを作成し、セットアップを完了した後で、そのリソースを別のリソース グループに移動できます。
  3. [インストール] をクリックして、インストール処理を開始します。
  4. [完了] をクリックして、セットアップ プログラムを終了します。

    [PuP Packages フォルダ] ウィンドウが開き、Blank ソリューション サイトが表示されます。

Commerce Server 2002 のインストールが完了した後で、コンピュータを再起動することをお勧めします。


SQL Server のレプリケーション機能を使う

データベース サーバーを同期させるには、SQL Server のレプリケーション機能を使います。SQL Server のレプリケーション オプションには、スナップショット レプリケーションやトランザクション レプリケーションなどがあります。アプリケーション ロジックでデータベース アクセスの性質が認識されている場合は、SQL Server のレプリケーション機能を使ってバッチ更新を行うことを検討する必要があります。

たとえば、Commerce Server 内の商品カタログ システムを主にバッチ モードで更新し、すべてのクライアント アクセスを読み取り専用にすることができます。もう 1 つの例は、既存のパイプライン コンポーネントから OrderForm オブジェクトを数回作成および変更する場合です。OrderForm オブジェクトは、税金や送料の計算などの操作のために、支払いの際にサイト内の他のパイプライン コンポーネントから頻繁に読み取られます。どちらの場合も、読み取り操作を読み取り専用サーバー群に向けて、少数のストアを更新することを検討できます。

また、SQL Server のレプリケーション機能を使って、地理的に分散されたサーバーを同期させることを検討することも必要です。

次の図は、データベース層で SQL Server をクラスタ化する方法を示しています。

SQL Server クラスタ

SQL Server を実行している読み取り専用サーバー グループのフロントにネットワーク負荷分散を配置すると、クラスタ全体に同じサーバー名を使うことができます。これを行うことによって、クラスタ内のサーバーをサービスから削除するときにユーザーに与える影響を最小限に抑えることができるという利点が得られます。また、オンライン トランザクション処理 (OLTP) 環境からクラスタへのレプリケーションを行うこともできます。トランザクションの一貫性を常に維持し、OLTP サーバーと負荷分散読み取り専用サーバーの間の遅延を最小限に抑える必要がある場合は、トランザクション レプリケーションを使います。

ネットワーク負荷分散クエリ クラスタのインストール環境では、次の点を考慮してください。

  • ネットワーク負荷分散のどのインストール環境にも、少なくとも 2 つの専用 IP アドレス (サーバーごとに 1 つ) と 1 つの仮想 IP アドレスが存在します。OLTP 環境とクラスタ間のレプリケーションを正常に機能させるには、レプリケーションを必ず専用 IP アドレス (または個々のサーバー名) に対して直接実行し、仮想 IP アドレスやクラスタ名に対して直接実行しないようにする必要があります。

    ネットワーク負荷分散を使ってクラスタの負荷を分散するので、仮想 IP アドレス (またはクラスタ名) に対して直接レプリケーションを実行すると、クラスタ内のサーバー間でトランザクションの矛盾が生じます。

  • この構成にはプッシュまたはプル メタファを使うことができますが、すべてのレプリケーションをクラスタ内のサーバーにプッシュすることをお勧めします。プッシュ メタファを使う理由は、中央で分散ジョブを管理でき、また、クラスタ内のいずれかのサーバーが応答を停止した場合に警告する手段を提供できることです。応答を停止したサーバーのレプリケーション ジョブは失敗します。
  • OLTP 環境とクラスタの間でレプリケーションが行われるので、クラスタ内のサーバー上のデータベースを読み取り/書き込みに設定することはできません。したがって、ログイン アクセス許可を使って、読み取り専用セキュリティを確保する必要があります。クラスタ内のサーバーへのすべてのクライアント接続は、仮想 IP アドレスを介して接続し、読み取り専用アクセス許可を持つ必要があります。また、読み取り専用クラスタ内のすべてのサーバーに同じログイン サブセットが含まれていなければなりません。

クラスタ内のサブスクライバにスナップショットを適用する場合は、サーバーを 1 台ずつクラスタから切断し、スナップショットを適用してから、クラスタに再接続することをお勧めします。これにより十分に高い可用性が得られ、クラスタ内のサーバー間のトランザクションの一貫性が確保されます。

関連項目

カタログ コンテンツを複製する


SQL Server のログ配布を使う

1 台の運用サーバーが、データへの読み取りおよび書き込みアクセスを提供する場合は、すべてのトランザクションをログに記録する必要があります。SQL Server のログ配布を使って、トランザクション ログ ファイルによって絶えず更新される非運用サーバーにファイルを転送できます。この方法は費用が低く管理も容易であり、中断時間をある程度までは許容できる環境では、可用性のための方法として使うことができます。

可用性が特に重要である場合は、この方法を、ここで説明する他の方法と組み合わせて使い、災害から回復することができます。ウォーム バックアップを使って、地理的に分散されたデータ センターを適度に同期させることもできます。実際、これは、サイトを災害から回復するために、同期されたデータベースを別のデータ センターに保存するための費用の低い方法です。

ネットワーク負荷分散と SQL Server のログ配布を組み合わせると、優れたウォーム フェールオーバー機能が提供されます。この場合、ネットワーク負荷分散を使って、少なくとも 2 台のサーバーに同じ IP アドレスを提供できます。これにより、SQL Server を実行しているプライマリ コンピュータに障害が発生した場合に、SQL Server を実行しているセカンダリ コンピュータに簡単にフェールオーバーできます。ネットワーク負荷分散クラスタを介して、クライアント アプリケーションを、SQL Server を実行している 1 台のコンピュータに向けます。障害が発生した場合、またはスケジュールに設定された中断時間になった場合は、ネットワーク負荷分散を使って、クラスタ内の SQL Server を実行している別のコンピュータにアクセスを転送できます。ログ配布は、ログの配布頻度に基づいて、サーバーを同期させます。

ここでは、次のトピックについて説明します。

再試行コード ロジック

ネットワーク負荷分散およびログ配布について検討すべき事項

再試行コード ロジック

ここでは、データベース接続の損失に対処するための再試行ロジックの例を示します。

  • 1 回再試行レベル
    If (getAuth == error)
   Sleep 1 second
   GetAuth again
Response.write ("Sorry, logins are disabled. Please e-mail questions to mailto:helpdesk.")
  • 2 回再試行レベル
    If (getcatalog == error)
   Sleep 1 second
   Getcatalog again
   If (failed again)
      Response.write ("I am retrying your query; please wait.")
      Sleep 10
      Getcatalog again
Response.write ("Sorry, our catalog is temporarily unavailable. Please e-mail questions to mailto:helpdesk.")

ネットワーク負荷分散およびログ配布について検討すべき事項

Microsoft SQL Server 2000 Enterprise Edition では、ログ配布を使って、トランザクション ログをあるデータベースから別のデータベースに定期的に配布できます。ソース データベースからトランザクション ログを継続的にバックアップし、そのログを出力先データベースにコピーおよび復元することによって、出力先データベースをソース データベースと同期させます。

ネットワーク負荷分散およびログ配布をセットアップする場合は、次の点を考慮してください。

  • ネットワーク負荷分散クラスタ内にログ配布をセットアップするには、SQL Server を実行しているサーバーどうしが、ネットワーク負荷分散ネットワークから分離されたプライベート ネットワークを介して通信する必要があります。プライベート ネットワークを作成するには、SQL Server を実行している両方のサーバーにセカンダリ ネットワーク インターフェイス カード (NIC) をインストールする必要があります。
  • 汎用名前付け規則 (UNC) サーバー名ではなく、ハード IP アドレスを使ってログ配布をセットアップする必要があります。あるいは、次のいずれかの操作を行います。
    • Lmhosts ファイルを作成し、IP アドレスを UNC サーバー名に解決します。Lmhosts ファイルは、IP アドレスを、ローカル サブネットの外側にある Windows 2000 ベースのネットワーク コンピュータの名前にマップするローカル テキスト ファイルです。詳細については、Microsoft Windows 2000 のマニュアルを参照してください。
    • プライベート ネットワーク上に WINS サーバーが存在する場合は、IP アドレスを Windows インターネット ネーム サービス (WINS) に登録して UNC 名を解決します。
  • SQL Server を実行しているサーバーをネットワーク負荷分散クラスタ内にセットアップすると、SQL Server を実行しているプライマリ コンピュータがクラスタに接続されます。次に、SQL Server のログ配布を実行しているセカンダリ コンピュータをクラスタから切断する必要があります。プライマリ サーバーがセカンダリ サーバーに対してデータの "ログ配布" を行うようにすることによって、これらのサーバーが同期されます。
  • SQL Server を実行しているサーバー間の通信を分離しない場合は、ネットワーク負荷分散がセカンダリ NIC カード上の IP アドレスに直接通信しようとするので、ループ トラフィックや他の問題が発生します。

SQL Server を実行しているプライマリ コンピュータに障害が発生した場合、ネットワーク負荷分散ではセカンダリ サーバーに自動的にフェールオーバーできます。ただし、ログ配布の頻度によっては、セカンダリ サーバーへのフェールオーバーを手動で行うことをお勧めします。たとえば、ログ配布を 5 分おきに実行するように設定している場合は、セカンダリ サーバーとの差は最大で 5 分となります (すべてのプロセスが正常に機能していると想定した場合)。システムを手動でフェールオーバーすると、最新のトランザクション ログを適用できるかどうかを確認できるので、より多くのデータを保存できます。つまり、フェールオーバーを自動で行った場合に失われる最大で 5 分間分のデータを保存できます

SQL Server のログ配布をインストールする場合は、ストアド プロシージャをインストールしてフェールオーバーを容易にします。ログ配布の詳細については、SQL Server Books Online を参照してください。


Commerce Server 2002 をインストールする

ここでは、Web クラスタおよびビジネス デスク クラスタに Microsoft Commerce Server 2002 をインストールする方法について説明します。

ここでは、次のトピックについて説明します。

  • ビジネス デスク クラスタに Commerce Server 2002 をインストールする
  • Web クラスタに Commerce Server 2002 をインストールする


ビジネス デスク クラスタに Commerce Server 2002 をインストールする

ビジネス デスク クラスタに Microsoft Commerce Server 2002 をインストールするには、次の操作を行います。

ビジネス デスク クラスタに Commerce Server 2002 をインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入します。
  2. SETUP が実行されます。

    [Commerce Server 2002 自動実行メニュー] が表示されます。

  3. [Commerce Server 2002 コンポーネント] をクリックします。
  4. [Commerce Server のセットアップ] ダイアログ ボックスで、Windows 2000 Service Pack 2 以降にリリースされた Windows 2000 修正プログラムをインストールするように指示するメッセージが表示されたら、[OK] をクリックします。
  5. [Commerce Server のセットアップ] ダイアログ ボックスで、.NET Framework をインストールするかどうかを確認するメッセージが表示されたら、[いいえ] をクリックします。

    Microsoft Commerce Server 2002 セットアップ ウィザードが起動します。

  6. [Microsoft Commerce Server 2002 のセットアップ ウィザードへようこそ] 画面で、[次へ] をクリックします。
  7. [CPU ライセンス] 画面で、[ライセンスを購入しています。] を選択し、[次へ] をクリックします。
  8. [前提条件] 画面で、[次へ] をクリックします。
  9. [使用許諾契約書] 画面で、[「使用許諾契約書」の条項に同意します] を選択し、[次へ] をクリックします。
  10. [ユーザー情報] 画面の [ユーザー名]、[組織]、[プロダクト キー] のそれぞれのボックスに適切な値を入力し、[次へ] をクリックします。
  11. [インストール先フォルダ] 画面で、インストール フォルダを変更する場合は [変更] をクリックして別のフォルダを指定します。それ以外の場合は、既定のインストール フォルダをそのまま使います。[次へ] をクリックします。
  12. [セットアップの種類] 画面で [カスタム] を選択し、[次へ] をクリックします。
  13. [カスタム セットアップ] 画面で、[Commerce Server コア] を展開し、[ランタイム オブジェクト] を展開します。
  14. [分析およびデータ ウェアハウス]、[予測サービス]、および [ダイレクト メーラー サービス] チェック ボックスがオフであることを確認し、[次へ] をクリックします。
  15. [管理データベースの構成] 画面で、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバー クラスタのクラスタ名を入力します。SQL Server によって参照されるクラスタ名を使います。クラスタ サービスによって参照されるクラスタ名は使うことができません。
    [統合セキュリティを使用] Windows ユーザー アカウントが SQL Server 上の管理データベースに対する認証を受けるようにする場合は、このチェック ボックスをオンにします。

    Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | 管理データベースへの接続時に SQL Server 認証を使用する場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] | 管理データベースのアクセスに使用する SQL Server ログイン名を入力します。OLAP のエラーを回避するには、特殊文字 (#、@、%、' など) を使わないようにしてください。
    [SQL Server ログイン パスワード] | SQL Server ログイン名に対応するパスワードを入力します。OLAP のエラーを回避するには、特殊文字 (#、@、%、' など) を使わないようにしてください。
  16. [次へ] をクリックします。
  17. 新しい管理データベースが作成されることを示すメッセージがダイアログ ボックスに表示されたら、[OK] をクリックします。
  18. [サービス アカウント] 画面で、[各サービスに同じアカウントを使用し、すべてのサービスを自動開始に設定する] を選択します。[サービスの設定] セクションで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名を入力します。
    [パスワード] | Windows アカウントのパスワードを入力します。
    [ドメイン] | Windows アカウントのドメインを入力します。
  19. [次へ] をクリックします。
  20. [インストールの開始] 画面の [インストール] をクリックします。

    インストール処理が開始されます。

  21. [Microsoft Commerce Server 2002 のセットアップ ウィザードの完了] 画面で、[完了] をクリックします。
  22. サーバーを再起動します。
  23. ビジネス デスクを実行するセカンダリ サーバーに対して、手順 1. ～ 22. を繰り返します。

両方のサーバーが再起動すると、ビジネス デスク クラスタへの Commerce Server 2002 のインストールは完了します。


Web クラスタに Commerce Server 2002 をインストールする

Web クラスタに Commerce Server 2002 をインストールするには、次の操作を行います。

Web クラスタに Commerce Server 2002 をインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入します。
  2. SETUP が実行されます。

    [Commerce Server 2002 自動実行メニュー] が表示されます。

  3. [Commerce Server 2002 コンポーネント] をクリックします。
  4. [Commerce Server のセットアップ] ダイアログ ボックスで、Microsoft Windows 2000 Service Pack 2 以降にリリースされた Windows 2000 修正プログラムをインストールするように指示するメッセージが表示されたら、[OK] をクリックします。
  5. [Commerce Server のセットアップ] ダイアログ ボックスで、.NET Framework をインストールするかどうかを確認するメッセージが表示されたら、[いいえ] をクリックします。

    Microsoft Commerce Server 2002 セットアップ ウィザードが起動します。

  6. [Microsoft Commerce Server 2002 のセットアップ ウィザードへようこそ] 画面で、[次へ] をクリックします。
  7. [CPU ライセンス] 画面で、[ライセンスを購入しています。] を選択し、[次へ] をクリックします。
  8. [前提条件] 画面で、[次へ] をクリックします。
  9. [使用許諾契約書] 画面で、[「使用許諾契約書」の条項に同意します] を選択し、[次へ] をクリックします。
  10. [ユーザー情報] 画面の [ユーザー名]、[組織]、[プロダクト キー] のそれぞれのボックスに適切な値を入力し、[次へ] をクリックします。
  11. [インストール先フォルダ] 画面で、インストール フォルダを変更する場合は [変更] をクリックして別のフォルダを指定します。それ以外の場合は、既定のインストール フォルダをそのまま使います。[次へ] をクリックします。
  12. [セットアップの種類] 画面で [Web サーバー] を選択し、[次へ] をクリックします。
  13. [管理データベースの構成] 画面で、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバー クラスタのクラスタ名を入力します。SQL Server によって参照されるクラスタ名を使います。クラスタ サービスによって参照されるクラスタ名は使うことができません。
    [統合セキュリティを使用] Windows ユーザー アカウントが SQL Server 上の管理データベースに対する認証を受けるようにする場合は、このチェック ボックスをオンにします。

    Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | 管理データベースへの接続時に SQL Server 認証を使用する場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] | 管理データベースのアクセスに使用する SQL Server ログイン名を入力します。OLAP のエラーを回避するには、特殊文字 (#、@、%、' など) を使わないようにしてください。
    [SQL Server ログイン パスワード] | SQL Server ログイン名に対応するパスワードを入力します。OLAP のエラーを回避するには、特殊文字 (#、@、%、' など) を使わないようにしてください。
  14. [次へ] をクリックします。
  15. 新しい管理データベースが作成されることを示すメッセージがダイアログ ボックスに表示されたら、[OK] をクリックします。
  16. [サービス アカウント] 画面では、[各サービスに同じアカウントを使用し、すべてのサービスを自動開始に設定する] チェック ボックスをオンにします。[サービスの設定] セクションで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名を入力します。
    [パスワード] | Windows アカウントのパスワードを入力します。
    [ドメイン] | Windows アカウントのドメインを入力します。
  17. [次へ] をクリックします。
  18. [インストールの開始] 画面の [インストール] をクリックします。

    インストール処理が開始されます。

  19. [Microsoft Commerce Server 2002 のセットアップ ウィザードの完了] 画面で、[完了] をクリックします。
  20. サーバーを再起動します。
  21. Web クラスタ内の各サーバーに対して、手順 1. ～ 20. を繰り返します。

各サーバーが再起動すると、Web クラスタへの Commerce Server 2002 のインストールは完了します。


サイトをアンパックする

サイトをアンパックするには、各サーバー上で次の操作を行います。

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] をクリックします。
  3. [Commerce サイト] を右クリックし、[新規作成] をポイントします。次に、[サイトのアンパック] をクリックします。
  4. [サイトのアンパック元] ダイアログ ボックスで、アンパックするパッケージ ファイルが含まれているフォルダを開き、パッケージ ファイルを選択して [開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  5. [アンパック] ダイアログ ボックスで [標準] を選択し、[次へ] をクリックします。
  6. [標準] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サイト名] サイトの名前を変更する場合は、サイト名を入力します。サイト名に特殊文字 (#、@、%、' など) を使わないでください。特殊文字が含まれるサイト名は、SQL Server データベースで認識されない可能性があります。詳細については、SQL Server Books Online を参照してください。

    サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。

    サイト名は最大 127 文字まで入力できます。
    [IIS Web サイト] アプリケーションをインストールする IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [SQL Server コンピュータ] | サイトのデータベースを格納する、SQL Server を実行しているコンピュータの名前を入力します。
    [統合セキュリティを使用] 統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] データベースの SQL Server ログイン名を入力します。

    注

    • セキュリティ上の理由から、管理データベースへのアクセスに sa ログインは使用しないでください。管理データベースの作成後にログイン情報を変更するには、SQL Server Enterprise Manager を使用します。
    [SQL Server ログイン パスワード] | データベースにアクセスするための SQL Server ログイン パスワードを入力します。
  7. [次へ] をクリックします。
  8. インストール処理中にデータ ウェアハウス リソースがインストールされた場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] | SQL 分析オンライン分析処理 (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析データベースの名前を入力します。
  9. [OK] をクリックします。
  10. インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。プロファイル リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [プロファイル スキーマの定義] | インポートするプロファイル スキーマの定義を指定します。
    [サイト用語の定義] | インポートするサイト用語の定義を指定します。
    [式の定義] | インポートする式の定義を指定します。
  11. [次へ] をクリックします。
  12. インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。プロファイル リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [プロファイル システムの接続文字列] | OLEDB データ ストアにインポートするファイルを指定します。他のデータベースを指定するには、[変更] をクリックします。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] インポートするスキーマ定義スクリプトを指定します。

    サイト パッケージャは、既定のスキーマ定義のスクリプトを使います。UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] | インポートするデータ生成スクリプトを指定します。
  13. [OK] をクリックします。
    注
    • Windows 統合セキュリティを使用する場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認します。
  14. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  15. [終了] をクリックし、サイト パッケージャを閉じます。

これで、サイトのアンパック処理は完了です。このサイトの Commerce Server ビジネス デスクにアクセスする方法については、「ビジネス デスク クライアントをインストールする」を参照してください。


ビジネス デスク クライアントをインストールする

Commerce Server ビジネス デスク クライアントをインストールする前に、クライアント コンピュータに次のソフトウェアをインストールする必要があります。

  • Microsoft Windows 98、Microsoft Windows NT Workstation 4.0、Microsoft Windows NT Server 4.0、Microsoft Windows Millennium Edition、Microsoft Windows NT 4.0、Microsoft Windows 2000 Professional、Microsoft Windows 2000 Server、または Microsoft Windows 2000 Advanced Server Service Pack 1 以降。
  • Microsoft Internet Explorer 5.5 Service Pack 2 以降。アプリケーションとクライアントが同じコンピュータ上に存在する場合でも、ビジネス デスク アプリケーションにアクセスするには Internet Explorer 5.5 Service Pack 2 以降をインストールする必要があります。
  • Microsoft Office XP Web コンポーネントビジネス デスク ユーザーが HTTPS 経由で Analysis Services を使うためには、Commerce Server が Microsoft SQL Server 2000 Enterprise Edition を使う必要があります。HTTP 接続で Microsoft SQL Server 2000 Standard Edition に接続することはできません。

    Microsoft Office XP Web コンポーネントには、分析で動的レポートを実行するために必要なピボットテーブル サービスが含まれています。Microsoft Office XP、Microsoft Excel XP、Access XP、または Microsoft FrontPage XP をインストールすると、Microsoft Office XP Web コンポーネントが自動的にインストールされます。

  • ビジネス デスク ユーザーが HTTPS 経由で動的レポートを実行できるようにする方法の詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

ビジネス デスクにアクセスするどのコンピュータにもビジネス デスク クライアントをインストールします。ビジネス デスク クライアントをインストールするには、次の操作を行います。

ビジネス デスク クライアントをインストールするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Internet Explorer] をクリックします。
  2. インストールされているビジネス デスクの URL (たとえば、http://<コンピュータ名>/<サイト名>Bizdesk) を [アドレス] ボックスに入力し、Enter キーを押します。
  3. [フォルダの参照] ダイアログ ボックスで、HTML アプリケーション (HTA) ファイルの格納場所を指定します。既定のフォルダをそのまま使用するか、他のフォルダを選択し、[OK] をクリックします。

    ビジネス デスク クライアントのセットアップ プログラムが起動します。このプログラムには、Microsoft ActiveX コントロールが必要です。このコントロールがインストールされていない場合は、オンラインの指示に従ってインストールします。

  4. ビジネス デスクのインストールが完了したら、Internet Explorer を終了します。ビジネス デスクのショートカット アイコンが、デスクトップと [スタート] メニューに配置されます。
  5. ビジネス デスクを起動するには、デスクトップ上の [ビジネス デスク] アイコンをダブルクリックするか、または [スタート] ボタンをクリックして [ビジネス デスク] をクリックします。


ビジネス分析スタンドアロン機能をインストールする

Commerce Server 2002 では、ビジネス分析機能をスタンドアロン機能としてインストールして使うことができます。データ ウェアハウス構成ウィザード (DWC) を使うと、データ ウェアハウスの分散インストールを構成し、Commerce 以外のアプリケーションと Web サーバーを構成することができます。Commerce 以外のアプリケーションと Web サーバーを追加することによって、Web サーバーのログ ファイルをデータ ウェアハウスにインポートできます。

次の手順は、ビジネス分析インストール オプションを使うコンピュータ 1 台に Commerce Server をインストールする方法を示しています。先へ進む前に、他のすべてのアプリケーションを終了する必要があります。

注

  • データ ウェアハウスおよび Commerce Server ビジネス デスク分析モジュール用の Blank ソリューション サイトをアンパックしてください。
  • ビジネス分析オプションを使って Commerce Server をインストールできるのは、1 つのサイトだけです。ビジネス分析オプションは、後続のサイトにはインストールできません。
  • 注 Commerce Server 2000 Service Pack 1 がインストールされているコンピュータに Commerce Server 2002 をインストールする場合、<ドライブ名>:\<commerce_server_root>\sp1 フォルダに Service Pack 1 ファイルが含まれています。これらのファイルは問題なく削除されます。

ここでは、次のトピックについて説明します。

  • ビジネス分析オプションを使って Commerce Server をインストールする
  • データ ウェアハウスの分散インストールを構成する


ビジネス分析オプションを使って Commerce Server をインストールする

データ ウェアハウスの構成を完了した後で、その構成に対して追加の変更がある場合、その変更は Commerce Server マネージャまたは Commerce Server サイト パッケージャを使って手動で行う必要があります。

ビジネス分析オプションを使って Commerce Server をインストールするには

注

  • URL のコンピュータ名の部分にも、また SQL Server の名前を入力するように求められたときにも、"localhost" を使わないでください。
  • リモート コンピュータにビジネス分析機能をインストールする場合は、ローカル コンピュータにインターネット インフォメーション サービス (IIS) 5.0 をインストールする必要があります。
  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入します。Commerce Server 2002 のセットアップ プログラムが起動します。

    相手先ブランド供給 (OEM) によってコンピュータに Commerce Server がプレインストールされている場合は、そのコンピュータの Microsoft Commerce Server 2002 フォルダに移動し、Setup.exe をダブルクリックして、Commerce Server 2002 セットアップ プログラムを起動します。

  2. Commerce Server をインストールするリンクをクリックし、オンラインの指示に従います。
  3. [ユーザー情報] 画面に 25 文字のプロダクト キーを入力し、[次へ] をクリックします。
  4. [インストール先フォルダ] 画面で、既定のインストール フォルダをそのまま使用するか、[変更] をクリックして別のフォルダを指定して、[次へ] をクリックします。
  5. [セットアップの種類] 画面で [ビジネス分析] を選択し、[次へ] をクリックします。
  6. [管理データベースの構成] 画面で、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | 管理データベースが置かれている SQL Server コンピュータ名を入力します。SQL Server がローカルにインストールされている場合は、ローカル コンピュータ名が表示されます。
    [Windows 統合セキュリティを使用] 管理データベースへの接続時に Windows 統合セキュリティを使う場合は、このチェック ボックスをオンにします。

    Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | 管理データベースへの接続時に SQL Server 認証を使用する場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] 管理データベースのユーザー アカウントを入力します。

    注

    • セキュリティのため、管理データベースへのアクセスに sa ログインは使わないでください。管理データベースの作成後にログイン情報を変更するには、SQL Server Enterprise Manager を使用します。
    [SQL Server ログイン パスワード] | 管理データベースのログイン パスワードを入力します。

    注

    • 管理データベースを作成する場合は、[SQL Server ログイン名] ボックスと [SQL Server ログイン パスワード] ボックスに、新しいデータベースを作成するために必要なアクセス許可を master データベース上に持つ SQL Server ログインを入力します。master データベースの SQL Server にログインするアクセス許可を表示するには、Enterprise Manager を使用します。
    • 管理データベースが既に存在する場合は、[SQL Server ログイン名] ボックスと [SQL Server ログイン パスワード] ボックスに、既存の管理データベースに対するフル アクセス許可を持つ SQL Server ログインを入力します。
  7. [次へ] をクリックします。
  8. [サービス アカウント] 画面で、このコンピュータで Commerce Server サービスを実行する Windows アカウントのユーザー名、パスワード、およびドメイン名を入力し、[次へ] をクリックします。

    Commerce のセットアップ時に、指定したアカウントに対して "サービスとしてログオン" の権利が自動的に与えられます。Commerce Server 2002 の、ダイレクト メーラー、リスト マネージャおよびイベント ログでは、セキュリティとネットワーク アクセスのためにアカウントが必要です。

    注

    • Commerce Server サービスを実行するアカウントは、恒久的なアカウントにしてください。後でこのアカウントが無効になった場合、またはパスワードが変更された場合には、Commerce Server は機能を停止します。サービスのアカウントまたはパスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。
  9. [インストール] をクリックすると、インストール処理が開始されます。

インストールが完了すると、[データ ウェアハウス構成ウィザード] ダイアログ ボックスが表示されます。次の操作を行って、データ ウェアハウスの分散インストールを構成します。

関連項目

データ ウェアハウスの分散インストールを構成する


データ ウェアハウスの分散インストールを構成する

データ ウェアハウス構成ウィザード (DWC) を使うと、データ ウェアハウスの分散インストールを構成し、Commerce 以外のアプリケーションと Web サーバーを構成することができます。

サイトとデータ ウェアハウスのグローバル リソースを作成するには

サイトに非 Commerce のアプリケーションを追加するには

アプリケーションに非 Commerce の Web サーバーを追加するには

サイトとデータ ウェアハウスのグローバル リソースを作成するには

  1. [データ ウェアハウス構成ウィザード] ダイアログ ボックスの [Commerce Server サイト] ボックスに、作成するサイトの名前を入力します。
  2. [データ ウェアハウス] ボックスに、作成するデータ ウェアハウスのグローバル リソースの名前を入力します。

サイトに非 Commerce のアプリケーションを追加するには

  1. [Commerce 以外のアプリケーション] セクションで、[構成] をクリックします。

    [Commerce 以外のアプリケーションと Web サーバー] ダイアログ ボックスが表示されます。このダイアログ ボックスで、複数の Commerce 以外のアプリケーションと、それらのアプリケーションの複数のサーバーを作成できます。

  2. [Commerce 以外のアプリケーションと Web サーバー] ダイアログ ボックスの [Commerce 以外のアプリケーション] セクションで、[新規] をクリックします。
  3. [Commerce 以外のアプリケーションの新規作成] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [このアプリケーションの Web サーバーは IIS を実行している] Commerce 以外のアプリケーションのサーバーがインターネット インフォメーション サービス (IIS) 5.0 を実行している場合は、このチェック ボックスをオンにします。

    注

    • 非 Commerce アプリケーションに、IIS および非 IIS の両方のサーバーを置くことはできません。
    [保護なしのホスト名] アプリケーションの保護なしのリンクで使用するドメイン ネーム システム (DNS) のドメイン名を入力します。

    注意

    • 80 以外のポート番号を使用している場合は、サーバー名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:81」とします。ポート番号の表示や編集を行うには、[<ホスト名> のプロパティ] ダイアログ ボックスの [ID] タブで、[TCP ポート] ボックスを参照します。
    [IIS アプリケーション パス] または [アプリケーション パス] アプリケーションのパスを入力します。たとえば、www.microsoft.com/msn というアプリケーションの場合、IIS アプリケーション パスは /msn になります。

    注意

    • このプロパティの値を変更した場合は、変更後の値に合わせて、Web サーバー上のファイルの場所を変更する必要があります。また、IIS の設定も、変更後のアプリケーションに合わせる必要があります。
    [HTTPS を有効にする] | アプリケーションで保護付きのリンクが使用されている場合は、このプロパティを選択します。
    [保護付きのホスト名] アプリケーションの保護付きのリンクで使用する DNS ドメイン名を入力します。

    注意

    • 443 以外のポート番号を使用している場合は、サーバー名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:441」とします。Secure Socket Layer (SSL) ポート番号の表示や編集を行うには、[<ホスト名> のプロパティ] ダイアログ ボックスの [ID] タブで、[SSL ポート] ボックスを参照します。
  4. [Web サーバー] タブで、次の操作を行います。
    項目 | 操作
    [IIS Web サイト] | IIS Web サイトの名前 (Default Web Site など) を入力します。
    [ローカル ドメイン] | ローカル ドメインの名前 (microsoft.com など) を入力します。
  5. [OK] をクリックします。

アプリケーションに非 Commerce の Web サーバーを追加するには

  1. Web サーバーの追加先となる Commerce 以外のアプリケーションの名前を選択します。
  2. [Commerce 以外のアプリケーションと Web サーバー] ダイアログ ボックスの [選択したアプリケーション用の Commerce 以外の Web サーバー] セクションで、[新規] をクリックします。

    注

    • 非 Commerce アプリケーションを 1 つも作成していない場合には、[新規] は無効になっています。
  3. [Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ID] タブで、[サーバー名] ボックスに Commerce 以外の Web サーバーのホストとなるコンピュータの名前を入力します。
  4. [ID] ボックスの [追加] をクリックします。
  5. [接続情報] ダイアログ ボックスで、Commerce 以外の Web サーバーに関する値を、[IP アドレス]、[TCP ポート]、[ホスト ヘッダー名] のそれぞれのボックスに入力して、[OK] をクリックします。
  6. アプリケーションで保護付きの HTTP ホスト (SSL) を使っている場合は、[SSL ID] ボックスの [追加] をクリックします。
  7. [接続情報] ダイアログ ボックスで、Commerce 以外の Web サーバーに関する値を、[IP アドレス]、[SSL ポート] のそれぞれのボックスに入力して、[OK] をクリックします。
  8. [Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ログ ファイル] タブで、次の操作を行います。
    項目 | 操作
    [新しいログ期間] | Web サイトが、ログ ファイルへの書き込みを始めてから Web サーバーが新しいログ ファイルを作成するまでの間隔を指定します。
    [ログ ファイル マスク] | ログ ファイルの交換を指定します。ログ ファイルの交換とは、Web サイトが、ログ ファイルを書き込み始めてから Web サーバーが新しいログ ファイルを作成するまでの間隔を示します。
    [ログ ファイルのディレクトリ] IIS Web サイトで発生したイベントが記録されるログ ファイルのパスを入力します。たとえば、「C:\Winnt\System32\LogFiles\Log1」とします。

    Web のログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、Web サーバー ログ インポート データ変換サービス (DTS) タスクを実行する前に、ここでディレクトリを指定しておいてください。
    [ログ ファイルのコード ページ] | ログ ファイルのコード ページを指定します。
    [URL エンコーディングのコード ページ] | すべての URL で使われるコード ページを指定します。
  9. [OK] をクリックします。
  10. Commerce 以外のアプリケーションと Web サーバーを作成したら、[閉じる] をクリックします。
  11. [レポート作成サーバー] セクションで、[構成] をクリックします。
  12. [分析/レポート作成サーバー] ダイアログ ボックスで、分析およびレポート作成管理モジュールをホストするコンピュータの名前を入力します。SQL Server がローカルにインストールされている場合は、ローカル コンピュータ名が表示されます。
  13. [OK] をクリックします。

    注

    • サイトの名前および場所を変更することはできません。また、Commerce Server と Commerce Server ビジネス デスクがこのコンピュータにインストールされていなければなりません。
  14. [データベース サーバー] セクションで [構成] をクリックし、データ ウェアハウスのリレーショナル データベースをホストするコンピュータを構成します。
  15. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプを開いてください。
  16. [分析サーバー] セクションで、[構成] をクリックし、データ ウェアハウスの OLAP データベースをホストするコンピュータを構成します。
  17. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。
  18. [次へ] をクリックし、コンピュータを再起動するかどうかを確認するメッセージが表示されたら、[はい] をクリックします。

DW.pup パッケージがアンパックされます。このパッケージには、データ ウェアハウス リソースおよびビジネス デスクの分析モジュールが含まれています。


サンプルの構成のインストール

Commerce Server 2002 の配置についてよりよく理解するために、配置構成を変えて実験することができます。ここには、Commerce Server 2002 を配置するための構成のサンプルがあります。

ここでは、次のトピックについて説明します。

  • クラスタ構成の 4 台のコンピュータにインストールする 2 つの Web サーバー クラスタおよび 2 つのデータベース サーバー クラスタに Commerce Server 2002 をインストールする方法について説明します。
  • 非クラスタ構成の 3 台のコンピュータにインストールする Web サーバー、データ ウェアハウス データベース サーバー、および管理データベース サーバーに Commerce Server 2002 をインストールする方法について説明します。
  • サンプルの Supplier サイトをインストールする B2B サイトのチュートリアル用の 2 つのサーバーをインストールして構成する方法について説明します。


クラスタ構成の 4 台のコンピュータにインストールする

ここでは、次に示す 4 台のコンピュータ構成で Commerce Server 2002 をインストールし、アプリケーションをアンパックする方法について説明します。

  • ネットワーク負荷分散 (NLB) クラスタ内の 2 台の Web サーバー。これらのサーバーには、Commerce Server 管理ツールも含まれます。NLB のインストールと構成については、「Web サーバーをクラスタ化する」を参照してください。
  • クラスタ サービスを使用するよう構成された 2 台の SQL Server コンピュータ。これらのサーバーは、共有クラスタ名を使って参照されます。クラスタ サービスのインストールについては、「クラスタ サービスのインストール」を参照してください。

この構成を示す図については「小規模サイトの構成」を参照してください。

手順 1 : Web サーバーに Commerce Server をインストールするには

手順 2 : SQL Server クラスタに Commerce Server をインストールするには

手順 3 : Web サイトおよびアプリケーションをアンパックするには

手順 1 : Web サーバーに Commerce Server をインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスで、[管理ツール]、[Commerce サイト パッケージ]、および [オンライン ドキュメント] のオプションを選択します。必要に応じて、[予測サービス] を選択することもできます。
  4. [分析およびデータ ウェアハウス] と [ダイレクト メーラー サービス] が選択されていないことを確認します (選択されて "いない" ことを示す [X] が各チェック ボックスに表示されます)。
  5. [次へ] をクリックします。
  6. [管理データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバーのコンピュータ名を入力します。
    [SQL Server ログイン名] | このコンピュータの SQL Server ログイン名を入力します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。オンライン分析処理 (OLAP) のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | このログイン名に対応する SQL Server パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。

    管理データベースは SQL Server クラスタに配置されるので、ここでこのコンピュータがデータベースを参照するように設定します。

  7. [次へ] をクリックします。
  8. [サービス アカウント] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名を入力します。
    [パスワード] | Windows アカウントのパスワードを入力します。
    [ドメイン] | Windows アカウントのドメインを入力します。

    次の図は、[サービス アカウント] ダイアログ ボックスです。

    [サービス アカウント] ダイアログ ボックス

  9. [次へ] をクリックします。
  10. [インストールの開始] ダイアログ ボックスの [インストール] をクリックします。

    管理ツールおよびサイト パッケージがインストールされます。

  11. [完了] をクリックして、セットアップ プログラムを終了します。

手順 2 : SQL Server クラスタに Commerce Server をインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスで、[分析およびデータ ウェアハウス] を選択します。
  4. 他のオプションの選択がすべて解除されていることを確認します (選択されて "いない" ことを示す [X] が各チェック ボックスに表示されます)。
  5. [次へ] をクリックします。
  6. [管理データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | このサーバー クラスタのクラスタ名を入力します。
    [SQL Server ログイン名] | 管理データベースのアクセスに使用する SQL Server ログイン名を入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | SQL Server ログイン名に対応するパスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
  7. [次へ] をクリックします。
  8. [サービス アカウント] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名を入力します。
    [パスワード] | Windows アカウントのパスワードを入力します。
    [ドメイン] | Windows アカウントのドメインを入力します。
  9. [次へ] をクリックします。
  10. [インストールの開始] ダイアログ ボックスの [インストール] をクリックします。

    分析およびデータ ウェアハウスの機能が SQL Server クラスタにインストールされます。

  11. [完了] をクリックして、セットアップ プログラムを終了します。

手順 3 : Web サイトおよびアプリケーションをアンパックするには

  1. アンパック先の Web サーバーで、[スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] をクリックします。
  3. [Commerce サイト] を右クリックし、[新規作成] をポイントします。次に、[サイトのアンパック] をクリックします。
  4. [サイトのアンパック元] ダイアログ ボックスで、アンパックするパッケージ ファイルが含まれているフォルダを開き、パッケージ ファイルを選択して [開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  5. [アンパック] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。
  6. [アンパック方法] ダイアログ ボックスで [新しいサイトの作成] を選択し、[次へ] をクリックします。
  7. [サイト名] ダイアログ ボックスの [サイト名] ボックスに、サイトの名前を入力するか、または既定の名前をそのまま使用し、[次へ] をクリックします。

    次の図は、[サイト名] ダイアログ ボックスです。

    [サイト名] ダイアログ ボックス

    注

    • アンパック時のエラーを回避するために、サイト名に特殊文字 (/、\、?、&、<、>、:、*、|、#、@、%、および ') は使わないでください。既定では、サイトのデータベース名にサイト名のプレフィックスが付くために、特殊文字が SQL Server で認識されないことがあります。
    • 127 文字を超えるサイト名は指定できません。
    • サイトに "Commerce" という名前を付けないでください。この名前はオンライン分析処理 (OLAP) データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
    • 次の文字列はいずれも、サイト名として使用できません。

      "App Default Config"、"BDSecurity"、"Biz Data Service"、"Campaigns"、"Direct Mail"、"Global Data Warehouse"、"Predictor"、"Product Catalog"、"Site CS Authentication"、"Site Data Warehouse"、"Transaction Config"、または "Transactions"。

  8. [リソースの選択] ダイアログ ボックスで、[Direct Mail] を除くすべてのリソースを右側の一覧に残します。[Direct Mail] を選択して [削除] をクリックし、Commerce Server ダイレクト メーラーを削除します。次の図は、[リソースの選択] ダイアログ ボックスです。

    [リソースの選択] ダイアログ ボックス (ダイレクト メールなし)

  9. 予測リソースをインストールしない場合は、[Predictor] を選択し、[削除] をクリックします。

    注

    • [CS 認証] リソースと [プロファイル] リソースは一緒にインストールする必要があります。両方がインストールされていないと機能しません。
    • Commerce Server 2002 Standard Edition では、予測リソースはサポートされていません。
  10. [グローバル リソース ポインタ] ダイアログ ボックスの [次へ] をクリックします。

    [グローバル リソース ポインタ] ダイアログ ボックスは、既存のグローバル リソースにマップするか、または新しいグローバル リソースを作成するときに使います。また、既にグローバル リソースがコンピュータ上にアンパックされていて、そのグローバル リソースを使用するサイトでグローバル リソース ポインタをアンパックする場合も、このダイアログ ボックスを使います。

    次の図は、[グローバル リソース ポインタ] ダイアログ ボックスの画面の例です。

    [グローバル リソース ポインタ] ダイアログ ボックス (ダイレクト メールなし)

    [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが使用するデータベースと、そのデータベースが存在するサーバーが一覧表示されます。次の図は、既定の設定時に表示される [データ ベースの接続文字列] ダイアログ ボックスです。

    データ ベースの接続文字列 1、例 A

  11. [データベースの接続文字列] ダイアログ ボックスの [新しいデータベース] をクリックします。ここではデータベース サーバー クラスタにデータベースを配置するため、データベースを作成する必要があります。
  12. [新しいデータベース] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | SQL Server クラスタの名前を入力します。
    [データベース名] | データ ウェアハウス データベースに付ける名前を入力します。
    [SQL ユーザー名] | 新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL パスワード] | SQL Server ログイン パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。

    次の図は、[新しいデータベース] ダイアログ ボックスです。

    [新しいデータベース] ダイアログ ボックス

  13. [データベースの作成] をクリックし、新しいデータベースを作成します。

    他のデータ ストア (カタログやトランザクションなど) は、データベース サーバー クラスタのもう一方のデータベースに格納されます。これらのデータベースも作成する必要があります。

    データベースがデータベース サーバー クラスタ上に作成されます。

  14. [データベースの接続文字列] ダイアログ ボックスに戻ったら、[グローバル データ ウェアハウス] を選択し、[変更] をクリックします。
  15. [データ リンク プロパティ] ダイアログ ボックスの [接続] タブで、[サーバー名を選択または入力します] ボックスにデータベース サーバー クラスタの名前を入力します。[サーバー上のデータベースを選択する] ボックスで、作成したデータ ウェアハウス データベースに割り当てた名前を選択し、[OK] をクリックします。

    注

    • [パスワードを保存する] ボックスがオンになっていることを確認してください。選択されていないと、データベースが作成されません。

    次の図は、[データ リンク プロパティ] ダイアログ ボックスです。

    [データ リンク プロパティ] ダイアログ ボックス、DW

  16. 作成したデータベースごとに手順 14. と 15. を繰り返します。

    次の図は、変更後の [データベースの接続文字列] ダイアログ ボックスです。

    データ ベースの接続文字列 2、例 A

  17. [次へ] をクリックします。
  18. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。次の図は、[アプリケーションの選択] ダイアログ ボックスです。

    [アプリケーションの選択] ダイアログ ボックス

  19. [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスで、各アプリケーションの IIS Web サイトおよび IIS パスが正しいことを確認します。アプリケーションの IIS Web サイトを変更するには、一覧でアプリケーションを選択し、ボックスの一覧から IIS Web サイトを選択します。

    アプリケーションの仮想ディレクトリ名を変更するには、一覧でアプリケーションを選択します。[IIS 仮想ディレクトリ] ボックスに、割り当てる名前を入力します。

    注
    • IIS のエラーを回避するために、IIS 仮想ディレクトリ名に特殊文字 (#、@、%、' など) は使わないでください。
    • サイト パッケージャは、リモート コンピュータ上のサイトのアンパックをサポートしません。
    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。

    次の図は、[IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスです。

    [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックス

  20. [次へ] をクリックします。
  21. [データ ウェアハウス] ダイアログ ボックスが表示された場合は、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースに付ける名前を入力します。
    [サーバー] | SQL 分析 (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  22. [次へ] をクリックします。
  23. 最初の [プロファイル システム] ダイアログ ボックスが表示された場合は、次の操作を行います。
    項目 | 操作
    [プロファイル スキーマの定義] | インポートするプロファイル スキーマの定義を指定します。
    [サイト用語の定義] | インポートするサイト用語の定義を指定します。
    [式の定義] | インポートする式の定義を指定します。
  24. [次へ] をクリックします。
  25. 2 番目の [プロファイル システム] ダイアログ ボックスが表示された場合は、次の操作を行います。
    項目 | 操作
    [プロファイル システムの接続文字列] | OLEDB データ ストアにインポートするファイルを指定します。他のデータベースを指定するには、[変更] をクリックします。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] | インポートするスキーマ定義スクリプトを指定します。
    [データ生成スクリプト (*.sql)] | インポートするデータ生成スクリプトを指定します。
  26. [次へ] をクリックします。
  27. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  28. [終了] をクリックし、サイト パッケージャを閉じます。

注

  • サイトをインストールした直後、および配置した Commerce Server の構成に大きな変更を加えるときは、管理データベースのバックアップを別の名前で作成しておく必要があります。必要に応じて、このバックアップを使って後から変更を元に戻すことができます。
  • 1 台のコンピュータでサイト パッケージャの複数のインスタンスを同時に実行しない。

関連項目

サイト パッケージャでスクリプトを使う


非クラスタ構成の 3 台のコンピュータにインストールする

Commerce Server サイト パッケージャを使って、任意の Commerce Server 2002 コンピュータから管理データベースにサイト リソースを配置します。たとえば、3 台のコンピュータがある場合は、Commerce Server を Web サーバーにインストールし、Commerce Server のデータベースを別のコンピュータに配置できます。構成例は次のようになります。

  • コンピュータ A 管理データベースおよび管理ツールに使います。このコンピュータは、Commerce Server の管理に使います。
  • コンピュータ B データ ウェアハウスおよびその他のデータベースに使います。
  • コンピュータ C Web サーバーとして使います。また、アプリケーション用の Active Server Pages (ASP) も含まれます。

ここでは、Microsoft Windows 2000 Server が 3 台のコンピュータのすべてにインストールされ、Microsoft SQL Server 2000 がコンピュータ A と B にインストールされていることを前提にしています。インストール方法については、「Commerce Server のインストール」を参照してください。

手順 1 : Commerce Server をコンピュータ A にインストールする

手順 2 : Commerce Server をコンピュータ B にインストールし、データ ウェアハウスだけを選択する

手順 3 : Commerce Server の Web サーバーをコンピュータ C にインストールする

手順 4 : サイトをコンピュータ A からアンパックする

手順 5 : Commerce Server の Web サーバー (コンピュータ C) をアプリケーションに追加する

手順 1 : Commerce Server をコンピュータ A にインストールする

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスの [ランタイム オブジェクト] フォルダの下で、[分析およびデータ ウェアハウス] が選択されていないことを確認します (選択されていないことを示す [X] がチェック ボックスに表示されます)。[予測サービス] など、インストールするその他の機能を選択します。
  4. [管理データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバー (コンピュータ B) のコンピュータ名を入力します。
    [SQL Server ログイン名] | このコンピュータの SQL Server ログイン名を入力します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。オンライン分析処理 (OLAP) のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | このコンピュータの SQL Server パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
  5. [次へ] をクリックします。
  6. [サービス アカウント] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名を入力します。
    [パスワード] | Windows アカウントのパスワードを入力します。
    [ドメイン] | Windows アカウントのドメインを入力します。
  7. [次へ] をクリックします。
  8. [インストールの開始] ダイアログ ボックスの [インストール] をクリックします。

    管理ツールを含めて、指定した機能がコンピュータ A にインストールされます。このコンピュータを使って、Commerce Server のインストール環境を管理できます。

  9. [完了] をクリックして、セットアップ プログラムを終了します。

手順 2 : Commerce Server をコンピュータ B にインストールし、データ ウェアハウスだけを選択する

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスの [ランタイム オブジェクト] フォルダの下で、[分析およびデータ ウェアハウス] を選択し、それ以外のオプションの選択を解除します。ただし、ダイレクト メーラーを使う場合は [ダイレクト メーラー サービス] を選択します。[次へ] をクリックします。
  4. [管理データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバー (コンピュータ B) のコンピュータ名を入力します。
    [SQL Server ログイン名] | このコンピュータの SQL Server ログイン名を入力します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。オンライン分析処理 (OLAP) のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | このコンピュータの SQL Server パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
  5. ダイレクト メーラーをインストールする場合は、[ダイレクト メーラー データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | 既定のオプション (コンピュータ B) を使います。
    [SQL Server ログイン名] | このコンピュータの SQL Server ログイン名を入力します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | このサーバーの SQL Server パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
  6. [サービス アカウント] ダイアログ ボックスで、このコンピュータで Commerce Server サービスを実行するアカウントの Windows ユーザー名とパスワードを入力し、[次へ] をクリックします。
  7. [インストールの開始] ダイアログ ボックスの [インストール] をクリックします。

    分析およびデータ ウェアハウスの機能がコンピュータ B にインストールされます。

  8. [完了] をクリックして、セットアップ プログラムを終了します。

手順 3 : Commerce Server の Web サーバーをコンピュータ C にインストールする

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、[Web サーバー] インストール オプションを使って Commerce Server 2002 のセットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [次へ] をクリックします。
  3. [管理データベースの構成] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | データベース サーバー (コンピュータ B) のコンピュータ名を入力します。
    [SQL Server ログイン名] | このコンピュータの SQL Server ログイン名を入力します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。オンライン分析処理 (OLAP) のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL Server ログイン パスワード] | このコンピュータの SQL Server パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
  4. [次へ] をクリックします。
  5. [サービス アカウント] ダイアログ ボックスで、このコンピュータの Commerce Server サービスへのアクセスを許可されたユーザーの Windows ユーザー名とパスワードを入力します。[次へ] をクリックします。
  6. [インストールの開始] ダイアログ ボックスの [インストール] をクリックします。

    ランタイム オブジェクトおよび Commerce サイト パッケージがコンピュータ C にインストールされます。

  7. [完了] をクリックして、セットアップ プログラムを終了します。

手順 4 : サイトをコンピュータ A からアンパックする

  1. "コンピュータ A" で、[スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] をクリックします。
  3. [Commerce サイト] を右クリックし、[新規作成] をポイントします。次に、[サイトのアンパック] をクリックします。
  4. [サイトのアンパック元] ダイアログ ボックスで、アンパックするパッケージ ファイルが含まれているフォルダを開き、パッケージ ファイルを選択して [開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  5. [アンパック] ダイアログ ボックスで [カスタム] を選択し、[次へ] をクリックします。次の図は、[アンパック] ダイアログ ボックスです。

  6. [アンパック方法] ダイアログ ボックスで [新しいサイトの作成] を選択し、[次へ] をクリックします。次の図は、[アンパック方法] ダイアログ ボックスです。

  7. [サイト名] ボックスに、サイトの既定の名前が表示されます。必要に応じて名前を変更し、[次へ] をクリックします。

    注

    • アンパック時のエラーを回避するために、サイト名に特殊文字 (/、\、?、&、<、>、:、*、|、#、@、%、および ') は使わないでください。既定では、サイトのデータベース名にサイト名のプレフィックスが付くために、特殊文字が SQL Server で認識されないことがあります。
    • 127 文字を超えるサイト名は指定できません。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが削除されることがあります。
    • 次の文字列はいずれも、サイト名として使用できません。

      "App Default Config,"、"BDSecurity,"、"Biz Data Service,"、"Campaigns,"、"Direct Mail,"、"Global Data Warehouse,"、"Predictor,"、"Product Catalog,"、"Site CS Authentication,"、"Site Data Warehouse,"、"Transaction Config,"、または "Transactions."

  8. [リソースの選択] ダイアログ ボックスで、すべてのリソースを選択します。Commerce Server ダイレクト メーラーをインストールしない場合は、[Direct Mail] を選択し、[削除] をクリックします。予測リソースをインストールしない場合は、[Predictor] を選択し、[削除] をクリックします。次の図は、[リソースの選択] ダイアログ ボックスです。

    [リソースの選択] ダイアログ ボックス (すべて)

    注

    • [CS 認証] リソースと [プロファイル] リソースは一緒にインストールする必要があります。両方がインストールされていないと機能しません。
  9. [グローバル リソース ポインタ] ダイアログ ボックスの [次へ] をクリックします。

    この画面を使って、既存のグローバル リソースにマップするか、または新しいグローバル リソースを作成します。また、既にグローバル リソースがコンピュータ上にアンパックされていて、そのグローバル リソースを使用するサイトでグローバル リソース ポインタをアンパックする場合も、このダイアログ ボックスを使います。

    [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが使用するデータベースと、そのデータベースが存在するサーバーが一覧表示されます。

  10. ここではデータ ウェアハウスを別のコンピュータに配置するので、データベースを作成する必要があります。[新しいデータベース] をクリックし、データ ウェアハウス用の Blank_dw というデータベースをコンピュータ B に作成します。
  11. [新しいデータベース] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | SQL Server コンピュータ (コンピュータ B) の名前を入力します。
    [データベース名] | データ ウェアハウス データベースの「Blank_dw」という名前を入力します。
    [SQL ユーザー名] | 新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。
    [SQL パスワード] | SQL Server ログイン パスワードを入力します。OLAP のエラーを回避するために、特殊文字 (#、@、%、' など) は使わないでください。

    次の図は、[新しいデータベース] ダイアログ ボックスです。

    [新しいデータベース] ダイアログ ボックス、例 B、1

  12. [データベースの作成] をクリックします。Blank_dw データベースがコンピュータ B に作成されます。
  13. [データベースの接続文字列] ダイアログ ボックスに戻ったら、[新しいデータベース] をクリックします。

    コンピュータ B には、他の Commerce Server データベースも配置します。

  14. 手順 11. を繰り返し、[データベース名] ボックスには「Blank_commerce」という名前を入力して、これらのデータベースをまとめる "Blank_commerce" という独立したデータベースを作成します。次の図は、Blank_commerce データベースが指定された [新しいデータベース] ダイアログ ボックスです。

    [新しいデータベース] ダイアログ ボックス、例 B、2

  15. [データベースの作成] をクリックします。Blank_commerce データベースがコンピュータ B に作成されます。
  16. [データベースの接続文字列] ダイアログ ボックスに戻ったら、[データ ウェアハウス] を選択し、[変更] をクリックします。
  17. [データ リンク プロパティ] ダイアログ ボックスの [サーバー名を選択または入力します] ボックスに、"コンピュータ B" の名前を入力します。[サーバー上のデータベースを選択します] ボックスで、コンピュータ B に作成したデータ ウェアハウスに割り当てた名前 (Blank_dw) を選択し、[OK] をクリックします。

    注

    • [パスワードを保存する] ボックスがオンになっていることを確認してください。選択されていないと、データベースが作成されません。

    次の図は、[データ リンク プロパティ] ダイアログ ボックスです。

    [データ リンク プロパティ] ダイアログ ボックス、blank_dw

  18. [データベースの接続文字列] ダイアログ ボックスに戻ったら、他のすべてのデータベース (データ ウェアハウスを除く) を選択し、[変更] をクリックします。
  19. [データ リンク プロパティ] ダイアログ ボックスの [サーバー名を選択または入力します] ボックスに、"コンピュータ B" の名前を入力します。[サーバー上のデータベースを選択します] ボックスで、データベースに割り当てた名前 (blank_commerce) を選択し、[OK] をクリックします。

    注

    • [パスワードを保存する] ボックスがオンになっていることを確認してください。選択されていないと、データベースが作成されません。

    次の図は、変更後の [データベースの接続文字列] ダイアログ ボックスです。

    [データベースの接続文字列] ダイアログ ボックス、例 B

  20. [次へ] をクリックします。
  21. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。次の図は、[アプリケーションの選択] ダイアログ ボックスです。

  22. [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスで、各アプリケーションのインターネット インフォメーション サービス (IIS) 5.0 Web サイトおよび IIS パスが正しいことを確認します。アプリケーションの IIS Web サイトを変更するには、一覧でアプリケーションを選択し、ボックスの一覧から IIS Web サイトを選択します。

    アプリケーションの仮想ディレクトリ名を変更するには、一覧でアプリケーションを選択します。[IIS 仮想ディレクトリ] ボックスに、割り当てる名前を入力します。

    注

    • IIS のエラーを回避するために、IIS 仮想ディレクトリ名に特殊文字 (#、@、%、' など) は使わないでください。
    • サイト パッケージャは、リモート コンピュータ上のサイトのアンパックをサポートしません。
    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。

    次の図は、[IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスです。

  23. [データ ウェアハウス] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースに付ける名前を入力します。
    [サーバー] | SQL Analysis Services (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  24. [次へ] をクリックします。
  25. 最初の [プロファイル システム] ダイアログ ボックスが表示された場合は、次の操作を行います。
    項目 | 操作
    [プロファイル スキーマの定義] | インポートするプロファイル スキーマの定義を指定します。
    [サイト用語の定義] | インポートするサイト用語の定義を指定します。
    [式の定義] | インポートする式の定義を指定します。
  26. [次へ] をクリックします。
  27. 2 番目の [プロファイル システム] ダイアログ ボックスが表示された場合は、次の操作を行います。
    項目 | 操作
    [プロファイル システムの接続文字列] | OLEDB データ ストアにインポートするファイルを指定します。他のデータベースを指定するには、[変更] をクリックします。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] | インポートするスキーマ定義スクリプトを指定します。
    [データ生成スクリプト (*.sql)] | インポートするデータ生成スクリプトを指定します。
  28. [次へ] をクリックします。
  29. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  30. [終了] をクリックし、サイト パッケージャを閉じます。

手順 5 : Commerce Server の Web サーバー (コンピュータ C) をアプリケーションに追加する

  1. アプリケーションに追加する Web サーバー (コンピュータ C) で、[Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、Web サーバーを追加するアプリケーションの名前をクリックします。そのアプリケーションの名前を右クリックし、[新規作成] をポイントします。次に [Web サーバーの追加] をクリックします。

    既存のパッケージ ファイルの一覧を含む [Web サーバーの追加元] ダイアログ ボックスが表示されます。

  3. [Web サーバーの追加元] ダイアログ ボックスで、Web サーバーに追加する Web サーバー ファイルが含まれるパッケージ ファイルを選択し、[開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  4. [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスに、アプリケーションがインストールされる IIS Web サイトの名前と、各 Commerce アプリケーションの IIS 仮想ディレクトリが表示されます。この情報は読み取り専用です。IIS Web サイトおよび仮想ディレクトリは、アプリケーションのすべての Web サーバーで同じでなければなりません。[次へ] をクリックします。

    サイト パッケージャは Web サーバーにファイルを追加し、選択したアプリケーションに Commerce Web server オブジェクトを追加します。Commerce Server マネージャを開くと、アプリケーションの下に Commerce Web server オブジェクトが表示されます。

    注

    • サイト パッケージャでは、リモート コンピュータでの Web サーバーのアンパックはサポートされません。
  5. [アンパックが完了しました。] ダイアログ ボックスでログ ファイルを確認し、[終了] をクリックします。

Web サーバーをアプリケーションに追加すると、Commerce Server マネージャのアプリケーション ノードの下に Commerce Web server オブジェクトが表示されます。Commerce Web サーバー オブジェクトには、データ ウェアハウス リソースがログ ファイルをインポートするために必要なプロパティが含まれます。たとえば、サーバー名、Internet Protocol (IP) アドレス、ログ ファイルのパス、ログ記録の間隔などのプロパティです。Commerce Web サーバー オブジェクトをアプリケーションに追加すると、これらのプロパティには、IIS から自動的にデータが設定されます。Web サーバーのプロパティを構成する方法については、「Web サーバーを構成する」を参照してください。

注

  • サイトをインストールした直後、および配置した Commerce Server の構成に大きな変更を加えるときは、管理データベースのバックアップを別の名前で作成しておく。このバックアップを使って、後から変更を元に戻すことができます。
  • 1 台のコンピュータでサイト パッケージャの複数のインスタンスを同時に実行しない。

関連項目

Web サーバーを構成する


サンプルの Supplier サイトをインストールする

ここでは、Active Directory と SQL Server 2000 の両方を使う Supplier ソリューション サイト用に 2 台のコンピュータを構成する方法について説明します。以下の手順に従って、評価とテストのための Supplier サイトを構築できます。Supplier サイトをセットアップするには、会社の要件に応じていくつかの方法があり、Windows 2000、ドメイン ネーム システム (DNS) サーバー、およびローカル イントラネットを使用します。

サンプルの構成をセットアップするために必要な手順の概要を次に示します。各手順の詳細については、後続のトピックで説明します。

  1. 手順 1 : コンピュータ 1 に Active Directory と DNS を構成する、次に、コンピュータ 1 を Active Directory ドメイン コントローラに昇格させる
  2. 手順 2 : コンピュータ 2 を構成する
  3. 手順 3 : コンピュータ 1 で委任に対する信頼を有効にする
  4. 手順 4 : コンピュータ 1 でローカル ログオンのユーザー権利を構成する
  5. 手順 5 : コンピュータ 2 にサーバー ソフトウェアをインストールする
  6. 手順 6 : コンピュータ 2 に Supplier ソリューション サイトをアンパックする
  7. 手順 7 : 2 台のコンピュータのソフトウェア構成を確認する
  8. 手順 8 : Supplier ソリューション サイトで認証フィルタを有効にする
  9. 手順 9 : ビジネス デスク クライアントをインストールする
  10. 手順 10 : ビジネス デスクと Supplier サイトの構成を確認する
  11. 手順 11 : ASP ファイルを編集する

上記の手順は、次のことを前提にしています。

  • Windows 2000 Advanced Server、Windows 2000 Server、Commerce Server 2002、および SQL Server 2000 をインストールした経験がある。
  • 新しいドメイン (Active Directory) を初めて作成する。
  • 新しい DNS サーバーを作成する。
  • SQL Server には混合モードの認証を使用し、Web サーバーには基本認証を使用する。この構成をインターネットで使う場合は、Web サーバーに対して保護付きハイパーテキスト転送プロトコル (HTTPS) を有効にする必要もあります。


手順 1 : コンピュータ 1 に Active Directory と DNS を構成する

1 番目のコンピュータを Active Directory および DNS 用に構成し、次に、Active Directory ドメイン コントローラに昇格させます。Active Directory には、ユーザー名、パスワードなど、機密扱いのユーザー プロファイル データが格納されます。その他の機密扱いでないプロファイル データは、SQL Server データベースに格納されます。

コンピュータ 1 を構成するには

  1. [標準] インストールで Windows 2000 Advanced Server をインストールします。
    • コンピュータ名に使用できる文字は英数字のみです。
    • Windows 2000 のインストール先となるパーティションを、Windows NTFS ファイル システムでフォーマットします。
    • [Windows 2000 コンポーネント] 画面で、[インターネット インフォメーション サービス (IIS)] チェック ボックスを必ずオフにしてください。
  2. http://go.microsoft.com/fwlink/?LinkId=6125 で指定されている Windows 2000 Service Pack 2 (SP2) および必要な修正プログラムをインストールします。
  3. コントロール パネルの [ネットワークとダイヤルアップ接続] を使って、静的インタネット プロトコル (IP) アドレス、サブネット マスク、およびデフォルト ゲートウェイを設定します。ドメイン コントローラの静的 IP アドレスを [優先 DNS サーバー] として使います。操作手順の詳細については、Windows 2000 Server ヘルプの「DNS を使うように TCP/IP を構成する」および「WINS を使うように TCP/IP を構成する」を参照してください。

    ネットワークに関する追加情報については、『Microsoft Windows 2000 Server リソース キット』を参照してください。

コンピュータ 1 を Active Directory ドメイン コントローラに昇格させるには、Active Directory のインストール ウィザードを使って、このコンピュータをドメイン コントローラに指定する必要があります。

コンピュータ 1 をドメイン コントローラに昇格させるには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「dcpromo」と入力し、[OK] をクリックします。
  3. [Active Directory のインストール ウィザード] の [次へ] をクリックします。
  4. [ドメイン コントローラの種類] ダイアログ ボックスで、[新しいドメインのドメイン コントローラ] を選択し、[次へ] をクリックします。
  5. [ツリーまたは子ドメインの作成] ダイアログ ボックスで、[新しいドメイン ツリーを作成] を選択し、[次へ] をクリックします。
  6. [フォレストの作成または追加] ダイアログ ボックスで、[ドメイン ツリーの新しいフォレストを作成] を選択し、[次へ] をクリックします。
  7. [新しいドメイン名] ダイアログ ボックスの [新しいドメインの完全な DNS 名] ボックスで、新しいドメインの完全な DNS 名 (たとえば、wideworldimporters.com など) を入力します。
  8. [NetBIOS ドメイン名] ダイアログ ボックスの [ドメイン NetBIOS 名] ボックスに、以前のバージョンの Windows のユーザーがドメインの識別に使用する名前 (たとえば、wideworldimporters など) を入力します。ここでは、フル DNS 名の短縮版である既定の名前をそのまま使うことをお勧めします。[次へ] をクリックします。
  9. [データベースとログの場所] ダイアログ ボックスで、ログ ファイルの保存場所を選択します。
  10. [共有システム ボリューム] ダイアログ ボックスでは、特に変更する必要がなければ、既定の設定をそのまま使います。
  11. コンピュータに DNS がインストールされていない場合は、インストールするように求められます。[はい、DNS をこのコンピュータにインストールして構成します (推奨)] を選択し、[次へ] をクリックします。
  12. [アクセス許可] ダイアログ ボックスで、[Windows 2000 サーバーとのみ互換性があるアクセス許可] を選択し、[次へ] をクリックします。
  13. [ディレクトリ サービス復元モード Administrator パスワード] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [パスワード] | サーバーの管理者アカウントに割り当てるパスワードを入力します。
    [パスワードの確認入力] | 確認のためにもう一度パスワードを入力します。
  14. [次へ] をクリックします。
  15. [概要] ダイアログ ボックスで、選択したオプションを点検し、Active Directory の構成が正しいかどうかを確認します。構成が正しければ [次へ] をクリックし、インストールを開始します。そうでない場合は [戻る] をクリックし、選択したオプションを変更します。
  16. インストール処理中に、Windows 2000 CD-ROM を CD-ROM ドライブに挿入するよう要求される場合があります。
  17. [Active Directory のインストール ウィザードの完了] ダイアログ ボックスの [完了] をクリックします。
  18. サーバーを再起動します。

これで、コンピュータ 1 に Active Directory と DNS を正常に構成できました。「手順 2 : コンピュータ 2 を構成する」に進みます。


手順 2 : コンピュータ 2 を構成する

2 番目のコンピュータは、Commerce Server データベースのホストになります。Commerce Server データベースには、管理データベース、ダイレクト メーラー データベース、Commerce Server データ ウェアハウス データベースなどがあります。また、このコンピュータには、前回訪問したページや嗜好など、機密扱いでないユーザー プロファイルも格納されます。このコンピュータには、SQL Server 2000 をインストールしてから、Commerce Server をインストールします。このデータベースは、Commerce Server のセットアップ プログラムによって作成されます。

コンピュータ 2 を構成するには

  1. [標準] インストールで Windows 2000 Advanced Server をインストールします。
    • コンピュータ名に使用できる文字は英数字のみです。
    • Commerce Server のインストール先となるパーティションを、Windows NTFS ファイル システムでフォーマットします。
  2. http://go.microsoft.com/fwlink/?LinkId=6125 で指定されている Windows 2000 Service Pack 2 (SP2) および必要な修正プログラムをインストールします。
  3. コントロール パネルの [ネットワークとダイヤルアップ接続] を使って、コンピュータ 1 と同じサブネット上に、静的 IP アドレス、サブネット マスク、およびデフォルト ゲートウェイを設定します。操作手順の詳細については、Windows 2000 Server ヘルプの「静的アドレス指定の TCP/IP を構成する」を参照してください。
  4. [ネットワークとダイヤルアップ接続] を使って、DNS 参照用の Active Directory サーバー (DNS サーバーのホストとなるコンピュータ 1) の IP アドレスを指すように、優先 DNS サーバーのリストを設定します。Active Directory サーバーを指すように WINS サーバーのリストを設定します。操作手順の詳細については、Windows 2000 Server ヘルプの「DNS を使うように TCP/IP を構成する」および「WINS を使うように TCP/IP を構成する」を参照してください。

    ネットワークに関する追加情報については、『Microsoft Windows 2000 Server リソース キット』を参照してください。

  5. コンピュータ 1 に作成済みのドメインに参加するには、次の操作を行います。
    • [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。[システムのプロパティ] ダイアログ ボックスの [ネットワーク ID] タブで、[プロパティ] をクリックします。
    • [識別の変更] ダイアログ ボックスの [次のメンバ] セクションで [ドメイン] を選択し、作成済みのドメインの名前を入力して、[OK] をクリックします。
    • コンピュータを再起動します。
  6. http://go.microsoft.com/fwlink/?LinkId=6729 で指定されている Internet Explorer 6.0 をインストールします。

これで、2 番目のコンピュータにソフトウェアを正常にインストールおよび構成することができました。「手順 3 : コンピュータ 1 で委任に対する信頼を有効にする」に進みます。


手順 3 : コンピュータ 1 で委任に対する信頼を有効にする

コンピュータ 1 でコンピュータ 2 の委任に対する信頼を有効にして、Commerce Server の管理者が Active Directory ドメイン コントローラ (コンピュータ 1) にユーザー資格情報を格納できるようにします。

委任に対する信頼を有効にするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーとコンピュータ] をクリックします。
  2. 左側のウィンドウで、[<ドメイン名>] を展開し、[コンピュータ] をクリックします。
  3. 右側のウィンドウで、コンピュータ 2 のコンピュータ名を右クリックし、[プロパティ] をクリックします。
  4. [<コンピュータ名> のプロパティ] ダイアログ ボックスの [全般] タブで、[コンピュータを委任に対して信頼する] チェック ボックスをオンにします。Active Directory の警告メッセージが表示されます。
  5. 警告メッセージを読んで、[OK] をクリックします。
  6. [<コンピュータ名> のプロパティ] ダイアログ ボックスで、[OK] をクリックします。
  7. これで、コンピュータ 2 は Active Directory ドメイン コントローラ (コンピュータ 1) によって信頼されました。「手順 4 : コンピュータ 1 でローカル ログオンのユーザー権利を構成する」に進みます。


手順 4 : コンピュータ 1 でローカル ログオンのユーザー権利を構成する

ドメイン ユーザーに Supplier ソリューション サイトへのログオンを許可するには、ローカル ログオンのユーザー権利を構成する必要があります。

ローカル ログオンのユーザー権利を構成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[ドメイン セキュリティ ポリシー] をクリックします。
  2. [ドメイン セキュリティ ポリシー] で、[セキュリティの設定]、[ローカル ポリシー] の順に展開し、[ユーザー権利の割り当て] をクリックします。
  3. 右側のウィンドウで、[ローカル ログオン] をダブルクリックします。
  4. [セキュリティ ポリシーの設定] で、[これらのポリシーの設定を定義する] チェック ボックスをオンにして、[追加] をクリックします。
  5. [ユーザーまたはグループの追加] で、[参照] をクリックします。
  6. [ユーザーまたはグループの選択] で、[場所] ボックスの一覧からドメインを選択します。
  7. [名前] で、[Domain Users] をクリックし、[追加] をクリックします。次に、[OK] をクリックします。
  8. [ユーザーまたはグループの追加] で、[OK] をクリックします。
  9. [セキュリティ ポリシーの設定] で、[OK] をクリックします。

これで、Domain Users アカウントに対してローカル ログオンのユーザー権利を構成できました。「手順 5 : コンピュータ 2 にサーバー ソフトウェアをインストールする」に進みます。


手順 5 : コンピュータ 2 にサーバー ソフトウェアをインストールする

  1. http://go.microsoft.com/fwlink/?LinkId=6125 で指定されている SQL Server 2000 と Analysis Services をインストールします。
  2. http://go.microsoft.com/fwlink/?LinkId=6730 で指定されている SQL Server 2000 Service Pack 2 (SP2) をインストールします。
  3. http://go.microsoft.com/fwlink/?LinkId=6125 で指定されている Commerce Server をインストールします。

    次の点に注意してください。

    • [セットアップの種類] 画面では、[完全] を選択します。
    • [管理データベースの構成] 画面では、SQL Server コンピュータとして現在のコンピュータを選択し、適切な認証モード (Windows 統合セキュリティまたは SQL 認証) を選択します
    • [ダイレクト メーラー データベースの構成] 画面では、SQL Server コンピュータとして現在のコンピュータを選択します。
    • [サービス アカウント] 画面では、[各サービスに同じアカウントを使用し、すべてのサービスを自動開始に設定する] チェック ボックスをオンにします。Commerce Server サービスを実行するアカウントのユーザー名、パスワード、およびドメインを入力します。
  4. インストール後、サーバーを再起動します。

サーバーの再起動後、コンピュータ 2 にサーバー ソフトウェアが正しくインストールされました。「手順 6 : コンピュータ 2 に Supplier ソリューション サイトをアンパックする」に進みます。


手順 6 : コンピュータ 2 に Supplier ソリューション サイトをアンパックする

Supplier ソリューション サイトのビジネス デスク アプリケーションを実行するには、コンピュータ 2 に Supplier ソリューション サイトをアンパックする必要があります。

コンピュータ 2 に Supplier ソリューション サイトをアンパックするには

  1. http://go.microsoft.com/fwlink/?LinkId=6491 で Microsoft Commerce Server 2002 Solution Sites.msi ファイルを実行して、ソリューション サイト パッケージをダウンロードします。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントして、[管理ツール] をポイントします。次に、[Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  3. [Commerce Server マネージャ] を展開し、[Commerce サイト] をクリックします。
  4. [Commerce サイト] を右クリックし、[新規作成] をポイントします。次に、[サイトのアンパック] をクリックします。
  5. [サイトのアンパック元] ダイアログ ボックスで、パスを入力するか、または手順 1. でダウンロードした supplieractivedirectory.pup ファイルに移動して、[開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  6. [アンパック] ダイアログ ボックスで [標準] を選択し、[次へ] をクリックします。
  7. [標準] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サイト名] サイトの名前を変更する場合は、サイト名を入力します。

    注

    • サイト名に特殊文字 (/、\、?、&、<、>、:、*、|、#、@、%、および ') は使わないでください。特殊文字が含まれるサイト名は、SQL Server データベースで認識されない可能性があります。詳細については、SQL Server Books Online を参照してください。
    • サイト名は最大 127 文字まで入力できます。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
    • 次の文字列はいずれも、サイト名として使用できません。

      "App Default Config,"、"BDSecurity,"、"Biz Data Service,"、"Campaigns,"、"Direct Mail,"、"Global Data Warehouse,"、"Predictor,"、"Product Catalog,"、"Site CS Authentication,"、"Site Data Warehouse,"、"Transaction Config,"、または "Transactions."

    [IIS Web サイト] アプリケーションをインストールする IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [統合セキュリティを使用] 統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    注

    • Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [SQL Server コンピュータ] | サイトのデータベースを格納する SQL Server コンピュータの名前を入力します。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] データベースの SQL Server ログイン名を入力します。

    注

    • セキュリティ上の理由から、管理データベースへのアクセスに sa ログインは使用しないでください。管理データベースの作成後にログイン情報を変更するには、SQL Server Enterprise Manager を使用します。
    [SQL Server ログイン パスワード] | データベースにアクセスするための SQL Server ログイン パスワードを入力します。
  8. [次へ] をクリックします。
  9. インストール処理中にデータ ウェアハウス リソースがインストールされた場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] | SQL Analysis Services (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する OLAP データベースの名前を入力します。
  10. [OK] をクリックします。
  11. インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。プロファイル リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [プロファイル スキーマの定義] | インポートするプロファイル スキーマの定義を指定します。
    [サイト用語の定義] | インポートするサイト用語の定義を指定します。
    [式の定義] | インポートする式の定義を指定します。
  12. [次へ] をクリックします。
  13. インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。プロファイル リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [プロファイル システムの接続文字列] | OLEDB データ ストアにインポートするファイルを指定します。他のデータベースを指定するには、[変更] をクリックします。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] インポートするスキーマ定義スクリプトを指定します。

    注

    • サイト パッケージャは、既定のスキーマ定義のスクリプトを使います。UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] | インポートするデータ生成スクリプトを指定します。
  14. [OK] をクリックします。

    注

    • Windows 統合セキュリティを使用する場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認します。
  15. [プロファイル システム] ダイアログ ボックスで、作成済みのドメインのドメイン名、ユーザー名、およびパスワードを入力します。ユーザー名は <ドメイン名>\<ユーザー名> の形式で入力します。これらを指定することによって、Supplier ソリューション サイトで作成されたユーザー プロファイルを Active Directory (コンピュータ 1) に格納できるようになります。
  16. [OK] をクリックします。
  17. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  18. [終了] をクリックし、サイト パッケージャを閉じます。

これで、2 番目のコンピュータに Supplier ソリューション サイトを正常にアンパックできました。「手順 7 : 2 台のコンピュータのソフトウェア構成を確認する」に進みます。


手順 7 : 2 台のコンピュータのソフトウェア構成を確認する

各コンピュータでソフトウェアが正しく構成されたことを確認するには、次の操作を行います。

  1. 各コンピュータで、[ファイル名を指定して実行] ダイアログ ボックスに「nltest /dsgetdc:<ドメイン DNS 名>」と入力し、[OK] をクリックします。この操作が正常終了しなければなりません。正常終了しない場合は、構成が正しくありません。

    Nltest.exe ユーティリティは、『Microsoft Windows 2000 Server リソース キット』に含まれています。

  2. Active Directory サーバーで、[管理ツール] をポイントし、[DNS] をクリックします。[前方参照ゾーン] ノードの下にドメイン情報が表示されなければなりません。表示されない場合は、構成が正しくありません。

これで、Supplier ソリューション サイトが正しく構成されていることを確認できました。「手順 8 : Supplier ソリューション サイトで認証フィルタを有効にする」に進みます。


手順 8 : Supplier ソリューション サイトで認証フィルタを有効にする

ここでは、Supplier ソリューション サイトの認証フィルタを有効にする方法について説明します。

注

  • 以下の操作を実行する前に、「Supplier ソリューション サイトの認証フィルタに関する重要な情報」を読むことをお勧めします。
  • Supplier ソリューション サイト用の認証フィルタの Login.asp については、「Supplier ソリューション サイト用の Login.asp のコード」を参照してください。

Supplier ソリューション サイトの場合、および Windows 認証モードで認証フィルタを使う場合は、ローカルにログインするというセキュリティ モードをドメイン コントローラに設定する必要があります。この設定方法については、「ドメイン コントローラにセキュリティ モードを設定する」を参照してください。

Supplier ソリューション サイトでは、基本認証だけを有効にしてください。他のセキュリティ設定は変更しないでください。

AuthFiles サブフォルダと、そのフォルダにあるすべてのページでは、匿名アクセスを有効にします。

ドメイン コントローラおよび Web サーバーが、同じドメインで異なるコンピュータにインストールされている場合、プロファイルとユーザーに対してログイン ページで ProfileService.GetUserProfileByKey() メソッドの実行を成功させるには、認証フィルタには Web サーバーの匿名アカウントが必要です。

既定では、匿名ユーザー アカウントは IUSR_<サーバー名> です。インターネット サービス マネージャでは、IUSR_<サーバー名> にはメソッドを実行するために必要なアクセス許可がありません。また、Web サーバーがドメイン コントローラ サーバーと異なる場合、ドメインのユーザー アカウントを匿名アカウントとして追加する必要があります。この操作を行うには、まずドメインで、ユーザー プロファイルを読み取るアクセス権を持つユーザー アカウントを、Active Directory から作成します。次に、Web サーバーで IIS マネージャを使って、AuthFiles サブフォルダとそのサブフォルダ内のすべてのファイルに対して、同じユーザー アカウントを匿名アカウントとして設定します。

Supplier ソリューション サイトで認証フィルタを有効にするには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、操作対象のアプリケーションの名前を右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [全般] タブで、[Commerce 認証フィルタ] ボックスの一覧の [Windows 認証] または [カスタム認証] をクリックし、[OK] をクリックします。
  4. [インターネット インフォメーション サービス] を展開し、Supplier サイトを右クリックします。次に、[プロパティ] をクリックします。
  5. [プロパティ] ダイアログ ボックスの [ディレクトリ セキュリティ] タブの [匿名アクセスおよび認証コントロール] セクションで、[編集] をクリックします。
  6. [認証方法] ダイアログ ボックスで、[統合 Windows 認証] チェック ボックスをオフにします。

    注

    • Supplier ソリューション サイトでは、基本認証だけを有効にしてください。他のセキュリティ設定は変更しないでください。
  7. テキスト エディタを使って、Supplier サイトの Authfiles\Login.asp を開きます。
  8. Web ファームを使っている場合、またはプロキシ アカウントのサポートが必要な場合は、「ソリューション サイト用の Login.asp」に示すコードに一致するように、Login.asp のコードを更新します。

    重要

    • プロキシ アカウントのサポートを必要としない単一のサーバーの場合、Login.asp を更新する必要はありません。
  9. Windows 認証では、\SupplierAD\include\Std_access_lib.asp の GetUserInfo() メソッドを次のように変更します。
    Sub GetUserInfo()
    Dim sAuthUser, mscsUser
    Dim aName

    If dictConfig.i_DelegatedAdminOptions = DELEGATED_ADMIN_SUPPORTED Then
        sAuthUser = LoginName(Request.ServerVariables("LOGON_USER"))
    Else
        sAuthUser = ""
    End If
        Rem Integrated Windows and basic auth take precedence over HTML form auth
        If sAuthUser <> "" Then
            m_UserAccessType = IIS_AUTH ' BASIC_AUTH
            m_UserType = AUTH_USER
            Set mscsUser = GetUserProfileByLoginName(sAuthUser)
            If mscsUser Is Nothing Then
               m_UserID = ""
            Else
               m_UserID = mscsUser.Fields(GetQualifiedName(GENERAL_INFO_GROUP, USER_ID)).Value
            End If
        Else
            If mscsAuthMgr.IsAuthenticated() Then
              sAuthUser = mscsAuthMgr.GetUserID(AUTH_TICKET)
              Set mscsUser = GetUserProfileByLoginName(sAuthUser)
                If mscsUser Is Nothing Then
                   m_UserID = ""
                Else
                  m_UserID = mscsUser.Fields(GetQualifiedName(GENERAL_INFO_GROUP, USER_ID)).Value
                End If
              m_UserAccessType = TICKET_AUTH
              m_UserType = AUTH_USER
            Else
                If Not IsNull(mscsAuthMgr.GetUserID(GUEST_TICKET)) Then
                   m_UserID = mscsAuthMgr.GetUserID(GUEST_TICKET)
                   m_UserAccessType = GUEST_VISIT
                   m_UserType = GUEST_USER
                Else
                   m_UserID = ""
                   m_UserAccessType = ANON_VISIT
                   m_UserType = ANON_USER
                End If
            End If
        End If
End Sub

  Function LoginName(ByVal sUserName)
    Dim aName

    If (sUserName = "") Then
      Exit Function
    End IF
    aName = Split (sUserName, "\")
    LoginName = aName(UBound(aName))
  End Function
  10. Windows 認証の場合、\SupplierAD\template\menu.asp の PrepareLoginSection メソッドで、"AUTH_USER" サーバー変数を参照している Request.ServerVariables 文字列のコードを、"LOGON_USER" サーバー変数を参照するように変更します。次に例を示します。

    誤 : sAuthUser = Request.ServerVariables("AUTH_USER")

    正 : sAuthUser = Request.ServerVariables("LOGON_USER")

  11. 更新した Login.asp ページと menu.asp ページを保存して閉じます。
  12. コマンド プロンプトで iisreset を実行して IIS を再起動します。

これで、認証フィルタを Supplier ソリューション サイトで有効にすることができました。「手順 9 : ビジネス デスク クライアントをインストールする」に進みます。


手順 9 : ビジネス デスク クライアントをインストールする

サイトをアンパックした後で、ビジネス デスク アプリケーションの Uniform Resource Locator (URL) に接続すると、Commerce Server ビジネス デスク クライアントをインストールできます。

コンピュータ 2 にビジネス デスク クライアントをインストールするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Internet Explorer] をクリックします。
  2. Internet Explorer の [アドレス] ボックスに「http://<Web サーバー名>/supplieradbizdesk」と入力して、Supplier ソリューション サイトのビジネス デスクにアクセスします。
  3. [フォルダの参照] ダイアログ ボックスで、HTML アプリケーション (HTA) ファイルの格納場所を指定します。既定のフォルダをそのまま使用するか、他のフォルダを選択し、[OK] をクリックします。ビジネス デスク クライアントがダウンロードされ、コンピュータ 2 にインストールされます。
  4. ビジネス デスクのインストールが完了したら、Internet Explorer を閉じます。ビジネス デスクのショートカット アイコンが、デスクトップと [スタート] メニューに配置されます。

ビジネス デスク クライアントをインストールする方法の詳細については、「Commerce Server 2002 インストール ガイド」を参照してください。

これで、2 番目のコンピュータにビジネス デスク クライアントを正常にインストールできました。「手順 10 : ビジネス デスクと Supplier サイトの構成を確認する」に進みます。


手順 10 : ビジネス デスクと Supplier サイトの構成を確認する

この確認の手順では、ビジネス デスクを使って新しいユーザー (管理者) を作成した後、Supplier サイトの代理管理者を作成します。

ビジネス デスクと Supplier サイトの構成を確認するには

  1. ビジネス デスク クライアント コンピュータ (コンピュータ 2) で、ドメイン管理者としてログオンします。
  2. http://<Web サーバー名>/supplieradbizdesk という URL に移動して、ビジネス デスクをインストールします。
  3. ビジネス デスクで、[プロファイル] モジュールの [ユーザー] をクリックし、新しいユーザー (Sean Chai など) を追加します。ユーザーを追加する方法については、「ユーザー プロファイルを追加する」を参照してください。
  4. 検索フィールドに「*」と入力し、[検索開始] をクリックして、新しいユーザーを検索します。新しいユーザーが検索結果の一覧に表示されたら、Business Desk は、ユーザー プロファイルの格納場所である Active Directory と正しく統合されています。
  5. http://<Web サーバー名>/SupplierAD という URL に移動します。
  6. ログイン ページで、ユーザー名とパスワードを入力します。ユーザー名の指定には、Domain\Username またはユーザー プリンシパル名 (UPN) 形式を使います。登録済みユーザーでない場合は、ページ下部のリンクをクリックします (Active Directory にアカウントを作成するための独自の登録ページを追加する必要があります)。

Login.asp ページは、登録済みユーザーの MSCSAuth チケットを設定し、ユーザー プロファイルを取得します。次に、必要に応じて資格情報を確認した後、既定の Web ページにそのユーザー プロファイルのデータを設定します。ユーザー名またはパスワードが無効な場合、あるいはプロファイルが存在しない場合、Login.asp ページがもう一度表示されます (ユーザーはログインまたは登録を要求されます)。

ビジネス デスクと Supplier ソリューション サイトが正しく構成されたら、「手順 11 : ASP ファイルを編集する」に進みます。


手順 11 : ASP ファイルを編集する

Supplier ソリューション サイトを使用する前に、あらかじめ次の ASP ファイルを編集して、Supplier ソリューション サイトに必要な機能を有効にしておく必要があります。

  • Catalog.asp
  • Html_lib.asp
  • Login.asp
  • Requisition.asp
  • StepSrch.asp


Catalog.asp を変更する

catalog.asp ファイルを編集して、サイトからカタログ セットの制限を確認できるようにします。

Catalog.asp を変更するには

  1. Microsoft メモ帳などのテキスト エディタを使って、catalog.asp ファイルを開きます。catalog.asp ファイルは、Commerce Server コンピュータの <ドライブ名>:\inetpub\wwwroot\<サイト名>\include フォルダにあります。<ドライブ名> は IIS がインストールされているドライブです。
  2. catalog.asp ファイル内で、mscsUserCatalogsetID 関数を検索します。
  3. この関数内で、次のテキスト文字列を検索します。

    Set rsOrg = rsGetProfileByKey(FIELD_ORG_ORG_ID, org_id, PROFILE_TYPE_ORG, False)

  4. このテキスト文字列を次のテキストに置換します。

    Set rsOrg = rsGetProfileByKey(FIELD_ORG_NAME, org_id, PROFILE_TYPE_ORG, False)

  5. catalog.asp ファイル内で、次の関数を検索します。
    mscsUserCatalogsFromID(ByVal CatalogSetID)
  6. この関数内で、次のテキストを検索します。
    Set mscsCatalogSets = Server.CreateObject("Commerce.CatalogSets")
  7. 上記のテキストを次のテキストに置換します。
    Set mscsCatalogSets = Server.CreateObject("Commerce.CatalogSets2")
mscsCatalogSets.OrganizationObjectJoinKey  = FIELD_ORG_NAME
  8. catalog.asp ファイル内で、次の関数を検索します。
    mscsUserCatalogs
  9. この関数内のテキストをすべて次のテキストに置換します。
    Dim userCatalogsetID
userCatalogsetID = mscsUserCatalogsetID()
set mscsUserCatalogs = mscsUserCatalogsFromID(userCatalogsetID)


Html_lib.asp を変更する

html_lib.asp ファイルを編集して、サイトからユーザーをコピーするときにパスワードをキャッシュから取得できるようにします。

Html_lib.asp を変更するには

  1. Microsoft メモ帳などのテキスト エディタを使って、html_lib.asp ファイルを開きます。html_lib.asp ファイルは、Commerce Server コンピュータの <ドライブ名>:\inetpub\wwwroot\<サイト名>\include フォルダにあります。<ドライブ名> は IIS がインストールされているドライブです。
  2. html_lib.asp ファイル内で、RenderPasswordBox 関数を検索します。

    3.

  3. 上記の関数内のコードをすべて次のテキストに置換します。

    Dim sNewValue

    If (IsArray(sValue)) Then

    sNewValue = sValue(0)

    Else

    sNewValue = sValue

    End If

    RenderPasswordBox = "<INPUT TYPE=""PASSWORD"" NAME=""" & sName & """ VALUE=""" & sNewValue & """ SIZE=""" & iSize & """ MAXLENGTH=""" & iMaxLength & """" & sAttList & ">"

    4.


Login.asp を変更する

login.asp ファイルを編集して、セッション中に IIS がリセットされた場合にユーザーに再度ログオンを要求するようにします。

Login.asp を変更するには

  1. Microsoft メモ帳などのテキスト エディタを使って、login.asp ファイルを開きます。login.asp ファイルは、Commerce Server 2002 の CD-ROM の Program Files\Microsoft Commerce Server 2002\AuthFiles フォルダにあります。
  2. login.asp ファイル内で、次のテキストを検索します。
    if objAuth.IsAuthenticated(30)
  3. 置換対象のテキストの範囲は、次のとおりです。
    if objAuth.IsAuthenticated(30)
～
Set objAuth = Nothing
この範囲のテキストを次のテキストに置換します。
PrintLogin
End If
Set objAuth = Nothing


Requisition.asp を変更する

requisition.asp ファイルを編集して、サイトから注文を確認できるようにします。

Requisition.asp を変更するには

requisition.asp ファイル内で、次の操作を行います。

  1. Microsoft メモ帳などのテキスト エディタを使って、requisition.asp ファイルを開きます。requisition.asp ファイルは、Commerce Server コンピュータの <ドライブ名>:\inetpub\wwwroot\<サイト名>\services\include フォルダにあります。<ドライブ名> は IIS がインストールされているドライブです。
  2. requisition.asp ファイル内で、rsGetOrdersList 関数を検索します。
  3. この関数内で、次のテキスト文字列を検索します。
    oSearchInfo.user_org_id = mscsUserProfile(USER_ORGID).Value
  4. 上記のテキストを次のテキストに置換します。
    Dim org_id
Dim rsOrg
If Not IsNull(org_name) Then
' Set rsGetProfile's bForceDBLookUp to False to avoid a database look-up.
Set rsOrg = rsGetProfileByKey(FIELD_ORG_NAME, org_id, PROFILE_TYPE_ORG, False)
If Not rsOrg Is Nothing Then
oSearchInfo.user_org_id = rsOrg.Fields.Item("GeneralInfo.org_id").Value
End If
End If


Stepsrch.asp を変更する

stepsrch.asp ファイルを編集して、ハイフン (–) が含まれるプロパティ定義を検索できるようにします。

Stepsrch.asp を変更する

  1. Microsoft メモ帳などのテキスト エディタを使って、stepsrch.asp ファイルを開きます。stepsrch.asp ファイルは、Commerce Server コンピュータの <ドライブ名>:\inetpub\wwwroot\<サイト名> フォルダにあります。<ドライブ名> は IIS がインストールされているドライブです。
  2. stepsrch.asp ファイル内で、次の関数を検索します。
    Sub PerformSpecificationSearch
  3. この関数内で、次のテキストを検索します。
    sColList = sColList + "," + oCatalog.IdentifyingProductProperty
  4. 上記のテキストを次のテキストに置換します。
    sColList = sColList + ",[" + oCatalog.IdentifyingProductProperty + "]"
  5. 5 つの ASP ファイルを編集したら、コマンド プロンプトで iisreset を実行します。
IIS が再起動したら、2 台のコンピュータ構成での Supplier ソリューション サイトのインストールが完了します。

Supplier ソリューション サイトの管理方法については、「B2B サイトのチュートリアル」を参照してください。


分散環境での配置

大規模な配置では、各 Commerce Server 2002 コンポーネントをそれぞれ独立したデータベースにインストールできます。ここでは、可用性の高い依存関係について説明します。これらは、各コンポーネントについて、分散環境で配置を行う場合に考慮する必要があります。

ここでは、次のトピックについて説明します。

  • 管理データベース
  • プロファイル システム
  • 商品カタログ システム
  • 対象化システム
  • ダイレクト メーラー
  • 認証
  • ビジネス プロセス パイプライン
  • データ ウェアハウス


管理データベース

すべてのサイトで共有されるグローバル リソースや、サイト固有のリソースなど、Commerce Server リソースの構成情報を格納するには、Commerce Server 管理データベースを使います。管理データベースへのアクセスに使われるオブジェクトからの接続は一時的であり、データは後で参照するために Global.asa ファイルにキャッシュされます。情報がキャッシュされると、データベース接続は不要になります。

Windows クラスタリングを使って、管理データベースに冗長性を持たせることができます。冗長性を提供するには、次のいずれかの種類の構成を使います。

  • アクティブ/アクティブ構成 すべてのノードがデータベースを実行およびホストします。
  • アクティブ/パッシブ構成 1 つのノードがデータベースを実行およびホストし、他のすべてのノードがアイドル状態 (バックアップ モード) となって、アクティブ ノードに障害が発生した場合にデータベースを実行およびホストする準備をします。

IIS アプリケーションが読み込まれるときに (アプリケーションの仮想ディレクトリ内で ASP ページが最初にアクセスされるときに)、Application_OnStart サブルーチンが呼び出され、管理データベースがキャッシュに読み込まれます。Application_OnStart サブルーチンは、SiteConfigReadOnly オブジェクトを使ってアプリケーション変数を読み込みます。このオブジェクトは、管理データベースへの接続を必要とします。

Application_OnStart サブルーチンが失敗した場合は (たとえば、SQL Server を実行しているコンピュータに障害が発生した場合か、または単にそのコンピュータが利用できない場合)、次のいずれかの操作を行って、アプリケーション変数を再度読み込む必要があります。

  • Global.asa ファイルによって行われるすべての初期化を実行する ASP ページを実行します。これは、最も影響が小さいオプションです。アクセス制御リスト (ACL) を使って ASP ページを保護し、権限のある担当者またはプロセスだけがその ASP ページを実行できるようにする必要があります。
  • IIS マネージャから Commerce Server アプリケーションをアンロードします。
  • IISReset コマンドを実行します。これは影響が大きいオプションです。このオプションは、IIS サーバー上で動作しているすべての ASP アプリケーションをリセットするためです。
  • Web サーバーを再起動します。これは、最も影響が大きいオプションです。なぜなら、このオプションは Web サーバー上で動作しているすべてのアプリケーションおよびサービスに作用するためです。

これらのオプションはすべて、スクリプトで記述できます。

関連項目

管理データベースの管理


プロファイル システム

Active Directory (Lightweight Directory Access Protocol (LDAP) Version 3.0) や SQL Server など、複数のデータ ストアからのデータを集計するには、Commerce Server プロファイル システムを使います。

プロファイル システムを使うと、利用状況プロファイルに最適なデータ ストアにデータを格納できます。

  • ディレクトリ サービスは、固有のセキュリティ機能を持つため、通常、読み取り専用操作用に最適化されます。
  • SQL Server は、読み取り操作用および書き込み操作用に同等に最適化されますが、ディレクトリ サービスより少ない固有のセキュリティ機能を持ちます。
  • サイト訪問中のほとんど静的なデータ、または ACL でセキュリティを設定する必要のあるデータを格納するには、Active Directory を使う必要があります。
  • 訪問中に更新される頻度の高いデータを格納するには、SQL Server を使います。

たとえば、Active Directory は階層型 LDAP モデルに基づいています。このモデルは、1 つの項目を高速に取得する場合に最適です。Active Directory に格納されている属性は、データ センター内で動作している他のアプリケーションによって簡単に利用できます。Active Directory に格納するのに最も適している属性には、"ユーザー名"、"住所"、"市町村" などがあります。

対照的に、Commerce Server 固有の属性、たとえば "最後に買い物をした日付" のように更新される頻度の高い属性は SQL Server データベースに格納し、SQL Server のキャパシティを利用して更新率の高い処理をする必要があります。データの可用性は、データを保存するために使うデータ ストアの組み合わせによって大きく異なることがあります。

大規模で可用性の高いプロファイル データベースを生成するには、Windows クラスタリングに基づいて、SQL Server を実行しているサーバーのハッシュベースのパーティション クラスタを使う必要があります。ハッシュは、ユーザーを特定のプロファイル パーティションに割り当てます。

次の図は、SQL Server サーバーのハッシュベースのパーティション クラスタを設定する方法を示しています。各プロファイル システム サーバーは、Windows クラスタリングを実行しています。

SQL Server サーバーのハッシュベースのパーティション クラスタを示す図

次の図は、共有ディスクを持つアクティブ/パッシブ構成内の Windows クラスタリングを示しています。

共有ディスクを持つアクティブ/パッシブ構成内の Windows クラスタリングを示す図

注

  • ここで説明しているパーティション分割されたアーキテクチャを使う場合は、まずパーティションを作成する必要があります。既にユーザー データが保存されているサイトにパーティションを追加する場合は、ユーザー データを削除してから再び格納し、ユーザー データが適切なパーティションに格納されていることを確認する必要があります。

プロファイル システムは、データベース接続を開始し、構成情報を読み取り、その情報からプロファイル構成キャッシュを構築します。接続が失われると、データベースへの接続はプールされます。データベース接続には組み込み済みの再試行ロジックがあります。

プロファイル システムへのアクセスは、Global.ASA 内の Application_OnStart 関数で開始されます。次に、Web アプリケーションが、プロファイル システム、プロファイル オブジェクト、および OLE DB Provider for Commerce Server (Active Directory オブジェクトを使用) を介して、プロファイル データベースおよび基になるプロファイル データ ストアにアクセスします。プロファイル システムの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • AppConfig オブジェクト (プロファイル データベースの接続文字列を検出する)
  • 管理データベース
  • プロファイル データベース (スキーマ、サイト用語、および式の情報を検出する)
  • SQL プロファイル データ ストア
  • Active Directory LDAP データ ストア
  • LDAP データ ストア
  • サード パーティ製の OLE DB/ODBC データ ストア

関連項目

プロファイル リソースの実行

ビジネス デスク プロファイル


サード パーティ製のデータ ストアからのユーザー データを統合する

サード パーティ製のストアからのデータ (Oracle データベース内のデータなど) を統合するには、プロファイル システムを使います。行う作業によっては、サード パーティ製のデータ ストアに可用性の高い構成を設定すると費用対効果が高くなることがあります。ただし、基になるデータ ソースの読み取りに失敗した場合は、その操作全体が失敗することに注意してください。複数のデータ ストアから仮想サーバーを作成すると、サード パーティ製のデータ ストアに冗長性を持たせることができます。そのため、仮想サーバーには、プロファイル システムが使うデータ ソース名 (DSN) を設定する必要があります。


複数のストアからのユーザー データを集計する

データを異なるデータ ストアに配置しなければならない場合は必ず、一部のストアが利用できないというリスクが生じます。次の図は、利用できないデータ ストアを示しています。

この状況に対処するために、プロファイル システムは "ルース トランザクション" という概念をサポートしています。ルース トランザクションでは、非トランザクション ストア (Active Directory) に対する操作が成功した場合にだけ、プロファイル システムによって集計されるトランザクション ストア (SQL Server や Oracle など) に対する書き込みおよび更新がコミットされます。

次のロジックの例は、Active Directory、SQL Server、および Oracle の各ストアをすべて使ってユーザー プロファイル属性を格納しているサイトで、Commerce Server がルース トランザクションを処理する方法を示しています。これは、プロファイル定義の isTransactioned 属性によって有効になります。ロジックの例は、次のとおりです。

   Start transaction for SQL Server
   Write changes
      Start transaction for Oracle
      Write changes
         Write changes to Active Directory_1
      Commit changes_2
   Commit changes_3

If 1 fails, then 2 & 3 abort.
If 1 succeeds and 2 fails, then Active Directory store is inconsistent.
If 1 & 2 succeed, 3 fails, then SQL Server is inconsistent.

プロファイル システムは、2 フェーズ コミットをサポートしていません。


商品カタログ システム

Commerce Server 商品カタログ システムでは、1 つの IP アドレスによるソリューションをフロントとする複数の Web サーバーにカタログ データベースをインストールすることによって、カタログ データベースに冗長性を持たせることができます。この構成では、SQL Server を実行しているコンピュータが、SQL Server を実行しているサブスクライバ (運用コンピュータ) に商品カタログを公開します。サブスクライバは読み取り専用バージョンの商品カタログを持ち、サブスクライバの負荷はネットワーク負荷分散 (NLB) によって分散されます。

1 つの接続文字列だけがサポートされているので、この構成では、Commerce Server ビジネス デスクを実行しているサーバー上のホスト ファイルが、サブスクライバではなく SQL Server パブリッシャを参照する必要があります。

  • 小規模なインストール アクティブ/アクティブまたはアクティブ/パッシブ クラスタリングを使います。この構成では、Microsoft Windows 2000 Server を実行している 2 つのノード、または Microsoft Windows 2000 Datacenter Server を実行している 4 つのノードがサポートされます。
  • 大規模なインストール SQL Server を実行しているクラスタ サーバーに NLB を使って、アクセスするカタログ データベース ビジネス ロジックに 1 つの仮想データベース名を提供します。

    あるいは、SQL Server のレプリケーション機能 (要件に応じて、スナップショットかトランザクションのいずれか) を使って、SQL Server を実行しているサーバー間でデータの一貫性を保つことができます。

    次の図は、NLB を使う構成を示しています。実際に、NLB は、SQL Server を実行している 8 台のサーバーを含むクラスタでテストされています。

    NLB を使うカタログ データベース クラスタを示す図

  • 非常に大規模なインストール 複数の NLB クラスタのフロントに 1 つの IP アドレスによるソリューションを配置します。次の図は、非常に大規模なインストールでのカタログ データベースの構成を示しています。

商品カタログ システムは、データベース テーブルに継続的に接続します。ネットワークやデータベースの問題によって接続が失われると、商品カタログ システムはその接続を再び確立しようとします。

カタログ データベースへのアクセスは、Global.ASA 内の Application_OnStart 関数で初期化されます。次に、Web アプリケーションが、CatalogManager オブジェクトを介して商品カタログ情報にアクセスします。CatalogManager オブジェクトは、カタログ データベースにアクセスします。CatalogManager オブジェクトの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • AppConfig オブジェクト (カタログ データベースの接続文字列を検出する)
  • 管理データベース
  • カタログ データベース (スキーマおよびデータを取得する)
  • NTFS ファイル システム (カタログの XML ファイルをインポートおよびエクスポートする)

関連項目

カタログ コンテンツを複製する

ビジネス デスク カタログ


対象化システム

Commerce Server 対象化システムのビジネス ロジックでは、割引、広告、送料、税金など、すべての作業情報がキャッシュされます。

CacheManager オブジェクトは、組み込み済みの再試行ロジックを持っています。このロジックは、RetryInterval プロパティを使って設定します。

更新タイマは、CacheManager オブジェクトの RefreshInterval プロパティでプログラムによって指定され、CacheManager が特定のキャッシュ オブジェクトを更新する頻度を制御します。キャッシュが更新されるたびに、データベースへの接続が作成されます。既存のキャッシュは、そのキャッシュの更新が正常に完了するまで破棄されません。

対象化システムを複数の Web サーバーにインストールし、SQL Server を実行しているコンピュータのネットワーク負荷分散 (NLB) クラスタを使って、対象化システムの可用性を高めることができます。

次の図は、必要なクラスタリング結果を得るために使用できる最小のデータベース ソリューションを示しています。この図では、ネットワーク負荷分散クラスタが、トラフィックをまずプライマリ SQL Server に向けるように構成されています。ネットワーク負荷分散クラスタは、プライマリ SQL Server が稼動していない場合にだけ、トラフィックをセカンダリ SQL Server に向けます。

対象化システムの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • AppConfig オブジェクト (必要なデータベースへの接続文字列を検出する)
  • 管理データベース (初期化)
  • カタログ データベース (商品情報用)
  • プロファイル データベース (式用)
  • マーケティング データベース


ダイレクト メーラー

クラスタ化された可用性の高いリソースとしてダイレクト メーラーを配置し、Windows クラスタリングの機能を活用できます。

ダイレクト メーラーは SQL Server Agent に依存し、SQL Server Agent はクラスタに対応しているので、Windows クラスタリング構成にダイレクト メーラー データベースをインストールできます。

サイトごとにダイレクト メーラーを 1 つだけ持つことができますが (ダイレクト メーラー グローバル リソースによって指定)、複数のサーバーにダイレクト メーラーをインストールできます。複数のダイレクト メーラー サービスが同じダイレクト メーラー データベースを共有することはできません。

ダイレクト メーラーは、クラスタに対応しているだけでなく、クラスタ化されたダイレクト メーラー データベースのエラーやドロップ ポイントのエラー、つまり、簡易メール転送プロトコル (SMTP) またはドロップ ディレクトリのエラーを処理します。たとえば、エラーを処理するために次の機能を備えています。

  • 起動時にデータベース接続を開始し、中断したジョブをすべて回復します。また、各ジョブのデータベース接続も開始します。データベース接続が失われた場合は、一時的な接続エラーを処理できます。
  • 回復可能なエラー (サーバーがクラッシュしたり、MSSQLSERVER サービスが長期間利用できなくなったなど) のために失敗したジョブは、サービスが再開されるときに自動的に再起動されます。
  • 各ジョブは、メーリング リストを介してその進行状況を追跡します。ただし、エラーの発生時点によっては、ダイレクト メーラーが再起動するときに、エラーの前に送信された最後のメッセージがもう一度送信されることがあります。

複数のスレッドを使うようにダイレクト メーラーを構成でき、ダイレクト メーラーの再起動時にスレッドごとに 1 つの重複メッセージが送信されることがあります。重複メッセージの数は、通常、プロセッサ上のスレッドの数と同じです。

次の表は、各エラー モードで行われる再試行を示しています。

エラー モード | アクション
メール送信のためのインポート/エクスポート準備中に、リスト マネージャでエラーが発生する。 | エラーが回復可能であり (SQL Server が利用できないなど)、データの問題ではないと判断された場合は、操作が最大 n 回再試行されます。それ以外の場合は、失敗します。
共同で使用するリスト マネージャを作成できない。 | 失敗。リスト マネージャはクラスタに対応していません。
メール送信中に、ダイレクト メール データベース サーバーでエラーが発生する。 n 回再試行します。Commerce Server マネージャで、次のダイレクト メーラー プロパティを設定します。
  • [再試行回数] DirectMailer データベースへの接続エラーが発生した場合に、接続を再試行する回数。再試行が回数分終了すると、アクティブ ジョブは終了します。
  • [再試行間隔] DirectMailer が再試行と再試行の間に待つ時間の長さ。
メール送信中に、SMTP サーバーが利用できなくなる。 | 一時停止して n 回再試行します。エラーが続く場合、そのメーリングはリストから削除されます。そのメーリングがリストの最後のメーリングである場合は、失敗します。
メール送信中に、ドロップ ディレクトリが利用できなくなる。 | 一時停止して n 回再試行します。エラーが続く場合、そのメーリングはリストから削除されます。そのメーリングがリストの最後のメーリングである場合は、失敗します。

ダイレクト メーラーを Windows サービスとして SQL Server にインストールします。ダイレクト メーラーは、初期化のために管理データベースにアクセスし、その後プロファイル システムを使って、ユーザー プロファイル情報、ダイレクト メーラー ジョブ情報、および IIS を取得し、パーソナライズされたページを表示します。最後に、Exchange Server メール ドロップ ディレクトリ (または SMTP サーバー) を使って、そのメールを送信します。ダイレクト メーラーの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • AppConfig オブジェクト
  • 管理データベース (初期化)
  • リスト マネージャ
  • ダイレクト メーラー データベース
  • IIS
  • NTFS (Exchange Server メール ドロップ ディレクトリ)
  • SMTP サーバー (ソケット接続)

リスト マネージャ サービスの可用性を保証するには、次の操作を行います。

  • リスト マネージャの接続先データベース (Commerce Server ビジネス デスクを使うための Campaigns データベース、およびダイレクト メーラー データベース) をクラスタ化します。
  • リスト マネージャは、同じ物理コンピュータ上でサーバーでもクライアントでもあり、クラスタリングによって利点が得られません。リスト マネージャ サービスに Windows クラスタリングを展開しないでください。
  • リスト マネージャを使うオブジェクトおよびサービスは必ずローカル インスタンスに接続するので、リスト マネージャをクラスタ化する必要はありません。

関連項目

ダイレクト メーラーの実行

ダイレクト メールを作成する

ユーザー レコード リストを管理する


認証

認証フィルタは、インターネット インフォメーション サービス (IIS) 5.0 の Internet Server Application Programming Interface (ISAPI) フィルタとして実装されます。認証フィルタは、AuthManager オブジェクトを呼び出して、管理データベースから初期化時の構成情報 (認証モードのパラメータや暗号化キーなど) を取得します。認証フィルタが依存しているのは、管理データベースだけです。

ユーザーが、複数の Web サーバーを持つサイトにアクセスすると、その要求は、負荷分散またはラウンドロビン アルゴリズムに基づいて、特定のサーバーに向けられます。要求がそのサーバーに到達すると、ユーザーはログインするように求められます。

認証に Active Directory ディレクトリ サービスを使っている場合は、ログインが ISAPI フィルタによってキャッシュされ、そのサーバーに固有のものとなります。また、Commerce Server は、そのクライアント サーバーに、ユーザー ID を含むチケット cookie を配置します。

ユーザーをクラスタ内の他の Web サーバーにシームレスにリダイレクトするには、他のサーバー上の ISAPI フィルタに十分な情報が渡され、ユーザーがログインできることを保証する必要があります。このプロセスをユーザーに意識させないようにするために、カスタム コードを記述する必要があります。カスタム コードを記述するには、次の操作を行います。

  1. プロファイル ストアを展開し、パスワードを格納します。
  2. ログインまたはサイト登録中にプロファイル ストア内のパスワードを取得します。
  3. サイト登録またはログイン ページに変更を加えて、チケット cookie の存在を確認します。

    チケット cookie が存在する場合は、MSCSAuthManager オブジェクトを使ってその cookie からユーザー ID を取得し、プロファイル ストアからユーザー名とパスワードを取得して、ユーザー名とパスワードを ISAPI フィルタに渡します。

負荷分散クラスタで操作するには、暗号化を元に戻せる状態でパスワードを格納する必要があります。パスワードはログイン ページで取得され、プロファイル ストアに書き込まれるので、ログイン ページはパスワードの変更も取得します。ただし、Active Directory ツールを使ってブラウザ セッション中にパスワードを変更する場合は、ユーザーがログインを求められ、新しいパスワードが取得されます。

注

  • Application Center Request Forwarder を配置することによって、以前の認証問題に対処できます。Application Center Request Forwarder は、認証が評価される前に要求を転送して、ユーザーを認識するサーバーにそのユーザーを転送できます。


ビジネス プロセス パイプライン

パイプライン コンポーネントは、試行が失敗した後に再試行するためのコンポーネントではありません。パイプラインが処理を停止すると、そのパイプライン プロセスは失敗し、注文は処理されません。

高い可用性を実装するには、ASP ページにコードを実装し、失敗したパイプライン プロセスを再試行して、n 回失敗すると、代わりのデータベース、ファイル、またはメッセージ キューにそのトランザクションを書き込むことができます。

パイプライン コンポーネントを複数の Web サーバーにインストールし、1 つの IP アドレスによるソリューションを使ってパイプライン コンポーネントの可用性を高めることができます。ネットワーク負荷分散では、パイプライン コンポーネントがインストールされているすべてのサーバーから 1 つの仮想サーバーを作成できます。問題がある場合は、稼動していないサーバーがクラスタから自動的に削除され、クラスタ内の機能しているサーバーに負荷が分散されます。

次の図は、パイプライン コンポーネントを分散する方法を示しています。

CPU を多く消費する場合は、カスタム パイプライン コンポーネントは、コンポーネント負荷分散サーバー上でホストできます。コンポーネント負荷分散は、Microsoft Application Center 2000 で利用できます。サーバー間でデータを共有する場合は負荷がかかりますが、コンポーネントによって大量の処理が行われる場合は、その負荷を許容できる場合があります。たとえば、デジタル メディア サイトが著作権侵害を防ぐために公開キーで音楽を暗号化するとします。暗号化は CPU を多く消費するので、そのプロセスを別のサーバーに移動する価値があります。暗号化コンポーネントが動作しているサーバーをクラスタ化し、パイプラインの他の部分を実行している Web サーバーの 1 台を使うことによって、それらのサーバーをアクティブにすることができます。

次の図は、CPU を多く消費するサービスを他のサービスから分離する方法を示しています。

注文処理パイプライン (OPP) にアクセスするには、COM+ パイプライン コンポーネントを使います。コンポーネントはプールされますが、OrderForm オブジェクトがリサイクルされてプールに入るときに、初期化、リセット、およびリサイクル インターフェイスが呼び出されます。そのインターフェイスを使って、OrderForm オブジェクトがプールに戻るときに接続やメモリの解放などを行うことができ、また、コンポーネントが要求されたときにデータベース接続を初期化できます。

ビジネス プロセス パイプラインの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • QueryCatalogInformation オブジェクト (カタログ データベースにアクセスする)
  • トランザクション データベース (バスケットと注文の保存および読み込み)
  • リモート COM+ アプリケーション (存在する場合)


データ ウェアハウス

データ ウェアハウスには、オフラインとオンラインのコンポーネントがあります。オフラインとオンラインのコンポーネントでは、可用性の要件が大きく異なります。インポートされた未処理データを含む非常に大規模なデータベースは、データがインポートされている間はクエリ (オフライン) で利用できないようにする必要があります。必要に応じて、このデータベースをクラスタ化することができます。また、データベースに高い可用性が必要でない場合は、データベースをテープや他の恒久的なメディアに定期的にバックアップすることができます。Commerce Server 2002 のデータ ウェアハウスは、OLAP クラスタリングをサポートしていません。

データ ウェアハウスは、ビジネス分析システムおよび対象化システムのために IIS ログをインポートします。データ ウェアハウスの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • 管理データベース (初期化)
  • IIS ログ インポート プロセス
  • IIS ログ ファイル システム
  • 商品カタログ インポート データ変換サービス (DTS) タスク
  • トランザクション データ (バスケットおよび注文) インポート DTS タスク
  • プロファイル データ インポート DTS タスク
  • キャンペーン データ インポート DTS タスク

データ ウェアハウスの可用性を保証するには、次の操作を行います。

  • 管理、プロファイル、カタログ、トランザクション、およびマーケティングの各データベースに Windows クラスタリングを展開します。
  • NTFS (IIS ログ ファイル システム) に Windows クラスタリングを展開します。

オンライン分析処理 (OLAP) キューブは、インポートするデータを含むためにデータ ウェアハウスで使用するデータ構造です。ビジネス分析システムは、このデータを使って、静的および動的レポートを生成します。このシステムの単一障害点 (SPOF : Single Point of Failure) となる要因としては、次のものがあります。

  • 管理データベース
  • データ ウェアハウス データベース
  • OLAP/分析データベース
  • Commerce Server ビジネス デスク

ビジネス分析システムの可用性を保証するには、次の操作を行います。

管理データベースおよびデータ ウェアハウス データベースに Windows クラスタリングを展開します。データ ウェアハウスは、OLAP クラスタリングをサポートしていません。

注

  • SQL Server を実行しているコンピュータを Windows クラスタリングに追加できますが、Windows クラスタリングを使って OLAP サーバーをクラスタ化することはできません。

データ ウェアハウスは、各インポートおよびパーサー データ変換サービス (DTS) タスクのためにデータベース接続を開始します。この接続は、そのプロセスの間保持され、その後切断されます。プロセスの間にデータベースが利用できなくなると、そのプロセスは失敗しますが、再起動できます。インポート処理中にエラーが発生した場合は、部分的にインポートされたデータをすべて手動で削除し、すべてのインポート DTS タスクを再起動する必要があります。キューブの生成中にエラーが発生した場合は、インポート後の DTS タスクを手動で再起動する必要があります。

Commerce Server データ ウェアハウスには、信頼性を高めるいくつかの機能が備わっています。これらの機能には、次のものがあります。

  • タスクの再試行 Commerce Server が失敗したタスクを試行する回数および頻度を制御するには、Commerce Server DTS タスクの再試行オプションを使います。
  • Web ログ ファイル インポートの再開 すべての再試行を行った後に Commerce Server が Web ログ ファイル インポートの失敗を処理する方法を制御するには、Web ログ ファイル インポート DTS タスクの再開オプションを使います。
  • タスクの履歴 実行した DTS タスクの状態を表示するには、Commerce Server マネージャのタスクの履歴を使います。

これらの機能を使うと、インポート プロセスを再開して異常なログをスキップできるので、データ ウェアハウスの可用性と信頼性を最大限にすることができます。

関連項目

データ ウェアハウスの実行


1 つのデータ ウェアハウスを共有する複数のサイトを配置する

複数の Microsoft Commerce Server サイトを配置して、それらの間で 1 つのデータ ウェアハウスを共有することができます。ローカル コンピュータやリモート コンピュータにサイトをアンパックして、ローカル コンピュータまたはリモート コンピュータ上のデータ ウェアハウスに追加することが可能です。

重要

  • Commerce Server レポートを実行すると、データ ウェアハウスにある全サイトのデータを見ることができます。ある 1 つのサイトについてのデータを調べる場合は、グループ化されたレポートを使います。

1 つのデータ ウェアハウスを共有する複数のサイトを使う方法については、「複数のサイトと 1 つのデータ ウェアハウス」を参照してください。

2 つのサイトをアンパックして、それらにデータ ウェアハウス リソースとプロファイル リソースを共有させるには、次の手順に従ってください。

最初のサイトをアンパックするには

データ ウェアハウスに別のサイトを追加するには

最初のサイトをアンパックするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。
  2. [Commerce Server サイト パッケージャへようこそ] ダイアログ ボックスで、[パッケージ ファイル (.pup) からアンパックする] を選択し、[次へ] をクリックします。
  3. [アンパック] ダイアログ ボックスで、アンパックするファイルのパスと名前を入力するか、または [参照] ボタンをクリックします。
  4. [参照] ボタンをクリックした場合は、[ファイルを開く] ダイアログ ボックスで、アンパックするファイルが含まれているフォルダを開き、ファイルを選択して [開く] をクリックします。
  5. [アンパック] ダイアログ ボックスが再び表示されたら、[カスタム] を選択し、[次へ] をクリックします。
  6. [アンパック方法] ダイアログ ボックスで [新しいサイトの作成] を選択し、[次へ] をクリックします。
  7. [サイト名] ダイアログ ボックスで、新しいサイトの名前を入力し、[次へ] をクリックします。

    注

    サイト名には、次のような制限事項があります。

    • サイト名に特殊文字 (#、@、%、' など) を使わないでください。特殊文字が含まれるサイト名は、SQL Server データベースで認識されない可能性があります。詳細については、SQL Server Books Online を参照してください。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
    • サイト名は最大 127 文字まで入力できます。
  8. [リソースの選択] ダイアログ ボックスで、[すべて追加] をクリックし、[次へ] をクリックします。

    注

    • [リソースの選択] ダイアログ ボックスでは、[CS 認証] リソースと [プロファイル] リソースを一緒にインストールする必要があります。両方がインストールされていないと機能しません。
  9. [グローバル リソース ポインタ] ダイアログ ボックスの [グローバル リソース ポインタ] ボックスの一覧で、[データ ウェアハウス] をクリックします。
  10. [既存のグローバル リソース] ボックスの一覧で、[(新しいグローバル リソースを追加)] をクリックします。
  11. [グローバル リソース ポインタ] ボックスの一覧で [プロファイル] をクリックし、[既存のグローバル リソース] ボックスの一覧で [(新しいグローバル リソースを追加)] をクリックして、[次へ] をクリックします。
  12. [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。データベースとサーバーを変更するために、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、新しいデータベースとサーバーの名前を選択または入力し、[OK] をクリックします。

    注

    • データベース接続文字列をコピーする場合は、コピー元の接続文字列が含まれる行を選択し、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、コピー元のサーバーとデータベースの名前を選択または入力し、[OK] をクリックします。[データ ベースの接続文字列] ダイアログ ボックスで、コピー元の接続文字列が含まれる行を再度選択し、[コピー] をクリックします。データベース接続文字列のコピー先の行を選択し、[貼り付け] をクリックします。
  13. [次へ] をクリックします。
  14. サイト パッケージャでデータベースを作成する必要がある場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスが表示されます。このダイアログ ボックスで指定した情報は、インストールされた SQL Server の Master データベースに接続するときに使用されます。
  15. [Commerce Server サイト パッケージャ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [Windows 統合セキュリティを使用] データベースに対して Windows 統合セキュリティを使用する場合は、このチェック ボックスをオンにします。

    注

    • Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] | データベースの SQL Server ログイン名を入力します。
    [SQL Server ログイン パスワード] | SQL Server ログイン パスワードを入力します。
  16. [OK] をクリックします。
  17. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。
  18. [IIS コンピュータ、Web サイトおよびパスの選択] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [IIS コンピュータ名] アプリケーション ファイルのアンパック先となる、IIS Web サーバーのコンピュータの名前を入力します。

    注

    • アプリケーション ファイルをリモート サーバーにアンパックする場合は、アンパック先のサーバーに Commerce Server 2002 がインストールされている必要があります。Commerce Server 2002 がインストールされていないサーバーでは、ビジネス デスクを実行できません。
    [最新の情報に更新]
    • リモート コンピュータにある Web サイトの一覧を更新する場合にクリックします。
    [IIS Web サイト] 選択したアプリケーションの IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [IIS パス] | 選択したアプリケーションの IIS パスの名前を入力します。

    注

    • IIS のエラーを回避するには、仮想ディレクトリ名に特殊文字 (#、@、%、' など) を使わないようにしてください。
    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
    • アプリケーションを Web サイトのルートにアンパックする場合は、スラッシュ (/) を使用するか、または IIS パス フィールドを空白にします。
  19. [次へ] をクリックします。
  20. データ ウェアハウス リソースをサイトに追加した場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] | SQL 分析 (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  21. [OK] をクリックします。
  22. プロファイル リソースをサイトに追加した場合、2 つの [システム プロファイリング] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 操作
    [プロファイル スキーマの定義] サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をこのボックスに指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
    [サイト用語の定義] サイトをパックするときに、データベースにあるサイト用語定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をこのボックスに指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
    [式の定義] サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をこのボックスに指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。
  23. [次へ] をクリックします。
  24. プロファイル リソースをサイトに追加した場合、2 つの [システム プロファイリング] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 | 操作
    [プロファイル システムの接続文字列] | プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、新しい接続文字列を構成します。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] ランタイム データ ストアにプロファイル テーブルを作成するためのスキーマ定義スクリプトを指定します。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    ソリューション サイトをアンパックするときは、SCHEMAUPM_SQLSource.SQLSource を指定します。このスクリプトを実行すると、既定のプロファイル定義 (住所、一括注文数、組織、対象とするコンテキスト、およびユーザー オブジェクト) のためのテーブルが作成されます。

    スクリプトの例については、ProfileSQL.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、新しいプロファイル データベースにプロファイル データがインポートされます。

    スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。
  25. [OK] をクリックします。
  26. Windows 統合セキュリティを使用する場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認して、[OK] をクリックします。
  27. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  28. [完了] をクリックし、サイト パッケージャを閉じます。

データ ウェアハウスに別のサイトを追加するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。
  2. [Commerce Server サイト パッケージャへようこそ] ダイアログ ボックスで、[パッケージ ファイル (.pup) からアンパックする] を選択し、[次へ] をクリックします。
  3. [アンパック] ダイアログ ボックスで、アンパックするファイルのパスと名前を入力するか、または [参照] ボタンをクリックします。
  4. [参照] ボタンをクリックした場合は、[ファイルを開く] ダイアログ ボックスで、アンパックするファイルが含まれているフォルダを開き、ファイルを選択して [開く] をクリックします。
  5. [アンパック] ダイアログ ボックスが再び表示されたら、[カスタム] を選択し、[次へ] をクリックします。
  6. [アンパック方法] ダイアログ ボックスで [新しいサイトの作成] を選択し、[次へ] をクリックします。
  7. [サイト名] ダイアログ ボックスで、新しいサイトの名前を入力し、[次へ] をクリックします。

    注

    サイト名には、次のような制限事項があります。

    • サイト名に特殊文字 (#、@、%、' など) を使わないでください。特殊文字が含まれるサイト名は、SQL Server データベースで認識されない可能性があります。詳細については、SQL Server Books Online を参照してください。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
    • サイト名は最大 127 文字まで入力できます。
  8. [リソースの選択] ダイアログ ボックスで、[すべて追加] をクリックし、[次へ] をクリックします。

    注

    • [リソースの選択] ダイアログ ボックスでは、[CS 認証] リソースと [プロファイル] リソースを一緒にインストールする必要があります。両方がインストールされていないと機能しません。
  9. [グローバル リソース ポインタ] ダイアログ ボックスの [グローバル リソース ポインタ] ボックスの一覧で、[データ ウェアハウス] をクリックします。
  10. [既存のグローバル リソース] ボックスの一覧で、サイトが使う既存のデータ ウェアハウス リソースをクリックします。
  11. [グローバル リソース ポインタ] ダイアログ ボックスの [グローバル リソース ポインタ] ボックスの一覧で、[プロファイル] をクリックします。
  12. [既存のグローバル リソース] ボックスの一覧で、サイトが使う既存のプロファイル リソースをクリックし、[次へ] をクリックします。
  13. [データ ベースの接続文字列] ダイアログ ボックスに、データ ウェアハウスおよびプロファイルへの接続文字列が表示されなくなります。これは、サイトをアンパックする時点で既にこれらのリソースが存在していて、接続文字列がすべて定義済みになっているためです。

同じデータ ウェアハウスに別のサイトを追加するには、「データ ウェアハウスに別のサイトを追加するには」を参照してください。


サイトをバックアップする

サイトの配置と構成が終わったら、サイトのすべてのファイルをバックアップして、サーバーで障害が発生した場合にサイトを復元できるようにします。サイトが小規模な場合、サイトをバックアップする最も簡単な方法は、Commerce Server サイト パッケージャを使ってサイトを再パッケージ化することです。新しいパッケージには、現在のサイトに固有の多くの構成設定が保存されます。使用するコンピュータに固有のプロパティはパッケージ化されません。たとえば、Commerce Server マネージャで設定した Web サーバー プロパティやいくつかのアプリケーション プロパティはパッケージ化されません。各リソースごとにパッケージ化されるデータの一覧については、「リソースとデータがアンパックされる場所」を参照してください。

次のコンポーネントは、サイトをパッケージ化するときにはパッケージ ファイルに格納されないため、別の方法でバックアップする必要があります。

  • データ ウェアハウス リソース
  • ダイレクト メーラー
  • 予測リソース
  • プロファイル リソースの既存のデータベース

サイトの構成を変更するたびに、必ずサイトを再パッケージしてください。サイトをパッケージ化する方法の詳細については、「サイトをパッケージ化する」を参照してください。

サイトをパッケージ化するだけでなく、定期的にシステム バックアップ ソフトウェアを使って、サーバーのハード ドライブ上にあるデータのフル バックアップ コピーを作成することをお勧めします。

サイトが大規模な場合は、サイトのパッケージ ファイルの作成が現実的でない場合があります。このような場合は、各コンポーネント (アプリケーションやデータベースなど) を適切な方法でバックアップする必要があります。

Commerce Server の設定は、変更するたびにバックアップしておくことをお勧めします。バックアップしておくと、ハードウェアやソフトウェアに障害が発生しても、前の状態に簡単に戻すことができます。次の一覧は、各種の Commerce Server コンポーネントに適したバックアップ ツールを示しています。

Commerce Server をバックアップするには

  1. SQL Enterprise Manager を使って、SQL Server データベースをバックアップします。
  2. Microsoft Windows 2000 バックアップ ウィザードを使って、インターネット インフォメーション サービス (IIS) 5.0 メタベースをバックアップします。
  3. Windows 2000 バックアップ ウィザードを使って、レジストリをバックアップします。
  4. Windows 2000 バックアップ ウィザードを使って、Commerce Server ファイルをバックアップします。
  5. Commerce Server サイト パッケージャを使って、Commerce Server サイトをパッケージ化します。

Commerce Server を復元するには

  1. Windows 2000 バックアップ ウィザードを使って、IIS メタベースを復元します。
  2. Windows 2000 復元ウィザードを使って、レジストリを復元します。
  3. Windows 2000 復元ウィザードを使って、Commerce Server ファイルを復元します。
  4. Commerce Server サイト パッケージャを使って、Commerce Server サイトとリソースをアンパックします。

ここでは、次のトピックについて説明します。

  • Commerce Server のバックアップに関するヒント集 Commerce Server 2002 データベースのバックアップに関する推奨事項について説明します。
  • バックアップ方法を設計する SQL Server データベースの復旧モデル、バックアップ オプション、バックアップ方法の設計に関する推奨事項、およびサンプルのバックアップ方法を実装する方法について説明します。
  • Commerce Server データベースを復元する SQL Server データベースの復元オプションと、Commerce Server 2002 データベースの復元に関する推奨事項について説明します。

関連項目

サイト パッケージャを使う


Commerce Server のバックアップに関するヒント集

ここでは、Commerce Server のバックアップに関するヒント集を示します。

  • トランザクション ログ ファイルは、頻繁にバックアップしてサイズを管理する。

    トランザクション ログ ファイルは、バックアップすると SQL Server によって自動的に切り捨てられます。したがって、バックアップを頻繁にすると、トランザクション ログ ファイルのファイルのサイズはより小さくなります。

  • トランザクション ログ ファイルは、定期的にバックアップする。また、他の種類のバックアップを実行する場合は、その前にトランザクション ログ ファイルをバックアップする。

    トランザクション ログ ファイルをバックアップする頻度によって、障害発生時点の状態にどの程度まで正確に復元できるかが決まります。データベースは、障害が発生する以前の、最後にトランザクション ログ ファイルをバックアップした時点の状態に復元することができます。また、他の種類のバックアップを実行する場合は、その前にトランザクション ログ ファイルをバックアップしておくと、そのバックアップが失敗した場合にデータベースを復元できます。

  • 必要とされる復元の正確さの程度に応じたバックアップ方法を計画する。

    SQL Server に用意されているバックアップ ツールを使うと、細分レベルの異なるバックアップを作成できます。データベースに変更が加えられる頻度や、データベース障害の発生後に最新の状態に復元する必要性によって、バックアップ方法は単純にも複雑にもなります。

  • tempdb データベースはバックアップしない。

    tempdb データベースには、データベースの操作に必要なデータは格納されていません。Commerce Server データベースは、データやトランザクション ログ ファイルの格納先とは別の物理ディスクにバックアップします。

    Commerce Server データベースを別の物理ディスクにバックアップすると、次のような利点があります。

    • バックアップ中におけるデータベースのパフォーマンスは最大になります。
    • バックアップ先ディスクへの書き込み操作はバックアップそれ自体だけなので、バックアップのパフォーマンスは最大になります。
    • ディスク障害が発生した場合にはバックアップは保護されます。
  • データベースを復元するときは、関連付けられたフルテキスト インデックスはすべて再作成する。
データベースをバックアップしても、フルテキスト カタログのフルテキスト インデックス データはバックアップされません。ただし、テーブルにフルテキスト インデックスが定義されている場合は、そのメタ データはデータベース バックアップの作成時にバックアップされます。データベース バックアップを復元すると、フルテキスト インデックス カタログは再作成および再設定されます。詳細については、SQL Server Books Online の「フルテキスト インデックス」を参照してください。
  • sp_spaceused ストアド プロシージャを使ってバックアップのサイズを見積もり、必要な領域を管理する。
バックアップが完了する前にバックアップ デバイスの記憶領域が使い果たされると、バックアップは失敗します。sp_spaceused ストアド プロシージャを使うと、現在のデータベースのテーブルの行数、予約済みディスク容量、および使用済みディスク容量を表示できます。また、データベース全体の予約済みディスク容量および使用済みディスク容量を表示できます。

sp_spaceused ストアド プロシージャの使用については、SQL Server Books Online の「システム ストアド プロシージャ」を参照してください。

  • 全体のバックアップは、別々の物理ディスク上にある複数のバックアップ デバイス間でストライプし、データベースのバックアップに要する時間を最小限に抑える。

    バックアップを複数のバックアップ デバイス間でストライプすると、バックアップの処理速度が向上し、バックアップ デバイス 1 つあたりのメモリ ヒット数とパフォーマンス ヒット数が減少します。

  • バックアップの間隔は、データの消失が最小限になるように短く、しかも生産性が低下しない程度に長くする。

    バックアップ中は、運用データベースに書き込みを行うことができません。バックアップは、深夜など、ユーザーがあまり利用しない時間帯に実行するようにスケジュールを設定します。データベースをバックアップする頻度は、利用状況のレベルや増加率を調べて決定します。たとえば、データベース サーバーがクラッシュした場合に失われるデータを、その時点までの最大で 120 分間に処理したデータに抑える必要がある場合は、120 分間隔でトランザクション ログ ファイルのバックアップを実行する必要があります。このようなバックアップは、あまり利用数が多くない正午に 1 回バックアップを実行するようにスケジュールを設定し、できるだけユーザーと競合しないようにします。


バックアップ方法を設計する

バックアップ方法は、データベースに追加されるデータの速度と量に基づいて設計します。たとえば、ほとんど変更が加えられないデータベースと、連続的に大量のデータが追加されるデータベースとでは、バックアップ方法を変えます。Commerce Server ではデータベースごとに用途が異なるため、データベース単位で検討します。たとえば、トランザクション データベースでは 1 日に 100 回以上変更が加えられる場合があります。一方、Commerce Server 管理データベースでは 1 か月に 1 回しか変更が加えられない場合があります。この例では、トランザクション データベースをバックアップする頻度を高くし、管理データベースをバックアップする頻度を低くします。

変更が加えられる頻度だけでなく、データベースの可用性が必要かどうかも検討する必要があります。データベースをバックアップすることも重要ですが、特定の時点でユーザーがデータベースにアクセスできることも重要です。運用データベースをバックアップする場合は、バックアップがサイトの可用性に与える影響をできるだけ小さくする必要があります。

ディレクトリのデータ ファイルや構成ファイルは、磁気テープなどの従来型のメディアや、個別のローカルまたはネットワークのディスク ドライブにバックアップできます。分散環境では、ディレクトリは、負荷分散、高可用性、およびローカライズされたアクセスを実現するために頻繁に複製されます。

SQL Server データベースは、データベースを含むドライブとは別の物理ドライブにバックアップすることをお勧めします。RAID アレイを使ってバックアップ用の単一の論理ドライブを作成したり、ストライプを使ってバックアップを複数のドライブに書き込んだりすることができます。テープを使ったバックアップと復元には時間がかかります。しかも、バックアップされたデータは、バックアップが作成された時点での最新のものにすぎません。ほとんどの場合は、ピアの複製物からディレクトリを再構築することが適しています。これは、ピアの複製物のデータはオンラインであり、データが常に最新であるためです。

ここでは、次のトピックについて説明します。

  • 復旧モデル
  • バックアップの種類
  • 復旧モデルでサポートされるバックアップの種類
  • ミッション クリティカルな環境でバックアップと復元にかかる時間を最小限に抑える
  • バックアップの制限事項
  • サンプルのバックアップ方法を実装する
  • バックアップを確認する


復旧モデル

データベースのバックアップと復元を実行するには、SQL Server のバックアップと復元の機能を使います。SQL Server には、シンプル、フル、および一括ログ記録の 3 つの復旧モデルと、データベース全体、差分、トランザクション ログ、およびデータベース ファイルまたはファイル グループの 4 種類のバックアップが用意されています。SQL Server は、各テーブルに対して実行されるバックアップの種類と時間を追跡します。4 種類のバックアップすべてを定期的に使うバックアップ方法を設計することで、障害が発生した場合に必要なものを正確に復元できるようになります。

次の表は、3 つの復旧モデルの利点や意味の概要を示しています。

復旧モデル | 利点 | 作業損失の可能性 | 時刻を指定した復旧
シンプル | 高いパフォーマンスの一括コピー操作が可能です。ログ ファイル領域が開放されるため、必要な領域は小さくなります。 | 最新のバックアップ以降に加えられている変更はやり直す必要があります。 | バックアップ全体を復旧できます。加えられている変更はやり直す必要があります。
フル | データ ファイルの損失や損傷によって作業が失われることはありません。任意の時点に復旧できます (アプリケーション エラーまたはユーザー エラーが発生する前の時点など)。 | 通常、作業が失われることはありません。ログ ファイルが損傷した場合は、最新のログ ファイルのバックアップ以降に加えられている変更をやり直す必要があります。 | 任意の時点に復旧できます。
一括ログ記録 | 高いパフォーマンスの一括コピー操作が可能です。一括ログ記録操作では最小限のログ ファイル領域しか使われません。 | ログ ファイルが損傷した場合、または最新のログ ファイルのバックアップ以降に一括ログ記録操作が行われた場合は、前回のバックアップ以降に加えられている変更をやり直す必要があります。それ以外の場合、作業が失われることはありません。 | バックアップ全体を復旧できます。加えられている変更はやり直す必要があります。


バックアップの種類

SQL Server には、次の 4 種類のバックアップが用意されています。

  • データベース全体のバックアップ データベースが主に読み取り専用のデータベースである場合は、データベース全体のバックアップによってデータの損失を防止できる場合があります。データベース全体のバックアップは、システム障害のイベントにおける基準として機能します。データベース全体のバックアップが実行されると、SQL Server は次の処理を行います。
    • バックアップ中における利用状況をすべてバックアップします。
    • トランザクション ログ ファイル内のコミットされていないトランザクションをすべてバックアップします。SQL Server は、トランザクション ログ ファイルのバックアップ ファイル内に取得された部分を使って、バックアップの復元時にデータの整合性を維持します。
  • 差分バックアップ 頻繁に変更が加えられるデータベースの復元にかかる時間を最小限に抑えるには、差分バックアップを実行します。差分バックアップを実行するには、データベース全体のバックアップを実行済みであることが必要です。差分バックアップでは、SQL Server は次の処理を行います。
    • 前回のデータベース全体のバックアップ以降にデータベースに変更が加えられた部分をバックアップします。ページ上のログ ファイル シーケンス番号 (LSN) と前回のデータベース全体のバックアップの同期 LSN を比較します。差分バックアップが実行されると、SQL Server は個々のページではなく、エクステントをバックアップします。エクステントがバックアップされるのは、エクステントの任意のページの LSN が前回のデータベース全体のバックアップの LSN より大きい場合です。
    • 差分バックアップの実行中の利用状況、およびトランザクション ログ ファイル内のコミットされていないトランザクションをすべてバックアップします。
  • トランザクション ログ ファイルのバックアップ データベースへの変更をすべて記録するには、トランザクション ログ ファイルをバックアップします。トランザクション ログ ファイルがバックアップされた時点にデータを復元するには、トランザクション ログ ファイルのバックアップを、データベース全体のバックアップおよびオプションの差分バックアップと併用します。データベース ファイルの全体のバックアップを実行すると、トランザクション ログ ファイルは自動的にバックアップされます。トランザクション ログ ファイルをバックアップするには、データベース全体のバックアップを少なくとも 1 回実行しておく必要があります。データベース全体のバックアップは、トランザクション ログ ファイルのバックアップを復元するために必要です。トランザクション ログ ファイルのバックアップを復元するには、対応するデータベースのバックアップが必要になります。シンプル復旧モデルを使う場合は、トランザクション ログ ファイルをバックアップすることはできません。シンプル復旧モデルについては、SQL Server Books Online を参照してください。トランザクション ログ ファイルのバックアップでは、SQL Server は次の処理を行います。
    • 前回正常に実行された BACKUP LOG ステートメントから現在のトランザクション ログ ファイルの最後まで、トランザクション ログ ファイルをバックアップします。
    • 前にバックアップされたエントリをトランザクション ログ ファイルから削除し、アクティブな部分をバックアップします。トランザクション ログ ファイルのアクティブな部分とは、トランザクションが最も古く開かれた時点から、トランザクション ログ ファイルの最後までです。
  • データベース ファイルまたはファイル グループのバックアップ 全体のバックアップおよび差分バックアップを実行する以外に、個々のデータベース ファイルやファイル グループをバックアップできます。個々のデータベース ファイルまたはファイル グループをバックアップする場合は、復元後のファイルをデータベースの残りの部分との整合性を保持するため、トランザクション ログ ファイルのバックアップを実行する必要があります。この方法を使って最大 16 のファイルまたはファイル グループを指定することができます。個々のファイルまたはファイル グループをバックアップする場合、SQL Server は次の処理を行います。
    • FILE オプションまたは FILEGROUP オプションで指定されたデータベース ファイルだけをバックアップします。FILE オプションと FILEGROUP オプションについては、SQL Server Books Online を参照してください。
    • データベース全体ではなく、特定のデータベース ファイルをバックアップできます。
データベース ファイルまたはファイル グループのバックアップについては、SQL Server Books Online を参照してください。

重要

  • データベース障害が発生した場合は、NO_TRUNCATE オプションを使ってトランザクション ログ ファイルをバックアップします。このオプションを使うと、最近のデータベースの利用状況がすべてバックアップされます。NO_TRUNCATE オプションにより、データベースにアクセスできない場合でも、SQL Server でトランザクション ログ ファイル全体 (前回の BACKUP LOG ステートメント以降のすべての利用状況) が保存されます。完了したトランザクションはトランザクション ログ ファイルからは削除されないため、システム障害の発生時点までデータを復旧できます。NO_TRUNCATE オプションの詳細については、SQL Server Books Online を参照してください。


復旧モデルでサポートされるバックアップの種類

次の表は、各復旧モデルで利用できるバックアップの種類を示しています。

復旧モデル | データベース全体のバックアップ | 差分バックアップ | トランザクション ログ ファイルのバックアップ | ファイル/ファイル グループのバックアップ
シンプル | 必須 | 省略可 | 使用不可 | 使用不可
フル | 必須 | 省略可 | 必須 | 省略可
一括ログ記録 | 必須 | 省略可 | 必須 | 省略可

データベース バックアップを作成する場合、データベース内のデータだけがバックアップ ファイルにコピーされ、データベース内の未使用の領域はコピーされません。したがって、データベース バックアップは、データベース自体よりもサイズが小さくなるのが一般的です。データベース バックアップの見積もりサイズは、sp_spaceused システム ストアド プロシージャを使って求めることができます。予約済みの値が見積もりサイズです。

Microsoft SQL Server は、トランザクション ログ ファイルのバックアップ時にこのファイルを切り捨てます。したがって、データベース バックアップを作成する場合は、データベースでチェックポイントが発生するたびにトランザクション ログ ファイルを自動的にバックアップすることをお勧めします。この設定により、トランザクション ログ ファイルの容量が不足することを避けることができます。容量不足になった場合には、手動でトランザクション ログ ファイルを切り捨てる必要があります。ただし、切り捨てることでデータが失われる可能性があります。

データベース バックアップだけを作成する場合は、バックアップの間隔を適切な長さに設定します。目安としては、バックアップ作業が生産性に影響を与えない程度に長く、しかも相当量のデータを損失しない程度に短くします。重要なデータがなく、データの変更頻度も低いデータベースであれば、週に 1 度または隔週に 1 度のバックアップで十分です。重要なデータが多く、データの変更頻度も高いデータベースであれば、日に 1 度かそれ以上の頻度でバックアップすることをお勧めします。通常読み取り専用になっているデータベースであれば、定期的に新規データで更新した後にだけバックアップすることをお勧めします。

また、データベース バックアップは同じものを複数個作成しておいた方が賢明です。バックアップ専用のメディアをいくつか用意して、データベースの複数のバージョンを復元できるようにすることをお勧めします。これにより、しばらく検出されないような誤った変更をユーザーが加えた場合にも対処できます。また、最新のバックアップ メディアが損傷しても、それ以前のバックアップの状態に戻すことができます。


ミッション クリティカルな環境でバックアップと復元にかかる時間を最小限に抑える

ミッション クリティカルな環境では、多くの場合、データベースを絶えず使用できる状態にしておく必要があります。少なくとも、中断時間を最小限に抑えて使用可能な時間を長く保たなければなりません。したがって、データベースの復元を要するような不測の事態 (ハードウェア障害など) が発生した場合には、できる限り短い時間でその問題を解決する必要があります。また、ミッション クリティカルなデータベースは大規模になるのが一般的で、他のデータベースに比べてバックアップと復元にかかる時間が長くなります。Microsoft SQL Server には、バックアップ操作と復元操作の実行速度を上げるための方法がいくつか用意されています。どちらの操作でも、ユーザーへの影響を最小限に抑えることができます。

次の方法で、バックアップ時間を最小限に抑えます。

  • 複数のバックアップ デバイスを同時に使います。これにより、すべてのデバイスに同時にバックアップを書き込むことができます。同様に、複数のデバイスから同時にバックアップを復元できます。
  • データベース、差分データベース、トランザクション ログ ファイルの各バックアップを組み合わせて使います。これにより、データベースを障害発生時の状態にするための必要なバックアップの数を最小限に抑えることができます。
  • ファイル、ファイル グループ、トランザクション ログ ファイルの各バックアップを使います。これにより、操作対象のデータが含まれているファイルだけをバックアップまたは復元できます。データベース全体をバックアップする必要がありません。


バックアップの制限事項

SQL Server では、データベースがオンラインで使用中のときでも、バックアップ操作を行うことができます。ただし、データベースをバックアップしている間は、次の操作を行うことができません。

  • データベース ファイルの作成と削除
  • インデックスの作成
  • ログに記録されない操作の実行
  • データベースまたはデータベース ファイルの自動または手動による縮小

上記のいずれかの操作を実行しているときは、バックアップの操作を始めようとしても直ちに終了します。バックアップの操作を実行しているときに上記のいずれかの操作を始めようとしても、その操作は失敗し、バックアップの操作が続けられます。


サンプルのバックアップ方法を実装する

次の例では、Commerce Server <サイト名>_commerce データベースのバックアップ方法として、週に 2 回データベース全体のバックアップ、1 日に 2 回差分バックアップ、および 30 分に 1 回トランザクション ログ ファイルのバックアップを実行します。バックアップ先は、別の物理ドライブにします。バックアップを自動的に実行するようにスケジュールを設定します。

サンプルのバックアップ方法を実装するには

  1. バックアップするデータベースを特定します。
  2. バックアップ デバイスを特定します。
  3. 実行するバックアップの頻度と種類を決めます。
  4. バックアップのスケジュールを設定します。

バックアップ スケジュールを実装するには

手順 1 : Commerce Server データベース全体のバックアップを実行する

手順 2 : 火曜日と金曜日のそれぞれ午前 2:00 にデータベース全体のバックアップを実行するようにスケジュールを設定する

手順 3 : 30 分ごとにトランザクション ログ ファイルのバックアップを実行するようにスケジュールを設定する

手順 4 : 毎日正午と午前 0:00 に差分バックアップを実行するようにスケジュールを設定する


手順 1 : Commerce Server データベース全体のバックアップを実行する

Commerce Server <サイト名>_commerce データベース全体のバックアップを作成するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、バックアップを作成するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースのバックアップ] をクリックします。
  3. [SQL Server バックアップ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | バックアップ セットの名前として「Full-<現在の日付 (mmddyy 形式)>」と入力します。
    [説明] | バックアップ セットの説明として、「Commerce データベース全体のバックアップ」と入力します。
    [バックアップ] | [データベース - 全体] を選択します。
  4. [バックアップ先] セクションで [追加] をクリックし、バックアップ デバイスを追加します。
  5. [バックアップ先の選択] ダイアログ ボックスで、[ファイル名] をクリックします。次に 省略記号 をクリックしてバックアップ先のファイルを選択します。
  6. [バックアップ デバイスの場所] ダイアログ ボックスの [ファイル名] ボックスで、「CommFull」と入力し、[OK] をクリックします。
  7. [OK] をクリックして、[バックアップ先の選択] ダイアログ ボックスを閉じます。
  8. [SQL Server バックアップ] ダイアログ ボックスの [上書き] セクションで、次の操作を行います。
    項目 | 操作
    [メディアに追加] | バックアップ デバイス上の既存のバックアップにバックアップを追加します。
    [既存のメディアに上書き] | バックアップ デバイス上の既存のバックアップを上書きします。
    [スケジュール] | 必要に応じて、[スケジュール] を選択してバックアップ操作のスケジュールを設定します。後で実行したり定期的に実行したりすることができます。
  9. 必要に応じて、[オプション] タブをクリックし、次のいずれかのバックアップ オプションを選択します。
    • [完了時にバックアップを検証]バックアップ完了時にバックアップの内容を確認します。
    • [バックアップ後にテープを取り出す]バックアップ操作が完了したらテープを取り出します。これは、テープ デバイスにのみ有効です。
    • [メディア名とバックアップ セットの有効期限を確認]誤って上書きされるのを防ぐため、バックアップ メディアをチェックします。[メディア セット名] ボックスに、バックアップ操作に使用するメディアの名前を入力します。バックアップ セットの有効期限だけを指定するときは、空白のままにしておきます。
  10. 初めて使用するバックアップ メディアの場合、または既存のメディアのラベルを変更する場合は、[メディア セット ラベル] セクションの [メディアの初期化とラベルの設定] を選択し、メディア セットの名前とその説明を入力します。メディアを上書きする場合には、そのメディアを初期化してラベルを変更します。


手順 2 : 火曜日と金曜日のそれぞれ午前 2:00 にデータベース全体のバックアップを実行するようにスケジュールを設定する

Commerce Server <サイト名>_commerce データベース全体のバックアップを作成するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、バックアップを作成するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースのバックアップ] をクリックします。
  3. [SQL Server バックアップ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | バックアップ セットの名前として「Full-<現在の日付 (mmddyy 形式)>」と入力します。
    [説明] | バックアップ セットの説明として、「Commerce データベース全体のバックアップ」と入力します。
    [バックアップ] | [データベース - 全体] を選択します。
  4. [バックアップ先] セクションで [追加] をクリックし、バックアップ デバイスを追加します。
  5. [バックアップ先の選択] ダイアログ ボックスで、[ファイル名] をクリックします。次に 省略記号 をクリックしてバックアップ先のファイルを選択します。
  6. [バックアップ デバイスの場所] ダイアログ ボックスの [ファイル名] ボックスで、「CommFull」と入力し、[OK] をクリックします。
  7. [OK] をクリックして、[バックアップ先の選択] ダイアログ ボックスを閉じます。
  8. [SQL Server バックアップ] ダイアログ ボックスの [上書き] セクションで、次の操作を行います。
    項目 | 操作
    [メディアに追加] | この項目を選択して、バックアップ デバイス上の既存のバックアップにバックアップを追加します。
    [既存のメディアに上書き] | この項目を選択して、バックアップ デバイス上の既存のバックアップを上書きします。
  9. [スケジュール] で、[スケジュール] を選択し、 省略記号 をクリックします。
  10. [スケジュールの編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「CSFullSch」と入力します。
    [スケジュールの種類] | [定期的] を選択し、[変更] をクリックします。
  11. [定期ジョブのスケジュール編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [実行間隔] | [毎週] を選択します。
    [毎週] | [火曜] と [金曜] のチェック ボックスをオンにします。
    [一日のうちの頻度] | [1 回] を選択し、「2:00:00 AM」と入力します。
  12. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。


手順 3 : 30 分ごとにトランザクション ログ ファイルのバックアップを実行するようにスケジュールを設定する

Commerce Server データベースのトランザクション ログ ファイルのバックアップのスケジュールを設定するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、バックアップするデータベースを右クリックします。次に、[プロパティ] をクリックします。
  3. [<データベース> プロパティ] ダイアログ ボックスの [オプション] タブの [復旧] セクションで、[モデル] ボックスの一覧の [フル] をクリックし、[OK] をクリックします。
  4. コンソール ツリーで [管理] を展開し、[バックアップ] を右クリックします。次に、[データベースのバックアップ] をクリックします。
  5. [SQL Server バックアップ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [データベース] | ボックスの一覧の [Commerce] をクリックします。
    [名前] | 「CommerceLog」と入力します。
    [説明] | 「Commerce トランザクション ログ」と入力します。
    [バックアップ] | [トランザクション ログ] を選択します。
    [バックアップ先] | [追加] をクリックして、[バックアップ先の選択] ダイアログ ボックスを開きます。
  6. [バックアップ先の選択] ダイアログ ボックスで [バックアップ デバイス] を選択し、[バックアップ デバイス] ボックスの一覧の [<新規バックアップ デバイス>] をクリックします。
  7. [バックアップ デバイスのプロパティ - 新規デバイス] ダイアログ ボックスの [名前] ボックスで、「CSLog」と入力し、[OK] をクリックします。
  8. [バックアップ先の選択] ダイアログ ボックスで [OK] をクリックして、[SQL Server バックアップ] ダイアログ ボックスに戻ります。
  9. [SQL Server バックアップ] ダイアログ ボックスで [既存のメディアに上書き] を選択し、[スケジュール] を選択します。次に、 省略記号 をクリックします。
  10. [スケジュールの編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「CSTransLogSch」と入力します。
    [スケジュールの種類] | [定期的] を選択し、[変更] をクリックします。
  11. [定期ジョブのスケジュール編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [実行間隔] | [毎日] を選択します。
    [一日のうちの頻度] [間隔] を選択し、ボックスの一覧の [30 分] をクリックします。

    注

    • 量 (30) を設定する前に単位 (分) を選択する必要があります。既定の単位は時間であり、最大値は 24 であるためです。
  12. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。


手順 4 : 毎日正午と午前 0:00 に差分バックアップを実行するようにスケジュールを設定する

Commerce Server <サイト名>_commerce データベースの差分バックアップを作成するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、バックアップを作成するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースのバックアップ] をクリックします。
  3. [SQL Server バックアップ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | バックアップ セットの名前として「Differential<現在の日付 (mmddyy 形式)>」と入力します。
    [説明] | バックアップ セットの説明として、「Commerce データベースの差分バックアップ」と入力します。
    [バックアップ] | [データベース - 差分] を選択します。
  4. [バックアップ先] セクションで [追加] をクリックし、既存のバックアップ デバイスを追加するか、新しいバックアップ デバイスを作成します。
  5. [SQL Server バックアップ] ダイアログ ボックスの [上書き] セクションで、次の操作を行います。
    項目 | 操作
    [メディアに追加] | この項目を選択して、バックアップ デバイス上の既存のバックアップにバックアップを追加します。
    [既存のメディアに上書き] | この項目を選択して、バックアップ デバイス上の既存のバックアップを上書きします。
  6. [スケジュール] セクションの [スケジュール] を選択し、 省略記号 をクリックします。
  7. [スケジュールの編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「CSFullSch」と入力します。
    [スケジュールの種類] | [定期的] を選択し、[変更] をクリックします。
  8. [定期ジョブのスケジュール編集] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [実行間隔] | [毎日] を選択します。
    [一日のうちの頻度] | [間隔] を選択し、「12 時間」と入力します。
  9. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。


バックアップを確認する

バックアップ ファイルを復元する前に、ファイルが有効であることと、所定のバックアップが格納されていることを確認する必要があります。SQL Server Enterprise Manager を使うと、バックアップ デバイスごとのプロパティ シートを表示できます。バックアップの詳細については、次の Transact-SQL ステートメントを実行することで参照できます。

  • RESTORE HEADERONLY 特定のバックアップ ファイルまたはバックアップ セットのヘッダー情報を取得するには、このステートメントを使います。バックアップ ファイルに 2 つ以上のバックアップが存在する場合は、そのファイルに含まれるすべてのバックアップのヘッダー情報が返されます。
RESTORE HEADERONLY ステートメントを実行すると、次の情報が得られます。
  • バックアップ ファイルまたはバックアップ セットの名前と説明
  • 使われたバックアップ メディアの種類
  • バックアップ方法。データベース全体のバックアップ、差分バックアップ、トランザクション ログ ファイルのバックアップ、ファイル バックアップなど。
  • バックアップが実行された日付と時刻
  • バックアップのサイズ
  • 一連のバックアップ ファイルにおける特定のバックアップのシーケンス番号
  • RESTORE FILELISTONLY バックアップ ファイルに含まれる元のデータベース ファイルやトランザクション ログ ファイルに関する情報を取得するには、このステートメントを使います。このステートメントを実行すると、間違ったバックアップ ファイルの復元を避けることができます。
RESTORE FILELISTONLY ステートメントを実行すると、次の情報が返されます。
  • データベース ファイルとトランザクション ログ ファイルの論理名
  • データベース ファイルとトランザクション ログ ファイルの物理名
  • ファイルの種類。データベース ファイル、トランザクション ログ ファイルなど。
  • ファイル グループのメンバシップ
  • バックアップ セットのサイズ (MB)
  • ファイル サイズの上限 (MB)
  • RESTORE LABELONLY バックアップ ファイルを保持するバックアップ メディアに関する情報を取得するには、このステートメントを使います。
  • RESTORE VERIFYONLY バックアップ セットを構成する個々のファイルが完全であること、およびすべてのバックアップが読み取り可能であることを確認するには、このステートメントを使います。SQL Server では、バックアップに含まれるデータの構造は確認されません。

Transact-SQL ステートメントの実行については、SQL Server Books Online を参照してください。


Commerce Server データベースを復元する

データベース バックアップを復元すると、データベースはそのバックアップが作成された時点の状態に戻ります。SQL Server は、データベースを復元するときに、データベースとそれに関連付けられたすべてのファイルを自動的に再作成します。その手順は次のとおりです。

  • バックアップのデータをすべてデータベースにコピーします。データベースの残りの部分は、空き領域として作成します。
  • データベース バックアップにコミットされていないトランザクション (バックアップ操作が完了した時点でまだ完了していなかったトランザクション) があれば、そのトランザクションをロールバックして (取り消して)、データベースの整合性を保ちます。

この処理により、コミットされていないトランザクションがすべてロールバックされた点を除けば、復元されたデータベースはバックアップ操作が完了した時点のデータベースと同じものになります。このロールバックは、データベースの整合性を復元するために必要な操作です。

また、データベースを誤って上書きするのを避けるため、復元操作では安全確認を自動的に実行できます。復元操作が失敗するのは、次の場合です。

  • 復元操作で指定したデータベースがサーバー上に存在するのに、データベース名がバックアップ セットに記録されたデータベース名と一致しない。
  • 復元操作で指定したデータベースがサーバー上に存在するのに、そのデータベースがデータベース バックアップに収められたデータベースと同じものではない。たとえば、両者のデータベース名が同じでも、それぞれのデータベースが別個に作成された場合。
  • 復元操作で 1 つまたは複数のファイルを自動的に作成する必要がある (データベースが既に存在するかどうかにかかわらず) が、それらと同じ名前のファイルが既に存在する。

復元操作の目的が別のデータベースを上書きすることである場合、以上の安全確認を無効にすることができます。

業務上のすべての復旧計画に、バックアップ方法と復元方法も含める必要があります。環境上の危害または装置の誤作動が原因でドメイン コントローラに障害が発生した場合は、まずドメイン コントローラ自体を修復し、次にデータを復旧する必要があります。Microsoft Active Directory ディレクトリ サービスでは、次の 2 つの機能によって、失われたデータを復旧することができます。1 つは、データベースがログ ファイルを使って、失われたデータを復旧する機能です。もう 1 つは、ディレクトリ サービスがレプリケーションを使って、ドメイン内の別のサービスからデータを復旧する機能です。

Active Directory を復元する方法には、次の 2 つがあります。

  • Non-authoritative Restore (既定) ドメイン内に利用可能な動作中のドメイン コントローラが他に少なくとも 1 つある場合に使います。Non-authoritative Restore の実行後、Active Directory のレプリケーションにより、バックアップした時点以降に行われたすべての変更が他のドメイン コントローラから自動的に伝達されます。
  • Authoritative Restore ローカル ドメイン コントローラから重要なデータを誤って削除し、さらに削除が他のドメイン コントローラに伝達されている場合にのみ使います。
    注
    • ローカル ドメイン コントローラが、ドメイン コントローラとして動作していない場合や、ドメイン内の唯一のドメイン コントローラである場合は、Authoritative Restore を実行しないでください。

いくつかのツールのうちの 1 つを使ってドメイン コントローラを修復し、Active Directory を復旧することができます。バックアップ、復元、および修復を含む Windows 2000 business protection の詳細については、『Windows 2000 Server リソース キット オペレーション ガイド』を参照してください。これは『Microsoft Windows 2000 Server リソース キット』の一部で、http://go.microsoft.com/fwlink/?LinkId=6684 で入手できます。また、Windows 2000 Server ヘルプも参照してください。

ここでは、次のトピックについて説明します。

  • トランザクション ログ ファイルを使って Commerce Server データベースを障害の発生時点に復元する
  • 復元オプションを指定する
  • 中断したバックアップ操作と復元操作


トランザクション ログ ファイルを使って Commerce Server データベースを障害の発生時点に復元する

SQL Server の復旧プロセスでは、トランザクション ログ ファイルを使って、データベースの整合性を維持します。SQL Server は、前回のチェックポイントから SQL Server が障害を起こした時点またはシャットダウンされた時点まで、トランザクション ログ ファイルを調べます。チェックポイントは、ブックマークのように、すべてのデータ変更がデータベースに書き込まれた時点をマークします。データベースに書き込まれていないトランザクションがトランザクション ログ ファイルでコミットされている場合、SQL Server は、このトランザクションをロールフォワードし、変更をデータベースに適用します。トランザクション ログ ファイルにコミットされていないトランザクションが含まれている場合、このトランザクションはロールバックされます。コミットされていないトランザクションはデータベースに書き込まれません。


復元に関するヒント集

ここでは、Commerce Server の復元に関するヒント集を示します。

  • バックアップを復元する前にデータベースへのアクセスを制限する。

    バックアップを復元する前にデータベースへのアクセスを制限する必要があります。[db_owner、dbcreator、または sysadmin のメンバ] データベース オプションを True に設定します。

  • バックアップを復元する前にトランザクション ログ ファイルをバックアップする。

    トランザクション ログ ファイルをバックアップして、データベースの整合性を維持します。トランザクション ログ ファイルのバックアップは、復元処理の最後の手順として、データベースを復旧するために使われます。バックアップを復元する前にトランザクション ログ ファイルをバックアップしておかないと、前回のトランザクション ログ ファイルのバックアップからデータベースがオフラインになる時点までに行われたデータ変更がすべて失われます。

  • バックアップ ファイルを確認する。

    バックアップ ファイルを復元する前に、RESTORE HEADERONLY、RESTORE FILELISTONLY、RESTORE LABELONLY、および RESTORE VERIFYONLY の Transact-SQL ステートメントを使って、このファイルを確認します。

  • バックアップを正しい順序で復元する。

    異なる種類のバックアップが作成されている場合は、データが失われないようにするために、バックアップを正しい順序で復元する必要があります。バックアップは次の順序で復元します。

    1. 最新のデータベース全体のバックアップ
    2. 最新の差分バックアップ
    3. 最新のトランザクション ログ ファイルのバックアップ
  • RECOVERY オプションまたは NORECOVERY オプションを指定する。

    RECOVERY オプションまたは NORECOVERY オプションを指定して、復元処理での管理上のエラーを防止し、ステートメントが読み取りやすくなるようにします。SQL Server の既定値は RECOVERY オプションです。


復元オプションを指定する

SQL Server の復元処理では、次のオプションを指定できます。

  • RECOVERY データベースを整合性のある状態に戻すには、このオプションを、復元する最後のトランザクション ログ ファイル、またはフル データベースの復元に対して使います。SQL Server は、トランザクション ログ ファイル内のコミットされていないトランザクションをすべてロールバックし、コミットされたトランザクションをすべてロールフォワードします。復元操作が完了すると、データベースが利用可能になります。
  • NORECOVERY このオプションは、復元するバックアップが複数存在する場合に使います。NORECOVERY オプションを使う場合は、次の事項を考慮します。
    • 復元する最後のバックアップを除くすべてのバックアップに NORECOVERY オプションを指定します。
    • SQL Server は、トランザクション ログ ファイル内のコミットされていないトランザクションをすべてロールバックすることも、コミットされたトランザクションをすべてロールフォワードすることも行いません。
    • データベースが復旧されるまで、データベースは利用できません。

RESTORE ステートメントを使う場合は、次のオプションを使って、復元方法を指定します。

  • FILE 複数のバックアップを含むバックアップ ファイルから特定のバックアップを選択するには、このオプションを使います。バックアップ ファイルにおけるバックアップの順序に対応するファイル番号を指定する必要があります。
  • RESTART 中断した復旧操作を続行するには、このオプションを使います。前回操作が中断した箇所から復旧が続行されます。
  • MOVE...TO 別のディスク、サーバー、予備の SQL Server など、別の場所にファイルを復元する場合は、このオプションを使って、バックアップ ファイルを復元する場所を指定します。

    注

    • sp_attach_db または sp_attach_single_file_db のシステム ストアド プロシージャを使って、サーバー間でデータベースを移動することもできます。その場合は、データベース ファイルをコピーして、master データベースにアタッチします。
  • REPLACE このオプションは、既存のデータベースを別のデータベースのバックアップのデータで置き換える場合にのみ使います。

    注意

    • REPLACE オプションを使う場合、SQL Server では安全確認が実行されません。

次のコード例は、SQL Server の復元オプションの使い方を示しています。

RESTORE DATABASE {database_name|@database_name_var}
  [FROM <backup_device>[,...n]
  [WITH
    [ FILE=file_number]
    [[,] MOVE 'logical_file_name' TO 'operating_system_file_name']
    [[,] REPLACE]
    [[,] {NORECOVERY|RECOVERY|STANDBY = undo_file_name}]]
    [[.] RESTART
Where <backup_device> is
    {{backup_device_name|@backup_device_name_var}|
    {DISK|TAPE|PIPE} = 'temp_backup_device'|
@temp_backup_device_var}
  }

ここでは、次のトピックについて説明します。

  • 損傷したユーザー データベースを復元する
  • データベース全体のバックアップから復元する
  • 差分バックアップから復元する
  • トランザクション ログ ファイルのバックアップを復元する


損傷したユーザー データベースを復元する

データベースが損傷した場合は、RESTORE ステートメントまたは SQL Server Enterprise Manager を使って、既存のデータベース上に復元します。既存のデータベース上に復元する場合、損傷したデータベースを削除する必要はありません。SQL Server が、データベース ファイルおよびオブジェクトを自動的に再作成します。


データベース全体のバックアップから復元する

データベース全体のバックアップからデータベースを復元する場合、SQL Server は、データベースとそれに関連付けられたすべてのファイルを再作成し、元の場所に配置します。すべてのデータベース オブジェクトが自動的に再作成されます。データベースを復元する前にデータベース スキーマを再構築する必要はありません。

次の場合は、通常、データベース全体のバックアップから復元します。

  • データベースの物理ディスクが損傷した場合
  • データベース全体が損傷または破損した場合や削除された場合
  • データベースの同一のコピーを別の SQL Server に復元する場合

次の手順で、データベース全体のバックアップからデータベースを復元します。

データベース全体のバックアップからデータベースを復元するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、復元するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースの復元] をクリックします。
  3. [データベースの復元] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [データベースとして復元] | ボックスの一覧から、データベース名を選択します。または、復元されるデータベースの新しい名前を入力します。
    [復元] | データベースを復元するには [データベース] を選択します。
    [データベースのバックアップを表示] | ボックスの一覧から、データベースを選択します。
    [復元する最初のバックアップ] | ボックスの一覧から、データベースの、最新のデータベース全体のバックアップを選択します。
  4. 復元する場所を変更するには、[プロパティ] をクリックします。
  5. [バックアップ セット プロパティ] ダイアログ ボックスで、[変更] をクリックします。
  6. [復元デバイスの選択] ダイアログ ボックスで、復元先となるデバイス名をクリックし、[OK] をクリックします。
  7. [OK] をクリックして、[バックアップ セット プロパティ] ダイアログ ボックスを閉じます。
  8. [データベースの復元] ダイアログ ボックスで、[OK] をクリックして復元処理を開始します。


差分バックアップから復元する

差分データベース バックアップから復元する場合、SQL Server は、前回のデータベース全体のバックアップ以降にデータベースに変更が加えられた部分だけを復元します。データベースは、差分バックアップが実行された時点と完全に同じ状態に戻ります。

ほとんどの場合、差分バックアップの復元時間は、同じデータベースの利用状況を表す一連のトランザクション ログ ファイルの復元時間よりも短くなります。

差分バックアップから復元する場合は、次の事項を考慮します。

  • 差分バックアップを復元する前に、データベース全体のバックアップを復元します。
  • 復元するトランザクション ログ ファイルが他にある場合は NORECOVERY オプションを指定し、他にない場合は RECOVERY オプションを指定します。

次の手順で、差分バックアップからデータベースを復元します。

差分バックアップからデータベースを復元するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、復元するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースの復元] をクリックします。
  3. [データベースの復元] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [データベースとして復元] | ボックスの一覧から、データベース名を選択します。または、復元されるデータベースの新しい名前を入力します。
    [復元] | データベースを復元するには [データベース] を選択します。
    [データベースのバックアップを表示] | ボックスの一覧から、データベースを選択します。
    [復元する最初のバックアップ] | ボックスの一覧から、データベースの最新の差分バックアップを選択します。
  4. 復元する場所を変更するには、[プロパティ] をクリックします。
  5. [バックアップ セット プロパティ] ダイアログ ボックスで、[変更] をクリックします。
  6. [復元デバイスの選択] ダイアログ ボックスで、復元先となるデバイス名をクリックし、[OK] をクリックします。
  7. [OK] をクリックして、[バックアップ セット プロパティ] ダイアログ ボックスを閉じます。
  8. [データベースの復元] ダイアログ ボックスで、[OK] をクリックして復元処理を開始します。


トランザクション ログ ファイルのバックアップを復元する

トランザクション ログ ファイルのバックアップから復元する場合、SQL Server は、トランザクション ログ ファイルに記録されている、データベースへの変更を復元します。前回のデータベース全体のバックアップまたは差分バックアップ以降にデータベースに加えられた変更を適用するには、通常、トランザクション ログ ファイルを復元します。トランザクション ログ ファイルを復元して、特定の時点まで復元することができます。

トランザクション ログ ファイルを復元する前に、データベース全体のバックアップを復元する必要があります。次の手順で、トランザクション ログ ファイルのバックアップを復元します。

トランザクション ログ ファイルのバックアップを復元するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、復元するデータベースを右クリックします。次に、[すべてのタスク] をポイントし、[データベースの復元] をクリックします。
  3. [データベースの復元] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [データベースとして復元] | ボックスの一覧から、データベース名を選択します。または、復元されるデータベースの新しい名前を入力します。
    [復元] | データベースを復元するには [データベース] を選択します。
    [データベースのバックアップを表示] | ボックスの一覧から、データベースを選択します。
    [復元する最初のバックアップ] | ボックスの一覧から、復元する最新のトランザクション ログ ファイルを選択します。
  4. [時刻を指定して復元] をクリックします。
  5. [時刻を指定して復元] ダイアログ ボックスで、[日付] ボックスに復元する日付を入力し、[時刻] ボックスに復元する時刻を入力します。次に、[OK] をクリックします。
  6. [データベースの復元] ダイアログ ボックスの [オプション] タブで、[データベースは操作可能状態。別のトランザクション ログの復元は不可] をクリックします。
  7. [OK] をクリックして、復元処理を開始します。


中断したバックアップ操作と復元操作

バックアップ操作または復元操作が中断された場合 (サーバーの電源が切断された場合など) は、中断した時点からバックアップ操作または復元操作を再開できます。この機能は、大規模なデータベースを複数のサーバーに復元する処理を自動化している場合に役立ちます。自動化した処理が復元操作の終わり近くで失敗した場合 (電源障害が発生した場合など)、システム管理者は中断した所から復元操作を再開できます。データベース全体を最初から復元し直す必要はありません。

関連項目

ミッション クリティカルな環境でバックアップと復元にかかる時間を最小限に抑える

サイトをバックアップする


カタログ コンテンツを複製する

ここでは、準備環境にある Commerce Server 2002 商品カタログを運用環境に配置する方法について説明します。カタログ コンテンツを複製するための次の作業について、シナリオの例を使い、順を追って説明していきます。

  • このシナリオのテスト環境を構成する。
  • SQL Server 2000 のレプリケーションをサポートするように構成を変更する。
  • データを配置した後で、問題点を解決する。

ここでは、サンプルのテスト環境を利用して、操作方法の概要を示します。このテスト環境には、準備データベース サーバーと運用データベース サーバーが 1 台ずつあります。このモデルを拡張していくことで、分散インストール環境や SQL Server のクラスタ環境など、Commerce Server 2002 の大小さまざまなインストール規模に応じた独自のシナリオにも対応できます。

ここでは、次のトピックについて説明します。

  • カタログ コンテンツを複製するためのトポロジの例 カタログ コンテンツを複製するためのトポロジの例について説明します。また、レプリケーション用に準備環境と運用環境を構成する方法についても説明します。
  • カタログを複製するように SQL パブリケーションを構成する 商品カタログの定期的な一方向レプリケーションをサポートするように SQL パブリケーションを構成する方法について説明します。
  • 必要に応じてカタログ レプリケーションを実行する カタログの複製を定期的には実行しないで、必要が生じたときに実行するように SQL パブリケーションを呼び出す方法について説明します。
  • 準備環境のデータベースに対する物理スキーマの変更 手動で複製する必要があるカタログ スキーマの変更について説明します。
  • 具現化された仮想カタログを複製する 仮想カタログを複製する方法について説明します。


カタログ コンテンツを複製するためのトポロジの例

ここでは、カタログ コンテンツを複製するためのトポロジの例について説明します。また、レプリケーション用に準備環境と運用環境を構成する方法についても説明します。次の図は、トポロジの例です。

インストールの手順は、準備サーバーも運用サーバーも同じです。

  1. データベース サーバーを構成する
  2. SQL Server をインストールする
  3. ソリューション サイトをアンパックする
  4. カタログにデータを作成する

手順 1 : データベース サーバーを構成する

このシナリオで使うデータベース サーバーは、次の 2 台です。

  • THORSTAGEこのサーバーは準備環境に相当します。
  • THORPROD1このサーバーは、運用環境の 1 台目のカタログ データベース サーバーに相当します。この他に、カタログ データベース サーバーが何台か必要になることがあります。

運用サーバーは、準備サーバーとは別のサブネット上に配置します。

どちらのサーバーにも、次のソフトウェアを構成します。

  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Service Pack 2
  • Microsoft Commerce Server 2002
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Service Pack 1

手順 2 : SQL Server をインストールする

SQL Server のインストール手順は、準備環境でも運用環境でも同じです。どちらコンピュータでも、インストールの際は、標準的な構成オプションを指定します。

SQL Server をインストールしたら、どちらのサーバーにも次のデータベースを作成して、個々のデータベース構成のデータを格納できるようにします。これらのデータベースは、後でソリューション サイトをアンパックするときに使います。

  • retail_commerce_BDsec Commerce Server 2002 の新機能である Commerce Server ビジネス デスク セキュリティ モジュール用のテーブルを保持するためのデータベースです。
  • retail_commerce_campaigns Commerce Server 2002 の広告キャンペーン機能で使われるテーブルを保持するためのキャンペーン データベースです。
  • retail_commerce_profiles プロファイル システムで使われるプロファイル データベースです。
  • retail_commerce_trans トランザクション テーブルを保持するためのデータベースです。
  • retail_commerce_transcfg トランザクションの構成一覧テーブルを保持するためのデータベースです。
  • retail_commerce_catalog 商品カタログ専用のテーブルを保持するデータベースです。このシナリオでは、このデータベースについての説明が中心になります。

手順 3 : ソリューション サイトをアンパックする

データベース テーブルを作成したら、どちらのサーバーにも Retail ソリューション サイトをインストールします。Commerce Server サイト パッケージャでは、[カスタム] オプションを選択して Retail ソリューション サイトをアンパッケージします。

Retail ソリューション サイトをアンパッケージすると、次の画面例のように、データベースの接続文字列を定義するように求められます。実際のインストール環境では、接続文字列を画面例に合わせて変更してください。

この画面例は、THORSTAGE 準備サーバーから取り込んだものです。カスタム データベースを使って構成した、最終的なデータベース接続文字列を示しています。

引き続き構成作業を行って、サイトのインストールを完了してください。各サーバー上で、構成済みの Retail ソリューション サイトを利用できるようにします。

手順 4 : カタログにデータを作成する

ここでは、AdvWorksCatalog をインポートして、Commerce Server カタログにデータを作成します。

準備サーバー (THORSTAGE) にあらかじめカタログを作成しておくには

  1. THORSTAGE で、ビジネス デスクを使って新しい XML カタログをインポートします。操作方法については、「XML カタログ ファイルをインポートする」を参照してください。

    このシナリオで使うカタログは、AdvWorksCatalog.xml ファイル (Adventure Works カタログ) です。このファイルは次のディレクトリにあります。

    \Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction

    このファイルは、B2C ビジネス デスクのチュートリアルで使う XML ファイルと同じものです。

  2. インポートした Adventure Works カタログを THORSTAGE に公開します。カタログの公開方法については、「カタログを更新および公開する」を参照してください。

    Adventure Works カタログの公開が完了すると、準備サーバー上に、カタログがインストールされた構成済みの Retail ソリューション サイトが完成します。

  3. Adventure Works カタログが公開されたことを確認するには、新しい Retail サイトの URL を参照します。

関連項目

サイト パッケージャを使う

XML カタログ ファイルをインポートする

カタログを更新および公開する


カタログを複製するように SQL パブリケーションを構成する

レプリケーション環境に参加するように SQL サーバーを実行するサーバーを準備する必要がありますが、その準備作業については、このドキュメントの範囲外です。ここでは、準備サーバーと運用サーバーが次のように構成済みで、互いの間でトランザクション レプリケーションがサポートされているものとします。

  • 準備サーバーは、パブリッシャおよびディストリビュータとして設定されている。
  • ディストリビューション データベースは、準備サーバー上に構成されている。
  • 2 台の運用サーバーが、サブスクライバとして追加されている。
    注
  • 実務環境のレプリケーションを構成する場合は、資格のある SQL Server 管理者の指導に従うことをお勧めします。

パブリケーションを構成して、商品カタログの一方向のレプリケーションをサポートするには、次の操作を行います。

  1. テーブル、カタログ固有のストアド プロシージャ、およびユーザー定義の関数のすべてについて、レプリケーション パブリケーションを作成します。
  2. サブスクライバへの初期スナップショット レプリケーションをサポートするための Pre-Snapshot.sql スクリプトを生成します。
  3. Pre-Snapshot.sql スクリプトに変更を加えて、レプリケーションを正常かつ継続的に行うための特定の回避策を講じておきます。
  4. 変更したスクリプトを使ってパブリケーションを更新します。
  5. パブリケーションにサブスクライバを追加します。
  6. 運用環境のフルテキスト インデックスを更新します。
  7. カタログ キャッシュを更新します。
  8. 必要に応じてカタログ レプリケーションを実行します。


手順 1 : レプリケーション パブリケーションを作成する

レプリケーション パブリケーションを作成するには、次の操作を行います。

レプリケーション パブリケーションを作成するには

  1. SQL Enterprise Manager で、複製するカタログ データベースを右クリックし、[新規作成] をクリックします。次に、[パブリケーション] をクリックします。

    パブリケーション作成ウィザードが起動します。このウィザードの詳細については、SQL Server Books Online を参照してください。

  2. [次へ] をクリックします。
  3. [パブリケーション データベースの選択] ダイアログ ボックスで、[retail_commerce_catalog] を選択し、[次へ] をクリックします。
  4. [パブリケーションの種類の選択] ダイアログ ボックスで、[トランザクション パブリケーション] を選択し、[次へ] をクリックします。
  5. [サブスクライバの種類の指定] ダイアログ ボックスで、[SQL Server 2000 を実行しているサーバー] を選択し、[次へ] をクリックします。
  6. [アーティクルの指定] ダイアログ ボックスで、次のアーティクルを選択します。
    • CatalogStatus と <カタログ名>_CatalogDeletedProducts を除くすべてのテーブル
  7. [アーティクルの既定値] をクリックします。
  8. [既定のアーティクル形式] ダイアログ ボックスの [テーブル アーティクル] を選択します。
  9. [既定のテーブル アーティクルのプロパティ] ダイアログ ボックスの [コマンド] タブで、次の 3 つのチェック ボックスをオフにします。
    • [INSERT コマンドを次のストアド プロシージャ呼び出しに置換]
    • [UPDATE コマンドを次のストアド プロシージャ呼び出しに置換]
    • [DELETE コマンドを次のストアド プロシージャ呼び出しに置換]
    注
    • この操作を行っていない場合は、カタログ名にスペースまたはハイフンが入っていると、レプリケーションの実行中にエラーが発生することがあります。
  10. [OK] をクリックします。
  11. [次へ] をクリックします。
  12. [アーティクルの問題点] ダイアログ ボックスで、次のメッセージが表示されることを確認します。

    "The following published tables contain IDENTITY columns:"「以下のパブリッシュされたテーブルが、IDENTITY 列を持っています。」

 [dbo].[CatalogDefinitions]
 [dbo].[CatalogGlobal]
 [dbo].[AdventureWorksCatalog_CatalogProducts]

この警告メッセージは無視してかまいません。

  1. [アーティクルの問題点] ダイアログ ボックスの [次へ] をクリックします。
  2. [パブリケーション名と説明の選択] ダイアログ ボックスで、新しいパブリケーションの名前と説明を入力します。または、既定の名前と説明をそのまま使います。その後、[次へ] をクリックします。
  3. [パブリケーションのプロパティのカスタマイズ] ダイアログ ボックスで、[いいえ、次の指定でパブリケーションを作成します] を選択し、[次へ] をクリックします。
  4. [パブリケーション作成ウィザード完了] ダイアログ ボックスで、[完了] をクリックします。

入力した情報に基づいて、新しいパブリケーションが作成されます。これが最初のパブリケーションである場合は、パブリケーションの構成作業の完了を監視および通知するエージェントも作成されます。

次の手順「手順 2 : Pre-Snapshot.sql スクリプトを生成する」に進みます。


手順 2 : Pre-Snapshot.sql スクリプトを生成する

Pre-Snapshot.sql スクリプトは、必須のカタログ スキーマ要素を使って運用データベースを構成し、運用データベースがデータのレプリケーションを受け取れるようにします。

パブリケーション作成ウィザードを実行したら、カスタム スクリプトを生成する必要があります。次に、そのスクリプトに変更を加えて実行し、運用環境のサブスクライバ上にレプリケーション先としての環境を構築する必要があります。

ここでは、運用サーバー上に、ビュー、ストアド プロシージャ、ユーザー定義の関数、テーブル、およびフリーテキスト インデックスを作成するための Pre-Snapshot.sql というスクリプトを生成します。

Pre-Snapshot.sql スクリプトを生成するには

  1. SQL Enterprise Manager で、準備データベースのノードを右クリックし、[すべてのタスク] をポイントします。次に、[SQL スクリプト生成] をクリックします。
  2. [SQL スクリプト生成] ダイアログ ボックスの [すべて表示] をクリックし、複製可能なオブジェクトをすべて表示します。
  3. [全オブジェクトのスクリプト] チェック ボックスをオンにし、すべてのカタログ オブジェクトがスクリプト化されるようにします。
  4. [スクリプト生成] ダイアログ ボックスの [オプション] タブで、[テーブル スクリプト作成オプション] セクションの [インデックス スクリプト] 、[フルテキスト インデックス スクリプト]、および [主キー、外部キー、デフォルトと CHECK 制約スクリプト] の 3 つのチェック ボックスをオンにします。
  5. [ファイル オプション] セクションの [インターナショナル テキスト (Unicode)] を選択します。
  6. [生成するファイル] セクションの [1 ファイルに作成] を選択し、[OK] をクリックします。
  7. ファイルを次のパスとファイル名で保存します。

    C:\Program files\Microsoft SQL Server\MSSQL\Install\Pre-Snapshot.sql

スクリプトが生成され、Pre-Snapshot.sql として保存されます。

次の手順「手順 3 : Pre-Snapshot.sql スクリプトに変更を加える」に進みます。


手順 3 : Pre-Snapshot.sql スクリプトに変更を加える

Pre-Snapshot.sql スクリプトを編集のために開いて、DROP CONSTRAINT ステートメントの内容を書き換える必要があります。これは、<カタログ名>_<言語>_Catalog テーブルの名前にハイフン (-) が含まれているケースに対処するためです。

ここでは、ステートメント内にある外部キー制約が原因となって、Pre-Snapshot.sql スクリプトの処理が失敗します。ステートメントの内部で、ハイフンが適切にエスケープされていないためです。問題のステートメントは、次のように、IF Exists ステートメントの内部にあります。

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_AdventureWorksCatalog_en-US_Catalog]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[AdventureWorksCatalog_en-US_Catalog] DROP CONSTRAINT FK_AdventureWorksCatalog_en-US_Catalog
GO

このステートメントでスクリプトを正常に実行するには、次に示すように、DROP CONSTRAINT 呼び出しの最後にある変数名を角かっこ ([ ]) で囲みます。

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_ AdventureWorksCatalog_en-US_Catalog]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[ AdventureWorksCatalog_en-US_Catalog] DROP CONSTRAINT [FK_AdventureWorksCatalog_en-US_Catalog]
GO

この問題は、言語やカタログが複数ある場合には別の制約でも発生する可能性があります。これらの変更を行った後は、スクリプトをパブリケーションに含めることができます。次の手順では、変更したスクリプトを使ってパブリケーションを更新します。

次の手順「手順 4 : 変更したスクリプトを使ってパブリケーションを更新する」に進みます。


手順 4 : 変更したスクリプトを使ってパブリケーションを更新する

この手順では、「手順 3 : Pre-Snapshot.sql スクリプトに変更を加える」で変更したスクリプトを使ってパブリケーションを更新します。

パブリケーションを更新するには

  1. SQL Enterprise Manager で、「手順 1 : レプリケーション パブリケーションを作成する」で作成したパブリケーションを右クリックし、[プロパティ] をクリックします。
  2. [パブリケーション プロパティ - retail_commerce_catalog] ダイアログ ボックスの [スナップショット] タブの [付加スクリプト] セクションに、変更した Pre-Snapshot.sql スクリプトの完全なパスを追加し、[適用] をクリックします。
  3. [アーティクル] タブの [既定のテーブル アーティクルのプロパティ] を変更します。
  4. [テーブル アーティクルのプロパティ - CatalogCustomCatalogs] ダイアログ ボックスの [既存のテーブルを変更しない] を選択します。

    このオプションを選択しないで、既定の構成の設定をそのまま使うと、スクリプトによって行われた処理の結果が、初期スナップショット レプリケーションの実行中にすべて削除されます。これらのテーブルは初期スナップショットの実行中に作成されるようにスクリプト化されているため、[既存のテーブルを削除し、再作成する] という設定をそのまま使うと、準備環境にある既定の構成スキーマに従って、テーブルが再作成されます。レプリケーションを正しく機能させるためには、Pre-Snapshot.sql スクリプトを使ってこのテーブルに変更を加える必要があります。

  5. [OK] をクリックして、構成の変更をすべて保存します。

この段階で、パブリケーションにサブスクライバを追加できます。

次の手順「パブリケーションにサブスクライバを追加する」に進みます。


手順 5 : パブリケーションにサブスクライバを追加する

サブスクライバは、運用環境にあるサーバーです。サブスクライバの詳細については、SQL Server 2000 Books Online を参照してください。

パブリケーションにサブスクライバを追加するには

  1. SQL Enterprise Manager で、[レプリケーション] を展開し、[サブスクリプション] を右クリックします。次に、[新規サブスクリプション] をクリックします。

    プッシュ サブスクリプション ウィザードが起動します。

  2. [プッシュ サブスクリプション ウィザード] の [次へ] をクリックします。
  3. [サブスクライバの選択] ダイアログ ボックスで、ディストリビューション データベース内で有効になっているサブスクライバを選択し、[次へ] をクリックします。
  4. サーバー上に複数のサブスクリプションがある場合は、[レプリケーション先データベースの選択] ダイアログ ボックスで、目的のサブスクリプション データベースを選択し、[次へ] をクリックします。
  5. [ディストリビューション エージェント スケジュールの設定] ダイアログ ボックスの [以下のスケジュールを使用] を選択し、スケジュールをカスタマイズします。
  6. [次へ] をクリックします。
  7. [サブスクリプションの初期化] ダイアログ ボックスで、[はい、スキーマとデータを初期化します] を選択し、[初期化プロセスをすぐに実行するためにスナップショット エージェントを開始する] を選択します。[はい、スキーマとデータを初期化します] を選択する理由は、レプリケーション先のサーバーにテーブル スキーマが存在しないためです。

    [初期化プロセスをすぐに実行するためにスナップショット エージェントを開始する] を選択しない場合は、スナップショット エージェントを手動で開始して、レプリケーション プロセスを開始する必要があります。

  8. [次へ] をクリックします。
  9. [必要なサービスの開始] ダイアログ ボックスで、[次へ] をクリックします。
  10. [完了] をクリックします。

データが、レプリケーションによって運用サーバーに移行され始めるようすをレプリケーション モニタで確認できます。


手順 6 : 運用環境のフルテキスト インデックスを更新する

生成したスクリプトを実行して運用サーバー上にスキーマを作成すると、フルテキスト インデックスも作成されます。

カタログに加えた変更の内容を複製する場合は、運用データベースのフルテキスト インデックスを更新する必要があります。更新の方法としては、次のものがあります。

  • [変更の監視] を有効にする。
  • フルテキスト インデックスを更新するための定期ジョブを作成する。
  • フルテキスト インデックスの再作成を手動で開始する。


手順 7 : カタログ キャッシュを更新する

カタログ データが運用サイトに完全に移行された後は、サイトを動的に更新して、変更を反映させる必要があります。

このシナリオは演習を目的としているため、各運用サーバーで Commerce Server ビジネス デスクを起動し、カタログを更新します。操作方法については、「カタログを更新および公開する」を参照してください。ここでは、Retail ソリューション サイトのカタログ キャッシュを更新します。

カタログ キャッシュを動的に更新する

Retail ソリューション サイトでは、サイト全体のキャッシュが有効になっています。このため、サイトに加えた変更を動的に更新するには、インターネット インフォメーション サービス (IIS) を手動で再起動すること、またはローカル コンピュータのビジネス デスクを使ってサイトを更新することが必要になります。

カタログ キャッシュを動的に更新するには、次のいずれかの方法を使います。

  • IIS を手動で再起動する この方法は、お勧めできません。Commerce Server アプリケーションが Commerce Server のキャッシュを更新する際に、Web サーバーのすべてのインターネット サービスがシャットダウンされるためです。これにより、システムに停止時間が生じます。ユーザーの操作や作業に影響を及ぼす可能性が高いので、これは運用環境では許されないことです。IIS の再開については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • 運用サーバーからビジネス デスクを使って更新する 運用サイトの 1 要素として構成されているビジネス デスク アプリケーションを起動すると、各運用 Web サーバーのキャッシュを更新することができます。


必要に応じてカタログ レプリケーションを実行する

カタログの内容を変更することがほとんどない場合は、複製を定期的には実行しないで、必要が生じたときだけ実行することもできます。必要なときだけ複製を実行する場合でも、「カタログを複製するように SQL パブリケーションを構成する」と同じ手順でサブスクリプションを設定します。レプリケーションのスケジュールを構成するときに、開始日を遠い将来の日付 (1/1/2200 など) に設定します。

必要に応じてカタログ レプリケーションを実行するには

  1. Enterprise Manager で、[パブリケーション] ノードを展開し、レプリケーション用に設定したパブリケーションをクリックします。
  2. 更新するサブスクリプションを右クリックし、[同期の開始] をクリックします。


準備環境のデータベースに対する物理スキーマの変更

SQL Server のレプリケーション機能は、カタログ スキーマや基になる物理カタログを複製するために使うことはお勧めできません。テーブルの内容を転送するためだけに使うようにしてください。

次に示す操作は、基になる物理スキーマの変更を伴います。このような変更によって運用環境を更新するには、これらの処理を手動で実行する必要があります。

  • 新しいカタログを作成する。パブリッシャ データベースのカタログを作成すると、グローバル カタログの変更内容は複製されますが、テーブル、ビュー、およびストアド プロシージャは複製されません。これは SQL Server の制限です。
  • カタログを削除する。
  • カタログに言語を追加する。
  • カタログから言語を削除する。
  • 商品定義にプロパティを追加する (商品定義が使われているカタログでそのプロパティがまだ使われていない場合)。
  • 商品定義からプロパティを削除する (商品定義が使われているカタログで、特定のプロパティが使われなくなった場合など)。
  • 特定の商品定義の商品の最初のインスタンスをカタログに追加する (特定のプロパティがそのカタログで使われる場合など)。
  • 特定の商品定義の商品の最初のインスタンスをカタログから削除する (特定のプロパティがそのカタログで使われなくなった場合など)。

準備環境のカタログに上のような変更を加える場合は、いったんデータベース パブリケーションを削除し、変更作業が完了した後、もう一度レプリケーションを設定します。


具現化された仮想カタログを複製する

具現化された仮想カタログを使うと、運用サーバーのパフォーマンスは向上しますが、レプリケーションで問題が発生します。

具現化された仮想カタログを表示するときは、仮想カタログを再構築して、仮想カタログのルールやソース カタログの更新内容を反映させますが、そのたびに、その仮想カタログの具現化されたデータ テーブルが削除され、再作成されます。このとき、テーブルについて構成されていたレプリケーションはすべて中止されます。このため、仮想カタログについては、準備サーバー (カタログを公開する側のサーバー) 上では具現化の対象として指定しないでください。

パフォーマンス向上のために運用データベース サーバーで仮想カタログを具現化する場合は、仮想カタログに関連付けられたテーブルをレプリケーション対象から除外する必要があります。


サイトを更新する

配置は終わりのない作業です。サイトが運用を開始した後も、変化し続けるニーズに対応するために、サイトのコンテンツや構成を更新する必要があります。ここでは、サイトの更新に関する基本的な情報を提供します。詳細については、『Microsoft Commerce Server 2000 リソース キット』を参照してください。

ここでは、次のトピックについて説明します。

  • 更新用のテスト環境を使う 運用サーバーの更新前にテスト環境を使う方法について説明します。
  • サイト パッケージャを使わずに Web サーバーを追加する サイト パッケージャを使わずに Commerce Web サーバーをインストールする方法について説明します。
  • SQL Server を使ってデータベースを複製する. SQL Server を使って Commerce Server データベースを複製する方法について説明します。
  • サーバーの名前を変更する サーバー名の変更方法について説明します。


更新用のテスト環境を使う

運用環境のサーバーを更新する前に、必ず別の準備/テスト環境で更新を配置およびテストします。これにより、十分にテストされ、更新されたサイトを効率的に配置できるようになります。

たとえば、商品カタログを更新するとします。運用環境でカタログを変更する前に、まず準備環境でカタログを更新します。そして、そこで更新したカタログをテストします。更新が適切に機能することを確認したら、SQL Server を使って更新を運用サーバーに複製します。

関連項目

SQL Server を使ってデータベースを複製する


サイト パッケージャを使わずに Web サーバーを追加する

Commerce Server サイト パッケージャを使わずに、Web サーバーをアプリケーションに追加できます。まず、アプリケーションのファイルをサーバーにコピーし、新しいサーバーでインターネット インフォメーション サービス (IIS) 5.0 アプリケーションを構成します。この作業には Microsoft Application Center 2000 を使用できます。

アプリケーションを最初に新しいサーバーに読み込むときに、新しいサーバーは Commerce Server 管理データベースの該当するアプリケーションの下の Web サーバーとして追加されます。

管理データベースを更新する関数は JoinWebFarm です。この関数は Commerce Server ソリューション サイトに含まれています。この関数は Global_siteconfig_lib.asp ファイルにあり、ファイルはアンパッケージした Commerce Server ソリューション サイトの Include フォルダにあります。

注

  • Config COM+ アプリケーションには Web Users ロールが含まれています。Web サイトへのアプリケーションの追加をサイト パッケージャを使わずに行う場合は、ログインに使うアカウントがこのロールのメンバでなければなりません。

アプリケーションに Web サーバーを追加したら、以下の Web サーバー プロパティについて、Commerce Server と IIS のプロパティを同期させる必要があります。

  • TCP ポート
  • SSL ポート
  • IP (インターネット プロトコル) アドレス
  • ログ ファイルのパス
  • ログ ファイル出力期間

プロパティを同期させるには、Commerce Server マネージャで手動によって値を更新するか、[<サイト名> のプロパティ] の [Web サーバー] タブで [値の同期] ボタンをクリックします。詳細については、「アプリケーションを構成する」を参照してください。

[値の同期] をクリックすると、IIS のアプリケーション レベルのプロパティと、そのアプリケーションの下にあるすべての Web サーバー オブジェクトのプロパティがコピーされます。具体的には、アプリケーション レベルのプロパティ (TCP ポートと SSL ポート) に、最初の Web サーバーの対応するプロパティの値が読み込まれます。これには、すべての Web サーバーがまったく同一に構成されていることが前提となります。構成が異なると、Web ファームは正常に機能しません。

JoinWebFarm のコードは SiteConfig オブジェクトを使うので、ユーザーが SiteConfig オブジェクトを使うアクセス許可を持っている場合にのみ機能します。以前に SiteConfig オブジェクトへのアクセスを拒否に設定した場合は、Windows レジストリ エディタを使ってこのオブジェクトに対するアクセス許可を復元できます。詳細については、「管理データベースにセキュリティを設定する」を参照してください。

注

  • Application Center 2000 では、ファイルおよび IIS の設定は同期されますが、Commerce Server 管理データベースは更新されません。したがって、JoinWebFarm 関数など別のスクリプトを使う必要があります。Application Center 2000 の詳細については、Microsoft Application Center 2000 のマニュアルを参照してください。


SQL Server を使ってデータベースを複製する

大規模な Commerce Server 2002 サイトの可用性および拡張性を実現するために、カタログ データベースの複製が必要になることがあります。そのためには、SQL Server を使って、ネットワーク負荷分散 (NLB) クラスタ内のカタログ サーバーまたはサーバー クラスタを複製します。この構成の図については、「大規模サイトの構成」を参照してください。

SQL Server を使って Commerce Server データベースを複製します。スナップショット、トランザクション、またはマージのいずれのレプリケーションを使う場合でも、次の各ステージがレプリケーションの実装に役立ちます。

ステージ | 作業
レプリケーションの構成 | トポロジにおけるパブリッシャ、ディストリビュータ、およびサブスクライバを識別します。SQL Server Enterprise Manager、SQL-DMO、または Transact-SQL システム ストアド プロシージャとスクリプトを使って、パブリッシャを構成し、ディストリビューション データベースを作成し、サブスクライバを有効にします。
データおよびデータベース オブジェクトのパブリッシング | パブリケーションを作成して、パブリケーションのデータおよびデータベース オブジェクトのアーティクルを定義し、パブリッシュするデータに必要なフィルタを適用します。
パブリケーションのサブスクライブ | プッシュ、プル、または匿名サブスクリプションを作成し、個々のサブスクライバに伝達する必要があるパブリケーションと、そのタイミングを指定します。
初期スナップショットの生成 | スナップショット ファイルを保存する場所、ファイルを圧縮するかどうか、および初期スナップショットの適用前または適用後に実行するスクリプトを指定します。
初期スナップショットの適用 | ディストリビューション エージェントまたはマージ エージェントを使ってサブスクリプションを同期させることで、スナップショットを自動的に適用します。スナップショットは、既定のスナップショット フォルダから適用できます。または、サブスクライバに手動で運搬できるリムーバブル メディアから適用することもできます。
データの同期 スナップショット エージェント、ディストリビューション エージェント、またはマージ エージェントが実行され、パブリッシャとサブスクライバの間で更新が伝達されると、データの同期が行われます。

スナップショット レプリケーションの場合は、スナップショットがとられて、サブスクライバに伝達されます。トランザクション レプリケーションの場合は、ログ リーダー エージェントが更新をディストリビューション データベースに格納し、ディストリビューション エージェントがサブスクライバに更新を伝達します。

スナップショット レプリケーションまたはトランザクション レプリケーションで更新できるサブスクリプションを使っている場合は、データがサブスクライバからパブリッシャへ、そして他のサブスクライバへ伝達されます。

マージ レプリケーションの場合は、すべてのサーバーでのデータの変更が収束するときに、マージ処理の過程でデータが同期します。競合がある場合は検出され、解決されます。

関連項目

カタログ コンテンツを複製する


サーバーの名前を変更する

Commerce Server 2002 のインストールが完了した後は、サーバーの名前を変更しないことを強くお勧めします。

サーバーの NetBIOS 名を変更する必要がある場合は、Commerce Server をアンインストールしてから名前を変更します。サーバーを再起動した後で、コンピュータが適切に構成されていることを確認し、Commerce Server を再インストールしてください。

Commerce Server は、サーバー名に基づいてリソース間の接続文字列に名前を付けます。名前を変更すると、リソース間の接続が切れることがあります。これらの接続文字列は、Commerce Server マネージャで手動で変更する必要があります。

Commerce Server ダイレクト メーラー、プロファイルの各グローバル リソースには、これらが作成されたサーバーの名前を含む表示名が付けられます。サーバーの名前を変更する場合は、Commerce Server のセットアップ プログラムを使ってダイレクト メーラーを削除し、再インストールできます。新しい名前の付いたプロファイル グローバル リソースを作成するには、Commerce Server サイト パッケージャを使います。さらに、そのプロファイル グローバル リソースを使っていたすべてのサイトのプロファイル グローバル リソース ポインタの参照プロパティを変更する必要があります。

Microsoft Application Center 2000 を使って、名前を変更した Web サーバーにアプリケーションを再び読み込むと、Application_OnStart イベント時に Global.asa ファイルから呼び出される JoinWebFarm 関数が、管理データベースに新しい Web サーバー ノードを作成します。Commerce Server マネージャを使って、サイトから古いサーバー名を削除する必要があります。


サイト パッケージャを使う

Commerce Server サイト パッケージャは、2 つの主要な用途を持つ配置用のツールです。このツールは、インターネット インフォメーション サービス (IIS) 5.0 以上の設定 (メタベース)、ファイル システム、管理データベースからのリソース、および SQL Server データベースを含む Microsoft Commerce Server 2002 サイトを 1 つのファイルにパッケージ化するときに使います。また、パッケージ化された Commerce Server サイト (またはその一部分) を他のコンピュータにアンパックするときにも使います。

サイト パッケージャは、ほとんどの場合、サイトを最初に配置するときに使います。それ以降の配置、インクリメンタル更新、およびロールバックには、Microsoft Application Center 2000 などのツールや、他のコンテンツ管理製品を使います。

ここでは、次のトピックについて説明します。

  • サイト パッケージャについて サイト パッケージャの機能、パッケージの構成、およびグローバル リソースをアンパックする方法について説明します。
  • サイト パッケージャに関するヒント集 Commerce Server 2002 サイトのパッケージ化に関する重要事項について説明します。
  • サイト パッケージャの名前とサイズの制限 サイト パッケージャのサイト名とサイズの制限を示します。
  • サイトをアンパックする パッケージ ファイルのサイトをローカル Web サーバーおよびリモート Web サーバーにアンパックする方法について説明します。
  • リソースとデータがアンパックされる場所 サイトをアンパックしたときに SQL Server に作成されるデータと設定を示します。
  • サイトをパッケージ化する サイトをパッケージ ファイルにパッケージ化する方法について説明します。
  • サイト パッケージャでスクリプトを使う サイト パッケージャでインストール前およびインストール後のスクリプトを使う方法について説明します。
  • サイト パッケージャをコマンド ラインから実行する サイト パッケージャをコマンド ラインから使う方法について説明します。
  • サイト パッケージャの .ini ファイルをカスタマイズする Commerce Server ソリューション サイトに含まれる .ini ファイルについて説明します。また、それらの .ini ファイルをテンプレートとして使用し、各自のパッケージ用のカスタム .ini ファイルを作成する方法についても説明します。
  • サイト パッケージャのダイアログ ボックスのヘルプ Commerce Server サイト パッケージャを使うためのダイアログ ボックスのヘルプについて説明します。


サイト パッケージャについて

Commerce Server サイト パッケージャは、アプリケーションを簡単に配置できるように、Web サイトと設定をパッケージ化およびアンパックします。Commerce Server サイトをアンパックすると、通常、2 つのアプリケーションがインストールされます。1 つはユーザーがアクセスする Web サイト用のアプリケーションで、もう 1 つはそのサイトの管理に使用する Commerce Server ビジネス デスク用のアプリケーションです。アプリケーションが使用できるのは、そのアプリケーションが属する Commerce Server サイトのリソースだけです。

ここでは、次のトピックについて説明します。

  • パッケージ
  • アンパックのオプション
  • データベース名とアプリケーション名の作成方法
  • Csapp.ini ファイル
  • グローバル リソースをアンパックする方法
  • データベースの場所
  • Web サーバーのアクセス許可の設定方法


パッケージ

パッケージとは、特殊な形式の Commerce Server ファイルです。各パッケージは、.pup というファイル名の拡張子で識別されます。1 つのパッケージには必ず 1 つのサイトが含まれ、その中に Commerce Server Web サイトのリソース、データ、アプリケーションが含まれています。

Commerce Server サイト パッケージャには、Web サーバーの再構成に必要なサイト リソース、アプリケーション、およびインターネット インフォメーション サービス (IIS) 5.0 以上の設定に加えて、管理データベースからのプロパティ値も含まれます。たとえば、アプリケーション既定の構成リソースをパッケージ化すると、現在のすべてのプロパティ値もパッケージ化されます。アプリケーション既定の構成リソースをアンパックすると、プロパティ値は管理データベースにアンパックされます。

パッケージには、グローバル リソース ポインタは含まれますが、グローバル リソース自体は含まれません。パッケージは、アプリケーション内に存在する接続文字列を認識します。ただし、パッケージには、接続文字列内の実際のデータは含まれません。

注

  • コンピュータ名が含まれる接続文字列は、パッケージ化されません。

アプリケーションのパッケージ処理の過程で、サイト パッケージャはローカル コンピュータの IIS メタベースを検索し、そのアプリケーションのルートになっている物理ディレクトリを見つけます。次に、見つかったルート ディレクトリとそのすべてのサブディレクトリを、.pup 拡張子付きの新しいファイルにパッケージ化します。認証やアクセス許可など、IIS の特定の設定は保持されます。パッケージ化される IIS プロパティの一覧については、「パッケージ化される IIS プロパティ」を参照してください。

サイト パッケージャでは、コンピュータに固有のプロパティはパッケージ化されません。たとえば、Commerce Server マネージャで設定した Web サーバー プロパティやいくつかのアプリケーション プロパティはパッケージ化されません。リソースごとにパッケージ化されるデータの一覧については、「リソースとデータがアンパックされる場所」を参照してください。

関連項目

パッケージ化される IIS プロパティ

サイトをアンパックする

サイトをパッケージ化する


パッケージ化される IIS プロパティ

サイトをパッケージ化するときに、サイト パッケージャは多くの IIS プロパティをパッケージに含めます。IIS Web サイト (既定の Web サイトなど) はパッケージ化されませんが、アプリケーションの物理ルート フォルダにあるファイルや、そのすべての物理子フォルダとファイルがパッケージ化されます。

アプリケーション、フォルダ、またはファイルの IIS プロパティを表示するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] ウィンドウで、[インターネット インフォメーション サービス] を展開し、アプリケーションが含まれている Web サーバーの名前を展開します。次に、アプリケーションがある IIS Web サイトの名前を展開して、アプリケーション、フォルダ、またはファイルの名前を右クリックし、[プロパティ] をクリックします。

    アプリケーションの [プロパティ] ダイアログ ボックスが表示されます。

次の表は、[プロパティ] ダイアログ ボックスの [仮想ディレクトリ] タブおよび [ディレクトリ セキュリティ] タブのプロパティの一覧で、サイト パッケージャを使ったときにどのプロパティがパッケージ化されるかを示しています。

[仮想ディレクトリ] タブ

フィールド | パッケージ化の有無
[スクリプト ソース アクセス] | パッケージ化されます。
[読み取り] | パッケージ化されます。
[書き込み] | パッケージ化されます。
[ディレクトリの参照] | パッケージ化されます。
[ログ アクセス] | パッケージ化されます。
[このリソースに索引を付ける] | パッケージ化されます。
[アプリケーション名] | パッケージ化されません。
[開始点] | パッケージ化されません。
[実行アクセス許可] | パッケージ化されます。
[アプリケーション保護] | アンパック時に常に [中] に設定されます。
[アプリケーションの設定] ([構成] をクリックした後に表示される) | パッケージ化されません。

[ディレクトリ セキュリティ] タブ

フィールド | パッケージ化の有無
[匿名アクセス] | パッケージ化されます。
[匿名ユーザー アカウント] | パッケージ化されません。
[基本認証] | パッケージ化されます。
[基本認証ドメイン] | パッケージ化されません。
[ダイジェスト認証] | パッケージ化されます。
[統合 Windows 認証] | パッケージ化されます。
[IP アドレスとドメイン名の制限] | パッケージ化されません。
[セキュリティ保護された通信] (SSL 証明書) | パッケージ化されません。

注

  • [ドキュメント]、[HTTP ヘッダー]、[カスタム エラー] の各タブには、パッケージ化される設定はありません。Commerce Server ビジネス デスクの unpack.vbs スクリプト ファイルが、アンパック後にビジネス デスクのカスタム エラーを追加します。

IIS 仮想ディレクトリ

アプリケーション内に仮想ディレクトリがある場合、仮想ディレクトリ オブジェクト、およびオブジェクトが参照するパスにあるフォルダとファイルはパッケージ化されません。これらのフォルダとファイルをパッケージ化する場合は、アプリケーションの物理パスにあるフォルダにコピーしてからパッケージ化します。

NTFS のアクセス許可

フォルダとファイルに設定された NTFS のアクセス許可およびアクセス制御リストはパッケージ化されません。unpack.vbs スクリプトまたは postsite.vbs スクリプトを使うと、アンパック後に NTFS のアクセス許可を自動的に適用できます。


アンパックのオプション

既定では、サイト パッケージャは各アプリケーションをそのアプリケーションの名前に一致する仮想ディレクトリにある IIS の既定の Web サイトにアンパックします。サイトのセキュリティを強化するには、既定の Web サイトを使う代わりに、アンパックする Commerce Server サイト用の新しい IIS Web サイトを作成します。各アプリケーションが格納される仮想ディレクトリの名前は変更できます。アンパックの最中に IIS Web サイトまたは仮想ディレクトリを変更するには、サイト パッケージャのカスタム モードを使う必要があります。

Web ファーム内の Web サーバーにアプリケーション ファイルを追加する場合は、Commerce Server マネージャで、その Web サーバーをアプリケーションに関連付けます。サイト パッケージャは、アプリケーションがインストールされる IIS Web サイトの名前と、各 Commerce Server アプリケーションの IIS アプリケーション パスを表示します。

管理データベースに既に存在するサイトおよびアプリケーションをアンパックすると、サイト パッケージャはそのアプリケーションに Web サーバーを追加するものと見なします。

関連項目

サイトをアンパックする

リソースとデータがアンパックされる場所


Csapp.ini ファイル

Commerce Server サイト パッケージャは、アンパック処理中に Csapp.ini ファイルを生成します。アンパック処理が完了した後、Csapp.ini を削除しないでください。認証マネージャと認証フィルタの両方がこのファイルを必要とします。このファイルは、サイトのルート フォルダに配置する必要があります。

次の表は、Csapp.ini ファイルに含まれるプロパティとその説明の一覧です。

プロパティ | 説明
Path | アプリケーションのルートへの物理パス。
SiteName | 管理データベースに表示されるサイト名。
AddressKeyName | IIS アプリケーションのすべての情報が保存される管理データベース内のアプリケーションの名前。
RelativeURL | 既定の Web サイトに対して相対的な、アプリケーションの IIS 仮想ディレクトリの名前。たとえば、アプリケーションが IIS Web サイトのルートにインストールされている場合は、その IIS Web サイトの基本ルートに対して相対的なディレクトリの名前となります。
AbsoluteURL | アプリケーションのアドレス。コンピュータ名も含まれます。
PackagePath | アプリケーションの抽出元のパッケージ。

このファイル内で変更する必要のあるプロパティは、RelativeURL だけです。アプリケーションを別の IIS パスに手動で移動する場合は、IIS Web サイトの下の正確な相対仮想ディレクトリを指すように、RelativeURL プロパティを変更する必要があります。アプリケーションを Web サイトのルートに移動する場合は、RelativeURL=/ のように、スラッシュ (/) を付ける必要があります。RelativeURL によって、CS 認証サービスは、アプリケーションがどこから動作するかを判断できます。RelativeURL プロパティは、アプリケーションがアンパックされるたびに再作成されます。

注

  • IIS で Csappi.ini ファイルへの読み取りアクセスと匿名アクセスの両方を拒否することによって、このファイルにセキュリティを設定します。NTFS のアクセス許可を使ってこのファイルにセキュリティを設定しないでください。このファイルは、IUSR アカウントなどのユーザー資格情報で読み取り可能でなければならないためです。また、サイトをアンパックした後、Csapp.ini を削除しないでください。認証マネージャと認証フィルタの両方がこのファイルを必要とします。このファイルは、サイトのルート フォルダに配置する必要があります。認証マネージャは、Csapp.ini から SiteName と AddressKeyName を取得します。

関連項目

認証用の Csapp.ini ファイルの値

サイトをアンパックする

サイトをパッケージ化する


グローバル リソースをアンパックする方法

予測およびダイレクト メーラーの 2 つのグローバル リソースは、Commerce Server のセットアップ プログラムでインストールします。それ以外のグローバル リソースは、すべてサイト パッケージャでインストールします。予測またはダイレクト メーラー グローバル リソースを必要とするサイトをアンパックする場合は、あらかじめ、Commerce Server のセットアップ プログラムでこれらのリソースをインストールしておく必要があります。グローバル リソースのインストール方法については、「グローバル リソースをインストールまたはアンインストールする」を参照してください。

関連項目

サイト パッケージャについて

サイトをアンパックする

サイトをパッケージ化する

グローバル リソースをインストールまたはアンインストールする


データベース名とアプリケーション名の作成方法

Commerce Server サイト パッケージャは、パッケージからデータベース名とアプリケーション名を作成します。

IIS アプリケーションは、パッケージのアプリケーションごとに作成されます。パッケージには、各アプリケーションの完全なパスが格納されています。

関連項目

サイト パッケージャについて

サイトをアンパックする

サイトをパッケージ化する

データベースの場所


データベースの場所

サイト パッケージャでは、データベース ファイルの場所を指定するようには求められません。代わりに、SQL Server の既定のフォルダが使われます。データベースの作成に必要なディスク容量がデータベース サーバーにあることを確認してください。

関連項目

サイト パッケージャについて

サイトをアンパックする

サイトをパッケージ化する

データベース名とアプリケーション名の作成方法


Web サーバーのアクセス許可の設定方法

IIS Web サーバーのアクセス許可は、匿名ユーザーによるアプリケーションへのアクセスを制限するように構成できます。また、Windows のアクセス許可 (またはアクセス制御エントリ) を持つユーザーに対しても、インターネット経由でのソース コードの参照を制限するように構成できます。

Web サーバーのアクセス許可と NTFS のアクセス許可の違いを理解することが大切です。NTFS と異なり、Web サーバーのアクセス許可は、Web サイトにアクセスするすべてのユーザーに適用されます。NTFS のアクセス許可は、有効な Windows アカウントを持った特定のユーザーまたはユーザーのグループにのみ適用されます。NTFS のアクセス許可はサーバーの物理ディレクトリへのアクセスを制御するのに対して、Web のアクセス許可は Web サイトの仮想ディレクトリへのアクセスを制御します。

サイトのパッケージ化では、元のサイトで設定されていた Web サーバーのアクセス許可が継承されます。たとえば、元のコンピュータでアプリケーションのルート フォルダの [スクリプトおよび実行可能ファイル] に実行アクセス許可を設定していた場合は、インストール先のコンピュータの仮想ルート フォルダでも同じ設定になります。

たとえば、次の表は、Microsoft が提供するパッケージで IIS のアクセス許可がどのように設定されているかを示しています。

フォルダ | アクセス許可
ルート | [スクリプトおよび実行可能ファイル] に実行アクセス許可を設定します。
Pipeline、Include、Template | 読み取り、書き込み、および実行のアクセス許可を拒否します。

注

  • サイト パッケージャでは、NTFS のアクセス許可が保存されている Windows アクセス制御リスト (ACL) は保持されません。ACL には、Microsoft Windows 2000 の特定のオブジェクトにアクセスできるグループおよび個人ユーザーが記述されます。これらのオブジェクトには、Active Directory ディレクトリ サービス オブジェクト、ローカルの NTFS ファイルおよびフォルダ、レジストリ、プリンタなどがあります。

関連項目

Commerce Server と IIS

サイトをパッケージ化する

サイトをアンパックする

リソースとデータがアンパックされる場所

サイト パッケージャをコマンド ラインから実行する


サイト パッケージャに関するヒント集

ここでは、Commerce Server 2002 サイトのパッケージ化に関する重要事項について説明します。

セキュリティの問題

サイト パッケージャに関するテクニック

セキュリティの問題

  • サイトをアンパックした後、unpack.vbs スクリプトがアプリケーションのルート フォルダに存在していることがある (Blank サイトをアンパックした場合は存在しない)。アンパック後、必ず、このファイルを削除するか、またはこのファイルにセキュリティを設定する。
このファイルには、匿名ユーザーがアクセスできます。このスクリプト ファイルが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。
  • サイトをパックする前に、ビジネス デスク アクセス許可を持つ Windows アカウントを確認する。

    Commerce Server サイト パッケージャを使用してサイトをアンパックするときに、ビジネス デスク アクセス許可を持つ Windows アカウントもアンパックされます。

    たとえば、Commerce Server がある 1 台のコンピュータにインストールされていて、ローカルのグループおよびアカウントが追加されているとします。このサイトをパックし、次に、そのサイトを別のコンピュータでアンパックすると、アカウントもアンパックされます。ビジネス デスクを開いた時点で、アクセス許可はそのコンピュータに存在します。

  • サイトをインストールした直後、および配置した Commerce Server の構成に大きな変更を加えるときは、管理データベースのバックアップを別の名前で作成しておく。
このバックアップを使って、後から変更を元に戻すことができます。
  • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しない。

サイト パッケージャに関するテクニック

  • サイト パッケージャは運用サイトでは実行しない。

    サイト パッケージャを運用サイトで実行すると、サイトがクライアントに対して適切に応答しなくなることがあります。

  • カスタム テーブルおよびカスタム テーブル内のデータをパッケージ ファイルに組み込む方法については、「 Using the GenericPup Object 」を参照する。
  • 1 台のコンピュータでサイト パッケージャの複数のインスタンスを同時に実行しない。
  • 複数のビジネス デスク アプリケーションを別の IIS アプリケーション名で既存のサイトにインストールするには、あらかじめ HTML アプリケーション (HTA) ファイルの名前を変更し、ビジネス デスクの新しいショートカット アイコンを作成しておく。
これらのファイルの名前を変更しないと、元のサイトに基づいて作成されたファイル、およびビジネス デスクのアイコンは、インストールされる HTA ファイルによって置き換えられます。
  • 既定以外のインターネット インフォメーション サービス (IIS) 5.0 以上の Web サイトにサイトをアンパックするには、サイト パッケージャのカスタム モードを使う。
  • Commerce Server ビジネス デスク アプリケーションをアンパックし、ビジネス デスク クライアントをインストールした後でダイレクト メーラー リソースをアンパックした場合は、ダイレクト メーラーの追加が検出されるように、ビジネス デスク アプリケーションのホストとなっている Web サーバーで IIS を再起動する必要がある。
ビジネス デスク クライアントからは、アプリケーションに接続し直す必要があります。IIS の再開方法については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • IIS 仮想ディレクトリに子 IIS アプリケーションが含まれる Commerce Server アプリケーションをパッケージ化すると、サイト パッケージャは子アプリケーションのフォルダとファイルをパッケージ化する。
パッケージに含まれる子アプリケーションのフォルダとファイルが必要でない場合は、親 Commerce Server アプリケーションのアンパック後に削除する必要があります。
  • サイト パッケージャは、IIS アプリケーションの子仮想ディレクトリにあるファイルをパッケージ化しない。
子仮想ディレクトリのファイルをパッケージ化する必要がある場合は、サイトをパッケージ化する前に、フォルダとファイルを IIS アプリケーションのルート フォルダの子物理フォルダに移動します。
  • アプリケーション (Retail や RetailBusinessDesk など) が、別々の Web サーバーに存在するサイトをパッケージ化するには、いずれかの Web サーバーを他のアプリケーションに追加する。
たとえば、Retail がコンピュータ A にインストールされ、RetailBizDesk がコンピュータ B にインストールされている場合は、サイト パッケージャをコンピュータ B で実行し、コンピュータ B を Retail 用の Web サーバーとして追加します。次に、コンピュータ B からサイトをパッケージ化します (反対に、コンピュータ A を RetailBizDesk に追加し、コンピュータ A からサイトをパッケージ化することもできます)。詳細については、「アプリケーションに Web サーバーを追加する」を参照してください。
  • サイト パッケージャで、純粋な Unicode 文字を含む組織単位 (OU) を指定すると、OU が無意味な文字で Active Directory に登録される。
WScript.Shell オブジェクトの Run メソッドに Unicode 文字列を渡す場合の制限です。これは、Microsoft Windows 95、Microsoft Windows 98、Microsoft Windows NT、および Microsoft Windows 2000 プラットフォームの制限です。この問題は、Microsoft Windows.NET Enterprise Server で修正されます。プラットフォームをアップグレードしないユーザーは、Windows のスクリプト エンジンを Version 5.6 にアップグレードできます。このアップグレード版は、Windows .NET Server のリリース後、Windows .NET Server から無料でダウンロードできます。


サイト パッケージャの名前とサイズの制限

ここでは、サイト パッケージャの名前とサイズの制限を示します。

  • サイト名
    • アンパック時のエラーを回避するために、サイト名には次の特殊文字を使わないでください。

      /、?、&、\、<、>、:、|、#、@、%、および '

    • シングルバイト文字またはダブルバイト文字で 127 バイトを超えるサイト名を指定しないでください。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
  • 仮想名
    • IIS エラーを回避するために、仮想ディレクトリ名には次の特殊文字を使わないでください。

      #、@、%、および '

    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
  • アプリケーション名
    • アプリケーションには、次の名前を付けないでください。

      Campaigns

      Transactions

      Product Catalog

      Direct Mail

      Predictor

      App Default Config

      BDSecurity

      Biz Data Service

      Transaction Config

      Site Data Warehouse

      Global Data Warehouse

      Site CS Authentication

    • アプリケーション名には、\ 文字は使えません。
    • アプリケーションを Web サイトのルートにアンパックする場合は、スラッシュ (/) を使用するか、または IIS パス フィールドを空白にします。


サイトをアンパックする

サイト、またはサイトのサブセットをコンピュータにアンパックするには、Commerce Server サイト パッケージャを使います。ローカル Web サーバーにサイトをアンパックできます。また、アンパック先のリモート Web サーバーを指定することもできます。サイト パッケージャを実行するときは、アンパック先のフォルダにファイルをコピーするための適切なアクセス許可が必要です。

Commerce Server には、Blank ソリューション サイトが同梱されています。また、Retail サイトと SupplierActiveDirectory ソリューション サイトを、http://go.microsoft.com/fwlink/?linkid=6491 からオンラインで入手できます。また、これらのサイトには、ビジネス デスク アプリケーションも用意されています。Commerce Server 2002 ソリューション サイトのインストールについては、「Commerce Server 2002 インストール ガイド」の「Installing Commerce Server 2002 Solution Sites」を参照してください。

ここでは、次のトピックについて説明します。

  • サイトをローカル Web サーバーにアンパックする
  • サイトをリモート Web サーバーにアンパックする


サイトをローカル Web サーバーにアンパックする

サイトをローカル Web サーバーにアンパックし、すべてのデータベース ファイルを 1 つの SQL Server にインストールできます。また、Web サーバーを既存のアプリケーションに追加し、サイトで複数のデータベース サーバーを使用するように指定することもできます。ここでは、大部分の既定の設定をそのまま使ってサイトをすばやくアンパックする方法について説明し、次に、すべての設定を指定してサイトをアンパックする方法について説明します。

標準モードは、次の場合に使います。

  • Commerce Server と IIS が同じコンピュータにインストールされている場合
  • すべてのデータベース ファイルを 1 台の SQL サーバーに置く場合
  • サイト全体をアンパックする場合

カスタム モードは、次の場合に使います。

  • Commerce Server と IIS が異なるコンピュータにインストールされている場合
  • 既存のサイトにパッケージのリソースだけを追加する場合
  • 既存のサイトにパッケージ内の 1 つのアプリケーションだけを追加する場合
  • 既存のサイトの既存のアプリケーションに Web サーバーを追加する場合
  • データベース ファイルを複数の SQL サーバーに置く場合

注

  • 次の操作手順は、ローカル コンピュータにログインしているユーザーがファイルを目的のフォルダにコピーするための適切なアクセス許可を持っていることを前提にしています。

既定のプロパティを使ってサイトをアンパックする

カスタム プロパティを使ってサイトをアンパックする


既定のプロパティを使ってサイトをアンパックする

アンパック処理を簡略化し、すべてのデータベース ファイルを 1 つのローカルまたはリモート SQL Server コンピュータにインストールするには、次の操作を行います。

大部分の既定の設定をそのまま使って、サイトをすばやくアンパックするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。

    [Commerce Server サイト パッケージャ] 画面が表示されます。

  2. [Commerce Server サイト パッケージャ] 画面で、[パッケージ ファイル (.pup) からアンパックする] を選択し、[次へ] をクリックします。

    [アンパック] 画面が表示されます。

  3. [アンパック] 画面で、[参照] をクリックします。

    [開く] ダイアログ ボックスが表示されます。

  4. [ファイルを開く] ダイアログ ボックスで、アンパックするファイルが含まれているフォルダを開き、ファイルを選択して [開く] をクリックします。

    [アンパック] 画面が表示されます。選択した *.pup パッケージが [アンパックするファイル] ダイアログ ボックスに表示されます。

  5. [アンパック] 画面で [標準] を選択し、[次へ] をクリックします。

    [標準] 画面が表示されます。

  6. [標準] 画面で、次の操作を行います。
    項目 | 操作
    [サイト名] | サイトの名前を変更する場合は、サイト名を入力します。名前の制限の一覧については、「サイト パッケージャの名前とサイズの制限」を参照してください。
    [IIS Web サイト] アプリケーションをインストールする IIS Web サイトの名前を、ボックスの一覧から選択します。

    注

    • 管理 Web サイトにサイトをアンパックしないでください。管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [SQL Server コンピュータ] | サイトのデータベースを格納する SQL Server を実行しているコンピュータの名前を入力します。または、既定の設定を使います。
    [統合セキュリティを使用] 統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    この設定をお勧めします。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] データベースの SQL Server ログイン名を入力します。

    注

    • セキュリティ上の理由から、管理データベースへのアクセスに sa ログインは使用しないでください。管理データベースの作成後にログイン情報を変更するには、SQL Server Enterprise Manager を使用します。
    [SQL Server ログイン パスワード] | データベースにアクセスするための SQL Server ログイン パスワードを入力します。
  7. [次へ] をクリックします。

    [アンパックしています] 画面が表示され、そこに実行中のタスクが表示されます。インストール処理でデータ ウェアハウス リソースをインストールした場合は、タスクが完了すると、[データ ウェアハウス] 画面が表示されます。

  8. データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力するか、または既定の設定を使います。
    [サーバー] | SQL 分析オンライン分析処理 (OLAP) コンピュータの名前を入力するか、または既定の設定を使います。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力するか、または既定の設定を使います。
  9. [OK] をクリックします。

    [アンパックしています] 画面が表示され、そこに実行中のタスクが表示されます。タスクが完了すると、最初の [プロファイル システム] 画面が表示されます。

    インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。

  10. ソリューション サイトをアンパックしている場合、既定の設定をそのまま使うときは、手順 12. に進みます。
  11. プロファイル設定を独自に指定する場合は、次の操作を行います。
    項目 操作
    [プロファイル スキーマの定義] サイトをパッケージ化したときに格納された XML ファイルを指定します。

    サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
    [サイト用語の定義] サイトをパッケージ化したときに格納された XML ファイルを指定します。

    サイトをパックするときに、プロファイル データベースにあるサイト用語の定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
    [式の定義] サイトをパッケージ化したときに格納された XML ファイルを指定します。

    サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。
  12. [次へ] をクリックします。

    インストール処理中にプロファイル リソースがインストールされた場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。

  13. ソリューション サイトをアンパックしている場合、既定の設定をそのまま使うときは、手順 15. に進みます。
  14. プロファイル設定を独自に指定する場合は、次の操作を行います。
    項目 操作
    [プロファイル システムの接続文字列] プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、新しい接続文字列を構成します。

    注

    • XML ファイルを変更した場合、Commerce Server は、その接続文字列の情報を保持しません。新しい XML ファイルには、既定の XML ファイルのデータ ストアとは異なる種類と数の集計データ ストアを格納することができます。そのためには、接続文字列を再入力する必要があります。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] ランタイム データ ストアにプロファイル テーブルを作成するためのスキーマ定義スクリプトを指定します。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    ソリューション サイトをアンパックするときは、SCHEMAUPM_SQLSource.SQLSource を指定します。このスクリプトを実行すると、既定のプロファイル定義 (住所、一括注文数、組織、対象とするコンテキスト、およびユーザー オブジェクト) のためのテーブルが作成されます。

    スクリプトの例については、ProfileSQL.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、新しいプロファイル データベースにプロファイル データがインポートされます。

    スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。

    サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。
  15. [OK] をクリックします。
  16. Windows 統合セキュリティを使う場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認して、[OK] をクリックします。

    Windows 統合セキュリティを選択しなかった場合は、次の手順に進みます。

  17. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  18. [終了] をクリックし、サイト パッケージャを閉じます。


カスタム プロパティを使ってサイトをアンパックする

既存のサイトにリソースまたはアプリケーションを追加する場合、または既存のアプリケーションに Web サーバーを追加する場合は、次の操作を行います。サイトで複数のデータベース サーバーを使用するように指定することもできます。

カスタム モードを使ってサイトをアンパックするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。
  2. [Commerce Server サイト パッケージャへようこそ] ダイアログ ボックスで、[パッケージ ファイル (.pup) からアンパックする] を選択し、[次へ] をクリックします。
  3. [アンパック] ダイアログ ボックスで、アンパックするファイルのパスと名前を入力するか、または [参照] ボタンをクリックします。

    [参照] ボタンをクリックした場合は、[ファイルを開く] ダイアログ ボックスで、アンパックするファイルが含まれているフォルダを開き、ファイルを選択して [開く] をクリックします。

  4. [アンパック] ダイアログ ボックスが再び表示されたら、[カスタム] を選択し、[次へ] をクリックします。
  5. [アンパック方法] ダイアログ ボックスで、いずれかのアンパック オプションを選択し、[次へ] をクリックします。

アンパック オプションについては、次の手順で説明します。

新しいサイトを作成するには

既存のサイトにパッケージのリソースを追加するには

既存のサイトにパッケージのアプリケーションを追加するには

既存のサイトの既存のアプリケーションに Web サーバーを追加するには

新しいサイトを作成するには

選択したサイト パッケージのコンテンツを新しいサイトにアンパックするには、このオプションを使って、次の操作を行います。

  1. [サイト名] ダイアログ ボックスで、新しいサイトの名前を入力し、[次へ] をクリックします。
  2. [リソースの選択] ダイアログ ボックスで、追加するリソースを選択し、[追加] をクリックして、[次へ] をクリックします。

    注

    • [リソースの選択] ダイアログ ボックスでは、[CS 認証] リソースと [プロファイル] リソースを一緒にインストールする必要があります。両方がインストールされていないと機能しません。
  3. [グローバル リソース ポインタ] ダイアログ ボックスで、既存または新規のグローバル リソースのマップ先となる既存のグローバル リソース ポインタを選択します。[既存のグローバル リソース] ダイアログ ボックスで、選択したグローバル リソース ポインタにマップするグローバル リソースを選択し、[次へ] をクリックします。

    [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。

  4. データベースとサーバーを変更するには、[リソース] 列からリソースを選択し、[変更] をクリックします。
  5. [データ リンク プロパティ] ダイアログ ボックスで、新しいデータベースとサーバーの名前を選択または入力し、[OK] をクリックして、[次へ] をクリックします。

    データベース接続文字列をコピーする場合は、コピー元の接続文字列が含まれる行を選択し、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、コピー元のサーバーとデータベースの名前を選択または入力し、[OK] をクリックします。[データ ベースの接続文字列] ダイアログ ボックスで、コピー元の接続文字列が含まれる行を再度選択し、[コピー] をクリックします。データベース接続文字列のコピー先の行を選択し、[貼り付け] をクリックします。

    注

    • データ ウェアハウス リソースは、常に、個別のデータベースにアンパックする必要があります。

    サイト パッケージャでデータベースを作成する必要がある場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスが表示されます。このダイアログ ボックスで指定した情報は、インストールされた SQL Server の Master データベースに接続するときに使用されます。

  6. [Commerce Server サイト パッケージャ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [統合セキュリティを使用] データベースに対して統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    この設定をお勧めします。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。この設定はお勧めしません。
    [SQL Server ログイン名] | データベースの SQL Server ログイン名を入力します。この設定はお勧めしません。
    [SQL Server ログイン パスワード] | SQL Server ログイン パスワードを入力します。この設定はお勧めしません。
  7. [OK] をクリックします。
  8. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。
  9. [IIS コンピュータ、Web サイトおよびパスを選択します] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [IIS コンピュータ名] アプリケーション ファイルのアンパック先となる、IIS Web サーバーのコンピュータの名前を入力します。

    リモート コンピュータ上の Web サイトの一覧を更新するには、[最新の情報に更新] をクリックします。
    [IIS Web サイト] 選択したアプリケーションの IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [IIS パス] | 選択したアプリケーションの IIS パスの名前を入力します。

    注

    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
    • アプリケーションを Web サイトのルートにアンパックする場合は、スラッシュ (/) を使用するか、または IIS パス フィールドを空白にします。
  10. [次へ] をクリックします。

    データ ウェアハウス リソースをサイトに追加した場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。

  11. データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] SQL 分析 (OLAP) を実行しているサーバーの名前を入力します。

    注

    • データ ウェアハウス リソースは、常に、OLAP データベースとして SQL Server を実行しているサーバーにインストールする必要があります。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  12. [OK] をクリックします。

    プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。

  13. ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 操作
    [プロファイル スキーマの定義] サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
    [サイト用語の定義] サイトをパックするときに、データベースにあるサイト用語定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
    [式の定義] サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。
  14. [次へ] をクリックします。

    プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。

  15. ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 操作
    [プロファイル システムの接続文字列] プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、新しい接続文字列を構成します。

    注

    • XML ファイルを変更した場合、Commerce Server は、その接続文字列の情報を保持しません。新しい XML ファイルには、既定の XML ファイルのデータ ストアとは異なる種類と数の集計データ ストアを格納することができます。そのためには、接続文字列を再入力する必要があります。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] ランタイム データ ストアにプロファイル テーブルを作成するためのスキーマ定義スクリプトを指定します。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    ソリューション サイトをアンパックするときは、SCHEMAUPM_SQLSource.SQLSource を指定します。このスクリプトを実行すると、既定のプロファイル定義 (住所、一括注文数、組織、対象とするコンテキスト、およびユーザー オブジェクト) のためのテーブルが作成されます。

    スクリプトの例については、ProfileSQL.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、新しいプロファイル データベースにプロファイル データがインポートされます。

    スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。

    サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。
  16. [OK] をクリックします。
  17. Windows 統合セキュリティを使う場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認して、[OK] をクリックします。
  18. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  19. [終了] をクリックし、サイト パッケージャを閉じます。

既存のサイトにパッケージのリソースを追加するには

  1. [アンパック方法] ダイアログ ボックスで、[既存のサイトにパッケージのリソースを追加] を選択し、[次へ] をクリックします。
  2. [サイトの選択] ダイアログ ボックスで、リソースの追加先となる既存のサイトを選択し、[次へ] をクリックします。
  3. [リソースの選択] ダイアログ ボックスで、追加するリソースを選択し、[追加] をクリックして、[次へ] をクリックします。

    注

    • [リソースの選択] ダイアログ ボックスでは、[CS 認証] リソースと [プロファイル] リソースを一緒にインストールする必要があります。両方がインストールされていないと機能しません。

    [グローバル リソース ポインタ] 画面が表示されます。この画面を使って、既存のグローバル リソースにマップするか、または新しいグローバル リソースを作成します。また、既にグローバル リソースがコンピュータ上にアンパックされていて、そのグローバル リソースを使用するサイトでグローバル リソース ポインタをアンパックする場合も、このダイアログ ボックスを使います。

  4. [グローバル リソース ポインタ] ダイアログ ボックスで、既存または新規のグローバル リソースのマップ先となる既存のグローバル リソース ポインタを選択します。[既存のグローバル リソース] ダイアログ ボックスで、選択したグローバル リソース ポインタにマップするグローバル リソースを選択し、[次へ] をクリックします。

    [データベースの接続文字列] 画面が表示されます。この画面には、サイトにインストールされるリソースで使われるすべての接続文字列、サーバー名、およびデータベースが一覧表示されます。

  5. [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。データベースとサーバーを変更するために、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、新しいデータベースとサーバーの名前を選択または入力し、[OK] をクリックして、[次へ] をクリックします。

    サイト パッケージャでデータベースを作成する必要がある場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスが表示されます。このダイアログ ボックスで指定した情報は、インストールされた SQL Server の Master データベースに接続するときに使用されます。

  6. [Commerce Server サイト パッケージャ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [統合セキュリティを使用] データベースに対して統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    この設定をお勧めします。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] | データベースの SQL Server ログイン名を入力します。
    [SQL Server ログイン パスワード] | SQL Server ログイン パスワードを入力します。
  7. [OK] をクリックします。
  8. データ ウェアハウス リソースをサイトに追加した場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] | SQL 分析 (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  9. [OK] をクリックします。
  10. プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル リソースの設定を指定するには、次の操作を行います。

    項目 操作
    [プロファイル スキーマの定義] サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
    [サイト用語の定義] サイトをパックするときに、データベースにあるサイト用語定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
    [式の定義] サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。
  11. [次へ] をクリックします。
  12. プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 操作
    [プロファイル システムの接続文字列] プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、接続文字列を構成します。

    注

    • XML ファイルを変更した場合、Commerce Server は、その接続文字列の情報を保持しません。新しい XML ファイルには、既定の XML ファイルのデータ ストアとは異なる種類と数の集計データ ストアを格納することができます。そのためには、接続文字列を再入力する必要があります。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] ランタイム データ ストアにプロファイル テーブルを作成するためのスキーマ定義スクリプトを指定します。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    ソリューション サイトをアンパックするときは、SCHEMAUPM_SQLSource.SQLSource を指定します。このスクリプトを実行すると、既定のプロファイル定義 (住所、一括注文数、組織、対象とするコンテキスト、およびユーザー オブジェクト) のためのテーブルが作成されます。

    スクリプトの例については、ProfileSQL.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、新しいプロファイル データベースにプロファイル データがインポートされます。

    スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。
  13. [OK] をクリックします。
  14. Windows 統合セキュリティを使う場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認して、[OK] をクリックします。
  15. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  16. [終了] をクリックし、サイト パッケージャを閉じます。

既存のサイトにパッケージのアプリケーションを追加するには

  1. [アンパック方法] ダイアログ ボックスで、[既存のサイトにパッケージのアプリケーションを追加] を選択し、[次へ] をクリックします。
  2. [サイトの選択] ダイアログ ボックスで、アプリケーションの追加先となる既存のサイトを選択し、[次へ] をクリックします。
  3. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションを選択し、[次へ] をクリックします。
  4. [IIS コンピュータ、Web サイトおよびパスを選択します] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [IIS コンピュータ名] アプリケーション ファイルのアンパック先となる、IIS Web サーバーのコンピュータの名前を入力します。

    リモート コンピュータ上の Web サイトの一覧を更新するには、[最新の情報に更新] をクリックします。
    [IIS Web サイト] 選択したアプリケーションの IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [IIS パス] | 選択したアプリケーションの IIS パスの名前を入力します。

    注

    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
    • アプリケーションを Web サイトのルートにアンパックする場合は、スラッシュ (/) を使用するか、または IIS パス フィールドを空白にします。
  5. [次へ] をクリックします。
  6. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  7. [終了] をクリックし、サイト パッケージャを閉じます。

既存のサイトの既存のアプリケーションに Web サーバーを追加するには

  1. [アンパック方法] ダイアログ ボックスで、[既存のサイトの既存のアプリケーションに Web サーバーを追加] を選択し、[次へ] をクリックします。
  2. [サイトの選択] ダイアログ ボックスで、Web サーバーの追加先となる既存のサイトを選択し、[次へ] をクリックします。
  3. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションを選択し、[次へ] をクリックします。
  4. [IIS コンピュータ、Web サイトおよびパスを選択します] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [IIS コンピュータ名] アプリケーション ファイルのアンパック先となる、IIS Web サーバーのコンピュータの名前を入力します。

    リモート コンピュータ上の Web サイトの一覧を更新するには、[最新の情報に更新] をクリックします。
    [IIS Web サイト] 選択したアプリケーションの IIS Web サイトの名前を選択します。

    注

    IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [IIS パス] | 選択したアプリケーションの IIS パスの名前を入力します。

    注

    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
    • アプリケーションを Web サイトのルートにアンパックする場合は、スラッシュ (/) を使用するか、または IIS パス フィールドを空白にします。
  5. [次へ] をクリックします。
  6. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  7. [終了] をクリックし、サイト パッケージャを閉じます。

注

  • サイトをインストールした直後、および配置した Commerce Server の構成に大きな変更を加えるときは、管理データベースのバックアップを別の名前で作成しておきます。このバックアップを使って、後から変更を元に戻すことができます。
  • データ ウェアハウス以外の Commerce Server データベースをリモート コンピュータにインストールする場合、データベースがそのコンピュータに表示されるまでに時間がかかることがあります。
  • アプリケーションを作成した後、unpack.vbs スクリプトがそのアプリケーションのルート フォルダに存在していることがあります (Blank サイトをアンパックした場合は存在しません)。アンパック後、必ず、このファイルを削除するか、またはこのファイルにセキュリティを設定してください。このファイルには、匿名ユーザーがアクセスできます。このスクリプト ファイルが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。サイトにセキュリティを設定する方法については、「サイトのセキュリティ設定」を参照してください。
  • このファイルは、Commerce Server サイト パッケージャを使ってサイトをアンパックするときに使われます。

関連項目

サイトのセキュリティ設定

サイトをパッケージ化する

サイト パッケージャをコマンド ラインから実行する

サイト パッケージャのトラブルシューティング


サイトをリモート Web サーバーにアンパックする

Commerce Server 2002 では、サイト パッケージャのカスタム モードを使って、パッケージのアプリケーションのインストール先となるリモート Web サーバーを指定できます。サイトまたはアプリケーションをリモート Web サーバーにアンパックするには、次の要件に注意してください。

  • データ ウェアハウス リソースをアンパックするには、サイト パッケージャを実行しているコンピュータに Analysis Services の分析マネージャ コンポーネントがインストールされている必要があります。ただし、ソリューション サイトをアンパックしたコンピュータ上に分析データベースが存在する必要はありません。
  • リモート Web サーバーには、Commerce Server 2002、インターネット インフォメーション サービス (IIS)、および分析データベースがインストールされている必要があります。
  • 分析マネージャ コンポーネントだけがインストールされている (Analysis Services 全体はインストールされていない) リモート コンピュータにデータ ウェアハウス リソースをアンパックするときは、分析キューブをインストールできるように、"Server Connection Info" という新しいレジストリ キーを作成します。このキーは、HKEY_LOCAL_MACHINE\Software\Microsoft\Olap Server の下に作成し、次の 2 つの文字列値を設定します。
    • Locks Directory に、<分析サーバーをインストールしたドライブ名>:\\\\<分析サーバーのインストール ディレクトリのルート>\\bin という文字列値を設定する。たとえば、d:\\\\Microsoft Analysis Services\\bin のように設定します。この値で、分析マネージャ コンポーネントがインストールされている場所を指定します。
    • Remote Locks Directory に、MsOLAPRepository$ という文字列値を設定する。
  • リモート コンピュータの Administrators グループのメンバには、Commerce アプリケーションをアンパックする Web サイトに対するオペレータ特権が必要です。詳細については、IIS のオンライン ヘルプの「Web サイトオペレータを指定する」を参照してください。さらに、サイト パッケージャを実行しているローカル コンピュータには、リモート コンピュータの IIS によってアクセス許可が付与されている必要があります。詳細については、IIS のオンライン ヘルプの「コンピュータに対してアクセスを許可および拒否する」を参照してください。サイト パッケージャは、この条件を確認しません。この条件が満たされない場合、サイトはアンパックされず、エラーも表示されません。
  • サイトまたはアプリケーションをアンパックする管理者は、有効な Windows アカウントのログイン資格情報を入力する必要があります。このアカウントは、リモート コンピュータの Administrators グループのメンバです。サイト パッケージャは、この条件を確認しません。この条件が満たされない場合、サイトはアンパックされず、エラーも表示されません。
  • サイト パッケージャがリモート コンピュータ上で書き込む新しいフォルダとファイルを作成するために、リモート コンピュータの Administrators グループは、ローカル Administrators グループに書き込みアクセス許可を付与する必要があります。サイト パッケージャは、この条件を確認しません。この条件が満たされない場合、サイトはアンパックされず、エラーも表示されません。
  • リモート コンピュータ上のアプリケーションは、この Commerce サイトの他のすべてのアプリケーションと同じ管理データベースに関連付ける必要があります。この機能を使って、サイトにアプリケーションを追加したり、リモート コンピュータ上のアプリケーションに Web サーバーを追加したりすることもできます。

サイトをリモート Web サーバーにアンパックする場合は、次の操作を行います。

  1. リモート Web サーバーへのサイトのアンパックを開始する
  2. 新しいサイトにアンパックするリソースを追加する
  3. アンパックするアプリケーションを選択する
  4. 選択したリソースの設定を指定する
  5. アンパック処理を完了する

リモート Web サーバーへのサイトのアンパックを開始する

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。
  2. [Commerce Server サイト パッケージャ] ダイアログ ボックスで、[パッケージ ファイル (.pup) からアンパックする] を選択し、[次へ] をクリックします。
  3. [アンパック] ダイアログ ボックスで、アンパックするファイルのパスと名前を入力するか、または [参照] ボタンをクリックします。

    [参照] ボタンをクリックした場合は、[ファイルを開く] ダイアログ ボックスで、アンパックするファイルが含まれているフォルダを開き、ファイルを選択して [開く] をクリックします。

  4. [アンパック] ダイアログ ボックスが再び表示されたら、[カスタム] を選択し、[次へ] をクリックします。

新しいサイトにアンパックするリソースを追加する

  1. [アンパック方法] ダイアログ ボックスで [新しいサイトの作成] を選択し、[次へ] をクリックします。
  2. [サイト名] ボックスにサイトの名前を入力し、[次へ] をクリックします。

    注

    • アンパック時のエラーを回避するために、サイト名に特殊文字を使わないでください。特殊文字が含まれるサイト名は、SQL Server データベースで認識されません。詳細については、SQL Server Books Online を参照してください。
    • シングルバイト文字またはダブルバイト文字で 127 バイトを超えるサイト名を指定しないでください。
    • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次回サイトをアンパックするときに、OLAP データベースが上書きされることがあります。
  3. [リソースの選択] ダイアログ ボックスで、追加するリソースを選択し、[次へ] をクリックします。

    注

    • [リソースの選択] ダイアログ ボックスでは、[CS 認証] リソースと [プロファイル] リソースを一緒にインストールする必要があります。両方がインストールされていないと機能しません。
  4. [グローバル リソース ポインタ] ダイアログ ボックスの [次へ] をクリックします。

    このダイアログ ボックスを使って、既存のグローバル リソースにマップするか、または新しいグローバル リソースを作成します。

  5. [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。データベースとサーバーを変更するには、[変更] をクリックし、新しいデータベースとサーバーの名前を入力します。

    注

    • データベース接続文字列をコピーする場合は、コピー元の接続文字列が含まれる行を選択し、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、コピー元のサーバーとデータベースの名前を選択または入力し、[OK] をクリックします。[データ ベースの接続文字列] ダイアログ ボックスで、コピー元の接続文字列が含まれる行を再度選択し、[コピー] をクリックします。データベース接続文字列のコピー先の行を選択し、[貼り付け] をクリックします。
  6. [次へ] をクリックします。

    サイト パッケージャでデータベースを作成する必要がある場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスが表示されます。このダイアログ ボックスで指定した情報は、インストールされた SQL Server の Master データベースに接続するときに使用されます。

  7. [Commerce Server サイト パッケージャ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [統合セキュリティを使用] データベースに対して統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

    この設定をお勧めします。

    Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、Commerce Server ヘルプの「サイトのセキュリティ設定」を参照してください。
    [特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
    [SQL Server ログイン名] | データベースの SQL Server ログイン名を入力します。
    [SQL Server ログイン パスワード] | SQL Server ログイン パスワードを入力します。
  8. [OK] をクリックします。

アンパックするアプリケーションを選択する

  1. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。
  2. [IIS コンピュータ、Web サイトおよびパスの選択] ダイアログ ボックスの [アプリケーション] 列でアプリケーションを選択し、次の操作を行います。
    項目 | 操作
    [IIS コンピュータ名] 選択したアプリケーションのリモート IIS Web サーバーのコンピュータ名を入力します。

    コンピュータの Web サイトの一覧を追加するには、[最新の情報に更新] をクリックします。
    [IIS Web サイト] 選択したアプリケーションの IIS Web サイトの名前を選択します。

    注

    • IIS 管理 Web サイトにサイトをアンパックした場合は、IIS の管理セキュリティ制限のため、そのサイトとビジネス デスクは機能しません。
    [IIS パス] | 選択したアプリケーションの IIS パスの名前を入力します。

    注

    • 各アプリケーションは、[IIS コンピュータ、Web サイトおよびパスの選択] ダイアログ ボックスで個別に構成する必要があります。
    • サイト パッケージャは、対応する IIS Web サイトのホーム ディレクトリの下に各アプリケーションをアンパックします。ホーム ディレクトリの中には、アプリケーションの IIS 仮想ディレクトリ名を使ったサブフォルダが作成されます。
  3. [次へ] をクリックします。

    リモート コンピュータにアンパックするアプリケーションごとに Unpack.bat ファイルを実行する必要があることを示すメッセージが表示されます。アンパックが完了したら、それぞれの Unpack.bat ファイルがある場所をサイト パッケージャ ログ ファイルで確認します。

選択したリソースの設定を指定する

  1. データ ウェアハウス リソースをサイトに追加した場合、[データ ウェアハウス] ダイアログ ボックスが表示されます。データ ウェアハウス リソースの設定を指定するには、次の操作を行います。
    項目 | 操作
    [名前] | グローバル データ ウェアハウス リソースの名前を入力します。
    [サーバー] | SQL 分析 (OLAP) コンピュータの名前を入力します。
    [データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
  2. [OK] をクリックします。

    プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち最初のダイアログ ボックスが表示されます。

  3. ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。
  4. プロファイル設定を独自に指定する場合は、次の操作を行います。
    項目 操作
    [プロファイル スキーマの定義] サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
    [サイト用語の定義] サイトをパックするときに、データベースにあるサイト用語定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
    [式の定義] サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。

    ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。
  5. [次へ] をクリックします。

    プロファイル リソースをサイトに追加した場合、2 つの [プロファイル システム] ダイアログ ボックスのうち 2 番目のダイアログ ボックスが表示されます。

  6. ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

    プロファイル設定を独自に指定する場合は、次の操作を行います。

    項目 操作
    [プロファイル システムの接続文字列] プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、接続文字列を構成します。

    注

    • XML ファイルを変更した場合、Commerce Server は、その接続文字列の情報を保持しません。新しい XML ファイルには、既定の XML ファイルのデータ ストアとは異なる種類と数の集計データ ストアを格納することができます。そのためには、接続文字列を再入力する必要があります。
    [スキーマ定義のスクリプト (*.sql, *.vbs)] ランタイム データ ストアにプロファイル テーブルを作成するためのスキーマ定義スクリプトを指定します。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    ソリューション サイトをアンパックするときは、SCHEMAUPM_SQLSource.SQLSource を指定します。このスクリプトを実行すると、既定のプロファイル定義 (住所、一括注文数、組織、対象とするコンテキスト、およびユーザー オブジェクト) のためのテーブルが作成されます。

    スクリプトの例については、ProfileSQL.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    UserObject テーブル、またはその他のプロファイル スキーマの定義を変更する場合は、SQL Server Enterprise Manager を使って、ここで使用するスクリプトを生成する必要があります。詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、新しいプロファイル データベースにプロファイル データがインポートされます。

    スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。

    サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。
  7. [OK] をクリックします。

アンパック処理を完了する

  1. Windows 統合セキュリティを使う場合は、[Commerce Server サイト パッケージャ] ダイアログ ボックスで、アンパックするリソースの一覧を表示し、該当する Windows アカウントにアクセス許可を必要とするリソースを確認して、[OK] をクリックします。
  2. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。

    注

    • リモート サーバーにアンパックするときに、サイト パッケージャは、ほとんどの状態情報をローカル コンピュータの Pup.log ファイルに記録します。ただし、一部の状態情報は、リモート コンピュータの Pup.log ファイルにも記録されます。両方の Pup.log ファイルを確認する必要があります。
  3. [アンパックが完了しました。] ダイアログ ボックスで、[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。

    サイト パッケージャ ログ (Pup.log) ファイルが表示されます。

  4. ログ ファイルで、アンパックしたサイトに関連付けられたテキスト文字列 "unpack.bat" を検索します。"unpack.bat" を検索すると、次のログ エントリが見つかります。
    \\<ServerName>\<DriveLetter>$\inetpub\wwwroot\<SiteName>\unpack.bat has been created.
 Execute this batch file to complete the unpacking of the <ApplicationName> application,

    <ServerName> は、リモート Web サーバーの名前です。<DriveLetter> は、サイトをアンパックしたリモート サーバーのドライブ名です。<SiteName> は、リモート Web サーバーにアンパックしたサイトの名前です。<ApplicationName> は、リモート Web サーバーにアンパックしたアプリケーションの名前です。

  5. リモート Web サーバーで Unpack.bat ファイルを実行して、アンパック処理を完了します。

    注

  • アプリケーションを作成した後、unpack.vbs スクリプトがルート ディレクトリに存在していることがあります (Blank サイトをアンパックした場合は存在しません)。アンパック後、必ず、このファイルを削除するか、またはこのファイルにセキュリティを設定してください。このファイルには、匿名ユーザーがアクセスできます。このスクリプト ファイルが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。サイトにセキュリティを設定する方法については、「サイトのセキュリティ設定」を参照してください。
  1. [終了] をクリックし、サイト パッケージャを閉じます。


リソースとデータがアンパックされる場所

次の表は、リソースと、各リソースについてパッケージ化されるデータの一覧です。サイトをパッケージ化するときに、これらのデータがパッケージ化されます。

リソース | パッケージ化されるデータ
アプリケーション既定の構成 | すべてのプロパティ値。
キャンペーン | キャンペーン データベースの次のテーブル。 industry_code、customer、event_type、campaign、creative_type、creative_size、creative、creative_property、creative_property_value、campaign_item_types、campaign_item、order_discount、dm_item、ad_item、creative_type_xref、page_group、page_group_xref、target_group、target、target_group_xref、order_discount_expression、order_discount_misc。
CS 認証 | AuthSetup.ini ファイルの設定。サイトをアンパックするときに、新しいリソースを作成することも、既存のリソースを参照することもできます。
Commerce Server データ ウェアハウス | なし。サイトをアンパックするときに、新しいデータ ウェアハウス リソースを作成することも、既存のリソースを参照することもできます。
Commerce Server ダイレクト メーラー | なし。サイト内にダイレクト メーラー リソースが存在することを確認します。使用するダイレクト メーラー グローバル リソースは、アンパック時に指定します。サイトをアンパックするときに、ダイレクト メーラー リソースを参照できます。新しいリソースを作成するには、Commerce Server のセットアップ プログラムを使う必要があります。
予測 | なし。サイト内に予測リソースが存在することを確認します。使用する予測グローバル リソースは、アンパック時に指定します。サイトをアンパックするときに、予測リソースを参照できます。新しいリソースを作成するには、Commerce Server のセットアップ プログラムを使う必要があります。
商品カタログ | カタログ データベースの次のテーブル。 CatalogAttributes、CatalogDefinitions、CatalogDefinitionProperties、CatalogGlobal、CatalogUsedDefinitions、CatalogEnumValues、CatalogStatus、CatalogCustomCatalogs、CatalogCustomPrices、CatalogSet_Info、CatalogSet_Catalogs、CatalogToVendorAssociation、<x>_ProductsComplete、<x>_Relationships、<x>_Hierarchy。
プロファイル | スキーマ スクリプトとデータ スクリプト。既存のデータベースはパッケージ化されません。サイトをアンパックするときに、新しいリソースを作成することも、既存のリソースを参照することもできます。
トランザクション | トランザクション データベースの次のテーブル。 TransDimension、TransCategory。
トランザクション構成 | トランザクションの構成データベースの次のテーブル。 Decode、Region、RegionalTax、ShippingConfig、TableShippingRates。


サイトをパッケージ化する

サイトをパッケージ化すると、アプリケーションと設定が 1 つのパッケージ ファイルに保存されます。パッケージに含まれる IIS プロパティの一覧については、「パッケージ化される IIS プロパティ」を参照してください。

注

  • カスタム テーブルおよびカスタム テーブル内のデータをパッケージ ファイルに組み込む方法については、「Using the GenericPup Object」を参照してください。

サイトをパッケージ化するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。
  2. [Commerce Server サイト パッケージャへようこそ] ダイアログ ボックスで、[既存のサイトをパッケージ化] を選択し、[次へ] をクリックします。
  3. [パッケージ サイト] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [パッケージ化するサイト] | 利用できるサイトの一覧から、パッケージ化するサイトを選択します。
    [作成するパッケージ ファイル] 作成するパッケージ ファイルの名前を選択するか、または [参照] をクリックします。

    [参照] をクリックした場合は、[名前を付けて保存] ダイアログ ボックスで、作成するパッケージ ファイルが含まれているフォルダを開き、ファイルを選択して [保存] をクリックします。

  4. [パッケージ サイト] ダイアログ ボックスに戻ったら、[次へ] をクリックします。
  5. パッケージ化するサイトにプロファイル リソースが追加されている場合は、[プロファイル システム] ダイアログ ボックスが表示されます。[プロファイル システム] ダイアログ ボックスで、次の操作を行います。
    項目 操作
    [スキーマ定義のスクリプト (*.sql; *.vbs)] プロファイル定義をパックするには、SQL Server Enterprise Manager を使って SQL データベースの定義 (スキーマ) を .sql ファイルにエクスポートし、そのファイルの名前をここで指定します。

    サイトをアンパックするときに、このファイルを指定しておくと、ランタイム データ ストアのプロファイル テーブルに定義がアンパックされます。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
    [データ生成スクリプト (*.sql)] プロファイル データベースに格納されているプロファイル データをパックするには、Enterprise Manager を使って SQL データベースのプロファイル データを .sql ファイルにエクスポートし、そのファイルの名前をここで指定します。

    サイトをアンパックするときに、この .sql ファイルを指定しておくと、ランタイム データ ストアのプロファイル テーブルにデータが設定されます。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

    データ生成スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトは、\Program Files\Microsoft Commerce Server 2002 にあります。

    サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。
  6. [OK] をクリックします。
  7. [パッケージ化が完了しました。] ダイアログ ボックスで、[ログ ファイルの表示] をクリックし、サイト パッケージャ ログ ファイルでイベントの一覧を確認します。
  8. [終了] をクリックし、サイト パッケージャを閉じます。

注

  • IIS 仮想ディレクトリに子 IIS アプリケーションが含まれる Commerce Server アプリケーションをパッケージ化すると、サイト パッケージャは子アプリケーションのフォルダとファイルをパッケージ化します。パッケージに含まれる子アプリケーションのフォルダとファイルが必要でない場合は、親 Commerce Server アプリケーションのアンパック後に削除する必要があります。
  • サイト パッケージャは、IIS アプリケーションの子仮想ディレクトリにあるファイルをパッケージ化しません。子仮想ディレクトリのファイルをパッケージ化する必要がある場合は、サイトをパッケージ化する前に、フォルダとファイルを IIS アプリケーションのルート フォルダの子物理フォルダに移動します。
  • アプリケーション (Retail や RetailBusinessDesk など) が、別々の Web サーバーに存在するサイトをパッケージ化するには、いずれかの Web サーバーを他のアプリケーションに追加します。たとえば、Retail がコンピュータ A にインストールされ、RetailBizDesk がコンピュータ B にインストールされている場合は、サイト パッケージャをコンピュータ B で実行し、コンピュータ B を Retail 用の Web サーバーとして追加します。次に、コンピュータ B からサイトをパッケージ化します (反対に、コンピュータ A を RetailBizDesk に追加し、コンピュータ A からサイトをパッケージ化することもできます)。詳細については、「アプリケーションに Web サーバーを追加する」を参照してください。

関連項目

パッケージ化される IIS プロパティ

サイトをアンパックする

サイト パッケージャをコマンド ラインから実行する

Packaging Other Data


サイト パッケージャでスクリプトを使う

Commerce Server サイト パッケージャでは、パッケージ前のスクリプト、パッケージ後のスクリプト、アプリケーション スクリプト、およびスキーマ定義スクリプトの 4 種類の Microsoft Visual Basic スクリプトを使用できます。

ここでは、次のトピックについて説明します。

  • パッケージ前のサイト パッケージャのスクリプト
  • パッケージ後のサイト パッケージャのスクリプト
  • アプリケーション固有のサイト パッケージャのスクリプト
  • 拡張プロファイル スキーマをパッケージ化する

関連項目

サイト パッケージャをコマンド ラインから実行する


パッケージ前のサイト パッケージャのスクリプト

パッケージ前のスクリプトは、パッケージ名を指定した直後、サイトがアンパックされる前に実行されます。パッケージ前のスクリプトには、Pre<パッケージ名>.vbs 形式の名前 (PreRetail.vbs など) を付ける必要があります。

パッケージ前のスクリプトには、モード ( /s: ) のパラメータが 1 つ用意されています。このパラメータが、サイト パッケージャをサイレント モードと標準のインストール モードのどちらで実行するかを示します。パッケージ前のスクリプトを実行するためには、アンパックするパッケージと同じフォルダにスクリプトを置く必要があります。


パッケージ後のサイト パッケージャのスクリプト

パッケージ後のスクリプトは、すべてのアンパックが完了した後、[アンパックが完了しました。] ダイアログ ボックスが表示される前に実行されます。パッケージ後のスクリプトには、Post<パッケージ名>.vbs 形式の名前 (PostRetail.vbs など) を付ける必要があります。パッケージ後のスクリプトには、次の 2 つのパラメータが用意されています。

  • 引用符 (") で囲まれたサイト名 ("MySite")
  • モード (/s:) - サイレント モードまたは標準のインストール モード

パッケージ後のスクリプトを実行するためには、アンパックするパッケージと同じフォルダにスクリプトを置く必要があります。


アプリケーション固有のサイト パッケージャのスクリプト

サイト パッケージャでは、アプリケーション固有のスクリプトも実行できます。アプリケーション固有のスクリプトには、次の 6 つのパラメータが用意されています。

  • 引用符 (") で囲まれたサイト名 (/n:"MySite")
  • 引用符で囲まれたアプリケーション名 (/r:"MyApp")
  • サーバー番号、またはアプリケーションがインストールされた IIS Web サイトのインスタンス番号 (/i:1)
  • アプリケーションがインストールされた仮想ディレクトリの名前 (/v:"MyRoot")
  • アプリケーション ファイルがインストールされた場所を示す、引用符で囲まれたファイル パス (/d: "C:\inetpub\wwwroot")
  • モード (/s:) - サイレント モードまたは標準のインストール モード

アプリケーション スクリプトは、次のイベントが発生した後で、アプリケーションごとに実行されます。

  • アプリケーションがインストールされ、ファイルがコピーされる。
  • IIS のプロパティがアプリケーション用に設定される。
  • アプリケーションの情報が管理データベースに書き込まれる。
  • アプリケーションが終了したことを、サイト パッケージャがデータ ウェアハウスに通知する。

注

  • アプリケーションを作成した後、unpack.vbs スクリプトがそのアプリケーションのルート フォルダに存在していることがあります (Blank サイトをアンパックした場合は存在しません)。アンパック後、必ず、このファイルを削除するか、またはこのファイルにセキュリティを設定してください。このファイルには、匿名ユーザーがアクセスできます。このスクリプト ファイルが不正に使われると、サービス拒否が発生したり、サイトの設定が壊れることがあります。サイトにセキュリティを設定する方法については、「サイトのセキュリティ設定」を参照してください。


拡張プロファイル スキーマをパッケージ化する

拡張プロファイル スキーマを含むパッケージを作成する場合は、サイトをパッケージ化する前にスクリプトを生成する必要があります。次の手順は、拡張プロファイル スキーマをパッケージ化する方法の概要を示しています。

  1. SQL Server Enterprise Manager を使って、UserObject テーブルを拡張し、独自の属性を追加します。詳細については、SQL Server Books Online を参照してください。
  2. データ オブジェクトに新しいデータ メンバを追加します。詳細については、「プロファイル リソースで新しいデータ メンバを追加する」を参照してください。
  3. SQL Server Enterprise Manager を使って、拡張プロファイル スキーマ用のスクリプトを生成し、エクスポートします。詳細については、SQL Server Books Online を参照してください。
  4. サイトをパッケージ化するときに、生成したスキーマ定義のスクリプトの場所を指定するように求められます。スクリプトを指定しないと、既定のスクリプトがパッケージ化されて、拡張プロファイル スキーマは含まれません。

関連項目

UserObject Profile Schema

サイトをパッケージ化する

パッケージ化される IIS プロパティ


サイト パッケージャをコマンド ラインから実行する

ランタイム ファイルの Pup.exe を使うと、コマンド ラインから Commerce Server サイト パッケージャを実行できます。サイト パッケージャには、サイトやリソースのパッケージ化、アンパック、削除など、サイトとリソースに対する処理を行うための一連のコマンド ライン オプションが用意されています。また、Microsoft Visual Basic スクリプトを使って、カスタム インストールの要件に合わせた独自リソースの参照を設定することもできます。

たとえば、BlankSite という名前のサイトをパッケージ化するには、コマンド ラインで次のように入力します。

pup /p  /s:BlankSite /f:C:\Program Files\Microsoft Commerce Server 2002\PuP Packages\XBlank.pup
 /i:C:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\SiteCreate\packBlank.ini

注

  • サイトをパッケージ化するコマンドを入力するときは、パラメータをスペースで区切る必要があります。また、応答ファイルの完全なパスとファイル名も指定する必要があります (上の例では、packBlank.ini が応答ファイルになります)。
  • コマンド ラインからサイト パッケージャを実行しても、[プロファイル システム] ダイアログ ボックスは表示されます。

次の表は、Pup.exe ファイルで使用できるコマンド ライン オプションの一覧です。

オプション | パッケージ | アンパック | 説明
/s: | X |  | パッケージ化するサイトの名前を指定します。 /s:<サイトの名前>
/f: | X | X | パッケージ ファイルのパスを指定します。 /f:<パッケージの完全なパス>
/r | X | X | [リソースの選択] ダイアログ ボックスを表示します。
/i: | X | X | サイレント処理で使用する .ini ファイルを指定します。 /i:<完全なパス名>
/p | X |  | サイトまたはリソースをパッケージ化します。
/u |  | X | サイトまたはリソースをアンパックします。
/a: | X | X | アプリケーションの名前を指定します。 /a:<アプリケーション名>
/w: |  | X | Web サーバーの名前を指定します。 /w:<Web サーバー名> このオプションは、ローカル コンピュータを Web サーバとしてアンパックするときに使います。

たとえば、Retail という名前のサイトをアンパックするには、次のようなコマンドを使います。

"C:\Program Files\Microsoft Commerce Server 2002\PuP.exe" /u
/f:C:\Program Files\Microsoft Commerce Server 2002\PuP Packages\Retail.pup
/i:C:\Commerce\Retail.ini

関連項目

サイト パッケージャの .ini ファイルをカスタマイズする


サイト パッケージャの .ini ファイルをカスタマイズする

Commerce Server の BlankSite パッケージには、PackBlank.ini ファイルが含まれています。Retail および Supplier ソリューション サイトごとに提供される個々の .ini ファイルは、http://go.microsoft.com/fwlink/?linkid=6491 で入手できます。これらの .ini ファイルをテンプレートとして使って、独自のパッケージに合わせたカスタム .ini ファイルを作成できます。たとえば、夜間にパッケージを構築して朝インストールする運用環境では、これらの .ini ファイルがパッケージ構築の自動化に役立ちます。

パッケージ化とアンパックの両方に、同じ .ini ファイルを使用できます。パッケージ化またはアンパックの処理時には、処理と無関係なセクションが無視されます。

.ini ファイルはコマンド ラインから実行します。実行方法とコマンドの例については、「サイト パッケージャをコマンド ラインから実行する」を参照してください。

ここでは、PackBlank.ini ファイルの内容を、各セクションに関するコメントと共に示します。アスタリスク (*) はコメントを示します。

[General]

  • SiteName=BlankSite
  • Description=Blank site
  • NumOfResources= 12
  • NumOfApplications= 2
    注
    • Commerce Server サイトをアンパックすると、通常、2 つのアプリケーションがインストールされます。1 つはユーザーがアクセスする Web サイト用のアプリケーションで、もう 1 つは Commerce Server ビジネス デスク用のアプリケーションです。

インストールされるリソースの一覧がこの後ろに続きます。特定のリソースをインストールしない場合は、そのリソースの行を .ini ファイルから削除して、リソースの番号を付け直します。リソースがアンパックされる順序は、アンパック処理には影響しません。ただし、アプリケーションがアンパックされる前にすべてのリソースがアンパックされます。

サイトをパッケージ化するときには、.ini ファイルのリソースの一覧は読み込まれません。代わりに、サイト全体がパッケージ化されます。

  • Resource0=App Default Config
  • Resource1=Product Catalog
  • Resource2=Campaigns
  • Resource3=Site Data Warehouse
  • Resource4=Transactions
  • Resource5=Transaction Config
  • Resource6=Direct Mail
  • Resource7=Predictor
  • Resource8=BizData Service
  • Resource9=Global Data Warehouse
  • Resource10=Site CS Authentication
  • Resource11=BDSecurity
  • Application0=BlankSite
  • Application1=BlankBizDesk
  • NumOfConnStrs= 7

重要

  • アプリケーション名は、パッケージ化されたアプリケーションの名前と一致している必要があります。たとえば、パッケージがアプリケーション名 BlankSite で作成された場合は、アプリケーションの名前が BlankSite でなければなりません。アプリケーションの名前を変更する場合は、VRoot も変更する必要があります。
  • App Default Config と BDSecurity は、アンパックに最低限必要なリソースです。ビジネス デスクを独自にカスタマイズして、BDSecurity コンポーネントへのすべての依存関係を削除した場合は、BDSecurity リソースは必要ありません。

[ConnStrs]

以下に、各リソースの接続文字列を示します。接続文字列は次のパラメータをとります。

ConnStrResourceName

リソースの名前です。

ConnStrValue

接続文字列の値です。

ConnStrPropertyName

接続文字列のプロパティ名です。

以下は、[ConnStrs] セクションの例です。

注

  • 統合セキュリティを使うには、各リソースの接続文字列の値 (ConnStrValue) で、パラメータ 'User ID=;Password=;' を 'Integrated Security=SSPI' に置き換えます。
ConnStrResourceName0=Product Catalog
ConnStrPropertyName0=connstr_db_Catalog
ConnStrValue0=Provider=SQLOLEDB;Persist Security Info=False;Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;ConnStrResourceName1=Campaigns
ConnStrPropertyName1=connstr_db_Campaigns
ConnStrValue1=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName2=Transactions
ConnStrPropertyName2=connstr_db_Transactions
ConnStrValue2=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName3=TransactionConfig
ConnStrPropertyName3=connstr_db_TransactionConfig
ConnStrValue3=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName4=Biz Data Service
ConnStrPropertyName4=connstr_db_bds
ConnStrValue4=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;
ConnStrResourceName5=Global Data Warehouse
ConnStrPropertyName5=connstr_db_dw
ConnStrValue5=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_dw;Data Source=SERVERNAME;
ConnStrResourceName6=BDSecurity
ConnStrPropertyName6=connstr_db_bdsecurity
ConnStrValue6=Provider=SQLOLEDB;Persist Security Info=False; Integrated Security='SSPI';Initial Catalog=BlankSite_commerce;Data Source=SERVERNAME;

[Direct Mail]

コンピュータに既に存在するグローバル リソース名にグローバル リソースを割り当てるには、GlobalResourceName を使います。

注

  • Direct Mail で Add New Global Resource を使うことはできません。コンピュータに既に存在するリソースを指定する必要があります。
  • リソースの文字列はローカライズされているため、Commerce Server マネージャに表示されているリソース名に一致しなければなりません。一致しない場合、サイト パッケージャはそのリソースを見つけることができません。
GlobalResourceName=Direct Mail on SERVERNAME

[Predictor]

注

  • Predictor で Add New Global Resource を使うことはできません。コンピュータに既に存在するリソースを指定する必要があります。
  • リソースの文字列はローカライズされているため、Commerce Server マネージャに表示されているリソース名に一致しなければなりません。一致しない場合、サイト パッケージャはそのリソースを見つけることができません。
GlobalResourceName=Predictor on SERVERNAME

[BlankSite]

ASPDir=
VRoot=
Website=
Machine=

注

  • Website= だけが必須プロパティです。
  • Website プロパティはローカライズされているため、インターネット インフォメーション サービス (IIS) の MMC のスナップインの Web サイト名に一致しなければなりません。一致しない場合、サイト パッケージャはそのプロパティを見つけることができません。
  • Machine プロパティは、リモート Web サーバーにアプリケーションをアンパックするときに使います。ローカル サーバーにアンパックする場合は、このフィールドは空白のままにしておきます。

[BlankBizDesk]

ASPDir=
VRoot=
Website=
Machine=

    注

  • Website= だけが必須プロパティです。
    •

  • Website プロパティはローカライズされているため、インターネット インフォメーション サービス (IIS) の MMC のスナップインの Web サイト名に一致しなければなりません。一致しない場合、サイト パッケージャはそのプロパティを見つけることができません。
    •

  • Machine プロパティは、リモート Web サーバーにアプリケーションをアンパックするときに使います。ローカル サーバーにアンパックする場合は、このフィールドは空白のままにしておきます。
    •

[Biz Data Service]

    注

  • リソースの文字列はローカライズされているため、Commerce Server マネージャに表示されているリソース名に一致しなければなりません。一致しない場合、サイト パッケージャはそのリソースを見つけることができません。
    •

GlobalResourceName= (Add new global resource)

[Global Data Warehouse]

    注

  • リソースの文字列はローカライズされているため、Commerce Server マネージャに表示されているリソース名に一致しなければなりません。一致しない場合、サイト パッケージャはそのリソースを見つけることができません。
    •

GlobalResourceName= (Add new global resource)

[Site CS Authentication]

    注

  • リソースの文字列はローカライズされているため、Commerce Server マネージャに表示されているリソース名に一致しなければなりません。一致しない場合、サイト パッケージャはそのリソースを見つけることができません。
    •

GlobalResourceName= (Add new global resource)


サイト パッケージャのダイアログ ボックスのヘルプ

ここでは、Commerce Server サイト パッケージャに関する、状況依存のヘルプ トピックについて説明します。

ここでは、次のトピックについて説明します。

  • [Commerce Server サイト パッケージャへようこそ] ダイアログ ボックス
  • [サイトのパッケージ化] ダイアログ ボックス
  • [アンパック] ダイアログ ボックス
  • [標準] ダイアログ ボックス
  • [アンパック方法] ダイアログ ボックス
  • [サイト名] ダイアログ ボックス
  • [リソースの選択] ダイアログ ボックス
  • [グローバル リソース ポインタ] ダイアログ ボックス
  • [データベースの接続文字列] ダイアログ ボックス
  • [アプリケーションの選択] ダイアログ ボックス
  • [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックス
  • [Master データベース] ダイアログ ボックス
  • [新しいデータベース] ダイアログ ボックス
  • [データ ウェアハウスのプロパティ] ダイアログボックス
  • [プロファイル システム] ダイアログ ボックス
  • [プロファイル システム : Active Directory データ ソース] ダイアログ ボックス
  • [プロファイル システム : OLEDB データ ソース] ダイアログ ボックス
  • [アンパックが完了しました。] ダイアログ ボックス
  • [サイトの選択] ダイアログ ボックス


[Commerce Server サイト パッケージャへようこそ] ダイアログ ボックス

次の表は、[ようこそ] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[パッケージ ファイル (.pup) からアンパックする] | Commerce Server アプリケーションを Web サーバーにアンパックするときに選択します。詳細については、「サイトをアンパックする」を参照してください。
[既存のサイトをパッケージ化] | Commerce Server アプリケーションが含まれるパッケージを作成し、それを他の Web サーバーに移動できるようにするときに選択します。詳細については、「サイトをパッケージ化する」を参照してください。

関連項目

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[サイトのパッケージ化] ダイアログ ボックス

Commerce Server サイト パッケージャを使ってサイトをパッケージ化するときに、[サイトのパッケージ化] ダイアログ ボックスが表示されます。このダイアログ ボックスで、パッケージ化するサイトとパッケージ ファイルの名前を指定します。

次の表は、[パッケージ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[パッケージ化するサイト] | パッケージ化するCommerce Server サイトの名前を選択します。
[作成するパッケージ ファイル] | 作成するパッケージ ファイルの名前を入力します。

関連項目

サイトをパッケージ化する

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[アンパック] ダイアログ ボックス

Commerce Server サイト パッケージャを使ってサイトをアンパックするときに、このダイアログ ボックスが表示されます。このダイアログ ボックスで、アンパックするファイルの名前と実行するアンパックの種類を指定します。

次の表は、[アンパック] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[アンパックするファイル] | アンパックするパッケージ ファイルの名前を選択します。
[標準] | このサイトのすべてのアプリケーションをローカル コンピュータに、すべてのデータベースを 1 台のローカル コンピュータまたはリモート コンピュータに、すばやくインストールする時に指定します。
[カスタム] | すべての設定を選択しながらサイトをアンパックする時に指定します。インストールするアプリケーション、およびデータベースの構成方法を指定できます。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[標準] ダイアログ ボックス

Commerce Server サイト パッケージャを使ってサイトをアンパックするときに、[アンパック] ダイアログ ボックスの [標準] オプションを選択すると、このダイアログ ボックスが表示されます。

次の表は、[標準] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[サイト名] サイトに付ける名前を入力します。

注

  • サイトのアプリケーションの仮想ディレクトリ名は、サイトをパッケージ化したときに使ったアプリケーション名と同じになります。
[IIS Web サイト] | サイトのホストになるインターネット インフォメーション サービス (IIS) Web サイトの名前を選択します。既存の Web サイトの名前にする必要があります。IIS スナップインを使って新しい IIS Web サイトを作成することもできます。
[SQL Server コンピュータ] | サイト データベースのホストになる SQL Server を実行しているサーバーの名前を入力します。
[統合セキュリティを使用] 統合 Windows 認証を使用する場合は、このチェック ボックスをオンにします。

この設定をお勧めします。

Windows 統合セキュリティを使用すると、ユーザー名とパスワードは SQL Server 接続文字列に保存されません。また、SQL Server でのパスワード リセットの影響を受けません。Commerce Server のセキュリティについては、「サイトのセキュリティ設定」を参照してください。
[特定のユーザー名とパスワードを使用] | データベースへの接続時に SQL Server 認証を使う場合は、このチェック ボックスをオンにします。
[SQL ユーザー名] SQL Server を実行しているサーバーにログオンする権限を持つユーザーのユーザー名を入力します。SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するには、次の特殊文字を使わないようにしてください。

/、?、&、\、<、>、:、|、#、@、%、および '
[SQL パスワード] SQL Server を実行しているサーバーにログオンする権限を持つユーザーのパスワードを入力します。OLAP のエラーを回避するには、次の特殊文字を使わないようにしてください。

/、?、&、\、<、>、:、|、#、@、%、および '

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[アンパック方法] ダイアログ ボックス

次の表は、[アンパック方法] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[新しいサイトの作成] | 新しい Commerce サイトを作成するときに選択します。
[既存のサイトにパッケージのリソースを追加] | プロファイルなどのリソースを既存の Commerce Server サイトに追加するときに選択します。
[既存のサイトにパッケージのアプリケーションを追加] ビジネス デスクなどのアプリケーションを既存のサイトに追加するときに選択します。

注

  • 複数のビジネス デスク アプリケーションを別の IIS アプリケーション名で既存のサイトにインストールするには、あらかじめ HTML アプリケーション (HTA) ファイルの名前を変更し、ビジネス デスクの新しいショートカット アイコンを作成しておきます。これらのファイルの名前を変更しないと、元のサイトに基づいて作成されたファイル、およびビジネス デスクのアイコンは、インストールされる HTA ファイルによって置き換えられます。
[既存のサイトの既存のアプリケーションに Web サーバーを追加] | 他のサーバーで管理している Web サーバーにアプリケーションをインストールするときに選択します。このオプションを選択すると、サイトに新しい Web サーバーが追加されます。Commerce Server 管理ツールは新しい Web サーバーにインストールされません。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[サイト名] ダイアログ ボックス

次の表は、[サイト名] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[サイト名] | 作成するサイトの名前を入力します。
[既存のサイト] | 既存のサイトの一覧を表示します。新しいサイトを作成する場合、この一覧から名前を選択することはできません。

注

  • アンパック時のエラーを回避するために、サイト名に特殊文字 (/、?、&、\、<、>、:、|、#、@、%、および ') とキーの組み合わせ (Alt + 数字キーなど) を使わないでください。サイト名がデータベース名に付加され、特殊な文字やキーの組み合わせによりこれらの名前が不正になる場合があります。
  • シングルバイト文字またはダブルバイト文字で 127 バイトを超えるサイト名を指定しないでください。
  • サイトに "Commerce" という名前を付けないでください。この名前は OLAP データベース名に予約されています。サイトに "Commerce" という名前を付けると、次にサイトをアンパックするときに、OLAP データベースが削除される場合があります。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[リソースの選択] ダイアログ ボックス

次の表は、[リソースの選択] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[アンパックするリソース] | アンパックするリソースを指定します。リソースがこの一覧に含まれている場合は、その設定とスキーマがアンパックされます。
[追加] | [利用できるリソース] 一覧で選択した項目を [アンパックするリソース] 一覧に移動します。
[すべて追加] | [利用できるリソース] 一覧のすべての項目を [アンパックするリソース] 一覧に移動します。
[削除] | [アンパックするリソース] 一覧で選択した項目を [利用できるリソース] 一覧に移動します。
[すべて削除] | [アンパックするリソース] 一覧のすべての項目を [利用できるリソース] 一覧に移動します。

注

  • サイト CS Authentication および Profiles リソースは、同時にインストールする必要があります。両方がインストールされていないと機能しません。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[グローバル リソース ポインタ] ダイアログ ボックス

次の表は、[グローバル リソース ポインタ] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[グローバル リソース ポインタ] | 構成するグローバル リソース ポインタを選択します。[グローバル リソースにマップ] 列には、新しいグローバル リソースがローカルに作成されるかどうか、またはグローバル リソースがどこに存在するかが示されます。
[既存のグローバル リソース] | このコンピュータで使用するグローバル リソースの場所を選択します。一覧には、Commerce Server のセットアップで作成されたグローバル リソースが表示されます。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[データベースの接続文字列] ダイアログ ボックス

次の表は、[データ ベースの接続文字列] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[リソース] | データベース サーバーの変更などの、アクションを実行するリソースを選択します。
[変更] | リソース用に他のサーバーまたはデータベースを指定します。
[既定] | 接続文字列を既定の設定に戻します。既定の設定では、ローカルに格納された 2 つのデータベース (1 つはデータ ウェアハウス用で、もう 1 つはその他のリソース用) で構成されます。
[コピー] 選択したリソースのデータベース接続文字列をクリップボードにコピーします。

注

  • データベース接続文字列をコピーするには、コピー元の接続文字列が含まれる行を選択し、[変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスで、コピー元のサーバーとデータベースの名前を選択または入力し、[OK] をクリックします。[データ ベースの接続文字列] ダイアログ ボックスで、コピー元の接続文字列が含まれる行を再度選択し、[コピー] をクリックします。
[貼り付け] 選択したリソースをクリップボードから貼り付けます。

注

  • データベース接続文字列をクリップボードから貼り付けるには、接続文字列のコピー先の行を選択し、[貼り付け] をクリックします。
[新しいデータベース] | 選択したリソース用に新しいデータベースを作成します。データベースを別のコンピュータに配置する場合は、このコマンドを使います。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[アプリケーションの選択] ダイアログ ボックス

次の表は、[アプリケーションの選択] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[パッケージ内のアプリケーション] | アンパックするアプリケーションを指定します。インストールしないアプリケーションのチェック ボックスはオフにします。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックス

次の表は、[IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使ってサイトをアンパックする場合です。

項目 | 操作
[アプリケーション] | 操作の対象となるアプリケーションを選択します。
[IIS コンピュータ名] | アプリケーション ファイルのアンパック先となる、IIS Web サーバーのコンピュータの名前を入力します。 リモート コンピュータ上の Web サイトの一覧を更新するには、[最新の情報に更新] をクリックします。
[IIS Web サイト] | 既存の IIS Web サイト、サーバー上のサイトの場所を選択します。
[Web サイトの更新] | 利用できる IIS Web サイトの一覧を更新するときに選択します。新しい IIS Web サイトを作成する場合は、このダイアログ ボックスが表示されているときに、このオプションを選択します。
[IIS パス] | サイトの IIS パスの名前を指定します。指定した名前はサイトの URL パスに表示されます。

注

  • サイト パッケージャは、指定した IIS Web サイトの内、および IIS Web サイトが指している物理フォルダ内の、個別のサブフォルダにアプリケーションを作成します。これらのサブフォルダには、各アプリケーションに指定した仮想ディレクトリ名が付けられます。既定では、これらの仮想ディレクトリ名はアプリケーションの名前と同じです。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[Master データベース] ダイアログ ボックス

次の表は、[Master データベース] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使ってサイトをアンパックする場合です。

項目 | 操作
[SQL ユーザー名] | SQL Server を実行しているサーバーにログオンする権限を持つユーザーのユーザー名を指定します。新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するには、次の特殊文字を使わないようにしてください。 /、?、&、\、<、>、:、|、#、@、%、および '
[SQL パスワード] | SQL Server を実行しているサーバーにログオンする権限を持つユーザーのパスワードを指定します。OLAP のエラーを回避するには、次の特殊文字を使わないようにしてください。 /、?、&、\、<、>、:、|、#、@、%、および '
[接続テスト] | このコンピュータからダイアログ ボックスの上部で指定したデータベース サーバーへの接続をテストします。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[新しいデータベース] ダイアログ ボックス

次の表は、[新しいデータベース] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使ってサイトをアンパックする場合です。

項目 | 操作
[SQL Server コンピュータ] | SQL Server クラスタの名前を入力します。
[データベース名] | データ ウェアハウス データベースに付ける名前を入力します。
[SQL ユーザー名] | 新しいデータベースを作成するには、SQL Server ロール (sysadmin または dbcreator) のいずれかのメンバであるログイン名を使います。OLAP のエラーを回避するには、次の特殊文字を使わないようにしてください。 /、?、&、\、<、>、:、|、#、@、%、および '
[SQL パスワード] | SQL Server ログイン パスワードを入力します。OLAP のエラーを回避するには、特殊文字 (/、?、&、\、<、>、:、|、#、@、%、および ') を使わないでください。
[データベースの作成] | クリックすると、指定したサーバーに新しいデータベースが作成されます。

関連項目

サイトをアンパックする

サイトをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[データ ウェアハウスのプロパティ] ダイアログ ボックス

次の表は、[データ ウェアハウスのプロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使ってサイトをアンパックする場合です。

項目 | 操作
[名前] | グローバル データ ウェアハウス リソースに付ける名前を入力します。
[サーバー] | SQL 分析 (OLAP) コンピュータの名前を入力します。
[データベース] | 使用する分析 (OLAP) データベースの名前を入力します。
[接続テスト] | このコンピュータと、データ ウェアハウスのホストとなるサーバーとの接続をテストします。
[リソースのスキップ] | グローバル データ ウェアハウス リソースへのローカル ポインタの構成を省略します。

関連項目

データ ウェアハウス構成ウィザード

サイトをアンパックする

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[プロファイル システム] ダイアログ ボックス

サイトをアンパックするときに、最初に表示される [プロファイル システム] ダイアログ ボックスです。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

プロファイル設定を独自に指定する場合は、次の操作を行います。

項目 | 操作
[プロファイル スキーマの定義 (.xml)] | サイトをパックするときに、プロファイル データベースにあるプロファイル スキーマがサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。 ソリューション サイトをアンパックするときは、既定の XML ファイル (ProfileDefinition) をそのまま使います。このファイルには、"住所"、"一括注文数"、"組織"、"対象とするコンテキスト"、および "ユーザー オブジェクト" プロファイル定義が含まれています。
[サイト用語の定義 (.xml)] | サイトをパックするときに、データベースにあるサイト用語定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。 ソリューション サイトをアンパックするときは、既定の XML ファイル (SiteTerms) をそのまま使います。このファイルには、すぐに利用できる定義済みのサイト用語が含まれています。
[式の定義 (.xml)] | サイトをパックするときに、ビジネス デスクを使って作成した式定義がサイト パッケージャによって抽出され、XML ファイルの中に格納されます。その XML ファイルの名前をここで指定すると、ファイルがアンパックされます。 ソリューション サイトをアンパックするときは、既定の XML ファイル (ExpressionDefinition) をそのまま使います。このファイルには、ソリューション サイト用の定義済み式は含まれていません。

関連項目

サイトをアンパックする

サイトをパッケージ化する

拡張プロファイル スキーマをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[プロファイル システム : Active Directory データ ソース] ダイアログ ボックス

Commerce Server サイト パッケージャを使って Supplier AD ソリューション サイトをアンパックするときに、2 番目に表示されるダイアログ ボックスです。このダイアログ ボックスは、Supplier AD ソリューション サイトをアンパックするときにだけ表示されます。

次の表は、[プロファイル システム : Active Directory データソース] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[ドメイン] | サイトが属する Windows ドメインを入力します。
[ユーザー名] | 有効な Windows ドメイン ユーザー名を入力します。ユーザー名は、次のいずれかの形式で入力する必要があります。 <ドメイン>\<ユーザー名> <ユーザー名>@<ドメイン>
[パスワード] | 指定したユーザーのドメイン パスワードを入力します。
[親 URL] | ディレクトリ ツリーの中でデータを格納する場所を入力します。
[簡易結合を使用する] | パスワードをクリア テキストで送信するときに選択します。このオプションを選択するとセキュリティが低下しますが、一部のディレクトリ サービスではこの設定が必要です。
[スクリプトの実行] | このサイトに関連するディレクトリ ツリーにオブジェクトを作成する Visual Basic スクリプトを実行します。
[接続テスト] | ドメイン コントローラへの接続が有効かどうかをテストします。

関連項目

サイトをアンパックする

サイトをパッケージ化する

拡張プロファイル スキーマをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[プロファイル システム : OLEDB データ ソース] ダイアログ ボックス

Commerce Server サイト パッケージャを使ってサイトをアンパックするときに、2 番目に表示される [プロファイル システム] ダイアログ ボックスです。このダイアログ ボックスは、SupplierActiveDirectory ソリューション サイトをアンパックするときは表示されません。

次の表は、[プロファイル システム : OLEDB データ ソース] ダイアログ ボックスで利用できるオプションとその機能を示しています。ソリューション サイトをアンパックしている場合は、[次へ] をクリックして既定の入力内容をそのまま使います。

項目 | 操作
[変更] | プロファイル データベースへの既定の接続文字列をそのまま使います。または、[変更] をクリックし、新しい接続文字列を構成します。
[スキーマ定義のスクリプト (*.sql; *.vbs)] | プロファイル定義をパックするには、SQL Server Enterprise Manager を使って SQL データベースの定義 (スキーマ) を .sql ファイルにエクスポートし、そのファイルの名前をここで指定します。 サイトをアンパックするときに、このファイルを指定しておくと、ランタイム データ ストアに定義がアンパックされます。ランタイム データ ストアは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。 詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
[データ生成スクリプト (*.sql)] | プロファイル データベースにあるプロファイル データを既に抽出してある場合は、このボックスでデータ生成スクリプトを指定しておくと、サイトをアンパックするときに、ランタイム データ ストアにプロファイル データがインポートされます。ランタイム データ ストアは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。 スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。 サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。

関連項目

サイトをアンパックする

サイトをパッケージ化する

拡張プロファイル スキーマをパッケージ化する

クラスタ構成の 4 台のコンピュータにインストールする

パッケージ化される IIS プロパティ

グローバル リソースをアンパックする方法

データベース名とアプリケーション名の作成方法

Web サーバーのアクセス許可の設定方法

サイト パッケージャの名前とサイズの制限

サイト パッケージャに関するヒント集


[アンパックが完了しました。] ダイアログ ボックス

次の表は、[アンパックが完了しました。] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[選択したアプリケーションの表示] | [アンパック中に作成された IIS アプリケーション] ボックスで選択したアプリケーションを実行します。
[ログ ファイルの表示] | サイト パッケージャのログ ファイルを開きます。このログ ファイルには、サイト パッケージャの実行時に発生したすべてのイベントが記録されます。エラーが発生した場合は、このログ ファイルの情報を調べます。
[完了] | サイト パッケージャを終了します。


[サイトの選択] ダイアログ ボックス

次の表は、[サイトの選択] ダイアログ ボックスで利用できるオプションとその機能を示しています。このダイアログ ボックスが表示されるのは、Commerce Server サイト パッケージャを使用する場合です。

項目 | 操作
[既存のサイト] | 変更するサイトの名前を選択します。

関連項目

サイトをアンパックする

パッケージ化される IIS プロパティ


[プロファイル システム] ダイアログ ボックス

Commerce Server サイト パッケージャを使ってサイトをパッケージ化するときに表示される [プロファイル システム] ダイアログ ボックスです。

次の表は、[プロファイル システム] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 操作
[スキーマ定義のスクリプト (*.sql, *.vbs)] プロファイル定義をパックするには、SQL Server Enterprise Manager を使って SQL データベースの定義 (スキーマ) を .sql ファイルにエクスポートし、そのファイルの名前をここで指定します。

サイトをアンパックするときに、このファイルを指定しておくと、ランタイム データ ストアのプロファイル テーブルに定義がアンパックされます。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

詳細については、「拡張プロファイル スキーマをパッケージ化する」を参照してください。
[データ生成スクリプト (*.sql)] プロファイル データベースに格納されているプロファイル データをパックするには、Enterprise Manager を使って SQL データベースのプロファイル データを .sql ファイルにエクスポートし、そのファイルの名前をここで指定します。

サイトをアンパックするときに、この .sql ファイルを指定しておくと、ランタイム データ ストアのプロファイル テーブルにデータが設定されます。プロファイル テーブルは、ユーザー、住所、組織などのデータを格納するための SQL テーブルです。

スクリプトの例については、PopulateProfileSql.sql の内容を参照してください。このスクリプトにはユーザー 2 人分のデータが含まれています。スクリプトの格納場所は \Program Files\Microsoft Commerce Server 2002 です。

サイト パッケージャでスクリプトを使う方法については、「サイト パッケージャでスクリプトを使う」を参照してください。

関連項目

サイトをパッケージ化する

拡張プロファイル スキーマをパッケージ化する

パッケージ化される IIS プロパティ


高い可用性を維持する

サイトの可用性を高めると、プラットフォームや単一障害点で障害が発生した場合でも回復できる可能性が大きくなります。可用性は、信頼性、回復可能性、および耐障害性を総合した概念です。可用性を測る尺度として最も一般的なのは、所定のシステムが問題なく稼動している時間の割合 (%) です。次の表は、可用性の数値 (%) と、それに相当するカレンダー上の時間を示しています。

許容可能な稼働時間 (%) | 1 日あたりの停止時間 | 1 月あたりの停止時間 | 1 年あたりの停止時間
95 | 72.00 分 | 36 時間 | 18.26 日
99 | 14.40 分 | 7 時間 | 3.65 日
99.9 | 86.40 秒 | 43 分 | 8.77 時間
99.99 | 8.64 秒 | 4 分 | 52.60 分
99.999 | 0.86 秒 | 26 秒 | 5.26 分

この表は、許容可能な稼働時間が 99.9% であるシステムでは、稼動不能になる可能性は、1 日単位では 86.4 秒、1 月単位では 4 分の割合であることを示しています。この表は、ビジネス上の意思決定者がソリューションの計画を立てるときに役立ちます。

可用性を向上させるには、システムの配置、ソフトウェア、システムのソリューション管理のそれぞれについて、十分に注意して設計する必要があります。システムに障害が発生する時間や頻度を予測するのは非常に難しいため、信頼性の向上について計画するには、復元にかかる時間を短縮します。システムに障害が発生してから 86.4 秒以内に復旧することが可能であれば、毎日障害が発生したとしても 99.9% の可用性が維持されます。

ここまで説明した可用性に関する考え方、つまり、可用性は稼働時間の関数であるとする考え方がある一方で、可用性はソリューションで完了し、成功したトランザクションの関数であるとする考え方があります。言い換えれば、Web サイトで 1 日に 100,000 件の要求が処理される場合、99.9% の可用性とは、失敗した要求が 1 日に 100 件あることを意味します。このように可用性の指標を考えると、ビジネスの計画において、可用性に対する要件はさまざまに異なってきます。ただし、このソリューションでは、多様な要求のトラフィックについて検討する必要があります。

次の表に、可用性の指標としてよく使われる数値を示します。この表を利用して、今のサイトにどの程度の可用性が必要なのか考慮してみてください。

可用性のレベル | 可用性の目標 | 1 年あたりの停止時間
商用サイト | 99.5% | 43.8 時間
可用性の高いサイト | 99.9% | 8.8 時間
障害からの復元力の強いサイト | 99.99% | 53 分
フォールト トレラント サイト | 99.999% | 5 分
常時稼働サイト | 100% | 0

ここでは、可用性を高めるための Commerce Server 機能について説明すると共に、各種の Commerce Server システムにおける単一障害点を示し、可用性を高めるため方法について解説します。

ここでは、次のトピックについて説明します。

  • 可用性の要件を見積もる サイトにどの程度の可用性が必要かを見極める方法について説明します。
  • 高可用性のための保守手順 保守手順を確立するためのガイドラインを示します。
  • サイト障害を防止する サイトで発生する障害の一般的な原因について説明し、その解決方法を示します。
  • 高可用性についてコンポーネントの設計時に検討すべき事項 Commerce Server が備える各機能の稼働時間について、要件の例を示します。


可用性の要件を見積もる

可用性の高いサイトを構築する場合、可用性を 100% に近づけるに従って、配置のコストが増大します。予算に合わせて妥協点を選択する必要があります。

次の表は、所定の障害防止策の実施によって得られる利点を予測するときに役立つフレームワークの例です。この表で使われている数値は目安にすぎません。実際に使用するサイトのリスク評価表は、独自のデータおよび判断で作成してください。

この表は、各 Commerce Server 機能の利用状況プロファイルおよび障害の影響を示しています。この表に示す可用性の目標は、一般的な例であることに注意してください。サイトに合わせて異なる可用性の目標を選択できます。

機能 利用状況プロファイル 障害の影響 可用性の目標 (%)
商品カタログ システム
  • 100% 読み取り専用
  • 大規模な管理更新
 買い物ができない。 99.99
データ ウェアハウス (OLAP データベースおよびキューブ)
  • 高速の読み取り/書き込みアクセスが必要
 レポートが利用できない。 99.9
データ ウェアハウス (インポート)
  • 非常に大規模なデータベースの読み取り/書き込み
 データが最新ではない。 99
ディレクトリ サービス
  • 99% 読み取り専用
 顧客の認証が利用できない。匿名ユーザーによる買い物のみ。 99.9
対象化システム
  • 100% 読み取り専用
  • 管理更新
 買い物環境の質が低下する。 99
注文トランザクション
  • 読み取り/書き込み
  • 最高のセキュリティおよび可用性の要件
 買い物ができない。 99.999
プロファイル システム
  • 97% 読み取り
  • 3% 書き込み (変更)
 顧客の認証が利用できない。パーソナライズされたコンテンツがない。匿名ユーザーによる買い物のみ。 99.9

大規模サイト上の認証には、SQL Server または Active Directory のいずれかを使うことができます。どちらも、匿名ユーザーによる買い物をサポートしています。

注

  • ディレクトリ サービスには、Active Directory、Site Server 3.0、LDAP Server、他のサードパーティ製の LDAP サーバーなどがあります。


高可用性のための保守手順

サイトの可用性を保証する最も効果的な方法の 1 つは、詳細に記述された正確な保守手順を作成することです。これは、あまりコストをかけずに実現できます。

サイトについて、次の保守手順を作成します。

  • 変更の管理
  • サービス レベルの管理
  • 問題の管理
  • キャパシティの管理
  • セキュリティの管理

セキュリティを管理する方法の詳細については、http://go.microsoft.com/fwlink/?LinkId=6711 の『Designing Secure Web-Based Applications for Microsoft Windows 2000』 (Michael Howard) を参照してください。

Microsoft では、このような手順について、業界での経験内容やヒント集を記述したサポート技術情報を作成しています。これは、Enterprise Services Frameworks (Microsoft Readiness Framework、Microsoft Solutions Framework、および Microsoft Operations Framework) と呼ばれます。

しっかりとした保守手順があれば、ハードウェアおよびソフトウェアの可用性を高めるた方法の調査を開始することができます。システムの可用性は、ハードウェア システムやソフトウェア システムの冗長性だけに依存しているわけではありません。

変更の要求、承認、および実装を記録することによって、変更を制御します。変更の制御により、過去の構成チェックポイントが提供されるので、問題と構成変更の相関関係を割り出す場合に役立ちます。構成を管理するプロセスの詳細については、Microsoft Press から入手できる『Microsoft Commerce Server 2000 リソース キット』の「第 8 章 自社サイトの開発」を参照してください。

上司への報告手順は、障害発生時の対応作業の混乱を軽減することに役立ちます。セキュリティ レベルごとに連絡先のリストを整備しておくと、障害が発生した時点で直ちに必要な支援を受けることができます。

サービス レベル保証

適切なレベルでのサイトの監視、運用、および可用性を保証するために、インターネット サービス プロバイダにサービス レベル保証を要求することが重要です。

段階的な配置

開発環境からテスト環境、そして準備環境へとコンテンツを配置し、運用環境に到達するまでに障害を特定します。環境ごとに固有のリリース基準を設定し、アプリケーションを次の環境にリリースできる時期を判断します。

たとえば、開発環境は、通常、最も制限が少なく、安定性が低い環境です。テスト環境は、開発環境よりも安定性およびパフォーマンスが高い必要があります。準備環境は安定性が高くなければなりません。運用環境は、安定性が高く、目標レベルのパフォーマンスを実現する必要があります。


サイト障害を防止する

サイトに障害が発生する要因としては、ヒューマン エラー、ハードウェア障害、およびソフトウェア障害という 3 種類の事象が考えられます。適正な計画をしない場合には、これらのうちのいずれも、サイトが対象とする可用性を損う原因となる可能性があります。

ヒューマン エラーは、管理することが最も難しい部類のものです。サイトを保守する個々の責任者自身が、問題を起こす原因となる可能性があるためです。一方で、ユーザーが実行時のサイトに接続しているときに、ユーザーが実行している操作によって何らかの影響を受ける可能性もあります。したがって、管理操作は、専用のテスト環境で試験的に使用してから、スクリプトで記述することを強くお勧めします。新しい管理操作を実際のサイトに最初に組み込んだときは、その操作がシステム全体に及ぼす影響を注意深く監視する必要があります。この慎重な計画によって、サイトの可用性を最高レベルにまで引き上げることができます。

ここでは、サイト障害の要因となるいくつかの一般的な問題と、その障害を防止するための作業を示します。

  • アプリケーション ソフトウェア
  • 空調
  • データ
  • 電力
  • ハードウェア
  • ネットワーク
  • セキュリティ
  • サーバー


アプリケーション ソフトウェア

潜在的な問題 : 質の低いコード、サービス攻撃に対する脆弱性、および適切でないプラットフォームの依存関係。

防止策 :

  • 冗長な負荷分散サーバーに基づいて堅牢なアーキテクチャを作成する。負荷分散クラスタは、Windows アプリケーション クラスタとは異なることに注意してください。Commerce Server ランタイム コンポーネントは、Windows クラスタリングではなく、ネットワーク負荷分散/WLBS で負荷を分散するためのコンポーネントです。
  • コードを見直して、バッファ オーバーフロー、無限ループ、コード クラッシュ、およびセキュリティ攻撃の抜け穴を回避する。
  • テスト済みの安定したアプリケーション ソフトウェアをインストールする。このソフトウェアは、正常に動作し、既存のソフトウェアと統合して、目標レベルのパフォーマンスを実現するものです。ソフトウェア バージョンの制御および変更の管理も重要です。変更を管理する方法の詳細については、Microsoft Press から入手できる『Microsoft Commerce Server 2000 リソース キット』の「第 8 章 自社サイトの開発」を参照してください。
  • 運用のためのソフトウェアだけを使う。開発時のソフトウェアまたは評価モードのソフトウェアは使わないようにします。


空調

潜在的な問題 : 冷房装置または暖房装置の誤動作。

防止策 :

  • ハードウェアの温度をメーカー仕様の範囲内に維持する。温度が高くなりすぎると、CPU がメルトダウンする可能性があります。また、温度が低くなりすぎると、ファンやディスク ドライブなど、可動部品に障害が発生することがあります。
  • 湿度を調整する。湿度が高くなりすぎると、回路ボード上の結露により電気ショートが発生することがあります。湿度が低くなりすぎると、部品に触れたときに静電気が放電され、その部品が破損する可能性があります。


データ

潜在的な問題 : データの破損。

防止策 :

  • 定期的にバックアップを行い、そのバックアップをサイトの外部にアーカイブする。たとえば、定期的なバックアップを 4 つごとにサイトの外部にアーカイブすると、領域を節約できます。

    データが破損した場合は、破損前に行った最後のバックアップからデータを復元して、そのバックアップ時点の状態に戻すことができます。トランザクション ログ ファイルもバックアップしている場合は、復元されたデータベースにトランザクション ログ ファイルを適用して、データベースを最新の状態に戻すことができます。

  • 既知の有効なデータベースに対してトランザクション ログ ファイルを再生し、データを維持する。この方法は、"ウォーム バックアップ サーバーへのログ配布" とも呼ばれます。また、この方法は、業務を回復するためのサイト ("ホット サイト" とも呼ばれる) を維持するために役立ちます。
  • Windows クラスタリングを展開する。Commerce Server は、SQL Server や Microsoft Active Directory などのデータ ストアを使います。SQL Server は、カタログ検索など、データやサービスへのアクセスを可能にします。また、SQL Server は、Windows クラスタリングを使って冗長性を提供します。Active Directory は、プロファイル データへのアクセスを可能にし、認証サービスを提供できます。また、Active Directory は、データ レプリケーションを使って冗長性を提供します。
  • 通常、クラスタリングは動的 (読み取り/書き込み) データに効果があり、データ レプリケーションは静的 (読み取り専用) データに効果があります。
  • SQL Server サーバーをクラスタ化するか、または SQL Server サーバー間でデータを複製することによって、SQL Server の障害の可能性および影響を最小限に抑える。SQL Server 2000 は、可用性の高い構成を完全にサポートしています。
  • Active Directory を使う場合は、Active Directory ストアをバックアップする。Active Directory をオンラインにしたまま、バックアップすることができます。

    少なくとも 2 つの Active Directory ドメイン コントローラを使います。これらの Active Directory ドメイン コントローラには、要件を満たすレプリケーション スケジュールを設定します。ドメイン コントローラの復元には時間がかかることがあります。また、ドメイン コントローラをオフラインにする必要があります。ピア ドメイン コントローラがある場合は、バックアップからサイトを復元するときに、運用停止時間を最小限に抑えることができます。


電力

潜在的な問題 : 電力調整装置、無停電電源装置 (UPS)、または発電設備の誤動作。

防止策 :

  • UPS を使う。UPS は、通常、バッテリ式なので、短期間の障害に対してのみ有用です。必ず、使用している機器と同じ電力定格の UPS を使います。
  • UPS の予備として発電機を使う。発電機は燃料式 (ディーゼルまたはガソリン) であり、必要に応じて燃料を補給できるので、無期限に使うことができます。


ハードウェア

潜在的な問題 : 劣化したメモリ チップおよび CPU、ディスク ハードウェア、ディスク コントローラ、または電源装置の誤動作。

防止策 : 次のような冗長ハードウェア コンポーネントを配置する。

  • Redundant Array of Inexpensive Disks (RAID) ディスク アレイ、ディスク ミラーリング、および二重化ディスク コントローラを使って、ディスクの障害を最小限に抑える。ディスクの障害に伴う停止時間を短縮するために、サードパーティからも多くの優れたソリューションが提供されています。
  • 冗長ディスク コントローラを使う。
  • 冗長ファイバチャネル ホストバス アダプタおよびスイッチを使う (SAN 構成の場合)。アダプタまたはスイッチに障害が発生した場合、バックアップ アダプタまたはバックアップ スイッチが SAN への代替バスを提供します。


ネットワーク

潜在的な問題 : スイッチ、ルーター、ファイアウォール、ケーブル媒体、またはネットワーク アダプタの誤動作。あるいは、ISP がサービス レベル保証を満たしていない。

防止策 : ネットワークの冗長性を実装する。

  • 複数のネットワーク アダプタ、複数のルーター、スイッチ、ローカル エリア ネットワーク (LAN)、またはファイアウォールを使う。
  • 複数の ISP と契約するか、または地理的に分散化された場所に同じ機器を設置する。
  • ルーティング プロトコルおよび管理プロトコルを有効にする (RIP2、OSPF、および ICMP では、ファイアウォール ポリシーの構成が必要)。


セキュリティ

潜在的な問題 : ファイアウォール、ネットワーク、および Web アプリケーションが正常に機能しないので、インターネット上のハッカーによって攻撃される。

防止策 :

  • 独立したセキュリティ監査会社と契約し、環境の評価を依頼する。
  • 侵入検出ツールを配置する。
  • 複数のファイアウォールを配置する。
  • サーバーおよびクライアントの証明書を調べ、サイトが対話するシステムの資格情報を確認する。

セキュリティの問題を処理するための最新の方法や技術については、次の資料を参照してください。

  • サイトのセキュリティ設定
  • http://go.microsoft.com/fwlink/?LinkId=6712 の Microsoft Windows 2000 セキュリティ サービス
  • http://go.microsoft.com/fwlink/?LinkId=6679 の Microsoft Security ホーム ページ
  • http://go.microsoft.com/fwlink/?LinkId=6713 の TechNet のマイクロソフト セキュリティ情報一覧
  • http://go.microsoft.com/fwlink/?LinkId=6689 の TechNet のセキュリティ ツール


サーバー

潜在的な問題 : サーバーに過剰な負荷がかかる。

防止策 : 冗長な負荷分散サーバーを配置する。1 つの IP アドレスによるソリューションは、要求負荷に対する各サーバーのキャパシティに応じて HTTP 要求を分散することによって、サイト キャパシティを向上させます。また、このソリューションを使うと、ユーザーは必ず、稼動中のサーバーだけを参照します。サーバーの負荷を分散するために利用できる 1 つの IP アドレスによるソリューションは、数多く存在します。たとえば、次のようなものがあります。

  • Microsoft Windows 2000 Advanced Server Edition および Datacenter Server Edition はいずれも、ネットワーク負荷分散 (NLB) サービスを提供します。
  • Microsoft Application Center 2000 は、ネットワーク負荷分散の拡張機能 (Request Forwarder) を提供し、1 つの IP アドレスを共有する複数のユーザーをサポートします。
  • ハードウェア ベースの負荷分散ソリューションを調べてください。


ハードウェア障害を防止する

ハードウェア障害は、いつの時点でも起こり得ます。この部類の障害には、自然災害や火事などの環境的な要因による障害も含まれます。SPOF (システム停止につながる部位) を最小限にするハードウェアの実装を設計することは、リスクを最低限に抑えるための最も安全な方法です。配置の計画の際、実装担当者は、記憶装置、ネットワーク、およびソフトウェアのロジックのすべての接続点を示す物理的なハードウェアのマップを作成する必要があります。これによって、可能性のあるソリューションを計画することができ、費用に対するリスクを分析することができます。この部類については、重要なデータをテープにバックアップするような単純なものから、災害に対する耐性の強いものに至るまで、さまざまなソリューションがあります。

次の表は、ハードウェア障害による停止時間を短縮するためのツールや方法の一覧です。列内の "X" は、そのツールを使って、該当する障害を防止できることを意味します。たとえば、アプリケーション、データベース、およびサーバーの障害を防止するには、クラスタ構成を使います。

ツールまたは方法 | アプリケーション | データベース | ネットワーク | サーバー
クラスタ構成 | X | X |  | X
データのバックアップ | X | X |  | X
データ レプリケーション | X | X |  | X
二重化ディスク コントローラ |  | X |  | X
二重化電源装置 | X | X | X | X
二重化ルーター |  |  | X |
地理的に分散化されたデータ センター | X | X | X | X
ディスク ミラーリング |  | X |  | X
複数の ISP |  |  | X |
複数の NIC |  |  | X |
RAID ディスク アレイ |  | X |  | X
UPS | X | X | X | X


サイト障害の可能性を見積もる

サイト障害の相対的確率 (RPN) を見積もるには、次の式を使います。

  • RPN = O × D × S

各要素の意味は次のとおりです。

  • O (発生の確率) エラーが発生すると予測される回数 (1 ～ 10 の範囲。数値が大きいほどエラーが発生する可能性が高い)
  • D (検出性) 障害を発見できる可能性 (1 ～ 10 の範囲。数値が大きいほど障害を検出するのが難しい)
  • S (重要度) 障害がサイトに及ぼす影響の程度 (1 ～ 10 の範囲。数値が大きいほど障害が深刻で、故障が重大である)

次の表は、障害が発生する可能性のある項目、障害の影響、および障害が発生する相対的確率 (RPN) の計算値の一覧です。また、障害を回避するための防止策、およびその防止策を実施した後の RPN も示しています。

項目 障害の影響 O D S 防止前の
RPN 		防止策 O D S 防止後の
RPN
CPU (二重化) サーバーがオフラインになることがある。 2 4 7 56
  • 監視ソフトウェア
  • リモートアクセス ソフトウェア
  • CPU の無効化
  • 再起動
 2 2 7 28
CPU (1 つ) サーバーがオフラインになる。 2 4 10 40
  • 監視ソフトウェア
  • 別の CPU
 2 2 8 32
ドライブ サーバーがオフラインになる。 5 4 10 200
  • ホット スペアを持つ RAID 5 コントローラ
  • 監視ソフトウェア
 2 2 5 20
ファイアウォール 盗まれる、サイトが変更される、またはサイトにアクセスできない。 4 4 8 128
  • 監視ソフトウェア
  • ファイアウォールの追加
 2 2 4 16
負荷分散 すべてのトラフィックが 1 台のサーバーに集中する。

サイトにアクセスできない。

 4 4 8 128
  • 監視ソフトウェア
  • 負荷分散機能の追加
 2 2 4 16
メモリ サーバーがオフラインになる。 2 4 7 56
  • 監視ソフトウェア
  • サーバーの追加
 2 2 7 28
NIC サーバーがオフラインになる。 4 4 8 128
  • 二重化 NIC カード
  • 監視ソフトウェア
 1 2 4 8
電源装置 サイトがオフラインになる。 4 4 10 160
  • UPS
  • 監視ソフトウェア
 2 2 2 8
RAID コントローラ サーバーがオフラインになる。 2 4 10 80
  • 監視ソフトウェア
  • サーバーの追加
 2 2 8 32
ルーター/Customer Service Unit (CSU) 接続が失われる。

注文を処理できない。

サイトを管理できない。

 4 4 8 128
  • 冗長ルーター
  • 監視ソフトウェア
 2 2 4 16
SQL Server クラスタ 1 台のサーバーの障害により、サービスが遅くなる。 5 4 2 40
  • サイト アーキテクチャの設計に組み込まれた冗長サーバー
  • 監視ソフトウェア
 5 2 2 20
スイッチ 一部またはすべてのデバイスがオフラインになる。 4 4 10 160
  • 冗長電源装置
  • 冗長接続カード
  • 冗長管理カード
  • 監視ソフトウェア
 1 2 4 8
Web サーバー サイトがオフラインになる。 5 4 10 200
  • Web サーバーの追加
  • 負荷分散
 2 2 5 20


ビジネス ロジック層の障害を防止する

ビジネス ロジック層の復元力を高めるには、負荷分散 Web クラスタを使って、サーバー、サービス、およびネットワークを障害から保護します。負荷分散クラスタでは、ユーザーが故障したサーバーに向かわないようにするために、応答しないサーバーをクラスタから削除することができます。これにより、応答しないサーバーの修理が可能になります。ラウンド ロビン ドメイン ネーム システム (RRDNS) と負荷分散を組み合わせて、拡張性および可用性の高い構成にすることができます。

負荷分散クラスタ内のすべてのノードは、同じ LAN サブネット上に存在しなければなりません。また、すべてのノードは、同じ IP アドレスを参照する必要があります。複数の Web クラスタを持つサイトでは、異なるサブネット上に複数の負荷分散クラスタを構成する必要があります。また、複数の負荷分散クラスタに要求を順次分散するようにドメイン ネーム システム (DNS) を構成する必要があります。これにより、拡張性が高くなります。


データベース層の障害を防止する

データベース層の復元力を高めるには、ディスクの冗長性、適切なバックアップ、および復元方法を組み合わせてデータを保護します。データベース サービスの復元力を高めるには、次のいずれかの方法を使います。

  • クラスタリング Windows クラスタリングでは、複数のサーバーが共通データを共有して、1 つのシステムとして機能できます。Windows Datacenter Server は、クラスタ内で最大 4 台のサーバー (ノード) をサポートしています。各ノードは、他のノードから独立して動作することができます。
  • レプリケーション SQL Server のレプリケーション機能を使って、データベース サーバーを同期させることができます。SQL Server には、スナップショット レプリケーションやトランザクション レプリケーションなどのレプリケーション オプションが用意されています。また、Active Directory は、レプリケーションを使って冗長性を確保します。
  • ウォーム バックアップ 1 台の運用サーバーを使って、すべてのトランザクションをログに記録しながら、データへの読み取り/書き込みアクセスを提供することができます。その後、SQL Server のログ配布を使って、トランザクション ログ ファイルによって絶えず更新される非運用サーバーにファイルを転送します。

データは、誤って削除されないように、バックアップまたは複製する必要があります。次の表は、2 つの種類のデータ レプリケーションを示しています。

データ レプリケーションの種類 | 特性 | 用途
アクティブ | プライマリ サイトの負荷の一部を共有し、常にオンラインです。 | 扱うデータが非常に重要なデータで、しかもサイトが常時利用可能でなければならない場合に使用します。
パッシブ | 災害によってプライマリ サイトが動作しなくなるまで、非アクティブです。 | バックアップ サイトがオンラインになっている短時間、データの可用性の中断を許容できる場合に使用します。

データベース接続

Commerce Server とその依存関係は、データベース接続を使って、データベースに接続します。データベース サーバーはプラットフォームの OS やサービスの最上位で実行されるので、障害の原因も多岐にわたります。次に例を示します。

  • ファイル ディスク システムのクラッシュ
  • ネットワークの障害
  • データベース アプリケーションの障害
  • サーバーの障害

Windows 2000 の高可用性ソリューションとして次の 2 つをお勧めします。

  • MSCS クラスタ サービス。このソリューションは、パブリッシャ モードのデータベース サーバーに適用できます。
  • ネットワーク負荷分散。このソリューションは、スケールアウト モードのデータベース サーバーに適用できます。このモードでは、複数のデータベース サーバーが単一の仮想 IP の下で負荷分散されます。データベース サーバーは、通常、マスタ データベース サーバーに対してサブスクライバとして機能し、パブリッシャとしても機能します。データベース サーバーに障害が発生すると、NLB はそのサーバーをクラスタから除去し、接続を別の機能しているサーバーに向けます。


高可用性についてコンポーネントの設計時に検討すべき事項

次の表は、Commerce Server 機能の稼働時間要件の例を示しています。実際の要件は、この表に示す要件と異なることがありますが、サイト アーキテクチャを作成する場合の基礎としてこの例を使うことができます。

Commerce Server の機能 | 目標の稼働時間 (%) | 障害の分類
認証 | 99.99 | 1 回の再試行を許容できます。
バスケット ビュー | 99.999 | 許容できる障害はありません。
カタログ クエリ | 99.99 | 2 回の再試行を許容できます。
パーソナライズ | 99 | 登録できません。
購入パイプライン | 99.999 | 許容できる障害はありません。
広告の表示 | 99 | 登録できません。

データベース接続失われないようにするためのビジネス ロジックの例については、「再試行コード ロジック」を参照してください。


Commerce Server の管理

ここでは、Commerce Server マネージャを使って Microsoft Commerce Server 2002 を管理する方法について説明します。ここで説明する内容は、サイトで使用するリソースの追加と管理、Web サーバーのインストールと構成、Commerce Server のパフォーマンスの監視、Commerce Server のデータベースの管理などの作業を担当するシステム管理者を対象にしています。

ここでは、次のトピックについて説明します。

  • Commerce Server マネージャ ヘルプ Commerce Server マネージャを使って実行する一般的な作業の一覧を示します。
  • 管理ツール システム管理者が Commerce Server を管理するために使用するツールを説明します。
  • Commerce Server マネージャを使う Commerce Server マネージャの起動方法を説明します。
  • データベースの接続文字列を変更する 管理データベース、グローバル リソース、およびサイト リソースの Commerce Server データベース接続文字列を設定する方法を説明します。
  • 管理ツールだけをインストールする 管理専用コンソールを別のコンピュータにセットアップする方法を説明します。
  • 管理データベースの管理 管理データベースについて、および管理データベースとサイトとのやり取りについて説明します。また、データベースの構成方法と、セキュリティの管理方法についても説明します。
  • Commerce リソースの管理 グローバル レベルのリソースとサイト レベルのリソースを追加および削除する方法について説明します。また、リソースを開始および停止する方法についても説明します。
  • アプリケーション既定の構成リソースを構成する 認証、サイトで使用する通貨、および Microsoft BizTalk Server との統合に影響するプロパティを構成する方法を説明します。
  • Commerce サイトの管理 サイトを追加、構成、および削除する方法について説明します。
  • Commerce アプリケーションと Web サーバーの管理 Commerce Server アプリケーションを追加、構成、および削除する方法について説明します。また、Web サーバーを追加および削除する方法についても説明します。
  • データ ウェアハウスの実行 データ ウェアハウスにデータをインポートする方法と、インポート プロセスをカスタマイズする方法について説明します。また、データ ウェアハウスのデータを管理および拡充する方法についても説明します。
  • ダイレクト メーラーの実行 パーソナライズされたダイレクト メール メッセージを作成する方法について説明します。また、Commerce Server ダイレクト メーラーをカスタマイズする方法と、ダイレクト メール ジョブを実行、監視、および削除する方法についても説明します。
  • プロファイル リソースの実行 プロファイルのデータ ソースを Commerce Server に追加する方法、プロファイル定義を作成して Web サイトからデータを収集する方法、およびサイト用語を作成する方法について説明します。
  • Commerce Server サイトの監視 Commerce Server を監視する方法について説明します。また、Commerce Server のカウンタについても説明します。さらに、Commerce Server のシステム カウンタを使ってサーバーのパフォーマンスを向上させる方法について説明します。
  • Commerce Server の最適化 個々の要求に対する応答時間を最小にする方法と、Commerce Server のスループットを最大にする方法について説明します。
  • ユーザー インターフェイスのリファレンス データ ウェアハウス、データ変換サービス タスク、および Commerce Server サイト パッケージャに関する、状況依存のヘルプ トピックについて説明します。


Commerce Server マネージャ ヘルプ

Commerce Server マネージャで実行する一般的な作業の一覧を次に示します。

分野 | トピック
リソース | リソース グローバル リソースをインストールまたはアンインストールする サイトにグローバル リソース ポインタを追加する サイトにリソースを追加する サイト間でリソースを共有する
サイトとアプリケーション | サイト アプリケーション サイト パッケージャを使う クラスタ構成の 4 台のコンピュータにインストールする 非クラスタ構成の 3 台のコンピュータにインストールする サイトにアプリケーションを追加する サイトにビジネス デスク アプリケーションを追加する サイトに非 Commerce のアプリケーションを追加する アプリケーションに Web サーバーを追加する アプリケーションに非 Commerce の Web サーバーを追加する アプリケーションを構成する Web サーバーを構成する
ダイレクト メーラー | ダイレクト メーラーと Windows 認証を使う ダイレクト メーラーを構成する ダイレクト メーラーの実行
データ ウェアハウス | Web サーバー ログ インポート DTS タスクを構成する データ ウェアハウスにデータをインポートする DTS タスクのスクリプト
CS 認証リソース | Web ファームでの認証フィルタ処理 Retail ソリューション サイトの認証フィルタを有効にする cookie の共有 Exchange 2000 Outlook Web Access (OWA) の基本認証
プロファイル リソース | プロファイル リソースの接続文字列を構成する プロファイル リソースで新しいデータ ソースを作成する
アプリケーション既定の構成リソース | アプリケーション既定の構成リソースを構成する Configuring Commerce Server to Work with BizTalk Server
トラブルシューティング | Commerce Server リソースのトラブルシューティング データ ウェアハウスのインポート処理のトラブルシューティング


管理ツール

次の表は、Commerce Server 2002 を保守するために使用する管理ツールの一覧です。

項目 | 操作
Commerce Server マネージャを使う | Commerce Server リソース、サイト、アプリケーション、および Web サーバーの管理と構成を行います。
サイト パッケージャを使う | サイト、リソース、アプリケーション、および Web サーバーを展開します。
SQL Enterprise Manager | Commerce Server データベースを管理します。
IIS スナップイン | Web サーバーを管理します。
Windows 2000 Active Directory ユーザーおよびコンピュータ | Windows 2000 のユーザー アカウント、コンピュータ アカウント、およびセキュリティと配布グループを管理します。
Windows 2000 イベント ビューア | イベント ログの記録を表示します。
Windows 2000 システム モニタ | リアルタイムのコンピュータ パフォーマンス データを収集し、表示します。
Windows 2000 バックアップ ウィザード | インターネット インフォメーション サービス (IIS) メタベース、Windows 2000 レジストリ設定、および Commerce Server ファイルをバックアップします。
Windows 2000 復元ウィザード | IIS メタベース、Windows 2000 レジストリ設定、および Commerce Server ファイルを復元します。


Commerce Server マネージャを使う

Commerce Server マネージャは、Commerce Server 2002 のリソース、サイト、アプリケーション、および Web サーバーの管理と設定に使用するツールです。Microsoft Windows 2000 に付属の Windows ベースのインターフェイスである Microsoft 管理コンソール (MMC) が、Commerce Server マネージャのホストになります。

Commerce Server マネージャの機能は、Web ベース管理やコマンド ラインからの管理からは利用できません。その機能のほとんどは、Component Object Model (COM) オブジェクトを介して利用したり操作することになります。したがって、開発者は Windows Scripting Host (WSH) スクリプトや Active Server Pages (ASP) ページを作成して管理環境を拡大できます。

Commerce Server マネージャにアクセスするには

  • [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Commerce Server マネージャ] をクリックします。

関連項目

Integrating Custom Resources


データベースの接続文字列を変更する

Commerce Server の接続文字列は、管理データベースに格納されます。データベース接続文字列はすべて Window 認証を使用して構成する.ことをお勧めします。Windows 認証を使用してサイトを構成する方法については、「Windows 認証を使う」を参照してください。

Commerce Server は、次のデータベースの接続文字列を使います。

  • 管理データベース 管理データベースへの接続文字列は、セットアップ時に構成します。接続文字列は Commerce Server マネージャを使って後から変更できます。操作手順については、「管理データベースの接続文字列を変更する」を参照してください。
  • ダイレクト メーラー データベース ダイレクト メーラー データベースへの接続文字列は、セットアップ時に構成します。これは、Commerce Server マネージャを使って後で変更できます。操作手順については、「ダイレクト メーラーを構成する」を参照してください。
  • リソースが使用するデータベース Commerce Server サイト パッケージャを使ったサイトのアンパックでは、いくつかのリソースについて、適切なデータベースへの接続文字列の入力を求められます。次の表は、各リソースの接続文字列の一覧です。
    リソース | 接続文字列
    ビジネス デスク アクセス許可 | SDT データベース
    商品カタログ | Catalog データベース
    キャンペーン | Campaigns データベース
    トランザクション | トランザクション データベース
    トランザクションの構成 | トランザクション構成データベース
    プロファイル | s_BizDataStoreConnectionString、s_CommerceProviderConnectionString、s_ProfileServiceConnectionString
    データ ウェアハウス データ ウェアハウスには独自の拡張スナップインがあるため、接続文字列はユーザー インターフェイス上では名前が付いていません。

    データ ウェアハウス リソースから OLAP データベースへの接続文字列では Windows 認証だけがサポートされています。

  • その他のデータベース 次のような場合も接続文字列を指定します。
    機能 | 接続文字列
    リスト マネージャ : リストのインポートおよびエクスポート | Commerce Server ビジネス デスクのリスト マネージャ モジュールで、インポートまたはエクスポートする SQL Server データベース テーブルへの接続文字列を設定します。
    Migration ProfileBuilder ツール | ProfileBuilder、ソース コードを修正した後、Commerce Server プロファイル データ ストアのデータ ソース名 (DSN) を作成します。
    プロファイル リソース : データ ソースの追加 | [データ ソースの選択] ダイアログ ボックスを使って、データ ソースのパーティションをマップするデータベースへの接続文字列を入力します。パーティションを Lightweight Directory Access Protocol (LDAP) ソースにマップする場合は、[LDAP 接続文字列] ダイアログ ボックスを使用します。

データベースへの接続文字列を変更する必要がある場合は、Commerce Server マネージャを使用します。

ここでは、次のトピックについて説明します。

  • グローバル リソースの接続文字列を変更する
  • サイト リソースの接続文字列を変更する

関連項目

Windows 認証を使う

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse

OLE DB Connection Strings for the Profiling System

Code to Connect to the Expression Store

Code to Connect to the Profiles Store


グローバル リソースの接続文字列を変更する

グローバル リソースへの接続文字列は変更することができます。

グローバル リソースの接続文字列を変更するには

注

  • データ ウェアハウスのグローバル リソースには、インターフェイスの異なる独自の拡張スナップインがあるため、次の手順は適用されません。データ ウェアハウスの接続文字列を変更する方法については、「データ ウェアハウスの接続文字列を構成する」を参照してください。
  1. Commerce Server マネージャで、[Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。
  2. 設定するグローバル リソースを右クリックし、[プロパティ] をクリックします。
  3. グローバル リソースの接続文字列を設定するには、[プロパティ] ダイアログ ボックスの [接続文字列] タブで、接続文字列を選択して [変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

  4. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

注

  • データベースと関連付けられていない接続文字列を追加することはできますが、機能しません。この場合、Microsoft Data Link によるエラー メッセージは表示されません。
  • 接続文字列を変更したら、インターネット インフォメーション サービス (IIS) を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

Windows 認証を使う

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse

OLE DB Connection Strings for the Profiling System

Code to Connect to the Expression Store

Code to Connect to the Profiles Store


サイト リソースの接続文字列を変更する

サイト リソースへの接続文字列は変更することができます。

サイト リソースの接続文字列を変更するには

  1. Commerce Server マネージャで、[Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [サイト リソース] を展開し、設定するサイト リソースを右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [接続文字列] タブで、接続文字列を選択して [変更] をクリックします。[データ リンク プロパティ] ダイアログ ボックスが表示されます。
  4. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

注

  • データベースと関連付けられていない接続文字列を追加することはできますが、機能しません。この場合、Microsoft Data Link によるエラー メッセージは表示されません。
  • 接続文字列を変更したら、IIS を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

Windows 認証を使う

データ ウェアハウスの接続文字列を構成する

OLE DB Connection Strings for the Data Warehouse

OLE DB Connection Strings for the Profiling System

Code to Connect to the Expression Store

Code to Connect to the Profiles Store


管理ツールだけをインストールする

Commerce Server が少なくとも 1 台のコンピュータにインストールされていれば、管理専用のコンソールを他のコンピュータにセットアップすることもできます。管理専用のコンピュータには Commerce Server マネージャだけがインストールされ、既存の管理データベースに接続します。

管理専用のコンピュータは、次のような場合に使うことをお勧めします。

  • 既存のコンピュータを最小限のインストールで利用する場合。管理専用のコンピュータは、Commerce Server を完全にインストールする場合よりも、ソフトウェアと構成の要件が緩やかになります。オペレーティング システムとして、Microsoft Windows 2000 Server ではなく、Microsoft Windows 2000 Professional を使用することができます。
  • Commerce Server を他の場所から管理する場合。管理専用のコンピュータは、Commerce Server と同じドメインまたは信頼される側のドメインに配置する必要があります。

管理専用のコンピュータは、次の要件を満たしている必要があります。

  • Microsoft Windows 2000 Professional、Server、または Advanced Server がインストールされていること。
  • 20 MB のハード ディスクの空き容量があること。
  • 既存の管理データベースに接続できること。

管理ツールだけをインストールするには

  1. 管理専用に選択したコンピュータ上で、Commerce Server 2002 のセットアップを実行し、[カスタム インストール] を選択します。
  2. このインストールに対して [管理ツール] オプションが選択されていることを確認し、それ以外のオプションの選択をすべて解除します。
  3. [管理データベースの構成] 画面で、次の操作を行います。
    項目 | 操作
    [SQL Server コンピュータ] | 管理データベースの作成場所となる SQL Server の名前を入力します。
    [SQL ユーザー名] | 管理データベースの作成場所となる SQL Server へのアクセス許可を持つ SQL Server ログイン ユーザー名を入力します。
    [SQL パスワード] | SQL Server ログイン パスワードを入力します。
  4. [次へ] をクリックし、[インストール] をクリックします。

Commerce Server マネージャがコンピュータにインストールされます。

プロキシ サーバーまたはファイアウォール経由での管理を有効にするには

  • SQL Server と管理専用のコンピュータとの間でポート 1433 を開きます。

特に指定しない限り、SQL Server はポート 1433 で待機します。ポート番号の変更手順については、SQL Server Books Online を参照してください。

注

  • Commerce Server マネージャについては、プロキシ サーバーまたはファイアウォール経由でも使用できますが、インターネット サービス マネージャは、プロキシ サーバーまたはファイアウォール経由では使用できません。ファイアウォールの向こう側にある管理専用のコンピュータに IIS の管理機能を追加するには、ブラウザ ベースの IIS または Microsoft ターミナル サービスを使います。

    IIS の使い方の詳細については、IIS 5.0 のドキュメントを参照してください。ターミナル サービスの使い方については、Windows 2000 のドキュメントの「クライアント サービス」を参照してください。


管理データベースの管理

Commerce Server 2002 サイトは、複数のコンピュータで構成される場合があります。その場合でも、すべてのコンピュータのリソースに関する構成データは、MSCS_Admin という名前の単一の SQL Server 管理データベースにまとめて格納されます。このデータベースは、Commerce Server を最初にインストールするときに自動的に作成されます。管理データベースを置く SQL Server コンピュータは、セットアップ時に指定する必要があります。

Commerce Server をさらに別のコンピュータにインストールする場合は、セットアップ時に各コンピュータがこの管理データベースを参照するように指定します。すべてのコンピュータがこの中央のデータベースを参照するように設定すると、1 つのコンソールからすべての Commerce Server コンピュータを集中管理できるようになります。

注

  • すべての Commerce Server コンピュータが、1 つの管理データベースを使用することができます。また、各コンピュータがそれぞれ独自の管理データベースを使うこともできます。

次の表は、管理データベースが一般的に置かれる場所を、環境ごとにまとめて示しています。

環境 | 管理データベースの一般的な場所
Commerce Server、Microsoft SQL Server、およびすべての Web コンポーネントを含む単一のサーバー | 単一のサーバー
1 つまたは複数の Web サーバーと 1 つのデータベース サーバー | SQL Server コンピュータ
複数層の複数サーバー環境 | いずれかの SQL Server コンピュータ (最適なパフォーマンスを得るために、データ ウェアハウスとは別のコンピュータにします)

ここでは、次のトピックについて説明します。

  • サイトと管理データベースとの間で情報をやり取りする
  • 管理データベースのセキュリティを管理する
  • 管理データベースの接続文字列を変更する


サイトと管理データベースとの間で情報をやり取りする

管理データベースは、3 つの COM オブジェクトによってアクセスされます。SiteConfig、GlobalConfig、および、SiteConfigReadOnly です。次の図は、サイトと管理データベースとの間で効率よく情報を交換するのに、これらの Config オブジェクトがどのような働きをしているのかを示しています。

Config オブジェクトは管理データベースにデータを書き込みます。また、アプリケーションで使用されるデータをデータベースから取得します。Config オブジェクトを使ったプログラミングについては、「Programmer's Reference」を参照してください。

関連項目

サイトのセキュリティ設定

管理データベースのセキュリティを管理する


管理データベースのセキュリティを管理する

管理データベースの接続文字列には、Microsoft SQL Server ログイン ユーザー名とパスワードを使用します。

Commerce Server のインストール時に、セットアップ プログラムは既存の SQL Server ログイン名とパスワードを入力するように要求します。管理データベースは、これらの情報を使って SQL Server に作成されます。管理データベースが既に存在する場合は、そのデータベースに接続します。

管理データベースが作成されていれば、Microsoft SQL Server Enterprise Manager を使って管理データベースの SQL Server ログイン名とパスワードを変更できます。他の SQL Server ログインを使って Commerce Server コンピュータから管理データベースに接続する場合は、Commerce Server マネージャで管理データベースの接続文字列を変更する必要があります。

セキュリティのため、管理データベースへのアクセスに "sa" ログインは使わないでください。その代わりに、SQL Server Enterprise Manager を使って、管理データベースの新規のログインとユーザーを作成してください。

管理データベースの SQL Server ログイン ユーザー名とパスワードを変更するには

  1. [Commerce Server マネージャ] を右クリックし、[プロパティ] をクリックします。
  2. [Commerce Server マネージャーのプロパティ] ダイアログ ボックスの [管理データベース] タブで、[変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

  3. [データ リンク プロパティ] ダイアログ ボックスの内容を必要時応じて変更し、[OK] をクリックします。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプ ファイルを開いてください。

関連項目

サイトのセキュリティ設定


管理データベースの接続文字列を変更する

注

  • Commerce Server マネージャが管理データベースに接続できない場合、Microsoft 管理コンソール (MMC) のスコープ ウィンドウには、Commerce Server マネージャのルート ノードは表示されますが、Commerce Server 階層の他の部分は表示されません。

管理データベースを SQL Server に接続するには、Commerce Server のインストール処理中に接続文字列を設定します。管理データベースの接続文字列では、Microsoft SQL 認証と Windows 認証がサポートされます。

次の状況では、管理データベースの接続文字列を変更する必要があります。

  • 管理データベースの場所を変更する。
  • データベースの名前を変更する。
  • Windows 認証を使って Commerce Server を複数のサーバーに配置し、カスタム認証に対して認証フィルタを構成する。

    このシナリオで認証フィルタを使うときは、管理データベースへの接続文字列を変更する必要があります。これは、ISAPI フィルタ (つまり、認証フィルタ) が、LocalSystem とも呼ばれるインターネット インフォメーション サービス (IIS) プロセス (inetinfo) のセキュリティ コンテキストで実行されるためです。このため、認証フィルタにより、LocalSystem からの資格情報を使って、別のコンピュータ上の SQL Server への接続が試行されますが、この接続は無効です。これは、認証フィルタには、ネットワーク経由で接続する権限がないためです (管理データベースがローカルの場合には接続が機能することもあります。しかし、管理データベースは必ず Web サーバー以外に配置する必要があります)。

    詳細については、「分散環境で Windows 認証を使う」を参照してください。

管理データベースの接続文字列を変更するには

  1. [Commerce Server マネージャ] を右クリックし、[プロパティ] をクリックします。
  2. [Commerce Server マネージャーのプロパティ] ダイアログ ボックスの [管理データベース] タブで、[変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

  3. 必要に応じて、[データ リンク プロパティ] ダイアログ ボックスで SQL Server 名を変更します。
  4. 次のように、認証モードを選択します。
    • Windows NT 統合セキュリティを使うには、[Windows NT 統合セキュリティを使用する] を選択します。
    • SQL 認証を使うには、[特定のユーザー名とパスワードを使用] を選択し、[ユーザー名] ボックスと [パスワード] ボックスに入力します。

    空のパスワードは使わないでください。空のパスワードを使うと、環境のセキュリティ リスクの原因となります。

  5. [OK] をクリックします。

注

  • データベースと関連付けられていない接続文字列を追加することはできますが、機能しません。この場合、Microsoft Data Link によるエラー メッセージは表示されません。
  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

管理データベースにセキュリティを設定する

管理データベースの管理


Commerce リソースの管理

リソースには、グローバル リソースとサイト リソースの 2 種類があります。サード パーティは、Commerce Server で使用するカスタム グローバル リソースとサイト リソースを開発できます。Commerce Server リソースをインストール、追加、および設定するには、ここで説明する手順を使います。

ここでは、次のトピックについて説明します。

  • グローバル リソースをインストールまたはアンインストールする グローバル リソースのインストールとアンインストールの方法について説明します。
  • サイトにグローバル リソース ポインタを追加する サイトにグローバル リソース ポインタを追加する方法について説明します。
  • サイトにリソースを追加する サイトにリソースを追加する方法について説明します。
  • サイト間でリソースを共有する 複数のサイトで共有できるリソースが一覧表示されます。
  • グローバル リソースを構成する グローバル リソースを構成する方法について説明します。
  • サイト リソースを構成する サイト リソースを構成する方法について説明します。
  • サービスのアカウントまたはパスワードを変更する ダイレクト メーラー、イベント ログ、およびリスト マネージャのアカウントまたはパスワードを変更する方法について説明します。
  • サイトからリソースを削除する サイトからリソースを削除する方法について説明します。
  • データ ウェアハウス リソースを削除する データ ウェアハウス構成ウィザードによってアンパックされたサイトおよびリソースを削除する方法について説明します。


グローバル リソースをインストールまたはアンインストールする

Commerce Server のグローバル リソースである予測とダイレクト メーラーは、Microsoft Commerce Server 2002 のセットアップ プログラムでインストールやアンインストールを実行できます。他のグローバル リソースは、アンパック時に作成されます。

予測とダイレクト メーラーをインストールした後、サイトで利用するにはこれらのリソースのアンパックが必要になります。アプリケーションをアンパックするときに、サイトのグローバル リソース ポインタを予測およびダイレクト メーラーに設定します。サイトのグローバル リソース ポインタを追加および削除する方法については、「サイトにグローバル リソース ポインタを追加する」および「サイトからリソースを削除する」を参照してください。

予測とダイレクト メーラーのインストールおよび配置については、「サイトの配置」を参照してください。

注

  • 可用性の高い、クラスタ化されたリソースとして、Commerce Server 2002 ダイレクト メーラーおよび予測リソースをインストールして、Microsoft Cluster Server (MSCS) の機能を活用することができます。クラスタ化されたリソースとしてダイレクト メーラーおよび予測をインストールする方法については、「Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする」を参照してください。

予測またはダイレクト メーラーをインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、インストール先のフォルダを選択します。
  2. [セットアップの種類] ダイアログ ボックスの [カスタム] (Commerce Server が既にインストールされているコンピュータでは [変更]) を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスの [ランタイム オブジェクト] フォルダの下で、[予測サービス] または [ダイレクト メーラー サービス] オプションを選択し、それ以外のオプションでは [インストールしない] を選択します。[次へ] をクリックします。
  4. [ダイレクト メーラー データベースの構成] ダイアログ ボックスで、[SQL Server コンピュータ] ボックスにローカル コンピュータの名前を入力します。ダイレクト メーラー データベースを作成するときに使用する、SQL Server ログイン ユーザー名とパスワードを入力し、[次へ] をクリックします。
  5. [サービス アカウント] ダイアログ ボックスで、サービスを実行するアカウントの Windows ユーザー名とパスワードを入力し、[次へ] をクリックします。

    注

    • サービス アカウントを指定するときは、恒久的なアカウントを使ってください。後でこのアカウントが無効になった場合、またはパスワードが変更された場合には、Commerce Server は機能を停止します。サービスのアカウントまたはパスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。
  6. [インストールの準備完了] ダイアログ ボックスの [インストール] をクリックします。

    Commerce Server セットアップは、コンピュータに予測とダイレクト メーラーをインストールします。

  7. [完了] をクリックして、セットアップ プログラムを終了します。

予測またはダイレクト メーラーをアンインストールするには

注

  • 可用性の高い、クラスタ化されたリソースとして、Commerce Server 2002 ダイレクト メーラーおよび予測リソースをインストールして、Microsoft Cluster Server (MSCS) の機能を活用することができます。クラスタ化されたリソースとしてダイレクト メーラーおよび予測をインストールする方法については、「Commerce Server 2002 リソースをクラスタ化されたリソースとしてインストールする」を参照してください。
    重要
  • Commerce Server 2002 のクラスタ化されたリソースをアンインストールするには、最初に Commerce Server 2002 をアンインストールする必要があります。Commerce Server 2002 をアンインストールすると、クラスタ サービス (MSCS) をアンインストールできます。Commerce Server 2002 のアンインストールの詳細については、「Commerce Server 2002 インストール ガイド」の「Commerce Server 2002 をアンインストールする」を参照してください。
  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [変更] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスで、削除する機能 ([予測サービス] または [ダイレクト メーラー サービス]) が選択されていないことを確認します (選択されて "いない" ことを示す [X] がリソース名の横に表示されます)。[次へ] をクリックします。
  4. [インストールの準備完了] ダイアログ ボックスの [インストール] をクリックします。

    Commerce Server セットアップは、コンピュータから予測またはダイレクト メーラーをアンインストールします。

  5. [完了] をクリックして、セットアップ プログラムを終了します。

Commerce Server の 2つのグローバル リソースである予測とダイレクト メーラーは、Microsoft Commerce Server 2002 のセットアップ プログラムでインストールやアンインストールを実行できます。他のグローバル リソースは、アンパック時に作成されます。

ダイレクト メーラーをインストールした後、サイトで利用するにはリソースのアンパックが必要になります。アプリケーションをアンパックするときに、サイトのグローバル リソース ポインタをダイレクト メーラーに設定します。サイトのグローバル リソース ポインタを追加および削除する方法については、「サイトにグローバル リソース ポインタを追加する」および「サイトからリソースを削除する」を参照してください。

ダイレクト メーラーのインストールおよび配置については、「サイトの配置」を参照してください。

ダイレクト メーラーをインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、インストール先のフォルダを選択します。
  2. [セットアップの種類] ダイアログ ボックスの [カスタム] (Commerce Server が既にインストールされているコンピュータでは [変更]) を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスの [ランタイム オブジェクト] フォルダの下で、[ダイレクト メーラー サービス] オプションを選択し、それ以外のオプションでは [インストールしない] を選択します。[次へ] をクリックします。
  4. [ダイレクト メーラー データベースの構成] ダイアログ ボックスで、[SQL Server コンピュータ] ボックスにコンピュータの名前を入力します。ダイレクト メーラー データベースを作成するときに使用する、SQL Server ログイン ユーザー名とパスワードを入力し、[次へ] をクリックします。
  5. [サービス アカウント] ダイアログ ボックスで、Commerce Server ダイレクト メーラー サービスを実行するアカウントの Windows ユーザー名とパスワードを入力し、[次へ] をクリックします。

    注

    • サービス アカウントを指定するときは、恒久的なアカウントを使ってください。後でこのアカウントが無効になった場合、またはパスワードが変更された場合には、Commerce Server は機能を停止します。サービスのアカウントまたはパスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。
  6. [インストールの準備完了] ダイアログ ボックスの [インストール] をクリックします。

    ダイレクト メーラーがコンピュータにインストールされます。

  7. [完了] をクリックして、セットアップ プログラムを終了します。

ダイレクト メーラーをアンインストールするには

  1. Commerce Server 2002 の CD-ROM を CD-ROM ドライブに挿入し、Commerce Server 2002 セットアップ プログラムを実行します。使用許諾契約書に同意したら、顧客情報を入力し、既定のフォルダをインストール先に指定します。
  2. [セットアップの種類] ダイアログ ボックスで [変更] を選択し、[次へ] をクリックします。
  3. [カスタム セットアップ] ダイアログ ボックスで、[ダイレクト メーラー サービス] が選択されていないことを確認します (選択されて "いない" ことを示す [X] がチェック ボックスに表示されます)。[次へ] をクリックします。
  4. [インストールの準備完了] ダイアログ ボックスの [インストール] をクリックします。

    ダイレクト メーラーがコンピュータから削除されます。

  5. [完了] をクリックして、セットアップ プログラムを終了します。

関連項目

サイトの配置

サイトにグローバル リソース ポインタを追加する

サイトからリソースを削除する


サイトにグローバル リソース ポインタを追加する

Commerce Server 2002 のセットアップ プログラムを使ってグローバル リソースをインストールすると、そのグローバル リソースへのポインタは、Commerce Server 管理データベースに登録されているすべてのサイトに追加できます。サイトにグローバル リソース ポインタを追加するには、Commerce Server サイト パッケージャ ファイルからそのグローバル リソース ポインタをアンパックします。

たとえば、ダイレクト メーラーをインストールした後に、ダイレクト メーラーのリソースを含むサイトをアンパックします。サイトをアンパックするときに、サイトのグローバル リソース ポインタをダイレクト メーラーに設定します。

注

  • 次の手順を実行するには、パッケージ ファイルを作成するか、またはサイトに追加するグローバル リソース ポインタが含まれるソリューション サイト パッケージを使う必要があります。パッケージを作成する手順については、「サイト パッケージャを使う」を参照してください。
  • Commerce Server ビジネス デスク アプリケーションをアンパックし、ビジネス デスク クライアントをインストールした後でダイレクト メーラー リソースをアンパックする場合は、ダイレクト メーラーの追加が検出されるように、ビジネス デスク アプリケーションのホストとなっている Web サーバーでインターネット インフォメーション サービス (IIS) 5.0 を再起動する必要があります。ビジネス デスク クライアントからは、アプリケーションに接続し直す必要があります。IIS の再開方法については、「IIS と Commerce Server サービスを再起動する」を参照してください。

サイトにグローバル リソース ポインタを追加するには

  1. Commerce Server マネージャで、[Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [サイト リソース] を右クリックし、[新規] をポイントします。次に、[リソースの追加] をクリックします。
  3. [開く] ダイアログ ボックスで、サイトに追加するグローバル リソース ポインタが含まれているパッケージを選択し、[開く] をクリックします。

    [Commerce Server サイト パッケージャ] が起動します。

  4. [リソースの選択] ダイアログ ボックスで、[利用できるリソース] ボックスからグローバル リソースを選択し、[追加] をクリックします。選択したリソースが [アンパックするリソース] ボックスに表示されます。
  5. [次へ] をクリックします。
  6. [グローバル リソース ポインタ] ダイアログ ボックスで、選択したリソースが適切なグローバル リソースを指していることを確認します。この画面を使って、いくつかの新しいグローバル リソースを作成できます。新しいグローバル リソースを作成するには、グローバル リソース ポインタをマップするときに、[新しいグローバル リソースを追加] を選択します。
  7. [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。グローバル リソースの新しいデータベースを作成する必要がある場合は、[新しいデータベース] をクリックします。
  8. [SQL Server コンピュータ] ボックスに、データベースを格納するコンピュータの名前を入力します。[データベース名] ボックスに、データベースの名前を入力します。残りのボックスに SQL Server のログイン ユーザー名とパスワードを入力し、[データベースの作成] をクリックします。
  9. [データベース接続文字列] ダイアログ ボックスに戻ったら、接続文字列を選択し、[変更] をクリックします。
  10. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプ ファイルを開いてください。
  11. [次へ] をクリックします。
  12. [アンパックが完了しました] ダイアログ ボックスで、アンパック処理のログ ファイルの内容を確認し、[終了] をクリックします。

追加したグローバル リソース ポインタが Commerce Server マネージャのサイトの下に表示されます。

関連項目

サイト パッケージャを使う

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする

サイトからリソースを削除する

Commerce Server をインストールする


サイトにリソースを追加する

サイトにリソースを追加するには、パッケージからそのリソースをアンパックします。

注

  • 次の手順を実行するには、パッケージ ファイルを作成するか、またはサイトに追加するリソースが含まれるソリューション サイト パッケージを使う必要があります。リソースをパッケージ化し、パッケージ ファイルを作成する手順については、「サイト パッケージャを使う」を参照してください。
  • Commerce Server ビジネス デスク アプリケーションをアンパックし、ビジネス デスク クライアントをインストールした後でダイレクト メーラー リソースをアンパックする場合は、ダイレクト メーラーが検出されるように、ビジネス デスク アプリケーションのホストとなっている Web サーバーでインターネット インフォメーション サービス (IIS) 5.0 を再起動する必要があります。ビジネス デスク クライアントからは、アプリケーションに接続し直す必要があります。IIS の再開方法については、「IIS と Commerce Server サービスを再起動する」を参照してください。

サイト リソースを追加するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [サイト リソース] をクリックし、[サイト リソース] を右クリックします。次に [新規] をポイントし、[リソースの追加] をクリックします。
  3. [開く] ダイアログ ボックスで、既存サイト パッケージの一覧から、サイトに追加するリソースが含まれているパッケージを選択し、[開く] をクリックします。

    [Commerce Server サイト パッケージャ] が起動します。

  4. [リソースの選択] ダイアログ ボックスで、[利用できるリソース] ボックスからリソースを選択し、[追加] をクリックします。選択したリソースが [アンパックするリソース] ボックスに表示されます。
  5. [次へ] をクリックします。
  6. [グローバル リソース ポインタ] ダイアログ ボックスで、選択したリソースが適切なグローバル リソースを格納するサーバーを指していることを確認します。この画面を使って、いくつかの新しいグローバル リソースを作成できます。新しいグローバル リソースを作成するには、グローバル リソース ポインタをマップするときに、[新しいグローバル リソースを追加] を選択します。

    追加しようとしている新規グローバル リソースの接続文字列プロパティの一覧が表示されます。追加しようとしているリソースがグローバル リソース ポインタでない場合、接続文字列プロパティの一覧は表示されません。

  7. [データベースの接続文字列] ダイアログ ボックスに、サイト パッケージャが作成するデータベースと、そのデータベースが作成されるサーバーが一覧表示されます。グローバル リソースの新しいデータベースを作成する必要がある場合は、[新しいデータベース] をクリックします。
  8. [SQL Server コンピュータ] ボックスに、データベースを格納するコンピュータの名前を入力します。[データベース名] ボックスに、データベースの名前を入力します。残りのボックスに SQL Server のログイン ユーザー名とパスワードを入力し、[データベースの作成] をクリックします。
  9. [データベース接続文字列] ダイアログ ボックスに戻ったら、接続文字列を選択し、[変更] をクリックします。
  10. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプ ファイルを開いてください。
  11. [次へ] をクリックします。
  12. [アンパックが完了しました] ダイアログ ボックスで、アンパック処理のログ ファイルの内容を確認し、[終了] をクリックします。

追加したリソースが Commerce Server マネージャのサイトの下に表示されます。

関連項目

サイト間でリソースを共有する

複数のサイトと 1 つのデータ ウェアハウス

サイト パッケージャを使う

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする

サイト リソースを構成する

サイトからリソースを削除する


サイト間でリソースを共有する

次の表は、複数のサイト間で共有できるリソースと共有できないリソースの一覧です。

リソース | 共有の可能性
アプリケーション既定の構成 | なし
ビジネス デスク アクセス許可 | なし
キャンペーン | なし
カタログ | なし
CS 認証 | あり
データ ウェアハウス | あり
ダイレクト メール | あり
予測 | あり
プロファイル | あり
トランザクション | なし
トランザクション構成 | なし

関連項目

複数のサイトと 1 つのデータ ウェアハウス


グローバル リソースを構成する

グローバル リソースがインストールされていれば、そのグローバル リソースで使用されるプロパティおよびデータベース接続文字列はいつでも変更できます。

注

  • Commerce Server マネージャを使ってグローバル リソースのプロパティまたはデータベース接続文字列を変更しても、グローバル リソースを使用しているアプリケーションの Web ページや Commerce Server ビジネス デスクに、変更内容がすぐに反映されない場合があります。変更内容をすぐに反映させるには、その値を使用するサービスはすべて再起動します。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

グローバル リソースを構成するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。
  2. 設定するグローバル リソースを右クリックし、[プロパティ] をクリックします。
  3. [<グローバル リソース> のプロパティ] ダイアログ ボックスの [プロパティ] タブで、グローバル リソースを構成します。プロパティを 1 つずつ選択して、[選択したプロパティ値] ボックスに値を入力します。
  4. [接続文字列] タブで、グローバル リソースの接続文字列を構成し、[変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプ ファイルを開いてください。
  5. [データ リンク プロパティ] ダイアログ ボックスの内容を必要時応じて変更し、[OK] をクリックします。

これで、選択したグローバル リソースの設定が完了しました。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

リソース

サイト リソースを構成する

IIS と Commerce Server サービスを再起動する


サイト リソースを構成する

サイトにサイト リソースが追加されていれば、そのサイト リソースで使用するプロパティはいつでも変更できます。サイトで使用するサイト リソースはすべて、サイト レベルでオブジェクトを公開します。

注

  • サイトで使用するグローバル リソースは、サイト レベルでオブジェクト (グローバル リソース ポインタ) を公開します。ただし、このオブジェクトが公開するプロパティは、関連付けられたグローバル リソースへのポインタだけです。グローバル リソースを構成する方法については、「グローバル リソースを構成する」を参照してください。

サイト リソースを構成するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [サイト リソース] を展開し、設定するサイト リソースを右クリックします。次に、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスで、設定するプロパティを選択し、[選択したプロパティ値] ボックスに値を入力します。
  4. サイト リソースのプロパティを設定し終えたら、[OK] をクリックします。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

リソース

グローバル リソースを構成する


サービスのアカウントまたはパスワードを変更する

SQL Server ログイン パスワード、Windows サービス アカウント パスワード、COM+ アプリケーション パスワードなどのパスワードは、Commerce Server サイト用に保守する必要があります。Commerce Server マネージャを使うと、1 か所で複数のパスワードを変更できます。選択したサイトのすべてのリソースについて、SQL Server ログイン資格情報を変更できます。

Commerce Server マネージャを使ってパスワードを変更する場合は、1 人のユーザーに対してすべてのパスワードを一括して変更します。つまり、単一のサーバー上にあるサービスおよび COM+ アプリケーションのパスワードをすべて一度に変更し、また、単一のサイトのリソースで使われる SQL Server 資格情報をすべて一度に変更することができます。

Commerce Server マネージャによりサーバーへ接続され、各 Commerce Server サービスが停止し、アカウントとパスワードが変更されます。次に、サービスが再開されます。最後に、指定した Windows アカウントとパスワードを使うように、COM+ アプリケーション識別子が変更されます。

ここでは、次のトピックについて説明します。

  • Commerce Server リソースの資格情報
  • リモート コンピュータに対する資格情報を変更する


Commerce Server リソースの資格情報

Commerce Server では、次の 2 つのクラスのアカウント情報が使われます。

  • Commerce Server で使われる Commerce Server サービスおよび COM+ アプリケーションの Windows アカウントとパスワード
  • リソースの接続文字列プロパティで使われる SQL Server ログイン名

次の表は、Windows アカウント情報および SQL Server 資格情報を使うリソースの一覧です。

Windows アカウントとパスワードを使うサービス | SQL Server 資格情報を使うサイト レベル リソース | SQL Server 資格情報を使うグローバル リソース
List Manager (サービス) | トランザクション | ダイレクト メーラー
Direct Mailer (サービス) | トランザクションの構成 | データ ウェアハウス
Event Logging (COM+ アプリケーション) | 商品カタログ | プロファイル
 | キャンペーン |


リモート コンピュータに対する資格情報を変更する

リモート コンピュータに対する資格情報を変更するときは、新しいアカウントにリモート コンピュータで "サービスとしてログオン" の権利が付与されていることを確認します。Commerce Server は、アカウントにリモート コンピュータに対するこの権利を自動的には付与しません。このことは、アカウントにローカル コンピュータ上での権利があることとは無関係です。

サービス アカウントまたはパスワードを変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[パスワードの変更] タスクパッドをクリックします。
  3. [パスワードの変更] ダイアログ ボックスの [サービスおよび COM+ アプリケーション] セクションで、次の操作を行います。
    項目 | 操作
    [サーバー名] | パスワードの変更対象となるコンピュータの名前を入力します。既定値は、ローカル コンピュータの名前です。
    [Windows アカウント] | サービスで使われる新しい Windows アカウントを入力します。
    [パスワード] | サービスで使われる新しいパスワードを入力します。
  4. [変更] をクリックして、新しい Windows アカウントまたはパスワードを有効にします。
  5. [パスワードの確認] ダイアログ ボックスで新しいパスワードを再度入力し、[OK] をクリックします。

パスワードの変更処理は同期的に行われます。実行中のアクション (サービスの停止、資格情報の変更、サービスの開始) を示す状態メッセージが表示されます。

サイト リソースで使われる SQL Server ログイン名とパスワードを変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[パスワードの変更] タスクパッドをクリックします。
  3. [パスワードの変更] ダイアログ ボックスの [SQL Server 接続] セクションで、次の操作を行います。
    項目 | 操作
    [サイト] | SQL Server パスワードの変更対象となるサイトを選択します。
    [SQL ログイン名] | SQL Server ログイン名を入力します。
    [パスワード] | 新しいパスワードを入力します。
    [このサイトが使用するグローバル リソースの接続文字列の変更] SQL Server 資格情報を持つグローバル リソースで使われる接続文字列を変更するには、このオプションを選択します。

    注

    • このようなグローバル リソースが他のサイトで使われている場合、そのサイトはこの変更の影響を受けます。
  4. [変更] をクリックして、新しい Windows アカウントまたはパスワードを有効にします。
  5. [パスワードの確認] ダイアログ ボックスで新しいパスワードを再度入力し、[OK] をクリックします。

    影響を受けるリソース、たとえば、指定されているグローバル リソースなどが一覧表示され、接続文字列プロパティが変更されます。

  6. リソースで Windows 認証が使われている場合は、SQL Server 認証に変更するかどうかを確認するメッセージが表示されます。続ける場合は、[OK] をクリックします。


サイトからリソースを削除する

アプリケーションで使用されていないリソースは、サイトから削除できます。

次の表は、サイトからリソースを削除するとどうなるかをまとめたものです。

リソース | 削除の対象
アプリケーション既定の構成 | 管理データベースからリソースを削除します。
プロファイル | 管理データベースからリソースを削除します。プロファイル データベースのデータは削除されません。
キャンペーン | Schema_drop.sql を実行して、ストアド プロシージャ、トリガ、およびドロップ テーブルを削除します。また、管理データベースからリソースを削除します。
CS 認証 | CS 認証のグローバル リソースへのサイトの参照を管理データベースから削除します。
データ ウェアハウス | データ ウェアハウスのグローバル リソースへのサイトの参照を管理データベースから削除します。
Commerce Server ダイレクト メーラー | ダイレクト メーラーのグローバル リソースへのサイトの参照を管理データベースから削除します。
商品カタログ | 管理データベースからリソースを削除します。
トランザクション | 管理データベースからリソースを削除します。
トランザクション構成 | 管理データベースからリソースを削除します。

サイトからリソースを削除するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. 削除するリソースを右クリックし、[削除] をクリックします。

リソースのデータが管理データベースから削除されます。Commerce Server マネージャでは、そのリソース オブジェクトは、サイトの下に表示されなくなります。グローバル リソース ポインタを削除した場合、そのポインタが指していたグローバル リソースは他のサイトから引き続き使用できます。

関連項目

リソース

サイトにリソースを追加する


データ ウェアハウス リソースを削除する

データ ウェアハウス構成ウィザードは、データベースを必要とする 2 つのリソースをアンパックします。そのリソースは、データ ウェアハウスおよびビジネス デスク アクセス許可です。

データ ウェアハウス構成ウィザードは、これらの両方のリソースを同一のデータベースに設定します。データベースの名前は、既定では <サイト名>_dw になります。したがって、データ ウェアハウスおよびビジネス デスク アクセス許可のいずれも、 データおよびストアド プロシージャを <サイト名>_dw に格納します。

データ ウェアハウスを削除し、さらに、<サイト名>_dw データベースも削除すると、ビジネス デスク アクセス許可リソースも削除されます。これは、データベースには、ビジネス デスク アクセス許可リソースのストアド プロシージャが格納されているためです。

<サイト名>_dw を削除したら、データベースを作成し直してビジネス デスク アクセス許可と関連付ける必要があります。ビジネス デスク アクセス許可を作成し直すには、Commerce Server マネージャを使ってビジネス デスク アクセス許可リソースを削除し、追加します。

注

  • <サイト名>_dw データベースを削除すると、データは失われます。削除する前に、データベースを必ずバックアップしてください。

関連項目

データ ウェアハウス構成ウィザード


アプリケーション既定の構成リソースを構成する

アプリケーション既定の構成リソースには、サイトの機能と Commerce Server ビジネス デスクの機能に影響を与えるプロパティがあります。たとえば、サポートする通貨の指定や、Commerce Server をセットアップして Microsoft BizTalk Server 2000 に統合する場合の支払い方法の指定などに、アプリケーション既定の構成リソースのプロパティを使います。

BizTalk Server を使うために アプリケーション既定の構成を構成する方法については、「Configuring Commerce Server to Work with BizTalk Server」を参照してください。サイトをローカライズする方法については、「Developing an International Site」を参照してください。

アプリケーション既定の構成リソースを構成するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション既定の構成] を右クリックし、[プロパティ] をクリックします。
  3. [プロパティ] タブで、次の操作を行います。
    項目 | 操作
    [品目の追加リダイレクト オプション] | ユーザーがバスケットに項目を追加した場合のサイト機能を指定します。現在の商品ページを続けて表示するには「1」を入力します。バスケット ページにリダイレクトするには「0」を入力します。
    [アドレス帳オプション] サイトでアドレス帳機能を有効にするかどうかを指定します。

    アドレス帳を無効にするには「0」を入力します。

    アドレス帳を読み取り専用にするには「1」を入力します。定義済みのアドレス帳がある場合は、このオプションを選択することをお勧めします。

    アドレス帳を読み取り/書き込み可能にして、ユーザーがアドレスを追加または変更できるようにするには、「2」を入力します。
    [認証マネージャの認証チケットのタイムアウト] | チケットがタイムアウトするまでの時間を、分単位で入力します。このプロパティは、Commerce Server ソリューション サイトに基づいてサイトを構築している場合にのみ使用されます。
    [BizTalk カタログの形式] | BizTalk Server がカタログのために必要とする文書の定義名 (たとえば、「CatalogTransferDoc」) を入力します。
    [BizTalk オプション] | BizTalk Server との統合を有効にして文書を交換するには「1」を入力します。統合を無効にするには「0」を入力します。
    [BizTalk 注文書の形式] | BizTalk Server が注文書のために必要とする文書の定義名 (たとえば、「PurchaseOrder」) を入力します。
    [BizTalk 送信元組織の修飾子] | BizTalk Server のこのサイト用の別名修飾子 (たとえば、「MyCompany」) を入力します。
    [BizTalk 送信元組織の修飾子の値] | BizTalk Server のこのサイト用の別名値 (たとえば、「Sender」) を入力します。
    [BizTalk 送信形式] | BizTalk Server に文書を非同期に送信するには、「1」を入力します。
    [Cookie パス訂正オプション] | アプリケーション ベースの訂正を有効にするには「1」を入力します。フィルタ ベースの訂正を有効にするには「2」を入力します。
    [通貨 : 代替通貨コード] | 代替通貨の ISO 4217 コードを入力します。
    [通貨 : 代替通貨の変換レート] | 基本通貨と代替通貨の交換に使用するレートを入力します。
    [通貨 : 代替通貨のロケール] | 代替通貨のロケールを入力します (1031 = ドイツ語、1033 = 英語、1034 = スペイン語、1036 = フランス語、1041 = 日本語)。
    [通貨 : 代替通貨オプション] | 2 つの通貨を同時に表示するには「1」を入力します。この機能を無効にするには「0」を入力します。
    [通貨 : 代替通貨記号] | 代替通貨を使用している場合は、その通貨の記号を入力します。
    [通貨 : 基本通貨コード] | 基本通貨の ISO 4217 コードを入力します。
    [通貨 : 基本通貨のロケール] | 基本通貨のロケールを入力します (1031 = ドイツ語、1033 = 英語、1034 = スペイン語、1036 = フランス語、1041 = 日本語)。
    [通貨 : 基本通貨記号] | 基本通貨の記号を入力します。
    [通貨の表示順序オプション] | 代替通貨を使用している場合、最初に基本通貨を表示するには「0」を入力します。最初に代替通貨を表示するには「1」を入力します。
    [代理管理者オプション] 取引先サービスを有効にするには「1」を入力します。取引先サービスを無効にするには「0」を入力します。

    代理管理者を作成するには、Commerce Server ビジネス デスクのユーザー モジュールで、[取引先サービス ロール フラグ] が [管理者] に設定されたユーザーを作成し、そのユーザーを特定の組織と関連付ける必要があります。

    代理管理者のサイトには、取引先サービス リンクが表示されます。取引先サービスを有効にした代理管理者は、ユーザーの管理や注文の確認など、組織の特定のタスクを実行できます。
    [フォーム ログイン オプション] サイトへのログインをユーザーに要求するタイミングを指定します。次のいずれかの値を入力します。

    0 = ログインが無効になります。ユーザーはゲストとしてのみ、サイトにアクセスできます。

    1 = ユーザーがサイトにアクセスした時点でログインを要求します。

    2 = ユーザーがサイトにアクセスした時点で、ログインするかどうかを選択できます。

    5 = 購入時にログインを要求します。

    6 = ユーザーはどの時点でもログインするかどうかを選択できます。

    7 = ユーザーに IIS 認証を要求します。

    このプロパティは、Commerce Server ソリューション サイトに基づいてサイトを構築している場合にのみ使用されます。
    [ホスト名訂正オプション] | ホスト名訂正を有効にするには「1」を入力します。この機能を無効にするには「0」を入力します。
    [ページ エンコーディング文字セット] | サイトで使用する文書エンコード用文字セットを指定します (Windows - 1252 など)。
    [支払いオプション] | 注文の支払いをクレジット カードで行う場合には「1」を入力します。アカウント課金で行う場合には「4」を入力します。両方のオプションを有効にするには「5」を入力します。
    [サイト既定のロケール] | このサイトのロケールを入力します (1031 = ドイツ語、1033 = 英語、1034 = スペイン語、1036 = フランス語、1041 = 日本語)。
    [サイト プライバシ オプション] 匿名ユーザーのプロファイルを作成するには「1」を入力します。匿名ユーザーのプロファイルを作成し、サイトへの訪問を追跡するには「2」を入力します。

    このプロパティは、Commerce Server ソリューション サイトに基づいてサイトを構築している場合にのみ使用されます。
    [サイト登録オプション] 自動登録を有効にするには「1」を入力します。この機能を無効にするには「2」を入力します。

    このプロパティは、Commerce Server ソリューション サイトに基づいてサイトを構築している場合にのみ使用されます。
    [サイト チケット オプション] ユーザー チケットを URL に配置するには「1」を入力します。ユーザー チケットを cookie に配置するには「2」を入力します。

    このプロパティは、Commerce Server ソリューション サイトに基づいてサイトを構築している場合にのみ使用されます。
    [SMTP サーバー名] | Simple Mail Transfer Protocol (SMTP) サーバーの名前を入力します。
    [重量測定単位] | 商品の送料を計算するための測定単位を入力します。
  4. [OK] をクリックします。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  • ソリューション サイトで認証にアプリケーション既定の構成リソースを使用する方法については、『Commerce Server 2000 リソース キット』を参照してください。

関連項目

リソース

Integrating with BizTalk Server

Configuring Commerce Server to Work with BizTalk Server


Commerce サイトの管理

Commerce Server マネージャに表示されている Commerce Sites コンテナは、Commerce Server のインストール時に作成されます。サイトをアンパックすると、サイト インスタンスがパッケージからサイトごとに作成され、コンテナ内のサブフォルダとして表示されます。サイトとサイト リソースの追加には、Commerce Server マネージャと Commerce Server サイト パッケージャを使います。

ここでは、次のトピックについて説明します。

  • サイトを追加する Commerce Server にサイトを追加する方法について説明します。
  • サイトを削除する Commerce Server からサイトを削除する方法について説明します。


サイトを追加する

Commerce Server サイト パッケージャを使ってサイトをアンパックして、Commerce Server にサイトを追加します。操作方法については、「サイトをアンパックする」を参照してください。

Commerce Server では、アンパックできるサイトの数には制限がありません。サイトでサポート可能なアプリケーションの数については、このトピックで説明します。

Commerce Server 2002 Standard Edition

Standard Edition では、次の規模まで拡張できます。

  • 2 基のプロセッサ。
  • 1 アプリケーションあたり 2 つの Web サーバー。1 台の IIS Web サーバーで、最大 10 のアプリケーションをサポートできます。
  • 各サイトに 2 つの Commerce Server アプリケーション。ビジネス デスク アプリケーション 1 つと非ビジネス デスク アプリケーション 1 つ。たとえば、Retail ソリューション サイト アプリケーションまたは Commerce 以外のアプリケーションをインストールし、さらにビジネス デスク アプリケーションをインストールすることができます。
  • 1 データ ウェアハウスあたり 10 サイト。
  • 1 プロファイル データベースあたり 10 サイト。

Commerce Server 2002 Enterprise Edition

Enterprise Edition では、次の規模まで拡張できます。

  • 32 基のプロセッサ。
  • ハードウェアがサポートする数だけWeb サーバーと Commerce Server アプリケーションを追加できます。1 台の IIS Web サーバーで、最大 10 のアプリケーションをサポートできます。アプリケーションは、1 つのサイトに含めるか、複数のサイトに分散できます。
  • 1 データ ウェアハウスあたり 10 サイト。
  • 1 プロファイル データベースあたり 10 サイト。

関連項目

サイト間でリソースを共有する

複数のサイトと 1 つのデータ ウェアハウス


サイトを削除する

サイトを削除すると、サイト構成データが管理データベースから削除されます。一度削除したサイトは元に戻せません。

サイトを削除するには

サイトで使用されているデータベースを削除するには

サイトの OLAP データベースを削除するには

サイトの仮想ディレクトリを削除するには

サイトのフォルダとファイルを削除するには

ダイレクト メーラー ジョブを削除するには

サイトを削除するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。
  3. 削除するサイトを右クリックし、ボックスの一覧から [削除] を選択します。

サイトで使用されているデータベースを削除するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。

    注

    • SQL Server Enterprise Manager で、SQL Server が実行されていることを確認します。SQL Server が実行されている場合は、[Enterprise Manager] ウィンドウのアイコンが緑色を示しています。実行されていない場合は、SQL Server のコンピュータ名を右クリックし、[開始] をクリックします。
  2. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server Group\SQL Server Name\Databases
  3. 削除するデータベースを右クリックし、[すべてのタスク] をクリックします。次に、[データベースのデタッチ] をクリックします。
  4. [データベースのデタッチ] ダイアログ ボックスで、[消去] をクリックし、[OK] をクリックします。削除するデータベースすべてについて、この手順を繰り返します。

    最初にデータベースを切り離すことにより、接続文字列を削除できます。

  5. Windows エクスプローラを使って、フォルダ \Program Files\Microsoft SQL Server\MSSQL\Data に移動し、データベース ファイルを削除します。

    重要

    • データベースを切り離したら、データベース ファイルを削除する必要があります。削除しないと、Commerce Server のインストールが正しく機能しません。

サイトの OLAP データベースを削除するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントし、[Microsoft SQL Server] をポイントします。次に [Analysis Services] をポイントして、[分析マネージャ] をクリックします。
  2. ノードを展開して次のパスを開きます。\Analysis Servers\SQL Server Name
  3. 削除するデータベースを右クリックし、[削除] をクリックします。
  4. 削除するデータベースごとに [はい] をクリックし、フォルダの削除を確認します。
  5. 削除するデータベースごとに 3. と 4. を繰り返します。

サイトの仮想ディレクトリを削除するには

  1. [スタート] ボタンをクリックし、[管理ツール] をポイントします。次に [インターネット サービス マネージャ] をクリックします。
  2. ノードを展開して次のパスを開きます。\<コンピュータ名>\<IIS Web サイト名>
  3. 削除する仮想ディレクトリ (Retail や Supplier など) を右クリックし、[削除] をクリックします。
  4. 削除する仮想ディレクトリごとに [はい] をクリックします。
  5. 削除する仮想ディレクトリごとに 3. と 4. を繰り返します。

サイトのフォルダとファイルを削除するには

  1. Windows エクスプローラで、サイトのファイルがインストールされているディレクトリ (C:\Inetpub\wwwroot など) を表示します。
  2. 削除するフォルダを右クリックし、[削除] をクリックします。
  3. 削除するフォルダごとに [はい] をクリックします。
  4. 削除するフォルダごとに 2. と 3. を繰り返します。

ダイレクト メーラー ジョブを削除するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server Group\SQL Server Name\Management\SQL Server Agent\Jobs
  3. SQL Server Enterprise Manager の右側のウィンドウに、ダイレクト メーラー ジョブが表示されます。
  4. 削除するダイレクト メーラー ジョブを選択し、ツール バーの [削除] をクリックします。

関連項目

サイトからリソースを削除する

サイトからアプリケーションを削除する

アプリケーションから Web サーバーを削除する


Commerce アプリケーションと Web サーバーの管理

ここでは、アプリケーションと Web サーバーを追加および管理する方法について説明します。これらの手順を実行する前に、Commerce Server をインストールし、サイトをアンパックしておく必要があります。

ここでは、次のトピックについて説明します。

  • サイトにアプリケーションを追加する サイトにアプリケーションを追加する方法について説明します。
  • サイトにビジネス デスク アプリケーションを追加する サイトにビジネス デスク アプリケーションを追加する方法について説明します。
  • アプリケーションを構成する アプリケーションを構成する方法について説明します。
  • アプリケーションに Web サーバーを追加する アプリケーションに最初の Web サーバーを追加する方法について説明します。
  • 別の Web サーバーを追加する アプリケーションにさらに Web サーバーを追加する方法について説明します。
  • Web サーバーを構成する Web サーバーを構成する方法について説明します。
  • Web サーバーのログ ファイル マスクを指定する Web サーバーを構成するときに Commerce Server マネージャを使ってログ ファイル マスクを設定する方法について説明します。
  • ドメイン名を指定する Commerce Server でのアプリケーション名の付け方と、アプリケーション名の変更方法について説明します。
  • メモリからアプリケーションをアンロードする メモリからアプリケーションをアンロードする方法について説明します。
  • IIS と Commerce Server サービスを再起動する CS 認証リソースのプロパティ変更に必要なインターネット インフォメーション サービス (IIS) 5.0 を停止および再起動する方法について説明します。
  • サイトからアプリケーションを削除する サイトからアプリケーションを削除する方法について説明します。
  • アプリケーションから Web サーバーを削除する アプリケーションから Web サーバーを削除する方法について説明します。
  • Web サーバーを自動的に追加する Web サーバーがアプリケーションに自動的に追加されるしくみについて説明します。
  • サイトに非 Commerce アプリケーションを追加する Commerce Server コンポーネントを使用しないアプリケーションと Web サーバーを追加する方法について説明します。
  • アプリケーションに非 Commerce の Web サーバーを追加する


サイトにアプリケーションを追加する

アプリケーションとは、Active Server Pages (ASP) スクリプトおよびコンポーネントの集まりであり、Web サイトに対する処理を実行します。アプリケーション領域は、Web クライアントがアクセスする Web アドレスを表しています。Commerce Server にアプリケーションを追加すると、そのアプリケーションの構成データを使って、管理データベースが更新されます。アプリケーションに Web サーバーを追加すると、Web サーバー コンピュータに ASP ファイルがインストールされます。

Commerce Server サイトをアンパックすると、通常、2 つのアプリケーションがインストールされます。1 つはユーザーがアクセスする Web サイト用のアプリケーションで、もう 1 つはそのサイトの管理に使用する Commerce Server ビジネス デスク用のアプリケーションです。アプリケーションが使用できるのは、そのアプリケーションが属する Commerce サイトのリソースだけです。

アプリケーションにはそれぞれ独自の Web サーバーがあり、Web サーバーは Web サイト用の ASP ページのコンテンツを提供します。複数の Web サーバーが含まれているアプリケーションもありますが、どのアプリケーションにも少なくとも 1 つの Web サーバーが含まれています。アプリケーションは、インターネット インフォメーション サービス (IIS) Web サイトのルート レベル、またはルートの下の任意レベルの仮想ディレクトリに設定できます。

注

  • 次の手順でサイトを追加するには、サイトに追加するアプリケーションを含むパッケージ ファイルをあらかじめ作成しておくか、またはソリューション サイトを使います。パッケージ ファイルを作成する手順については、「サイト パッケージャを使う」を参照してください。

サイトにアプリケーションを追加するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] をクリックし、[アプリケーション] を右クリックします。次に [新規] をポイントし、[アプリケーションの追加] をクリックします。
  3. [アプリケーションの追加元] ダイアログ ボックスで、サイトに追加するアプリケーションが含まれているパッケージを選択し、[開く] をクリックします。

    Commerce Server サイト パッケージャが起動します。

  4. [アプリケーションの選択] ダイアログ ボックスで、アンパックするアプリケーションが選択されていることを確認し、[次へ] をクリックします。
  5. [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスで、IIS アプリケーションのパスと仮想ディレクトリが正しいことを確認し、[次へ] をクリックします。
  6. [アンパックが完了しました。] ダイアログ ボックスで、作成された SQL Server データベースと IIS アプリケーションの一覧を確認します。サイト パッケージャの実行中に発生したイベントの一覧を参照するには、[ログ ファイルの表示] をクリックします。
  7. [終了] をクリックし、サイト パッケージャを閉じます。

アプリケーションを追加した後は、アプリケーションの保護なしのホスト名 (または保護付きのホスト名) を ドメイン ネーム システム (DNS) サーバーに設定されているドメイン名 (www.microsoft.com など) に変更する必要があります。詳細については、「ドメイン名を指定する」を参照してください。

関連項目

サイトにビジネス デスク アプリケーションを追加する

ドメイン名を指定する

サイト パッケージャを使う

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする


サイトにビジネス デスク アプリケーションを追加する

Commerce Server には、各ソリューション サイトのビジネス デスク アプリケーションが含まれています。ソリューション サイトをアンパックする場合は、ビジネス デスク アクセス許可リソースをアンパックし、データベースの接続文字列を設定してから、ビジネス デスク アプリケーションをアンパックします。これにより、ビジネス デスク アプリケーションがサイトに追加されます。

次の状況で、サイトにビジネス デスク アプリケーションを追加することができます。

  • 元のビジネス デスク アプリケーションを使っている状態で、2 つ目のアプリケーションをオフラインでカスタマイズします。開発が終了したら、カスタマイズしたビジネス デスク アプリケーションをサイトに追加でき、これにより、既存のアプリケーションが置き換えられます。
  • サイト用のビジネス デスク アプリケーションは 2 つあります。1 つは準備環境用にカスタマイズしたビジネス デスクです。もう 1 つは運用環境用にカスタマイズしたビジネス デスクです。たとえば、運用環境のビジネス デスクでは、カタログ モジュールを除外する場合があります。この場合、カタログは最初にテストしてから更新することが必要です。

各ビジネス デスク アプリケーションには、ビジネス デスク アクセス許可リソースを検出するオブジェクトがあります。既定では、サイトのすべてのビジネス デスク アプリケーションで、同じアクセス許可の設定が共有されます。各ビジネス デスク アプリケーションに対して個別にアクセス許可の設定を保守するには、サイトを別々に作成して、それぞれのサイトに固有のセキュリティ データベースおよびビジネス デスク アクセス許可リソースを配置します。

カスタマイズしたビジネス デスク アプリケーションをサイトに追加するには

  1. 新しいビジネス デスク アプリケーションを .pup ファイルにパッケージ化します。手順については、「サイトをパッケージ化する」を参照してください。
  2. 新しいビジネス デスク アプリケーションをアンパックして、サイトに追加します。手順については、「サイトにアプリケーションを追加する」を参照してください。
  3. 必要に応じて、カスタマイズした ASP ファイルを、元のビジネス デスク アプリケーションから新しいビジネス デスク アプリケーションに手動で移行します。
  4. ビジネス デスクのアクセス許可モジュールを使って、ビジネス デスクのユーザー インターフェイスの追加機能にセキュリティを設定します。操作手順については、「Windows アカウントに対してビジネス デスク アクセス許可を設定する」を参照してください。
  5. ビジネス デスクのすべてのユーザーに、新しいビジネス デスク クライアントをインストールするように連絡します。
  6. 元のビジネス デスク アプリケーションを削除します。

ビジネス デスク アプリケーションに新しいビジネス デスク モジュールを追加する方法については、「Automating Module Installation」を参照してください。


アプリケーションを構成する

アプリケーションを構成するときは、そのアプリケーションで使用するすべての Web サーバーに適用されるプロパティを指定します。

Web サーバーをアプリケーションに追加すると、一部のプロパティは自動的にインターネット インフォメーション サービス (IIS) 5.0 から読み込まれ、管理データベースに格納されます。IIS 側のプロパティを変更した場合は、管理データベースを IIS メタベースと同期させる必要があります。それには、Commerce Server マネージャを使って手動で新しいプロパティを更新するか、またはアプリケーションの [プロパティ] ダイアログ ボックスを表示し、[Web サーバー] タブの [値の同期] をクリックします。

[値の同期] を使用できるのは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [全般] タブで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスをオンにし、かつ、IIS のユーザー インターフェイスを使用して変更を行った場合に限られます。[値の同期] を使用すると、Commerce Server マネージャと IIS を同期させることができます。

重要

  • [値の同期] ボタンをクリックすると、アプリケーション レベルのプロパティと、そのアプリケーションの下にあるすべての Web サーバー オブジェクトのプロパティが同期します。アプリケーション レベルのプロパティについては、最初の Web サーバーのプロパティの値が読み込まれます。Web サーバーはすべて同じ設定になっていると見なされます。Web ファームのサーバーはすべて同じ設定でなければ正常に動作しないからです。

アプリケーションの保護なしのホスト名 (または保護付きのホスト名) を、ドメイン ネーム システム (DNS) サーバーに設定されているドメイン名 (www.microsoft.com など) に変更する方法については、「ドメイン名を指定する」を参照してください。

アプリケーションを構成するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、設定するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. [<アプリケーション> のプロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [保護なしのホスト名] アプリケーションの保護なしのリンクで使用する DNS ドメイン名を入力します。

    注意

    • 80 以外のポート番号を使用している場合は、保護なしのホスト名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:81」とします。ポート番号の表示や編集を行うには、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、[TCP ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。
    [IIS アプリケーション パス] | IIS アプリケーションのパスを入力します。
    [HTTPS を有効にする] アプリケーションの保護付きの HTTP ホスト (SSL) へのリンクを有効にするには、このプロパティを選択します。

    認証マネージャではこのプロパティが使用されます。認証フィルタではこのプロパティは使用されません。認証フィルタを使用する場合は、CS Authentication のログイン フォームのプロパティを使用して、ログイン ページ用の SSL を指定します。詳細については、「CS 認証リソースのプロパティを設定する」を参照してください。
    [保護付きのホスト名] アプリケーションの保護付きのリンクで使用する DNS ドメイン名を入力します。

    注意

    • 443 以外のポート番号を使用している場合は、保護付きのホスト名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:441」とします。SSL ポート番号の表示や編集を行うには、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、[SSL ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。

    認証マネージャではこのプロパティが使用されます。認証フィルタではこのプロパティは使用されません。認証フィルタを使用する場合は、CS Authentication のログイン フォームのプロパティを使用して、ログイン ページ用の SSL を指定します。詳細については、「CS 認証リソースのプロパティを設定する」を参照してください。
    [自動 cookie] | 匿名ユーザー用の cookie を生成する場合には、このプロパティを選択します。このプロパティは、アンパック時に設定されます。サイトに認証を設定する方法については、「サイトのセキュリティ設定」を参照してください。
    [認証フィルタ] 使用する認証フィルタの種類をボックスの一覧から選択します。選択できるオプションは次のとおりです。
    • [フィルタなし]
    • [Windows 認証]
    • [カスタム認証]

    サイトに認証を設定する方法については、「サイトのセキュリティ設定」を参照してください。
    [アプリケーションに cookie のパスを設定] | サイト内のアプリケーション間で cookie を共有する場合には、このオプションを選択します。
    [共有ドメイン レベルの数] | cookie を共有する必要があるドメイン レベルのアプリケーションの数を指定します。たとえば、premier.microsoft.com と msn.microsoft.com で microsoft.com という cookie を共有する場合には、このオプションの値を 2 に設定します。
  4. [Web サーバー] タブの [値の同期] をクリックして、IIS から Commerce Server 管理データベースにプロパティをコピーします。

    注

    • [値の同期] を使用できるのは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [全般] タブで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスをオンにし、かつ、IIS のユーザー インターフェイスを使用して変更を行った場合に限られます。

    または、次の操作を行います。

    項目 | 操作
    [IIS Web サイト] | IIS Web サイトの名前 (Default Web Site など) を入力します。
    [ローカル ドメイン] | ローカル ドメインの名前 (microsoft.com など) を入力します。
  5. [OK] をクリックします。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

関連項目

Web サーバーを構成する

サイトのセキュリティ設定

ドメイン名を指定する


アプリケーションに Web サーバーを追加する

アプリケーションに Web サーバーを追加する場合、そのアプリケーションの .asp、.htm、.gif などのファイルを Web サーバー コンピュータに追加することになります。Web サーバー コンピュータには、インターネット インフォメーション サービス (IIS) 5.0 と Commerce Server がインストールされていなければなりません。

アプリケーションに Web サーバーを追加するには、Commerce Server サイト パッケージャを使います。Web サーバーをアプリケーションに追加すると、Commerce Server マネージャのアプリケーション ノードの下に、Commerce Web サーバー オブジェクトが表示されます。Web サーバー オブジェクトには、データ ウェアハウスにログ ファイルをインポートするために必要なプロパティが含まれています。たとえば、サーバー名、Internet Protocol (IP) アドレス、ログ ファイルのパス、ログ記録の間隔などのプロパティです。これらのプロパティは、Commerce Web サーバー オブジェクトをアプリケーションに追加するときに、IIS から自動的に読み込まれます。

新しい Web サーバーは、サイト パッケージャを使わずにアプリケーションに追加することもできます。サイト パッケージャの代わりに、Microsoft Application Center 2000 を使って Commerce Server ファイルを Web サーバーに配置するか、手動で Commerce Server ファイルを Web サーバーにコピーします。詳細については、「サイト パッケージャを使わずに Web サーバーを追加する」を参照してください。

注

  • アンパック先のコンピュータに対するアクセス許可を持っていることを確認してください。
  • 次の手順でアプリケーションに Web サーバーを追加するには、そのアプリケーションの ASP ファイルが含まれているパッケージ ファイルをあらかじめ作成しておくか、またはソリューション サイトを使います。パッケージ ファイルを作成する手順については、「サイト パッケージャを使う」を参照してください。

アプリケーションに Web サーバーを追加するには

  1. アプリケーションに追加する Web サーバー コンピュータで、[Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] を展開し、Web サーバーを追加するアプリケーションの名前を右クリックします。次に、[新規作成] をポイントし、[Web サーバーの追加] をクリックします。

    [Web サーバーの追加元] ダイアログ ボックスが表示され、Commerce Server サイト パッケージャ ファイル (拡張子が .pup のファイル) の一覧が示されます。

  3. [Web サーバーの追加元] ダイアログ ボックスで、アンパックのためのファイルが含まれるフォルダを開き、ファイルを選択して [開く] をクリックします。

    サイト パッケージャが起動します。

  4. [IIS Web サイトおよび仮想ディレクトリを選択します] ダイアログ ボックスで、IIS アプリケーションのパスと仮想ディレクトリが正しいことを確認し、[次へ] をクリックします。

    Web サーバー ファイルが Web サーバーに追加され、選択したアプリケーションに Commerce Web サーバー オブジェクトが追加されます。Commerce Server マネージャを開くと、アプリケーションの下に Commerce Web サーバー オブジェクトが表示されます。

  5. [アンパックが完了しました] ダイアログ ボックスで、作成された SQL データベースと IIS アプリケーションの一覧を確認します。Pup.log ファイルのイベントの一覧を参照するには、[ログ ファイルの表示] をクリックします。
  6. [終了] をクリックし、サイト パッケージャを閉じます。

関連項目

Web サーバーを構成する

別の Web サーバーを追加する


別の Web サーバーを追加する

アプリケーションに他の Web サーバーを追加する場合、すべての Web サーバーが同じ構成である必要があるため、アンパック処理時にアプリケーションの構成情報を変更することはできません。Commerce Server サイト パッケージャは、アプリケーションがインストールされるインターネット インフォメーション サービス (IIS) 5.0 Web サイトの名前と、各 Commerce アプリケーションの IIS アプリケーション パスを表示します。

管理データベースのサイトに既に存在するアプリケーションのアンパックを選択すると、Commerce Server サイト パッケージャはそのアプリケーションに Web サーバーを追加するものと見なします。

関連項目

クラスタ構成の 4 台のコンピュータにインストールする

非クラスタ構成の 3 台のコンピュータにインストールする

アプリケーションに Web サーバーを追加する


Web サーバーを構成する

Commerce Server マネージャに表示される Commerce Web サーバー オブジェクトには、データ ウェアハウスにログ ファイルをインポートするために必要となるプロパティが含まれています。Web サーバーをアプリケーションに追加すると、これらのプロパティは自動的にインターネット インフォメーション サービス (IIS) 5.0 から読み込まれ、管理データベースに格納されます。

注

  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスがオンになっている場合は、[新しいログ期間] プロパティと [ログ ファイル マスク] プロパティのどちらか一方のみ設定できます。両方を同時に使用することはできません。
  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [ログ ファイル名と場所の同期] チェック ボックスがオンになっている場合、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ログ ファイルのディレクトリ] ボックスの値は IIS の値で上書きされます。
  • [値の同期] を使用できるのは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [全般] タブで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスをオンにし、かつ、IIS のユーザー インターフェイスを使用して変更を行った場合に限られます。[値の同期] を使用すると、Commerce Server マネージャと IIS を同期させることができます。

Web サーバーを構成するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、構成する Web サーバーが含まれているアプリケーションを展開します。次に、Web サーバー オブジェクトを右クリックし、[プロパティ] をクリックします。
  3. [<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、次の操作を行います。
    項目 | 操作
    [サーバー名] | Web サーバーがインストールされているコンピュータの名前を入力します。サーバー名を変更した場合にだけ、この値を変更してください。
    [ID] | このボックスには、Web サーバーについて、インターネット プロトコル (IP) アドレス、TCP ポート、ホスト ヘッダー名が表示されます。これらの値は、最初は IIS から読み込まれます。
    [SSL ID] | このボックスには、Web サーバーの IP アドレスと SSL ポートが表示されます。これらの値は、最初は IIS から読み込まれます。
  4. [ログ ファイル] タブで、次の操作を行います。
    項目 | 操作
    [新しいログ期間] | IIS Web サイトが、ログ ファイルへの書き込みを始めてから新しいログ ファイルを作成するまでの間隔を指定します。この値は、最初は IIS から読み込まれます。
    [ログ ファイル マスク] | 必要に応じて、独自の交換を指定します。ログ ファイルの交換とは、IIS Web サイトが、ログ ファイルを書き込み始めてから新しいログ ファイルを作成するまでの間隔を示します。このボックスでの指定例など、詳細については「Web サーバーのログ ファイル マスクを指定する」を参照してください。
    [ログ ファイルのディレクトリ] | IIS Web サイトで発生したイベントが記録されるログ ファイルのパスを入力します。たとえば、「C:\Winnt\System32\LogFiles\Log1」とします。この値は、最初は IIS から読み込まれます。ただし、Web のログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、インポート DTS タスクを実行する前に、ここでディレクトリを指定しておいてください。
    [ログ ファイルのコード ページ] このボックスには、ログ ファイルのコード ページが表示されます。

    IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。
    [URL エンコーディングのコード ページ] このボックスには、すべての URL で使われるコード ページが表示されます。

    IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。
  5. [OK] をクリックします。


Web サーバーのログ ファイル マスクを指定する

ログ ファイル マスクとは、時間の経過と共に交換される、またはファイル サイズに基づく、Web サーバーのログ ファイル名を指定するプロパティです。たとえば、インフォメーション サービス (IIS) ログ ファイルを毎日交換させる場合には exyymmdd.log と指定します。このように指定すると、ログ ファイル名は、"ex" というプレフィックス、2 桁の年、2 桁の月、および 2 桁の日で構成されます。ログ ファイル マスクの設定は、Web サーバーを構成するときに Commerce Server マネージャを使って行います。

ログ ファイル マスクの末尾には拡張子を追加する必要があります。たとえば、ほとんどの場合、末尾に ".log" を追加します。

ログ ファイル マスクのルール

  • 固定文字列をログ ファイル マスクの任意の位置に追加できます。
  • ディレクトリ レベルのマスクがサポートされます。
  • 次の文字は使うことができません。 : | * ? < > / "
  • マスク内でログ ファイルの交換を指定できます。次の表は、交換を指定するログ ファイル マスクの値を示しています。
    ログ ファイル マスク | 説明 | 例
    0 | 拡張ファイル名
    1 | IIS の毎日の交換 | ex$y$m$d.log
    2 | IIS の毎週の交換 | ex$y$m$w.log
    3 | IIS の毎月の交換 | ex$y$m.log
    4 | IIS の毎時の交換 | ex$y$m$d$h.log

次の表は、ログ ファイル マスクを指定するときに使用する文字を示しています。

文字 | 説明
$M | 月の正式な名前 (英語名のみサポート)
$m | 月 (01 ～ 12)
$d | 日 (01 ～ 31)
$h | 時 (00 ～ 23)
$y | 2 桁の年 (00 ～ 99)
$Y | 4 桁の年
$w | 月の週 (01 ～ 05)
$n | IIS の拡張ログ ファイル名をサポートする連番として使用 (1 桁の数のみ)
$N | $n と同様だが 1 桁の数だけでなく複数桁の数が使用可能 ファイル拡張子の直前のマスクに指定する必要があります。 $N の前に指定できるのは、数値で始まらない文字列です。

ログ ファイル マスクの例

例 1

IIS W3C 拡張ログ ファイルの名前を変更して、サーバー名をログ ファイル名のプレフィックスとする場合、毎日の交換のログ ファイル名は次のようになります。

Server1_ex010810.log

Server1_ex010811.log

これらのログ ファイルをインポート用に取得するには、[ログ ファイル マスク] ボックスに「Server1_ex$y$m$d.log」と入力します。

例 2

[IIS ログ プロパティ] の [ファイル サイズを限定しない] オプションまたは [ファイルサイズが次のバイト数に達したとき] オプションを選択した場合は、ファイル名は extend#.log の形式 (extend1.log、extend2.log など) です。

これらのログ ファイルをログ インポート用に取得するには、[ログ ファイル マスク] ボックスに「extend$n.log」と入力します。

例 3

[ログ ファイル マスク] ボックスには、ディレクトリも入力できます。たとえば、フォルダ e:\logs\server1\extend1.log からログ ファイルを取得するには、[ログ ファイル マスク] ボックスで次のいずれかを指定します。

  • ログのパスが e:\logs\server1\ の場合は、「extend$n.log」と入力します。
  • ログのパスが e:\logs\ の場合は、「server1\extend$n.log」と入力します。
  • ログのパスが e:\logs\ の場合は、「server$n\extend$n.log」と入力します。

関連項目

アプリケーションを構成する

サイトに非 Commerce のアプリケーションを追加する


ドメイン名を指定する

アプリケーションの保護なしのホスト名 (または保護付きのホスト名) を ドメイン ネーム システム (DNS) サーバーに設定されているドメイン名 (www.microsoft.com など) に変更する必要があります。DNS からドメイン名が自動的に読み込まれることはありません。その代わりに、コンピュータ名が既定のドメイン名として使われます。次の手順で、Commerce Server にドメイン名を付与する必要があります。

アプリケーションの名前は、初めてサイトをアンパックしたときに、コンピュータ名 (Server1 など) と、アンパック時に指定したインターネット インフォメーション サービス (IIS) 5.0 のアプリケーション パス (/msn など) をつなげた形で付けられます。したがって、アプリケーション名は Server1/msn のようになります。

サイトの各アプリケーションについて、アプリケーションの名前をドメイン名を基に変更する必要があります。www.microsoft.com/msn というアプリケーションの場合、ドメイン名が www.microsoft.com で、IIS アプリケーション パスが /msn です。

ドメイン名を指定するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトをクリックします。
  2. [アプリケーション] を展開し、名前を変更するアプリケーションを右クリックします。次に、[プロパティ] をクリックします。
  3. [<サイト> のプロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 操作
    [保護なしのホスト名] ドメイン名を入力します。DNS サーバーに表示される名前と同じにします (たとえば、「www.microsoft.com」 などに変更します)。

    注意

    • 80 以外のポート番号を使用している場合は、保護なしのホスト名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:81」とします。ポート番号の表示や編集を行うには、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、[TCP ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。
    [IIS アプリケーション パス] IIS アプリケーションのパスを入力します。たとえば、www.microsoft.com/msn というアプリケーションの場合、IIS アプリケーション パスは /msn になります。

    注意

    • このプロパティの値を変更した場合は、変更後の値に合わせて、Web サーバー上のファイルの場所を変更する必要があります。また、IIS の設定も、変更後のアプリケーションに合わせる必要があります。
  4. [OK] をクリックします。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。


メモリからアプリケーションをアンロードする

Commerce Server の各サイトは、インターネット インフォメーション サービス (IIS) 5.0 の下にあるアプリケーションです。Commerce Server マネージャでプロパティ値を変更した場合、その変更を有効にするには、IIS アプリケーションを各 Web サーバーのメモリからアンロードする必要があります。Commerce Server の global.asa ファイルで作成されたキャッシュは解放されます。次回サイトへの訪問者があったときに、リソースのプロパティが再び読み込まれ、キャッシュにロードされます。

メモリからアプリケーションをアンロードすることと、IIS を再起動すること、または IISReset コマンドを使うこととは異なります。IIS を再起動するとすべての Web アプリケーションはメモリからアンロードされ、IIS サービスが再起動し、キャッシュが更新されます。下で説明する操作を使ってメモリからアプリケーションをアンロードする利点は、プロパティの変更を有効にするためにWebサーバー上のすべてのアプリケーションを停止する必要がないことです。ただし、特定の設定を変更した場合は、IIS サービスやその他のサービスを再起動する必要があります。詳細については、「IIS と Commerce Server サービスを再起動する」を参照してください。

次のタスクを実行した後は、アプリケーションをメモリからアンロードする必要があります。

  • グローバル リソースの構成
  • サイト リソースの構成
  • アプリケーション既定の構成の構成
  • アプリケーションの構成
  • ドメイン名の設定

重要

  • CS 認証はグローバル リソースであるため、CS 認証リソースを変更した場合は、IIS を再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。

メモリからアプリケーションをアンロードするには

  1. IIS スナップインで、IIS Web サイトのルート、またはアプリケーションの開始点となるディレクトリを選択します。
  2. ディレクトリ (既定の Web サイトなど) を右クリックし、[プロパティ] をクリックします。次に、[ホーム ディレクトリ] タブをクリックします。

    注

    • [アンロード] ボタンが利用できない場合は、アプリケーションの開始点となるディレクトリが正しく選択されていないか、アプリケーションが既にアンロードされています。
  3. [アンロード] をクリックします。

    次のメッセージが表示される場合があります。"このアプリケーションをアンロードすることでアプリケーション プールにあるすべてのアプリケーションをアンロードすることになります。続行しますか?"

  4. メッセージが表示された場合は、[はい] をクリックします。

メモリからアプリケーションがアンロードされます。次回サイトへの訪問者があったときに、アプリケーションがメモリにロードされ、新しいプロパティ値が読み込まれます。

関連項目

IIS と Commerce Server サービスを再起動する

グローバル リソースを構成する

サイト リソースを構成する

アプリケーション既定の構成リソースを構成する

アプリケーションを構成する

ドメイン名を指定する


IIS と Commerce Server サービスを再起動する

CS 認証リソースが使用するプロパティに変更を加えたときは、インターネット インフォメーション サービス (IIS) 5.0 を停止して再起動する必要があります。同様に、Commerce Server マネージャを使用して Commerce Server グローバル リソースに変更を加えたときは、CS サービスを再起動して有効にする必要があります。

ここでは、次の操作について説明します。

  • IIS を再起動する
  • CS サービスを再起動する

IIS を再起動する

CS 認証リソースが使用するプロパティに変更を加えたときは、IIS を停止して再起動する必要があります。IIS を再起動するとすべての Web アプリケーションはメモリからアンロードされ、IIS サービスが再起動し、キャッシュが更新されます。したがって、IIS を再起動するときは、アプリケーションをメモリからアンロードする必要はありません。

CS 認証リソースで次のいずれかのタスクを実行した場合は、IIS を再起動する必要があります。

  • CS 認証リソースのプロパティの構成
  • ドメイン/アプリケーションで共有する cookie の有効化
  • 認証フィルタの有効化
  • 認証フィルタの無効化

注

  • IISReset コマンドを使って IIS を再起動しないでください。IISReset コマンドは IIS を停止して再起動しますが、特定の条件下ではInetinfo.exe (W3SVC サービス) を停止して再起動しません。たとえば、W3SVC サービスが自動ではなく手動で起動するように構成されている場合は、IISReset コマンドでは再起動できません。

IIS を再起動するには

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「net stop iisadmin」と入力し、[OK] をクリックします。
  3. 「この操作を続行しますか?」というメッセージが表示されたら「Y」を入力し、Enter キーを押します。

    IIS が停止します。iisadmin サービスおよび w3svc サービスのいずれも、上の手順 3. で示したコマンドによって停止されることに注意してください。

  4. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  5. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「net start w3svc」と入力し、[OK] をクリックします。

    IIS が起動します。iisadmin サービスおよび w3svc サービスのいずれも再起動されることに注意してください。

CS サービスを再起動する

Commerce Server マネージャを使用して Commerce Server グローバル リソースに変更を加えたとき (下の図を参照) は、CS サービスを再起動して有効にする必要があります。たとえば、Commerce Server 予測のプロパティを変更した場合は、PredictorService サービスを再起動する必要があります。

サービスの表示名 | サービス名
Commerce Server Predictor | PredictorService
Commerce Server Direct Mailer | DMLService
Commerce Server List Manager | ListManager

これらのサービスに対する変更を有効にしてサイトに適用するには、変更したサービスを再起動する必要があります。

予測、ダイレクト メーラー、リスト マネージャのサービスを再起動するには、次の操作を行います。

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「net stop <サービス名>」と入力し、[OK] をクリックします。

    注

    • <サービス名> は、Commerce Server サービスの名前です。上の表を参照してください。

    Commerce Server サービスが停止します。

  3. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  4. [ファイル名を指定して実行] ダイアログ ボックスの [名前] ボックスに「net start <サービス名>」と入力し、[OK] をクリックします。

    注

    • <サービス名> は、Commerce Server サービスの名前です。上の表を参照してください。

    Commerce Server サービスが起動します。

関連項目

メモリからアプリケーションをアンロードする

CS 認証リソースのプロパティを設定する

cookie の共有

Retail ソリューション サイトの認証フィルタを有効にする

Supplier ソリューション サイトで認証フィルタを有効にする

認証フィルタを無効にする


サイトからアプリケーションを削除する

サイトからアプリケーションを削除すると、管理データベースからそのアプリケーションのデータが削除されます。Web サーバーのファイルは削除されません。また、インターネット インフォメーション サービス (IIS) 5.0 の設定値も削除されません。

サイトからアプリケーションを削除する前に、そのアプリケーションに関連付けられた Commerce Web サーバーを削除しておく必要があります。Web サーバーを削除する手順については、「アプリケーションから Web サーバーを削除する」を参照してください。

サイトからアプリケーションを削除するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] を展開し、削除するアプリケーションを右クリックします。次に、[削除] をクリックします。

管理データベースからアプリケーションの構成データが削除されます。

関連項目

アプリケーションから Web サーバーを削除する

サイトからリソースを削除する

サイトを削除する


アプリケーションから Web サーバーを削除する

アプリケーションから Web サーバーを削除すると、管理データベースから Commerce Web サーバー オブジェクトが削除されます。インターネット インフォメーション サービス (IIS) 5.0 の設定値および Web サーバー ファイルは削除されません。

Commerce Server ビジネス デスクで使用されている Web サーバーを削除すると、ビジネス デスク ユーザーはその Web サーバー内のサイトを管理できなくなります。

アプリケーションから最後の Web サーバーを削除した後でも、そのアプリケーションは Commerce Server マネージャに引き続き表示されます。

アプリケーションから Web サーバーを削除するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] を展開し、Commerce Web サーバー オブジェクトを削除するアプリケーションの名前を展開します。次に、目的の Web サーバー オブジェクトを右クリックし、[削除] をクリックします。

アプリケーションから Commerce Web サーバー オブジェクトが削除され、Web サーバーがアプリケーションの下に表示されなくなります。必要に応じて、削除した Web サーバーや別の Web サーバーを、削除元のアプリケーションに追加できます。

関連項目

アプリケーションに Web サーバーを追加する


Web サーバーを自動的に追加する

Web サーバーを新規に作成するには、Microsoft Application Center 2000 を使って Commerce Server ファイルを Web サーバーに配置するか、Commerce Server サイト パッケージャを使う代わりに手動で Commerce Server ファイルを Web サーバーにコピーします。Commerce Server ソリューション サイトには、global.asa のコードが含まれています。このコードを使うと、Web サーバーをアプリケーションに自動的に追加できます。

新規の Web サーバーで、ユーザーがその Web サーバーに接続したり負荷を平衡化したりすると、Commerce Server アプリケーションが初めて起動します。これにより global.asa が起動すると、この Web サーバーは管理データベースに自動的に追加されます。この Web サーバーは、サイトで必要なプロパティを管理データベースから読み込みます。

追加された Web サーバーは、Commerce Server マネージャに表示され、管理できるようになります。


サイトに非 Commerce のアプリケーションを追加する

Commerce Server マネージャを使うと、Commerce Server コンポーネントを使わないアプリケーションを追加できます。Commerce 以外のアプリケーションを追加する目的は、アプリケーションに関連付けられている Web サーバーのログ ファイルをデータ ウェアハウスにインポートできるようにすることです。

サイトに非 Commerce のアプリケーションを追加するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] をクリックし、[アプリケーション] を右クリックします。次に、[Commerce アプリケーション以外を追加] をクリックします。
  3. [Commerce 以外のアプリケーションの新規作成] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [このアプリケーションの Web サーバーは IIS を実行している] Commerce 以外のアプリケーションのサーバーがインターネット インフォメーション サービス (IIS) 5.0 を実行している場合は、このチェック ボックスをオンにします。

    非 Commerce アプリケーションに、IIS および非 IIS の両方のサーバーを置くことはできません。
    [保護なしのホスト名] アプリケーションの保護なしのリンクで使用するドメイン ネーム システム (DNS) のドメイン名を入力します。

    注意

    • 80 以外のポート番号を使用している場合は、サーバー名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:81」とします。ポート番号の表示や編集を行うには、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、[TCP ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。
    [IIS アプリケーション パス] または [アプリケーション パス] | アプリケーションのパスを入力します。
    [HTTPS を有効にする] | アプリケーションで保護付きのリンクが使用されている場合は、このプロパティを選択します。
    [保護付きのホスト名] アプリケーションの保護付きのリンクで使用する DNS ドメイン名を入力します。

    注意

    • 443 以外のポート番号を使用している場合は、サーバー名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:441」とします。SSL ポート番号の表示や編集を行うには、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ID] タブで、[SSL ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。
  4. [Web サーバー] タブで、次の操作を行います。
    項目 | 操作
    [IIS Web サイト] | IIS Web サイトの名前 (Default Web Site など) を入力します。
    [ローカル ドメイン] | ローカル ドメインの名前 (microsoft.com など) を入力します。
    [ログ ファイル名と場所の同期] | [<Web サーバー> のプロパティ] ダイアログ ボックスの [ログ ファイル] タブにある [ログ ファイルのディレクトリ] が IIS の値で上書きされないようにするには、このプロパティの選択を解除します。これは、既定では選択されています。
  5. [OK] をクリックします。

関連項目

アプリケーションに非 Commerce の Web サーバーを追加する

Web サーバーを構成する


アプリケーションに非 Commerce の Web サーバーを追加する

Commerce Server マネージャを使うと、Commerce Server コンポーネントを使わない Web サーバーを追加できます。Commerce 以外の Web サーバーを追加する目的は、Web サーバーのログ ファイルをデータ ウェアハウスにインポートできるようにすることです。

注

  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスがオンになっている場合は、[新しいログ期間] プロパティと [ログ ファイル マスク] プロパティのどちらか一方のみ設定できます。両方を同時に使用することはできません。
  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [ログ ファイル名と場所の同期] チェック ボックスがオンになっている場合、[<Web サーバー> のプロパティ] ダイアログ ボックスの [ログ ファイルのディレクトリ] ボックスの値は IIS の値で上書きされます。
  • [値の同期] を使用できるのは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [全般] タブで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスをオンにし、かつ、IIS のユーザー インターフェイスを使用して変更を行った場合に限られます。[値の同期] を使用すると、Commerce Server マネージャと IIS を同期させることができます。

アプリケーションに非 Commerce の Web サーバーを追加するには

  1. [Commerce Server マネージャ] を展開し、[Commerce サイト] を展開します。次に、管理するサイトを展開します。
  2. [アプリケーション] を展開し、Web サーバーの追加先となる非 Commerce アプリケーションの名前をクリックします。次に、アプリケーション名を右クリックして [新規作成] をポイントし、[Commerce Web サーバー以外を追加] をクリックします。
  3. [Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ID] タブで、Commerce 以外の Web サーバーのホストとなるコンピュータの名前を入力します。
  4. [ID] ボックスの [追加] をクリックします。
  5. [Web サイト構成] ダイアログ ボックスに、Commerce 以外の Web サーバーの [IP アドレス]、[TCP ポート]、[ホスト ヘッダー名] を入力して、[OK] をクリックします。
  6. アプリケーションで保護付きの HTTP ホスト (SSL) を使っている場合は、[SSL ID] ボックスの [追加] をクリックします。
  7. [Web サイト構成] ダイアログ ボックスに、Commerce 以外の Web サーバーの [IP アドレス]、[SSL ポート] を入力して、[OK] をクリックします。
  8. [Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ログ ファイル] タブで、次の操作を行います。
    項目 | 操作
    [新しいログ期間] | このボックスには、IIS を使っている場合にだけデータが取り込まれます。
    [ログ ファイル マスク] | 必要に応じて、独自の交換を指定します。ログ ファイルの交換とは、IIS Web サイトが、ログ ファイルを書き込み始めてから新しいログ ファイルを作成するまでの間隔を示します。このボックスでの指定例など、詳細については「Web サーバーのログ ファイル マスクを指定する」を参照してください。
    [ログ ファイルのディレクトリ] | IIS Web サイトで発生したイベントが記録されるログ ファイルのパスを入力します。たとえば、「C:\Winnt\System32\LogFiles\Log1」とします。Web ログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、インポート DTS タスクを実行する前に、ここでディレクトリを指定しておいてください。
    [ログ ファイルのコード ページ] | このボックスには、ログ ファイルのコード ページが表示されます。
    [URL エンコーディングのコード ページ] | このボックスには、すべての URL で使われるコード ページが表示されます。
  9. [OK] をクリックします。

関連項目

サイトに非 Commerce のアプリケーションを追加する

Web サーバーのログ ファイル マスクを指定する


データ ウェアハウスの実行

Web サイト データをインポート、変換、および格納するには、Commerce Server データ ウェアハウスを使います。Web ログ ファイル、Commerce Server データベース、およびその他の指定したデータ ソースからデータ ウェアハウスにデータをインポートします。データをインポートすると、Commerce Server ビジネス デスクからレポートを実行することによって、データを解析できます。

データ ウェアハウス データベースは、サイトのアンパック時に SQL Server に追加されます。データのインポートや管理を行うには、Commerce Server データ変換サービス (DTS) タスクを使います。

データ ウェアハウスにセキュリティを設定する方法、接続文字列を変更する方法、およびビジネス デスク ユーザーにレポートを実行するアクセス許可を割り当てる方法については、「データ ウェアハウスにセキュリティを設定する」および「レポートにセキュリティを設定する」を参照してください。

ここでは、次のトピックについて説明します。

  • DTS タスクを実行するためのワークフロー データ ウェアハウスへのデータのインポートおよび変換に必要な Commerce Server DTS タスクの実行順序を示しています。
  • データ ウェアハウスについて データ ウェアハウスと、含まれるデータの種類について説明します。
  • 複数のサイトと 1 つのデータ ウェアハウス データ ウェアハウスでサポートされる複数サイト構成について説明します。
  • データ ウェアハウス データベースを拡張する 新しいトランザクション プロパティ、プロファイル プロパティ、およびカタログ プロパティをインポートするためにデータ ウェアハウスを拡張する方法について説明します。
  • データ ウェアハウスに関するヒント集 データ ウェアハウスの配置、構成、管理、および保守に関する推奨事項について説明します。
  • DTS タスクでの抽出/変換/読み込みプロセス データを特定のデータ ソースから抽出し、ルール、アルゴリズム、連結、またはその他の変換の種類を使って変換する方法について説明します。また、データ ウェアハウスにデータを読み込む方法について説明します。
  • 新しいデータ ウェアハウス ファイル グループを作成する SQL Server ファイル グループを使って Commerce Server データ ウェアハウスのデータベース ファイルを管理する方法について説明します。
  • 構成の同期 DTS タスクを実行する Commerce Server アプリケーションに加えたすべての変更がデータ ウェアハウスにも適用されるように、サイト構成をデータ ウェアハウスと同期させる方法について説明します。
  • データ ウェアハウスにデータをインポートする Web ログ ファイル、カタログ、およびトランザクション データをデータ ウェアハウスにインポートする方法について説明します。
  • IP 解決 DTS タスクを実行する インターネット プロトコル (IP) アドレスの解決方法と、IP 解決の実行時に発生する処理について説明します。
  • データ ウェアハウスからデータを削除する データ ウェアハウスからデータを削除する方法について説明します。
  • レポート準備 DTS タスクを実行する レポート準備 DTS タスクの使い方と、レポートに使用するデータを OLAP キューブに読み込む場合にこのタスクが果たす役割について説明します。
  • 動的レポートのドリルスルーを有効にする 動的 OLAP レポートで使用されるキューブのドリルスルーを有効にする方法について説明します。
  • DTS タスクの実行エラーを確認する タスクの履歴を使って、実行したタスクの状態を表示する方法について説明します。
  • 複数のタスクを含むパッケージの作成およびスケジュール設定を行う SQL Server パッケージ、ワークフローの指示、および SQL Server スケジューラを使って、データを自動的にデータ ウェアハウスにインポートする方法について説明します。
  • データ ウェアハウスを移動する データ ウェアハウス データベースおよび分析データベースを新しいコンピュータに移動する方法について説明します。
  • DTS タスクのスクリプト DTS タスクの処理を自動化するために必要なスクリプトを示します。


DTS タスクを実行するためのワークフロー

まずファクト データがインポートされ、次にディメンション データがインポートされるように、順番に DTS インポート タスクを実行します。

次の図は、データ ウェアハウスへのデータのインポートおよび変換に必要な Commerce Server DTS タスクの実行順序を示しています。

注

  • Commerce Server DTS タスクを手動で構成してデータをインポートすることも、データ ウェアハウスのインポート ウィザードを使ってインポートすることもできます。このウィザードの詳細については、「データ ウェアハウスのインポート ウィザード」を参照してください。
  • DTS タスクは、必ず 1 つずつ実行します。2 つの DTS タスク (または、1 つのタスクの複数のインスタンス) を、同じデータ ウェアハウスに対して同時に実行しないでください。

    2 つの DTS タスクを同時に実行すると、データ ウェアハウス内のデータが破損します。

関連項目

データ ウェアハウスに関するヒント集

DTS タスクでの抽出/変換/読み込みプロセス

Data Warehouse, Analysis, and OLE DB Provider

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する

複数のサイトと 1 つのデータ ウェアハウス


データ ウェアハウスについて

Web サイト データをインポート、変換、および格納するには、Commerce Server データ ウェアハウスを使います。データ ウェアハウスに格納されたデータを使って、Web サイトにおけるユーザーの利用状況を分析します。Commerce Server 2002 Standard Edition では、Commerce Server ビジネス デスクにレポート作成機能が用意されています。

これらのレポートでは、データ ウェアハウスからのデータが、Web サイトに関するビジネス上の特定の疑問に対してさまざまな形式で表示されます。

データ ウェアハウスを使って、次のタスクを実行できます。

  • Commerce Server サイトから、Web ログ ファイル、トランザクション、カタログの各データをインポートする。非 Commerce Server Web サーバーなどの、他のデータ ストアからデータをインポートすることもできます。
  • カスタム レポートで使用できるように、サイトに接続したクライアント ホストのインターネット プロトコル (IP) アドレスを解決する。
  • オンライン分析処理 (OLAP) キューブにデータを作成することによって、分析を行うためにデータをデータ ウェアハウスに準備する。OLAP キューブは、レポートの実行中に取り出すデータを整理します。
  • インポートされたログ ファイル データを削除して、Commerce Server で必要な SQL Server データベースの記憶容量を削減する。
  • データ ウェアハウスからすべてのデータを削除して、既存のテスト データまたはアーカイブ済みデータを削除する。
  • 分析モデルを自動的に再構築し、予測に使用される現在のデータを表示して、既存の分析モデルをアーカイブする。

データ ウェアハウスは、データ変換サービス (DTS) タスクおよび OLAP キューブを使って、データの抽出/変換/読み込み (ETL) を行います。各タスクによって実行される ETL プロセスの詳細については、「DTS タスクでの抽出/変換/読み込みプロセス」を参照してください。

ここでは、次のトピックについて説明します。

  • Commerce Server DTS タスク
  • データ ウェアハウス記憶エンジン
  • OLAP キューブ


Commerce Server DTS タスク

データ ウェアハウスのデータをインポートおよび変換するには、Commerce Server データ変換サービス (DTS) タスクを使います。Commerce Server タスクは、サイトのアンパックのときに SQL Server に読み込まれます。Commerce Server タスクを SQL Server パッケージに追加し、そのパッケージを実行すると、データ ウェアハウスに変更が加えられます。DTS タスクの動作の詳細については、「DTS タスクでの抽出/変換/読み込みプロセス」を参照してください。

Commerce Server DTS タスクを手動で構成してデータをインポートすることも、データ ウェアハウスのインポート ウィザードを使ってインポートすることもできます。このウィザードの詳細については、「データ ウェアハウスのインポート ウィザード」を参照してください。

次の表は、Commerce Server がデータ ウェアハウスに関して提供するタスクを示しています。これらのタスクは、実行順に示されています。

DTS タスク | 説明
構成の同期 | 構成設定の変更後に、データ ウェアハウスを Commerce Server アプリケーションと同期します。サイト構成を変更した場合は、他のタスクの前にこのタスクを実行します。
Web サーバー ログ インポート | Web サーバーで生成された Web ログ ファイル データをインポートします。Web ログ ファイル データは、ユーザーがサイトを訪問し、サイト ページへのリンクをクリックしたときに取得されます。データには、ユーザーがサイトの訪問に費やした時間、参照元サイト、広告クリック、広告到達、クリックの頻度、および最初に参照したページと最後に参照したページを含めてユーザーがサイトで利用した "経路" が含まれます。 Web サーバー ログ インポート タスクを使って、インポートするログ ファイル名と、その場所に関する情報を提供します。Web ログ ファイルは、World Wide Web Consortium (W3C) の拡張 Web ログ ファイル形式に準拠する必要があります。
トランザクション データ インポート | トランザクション データを定義およびインポートします。トランザクション データは、Web サイトでユーザーがショッピング カートの品目を追加および削除したとき、または購入を行ったときに作成されます。レポートを実行して、トランザクション データを分析できます。
商品カタログ インポート | カタログから商品データをインポートします。商品データをインポートすると、トランザクション レポートには、トランザクション データで利用できる情報よりも詳細な商品情報が記載されます。レポートを実行して、商品の売り上げを分析することもできます。
データ削除 | データ ウェアハウスからデータを削除します。指定したサイトの詳細ログ ファイル データを削除するか、データ ウェアハウスの全サイトの詳細ログ ファイル データを削除するかを選択できます。また、データ ウェアハウスのすべてのデータ (詳細データおよび要約データ) を削除することもできます。
IP 解決 | インポートしたユーザー データからインターネット プロトコル (IP) アドレスを解決します。IP 解決では、ログ ファイルからインポートした IP アドレスをドメイン名に変換します。たとえば、198.105.232.4 は www.microsoft.com になります。このように変換することによって、レポートを読む場合にデータを理解しやすくなります。
レポート準備 | OLAP キューブ処理および SQL レポート作成のためにデータを準備します。また、削除後にはキューブの更新を行います。このタスクは、それぞれのインポート タスクと削除タスクの後に実行する必要があります。

スクリプトを使って Commerce Server DTS タスクを実行することもできます。スクリプトを使って Commerce Server DTS タスクを実行する方法の詳細については、「DTS タスクのスクリプト」を参照してください。

新しい DTS タスクの作成については、SQL Server Books Online を参照してください。

関連項目

DTS タスクでの抽出/変換/読み込みプロセス

データ ウェアハウスのインポート ウィザード

DTS タスクのスクリプト

既定の Web サイト プロパティをインポート用に構成する

Web サーバー ログ インポート DTS タスクを構成する

サイトに非 Commerce のアプリケーションを追加する

アプリケーションに非 Commerce の Web サーバーを追加する


データ ウェアハウス記憶エンジン

データ ウェアハウス記憶エンジンでは、データ ウェアハウスにデータを読み込むための、次の記憶プロセスが提供されます。

  • 要約
  • データの読み込み

要約

要約を使うことにより、Web サーバー ログ インポート DTS タスクおよびレポート準備 DTS タスクの実行時に、Commerce Server データベースからのトランザクション データおよびカタログ データを要約できます。要約では、Commerce Server データベース内の未加工データを、Web サイトでのユーザーの利用状況を分析するために使用するデータ ウェアハウス内の情報に変換します。この変換は、関連する未加工データを合計およびカウントすることで行います。

たとえば、特定の日に特定のページで 1,000 レコード分のヒットがあった場合、その日に 1,000 ヒットを有するページの情報として要約されます。この情報を使うことにより、Web サイトへのトラフィックを増やすための計画を立てることができます。

データの読み込み

パラレルでの読み取りおよび書き込みによって、大容量データのデータ ウェアハウスへの読み込みをサポートします。記憶エンジンでは、書き込み、高速のパラレル外部キー検索、代理キー生成、論理から物理へのマッピングが行われ、SQL Server の一括コピー プログラム (BCP) を使って、高速のパラレル一括コピーが行われます。

関連項目

既定の Web サイト プロパティをインポート用に構成する

Web サーバー ログ インポート DTS タスクを構成する

サイトに非 Commerce のアプリケーションを追加する


OLAP キューブ

オンライン分析処理 (OLAP) キューブは、インポートするデータを格納するためにデータ ウェアハウスで使用するデータ構造です。このキューブは、共有ディメンションで定義されるサブセットにデータを分割します。

ディメンションは、メジャーの説明的な属性です。たとえば、ディメンションがサイトのトランザクション数を表す場合があります。この場合、トランザクション数がメジャーです。トランザクションと購入商品はディメンションです。次の図は、ディメンジョンとメジャーの関係を示しています。

Commerce Server が使用する OLAP キューブは、アンパック処理中に作成されます。また、レポート準備 DTS タスクの実行時にデータが作成されて、データ取得用に処理されます。キューブにデータを格納すると、ビジネス デスクで Web サイト分析レポートを実行するときに、データ取得の速度が向上します。次の表は、Commerce Server キューブとディメンションの一覧を示しています。

キューブ | ディメンション
mscsSales | Date ProductCategory Site UserType Address Currency
Basket Events | DateHour Events Site UserType Product Category
OrderEvents | DateHour Day of Week Events Hour of Day Site UserType Week of Year
Buyer Visits | BuyerType Site UserType
BandWidth | DateHour Day of Week Hour of Day Site
Entry Pages | Date Site URI
Exit Pages | Date Site URI
mscsWebUsage | Date DateHour Day of Week Hour by Day Referrer UserType Week of Year
mscsVisitInfo | Date DateHour Day of Week Hour by Day Referrer UserType Week of Year
Page Usage | Date HTTP Status Is Request Level Directory Site URI Win32Status

OLAP キューブの詳細については、SQL Server Books Online を参照してください。

関連項目

既定の Web サイト プロパティをインポート用に構成する

Web サーバー ログ インポート DTS タスクを構成する

サイトに非 Commerce のアプリケーションを追加する


複数のサイトと 1 つのデータ ウェアハウス

1 つの Commerce Server データ ウェアハウスには、最大 10 個のサイトからデータを格納できます。データ ウェアハウスの特定のサイトまたはすべてのサイトに対するアクションを実行するには、Commerce Server DTS タスクを使います。

Microsoft インターネット インフォメーション サービス (IIS) は、1 つの物理サーバー上で複数の仮想サーバー (つまり、既定の Web サイト) をサポートしています。これらの各仮想サーバーで、1 つのログ ファイルが作成されます。Web サーバー ログ インポート DTS タスクを構成するときに、ログ ファイルをデータ ウェアハウスのサイトに関連付けます。詳細については、「Web サーバー ログ インポート DTS タスクを構成する」を参照してください。

データ ウェアハウスは、次に示す複数のサイトのシナリオをサポートしています。

  • 異なるログ ファイルを使用する複数のサイトの Web サーバー ログ ファイルをインポートする。
  • 同じサーバー名を持ち、異なるポートを使用する複数のサイトの Web サーバー ログ ファイルをインポートする。
  • 異なるホスト ヘッダーを持つ複数のサイトの Web サーバー ログ ファイルをインポートする。
  • サイト間でリソースおよびデータベースを共有する。複数のサイト間で共有できる Commerce Server リソースの一覧については、「サイト間でリソースを共有する」を参照してください。

    たとえば、"My Clothes" と "Baby Clothes" という 2 つのサイトがある場合、それらのサイトでプロファイル リソースを共有できます。

  • タイム ゾーンが異なり、独自のオンライン リソースを持つ複数のサイトで 1 つのデータ ウェアハウスを共有する。

問題点

複数のサイトで 1 つのデータ ウェアハウスを使う場合は、次の点に注意してください。

  • 複数の Web サイトのデータが含まれるデータ ウェアハウスでトランザクション データ インポート DTS タスクを実行する場合、複数の Web サイトによって拡張されたクラスのメンバは、データ型が異なるときは、一意の名前でなければなりません。複数の Web サイトでクラスに追加されたメンバのデータ型がサイト間で異なる場合、トランザクション データ インポート DTS タスクの実行時に、エラーが発生したり、データが正しく変換されなかったりすることがあります。
  • 1 つのデータ ウェアハウスが複数のサイトをサポートしている場合は、データのインポート対象となるカタログの名前が一意でなければなりません。

    同じカタログ名と同じ商品を持つ 2 つのサイトがある場合、そのカタログ プロパティと商品定義が異なるときは、2 番目のカタログのデータがインポートされたときに、最初にインポートされたカタログ内のデータが上書きされます。

  • プロファイル リソースがデータ ウェアハウス内の複数のサイトによって共有されている場合は、特定のレポートで、個々のユーザーが、プロファイル リソースを共有する各サイトに属しているかのように扱われます。その結果、ユーザーが登録されているプロファイル リソースを共有するサイトごとにユーザーが 1 回カウントされるので、レポートの集計値が大きくなります。

    次のレポートが影響を受けます。

    • 登録済みユーザー数 (登録日別) (動的 SQL)
    • ユーザー登録までの日数 (動的 SQL)
    • ユーザーの登録状況 (動的 SQL)

    プロファイル リソースが複数のサイトで共有されている場合は、これらのレポートの集計値を無効にするか、または無視します。

関連項目

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する


データ ウェアハウス データベースを拡張する

データ ウェアハウスのインポート機能は、Commerce Server の既定の設定に基づいてデータをインポートするための機能です。新しいデータをインポートできるようにデータ ウェアハウス データベースを拡張するための方法は、インポートするデータの種類によって異なります。たとえば、商品カタログ プロパティを追加する場合は、カタログ定義デザイナで "分析用にデータを保存" 属性を設定して、データ ウェアハウスに、新しいデータを受け入れるために必要なスキーマ変更を行うように指示できます。

他の種類のデータをデータ ウェアハウスにインポートする場合は、データ ウェアハウスを物理的に拡張する必要があります。たとえば、データ ウェアハウスを拡張して、現実世界の店舗から売り上げデータをインポートします。さらに、その新しいデータについてレポートし、かつオンラインと現実世界の両方の売り上げ分析を可能にするカスタム レポートを作成します。

次の表は、新しいデータに対応するためにデータ ウェアハウスを拡張する方法を示しています。

インポートするデータの種類 データ ウェアハウスの拡張方法
新しいトランザクション プロパティ データ ウェアハウスにインポートするトランザクション プロパティを選択するには、Commerce データベースの TransDimension テーブルを使います。トランザクション データ インポート DTS タスクが、自動的に、新しいトランザクション プロパティに対応するようデータ ウェアハウス データベースのスキーマを拡張します。

注

  • TransDimension テーブルから既定のレコードを削除しないでください。この操作はテストされていないため、予期しない結果となる可能性があります。このテーブルに対しては、新しいレコードの追加と、そのレコードの削除だけを行ってください。

データ ウェアハウスを拡張してトランザクション プロパティをインポートする方法については、「インポートするトランザクション プロパティを選択する」を参照してください。
新しいカタログ プロパティ カタログ定義のプロパティで "分析用にデータを保存" 属性を選択します。商品カタログ インポート DTS タスクが、自動的に、新しいカタログ プロパティに対応するようデータ ウェアハウス データベースのスキーマを拡張します。

データ ウェアハウスを拡張してカタログ プロパティをインポートする方法については、「インポートするカタログ プロパティを選択する」を参照してください。

また、Commerce Server Web サイト http://go.microsoft.com/fwlink/?LinkId=945 の技術情報の開発ページにあるホワイト ペーパー「Commerce Server 2000 Data Warehouse / Analytics の拡張」も参照してください。


データ ウェアハウスに関するヒント集

ここでは、データ ウェアハウスの配置、構成、インポート、および保守に関するヒント集を示します。

ここでは、次のトピックについて説明します。

  • 配置に関するヒント集
  • 構成に関するヒント集
  • インポートに関するヒント集
  • 保守に関するヒント集


配置に関するヒント集

  • パフォーマンスを最適にするために、データ ウェアハウスを 3 台のコンピュータに配置し、ビジネス デスクを別のもう 1 台のコンピュータに配置する。
    コンピュータ ソフトウェアの
    必要条件     		ハードウェア
    (大規模サイト)     		ハードウェア
    (中規模サイト)
    1. ログ インポート Commerce Server 2002
    データ ウェアハウス リソース (アンパック)
    Analysis Services Client Tools     		8 プロセッサ
    4 GB の RAM
    200 GB のディスク領域 (最小)     		4 プロセッサ
    4 GB の RAM
    100 GB のディスク領域
    2. データ ウェアハウス SQL Server 2000
    SQL Server Client Tools
    Commerce Server 2002
    データ ウェアハウス リソース (アンパック)     		8 プロセッサ
    4 GB の RAM
    200 GB のディスク領域 (最小)     		4 プロセッサ
    4 GB の RAM
    100 GB のディスク領域
    3. 分析サーバー 分析サーバー
    Commerce Server
    データ ウェアハウス リソース (アンパック)     		4 プロセッサ
    4 GB の RAM
    100 GB 以上のハード ディスク ドライブ (OLAP データベース用)     		4 プロセッサ
    4 GB の RAM
    100 GB 以上のハード ディスク ドライブ (OLAP データベース用)

    データ ウェアハウス リソースのアンパッケージ先となるいずれかのコンピュータに Analysis Services をインストールする必要があります。リソースのアンパッケージ後、Analysis Services を削除できます。たとえば、Commerce Server サイト パッケージャを実行しているコンピュータに Analysis Services をインストールした場合でも、別のコンピュータにデータ ウェアハウス リソースをアンパッケージできます。アンパッケージ処理の完了後、サイト パッケージャを実行していたコンピュータから Analysis Services をアンインストールできます。

    Analysis Services Client Tools は、DTS インポート タスクを実行しているコンピュータにインストールする必要があります。

  • 分析サーバーでは、大規模なデータに対応するためにページ ファイルのサイズを 10 GB に設定する。

    このように設定すると、分析サーバーは、大規模なキューブを処理するときに、コミットされた大規模な仮想アドレス領域に対応できます。分析サーバーは、すべてのディメンション データをメモリにキャッシュします。

    Windows 2000 のページング ファイルのサイズを設定するには

    1. デスクトップの [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
    2. [システムのプロパティ] ダイアログ ボックスの [詳細] タブで、[パフォーマンス] セクションの [パフォーマンス オプション] をクリックします。
    3. [パフォーマンス オプション] ダイアログ ボックスの [アプリケーションの応答] セクションで、[バックグラウンド サービス] が選択されていることを確認します。
    4. [仮想メモリ] セクションの [変更] をクリックします。
    5. [仮想メモリ] ダイアログ ボックスの [選択したドライブのページング ファイル サイズ] セクションの [最大サイズ (MB)] ボックスで、「1000」と入力し、[設定] をクリックします。
    6. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。
  • データ ウェアハウス データベース、トランザクション ログ ファイル、およびページ ファイルを、それぞれ異なるドライブに配置する。

    このように設定すると、物理デバイスへの同時アクセスが可能になるので、データのスループットが向上します。

  • 保守を簡易化し、パフォーマンスを向上させるために、SQL Server のファイル グループ機能を使う。

    ファイル グループ機能は、データの負荷を複数のディスクに分散するため、および並行スレッドを使ってデータ アクセスを向上させるために役立ちます。ハードウェアが I/O バウンドの場合に、SQL Server のファイル グループ機能を使えます。ハードウェアが I/O バウンドかどうかを調べるには、Windows 2000 ヘルプを参照してください。

    たとえば、Request テーブル、Visit テーブル、および VisitInfo テーブルを 3 つの異なるファイル グループに分けることができます。これらのディメンションが大きい場合は、"ログオン ユーザー/URI" を別のファイル グループに分けます。それぞれのファイル グループで集計を行います。ファイル グループについては、「新しいデータ ウェアハウス ファイル グループを作成する」を参照してください。

  • データ ウェアハウスのイベント ログで "メモリ不足です" というエラーを回避するには、データ ウェアハウス (SQL Server) のホストとなっているコンピュータ、および分析サーバーのホストとなっているコンピュータの Windows 2000 Boot.ini ファイルで、3 GB スイッチを指定する。

    大規模サイトを運用している場合、Web サーバー ログ インポート プロセスで仮想メモリが不足すると、"メモリ不足です" というエラーが発生します。このエラーを回避するには、Windows 2000 の Boot.ini ファイルで 3 GB スイッチを有効にします。

    3 GB スイッチを有効にするには、次の 2 つの操作を行う必要があります。

    1. Boot.ini ファイルを変更します。3 GB スイッチの詳細については、Windows 2000 Advanced Server ヘルプを参照してください。
    2. ログ インポート DLL を実行する実行可能ファイルを変更します。データ ウェアハウスにデータをインポートする方法に応じて、適切な実行可能ファイルを変更する必要があります。

    詳細については、「大規模サイトの Web サーバー ログ インポート DTS タスクを実行する」を参照してください。

    また、Analysis Services では、プロセス バッファ サイズを既定値よりも大きくします。たとえば、バッファ サイズを 2 GB に設定し、4 GB の物理メモリを割り当てます。

  • インポート パフォーマンスを向上させるために、データ ウェアハウス データベースのファイル サイズを設定する。
データベース ファイルが自動的に拡張すると、データ ウェアハウスのインポート パフォーマンスが大幅に低下します。データベースのサイズを大きくすることは、実行時にデータベースを拡張するオーバーヘッドを減らすのに有効です。ログ ファイルの合計サイズを 2 で割ることによって、データ ウェアハウス データベースのサイズを求めることができます。ファイルが拡張しないように、データベースに固定のサイズを使うと、データベース ファイルの拡張によって生じる、インポート パフォーマンスの大幅な低下を防ぐことができます。

自動ファイル拡張を無効にするには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、データ ウェアハウス データベースを右クリックします。次に、[プロパティ] をクリックします。
  3. [<データベース名> のプロパティ] ダイアログ ボックスの、[データ ファイル] タブの [ファイルの最大サイズ] セクションで、[ファイル拡張の上限 (MB)] を選択します。次に、[ファイル拡張の上限 (MB)] ボックスにデータベースの最大サイズを入力し、[OK] をクリックします。
SQL Server の自動ファイル拡張機能を使う場合は、データ ウェアハウス データベースが特定のサイズまで拡張するように、パーセンテージではなくサイズを設定します。データベースの最大サイズをパーセンテージではなく特定のサイズに設定すると、データベースのサイズとディスク容量をより厳密に管理できます。

データ ウェアハウス データベースのファイル拡張パラメータを設定するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を展開し、データ ウェアハウス データベースを右クリックします。次に、[プロパティ] をクリックします。
  3. [<データベース名> のプロパティ] ダイアログ ボックスの、[データ ファイル] タブの [ファイルの最大サイズ] セクションで、[ファイル拡張の上限 (MB)] を選択します。次に、[ファイル拡張の上限 (MB)] ボックスにデータベースの最大サイズを入力し、[OK] をクリックします。
  • 運用サーバー上では、SQL Server の既定のインスタンスだけを使う。
パフォーマンスを向上させるため、運用サーバー上で SQL Server の複数のインスタンスを実行しないでください。
  • IP アドレスのレポートを作成する必要がない場合に限り、環境変数 "StoreClientIP" を True に設定する。

    StoreClientIP を設定するには

    1. デスクトップの [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
    2. [システムのプロパティ] ダイアログ ボックスの [詳細] タブで、[環境変数] をクリックします。
    3. [環境変数] ダイアログ ボックスの [ユーザー環境変数] セクションで、[新規] をクリックします。
    4. [新しいユーザー環境変数] ダイアログ ボックスで、次の操作を行います。
      項目 | 操作
      [変数名] | 「StoreClientIP」と入力します。
      [変数値] | 「True」と入力します。
    5. [OK] をクリックします。

    新しい環境変数を再設定しているときに動作している既存のプロセスがある場合、その実行中の既存プロセスは更新されません。

  • インポート中に、タイムアウトだけを使ってオープン ユーザー訪問を終了するには、UseExternalReferrerForInference 環境変数を False に設定する。
Commerce Server は、ユーザーが直前に訪問していた参照元ドメインと、設定可能な訪問タイムアウト値 (その値を超えると Commerce Server は訪問が終了したと見なす、既定値は 30 分) を組み合わせてサイトへの個々の訪問を推論します。他のログ分析製品は、30 分のタイムアウトだけを使って、訪問を計算します。30 分のタイムアウトだけを使って訪問を計算するには、UseExternalReferrerForInference 環境変数を False に設定します。
Commerce Server では、内部参照元は、"保護なしのホスト名" プロパティと "IIS アプリケーション パス" プロパティの組み合わせです。ログの処理中、ログの行ごとに、W3C ログ ファイルの参照元フィールド (cs(referrer)) に URI が記述されます。Commerce Server は、W3C 参照元フィールドのプレフィックスを内部参照元と照合します。一致しなかった場合、そのヒットが外部サイトによって参照されたものであり、現在のユーザー訪問が終了したと見なします。

UseExternalReferrerForInference 環境変数を False に設定するには

  1. [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
  2. [システムのプロパティ] ダイアログ ボックスの [詳細] タブで、[環境変数] をクリックします。
  3. [環境変数] ダイアログ ボックスの [システム環境変数] セクションで、[新規] をクリックします。
  4. [新しいシステム環境変数] ダイアログボックスで、次の操作を行います。
    項目 | 操作
    [変数名] | 「UseExternalReferrerForInference」と入力します。
    [変数値] | 「F」と入力します。
  5. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。
  • サイトのすべての内部ドメインを認識するように Commerce Server を構成しないと、訪問数のカウントが異常に大きくなることがある。
Commerce Server は、ユーザーが直前に訪問していた参照元ドメインと、設定可能なタイムアウト値 (既定値は 30 分) を組み合わせて、サイトへの個々の訪問を推論します。サイトのすべての内部ドメインを認識するように Commerce Server を構成しないと、内部ドメインとして設定していないドメインが外部参照元と見なされ、それを使って新しい訪問が計算されます。
UseExternalReferrerForInference 環境変数の値を F (False) に設定すると、訪問を計算するときの外部参照元の確認が無効になります。
コマンド ラインから Web ログ インポート プロセスを起動する場合は、次のステートメントを使って、そのコマンド シェルで UseExternalReferrerForInference 環境変数を False に設定し、訪問を計算するときの外部参照元の確認を無効にすることができます。
   set UseExternalReferrerForInference=F
UseExternalReferrerForInference 環境変数の設定を True (T) に変更し、Commerce Server Web ログ インポートが再び外部参照元を確認するようにすることができます。


構成に関するヒント集

  • アプリケーションやログ ファイルが複数ある場合は、ユーザー インターフェイスを使わずに、スクリプトを使って Web サーバー ログ インポート DTS タスクを構成します。

    詳細については、「Web サーバー ログ インポート DTS タスクのスクリプト」を参照してください。

  • サイトの構成設定を変更する場合は、構成の同期 DTS タスクを実行する。

    管理データベースにあるサイト構成データをデータ ウェアハウスにインポートするには、構成の同期 DTS タスクを使います。このタスクは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [値の同期] での処理とは異なります。このボタンをクリックすると、値がインターネット インフォメーション サービス (IIS) メタベースから管理データベースに読み込まれ、次に管理データベースからデータ ウェアハウスに読み込まれます。詳細については、「アプリケーションを構成する」を参照してください。

    パフォーマンスを向上させるためには、サイトのトポロジ設定が記録されるサイト構成データを、必要になったときに毎回管理データベースから読み込むのではなく、データ ウェアハウスに格納しておきます。

    データ ウェアハウスは、データ ウェアハウスに関連付けられている 1 つのサイトまたはすべてのサイトと同期させることができます。データをインポートまたは削除する DTS タスクを実行するには、あらかじめ同期タスクを実行しておく必要があります。構成の同期 DTS タスクを実行する方法については、「構成の同期 DTS タスクを実行する」を参照してください。

  • 使用している SQL Server の言語に対応する FirstDayOfWeek プロパティの既定値を確認し、レポートの週の開始日を判断する。

    分析レポートの週単位の集計では、使用している SQL Server 製品の所定の言語に対応する既定の週の開始日が使われます。英語 (U.S.) バージョンの SQL Server の場合、既定の週の開始日は日曜日です。

    分析レポートでは、Commerce Server マネージャに指定されている "開始する曜日" プロパティは使われません。

  • データ ウェアハウス データベースのホストとなる SQL Server の sa パスワードを変更する場合は、トランザクション データ インポート DTS タスクと商品カタログ インポート DTS タスクを必ず作成し直す。

    これらの DTS タスクには、sa パスワードが保存されています。

  • グリニッジ標準時でデータを記録する既定の IIS オプション (W3C 標準) をそのまま使う。

    Web サーバー ログ インポート DTS タスクは、インポート対象のデータがグリニッジ標準時であると想定し、それに従って変換処理を行います。現地時刻でデータを記録する IIS オプションを選択しないでください。このオプションを選択すると、"日付/時刻の期間" プロパティを使って Web サーバー ログ ファイルをインポートするときに問題が発生することがあります。

    "日付/時刻の期間" プロパティに基づいてログ ファイルをインポートするように Web サーバー ログ インポート DTS タスクを構成する場合は、日付と時刻をグリニッジ標準時で指定します。

  • IncrementalOverlap 値を、タイムゾーンの違いプラス 2 時間に設定する。
増分インポートを実行する場合、トランザクション データ インポート DTS タスクは、ランタイム テーブルの last modified date フィールドを使って、レコードがいつ変更されたか、およびレコードをいつデータ ウェアハウスにインポートする必要があるかを検出します。このフィールドの日付/時刻値はアプリケーションによって書き込まれるので、値を書き込むシステムのタイム ゾーンおよび時計が一致しないことがあります。これにより、last modified date フィールド内で相違が生じ、インポート プロセス中にレコードがスキップされることがあります。
異なるタイム ゾーンで稼動するシステムの場合、この間隔が大きくなります。したがって、処理ウィンドウはタイム ゾーンの違いプラス 2 時間に対応します。
既定の 2 時間を上書きするには、Windows NT レジストリに次の値を追加します。
DWORD : HEKY_LOCAL_MACHINE\Software\Microsoft\Commerce Server\TransactionImportDTS\IncrementalOverlap
DWORD : HKEY_LOCAL_MACHINE\ Software\Microsoft\Commerce Server\ProfileDataImportDTS\IncrementalOverlap
このレジストリ値が存在する場合、データ ウェアハウスは、IncrementalOverlap 値を使わずに、この値を、最後に成功したインポートの開始時刻から差し引く時間数として使います。
  • Web サーバー ログ インポート DTS タスクが、必要なファイルをインポートしていない場合、または必要ではないファイルをインポートしている場合は、[前回以降のすべてのログ ファイルのインポート] オプションの設定を確認する。

    データ ウェアハウスの Sitesummary テーブルには、[Web サーバー ログのインポート] ダイアログ ボックスで指定する開始日/時刻と終了日/時刻のデータが格納されます。

    [前回以降のすべてのログ ファイルのインポート] オプションにより、Sitesummary テーブル内の終了時刻の値が Web ログ ファイルの日付と比較されます。この値は現地時間で記録されるので、この値の調整が必要になることがあります。Web ログ ファイルはグリニッジ標準時で記録されるためです。

  • 複数のクライアントの IP アドレスが 1 つの IP アドレスに変換される場合、推論されるユーザーの Web サーバー ログ インポート DTS タスク内の cookie またはユーザー名のいずれかを使う。

    IP 変換によって、2 つの DTS タスクが影響を受けます。

    • Web サーバー ログ インポート タスク。 ユーザーを推論する場合、複数のユーザーの IP アドレスが 1 つの IP に変換され、すべてのユーザーが同じブラウザを使用しているときは、それらのユーザーは 1 ユーザーとして扱われます。

      たとえば、10 ユーザーの IP アドレスが 1 つの IP アドレスに変換される場合、そのうち 5 ユーザーがブラウザ "A" を、残りの 5 ユーザーがブラウザ "B" を使うと、その 10 ユーザーは 2 ユーザーとして扱われます。推論されるユーザーに対して、cookie またはユーザ名の代わりに、IP アドレスとブラウザ タイプを使用すると、このような結果になります。

    • IP 解決タスク。 複数の IP アドレスが 1 つの IP アドレスに変換される場合、IP 解決タスクによる照合は 1 つの IP アドレスにしか行われないため、サイトを訪問しているすべてのユーザーに対する正しいドメイン情報を取得できないことがあります。

    cookie またはユーザー名を使ってユーザーを推論する方法については、「推論の精度」を参照してください。

  • 商品別売り上げレポートまたは買い物バスケット イベント レポートでドリルスルーを使う場合は、CSDW_MakePrimaryProductCategoryInfo ストアド プロシージャを使って、各商品をそのプライマリ親カテゴリにマップする。

    ドリルスルーを使って商品別売り上げレポートまたは買い物バスケット イベント レポートの詳細を表示すると、その詳細に、ピボットテーブル レポートに示される数から予想されるよりも多くの項目が表示されることがあります。この現象は、1 つの商品が複数のカテゴリにマップされているときに発生する可能性があります。これは仕様です。つまり、その商品が、現在調べられているカテゴリの下の複数のカテゴリに存在するために起こります。

    ドリルスルーの結果で、商品ごとに必ず 1 行だけが返されるようにするには、各商品を 1 つの商品カテゴリだけにマップする必要があります。CSDW_MakePrimaryProductCategoryInfo ストアド プロシージャを使って、各商品をそのプライマリ親カテゴリにマップします。これにより、各商品が、確実にカテゴリ階層内の 1 つのカテゴリだけにマップされます。

    詳細については、「ドリルスルーを使って商品別売り上げまたはショッピング カート イベントを表示する」を参照してください。


インポートに関するヒント集

  • DTS タスクは、必ず 1 つずつ実行する。2 つの DTS タスク (または、1 つのタスクの複数のインスタンス) を、同じデータ ウェアハウスに対して同時に実行しない。

    2 つの DTS タスクを同時に実行すると、データ ウェアハウス内のデータが破損します。

  • まずファクト データがインポートされ、次にディメンション データがインポートされるように、順番に DTS インポート タスクを実行する。

    必ず、次の順序で DTS インポート タスクを実行します。

    • Web サーバー ログ インポート (ファクト データ)
    • トランザクション データ インポート (ファクト データ)
    • 商品カタログ データ インポート (ディメンション データ)
  • インポート DTS タスクに失敗した場合、または処理中のインポート DTS タスクをキャンセルした場合は、データ削除 DTS タスクを実行する。

    データ削除 DTS タスクを実行することによって、正常にインポートされたデータを削除し、集計クラスのテーブルをインポート前の状態に戻す必要があります。この操作を行わないと、集計が間違ったものになる可能性があります。

  • 運用中の Web サーバーで Web サーバー ログ インポート DTS タスクを実行しない。インポート専用の別のコンピュータで、この DTS タスクを実行する。

    Web サーバー ログ インポート DTS タスクにより、ディスク、SQL Server、CPU の使用率、および、場合によってはネットワークの使用率が増大します。他のリソースへの影響を最小限に抑えるには、別のコンピュータで Web サーバー ログ インポート DTS タスクを実行します。このコンピュータにも Analysis Services をインストールしておきます。SQL Server コンピュータで Web サーバー ログ インポート DTS タスクを実行しないでください。

  • Web サーバー ログ インポート プロセスを最適化するには、StoreLogUser 環境変数を False に設定する。

    IP 解決 DTS タスクを実行する必要がない場合、および LogUser テーブルのデータを使用するカスタム レポートを作成しない場合は、StoreLogUser 変数を False に設定します。

    StoreLogUser 変数を False に設定すると、処理速度を 50% も向上させることができます。インポート プロセス中は、データ ウェアハウスの LogUser テーブルにはデータが作成されません。

    StoreLogUser 環境変数を設定するには

    1. データ ウェアハウス サーバーの [マイ コンピュータ] を右クリックし、[プロパティ] をクリックします。
    2. [システムのプロパティ] ダイアログ ボックスの [詳細] タブで、[環境変数] をクリックします。
    3. [環境変数] ダイアログ ボックスの [システム環境変数] セクションで、[新規] をクリックします。
    4. [新しいシステム環境変数] ダイアログ ボックスの [変数名] ボックスに「StoreLogUser」と入力し、[変数値] ボックスに「F」と入力します。
    5. [OK] を 3 回クリックし、すべてのダイアログ ボックスを閉じます。
  • スクリプトを使って Web サーバー ログ インポート DTS タスクを実行する場合は、データ ウェアハウス (SQL Server) のホストとなっているコンピュータおよび分析サーバーのホストとなっているコンピュータの Windows 2000 Boot.ini ファイルで、3 GB スイッチを必ず指定する。

    3 GB スイッチを有効にするには、次の 2 つの操作を行う必要があります。

    1. Boot.ini ファイルを変更します。3 GB スイッチの詳細については、Windows 2000 Advanced Server ヘルプを参照してください。
    2. ログ インポート DLL を実行する実行可能ファイルを変更します。データ ウェアハウスにデータをインポートする方法に応じて、適切な実行可能ファイルを変更する必要があります。

    詳細については、「大規模サイトの Web サーバー ログ インポート DTS タスクを実行する」を参照してください。

  • 1 日分のログ ファイルを一括してインポートする。

    ログ ファイルを日単位で一括してインポートすると、1 時間ごとにログ ファイルをインポートする場合よりもインポート プロセスに時間がかかりません。

  • レポート準備 DTS タスクを実行する直前に Web ログのインポートを実行する。

    たとえば、1 時間ごとに Web ログ ファイルをインポートしても、一回にインポートできるログ ファイルはごく少量です。Web ログ ファイルのサイズが大きくなると、時間あたりに処理される GB 数から見たパフォーマンスが低下します。

  • データ ウェアハウスにデータをインポートした後、またはデータ ウェアハウスからデータを削除した後に、レポート準備 DTS タスクを実行する。

    レポート準備 DTS タスクを使って、データ ウェアハウスに格納されている最新のサイト データおよびユーザー データからオンライン分析処理 (OLAP) キューブにデータを作成します。Commerce Server 2002 では、OLAP キューブを使ってデータ ウェアハウスのデータが要約されるので、この追加操作を行わない場合に比べて、分析モジュールから実行されるレポートが短時間で完了できます。

  • データ ウェアハウスが複数のサイトで共有されている場合は、レポート準備 DTS タスクを 1 回実行すれば、すべてのサイトのデータが処理される。

    レポート準備 DTS タスクを実行すると、データ ウェアハウス内のすべてのサイトが処理されます。この DTS タスクは、個々のサイトを対象にして実行しないでください。データ ウェアハウスのパフォーマンスに影響を及ぼします。

  • レポート準備 DTS タスクの実行時にエラー メッセージが表示されないようにするには、データのないオブジェクトの処理を無効にする。

    OLAP ディメンションおよびキューブにデータを作成するために必要な情報がデータ ウェアハウスにインポートされていない場合、OLAP ディメンションおよびキューブを処理するときに、レポート準備タスクによってエラーが表示されることがあります。エラー メッセージは、次の形式で表示されます。

    処理エラー [ソース データに行が含まれていません] <オブジェクト名>

    データのサブセットをデータ ウェアハウスにインポートする (たとえば、商品カタログ データ インポート タスクを実行していない) 場合、データのない OLAP ディメンションおよびキューブの処理を無効にすることができます。これにより、"[ソース データに行が含まれていません]" というエラー メッセージが表示されなくなります。

    Analysis Services オブジェクトの処理を無効にするには、処理を無効にするキューブおよびディメンションの CubeProcInfo および DimProcInfo で、"ProcessingEnabled" フラグを "0" に設定します。

  • Web ファームがある場合は、ローカル コンピュータ上の Web サーバー ログ ファイルを収集してから、データ ウェアハウスにインポートする。

    Web サーバー ログ インポート DTS タスクを実行するローカル コンピュータ上のファイルを収集することによって、ネットワーク上のトラフィック量を減らします。次の操作を行うことをお勧めします。

    1. 独自の Web ログ ファイルを圧縮するように各 Web サーバーを設定します。
    2. ドライブをマップし、zip ファイルを管理用の格納場所にコピーして、それらのファイルを展開するための Microsoft Visual Basic Scripting Edition (VBScript) スクリプトを作成します。
    3. Web ログ ファイルを整理するための、もう 1 つの VBScript を作成します。
    4. ログ ファイルをコピーして展開するための最初の VBScript を実行する DTS "プロセスの実行" タスクを作成します。利用できないログ ファイルまたは正常に圧縮されていないログ ファイルがある場合、このタスクは失敗します。
    5. 展開したログ ファイルを整理するための VBScript を実行するもう 1 つの DTS タスクを作成します。
    6. 構成の同期 DTS タスクを実行してから、Web サーバー ログ インポート DTS タスクを実行します。
  • 複数の Web サーバーを配置している場合は、環境変数 MaxHitPerBuffer を調整することによって、インポート プロセスのパフォーマンスを向上させることができる。

    MaxHitPerBuffer 変数は、複数ログデータソース パーサーの、一部のバッファ サイズを制御します。MaxHitPerBuffer の既定値は 6 です。配置しているサーバーの数およびサイトのトラフィック量に応じて、この設定を調整し、パフォーマンスを向上させることができます。

    たとえば、120 台の Web サーバーがあり、サイトへの一意な訪問者が多い場合は、MaxHitPerBuffer を 5 に設定すると最適です。これより大きな値を設定すると、非常に多くのメモリが消費されます。Web サーバーが 5 台の場合は、MaxHitPerBuffer を 10 に設定できることもあります。

    MaxHitPerBuffer を 10 より大きく設定することはお勧めできません。この場合、1 GB を超える物理メモリが使用されることがあるためです。MaxHitPerBuffer を 10 より大きく設定する場合は、Boot.ini ファイルで 3 GB スイッチを有効にし、3 GB が有効な実行可能ファイルを使ってログをインポートする必要があります。詳細については、「大規模サイトの Web サーバー ログ インポート DTS タスクを実行する」を参照してください。

    自分のシナリオの MaxHitPerBuffer の最適値を調べるには、メモリの利用状況 (プライベート バイトおよび仮想バイト) を監視します。

  • ネットワーク負荷分散クラスタから Web サーバー ログ インポートを実行するには、Commerce Server にクラスタ構成を伝えるサーバー トポロジを設定してから、Web サーバー ログ インポート DTS タスクを 1 つだけ実行する。

    このシナリオでは、http://<サイト名> のログ ファイルを Commerce Server の 1 つのレポートだけに表示させるとします。ただし、Web サーバー ログ ファイルは、たとえば \\server1\d$\iislogfiles\w3svc4 と \\server2\d$\iislogfiles\w3svc4 のように、複数の場所にあります。サーバー トポロジを設定するには、ログ ファイルがその Web サーバーに対応する正しいフォルダ内にある限り、各場所で同じログ ファイル名を指定します。

    サーバー トポロジを指定する方法については、「サイトに非 Commerce アプリケーションを追加する」および「アプリケーションに非 Commerce の Web サーバーを追加する」を参照してください。

    非 Commerce アプリケーションと Web サーバーを設定した後、新しく作成した各 Web サーバーがそのログ ファイルを指すように、Web サーバー ログ インポート DTS タスクのプロパティを設定します。ログ ファイルは、サーバーごとに 1 つずつ、別のフォルダに配置します (これは、サーバーの作成時に行うこともできます)。詳細については、「Web サーバー ログ インポート DTS タスクを構成する」を参照してください。

  • 新しいまたは更新したカタログ、を Web サイトに配置し、それを同じ日に削除すると、データ ウェアハウスにインポートされたデータの完全性に影響を及ぼす場合がある。

    たとえば、カタログに "Green Book" という商品を追加するとします。この商品は、カタログ ランタイム データベース内の "X" という商品 ID を取得します。次に、更新したカタログを Web サイトに発行します。Web サイト上で買い物をしているユーザーが、バスケットに "Green Book" を 1 つ追加します。その結果、"バスケットに追加" という Commerce イベントが IIS Web ログ ファイルに記録されます。Commerce イベントの値の 1 つは、商品 ID ("X") です。この商品 ID は、カタログ ランタイム データベースのテーブル内の行を参照します。

    通常、データ ウェアハウス インポート プロセスで、この商品 ID は完全な記述に解決されます。つまり、商品 ID "X" を持つ Commerce イベントでは、この商品 ID はカタログ テーブルへの外部キーとして解決されます。ただし、データ ウェアハウスにインポートする前にカタログ データベースからその項目を削除すると、Web サーバー ログ インポート タスクが Web ログ ファイル内の商品 ID "X" を解決できなくなります。

    子データに意味を与えるために必要な "親データ" から分離された、データ ウェアハウス データベース内のこのような種類の "子データ" は、"孤立したデータ" と呼ばれます。孤立したデータの削除については、「孤立したデータをデータ ウェアハウスから削除する」を参照してください。

  • データのインポート後、アプリケーション イベント ログを確認する。
データ ウェアハウスにデータをインポートした後に、アプリケーション イベント ログを確認します。アプリケーション イベント ログを使って、インポートが正常に完了したことを確認したり、インポート プロセス中に発生したエラーを表示したりします。


保守に関するヒント集

  • 週単位に、30% を超えて断片化されているすべてのテーブルのインデックスを最適化する。

    Web サーバー ログ インポート DTS タスクを実行すると、インデックスが断片化されます。インデックスが 30% を超えて断片化されている場合は、Web サーバー ログ インポート DTS タスクの処理時間が長くなります。

    インデックスの断片化の程度を調べてインデックスを最適化するには、DBCC SHOWCONTIG および DBCC INDEXDEFRAG という 2 つの DBCC ステートメントを使います。詳細については、SQL Server Books Online を参照してください。

  • 交互に、データ ウェアハウスから Web ログ ファイルの詳細データを削除し、その後すべての要約データを削除する。

    データ ウェアハウスは詳細データを無期限に保存することはできません。最終的に、データベースが最大容量に達してしまうためです。

    古くなったログ ファイル データを頻繁に削除することが重要です。これにより、パフォーマンスが低下したり、データ ウェアハウス内のメモリ容量が制限されたりすることがなくなります。Commerce Server データベースの履歴データを維持する必要がある場合は、レポートを使って、将来参照するときに便利な形式でデータを抽出および保存します。

  • 定期的にディメンション データを削除する。

    データ削除 DTS タスクを使用すると、ディメンション データではなくファクト データが削除されます。ディメンション データはプログラムによって削除する必要があります。

    ディメンション データの削除には時間がかかるので、この操作は頻繁に行わないことをお勧めします。たとえば、年に 1 回行います。

    ディメンション データの削除については、「データ削除 DTS タスクを実行する」を参照してください。

  • データ削除 DTS タスクを実行する前に、tempdb データベースのサイズが、削除するデータベースのサイズよりも大きいことを確認する。

    たとえば、削除するデータベースが 15 GB の場合、SQL Server では、少なくとも 15 GB の tempdb データベースが必要です。tempdb データベースのサイズがそれよりも小さい場合、データ削除タスクは失敗します。

関連項目

DTS タスクでの抽出/変換/読み込みプロセス

複数のサイトと 1 つのデータ ウェアハウス

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する

データ ウェアハウスのインポート ウィザード


DTS タスクでの抽出/変換/読み込みプロセス

ここでは、Commerce Server DTS タスクの抽出/変換/読み込み (ETL) プロセスの参照情報を示します。ETL プロセスは、特定のデータ ソースからデータが抽出されるときに開始されます。データは、その後、ルール、アルゴリズム、連結、またはその他の必要な変換の種類を使って、特定の状態に変換されます。その状態に変換されたデータは、データ ウェアハウスに読み込まれ、そこで、分析やレポート作成のためにアクセスできるようになります。

次の表は、DTS タスクがデータに適用する変換の種類を示しています。

変換 | 説明
列のコピー | データに変換を適用せずに、変換元列から変換先列にデータを直接コピーするときに使います。
セルのコピー | データに変換を適用せずに、変換元セルから変換先セルにデータを直接コピーするときに使います。
連結 | 複数の変換元列の各文字列をセミコロンで区切って 1 つの文字列のリストに連結し、その結果を変換先列にコピーするときに使います。
生成 | DTS タスクで新しいデータを作成するとき、または変換元のデータを要約するときに使います。
ActiveX スクリプト | カスタム変換を構築するときに使います。変換は 1 行ごとに行われるので、Microsoft ActiveX スクリプトが DTS パッケージの実行速度に影響を及ぼす場合があることに注意してください。
日付と時刻の文字列 | 変換元列の日付または時刻を変換先列で別の形式に変換するときに使います。
小文字の文字列 | 変換元列をすべて小文字に変換し、必要に応じて変換先のデータ型に変換するときに使います。
大文字の文字列 | 変換元列をすべて大文字に変換し、必要に応じて変換先のデータ型に変換するときに使います。
文字列の一部 | 変換元列から部分文字列を抽出して変換し、その結果を変換先列にコピーするときに使います。
文字列のトリミング | 変換元列の文字列の前後および文字列内のワイト スペースを削除し、その結果を変換先列にコピーするときに使います。
ファイルの読み取り | 変換元列に指定された名前のファイルを開き、その内容を変換先列にコピーするときに使います。
ファイルの書き込み | 変換元列 (データ列) の内容を、別の変換元列 (ファイル名の列) に指定されたパスのファイルにコピーするときに使います。

データ ウェアハウスのほとんどのテーブルには、<テーブル名>ID および <テーブル名>InternalFlag という名前の列が含まれています。ここで、<テーブル名> は、その列が存在するデータ ウェアハウス テーブルの名前です。これらの列は、DTS タスクによって読み込まれないので、下記の各タスクの表には示されていません。これらの列は、OLE DB Provider for Commerce Server によって読み込まれます。<テーブル名>ID 列には、6 バイトのバイナリの一意識別子が格納されています。<テーブル名>InternalFlag 列は内部でのみ使用され、OLE DB Provider for Commerce Server によって使用されます。

ほとんどのデータ ウェアハウス テーブルには、SiteName 列も含まれています。この列も、<テーブル名>ID および <テーブル名>InternalFlag と同様に、下記の表に示されていません。これは、SiteName が、必ず、すべての DTS タスクで同じ場所から抽出されるためです。

ここでは、次のトピックについて説明します。

  • 構成の同期 DTS タスクでの ETL プロセス
  • Web サーバー ログ インポート DTS タスクでの ETL プロセス
  • トランザクション データ インポート DTS タスクでの ETL プロセス
  • 商品カタログ インポート DTS タスクでの ETL プロセス
  • データ削除 DTS タスクでの ETL プロセス
  • IP 解決 DTS タスクでの ETL プロセス
  • レポート準備 DTS タスクでの ETL プロセス


構成の同期 DTS タスクでの ETL プロセス

構成の同期 DTS タスクは、管理データベースとデータ ウェアハウス間で情報を同期させます。具体的には、サイト トポロジ、クエリ文字列、クローラ、およびレポート定義に対して行われた更新の内容を同期させます。構成の同期 DTS タスクは、インポート タスクや削除タスクなど、他のタスクの前に実行する必要があります。

次の表は、管理データベースの変換元テーブルから抽出される列、実行される変換、およびデータの保存先となるデータ ウェアハウス テーブルを示しています。

サイト トポロジの同期

管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの Site テーブルの変換先列
WhenImportIsComplete
 生成

s_Value に 1 が加算された値が読み込まれます。

EndImportAction

N/A
 生成

ゼロ (0) に設定されます。

IsAdjustTimeStamps

ExcludeCrawlers
 列のコピー
IsExcludeSpiders

i_QSSaveWithUri
 生成

s_Value に 1 が加算された値が読み込まれます。

IsSeparateUriAndQueryString

UseCookiesForInferences
 セルのコピー
IsUseCookiesForInferences

MultipleUsersUseTheSameName
 セルのコピー
IsUseUsernameForInferences

UseUPMCookiesForInferences
 セルのコピー
IsUseUPMCookiesForInferences

s_InfNames
 セルのコピー
CookieIdentifiers

IfOverlapDetected
 生成

s_Value に 1 が加算された値が読み込まれます。

OverlapAction

MinutesRecordsOverlap
 セルのコピー
OverlapMins

s__Name from Sites Table in MSCS_Admin database
 セルのコピー
SiteName

TimeZone
 セルのコピー
TimeZone

IdleTmeBeforeVisitEnds
 セルのコピー
VisitTimeOut

RetryCount
 セルのコピー
RetryCount

RetryExhaustAction
 セルのコピー
RetryExhaustAction

g_nStartDayOfWeek
 セルのコピー

既定値はゼロ (0) です。

WeekStartDay
管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの ServerGroup テーブルの変換先列
s_WebServerName
 セルのコピー
varList

s_LogFileDirectory
 セルのコピー
LogFileDir

s_LogType
 セルのコピー
LogFormatID

s_WebServerMachine and s_WebServerName
 連結

"LDS For" s_WebServerMachine/ s_WebServerName

varList が空の場合にだけ使用されます。

ServerGroupName

N/A
 生成

値 25 (GMT) が読み込まれます。

TimeZone

s_LogFileCodePage
 セルのコピー
LogFileCodePage

s_URLEncodingCodePage
 セルのコピー
URLEncodingCodePage
管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの VirtualServer テーブルの変換先列
s_DirectoryIndexFiles
 セルのコピー
DirIndexes

LocalDomainDnsServer
 セルのコピー

セルが空の場合は "不明" が読み込まれます。

LocalDomain

s_WebServerMachine and  s_WebServerName
 生成

s_WebServerMachine の s_WebServerName。

VserverName

N/A
 生成

値 1 が読み込まれます。

VserverType
管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの ServerBinding テーブルの変換先列
s_ServerBindings
 文字列の一部
HostHeaderName

s_ServerBindings
 文字列の一部
IPAddress

N/A
 生成

バインディングのセキュリティが設定されている場合は、443 が読み込まれます。バインディングのセキュリティが設定されていない場合は、80 が読み込まれます。

IPPort
管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの SiteURL テーブルの変換先列
s_ExFileExpressions and s_ExFileTypes
 連結

式と形式の、アスタリスク (*) で区切られたリスト。

ExcludeCriteria

s_ExHosts
 セルのコピー
ExcludeHosts

TruncateTopDir
 セルのコピー
IsChopTopLevelDir

s_NonSecureHostname and s_VirtualRootName
 連結

http://" & s_NonSecureHostname & "/" & s_VirtualRootName

URL

s_NonSecureHostname and s_VirtualRootName
 連結

http://" & s_NonSecureHostname & "/" & s_VirtualRootName

URLExt

クエリ文字列の更新

管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの URIQuery テーブルの変換先列
s_QSName
 セルのコピー
QueryString

N/A
 生成
QueryStringKey
管理データベースの ResourceProps テーブルの変換元プロパティ名

x

 変換 データ ウェアハウスの SVQStringName テーブルの変換先列
s_QSName
 セルのコピー
QStringName
管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの LinkSVQStringName テーブルの変換先列
s_QSName
 セルのコピー

s_OSApplicationList 内の各 SiteURLID の、SVQ 文字名とのリンクを読み込みます。

LinkSVQStringName
管理データベースの ResourceProps テーブルの変換元プロパティ名

_

 変換 データ ウェアハウスの LinkMVQStringName テーブルの変換先列
s_QSName
 セルのコピー
QStringName

クローラの更新

管理データベースの ResourceProps テーブルの変換元プロパティ名 変換 データ ウェアハウスの Crawler テーブルの変換先列
Crawler.ini
 ファイルの読み取り
CrawlerString

i_SiteID from Sites Table in MSCS_Admin database
 セルのコピー
SiteID

関連項目

構成の同期 DTS タスクを実行する

構成の同期 DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを使うと、Web サイトで生成された Web ログ ファイル データをデータ ウェアハウスにインポートできます。

アプリケーションおよび Web サーバーの構成は、Web サーバー ログ インポート DTS タスクでインポートされるログ ファイル データに影響を及ぼします。ログ ファイルには複数のサイトの情報が含まれることがあるので、サイトごとまたは仮想サーバーごとにログ ファイルを解析しなければならない場合があります。したがって、ログ ファイル内の各ヒットは、特定の仮想サーバーに関連付ける必要があります。Web サーバー ログ インポート タスクは、特定の仮想サーバーを除外するように構成できます。仮想サーバーは、ポート番号、IP アドレス、および仮想サーバー キーという 3 つのプロパティによって識別されます。保護付きのポート番号 (ポート 443) および保護なしのポート番号 (ポート 80) の両方が仮想サーバー キーに影響を及ぼすので、これらは 2 つの異なる仮想サーバーであると見なされます。したがって、Web ログ インポートで、Web サーバー ログ インポートの除外に両方の仮想サーバーが含まれるように設定する必要があります。ログ インポートでログ ファイルをフィルタ処理する方法の詳細については、「Web ログ ファイルの除外を設定する」を参照してください。

注

  • ログ ファイル内の多くの行は、実際の要求ではなくヒットによるものであるため、ログ ファイルの一部の行には Request テーブルにインポートされないものがあります。Request テーブルには要求だけがインポートされます。一連のフィルタを使うことによって、ログ ファイル内のヒットと要求が区別されます。Request テーブルに対する Web サーバー ログ インポートから除外する情報を選択する方法の詳細については、「Web ログ ファイルの除外を設定する」を参照してください。
  • Web サーバー ログ インポート DTS タスクの時間重複設定は、ログ ファイルの最初および最後に Request テーブルにインポートされる要求に影響を及ぼします。既定では、Web サーバー ログ インポート DTS タスクは、別のログ ファイルと 30 分重複する要求を破棄します。時間重複設定を変更する方法については、「"時間重複" プロパティと "交換" プロパティを設定する」を参照してください。

次の表は、W3C ログ ファイルから抽出される列、実行される変換、およびデータの保存先となるデータ ウェアハウス テーブルを示しています。

W3C ログ ファイルの変換元列 変換 データ ウェアハウスの Request テーブルの変換先列
N/A
 生成

ログ インポート アプリケーションによって生成されます。格納されるログ ファイルの要求行ごとに増加します。これは、異なるインポート間で一意です。

RequestNum

cs-uri-query
 列のコピー

ログ ファイルからのクエリ文字列全体を含みます。

QueryString

cs-uri-stem
 列のコピー
Uri

cs-bytes
 列のコピー

クライアントからサーバーへのバイト数。

BytesReceived

sc-bytes
 列のコピー

サーバーからクライアントへのバイト数。

BytesSent

N/A
 生成

この列は、一意識別子としてログ インポート アプリケーションで生成されます。

VisitNum

date and time
 連結

現地時間に変換します。

TimeStamp

N/A
 生成

これは、SiteURL クラスのキー メンバです。OLE DB プロバイダは、これを SiteURL 物理テーブル内の SiteURLID に解決します。

URL

N/A
 生成

このエントリが (ヒットに対する) 要求であると見なされるかどうかを調べます。

ヒットがフィルタ処理される場合は、これを False に設定できます。フィルタ処理される一般的なヒットは、イメージが要求され、そのイメージに Commerce イベントがアタッチされている場合のヒットです。

IsRequest

cs(Referer)
 列のコピー
ReferrerURL

cs(Referer)
 文字列の一部

URI のドメイン部分だけを取得します。

ReferrerDomainName

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserKey

sc-win32-status
 列のコピー
Win32Status

sc-status
 列のコピー
HttpStatus

N/A
 生成

ログ インポートは、ログ行を、構成されたサーバー バインディング (ポート番号 (s-port) と IP アドレス (s-ip) を含む) に対応させます。サーバー バインディングのセキュティリが設定されている場合、この列は True に設定されます。詳細については、「アプリケーションを構成する」を参照してください。

IsSecure

cs-method
 生成

GET = 1、POST=2、HEAD=3。

Method

time-taken
 列のコピー
TimeTaken

N/A
 生成

ログ インポートで検出された訪問の最初の要求は 1 であり、その訪問の後続の要求で 1 つずつ増加します。

RequestIndex

N/A
 生成

ログ インポートでこの行に Commerce イベントのクエリ文字列がないことが検出されると、この列は False に設定されます。

HasCommerceEvent

N/A
 生成

これは、ログ インポートのインスタンスごとに増加します。

TaskID

cs-uri-stem
 文字列の一部

URI の第 1 レベルだけを取得します (ある場合)。

Level1Dir

cs-uri-stem
 文字列の一部

URI の第 2 レベルだけを取得します (ある場合)。

Level2Dir

cs-uri-stem
 文字列の一部

URI の第 3 レベルだけを取得します (ある場合)。

Level3Dir

cs-uri-stem
 文字列の一部

URI の第 4 レベルだけを取得します (ある場合)。

Level4Dir

cs-uri-stem
 文字列の一部

URI の第 5 レベルだけを取得します (ある場合)。

Level5Dir

cs-uri-stem
 文字列の一部

URI の第 6 レベルだけを取得します (ある場合)。

Level6Dir

cs(User-Agent)
 列のコピー
UserAgentName

UPM Cookie Key
Or
cs(cookie)
Or
cs-ip + cs(User-Agent)
 生成

ユーザー ID として何が使われる場合でも、"ユーザー ID" は、そのユーザー ID の MD4 ハッシュの最初の 8 バイトです。ユーザー ID として何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー ID として使われます。

UserID

cs-uri-query
 列のコピー

MD4 ハッシュ。

QueryStringKey

N/A
 生成

チェックポイント処理のサポートに使われます。

SubTaskID

cs-uri-stem
 列のコピー

MD4 ハッシュ。

UriKey

cs(Cookie)
 文字列の一部

一致する cookie だけが抽出されます。送付スキーマは、物理的にこのプロパティを格納しません。ただし、このプロパティを格納するように、このスキーマを論理的に拡張できます。

Cookie

Visit テーブルへの書き込み

訪問は、参照元がサイトの内部でない場合に開始します。たとえば、ユーザーがサイト (<www.microsoft.com>) にヒットし、そのサイト上のリンクをクリックして別のサイト (<www.msn.com>) に移動してから、また元のサイト (<www.microsoft.com>) に戻ってきた場合は、Visit テーブルに 2 つの訪問が記録されます。次の表は、このユーザーのログ ファイルの一例を示しています。

時間 (分単位) | ユーザー名 | URI | 参照元
0 | A | /default.asp | -
1 | A | /foo.asp | <http://www.microsoft.com/default.asp>
5 | A | /default.asp | <http://www.msn.com>

訪問を時間だけに基づいて定義すれば、これは 1 つの訪問であると考えられます。しかし、データ ウェアハウスは、サイトを去ったユーザーがそのサイトの外部にある参照元の効果によって戻ってきたことを認識します。参照元が内部であるかどうかは、SiteURL テーブルに対する部分文字列照合によって判別されます。SiteURL テーブルに対して部分文字列が照合されると、参照元が内部であると確認されます。

注

  • Visit テーブルに記録される訪問の中には、オープン ビジットもあります。ログ ファイルの交換設定および時間重複設定を変更する方法の詳細については、「"時間重複" プロパティと "交換" プロパティを設定する」を参照してください。
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの Visit テーブルの変換先列
N/A
 生成

この列は、一意識別子としてログ インポート アプリケーションで生成されます。

これは、Visit テーブルへの外部キーです。また、VisitInfo テーブルへの外部キーでもあります。ただし、VisitInfo テーブルは、ユーザーの訪問が完了したときにのみ挿入されます。

VisitNum

date and time
 連結

これは、訪問での最初の要求のタイムスタンプです。現地時間に変換します。

Timestamp

cs(Referer)
 列のコピー

クエリ文字列を含みます。

ReferrerURL

cs(Referer)
 URI のドメイン部分だけを取得します。
ReferrerDomainName

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserKey

UserDomainName

s-ip
 列のコピー
IpAddress

N/A
生成

これは、ログ インポートのインスタンスごとに増加します。

TaskID

time
 文字列の一部
Hour

UPM Cookie Key
Or
Custom Cookie or IP Address + Browser Agent String
 生成

MD4 ハッシュ。

UserID

DateCreated

cs-username
 列のコピー
UserName

N/A
 生成

ユーザーが cookie を持っている場合、これは True に設定されます。

HasCookie

N/A
 生成

チェックポイント処理のサポートに使われます。

SubTaskID

cs(Cookie)
 一致する cookie だけを取得します。このプロパティは、物理的に格納されません。ユーザーは、格納するように論理的に拡張できます。
Cookie

VisitInfo テーブルは、クローズド ユーザー訪問を示します。このクラスは、訪問が終了している場合に、ログ インポートから書き込まれます。外部参照元が検出された場合、または訪問タイムアウトが発生した場合、訪問は終了しています。

W3C ログ ファイルの変換元列 変換 データ ウェアハウスの VisitInfo テーブルの変換先列
N/A
 生成
CountOfRequest

N/A
 生成
Duration

N/A
 生成
FirstTimeStamp

N/A
 生成
FirstHTimeStamp

N/A
 生成

この列は、一意識別子としてログ インポート アプリケーションで生成されます。

これは、Visit テーブルへの外部キーです。また、VisitInfo テーブルへの外部キーでもあります。ただし、VisitInfo テーブルは、ユーザーの訪問が完了したときにのみ挿入されます。

VisitNum

N/A
 生成

これは、ログ インポートのインスタンスごとに増加します。

TaskID

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserKey

cs(User-Agent)
 列のコピー
UserAgentName

FirstRequestNum

SecondRequestNum

LastRequestNum

FirstUriKey

SecondUriKey

LastUriKey

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー ID として何が使われる場合でも、ユーザー キーは、そのユーザー ID の MD4 ハッシュの最初の 8 バイトです。ユーザー ID として何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー ID として使われます。

UserID

cs(Referer)
 生成

URI のドメイン部分だけが読み込まれます。

ReferrerDomainName

N/A
 生成

チェックポイント処理のサポートに使われます。

これは、LogImportSubtask テーブルへの外部キーです。

SubTaskID
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの TaskHistory テーブルの変換先列
N/A
 生成

これは、DTS インポート タスクのインスタンスごとに増加します。

TaskID

N/A
 生成

これは、どのインポート タスクが使用されたかを識別します。
1 = Web サーバー ログ インポート
2 = プロファイル データ インポート
3 = キャンペーン データ インポート
4 = 商品カタログ インポート
5 = トランザクション ログ インポート
8 = 構成の同期
9 = データ削除
10 = IP 解決
11 = レポート準備
20 = レポート キャッシュ

OperationID

N/A
 生成

インポートの結果。
1 = インポートが正常に完了した。
2 = インポートが正常に完了しなかった。
3 = インポートが完了していない。
4 = インポートが中止された。

Status

N/A
 生成

インポートの実際の開始時刻。

StartTime

N/A
 生成

インポートの実際の終了時刻。

EndTime

N/A
 生成

インポート タスクの説明。

Description

N/A
 生成

Web ログ インポート DTS タスクのチェックポイント処理のサポートに使われます。

SubTaskID

N/A
 生成

Web ログ インポート DTS タスクの再開に使われます。

NumOfTries

LogImportSubTask クラスは、再開機能のチェックポイントを追跡するために Web ログ インポートの内部で使われます。

W3C ログ ファイルの変換元列 変換 データ ウェアハウスの LogImportSubtask テーブルの変換先列
N/A
 生成

チェックポイント処理のサポートに使われます。

SubTaskID

N/A
 生成

ログ インポートのインスタンスごとに増加します。

TaskID

N/A
 生成

Site テーブルへの外部キー。

SiteID

N/A
 生成

インポートするサーバー グループ名。仮想サーバーごとに一意なサーバー グループがあります (IIS では、別個のログ ファイル)。

ServerGroup

N/A
 生成

インポートのログ ファイル名。

FileName

N/A
 生成

チェックポイントが発生したログ ファイル内のオフセット。

ByteOffsetHigh

N/A
 生成

チェックポイントが発生したログ ファイル内のオフセット。

ByteOffsetLow

N/A
 生成

チェックポイント時の指定 W3C フィールド。

Field

N/A
 生成

チェックポイント発生時のログ ファイルの日時。

Date

OpenUserVisit クラスは、ログ インポートの終了時にアクティブな訪問を持つユーザーを示します。オープン ユーザー訪問が Web サーバー ログ インポート DTS タスクによって処理される方法を変更するには、交換設定を調整する必要があります。ログ ファイルの交換設定を変更する方法の詳細については、「"時間重複" プロパティと "交換" プロパティを設定する」を参照してください。

W3C ログ ファイルの変換元列 変換 データ ウェアハウスの OpenUserVisit テーブルの変換先列
N/A
 生成

現在のこのオープン ビジットでの要求数。

CountOfRequest

N/A
 生成
FirstTimeStamp

N/A
 生成
LastTimeStamp

N/A
 生成

一意識別子としてログ インポート アプリケーションで生成されます。

VisitNum

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserKey

N/A
 生成

これは、ログ インポートのインスタンスごとに増加します。

TaskID

cs(User-Agent)
 列のコピー
UserAgentName

N/A
 生成

Request テーブルへの外部キー。この訪問での最初の要求。

FirstRequestNum

N/A
 生成

Request テーブルへの外部キー。この訪問での 2 回目の要求。

SecondRequestNum

N/A
 生成

Request テーブルへの外部キー。この訪問での最後の要求。

LastRequestNum

N/A
 生成

URI テーブルへの外部キー。この訪問での最初の URI。

FirstUriKey

N/A
 生成

URI テーブルへの外部キー。この訪問での 2 番目の URI。

SecondUriKey

N/A
 生成

URI テーブルへの外部キー。この訪問での最後の URI。

LastUriKey

cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー ID は、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー ID として何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserID

cs(Referer)
 文字列の一部

URI のドメイン部分だけが読み込まれます。

ReferrerDomainName

N/A
 生成

チェックポイント処理のサポートに使われます。

SubTaskID
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの SiteSummary テーブルの変換先列
N/A
 生成

これは、ログ インポート中に計算されます。パーサーがログ ファイルから正常に解析できたすべての有効なヒット。

TotalHits

N/A
 生成

除外条件によって除外されなかったヒットの総数。

TotalImportHits

N/A
 生成

検出された訪問 (オープンおよびクローズド) の総数。

TotalVisits

N/A
 生成

サーバーの除外条件によって除外されたヒットの数。

TotalBadServerCount

N/A
 生成

構成されたサイトに適合しないため除外されたヒットの総数。この数が大きい場合は、アプリケーションの構成を確認します。アプリケーションを構成する方法の詳細については、「アプリケーションを構成する」を参照してください。

TotalBadSiteCount

N/A
 生成

除外ホスト条件によって除外されたヒットの数。

TotalExcludeHostCount

N/A
 生成

すべての条件によって除外されたヒットの数。

TotalExcludeCriteriaCount

N/A
 生成

クローラ除外条件によって除外されたヒットの数。

TotalMatchCrawlerCount

N/A
 生成

インポートの実際の開始時刻。

StartTime

N/A
 生成

インポートの実際の終了時刻。

EndTime
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの LevelDir テーブルの変換先列
N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI1Key

N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI2Key

N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI3Key

N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI4Key

N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI5Key

N/A
 生成

MD4 ハッシュの最初の 8 バイト。

URI6Key
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの Pathinfo テーブルの変換先列
N/A
 生成
FirstTimeStamp

PathKey

PathTypeEnum

N/A
 生成

これは、ログ インポートのインスタンスごとに増加します。

TaskID
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの LogUser テーブルの変換先列
cs-uri-query (UPM cookieless)
OR
cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
 生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserKey

UserDomainName

DateCreated

cs-username
 列のコピー
UserName

N/A
 生成

ユーザーが cookie を持っている場合、これは True に設定されます。

HasCookie

s-ip
 列のコピー
IpAddress

cs-uri-query (UPM cookieless)
OR

cs(cookie)
OR
cs-username
OR
cs-ip + cs(User-Agent)
生成

ユーザー キーとして何が使われる場合でも、ユーザー キーは、そのユーザー キーの MD4 ハッシュの最初の 8 バイトです。ユーザー キーとして何が使われるかは、ログ ファイル内のデータによって異なります。UPM クエリ文字列 (cookie なし)、UPM cookie、ユーザー構成 cookie、ユーザー名、またはクライアント IP アドレス、およびブラウザ エージェント文字列がユーザー キーとして使われます。

UserID
W3C ログ ファイルの変換元列 変換 データ ウェアハウスの URI テーブルの変換先列
cs-uri-stem
 列のコピー
URI

N/A
 生成

これは、ログ インポート中に一致したホーム ページの URL です。
これは、最初に指定された URL です。

URL

cs-uri-stem
 文字列の一部

URI の第 1 レベルだけを取得します (ある場合)。

Level1Dir

cs-uri-stem
 文字列の一部

URI の第 2 レベルだけを取得します (ある場合)。

Level2Dir

cs-uri-stem
 文字列の一部

URI の第 3 レベルだけを取得します (ある場合)。

Level3Dir

cs-uri-stem
 文字列の一部

URI の第 4 レベルだけを取得します (ある場合)。

Level4Dir

cs-uri-stem
 文字列の一部

URI の第 5 レベルだけを取得します (ある場合)。

Level5Dir

cs-uri-stem
 文字列の一部

URI の第 6 レベルだけを取得します (ある場合)。

Level6Dir

cs-uri-stem
 列のコピー

MD4 ハッシュ。

UriKey

関連項目

既定の Web サイト プロパティをインポート用に構成する

Web サーバー ログ インポート DTS タスクを構成する

Web サーバー ログ インポート DTS タスクを実行する

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

Web サーバー ログ インポート DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


トランザクション データ インポート DTS タスクでの ETL プロセス

トランザクション データ インポート DTS タスクは、注文や注文番号などのサイトのトランザクション データをデータ ウェアハウスにインポートします。また、このタスクは、トランザクション データを同期させるレポートを作成する前に実行する必要があります。

注意

  • 複数の Web サイトのデータが含まれるデータ ウェアハウスでトランザクション インポート DTS タスクを実行する場合、複数の Web サイトによって拡張されたクラスのメンバは、データ型が異なるときは、一意の名前でなければなりません。複数の Web サイトでクラスに追加されたメンバのデータ型がサイト間で異なる場合、トランザクション インポート DTS タスクの実行時に、エラーが発生したり、データが正しく変換されなかったりすることがあります。

次の表は、<サイト名>_commerce データベースの変換元テーブルから抽出される列、実行される変換、およびデータの保存先となるデータ ウェアハウス テーブルを示しています。

<サイト名>_commerce データベースの OrderGroupAddresses テーブルの変換元列 変換 データ ウェアハウスの OrderGroupAddresses テーブルの変換先列
address_id
 列のコピー
Address_id

address_line1
 列のコピー
Address_Line1

address_line2
 列のコピー
Address_Line2

address_name
 列のコピー
Address_Name

address_type
 列のコピー
Address_type

City
 列のコピー
City

country_code
 列のコピー
country_code

d_DateCreated
 列のコピー
d_DateCreated

d_DateLastChanged
 列のコピー
d_DateLastChanged

first_name
 列のコピー
First_Name

g_UserIDChangedBy
 列のコピー
g_UserIdChangedBy

Last_name
 列のコピー
Last_Name

OrderGroup_id
 列のコピー
OrderGroup_id

postal_code
 列のコピー
Postal_Code

region_code
 列のコピー
region_code

region_name
 列のコピー
region_name

tel_number
 列のコピー
tel_number

country_name
 列のコピー
country_name
<サイト名>_commerce データベースの OrderFormHeader テーブルの変換元列 変換 データ ウェアハウスの OrderFormHeader テーブルの変換先列
billing_currency
 列のコピー
billing_currency

buying_org_name
 列のコピー
buying_org_name

cc_auth_number
 列のコピー
cc_auth_number

CurrencyCode
 生成

<サイト名>_commerce データベースの OrderFormHeader テーブルにこの列が存在する場合は、値がデータ ウェアハウスの CurrencyCode テーブルにコピーされてから、コードの ID が OrderFormHeader テーブルに保存されます。
<サイト名>_commerce データベースにこの列が存在しない場合は、MSCS_Admin データベースからこの列が取得され、値がデータ ウェアハウスの CurrencyCode テーブルにコピーされてから、コードの ID が OrderFormHeader テーブルに保存されます。

Order_CurrencyCodeID

d_DateCreated
 列のコピー
d_DateCreated

d_DateLastChanged
 列のコピー
d_DateLastChanged

g_UserIdChangedBy
 列のコピー
g_UserIDChangedBy

orderform_id
 列のコピー
OrderForm_Id

orderform_number
 列のコピー
OrderForm_number

ordergroup_id
 列のコピー
ordergroup_id

receiver_email_address
 列のコピー
receiver_email_address

receiver_fax_number
 列のコピー
receiver_fax_number

receiver_first_name
 列のコピー
receiver_first_name

receiver_last_name
 列のコピー
receiver_last_name

receiver_tel_number
 列のコピー
receiver_tel_number

saved_cc_expiration
 列のコピー
saved_cc_expiration

saved_cc_number
 列のコピー
saved_cc_number

saved_cy_tax_total
 列のコピー
saved_cy_tax_total

saved_cy_total_total
 列のコピー
saved_cy_total_total

selling_org_name
 列のコピー
selling_org_name

tax_exempt_code
 列のコピー
tax_exempt_code

tax_exempt_id
 列のコピー
tax_exempt_id

total_lineitems
 列のコピー
total_lineitmes

user_email_address
 列のコピー
user_email_addresses

user_fax_number
 列のコピー
user_fax_number

user_first_name
 列のコピー
user_first_name

user_id
 列のコピー
user_id

user_last_name
 列のコピー
user_last_name

user_org_id
 列のコピー
user_org_id

user_org_name
 列のコピー
user_org_name

user_tel_number
 列のコピー
user_tel_number

orderform_date
 生成

時刻を含む正規化された日付値が Date テーブルに書き込まれ、ID がこの列に読み込まれます。

DateID

OrderGroupID
 列のコピー
OrderGroupID

orderform_date
 列のコピー
Order_formdate_unnorm
<サイト名>_commerce データベースの OrderFormLineItems テーブルの変換元列 変換 データ ウェアハウスの OrderFormLineItems テーブルの変換先列
cy_lineitem_total
 列のコピー
cy_lineitem_total

cy_unit_price
 列のコピー
cy_unit_price

d_DateCreated
 列のコピー
d_DateCreated

d_DateLastChanged
 列のコピー
d_DateLastChanged

description
 列のコピー
description

g_UserIDChangedBy
 列のコピー
g_UserIDChangedBy

lineitem_id
 列のコピー
lineitem_id

OrderForm_id
 列のコピー
OrderForm_id

OrderGroup_id
 列のコピー
OrderGroup_id

product_catalog_base
 列のコピー
product_catalog_base

product_id
 列のコピー
product_id

product_variant_
identifying_property
 列のコピー
product_identifying_property

quantity
 列のコピー
quantity

tax_exempt
 列のコピー
tax_exempt_code

tax_id
 列のコピー
tax_id

unit_code
 列のコピー
unit_code

N/A
 生成

このレコードを OrderFormHeader テーブルとリンクする、プロバイダが生成した 6 バイトの ID。

OrderFormHeaderID

N/A
 生成

このレコードを OrderGroupAddresses テーブルとリンクする、プロバイダが生成した 6 バイトの ID。

OrderGroupAddressesID

N/A
 生成

プロバイダが生成した 6 バイトの ID。

OrderGroupID

shipping_address_id
 列のコピー
shipping_address_id

shipping_method_name
 列のコピー
shipping_method_name
<サイト名>_commerce データベースの OrderGroup テーブルの変換元列 変換 データ ウェアハウスの OrderGroup テーブルの変換先列
alt_currency
 列のコピー
alt_currency

alt_Icid
 列のコピー
alt_Icid

billing_currency
 列のコピー
billing_currency

d_DateCreated
 列のコピー
d_DateCreated

d_DateLastChanged
 列のコピー
d_DateLastChanged

default_currency
 列のコピー
default_currency

default_Icid
 列のコピー
default_Icid

g_UserIDChangedBy
 列のコピー
g_UserIDChgnedBy

order_approval_decision
 列のコピー
order_approval_decision

order_create_date
 列のコピー
order_create_date

order_number
 列のコピー
order_number

order_status_code
 列のコピー
order_status_code

ordergroup_id
 列のコピー
ordergroup_id

previous_order_id
 列のコピー
previous_order_id

saved_cy_oadjust_subtotal
 列のコピー
saved_cy_oadjust_subtotal

saved_cy_total_total
 列のコピー
saved_cy_total

saved_order_name
 列のコピー
saved_order_name

total_lineitems
 列のコピー
total_lineitmes

user_first_name
 列のコピー
user_first_name

user_last_name
 列のコピー
user_last_name

user_first_name and user_last_name
 連結
user_name

user_org_name
 列のコピー
user_org_name

user_id
 列のコピー
RegisteredUserID

関連項目

トランザクション データ インポート DTS タスクを実行する

トランザクション データ インポート DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


商品カタログ インポート DTS タスクでの ETL プロセス

商品カタログ インポート DTS タスクは、商品名、色、サイズなどのカタログのデータをデータ ウェアハウスにインポートします。商品データは、インポート後に、商品別売り上げ分析や、その他の売り上げ分析に関するレポートを生成するために使用されます。ここでは、これらのデータがデータ ウェアハウスにインポートされるときに、商品カタログ インポート DTS タスクによって行われる変換を示します。

注

  • 商品カタログ インポート DTS タスクは、基本カタログだけをインポートします。CatalogGlobal サイト テーブルの IsVirtualCatalog プロパティが 0 に設定されている場合、そのカタログは基本カタログです。

次の表は、<サイト名>_Commerce データベースの変換元テーブルから抽出される列、実行される変換、およびデータの保存先となるデータ ウェアハウス テーブルを示しています。

<サイト名>_commerce データベースの CatalogGlobal テーブルの変換元列 変換 データ ウェアハウスの CatalogGlobal テーブルの変換先列
CatalogID
 列のコピー
CatalogGlobalID

CatalogName
 列のコピー
CatalogName

Currency
 列のコピー
Currency

EndDate
 列のコピー
EndDate

Locale
 列のコピー
Locale

ProductID
 列のコピー
ProductID

ReportingLanguage
 列のコピー
ReportingLanguage

StartDate
 列のコピー
StartDate

VariantID
 列のコピー
VariantID

WeightMeasure
 列のコピー
WeightMeasure

<カタログ名>_CatalogProducts テーブルの I_ClassType 列には、行が商品、バリエーション、商品グループ、またはカテゴリのいずれであるかが指定されます。次の表は、各分類に関連付けられている値を示しています。

分類 値
Category
 1
ProductVariantClass
 2
ProductClass
 4
ProductFamilyClass
 8

商品を転送するプロセスには、2 つの段階があります。まず、各商品、およびその商品が属するカテゴリが転送されます。次に、すべての商品バリエーションおよびバリエーション グループが、そのカテゴリと共に、データ ウェアハウスの商品テーブルに転送されます。データ ウェアハウスの Products テーブルには、Category テーブルとの間に複数値の関連があります。データ ウェアハウス プロバイダは、その関連に基づいて、商品を Products テーブルに、カテゴリを Category テーブルに書き込み、リンク テーブルにデータを作成します。

データ ウェアハウスの Products テーブルには、商品に関連付けられているすべてのプロパティが含まれているわけではありません。<サイト名>_commerce データベースの CatalogAttributes テーブルの商品プロパティの中で、ExporttoDW プロパティが 1 に設定されているものだけがエクスポートされます。

<サイト名>_commerce データベースの <カタログ名>_<言語> ビューの変換元列 変換 データ ウェアハウスの Products テーブルの変換先列
CatalogName
 列のコピー
CatalogName

CatalogName and ProductID and VariantID (if available)
 連結
ProductNameCat

cy_list_price
 列のコピー
cy_list_price

PrimaryParentCategory
 列のコピー
PrimaryParentCategory

ProductID
 列のコピー
ProductID

VariantID
 列のコピー
VariantId

N/A
 生成
Product, Unique
identifier for table.
<サイト名>_commerce データベースの <カタログ名>_<言語> ビューの変換元列 変換 データ ウェアハウスの Category テーブルの変換先列
CatalogName
 列のコピー
CatalogName

CatalogName and CategoryName
 連結
CategoryNameCat

CategoryName
 列のコピー
CategoryName
<サイト名>_commerce データベースの <カタログ名>_CatalogHierarchy テーブルの変換元列 変換 データ ウェアハウスの CatHierarchy テーブルの変換先列
CatalogName and
CategoryName for
parent categories
from Catalog_CatalogProducts table If the ParentOID
column is set to –1,
the category is a parent category.
 連結
ParentCategoryCat

child_CatalogName and CategoryName for child categories from CatalogProducts table
If the ParentOID column
is set to the oid of a
parent category, the
category is a child
category.
 連結
ChildCatalogCat

関連項目

商品カタログ データ インポート DTS タスクを実行する

商品カタログ インポート DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


データ削除 DTS タスクでの ETL プロセス

データ削除 DTS タスクには、データ ウェアハウスからデータを削除するための 2 つの方法があります。すべてのデータ、または特定の Web ログ ファイルのデータをデータ ウェアハウスから削除できます。Web ログ ファイル データの削除は、サイトのレベルまたはデータ ウェアハウスのレベルで行えます。すべてのデータの削除は、データ ウェアハウスのレベルでしか行えません。

Web ログ データは、2 つの方法で削除できます。すべての Web ログ データを削除するか、または要約 (詳細) データだけを削除することができます。これらの各方法で削除されるクラス、ディメンション、およびファクトを次に示します。

データ ウェアハウスからすべてのデータを削除する

データ ウェアハウスから Web ログ ファイル データを削除する

データ ウェアハウスから Web ログ ファイル詳細データを削除する


データ ウェアハウスからすべてのデータを削除する

"すべて削除" オプションを使ってデータ ウェアハウスからすべてのデータを削除すると、データ ウェアハウス内のほとんどのテーブルが削除されます。データ ウェアハウスから削除されないテーブルは、関連付けられた論理クラスを持たないテーブルだけです。データ ウェアハウスからすべてのデータを削除した後にデータ ウェアハウス内に残るテーブルの一覧を次に示します。

  • Site
  • ServerGroup
  • VirtualServer
  • ServerBinding
  • SiteURL
  • EventType
  • SVQStringName
  • MVQStringName
  • LinkSVQStringName
  • Crawler

Commerce Server マネージャでデータ削除 DTS タスクを実行してすべてのデータを削除する方法については、「データ ウェアハウス内のすべてのデータを削除するには」を参照してください。


データ ウェアハウスから Web ログ ファイル データを削除する

データ ウェアハウスからすべての Web ログ データを削除した場合、指定した Web ログのクラス データが、次のクラスから削除されます。

  • Basket
  • Order
  • LogImportJobSummary
  • LogImportSubtask
  • OpenUserVisit
  • Visit
  • Request
  • VisitInfo
  • LastUriByDate
  • RequestByDateByUriByQueryString
  • FirstUriByDate
  • HitsInfo
  • HitsByHour

Commerce Server マネージャでデータ削除 DTS タスクを実行して Web ログ データを削除する方法については、「ログ ファイル データを削除するには」を参照してください。


データ ウェアハウスから Web ログ ファイル詳細データを削除する

データ ウェアハウスから詳細データを削除した場合、指定した Web ログ ファイルのすべてのファクト データがデータ ウェアハウスから削除されさます。詳細データだけを削除する場合、ディメンション データは削除されません。このオプションを使うと、次に示すファクト クラスのデータが削除されます。

  • OpenUserVisit
  • Visit
  • Request

Commerce Server マネージャでデータ削除 DTS タスクを実行して Web ログ ファイル詳細データを削除する方法については、「ログ ファイル データを削除するには」を参照してください。

関連項目

データ削除 DTS タスクを実行する

データ削除 DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


IP 解決 DTS タスクでの ETL プロセス

IP 解決 DTS タスクは、インポートしたユーザー データからインターネット プロトコル (IP) アドレスを解決します。IP 解決では、ログ ファイルからインポートした IP アドレスをドメイン名に変換します。たとえば、198.105.232.4 は www.microsoft.com になります。このように変換することによって、レポートを読む場合にデータを理解しやすくなります。

IP 解決タスクは、IpRef テーブルの正常に解決された行のデータだけを HostnameRef テーブルに読み込みます。IpRef テーブルの IPAddress が正常に解決された場合は、そのドメイン名が HostnameRef テーブルの Hostname 列に格納されます。IP アドレスが正常に解決されなかった場合、IpRef テーブルのその行のデータは HostnameRef テーブルに読み込まれません。IP アドレスが解決された場合は IpRef テーブルの Status 列が 1 に設定され、IP アドレスが解決されなかった場合は 0 に設定されます。IP 解決が試行された時間は、IpRef テーブルの LastModifiedTime 列に格納されます。

次の表は、変換元テーブルから抽出される列、実行される変換、およびデータの保存先となるデータ ウェアハウス列を示しています。

データ ウェアハウスの IpRef テーブルの変換元列 変換 データ ウェアハウスの HostnameRef テーブルの変換先列
IpAddress
 生成

可能な場合は、IP アドレスが解決され、解決されたドメイン名が読み込まれます。解決されない場合は、HostnameRef テーブルにデータが読み込まれません。

Hostname

Status
 生成

解決された場合は 1 に設定され、解決されなかった場合は 0 に設定されます。

No data loaded.

LastModifiedTime
 生成

IP 解決が試行された時間。

No data loaded.

関連項目

IP 解決 DTS タスクを実行する

IP 解決 DTS タスクのスクリプト

DTS タスクを実行するためのワークフロー


レポート準備 DTS タスクでの ETL プロセス

レポート準備 DTS タスクの役割は、データ ウェアハウスにインポートされたデータを処理することです。このタスクは、ストアド プロシージャの処理、キューブ パーティションの定義、OLAP ディメンションの処理、および物理キューブ パーティションと仮想キューブの処理という 4 つの処理の段階で構成されています。

この DTS タスクは、"すべて"、"データの更新"、および "増分" という 3 つの処理モードで実行できます。どの場合でも、この DTS タスクは次の処理を実行します。

  • StoredProcInfo テーブルにあるプロシージャのうち、ProcessingEnabled 列が 1 に設定されている各プロシージャを実行する。
  • DimProcInfo テーブルにあるディメンションのうち、ProcessingEnabled 列が 1 に設定されている各ディメンションを処理する。
  • CubeProcInfo テーブルのキューブに対応する CubePartitionInfo にあるパーティションのうち、ProcessingEnabled 列が 1 に設定されている各パーティションを処理する。

ここでは、次のトピックについて説明します。

  • ストアド プロシージャを処理する
  • OLAP キューブ パーティションを定義する
  • 自動パーティション分割
  • 既存のパーティションを変更する
  • パーティション分割キー
  • データ ウェアハウスのキューブ テーブル
  • OLAP ディメンションを処理する
  • 物理キューブ パーティションを処理する
  • レポート準備タスクの再開ロジック
  • レポート準備タスクを追跡する


ストアド プロシージャを処理する

レポート準備タスクのストアド プロシージャの段階では、StoredProcInfo テーブルに対するクエリが実行され、また、このテーブルで ProcessingEnabled 列が 1 に設定されているすべてのストアド プロシージャが番号順に実行されます。

これらの処理が完了すると、レポート準備タスクのストアド プロシージャの段階が完了します。

StoredProcInfo テーブルの詳細については、「StoredProcInfo Table」を参照してください。


OLAP キューブ パーティションを定義する

ストアド プロシージャが処理された後、キューブ パーティションが定義されます。キューブは、以下に説明するようにレポート準備タスクによって自動的にパーティション分割されるように構成することも、システム管理者が手動でパーティション分割するように構成することもできます。この機能を使うと、大規模なデータ ウェアハウスを必要とするサイトのニーズを満たすと同時に、パーティションに分割されたデータの管理に必要なシステム管理オーバーヘッドを最小限に抑えることができます。

Commerce Server 2002 に同梱されているキューブはすべて、自動パーティション分割が有効になっています。つまり、レポート準備タスクは、動作するたびにファクト テーブル内のデータを調べ、必要に応じてデータ保存用のキューブ パーティションを作成します。

自動パーティション分割を行うには、ファクト テーブルが特定のルールに従っている必要があります。ユーザーが、ルールに従わないキューブを新しく追加する場合は、キューブ単位で自動パーティション分割を無効にすることができ、また、CubePartitionInfo テーブルにエントリを追加することによってキューブを手動で処理することもできます。

複数の OLAP パーティション

複数の OLAP パーティションを自動的に作成および処理するには、Commerce Server 2002 Enterprise Edition と Analysis Services 2000 Enterprise Edition を使う必要があります。複数の OLAP パーティションは Analysis Services Enterprise Edition だけでサポートされ、複数の OLAP パーティションの作成および処理は Commerce Server 2002 Enterprise Edition だけでサポートされています。

Commerce Server 2002 Enterprise Edition では、レポート準備タスクが、既定で、キューブのファクト テーブル内の 20,000,000 のキー列値ごとに、OLAP キューブにパーティションを作成します。この値を使うと、大規模サイトのパーティション数を最小限に抑えると同時に、それらのキューブに対する処理やクエリを効率的に実行できます。

1 つの OLAP パーティション

Commerce Server 2002 Standard Edition では、キューブごとに 1 つのパーティションが自動的に作成および処理されます。Commerce Server 2002 Standard Edition を使って、レポート準備 DTS タスクで自動的に処理される新しいキューブを作成する場合は、すべてのパーティション キー値に対応できるようにパーティション サイズを設定します。

Commerce Server 2002 Standard Edition では、CubeProcInfo テーブル内のキューブ定義によって、キューブのファクト テーブル内の約 17,000,000,000,000 のキー値に対応できる 1 つのパーティションが既定で定義されます。

csdw_spDefineOLAPPartitions ストアド プロシージャ

ストアド プロシージャの段階の一部として、csdw_spDefineOLAPPartitions ストアド プロシージャが実行されます。このストアド プロシージャは、自動パーティション分割サポートの核であり、さまざまなファクト テーブルを調べて、最後の処理の実行後に追加されたデータを保存するために新しいパーティションが必要であるかどうかを判断する役割を担っています。

ストアド プロシージャの段階では、次の処理が行われます。

  • 新しいパーティションが必要な場合は、このストアド プロシージャによって、新しいデータを保存するためのパーティションが CubePartitionInfo テーブルに追加されます。
  • 次に、csdw_spEnumOLAPPartitions ストアド プロシージャが実行されます。このストアド プロシージャは、処理の前にキューブに適用する必要があるすべてのキューブ パーティションのリストを返します。
  • その後、これらのパーティションは OLAP データベースに適用され、レポート準備タスクの後続の段階で処理されます。
  • パーティションのフィルタリングが変更されると、キューブが切り捨てられ、すべてのパーティションのすべてのデータが更新されます。

関連項目

自動パーティション分割

既存のパーティションを変更する

パーティション分割キー

データ ウェアハウスのキューブ テーブル


自動パーティション分割

Commerce Server 2002 に同梱されているキューブはすべて、自動パーティション分割が有効になっています。レポート準備タスクは、実行時に CubeProcInfo テーブル内の情報を使用して、キューブのファクト テーブル データを分析します。既存のパーティションの範囲を越える PartitioningKey 値を持つ行が PartitioningKeySource テーブル内に存在する場合は、新しいデータの保存に必要なパーティションが新しく追加されます。既定では、新しいパーティションは 20,000,000 の範囲のキー値に対応できます。この値は、CubeProcInfo テーブル内のキューブの PartitionSize 値を変更することによって調整できます。PartitionSize を変更しても既存のパーティションには作用しません。今後作成されるパーティションのサイズにのみ作用します。


既存のパーティションを変更する

自動パーティション分割には、2 つの段階があります。最初に、レポート準備タスクは csdw_spDefineOLAPPartitions ストアド プロシージャを実行して、CubePartitionInfo テーブル内に新しいパーティション定義を作成します。次に、定義されたパーティションを、csdw_spEnumOLAPPartitions ストアド プロシージャを使って列挙し、OLAP データベースがこのパーティション分割スキーマに従うために必要なアクションを実行します。

キューブのパーティション分割スキーマを変更する最も簡単な方法は、CubePartitionInfo テーブルからそのキューブのエントリを削除し、レポート準備タスクの次の実行時にそのエントリが再定義されるようにすることです。PartitionSize 値の範囲の各パーティションと共に、PartitioningKeySource テーブル内のすべての PartitioningKey 値に対応できる新しいパーティション定義が作成されます。

CubePartitionInfo テーブルに行を直接挿入することによって、パーティションを手動で定義することもできます。MinVal と MaxVal はパーティション分割キーのデータ型と一致しなければならないこと、および LastKeyProcessed は処理キーのデータ型と一致しなければならないことに注意してください。

パーティションの再分割を行う理由には、さまざまなものがあります。たとえば、その理由の 1 つとして、データ ウェアハウスから大量のデータを削除したために、あるパーティションの内容が空になった場合が挙げられます。

パーティションに変更を加えたためにそのパーティションにデータを再度読み込む必要がある場合は、レポート準備 DTS タスクを "すべて" または "更新" モードで実行するか、あるいはそのパーティションの CubeProcInfo.LastKeyProcessed の値を NULL に変更する必要があることに注意してください。


パーティション分割キー

PartitioningKey 列は、必要に応じて OLAP データベース内に新しいパーティションを自動的に作成するために、自動パーティション分割で使われます。PartitioningKey 列は、8 バイトの Integer データ型に変換できて、しかも元のデータ型に戻すこともできる列でなければなりません。PartitioningKeySource はファクト テーブルでもかまいません。あるいは、インポート バッチ ID が含まれているテーブルなどのように、ファクト テーブル内のキー値のスーパーセットが含まれている別のテーブルでもかまいません。PartitioningKeySource はキューブのファクト テーブルでなくてもかまいませんが、PartitioningKey と同じ名前で同じデータ型の列がファクト テーブル内に存在しなければならないことに注意してください。


データ ウェアハウスのキューブ テーブル

キューブ処理の動作は、データ ウェアハウスの CubeProcInfo と CubePartitionInfo という 2 つのテーブルによって制御されます。CubeProcInfo テーブルはキューブに関連するデータを保持し、キューブのパーティションを定義するために使用されます。CubePartitionInfo テーブルはキューブ内の実際のパーティションを定義し、キューブ内のデータの処理状態を追跡するために使用されます。

CubeProcInfo テーブルの詳細については、「CubeProcInfo Table」を参照してください。

CubePartitionInfo テーブルの詳細については、「CubePartitionInfo Table」を参照してください。

関連項目

OLAP キューブ

レポート準備 DTS タスクでの ETL プロセス


OLAP ディメンションを処理する

ストアド プロシージャを実行してキューブ パーティションを定義した後に、DimProcInfo テーブルに対するクエリを実行して、ProcessingEnabled が 1 に設定されているすべてのディメンションを番号順に処理することによって、OLAP ディメンションが処理されます。

DimProcInfo テーブルの詳細については、「DimProcInfo Table」を参照してください。

レポート準備タスクの処理オプションが "すべて" に設定されている場合は、processFull 処理モードでディメンションが処理されます。これの処理によって、ディメンションが再構築され、データが更新されます。データ削除 DTS タスクを使ってディメンション メンバを削除する場合は、レポート準備 DTS タスクを "すべて" モードで実行して、古いディメンション メンバを必ず削除してください。これを行わないと、古いディメンション値がデータ ウェアハウスに再度インポートされた場合に、名前が重複しているというエラーでディメンションの構築に失敗することがあります。

関連項目

レポート準備 DTS タスクでの ETL プロセス


物理キューブ パーティションを処理する

次に、CubeProcInfo テーブルのキューブごとに CubePartitionInfo で定義されているパーティションが処理されます。この処理では、CubeProcInfo テーブルに対するクエリによって、一意の ProcessingPass 値のリストが取得されます。返された ProcessingPass ごとに、csdw_spGetCubeProcessingPass ストアド プロシージャが呼び出されます。このストアド プロシージャは、この ProcessingPass に含まれるキューブのうち、ProcessingEnabled フラグが 1 に設定されているキューブに関連付けられているパーティションのリストを返します。

そのパーティションに関連付けられている、CubeProcInfo テーブルの Optimization 値が NULL でない場合は、指定された割合の最適化を目標とする集計処理がデザインされ、キューブに適用されます。たとえば、Optimization が 15 に設定されている場合、パフォーマンスを 15% 向上させるという目標で、集計処理がデザインされます。次に、DSO 処理オプションの processFull を使って、すべてのパーティションが処理されます。これにより、スキーマが再構築され、キューブ データが更新されます。

IncEnabled フラグが設定されている、CubeProcInfo テーブル内のキューブのパーティションは、次のように処理されます。

  • IncEnabled が 1 に設定されている場合は、キューブが増分処理されます。

    つまり、レポート準備タスクを増分モードで実行すると、キューブが増分処理されます。増分処理では、一時パーティションが作成され、レポート準備タスクの最後の実行以降にデータ ウェアハウスに読み込まれた行だけがこの一時パーティションに作成されます。その後、この一時パーティションはメイン キューブとマージされます。

  • IncEnabled が 0 に設定されている場合は、レポート準備タスクの実行時に必ずキューブのパーティションが完全に更新されます。

"データの更新" モードまたは "増分" モードの場合、ビジネス デスクのレポート モジュールなどの外部プロセスは処理中のキューブに対するクエリを実行できます。"すべて" モードの場合は、外部プロセスは処理中のキューブに対するクエリを実行できません。これは、ディメンションを完全に再構築する場合、既存のキューブが無効になるためです。

処理キー

ProcessingKey は、ファクト テーブルに追加された新しいデータがキューブに読み込まれたかどうかを調べるために、増分キューブ処理によって使われます。ProcessingKeySource テーブルおよびキューブのファクト テーブルに挿入された新しい行は、既存の ProcessingKey 値よりも大きな ProcessingKey 値を持つ必要があります。ProcessingKeySource はファクト テーブルでもかまいません。あるいは、ファクト テーブル内のキー値のスーパーセットが含まれている別のテーブルでもかまいません。

関連項目

レポート準備 DTS タスクでの ETL プロセス


レポート準備タスクの再開ロジック

ディメンションの処理状態は、DimProcInfo テーブルの LastSuccessfulDate 列、LastProcessedDate 列、LastProcessedStatus 列、および LastProcessedDescr 列で追跡されます。これらの列は、レポート準備タスクがディメンションを処理するたびに更新されます。処理が正常に終了した場合、LastProcessedStatus は 0 に設定され、LastProcessedDescr は正常終了を示すローカライズされた文字列に設定されます。これらの値は、csdw_SetDimProcessingStatus ストアド プロシージャによって設定されます。

パーティションの処理状態は、CubePartitionInfo テーブルの ProcessingState 列、LastSuccessfulDate 列、LastProcessedDate 列、LastProcessedStatus 列、LastProcessedDescr 列、および LastKeyProcessed 列で追跡されます。レポート準備タスクは、パーティション処理を開始する前に、ProcessingState 列および LastKeyProcessed 列に対するクエリを実行します。

レポート準備タスクが "増分" モードで動作していて、キューブの増分処理 (IncEnabled 列) が有効になっている場合、レポート準備タスクは ProcessingState 列の内容を調べます。この列が 0 に設定されている場合は、キューブが増分処理され、CubePartitionInfo テーブルから取得された値より大きな LastKeyProcessed 値を持つファクトだけが読み込まれます。ProcessingState が 1 に設定されている場合は、最後のキューブ処理が正常に終了したかどうかを判断できないことを示します。この場合は、重複したファクトが確実にキューブに読み込まれるようにするために、レポート準備タスクで、パーティションのデータをすべて更新する必要があります。

どのモードでパーティションを処理する場合でも、事前に csdw_InitPartitionProcessing ストアド プロシージャがキューブに対して実行されます。これにより、ProcessingState 列が 1 に設定されます。キューブが処理された後、その処理の試行が正常に終了したかどうかを示す情報が、csdw_SetPartitionProcessingStatus ストアド プロシージャによってデータベースに書き込まれます。このプロシージャは、ProcessingState 列を 0 に、LastKeyProcessed 列を現在の最大 ProcessingKey 値に、また、LastSuccessfulDate 列、LastProcessedDate 列、LastProcessedStatus 列、および LastProcessedDescr 列を適切な値に、それぞれ設定します。

レポート準備 DTS タスクは、"再試行可能な" エラーとして識別される特定のエラー条件を検出すると、処理を再試行します。このようなエラーを検出すると、レポート準備タスクは、設定された再試行間隔の間待ってから、設定された回数が終了するまで処理を再試行します。

レポート準備タスクが検出すると処理を再試行するエラーのリストは、レジストリ キー HKLM\SOFTWARE\MICROSOFT\Commerce Server\PostImportDTS の下の REG_MULTI_SZ 値 "Retryable Errors" として格納されています。このリストにエントリを追加したり、このリストからエントリを削除したりして、レポート準備タスクの再試行動作を変更できます。

このレジストリ値が存在する場合、レポート準備タスクは、"Retryable Errors" として指定されている値を使います。このレジストリ値が存在しない場合、レポート準備タスクはこのレジストリ値を作成し、エラー コードの既定のセットをこのレジストリ値に設定します。

次の表は、レポート準備タスクが処理を再試行するためのレジストリ キーで初期化される HRESULT を示しています。

HRESULT | 説明
2147217495 | 非同期実行可能オブジェクトが、データ ソース オブジェクト (DSO) のコミット時にエラーを報告しています。
2147221457 | DSO が Windows NT サーバーを検出できません。
2147221455 | DSO が Analysis Services に接続できません。
231 | DSO が分析データ ソース (データ ウェアハウスの SQL Server データベースなど) に接続できません。
2147221468 | 分析オブジェクトがロックされています。
2147467259 | サービス dbnetlib が SQL Server コンピュータに接続できません。
2147221386 | ODBC エラーが発生しました。このエラーは、SQL Server がキューブまたはディメンションの処理中に応答を停止した場合に発生します。
2147221453 | タスクがリポジトリに接続できません。このエラーは、SQL Server リポジトリを使っており、タスクの処理中に SQL Server が応答を停止した場合に発生します。
2147221387 | ネットワーク エラーが発生しました。
2147221424 | DSO が Analysis Services に接続できません。

関連項目

レポート準備 DTS タスクでの ETL プロセス


レポート準備タスクを追跡する

レポート準備タスクは OutputDebugString 関数を使って、追跡メッセージのレポートを作成します。処理中にデバッグ文字列を取り出して表示することが可能なデバッグ ツールを使うと、レポート準備タスクによって実行されている各段階の処理を調べることができます。これは、CSDWDbgSrv.EXE ユーティリティを利用して追跡メッセージを表示する、他の DTS タスクとは異なります。

関連項目

レポート準備 DTS タスクでの ETL プロセス


新しいデータ ウェアハウス ファイル グループを作成する

SQL Server ファイル グループを使って、複数のディスクにデータを分散したり、クエリ処理に並行スレッドを使ったりすることによって、データ ウェアハウスのパフォーマンスを向上させることができます。また、ファイル グループを使うと、データ ウェアハウス データベースの管理が容易になります。

SQL Server には、システム テーブルを含むプライマリ データ ファイルを持つプライマリ ファイル グループがあります。また、割り当ておよび管理のためにデータ ファイルをグループ化し、ユーザー定義のファイル グループを作成できます。

別々のディスク上に複数のデータ ファイルを作成し、それらのファイルを含むユーザー定義のファイル グループを作成できます。ファイル グループを作成する場合は、物理ディスクごとに 1 つのファイルを含めるようにします。ファイル グループを使って、データ ファイルを整理できます。たとえば、頻繁にクエリが実行されるファイルと、頻繁に変更されるファイルを分離できます。

SQL Server は、1 つのファイル グループを既定のファイル グループとして指定します。特に指定しない場合、既定のファイル グループは、データベース作成時のプライマリ ファイル グループに設定されます。既定のファイル グループには、作成時にファイル グループが指定されなかったすべてのテーブルおよびインデックスのページが含まれます。

既定のファイル グループがプライマリ ファイル グループのままである場合は、プライマリ ファイル グループのサイズを適切に設定するか、またはプライマリ ファイル グループが自動的に拡張するように設定して、領域が使い果たされないようにする必要があります。このプライマリ ファイル グループは、すべてのシステム テーブル、およびユーザー定義のファイル グループに割り当てられていないすべてのテーブルとインデックスを保持できる十分な大きさでなければなりません。

プライマリ ファイル グループの領域が使い果たされると、システム テーブルに情報を追加できなくなります。ただし、ユーザー定義のファイル グループの領域が使い果たされた場合は、そのファイル グループに割り当てられているユーザー ファイルだけが影響を受けます。

ユーザー定義のファイル グループは、データの負荷を複数のディスクに分散することによって、および並行スレッドを使うことによって、データ アクセスを向上させることができます。テーブルの作成時に、テーブルをユーザー定義のファイル グループに割り当てることができます。データはファイル グループに書き込まれるので、各ファイルが並行していっぱいになります。

各ファイルは、物理的に、1 つのディスクまたはディスク セットに配置されます。SQL Server は、各データベース オブジェクトとディスク上のその位置とを関連付けるファイル マップを保持します。たとえば、4 つのディスクにまたがるファイル グループに 1 つのファイルが作成されると、1 つのファイル マップが 4 つすべての物理ディスク上のデータの場所を参照します。4 つのディスクにまたがるファイル グループに 2 つのファイルが作成されると、2 つのファイル マップ (ファイルごとに 1 つのマップ) が 4 つすべての物理ディスク上のデータの場所を参照します。

ファイル グループは、並行スレッドを使って、データ アクセスを向上させます。テーブルが順次アクセスされると、システムはファイルごとに別のスレッドを並行して作成します。システムは、4 つのファイルを持つファイル グループ内のテーブルに対してテーブル スキャンを実行する場合、4 つの別々のスレッドを使って、データを並行して読み取ります。通常、別々のディスク上の複数のファイルを使うと、パフォーマンスが向上します。ファイル グループ内に非常に多くのファイルがある場合は、非常に多くの並行スレッドが実行され、ボトルネックが生じます。

ファイル グループは、データの負荷を分散してパフォーマンスを向上させるほかに、保守を簡易化するためにも使うことができます。

ファイル グループを使って保守を簡易化するには

  • データベース全体をバックアップまたは復元するのではなく、個々のファイルまたはファイル グループをバックアップまたは復元します。大規模なデータベースでは、効果的なバックアップおよび復元のための方法として、ファイルまたはファイル グループのバックアップが必要となることがあります。
  • 同様の保守要件を持つテーブルおよびインデックスは、同じファイル グループに入れます。たとえば、一部のオブジェクトに対して、他のオブジェクトよりも頻繁に保守を行わなけらばならない場合があります。2 つのファイル グループを作成し、それらのグループにテーブルを割り当てることにって、daily グループ内のテーブルに対して毎日保守タスクを実行し、weekly グループ内のテーブルに対して 1 週間ごとに保守タスクを実行できます。これにより、2 つのファイル グループ間のディスク競合が減ります。
  • 頻繁に保守を行う必要のある 1 つのテーブルを、独自のファイル グループに割り当てます。頻繁に更新されるテーブルは、データベース全体から分離してバックアップおよび復元しなければならない場合があります。

注

  • データベースごとに最大 256 のファイル グループを作成できます。
  • ファイル グループは、データ ファイルだけを含むことができます。
  • トランザクション ログをファイル グループに含めることはできません。
  • データベース ファイルと無関係にファイル グループを作成することはできません。ファイル グループは、データベース内のファイルをグループ化するための管理機能です。

ファイル グループの作成に関するヒント集

ファイル グループを作成する前に、データベース構造、データ、トランザクション、およびクエリを十分に理解し、テーブルとインデックスを特定のファイル グループに入れるための最適な方法を決定する必要があります。

ファイル グループを作成する場合は、次のことをお勧めします。

  • パフォーマンスを考慮するのではなく保守要件を使って、ファイル グループの数を決定する。
多くの場合、RAID のストライプ機能を使うと、ファイル グループを定義および管理する管理上の負担を増やさずに、ファイル グループで達成できる程度と同様のパフォーマンス向上が得られます。
  • ファイル グループを使う場合は既定のファイル グループを変更する。
データベースに複数のファイル グループを作成する場合は、1 つのファイル グループを既定として割り当てる必要があります。これにより、予期しないテーブル拡張によって、プライマリ ファイル グループ内のシステム テーブルが制約を受けないようにすることができます。
  • ファイル グループがフォールト トレランスを提供しないことに注意する。
フォールト トレランスを実現するために、RAID 1 を使って各ディスクをミラー化できます。ただし、これはコストのかかる方法です。
  • データベースを最適化するために、ファイル グループをハードウェアベースの RAID と組み合わせる。
ファイル グループをハードウェアベースの RAID ソリューションと組み合わせることができます。まず、ハードウェア ストライプを設定してから、ファイル グループを使って、複数のハードウェア ストライプ セットにデータを分散します。ファイルごとに使われる別々のスレッドがデータに並行してアクセスすることによって、複数のディスクに負荷が分散されるので、競合が減ります。

ファイル グループに新しいデータベースを作成するには

  1. SQL Server Enterprise Manager で、サーバー グループとサーバーを順に開きます。
  2. [データベース] を右クリックし、[新規データベース] をクリックします。
  3. [データベース プロパティ] ダイアログ ボックスの [名前] ボックスに、新しいデータベースの名前を入力します。

    注

    • プライマリ データベース ファイルおよびトランザクション ログ ファイルは、プレフィックスとして指定したデータベース名を使って作成されます (たとえば、newdb_Data.mdf や newdb_Log.ldf)。プライマリ データベース ファイルおよびトランザクション ログ ファイルの初期サイズは、model データベースに指定されている既定のサイズと同じです。プライマリ ファイルには、データベースのシステム テーブルが含まれます。
  4. [データ ファイル] タブで、[ファイル名] の一覧の最初の空欄の横にある 省略記号 をクリックします。
  5. [データベース ファイルの場所] ダイアログ ボックスで、新しいデータベース ファイルの場所に移動します。次に、[ファイル名] ボックスで、新しいデータベース ファイルの名前を入力し、[OK] をクリックします。
  6. [データベース プロパティ] ダイアログ ボックスの [データ ファイル] タブで、次の操作を行います。
    項目 | 操作
    [ファイル名] | データベース ファイルのファイル名を入力します。
    [場所] | データベース ファイルの場所を入力するか、または省略記号をクリックしてその場所に移動します。
    [初期サイズ (MB)] | データベース ファイルの初期サイズを MB 単位で入力します。
    [ファイル グループ] | データベース ファイルの所属先となるファイル グループの名前を入力します。
  7. [OK] をクリックします。

データベースが作成され、新しいデータ ファイルが指定したファイル グループに所属します。


構成の同期 DTS タスクを実行する

管理データベースに格納されているサイト構成データをデータ ウェアハウスにインポートするには、構成の同期 DTS タスクを使用します。このタスクは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [値の同期] での処理とは異なります。このボタンをクリックすると、値が IIS メタベースから管理データベースに読み込まれ、次に管理データベースからデータ ウェアハウスに読み込まれます。詳細については、「アプリケーションを構成する」を参照してください。

サイト構成データをデータ ウェアハウスにインポートする場合だけでなく、次の処理を行う場合にも、構成の同期 DTS タスクを実行します。

  • データ ウェアハウス リソースの構成
  • サイトのアンパック

サイトのトポロジ設定が記録されるサイト構成データは、管理データベースから読み取るのではなく、データ ウェアハウスに格納しておきます。

データ ウェアハウスは、データ ウェアハウス内の 1 つのサイトまたはすべてのサイトと同期させることができます。インポート タスクや削除タスクを実行する前に、同期タスクを実行する必要があります。

注

  • このタスクは、いったん開始するとキャンセルできません。[キャンセル] ボタンを押すことはできますが、押してもタスクは終了しません。

1 つのサイト構成をデータ ウェアハウスと同期させるには

複数のサイト構成をデータ ウェアハウスと同期させるには

1 つのサイト構成をデータ ウェアハウスと同期させるには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] をクリックします。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [構成の同期 (Commerce Server)] をクリックします。
  4. [DW プロパティの同期] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | 同期タスクの説明を入力します。
    [操作レベル] | サイトとデータ ウェアハウスを同期させるには、ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧から、データ ウェアハウスと同期するサイトを選択します。
  5. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  6. [OK] をクリックします。
  7. [パッケージ] メニューの [実行] をクリックします。

    同期の進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  8. [OK] をクリックし、[終了] をクリックします。

データ ウェアハウスが、Commerce Server のサイト構成と同期されます。Web ログ ファイル インポート プロパティを設定し、データ ウェアハウスにデータをインポートできます。

複数のサイト構成をデータ ウェアハウスと同期させるには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [構成の同期 (Commerce Server)] をクリックします。
  4. [DW プロパティの同期] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | 同期タスクの説明を入力します。
    [操作レベル] | すべてのサイトをデータ ウェアハウスと同期させるには、ボックスの一覧の [データ ウェアハウスのレベル] を選択します。
    [データ ウェアハウス名] | ボックスの一覧から、サイトと同期させるデータ ウェアハウスを選択します。
  5. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  6. [OK] をクリックします。
  7. [パッケージ] メニューの [実行] をクリックします。

    同期の進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  8. [OK] をクリックし、[終了] をクリックします。

データ ウェアハウスが、Commerce Server のサイト構成と同期されます。これで、データ ウェアハウスにデータをインポートできます。

関連項目

既定の Web サイト プロパティをインポート用に構成する

Web サーバー ログ インポート DTS タスクを構成する

アプリケーションを構成する

サイトに非 Commerce のアプリケーションを追加する


データ ウェアハウスにデータをインポートする

データ ウェアハウスにデータをインポートするには、Commerce Server インポート DTS タスクを使います。最初にファクト データがインポートされ、次にディメンション データがインポートされるように、次の順序でデータ ウェアハウスにデータをインポートします。

  • Web ログ ファイル データ
  • トランザクション データ
  • 商品カタログ データ

Commerce Server DTS タスクを手動で構成してデータをインポートすることも、データ ウェアハウスのインポート ウィザードを使ってインポートすることもできます。このウィザードの詳細については、「データ ウェアハウスのインポート ウィザード」を参照してください。

ここでは、次のトピックについて説明します。

  • データ ウェアハウスにインポートするデータを指定する
  • インポートするデータのタイム ゾーンと開始曜日を変更する
  • 既定の Web サイト プロパティをインポート用に構成する
  • データ ウェアハウスに対してログ ファイルの場所を指定する
  • Web サーバー ログ インポート DTS タスクを構成する
  • Web サーバー ログ インポート DTS タスクを実行する
  • 大規模サイトの Web サーバー ログ インポート DTS タスクを実行する
  • トランザクション データ インポート DTS タスクを実行する
  • 商品カタログ データ インポート DTS タスクを実行する
  • 多言語データと複数通貨データをインポートする
  • cookie をインポートする
  • DTS タスクを再試行する


データ ウェアハウスにインポートするデータを指定する

Commerce Server は、すべてのトランザクション データおよび Web サーバー ログ ファイル データをデータ ウェアハウスに自動的にインポートします。ただし、Commerce Server ビジネス デスクを使うと、データ ウェアハウスにインポートするカタログ データを選択できます。

インポートするトランザクション プロパティを選択する

インポートするカタログ プロパティを選択する

新しいプロパティを処理する


インポートするトランザクション プロパティを選択する

トランザクション データ インポート DTS タスクの実行中にデータ ウェアハウスにインポートするトランザクション プロパティを選択するには、Commerce データベースの TransDimension テーブルを使います。

ここでは、Commerce データベースとデータ ウェアハウスの両方が、OrderformHeader、OrderformLineItems、OrderGroup または OrderGroupAddresses テーブル内の新しい列で拡張されていることを前提に説明を行います。Commerce データベース内の拡張テーブルの名前は、データ ウェアハウス内の拡張テーブルの名前と一致しなければなりません。また、各テーブルに追加されている列の名前も一致する必要があります。

トランザクション データ インポート DTS タスクによってデータ ウェアハウスにインポートするトランザクション プロパティを選択するには

  1. [スタート] ボタンをクリックし、[管理ツール] をポイントします。次に [Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[Commerce Server マネージャ]、[Microsoft SQL Server]、[SQL Server グループ]、ローカル サーバーのノード、[データベース] の順に展開します。次に、Commerce データベース (たとえば、[Retail_commerce]) を展開し、[テーブル] をクリックします。
  3. Commerce Server マネージャのコンテンツ ペインで、[TransDimension] を右クリックし、[テーブルを開く] をポイントします。次に、[全行を返す] をクリックします。
  4. このテーブルの最後の行は空白です。最後の行に次のデータを入力します。
    列名 エントリ
    DimensionName
             新しい列の名前を入力します。
    FieldName
             新しい列の名前を入力します。
    CategoryName
             拡張テーブルの名前を入力します。
    KeyField
             0
    RequiredDim
             1
  5. ツール バーの [!] ボタンをクリックし、変更を保存します。

次回トランザクション データ インポート DTS タスクを実行すると、Commerce データベースの拡張列に格納されているデータがデータ ウェアハウスの拡張列にインポートされます。


インポートするカタログ プロパティを選択する

ビジネス デスクを使って、データ ウェアハウスにインポートするカタログ プロパティを選択します。

データ ウェアハウスにインポートするカタログ プロパティを選択するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [プロパティ定義] 画面で、データ ウェアハウスにインポートするプロパティを選択し、ツール バーの 開く をクリックします。
  4. [プロパティ定義 - <プロパティ名>] 画面で、[分析用にデータを保存] を選択します。
  5. 変更を保存して [カタログ定義デザイナ] 画面に戻るには、ツール バーの 保存して商品定義リストに戻る をクリックします。
  6. カタログを Web サイトに発行するには、[カタログ エディタ] をクリックし、ツール バーの カタログの発行 をクリックします。

このカタログ プロパティのデータは、Commerce Server データベースに収集されます。

注

  • カタログ定義では、プロパティの名前と型は変更できません。プロパティを一度削除した後、新しい名前または型を指定してプロパティを追加してください。
  • さまざまな種類のデータをインポートできるようにデータ ウェアハウス スキーマを拡張するには、Commerce Server 2002 Enterprise Edition を使う必要があります。この機能は、Commerce Server 2002 Standard Edition では使用できません。


新しいプロパティを処理する

Web サイト上で新しいプロパティが有効になった後に、商品カタログ インポート DTS タスクを実行できます。この DTS タスクは、新しいプロパティを次のように処理します。

  1. 既存のデータ ウェアハウス スキーマとカタログ スキーマを比較する。
  2. 必要に応じて、データ ウェアハウス スキーマに新しい列を追加して、データ ウェアハウスにデータをインポートする。増分インポートでは、新しい列に対してのみ値が追加され、フル インポートでは、すべてのデータが追加される。
  3. 新しいプロパティの新しいデータ ウェアハウス クラスとメンバを自動的に作成する。データ ウェアハウスに関連は作成しない。


インポートするデータのタイム ゾーンと開始曜日を変更する

時刻データは、データ ウェアハウスにインポートされるときに、タイム ゾーンと開始曜日が適用されます。

既定では、Microsoft SQL Server のタイム ゾーンおよび開始曜日がデータ ウェアハウスに継承されます。また、インポートされる時刻データにデータ ウェアハウスが適用するタイム ゾーンや開始曜日も構成できます。

タイム ゾーンと開始曜日を変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース] の順に展開し、[データ ウェアハウス] を右クリックして、[プロパティ] をクリックします。
  2. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [時刻] タブで、次の操作を行います。
    項目 | 操作
    [適用するタイム ゾーン] | ボックスの一覧からタイム ゾーンを選択します。
    [開始する曜日] | ボックスの一覧から開始する曜日を選択します。
  3. [OK] をクリックして、変更を保存します。

    注

    • SQL Server の開始する曜日はレポートで使用されます。[データ ウェアハウスのプロパティ] ダイアログ ボックスで設定した開始する曜日は、Web ログ ファイルから 1 週間ごとにインポートされるデータを集計するために使われます。


既定の Web サイト プロパティをインポート用に構成する

データ ウェアハウスに Web ログ ファイルをインポートするには、World Wide Web Consortium (W3C) ログ ファイル形式を使用するために Web ログ ファイル プロパティを構成する必要があります。Web ログ ファイル プロパティを構成するには、インターネット サービス マネージャを使います。

既定の Web サイト プロパティをインポート用に構成するには

  1. [インターネット インフォメーション サービス] を展開し、サイトをアンパックしたサーバーを展開します。次に、既定の Web サイトを右クリックし、[プロパティ] をクリックします。
  2. [既定の Web サイトのプロパティ] ダイアログ ボックスの [Web サイト] タブで、次の操作を行います。
    項目 | 操作
    [ログ収集を有効にする] | ログを有効にして Web サイトの利用状況を記録する場合に、このチェック ボックスをオンにします。
    [アクティブ ログ形式] | ボックスの一覧の [W3C 拡張ログファイル形式] をクリックします。
  3. [プロパティ] をクリックします。
  4. [拡張ログ プロパティ] ダイアログ ボックスの [拡張プロパティ] タブで、次の操作を行います。
    選択項目 | インポート対象
    [日付] | Web サイトが利用された日付。
    [時刻] | 利用された時間。
    [クライアント IP アドレス] | サーバーにアクセスしたクライアントの IP アドレス。
    [ユーザー名] | サーバーにアクセスしたユーザーの名前。
    [サーバー IP アドレス] | ログ エントリが生成されたサーバーの IP アドレス。
    [サーバー ポート] | クライアントの接続先のポート番号。
    [方法] | クライアントが実行したアクション (Web ページの表示など)。
    [URI Stem] | アクセスしたリソース (HTML ページなど) の統一リソース識別子 (URI) 。
    [URI クエリ] | クライアントが実行したクエリ (存在する場合)。たとえば、クライアントが検索した検索文字列などです。
    [プロトコルの状態] | HTTP に関連したアクションのステータス。
    [Win32 の状態] | Microsoft Windows によって使用されたアクションのステータス。
    [送信バイト数] | サーバーによって送信されたバイト数。
    [受信バイト数] | サーバーによって受信されたバイト数。
    [ユーザー エージェント] | クライアントで使用されるブラウザ。
    [Cookie] | 送受信された cookie の内容。
    [履歴] | ユーザーが直前に表示していたサイト。

    重要

    • Web ログ ファイルが正常にインポートされるように、[クライアント IP アドレス]、[URI Stem]、および [時間] を選択する必要があります。日付のレポートを正確にするために "日付" プロパティを含めます。Web サーバー プロパティを設定する方法については、「Web サーバーを構成する」を参照してください。
    • [ファイル名およびロールオーバーに地域設定を使用する] を選択しないでください。データ ウェアハウスでは、ログ ファイル名にグリニッジ標準時 (GMT) を使う必要があります。このオプションを選択すると、一部のログ ファイルがインポートされないことがあります。
  5. [OK] をクリックして [拡張ログ プロパティ] ダイアログ ボックスを閉じ、[OK] をクリックして [既定の Web サイトのプロパティ] ダイアログ ボックスを閉じます。

Web ログ ファイル プロパティが、W3C ログ ファイル形式で設定されます。

既定の Web サイトのプロパティをデータ ウェアハウスへのインポート用に設定した後、Commerce Server マネージャの IIS プロパティを IIS メタベースおよびデータ ウェアハウスのプロパティと同期する必要があります。IIS 側のプロパティとデータ ウェアハウスを同期させる方法については、「構成の同期 DTS タスクを実行する」を参照してください。

関連項目

データ ウェアハウスのインポート処理のトラブルシューティング


データ ウェアハウスに対してログ ファイルの場所を指定する

データ ウェアハウスにインポートするログ ファイルの場所を指定するには、次の操作を行います。

データ ウェアハウスに対してログ ファイルの場所を指定するには

  1. [インターネット インフォメーション サービス] を展開し、該当するサーバー名を展開します。次に、[既定の Web サイト] を右クリックし、[プロパティ] をクリックします。
  2. [既定の Web サイトのプロパティ] ダイアログ ボックスの [プロパティ] をクリックします。
  3. [拡張ログ プロパティ] ダイアログ ボックスの [全般] タブで、[ログ ファイル ディレクトリ] ボックスにログ ファイル ディレクトリのパスを入力します。
  4. [OK] をクリックして [拡張ログ プロパティ] ダイアログ ボックスを閉じ、[OK] をクリックして [既定の Web サイトのプロパティ] を閉じます。

データ ウェアハウスは、Web サイトでログ ファイルを検索します。

関連項目

Web サーバーを構成する

アプリケーションを構成する

サイトに非 Commerce のアプリケーションを追加する

構成の同期 DTS タスクを実行する

データ ウェアハウスのインポート処理のトラブルシューティング


Web サーバー ログ インポート DTS タスクを構成する

Web ログ ファイルからデータ ウェアハウスにインポートするデータの制御とカスタマイズを行うために、7 つのプロパティ セットを設定できます。これらのプロパティで選択する設定によって、インポート プロセスを高速化したりデータ ウェアハウスの管理を容易にするだけでなく、より詳しいデータ分析が可能になります。

注

  • 特に指定しない場合、これらの設定は、そのサイト内のすべてのアプリケーション、およびデータ ウェアハウスに関連付けられているすべてのサイト内のすべてのアプリケーションに適用されます。

次のプロパティ セットは、Web ログ ファイルからデータ ウェアハウスにインポートするデータを制御します。

  • Web ログの既定のファイルを設定する リダイレクトや複数の URL がある場合にも、サイトの既定のページへの一意な訪問者のヒット数が正確であるようにします。
  • Web ログ ファイルの除外を設定する 次のデータが、データ ウェアハウスにインポートされないようにします。特定のホストからのヒット数、特定のファイル形式またはファイル式の要求、およびクローラによるヒット数。
  • ユーザーの推論を設定する インポート中に設定したユーザー数と訪問数の推論を、組織の分析ニーズに合うようにカスタマイズします。
  • 訪問の推論を設定する インポート中に設定したユーザー数と訪問数の推論を、組織の分析ニーズに合うようにカスタマイズします。
  • "時間重複" プロパティと "交換" プロパティを設定する ログ ファイル間で時間が重複していた場合の処置をカスタマイズします。
  • Web ログ ファイルのクエリ文字列のインポート プロパティを設定する Web サイトのクエリ文字列をインポートして、そのクエリ文字列に関連するデータを分析できるようにします。
  • Web ログ インポートの再開プロパティを設定する 異常なログ ファイルの検出後、ログ インポートを自動的に再開します。

関連項目

構成の同期 DTS タスクを実行する

データ ウェアハウスにデータをインポートする

レポート準備 DTS タスクを実行する


Web ログの既定のファイルを設定する

既定のファイルとは、ディレクトリ インデックス ファイルまたはホーム ページとしても知られ、ユーザーがブラウザの [アドレス] ボックスに特定のファイル名を含めずにサイトの URL を入力した場合に表示される Web ページです。たとえば、「www.microsoft.com」または「www.microsoft.com/default.htm」のどちらを入力しても www.microsoft.com/default.htm ページを表示できます。ただし、Web ログ ファイルでは、これら 2 つの URL を 2 つの異なるページへのヒットとしてカウントします。

Commerce Server 2002 の [既定のファイル] オプションを設定すると、複数の URL が同じページへのヒットとしてカウントされるように指定できます。このオプションを使えば、全体的なサイト ユーザー統計情報の正確性を損なうことなく、サイトへのリダイレクトおよび複数のパスを作成できます。

さらに、ファイルをインポートする前に、最上位ディレクトリを付けずにファイル名を表示するように選択することもできます。この機能によって、レポートに表示する必要のないサブディレクトリにサイト ディレクトリが格納されている場合に、ファイル操作が容易になります。

インターネット インフォメーション サービス (IIS) 5.0 の場合、この設定は、IIS 内に一覧で表示される既定のドキュメントと、セットアップ時に自動的に同期されます。

注

  • この操作を実行したら、データをデータ ウェアハウスにインポートする前に構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させる必要があります。
  • 非 IIS サーバーの場合、既定の設定は Index.html、Index.htm、および Default.htm です。これらの設定がサイトには不適切な場合は、要求カウントが正確になるように変更してください。

ディレクトリ インデックス ファイルを設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [既定のファイル] タブで、次の操作を行います。
    項目 | 操作
    [ファイル システムのパスから最上位ディレクトリを切り捨てる] | 最上位ディレクトリを付けずにファイル名を表示するには、このチェック ボックスをオンにします。
    [サイトは .NET の cookie を持たないセッションを使用しています] | サイトが .NET の cookie を持たないセッションを使う場合は、このチェック ボックスをオンにします。
    [ディレクトリ インデックス ファイル] | ディレクトリ インデックス ファイルとして指定するファイルの名前を入力します。
    [追加] | 既定のファイル一覧に新しいディレクトリ インデックス ファイルを追加するときにクリックします。
  6. [適用] をクリックし、[OK] をクリックします。

    ディレクトリ インデックス ファイルが、Web ログ ファイル インポート プロセスに対して設定されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


Web ログ ファイルの除外を設定する

特定の種類のデータをインポートから除外できます。特定のデータを除外することで、データ ウェアハウスを管理しやすいサイズに保つことができ、ページ要求がより正確にレポートに定義されます。除外できるデータの種類は次のとおりです。

  • ホスト 特定のホストから送信したユーザーからのデータを除外できます (たとえば、従業員やソフトウェア テスト要員)。この機能は、通常、内部ホストを除外するために使われます。ただし、任意のホストを除外指定できます。

    データ ウェアハウスは、除外するホストに関連付けられたヒットをインポートしません。ただし、ヒット カウントの要約や帯域幅データなどの一部の集計専用レポートには、除外するホストに関連付けられたヒットも含められます。

    除外するホスト名を入力するときには、Commerce Server 2002 がログ ファイルの検索に使用できる文字列を入力する必要があります。たとえば、「www.microsoft.com」を入力すると、ホストが www.microsoft.com であるユーザーからの情報を除外します。入力する名前には、スペースを使わないでください。

  • ファイルの種類 Web サイトのあるページに複数のファイルが含まれる場合でも、そのページ内の各ファイルへのヒットではなく、1 つのページ要求のみがカウントされるようにします。たとえば、あるページに複数のグラフィックスが含まれ、それぞれが独立したファイルに格納されていて、それらのグラフィックが論理的にページの一部になっているときは、ヒット カウントが正確になるように、それらのグラフィックス ファイルをインポートから除外します。除外プロパティでファイルを除外するように設定するには、除外するファイルの種類の拡張子を指定します。

    特に指定しない限り、.gif、.jpg、.jpeg、.css、.cdf の各拡張子が付いたファイルが Commerce Server のインポートから除外されます。除外一覧から拡張子を削除することもできます。入力する名前は、Commerce Server がログ ファイル内を検索する文字列です。拡張子は正確に入力する必要があります。

  • ファイル式 インポートから除外するファイルを拡張子で指定するほかに、ファイル パスで指定することもできます。これには、ファイルごとに完全なファイル式を指定する方法と、ワイルドカード文字を使って、式の中に類似した文字列を共有する複数のファイルを除外する方法があります。

    ファイル式では、大文字と小文字は区別されません。アンダースコア (_) とスペースは使用できません。除外する文字列は、正確に入力する必要があります。

    次の表は、ファイル式に使用できるワイルドカード文字の一覧を示しています。

    文字 説明 例
    * 文字列内の任意の文字数に一致します。 t* は、Test、total、および Terrific に一致します。
    ? 任意の 1 文字の英数字に一致します。 Te?t は、Test と text に一致します。
  • クローラ 検索エンジンは、World Wide Web での特定のコンテンツ、タイトル、キーワードなどのチェックをクローラに依存しています。特に指定しない限り、インターネット検索エンジン、ロボット、およびその他のユーザー エージェントによるヒットがデータ ウェアハウスにインポートされないようにするため、クローラはインポートから除外されます。ただし、これらのヒットはヒット カウントの要約や帯域幅データなどのレポートには含まれます。

    特に指定しない限り除外されるクローラの一覧は、Commerce Server ルート ディレクトリの Crawler.ini にあります。この一覧には、主要な Web 監査組織で除外される主なクローラが含まれています。除外一覧に新しいクローラを追加したり、インポートに使用するクローラを復元することができます。ただし、クローラを復元すると、システム全体のパフォーマンスが低下する場合があります。

[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [除外] タブには、操作するデータの種類を選択できるボックスの一覧があります。除外するすべての項目の一覧を表示する場合は、ボックスの一覧の [すべて] を選択します。

特に指定しない限り、インポートからデータを除外すると、サイトで稼働するすべてのアプリケーションの同じデータも除外されます。また、サイトで稼動するアプリケーションのうち、特定のアプリケーションからのデータは除外し、その他のアプリケーションからの類似データをインポートすることもできます。

たとえば、Application1 と Application2 という 2 つのサイト アプリケーションがあり、どちらのアプリケーションにも /Examples というディレクトリが含まれているとします。この場合、両方のアプリケーションの /Examples ディレクトリの内容を除外するように選択できます。また、Application1 の /Examples ディレクトリに含まれるデータのみを除外するよう指定することもできます。このとき、Application2 の /Examples ディレクトリの内容は、引き続きインポートされることになります。

注

  • この操作を実行したら、データをデータ ウェアハウスにインポートする前に、サイト構成をデータ ウェアハウスと同期させる必要があります。

インポートの除外を追加するには

インポートの除外を削除するには

インポートの除外を追加するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [除外] タブで、次の操作を行います。
    項目 | 操作
    [除外条件に既定のクローラ一覧を含む] | 既定のクローラ一覧にあるクローラをインポートしないようにするには、このチェック ボックスをオンにします。
    [追加] | [除外] ダイアログ ボックスを開いて新しい除外項目を作成するときにクリックします。
  6. [除外] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [除外カテゴリの選択] | 追加する除外の種類をボックスの一覧から選択します。
    [名前] | Commerce Server がログ ファイルで検索する文字列を入力します。たとえば、「*.gif」と入力すると、グラフィックス ファイルが除外されます。Commerce Server は、入力した文字列に一致する項目をインポートしません。スペースを含めることはできません。
    [サイト内のすべてのアプリケーション] | サイト内のすべてのアプリケーションからの項目を除外する場合に、このオプションを選択します。
    [サイト内の選択されたアプリケーション] | 項目を除外するアプリケーションを指定する場合に、このオプションを選択します。
    [すべて選択] | ボタンの上の一覧に表示されているすべてのアプリケーションからのデータを除外するには、このオプションを選択します。
    [すべて選択解除] | ボタンの上の一覧に表示されたすべてのアプリケーションの選択を取り消すには、このオプションを選択します。
  7. [OK] をクリックして [除外] ダイアログ ボックスを閉じ、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [除外] タブに戻ります。
  8. 続けて除外を追加します。除外の追加が終了したら、[適用] をクリックします。次に、[OK] をクリックして追加を保存し、ダイアログ ボックスを閉じます。

    インポートの除外が、Web ログ ファイル インポート プロセスに対して設定されます。

  9. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

インポートの除外を削除するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [除外] タブで、次の操作を行います。
    項目 | 操作
    [除外の種類] | 削除する除外項目を選択します。
    [削除] | 除外項目を削除します。
  6. [適用] をクリックし、[OK] をクリックしてダイアログ ボックスを閉じます。

    インポートの除外が、Web ログ ファイル インポート プロセスに対して設定されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


推論の精度

Commerce Server 2002 は、ユーザーによる訪問を基にして、Web サイト トラフィックについての情報を得ます。1 回の訪問は、指定した期間内に同一ユーザーが行った要求のセットとして定義できます。ただし、Web のクライアント コンピュータから Web サーバー コンピュータに送信される情報には限りがあるため、完全にユーザーを識別することはできません。Commerce Server は、Web ログ ファイルのプロパティに基づいてユーザーを識別しようとします。推論とは、Web ログ ファイルに記録されたユーザー データと訪問データに基づいて、一意のユーザーを識別する処理です。

推論の精度は、利用できるデータに依存します。精度を最大限に高めるために、優先順に各ヒットに対してユーザーの推論アルゴリズムが使用されます。

  • Commerce Server または顧客定義の cookie、あるいはユーザー名がヒットの中に含まれている場合、ユーザーが明確に識別されるので、精度はかなり高くなります。このようにユーザーが明確に識別されるのは、ユーザーが cookie を有効にしたか、ドメイン内にいるか、または、cookie を使わない買い物をサポートする認証マネージャをサイトが使用しているためです。
  • cookie もユーザー名もヒットの中に含まれていない場合は、クライアント IP アドレスとブラウザ エージェントの組み合わせを使ってユーザーが識別されます。この場合、精度を測定することはできません。
  • 複数のクライアントの IP アドレスが 1 つの IP アドレスに変換される場合、推論されるユーザーの Web サーバー ログ インポート内の cookie またはユーザー名のいずれかを使います。

    IP 変換によって、2 つの DTS タスクが影響を受けます。

    • サーバー ログ インポート タスク ユーザーを推論する場合、複数のユーザーの IP アドレスが 1 つの IP に変換され、すべてのユーザーが同じブラウザを使用しているときは、それらのユーザーは 1 ユーザーとして扱われます。

      たとえば、10 ユーザーの IP アドレスが 1 つの IP アドレスに変換される場合、そのうち 5 ユーザーがブラウザ A を、残りの 5 ユーザーがブラウザ B を使用すると、その 10 ユーザーは 2 ユーザーとして扱われます。推論されるユーザーに対して、cookie またはユーザ名の代わりに、IP アドレスとブラウザ タイプを使用すると、このような結果になります。

    • IP 解決タスク 複数の IP アドレスが 1 つの IP アドレスに変換される場合、IP 解決タスクによる照合は 1 つの IP アドレスにしか行われないため、サイトを訪問しているすべてのユーザーに対する正しいドメイン情報を取得できないことがあります。

    cookie またはユーザー名を使ってユーザーを推論する方法については、「ユーザーの推論を設定する」を参照してください。

データ ウェアハウスにユーザーおよび訪問の推論を設定し、インポート中に行われるユーザーおよび訪問に関する仮定を、分析のニーズに最も合うようにカスタマイズできます。

注

  • ここでの処理を実行したら、データをデータ ウェアハウスにインポートする前に、サイト構成をデータ ウェアハウスと同期させる必要があります。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


ユーザーの推論を設定する

参照パターンや購入パターンを特定するために、サイトに訪れるユーザーを識別することができます。

Commerce Server には、ユーザーを識別するための 3 つのオプションが備わっています。

  • [推論に Commerce Server 識別 cookie を使用] 暗号化した cookie が自動的に発行されるように Commerce Server を設定します。この cookie は、Commerce Server データベース内で、一意のユーザーを識別します。
  • [カスタム cookie 識別子を使用] カスタム cookie 識別子を追加できます。

注

  • Microsoft Site Server 3.0 Commerce Edition (SSCE) をお使いになっていた場合、Site Server で使われていた cookie はカスタム cookie として処理されます。これらの cookie は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [推論] タブの、[新しいカスタム cookie 識別子の入力] ボックスの下にあるカスタム cookie の一覧に表示されます。

特に指定しない限り、3 つのオプションすべてが Commerce Server で有効です。これらのオプションは、いずれか 1 つ以上のオプションが無効にないっていない限り、次の順序でユーザーが識別されます。

  • Commerce Server が発行する認証 cookie で、W3C ログ ファイルに格納されています。
  • cs-uri-query フィールドの MSCSAuth Commerce Server が発行する認証 cookie で、サイトが cookie のないモードになっている場合に URL クエリ文字列で渡されます。
  • cs(Cookie) フィールドのカスタム cookie ユーザーが受け入れた可能性のある cookie で、W3C ログ ファイルに格納されています。
  • クライアント IP とユーザー エージェント HTTP 仕様で定義されているクライアント IP アドレスとクライアント ブラウザ文字列です。

ユーザーの推論を設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [推論] タブで、次の操作を行います。
    項目 | 操作
    [推論に Commerce Server 識別 cookie を使用] | ユーザーの推論に Commerce Server cookie を使う場合は、このチェック ボックスをオンにします。
    [推論にユーザー名を使用] | 推論に一意のユーザー名を使う場合は、このチェック ボックスをオンにします。
    [カスタム cookie 識別子を使用] | 推論にカスタム cookie 識別子を使う場合は、このチェック ボックスをオンにします。
    [新しいカスタム cookie 識別子の入力] | このボックスにカスタム cookie 識別子を入力します。
    [追加] | 新しいカスタム cookie 識別子を追加するときにクリックします。
    [削除] | 選択したカスタム cookie 識別子を削除するときにクリックします。
    1 つ上に移動 | 選択したカスタム cookie 識別子を一覧の上方向に移動するときにクリックします。cookie は、この一覧に表示された順に実行されます。
    1 つ下に移動 | 選択したカスタム cookie 識別子を一覧の下方向に移動するときにクリックします。cookie は、この一覧に表示された順に実行されます。
  6. [適用] をクリックし、[OK] をクリックします。

    ユーザーの推論が、Web ログ ファイル インポートに対して設定されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


訪問の推論を設定する

Web サイトへの訪問とは、一意のユーザーがその Web サイト上で過ごした時間の長さです。通常、ユーザーがサイトへのリンクをクリックするか、またはブラウザの [アドレス] ボックスにサイトの URL を入力することによってサイトにアクセスすると、訪問が開始されます。訪問がいつ終了したかを判断するのは、さらに難しくなります。ユーザーがセッションの途中でブラウザを終了したり、ブラウザを最小化したり、ブラウザの [アドレス] ボックスに新しい URL を入力した場合、訪問の終了を示すログ エントリは存在しないためです。

訪問の終了が明確に通知されないことを補うため、Commerce Server では、既定の訪問タイムアウトが設定されます。これは、ユーザーの利用状況がない状態が 30 分間続くと、訪問が終了したと判断します。Web サイトのニーズに合わせて、訪問タイムアウトの長さを変更することもできます。訪問タイムアウトが経過して訪問が終了した後、しばらくしてユーザーがサイトに戻った場合、レポートには 2 回の訪問として記録されます。

注

  • サーバーがユーザーの訪問状況を時間順にログに記録しないことがあります。このような場合、訪問に関するデータは時間順にインポートされないことがあります。データ ウェアハウスは、指定された訪問タイムアウトの長さの範囲にデータが収まるように調整できます。ただし、訪問のタイムアウトを超過するデータの場合、正確性は損なわれます。

訪問の推論を設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [推論] タブで、[訪問の推論] ボックスに、訪問終了と見なすまでのアイドル時間を分単位で入力します。
  6. [適用] をクリックし、[OK] をクリックします。

    訪問の推論が、Web ログ ファイル インポート プロセスに対して設定されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


"時間重複" プロパティと "交換" プロパティを設定する

"時間重複" プロパティを使うと、ログ ファイルに時間が重複する要求がある場合に冗長データが発生しないようにすることができます。"交換" プロパティを使うと、サイズの肥大化を防ぐ目的でログ ファイルをサーバー間で交換する場合に、冗長データやデータの欠落をなくすことができます。

時間重複と交換を設定しない場合、利用状況データを失わずにログ ファイルをデータ ウェアハウスにインポートすることはできません。ログ ファイルはサイトが稼働する限り、継続的に作成されるためです。ログ ファイルを複数のサーバーで実行する場合、単一のサーバーでログ生成の中断と再開が発生する場合、ログ ファイルを誤って再インポートする場合、またはログ ファイルを結合する場合は、期間が重複したデータがファイルに含まれることがあります。

注

  • ここでの処理を実行したら、データをデータ ウェアハウスにインポートする前に、サイト構成をデータ ウェアハウスと同期させる必要があります。

時間重複

交換

時間重複

時間重複が発生するのは、1 つのサイトに複数のサーバーが関連付けられている場合、単一のサーバーでログ生成の中断と再開が発生する場合、ログ ファイルを誤って再インポートする場合、またはログ ファイルを結合する場合です。ファイルの結合は、時間重複の追跡がきわめて困難になるため、避けることをお勧めします。特に指定しない限り、Commerce Server の時間重複の期間は 30 分です。

特に指定しない限り、インポート中に時間重複が検出されると、重複した要求は破棄され、残りの要求がインポートされます。時間重複の期間と、重複が検出されたときに実行するアクションの両方について変更できます。

誤ってインポートしたログ ファイルは、データ削除タスクを使って削除できます。ログ ファイルの削除については、「データ削除 DTS タスクを実行する」を参照してください。

次の図は、時間重複が検出されたときに 2 番目と 3 番目のログ ファイルで維持される部分について、4 つの重複アクション ([レコードを廃棄して続行する]、[すべてのレコードをインポートする]、[インポートを中止する]、および [すべてのインポートを中止する]) がどのように影響を与えるかを示しています。

Web ログ ファイルの時間重複を構成するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [ログ ファイル] タブで、次の操作を行います。
    項目 | 操作
    [レコードが重複していると判定するまでの経過時間 (分)] | レコードが重複していると判定するまでの経過時間を分で入力します。
    [重複が検出された場合] 重複が検出された場合にとるアクションを選択します。
    • [レコードを廃棄して続行する] (既定の設定) 重複している要求をすべて破棄し、残りの要求をインポートします。
    • [すべてのレコードをインポートする] 重複している要求を含め、すべての要求をインポートします。
    • [インポートを中止する] 重複している要求を含むログ ファイルをインポートしません。ほかのログ ファイルはすべてインポートされます。
    • [すべてのインポートを中止する] ログ ファイルのインポートをすべて中止します。重複する要求が検出されるまでにインポートされたデータが不要であれば、インポート済みのログ ファイルは削除する必要があります。

    注

    • インポートで発生した問題のトラブルシューティングを行うには、[インポートを中止する] または [すべてのインポートを中止する] を選択します。
  6. [適用] をクリックし、[OK] をクリックします。

    "時間重複" プロパティが、Web ログ ファイル インポート プロセスに対して設定されました。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

交換

交換を行うと、ログ ファイル内のデータが任意の場所で分割されます。いくつかの訪問のデータが、あるログ ファイルの末尾と次のログ ファイルの先頭に分かれるためです。分割されたオープン ビジットは、インポート プロセスの最後に、保存、コミット、または破棄するように選択できます。

交換を設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [ログ ファイル] タブで、次の操作を行います。
    項目 操作
    [インポートの完了時] インポート プロセス終了時にオープン ビジットに対して行うアクションを選択します。
    • [次回のインポート時にオープン ビジットを保存する] (既定の設定) 1 つの継ぎ目のないログ ファイルのように実際の訪問を再構築します。このオプションは、新しいインポートのたびにキャッシュからオープン ビジットを呼び出す必要があるため、若干時間がかかります。このオプションが正しく機能するには、ログ ファイルを時間順にインポートする必要があります。
    • [データベースにオープン ビジットをコミットする] ログ ファイル出力期間の最初と最後は、両方の期間にまたがる訪問が 2 回カウントされるため、訪問数が多くなります。
    • [オープン ビジットを廃棄する] ログ ファイル出力期間の終了時は、終了していない訪問が削除されるため、訪問数が少なくなります。
  6. [適用] をクリックし、[OK] をクリックします。

    "交換" プロパティが、Web ログ ファイル インポート プロセスに対して設定されました。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

関連項目

構成の同期 DTS タスクを実行する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする


Web ログ ファイルのクエリ文字列のインポート プロパティを設定する

サイトでクエリ文字列を使用する場合、クエリ文字列をログ ファイルに記録して、データ ウェアハウスにインポートできます。クエリ文字列は、サイト内で実行可能ファイルの検索や実行に使用できます。サイトで使用するクエリ文字列の一覧がある場合は、それらのクエリ文字列に関連付けられたコンテンツについてのレポートを生成できます。

特に指定しない限り、クエリ文字列は統一リソース識別子 (URI) を使ってデータ ウェアハウスに保存されます。クエリ文字列を使うと、サイトでクエリ文字列を使用するページに対して HTML タイトル検索を実行できます。ただし、ログ ファイル内のクエリ文字列に、多くの種類のパラメータ名と値の組み合わせがある場合、インポートされる要求数がきわめて増加し、システム パフォーマンスが低下する可能性があります。このような場合は、URI を使用したクエリ文字列の保存を中止することをお勧めします。

注

  • ここでの処理を実行したら、データをデータ ウェアハウスにインポートする前に、サイト構成をデータ ウェアハウスと同期させる必要があります。
  • データ ウェアハウスには、最大で 256 の単一値および複数値のクエリ文字列を組み合わせてインポートできます。
  • インポートされたクエリ文字列は、最大で 150 の単一値のクエリ文字列、または最大で 256 の複数値のクエリ文字列を組み合わせて構成できます。インポートするクエリ文字列が多すぎると、Web ログ インポート プロセスが失敗します。
  • データ ウェアハウスでは、インポートされる複数値の文字列 (クエリ文字列を含む) の長さは、512 文字までに制限されています。512 文字を超える複数値のクエリ文字列は、インポートによって 512 文字に切り捨てられます。

インポートするクエリ文字列を設定するには

インポートからクエリ文字列を削除するには

クエリ文字列構成のプロパティを表示するには

インポートするクエリ文字列を設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [クエリ文字列] タブで、次の操作を行います。
    項目 | 操作
    [クエリ文字列を URL と共に保存] | クエリ文字列とそれに関連付けられた URI をデータ ウェアハウスに保存する場合は、このチェック ボックスをオンにします。
    [追加] | [クエリ文字列] ダイアログ ボックスを開くときにクリックします。
  6. [クエリ文字列] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] ログ ファイルに表示されるクエリ文字列の名前を正確に入力します。

    この名前には、既定のデータ ウェアハウス列と同じ名前を使用できません。また、Commerce Server クエリ文字列用に予約されているため、"CEVT" という文字列を含めることもできません。さらに、この名前には、空白または次の文字を含めることもできません。'、"、+、&、^、'、"、{、}、<、>、または =。

    [サイト内のすべてのアプリケーション] | サイト内のすべてのアプリケーションからクエリ文字列をインポートするには、このオプションを選択します。
    [サイト内の選択されたアプリケーション] | クエリ文字列をインポートするアプリケーションを選択するには、このオプションを選択します。
    [データ型の選択] ボックスの一覧からクエリ文字列のデータ型を選択します。使用できるデータ型は、Integer、文字列、Date/Time、および Real の 4 つです。

    文字列データ型に許可される最大文字数は 255 です。
    [複数値データ型] | クエリ文字列で複数値データ型を使う場合に、このチェック ボックスをオンにします。
  7. [OK] をクリックして [クエリ文字列] ダイアログ ボックスを閉じます。
  8. [適用] をクリックし、[OK] をクリックします。

    クエリ文字列が、Web ログ ファイル インポート プロセスに対して設定されます。

  9. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

インポートからクエリ文字列を削除するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [クエリ文字列] タブで、削除するクエリ文字列を選択し、[削除] をクリックします。
  6. [適用] をクリックし、[OK] をクリックします。

    クエリ文字列が、Web ログ ファイル インポート プロセスから削除されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、データ ウェアハウスにデータをインポートできます。

クエリ文字列構成のプロパティを表示するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [クエリ文字列] タブで、[プロパティ] をクリックして [クエリ文字列] ダイアログ ボックスを開きます。ただし、表示されるプロパティは変更できません。

    注

    • プロパティを変更するには、まずインポートするクエリ文字列を削除してから、新しいプロパティを設定して再度そのクエリ文字列を追加します。
  6. [OK] をクリックし、もう一度 [OK] をクリックします。

関連項目

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにデータをインポートする

データ ウェアハウスのインポート処理のトラブルシューティング


Web ログ インポートの再開プロパティを設定する

再開オプションを設定するには、[Web サーバー ログのインポート] ダイアログ ボックスの [再開] タブを使います。再開オプションを使用すると、データ ウェアハウスで異常なインポート ログが検出された場合に、インポート プロセス全体を自動的に停止したり、再試行がすべて失敗した後で異常なログを削除して続行したりできます。

注

  • この操作を実行したら、データをデータ ウェアハウスにインポートする前に、サイト構成をデータ ウェアハウスと同期させる必要があります。

Web ログ ファイル インポートの再開オプションを設定するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  4. [Web サーバー ログのインポート] ダイアログ ボックスの [拡張] をクリックします。
  5. [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [再開] タブの [再開の設定] セクションで、次の操作を行います。
    項目 | 操作
    [再試行終了後の操作] | ボックスの一覧の [再試行終了時にインポートを停止する] または [問題のログ インポートを削除して続行する] を選択します。
    [再開の試行回数] | 失敗したインポート プロセスの再開を試行する回数を指定します。
  6. [OK] をクリックし、もう一度 [OK] をクリックします。

    Web ログ インポートの再開オプションが設定されます。

  7. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

これで、Commerce Server インポート DTS タスクを実行してデータ ウェアハウスにデータをインポートできます。

関連項目

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

データ ウェアハウスのインポート処理のトラブルシューティング


Web サーバー ログ インポート DTS タスクを実行する

ここでは、Web サーバー ログ インポート DTS タスクを実行する方法について説明します。このタスクを実行する前に、「Web サーバー ログ インポート DTS タスクの実行に関するヒント集」および「インポートに関するヒント集」を読むことをお勧めします。

Web サーバー ログ ファイルには、ユーザーがサイトを訪問したとき、およびサイト ページへのリンクをクリックしたときに取得されるデータが格納されます。データには、ユーザーがサイトの訪問に費やした時間、参照元サイト、広告クリック、広告到達、クリックの頻度、および最初に参照したページと最後に参照したページを含めてユーザーがサイトで利用した経路が含まれます。

データ ウェアハウスにインポートするログ ファイル、およびその場所を指定するには、Web サーバー ログ インポート DTS タスクを使います。この DTS タスクを構成する方法については、「Web サーバー ログ インポート DTS タスクを構成する」を参照してください。

Web ログ ファイル インポート タスクは、指定の場所からログ ファイルを検索し、それらのログ ファイルを解析して、Web サーバー ログ インポート タスクで設定したプロパティを適用します。

インターネット インフォメーション サービス (IIS) 5.0 を実行していない (および Commerce Server を持っていない) Web サイトから、W3C 拡張ログ ファイル形式のログ ファイルをインポートできます。Commerce Server コンポーネントを使わないアプリケーションおよび Web サーバーを追加する方法の詳細については、「サイトに非 Commerce アプリケーションを追加する」を参照してください。

サイトに複数の Web サーバーがある場合、Web ログ ファイルのインポート プロセスは、それぞれの Web サーバーのログ ファイルをメモリ内で結合し、ログ ファイル データを時間順に整理します。Web ログ ファイルのインポート プロセスは、設定されたインポート プロパティを使って Web ログ ファイル データをフィルタ処理します。このインポート プロセスでは、ユーザー訪問推論アルゴリズムを適用して、クリック データを一意のユーザー数と訪問数に変換します。ユーザーの推論を設定する方法については、「ユーザーの推論を設定する」を参照してください。訪問の推論を設定する方法については、「訪問の推論を設定する」を参照してください。

また、Web サイトに関連付けられたクエリ文字列をインポートするように選択した場合は、Web ログ ファイルのインポート プロセスで、それらのクエリ文字列がインポートされます。Web ログ ファイルを構成する方法については、「Web サーバー ログ インポート DTS タスクを構成する」を参照してください。

Web ログ ファイル データのインポート プロパティを設定する方法については、「Web サーバー ログ インポート DTS タスクを構成する」を参照してください。

1 つのサイトの Web ログ ファイルをデータ ウェアハウスにインポートするには

関連付けられているすべてのサイトの Web ログ ファイルをデータ ウェアハウスにインポートするには

1 つのサイトの Web ログ ファイルをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  5. [Web サーバー ログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | インポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト] | インポートする Web サーバー ログを含む Web サイト名を、ボックスの一覧から選択します。
    [ログ ファイルのパス] | インポートする Web ログ ファイルのパスを入力します。または、[ログ ファイル] をクリックし、[Web サーバー ログ ファイル] の一覧から、インポートする Web ログ ファイルを選択します。
    [前回以降のすべてのログのインポート] | 前回のインポート以降に作成されたファイルをすべて指定するには、このオプションを選択します。
    [日付/時刻の期間を指定したログの記録] | [開始日/時刻] から [終了日/時刻] までの間に作成されたログ ファイルのみをインポートするように指定するには、このオプションを選択します。
    [開始日/時刻] ログ ファイルをインポートする範囲の最後の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。

    このオプションの値は、データ ウェアハウスの Sitesummary テーブルに格納されます。
    [終了日/時刻] ログ ファイルをインポートする範囲の最後の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。

    このオプションの値は、データ ウェアハウスの Sitesummary テーブルに格納されます。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。

    注

    • 次の Web ログ インポート プロセスを開始するまでに、1 つの Web ログ インポート プロセスを何回再開するかを指定するには、[拡張] をクリックし、[再開] タブをクリックします。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

    注

    • Web ログ ファイルのインポート プロセスが失敗した場合は、データ削除タスクを実行して Web ログ ファイル関連のデータを削除してから、レポート準備タスクを実行して OLAP キューブを更新してください。
  9. [OK] をクリックし、[終了] をクリックします。

    Web ログ ファイルのデータが、データ ウェアハウスにインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連付けられているすべてのサイトの Web ログ ファイルをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  5. [Web サーバー ログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | インポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [データ ウェアハウスのレベル] をクリックします。
    [データ ウェアハウス] | ボックスの一覧から、Web ログ ファイル データのインポート対象となるサイトに関連付けられたデータ ウェアハウスの名前を選択します。
    [ログ ファイルのパス] | インポートする Web ログ ファイルのパスを入力します。または、[ログ ファイル] をクリックし、[Web サーバー ログ ファイル] の一覧から、インポートする Web ログ ファイルを選択します。
    [前回以降のすべてのログのインポート] | 前回のインポート以降に作成されたファイルをすべて指定するには、このオプションを選択します。
    [日付/時刻の期間を指定したログの記録] | [開始日/時刻] から [終了日/時刻] までの間に作成されたログ ファイルのみをインポートするように指定するには、このオプションを選択します。
    [開始日/時刻] | ログ ファイルをインポートする範囲の最後の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。
    [終了日/時刻] | ログ ファイルをインポートする範囲の最後の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。

    注

    • 次の Web ログ インポート プロセスを開始するまでに、1 つの Web ログ インポート プロセスを何回再開するかを指定するには、[拡張] をクリックし、[再開] タブをクリックします。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。

    注

    • 1 つのパッケージに複数の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを実行できます。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

    注

    • Web ログ ファイルのインポート プロセスが失敗した場合は、データ削除タスクを実行して Web ログ ファイル関連のデータを削除してから、レポート準備タスクを実行して OLAP キューブを更新してください。
  9. [OK] をクリックし、[終了] をクリックします。

    サイトの Web ログ ファイルのデータが、データ ウェアハウスにインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連項目

インポートに関するヒント集

Web サーバー ログ インポート DTS タスクの実行に関するヒント集

DTS タスクを実行するためのワークフロー

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

データ ウェアハウスのインポート処理のトラブルシューティング

Web ログ ファイル データに基づくレポート

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

Web サーバー ログ インポート DTS タスクを構成する

Commerce Server のパフォーマンス カウンタ

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する


Web サーバー ログ インポート DTS タスクの実行に関するヒント集

ここでは、Web サーバー ログ インポート タスクの実行に関するヒント集および重要事項を示します。

  • アプリケーションやログ ファイルが複数ある場合は、ユーザー インターフェイスを使わずに、スクリプトを使って Web ログ インポート DTS を構成します。詳細については、「Web サーバー ログ インポート DTS タスクのスクリプト」を参照してください。
  • スクリプトを使って Web ログ インポート DTS タスクを実行する場合は、データ ウェアハウス (SQL Server) のホストとなっているコンピュータおよび分析サーバーのホストとなっているコンピュータの Windows 2000 Boot.ini ファイルで、3 GB スイッチを必ず指定します。詳細については、「大規模サイトの Web サーバー ログ インポート DTS タスクを実行する」を参照してください。
  • Web ログ ファイルのインポート プロセスは、IIS がアクティブにログ ファイルに書き込んでいる間は、ログ ファイルをインポートしません。ログ ファイルは、Web サイトから直接にはインポートしないでください。代わりに、サーバーがログ ファイルにアクセスしていないことを確認し、他のディレクトリにコピーしてください。続いて、選択したディレクトリからログ ファイルをインポートできます。
  • 複数のサイトの Web ログ データをインポートする場合、"データ ウェアハウス レベル" の操作を行って、データ ウェアハウスに関連付けられているすべてのサイトのデータをインポートするときは、[前回以降のすべてのログのインポート] または [日付/時刻の期間を指定したログの記録] に設定した基準に従って、ログ パスのすべてのログ ファイルがインポートされます。インポートする必要がない一部のログ ファイルをサイト レベルで選択解除しても、それは認識されません。
  • 対象化システムのキャンペーン機能を使う場合は、キャンペーン イベントの URI がインポートされます。Web ログ ファイルが、このデータのソースになります。
  • Commerce 以外の Web サーバーからログ ファイルをインポートする方法については、http://www.microsoft.com/japan/support/kb/articles/JP293/8/87.asp で、サポート技術情報の記事「J293887 HOWTO : Commerce 以外の Web サーバーのログ ファイルを解析する方法」を参照してください。
  • Commerce Server では、W3C 拡張ログ形式のファイルだけがサポートされています。Apache ログまたは Lotus ログをインポートする場合は、インポートする前にそれらのログをこの形式に変換する必要があります。
  • このタスクには、次のパフォーマンス カウンタを使います。
    • UImport:Free hit buffers 現在利用できる空のヒット バッファの数です。
    • UImport:Used hit buffers 現在使用されているヒット バッファの数です。
    • UImport:Hits per second インポート タスクがヒットを処理している 1 秒あたりのレートです。
    • UImport:Current visits ログ ファイルの処理中に記録されたアクティブな訪問の総数です。
    • UImport:Commerce events インポート タスク中に発生した Commerce Server イベントの総数です。
    • UImport:Decoded cookies インポート タスクの実行中に発生した、Commerce Server によってデコードされた cookie の総数です。
    • UImport:Query strings インポート タスクの実行中に処理されたクエリ文字列の総数です。

関連項目

DTS タスクを実行するためのワークフロー

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

データ ウェアハウスのインポート処理のトラブルシューティング

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する


Web ログ ファイル データに基づくレポート

Web ログ ファイル データだけをインポートし、他のデータをインポートしない場合は、次のレポートを実行できます。

  • 帯域幅の要約 (動的レポート)
  • 帯域幅の傾向 (動的レポート)
  • ディレクトリ (動的レポート)
  • ユーザー数と訪問数 (週単位) (動的レポート)
  • ユーザー数 (日単位) (動的レポート)
  • 最初に参照したページ (動的レポート)
  • エントリ画面の分析 (静的レポート)
  • 最後に参照したページ (動的レポート)
  • 一般的な利用状況の統計 (動的レポート)
  • ヒット数 (HTTP ステータスごと) (動的レポート)
  • ヒット数 (Win32 ステータスごと) (動的レポート)
  • クエリ文字列 (複数値) (動的レポート)
  • クエリ文字列 (単数値) (動的レポート)
  • 参照元ドメインを要求順に表示 (静的レポート)
  • 要求の多いページ (静的レポート)
  • ユーザーの傾向 (動的レポート)
  • 利用状況の要約 (曜日単位) (動的レポート)
  • 利用状況の要約 (時間単位) (動的レポート)
  • 利用状況の要約 (週単位/年間) (動的レポート)
  • 利用状況の傾向 (動的レポート)
  • ユーザーの訪問の傾向 (動的レポート)
  • 訪問数 (ブラウザ/バージョン/OS 別） (動的レポート)

関連項目

Web サーバー ログ インポート DTS タスクを実行する

Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスのインポート処理のトラブルシューティング

データ ウェアハウスにセキュリティを設定する

レポートにセキュリティを設定する


失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

Web ログ インポート DTS タスクに失敗した場合は、失敗の原因を分析し、タスクを再開するか、無視するか、または削除するかを決定できます。

タスクを再開する

  1. Enterprise Manager で、DTS パッケージを開き、[Web サーバー ログ インポート] アイコンを右クリックして、[プロパティ] をクリックします。
  2. [Web サーバー ログのインポート] ダイアログ ボックスの [再開の詳細] タブをクリックします。失敗したインポートだけが表示されます。
  3. [再開の詳細] タブで、次のいずれかの操作を行います。
    • 未完了のログ インポート タスクを再開するには、[再開] をクリックします。この操作が完了するまでは、他のログ インポート タスクを実行できません。

    注

    • ログ インポートが失敗してから [再開] をクリックするまでの間に、ログ ファイル フォルダに新しいログ ファイルが追加された場合は、失敗したインポートの再開時にその新しいログ ファイルがインポートされます。
    • 追加のログ ファイルをインポートせずに失敗したインポートを再開するには、[再開] をクリックした後、[ログ ファイルの場所] タブで [ログ ファイル] をクリックします。次に、新しいログ ファイルの選択を解除します。
    • 失敗したログ インポート タスクを削除し、引き続き新しいログ インポート タスクを実行するには、[無視] をクリックします。このオプションを選択した場合は、失敗したログ インポート タスクを再開できなくなります。

      それ以前の、未完了のログ インポート ジョブについての状態メッセージは、すべて削除されます。

    • 何も操作せずにそのまま待ちます。[無視] も [再開] もクリックしないと、最大再試行回数に達するまで、失敗したインポート ログの再試行が続行されます。タスクの再試行後、[再試行終了後の操作] が実行されます。これにより、再試行終了時にインポートが停止するか、または問題のログ インポートが削除され処理が続行されます (この操作は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [再開] タブで設定します)。
  4. [無視] をクリックした場合は、[Web サーバー ログのインポート] ダイアログ ボックスの [ログ ファイル] をクリックして、フォルダ内の他のログ ファイルと共に、失敗したログ ファイルを表示します。
  5. そのままインポートする場合は、失敗したログ ファイルを選択します。インポートしない場合は、失敗したログ ファイルの選択を解除します。
  6. [OK] をクリックします。
  7. Web サーバー ログ インポート タスクを再実行します。

注

  • 手順 4. で、最初に [ログ ファイル] をクリックしても、失敗したログ ファイルはダイアログ ボックスに表示されません。失敗したログ ファイルは、[無視] をクリックしたときにインポート ジョブに追加されるためです。

タスクを無視または削除する

[無視] をクリックした場合、またはタスクが最大再試行回数に達した場合は、前のログ インポート ジョブを再開できません。次の処理が行われます。

  • 前のログ インポートが無視され、引き続き新しいログ インポート ジョブが実行されます。
  • それ以前の、未完了のログ インポート ジョブについての状態メッセージは、すべて削除されます。
  • 失敗したインポートは実行されなかったものとして、要求数、訪問数、ヒット数、およびその他のデータが復元されます。
  • オープン ユーザー訪問データは復元されないことがあります。このデータは失われる場合があるためです。

    たとえば、オープン ビジットの数が 10 であるとします。このとき、Web ログ インポート タスクを実行します。しかし、このタスクが失敗したので、削除したとします。ユーザー、訪問、要求、およびヒットの古いデータが、その Web ログ インポート タスクを実行する前の状態に復元されます。ただし、オープン ビジットは復元されません。新旧両方のオープン ビジット データが削除されることがあります。

    次回 Web ログ インポート タスクを実行すると、オープン ユーザー訪問が削除されたために訪問数が正しくないことがあります。

関連項目

Web ログ インポートの再開プロパティを設定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

データ ウェアハウスのインポート処理のトラブルシューティング


大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

大規模サイトのデータ ウェアハウス イベント ログに "メモリ不足です" というエラーが表示されることがあります。ほとんどの場合、このエラーは、プロセスの仮想メモリが不足しているために発生します (これは、Windows パフォーマンス モニタ アプリケーションで確認できます)。

標準の 32 ビット アドレスでは、最大 4 GB のメモリをマップできます。したがって、32 ビットの Microsoft Windows 2000 プロセスの標準のアドレス領域は、4 GB に制限されます。既定では、2 GB がオペレーティングシステムのために予約され、残りの 2 GB をアプリケーションで使用できます。Windows NT Enterprise Edition または Microsoft Windows 2000 Advanced Server の Boot.ini ファイルで 3 GB スイッチを指定すると、オペレーティング システムのために 1 GB のアドレス領域だけが予約され、アプリケーションが 3 GB までアクセスできるようになります。

このエラーを回避するには、Web ログ ファイルをインポートする前に、データ ウェアハウスのコンピュータで 3 GB スイッチを有効にします。

3 GB スイッチを有効にするには、次の 2 つの操作を行う必要があります。

  1. Boot.ini ファイルを変更します。/3GB スイッチの詳細については、Windows 2000 Advanced Server ヘルプを参照してください。
  2. ログ インポート DLL を実行する実行可能ファイルを変更します。データ ウェアハウスにデータをインポートする方法に応じて、適切な実行可能ファイルを変更する必要があります。

ログ インポート プロセスは、さまざまな実行可能ファイルによってホストされます。どの実行可能ファイルによってホストされるかは、ログ インポートをどのように起動するかによって異なります。

SQL Enterprise Manager のユーザー インターフェイスから直接 DTS パッケージを実行することによってデータ ウェアハウスにデータをインポートする場合に、Web ログ インポート DLL を実行する実行可能ファイルを変更するには

  1. システム プロンプトで「ImageCfg -l mmc.exe」と入力し、Enter キーを押します。
  2. コマンド プロンプトで「ImageCfg mmc.exe」と入力し、Enter キーを押して、3 GB スイッチが有効になっていることを確認します。

現在の設定が表示されます。3 GB スイッチが表示されない場合は、3 GB スイッチを有効にし直すか、または実行可能ファイルの名前を変更してやり直す必要があります。

SQL Enterprise Manager スケジューラで実行スケジュールが設定された DTS パッケージを使ってデータ ウェアハウスにデータをインポートする場合に、Web ログ インポート DLL を実行する実行可能ファイルを変更するには

  1. システム プロンプトで「ImageCfg -l dtsrun.exe」と入力し、Enter キーを押します。
  2. コマンド プロンプトで「ImageCfg dtsrun.exe」と入力し、Enter キーを押して、3 GB スイッチが有効になっていることを確認します。

現在の設定が表示されます。3 GB スイッチが表示されない場合は、3 GB スイッチを有効にし直すか、または実行可能ファイルの名前を変更してやり直す必要があります。

スクリプトでデータ ウェアハウスにデータをインポートし、Windows スクリプト ホストを使ってログ インポートを実行する場合に、Web ログ インポート DLL を実行する実行可能ファイルを変更するには

  1. システム プロンプトで「ImageCfg -l cscript.exe」と入力し、Enter キーを押します。
  2. コマンド プロンプトで「ImageCfg cscript.exe」と入力し、Enter キーを押して、3 GB スイッチが有効になっていることを確認します。

現在の設定が表示されます。3 GB スイッチが表示されない場合は、3 GB スイッチを有効にし直すか、または実行可能ファイルの名前を変更してやり直す必要があります。

関連項目

DTS タスクを実行するためのワークフロー

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

Web ログ ファイル データに基づくレポート

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

Web サーバー ログ インポート DTS タスクを構成する

Commerce Server のパフォーマンス カウンタ

データ ウェアハウスのインポート処理のトラブルシューティング


トランザクション データ インポート DTS タスクを実行する

データ ウェアハウスにサイトのトランザクション データをインポートするには、トランザクション データ インポート DTS タスクを使います。トランザクション データは、Commerce Server トランザクション データベースに格納されます。トランザクション データには、注文や注文番号などが含まれます。これらのデータは、商品ごとの販売状況や売り上げ金額、または顧客ごとの購入金額を調べるために、分析レポートで使用されます。

注

  • トランザクション データを最初にデータ ウェアハウスにインポートするときに、[すべて読み込み] オプションを使って、フル インポートを実行する必要があります。トランザクション データをインポートした後は、[増分の読み込み] オプションを使って、最後のトランザクション データのインポート以降に作成された、新しいデータのみをインポートします。
  • 複数の Web サイトのデータが含まれるデータ ウェアハウスでトランザクション データ インポート DTS タスクを実行する場合、複数の Web サイトによって拡張されたクラスのメンバは、データ型が異なるときは、一意の名前でなければなりません。複数の Web サイトでクラスに追加されたメンバのデータ型がサイト間で異なる場合、トランザクション データ インポート DTS タスクの実行時に、エラーが発生したり、データが正しく変換されなかったりすることがあります。

1 つのサイトのトランザクション データをデータ ウェアハウスにインポートするには

関連付けられているすべてのサイトのトランザクション データをデータ ウェアハウスにインポートするには

1 つのサイトのトランザクション データをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [トランザクション データ インポート (Commerce Server)] をクリックします。
  5. [トランザクション インポート プロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧からインポートするデータを含むサイトを選択します。
    [クエリ間隔 (分)] インポートの間隔を分単位で入力します。0 に設定すると、SQL Server ソース テーブルに対して 1 つのクエリが実行され、それによってテーブルがロックされることがあります。0 より大きい値を設定すると、そのクエリ間隔の値に従って、トランザクションがグループで増分インポートされます。たとえばクエリ間隔が 25 分 (既定値) で、最初のトランザクションが午前 1:30 にログに記録された場合、トランザクション データ インポート タスクは、午前 1:30 ～ 1:55 に記録されたすべてのトランザクションをインポートし、次回は午前 1:55 ～ 2:20 のトランザクションをインポートします。現在の時刻に到達するまでこのパターンが続きます。現在の時刻に到達すると、このタスクは停止します。

    注

    • トランザクション データベースのタイム ゾーンがデータ ウェアハウスのタイム ゾーンと異なる場合、インポートは、トランザクション データベースのタイム ゾーンに変換された場合のインポートの現在の時刻で停止します。たとえば、トランザクション データベースが EST タイム ゾーンで、データ ウェアハウスが PST タイム ゾーンで、現在の時刻が PST で午前 8:00 である場合、クエリ間隔が EST の午前 8:00 に到達するとインポートは停止します。
    [増分の読み込み] | 前回のインポートに基づいて新規トランザクション データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのトランザクション データをインポートするには、このオプションを選択します。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。

    注

    • 1 つのパッケージに複数の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを実行できます。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  9. [OK] をクリックし、[終了] をクリックします。

    データ ウェアハウスにトランザクション データがインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連付けられているすべてのサイトのトランザクション データをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [トランザクション データ インポート (Commerce Server)] をクリックします。
  5. [トランザクション インポート プロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [データ ウェアハウスのレベル] をクリックします。
    [データ ウェアハウス名] | ボックスの一覧から、トランザクション データのインポート対象となるサイトに関連付けられたデータ ウェアハウスを選択します。
    [増分の読み込み] | 前回のインポートに基づいて新規トランザクション データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのトランザクション データをインポートするには、このオプションを選択します。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。

    注

    • 1 つのパッケージに複数の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを実行できます。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  9. [OK] をクリックし、[終了] をクリックします。

    データ ウェアハウスにトランザクション データがインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連項目

トランザクション データ インポート DTS タスクを実行する

ランザクション データ インポート DTS タスクでの ETL プロセス

ランザクション データ インポート DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


商品カタログ データ インポート DTS タスクを実行する

Commerce Server のカタログ データベース内の、商品名、説明、色、サイズなどの商品に関する多様なデータをインポートするには、商品カタログ インポート DTS タスクを使います (これは、Excel のスプレッドシートなどの外部ソースのデータを商品カタログ システムにインポートする場合とは異なります。カタログのインポートについては、「カタログをインポートおよびエクスポートする」を参照してください)。

商品や売り上げ分析に関するレポートを正常に表示するには、カタログ データが必要です。カタログ データをデータ ウェアハウスにインポートしない場合、レポート内で商品を識別する方法は、在庫保管単位 (SKU) の数値だけになります。

商品の販売状況や顧客の購入金額に関する情報をインポートするには、トランザクション データ DTS タスクを使います。詳細については、「トランザクション データ インポート DTS タスクを実行する」を参照してください。

注

  • 仮想カタログ用のデータをインポートする方法については、「仮想カタログのデータをインポートする」を参照してください。
  • カタログ データを最初にデータ ウェアハウスにインポートするときに、[すべて読み込み] オプションを使って、フル インポートを実行する必要があります。カタログ データをインポートした後は、[増分の読み込み] オプションを使って、最後のカタログ データのインポート以降に作成された、新しいデータのみをインポートします。
  • 1 つのデータ ウェアハウスが複数のサイトをサポートしている場合は、データのインポート対象となるカタログの名前が一意でなければなりません。

    同じカタログ名と同じ商品を持つ 2 つのサイトがある場合、そのカタログ プロパティと商品定義が異なるときは、2 番目のカタログのデータがインポートされたときに、最初にインポートされたカタログのデータが上書きされます。

  • 特殊文字を含むカタログ プロパティを作成しないでください。特殊文字が原因で商品カタログ データ インポート タスクが失敗します。カタログ プロパティの中で使用できない文字には、! " % & ( ) * + - . / : ; < = > ? \\ ] ^ ` { | } ~ があります。制御文字も使用できません。たとえば、0x00 (NULL)、0x01、0x02、0x03、0x04、0x05、0x06、0x07 (Ctrl-G <BEL>)、0x08 (Ctrl-H <BS>)、0x09 (Ctrl-I <HT>)、0x0a (Ctrl-J <LF>)、0x0b (Ctrl-K <VT>)、x0c (Ctrl-J <FF>)、0x0d (Ctrl-M <PRS_CR>)、0x0e (Ctrl-N <SO>)、0x0f (Ctrl-O <SI>)、0x10、0x11、0x12 などは使用できません。
  • この DTS タスクには、次のパフォーマンス カウンタを使用します。
    • CatImport:Total Catalogs imported
    • CatImport:Total Categories imported
    • CatImport:Total Products imported

1 つのサイトのカタログ データをデータ ウェアハウスにインポートするには

関連付けられているすべてのサイトのカタログ データをデータ ウェアハウスにインポートするには

1 つのサイトのカタログ データをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [商品カタログ インポート (Commerce Server)] をクリックします。
  5. [カタログ インポート プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧からインポートするデータを含むサイトを選択します。
    [増分の読み込み] | 前回のインポートに基づいて新規カタログ データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのカタログ データをインポートするには、このオプションを選択します。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。

    注

    • 1 つのパッケージに複数の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを実行できます。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  9. [OK] をクリックし、[終了] をクリックします。

    データ ウェアハウスにカタログ データがインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連付けられているすべてのサイトのカタログ データをデータ ウェアハウスにインポートするには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [商品カタログ インポート (Commerce Server)] をクリックします。
  5. [カタログ インポート プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。
    [操作レベル] | ボックスの一覧の [データ ウェアハウスのレベル] をクリックします。
    [データ ウェアハウス名] | ボックスの一覧から、カタログ データのインポート対象となるサイトに関連付けられたデータ ウェアハウスを選択します。
    [増分の読み込み] | 前回のインポートに基づいて新規カタログ データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのカタログ データをインポートするには、このオプションを選択します。
  6. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  7. [OK] をクリックします。

    注

    • 1 つのパッケージに複数の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを実行できます。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  9. [OK] をクリックし、[終了] をクリックします。

    データ ウェアハウスにカタログ データがインポートされます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連項目

仮想カタログのデータをインポートする

商品カタログ データ インポート DTS タスクを実行する

商品カタログ データ インポート DTS タスクでの ETL プロセス

商品カタログ データ インポート DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


仮想カタログのデータをインポートする

仮想カタログは、1 つまたは複数の基本カタログに格納されている商品データを参照します。基本カタログに商品を追加すると、包含ルールによっては、関連付けられた仮想カタログにもその商品が表示される場合があります。商品がカタログ データベースに表示されるのは 1 回だけです。これは、その商品が表示される仮想カタログの数には関係しません。

商品カタログ データ インポート タスクを実行して仮想カタログのデータをデータ ウェアハウスにインポートする場合は、関連付けられている基本カタログのデータもインポートされます。たとえば、"Compact Discs" という名前の基本カタログがあるとします。その基本カタログを "Spring Products" という名前の仮想カタログに含めます。商品カタログ データ インポート タスクを実行すると、Compact Discs のデータがデータ ウェアハウスの Spring Products カタログにインポートされます。

Compact Discs カタログを Spring Products 仮想カタログから削除し、その後 Books という名前の別の基本カタログを Spring Products カタログに追加できます。インポート タスクを実行すると、データ ウェアハウスの Spring Products カタログに、Compact Discs と Books の両方のデータが含まれることになります。

フル インポートを実行する

仮想カタログの商品をデータ ウェアハウスにインポートするには、フル インポートを実行する必要があります。基本カタログ内に存在する商品またはカテゴリを仮想カタログに追加すると、仮想カタログ内で、その商品またはカテゴリは他の商品およびカテゴリよりも古いタイム スタンプを持つことになります。したがって、増分インポート オプションでは、その商品またはカテゴリはインポートされません。

関連項目

商品カタログ データ インポート DTS タスクを実行する

データ ウェアハウスのインポート処理のトラブルシューティング


多言語データと複数通貨データをインポートする

Commerce Server データ ウェアハウスは、Unicode 文字のインポートをサポートしています。どの言語の商品カタログ データ、およびトランザクション データをインポートする場合でも、データ ウェアハウスを使うことができます。Commerce Server データ ウェアハウス スキーマは、通貨の種類と金額を別々に格納することによって、複数の通貨のインポートをサポートしています。

インポート言語を指定する

インポート言語を指定する必要はありません。データ ウェアハウスは、マルチバイト Unicode 文字をインポートし、言語を区別しません。たとえば、サイトを英語で作成するとします。ユーザーが課金データを日本語で入力します。そのユーザーの注文データは、英語で入力したユーザーの注文データと同様に処理されます。

多言語データと複数通貨データのインポートに関するヒント集

カタログの言語と通貨を指定する


多言語データと複数通貨データのインポートに関するヒント集

  • データのインポート後、基本通貨を変更しない。
データ ウェアハウスは通貨を変換しません。以前にインポートされた会計データは、新しい基本通貨に変換されません。データ ウェアハウスには、当初の金額が、誤った通貨指定と共に格納されます。
  • 別の言語のカタログ データをインポートしない。
別の言語のカタログ データをインポートすると、そのカタログの既存のデータが上書きされます。データ ウェアハウスは、カタログごとに 1 つの言語のデータだけをサポートしています。


カタログの言語と通貨を指定する

Commerce Server ビジネス デスクのカタログ エディタ モジュールを使うと、1 つのカタログまたは仮想カタログに最大 10 個の言語を指定できます。

注

  • レポート作成言語を変更すると、システム管理者がカタログ データをデータ ウェアハウスに次にインポートするときは、新しい言語が使われます。このようにすると、データ ウェアハウスの内部でデータの言語が異なってしまうことになる場合があります。

    システム管理者は、商品カタログ データ インポート データ変換サービス (DTS) タスクを使って、フル インポートを実行し、すべてのデータを同じ言語にする必要があります。フル インポートによって商品のプロパティは更新されます。これは、プロダクト キーはすべての言語で一意であるためです。

カタログをローカライズするには

  1. Commerce Server ビジネス デスクで、[カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集するカタログを選択し、ツール バーの [<<プロパティの編集>>] をクリックします。
  3. [カタログ プロパティ - <カタログ名>] 画面が表示されます。この画面に表示されるプロパティは、Commerce Server によって割り当てられたものを除いて、どれでも編集できます。
    項目 | 操作
    [通貨] | ボックスの一覧からカタログの通貨を選択します。既定値は JPY です。
    [重量測定単位] | このカタログの商品の重量測定単位が表示されます。この値は、Commerce Server の構成時にシステム管理者が指定します。値の変更が必要な場合は、システム管理者に連絡してください。
  4. [カタログ言語] セクションで、次の操作を行います。
    項目 | 操作
    [追加] カタログでサポートする言語を追加します。

    1 つのカタログは最大 10 の言語をサポートできます。5 つの言語を追加してカタログを保存した後に、さらに 5 つの言語を追加することができます。
    [削除] | カタログでサポートしない言語を削除します。すべての言語を削除した場合は、既定の言語がサポートされます。既定の言語は、ビジネス デスク コンピュータ上の Microsoft Windows オペレーティング システムの言語と同じです。
    [既定の言語] ボックスの一覧からカタログの既定の言語を選択します。

    既定の言語を指定しない場合は、ビジネス デスク クライアント コンピュータ上の Microsoft Windows オペレーティング システムと同じ言語が使用されます。
    [レポート作成言語] ボックスの一覧から、データ ウェアハウスに格納されるプロパティに使用する言語を選択します。

    ここで指定する言語は、レポートおよび分析に使用される言語です。

    サイトの運用後にレポート作成言語を変更すると、レポートの対象期間によっては、レポート データが 2 つの言語で表示される場合があります。

    システム管理者は、商品カタログ データ インポート DTS タスクを使って、フル インポートを実行し、すべてのデータを同じ言語にする必要があります。フル インポートによって商品のプロパティは更新されます。これは、プロダクト キーはすべての言語で一意であるためです。
  5. カタログの表示名を入力するには、[言語] ボックスで言語を選択し、[編集] をクリックします。
  6. [表示名] ボックスに、選択した言語でカタログの名前を入力します。このカタログ名が、Web サイトで表示されます。
  7. 編集内容を保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  8. 新しい商品を Web サイトに公開するには、ツール バーの カタログの公開 をクリックします。

更新済みのカタログが Web サイトに公開されます。


cookie をインポートする

ユーザーがサイトを参照すると、cookie が Web ログ ファイルに格納されます。Commerce Server Web ログ インポート DTS タスクは、cookie データを読み取り、ユーザー ID を解読して、cookie データをプロファイル データに関連付けられるようにします。これにより、ユーザー データの分析が可能になります。

注

  • cookie に暗号化キーのローリングを使っている場合は、プロファイル データをインポートする前に IIS ログをインポートする必要があります。これを行わないと、Commerce Server DTS タスクが、ログ内の認証チケットを復号化できません。

データは、インポート時にユーザー ID ごとに解析されます。ユーザー ID の各インスタンスが、データ ウェアハウスの行になります。ユーザー ID は各行の主キーとなります。このため、ユーザー データの分析時には、ユーザー ID ごとにデータにアクセスされます。

ビジネス分析システムは、W3C 拡張ログで次の項目 (優先順に表示されている) を調べることによって、ユーザーを識別します。

  • Cookie
  • クライアント IP とクライアント ブラウザ文字列
  • クライアント IP のみ

レポート準備 DTS タスクは、Buyer Visits キューブにデータを作成します。Buyer Visits キューブは、トランザクションの RegisteredUserID および Web 参照状況に関連付けられた RegisteredUserID を使って、ユーザーの売り上げ状況と参照状況を関連付けます。このように RegisteredUserID を関連付けるには、サイトで cookie を使う必要があります。

既定では、ソリューション サイトは、cookie が暗号化されるように構成されます。Web サーバー ログ インポート DTS タスクは、内部で、cookie を復号化して適切なユーザー ID を返す認証関数を呼び出します。cookie を暗号化しない場合、cookie は URL エンコードされるので、この関数は適切にユーザー ID を返すことができません。

自動 cookie モードを有効または無効にするようにサイトを構成すると、cookie がどのようにインポートされるかを次に説明します。

  • 自動 cookie モードが有効な場合 トランザクション データ インポート DTS タスクを実行すると、ユーザー トランザクションは、データ ウェアハウスの OrderGroup テーブル (およびいくつかの他のテーブル) に格納されます。OrderGroup エントリが、RegisteredUserID のキーとなります。ユーザーの参照状況が含まれている、関連付けられたログ ファイルの Web ログ インポートは、cookie が有効な場合にだけ、トランザクションの利用状況に関連付けることができます。

    サイトで cookie を有効にすると、登録済みユーザー ID が含まれている cookie が、ログ ファイルの cookie フィールドに書き込まれます。Web ログ ファイルをデータ ウェアハウスにインポートすることによって、レポート準備 DTS タスクは、参照状況をトランザクションの利用状況にリンクできます。

  • 自動 cookie モードが無効な場合 このシナリオでは、RegisteredUserID が Web ログ ファイルのクエリ文字列情報の一部として書き込まれますが、Web ログ インポート DTS タスクは、この情報を RegisteredUserID として格納することはできません。

    Web サーバー ログ インポート時にデータが作成される VisitsByUser テーブルには RegisteredUserID が存在しないため、VisitsByUser ビューは空のままです。

  • cookie のないモードの場合 (Active Directory) このシナリオでは cookie がありません。


DTS タスクを再試行する

Commerce Server DTS タスクを構成するときに、再試行回数と再試行間隔 (秒) を設定します。これらの再試行プロパティにより、データ ウェアハウス記憶エンジンがどのように SQL Server と対話するかが制御されます。ただし、DTS タスクがどのようにデータ ウェアハウス記憶エンジンと対話するかは制御されません。

DTS コンソールから起動される DTS タスクは、失われた SQL Server 接続から回復できます (たとえば、SQL Server がフェールオーバーした場合)。接続が失われると、OLE DB Provider for Commerce Server は、SQL Sever コンピュータへの接続を (再) 試行していることを示すメッセージをアプリケーション イベント ログに書き込みます。DTS タスクが、再試行パラメータによって設定されたウィンドウ内で回復できる場合、そのタスクは続行されます。Web サーバー ログ インポート タスクが回復すると、データ ウェアハウス データベースの TaskHistory テーブルの Status 列に、インポートの成功を示す "1" が表示されます。

注

  • プロファイル データ インポート DTS タスクの実行中にプロファイル サーバーがフェールオーバーした場合は、インポートの開始日をフェールオーバーが発生する前の増分の日付に変更し、最後の増分の代わりにプロファイル データ インポート DTS タスクを [すべて読み込み] でもう 1 度実行する必要があります。

Web サーバー ログ インポート

SQL Server が停止した場合、Web サーバー ログ インポート DTS がすべての再試行を終了した後、異常終了したというメッセージが表示されるまでに数分かかることがあります。これには、次の 2 つの理由があります。

  • 複数の推論エンジン スレッドがログ ファイルを処理できます。各推論エンジン スレッドは、OLE DB Provider for Commerce Server を呼び出すことによって、最終的にデータ ウェアハウス記憶エンジンにデータを書き込みます。スレッドが SetColumns を呼び出すと、OLE DB Provider for Commerce Server は、まず、このセッションにエラーがあるかどうかを確認します。エラーがある場合は、書き込み呼び出しを中止し、推論エンジン スレッドが、DTS タスクによってチェックされるフラグを設定します。

    多くのスレッドがログ ファイルを処理している場合、この処理に数分かかることがあります。

  • Web サーバー ログ インポート タスクが SQL Server コンピュータとは異なるコンピュータ上で実行されている場合は、SQL 転送が遅延時間に影響を及ぼすこともあります。

注

  • Web サーバー ログ インポート DTS タスクを実行している短い時間にデータ ウェアハウス サーバーが複数回 (たとえば、4 または 5 回) フェールオーバーすると、データが失われる可能性があります。データの整合性を保つために、Web ログ ファイルのインポートされたデータを削除し、Web サーバー ログ インポート DTS タスクを手動で再実行する必要があります。Web ログ ファイルからデータを削除する方法については、「データ削除 DTS タスクを実行する」を参照してください。

関連項目

データ ウェアハウスのインポート処理のトラブルシューティング

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクのスクリプト

Web サーバー ログ インポート DTS タスクを構成する

Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを実行する

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する


IP 解決 DTS タスクを実行する

IP 解決タスクは、インターネット プロトコル (IP) アドレスを解決する場合に定期的に使います。これにより、データ ウェアハウス内のデータの有意性を維持できます。

IP 解決タスクを開始すると、新しい IP アドレスを解決しようとして、解決済み IP アドレスのキャッシュがチェックされます。キャッシュのチェック後に未解決の IP アドレスが残った場合は、ドメイン ネーム システム (DNS) サーバーがチェックされます。IP 解決の成功率は、通常 60 ～ 75% です。IP アドレスはバッチ ファイル内で解決されます。このファイルによって、DNS サーバーとの接続を最適化します。

IP 解決タスクを開始すると、特に指定しない限り、ドメイン名を持たない IP アドレスだけが解決されます。たたし、すべてのドメイン名の変更を取得する場合は、すべての IP アドレスを解決することを選択できます。このオプションを使うと、既にデータ ウェアハウスに含まれているドメイン名も更新されます。

注

  • データ ウェアハウスで最初に IP アドレスを解決するときに、全検索オプションを使う必要があります。全検索を実行した後は、増分 IP 解決を実行して、新しい IP アドレスのみを検索できます。
  • 複数のクライアントの IP アドレスが 1 つの IP アドレスに変換される場合、推論されるユーザーの Web サーバー ログ インポート内の cookie またはユーザー名のいずれかを使います。

    サイトを訪れているユーザーが、推論に使用する cookie もユーザー名も使わない場合、つまり、これらが存在しないか、またはユーザーがこれらを使わないと選択した場合、Commerce Server はクライアント IP アドレスとブラウザの種類を使ってユーザーを推論します。この方法は、精度が高くありません。たとえば、ユーザーが同じブラウザを使用しているため、複数のクライアント IP アドレスが 1 つの IP アドレスに変換される場合、複数のユーザーが 1 つの IP アドレスにバンドルされます。この場合、IP 解決タスクは、1 つの IP アドレスの照合だけを行います。つまり、サイトを訪れているすべてのユーザーに関する正確なドメイン情報を取得できなくなります。

  • この DTS タスクには、次のパフォーマンス カウンタを使用します。
    • Total IPs resolved
    • Total IPs unresolved

IP アドレスを解決するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [IP 解決 (Commerce Server)] をクリックします。
  4. [IP 解決 DTS プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | このタスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [データ ウェアハウス] | ボックスの一覧から、IP 解決を実行するデータを含むデータ ウェアハウスを選択します。
  5. [IP アドレスの解決] セクションで、次の操作を行います。
    項目 | 操作
    [増分検索] | まだ解決されていない IP アドレス、および最後の変更時刻が "検索結果をキャッシュする日数" フィールドに設定されている時間制限を超えている IP アドレスだけを解決するには、このオプションを選択します。
    [全検索] | すべての IP アドレスを解決するには、このオプションを選択します。
  6. [オプション] セクションで、次の操作を行います。
    項目 | 操作
    [ローカル ドメイン名] | IP アドレスを解決するために使用するプライマリ サーバーである、ドメイン ネーム サーバー (DNS) のローカル ドメイン名を入力します。
    [検索結果をキャッシュする日数] | 解決した IP アドレスをキャッシュする日数を入力します。既定値は 30 日です。既定値より大きい値を指定すると、IP 解決がより高速になります。ただし、ドメイン名の変更は取得できない場合があります。
    [タイムアウトまでの秒数] | IP アドレスが解決できなかったと見なされるまでに DNS サーバーが検索される時間 (秒) を入力します。既定値は 10 秒です。既定値以上に設定すると、解決できる IP アドレスの数は増えますが、IP 解決にかかる時間も長くなります。
    [バッチに保持する検索要求の数] | 検索要求の数を入力します。DNS サーバーに一括転送される IP アドレスの数を指定します。既定値は 200 です。10 ～ 99,999 の範囲で設定できます。
  7. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  8. [OK] をクリックします。
  9. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  10. [OK] をクリックし、[終了] をクリックします。

    IP 解決が実行されます。

  11. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。

関連項目

IP 解決 DTS タスクでの ETL プロセス

データ ウェアハウスに関するヒント集

DTS タスクを実行するためのワークフロー

推論の精度

IP 解決 DTS タスクのスクリプト

Commerce Server のパフォーマンス カウンタ

データ ウェアハウスのインポート処理のトラブルシューティング


データ ウェアハウスからデータを削除する

データウェアハウスから定期的かつ継続的にデータを削除して、データ ウェアハウス データベースの領域が使い果たされないようにすることが重要です。データベースの領域が使い果たされると、パフォーマンスが低下し、データが失われます。データ ウェアハウス データベースが自動的に拡張するように設定できます。ただし、これを行うとしだいにパフォーマンスが低下し、最後には、データベースのサイズが、利用可能なメモリの物理的な限界に到達します。

Commerce Server には、データ削除 DTS タスクが用意されています。このタスクは、データ ウェアハウスの詳細ログ ファイル データまたはすべてのデータを削除します。データ削除 DTS タスクの機能については、「データ削除 DTS タスクでの ETL プロセス」を参照してください。データ削除タスクの使用方法については、「データ削除 DTS タスクを実行する」を参照してください。

データ削除 DTS タスクを使ってデータ ウェアハウスから Web ログ ファイル データを削除した後も、データ ウェアハウスには、手動で削除する必要のあるデータが残ります。たとえば、サイト管理者がカタログに商品を追加すると、その商品がカタログ ランタイム データベースに追加されます。サイト管理者は、更新されたカタログをサイトに配置します。

ユーザーがサイトを訪問し、その新しい商品をバスケットに追加します。ユーザーの買い物バスケットに商品が追加されると、Commerce Server は "バスケットに追加" という Commerce イベントを IIS Web ログ ファイルに記録します。

Commerce イベントには、その商品の商品 ID が含まれています。この商品 ID は、カタログ ランタイム データベースのテーブル内の行を参照します。

システム管理者が商品カタログ インポート DTS タスクを実行すると、データ ウェアハウスにカタログ ランタイム データベースがインポートされ、この商品 ID が完全な記述に解決されます。この新しい商品の商品 ID を含む Commerce イベントでは、この商品 ID はカタログ テーブルへの外部キーとして解決されます。

ただし、Commerce イベントがログに記録された後、商品カタログ データがデータ ウェアハウスにインポートされる前に、サイト管理者がカタログ ランタイム データベースからその新しい商品を削除すると、新しい商品の商品 ID はカタログ内の商品に解決されず、"孤立している" と見なされます。この例では、ファクト (商品 ID) が、存在しないディメンション データ (商品の名前と記述) を参照します。これは、システム管理者が構成の同期 DTS タスクを実行する前に Commerce Server ランタイム コンポーネントが項目を削除した場合にも起こります。

孤立したデータをデータ ウェアハウス データベースから削除する方法については、「孤立したデータをデータ ウェアハウスから削除する」を参照してください。

注

  • カタログ リソースは、削除操作をログに記録しません。カタログ項目を削除すると、カタログ項目が永久に削除されます。

データ ウェアハウスからのデータの削除に関するヒント集

  • データの削除に対応するために、データ ウェアハウス データベースのサイズを 2 倍にする。
データ ウェアハウス データベースのサイズを見積もる場合は、データ削除 DTS タスクによって使われる ID テーブルに必要な領域を計算に入れる必要があります。割り当てる領域は 2 倍にすることをお勧めします。たとえば、1 GB のデータ ウェアハウスを計画している場合は、データ削除を考慮して 2 GB の領域を割り当てる必要があります。
  • 削除に失敗した場合は ID テーブルを削除する。
削除コードには、データを削除するためにデータ ウェアハウス データベース内に ID テーブルを作成するスイッチが含まれています。これにより、データ削除 DTS タスクは、フェールオーバーまたは短時間の接続障害から回復し、処理を続行できます。ただし、データ削除プロセスが失敗したり、長時間の接続障害が発生したりした場合は、ID テーブルを手動で削除する必要があります。
削除操作が正常に完了すると、データ ウェアハウスは ID テーブルを削除します。テーブル名には、GUID とプレフィックス MSCSTemp が含まれます。たとえば、TaskHistory の ID テーブルの名前は、MSCSTempTaskHistory_{490CD250-C540-47B7-80BD-B308F3B356C7} のようになります。
注
  • UseTempTablesForDelete 環境変数は、ID テーブルが作成される場所を制御します。UseTempTablesForDelete の既定値は False です。これは、ID テーブルがデータ ウェアハウス データベース内に作成されることを意味します。この変数を True に設定すると、削除機能のために tempdb データベースが使われ、一時的な接続障害 (SQL Server サービスが停止して再起動した場合など) から回復できなくなります。
  • インポート時間を短くするために、Web ログ ファイル データを頻繁に削除する。
データ削除 DTS タスクを頻繁に実行して、詳細 Web ログ ファイル データを削除します。時間がたつにつれて、Web ログ ファイル データが蓄積され、データ ウェアハウスのインポート時間およびメモリ容量に大きな影響を及ぼすことがあります。データ削除 DTS タスクを実行する方法については、「データ削除 DTS タスクを実行する」を参照してください。
  • インポート時間を短くするために、孤立したデータをデータ ウェアハウス データベースから削除する。
孤立したデータをデータ ウェアハウス データベースから削除するには、DeleteOrphans_UriQuery、DeleteOrphans_Uri、および DeleteOrphans_LogUser ストアド プロシージャを使います。孤立したデータをデータ ウェアハウス データベースから削除する方法については、「孤立したデータをデータ ウェアハウスから削除する」を参照してください。


データ削除 DTS タスクを実行する

データ ウェアハウスからデータを削除するには、データ削除 DTS タスクを使います。データ削除タスクを使うと、詳細ログ ファイル データ、要約データ、データ ウェアハウス内のすべてのデータ、およびデータ ウェアハウス内の特定のサイトのすべてのデータを削除できます。たとえば、Web ログ ファイルのインポートに失敗した場合、データ削除タスクを使って、部分的にインポートされたログ ファイルからデータを削除できます。

パフォーマンスが低下したり、データ ウェアハウス内のメモリ容量が制限されることのないように、古いログ ファイル データを頻繁に削除することが重要です。Commerce Server サイトの履歴データを維持する場合は、保存するデータをレポートに抽出します。

注

  • データ削除 DTS タスクを実行する前に、tempdb データベースのサイズが、削除するデータベースのサイズよりも大きいことを確認する。

    たとえば、削除するデータベースが 15 GB の場合、SQL Server では、少なくとも 15 GB の tempdb データベースが必要です。tempdb データベースのサイズがそれよりも小さい場合、データ削除タスクは失敗します。

  • データ ウェアハウスからデータを削除した後で、レポート準備 DTS タスクを実行してオンライン分析処理 (OLAP) キューブを更新する必要があります。データ ウェアハウスからデータを削除した後は、すべてのキューブ処理を選択する必要があります。
  • 個々の Web ログ ファイルからインポートした詳細データを削除しても、Commerce Server ビジネス デスクのレポートによってアクセスされるログ ファイル データは同じままです。次のレポートは、詳細データの削除によって影響されません。
    • エントリ画面の分析
    • 注文イベント
    • 買い物バスケット イベント
  • レポートの基になるデータを削除するには、データ ウェアハウス内のすべてのデータを削除する必要があります。
  • 特定の Web ログ ファイルからインポートされたデータを削除する場合、データ削除 DTS タスクは、Taskhistory クラスを親とする子クラスのデータだけを削除します。データ削除タスクがデータを削除しないクラスは、しだいに大きくなることがあります。データ削除タスクは、次のクラスからデータを削除しません。
    • Loguser
    • Uri
    • Uriquery
    • Registereduser
    • Ordergroup
    • Date
  • このタスクは、いったん開始するとキャンセルできません。[キャンセル] ボタンを押すことはできますが、押してもタスクは終了しません。

ログ ファイル データを削除するには

データ ウェアハウス内のすべてのデータを削除するには

ログ ファイル データを削除するには

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  3. [タスク] メニューの [データ削除 (Commerce Server)] をクリックします。
  4. [タスクの削除] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] ボックスの一覧から、次のいずれかを選択します。
    • サイトの Web ログ ファイル データを削除する場合は [サイトのレベル]
    • データ ウェアハウスのログ ファイル データまたはすべてのデータを削除する場合は [データ ウェアハウスのレベル]
    [サイト名] | サイト レベルの操作を選択した場合は、Web ログ データの削除対象となるサイトをボックスの一覧から選択します。
    [データ ウェアハウス] | データ ウェアハウス レベルの操作を選択した場合は、Web ログ データの削除対象となるデータ ウェアハウスをボックスの一覧から選択します。
    [削除の種類の選択] | 特定の Web ログ データ インポートに関連付けられたデータを削除するには、ボックスの一覧の [Web ログ インポート] を選択します。
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  5. [削除のレベル] セクションで、次の操作を行います。
    項目 | 操作
    [すべてのデータ] 削除する Web ログ ファイルに関連するすべてのデータを削除するには、このオプションを選択します。

    注

    • 特定の Web ログ ファイルからインポートされたデータに対する [すべてのデータの削除] オプションでは、データ ウェアハウス内のその Web ログファイルに関する一部のデータには削除されないものがあります。代わりに、TaskHistory テーブルに関連するすべてのクラスからデータが削除されます。関連するクラスには、TaskHistory テーブルのメンバそれ自体、そのメンバの親や子、または、そのメンバの親の親やそのメンバの子の子である関係のものがあります。既定のデータ ウェアハウス スキーマ内のクラスは、次のとおりです。
      • Basket
      • FirstUriByDate
      • HitsByHour
      • HitsInfo
      • LastUriByDate
      • LogImportJobSummary
      • LogImportSubtask
      • OpenUserVisit
      • Order
      • Request
      • RequestByDateByUriByQueryString
      • Visit
      • VisitInfo
    [詳細データ] | 削除する Web ログ ファイルに関する詳細データを削除するには、このオプションを選択します。
  6. [削除するログ] セクションで、次のいずれかのオプションをボックスの一覧から選択します。
    • [Web ログ インポートの削除 (時間単位)] インポートしたログ ファイル データを保持する期間を指定するには、このオプションを選択します。
    • [現在の Web ログ インポート数の保持] インポートしたログ ファイル データを保持する Web ログ インポートの数を指定するには、このオプションを選択します。
    • [削除する特定の Web ログ インポートの選択] インポートしたログ ファイル データの削除対象となる Web ログ ファイル インポートを指定するには、このオプションを選択します。ログ ファイル データの削除対象となる Web ログ ファイルの [タスク ID] の左にあるチェック ボックスをオンにします。
  7. [OK] をクリックします。
  8. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  9. [OK] をクリックし、[終了] をクリックします。

    選択した Web ログ ファイルの詳細データが、データ ウェアハウスから削除されます。

  10. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

データ ウェアハウス内のすべてのデータを削除するには

  1. 構成の同期タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [データ削除 (Commerce Server)] をクリックします。
  5. [タスクの削除] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] | ボックスの一覧の [データ ウェアハウスのレベル] をクリックします。
    [データ ウェアハウス] | すべてのデータの削除対象となるデータ ウェアハウスをボックスの一覧から選択します。
    [削除の種類の選択] | データ ウェアハウス内のすべてのデータを削除するには、ボックスの一覧の [データ ウェアハウス内のすべてのデータ] を選択します。
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  6. [OK] をクリックします。

    注

    • 開いているパッケージに他の DTS タスクを追加し、シーケンス情報やワークフロー情報を追加して、パッケージ内のすべてのタスクを一度に実行できます。
  7. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  8. [OK] をクリックし、[終了] をクリックします。

    指定したデータ ウェアハウスからすべてのデータが削除されます。

  9. レポート準備 DTS タスクを実行して、インポートされたデータを指定の OLAP キューブに集約します。レポート準備タスクを実行する方法については、「レポート準備 DTS タスクを実行する」を参照してください。

これで、このデータをレポートで利用できます。


孤立したデータをデータ ウェアハウスから削除する

データ ウェアハウスが通常の運用状態である間に、定期的にファクト データを消去するようにデータ削除 DTS タスクのスケジュールを設定する必要があります。データ削除 DTS タスクが削除するデータは、通常、データ ウェアハウス内の非常に量の多いデータ (たとえば、要求、訪問、および VisitInfo テーブルの内容) です。

時間がたつにつれて、インポート時間が長くなり、拡張している特定のディメンション (たとえば、LogUser、URI、IPRef) の孤立したデータを削除する必要が生じることがあります。

孤立したデータは、関連する子インスタンスを持たない (親子関係のコンテキストの) 親クラス内のデータのインスタンスです。たとえば、データ ウェアハウスでは、OrderFormheader クラスが OrderFormLineItems クラスの親クラスです。これは、OrderFormLineItems クラス (子クラス) 内の各インスタンスに対して、OrderFormheader クラス (親クラス) 内に対応するインスタンスが存在することを意味します。削除操作で OrderFormLineItems 内のいくつかのインスタンスが削除されると、OrderFormheader (親クラス) 内の対応するインスタンスが孤立していると見なされます。

孤立したデータのインスタンスをデータ ウェアハウスから削除するには、Commerce OLE DB プロバイダを使って、親クラスに対して、DELETE ORPHANS 句を含む削除コマンドを発行します。詳細については、「Delete Syntax」を参照してください。

DELETE ORPHANS 句を含む削除コマンドを使って、孤立したデータを、URI、LogUser、および URIQuery クラスから削除することはできません。なぜなら、これらのクラスは、訪問や要求などいくつかのファクトの親クラスであり、その親子関係が Commerce OLE DB プロバイダではなくログ インポート タスクで強制されているためです。

注

  • DELETE ORPHANS 句を含まない削除コマンドは、URI、LogUser、および URIQuery クラスに対して機能しません。これは仕様です。

これらのテーブル内の孤立したデータを削除するには、DeleteOrphans_UriQuery、DeleteOrphans_Uri、および DeleteOrphans_LogUser ストアド プロシージャを呼び出す必要があります。これらのストアド プロシージャは、次の構文を使って、SQL クエリ アナライザで呼び出すことができます。

exec DeleteOrphans_UriQuery
exec DeleteOrphans_Uri
exec DeleteOrphans_LogUser

注

  • DeleteOrphan ストアド プロシージャは、次のディメンションに対して機能しません。
    • Loguser
    • URI
    • Uriquery
これらのディメンションは、OLE DB プロバイダが処理できないアプリケーションレベルの関係を持っています。

DeleteOrphans_Uri および DeleteOrphans_LogUser ストアド プロシージャは、新しい Commerce イベントまたはカスタム Commerce イベントが定義されるたびに更新する必要があります。

DeleteOrphans_Uri ストアド プロシージャを更新するには、次のコードを使います。

CREATE PROCEDURE DeleteOrphans_UriQuery
AS
SELECT [QueryStringKey] INTO [#MSCSTempUriQuery] FROM [UriQuery] WHERE (0 = 1)
CREATE UNIQUE CLUSTERED INDEX [URI_del_temp_idx] ON [#MSCSTempUriQuery]([QueryStringKey]) WITH IGNORE_DUP_KEY
INSERT INTO [#MSCSTempUriQuery] SELECT [Request].[QueryStringKey] AS [QueryStringKey] FROM [Request]
INSERT INTO [#MSCSTempUriQuery] SELECT [RequestByDateByUriByQueryString].[QueryStringKey] AS [QueryStringKey] FROM [RequestByDateByUriByQueryString]
DELETE FROM [UriQuery] WHERE ([UriQuery].[QueryStringKey] NOT IN
   (SELECT [#MSCSTempUriQuery].[QueryStringKey] FROM [#MSCSTempUriQuery]))
GO

CREATE PROCEDURE DeleteOrphans_URI
AS
SELECT [UriKey] INTO [#MSCSTempURI] FROM [URI] WHERE (0 = 1)
CREATE UNIQUE CLUSTERED INDEX [URI_del_temp_idx] ON [#MSCSTempURI]([UriKey]) WITH IGNORE_DUP_KEY
INSERT INTO [#MSCSTempURI] SELECT [Basket].[UriKey] AS [UriKey] FROM [Basket]
INSERT INTO [#MSCSTempURI] SELECT [CampaignEvent].[UriKey] AS [UriKey] FROM [CampaignEvent]
INSERT INTO [#MSCSTempURI] SELECT [FirstUriByDate].[FirstUriKey] AS [UriKey] FROM [FirstUriByDate]
INSERT INTO [#MSCSTempURI] SELECT [HitsInfo].[UriKey] AS [UriKey] FROM [HitsInfo]
INSERT INTO [#MSCSTempURI] SELECT [LastUriByDate].[LastUriKey] AS [UriKey] FROM [LastUriByDate]
INSERT INTO [#MSCSTempURI] SELECT [OpenUserVisit].[FirstUriKey] AS [UriKey] FROM [OpenUserVisit]
INSERT INTO [#MSCSTempURI] SELECT [OpenUserVisit].[SecondUriKey] AS [UriKey] FROM [OpenUserVisit]
INSERT INTO [#MSCSTempURI] SELECT [OpenUserVisit].[LastUriKey] AS [UriKey] FROM [OpenUserVisit]
INSERT INTO [#MSCSTempURI] SELECT [Order].[UriKey] AS [UriKey] FROM [Order]
INSERT INTO [#MSCSTempURI] SELECT [Request].[UriKey] AS [UriKey] FROM [Request]
INSERT INTO [#MSCSTempURI] SELECT [RequestByDateByUriByQueryString].[UriKey] AS [UriKey] FROM [RequestByDateByUriByQueryString]
DELETE FROM [URI] WHERE ([URI].[UriKey] NOT IN
   (SELECT [#MSCSTempURI].[UriKey] FROM [#MSCSTempURI]))
GO

CREATE PROCEDURE DeleteOrphans_LogUser
AS
SELECT [UserKey] INTO [#MSCSTempLogUser] FROM [LogUser] WHERE (0 = 1)
CREATE UNIQUE CLUSTERED INDEX [LogUser_del_temp_idx] ON [#MSCSTempLogUser]([UserKey]) WITH IGNORE_DUP_KEY
INSERT INTO [#MSCSTempLogUser] SELECT [Basket].[UserKey] AS [UserKey] FROM [Basket]
INSERT INTO [#MSCSTempLogUser] SELECT [Order].[UserKey] AS [UserKey] FROM [Order]
INSERT INTO [#MSCSTempLogUser] SELECT [CampaignEvent].[UserKey] AS [UserKey] FROM [CampaignEvent]
INSERT INTO [#MSCSTempLogUser] SELECT [OpenUserVisit].[UserKey] AS [UserKey] FROM [OpenUserVisit]
INSERT INTO [#MSCSTempLogUser] SELECT [Visit].[UserKey] AS [UserKey] FROM [Visit]
INSERT INTO [#MSCSTempLogUser] SELECT [VisitInfo].[UserKey] AS [UserKey] FROM [VisitInfo]
INSERT INTO [#MSCSTempLogUser] SELECT [Request].[UserKey] AS [UserKey] FROM [Request]
DELETE FROM [LogUser] WHERE ([LogUser].[UserKey] NOT IN
   (SELECT [#MSCSTempLogUser].[UserKey] FROM [#MSCSTempLogUser]))
GO

関連項目

データ削除 DTS タスクを実行する

データ削除 DTS タスクでの ETL プロセス

データ削除 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


レポート準備 DTS タスクを実行する

データ ウェアハウスのデータからオンライン分析処理 (OLAP) キューブにデータを作成するには、レポート準備 DTS タスクを使います。Commerce Server 2002 では、分析モジュールで実行されるレポートが短時間で完了するように、OLAP キューブを使ってデータ ウェアハウスのデータを要約します。データ ウェアハウスでデータがインポートまたは削除されるたびに、レポート準備 DTS タスクを実行する必要があります。OLAP キューブについては、SQL Server Books Online を参照してください。

注

  • データ ウェアハウスが複数のサイトで共有されている場合は、レポート準備タスクを 1 回実行すれば、すべてのサイトのデータが処理されます。

    レポート準備 DTS タスクを実行すると、データ ウェアハウス内のすべてのサイトが処理されます。この DTS タスクは、個々のサイトを対象にして実行しないでください。データ ウェアハウスのパフォーマンスに影響を及ぼします。

  • 初めてレポート準備タスクを実行してデータ ウェアハウスの OLAP キューブにデータを作成するときは、完全なキューブ処理を実行する必要があります。レポート準備タスクの実行後は、増分キューブ処理を実行して、新しいデータだけを OLAP キューブに読み込むことができます。
  • データ ウェアハウスからすべてのデータを削除した後にも、すべてのキューブ処理を選択する必要があります。データ ウェアハウスからデータを削除する方法については、「データ削除 DTS タスクを実行する」を参照してください。
  • レポート準備タスクを増分モードで実行した場合でも、完了するまでの時間が長くなることがあります。これは、レポート準備タスクが次のキューブに対して完全な処理を行う必要があるためです。
    キューブ | 処理モードについての検討事項
    Page Usage | URI ディメンション、つまり、"常に処理中の" ディメンションを含みます。
    Entry Pages | URI ディメンション、つまり、"常に処理中の" ディメンションを含みます。
    Exit Pages | URI ディメンション、つまり、"常に処理中の" ディメンションを含みます。
    mscsSales | 変更可能なファクトを含みます。したがって、キューブは増分処理されません。
    Basket Events | 変更可能なファクトを含みます。したがって、キューブは増分処理されません。
    Buyer Visits | 変更可能なファクトを含みます。したがって、キューブは増分処理されません。
  • レポート準備タスクは、特に "再試行可能な" エラーまたはフェールオーバーが発生した場合は、クラスタ化された OLAP 環境で機能しません。"再試行可能なエラー" については、「レポート準備 DTS タスクでの ETL プロセス」を参照してください。
  • OLAP ディメンションおよびキューブにデータを作成するために必要な情報がデータ ウェアハウスにインポートされていない場合、OLAP ディメンションおよびキューブを処理するときに、レポート準備タスクによってエラーが表示されることがあります。エラー メッセージは、次の形式で表示されます。

    処理エラー [ソース データに行が含まれていません] <オブジェクト名>

    データのサブセットをデータ ウェアハウスにインポートする (たとえば、商品カタログ データ インポート タスクを実行していない) 場合、データのない OLAP ディメンションおよびキューブの処理を無効にすることができます。これにより、[ソース データに行が含まれていません] というエラー メッセージが表示されなくなります。

    Analysis Services オブジェクトの処理を無効にするには、処理を無効にするキューブおよびディメンションの CubeProcInfo および DimProcInfo で、"ProcessingEnabled" フラグを "0" に設定します。

OLAP キューブにデータを作成するには

  1. 構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させます。詳細については、「構成の同期 DTS タスクを実行する」を参照してください。
  2. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。

    既存のパッケージを変更する場合は、[データ変換サービス] を右クリックし、[パッケージを開く] を選択します。[ファイルの選択] ダイアログ ボックスで、変更するパッケージをクリックし、[開く] をクリックします。

  4. [タスク] メニューの [レポート準備 (Commerce Server)] をクリックします。
  5. [レポートの準備のプロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | レポート準備タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [サイト名] | OLAP キューブにデータを作成する対象のサイトを選択します。
    [増分] | OLAP キューブの増分のみを処理する場合に選択します。
    [すべて] | OLAP キューブの全体を処理する場合に選択します。
  6. [OK] をクリックします。
  7. [パッケージ] メニューの [実行] をクリックします。

    インポートの進行状況を示す [パッケージ実行中] ダイアログ ボックスが表示されます。処理が完了すると、正常に終了したことを示す [パッケージ実行結果] ダイアログ ボックスが表示されます。

  8. [OK] をクリックし、[終了] をクリックします。

データが OLAP キューブに読み込まれます。Commerce Server レポートを含む、Commerce Server ビジネス分析システムを使って、データ ウェアハウスのデータを分析できます。レポートを実行する方法の詳細については、「ビジネス デスク分析」を参照してください。

関連項目

レポート準備 DTS タスクを実行する

レポート準備 DTS タスクでの ETL プロセス

レポート準備 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


動的レポートのドリルスルーを有効にする

データ ウェアハウスの OLAP キューブには、マルチディメンション データの集計が含まれています。動的レポートで集計データを表示する場合、その集計の基となった詳細レコードを表示できます。基になるレコードを表示する機能は、"ドリルスルー" と呼ばれます。ドリルスルーは、OLAP ベースのレポートだけに適用され、レポートの基になるキューブでドリルスルーが有効になっている場合にだけ機能します。

次の手順は、データ ウェアハウスのキューブでドリルスルーを有効にする方法を示しています。正規のキューブ (テーブルに基づく、独自の集計を持つキューブ) および仮想キューブ (正規のキューブまたはリンク キューブに基づく論理キューブ) のドリルスルーを有効にできます。

注

  • CSDW_MakePrimaryProductCategoryInfo ストアド プロシージャを使って、各商品をそのプライマリ親カテゴリにマップできます。これによって、ドリルスルー レポートの詳細に表示される項目の数を減らすことができます。これについては、「ドリルスルーを使って商品別売り上げまたは買い物バスケット イベントを表示する」を参照してください。

正規のキューブのドリルスルーを有効にするには

仮想キューブのドリルスルーを有効にするには

正規のキューブのドリルスルーを有効にするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントし、[Microsoft SQL Server] をポイントします。次に [Analysis Services] をポイントして、[分析マネージャ] をクリックします。
  2. [ツリー] タブで、[Analysis Servers] ノードを展開し、データ ウェアハウスを実行しているサーバーのノードを展開します。次に、データ ウェアハウスのノード (Retail_dw など) を展開します。
  3. [キューブ] ノードを展開します。
  4. ドリルスルーを有効にするキューブを右クリックし、[編集] をクリックします。
  5. [キューブ エディタ] ウィンドウで、[ツール] メニューの [ドリルスルーオプション] をクリックします。
  6. [キューブ ドリルスルー オプション] ダイアログ ボックスの [ドリルスルーの有効化] チェック ボックスをオンにします。
  7. [列] タブで、ドリルスルー データを利用可能にする列名を選択し、[OK] をクリックします。
  8. [キューブ エディタ] ウィンドウで、[ファイル] メニューの [上書き保存] をクリックします。
  9. [ファイル] メニューの [終了] をクリックします。
  10. [分析マネージャ] ウィンドウで、上の手順で編集したキューブと同じキューブを右クリックし、[ロールの管理] をクリックします。
  11. [キューブ ロール マネージャ] ダイアログ ボックスの [編集] をクリックします。
  12. [オプション] タブで、[ドリルスルーの許可] チェック ボックスをオンにします。
  13. [OK] をクリックします。
  14. [キューブ ロール マネージャ] ダイアログ ボックスの [閉じる] をクリックします。
  15. [分析マネージャ] ウィンドウで、[コンソール] メニューの [終了] をクリックします。

仮想キューブのドリルスルーを有効にするには

  1. 「正規のキューブのドリルスルーを有効にするには」の手順に従って、仮想キューブの 1 つ以上の基本キューブに対してドリルスルーを有効にします。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントし、[Microsoft SQL Server] をポイントします。次に [Analysis Services] をポイントして、[分析マネージャ] をクリックします。
  3. [ツリー] タブで、[Analysis Servers] ノードを展開し、データ ウェアハウスを実行しているサーバーのノードを展開します。次に、データ ウェアハウスのノード (Retail_dw など) を展開します。
  4. [キューブ] ノードを展開します。
  5. ドリルスルーを有効にする仮想キューブを右クリックし、[編集] をクリックします。
  6. [キューブ エディタ] ウィンドウで、[表示] メニューの [プロパティ] をクリックします。
  7. [詳細設定] タブの [Enable Drillthrough] を [True] に設定します。
  8. [キューブ エディタ] ウィンドウで、[ファイル] メニューの [上書き保存] をクリックします。
  9. [ファイル] メニューの [終了] をクリックします。
  10. [分析マネージャ] ウィンドウで、上の手順で編集したキューブと同じキューブを右クリックし、[ロールの管理] をクリックします。
  11. [キューブ ロール マネージャ] ダイアログ ボックスの [編集] をクリックします。
  12. [オプション] タブで、[ドリルスルーの許可] チェック ボックスをオンにします。
  13. [OK] をクリックします。
  14. [キューブ ロール マネージャ] ダイアログ ボックスの [閉じる] をクリックします。
  15. [分析マネージャ] ウィンドウで、[コンソール] メニューの [終了] をクリックします。

関連項目

動的レポートを表示する

動的レポートと静的レポートの機能


ドリルスルーを使って商品別売り上げまたは買い物バスケット イベントを表示する

ドリルスルーを使って商品別売り上げレポートまたは買い物バスケット イベント レポートの詳細を表示すると、その詳細に、ピボットテーブル レポートに示される数から予想されるよりも多くの項目が表示されることがあります。この現象は、1 つの商品が複数のカテゴリにマップされているときに発生する可能性があります。これは仕様です。つまり、その商品が、現在調べられているカテゴリの下の複数のカテゴリに存在するために起こります。

商品別売り上げレポートと買い物バスケット イベント レポートは、ピボットテーブルに正しいロールアップ情報を表示するために、詳細データに追加情報を挿入します。Commerce Server は、商品カテゴリごとの売り上げおよびイベントを調べるときに、この追加データを使って正確に集計データを算出します。ドリルスルー機能を使用すると、この非表示のデータが表示されます。

ドリルスルーの結果として、商品ごとに必ず 1 行だけが返されるようにするには、各商品を 1 つの商品カテゴリだけにマップする必要があります。これを実現するには、CSDW_MakePrimaryProductCategoryInfo ストアド プロシージャを使って、各商品をそのプライマリ親カテゴリにマップします。これにより、各商品が、確実にカテゴリ階層内の 1 つのカテゴリだけにマップされます。

プライマリ親カテゴリに基づいて商品とカテゴリのマッピングを指定するには、SQL データ ウェアハウスで次のコマンドを発行します。レポート準備 DTS タスクは、実行時に自動的にこのプロシージャを実行し、新しい商品カテゴリ ツリーを作成します。

UPDATE StoredProcInfo set [Name] = N’CSDW_MakePrimaryProductCategoryInfo’ where [Name] = N’CSDW_MakeProductCategoryInfo’


DTS タスクの実行エラーを確認する

実行した DTS タスクが失敗し、正常に完了しない場合があります。パッケージの実行時にその中のタスクが正常に完了しなかった場合は、[パッケージを実行しています] ダイアログ ボックスで、そのタスクに [失敗] というラベルが付けられます。実行されたすべてのタスクの履歴を表示するには、タスクの履歴を使います。タスクの履歴を使うと、失敗した DTS タスクの問題を診断することができます。

タスクの履歴を使ってタスクの状態を表示する場合、次のようにタスクを表示できます。

  • 小さいアイコン
  • 大きいアイコン
  • 一覧
  • 詳細

詳細表示では、タスクに関する次の情報が提供されます。

  • 説明
  • 開始時刻
  • 終了時刻
  • 状態

パッケージの実行エラーを確認するには

  • [Commerce Server マネージャ]、[グローバル リソース]、[Data Warehouse 1] の順に展開し、[タスクの履歴] を右クリックします。次に、[表示] をクリックし、[詳細] をクリックします。

右側のウィンドウにタスクの履歴の詳細が表示されます。

関連項目

データ ウェアハウスのインポート処理のトラブルシューティング


複数のタスクを含むパッケージの作成およびスケジュール設定を行う

ここでは、データ ウェアハウスにデータをインポートするために必要なすべてのタスクが含まれる 1 つの再利用可能な SQL Server DTS パッケージを作成する方法について説明します。さらに、このパッケージには、タスクが正しい順序で実行されるように、ワークフローの指示も含まれます。パッケージは、再利用するために保存され、自動的に実行されるようにスケジュールが設定されます。

データ ウェアハウス リソースを使って、次のものを含むパッケージを作成できます。

  • DTS タスク
  • ワークフローの指示

DTS タスクとワークフローの指示が含まれるパッケージを作成した後、そのパッケージを保存して再利用できます。保存したパッケージは、手動で実行することも、自動的に実行されるようにスケジュールを設定することもできます。

この例では、次のことを前提にしています。

  • 1 つのサイトのデータがデータ ウェアハウスにインポートされる。
  • 以前にそのサイトの各種類のデータをデータ ウェアハウスにインポートしている。

ここでは、次のトピックについて説明します。

  • 手順 1 : Commerce Server DTS タスクが含まれるパッケージを作成する
  • 手順 2 : ワークフローの指示を追加する
  • 手順 3 : パッケージを実行し、エラーを確認する
  • 手順 4 : 自動的に実行されるようにパッケージのスケジュールを設定する


手順 1 : Commerce Server DTS タスクが含まれるパッケージを作成する

ここでは、データ ウェアハウスにデータをインポートして分析用にそのデータを準備するために必要なすべての Commerce Server DTS タスクが含まれるパッケージを作成します。次の各操作を行います。

  1. パッケージを作成し、構成の同期タスクを追加する
  2. Web サーバー ログ インポート タスクを追加する
  3. トランザクション データ インポート タスクを追加する
  4. 商品カタログ インポート タスクを追加する
  5. レポート準備タスクを追加する
  6. パッケージを保存する

パッケージを作成し、構成の同期タスクを追加する

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を右クリックし、[新規パッケージ] をクリックします。
  3. [タスク] メニューの [構成の同期 (Commerce Server)] をクリックします。
  4. [DW プロパティの同期] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | 同期タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] | サイトとデータ ウェアハウスを同期させるには、ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧から、データ ウェアハウスと同期するサイトを選択します。
  5. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  6. [OK] をクリックします。

トランザクション データ インポート タスクを追加する

  1. [タスク] メニューの [トランザクション データ インポート (Commerce Server)] をクリックします。
  2. [トランザクション インポート プロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧からインポートするデータを含むサイトを選択します。
    [増分の読み込み] | 前回のインポートに基づいて新規トランザクション データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのトランザクション データをインポートするには、このオプションを選択します。
  3. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  4. [OK] をクリックします。

Web サーバー ログ インポート タスクを追加する

  1. [タスク] メニューの [Web サーバー ログ インポート (Commerce Server)] をクリックします。
  2. [Web サーバー ログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | インポートする Web サーバー ログを含む Web サイト名を、ボックスの一覧から選択します。
    [ログ ファイルのパス] | インポートする Web ログ ファイルのパスを入力するか、 省略記号 をクリックして、ログ ファイルのパスを参照します。
    [ログ ファイル] | [Web サーバー ログ ファイル] ダイアログ ボックスを開くときにクリックします。[Web サーバー ログ ファイル] ボックスの一覧から、インポートする Web ログ ファイルを選択します。[OK] をクリックすると [Web サーバー ログのインポート] ダイアログ ボックスに戻ります。
    [前回以降のすべてのログ ファイルのインポート] | 前回のインポート以降に作成されたファイルをすべて指定するには、このオプションを選択します。
  3. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  4. [OK] をクリックします。

商品カタログ インポート タスクを追加する

  1. [タスク] メニューの [商品カタログ インポート (Commerce Server)] をクリックします。
  2. [カタログ インポート プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | このインポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [操作レベル] | ボックスの一覧の [サイトのレベル] をクリックします。
    [サイト名] | ボックスの一覧からインポートするデータを含むサイトを選択します。
    [増分の読み込み] | 前回のインポートに基づいて新規カタログ データのみをインポートするには、このオプションを選択します。
    [すべて読み込み] | すべてのカタログ データをインポートするには、このオプションを選択します。
  3. [再試行のプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
    [再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
  4. [OK] をクリックします。

レポート準備タスクを追加する

  1. [タスク] メニューの [レポート準備 (Commerce Server)] をクリックします。
  2. [レポートの準備のプロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [説明] | レポート準備タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
    [サイト名] | OLAP キューブにデータを作成する対象のサイトを選択します。
    [増分] | OLAP キューブの増分のみを処理する場合に選択します。
    [すべて] | OLAP キューブの全体を処理する場合に選択します。
  3. [OK] をクリックします。

パッケージを保存する

  1. [パッケージ] メニューの [保存] をクリックします。
  2. [DTS パッケージの保存] ダイアログ ボックスの [パッケージ名] ボックスに、パッケージの名前 (たとえば、<サイト名>Import) を入力します。
  3. [OK] をクリックします。

タスクが含まれるパッケージが保存されます。


手順 2 : ワークフローの指示を追加する

ここでは、手順 1. で作成したパッケージを再び開き、パッケージ内のタスクの実行順序を制御するワークフローの指示を追加します。

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を展開し、[ローカル バッケージ] をクリックします。
  3. 作成したパッケージをダブルクリックします。
  4. Ctrl キーを押しながら、次の順序で各タスクをクリックします。
    • 構成の同期
    • Web サーバー ログ インポート
    • トランザクション データ インポート
    • 商品カタログ インポート
    • レポート準備
  5. [ワークフロー] メニューの [完了時] をクリックします。

    パッケージにワークフローの指示が追加されます。

  6. [パッケージ] メニューの [保存] をクリックします。

ワークフローの指示と共にパッケージが保存されます。


手順 3 : パッケージを実行し、エラーを確認する

ここでは、パッケージを実行し、すべてのタスクが正常に実行されることを確認します。

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を展開し、[ローカル バッケージ] をクリックします。
  3. パッケージを右クリックし、[パッケージの実行] をクリックします。
  4. [パッケージ実行中] ダイアログ ボックスで、失敗したタスクがあるかどうかを確認します。

    注

    • タスクが失敗すると、エラー メッセージが表示されます。[OK] をクリックして、エラー メッセージを閉じます。
  5. [終了] をクリックして、[パッケージ実行中] ダイアログ ボックスを閉じます。

失敗したタスクについては、「DTS タスクの実行エラーを確認する」を参照してください。


手順 4 : 自動的に実行されるようにパッケージのスケジュールを設定する

ここでは、SQL Server パッケージ スケジューラを使って、パッケージが自動的に実行されるようにスケジュールを設定します。

  1. [Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  2. [データ変換サービス] を展開し、[ローカル バッケージ] をクリックします。
  3. パッケージを右クリックし、[パッケージのスケジュール設定] をクリックします。
  4. [定期ジョブのスケジュール編集] ダイアログ ボックスの [実行間隔] セクションで、[毎日]、[毎週]、または [毎月] をクリックします。
    • [毎日] を選択した場合は、パッケージ実行間隔 (日数) を選択します。
    • [毎週] を選択した場合は、パッケージ実行間隔 (週数) およびパッケージを実行する曜日を選択します。
    • [毎月] を選択した場合は、日付とパッケージ実行間隔 (月数) を選択するか、またはパッケージを実行する月の週と曜日を選択します。
  5. [毎日] を選択した場合は、[1 日のうちの頻度] セクションで、[1 回] を選択して時刻を設定するか、または [間隔] を選択して間隔、開始時刻、および終了時刻を設定します。
  6. [期間] セクションで、開始日を設定し、ドロップダウン カレンダーから終了日を選択するか、または [終了日なし] を選択します。
  7. [OK] をクリックします。

パッケージのスケジュールが設定されます。タスクの履歴を頻繁に調べて、失敗したタスクがないかどうかを確認する必要があります。タスクの履歴を使用する方法については、「DTS タスクの実行エラーを確認する」を確認してください。


データ ウェアハウスを移動する

当初のデータ ウェアハウスの配置を変更する必要がある場合があります。たとえば、データ ウェアハウスが大幅に拡張したために、現在のコンピュータの能力を超えてしまった場合や、データ ウェアハウスのパフォーマンスを向上させるためにトポロジの構成を変更しなければならない場合などです。

次の手順は、現在の Commerce Server セットアップにほとんど影響を与えずに、データ ウェアハウスを新しいコンピュータに移動するための操作を簡単にまとめています。

  1. 現在データ ウェアハウスを使っているタスク、および移動中にデータ ウェアハウスを使うようにスケジュール設定されているタスクがないことを確認します。
  2. データ ウェアハウスのどの部分を移動するかを決定します。たとえば、データ ウェアハウス データベースだけを移動したり、分析データベースだけを移動したり、両方移動したりすることができます。
  3. 現在のデータ ウェアハウス (またはそのコンポーネントの 1 つ) をバックアップします。
  4. 新しいコンピュータで、データ ウェアハウスのバックアップ コピーを復元します。
  5. 新しい場所を参照するようにすべてのデータ ウェアハウス接続文字列を更新します。
  6. 移動前に作成された、古いコンピュータ上の SQL Server パッケージおよびイベントを削除します。
  7. IISReset を実行します。
  8. ビジネス分析レポートにデータが表示されることを確認します。

ここでは、次のトピックについて説明します。

  • データ ウェアハウスの移動に関するヒント集
  • データ ウェアハウスの内容を移動する
  • データ ウェアハウス接続を更新する


データ ウェアハウスの移動に関するヒント集

データ ウェアハウスを移動する前に、次のことを確認します。

  • データ ウェアハウスの移動先となるコンピュータが、Commerce Server プラットフォームの決められた要件を満たしていること。
  • 移動を行う前に Commerce Server サイトが適切にインストールされ機能していること。
  • データ ウェアハウスの移動元および移動先のすべてのコンピュータに対してフル アクセスを持っていること。たとえば、すべてのコンピュータに対して、フル SQL Server アクセスおよび管理者特権を持っていること。
  • どのサイトにも、データ ウェアハウスの移動中にそのデータ ウェアハウスに対して実行されるようスケジュール設定されているタスクがないこと。


データ ウェアハウスの内容を移動する

ここでは、データ ウェアハウスを、あるコンピュータ (またはコンピュータのセット) から別のコンピュータに物理的に移動するプロセスについて説明します。データ ウェアハウスには、SQL Server データベース (既定では、<サイト名>_dw) と、レポート作成に使う OLAP データベースの両方が含まれています。

データ ウェアハウス データベースを移動する

分析データベースを移動する

データ ウェアハウス接続を更新する

DTS パッケージを移動する

ドメインを超えたコンピュータ構成

データ ウェアハウス データベースを移動する

次の 4 つの手順に従って、データ ウェアハウス データベースを移動します。

  1. データベースを切り離します。
  2. データベース ファイルをコピーします。
  3. データベースを新しい場所に貼り付けます。
  4. データベースを接続します。

重要

  • SQL Server データベースを移動する前に、SQL スケジューラで、移動中に実行されるようスケジュール設定されているタスクがないことを確認します。

SQL Server データベースを切り離すには

  1. Commerce Server マネージャで、[Microsoft SQL Server] を展開します。次に、サーバー グループ、サーバーの順に展開します。
  2. [データベース] を展開し、移動するデータベースを右クリックします。次に、[プロパティ] をクリックします。
  3. [<データベース名> のプロパティ] ダイアログ ボックスの [データ ファイル] タブにある [データベース ファイル] セクションの [場所] 列で、ハード ドライブ上に格納されている <サイト名>_dw データベース ファイルの完全なパスを確認します。.mdf ファイルおよび .ldf ファイルの両方の場所をメモします。
  4. [OK] をクリックして、[プロパティ] ダイアログ ボックスを閉じます。
  5. 移動するデータベースを右クリックし、[すべてのタスク] をポイントします。次に、[データベースのデタッチ] をクリックします。
  6. [データベースのデタッチ - <データベース名>] ダイアログ ボックスの [データベース状態] セクションで、そのデータベースを使っている現在のデータベース作業および接続がないことを確認します。
  7. [OK] をクリックし、切り離しプロセスを完了します。次に、もう一度 [OK] をクリックし、確認用のボックスを閉じます。

SQL Server データベースをコピーするには

  1. デスクトップの [マイ コンピュータ] を右クリックし、[エクスプローラ] をクリックします。
  2. [マイコンピュータ] ブラウザ ウィンドウで、<サイト名>_dw ファイルの場所に移動します。
  3. 次のファイルを、新しい場所に移動するために使うメディアにコピーします。
    • <サイト名>_dw.mdf
    • <サイト名>_dw.ldf
注
  • データ ウェアハウスには、<サイト名>_dw.mdf ファイルと <サイト名>_dw.ldf ファイルの両方が必要です。

SQL Server データベースを新しいコンピュータに貼り付けるには

  1. 貼り付け先コンピュータのデスクトップで、[マイ コンピュータ] を右クリックし、[エクスプローラ] をクリックします。
  2. [マイ コンピュータ] ブラウザ ウィンドウで、データベースを貼り付ける場所に移動し、データベース ファイル (<サイト名>_dw.mdf および <サイト名>_dw.ldf) を新しい場所に貼り付けます。

新しいコンピュータ上のデータベースを接続するには

  1. Commerce Server マネージャで、[Microsoft SQL Server] を展開します。次に、サーバー グループ、サーバーの順に展開します。
  2. [データベース] を右クリックし、[すべてのタスク] をポイントします。次に、[データベースのアタッチ] をクリックします。
  3. [データベースのアタッチ] ダイアログ ボックスで、接続するデータベースの .mdf ファイルの場所を入力します。
  4. [元のファイル名] 列で、データベースの .mdf ファイルおよび .ldf ファイルの両方が表示されていることを確認します。
  5. [以下としてアタッチ] ボックスで、データベースの名前を確認します。
  6. [OK] をクリックし、データベースを接続します。次に、もう一度 [OK] をクリックし、確認用のボックスを閉じます。

分析データベースを移動する

次の 3 つの手順に従って、分析データベースを移動します。

  1. 分析データベースをアーカイブします。
  2. 分析データベースを新しい場所に復元します。
  3. 仮想キューブを処理します。

分析データベースをアーカイブするには

  1. Commerce Server マネージャで、[Microsoft SQL Server]、[分析サーバー] の順に展開し、サーバー グループを展開します。次に、移動する分析データベースを右クリックし、[アーカイブ データベース] をクリックします。
  2. [アーカイブ データベース] ダイアログ ボックスの [保存] ボックスに、アーカイブしたデータベースを保存する場所を入力します。その場所をメモします。
  3. [アーカイブ] をクリックします。
  4. [データベース アーカイブ中] ダイアログ ボックスで、[閉じる] をクリックします。

新しいコンピュータ上で分析データベースを復元するには

  1. Commerce Server マネージャで、[Microsoft SQL Server]、[分析サーバー] の順に展開し、サーバー グループを展開します。次に、分析データベースの追加先となるローカル コンピュータのノードを右クリックし、[データベースの復元] をクリックします。
  2. [アーカイブ ファイルを開く] ダイアログ ボックスで、分析データベースのアーカイブ先の場所に移動し、分析データベースのアーカイブ ファイルとして当初選択した .cab ファイルを選択します。次に、[開く] をクリックします。
  3. [データベースの復元] ダイアログ ボックスで、[復元] をクリックし、復元処理を完了します。
  4. [データベース復元中] ダイアログ ボックスで、[閉じる] をクリックします。

分析データベースを復元した後、仮想キューブを処理する必要があります。

仮想キューブを処理するには

注

  • 移動を完了するには、すべての仮想キューブを 1 つずつ処理する必要があります。
  1. Commerce Server マネージャで、[Microsoft SQL Server]、[分析サーバー]、サーバー グループ、[キューブ] の順に展開し、処理する仮想キューブを右クリックします。
  2. [キューブの処理] ダイアログ ボックスで、[OK] をクリックし、キューブを処理します。
  3. [処理] ダイアログ ボックスで、[閉じる] をクリックします。


データ ウェアハウス接続を更新する

データ ウェアハウスを新しいコンピュータに移動した後、データ ウェアハウスの接続情報を更新する必要があります。次の 3 つの場所で、データ ウェアハウスの接続情報を更新する必要があります。

  • データ ウェアハウスのグローバル リソース
  • 分析データベース
  • データ ウェアハウス データベース

重要

  • 必ず、Commerce マネージャ、分析マネージャ、および SQL Enterprise Manager で接続を調べて、接続情報の設定を正しく変更したことを確認します。
  • パスワードを変更した後は、必ず IISReset を実行します。これにより、移動プロセス中に、ビジネス デスクが接続情報をキャッシュしていないことが保証されます。

Commerce マネージャでデータ ウェアハウスのグローバル リソースの接続文字列を更新するには

  1. Commerce Server マネージャで、[Microsoft SQL Server] を展開し、[グローバル リソース] を展開します。次に、[データ ウェアハウス] グローバル リソースを右クリックし、[プロパティ] をクリックします。
  2. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [SQL Server] タブで、次の操作を行います。
    項目 | 操作
    [ユーザー ID] | (SQL Server 認証の場合のみ) SQL Server 管理者のユーザー ID を入力します。
    [パスワード] | (SQL Server 認証の場合のみ) SQL Server 管理者のパスワードを入力します。
    [サーバー] | データベースが置かれているコンピュータの名前を入力します。
    [データベース] | データ ウェアハウス データベースの名前を入力します。
  3. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [分析サーバー] タブにある [プライマリ分析サーバー] セクションで、次の操作を行います。
    項目 | 操作
    [サーバー] | データベースが置かれているコンピュータの名前を入力します。
    [データベース] | 分析データベースの名前を入力します。
  4. [データ ウェアハウスのプロパティ] ダイアログ ボックスの [分析サーバー] タブにある [セカンダリ分析サーバー] セクションで、次の操作を行います。
    項目 | 操作
    [サーバー] | データベースが置かれているコンピュータの名前を入力します。
    [データベース] | 分析データベースの名前を入力します。
  5. [OK] をクリックします。

Commerce マネージャで分析データベースの接続情報を更新するには

  1. Commerce Server マネージャで、[Microsoft SQL Server]、[分析サーバー]、サーバー グループ、分析データベースの順に展開し、[データ ソース] を展開します。次に、[COMMERCE_DataWarehouse] を右クリックし、[編集] をクリックします。
  2. [データ リンク プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー名を選択または入力します] | サーバー名を入力します。
    [ユーザー名] | (SQL Server 認証の場合のみ) SQL Server 管理者のユーザー ID を入力します。
    [パスワード] | (SQL Server 認証の場合のみ) SQL Server 管理者のパスワードを入力します。
    [サーバー上のデータベースを選択する] | ボックスの一覧から、分析データベースを選択します。
  3. [接続テスト] をクリックします。
  4. [OK] をクリックして、確認用のボックスを閉じます。
  5. [データ リンク プロパティ] ダイアログ ボックスで、[OK] をクリックします。

分析データベースが、新しい場所のデータ ウェアハウスに接続されます。


DTS パッケージを移動する

このデータ ウェアハウスの元の場所にデータ ウェアハウスの DTS パッケージが存在している場合は、そのパッケージを削除して、新しい場所に新しいパッケージを作成する必要があります。これにより、データ ウェアハウスの古い接続情報が予期しない場所に格納されることがなくなります。


ドメインを越えたコンピュータ構成

データ ウェアハウスの一部またはすべてを別のドメインに移動する場合は、次の操作を行う必要があります。

  • Windows 統合セキュリティと共に SQL Server をインストールした場合は、関連するすべてのユーザーがそのドメインにアクセスできることを確認します。
  • HTTP 経由で OLAP を表示するように分析サーバーの構成を変更します。これは、動的レポートを表示するために必要です。詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。


DTS タスクのスクリプト

Commerce Server データ変換サービス (DTS) タスクは、データ ウェアハウスのデータをインポートおよび変換します。SQL Server を使って DTS タスクを実行することも、DTS タスクを作成してコマンド ラインで実行するためのスクリプトを作成することもできます。

Commerce Server 2000 では、スクリプトを使って DTS タスクを実行できましたが、スクリプトを使って DTS タスクやパッケージを作成することはできませんでした。これは、これらのタスクおよびパッケージによって使用されるパラメータが公開されていなかったためです。つまり、サイト開発者またはシステム管理者が、パッケージを自動的に実行するためのスクリプトを記述する前に、SQL Server を通じて各パッケージを手動で作成する必要がありました。

Commerce Server 2002 では、DTS タスクのパラメータが公開されているので、サイト開発者またはシステム管理者が、新しい各クライアントの DTS パッケージの作成およびスケジュール設定を自動化し、すべてのタスクを実行するために必要な時間を最小限に抑えることができます。

各スクリプトでは、各 DTS タスクごとに 1 つのパッケージが作成されます。1 つのパッケージに複数のタスクを読み込むことができます。複数のタスクが含まれる DTS パッケージを作成する方法の詳細については、SQL Server ヘルプを参照してください。

いくつかの DTS タスクでは、そのタスクの構成および実行中に、データベース テーブルが拡張されます。データベース テーブルの拡張に関連する SQL Server 操作では、ユーザーが適切な SQL ロールに所属している必要があります。ユーザー ロールの詳細については、SQL Server Books Online を参照してください。

ここでは、次のトピックについて説明します。

  • 構成の同期 DTS タスクのスクリプト
  • Web サーバー ログ インポート DTS タスクのスクリプト
  • トランザクション データ インポート DTS タスクのスクリプト
  • 商品カタログ インポート DTS タスクのスクリプト
  • IP 解決 DTS タスクのスクリプト
  • レポート準備 DTS タスクのスクリプト


構成の同期 DTS タスクのスクリプト

次のスクリプトは、構成の同期 DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. プロファイル データ インポート
  6. キャンペーン データ インポート
  7. データ削除
  8. モデル ビルダ
  9. IP 解決
  10. レポート準備
  11. レポート キャッシュ

DTSSyncAdminData オブジェクトの詳細については、「DTSSyncAdminData Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'**********************************************************************
' Configuration Synchronization DTS Task
' This script creates a DTS package and runs it.
'**********************************************************************
Dim oPackage
Dim oTask
Dim oStep
Dim oProps
Dim oTaskProps
set oPackage = WScript.CreateOBject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "Configuration Syncronization DTS Task"
oPackage.Description = "Synchronizes the Data Warehouse with your Commerce Server application after you make changes to configuration settings."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSSyncAdminData")
oTask.Name = "Task1"
oTask.Description = "Creates a task for ConfigSync DTS"
Set oTaskProps = oTask.Properties

'*******************************************************************
' Set Configuration Synchronization DTS task properties.
'*******************************************************************
oTaskProps("SourceType").value = 0
' Make sure the SourceName is set to the correct site.
oTaskProps("SourceName").value = "RetailSite"
oPackage.Tasks.Add oTask

' ******************************************************************
' Create a step.
' ******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

' For custom tasks written in VB, the steps cannot run on a secondary
' thread.

oStep.ExecuteInMainThread = True
oPackage.Steps.Add oStep

' ******************************************************************
' Execute the package.
' ******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


Web サーバー ログ インポート DTS タスクのスクリプト

次のスクリプトは、Web サーバー ログ インポート DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. プロファイル データ インポート
  6. キャンペーン データ インポート
  7. データ削除
  8. モデル ビルダ
  9. IP 解決
  10. レポート準備
  11. レポート キャッシュ

DTSLogImport オブジェクトの詳細については、「DTSLogImport Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'******************************************************************
' Web Server Log Import DTS Task
' This script creates a DTS package and runs it.
'******************************************************************
Dim oPackage
Dim oTask
Dim oStep
Dim oProps
Dim oTaskProps
set oPackage = WScript.CreateObject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "Web Server Log Import task "
oPackage.Description = "Defines and imports Web log files."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSLogImport")
oTask.Name = "Task1"
oTask.Description = "Creates a task for WebLogImport DTS"
Set oTaskProps = oTask.Properties

'*******************************************************************
' Set Web Server Log Import DTS task properties.
'*******************************************************************
oTaskProps("SourceName").value = "BlankSite"
oTaskProps("SourceType").value = 0

'ReadInfoFromAdmin property is:
'True: if Logimportfiles are to be selected automatically from the log file directory for each web server
'False: if LogImportfiles are to be specified manually.

oTaskProps("ReadInfoFromAdmin").value = True
oTaskProps("ImportAllLogsSinceLastImport").value = TRUE

'*******************************************************************
' Set the log file path.
'*******************************************************************
'This property is used if the ReadInfoFromAdmin = True. Igonred otherwise.
Dim vData
ReDim vData(0)
vData(0) = "LDS for MachineXYZ/Default Web Site|C:\LogFilePath\ex990402.log"
oTaskProps("VLogFileInfo").Value = vData
oPackage.Tasks.Add oTask

' ******************************************************************
' Create a step.
' ******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

' For custom tasks written in VB, the steps cannot run on a secondary
' thread.
oStep.ExecuteInMainThread = True
oPackage.Steps.Add oStep

' ******************************************************************
' Execute the package.
' ******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


トランザクション データ インポート DTS タスクのスクリプト

次のスクリプトは、トランザクション データ インポート DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. プロファイル データ インポート
  6. キャンペーン データ インポート
  7. データ削除
  8. モデル ビルダ
  9. IP 解決
  10. レポート準備
  11. レポート キャッシュ

DTSTransactionImport オブジェクトの詳細については、「DTSTransactionImport Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'******************************************************************
' Transaction data import DTS Task
' This script creates a DTS package and runs it.

' Note:This DTS task cannot be run on a computer that only has the Commerce Server

' 2002 Business Analytics Stand-Alone feature installed.This DTS task gets the required

' connection strings for both the Commerce database and the Data Warehouse from the

' Admin object based on the site name set in the script.

'******************************************************************
Dim oPackage
Dim oTask
Dim oStep
Dim oProps
Dim oTaskProps

Dim iStatus
Dim i
Dim DTSStepExecResult_Failure

DTSStepExecResult_Failure  = 1

'On Error GoTo PackageError:

set oPackage = CreateOBject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "Transaction Data Import DTS Task"
oPackage.Description = "Defines and imports transaction data."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSTransactionImport")
oTask.Name = "Task1"
oTask.Description = "Creates a task for TransactionDataImport DTS"
Set oTaskProps = oTask.Properties

' Set Transaction Data Import DTS properties
' Incremental import = 100
' Full Import= 0
oTaskProps("ProcessingType").value = 0

' 0 for the site level import and 1 for the Data Warehouse level import
oTaskProps("SourceType").value = 1

' Make sure SourceName is set to the correct Web site or Data Warehouse
' name.
oTaskProps("SourceName").value = "Data Warehouse 1"

' Number of connection retries and the delay between each retry in
' seconds in case of a connection failure.
oTaskProps("NumRetries").value = 10
oTaskProps("RetryInterval").value = 20
oTaskProps("QueryInterval").value = 25

oPackage.Tasks.Add oTask
'******************************************************************
' Create a step.
'******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

' For custom tasks written in Visual Basic, the steps cannot run on a
' secondary thread.
oStep.ExecuteInMainThread = True

oPackage.Steps.Add oStep

' ******************************************************************
' Execute the Package
' ******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


商品カタログ インポート DTS タスクのスクリプト

次のスクリプトは、商品カタログ インポート DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. プロファイル データ インポート
  6. キャンペーン データ インポート
  7. データ削除
  8. モデル ビルダ
  9. IP 解決
  10. レポート準備
  11. レポート キャッシュ

DTSCatalogImport オブジェクトの詳細については、「DTSCatalogImport Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'******************************************************************
' Catalog Data Import DTS Task
' This script creates a DTS package and runs it.
'******************************************************************
Dim oPackage
Dim oTask
Dim oStep
Dim oProps
Dim oTaskProps
Dim DTSStepExecResult_Failure
Dim iStatus
Dim i

DTSStepExecResult_Failure  = 1
'On Error GoTo PackageError:
set oPackage = WScript.CreateOBject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "Catalog Import DTS Task "
oPackage.Description = "Imports catalog data."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSCatalogImport")
oTask.Name = "Task1"
oTask.Description = "Creates a task for ProductCatalogImport DTS"
Set oTaskProps = oTask.Properties

' Set Catalog DTS properties
' Incremental import = 100
' Full Import= 0
oTaskProps("ProcessingType").value = 0

' 0 for the site level import and 1 for the Data Warehouse level import
oTaskProps("SourceType").value = 0

'You can either import at the site level or the Data Warehouse level
oTaskProps("SourceName").value = "BlankSite"

' Number of SQL Server retries in case of SQL Server failure
oTaskProps("NumRetries").value = 0
oTaskProps("RetryInterval").value = 20

'**********************************************************************
' Set the catalog dimensions you want to import
'**********************************************************************
oPackage.Tasks.Add oTask

'******************************************************************
' Create a step.
'******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

'For custom tasks written in Visual Basic, the steps cannot run on a
' secondary thread.
oStep.ExecuteInMainThread = True

oPackage.Steps.Add oStep

'******************************************************************
' Execute the package.
'******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


データ削除 DTS タスクのスクリプト

次のスクリプトは、データ削除 DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. プロファイル データ インポート
  6. キャンペーン データ インポート
  7. データ削除
  8. モデル ビルダ
  9. IP 解決
  10. レポート準備
  11. レポート キャッシュ

DTSDeleteImport オブジェクトの詳細については、「DTSDeleteImport Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'******************************************************************
' Data Deletion DTS Task
' This script creates a DTS package and runs it.
'******************************************************************
set oPackage = WScript.CreateOBject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "Data Deletion DTS Task "
oPackage.Description = "Deletes detailed log file data and summarized data for a site in the Data Warehouse or from the entire Data Warehouse."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSDeleteImport")
oTask.Name = "Task1"
oTask.Description = "Creates a task for Delete DTS"
Set oTaskProps = oTask.Properties

'*******************************************************************
' Set Data Deletion DTS task properties to remove all the logs for the site.
'*******************************************************************
oTaskProps("SourceType").value= 0
oTaskProps("SourceName").value="BlankSite"
oTaskProps("DeleteType").value= 1
oTaskProps("WebLogDeleteType").value= 1
oTaskProps("Interval").value=0
oTaskProps("DeleteLevel").value=1
oTaskProps("Count").value=0

oPackage.Tasks.Add oTask

' ******************************************************************
' Create a step.
' ******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

' For custom tasks written in VB, the steps cannot run on a secondary
' thread.
oStep.ExecuteInMainThread = True
oPackage.Steps.Add oStep
MsgBox oPackage.Description + " Execute is called"
' ******************************************************************
' Execute the package.
' ******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing

The code between the comments 'Set Delete DTS task properties to remove all logs for the site and 'Create a step can be replaced by the following code to remove only the specified log files.

oTaskProps("SourceType").value= 0
oTaskProps("SourceName").value="BlankSite"
oTaskProps("DeleteType").value= 1
oTaskProps("WebLogDeleteType").value= 1
' The ListofLogs property must be set to valid taskids in the
' Task History table.
oTaskProps("ListofLogs").value= "1058,1059"
oPackage.Tasks.Add oTask


IP 解決 DTS タスクのスクリプト

次のスクリプトは、IP 解決 DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. データ削除
  6. IP 解決
  7. レポート準備

DTSIPResolution オブジェクトの詳細については、「DTSIPResolution Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

'******************************************************************
' IP Resolution DTS Task
' This script creates a DTS package and runs it.
'******************************************************************
Dim oPackage
Dim oTask
Dim oStep
Dim oProps
Dim oTaskProps

set oPackage = WScript.CreateOBject("DTS.Package")

'******************************************************************
' Define package properties.
'******************************************************************
oPackage.Name = "IPResolution DTS Task "
oPackage.Description = "Resolves Internet Protocol (IP) addresses from the imported user data."

'******************************************************************
' Create a task.
'******************************************************************
Set oTask = oPackage.Tasks.New("Commerce.DTSIPResolution")
oTask.Name = "Task1"
oTask.Description = "Creates a task for IPRes DTS"
Set oTaskProps = oTask.Properties

'*******************************************************************
' Set IP Resolution DTS task properties.
'*******************************************************************
oTaskProps("SourceName").value = "Data Warehouse 1"
oTaskProps("ProcessingType").value = 0
oTaskProps("BatchSize").value = 500
oTaskProps("LocalDomainName").value = "microsoft.com"
oTaskProps("TimeOut").value = 60
oTaskProps("Ncache").value = 30

oPackage.Tasks.Add oTask

'******************************************************************
' Create a step.
'******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

'For custom tasks written in VB, the steps cannot run on a secondary
' thread.
oStep.ExecuteInMainThread = True
oPackage.Steps.Add oStep

' ******************************************************************
' Execute the package.
' ******************************************************************
oPackage.Execute
    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


レポート準備 DTS タスクのスクリプト

次のスクリプトは、レポート準備 DTS タスクを作成および実行します。このスクリプトを使って、実行対象の DTS タスクが含まれるパッケージを作成できます。サンプル スクリプトを実行するには、2 つの方法があります。1 番目の方法では、DTSRun.exe コマンドを使って、コマンド ラインでパッケージを実行します。DTSRun.exe ファイルは、SQL Server をインストールすると自動的にサーバーにインストールされます。2 番目の方法では、スクリプトを Visual Basic スクリプト ファイル (.vbs) にコピーし、cscript を使って実行します (たとえば、<ドライブ名>:cscript <ファイル名>.vbs)。

データ ウェアハウスにデータを正常にインポートするには、下に示した順序で各 DTS タスクを実行します。

  1. 構成の同期
  2. Web サーバー ログ インポート
  3. トランザクション データ インポート
  4. 商品カタログ インポート
  5. データ削除
  6. IP 解決
  7. レポート準備

DTSPostImport オブジェクトの詳細については、「DTSPostImport Object」を参照してください。

この DTS タスクの説明については、「Commerce Server DTS タスク」を参照してください。

注

レポート準備タスクは、データ ウェアハウスを共有するすべての Web サイトのすべてのデータがデータ ウェアハウスにインポートされた後に実行する必要があります。データ ウェアハウスの Web サイトごとにこのタスクを実行しないでください。

'*********************************************************************
' Report Preparation DTS Task
' This script creates a DTS package and runs it.
'**********************************************************************
Dim oPackage As DTS.Package
Dim oTask As DTS.Task
Dim oStep As DTS.Step
Dim oTaskProps As Object

'******************************************************************
' Define package properties.
'******************************************************************
Set oPackage = CreateObject("DTS.Package")
oPackage.FailOnError = True
oPackage.Name = "Report Preparation DTS Task"
oPackage.Description = "Populates OLAP cubes with the import data, prepares the data for report generation, and refreshes the cubes after a deletion."

'******************************************************************
' Create a task.
'******************************************************************
'Make sure you are passing the correct ProgID.
Set oTask = oPackage.Tasks.New("Commerce.DTSPostImport")
oTask.Name = "Task1"
oTask.Description = "Creates a task for PrepareRport DTS"
Set oTaskProps = oTask.Properties

oTaskProps("SourceName").Value = "DataWarehouse 1"
' Set the Processing Type to 1 for full import, 2 for refresh,
' or 100 for Incremental
oTaskProps("ProcessingType").Value = 1
oTaskProps("TaskName").Value = "Task1"
oTaskProps("NumRetries").Value = 1
oTaskProps("RetryInterval").Value = 30

oPackage.Tasks.Add oTask

'******************************************************************
' Create a step.
'******************************************************************
Set oStep = oPackage.Steps.New
oStep.Name = "Step1"
oStep.TaskName = "Task1"

oStep.ExecuteInMainThread = True
oPackage.Steps.Add oStep

'******************************************************************
' Execute the package.
'******************************************************************
oPackage.Execute

    For I = 1 To oPackage.Steps.Count
        If oPackage.Steps(I).ExecutionResult = 1 Then
            iStatus = False
            MsgBox oPackage.Steps(I).Name + " in the " +
            oPackage.Description + " failed."
        End If
    Next

MsgBox oPackage.Description + " Done"

Set oStep = Nothing
Set oTaskProps = Nothing
Set oProps = Nothing
Set oTaskProps = Nothing
Set oPackage = Nothing


ダイレクト メーラーの実行

Commerce Server ダイレクト メーラーは、多数の受信者のグループ宛に Web ページからパーソナライズされた電子メール メッセージを送信したり、フラット テキスト ファイルかパーソナライズされていないメールを送信するために使います。ダイレクト メーラーは、スタンドアロン プロセスとして使うことも、Commerce Server ビジネス デスクのキャンペーン モジュールに統合することもできます。

ダイレクト メーラーは、インストール時に Commerce Server の他の機能と自動的に統合されます。ダイレクト メーラーには Commerce Server ビジネス デスク経由でアクセスできます。また、Commerce Server のその他のコンポーネントを使わずに、スタンドアロン製品として使用することもできます。ダイレクト メーラーをスタンドアロン製品として使うには、ダイレクト メーラーのコマンド ライン インターフェイスを使います。

ここでは、次のトピックについて説明します。

  • ダイレクト メーラーのワークフロー ダイレクト メーラー ジョブのワークフローについて図を使って説明します。
  • ダイレクト メーラーについて ダイレクト メーラーの概要、およびダイレクト メーラーに必要なソフトウェアと依存関係について説明します。脱退リストとその機能の概要も含め、ダイレクト メーラーのコンポーネントについて説明します。
  • リスト マネージャを使ってダイレクト メール リストを作成および管理する ビジネス デスクのリスト マネージャでリストを使用する方法と、ダイレクト メーラー リストの作成と処理を行う方法について説明します。
  • ダイレクト メーラーによる成功へのビジネス サイクル ユーザー データを収集および分析し、その分析を基にダイレクト メーラーを使って対象となるユーザーを指定する方法について説明します。
  • ダイレクト メール キャンペーンを設定する ダイレクト メール キャンペーンの設定に必要な手順について説明します。
  • ダイレクト メールのコンテンツを作成する ダイレクト メール メッセージ本文用のパーソナライズされたコンテンツを作成する方法について説明します。
  • ダイレクト メーラーを構成する ジョブの実行方法を制御するプロパティとダイレクト メーラー データベースへのリソースの接続文字を変更する方法について説明します。複数の配信場所を使う方法と、SMTP サーバーを構成する方法について説明します。
  • ダイレクト メーラーを再起動する ダイレクト メーラーを再起動する方法について説明します。
  • ダイレクト メーラー ジョブを監視する ダイレクト メーラー ジョブの状態を調べる方法と、ダイレクト メーラー ジョブのエラーを表示する方法について説明します。
  • ダイレクト メーラー ジョブを一時停止、停止、および削除する ダイレクト メーラー ジョブの停止と削除を行う方法について説明します。
  • ダイレクト メーラー ジョブを再開する 処理が完了する前に停止したダイレクト メーラー ジョブを再開する方法について説明します。
  • ダイレクト メーラーをスタンドアロン モードで実行する ダイレクト メーラーをスタンドアロン製品として実行する方法について説明します。


ダイレクト メーラーのワークフロー

次の図は、ダイレクト メーラーのワークフローを示しています。

  1. 分析レポート、テキスト ファイル (カンマ区切り値(.CSV))、SQL Server テーブルなどの、アプリケーションから作成された受信者リストは、リスト マネージャにインポートされます。
  2. ダイレクト メーラー ジョブがコマンド ラインから実行されるか、ダイレクト メール キャンペーンが Commerce Server ビジネス デスクで作成されます。
  3. リスト マネージャ サービスは、ダイレクト メーラー データベースの接続文字列をパラメータとして渡すことで、受信者リストと共にダイレクト メーラー データベースを生成します。
  4. ダイレクト メーラー サービスは T-SQL OpenRowset コマンドを実行し、キャンペーン データベースからデータを選択します。
  5. データの一覧は、キャンペーン データベースからダイレクト メーラー データベースへ取り込まれます。
  6. ダイレクト メール Windows NT Serviceは、ダイレクト メーラー データベースからデータの一覧を受け取ります。
  7. ダイレクト メーラー サービスが受信者に電子メールを送信します。


ダイレクト メーラーについて

ダイレクト メーラーは、Commerce Server の完全インストールの一部として、またはカスタム インストールのオプションとしてインストールされる Windows 2000 サービスです。動作可能なダイレクト メーラーのインスタンスは、1 台のサーバーにつき 1 つだけです。ただし、複数のダイレクト メーラー リソースをグローバル リソース レベルで保有することもできます。

ダイレクト メーラーは、集中型の設計になっているので、簡単に管理できます。ダイレクト メーラーは、Commerce Server のグローバル リソース レベルで動作します。各サイトは、使用するダイレクト メーラーの特定のグループ インスタンスを参照します。これにより、ダイレクト メーラーの使用をサイト単位に分け、負荷分散できます。

ダイレクト メーラーでは、コマンド ライン インターフェイスを使って、ダイレクト メーラー ジョブの作成、実行、監視、および削除を行ったり、ジョブの開始と回復を行います。ダイレクト メーラーに関するプロパティを構成するには、Commerce Server マネージャを使います。

ダイレクト メーラーは、次の作業を行います。

  • 繰り返し発生させる電子メールを、ダイレクト メーラー ジョブとして管理する。
  • パーソナライズされていないメッセージの本文を作成する。
  • Active Server Page (ASP) からパーソナライズされたメッセージ本文を生成する。
  • 電子メール メッセージ ヘッダーの書式を設定する。
  • コード ページ値 (言語) を設定したり、メッセージ本文を正しい形式 (MIME Encapsulation of Aggregate HTML Documents (MHTML)、Multipurpose Internet Mail Extensions (MIME)、またはテキスト) に変換する。
  • 電子メール メッセージを送信する、大きな受信者リストの高速処理。
  • ファイルの添付を可能にする。

Commerce Server ビジネス デスクのリスト マネージャ モジュールを使うと、ダイレクト メーラーに受信者のリストを提供できます。また、スタンドアロン モードでダイレクト メーラーを実行しているときコマンド ラインから、使用するリストをファイル名または SQL Server クエリで指定することもできます。受信者リストを提供した場合、ダイレクト メーラーはリスト マネージャ オブジェクトを使って、受信者ごとに同じ処理手順を実行します。

ダイレクト メーラーでは、Web ページまたは静的ファイルからメッセージ本文を作成できます。また、SQL Server テンプレートなどの他のソースからメッセージを作成するように、機能を拡張することもできます。この機能拡張を行うには、ダイレクト メーラー パイプラインにカスタム コンポーネントを追加します。ダイレクト メーラー パイプラインでは、コンポーネントを実行して、潜在的な受信者を選別し、電子メールをパーソナライズし、パーソナライズした電子メールを送信します。パイプラインに新しいコンポーネントを追加したり、コンポーネントを基幹業務システムに統合したり、そのコンポーネントをサード パーティが供給するコンポーネントと交換することができます。ダイレクト メーラー パイプラインのコンポーネントについては、「About the Direct Mailer Pipeline」を参照してください。

ダイレクト メーラーでは、パーソナライズされた電子メール メッセージを Web ページから、またはパーソナライズされていないメーリングをフラット テキスト ファイルから多数の受信者のグループ宛てに送信できます。

ここでは、次のトピックについて説明します。

  • ダイレクト メーラーの要件
  • ダイレクト メーラー データベース
  • 脱退リスト
  • ダイレクト メーラーのパフォーマンス機能


ダイレクト メーラーの要件

ダイレクト メーラーの要件は、次のとおりです。

  • 必要なソフトウェアと依存関係
  • メーリング リストの形式
  • メッセージ形式
  • メッセージ ソース

必要なソフトウェアと依存関係

ダイレクト メーラーは、データベースとして Microsoft SQL Server 2000 を使用します。ダイレクト メーラーでメーリングを繰り返し発生させるには、SQL Server Agent が必要です。ただし、ダイレクト メーラーを SQL Server または SQL Server Agent と同じコンピュータにインストールすることは必要条件ではありません。

SQL Server の詳細については、SQL Server Books Online を参照してください。

Microsoft Windows 2000 に付属する機能のうち、ダイレクト メーラーが依存するコンポーネントは次のとおりです。

  • Microsoft ActiveX Data Objects (ADO) ADO を使うことで、ダイレクト メーラーはデータベースにアクセスし、データを操作できます。1 つまたは複数の SQL Server 上のデータにアクセスするには、OLE DB Provider for Microsoft SQL Server を使います。
  • Microsoft Windows Collaboration Data Objects (CDO) ダイレクト メーラーは、CDO に用意されている COM インターフェイスを介して動作します。主に使用するインターフェイスは、IMessage と IConfiguration です。これらを使うと、SMTP (簡易メール転送プロトコル) メッセージを作成および書式設定して、ネットワーク経由で、またはローカルに送信できます。

メーリング リストの形式

ダイレクト メーラーは、次のメーリング リスト ソースをサポートしています。

  • コンマ区切り値 (.csv) ファイルなどのテキスト ファイル
  • SQL Server クエリ
  • 分析レポート
  • セグメント リスト

ダイレクト メール リストとは、受信者のデータを記載したものです。1 行につき 1 人の受信者について記載し、各行には次の要素をコンマ区切り形式で並べます。

パラメータ | 説明
電子メール アドレス | 必須。名前または <名前@ドメイン>。
GUID | 省略可。パーソナライズされたメール メッセージにコンテンツを提供するときに使用する一意のユーザー ID です。
メッセージ形式 | 省略可。CDO が結果をどのメッセージ形式に変換するかを制御します。たとえば、テキスト、MHTML、または MIME を指定します。
言語 | 省略可。メール メッセージのコード ページ値です。
URL | 省略可。ユーザーごとに個々の URL を CDO に渡すことができます。

注

  • 省略可能なパラメータを省略する場合、後続のパラメータを指定するには、区切り文字を入力する必要があります。

メッセージ形式

ダイレクト メール メッセージの内容 (コンテンツ) を作成する方法は、いくつかあります。メッセージ形式は、Collaboration Data Object (CDO) が結果をどのメッセージ形式に変換するかを制御します。ダイレクト メーラーは、テキスト、MIME、MHTML の 3 種類のメッセージ形式をサポートします。

  • テキスト メールの形式を ASCII 形式に設定します。
  • MIME (Multipurpose Internet Mail Extensions) インターネットの公式標準です。異なる電子メール システムでやりとりができるように、メッセージを設定する方法を指定します。MIME は柔軟性のある形式です。Simple Mail Transfer Protocol (SMTP) を拡張して、ビデオ、サウンド、バイナリ ファイルなどのデータを ASCII 形式に変換せずに、インターネットの電子メールで送信できます。
  • MHTML (MIME Encapsulation of Aggregate HTML Documents) Web ページの一部分、または Web ページ全体をメッセージとして送信します。メッセージには、HTML 書式、画像、および元の Web ページに含まれるその他の要素のすべて、または一部を含めることができます。
HTML 文書の通信をより柔軟にするため、MHTML は MIME 上に構築されます。メッセージには MIME の複数部分、または関連する本文部分にある、その他のリンクされている文書を含めることができます。HTML 内にあるほかの部分へのリンクは、CID (Content-ID) URL またはその他すべての種類の URL によって提供されます。リンクされている本文部分は、Content-ID (CID URL によりリンクされている) または Content-Location (その他すべての種類の URL によりリンクされている) のどちらかによって、見出しに指定されています。

ダイレクト メーラー サービスで電子メールを MHTML 形式に設定しない場合や、電子メールを変更せずにASP ページの外部へ、厳密に HTML を送信する場合は <ドライブ名>:\Program Files\Microsoft Commerce Server 2002 にある DMLPipe.pcf ファイルの "電子メール作成" ステージの Direct Mailer ComposeDMLMessage Component を参照してください。ComposeDMLMessage Component は、メッセージ本文の書式を設定する役割を担っています。

次の図は、次の ASP ページの HTML コンテンツの場合の、3 つのメッセージ形式 (テキスト、MIME、および MHTML) の電子メール メッセージを示しています。

<html>

<body>

<h1>SPRING SALE !!!</h1>

<img src=http://<server name>/SKY.JPG height=100 width=100 />

</body>

</html>

次の図に、テキスト メッセージ形式を使って送信されたメッセージを示します。すべての HTML オブジェクト を除外し、テキスト メッセージのみを送信します。

注

  • 次の図は、Outlook Express の画面です。その他の電子メール クライアントでは、表示が異なります。

  • 次の図に、MIME メッセージ形式を使って送信されたメッセージを示します。MIME 形式で HTML オブジェクトをエンコードし、ASP ページの場所から SKY.jpg イメージを取得して、添付ファイルとして追加します。メッセージには、テキスト メッセージだけが含まれています。

    次の図に、MHTML メッセージ形式を使って送信されたメッセージを示します。MHTML 形式のイメージとして HTML オブジェクトをエンコードし、ASP ページの場所から SKY.jpg イメージを取得します。イメージを SRC 属性に内部的にリンクするため、BASE-64 でイメージをエンコードし、イメージを CID に渡します。

重要

  • 3 つのメッセージ形式 (テキスト、MIME、および MHTML) は、ビジネス デスクでダイレクト メール キャンペーンを作成すると利用でき、既定値になっています。これらの形式は、ユーザー固有の電子メールの書式が NULL の場合のみ利用されます。メーリング リストを作成、またはインポートしたときに、ユーザー固有の電子メール書式が指定された場合、ダイレクト メールの送信時にはユーザー固有の書式が使われます。

メッセージ ソース

ダイレクト メーラーでは、URL またはファイル パスをメッセージ ソースとして使用できます。ファイルを使う場合は、ダイレクト メーラーがアクセス可能なディレクトリにそのファイルが存在することを確認してください。

良好なパフォーマンスを得るため、ダイレクト メーラーはファイルの内容をメモリにあらかじめ読み込んでおきます。ただし、メモリに読み込めるファイルのサイズは制限されます。ファイル自体のサイズに制限はありませんが、メモリに読み込めるのは、ASCII 文字なら先頭の 200 万文字、Unicode 文字なら先頭の 100 万文字だけです。


ダイレクト メーラー データベース

ダイレクト メーラーは、SQL Server 2000 と SQL Server Agent を幅広い用途で使います。ダイレクト メーラー データベースは、Commerce Server のインストール時に、SQL Server に自動的に作成されます。ダイレクト メーラー ジョブのスケジュールを設定して定期ジョブを実行したり、ダイレクト メーラー ジョブの詳細を表示するには、SQL Server Agent (常に実行状態) を使います。SQL Server Agent では、ダイレクト メーラー ジョブの状態、最後に実行された日付と時刻、および次の実行予定時刻を確認できます。

ダイレクト メーラーは、Commerce Server の統合コンポーネントとして実行されているとき、次のデータベースを使います。

  • ダイレクト メーラー データベース ダイレクト メーラー ジョブに関する詳細と情報が登録されています。ダイレクト メーラーは、メーリング リスト、ジョブ履歴の保守、および定期ダイレクト メーラー ジョブのスケジュール設定の管理に、このデータベースを使います。
  • キャンペーン データベース ダイレクト メール キャンペーン項目に関する詳細と情報が登録されています。

次の図は、SQL Server Agent に一覧表示されたダイレクト メーラー ジョブとその詳細を示しています。

SQL Server Agent でダイレクト メーラー ジョブを開始するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。\Microsoft SQL Servers\SQL Server グループ\<SQL Server 名>\管理\SQL Server エージェント
  3. [ジョブ] をクリックします。SQL Server Enterprise Manager の右側のペインに、ダイレクト メーラー ジョブが表示されます。
  4. ダイレクト メーラー ジョブを右クリックし、[ジョブの開始] をクリックします。

注

  • ダイレクト メーラー ジョブのスケジュールを設定し直すには、Commerce Server ビジネス デスクのキャンペーン マネージャ モジュールを使います。ダイレクト メーラー ジョブのスケジュールの設定については、「ダイレクト メールのスケジュールを設定する」を参照してください。

関連項目

ダイレクト メールのスケジュールを設定する


脱退リスト

ダイレクト メーラーでは、脱退リストと照合してダイレクト メール リストを脱退 ("フィルタ処理") できます。キャンペーン項目の一部として実行するダイレクト メーラー ジョブの場合は、各受信者がダイレクト メール キャンペーン項目から脱退できます。これには、ソリューション サイトに付属する脱退用 Active Server Page (ASP) ページを使います。

ダイレクト メーラー ジョブ向けの ASP ページを Web サーバーで作成する開発者であれば、Opt-out.asp ページへのリンクを配置できます。これにより、受信者は、該当するリンクをクリックすることで、サイトまたはダイレクト メール キャンペーン項目から脱退できるようになります。キャンペーン項目の一部として実行されるダイレクト メーラー ジョブが実行されると、ダイレクト メーラーはサイト レベルの脱退リストとキャンペーン項目レベルの脱退リストが存在するかどうかを調べます。両方の脱退リストが存在していれば、その受信者が元のダイレクト メール リストから削除され、削除後のリストが新しいダイレクト メール リストとして機能します。

コマンド ライン インターフェイスから脱退リストをサポートするには、Windows.ini ファイル形式に準拠したジョブ ファイルで、OptoutListType、OptoutListLocation、OptoutListSQL の各パラメータを使います。コマンド ライン インターフェイスを使用して脱退する方法の詳細については、「Job Data セクション」を参照してください。

関連項目

Job Data セクション


ダイレクト メーラーのパフォーマンス機能

ダイレクト メーラー機能は、高性能のパーソナライズされたメール生成エンジンを使用します。ダイレクト メーラー サーバー 1 台とパーソナライズされた Web サーバー 1 台 でセットアップ (2 基の 550 MHz Pentium III) されている単純な 2 層のダイレクト メーラーはパーソナライズされたメッセージを 1 秒に 40 メッセージ (24 時間に 350 万以上のパーソナライズされたメール メッセージ) を生成できます。ダイレクト メーラーのパフォーマンスの詳細については、http://go.microsoft.com/fwlink/?LinkId=5165 にアクセスしてください。


リスト マネージャを使ってダイレクト メール リストを作成および管理する

リスト マネージャは、ユーザー リストの管理を可能にする Windows 2000 サービスです。ダイレクト メールの受信者のリストを作成および管理するには、リスト マネージャを使います。リストには、汎用リストとメーリング リストの 2 種類があります。汎用リストは、レポート モジュール、セグメント ビューア モジュール、SQL Server テーブル、または ASCII 形式のテキスト ファイルからリスト マネージャにインポートされたリストです。汎用リストに電子メール アドレスの行が含まれていると、リスト マネージャはその汎用リストを自動的にメーリング リストに変換しようとします。メーリング リストは、リストから選ばれた受信者に対してダイレクト メーラーがメールの作成と送信を行うときに使われます。汎用リストに電子メール アドレスが含まれていない場合、形式の要件が満たされていれば、その汎用リストはユーザー リストとしてインポートされます。メーリング リスト形式の詳細については、「メーリング リストの形式」を参照してください。

リスト マネージャにインポートされたリストを使ってダイレクト メーラー ジョブを実行すると、対象となるユーザーをより的確に指定できます。たとえば、ユーザーの特性や過去の行動を示すレポートを実行し、そのユーザーを広告や商品の対象とするダイレクト メール キャンペーンを作成できます。

また、リスト マネージャを使って、ファイルまたは SQL Server データベースへのリストのエクスポート、リストの追加や削除、リストのコピー、リストの抽出、およびリスト自体の削除を行うこともできます。

受信者リストを作成する

受信者リストを処理する

受信者リストを作成する

ダイレクト メール キャンペーン用の受信者リストを作成するには、キャンペーンのリスト マネージャ モジュールを使います。リストを作成するには、Microsoft SQL Server (SQL テーブルを作成する場合)、メモ帳 (ASCII 形式のテキスト ファイルを作成する場合)、Microsoft Excel (スプレッドシートを作成する場合)、Microsoft Outlook (メッセージ、予定、連絡先などの Outlook アイテムが含まれる .pst ファイルを作成する場合) などのアプリケーションで作成したリストをリスト マネージャにインポートします。

受信者リストは、分析レポート、セグメント ビューア、または外部データベースから作成できます。作成したリストは、リスト マネージャにインポートできます。リスト マネージャにリストをインポートする方法については、「リストをインポートおよびエクスポートする」を参照してください。

受信者リストを処理する

受信者リストを処理するには、まず、ダイレクト メーラーで受信者リストをリスト マネージャからジョブ テーブルに読み込みます。次に、各受信者をユーザー リストに問い合わせて、それぞれのデータをダイレクト メーラー パイプライン経由で送信します。

関連項目

メーリング リストの形式


ダイレクト メーラーによる成功へのビジネス サイクル

Web サイトからユーザー データを収集したら、ビジネスを分析し、その分析結果を使って対象となるユーザーを指定することができます。たとえば、レポートを実行して特定のユーザー グループを識別し、その結果をリスト マネージャのリストにエクスポートすることができます。リストをエクスポートした後、ユーザー プロファイルの更新に、プロファイルのユーザー モジュールを使います。その後で、広告や割引の対象を特定のプロファイルを持つユーザーに設定できます。たとえば、週に 3 回サイトを訪問し、商品を 3 つ以上購入したことのある女性ユーザーを対象に広告を配信できます。

この "成功へのビジネス サイクル" の機能を使うことによって、Web サイト ビジネスに直接的な効果を与えることができます。次の "成功へのビジネス サイクル" の例は、ユーザー プロファイル データをカスタマイズし、ダイレクト メーラーを使って、対象化の条件を満たすユーザーに向けた広告を配信する方法を示しています。結果を分析したら、ビジネス サイクルを続行します。

ダイレクト メーラーによる成功へのビジネス サイクルに必要な手順の概要を次に示します。

  • 手順 1 : ユーザーのリストを生成する
  • 手順 2 : ユーザー データを収集する
  • 手順 3 : リストのユーザーにラベルを付ける
  • 手順 4 : 対象となるユーザーを指定する
  • 手順 5 : 結果を分析する


手順 1 : ユーザーのリストを生成する

静的な分析レポート (登録済みユーザーのプロパティ レポートなど) をリスト マネージャにエクスポートすると、ユーザーのリストを生成することができます。ユーザーのリストを生成したら、そのユーザーを、ダイレクト メールによる広告の対象に指定できます。レポートをリスト マネージャにエクスポートする方法については、「レポートをリスト マネージャにエクスポートする」を参照してください。

注

  • 生成するユーザー リストには、ユーザー ID の列 (rcp_guid) が含まれている必要があります。ユーザー リストについては、「ユーザー リスト」を参照してください。


手順 2 : ユーザー データを収集する

対象を指定するためのプロパティを追加することによって、ユーザー プロファイルを拡張することができます。プロファイルは、プロファイル定義の 1 つのインスタンスです。プロファイルには、プロファイル定義に従って収集されたデータが収められます。たとえば、ユーザー データを収集するために、Favorite Sport などのプロファイル定義をデザインできます。プロファイル定義に新しいプロパティを追加するには、Commerce Server ビジネス デスクのプロファイル リソースまたはユーザー モジュールを使います。ユーザー プロファイルを拡張する方法については、「プロファイル リソースでプロファイル定義にプロパティを追加する」を参照してください。


手順 3 : リストのユーザーにラベルを付ける

メーリング リストでユーザー プロファイルのインスタンスを検索するには、ビジネス デスクのユーザー モジュールの検索機能を使います。メーリング リストでプロファイルのインスタンスが見つかったら、更新クエリ モードを使って、プロファイル プロパティをユーザー リストの対象となる値に設定することができます。メーリング リストでユーザーのグループを検索する方法については、「メーリング リスト内のユーザー プロファイルを検索する」を参照してください。ユーザーのグループを編集する方法については、「複数のユーザー プロファイルを編集する」を参照してください。


手順 4 : 対象となるユーザーを指定する

手順 3. で設定したプロファイル プロパティの値と一致する ユーザー リストに合わせて広告を対象化するために、ダイレクト メール キャンペーンを作成できます。ダイレクト メーラーは、リスト マネージャに常駐するユーザー リストを使って対象となるユーザーにメールを送信します。ダイレクト メール キャンペーンの詳細については、「ダイレクト メールを作成する」を参照してください。


手順 5 : 結果を分析する

ダイレクト メール キャンペーンが成功したかどうかを判断するには、Commerce Server ビジネス デスクの分析モジュールでデータ ウェアハウスに対してレポートを実行して、ユーザーの利用状況を分析します。レポートを実行する方法については、「レポートを実行する」を参照してください。


ダイレクト メール キャンペーンを設定する

ビジネス デスクのキャンペーン マネージャ モジュールは、ダイレクト メールを作成するためのインターフェイスです。キャンペーン マネージャを使うと、ダイレクト メール キャンペーンごとにダイレクト メーラー ジョブを管理できます。ダイレクト メール キャンペーンの新規作成、メッセージのパーソナライズ、およびプロパティの変更が可能です。ダイレクト メールに添付ファイルを追加したり、ダイレクト メーラー ジョブの実行スケジュールを設定することができます。また、ダイレクト メールは、運用サイトに送信する前に、テスト用のメーリング リストを使ってテストすることもできます。

ダイレクト メール キャンペーンを設定して実行する手順の概要を次に示します。

注

ダイレクト メーラー サービスは、ダイレクト メール キャンペーンの前に実行する必要があります。

  1. ダイレクト メーラー プロパティを構成します。
    • ダイレクト メーラー ジョブの実行方法を制御するには、Commerce Server マネージャ を使います。
  2. 受信者に配信するメッセージ本文を作成します。たとえば、パーソナライズされたメッセージ本文を配信する場合には、そのメッセージ本文をダイレクト メーラーに提供する機能を備えている、パーソナライズされた Active Server Page (ASP) ページを作成します。
  3. 受信者のデータが含まれているデータ ソースを指定し、必要な設定を行います。
    • データ ウェアハウスのデータから受信者リストを生成するには、Commerce Server ビジネス デスクのレポート モジュールを使います。使用する静的レポートを表示するには、目的のレポートを選択し、作成されたリストをリスト マネージャにエクスポートします。リスト マネージャでリストのインポートとエクスポートを行う方法の詳細については、「リストをインポートおよびエクスポートする」を参照してください。
    • ファイルから受信者リストを生成するには、そのファイルのパスが必要です。
    • SQL Server データベースから受信者リストを生成するには、そのデータベースへの接続文字列と SQL Server クエリ文字列が必要です。
  4. ダイレクト メール キャンペーンを作成し、そのスケジュールを設定します。キャンペーン マネージャ モジュールを使って、次の情報を指定します。
    • キャンペーンと顧客の名前
    • 受信者リストの名前
    • ダイレクト メール キャンペーンの開始日と開始時刻
    • ダイレクト メーラーでパーソナライズされたメッセージ本文を取得することになる Uniform Resource Locator (URL) または静的ファイル
      注
    • パーソナライズされたメッセージ本文の URL には、HTML コンテンツの種類として有効な拡張子 (.htm や .asp) が含まれている必要があります。無効な拡張子 (.xml など) が含まれている場合は、Collaboration Data Objects (CDO) エラーが発生し、メッセージは送信されません。

スケジュールが設定された時刻になると、ダイレクト メール キャンペーンが実行されます。運用環境に送信する前にダイレクト メール リストをテストする方法については、「ダイレクト メール キャンペーンをテストする」を参照してください。

関連項目

キャンペーンについて

マーケティング キャンペーンを作成する

ダイレクト メールを作成する

ユーザー レコード リストを管理する


ダイレクト メールのコンテンツを作成する

ダイレクト メーラーでは、Web ページまたは静的ファイルからメッセージ本文を作成できます。また、SQL Server テンプレートなどのソースからメッセージを作成できるように機能を拡張することもできます。そのためには、ダイレクト メーラー パイプラインにカスタム コンポーネントを追加します。ダイレクト メーラー パイプラインにカスタム コンポーネントを追加する方法の詳細については、「Using the Direct Mailer Pipeline」を参照してください。

良好なパフォーマンスを得るため、ダイレクト メーラーは静的ファイルの内容をメモリにあらかじめ読み込んでおきます。ファイル サイズは、ASCII 文字の場合は 200 万文字、Unicode 文字の場合は 100 万文字に制限されます。ファイルの残りの文字は無視され、メッセージには送信されません。

パーソナライズされたメールを送信する場合は、Web ページを使うことが唯一の方法になります。パーソナライズされたメッセージ本文を配信するには、パーソナライズされた Web ページを作成しておく必要があります。ダイレクト メーラーで対象化した電子メール メッセージを、顧客情報とカスタム Active Server Page (ASP) を使って送信します。ダイレクト メーラーは、cookie から顧客の UserID を収集、プロファイル サービスを使ってユーザー プロファイルを取得、ページをパーソナライズすることで、Web ブラウザと同様に機能します。

注

  • ダイレクト メーラーから MIME Encapsulation of Aggregate HTML Documents (MHTML) 形式でメールを送信する場合、テキストの添付ファイルを指定すると、Microsoft Outlook ではパーソナライズされた Web ページが添付ファイルとして表示されます。これは、Outlook にのみ発生する問題です。Microsoft Outlook Express では発生しません。


ダイレクト メーラーを構成する

ダイレクト メーラーを実行する前に、ジョブの実行方法を制御するプロパティを確認したり、変更することができます。ダイレクト メーラーのプロパティは、グローバル リソース レベルで動作します。

ダイレクト メーラー リソースの接続文字列は、アンパッケージ処理中に設定されます。DirectMailer データベースへのダイレクト メーラー リソースの接続文字列を変更することができます。この DirectMailer データベースには、メーリング リスト、メッセージ、ダイレクト メール イベント データなどの情報が格納されています。

注

  • SQL 認証を使うためにダイレクト メーラーのグローバル リソースを構成しないでください。SQL 認証から Windows 統合セキュリティへの切り替えについては、「Security Risk: Using SQL Authentication for Direct Mailer Global Resource」を参照してください。

ダイレクト メーラーのプロパティを変更するには

ダイレクト メーラー リソースの接続文字列を変更するには

ダイレクト メーラーのプロパティを変更するには

  1. [Commerce Server マネージャ] を展開し、管理する Commerce グループを開きます。次に、[グローバル リソース] をクリックします。
  2. [Direct Mail on <マシン名>] を右クリックし、[プロパティ] をクリックします。
  3. [DirectMail on <サーバー名> のプロパティ] ダイアログ ボックスの [プロパティ] タブで、次の操作を行います。
項目 (プロパティ) | 操作 (選択されたプロパティ値)
[配信場所] 配信場所を入力します。

少なくとも 1 つのエントリを指定する必要があります。ドロップ ディレクトリ、または SMTP サーバ アドレスを使うことができます。

ドロップ ディレクトリを使うと、ダイレクト メール ジョブは Exchange Server によって処理されます。つまり、ファイルを非同期に配信できます。ダイレクト メーラーと Exchange が非同期にリンクされるので、ダイレクト メーラー ジョブを配信するタイミングが早くなります。

Windows 2000 Server (またはその他の Windows Server バージョン) に含まれている SMTP サーバーを使う場合、ダイレクト メール ジョブは同期に配信されます。

注

  • Commerce Server 2002 は Collaboration Data Objects (CDO) を使います。CDO には COM インターフェイスが用意されており、これを介してダイレクト メーラーが動作します。主に使用するインターフェイスは、IMessage と IConfiguration です。これらを使うと、SMTP (簡易メール転送プロトコル) メッセージを作成および書式設定して、ネットワーク経由で、またはローカルに送信できます。

ダイレクト メーラー用にSMTP サーバーを構成する詳細については、「複数の配信場所を使う」を参照してください。
[配信方法] メーリングの配信方法を決定する値を入力します。

1 - SMTP サーバー。

2 - ドロップ ディレクトリにローカルに配信します。
[ログ フォルダ パス] | ダイレクト メーラー操作ログ ファイルの場所を入力します。
[最大のエラー パーセンテージ] | ジョブ 1 つあたりの致命的ではないエラーの最大比率を入力します。
[最大スレッド カウント] | ジョブ 1 つあたりのスレッドの最大数を入力します。
[1 時間あたりのメッセージ数] このサーバーが 1 時間あたりに作成できるメッセージの数を入力します。

0 に設定した場合、ダイレクト メーラーはできる限り迅速にメッセージを処理します。

[再試行回数] DirectMailer データベースへの接続エラーが発生した場合に、接続を再試行する回数を入力します。配信場所に対する再試行の回数をこのプロパティで設定します。

再試行が回数分終了すると、アクティブ ジョブは終了します。

[パフォーマンス更新間隔] | パフォーマンスの更新間隔を秒単位で入力します。
[パイプライン構成ファイル] | パイプライン構成ファイル DMLPipe.pcf の場所を入力します。
[プロキシの非経由] | プロキシのチェックが不要なローカル コンピュータを入力するか、またはすべてのローカル コンピュータを表す値を入力します。
[プロキシ サーバー] | 使用するプロキシ サーバーの名前を入力します。
[再試行間隔] | データベースへの接続が再試行されるまでの秒数を入力します。

注

  • "ログ フォルダ パス"、"1 時間あたりのメッセージ数"、"プロキシの非経由"、"プロキシ サーバー"、"ダイレクト メーラー データベース" の各プロパティは、サービス インスタンスごとの値になります。つまり、これらのプロパティの値を変更した場合には、ダイレクト メーラーを再起動する必要があります。その他のプロパティは、ジョブ インスタンスごとの値になるので、ダイレクト メーラーを再起動する必要はありません。

ダイレクト メーラー リソースの接続文字列を変更するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Direct Mail on <マシン名>] を右クリックし、[プロパティ] タブを選択します。
  2. [DirectMail on <サーバー名> のプロパティ] ダイアログ ボックスの [接続文字列] タブで、[ダイレクト メーラー データベース] を選択し、[変更] をクリックします。
  3. [データ リンク プロパティ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー名を選択または入力します] | ボックスの一覧からサーバー名を選択するか、またはアクセスするデータベースのパスを入力します。
    [Windows NT の統合セキュリティを使用する] Microsoft Windows NT 上で実行している SQL Server へのセキュリティが設定された (信頼できる) 接続をプロバイダが要求するように指定するときにクリックします。

    この構成を使うことをお勧めします。
    [特定のユーザー名とパスワードを使用する]
            データ ソースへのログイン情報の認証に、SQL Server のユーザー名とパスワードを使うときにクリックします。

    この方法はお勧めしません。
    [ユーザー名] データ ソースにログオンする際の認証に使うユーザー ID を入力します。

    この方法はお勧めしません。
    [パスワード] データ ソースにログオンする際の認証に使うパスワードを入力します。

    この方法はお勧めしません。
    [パスワードを空にする] | 接続文字列で空のパスワードを返すにはこのオプションを選択します。
    [パスワードを保存する] | パスワードを接続文字列と共に保存できるようにするには、このオプションを選択します。
    [サーバー上のデータベースを選択する] | アクセスするデータベース名を選択します。
    [データベース ファイルをデータベース名として添付する] | このオプションは使わないでください。Commerce Server 2002 では、Microsoft SQL Server 6.5 またはそれ以前のバージョンはサポートされていません。
  4. [接続のテスト] をクリックして、入力したサーバーとデータベースの情報が正しいことを確認します。次に、[OK] をクリックして、接続メッセージを閉じます。
  5. [OK] をクリックして、[データ リンク プロパティ] ダイアログ ボックスを閉じます。

    [Direct Mail on <サーバー名> のプロパティ] ダイアログ ボックスの [接続文字列] タブで、接続文字列が [このリソース内の接続文字列] ボックスに表示されます。

  6. [OK] をクリックして、[Direct Mail on <サーバー名> のプロパティ] ダイアログ ボックスを閉じます。


セキュリティ リスク : ダイレクト メーラーのグローバル リソースに SQL 認証を使用する

SQL 認証を使うためにダイレクト メーラーのグローバル リソースを構成する場合、パスワードは、ダイレクトメーラー サービスの起動時にクリア テキストで保管されます。

たとえば、次のような作業を行います。

  1. SQL 認証を使うために、ダイレクト メーラーのグローバル リソースを構成します。
  2. ビジネス デスクを使ってダイレクト メーラー キャンペーンを作成します。
  3. Campaign Definition ページの [テスト] セクションで、[テスト メールの送信] をクリックします。ダイレクト メーラー サービスが起動します。
  4. lm_master_operations データベース テーブルを調べて、次と同様のエントリと、パスワードがクリア テキストで保管されていることを確認します。

Op_id Op_desc Op_list_destination

0B150E06-529D-4A39-97A3-B90DC9150E70 Exporting the list 'TEST1' to the SQL
table 'ML__0E388EAC_A155_459A_A94A_0FCCAE4B97F5_'
Provider=SQLOLEDB.1;Persist Security Info=True; Integrated Security='SSPI';Initial Catalog=DirectMailer;Data Source=TESTSERVER;Network
Library=dbmssocn;Use Procedure for Prepare=1;Auto Translate=True;Packet
Size=4096;Workstation ID=TESTSERVER;Use . . .

0DA26B3B-9163-4BFE-BD4F-F0AF872DFE30 Exporting the list 'mailingListTEST1'
to the SQL table 'ML__803B4C6E_4EC2_490F_B30C_8771E5AFCC10_'
Provider=SQLOLEDB.1;Integrated Security='SSPI';Persist
Security Info=True; Integrated Security='SSPI';Initial Catalog=DirectMailer;Data
Source=TESTSERVER;Network Library=dbmssocn;Use Procedure for
Prepare=1;Auto Translate=True;Packet Size=4096;Workstation . . .

ダイレクト メーラー のグローバル リソースの接続文字列は、データベースにクリア テキストで保存されます。

ダイレクト メーラーのグローバル リソースに Windows 統合セキュリティを使用する

ダイレクト メーラーのグローバル リソースに、Windows 統合セキュリティを使う場合、パスワードはデータベースに保存されません。

ただし、SQL 認証から Windows 統合セキュリティに切り替えた場合、ダイレクト メーラーの [プロパティ] ダイアログ ボックスで無効なパスワードを削除しないと、パスワードは接続文字列に残り、データベースにクリア テキストとして保存されます。

データベースからパスワードを削除するには、ダイレクト メーラー サービスを再起動する必要があります。サービスマネージャを介して、またはコマンド ラインで「net stop dmlservice, net start dmlservice」を入力するとこの作業ができます。

IISReset コマンドを実行すると、データベースからパスワードを削除できません。

Windows 統合セキュリティを使うようにダイレクト メーラー サービスを構成する方法については、「ダイレクト メーラーと Windows 認証を使う」を参照してください。


ダイレクト メーラーの処理速度を変更する

ジョブが原因で運用環境のメール サーバーに過剰な負荷がかからないように、ダイレクト メーラーは 1 時間あたりに処理できるメッセージ数を制限できるように設計されています。この制限を設定するには、"1 時間あたりのメッセージ数" プロパティを変更します。このプロパティ値によって、ダイレクト メーラーが 1 時間あたりに処理するメッセージ数が決定されます。"1 時間あたりのメッセージ数" プロパティを 0 に設定した場合、ダイレクト メーラーはできる限り迅速にメッセージを処理します。

ダイレクト メーラーの処理速度を変更するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Direct Mail on <SQL Server 名>] を右クリックし、[プロパティ] をクリックします。
  2. [プロパティ] ダイアログ ボックスの [1 時間あたりのメッセージ数] をクリックします。次に、[選択したプロパティの値] ボックスに、ダイレクト メーラーで 1 時間あたりに送信するメッセージ数を入力します。

    [選択したプロパティ値] ボックスを 0 に設定した場合、ダイレクト メーラーはできる限り迅速にメッセージを処理します。

  3. [OK] をクリックします。
  4. ダイレクト メーラーを再起動します。ダイレクト メーラーを再起動する方法については、「ダイレクト メーラーを再起動する」を参照してください。

新しい設定がすべてのダイレクト メーラー ジョブに直ちに適用されます。

"1 時間あたりのメッセージ数" プロパティ以外にも、ダイレクト メーラーのメッセージ処理速度を決定する要因があります。次に例を示します。

  • ダイレクト メーラーのパフォーマンスは、Collaboration Data Objects (CDO) for Microsoft Windows 2000 に依存します。
  • ダイレクト メーラーは、全体のパフォーマンスとスロットル設定に基づいて、パイプライン サイクルごとに遅延値を計算します。
  • ダイレクト メーラーのパフォーマンスは、SMTP (簡易メール転送プロトコル) サーバーのパフォーマンスとスロットル要件に密接に関係しています。


複数の配信場所を使う

ドロップ ディレクトリや SMTP (簡易メール転送プロトコル) サーバーなど、複数の配信場所を使うようにダイレクト メーラーを構成した場合でも、ダイレクト メーラーはどのジョブの実行にも同じ配信場所リストを使います。ダイレクト メーラーは、管理データベースから配信場所リストを読み込み、Commerce Server マネージャで管理されます。

"配信方法" プロパティを 2 に設定した場合、ダイレクト メーラーはリスト内の各エントリを SMTP サーバーのピックアップ ディレクトリへの完全なパスとして扱います。"配信方法" プロパティを 1 に設定した場合、ダイレクト メーラーはリスト内の各エントリを次の形式で使います。

<SMTP server address>[: port]

ポートの指定は省略可能ですが、指定しなかった場合、ダイレクト メーラーはポート 25 を使います。

ダイレクト メーラー ジョブを開始すると、ダイレクト メール リスト内の最初の受信者に対して最初の配信場所が使われます。次の受信者に対しては、その次の配信場所が使われます。新しい配信場所がなくなるまで、この配信処理が繰り返されます。新しい配信場所がなくなると、最初の配信場所に戻ります。

メーリングに障害が発生した場合、ダイレクト メーラーは別の配信場所で再試行することはありません。また、タイムアウトや可用性のチェックも行いません。このため、どの受信者も、割り当てられた配信場所だけが使われます。ダイレクト メーラーは、クラスタ化された DirectMailer データベースのエラーやドロップ ポイント (SMTP またはドロップ ディレクトリ) のエラーも追跡します。ダイレクト メーラーの可用性およびクラスタ化された DirectMailer データベースのエラーについては、「ダイレクト メーラー」を参照してください。

複数の配信場所を使うには

ダイレクト メーラー用に SMTP サーバーを構成するには

複数の配信場所を使うには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Direct Mail on <マシン名>] を右クリックし、[プロパティ] タブをクリックします。
  2. [プロパティ] ダイアログ ボックスの [配信場所] をクリックします。次に、[選択したプロパティの値] ボックスに、ドロップ ディレクトリへの完全なパスまたは SMTP サーバーを入力します。汎用名前付け規則 (UNC) パスは、サポートされません。
複数の配信場所を指定する場合は、コンマまたはセミコロンでそれぞれの配信場所を区切ります。パスの区切り文字として使用できるのは、コンマとセミコロンだけです。
  1. [配信方法] を選択します。[選択したプロパティの値] ボックスに、ドロップ ディレクトリにメーリングを配信する場合には「2」を、SMTP サーバーにメーリングを配信する場合には「1」を入力します。
  2. [OK] をクリックします。

新しい設定がすべてのダイレクト メーラー ジョブに直ちに適用されます。

ダイレクト メーラー用に SMTP サーバーを構成するには

次の操作では、SMTP サーバーがシステムの他の部分の中継サーバーとして機能するように構成する方法について説明します。

SMTP サーバーをローカル中継サーバーとして構成するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. [インターネット インフォメーション サービス] ダイアログ ボックスで、該当するサーバー名を展開します。 [既定の SMTP 仮想サーバー] を右クリックして、[プロパティ] をクリックします。
  3. [既定の SMTP 仮想サーバーのプロパティ] ダイアログ ボックスの [アクセス] タブで、[中継] をクリックします。
  4. [中継の制限] ダイアログ ボックスで、[追加] をクリックします。
  5. [コンピュータ] ダイアログ ボックスで、[グループ化されたコンピュータ] をクリックし、[サブネット アドレス]ボックスに SMTP サーバーのサブネット アドレスを入力します。[サブネット マスク] ボックスに、SMTP サーバーのサブネット マスク アドレスを入力して、[OK] をクリックします。
  6. [中継の制限] ダイアログ ボックスで、[OK] をクリックします。
  7. [既定の SMTP 仮想サーバー] ダイアログ ボックスで、[OK] をクリックします。

ダイレクト メーラーで使用できるように SMTP サーバーが構成されました。

注

  • SMTP サーバーのファイアウォール、およびポートについては、「セキュリティで保護されたサイトの配置」を参照してください。


ダイレクト メーラーを再起動する

ダイレクト メーラーは、コマンド ライン インターフェイスまたは管理ツールを使って再起動できます。

コマンド ライン インターフェイスからダイレクト メーラーを再起動するには

サービスを使ってダイレクト メーラーを再起動するには

コマンド ライン インターフェイスからダイレクト メーラーを再起動するには

  1. コマンド ラインで、「net stop dmlservice」と入力します。
  2. サービスが停止したら、「net start dmlservice」と入力します。

サービスを使ってダイレクト メーラーを再起動するには

  1. [スタート] メニューの [サービス] を開きます。[スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[サービス] をクリックします。
  2. [サービス] 画面の右側のウィンドウで、[Commerce Server Direct Mailer] を右クリックし、[再開] をクリックします。

関連項目

ダイレクト メーラーの処理速度を変更する

複数の配信場所を使う


ダイレクト メーラー ジョブを監視する

ダイレクト メーラー ジョブの状態をチェックして、ジョブが実行中であるかどうか、中断または終了しているかどうか、あるいは正常に完了しているかどうかを確認できます。ダイレクト メーラー ジョブの状態を表示するには、コマンド ライン インターフェイスを使います。ダイレクト メーラー ジョブの実行中にエラーが発生しているかどうかを確認することもできます。

コマンド ライン インターフェイスを使ってダイレクト メーラー ジョブの状態を表示するには

ダイレクト メーラー ジョブのエラーの表示するには

コマンド ライン インターフェイスを使ってダイレクト メーラー ジョブの状態を表示するには

  • コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。

ダイレクト メーラー ジョブの一覧が表示されます。

ダイレクト メーラー ジョブごとに、次の情報が表示されます。

  • ジョブ ID
  • ジョブの状態
  • ジョブの説明
  • サイト名
  • キャンペーン項目 ID
  • キャンペーン項目名

注

  • サイト名、キャンペーン項目 ID、およびキャンペーン項目名は、ダイレクト メーラー ジョブに存在する場合にのみ表示されます。

次の表は、ジョブの状態コードの一覧を示しています。

コード | 説明
0 | ジョブは作成済みですが、初期化されていません。
1 | ジョブは定義済みですが、まだ実行されていないか (非アクティブ)、または終了しました。
2 | ジョブは完了しました。
3 | ジョブは実行中です (アクティブ)。
4 | ジョブは実行中ですが、現在は中断しています (一時停止していますが、まだアクティブです)。
-2 | ジョブはダイレクト メーラーによって停止されました。深刻な問題が発生したか、またはエラーのしきい値が制限を超えました。
-3 | ジョブは css_site として定義されましたが、実行時に一部のデータが利用できませんでした。

ダイレクト メーラー ジョブのエラーを表示するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. SQL Server Enterprise Manager で[Microsoft SQL Server]、[SQL Server グループ] の順に展開します。次にダイレクト メーラー データベースが含まれるデータベース サーバーの名前を展開します。
  3. [Direct Mailer] を展開し、[テーブル] を選択します。[dml_job_errors] を右クリックして[テーブルを開く] をポイントし、[全行を返す] を選択します。

ダイレクト メーラー ジョブのエラーは、テーブルに一覧表示されます。


ダイレクト メーラー ジョブを一時停止、停止、および削除する

ダイレクト メーラー ジョブは、いつでも一時停止できます。ダイレクト メーラー ジョブを一時停止すると、ダイレクト メーラーは受信者リストの処理を停止しますが、後で再開できます。ジョブが再開されるまで、ジョブの状態は "一時停止 (4)" になります。ダイレクト メーラーは、次に処理すべき受信者を記録します。したがって、ジョブが一時停止しても、中断したところから再開できます。ジョブを再開すると、ハード ドライブがクラッシュ、または電源障害が発生した場合でも、中断したところ付近から再開できます。中断した場所 n から再開します。n =ダイレクト メーラーに構成できるスレッドの数です。ダイレクト メーラー ジョブを再開する方法については、「ダイレクト メーラーを再開する」を参照してください。

実行中のダイレクト メーラー ジョブを停止 (終了) することもできます。ダイレクト メーラー ジョブを停止すると、ジョブの状態は "非アクティブ (1)" に切り替わります。ダイレクト メーラー ジョブを再開すると、ジョブは停止したところから自動的に実行されます。

SQL Server が利用できなくなった場合、ダイレクト メーラーでは、設定した再試行回数を限度として、データベースへの接続が試行されます。設定した再試行回数に達しても、あるいはデータベースへの接続が確立されても、ジョブの状態は "実行中 (3)" のままで変化しません。これは、SQL ではジョブの状態が更新できないためです。SQL Server が再び利用できるようになったら、ジョブを再開するか、またはダイレクト メーラーを再起動することができます。ダイレクト メーラーを再起動する方法については、「ダイレクト メーラーを再起動する」を参照してください。

停止、完了、または失敗したダイレクト メーラー ジョブは削除できます。実行中のダイレクト メーラー ジョブは削除できません。ダイレクト メーラー ジョブを削除すると、そのジョブに関するすべての情報がダイレクト メーラーから削除されます。削除したジョブをもう一度実行するには、そのジョブを作成し直す必要があります。

コマンド ライン インターフェイスからダイレクト メーラー ジョブを一時停止するには

コマンド ライン インターフェイスからダイレクト メーラー ジョブを停止するには

コマンド ライン インターフェイスからダイレクト メーラー ジョブを削除するには

注

  • ダイレクト メーラー ジョブの一時停止、停止、および削除は、コマンド ライン インターフェイスでのみ行えます。ビジネス デスクのキャンペーン マネージャ モジュールでは、ダイレクト メーラー ジョブの一時停止、停止、および削除は行えません。

コマンド ライン インターフェイスからダイレクト メーラー ジョブを一時停止するには

  1. コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。
  2. 一時停止するダイレクト メーラー ジョブのジョブ ID を確認し、次のように入力します。

    DmlRun /pause:<jobID number>

    該当するダイレクト メーラー ジョブが一時停止します。

コマンド ライン インターフェイスからダイレクト メーラー ジョブを停止するには

  1. コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。
  2. 停止するダイレクト メーラー ジョブのジョブ ID を確認し、次のように入力します。

    DmlRun /term:<jobID number>

    該当するダイレクト メーラー ジョブが停止します。

コマンド ライン インターフェイスからダイレクト メーラー ジョブを削除するには

  1. コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。
  2. 削除するダイレクト メーラー ジョブのジョブ ID を確認し、次のように入力します。

    DmlRun /delete:<jobID number>

該当するダイレクト メーラー ジョブが削除されます。

関連項目

キャンペーン項目を削除および復元する

ダイレクト メーラー ジョブをコマンド ラインから管理および制御する

ダイレクト メーラー ジョブを再開する

ダイレクト メーラー ジョブの状態を表示する


ダイレクト メーラー ジョブを再開する

処理が完了する前にダイレクト メーラー ジョブが停止した場合、ダイレクト メーラーはジョブの状態を更新します。これにより、ジョブが停止し、正常に完了しなかったことがわかります。ダイレクト メーラー ジョブを表示するには、コマンド ライン インターフェイスで DmlRun /list コマンドを使います。コンソールにジョブの状態を自動的に返すには、/wait オプションを使います。ダイレクト メーラー ジョブの状態については、「ダイレクト メーラー ジョブを監視する」 を参照してください。

ハード ドライブのクラッシュなどによってダイレクト メーラー コンピュータが停止した場合、そのコンピュータで実行中のすべてのダイレクト メーラー ジョブは停止します。処理が完了する前にダイレクト メーラー ジョブが停止した場合は、そのジョブを手動で再開する必要があります。ダイレクト メーラー ジョブを再開すると、ジョブは停止したところから実行されます。中断した場所 n から再開します。n =ダイレクト メーラーに構成できるスレッドの数です。

ダイレクト メーラー ジョブを再開するには

  1. コマンド ラインで「DmlRun /list」と入力して、すべてのダイレクト メーラー ジョブを表示します。
  2. 再開するダイレクト メーラー ジョブのジョブ ID を確認し、次のように入力します。

    DmlRun /run:<jobID number>

該当するダイレクト メーラー ジョブが再開されます。

関連項目

ダイレクト メーラー ジョブをコマンド ラインから管理および制御する


ダイレクト メーラーをスタンドアロン モードで実行する

ダイレクト メーラーをスタンドアロン モードで実行すると、ダイレクト メーラーは基幹業務システムに容易に統合できるプラットフォーム コンポーネントとして機能します。たとえば、広告主に Commerce Server の分析レポートをメールで送る場合を考えてください。この用途では、アプリケーションからダイレクト メーラーへの情報のやり取りを無視します。たとえば、ダイレクト メーラーは、広告の利用状況レポートを含むファイルを広告主の一覧にメールで送信できます。この場合のジョブ情報は、コマンド ライン パラメータと構成ファイルから取得されます。

コマンド ライン インターフェイスからダイレクト メーラーを実行するには、コマンド ライン オプションと共に実行可能ファイル DmlRun を使います。コマンド ライン オプションを使うと、ダイレクト メーラー ジョブの作成、実行、監視、削除など、複数の作業を実行できます。

注

  • ダイレクト メール キャンペーンのスケジュールを設定するには、ビジネス デスクのキャンペーン マネージャ モジュールを使うか、または Windows のタスク スケジューラを使います。Windows のタスク スケジューラでは、コマンド ライン インターフェイスを使用するバッチ ファイルを実行できます。

次に、ダイレクト メーラーをスタンドアロン モードに設定して実行する手順の概要を示します。

  1. 受信者に配信するコンテンツを作成します。必要に応じて、パーソナライズされたメッセージ本文を提供する Web ページまたは静的ファイルを作成します。
  2. 受信者リストのデータ ソースを指定します。
  3. ダイレクト メーラー ジョブ ファイルを作成します。
  4. コマンド ライン インターフェイスから /create オプションを使ってダイレクト メーラー ジョブを作成および実行します。
  5. ダイレクト メーラー ジョブをコマンド ラインから管理および制御します。


ダイレクト メーラー ジョブ ファイルを作成する

スタンドアロンのダイレクト メーラー ジョブを作成する場合は、そのジョブに関する情報を指定したダイレクト メーラー ジョブ ファイルをあらかじめ作成しておく必要があります。指定する情報は、パーソナライズされたメッセージ本文を配信するかどうか、メール メッセージ ヘッダーの形式、受信者リストの場所などです。

ジョブ ファイルは、どのテキスト エディタでも作成できます。ジョブ ファイルは、Microsoft Windows .ini ファイル形式に準拠したテキスト ファイルでなければなりません。

ジョブ ファイルには、次のセクションを追加します。

  • Job Data セクションジョブに関する主要なパラメータを指定します。たとえば、コンテンツのデータ ソース、受信者リスト、メッセージ形式の種類、件名、脱退リストなどです。
  • Job Attachments セクションこのセクションは省略可能です。添付ファイルの数とソースを指定します。

ダイレクト メーラーを実行すると、Results セクションがジョブ ファイルに書き込まれます。Results セクションのパラメータは、JobID、ErrorCode、および ErrorString です。ジョブが正常に終了した場合は、JobID の値と ErrorCode=0 が書き込まれます。ジョブが正常に終了しなかった場合は、JobID、ErrorCode、ErrorString の各値が書き込まれます。

Job Data セクション

次の表は、ジョブ ファイルのジョブ データに定義できるパラメータの一覧を示します。

パラメータ | 型 | 説明
JobDesc | 文字列 (最大 128 文字) | 省略可。ジョブの説明を入力します。
TemplateURL | 文字列 (最大 2084 文字) | 省略可。メール テンプレートのソースを Uniform Resource Locator (URL) 形式で指定します (http:// または file://)。フラット ファイルをメール テンプレートとして使う場合は、サーバー セントリックの完全なローカル パス名を入力します。汎用名前付け規則 (UNC) パスはサポートされています。
MailFrom | 文字列 (最大 256 文字) | 必須。電子メールの From フィールド (差出人) を入力します。
MailSubject | 文字列 (最大 256 文字) | 省略可。電子メールの Subject フィールド (件名) を入力します。
MailReplyTo | 文字列 (最大 256 文字) | 省略可。返信の受け取り先となる電子メール アドレスを入力します。
DefaultFmt 整数 省略可。送信されるコンテンツの既定のメッセージ形式を指定します。

1 = テキスト
2 = MIME Encapsulation of Aggregate HTML Documents (MIME)
3 = MIME Encapsulation of Aggregate HTML Documents (MHTML)
JobLocale | 文字列 (最大 255 文字) | 省略可。ジョブの既定のロケールを指定します。
MailPersonalize 整数 省略可。パーソナライズされたコンテンツを配信するかどうかを指定します。

1 – パーソナライズされたコンテンツを配信します。

0 – パーソナライズされたコンテンツを配信しません。

注

  • 整数以外の値 (文字値) を指定した場合は、「MailPersonalize=0」と入力することと同じ結果になります。
  • 0 以外の整数を指定した場合は、「MailPersonalize=1」と入力することと同じ結果になります。
MailingListType 整数 必須。メーリング リストの種類を指定します。

1 = フラット ファイル
2 = リスト マネージャ リスト
3 = SQL Server クエリ
MailingListLocation 文字列 (最大 256 文字) 必須。メーリング リストの場所を指定します。

フラット ファイルの場合は、サーバー セントリックの完全なローカル パス名を指定します。file:// などのスキーマ プレフィックスを含めないでください。

SQL Server クエリの場合は、接続文字列を指定します。

リスト マネージャ リストの場合は、リストの識別番号を指定します。

UNC パス名はサポートされています。
MailingListSQL | 文字列 (最大 256 文字) | メール送信を実行する SQL ステートメントを指定します。MailingListType = 3 の場合、この値は必須です。それ以外の場合、この値は無視されます。
OptoutListType 整数 省略可。脱退リストの種類を指定します。

1 = フラット ファイル
2 = リスト マネージャ リスト
3 = SQL Server クエリ
OptoutListLocation 文字列 (最大 256 文字) 省略可。OptoutListType パラメータを使う場合にのみ必要です。脱退リストの場所を指定します。

フラット ファイルの場合は、サーバー セントリックの完全なローカル パス名を指定します。file:// などのスキーマ プレフィックスを含めないでください。

SQL Server クエリの場合は、接続文字列を指定します。

リスト マネージャ リストの場合は、リストの識別番号を指定します。

UNC パス名はサポートされています。
OptoutListSQL | 文字列 (最大 256 文字) | 脱退を実行する SQL ステートメントを指定します。OptoutListType = 3 の場合、この値は必須です。それ以外の場合、この値は無視されます。
UserFlags | 整数 | 省略可。ジョブに関連付けられたユーザー定義のフラグを指定します。

Job Attachments セクション

次の表は、ジョブの添付ファイルに定義できるパラメータの一覧を示しています。ジョブ ファイルのこのセクションは省略可能です。

パラメータ | 型 | 説明
AttachmentCount | 整数 | 添付ファイルの数を指定します (1 以上)。
Attachment_<n> | 文字列 (最大 2084 文字) | <n> 添付ファイルの URL、またはファイル システムのパスを指定します。N は、1 から AttachmentCount で指定した値までの数字です。この URL にスキーマ プレフィックス (http://、file:// など) が含まれていることを確認します。 添付ファイルの場合は、サーバー セントリックの完全なパス名を含めます。UNC パス名はサポートされています。

Results セクション

ダイレクト メーラーを実行すると、Results セクションがジョブ ファイルに書き込まれます。次の表は、ダイレクト メーラーが Results セクションに書き込むパラメータの一覧を示しています。

パラメータ | 型 | 説明
ErrorCode | HRESULT | 0 = 操作 (作成、開始、削除など) が正常に実行されました。操作が正常に終了しなかった場合は、エラー コードが書き込まれます。
ErrorString | 文字列 (最大 256 文字) | ジョブが正常に終了しなかったことを ErrorCode が示している場合、この値はエラーの説明文になります。それ以外の場合、このフィールドは空白になります。
JobID | GUID | このパラメータは、ジョブの開始、停止、または処理に使用できる新しいジョブ ID を指定します。

関連項目

脱退リスト


ダイレクト メーラー ジョブを作成および実行する

ジョブ ファイルを作成したら、スタンドアロンのダイレクト メーラー ジョブを設定できます。このジョブを作成するには、コマンド ライン インターフェイスから /create オプションを使います。

スタンドアロンのダイレクト メーラー ジョブを作成するには

  1. コマンド ラインで、次のように入力します。

    DmlRun /create:filename=<job file name>

    ジョブ ファイルの完全なパス名を入力します。ディレクトリが指定されていない場合、ダイレクト メーラーはカレント ディレクトリで目的のジョブ ファイルを探します。

    ジョブ データ ファイルのパラメータが間違っている場合、ダイレクト メーラーはエラー コードとエラーの説明をジョブ ファイルの Results セクションに書き込みます。

    該当するダイレクト メーラー ジョブが作成されます。

  2. ジョブ ID を取得するには、次のように入力します。

    DmlRun /list

  3. ジョブを実行するには、次のように入力します。

    DmlRun /run:<jobID number>

    該当するダイレクト メーラー ジョブが開始されます。

  4. ジョブを作成し開始するには、次のように入力します。

    DmlRun /create:filename=<job file name> /execute

    該当するダイレクト メーラー ジョブが作成され、開始されます。

関連項目

ダイレクト メーラー ジョブ ファイルを作成する

ダイレクト メーラー ジョブをコマンド ラインから管理および制御する


ダイレクト メーラー ジョブをコマンド ラインから管理および制御する

Win32 コンソール アプリケーションである DmlRun を使うと、コマンド ライン インターフェイスからダイレクト メーラー ジョブを管理できます。ダイレクト メーラーには、DmlRun と共に使用するコマンド ライン オプションがいくつか用意されています。これらのオプションを指定すると、ダイレクト メーラー ジョブの作成、実行、監視、および削除ができます。

たとえば、すべてのダイレクト メーラー ジョブの一覧を表示してジョブ ID を確認するには、「DmlRun /list」と入力します。ダイレクト メーラーで処理中の特定のジョブを停止するには、そのジョブ番号が 1456 の場合は、「DmlRun /term:1456」と入力します。

次の表は、DmlRun と共に使用できるコマンド ライン オプションの一覧を示しています。

オプション | 説明
/run:<ジョブ ID> | ジョブを開始します。一時停止していたジョブの場合は、処理を再開します。
/term:<ジョブ ID> | 実行中のジョブを停止します。
/pause:<ジョブ ID> | ジョブを停止するのではなく中断します。すべてのリソースは割り当てられたままです。このオプションは、SMTP (簡易メール転送プロトコル) サーバーの負荷を分散するときに使います。
/create:<パラメータ文字列> | ジョブ ファイル内のデータに基づいて、新規のダイレクト メーラー ジョブを作成します。ジョブを作成したら、/run オプションを使って実行します。
/delete:<ジョブ ID> | ダイレクト メーラー ジョブを削除します。
/list | すべてのダイレクト メーラー ジョブの一覧を表示します。
/list:[css_site=<サイト ID>;] [filename=<ファイル名>;] css_site キーワードを指定した場合は、対応する Commerce Server サイトのジョブをすべて列挙します。css_site キーワードを省略した場合は、すべてのサイトのジョブをすべて列挙します。filename キーワードを指定した場合は、出力結果を指定のファイルに書き込みます。ディレクトリを指定しなかった場合は、指定された名前のファイルを WINNT ディレクトリに作成します。

ジョブ リスト ファイル形式の例については、「/list オプションを使う」を参照してください。
/del_old:<age> | 完了したジョブのうち、"age" 日以上経過した完了ジョブを完全に削除します。
/wait 省略可。このオプションは、/run、/term、/create、/execute の各オプションと共に使用できます。/run オプションと組み合わせると、DmlRun はジョブが完了するまで待機し、ジョブの状態をコンソールに返します。また、/wait オプションを /create /execute オプションと組み合わせたときにも、同じ結果が得られます。

/term /wait オプションを使うと、DmlRun はジョブが終了するまで待機します。

注

  • /wait オプションは、ほかのオプションと組み合わせて使う必要があります。単独で使うことはできません。
  • /wait /term オプションを使うと、次のようなエラー ステートメントが返されます。"エラー : ジョブ {7f2c6324-6b72-402d-853d-8b1c654ae842} は状態コード 1 で存在しました。"
/execute 省略可。/create /execute オプションを使うと、DmlRun はジョブを作成して実行します。

/execute オプションを指定する場合は、同じコマンド ライン上に /create オプションを含める必要があります。

/server:<サーバー名> | 省略可。他のどのオプションとも併用できます。このオプションを指定すると、DmlRun は指定のサーバー上でジョブをリモート管理します。
/? 、/help、または /h | コマンド ライン オプションとその使い方に関するヘルプを表示します。他のオプションと共に使うことはできません。

次のオプションは、同じコマンド ライン上に指定できません。

  • /create
  • /delete
  • /del_old
  • /list
  • /pause
  • /run
  • /term

/list オプションを使う

ジョブ リスト ファイルは、DmlRun /list:<ファイル名> コマンドで作成できます。このファイルは、.ini ファイル形式に準拠したテキスト ファイルです。ジョブごとに独自のセクション "Job #" が記載されます。"#" には、1 からジョブの総数までの連番が入ります。ジョブ リスト ファイルの例を次に示します。

[General]
JobCount=2

[Job 1]
JobID number=<job_id for the job>
Description=<Descriptive text for the job>
Status=<Integer; status code for the job>
LastRunTime=<Date/Time when the job ran last time. Blank if job did not run.>
FinishedTime=<Date/Time when the job was completed. Blank if job did not finish.>
CampaignItem=<Campaign item ID. Appears only if part of a campaign.>
DMLItem=<Direct Mailer item ID. Appears only if part of a campaign.>
CommerceSite=<css_site ID. Blank if not part of a site.>

[Job 2]

関連項目

ダイレクト メーラー ジョブ ファイルを作成する

ダイレクト メーラー ジョブを作成および実行する

ダイレクト メーラー ジョブの状態を表示する


プロファイル リソースの実行

Web サイトでのデータの収集を管理するには、Commerce Server プロファイル リソースを使います。Commerce Server プロファイル リソースを使うと、たとえば、Web サイトのユーザーから収集したデータを制御するプロファイル定義を作成したり、プロファイル定義で収集されるデータを指定して、特定のデータを Commerce Server データ ウェアハウスにエクスポートするかどうかを指定したり、

収集したデータの格納先を決定するデータ ソースを作成したり、または、データ収集のために用意された質問にユーザーがサイトで答えるときの選択肢 (好きな色を選ぶときに使用する色の一覧など) を提供するサイト用語を作成することができます。

ここでは、次のトピックについて説明します。

  • プロファイルのワークフロー プロファイルを管理するためのワークフローについて説明します。
  • プロファイル リソースについて プロファイル リソースの特徴と機能を説明します。
  • プロファイルの名前とサイズの制限 プロファイルの名前とサイズの制限を示します。
  • プロファイルに関するヒント集 プロファイルの作成と管理に関する重要事項について説明します。
  • プロファイル リソースの接続文字列を構成する プロファイル リソースの接続文字列を変更する方法を説明します。
  • プロファイル リソースでデータ ソースを管理する データ ソース、データ オブジェクト、およびデータ メンバを作成、変更、追加、および削除する方法を説明します。
  • プロファイル リソースでプロファイル定義を管理する プロファイル定義を作成、変更、評価、埋め込み、コピー、および削除する方法を説明します。
  • プロファイル リソースでプロファイル プロパティを管理する プロファイル プロパティ、およびプロパティのカスタム属性を変更、整理、および削除する方法を説明します。
  • 暗号化されたプロファイル プロパティを管理する 暗号化されたプロファイル プロパティを追加および管理する方法を説明します。また、公開キー、秘密キー、一方向のハッシュなど、重要なセキュリティ機能についても説明します。
  • プロファイル リソースでサイト用語を管理する サイト用語とサイト用語の値を作成、変更、および削除する方法を説明します。
  • プロファイル スキーマをエクスポートおよびインポートする プロファイル スキーマを XML ファイルにエクスポートおよびインポートして、プロファイル スキーマをテスト環境から運用サーバーに簡単に移動できるようにする方法を説明します。
  • Active Directory ストア内の既存のアカウントを管理する Active Directory データ ソースの検索コンテナと検索範囲を設定する方法を説明します。


プロファイルのワークフロー

次の図は、データ ソースおよびプロファイル定義作成のワークフローを示しています。

  1. 新しいデータ ソースを作成し、Commerce Server データベースおよびライトウェイト ディレクトリ アクセス プロトコル (LDAP) ソースをプロファイル リソースに公開します。
  2. 新しいデータ オブジェクトを追加し、データベース テーブル (または LDAP クラス) をプロファイル リソースに公開します。
  3. 新しいデータ メンバを追加し、データベース テーブルの列 (または LDAP クラスの属性) をプロファイル リソースに公開します。
  4. 作成したデータ オブジェクトをデータベースにマップするのに使用する新しいプロファイル定義を追加します。
  5. 新しいプロパティをプロファイル定義に追加し、データ メンバに割り当てます。
  6. プロファイル定義にサイト用語を追加します。


プロファイル リソースについて

プロファイル リソースは、データ ソース、プロファイル定義、およびサイト用語を作成することによって、ユーザーからのデータやユーザーに関するデータを収集、追跡、および格納するために使います。プロファイル定義は、Microsoft Commerce Server 2002 の Web サイトからユーザー データとビジネス データを収集するために使います。データ ソースは基になるデータ サーバー (LDAP または DB3 ソース) へのリンクとして使います。サイト用語は、Web サイトでユーザーが個人の嗜好などの情報を入力するときの選択肢を作成するために使います。

プロファイル リソースを使って、次の操作を行います。

  • データ ソース、データ オブジェクト、およびデータ メンバを作成する。
  • プロファイル定義を作成および評価する。
  • プロファイル スキーマをエクスポートおよびインポートする。

次の操作は、プロファイル リソースと、ビジネス デスクのプロファイル モジュールのどちらを使っても行うことができます。

  • サイト用語を作成、編集、および削除する。
  • プロファイル定義を編集および削除する。
  • プロファイルを作成、編集、および削除する。

ここでは、次のトピックについて説明します。

  • プロファイル データ ソース
  • データ ソースのパーティション
  • プロファイル データの集計
  • サンプル プロファイル データ ソース
  • プロファイル キャッシュの整合性
  • 暗号化されたプロファイル プロパティ


プロファイル データ ソース

データ ストアをプロファイル リソースに公開するには、データ ソースを使います。データ ソースを使うと、プロファイル定義によって Web サイトで収集されたデータをデータ ストアに格納できるようになります。Commerce Server 2002 では、OLE DB データベースとライトウェイト ディレクトリ アクセス プロトコル (LDAP) ソースがサポートされています。

データ ソースには、次の構成要素が含まれます。

  • データ オブジェクト OLE DB データベースのテーブルまたは LDAP ソースのクラスをプロファイル定義に表示します。データ オブジェクトを作成する過程では、データベースの新しいテーブルや LDAP ソースの新しいクラスは作成されません。代わりに、データ オブジェクトを作成すると、プロファイル リソースに対して、テーブルまたは LDAP クラスが表示されるようになります。テーブルまたはクラスは、それらに表示するデータ オブジェクトが作成される前に存在していなければなりません。
  • データ メンバ OLE DB データベースのテーブルの列、または LDAP ソースのクラスの属性をプロファイル プロパティに表示します。たとえば、ユーザーの Web サイトに登録時に、プロファイル定義を使って情報を収集するとします。ユーザー情報 (姓、名、電子メール アドレスなど) は、プロファイル プロパティによって収集されます。各プロパティは、データ メンバに関連付けられています。データ メンバは、収集された情報を格納先のデータベース列または LDAP 属性にマップ (または移動) します。

    データ メンバを作成しても、データベース テーブルに新しい列が作成されたり、LDAP ソースのクラスに新しい属性が作成されることはありません。代わりに、列または LDAP 属性がプロファイル リソースに表示されるようになります。列または属性は、表示するデータ メンバが作成される前に存在していなければなりません。

次の図は、データ記憶域、データ ソース、およびプロファイル定義が、プロファイル リソースでどのように関連しているかを示しています。

データ ソースをパーティションに分割して、1 つのデータ ソースにマップされたデータを複数のデータ ストアに格納できます。また、プロファイル定義のプロパティを複数のデータ ソースにマップすることによって、データ ストアを集計できます。

関連項目

データ ソースのパーティション

プロファイル データの集計

サンプル プロファイル データ ソース

プロファイル定義

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースでデータ ソースを管理する


データ ソースのパーティション

プロファイル リソースを使うと、パーティションに分割されたデータ ソースを作成できます。Commerce Server 2002 では、2,500 万人の SQL Server ユーザーおよび 1,000 万人の Active Directory ユーザーを超えるサイト トラフィックに対応できるように、データ ソースのパーティション分割がサポートされています。

パーティションに分割すると、多数のユーザーに伴うデータベース トランザクションの負荷を、効果的に見積もって管理できます。データ ソースの各パーティションは、データベース、またはライトウェイト ディレクトリ アクセス プロトコル (LDAP) ソースに接続できます。

1 つのデータ ソースのパーティションはすべて、同じ種類のデータ記憶域 (OLE DB データベースまたは LDAP ソース) に接続される必要があり、1 つのデータ ソースのパーティションにマップされるデータ ストアはすべて、同じスキーマを持つ必要があります。

データ ソースをパーティションに分割しておくと、プロファイル定義で収集されたデータすべてを 1 つのデータベースに格納する場合よりも、個々のデータベースのパフォーマンスが向上し、応答時間が短縮されます。

ここでは、次のトピックについて説明します。

  • パーティションを使ってデータ ソースを複数のデータベースにマップする
  • プロファイル データ ソース パーティションのカスタム属性
  • プロファイル プロパティのカスタム属性


パーティションを使ってデータ ソースを複数のデータベースにマップする

プロファイル データをデータ ストアにマップするには、プロファイル データ ソースのパーティションを使います。

パーティションを使ってデータ ソースを複数の OLE DB データベースまたは LDAP ソースにマップする場合は、1 つのデータ ソースのデータ記憶デバイス (OLE DB データベースまたは LDAP ソース) に同じスキーマが必要です。たとえば、パーティションに分割され、3 つのデータベースにマップするデータ ソースを作成した場合、3 つのデータベースのテーブル定義はすべて同じであることが必要です。Commerce Server データ ソースでは、最大で 128 のパーティションがサポートされています。

データ ソースにパーティションを追加する前に、パーティションの数と種類を計画する必要があります。プロファイル リソースでは、パーティションの再分割がサポートされず、動的なパーティション分割も提供されません。データ ソースのパーティションの数を変更する必要がある場合は、新しいデータ ソースを作成する必要があります。

注意

  • Microsoft Active Directory にマップされた複数のパーティションを持つデータ ソースでは、Commerce Server ビジネス デスクの組織モジュールが無効になります。これは、組織プロファイルのデータ ソースをパーティションに分割した場合に発生します。プロバイダによって組織が作成されたパーティションがわからないので、組織に既定のグループ (Administrators など) を作成することはできません。

データ ソースのパーティションでは、ハッシュ キーを使って、複数のパーティションにマップされたデータが接続されます。パーティションに分割されたデータ ソースにプロファイル定義のプロパティをマップするには、プロファイル定義の 1 つのプロパティをハッシュ キーとして指定する必要があります。

関連項目

ハッシュ キーを使ってプロファイル定義データを複数のデータベースに格納する


プロファイル データ ソース パーティションのカスタム属性

データ ソースのパーティションにはカスタム属性を追加できます。カスタム属性は、アプリケーション固有の属性です。

通常、すべてのプロファイル定義、またはデータ ソースに共通する属性は、ClassDef または SourceDef テーブルに格納されます。しかし、選択されたデータ ソース オブジェクトにだけ適用される属性もあります。

たとえば、データ ソースのソート順やデータ ソース内のパーティションを管理したり、メンバ定義やソース定義オブジェクトなどのほかのオブジェクトとの一貫性を保つために、カスタム属性を作成することもできます。

データ ソースのカスタム属性は、プロファイル リソース内でのみ利用できます。ビジネス デスクのプロファイル モジュールではアクセスできません。


プロファイル プロパティのカスタム属性

次の表は、プロファイル プロパティのカスタム属性とその使用方法の一覧です。

カスタム属性 | 説明 | 値
DWMemberName | プロファイル プロパティが格納されるデータ ウェアハウス内のデータ メンバ (ここではテーブルの列) の名前を指定します。そのメンバ名 (列) が、指定したデータ ウェアハウス クラス (テーブル) 内に存在しない場合は、プロファイル データ インポート DTS タスクによってそのメンバ (列) が作成されます。 | データ ウェアハウス内の列の名前
IsTransactioned | 複数のトランザクション データ ストア間で書き込みトランザクションをサポートするかどうかを指定します。 | True = 有効 False = 無効
sAnonymousAccess | Web サイトの顧客サービス ページのプロパティに対する匿名ユーザーのアクセス レベルを指定します。 | 0 = 匿名ユーザーに対して非表示 1 = 読み取り専用 2 = 編集可能
sDelegatedAdminAccess | Web サイトの顧客サービス ページのプロパティに対する代理管理者のアクセス レベルを指定します。 | 0 = 管理者に対して非表示 1 = 読み取り専用 2 = 編集可能
sDisplayColumn | 特定の汎用プロファイル定義に基づいたプロファイルについて、プロファイル エディタ モジュールの [検索] 画面で、それらのプロファイルの識別名として表示するプロファイル データを指定します。sDisplayColumn カスタム属性が定義されているプロパティだけがプロファイルに含まれる場合、特に指定しない限り、プロファイル表示列はそのプロパティの昇順で格納されます。 | この値によって、各プロパティの相対的な列幅が決まります。この属性では、大文字と小文字が区別されます。また、結合キーや 2 重のキーとして定義することはできません。
sFeatureID | サイトがどのような設定の場合に、Web サイトの顧客サービスおよび取引先サービスでプロパティを表示するかを指定します。 | 0 = 常に表示 1 = サイトが代理管理者オプションをサポートしている場合にだけ表示 3 = サイトが Active Directory を使っている場合にだけ表示
sFriendlyName | プロファイル エディタ モジュールの [プロファイルの編集 : <プロファイル名>] 画面のタイトル バーで、編集するプロファイルの識別名として表示するプロファイル データを指定します。 | この属性では、大文字と小文字が区別されます。また、結合キーや 2 重のキーとして定義することはできません。sFriendlyName 属性の値は、使用されません。
sSearchOptions | サイトの検索オプションで、特定のプロパティをユーザーが利用できるかどうかを指定します。 | None = すべての検索操作にプロパティが利用できない All = 簡易および拡張のいずれの検索操作にもプロパティが利用できる Advanced = 拡張検索に限りプロパティが利用できる
sShownInList | 特定のプロパティが一覧シート ページに表示されるかどうかを指定します。 | 0 = プロパティは一覧シート ページに表示されない 1 = プロパティは一覧シート ページに表示される
sSiteAdminAccess | Web サイトの顧客サービス ページのプロパティに対するサイト管理者のアクセス レベルを指定します。 | 0 = サイト管理者に対して非表示 1 = 読み取り専用 2 = 編集可能
sUserAccess | Web サイトの顧客サービス ページのプロパティに対する登録済みユーザーのアクセス レベルを指定します。 | 0 = 登録済みユーザーに対して非表示 1 = 読み取り専用 2 = 編集可能
Password | パスワードがプロパティのデータ型であることを指定します。 このカスタム属性の値を 1 すると、パスワードのセキュリティを確保するための特別な UI 機能を実装できます。たとえば、ブラウザのウィンドウに実際の文字ではなくアスタリスクを表示したり、複数のフィールドを使ってパスワード変更操作を確認したりできます。 | 0 = 標準のプロパティのデータ型 1 = パスワードのプロパティのデータ型
EncryptionType | プロパティの暗号化を指定します。データ ストア内で暗号化する必要があるプロパティを指定するときに、この属性を使います。 また、これは予約済みのカスタム プロパティ値であることに注意してください。プロパティを暗号化するように設定すると、そのプロパティは自動的に作成され、カスタム属性の動的テーブルで非表示になります。 | 1 = 公開キーまたは秘密キーによる暗号化 2 = 一方向のハッシュ キーによる暗号化


プロファイル データの集計

プロファイル定義のプロパティを複数のデータ ソースにマップすることによって、データ ストアを集計できます。これによって、プロファイル オブジェクトを処理するサイト開発者には、基になるデータ ソースを直接処理する必要がなくなるという利点が得られます。さらに、データを元の場所に置いたまま (データの移行や同期化を行わずに)、サイトで基幹業務 (LOB) システムからデータを公開できます。

プロファイル リソースでは、さまざまなデータ ソースからのデータを集計できます。たとえば、プロファイル リソースでは、すべての LDAPv3 データ ソース、および ANSI SQL の簡易なサブセットをサポートする OLEDB/ODBC (OLEBD/オープン データベース コネクティビティ) プロバイダを持つすべてのリレーショナル データベースがサポートされています。また、Internet Locator Service (ILS) などの非固定データ ソースもサポートされています。

プロバイダのデータ集計層のアーキテクチャにより、LDAPv3 を最小限にサポートする LOB ストア、または ANSI-SQL を最小限にサポートする OLEDB/ODBC プロバイダもサポートされます。データ集計層については、「Aggregation Across Multiple Data Sources」を参照してください。

プロファイル データを集計するには、プロファイル プロパティのマップ先のプロファイル データ オブジェクトを作成する必要があります。プロファイル定義で複数のデータ ソースを使う場合は、両方のソースをマップする結合キーを作成する必要があります。プロファイル データを集計する場合は、1 つの一意なキー プロパティを結合キーとしてマークする必要があります。1 つの一意なキー プロパティを結合キーとしてマークするには、プロパティの IsJoinKey 属性を True に設定します。結合キーのプロパティは、すべてのデータ ストアに格納され、データ ストア間の操作を最適化するために、データ ストア集計層で使われます。

注

  • 既存の Active Directory ドメインを使用しているときに、SQL プロファイルを集計する場合は、プロファイル定義を編集して集計を定義し、UserObject テーブルにあらかじめ次のデータを作成しておく必要があります。
    • Active Directory join key = cn
    • SQL join key = Logon_name
  • Active Directory データベースおよび SQL Server データベース内のデータを集計するときに、既存のユーザーを削除する場合は、Commerce Server マネージャまたは Commerce Server ビジネス デスクを使う必要があります。

関連項目

データ ストア集計用の SQL ビュー

2 つのデータ ソースを持つプロファイル定義を作成する


データ ストア集計用の SQL ビュー

Commerce Server マネージャでは、データ ストアの集計のために SQL Server テーブルを表示するだけではなく、データ ソース検出機能として SQL ビューが用意されています。SQL ビューは、複合主キー (複数の列で構成されている主キー) を持つテーブルをサポートします。

SQL ビューでは、複数のテーブルからデータが集計された後、プロファイルを定義できる 1 つのテーブルを示すビューが表示されます。

ビューを使ってプロファイルを定義するためのワークフローは、SQL Server テーブルを使ってプロファイルを設定する場合と同じです。

プロファイルを定義するビューを実装するには、"INSTEAD OF トリガ" のサポートが必要です。"INSTEAD OF トリガ" を使って、プロファイル サービスおよび ActiveX Data Objects (ADO) のクエリ操作を、ビューによって集計されているテーブルに対する必要なアクションに変換します。

ビューの構成およびトリガの定義については、SQL Server Books Online を参照してください。

関連項目

プロファイル データの集計


サンプル プロファイル データ ソース

ソリューション サイトのアンパックでは、プロファイル サービスの SQL ソースというサンプル データ ソースがプロファイル リソースに追加されます。プロファイル サービスの SQL ソース データ ソースは、サンプル データ オブジェクトとして "住所"、"一括注文数"、"組織"、"ユーザー オブジェクト" が提供されています。ここでは、次のオブジェクトについて説明します。

  • "住所" サンプル データ オブジェクト
  • "一括注文数" サンプル データ オブジェクト
  • "組織" サンプル データ オブジェクト
  • "ユーザー オブジェクト" サンプル データ オブジェクト


"住所" サンプル データ オブジェクト

次の表は、"住所" データ オブジェクトで利用できるデータ メンバの一覧です。

名前 | データ型
g_address_id | 文字列
g_id | 文字列
i_address_type | Number (数値)
u_address_name | 文字列
u_first_name | 文字列
u_last_name | 文字列
u_description | 文字列
u_address_line1 | 文字列
u_address_line2 | 文字列
u_city | 文字列
u_region_code | 文字列
u_region_name | 文字列
u_postal_code | 文字列
u_country_code | 文字列
u_country_name | 文字列
u_tel_number | 文字列
u_tel_extension | 文字列
i_locale | Number (数値)
u_user_id_changed by | 文字列
d_date_last_changed | Date/Time (日付/時刻)
d_date_created | Date/Time (日付/時刻)


"一括注文数" サンプル データ オブジェクト

次の表は、"一括注文数" データ オブジェクトで利用できるデータ メンバの一覧です。

名前 | データ型
g_org_id | 文字列
g_po_id | 文字列
u_po_number | 文字列
u_description | 文字列
g_user_id_changed_by | 文字列
d_date_last_changed | Date/Time (日付/時刻)
d_date_created | Date/Time (日付/時刻)


"組織" サンプル データ オブジェクト

次の表は、"組織" データ オブジェクトで利用できるデータ メンバの一覧です。

名前 | データ型
g_org_id | 文字列
u_name | 文字列
u_trading_partner_number | 文字列
g_user_id_admin_contact | 文字列
g_user_id_receiver | 文字列
u_org_catalog_set | 文字列
g_user_id_changed_by | 文字列
g_user_purchasing_manager | 文字列
d_date_last_changed | Date/Time (日付/時刻)
d_date_created | Date/Time (日付/時刻)


"ユーザー オブジェクト" サンプル データ オブジェクト

次の表は、"ユーザー オブジェクト" データ オブジェクトで利用できるデータ メンバの一覧です。

名前 | データ型
g_user_id | 文字列
g_org_id | 文字列
u_user_title | 文字列
i_user_type | Number (数値)
u_first_name | 文字列
u_last_name | 文字列
u_email_address | 文字列
u_tel_number | 文字列
u_tel_extension | 文字列
u_fax_number | 文字列
u_fax_extension | 文字列
u_logon_name | 文字列
u_user_security_password | 文字列
g_user_id_changed_by | 文字列
i_account_status | Number (数値)
u_user_catalog_set | 文字列
d_date_registered | Date/Time (日付/時刻)
u_campaign_history | 文字列
i_partner_desk_role | Number (数値)
d_date_last_changed | Date/Time (日付/時刻)
d_date_created | Date/Time (日付/時刻)
u_pref1 | 文字列
u_pref2 | 文字列
u_pref3 | 文字列
u_pref4 | 文字列
u_pref5 | 文字列

注

  • "u_pref" データ メンバは、データベースを拡張しなくても "ユーザー オブジェクト" プロファイル定義にプロパティを追加できるように用意されています。これらのデータ メンバはカスタマイズ可能です。

プロファイル サービスの SQL ソース データ ソースは、既定でプロファイル リソースおよび Commerce Server ビジネス デスクに追加されるサンプルのプロファイル定義 にマップされます。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースで新しいデータ オブジェクトを追加する

プロファイル リソースで新しいデータ メンバを追加する

プロファイル リソースでデータ ソースを管理する

Profiles Schema


プロファイル キャッシュの整合性

Retail ソリューション サイトは、情報がキャッシュされている別の Web サーバーをユーザーが再び訪問したときに、更新されたプロファイルをタイムスタンプを使って検出します。Web サーバーは、タイムスタンプとキャッシュされたプロファイルを比較します。タイムスタンプの方が新しい (キャッシュが古い) 場合は、該当のページで、明示的なデータベース ラウンドトリップが行われます。

Web ファーム シナリオでは、個々のサーバーがローカル プロファイル キャッシュを提供します。あるキャッシュ内のユーザーのプロファイル (ユーザー オブジェクト) の値は、別のサーバー上で変更が加えられて、古くなっている可能性があります。ユーザーのプロファイルが変更されたことをサーバーが認識できるように、プロファイルが作成または更新されたときに、プロファイル ストアにあるユーザーのプロファイルとユーザーの cookie の両方に最終更新日時のタイムスタンプが設定されます (UpdateUserProfile)。

ユーザーが Web ファームのサーバーを訪問したときに、ローカル キャッシュにあるプロファイルのタイムスタンプと cookie のタイムスタンプが比較されます (GetCurrentUserProfile)。等しくない場合は、ローカル キャッシュをバイパスして、IAD インターフェイスの GetInfo メソッドによってプロファイル ストアからプロファイルが取得されます。cookie が有効になっていない場合は、[戻る] ボタンを使ってページを更新したときに発生する問題のため、最終更新時刻を追跡する信頼性の高い方法がないので、キャッシュは常にバイパスされます。

"住所" プロファイルは、アクセス頻度が少なく、追跡するプロファイルの数が多い可能性があるため、検索するときに常にキャッシュがバイパスされます。"組織" プロファイルの検索では、キャッシュは必要に応じてバイパスされます。バイパスされるかどうかは、プロファイル内のデータに変更が加えられる可能性が大きいか小さいかによって決まります。

タイムスタンプを利用したソリューションを採用する場合でも、プロファイルとキャッシュとの整合性に関する問題が解消されるわけではありません。たとえば、現在キャッシュされているユーザーのプロファイルが、他のコンピュータのビジネス デスクまたは取引先デスクから他のユーザーによって変更された場合、サイトではキャッシュが古くなっていることを認識できません。この問題をある程度緩和するには、ユーザーがソリューション サイトにログインしたときに、GetInfo メソッドを呼び出すようにします。

この程度の回避策で十分とはいえない場合は、ソリューション サイトの中で、include\setupenv.asp に宣言されている m_iGlobalProfileLookUpOption 変数を利用します。この変数を設定すると、必ず GetInfo メソッド呼び出しが使われるようになり、プロファイルがプロファイル ストアから取得されるようになります。

Commerce Server ソリューション サイトは、http://go.microsoft.com/fwlink/?linkid=6491 から入手できます。


暗号化されたプロファイル プロパティ

Commerce Server は、非対称型の暗号化 (AE) および一方向のハッシュの 2 種類の暗号化をサポートします。Commerce Server 2002 は、対称型の暗号化はサポートしません。

重要

  • Commerce Server には、キー管理システムは含まれていません。暗号化に使用する公開キーと秘密キーを生成、格納、および取得するためのキー管理システムを設計し、作成する必要があります。

非対称型の暗号化

非対称型の暗号化は、後で暗号化を解除する必要があるデータに使われます。この暗号化方式では、暗号化のために 1 組のキーが使われます。公開キーとそれに対応する秘密キーです。公開キーでデータを暗号化し、秘密キーで暗号化を解除します。

非対称型の暗号化を使うには、通常は次の作業を行います。

  • 暗号化が可能なプロファイル プロパティを、ビジネス デスクを使って追加します。
  • 公開キーと秘密キーを生成します。
  • 次の処理を行うようにアプリケーション コードを修正します。
    • 暗号化の処理に使われるトークンをプロファイル サービスと Commerce Server OLE DB Provider に与える。
    • プロパティを暗号化する。
    • プロパティの暗号化を解除する。
  • 新しい公開キーと秘密キーにデータを移行します。

一方向のハッシュ

一方向のハッシュは、データを非表示にするとき、または暗号化解除の必要がないデータを暗号化するときに使います。一方向のハッシュの対象になるデータの例として、ユーザー パスワードがあります。Commerce Server 2002 は、ユーザー データをハッシュするときに "ソルト" を使います。ソルトは、ハッシュを実行する前にユーザー データの先頭に付ける 32 ビットの乱数です。

関連項目

暗号化されたプロパティをプロファイル サービスに追加する

cookie の新しい暗号化キーを生成する


プロファイルの名前とサイズの制限

ここでは、プロファイル リソースの名前とサイズの制限を示します。

プロファイル

プロファイルのオブジェクト 名前とサイズの制限
名前
  • 127 文字以内で設定します。57 文字を超える名前は、データ ウェアハウスにエクスポートされません。
  • 文字は、アルファベットでなければなりません。
  • アンダースコア (_) を使用できます。
  • スペースは使用できません。
  • オブジェクト名として "User" は使用できません。これは、SQL の予約語です。
表示名
  • 127 文字以内で設定します。
  • 文字は、Unicode 形式でなければなりません。
説明
  • 127 文字以内で設定します。
  • 文字は、Unicode 形式でなければなりません。

注

  • 文字長の合計は、データ ソース名、データ オブジェクト名、およびプロファイル名とも 110 文字未満でなければなりません。
  • 表示名は、データ ソース、データ オブジェクト、データ メンバ、およびプロファイル定義とも変更することができます。
プログラム上の定義名は、データ ソース、データ オブジェクト、データ メンバ、およびプロファイル定義とも変更することはできません。

サイト用語グループとサイト用語

サイト用語のオブジェクト 名前とサイズの制限
名前
  • 127 文字以内で設定します。
  • 文字は、アルファベットでなければなりません。
  • アンダースコア (_) を使用できます。
  • スペースは使用できません。
表示名
  • 127 文字以内で設定します。
  • 文字は、Unicode 形式でなければなりません。
説明
  • 127 文字以内で設定します。
  • 文字は、Unicode 形式でなければなりません。

用語 (値)

用語のオブジェクト 名前とサイズの制限
用語の名前
  • 127 文字以内で設定します。
  • 英数字でなければなりません。
  • アンダースコア (_) を使用できます。
  • スペース、句読点、およびダブルバイト文字セット形式は使用できません。
表示名
  • 127 文字以内で設定します。
  • 文字は、Unicode 形式でなければなりません。


プロファイルに関するヒント集

ここでは、Commerce Server プロファイル リソースでプロファイルを作成および管理するためのヒント集を示します。

  • Active Directory への ProfileService_ADsource 接続文字列には、次に示す最小限のアクセス許可を使う。
    • ドメインではドメイン ユーザー
    • ベース URL 組織単位では作成、削除、読み取り、およびパスワードのリセット

    ベース URL 組織単位を作成するアクセス許可がないアカウントを使う場合は、サイトをアンパックする前にベース URL 組織単位を手動で作成する必要があります。

    グローバル リソース ADsource の接続文字列を、SupplierAD コンテナへの代理アクセス許可 (フル コントロール) を持つ標準ユーザーに変更する場合は、ビジネス デスクを使ってユーザーを作成できますが、組織は作成できません。ユーザーが管理者でも Domain Administrator のメンバでもなく、"監査とセキュリティ ログの管理" セキュリティ ポリシーも適用されていない場合は、組織の作成に必要な NT セキュリティ記述子が返されません。

  • Active Directory にプロファイルを格納する場合は、プロファイルにユーザー プロファイル用のプロパティ cn および SAMAccountname が含まれていなければならない。

    これらの最小限のプロパティは、Active Directory の制約を満たすために必要です。プロファイル定義の種類に応じて、他のプロパティが必要になることがあります。

  • プロファイルの変更内容を Web サイトに発行する場合は、ピーク時を避ける。

    ピーク時にプロファイルの変更内容を Web サイトに発行すると、サイトに障害が発生する可能性があります。

  • 選択したプロファイル プロパティをデータ ウェアハウスにインポートするには、ビジネス デスクを使う。

    ビジネス デスクを使って、データ ウェアハウスにインポートするプロファイル プロパティを選択します。詳細については、「データ ウェアハウスにインポートするデータを指定する」と「cookie をインポートする」を参照してください。

  • データ ウェアハウスにプロファイル データをインポートするには、プロファイル データ インポート データ変換サービス (DTS) タスクを使う。

    "住所" プロファイルは、Commerce Server データベースの Addresses テーブルに格納されます。既定では、Addresses テーブル (ソース) はデータ ウェアハウスの Address クラス (変換先) にマップされます。

    ユーザー オブジェクト プロファイルは、Commerce Server データベースの UserObject テーブルに格納されます。既定では、UserObject テーブル (ソース) はデータ ウェアハウスの RegisteredUser クラス (変換先) にマップされます。

    住所プロファイルおよびユーザー オブジェクト プロファイルをデータ ウェアハウスの列にマップする方法の詳細については、「プロファイル データ インポート DTS タスクでの ETL プロセス」を参照してください。

  • 現在サイトで使用しているすべてのサイト用語を表示するには、Microsoft Commerce Server 2000 リソースキットに含まれている SiteTerms.vbs スクリプトを実行する。

    Commerce Server 2002 には、プロファイル カタログからサイト用語を取得する BusinessDataAdmin2::GetSiteTerms メソッド API が用意されています。


プロファイル リソースの接続文字列を構成する

Commerce Server マネージャを使うと、プロファイル リソースの接続文字列を変更できます。プロファイル リソースの接続文字列は、アンパック処理中に設定され、管理データベースに格納されます。

注

  • いずれかの文字列が変更されると、プロファイル リソース内のすべての接続文字列が更新されます。

プロファイル リソースの接続文字列を変更するには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Profiles (<サーバー名>_<データベース名>)] を右クリックし、[プロパティ] をクリックします。
  2. [Profiles (<サーバー名>_<データベース名>) のプロパティ] ダイアログ ボックスの [接続文字列] タブで変更する文字列をクリックし、[変更] をクリックします。
  3. [データ リンク プロパティ] ダイアログ ボックスの [接続] タブで、次の操作を行います。
    項目 | 操作
    [サーバー名を選択または入力します] | ボックスの一覧からサーバー名を選択するか、またはアクセスするデータベースがある場所を入力します。
    [更新] | サーバーの一覧を更新するときにクリックします。
    [Windows NT の統合セキュリティを使用する] Microsoft Windows NT 上で実行している SQL Server へのセキュリティが設定された (信頼できる) 接続をプロバイダが要求するように指定するときに、このオプションを選択します。

    セキュリティで保護されたサイトでは、この設定をお勧めします。
    [特定のユーザー名とパスワードを使用する] データ ソースへのログイン情報を認証するためのユーザー名とパスワードの指定には、このオプションを選択します。

    セキュリティで保護されたサイトでは、この設定はお勧めしません。
    [ユーザー名] データ ソースにログオンする際の認証に使うユーザー ID を入力します。

    この設定はお勧めしません。
    [パスワード] データ ソースにログオンする際の認証に使うパスワードを入力します。

    セキュリティで保護されたサイトでは、この設定はお勧めしません。
    [パスワードを空にする] | 指定されたプロバイダが接続文字列で空のパスワードを返せるようにするには、このオプションを選択します。
    [パスワードを保存する] パスワードを接続文字列と共に保存できるようにするには、このオプションを選択します。パスワードが接続文字列に含まれるかどうかは、呼び出し側のアプリケーションの機能によって異なります。パスワードはマスクも暗号化もされずに返され、保存されます。

    セキュリティで保護されたサイトでは、この設定はお勧めしません。
    [サーバー上のデータベースを選択する] | データ ソースをマップするデータベース名を入力するか、またはボックスの一覧からデータベース名を選択するには、このオプションを選択します。
    [データベース ファイルをデータベース名として添付する] | このオプションは使わないでください。Commerce Server では、SQL Server 6.5 またはそれ以前のバージョンはサポートされていません。
    [ファイル名を使用する] | このオプションは使わないでください。Commerce Server では、SQL Server 6.5 またはそれ以前のバージョンはサポートされていません。
    [接続テスト] | 指定したデータ ソースに接続するときにクリックします。接続に失敗した場合は、正しく設定されているかどうかを確認してください。スペル ミスや大文字と小文字の違いが接続失敗の原因になる場合があります。
  4. [OK] をクリックして、[Profiles (<サーバー名>_<データベース名>) のプロパティ] ダイアログ ボックスに戻ります。
  5. [OK] をクリックし、変更を保存してプロパティ画面のページに戻ります。

接続文字列の変更がプロファイル リソースに適用されます。

関連項目

プロファイル リソースについて

セキュリティ リスク : プロファイル リソースに対して SQL 認証を使う


セキュリティ リスク : プロファイル リソースに対して SQL 認証を使う

Commerce Server マネージャのプロファイル リソースを使って、リモート コンピュータに格納されたプロファイル定義に接続すると、リモート コンピュータは SourceDef テーブルの ConnStr フィールドの内容をクリア テキストで返します。この内容は、プロファイル データが格納されているデータ ソースへの接続文字列です。これは、セキュリティの脆弱性です。ネットワーク トラフィックを監視している人はだれでも、この接続文字列にアクセスし、機密扱いのプロファイル データを取得できます。

プロファイル データベースへの接続文字列をセキュリティで保護するには、次の 2 つの方法があります。

  • Windows 統合セキュリティを使うようにプロファイル リソースを構成する。この構成をお勧めします。
  • SQL 認証を使う必要がある場合は、名前付きパイプに暗号化を適用する。具体的には、IPSec 認証を使い、Secure Sockets Layer (SSL) 暗号化を有効にし、マルチプロトコル クライアント暗号化を有効にします。詳細については、SQL Server Books Online を参照してください。


プロファイル リソースでデータ ソースを管理する

作成したデータ ソースを変更するには、プロファイル リソースを使います。たとえば、古くなったデータ オブジェクトやデータ メンバを編集または削除する場合は、プロファイル プロパティがマップされるデータ ストアを変更します。また、新しいデータ ソースを作成して古いデータ ソースは削除する場合に、プロファイル リソースを使います。データ ソース、データ オブジェクト、データ メンバは、いずれも変更および削除ができます。

データ ソースを変更する場合は、次の制限を考慮に入れてください。

  • パーティションを追加できるのは、まだパーティションに分割されていないデータ ソースに対してだけです。また、ソースへのパーティションの追加は、そのソースをデータの格納に使う前に行う必要があります。データを含むソースをパーティションに分割すると、既存のデータが失われます。
  • データ ソースのパーティションは削除できせんが、変更は可能です。データを含むデータ ソースのパーティションを変更する場合は、その変更によってデータが失われたり損なわれたりすることがあるので注意が必要です。
  • 削除したデータ ソースは元に戻せません。また、そのデータ ソースに関連付けられていたデータ オブジェクトおよびデータ メンバもすべて削除されます。プロファイル定義でデータ記憶域へのマップに使っていたデータ メンバが削除された場合は、存在するデータ メンバでプロファイル定義を再マップする必要があります。
  • 削除したデータ オブジェクトは元に戻せません。また、削除されたデータ オブジェクトに関連付けられていたデータ メンバもすべて削除されます。プロファイル定義でデータ記憶域へのマップに使っていたデータ メンバが削除された場合は、存在するデータ メンバでプロファイル定義を再マップする必要があります。
  • 削除したデータ メンバは元に戻せません。プロファイル定義でデータ記憶域へのマップに使っていたデータ メンバが削除された場合は、存在するデータ メンバでプロファイル定義を再マップする必要があります。

ここでは、次のトピックについて説明します。

  • プロファイル リソースで新しいデータ ソースを作成する
  • データ ソースにカスタム属性を追加する
  • データ ソースを変更する
  • プロファイル リソースで新しいデータ オブジェクトを追加する
  • データ オブジェクトを変更する
  • プロファイル リソースで新しいデータ メンバを追加する
  • データ メンバを変更する


プロファイル リソースで新しいデータ ソースを作成する

プロファイル データの格納用に新しいデータ ソースを追加するには、プロファイル リソースを使います。プロファイル データをデータ ストアにマップするには、プロファイル データ ソースのパーティションを使います。データ ストアは、OLE DB データベースまたはライトウェイト ディレクトリ アクセス プロトコル (LDAP) ソースのいずれかになります。

プロファイル定義をデータベースまたは LDAP ソースにマップするには、データ ソースを使います。プロファイル定義を複数のデータ ストアにマップするには、データ ソースをパーティションに分割します。データベースまたは LDAP ソースは、データ ソースを作成する前に、作成する必要があります。プロファイル リソースでは、基になるデータ ストアは変更されません。したがって、スキーマの変更は直接データベースまたは LDAP ストアに対して行う必要があります。

データ ソースを作成する場合は、次の点に注意します。

  • 新しいデータ ソースを作成する場合は、少なくとも 1 つのパーティションを作成する必要があります。
  • 1 つのデータ ソース内のパーティションはすべて、同じ種類 (OLE DB データベースまたは LDAP ソース) でなければなりません。
  • 1 つのデータ ソースにマップされるデータ記憶デバイス (OLE DB データベースまたは LDAP ソース) はすべて、同じスキーマを持たなければなりません。
  • Commerce Server データ ソースでは、最大で 128 のパーティションがサポートされています。
  • データ ソースからパーティションを削除することはできません。データ ソースからパーティションを削除する必要がある場合には、データ ソースを削除して、パーティションのない新しいデータ ソースを作成します。
  • データ ソース内の 1 つのパーティションを既定のパーティションとして指定する必要があります。

ここでは、次のトピックについて説明します。

  • プロファイル リソースでサポートされない OLE DB ドライバ
  • SQL Server データベース パーティションを持つ新しいデータ ソースを作成する
  • LDAPv3 準拠のソース パーティションを持つ新しいデータ ソースを作成する


プロファイル リソースでサポートされない OLE DB ドライバ

新しいプロファイル データ ソースを作成するときは、OLE DB Provider を指定する必要があります。[データ リンク プロパティ] ダイアログ ボックスに表示される OLE DB ドライバには、プロファイル リソースでサポートされていないものがあります。次のドライバは使わないでください。

  • Microsoft OLE DB Provider for DTS Packages
  • Microsoft OLE DB Provider for Indexing Services
  • Microsoft OLE DB Provider for Internet Publishing
  • Microsoft OLE DB Simple Packages
  • Microsoft OLE DB Provider for Microsoft Site Server Search
  • Microsoft OLE DB Provider for Commerce Server

これらのいずれかのドライバを [データ リンク プロパティ] ダイアログ ボックスで選択すると、プロバイダが利用できなくなったことを通知する Microsoft Data Link エラー メッセージが表示されることがあります。


SQL Server データベース パーティションを持つ新しいデータ ソースを作成する

SQL Server データベース パーティションを持つ新しいデータ ソースを作成できます。

SQL Server データベース パーティションを持つ新しいデータ ソースを作成するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<サーバー名>_<データベース名>)]、[プロファイル カタログ] の順に展開します。次に、[データ ソース] を右クリックし、[新しいデータ ソース] をクリックします。
  2. [新しいデータ ソース] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | データ ソースのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | データ ソースに対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ ソースの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [次へ] をクリックします。
  4. [データ ソース] ダイアログ ボックスで、[ソースの種類] ボックスの [OLEDB-ANSI プロバイダ] をクリックし、[次へ] をクリックします。
  5. データ ソースをパーティションに分割するには、[パーティション] ダイアログ ボックスで [パーティションに分割されたデータ ソース] チェック ボックスをオンにし、[追加] をクリックします。
  6. [パーティション] ダイアログ ボックスで [編集] をクリックします。
  7. [データ リンク プロパティ] ダイアログ ボックスの [プロバイダ] タブで、データ ソースのプロバイダとして [Microsoft OLE DB Provider for SQL Server] をクリックし、[次へ] をクリックします。
  8. [データ リンク プロパティ] ダイアログ ボックスの [接続] タブで、次の操作を行います。
    項目 | 操作
    [サーバー名を選択または入力します] | ボックスの一覧からサーバー名を選択するか、またはアクセスするデータベースがある場所を入力します。
    [更新] | サーバーの一覧を更新するときにクリックします。
    [Windows NT の統合セキュリティを使用する] | Microsoft Windows NT 上で実行している SQL Server へのセキュリティが設定された (信頼できる) 接続をプロバイダが要求するように指定するときに、このオプションを選択します。
    [特定のユーザー名とパスワードを使用する] | データ ソースへのログイン情報を認証するためのユーザー名とパスワードの指定には、このオプションを選択します。
    [ユーザー名] | データ ソースにログオンする際の認証に使うユーザー ID を入力します。
    [パスワード] | データ ソースにログオンする際の認証に使うパスワードを入力します。
    [パスワードを空にする] | 指定されたプロバイダが接続文字列で空のパスワードを返せるようにするには、このオプションを選択します。
    [パスワードを保存する] | パスワードを接続文字列と共に保存できるようにするには、このオプションを選択します。パスワードが接続文字列に含まれるかどうかは、呼び出し側のアプリケーションの機能によって異なります。パスワードはマスクも暗号化もされずに返され、保存されます。
    [サーバー上のデータベースを選択する] | データ ソースをマップするデータベース名を入力するか、またはボックスの一覧からデータベース名を選択するには、このオプションを選択します。
    [データベース ファイルをデータベース名として添付する] | このオプションは使わないでください。Commerce Server では、Microsoft SQL Server 6.5 またはそれ以前のバージョンはサポートされていません。
    [ファイル名を使用する] | このオプションは使わないでください。Commerce Server では、SQL Server 6.5 またはそれ以前のバージョンはサポートされていません。
    [接続テスト] | 指定されたデータ ソースに接続するときにクリックします。接続に失敗した場合は、正しく設定されているかどうかを確認してください。スペル ミスや大文字と小文字の違いが接続失敗の原因になる場合があります。
  9. [OK] をクリックして、[パーティション] ダイアログ ボックスに戻ります。
  10. [パーティション] ダイアログ ボックスの [パーティション名] ボックスに、パーティションの名前を入力します。このパーティションを既定のパーティションとして指定するには、[既定のパーティション] をクリックし、[次へ] をクリックします。
  11. [完了] をクリックして [パーティション] ダイアログ ボックスに戻ります。
  12. [次へ] をクリックして [カスタム属性] ダイアログ ボックスを開きます。
  13. [完了] をクリックして、ダイアログ ボックスを閉じます。カスタム属性をデータ ソースに追加する場合は、「データ ソースにカスタム属性を追加する」を参照してください。

これで、データ ソースが保存されます。これで、このデータ ソースに、パーティション、カスタム属性、およびデータ オブジェクトを追加できます。


LDAPv3 準拠のソース パーティションを持つ新しいデータ ソースを作成する

LDAPv3 準拠のソース パーティションを持つ新しいデータ ソースを作成できます。

LDAPv3 準拠のソース パーティションを持つ新しいデータ ソースを作成するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<サーバー名>_<データベース名>)]、[プロファイル カタログ] の順に展開します。次に、[データ ソース] を右クリックし、[新しいデータ ソース] をクリックします。
  2. [新しいデータ ソース] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | データ ソースのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | データ ソースに対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ ソースの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [次へ] をクリックします。
  4. [データ ソース] ダイアログ ボックスで、[ソースの種類] ボックスの [LDAPv3 準拠のソース] をクリックし、[次へ] をクリックします。
  5. データ ソースをパーティションに分割するには、[パーティション] ダイアログ ボックスで [パーティションに分割されたデータ ソース] チェック ボックスをオンにし、[追加] をクリックします。
  6. [パーティション] ダイアログ ボックスで [編集] をクリックします。
  7. [LDAP 接続文字列] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー] | LDAP ソースのあるサーバーの名前を入力します。
    [ポート] | ポート名を入力します。既定のポートは 389 です。
  8. [OK] をクリックして、[パーティション] ダイアログ ボックスに戻ります。
  9. [パーティション] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [既定のパーティション] | このパーティションを既定のパーティションに指定するときに選択します。
    [ユーザー名] | LDAP ソースへのアクセスに使用するユーザー名を入力します。Active Directory サーバーを使っている場合は、「ドメイン\ユーザー名」の形式でユーザー名を入力します。
    [パスワード] | LDAP ソースへのアクセスに使用するパスワードを入力します。
  10. [次へ] をクリックして [システム属性] ダイアログ ボックスを開きます。
  11. [システム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [親 URL] | LDAP ディレクトリ ツリーの中でデータを格納する場所を入力します。
    [すべてのユーザーに同じ資格情報を使用] | LDAP ソースにバインドするときに、プロファイル リソースが常に同じ資格情報を使うように指定するには、このオプションを選択します。このオプションが選択されていない場合、プロファイル リソースは現在のユーザーの資格情報を使います。
    [簡易結合の許可] | パスワードをクリア テキストで送信するには、このオプションを選択します。このオプションを選択するとセキュリティが低下しますが、一部のディレクトリ サービスではこの設定が必要です。
    [動的コンテナ] | Internet Locator Service (ILS) などの動的ストアに接続するには、このオプションを選択します。
    [1 つのレベル] | 既定の検索範囲をカレント ディレクトリに設定するには、このオプションを選択します。
    [サブツリー] | 既定の検索範囲をカレント ディレクトリとサブディレクトリに設定するには、このオプションを選択します。
    [ドメイン名] | Active Directory を使っている場合は、サーバーのドメイン名を入力します。
    [参照] | ドメイン名を検索するときにクリックします。
  12. [次へ] をクリックします。
  13. [OK] をクリックして、[パーティション] ダイアログ ボックスに戻ります。
  14. [完了] をクリックして、ダイアログ ボックスを閉じます。

これで、データ ソースが保存されます。これで、このデータ ソースに、パーティション、カスタム属性、およびデータ オブジェクトを追加できます。

関連項目

データ ソースにカスタム属性を追加する

プロファイル リソースについて

プロファイル リソースで新しいデータ オブジェクトを追加する

プロファイル リソースで新しいデータ メンバを追加する

プロファイル リソースでデータ ソースを管理する


データ ソースにカスタム属性を追加する

データ ソースのパーティションにカスタム属性を追加するには、プロファイル リソースを使います。カスタム属性は、アプリケーション固有の属性です。

通常、すべてのプロファイル定義、またはデータ ソースに共通する属性は、ClassDef または SourceDef テーブルに格納されます。しかし、選択された特定のデータ ソース オブジェクトにだけ適用される属性もあります。

たとえば、データ ソースのソート順やデータ ソース内のパーティションを管理したり、メンバ定義やソース定義オブジェクトなどのほかのオブジェクトとの一貫性を保つために、カスタム属性を作成することもできます。

データ ソースのカスタム属性は、プロファイル リソース内でのみ利用できます。ビジネス デスクのプロファイル モジュールでは追加できません。

データ ソースのパーティションにカスタム属性を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[]、[プロファイル カタログ]、[データ ソース] の順に展開します。次に、カスタム属性を追加するパーティションを含むデータ ソースを右クリックし、[プロパティ] をクリックします。
  2. [<データ ソース名> のプロパティ] ダイアログ ボックスの [パーティション] タブで、カスタム属性を追加するパーティションをクリックし、[編集] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [カスタム属性] タブで、[新規] をクリックしてデータ ソースに属性を追加ます。
  4. [カスタム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 属性のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 属性に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を入力します。
  5. [OK] をクリックして、カスタム属性を保存します。
  6. [OK] をクリックして、パーティション情報を保存します。
  7. [OK] をクリックして、[Commerce Server マネージャ] に戻ります。

カスタム属性と共にデータ ソースが保存されます。


データ ソースを変更する

データ ソースのプロパティを変更するには、プロファイル リソースを使います。

データ ソースの次のプロパティを変更できます。

  • 表示名
  • 説明

データ ソースのプログラム上の定義名を変更する場合は、データ ソースを削除し、新しいプログラム上の定義名でデータ ソースを作り直す必要があります。

データ ソースのプロパティの表示名を変更するには

データ ソースを削除するには

データ ソースのプロパティの表示名を変更するには

注

  • データ ソースの表示名は変更できますが、データ ソースのプログラム上の定義名は変更できません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開します。次に、削除するデータ ソースを右クリックし、[削除] をクリックします。
  2. [<データ ソース名> のプロパティ] ダイアログ ボックスの [全般] タブで次の操作を行います。
    項目 | 操作
    [表示名] | データ ソースの名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ ソースの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [OK] をクリックして、変更を保存し、[Commerce Server マネージャ] に戻ります。

変更されたデータ ソースが保存されます。既存のパーティションの接続文字列を変更したり、データ ソース (LDAP または OLE DB) と同じ型の新規パーティションを追加することもできます。

OLE DB-ANSI プロバイダに対して、新しいパーティションを追加するか、または既存のパーティションを編集するには、「新しい SQL Server データ ソースを追加するには」を参照してください。LDAPv3 準拠のソースに対して、新しいパーティションを追加するか、または既存のパーティションを編集するには、「新しい LDAPv3 準拠のソースのデータ ソースを作成するには」を参照してください。

データ ソースを削除するには

注意

  • 削除したデータ ソースは元に戻せません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開します。次に、変更するデータ ソースを右クリックし、[プロパティ] をクリックします。
  2. [データ ソースを削除しますか?] ダイアログ ボックスで [はい] をクリックします。

データ ソース、およびそのすべてのデータ オブジェクトとデータ メンバが削除されます。


プロファイル リソースで新しいデータ オブジェクトを追加する

データ ソースにデータ オブジェクトを追加するには、プロファイル リソースを使います。プロファイル定義のプロパティについて収集されるデータを保存する列を含むデータベースのテーブル (または LDAP ソースのクラス) を選択します。

プロファイル リソースを使ってデータ オブジェクトを作成する前に、データ ソースを作成する必要があります。プロファイル リソースでは、基になるデータ ストアは変更されません。したがって、変更は直接データベースまたは LDAP ストアに対して行う必要があります。また、データ オブジェクトの主キーに当たるデータ メンバを指定する必要があります。

新しいデータ オブジェクトを作成するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、データ オブジェクトを追加するデータ ソースを展開します。次に、[データ オブジェクト] を右クリックし、[新しいデータ オブジェクト] をクリックします。
  2. [新しいデータ オブジェクト] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [オブジェクト名] 対象となるデータ ストアのテーブルまたは LDAP クラスの名前であるデータ オブジェクトを、ボックスの一覧から選択します。

    重要

    プロファイル プロパティのマップに使用する、データ オブジェクトの主キーであるデータ メンバを追加してから、その種類の新しいプロファイルを作成する必要があります。
    [表示名] | データ オブジェクトに対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ オブジェクトの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [OK] をクリックします。

データ オブジェクトが保存されます。これで、このオブジェクトにデータ メンバを追加できます。また、このオブジェクトを使ってプロファイル定義をデータベース列 (または LDAP クラス) にマップできます。

次のデータは、データ ソース パーティションのカスタム属性の一覧です。

カスタム属性 | 説明 | 値
ConnectionCount | データ ストアのプールで確保する接続数を指定します。 | 接続数の最小値は 2 です。この属性を定義しないと、既定値 (10) が使われます。
ConnectionRetryCount | SQL Server 接続に失敗した場合の再試行回数を指定します。 | この属性を定義しないと、既定値 (10) が使われます。
ConnectionRetryWait | 次の試行まで待機する秒数を指定します。 | この属性を定義しないと、既定値 (30 秒) が使われます。

関連項目

プロファイル リソースについて

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースで新しいデータ メンバを追加する

プロファイル リソースでデータ ソースを管理する


データ オブジェクトを変更する

データ オブジェクトの次のプロパティを変更するには、プロパティ リソースを使います。

  • 表示名
  • 説明

データ オブジェクトのプログラム上の定義名を変更する場合は、データ オブジェクトを削除し、新しいプログラム上の定義名でデータ オブジェクトを作り直す必要があります。

データ オブジェクトの表示名と説明を変更するには

データ オブジェクトを削除するには

データ オブジェクトの表示名と説明を変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、削除するデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開し、削除するデータ オブジェクトを右クリックし、[削除] をクリックします。
  2. [<データ オブジェクト名> のプロパティ] ダイアログ ボックスの [全般] タブで次の操作を行います。
    項目 | 操作
    [表示名] | データ オブジェクトの名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ オブジェクトの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [OK] をクリックします。

データ オブジェクトの表示名と説明が変更されます。

注

  • データ オブジェクトの表示名は変更できますが、データ オブジェクトのプログラム上の定義名は変更できません。

データ オブジェクトを削除するには

注意

  • 削除したデータ オブジェクトは元に戻せません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、変更するデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開し、変更するデータ オブジェクトを右クリックし、[プロパティ] をクリックします。
  2. [データ オブジェクトを削除しますか?] ダイアログ ボックスで [はい] をクリックします。

データ オブジェクトがデータ ソースから削除されます。


プロファイル リソースで新しいデータ メンバを追加する

データ メンバをデータ オブジェクトに追加するには、プロファイル リソースを使います。具体的には、プロファイル定義のプロパティについて収集されたデータを格納する場所として、データベース内で表示されるテーブル内の列 (または LDAP ソースで表示されるクラス内の属性) を選択します。

プロファイル定義でプロパティを定義するときには、プロパティで表示されているデータベース テーブルの列 (または LDAP クラスの属性) にプロパティをマップします。Web サイトでユーザーがプロファイル定義のプロパティのデータを入力すると、そのデータは指定されたデータベース列または LDAP 属性に格納されます。プロファイル リソースでは、基になるデータ ストアは変更されません。したがって、変更は直接データベースまたは LDAP ストアに対して行う必要があります。また、主キーになるデータ メンバが存在することを確認してください。

注

  • Commerce Server 2002 では、Unicode 文字列だけがサポートされています。Unicode 形式以外の文字列はサポートされません。

データ メンバを追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、データ メンバを追加するデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開し、データ メンバを追加するデータ オブジェクトを右クリックし、[新しいデータ メンバ] をクリックします。
  2. [新しいデータ メンバ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [メンバ名] 一覧から利用可能なデータメンバを選択します。既にデータ オブジェクトに追加されているデータ メンバは淡色表示され利用できません。一覧内のデータ メンバは、マップ先であり、基になるデータストアの列または LDAP 属性と同じ名前になります。

    新しくデータ メンバを追加する場合 (または一覧に利用できるデータ メンバがない場合) は、基になるデータ ストアに新しい列または属性を作成する必要があります。メンバ名は、そのデータ メンバがマップされる列または属性の名前と一致していなければなりません。メンバ名には、最大 127 文字の英数字とアンダースコア (_) を使用できます。メンバ名にスペースは使用できません。
    [表示名] | アプリケーションで表示するデータ メンバの名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ メンバの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [型] データ メンバのデータ型を選択します。データ型は、そのデータ メンバでマップするプロパティと同じでなければなりません。次のデータ型がサポートされています。
    • Binary (バイナリ)
    • Boolean (ブール値)
    • Currency (通貨)
    • Date/Time (日付/時刻)
    • Number (数値)
    • 文字列
    [複数値] | データ メンバに関連付けられた複数値のコレクションを有効にするには、このオプションを選択します。
    [必須] | このプロパティが Web サイトと Commerce Server ビジネス デスクで必須であることを指定します。ただし、この属性は、プロファイル リソースでは無効です。
    [インデックス付き] | このデータ メンバのデータにインデックスを付けるには、このオプションを選択します。
    [主キー] このデータ メンバを主キーとして指定するには、このオプションを選択します。

    重要

    • 各データ オブジェクトに 1 つずつ、主キーになるデータ メンバを選択する必要があります。
  3. [追加] をクリックします。データ メンバが [新しいデータ メンバ] ダイアログ ボックスのデータ メンバ一覧に表示されます。
  4. [完了] をクリックします。

データ メンバ画面にデータ メンバが表示されます。

関連項目

プロファイル リソースについて

プロファイル リソースの接続文字列を構成する

プロファイル リソースでプロファイル定義を作成する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル リソースでデータ ソースを管理する


データ メンバを変更する

データ メンバの次のプロパティを変更するには、プロパティ リソースを使います。

  • 表示名
  • 説明

データ メンバのプログラム上の定義名を変更するには、データ メンバを削除し、新しいプログラム上の定義名でデータ メンバを作り直す必要があります。

データ メンバの表示名と説明を変更するには

データ メンバを削除するには

データ メンバの表示名と説明を変更するには

注

  • データ メンバの表示名は変更できますが、データ メンバのプログラム上の定義名は変更できません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、削除するデータ メンバを含むデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開し、削除するデータ メンバを含むデータ オブジェクトをクリックします。
  2. データ メンバの一覧で、変更するデータ メンバを右クリックし、[プロパティ] をクリックします。
  3. [<データ メンバ> のプロパティ] ダイアログ ボックスの [全般] タブで次の操作を行います。
    項目 | 操作
    [表示名] | データ メンバの名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | データ メンバの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
  4. [OK] をクリックします。

データ メンバを削除するには

注意

  • 削除したデータ メンバは元に戻せません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、変更するデータ メンバを含むデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開し、変更するデータ メンバを含むデータ オブジェクトをクリックします。
  2. データ メンバの一覧で、削除するデータ メンバを右クリックし、[削除] をクリックします。
  3. [データ メンバを削除しますか?] ダイアログ ボックスで [はい] をクリックします。

データ メンバがデータ ソースから削除されます。

関連項目

プロファイル リソースについて

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースで新しいデータ オブジェクトを追加する

プロファイル リソースで新しいデータ メンバを追加する

2 つのデータ ソースを持つプロファイル定義を作成する


プロファイル リソースでプロファイル定義を管理する

プロファイル定義で、表示名と説明を変更したりカスタム属性を追加したりするには、プロファイル リソースを使います。既存のプロファイル定義をコピーし、プロファイル デザイナ画面で、プロファイル定義の名前と属性を変更して、新しいプロファイル定義を作成することもできます。

Commerce Server 2002 では、Blank ソリューション サイトをアンパックするときに、いくつかのプロファイル定義が用意されます。このプロファイル定義をコピーして、要件に合う新しいプロファイル定義を作成できます。また、必要なくなったプロファイル定義を削除したり、プロファイル定義からカスタム属性を削除したりすることもできます。一度削除したカスタム属性は元に戻せません。誤ってカスタム属性を削除した場合は、再度作成する必要があります。

ここでは、次のトピックについて説明します。

  • プロファイル リソースでプロファイル定義を作成する
  • プロファイル定義にカスタム属性を追加する
  • プロファイル リソースでプロファイル定義を評価する
  • プロファイル リソースでプロファイル定義を埋め込む
  • 2 つのデータ ソースを持つプロファイル定義を作成する

関連項目

プロファイル リソースについて

プロファイル リソースでプロファイル定義を作成する


プロファイル リソースでプロファイル定義を作成する

新しいプロファイル定義を作成するには、プロファイル リソースを使います。たとえば、Web サイトや Commerce Server ビジネス デスクから追加データを利用できるようにするために、ビジネス マネージャから新しいプロファイル定義の作成を求められる場合があります。このような場合は、データ オブジェクトに自動的にマップされるプロファイル定義を作成できます。また、データ オブジェクトにマップされないプロファイル定義を作成することもできます。プロファイル定義を使うことにより、Web サイトを訪問するユーザーについての収集データを定義できます。

プロファイル定義には、カスタム属性を作成できます。たとえば、基になるライトウェイト ディレクトリ アクセス プロトコル (LDAP) ストアでプロファイルを格納する場所を制御するカスタム属性 "defaultParentURL" を追加できます。プロファイル定義にカスタム属性を追加する方法については、「プロファイル定義にカスタム属性を追加する」を参照してください。

データ オブジェクトにマップされる新しいプロファイル定義を追加するには

データ オブジェクトにマップされないプロパティ定義を追加するには

データ オブジェクトにマップされる新しいプロファイル定義を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、新しいプロファイル定義をマップするデータ オブジェクトを含むデータ ソースを展開します。次に、[データ オブジェクト] を展開します。
  2. 新しいプロファイル定義をマップするデータ オブジェクトを右クリックし、[新しいプロファイル定義] をクリックします。
    重要
    • マップされるデータ オブジェクトに主キー データ メンバが存在する必要があります。存在しないと、正しくマップされません。
  3. [新しいプロファイル定義] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいプロファイル定義のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 新しいプロファイル定義に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 新しいプロファイル定義の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  4. [次へ] をクリックして、[カスタム属性] ダイアログ ボックスを開きます。
  5. [完了] をクリックして、ダイアログ ボックスを閉じます。カスタム属性をプロファイル定義に追加する場合は、「プロファイル定義にカスタム属性を追加する」を参照してください。

Commerce Server マネージャの利用可能なプロファイル定義の一覧に、新しいプロファイル定義が表示されます。新しいプロファイル定義には、プロパティが含まれます。これは、プロファイル定義を構築したときに基にしたデータ オブジェクトのデータ メンバにマップされます。

データ オブジェクトにマップされないプロファイル定義を追加するには

  1. [Commerce Server マネージャ]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を右クリックし、[新しいプロファイル定義] をクリックします。
  2. [新しいプロファイル定義] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいプロファイル定義のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 新しいプロファイル定義に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 新しいプロファイル定義の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [次へ] をクリックして、[カスタム属性] ダイアログ ボックスを開きます。
  4. [完了] をクリックして、ダイアログ ボックスを閉じます。カスタム属性をプロファイル定義に追加する場合は、「プロファイル定義にカスタム属性を追加する」を参照してください。

Commerce Server マネージャの利用可能なプロファイル定義の一覧に、新しいプロファイル定義が表示されます。

新しいプロファイル定義にはプロパティが含まれていないので、データ ソースにマップされません。したがって、新しいプロファイル定義にプロパティを追加する必要があります。プロファイル定義にプロパティを追加する方法については、「プロファイル リソースでプロファイル定義にプロパティを追加する」を参照してください。

関連項目

プロファイル リソースについて

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースでプロファイル定義にプロパティを追加する

サイト用語を追加する

プロファイル定義を管理する

プロファイル定義にカスタム属性を追加する


プロファイル定義にカスタム属性を追加する

プロファイル定義にカスタム属性を追加するには、プロファイル リソースを使います。プロファイル プロパティのカスタム属性は、アプリケーション固有の情報を保存するプレースホルダです。たとえば、基になるライトウェイト ディレクトリ アクセス プロトコル (LDAP) ストアでプロファイルを格納する場所を制御するカスタム属性 "defaultParentURL" を追加できます。これらの属性と値の対は、文字列型でなければなりません。プロファイル定義のカスタム属性は、プロファイル リソース内でのみ利用できます。

プロファイル定義にカスタム属性を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、カスタム属性を追加するプロファイル定義を右クリックし、[プロパティ] をクリックします。
  2. [<プロファイル定義名> のプロパティ] ダイアログ ボックスの [カスタム属性] タブで [新規] をクリックして [カスタム属性] ダイアログ ボックスを表示します。
  3. [カスタム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しい属性のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 属性に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を入力します。
  4. [OK] をクリックします。
  5. [OK] をクリックして、[Commerce Server マネージャ] に戻ります。

新しいカスタム属性と共にプロファイル定義が保存されます。

次の表は、プロファイル定義のカスタム属性の一覧です。

カスタム属性 | 説明 | 値
DefaultParentURL | 基になるライトウェイト ディレクトリ アクセス プロトコル (LDAP) ストアの中でプロファイルが格納されている場所を指定します。 | URL
DWClassName | プロファイルがデータをエクスポートする先のデータ ウェアハウス内のオブジェクト (ここではテーブル) の名前を指定します。そのクラス (テーブル) がデータ ウェアハウス内に存在しない場合は、DTS タスクによってそのクラス (テーブル) が作成されます。 | データ ウェアハウス内のテーブルの名前

関連項目

プロファイル リソースについて

プロファイル リソースで新しいデータ ソースを作成する

プロファイル リソースでプロファイル定義にプロパティを追加する

プロファイル定義を管理する


プロファイル リソースでプロファイル定義を評価する

プロファイル定義のマップに使用するデータ メンバの有効性を確認するには、プロファイル リソースを使います。プロファイル定義を評価すると、その定義によって Web サイトで収集されるデータが既存のデータベース列 (または LDAP 属性) に格納されることを確認できます。

注

  • 評価ルーチンでは、プロファイル定義内の各プロパティ データの書き込み、および書き込んだデータの読み取りが順に実行されます。基になるデータ ストアに制約があっても、このルーチンには影響しません。したがって、これらのルーチンが、制約に違反するデータを書き込もうとする可能性があります。このような場合は、評価についての警告メッセージが表示されます。警告の説明を注意深く確認し、プロファイルの有効性を判断してください。

プロファイル定義を評価するには

サイトのすべてのプロファイル定義を検証するには

プロファイル定義を評価するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、評価するプロファイル定義を右クリックし、[プロファイルを評価] をクリックします。

    プロファイル定義が有効である場合は、[有効なプロファイル] ダイアログ ボックスが表示されます。[OK] をクリックします。

    プロファイル定義が有効でない場合は、[無効なプロファイルです] ダイアログ ボックスが表示されます。

  2. 評価を続ける場合は、[はい] 、[OK] の順にクリックして、[無効なプロファイルです] ダイアログ ボックスを閉じます。

    評価を中止する場合は、[いいえ] 、[OK] の順にクリックして、[無効なプロファイルです] ダイアログ ボックスを閉じます。

サイトのすべてのプロファイル定義を検証するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を右クリックします。
  2. [すべてのプロファイルを評価] をクリックします。

    すべてのプロファイル定義が有効である場合は、[有効なプロファイル] ダイアログ ボックスが表示されます。[OK] をクリックします。

    プロファイル定義が有効でない場合は、[無効なプロファイルです] ダイアログ ボックスが表示されます。

  3. (無効なプロファイル定義をスキップして) 評価を続ける場合は、[はい] 、[OK] の順にクリックして、[無効なプロファイルです] ダイアログ ボックスを閉じます。

    評価を中止する場合は、[いいえ] 、[OK] の順にクリックして、[無効なプロファイルです] ダイアログ ボックスを閉じます。

関連項目

プロファイル リソースでプロファイル定義を作成する

プロファイル リソースで新しいデータ メンバを追加する

プロファイル リソースでプロファイル定義にプロパティを追加する

プロファイル リソースでプロファイル定義を管理する

プロファイル リソースでプロファイル プロパティを管理する


プロファイル リソースでプロファイル定義を埋め込む

プロファイルの関連付けには、プロファイル リソースを使用します。関連付けたプロファイルを使って、別のプロファイル定義を持つ関連データを収集できます。たとえば、"住所" プロファイル定義を "ユーザー オブジェクト" プロファイル定義に関連付けると、各ユーザーの住所データを収集できます。Commerce Server ビジネス デスクのプロファイル定義デザイナ モジュールを使って、同じタスクを実行することもできます。"住所" プロファイル定義と "ユーザー オブジェクト" プロファイル定義の埋め込みについては、「埋め込みプロファイル定義」を参照してください。

たとえば、"ユーザー オブジェクト" プロファイル定義に 3 つのプロパティを追加し、それを使って "住所" プロファイル定義の 3 つのインスタンス ("請求先"、"送付先"、"自宅") を参照することができます。このようにすると、"住所" プロファイル定義を使って Web サイトのユーザーの住所情報を収集できます。ユーザーの "住所" プロファイルの名前はユーザー プロファイルに格納されるので、プロファイル内のデータを一緒に Web サイトやレポートに表示できます。

プロファイル定義を埋め込むには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、プロファイル定義を追加するプロファイル定義をクリックします。
  2. プロファイル デザイナ画面の [プロパティ] の一覧で、新しいプロパティを追加するプロパティ グループを展開し、[追加] をクリックします。
  3. [追加 -- Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] をクリックし、[OK] をクリックします。
  4. プロファイル デザイナ画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | ビジネス デスクに表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロパティの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [型] | [型] ボックスの一覧から、プロファイルを選択します。
    [型参照] | 省略記号 [...] ボタンをクリックすると、[プロファイルの選択] ダイアログ ボックスが開きます。[プロファイルの選択] 一覧で、[プロファイル カタログ] を展開し、プロパティに追加するプロファイル定義を選択します。
  5. [OK] をクリックし、[適用] をクリックします。

    プロファイル定義がプロパティに割り当てられます。

  6. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

プロパティの変更と共にプロファイル定義が保存されます。

関連項目

プロファイル定義

プロファイル リソースでプロファイル定義にプロパティを追加する

プロファイル リソースでサイト用語を作成する

Profiling System Objects

Profiles Schema


2 つのデータ ソースを持つプロファイル定義を作成する

以下の手順では、SQL Server データベースと Active Directory データベースの両方にデータを格納するユーザー プロファイル定義を作成します。ここに示す例は、説明のための処理です。この説明の内容をそのまま実際のプロファイルとして使用しないでください。それぞれのビジネス要件に基づいたプロファイル定義をデザインしてください。

注

  • 次の手順を完了するには、Commerce Server 2002 Active Directory ドメイン コントローラがインストールされ、構成されていることが必要です。Active Directory の計画については、「Active Directory 統合の計画」を参照してください。

2 つのデータ ソースを持つプロファイル定義を作成するには、次の作業を行います。

  • 手順 1 : "ProfileService_ADSource" データ ソースを作成する
  • 手順 2 : "Active Directory User Object" を追加する
  • 手順 3 : "Active Directory User Object" データ メンバを追加する
  • 手順 4 : "Active Directory-SQL Server User" プロファイル定義を作成する
  • 手順 5 : "Active Directory-SQL Server User" にプロパティ グループを追加する
  • 手順 6 : "SQL Server" プロパティを "Active Directory-SQL Server User" に追加する

手順 1 : "ProfileService_ADSource" データ ソースを作成する

  1. SQL Server/Commerce Server コンピュータで、[Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[データ ソース] を右クリックし、[新しいデータ ソース] をクリックします。
  2. [新しいデータ ソース] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「UPM_ADSource_test」と入力します。
    [表示名] | 「ProfileService_ADSource_test」と入力します。
    [説明] | 「Active Directory data source」と入力します。
  3. [次へ] をクリックします。
  4. [データ ソース] ダイアログ ボックスで、[ソースの種類] ボックスの [LDAPv3 準拠のソース] をクリックし、[次へ] をクリックします。
  5. [パーティション] ダイアログ ボックスで、[パーティションに分割されたデータ ソース] チェック ボックスがオフになっていることを確認し、[追加] をクリックします。
  6. [パーティション] ダイアログ ボックスで [編集] をクリックします。
  7. [LDAP 接続文字列] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバー] | Active Directory ドメイン コントローラの名前を入力します。この例では、名前は "MSCS01" です。
    [ポート] | 389 以外の値を使う場合を除き、空白のままにしておきます。
  8. [OK] をクリックします。
  9. [パーティション] ダイアログ ボックスの [既定のパーティション] チェック ボックスがオフになっていることを確認します。
  10. [パーティション] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [ユーザー名] | Microsoft Windows ドメイン、および Active Directory ドメインのユーザー名を入力します。「ドメイン\ユーザー名」の形式で入力してください。
    [ユーザー パスワード] | Windows ドメインのパスワードを入力します。
  11. [次へ] をクリックします。
  12. [システム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [親 URL] | Active Directory サーバー内で Active Directory データを格納する場所をルートに対する相対的な場所として入力します。
    [ドメイン名] | Active Directory サーバーのドメイン名を入力します。

    注

    • このダイアログ ボックス内の他のオプションは、既定の設定のままにしてください。ただし、[すべてのユーザーに同じ資格情報を使用] を選択することはできます。このオプションを選択すると、プロファイル リソースが Active Directory サーバーと通信するときには、常に手順 7. で入力された資格情報が使われます。このオプションが選択されていない場合、プロファイル リソースでは、実行中のプロセスの資格情報が使われます。
  13. [次へ] をクリックします。
  14. [カスタム属性] ダイアログ ボックスの [完了] をクリックします。
  15. [パーティション] ダイアログ ボックスの [完了] をクリックします。

[ProfileService_ADStore] データソースが Commerce Server マネージャの [データ ソース] の下に新規ノードとして表示されます。

手順 2 : "Active Directory User Object" を追加する

プロファイル データ オブジェクトを作成して、プロファイル プロパティを Active Directory ユーザー クラスにマップします。

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開し、手順 1. で作成した [ProfileService_ADSource_Test] データ ソースを展開します。次に、[データ オブジェクト] を右クリックし、[新規データ オブジェクト] をクリックします。
  2. [新しいデータ オブジェクト] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [オブジェクト名] | [user] を選択します。これは、Active Directory ユーザー クラスです。
    [表示名] | 「AD User Object」と入力します。
  3. [OK] をクリックします。

[AD User Object] データ オブジェクトが [ProfileService_ADSource_test] データ ソースに追加されます。

手順 3 : "AD User Object" データ メンバを追加する

データ ソースをマップしたデータベースのテーブルの列にプロファイル プロパティ属性をマップするには、プロファイル データ メンバを作成します。この例では、手順 2. で作成した [AD User Object] データ オブジェクトに 9 個のデータ メンバを追加します。ユーザー名、ユーザー パスワード、一般名 (Common Name) に関するのメンバを追加します。

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース] の順に展開します。次に、[ProfileService_ADSource_test]、[データ オブジェクト] の順に展開し、[AD User Object] を右クリックし、[新しいデータ メンバ] をクリックします。
  2. [新しいデータ メンバ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [メンバ名] | [cn] を選択します。
    [表示名] | 「一般名」と入力します。
  3. [追加] をクリックします。

    既定では、[cn] データ メンバは、[必須]、[インデックス付き]、[主キー] に指定されています。

    注

    • SAMAccountname データ メンバは、ユーザー クラス、または Active Directory データ ソースのユーザー クラスから派生したその他のクラスのすべてのインスタンスに必要です。SAMAccountname データ メンバは、文字列のプロパティであり、一意でなければなりません。
  4. 上の手順を繰り返して、以下のデータ メンバを作成します。
    メンバ名 | 表示名 | データ型
    SAMAccountname | Security Account Manager アカウント名 | 文字列
    givenName | 名 | 文字列
    initials | 頭文字 | 文字列
    sn | 姓 | 文字列
    streetAddress | 番地等 | 文字列
    City | 市区町村 | 文字列
    st | 都道府県/州 | 文字列
    postalCode | 郵便番号 | 文字列
    co | 国/地域 | 文字列
  5. [終了] をクリックします。

手順 4 : "Active Directory-SQL Server User" プロファイル定義を作成する

[AD User Object] データ オブジェクトを使って、カスタム プロファイル定義を作成します。作成するのは、ユーザー プロファイル情報を収集するプロファイル定義です。プロパティのほとんどは、SQL Server データベースにマップされます。ただし、ユーザー名とパスワードは、Active Directory にマップされます。

この複数ソースのプロファイルを作成するには、プロパティを選択し、それを複数のデータ ソースのデータ メンバにマップします。

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[データ ソース]、[ProfileService_ADSource_Test]、[データ オブジェクト] の順に展開します。次に、[AD User Object] を右クリックし、[新規作成] をポイントし、[新しいプロファイル定義] をクリックします。
  2. [新しいプロファイル定義] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 「AD_SQL_User」と入力します。
    [表示名] | 「AD-SQL User」と入力します。
    [説明] | 「AD および SQL ソースを使用するユーザー プロファイル定義」と入力します。
  3. [次へ] をクリックします。
  4. [カスタム属性] ダイアログ ボックスの [完了] をクリックします (この例ではカスタム属性は作成しません)。

Commerce Server マネージャの利用可能なプロファイル定義の一覧に、新しいプロファイル定義が表示されます。

手順 5 : "AD-SQL User" にプロパティ グループを追加する

プロファイル定義を見やすくするために、Active Directory と SQL Server のプロパティについて、個別のグループを作成することができます。SQL Server プロパティを [AD-SQL User] プロファイル定義に追加するには、データ グループを作成する必要があります。

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、[AD-SQL User] をクリックします。右側のウィンドウに [プロパティ] 一覧が表示されます。
  2. [追加] をクリックします。
  3. [追加 -- Web ページ ダイアログ] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  4. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「ADGroup」と入力します。
    [表示名] | 「Active Directory」と入力します。
  5. [適用] をクリックします。
  6. [プロパティ] 一覧で、作成した [Active Directory] グループをクリックし、ダイアログ ボックスの一番下の上向き矢印ボタンをクリックします。[プロパティ] 一覧のプロパティ内で、[Active Directory] が一番上に移動するまで矢印ボタンをクリックします。
  7. [Active Directory] の左の矢印をクリックします。矢印が下向きになります。ノードが展開され、グループにプロパティを追加できる状態になります。
  8. [Active Directory] のすぐ下のプロパティをクリックします。ここまでの手順に正確に従っていれば、これは [一般名] プロパティになります。
  9. ダイアログ ボックスの一番下の上向き矢印ボタンをクリックします。[Active Directory] の下に、このプロパティの名前がインデントされて表示されます。このプロパティは [Active Directory] グループに配置されます。
  10. 残りの各プロパティについても、名前をクリックし、上向き矢印ボタンをクリックします。
  11. SQL Server グループをプロファイル定義に追加するには、[追加] をクリック、[グループの新規追加] をクリックして、[OK] をクリックします。
  12. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 「SQLGroup」と入力します。
    [表示名] | 「SQL Server」と入力します。
  13. [適用] をクリックします。
  14. SQL Server グループの名前を左に移動するには、ダイアログ ボックスの一番下の下向き矢印ボタンをクリックします。

追加したプロパティが新しいプロパティ グループに分類されます。

手順 6 : "SQL Server" プロパティを "AD-SQL User" に追加する

ここまでに、2 つのプロパティ グループ "Active Directory" および "SQL Server" を持つプロファイル定義 "AD-SQL User" を作成しました。"Active Directory" プロパティには既にプロパティも追加しています。次に、"SQL Server" プロパティ グループにプロパティを追加する必要があります。

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、[AD-SQL User] をクリックします。
  2. プロファイル定義画面の [プロパティ] 一覧で、[一般名] をクリックします。プロパティ属性が右側に表示されます。
  3. [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [キーの種類] [2 重のキー (主キーと結合キー)] を選択します。プロファイル定義で複数のデータ ソースを使う場合は、両方のソースをマップする結合キーを作成する必要があります。

    重要

    • いったん結合キーを保存すると、その結合キーは変更できなくなります。
    [データへのマップ] | 省略記号 [...] ボタンをクリックします。[データ ソースの選択] ダイアログ ボックスで、[ProfileService_ADSource_test] を展開し、[AD User Object] を展開します。[ProfileService_ADSource] を選択し、[ユーザー オブジェクト] を選択します。[ProfileService_ADSource_test] を展開し、[User] を選択します。
  4. Ctrl キーを押しながら、[ログオン名 (u_logon_name)] ([ユーザー オブジェクト] の下の項目) と [一般名 (cn)] ([AD User Object (AD-SQL User)] の下の項目) の両方を選択し、[OK] をクリックして、[データ ソースの選択] ダイアログ ボックスを閉じます。

    両方のプロパティが [データへのマップ] ボックスに表示されます。

  5. [詳細属性] セクションで [RDN] チェック ボックスをオンにし、[適用] をクリックします。

    結合キーのプロパティが、プロファイルの相対識別名 (RDN) として指定されます。Active Directory などの LDAPv3 ソースにマップされる有効なプロファイルを作成するには、RDN が必要です。ただし、SQL Server などの OLE DB ソースの場合は不要です。

  6. [プロパティ] 一覧で、[SQL Server] の左の矢印をクリックし、[追加] をクリックします。
  7. [追加 -- Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] を選択し、[OK] をクリックします。
  8. [プロパティ] 一覧で、[新規プロパティ 1] をクリックします。

    次のテーブルの新規プロパティを [AD-SQL User] プロファイル定義に追加します。

    名前 | 表示名 | データ型 | データへのマップ
    u_user_security_password | パスワード | 文字列 | パスワード
    i_account_status | アカウントの状態 | Number (数値) | アカウントの状態
    u_user_catalog_set | カタログ セット | 文字列 | ユーザー カタログ セット
    d_data_registered | 登録日 | Date/Time (日付/時刻) | 作成日時
    i_partner_desk_role | 取引先サービス ロール | Number (数値) | 取引先サービス ロール
    d_date_last_changed | 最終変更日時 | Date/Time (日付/時刻) | 最終変更日時
  9. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 上記のテーブルの [名前] 列を参照して、プロパティのプログラム上の定義名を入力します。
    [表示名] | 上記のテーブルの [表示名] 列を参照して、プロパティの表示名を入力します。
    [型] | 上記のテーブルの [型] 列を参照して、プロパティのデータ型をボックスの一覧から選択します。
  10. [詳細属性] セクションで、[データへのマップ] ボックスの省略記号ボタン [...] をクリックします。[プロファイル サービスの SQL ソース] の [ユーザ オブジェクト] に移動し、上記のテーブルの [データへのマップ] 列を参照して、プロパティのデータ メンバを選択します。
  11. [適用] をクリックして、変更をプロパティに適用します。
  12. 手順 7. ～ 11. を繰り返して、上記のテーブルの新規プロパティをすべて追加します。
  13. プロファイル定義を保存するには、ツール バーの [image] をクリックします。

Web サイトで [AD-SQL User] プロファイル定義を使うと、SQL Server データベースと Active Directory データベースの両方にデータが保存されます。


プロファイル定義を変更する

プロファイル定義の表示名と説明は変更できます。カスタム属性も変更できます。

プロファイル定義を変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、削除するプロファイル定義を右クリックし、[削除] をクリックします。
  2. [<プロファイル定義> のプロパティ] ダイアログ ボックスの [全般] タブで、次の操作を行います。
    項目 | 操作
    [表示名] | プロファイル定義の名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロファイル定義の説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [カスタム属性] タブで、次の操作を行います。
    項目 | 操作
    [新規] | [カスタム属性] ダイアログ ボックスを開きます。新しいカスタム属性を追加するときにクリックします。
    [編集] | [カスタム属性] ダイアログ ボックスを開きます。指定したカスタム属性を編集するときにクリックします。
    [削除] | 選択したカスタム属性を削除するときにクリックします。
  4. [カスタム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [表示名] | 属性に対して表示する名前を入力するか、名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を入力または編集します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を入力または変更します。

    注

    • プロファイル定義の表示名は変更できますが、プログラム上の定義名は変更できません。
  5. [OK] をクリックし、変更を保存して [<プロパティ定義名> のプロパティ] ダイアログ ボックスに戻ります。
  6. [適用] をクリックし、[OK] をクリックして、変更を保存し、[Commerce Server マネージャ] に戻ります。

変更されたプロファイル定義が保存されます。


プロファイル定義をコピーする

既存のプロファイル定義をコピーし、新しい名前で保存できます。

注

  • 既存のプロファイル定義をコピーして新しいプロファイル定義を作成する場合は、次の表に示すプロパティを新しいプロファイル定義から削除する必要があります。これらのプロパティは、そのプロパティが当初作成されたプロファイル定義内でのみ有効です。
    既存のプロファイル定義 | プロパティ
    ユーザー オブジェクト | ユーザー カタログ セット
    組織 | 組織カタログ セット

これらのプロパティを新しいプロファイル定義で使う場合は、コピー元のプロファイル定義に含まれていたプロファイル属性と同じ属性を使ってプロパティを作り直すことができます。新しいプロパティの作成については、「プロファイル定義にプロパティを追加する」を参照してください。

プロファイル定義をコピーするには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、コピーするプロファイルを右クリックし、[プロファイルのコピーの作成] をクリックします。
  2. [プロファイル定義のコピー] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | プロファイル定義のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | プロファイル定義に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロファイル定義の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  3. [次へ] をクリックします。
  4. [カスタム属性] ダイアログ ボックスの [新規] をクリックします。
  5. [カスタム属性] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 属性のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 属性に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を入力します。
  6. [OK] をクリックして、プロファイル定義を保存します。
  7. [完了] をクリックしてプロファイル定義を保存し、[Commerce Server マネージャ] に戻ります。

新しいプロファイル定義が保存されます。


プロファイル定義を削除する

注意

  • 誤ってプロファイル定義を削除した場合は、再び作成する必要があります。削除したプロファイル定義は元に戻せません。

プロファイル定義を削除するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、変更するプロファイル定義を右クリックし、[プロパティ] をクリックします。
  2. [プロイファイルを削除しますか?] ダイアログ ボックスで [はい] をクリックします。

プロファイル定義がプロファイル リソースから削除されます。

プロファイル定義のカスタム属性を削除するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、カスタム属性を削除するプロファイル定義を右クリックし、[プロパティ] をクリックします。
  2. [<プロパティ名> のプロパティ] ダイアログ ボックスの [カスタム属性] タブで、削除する属性をクリックし、[削除] をクリックします。

カスタム属性がプロファイル定義から削除されます。


プロファイル リソースでプロファイル プロパティを管理する

プロファイル プロパティを変更、整理、マップ、および削除して、Web サイトで収集するデータを更新するには、プロファイル リソースを使います。プロファイル プロパティのカスタム属性の変更と削除もできます。

ここでは、次のトピックについて説明します。

  • プロファイル プロパティを変更する
  • プロファイル プロパティを整理する
  • プロファイル定義からプロパティを削除する
  • プロファイル プロパティのカスタム属性を変更する
  • プロファイル プロパティのカスタム属性を削除する
  • プロファイル プロパティを格納場所にマップする


プロファイル プロパティを変更する

プロファイル プロパティを変更して Web サイトで収集するデータを更新するには、プロファイル リソースを使います。たとえば、Web サイトを訪問するユーザーが住んでいる国/地域についてのデータの収集に使用するプロパティを持つプロファイル定義を作成したとします。プロファイル プロパティで収集したデータを表示したところ、ユーザーから有用な居住地データを収集する方法として、文字列型のプロパティはあまり適していないことがわかりました。このような場合は、もっと有用なデータが収集されるように、プロファイル デザイナ画面でプロパティの属性を変更できます。

プロファイル プロパティを変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、変更するプロパティを含むプロファイル定義をクリックします。
  2. [プロパティ] 一覧で、変更するプロパティを含むプロパティ グループを展開し、変更するプロパティをクリックします。

    または、変更するプロパティ グループをクリックします。

  3. プロファイル デザイナ画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [表示名] | Commerce Server ビジネス デスクに表示する名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロパティの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
    [型] | プロパティのデータ型を選択します。既定のプロパティのデータ型は [文字列] です。この属性のプロパティのデータ型は、この属性がマップされるデータ メンバの型と一致する必要があります。
    [型参照] | プロパティ定義に追加するサイト用語またはプロファイルを選択するには、省略記号 [...] ボタンをクリックします。この機能は、[型] で [サイト用語] または [プロファイル] を選択した場合にのみ利用できます。
  4. このプロパティをビジネス デスクで利用する場合は、プロファイル デザイナ画面の [詳細属性] セクションで [アクティブ] をクリックします。非アクティブなプロパティはビジネス デスクに表示されません。
  5. [データへのマップ] ボックスの省略記号 [...] ボタンをクリックして [データ ソースの選択] ダイアログ ボックスを開き、プロパティがマップするデータ メンバをクリックします。
  6. [データ ソースの選択] ダイアログ ボックスで、プロパティをマップするデータ メンバを含むデータ オブジェクトを含むデータ ソースを展開します。
  7. プロパティをマップするデータ メンバを含むデータ オブジェクトを展開し、そのデータ メンバをクリックします。
  8. [OK] をクリックします。
  9. プロファイル デザイナ画面の [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [キーの種類] | ボックスの一覧からキーの種類を選択します。各プロファイル定義には、主キーとなるプロパティと結合キーとなるプロパティ、または 2 重のキー (主キーと結合キーの両方) となるプロパティが必要です。
    [必須] | このプロパティが Web サイトとビジネス デスクで必須であることかどうかを指定します。ただし、この属性は、プロファイル リソースでは無効です。キーの種類を選択した場合、この属性は読み取り専用です。
    [データウェアハウスにエクスポート] このプロパティが Commerce Server データ ウェアハウスにインポートされるようにするには、このオプションを選択します。エクスポートできるのは、マップされたプロパティだけです。

    複数値で Boolean 型のプロパティ、または Binary 型、長い文字列型、Password 型のプロパティはエクスポートできません。
    [キャッシュ読み込みの遅延] | このプロパティが、プロファイルを取得したときには読み込まれず、このプロパティそのものに対してアクセスが行われたときに読み込まれるようにするには、このオプションを選択します。
    [複数値] | このプロパティに関連付けられた複数値のコレクションを有効にするには、このオプションを選択します。プロパティのキーの種類を選択した場合、この値は選択できせん。
    [検索可能] | 基になるデータ ストア内でこのプロパティにインデックスを付けて、[検索条件] の項目として、このプロパティを検索できるようにするには、このオプションを選択します。
    [RDN] | ディレクトリ ストアの相対識別名 (RDN) を入力します。このプロパティのマップ先が、基になるストア内の LDAP クラスの RDN 属性である場合には、この値を設定します。
    [ハッシュ キー] 複数のデータ ストア パーティションにプロファイルのインスタンスを配布する際に、このプロパティが使われるようにするには、このオプションを指定します。

    パーティションに分割されていないデータ ソースでは、このプロパティは読み取り専用です。プロファイルを取得するには、このキーに対するクエリを実行する必要があります。
  10. [適用] をクリックします。
  11. プロファイル定義を保存するには、ツール バーの [image] をクリックします。

変更されたプロファイル定義が保存されます。


プロファイル プロパティを整理する

プロパティとプロパティ グループは、[プロパティ] ボックスの一覧で上下に移動して整理することができます。たとえば、プロパティ定義に 3 つのプロパティ グループを追加した場合、既存のプロパティを [プロパティ] 一覧で上下に移動して、作成したプロパティ グループ内に既存のプロパティを適切に配置することができます。

プロファイル プロパティを整理するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、整理するプロパティを含むプロファイル定義をクリックします。
  2. [プロパティ] 一覧で、移動するプロパティまたはプロパティ グループをクリックし、上向き矢印ボタンと下向き矢印ボタンを使って、一覧内で上下に移動します。
  3. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

プロパティ グループおよびプロパティの順序が変更されたプロファイル定義が保存されます。


プロファイル定義からプロパティを削除する

不要になったプロパティとプロパティ グループは、プロファイル定義から削除できます。たとえば、プロファイル定義に 7 個のプロパティを追加した後で、Web サイトで必要なのは 6 個だけだとわかった場合などです。プロパティ グループを削除すると、そのグループ内のプロパティもすべて削除されます。

プロファイル定義からプロパティを削除するには

注意

  • 削除したプロファイル定義は元に戻せません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、プロパティを削除するプロファイル定義をクリックします。
  2. [プロパティ] 一覧で、削除するプロパティまたはプロパティ グループをクリックし、[削除] をクリックします。
  3. [削除] ダイアログ ボックスで [OK] をクリックします。
  4. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

プロファイル定義が保存されます。保存された定義には、削除したプロパティまたはプロパティ グループは含まれていません。


プロファイル プロパティのカスタム属性を変更する

プロパティのカスタム属性は変更できます。属性の表示名、説明、または値の変更が必要な場合は、カスタム属性を変更できます。

プロファイル プロパティのカスタム属性を変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、カスタム属性を変更するプロパティを含むプロファイル定義をクリックします。
  2. [プロパティ] 一覧で、変更するカスタム属性を含むプロパティをクリックします。
  3. プロファイル デザイナ画面の [カスタム属性] セクションで、[編集] をクリックします。
  4. プロファイル デザイナ画面の [カスタム属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 属性のプログラム上の定義名を編集します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 属性に対して表示する名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を編集します。
  5. [確認] をクリックし、次に [適用] をクリックします。
  6. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

変更されたプロファイル定義が保存されます。


プロファイル プロパティのカスタム属性を削除する

プロパティのカスタム属性は、編集または削除できます。属性の表示名、説明、または値の変更が必要な場合は、カスタム属性を編集できます。誤ってカスタム属性を削除した場合は、再び作成する必要があります。削除したカスタム属性は元に戻せません。

プロファイル プロパティのカスタム属性を削除するには

注意

  • 削除したカスタム属性は元に戻せません。
  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、カスタム属性を削除するプロパティを含むプロファイル定義をクリックします。
  2. [プロパティ] 一覧で、削除するカスタム属性を含むプロパティをクリックします。
  3. プロファイル デザイナ画面の [カスタム属性] セクションで、削除するカスタム属性をクリックし、[削除] をクリックします。

    カスタム属性がプロファイル定義から削除されます。

  4. [適用] をクリックします。
  5. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

変更されたプロファイル定義が保存されます。

関連項目

プロファイル リソースについて

プロファイル定義にプロパティを追加する


プロファイル プロパティを格納場所にマップする

Web サイトでユーザーが入力したデータを適切な場所にマップするには、プロファイル プロパティのデータ メンバを使います。たとえば、ユーザーが "ユーザー オブジェクト" プロファイル定義の "名" プロパティに入力した名は、"名" プロパティのデータメンバで指定されたデータベース列に格納されます。

1 つのプロファイル定義からのプロファイル プロパティを、異なる種類のデータ ソースからのデータ メンバにマップできます。マップするデータ オブジェクトに主キー データ メンバが存在することを確認してください。

プロファイル プロパティを格納場所にマップするには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、格納場所にマップするプロパティを含むプロファイル定義をクリックします。
  2. プロファイル デザイナ画面の [プロパティ] 一覧で、マップするプロパティが含まれているプロパティ グループを展開し、プロパティをクリックします。
  3. プロファイル デザイナ画面の [詳細属性] セクションで、[データへのマップ] ボックスの省略記号ボタン [...] をクリックし、[データ ソースの選択] ダイアログ ボックスを開きます。
  4. [データ ソースの選択] ダイアログ ボックスで、プロパティをマップするデータ メンバを含むデータ オブジェクトを含むデータ ソースを展開します。
  5. プロパティのマップに使用するデータ メンバを含むデータ オブジェクトを展開し、そのデータ メンバをクリックして、[OK] をクリックします。
  6. プロファイル デザイナ画面の [詳細属性] セクションで、[エクスポート日時] をクリックし、このプロパティが Commerce Server のデータ ウェアハウスにエクスポートされるように指定します。エクスポートできるのは、マップされたプロパティだけです。

    注

    • 複数値で Boolean 型のプロパティ、または Binary 型、長い文字列型、Password 型のプロパティはエクスポートできません。
  7. [適用] をクリックします。

プロファイル プロパティ データが、指定したデータ メンバに格納され、データ ウェアハウスにインポートされます。

データをデータ ウェアハウス内のどこにインポートするかを指定する場合は、プロファイル定義に DWClassName カスタム属性を追加し、プロファイル プロパティに DWMemberName カスタム属性を追加する必要があります。

関連項目

プロファイル プロパティのカスタム属性

2 つのデータ ソースを持つプロファイル定義を作成する


プロファイル リソースでプロファイル定義にプロパティを追加する

新しいプロパティ、新しいプロパティ グループ、およびカスタム属性をプロファイル定義に追加するには、プロファイル リソースを使います。

ここでは、次のトピックについて説明します。

  • プロファイル定義に新しいプロパティを追加する
  • プロファイル定義に新しいプロパティ グループを追加する
  • プロファイル プロパティにカスタム属性を追加する


プロファイル定義に新しいプロパティを追加する

プロファイル定義にプロパティを追加するには、プロファイル リソースを使います。プロファイル定義で収集されるデータは、プロパティによって決まります。たとえば、"住所" プロファイル定義を作成する場合、"市町村" というプロパティをプロファイル定義に追加しますCommerce Server ビジネス デスクのプロファイル デザイナ モジュールを使って、プロファイル定義にプロパティを追加することもできます。プロファイル デザイナ モジュールの使用の詳細については、「ビジネス デスク プロファイル」を参照してください。

プロファイル定義に新しいプロパティを追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、プロパティを追加するプロファイル定義をクリックします。
  2. プロファイル デザイナ画面の [プロパティ] 一覧から、追加するプロパティを関連付けるプロパティ グループをクリックし、[追加] をクリックします。
  3. [追加] ダイアログ ボックスで、[プロパティの新規追加] を選択し、[OK] をクリックします。
  4. プロファイル デザイナ画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティのプログラム序の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | ビジネス デスクに表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロパティの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [型] | ボックスの一覧からプロパティのデータ型を選択します。既定のプロパティのデータ型は [文字列] です。
    [型参照] | プロパティのデータ型が Site Term と Profile の場合には必須です。プロパティ定義に追加するサイト用語またはプロファイルを選択するには、省略記号 [...] ボタンをクリックします。この機能は、プロパティのデータ型に Site Term または Profile を選択した場合にのみ利用できます。
  5. プロファイル デザイナ画面の [詳細属性] セクションで [アクティブ] チェック ボックスをオンにして、このプロパティをビジネス デスクで利用できるようにします。非アクティブなプロパティはビジネス デスクに表示されません。
  6. [データへのマップ] ボックスの省略記号ボタン [...] をクリックし、[データ ソースの選択] ダイアログ ボックスを開きます。
  7. [データ ソースの選択] ダイアログ ボックスで、プロパティをマップするデータ メンバを含むデータ オブジェクトを含むデータ ソースを展開します。
  8. プロパティのマップに使用するデータ メンバを含むデータ オブジェクトを展開し、そのデータ メンバをクリックして、[OK] をクリックします。
  9. プロファイル デザイナ画面の [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [キーの種類] | ボックスの一覧からキーの種類を選択します。各プロファイル定義には、主キーとなるプロパティと結合キーとなるプロパティ、または 2 重のキー (主キーと結合キーの両方) となるプロパティが必要です。
    [必須] | このプロパティが Web サイトとビジネス デスクで必須であることかどうかを指定します。ただし、この属性は、プロファイル リソースでは無効です。キーの種類を選択した場合、この属性は読み取り専用です。
    [データウェアハウスにエクスポート] このプロパティが Commerce Server データ ウェアハウスにインポートされるようにするには、このオプションを選択します。エクスポートできるのは、マップされたプロパティだけです。

    複数値で Boolean 型のプロパティ、または Binary 型、長い文字列型、Password 型のプロパティはエクスポートできません。
    [キャッシュ読み込みの遅延] | このプロパティが、プロファイルを取得したときには読み込まれず、このプロパティそのものに対してアクセスが行われたときに読み込まれるようにするには、このオプションを選択します。
    [複数値] | このプロパティに関連付けられた複数値のコレクションを有効にするには、このオプションを選択します。プロパティのキーの種類を選択した場合、この値は選択できせん。
    [検索可能] | 基になるデータ ストア内でこのプロパティにインデックスを付けて、[検索条件] の項目として、このプロパティを検索できるようにするには、このオプションを選択します。
    [RDN] | ディレクトリ ストアの相対識別名 (RDN) を入力します。このプロパティのマップ先が、基になるストア内の LDAP クラスの RDN 属性である場合には、この値を設定します。
    [ハッシュ キー] 複数のデータ ストア パーティションにプロファイルのインスタンスを配布する際に、このプロパティが使われるようにするには、このオプションを指定します。

    パーティションに分割されていないデータ ソースでは、このプロパティは読み取り専用です。プロファイルを取得するには、このキーに対するクエリを実行する必要があります。
  10. [適用] をクリックします。
  11. プロファイル定義を保存するには、ツール バーの [image] をクリックします。

プロファイル定義が新しいプロパティと共に保存されます。


プロファイル定義に新しいプロパティ グループを追加する

新しいプロパティ グループを作成して、プロパティを整理することができます。たとえば、"ライフスタイル"、"意見"、"学歴"、"嗜好"という 4 種類のカテゴリに関連するユーザー プロファイル定義に、50 個のプロパティを追加する場合は、4 つのプロパティ グループを作成します。カテゴリごとに 1 つのプロパティ グループを作成し、各カテゴリに属するプロパティを適切なプロパティ グループとして整理できます。各プロパティ グループのプロパティを表示するかどうかを選択できます。

プロファイル定義に新しいプロパティ グループを追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、プロパティ グループを追加するプロファイル定義をクリックします。
  2. プロファイル デザイナ画面で、[追加] をクリックします。
  3. [追加 -- Web ページ ダイアログ] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  4. プロファイル デザイナ画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティ グループのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | ビジネス デスクに表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | プロパティの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
  5. [適用] をクリックします。
  6. プロファイル定義を保存するには、ツール バーの [image] をクリックします。

新しいプロパティ グループと共にプロファイル定義が保存されます。このグループには、プロパティを移動したり、新しいプロパティを追加することができます。


プロファイル プロパティにカスタム属性を追加する

プロファイル リソースでは、各プロパティに、プロパティ名 (例 : "市町村" ) やプロパティのデータ型 (例 : "文字列") などのプロパティの特性を格納する属性が提供されています。プロファイル リソースによって提供されるプロパティ属性のほかに、プロパティにカスタム属性を定義することもできます。たとえば、Web サイトでのプロパティの使用方法を制御するカスタム属性を作成できます。

たとえば、Secure Socket Layer (SSL) が有効なサイトで、プロファイル定義を変更するためにウィジェットの仮想ディレクトリにアクセスする場合は、HTTPS に変更します。

プロファイル プロパティにカスタム属性を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、カスタム属性を追加するプロパティを含むプロファイル定義をクリックします。
  2. プロファイル デザイナ画面の [プロパティ] の一覧で、カスタム属性を追加するプロパティをクリックします。
  3. プロファイル デザイナ画面の [カスタム属性] セクションで、[新規] をクリックします。
  4. プロファイル デザイナ画面の [カスタム属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | カスタム属性のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 属性に対して表示する名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
    [説明] | 属性の説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
    [値] | 属性の値を入力します。
  5. [確認] をクリックし、次に [適用] をクリックします。
  6. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

カスタム属性と共にプロファイル定義が保存されます。


暗号化されたプロファイル プロパティを管理する

ここでは、重要なデータのセキュリティを確保するサイトを作成するために必要な構成要素のうち、その多くの部分について説明します。キー管理の部分については、説明していません。

重要

  • Commerce Server には、キー管理システムは含まれていません。暗号化に使用する公開キーと秘密キーを生成、格納、および取得するためのキー管理システムを設計し、作成する必要があります。アプリケーションにセキュリティを設定するには、この重要な問題を適切に処理する必要があります。

Commerce Server 2002 は、プロファイル プロパティの暗号化を有効にするために、非対称型の暗号化と一方向のハッシュをサポートしています。

非対称型の暗号化を使うには、通常は次の作業を行います。

  • 暗号化が可能なプロファイル プロパティを、ビジネス デスクを使って追加します。
  • 公開キーと秘密キーを生成します。
  • 次の処理を行うようにアプリケーション コードを修正します。
    • 暗号化の処理に使われるトークンをプロファイル サービスと Commerce Server OLE DB Provider に与える。
    • プロパティを暗号化する。
    • プロパティの暗号化を解除する。
  • 新しい公開キーと秘密キーにデータを移行します。データの移行については、ここでは説明しまていせん。

一方向のハッシュは、パスワードなど、暗号化を解除する必要がないデータを暗号化するために使用します。暗号化された値が格納された後、データと格納された値の文字列比較にハッシュ アルゴリズムが使われます。

ここでは、次のトピックについて説明します。

  • 暗号化されたプロパティをプロファイル サービスに追加する
  • 公開キーと秘密キーを生成する
  • 公開キー、秘密キー、およびキー インデックス トークンの値を追加する
  • 暗号化されたプロパティを持つプロファイル インスタンスを作成および取得する
  • 一方向のハッシュ : ユーザー入力をハッシュされた値に変換して比較する
  • 秘密キーの暗号化に関する重要事項


暗号化されたプロパティをプロファイル サービスに追加する

次に、暗号化が可能な新しいプロファイル プロパティを追加する手順を示します。

注意

  • 既存のデータのプロパティは、暗号化できるように設定しないでください。暗号化できるように設定した場合は、既存のデータが失われます。

手順 1 : キー インデックス用に新しいプロパティを追加する

手順 2 : プロファイル レベルのカスタム属性を追加する

手順 3 : 暗号化されたプロパティをプロファイルに追加する

手順 1 : キー インデックス用に新しいプロパティを追加する

  1. Commerce Server マネージャを開きます。
  2. [Commerce Server マネージャ]、[グローバル リソース]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、[ユーザー オブジェクト] を右クリックします。
  3. 右側のウィンドウで、[プロパティ] 一覧の [プロファイル システム] をクリックします。
  4. 右側のウィンドウで [追加] をクリックします。
  5. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] を選択します。
  6. [OK] をクリックします。
  7. [属性] セクションで、次を入力します。
    項目 | 操作
    [名前] | 名前を入力します (KeyIndex など)。
    [表示名] | [カスタム属性] タブに表示される名前を入力します (KeyIndex など)。
    [説明] | KeyIndex カスタム属性の説明を入力します。
    [型] | [数値] を選択します。
    [型参照] | [なし] を選択します。結合キー、主キー、2 重のキー、またはハッシュ キーにすることはできません。
  8. [詳細属性] セクションをクリックし、次を入力します。
    項目 | 操作
    [アクティブ] | [はい] チェック ボックスをオフにします。
    [データへのマップ] | Number 型のデータ メンバがまだ作成されていない場合は、省略記号 [...] ボタンをクリックして作成します。
  9. [適用] をクリックし、ツール バーの 保存 をクリックします。

手順 2 : プロファイル レベルのカスタム属性を追加する

  1. プロファイル (たとえば User Object) を右クリックし、[プロパティ] を選択します。
  2. [カスタム属性] タブをクリックします。
  3. [新規] をクリックします。
  4. [カスタム属性] ダイアログ ボックスで、次を入力します。
    項目 | 操作
    [名前] | 「KeyIndex」を入力します。
    [表示名] | 表示される名前を入力します (KeyIndex など)。
    [説明] | KeyIndex カスタム属性の説明を入力します。
    [値] 「Key Index」を入力します。

    「手順 1 : キー インデックス用に新しいプロパティを追加する」で作成したプロファイルと同じプロパティ名にする必要があります。
  5. [カスタム属性] ダイアログ ボックスで、[OK] をクリックします。
  6. ユーザー オブジェクトのプロパティ] ダイアログ ボックスで [適用] をクリックし、[OK] をクリックします。

手順 3 : 暗号化されたプロパティをプロファイルに追加する

  1. 右側のウィンドウで [追加] をクリックします。
  2. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] を選択します。
  3. [OK] をクリックします。
  4. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティ名を入力します。
    [表示名] | 表示される名前を入力します。
    [説明] | KeyIndex カスタム属性の説明を入力します。
    [型] | [Password] または [文字列] を選択します。
  5. [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [データへのマップ] | 省略記号 [...] ボタンをクリックして、プロパティをデータ メンバにマップします。
    [キーの種類] 空欄のままにします。

    キーの種類を、一意キー、結合キー、主キー、2 重のキー、またはハッシュ キーにすることはできません。
    [暗号化] | ボックスの一覧から、暗号化の種類のうち、いずれか 1 つを選択します。
    [データウェアハウスにエクスポート] | [はい] チェック ボックスをオフにします。
    [複数値] | 省略可。
    [検索可能] | [はい] チェック ボックスをオフにします。
    [ハッシュ キー] | [はい] チェック ボックスをオフにします。

    注

    • [カスタム属性] セクションで、暗号化プロパティは表示列または表示名として設定することはできません (プロファイル エディタ専用)。
    • カスタム属性は、EncryptionType (大文字小文字の区別なし) の名前でプロパティ レベルで作成することができません。
    • 暗号化されたプロパティの長さは、Unicode 文字で 795 文字までです。
  6. [適用] をクリックし、ツール バーの 保存 をクリックします。


公開キーと秘密キーを生成する

Commerce Server 2002 では、RSA 公開キーのキー交換アルゴリズムを使って非対称型の暗号化が実行されます。キーの長さは 512 ビットで、Cryptographic Service Provider (CSP) として Microsoft Enhanced Cryptographic Provider が使われます。

次のサンプル コードは、Microsoft Windows CryptoAPI ルーチンを使って公開キーと秘密キーを生成する方法を示しています。

CryptoHelper.h
 #define _WIN32_WINNT 0x0400
#include <windows.h>
#include <wincrypt.h>
// Helper class definition to generate and export Public/Private keys
// for Asymmetric encryption. The semantics for usage are:
// Call AcquireContext with a container name, call
// GenerateKeyPair next and then  call ExportPublicKey or
// ExportPrivateKey.
class CryptoHelper
{
private:
       HCRYPTPROV    m_hCryptProv;
public:
       HCRYPTKEY     m_hCryptKey;
       CryptoHelper();
       ~CryptoHelper();
       HRESULT AcquireContext(LPCTSTR wszContainerName);
       HRESULT GenerateKeyPair();

       HRESULT ExportPublicKey(BYTE **ppPublicKey, DWORD &cbKeySize);;
       HRESULT ExportPrivateKey(BYTE **ppPrivateKey, DWORD &cbKeySize);
};
CryptoHelper.cpp

#include "CryptoHelper.h"
// The RSA public-key key exchange algorithm
#define ENCRYPT_ALGORITHM         CALG_RSA_KEYX
// The high order WORD 0x0200 (decimal 512)
// determines the key length in bits.
#define KEYLENGTH                 0x02000000
//--------------------------------------------------------------------
// The constructor initializes the member variables
// to NULL.
//--------------------------------------------------------------------
CryptoHelper::CryptoHelper()
{
       m_hCryptProv = NULL;
       m_hCryptKey   = NULL;
}
//--------------------------------------------------------------------
// The destructor releases the handles acquired
// when an object goes out of scope.
//--------------------------------------------------------------------
CryptoHelper::~CryptoHelper()
{
       if (m_hCryptProv)
       {
              CryptReleaseContext(m_hCryptProv,0);
              m_hCryptProv = NULL;
       }
       if (m_hCryptKey)
              m_hCryptKey = NULL;
}

//--------------------------------------------------------------------
// This method calls the CryptAcquireContext function
// to get a handle to a key container owned by the the
// Microsoft Enhanced Cryptographic Provider.
//--------------------------------------------------------------------
HRESULT CryptoHelper::AcquireContext(LPCTSTR wszContainerName)
{
       HRESULT       hr = S_OK;
       DWORD         dwErrCode;
// Release a previously acquired handle to the key container.
if (m_hCryptProv != NULL)
       {
              CryptReleaseContext(m_hCryptProv,0);
              m_hCryptProv = NULL;
       }
// Release a previously acquired handle to key-pair.
       if (m_hCryptKey != NULL)
              m_hCryptKey = NULL;
       // Attempt to acquire a context and a key container.
// The context will use Microsoft Enhanced Cryptographic
       // Provider for the RSA_FULL provider type.
       if(!CryptAcquireContext(&m_hCryptProv,
                               wszContainerName,
                               MS_ENHANCED_PROV,
                               PROV_RSA_FULL,
    CRYPT_MACHINE_KEYSET))
       {
         // An error occurred in acquiring the context. This could mean
         // that the key container requested does not exist. In this case,
        // the function can be called again to attempt to create a new key
              // container.
              if (GetLastError() == NTE_BAD_KEYSET)
              {
                     if(!CryptAcquireContext(&m_hCryptProv,
                                            wszContainerName,
                                            MS_ENHANCED_PROV,   PROV_RSA_FULL,
                                            CRYPT_MACHINE_KEYSET|CRYPT_NEWKEYSET))
                     {
                           dwErrCode = GetLastError();
                            return HRESULT_FROM_WIN32(dwErrCode);
                     }
              }
              else
              {
                     dwErrCode = GetLastError();
                     return HRESULT_FROM_WIN32(dwErrCode);
              }
       }
       return hr;
}
//--------------------------------------------------------------------

// This method calls the CryptGenKey function to get a handle to an

// exportable key-pair. The key-pair is  generated with the RSA public-key
// key exchange algorithm using Microsoft Enhanced Cryptographic Provider.
//--------------------------------------------------------------------
HRESULT CryptoHelper::GenerateKeyPair()
{
       HRESULT       hr = S_OK;
       DWORD         dwErrCode;
       // If the handle to key container is NULL, fail.
if (m_hCryptProv == NULL)
              return E_FAIL;
// Release a previously acquired handle to key-pair.
if (m_hCryptKey)
              m_hCryptKey = NULL;
       // Call the CryptGenKey method to get a handle
       // to a new exportable key-pair.
if(!CryptGenKey(m_hCryptProv,
                ENCRYPT_ALGORITHM,
   KEYLENGTH | CRYPT_EXPORTABLE,
   &m_hCryptKey))
       {
              dwErrCode = GetLastError();
              return HRESULT_FROM_WIN32(dwErrCode);
       }
       return hr;
}
//--------------------------------------------------------------------
// This method calls the CryptExportKey function to get the Public key
// in a byte array. The byte array is allocated on the heap and the size
// of this is returned to the caller. The caller is responsible for releasing // this memory using a delete call.
//--------------------------------------------------------------------
HRESULT CryptoHelper::ExportPublicKey(BYTE **ppPublicKey, DWORD &cbKeySize)
{
       HRESULT hr = S_OK;
       DWORD    dwErrCode;
       DWORD dwBlobLen;
       BYTE *pbKeyBlob = NULL;
       // If the handle to key container is NULL, fail.
       if (m_hCryptKey == NULL)
              return E_FAIL;
       // This call here determines the length of the key
       // blob.
       if(!CryptExportKey(
                 m_hCryptKey,
                 NULL,
                 PUBLICKEYBLOB,
                 0,
                 NULL,
                 &dwBlobLen))
       {
              dwErrCode = GetLastError();
              return HRESULT_FROM_WIN32(dwErrCode);
       }
       // Allocate memory for the pbKeyBlob.
       if((pbKeyBlob = new BYTE[dwBlobLen]) == NULL)
       {
              return E_OUTOFMEMORY;
       }
       // Do the actual exporting into the key BLOB.
       if(!CryptExportKey(
                 m_hCryptKey,
                 NULL,
                 PUBLICKEYBLOB,
                 0,
                 pbKeyBlob,
                 &dwBlobLen))
       {
              delete pbKeyBlob;
              dwErrCode = GetLastError();
              return HRESULT_FROM_WIN32(dwErrCode);
       }
       else
       {
               *ppPublicKey = pbKeyBlob;
               cbKeySize = dwBlobLen;
       }
       return hr;
}
//--------------------------------------------------------------------
// This method calls the CryptExportKey function to get the Private key
// in a byte array. The byte array is allocated on the heap and the size
// of this is returned to the caller. The caller is responsible for releasing // this memory using a delete call.
//--------------------------------------------------------------------
HRESULT CryptoHelper::ExportPrivateKey(BYTE **ppPrivateKey, DWORD &cbKeySize)
{
       HRESULT       hr = S_OK;
       DWORD         dwErrCode;
       DWORD dwBlobLen;
       BYTE *pbKeyBlob;
       // If the handle to key container is NULL, fail.
       if (m_hCryptKey == NULL)
              return E_FAIL;
       // This call here determines the length of the key
       // blob.
       if(!CryptExportKey(
                 m_hCryptKey,
                 NULL,
                 PRIVATEKEYBLOB,
                 0,
                 NULL,
                 &dwBlobLen))
       {
              dwErrCode = GetLastError();
              return HRESULT_FROM_WIN32(dwErrCode);
       }
       // Allocate memory for the pbKeyBlob.
       if((pbKeyBlob = new BYTE[dwBlobLen]) == NULL)
       {
              return E_OUTOFMEMORY;
       }

       // Do the actual exporting into the key BLOB.
       if(!CryptExportKey(
                 m_hCryptKey,
                 NULL,
                 PRIVATEKEYBLOB,
                 0,
                 pbKeyBlob,
                 &dwBlobLen))
       {
              delete pbKeyBlob;
              dwErrCode = GetLastError();
              return HRESULT_FROM_WIN32(dwErrCode);
       }
       else
       {
               *ppPrivateKey = pbKeyBlob;
               cbKeySize = dwBlobLen;
       }
       return hr;
}

Main.cpp
 #include <stdio.h>
#include "CryptoHelper.h"
void main()
{
       CryptoHelper  cryptoHlpr;
       BYTE          *pbPublicKey = NULL, *pbPrivateKey = NULL;
       DWORD         dwPublicKeySize = 0,dwPrivateKeySize = 0;
       HRESULT       hr = S_OK;
       // Get the key container context.
       if (FAILED(hr = cryptoHlpr.AcquireContext(L"TestContainer")))
       {
// Call FormatMessage to display the error returned in hr.
              return;
       }
        // Generate the public/private key pair.
if (FAILED(hr = cryptoHlpr.GenerateKeyPair()))
       {
// Call FormatMessage to display the error returned in hr.
              return;
       }
       // Export out the public key blob.
if (FAILED(hr = cryptoHlpr.ExportPublicKey(&pbPublicKey, dwPublicKeySize)))
       {
// Call FormatMessage to display the error returned in hr.
              return;
       }
       // Print out the public key to console as a
       // hexadecimal string.
wprintf(L"\n\nPublicKey = \"");
       for (DWORD i=0; i < dwPublicKeySize; i++)
       {
              wprintf(L"%02x",pbPublicKey[i]);
       }
       wprintf(L"\"\n");
       // Export out the private key blob.
       cryptoHlpr.ExportPrivateKey(&pbPrivateKey, dwPrivateKeySize);
       // Print out the private key to console as a
       // hexadecimal string.
       wprintf(L"\n\nPrivateKey = \"");
       for (i=0; i < dwPrivateKeySize; i++)
       {
              wprintf(L"%02x",pbPrivateKey[i]);
       }
       // Delete the public key blob allocated by the
// ExportPublicKey method.
if (pbPublicKey)
          delete [] pbPublicKey;
       // Delete the private key blob allocated by the
// ExportPrivateKey method.
       if (pbPrivateKey)
              delete [] pbPrivateKey;
       return;
}


公開キー、秘密キー、およびキー インデックス トークンの値を追加する

Commerce Server OLE DB Provider は、公開キーと秘密キーの値を使って、CryptoAPI を呼び出します。これらの公開キー、秘密キー、およびキー インデックス トークンの値を Commerce Server OLE DB Provider の接続文字列に追加する UI ツールはないので、手動で追加する必要があります。これらの値は、管理データベースに格納されないことに注意してください。これらの値は、セキュリティが適切に設定された場所に格納してください。

次のトークンは必須です。

  • 1 つの公開キー トークン (PublicKey)
  • 2 つの秘密キー トークン (PrivateKey1、PrivateKey2)
  • 1 つのキー インデックス

KeyIndex は、指定された値の暗号化解除に使用される公開キーと秘密キーの組み合わせを判断するために使われます。KeyIndex の値は、次のように決まります。

  • PublicKey と PrivateKey1 を使う場合、KeyIndex の値は 1 です。
  • PublicKey と PrivateKey2 を使う場合、KeyIndex の値は 2 です。

トークン設定と返されるデータ値

Commerce Server OLE DB Provider の接続文字列に秘密キーが指定されていない場合は、プロパティの暗号化された値が返されます。

Commerce Server OLE DB Provider の接続文字列に秘密キーが指定されている場合は、プロパティの暗号化を解除された値が返されます。

データを暗号化する場合は、公開キーとキー インデックスの両方を Commerce Server OLE DB Provider の接続文字列に指定する必要があります。

データベース接続中に値の暗号化と暗号化解除の両方を実行する場合は、秘密キーの値が公開キーの値に対応している必要があります。また、該当するトークンに秘密キーの値を指定する必要もあります。たとえば、KeyIndex の値が 2 の場合、秘密キーは PrivateKey2 トークンに指定する必要があります。

トークンの値を Commerce Server OLE DB Provider の接続文字列に追加するには、global.asa ファイルの cnGetProviderConnection 関数に次の変更を加える必要があります。プロファイル サービスは、Commerce Server OLEDB Provider を呼び出すので、これらのキーにアクセスできます。

元の cnGetProviderConnection 関数は、次のとおりです。

Function cnGetProviderConnection(oSiteConfigObj)
              Dim cn
              Dim connstr
              ' -- ADO object state values
              const AD_STATE_CLOSED         = &H00000000
              connstr= sGetSiteConfigField(oSiteConfigObj, "Biz Data Service", "s_CommerceProviderConnectionString")
              set cn = Server.CreateObject("ADODB.Connection")
                          if (cn.State = AD_STATE_CLOSED) then
                            cn.Open CStr(connstr)
                            set cnGetProviderConnection = cn
              end if
End Function

2 つのキー トークンを追加した変更後の cnGetProviderConnection 関数は、次のとおりです。

Function cnGetProviderConnection(oSiteConfigObj)
              Dim cn
              Dim connstr
              Dim publickey, privatekey1, privatekey2
              ' -- ADO object state values
              const AD_STATE_CLOSED         = &H00000000
              connstr= sGetSiteConfigField(oSiteConfigObj,
                                           "Biz Data Service"
                                           "s_CommerceProviderConnectionString")
             ' Append the public/private to the connection string

publicKey = "<hex-string>"privateKey1 = "<hex-string>"
             connstr = connstr & ";PublicKey=" & publicKey &
                ";PrivateKey1=" & privateKey1 & "; & "KeyIndex=1"
              set cn = Server.CreateObject("ADODB.Connection")
                          if (cn.State = AD_STATE_CLOSED) then
                            cn.Open CStr(connstr)
                            set cnGetProviderConnection = cn
              end if
End Function

上の例で cnGetProviderConnection 関数を変更したのと同じ方法で、ビジネス デスクのルート フォルダの \Profiles\CommonXMLRoutines.asp ファイルの cnGetProviderConnection 関数に変更を加える必要があります。この変更は、接続文字列の値をセッション状態変数に保存するために必要です。

接続文字列の例を次に示します。

プロファイル サービスの接続文字列の例

"Provider=CSOLEDB;SERVER=<server-name>;DATABASE=<db-name>;UID=<db-username>;PWD=<db-password>;PublicKey=<hex-string>;PrivateKey1=<hex-string>;PrivateKey2=<hex-string>;KeyIndex=1"

CSOLEDB Provider の接続文字列の例

"url=mscop://InProcConnect/Server=<server-name>:Database=<db-name>:Catalog=Profile Definitions:User=<db-username>:Password=<db-password>:PublicKey=<hex-string>:PrivateKey1=<hex-string>:PrivateKey2=<hex-string>:KeyIndex=1"

アプリケーションで ASP.NET プラットフォームを使う場合は、次のコード セクションを web.config ファイルに追加する必要があります (サンプルの GrenadeFxTest を参照してください。このサンプルには、web.config ファイルに変更を加えるコードが含まれていて、コメント化されています)。

<profiles>
   <encryption>
      <keys keyIndex = "1">
         <add type="publicKey" value="<hex-string>" />
            <add type="privateKey1" value="<hex-string>" />
               <add type="privateKey2" value="<hex-string>" />
      </keys>
    </encryption>


暗号化されたプロパティを持つプロファイル インスタンスを作成および取得する

暗号化を有効にする Web サイトには、暗号化されたプロパティを持つプロファイルを新しく作成するためのコード、および、暗号化されたプロパティをデータベースから取得し、暗号化を解除し、表示するためのコードを含める必要があります。次のコード例は、この機能を示しています。また、暗号化された値をデータベースから取得する方法を示し、暗号化を解除された値を取得する場合と対比しています。この例では、プロファイル プロパティ SSN の暗号化に非対称型の暗号化を使います。

注

  • 57 文字を超えるプロファイル名は、データ ウェアハウスにエクスポートできません。
  • 暗号化されたプロパティへの値の設定は、暗号化されていないプロパティへの値の設定と同じです。接続文字列を指定した後、値が暗号化されているかどうかにかかわらず、変数に値を割り当てるための呼び出しには、常に同じ構文が使われます。
  • keyIndex フィールドは読み取り専用です。
option explicit
Dim ProfileSvc
Dim ProfileObject
Dim GenInfo
Dim dsn
Dim PublicKey, PrivateKey1, PublicKey2, PrivateKey2
PublicKey = "<hex-string>"

' Build Connection String
PrivateKey1 = "<hex-string>"
dsn = "Provider=CSOLEDB;Data Source=<server>;Initial Catalog=Retail_commerce;User ID=<user-id>;Password=<password>;"
Dsn = Dsn & "PublicKey=" & PublicKey & ";PrivateKey1=" & PrivateKey1 & ";KeyIndex=1"

' Initialize Profile Service
Set ProfileSvc  = CreateObject("Commerce.ProfileService")
Call ProfileSvc.Initialize (dsn, "Profile Definitions")

' Get Profile
Set ProfileObject = ProfileSvc.CreateProfile("jackcool7@somewhere.com","UserObject")

' Set Properties
Set GenInfo=ProfileObject.Fields.Item("GeneralInfo")
GenInfo.Value.Item("first_name").Value="Jack"
GenInfo.Value.Item("last_name").Value="Cool7"
GenInfo.Value.Item("user_title").Value="Mr."
GenInfo.Value.Item("SSN").Value="123-45-6789"

' Writing to keyIndex will fail, keyIndex is read-only
'GenInfo.Value.Item(<keyIndex).Value=2

ProfileObject.Update

' Read Properties
MsgBox GenInfo.Value.Item("SSN").Value
MsgBox GenInfo.Value.Item(<keyIndex>.Value

' Cleanup
Set ProfileObject=nothing
Set ProfileSvc=nothing
MsgBox "Done!"


一方向のハッシュ : ユーザー入力をハッシュされた値に変換して比較する

一方向のハッシュは、暗号化を解除する必要がないデータを暗号化するために使用します。実装例として、パスワードの暗号化があります。Commerce Server 2002 の一方向のハッシュによる暗号化では、MD5 ハッシュ アルゴリズムが使われます。

次の例は、ハッシュされた値を比較するコードを示しています。これは、一方向のハッシュでパスワードを暗号化する場合の例です。ユーザーがパスワードを作成すると、パスワードの値はパスワード プロパティを使ってプロファイル サービスに送信されます。後で、別の機会にユーザーがサイトを訪問すると、サイトは、前回作成されたプロファイルに対して認証を行うときに、ハッシュの先頭の文字からソルトを取得し、ユーザーが入力した値に追加します。その後、サイトは、この結合した値をハッシュします。次に、結果として得られたパスワード ハッシュは、前回格納されたハッシュから先頭のソルトを取り除いた値と比較されます。

このハッシュの例では、MD5 アルゴリズムが乱数のソルトと組み合わせて使われています。ソルトは、プロファイル プロパティから返された値の先頭の 4 バイト (8 桁の 16 進数) として取得されます。ソルトは、ハッシュの実行前に入力値の先頭に追加されます。

比較に使うハッシュ値は、大文字と小文字を区別しないで比較するか、または、16 進数で、すべて大文字であることを確認する必要があります。このコード例は、大文字への変換を示しています。

注

  • このハッシュ アルゴリズムを使う場合は、文字列比較を実行する際に、リトル エンディアンの文字列バイト オーダーによってバイト ストリームを MD5 ハッシュに入力する必要があります。
// get password from user
string inputPassword = Request.QueryString["password"].Value;
// get password stored in user profile
Profile profile = profileContext.GetProfile(userId, profileDefinition);
string storedPassword = (string)profile["GeneralInfo.Password"].Value;

// get salt value
byte saltByte1 = Byte.Parse(storedPassword.Substring(0,2), System.Globalization.NumberStyles.HexNumber);
byte saltByte2 = Byte.Parse(storedPassword.Substring(2,2), System.Globalization.NumberStyles.HexNumber);
byte saltByte3 = Byte.Parse(storedPassword.Substring(4,2), System.Globalization.NumberStyles.HexNumber);
byte saltByte4 = Byte.Parse(storedPassword.Substring(6,2), System.Globalization.NumberStyles.HexNumber);

// create byte array to hash that has salt and password string
System.Text.UnicodeEncoding encode = new System.Text.UnicodeEncoding();
// encoding format is little endian
byte[] dataBuffer = new byte[encode.GetByteCount(inputPassword) + 4]; // get number of bytes and create buffer
dataBuffer[0] = saltByte1; // put salt into first 4 bytes of the buffer
dataBuffer[1] = saltByte2;
dataBuffer[2] = saltByte3;
dataBuffer[3] = saltByte4;

byte[] inputPasswordBytes = encode.GetBytes(inputPassword);

// copy bytes of password into buffer after salt
inputPasswordBytes.CopyTo(dataBuffer, 4);
// get hash
System.Security.Cryptography.MD5CryptoServiceProvider md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] hash = md5.ComputeHash(dataBuffer); // get MD5 hashed value

// convert hash value to hex string
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach(byte outputByte in hash)
// convert each byte to a Hexadecimal upper case string
   sb.Append(outputByte.ToString("x2").ToUpper());

// verify input password's hash value matches stored hash minus the salt
if (storedPassword.SubString(8) == sb.ToString())
{
// user is now authenticated
}


秘密キーの暗号化に関する重要事項

秘密キーは、Web サーバーには格納せず、アプリケーション サーバーに格納する必要があります。セキュリティで保護された配置では、外部ユーザーと秘密キーが格納されているサーバーとの間に 2 つのファイアウォールがあります。1 つは、公開キーが格納されている Web サーバーとデータベースとの間に、もう 1 つは、データベースと秘密キーが格納されているアプリケーションサーバーとの間にあります。

ビジネス デスクで暗号化をサポートするには、次のメソッドを使って、公開キーをプロバイダ接続文字列に追加する必要があります。

  • sGetProviderConnStr メソッド。\<ビジネス デスクのルート>\Profiles\Commonxmlroutines.asp ファイルにあります。
  • RefreshProviderConnection メソッド。\<ビジネス デスクのルート>\Profiles\RefreshProfileSvcAll.asp ファイルにあります。
  • cnGetProviderConnection メソッド。\<ビジネス デスク ルート>\Global.asa ファイルにあります。


プロファイル リソースでサイト用語を管理する

必要に応じてサイト用語を変更または削除するには、プロファイル リソースを使います。たとえば、在庫に適合する "好きな色" サイト用語を作成すると、季節が変わるごとに一覧表示する色を変更できます。

ここでは、次のトピックについて説明します。

  • プロファイル リソースでサイト用語を作成する
  • プロファイル リソースでサイト用語を変更および削除する
  • プロファイル リソースでサイト用語にマップするプロパティを追加する

関連項目

プロファイル リソースについて


プロファイル リソースでサイト用語を作成する

Commerce Server に新しいサイト用語を追加するには、プロファイル リソースを使います。Commerce Server ビジネス デスクのサイト用語エディタ モジュールを使って、同じタスクを実行することもできます。Commerce Server ビジネス デスクでサイト用語を追加する方法については、「サイト用語を追加する」を参照してください。

Commerce Server に新しいサイト用語を追加する場合は、そのサイト用語に値、つまり用語を定義します。プロファイル プロパティに対して特定の値を設定するには、サイト用語を使います。サイト用語を作成したら、それをプロファイル プロパティの値として割り当てることができます。

たとえば、"青"、"緑"、"紫"の各値を持つ、"好きな色"というサイト用語を作成します。次に、Site Term 型の "好きな色" プロファイル プロパティを定義し、それに "好きな色" サイト用語を割り当てます。ユーザーが "好きな色" プロパティの色を選択する場合、選択肢は青、緑、および紫に限定されます。新しいサイト用語の追加には、プロファイル リソースのサイト用語エディタ画面を使います。

サイト用語エディタ画面でサイト用語を整理するには、サイト用語グループを作成します。たとえば、"好きな色" のほかに、次のようなサイト用語およびそれに対応する値を作成し、ユーザーの嗜好をまとめたサイト用語グループを作ることができます。

  • ブランド (有名ブランド、その他)
  • 品質 (最低価格、最高品質)
  • 購入 (オンライン、カタログ、店頭)

サイト用語グループを追加するには

サイト用語を追加するには

サイト用語グループを追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<サーバー名>_<データベース名>)] の順に展開します。次に、[サイト用語] をクリックします。
  2. サイト用語の構成を含む [プロパティ] の一覧で、[追加] をクリックします。
  3. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  4. [詳細情報] ペインの [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | サイト用語グループのプログラム上の定義名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | サイト用語グループに対して表示する名前を入力します。表示名には Unicode 文字で最大 128 文字使用できます。
    [説明] | サイト用語グループの説明を入力します。説明には Unicode 文字で最大 128 文字使用できます。
  5. [適用] をクリックします。
  6. サイト用語グループを保存するには、ツール バーの プロファイルの保存 をクリックします。

サイト用語を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<サーバー名>_<データベース名>)] の順に展開します。次に、[サイト用語] をクリックします。
  2. サイト用語の構成を含む [プロパティ] の一覧で、新しいサイト用語を作成するサイト用語グループをクリックし、[追加] をクリックします。
  3. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[サイト用語の新規追加] をクリックし、[OK] をクリックします。
  4. [詳細情報] ペインの [サイト用語の属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | サイト用語のプログラム上の定義名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | サイト用語に対して表示する名前を入力します。表示名には Unicode 文字で最大 128 文字使用できます。
    [説明] | サイト用語の説明を入力します。説明には Unicode 文字で最大 128 文字使用できます。
  5. サイト用語に値を追加するには、[用語] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [用語の名前] | 1 つ目の用語のプログラム上の定義名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。名前に、スペースおよびダブルバイト文字セット形式は使用できません。
    [表示名] | 用語に対して表示する名前を入力します。表示名には Unicode 文字で最大 128 文字使用できます。
  6. 用語を確定するには、[確認] をクリックします。
  7. サイト用語に他の用語を追加するには、[新規] をクリックし、新規用語の用語名と表示名を入力します。次に、[確認] をクリックし、[適用] をクリックします。
  8. サイト用語を保存するには、ツール バーの プロファイルの保存 をクリックします。

作成した新しいサイト用語で用語が保存されます。

関連項目

プロファイル リソースについて

サイト用語にマップするプロパティを追加する

プロファイル リソースでサイト用語を管理する


プロファイル リソースでサイト用語を変更および削除する

作成したサイト用語の属性と用語を変更できます。また、サイト用語を削除できます。

サイト用語を変更するには

サイト用語を削除するには

サイト用語を変更するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[サイト用語] をクリックします。
  2. [サイト用語の構成] ボックスの一覧で、変更するサイト用語を含むサイト用語グループを展開します。
  3. プロファイル デザイナ画面で、サイト用語の属性と用語を必要に応じて変更し、[確認] をクリックします。次に、[適用] をクリックします。
  4. サイト用語を保存するには、ツール バーの プロファイルの保存 をクリックします。

変更されたサイト用語が保存されます。

サイト用語を削除するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[サイト用語] をクリックします。
  2. [サイト用語の構成] 一覧で、削除するサイト用語を含むサイト用語グループを展開し、そのサイト用語をクリックして、[削除] をクリックします。
  3. [削除] ダイアログ ボックスで [OK] をクリックします。

    サイト用語が削除されます。

  4. [確認] をクリックし、次に [適用] をクリックします。
  5. 変更を保存するには、ツール バーの プロファイルの保存 をクリックします。

変更されたサイト用語が保存されます。


プロファイル リソースでサイト用語にマップするプロパティを追加する

プロファイル定義にサイト用語を追加するには、プロファイル リソースを使います。Commerce Server ビジネス デスクのプロファイル デザイナ モジュールを使って、同じタスクを実行することもできます。詳細については、「サイト用語にマップするプロパティを追加する」を参照してください。

サイト用語をプロファイル プロパティに割り当てると、Web サイト上のユーザーに対して、そのプロパティのサイト用語の値はボックスの一覧に表示されます。Web サイトでユーザーがサイト用語の一覧から選んだ用語は、そのユーザーのプロファイルに文字列型として格納されます。

プロファイル定義にサイト用語を追加するには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles]、[プロファイル カタログ] の順に展開します。次に、[プロファイル定義] を展開し、サイト用語を追加するプロファイル定義をクリックします。
  2. プロファイル デザイナ画面の [プロパティ] 一覧で、サイト用語を割り当てるプロパティが含まれているプロパティ グループを展開し、サイト用語を追加するプロパティをクリックします。
  3. プロファイル デザイナ画面の [属性] セクションで、[型] ボックスの [サイト用語] をクリックします。
  4. [型参照] ボックスの省略記号 [...] ボタンをクリックします。
  5. [サイト用語の選択] ダイアログ ボックスの [サイト用語の選択] 一覧で、プロパティ定義に追加するサイト用語が含まれているサイト用語グループを展開し、そのサイト用語をクリックします。
  6. [OK] をクリックし、[適用] をクリックします。

    サイト用語がプロパティに割り当てられます。

  7. プロファイル定義を保存するには、ツール バーの プロファイルの保存 をクリックします。

プロパティの変更と共にプロファイル定義が保存されます。

関連項目

プロファイル リソースについて

プロファイル リソースでプロファイル定義にプロパティを追加する

プロファイル リソースでサイト用語を作成する

プロファイル リソースでサイト用語を管理する


プロファイル スキーマをエクスポートおよびインポートする

プロファイル スキーマを XML ファイルにエクスポートする場合、および XML ファイルからインポートする場合は、プロファイル リソースを使います。たとえば、テスト コンピュータ上にデータ ソース、プロファイル定義、およびサイト用語を作成し、XML ファイルにエクスポートできます。その後、プロファイル スキーマを XML ファイルから運用サーバーにインポートできます。

プロファイル スキーマは、インポートおよびエクスポートすることによって、あるサーバーから別のサーバーに簡単に移動できます。これは、プロファイル スキーマをテスト環境から運用サーバーに移動する場合などに便利です。

ここでは、次のトピックについて説明します。

  • プロファイル スキーマをエクスポートする
  • プロファイル スキーマをインポートする
  • ユーザー プロファイルをインポートする


プロファイル スキーマをエクスポートする

プロファイル スキーマのエクスポートでは、プロファイル リソースから .xml ファイルに次のものをエクスポートできます。

  • データ ソース
  • データ ソースのパーティション (ユーザー名とパスワードなし)
  • プロファイル定義
  • サイト用語

データ ソース パーティションの接続文字列のユーザー名およびパスワードは、エクスポートされません。プロファイル スキーマをインポートする場合は、インポートする各データ ソース パーティションの接続文字列を作成し直す必要があります。

プロファイル スキーマをエクスポートするには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<サーバー名>_<データベース名>)] の順に展開します。次に、[プロファイル カタログ] を右クリックし、[プロファイル スキーマのエクスポート] をクリックします。
  2. [ファイルの選択] ダイアログ ボックスで、エクスポートするプロファイル スキーマを選択し、[保存] をクリックして新しい XML ファイルを保存します。
  3. [プロファイル スキーマのエクスポートに成功しました] ダイアログ ボックスで、[OK] をクリックします。

XML ファイルが、指定したファイル名で保存されます。エクスポートしたデータ ソース パーティションの接続文字列からユーザー名とパスワードが削除されます。プロファイル スキーマをインポートする場合は、各データ ソース パーティションの接続文字列を作成し直す必要があります。エクスポートしたプロファイル スキーマを含む XML ファイルは、Microsoft メモ帳などのエディタで開いたり、Microsoft Internet Explorer などの Web ブラウザで表示したりすることができます。また、Commerce Server プロファイル リソースにインポートできます。


プロファイル スキーマをインポートする

スキーマのインポートでは、XML ファイルからプロファイル リソースに次のものをインポートできます。

  • データ ソース
  • データ ソースのパーティション (ユーザー名とパスワードなし)
  • プロファイル定義
  • サイト用語

プロファイル スキーマをインポートすると、既存のプロファイル スキーマは上書きされます。

プロファイル スキーマをインポートするには

  1. [Commerce Server マネージャ]、[グローバル リソース]、[Profiles (<コンピュータ名>_<データベース名>)] の順に展開します。次に、[プロファイル カタログ] を右クリックし、[プロファイル スキーマのインポート] をクリックします。
  2. [ファイルの選択] ダイアログ ボックスで、インポートするプロファイル スキーマを選択し、[開く] をクリックして [プロファイル スキーマのインポート] ダイアログ ボックスを開きます。
  3. [プロファイル スキーマのインポート] ダイアログ ボックスで、インポートするプロファイル スキーマを含むファイルを選択し、[インポート] をクリックします。

    注

    • 選択したプロファイル スキーマの接続文字列を編集するには、[編集] をクリックします。
  4. [パーティション] ダイアログ ボックスで、インポートするパーティションを含むデータ ソースを展開し、インポートするデータ ソースのパーティションを選択します。次に、[編集] をクリックします。

    インポートする各データ ソース パーティションのユーザー名とパスワードを入力します。

    注

    • SQL Server パーティションの設定については、「SQL Server データベース パーティションを持つ新しいデータ ソースを作成するには」を参照してください。LDAPv3 準拠のソースを新しく追加する方法については、「LDAPv3 準拠のソース パーティションを持つ新しいデータ ソースを作成するには 」を参照してください。
  5. パーティションの接続文字列のダイアログ ボックスで、[テスト] をクリックし、接続文字列が機能することを確認します。
  6. インポートするすべてのパーティションのユーザー名とパスワードを追加するまで、手順 4. ～ 6. を繰り返します。
  7. [インポート] をクリックし、パーティションをインポートします。[はい] をクリックし、パーティションをインポートして既存のスキーマを上書きします。

プロファイル スキーマがインポートされ、既存のスキーマが上書きされます。


ユーザー プロファイルをインポートする

外部システムからユーザー プロファイル データをインポートするには、次の方法を使います。

  • ユーザー プロファイル情報を既存のデータに添付する。この方法では、プロファイル システムの集計機能を使います。この方法では、既存のデータは他のデータ ソースと同様に処理されます。
  • Commerce Server のプロファイル システムにデータをインポートする。プロファイル システムには、Active Directory オブジェクトを使ってアクセスできる OLE DB インターフェイスが用意されていて、挿入、更新、削除、選択などの単純な SQL ステートメントを実行できます。


Active Directory ストア内の既存のアカウントを管理する

Active Directory 内の既存のアカウントを利用するには、Active Directory データ ソースの検索コンテナと検索範囲を適切に設定する必要があります。検索コンテナと検索範囲を正しく設定すると、プロファイル システムが、オブジェクト作成やオブジェクト取得などのディレクトリ操作のために既存のアカウントを検出できます。各検索操作の最初に、プロファイル システムは、検索操作の開始コンテナを決定し、1 つのレベルの検索とサブツリー検索のどちらを行うかを決定します。

ここでは、次のトピックについて説明します。

  • ディレクトリ操作の開始コンテナ
  • 検索範囲


ディレクトリ操作の開始コンテナ

プロファイル システムには、開始検索コンテナを定義する 3 つの属性が用意されています。

  • 親 DN
  • 既定の親 URL
  • 親 URL

これらの属性は、検索の優先順位を決定する階層にまとめられます。次の 3 つのトピックは、この階層に従って配列されています。

親 DN

"親 DN" プロパティは、開始検索コンテナの識別名 (DN) を指定するために、必要に応じてプロファイル定義に追加されます。このプロパティを使用すると、個々のプロファイルにコンテナを指定でき、このプロパティによって "既定の親 URL" 属性および "親 URL" 属性の設定が上書きされます。この属性を指定すると、最もきめ細かなレベルの制御が提供されます。

既定の親 URL

"既定の親 URL" 属性は、次の図に示すように、カスタム属性としてプロファイル定義に追加されます。この属性の値は、データ ソースに指定されている "既定の名前付けコンテキスト" カスタム属性と相対関係にあります。この値は、"親 DN" プロパティに異なる値が指定されていない (この定義の種類の) すべてのプロファイルの開始検索コンテナとして使用されます。この属性は、"親 URL" 属性を上書きします。

次の図は、"ユーザー オブジェクト" プロファイルに追加される "既定の親 URL" 属性を示しています。

ユーザー オブジェクト プロファイルに追加される "既定の親 URL" 属性

親 URL

[プロパティ] ダイアログ ボックスの [システム属性] タブで、Commerce Server マネージャのプロファイル リソースを使用する LDAP データ ソースに "親 URL" 属性を設定できます。この属性の値は、開始検索コンテナの識別名 (DN) です。たとえば、既存のアカウントが CN=Users,DC=testDomain,DC=com に格納されているとします。このコンテナからアカウントを読み取るようにプロファイル システムに指示する 1 つの方法は、Active Directory データ ソースの "親 URL" 属性を CN=Users,DC=testDomain,DC=com に設定することです。プロファイル システムは、"既定の親 URL" 属性または "親 DN" プロパティによって上書きされない限り、このコンテナに対して後続のすべてのディレクトリ操作を実行します。


検索範囲

検索範囲は、クライアント操作が一括操作 (OLE DB Provider に対する SELECT クエリを実行) であるか、1 つのインスタンスの操作 (ProfileService オブジェクトの GetProfile メソッドを実行) であるかによって異なります。一括操作では、必ず、検索範囲がサブツリーに設定されます (指定された "親 URL" 属性のサブディレクトリも検索されます)。1 つのインスタンスの操作では、既定で、検索範囲が 1 レベルに設定されます (サブディレクトリは検索されません)。Commerce Server マネージャのプロファイル リソースを使ってサブツリー検索を実行するようにクライアント操作を設定できます。


Commerce Server サイトの監視

Microsoft Windows 2002 Server および Commerce Server 2000 には、システム管理者が Commerce Server サイトのパフォーマンスの監視に使用できる監視ツールが備わっています。Windows 2000 Server および Commerce Server のツールを使うと、サイトの利用状況を分析できます。分析の結果を使って、サイトのパフォーマンスを入念にコントロールし、規模の拡大に対応することができます。

サイトを監視するためにまず必要なことは、監視ツールの準備および設定を行うことです。監視計画が整ったら、「Commerce Serverの最適化」で、サイトのパフォーマンスを調整する方法についての詳細を参照してください。

Commerce Server は、Commerce Server が正しく実行されていることを確認できるように、イベント ビューア スナップインにイベントを生成します。イベント ビューアとシステム モニタの詳細については、Windows 2000 Server のオンライン ヘルプを参照してください。

ここでは、次のトピックについて説明します。

  • サイトの監視について 使用できる監視ツールについて説明します。
  • 監視の構成を設定する 監視ツールの計画および構成の方法について説明します。
  • 運用サーバーを監視する運用サーバーを監視する方法について説明します。
  • Commerce サイトの可用性を監視する サイトを監視するための可用性チェックリストを示します。
  • ハードウェア パフォーマンス カウンタ インストールされている Commerce Server 2002 で監視する必要のあるハードウェア パフォーマンス カウンタを示します。
  • Commerce Server のパフォーマンス カウンタ Commerce Server 2002 で利用できるパフォーマンス カウンタを示します。
  • 予測リソースを監視するための Commerce Server のパフォーマンス カウンタの使用方法について説明します。


サイトの監視について

Commerce Server 2002 サイトを監視するには、Commerce Server のパフォーマンス カウンタを使用します。また、Microsoft Windows 2000 Server および Microsoft Visual Studio で利用できるサーバーおよびリソース監視ツールも使用できます。

ここでは、Commerce Server 以外のツールについて説明します。Commerce Server のパフォーマンス カウンタについては、「Commerce Server のパフォーマンス カウンタ」を参照してください。

ヘルス モニタ

IP セキュリティ (IPSec) モニタ

Microsoft Web Application Stress ツール

ネットワーク モニタ

SQL Server プロファイラ

Visual Studio Analyzer

Active Directory 監視ツール

ヘルス モニタ

ヘルス モニタは、Microsoft Application Center 2000 で利用できるサービスです。ヘルス モニタは、監視対象の各サーバーでエージェントを実行し、Windows Management Instruction (WMI) でしきい値を追跡することによって、イベントおよびしきい値違反を表示します。Application Center の詳細については、Microsoft Application Center 2000 のオンライン ヘルプを参照してください。

IP セキュリティ (IPSec) モニタ

Windows 2000 は、保護付きの通信が成功しているかどうかを確認するための IP セキュリティ (IPSec) モニタを用意しています。これは、ローカルまたはリモート コンピュータでアクティブなセキュリティの関連付けを表示するものです。たとえば、IPSec モニタを使うと、セキュリティ ポリシー設定の矛盾を示す、認証またはセキュリティ関連エラーのパターンの有無を検出できます。

Microsoft Web Application Stress ツール

Microsoft Web Application Stress (WAS) ツールは、Web アプリケーションのページを要求する複数のブラウザを現実的に再現するために Web テスト担当者が開発したシミュレーション ツールです。Microsoft は、Web サーバー テストの複雑な側面の一部を遮蔽することで、使いやすいツールを開発しました。このため、WAS ツールは、Web サイトのパフォーマンス データの収集に関心があるすべてのユーザーに役立ちます。

WAS ツールは、長年にわたって WAS で開発された多数の優れた機能と、いくつかの新機能を統合したものです。さらに、現在のバージョンは、Windows 2000 で実行する 3 層構造のパーソナライズされた ASP ページに対してストレス テストを実行するために特に必要とされる機能を網羅しています。

ネットワーク モニタ

ネットワーク モニタ (Netmon.exe) は、ネットワーク トラフィックの追跡に使用できる Windows 2000 の管理ツールです。ネットワーク モニタは、ネットワークのトラフィックを取得し、表示、分析するために使います。このツールを使うと、ユーザーが定義した方法で以前に取得したデータの分析、定義済みプロトコル パーサーからのデータの抽出、およびネットワークのリアルタイム トラフィックの分析などのタスクを実行できます。

ネットワーク モニタは、ブラウザ、Web サーバー、および SQL Server の間のパケットを取得するために役立ちます。有用なタイミング情報に加えて、パケット サイズ、ネットワーク利用率など、システム パフォーマンスの管理に役立つ多くの統計情報を得ることができます。ネットワーク モニタは既定ではインストールされませんが、コントロール パネルの [アプリケーションの追加と削除] を使ってインストールできます。

SQL Server プロファイラ

SQL Server プロファイラは、サーバーから Microsoft SQL Server のイベントを取得するツールです。イベントはトレース ファイルに保存され、これを分析するか、または後で問題を診断しようとする際に特定の連続した手順を再現するのに使用できます。SQL Server プロファイラを使うと、次のようなことができます。

  • 問題のクエリを順を追って実行し、問題の原因を見つける。
  • 実行の遅いクエリを見つけて診断する。
  • 問題を引き起こしている一連の SQL ステートメントをキャプチャする。保存された追跡結果を使って、問題を診断できるテスト サーバーで問題を再現できます。
  • SQL Server のパフォーマンスを監視し、データベースのパフォーマンスを調整します。

Visual Studio Analyzer

Visual Studio 6.0 Enterprise Edition のツールである Visual Studio Analyzer を使うと、パフォーマンスを分析し、ページの欠陥を特定し、配布アプリケーションの構造を理解することができます。Visual Studio Analyzer は、Visual Studio ツールで構築したアプリケーションおよびシステムで使用できます。

Component Object Model (COM)、Active X Data Objects (ADO)、および COM+ などのいくつかの Microsoft 技術は、Visual Studio Analyzer に情報を提供できる機能を備えています。アプリケーションがこれらのいずれかの技術を使っている場合は、Visual Studio Analyzer でこの使用に関する詳細な情報を取得できます。また、Visual Studio Analyzer に情報を提供するようにアプリケーションをカスタマイズできます。

Active Directory 監視ツール

Active Directory を使用するサイトを配置している場合は、次に示す監視ツールを使います。

Active Directory 監視ツール | 監視内容
イベント ログ | ハードウェア、ソフトウェア、およびシステムの問題に関する情報。イベント ログを使うと、システム起動イベント、クリーン シャットダウン イベント、およびその他のシャットダウン イベントの組み合わせを監視することによって、システムの稼働時間を集計できます。
パフォーマンス ログと警告 | パフォーマンス ログと警告。パフォーマンス カウンタは、オブジェクトのカテゴリに含まれます。指定したしきい値を超えた場合は警告するように、パフォーマンス ログと警告を構成できます。警告の通知基準および通知方法を選択します。
レプリケーション モニタ | Active Directory ドメイン コントローラ間のレプリケーションの低レベルの状態とパフォーマンス。レプリケーション モニタは、「Windows 2000 リソース キット」で入手できます。

関連項目

Commerce Server のパフォーマンス カウンタ


サイトの監視に関するヒント集

Commerce Server Capacity Planning Toolkit をダウンロードするには、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=5165

診断のために、監視に使用するコンピュータでシステム モニタまたはパフォーマンス ログと監視を起動する前に、次の操作を行います。

  • スクリーン セーバー プログラムを停止します。
  • 不可欠ではないか、または監視に関係のないサービスを停止します。
  • リモート コンピュータからシステム モニタを実行します。この変更によって、CPU および I/O にかかる負荷の大部分がリモート コンピュータに分散されます。
  • ページング ファイルのサイズを、物理メモリの容量に 100 MB を加えたサイズまで増やします。
  • プライベート管理ネットワークを使います。リモート ログ収集中に頻繁に更新が起きると、ネットワーク転送によってパフォーマンスが低下することがあります。通常は別のネットワーク インターフェイス カード (NIC) によって処理されるプライベート管理ネットワークを使うと、この問題は解決します。また、データ収集のサンプリングを軽減する方法もあります。たとえば、3 秒間隔でデータをサンプリングしている場合、5 秒間隔に変更します。ネットワーク インターフェイスとコンピュータを 2 つずつ使い、各ネットワーク セグメントに異なる処理を実行させる方法もあります。たとえば、1 台のコンピュータはニュース更新専用、もう 1 台は株式取引トランザクション専用にします。
  • ログ収集したデータを、システム モニタを使ってグラフ化するか、またはエクスポートして印刷し、検討します。個々のパフォーマンスカウンタの詳細については、「Commerce Server のパフォーマンス カウンタ」を参照してください。
  • 基準評価の定義に応じて、許容できないと考えられるカウンタ値に従って警告を設定します。
  • パフォーマンスカウンタの数を必要なものだけに減らします。推奨されるカウンタの一覧については、「ハードウェア パフォーマンス カウンタ」および「Commerce Server のパフォーマンス カウンタ」を参照してください。
  • キャパシティ プランのトレンドを監視し、必要に応じてコンポーネントを追加またはアップグレードします。収集したデータをデータベースに保存し、変化を観察してリソース要求の変化を見極めます。利用状況またはリソース要求の変化を観察すると、どの部分にリソースを追加する必要があるかを特定できます。

関連項目

Commerce Server の最適化


監視の構成を設定する

サイトの監視にあたっては、まずキャパシティについて考慮し、監視によるオーバーヘッドが少なくなるように監視ツールを構成します。Microsoft 管理コンソール (MMC) のシステム モニタを使って保存し、ほかのコンピュータにコピーできる監視構成を作成する必要があります。監視の構成によっては、データ センターの問題を強調表示し、システム全体のトラフィック フローを視覚化できます。また、構成を作成することによって、サイト ソフトウェアの問題を理解し、ソフトウェアの相互関係を確認することもできます。

構成の計画は、次のように行います。

  • 必要なカウンタ データが定期的 (10 ～ 15 分ごとなど) に報告されるようにパフォーマンス ログと警告を構成します。
  • 長期間にわたってログを保持します。
  • 結果データをデータベースに保存し、それを分析して全体的なパフォーマンス評価、トレンド分析、およびキャパシティ プランについての報告をするために、データに対してクエリを実行します。

ここでは、次のトピックについて説明します。

  • キャパシティ プラン
  • 監視によるオーバーヘッドを抑制する


キャパシティ プラン

Commerce Server Capacity Planning Toolkit をダウンロードするには、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=5165

キャパシティ プランとは、サイトで予想されるトラフィックをサポートし、サイト パフォーマンスの目標を達成するために必要なアプリケーション、ハードウェア、およびネットワークに関する計画を立てるプロセスです。キャパシティを決定するには、サイトのユーザー数を測定し、各ユーザーによるサーバーに対する要求量を決定し、現在および将来の使用レベルをサポートするために必要なコンピューティング リソース (CPU、RAM、ディスク領域、利用可能な帯域幅、およびネットワーク帯域幅) を計算します。

十分なキャパシティを確保するには、数千人、または数十万人のユーザーがサイトにかける可能性のある負荷を処理するのに必要なコンピューティング ハードウェアの量を計算する必要があります。この計算を行うことによって、パフォーマンスの低下を引き起こす可能性のある脆弱な箇所を判別することができます。脆弱な領域を解決するには、ハードウェアを追加するか、動的なページ、またはその他の CPU に負担をかけるツールのデザインを変更します。


監視によるオーバーヘッドを抑制する

  • Commerce Server のパフォーマンス カウンタおよびツールは、パフォーマンスのオーバーヘッドを最小限に抑えるように設計されています。ただし、パフォーマンス ツールの動作は、ログ ファイルによって占有されるファイル サイズおよびディスク容量の影響を受けます。この影響によりオーバーヘッドが生じます。
  • ファイル サイズおよびディスク使用領域は、更新間隔を長くすることによって軽減できます。また、監視対象ではないディスクにデータを記録することもできます。頻繁に記録すると、ディスクの入出力 (I/O) 要求も増加します。

監視によるオーバーヘッドの増大

  • 監視によるオーバーヘッドが心配される場合は、サイトの監視のためにパフォーマンス ログと監視のみを実行し、システム モニタのグラフは使わないでください。次のような場合は、オーバーヘッドが増大する可能性があります。
    • システム モニタをグラフ ビューで実行している。
    • レポート ビューに既定 (現在の値) 以外のオプションを選択している。
    • きわめて短い間隔 (3 秒未満) でデータをサンプリングしている。


運用サーバーを監視する

Commerce Server 2002 Enterprise Edition を実行しているコンピュータの Web ファームを管理する場合、Windows 2000 のシステム モニタ、またはボトルネックが発生しそうな場所を予測するその他の同様のツールを使うと、システムのパフォーマンスを監視できます。キャリブレーション テストを実行し、利用状況プロファイルを更新し、Commerce Server のパフォーマンス カウンタを監視することによって、運用サーバーを効果的に監視できます。

キャリブレーション テストを実行する

利用状況プロファイルを更新する

Commerce Server のパフォーマンス カウンタを監視する

キャリブレーション テストを実行する

Compaq RAID アレイ、または同様のディスク サブシステムは、実際のハードウェアの設定によって、大幅に異なるパフォーマンス特性を示します。最適の方法としては、次の要素を決定するようにサブシステムのキャリブレーションを行います。

  • 1 秒あたりの最大物理ディスク読み取り数
  • 1 秒あたりの最大物理ディスク書き込み数
  • 1 秒あたりの最大ディスク バイト数

最近のディスク サブシステムは、複雑な階層構造になっています。ディスク ドライブが 1 つ、または単純な SCSI ソリューションの場合、% Disk Time カウンタが正確に物理ディスクの容量を反映します。さらに複雑な複数ディスク構成の場合、項目が実際に転送待ちになる前に、ディスク キューが、アレイの中でアクティブなスピンドルの数まで増える可能性があります。

最新の低電圧作動式 (LVD) またはファイバー チャネル ディスク システムの場合、問題はさらに複雑になります。これらのハイエンド システムでは、ベンダが供給するツールでパフォーマンスとキャパシティを監視する必要があります。さらに、サーバーと SCSI またはファイバー チャネル インターフェイスの間のシステム バスには、最大帯域幅の制限があります。ディスク スループットの合計を、これらの上限と比較する必要があります。

利用状況プロファイルを更新する

利用状況プロファイルは、平均的なユーザー対話と、サイトがピーク時にサポートする必要のある最大同時使用ユーザー数の統計モデルです。サイト監視の重要な要素は、ユーザーを監視し、ユーザーの操作が変化したかどうかを決定することです。ユーザーの利用状況の増加傾向を監視することは特に重要です。しかし、それ以上に重要なのは、このデータを開発者、テスト担当者、およびキャパシティ プランナーに渡し、将来のハードウェアおよびソフトウェアの要件を計画できるようにすることです。

ユーザーの操作を更新、監視するには、User Profile Management パフォーマンス カウンタを使います。

Commerce Server のパフォーマンス カウンタを監視する

Commerce Server のパフォーマンス カウンタの一覧を検討します。まず、この一覧のカウンタをシステム モニタに追加してください。ほかのカウンタは後で追加できます。

関連項目

ハードウェア パフォーマンス カウンタ

Commerce Server のパフォーマンス カウンタ


Commerce サイトの可用性を監視する

サイトの可用性を監視するには、可用性チェックリストを作成します。可用性チェックリストには、ここに挙げる項目が含まれていなければなりません。

帯域幅の利用状況を監視する (日、週、および月単位)

ネットワークの可用性を監視する

システムの可用性を監視する

HTTP の可用性を監視する

パフォーマンス指標を監視する

帯域幅の利用状況を監視する (日、週、および月単位)

  • 帯域幅 帯域幅がどのように使用されているか (ピークとアイドル)。
  • 利用状況 利用状況がどのように増大するか (増大する場合は、いつ増大するか、どのくらいの期間増大するか)。

この情報を使って、将来必要な帯域幅の量を予測できます。これにより、休日のショッピング シーズンに必要なピーク帯域幅を計画できます。

管理しているルーターおよびインターネット インフォメーション サービス (IIS) 5.0 のログ分析 (Commerce Server データ ウェアハウスを使用) から、帯域幅利用状況データを取得できます。

ネットワークの可用性を監視する

ネットワーク インターネット制御メッセージ プロトコル (ICMP) の echo ping を使います。これは、ほとんどのネットワーク監視ソフトウェアで利用できます。

ネットワークの可用性を、インターネット サービス プロバイダ (ISP) やデータ センター プロバイダとのサービス レベル保証 (SLA) で合意されているレベルと比較します。ネットワークの可用性が、SLA で合意されているレベルを下回る場合は、改善を要求します。

ネットワークの可用性を算出するための計算式は、次のとおりです。

(成功した ping リターンの数/発行された ping の総数) x 100%

システムの可用性を監視する

次のシステムを監視します。

  • オペレーティング システム オペレーティング システムの正常なシャットダウンおよび異常なシャットダウンを監視します。
  • SQL Server Microsoft SQL Server の通常の運用状態およびフェールオーバーのイベントを監視します。
  • インターネット インフォメーション サービス (IIS) IIS での正常なシャットダウンおよび異常なシャットダウンを監視します。

システムの可用性を算出するための計算式は、次のとおりです。

(測定された中断期間/測定期間) x 100%

HTTP の可用性を監視する

次の HTTP 要求を監視します。

  • HTTP 要求 (内部) 内部から発行される HTTP 要求を監視します。
  • HTTP 要求 (ISP 単位) ISP ネットワークから発行される HTTP 要求を監視します。これにより、監視している ISP ネットワークのユーザーがサイトにアクセスできるかどうかを追跡します。
  • HTTP 要求 (地理的位置単位) さまざまな地理的位置 (ニューヨーク、サンフランシスコ、ロンドン、パリ、ミュンヘン、東京、シンガポールなど) から発行される HTTP 要求を監視します。これにより、世界の各地域のユーザーがサイトにアクセスできるかどうかを追跡します。

サイトがページを返すことができなかったり、間違った応答と共にページを返したりすると、中断時間が発生します。HTTP の可用性を算出するための計算式は、次のとおりです。

(成功した HTTP 要求の数/発行された HTTP 要求の総数) x 100%

パフォーマンス指標を監視する

パフォーマンスの監視は、厳密には、可用性監視の要素ではありません。ただし、パフォーマンスの監視により、対処しなければ可用性に影響を及ぼす問題に関して、事前に警告を受けることができる場合もあります。

次のパフォーマンス指標を監視します。

  • 訪問数 (日単位/週単位/月単位) サイト トラフィック情報を監視して、サイトの利用状況のレベルを評価します。このデータは、データ ウェアハウスから利用できます。
  • 操作セットとページ グループの要求の遅延 (日単位/週単位/月単位) これらの指標をトランザクション コスト分析 (TCA) テストの結果と比較します。これにより、サイト パフォーマンスと TCA 予測がどのように異なるかを確認して、システムのボトルネックを特定します。
  • CPU の稼働率 (日単位/週単位/月単位) Microsoft Windows サーバー、SQL Server サーバー、IIS/Commerce Server サーバー、ミドルウェアなどでの使用状況を監視します。サイト キャパシティの追跡および計画を容易にするには、サーバーを機能別にグループ化します。
  • ディスク記憶領域 サーバーを機能別にグループ化し、ディスク容量 (総ディスク容量と空き領域) を監視します。週単位および月単位の履歴を確認することによって、傾向を把握し、拡張の計画を立てることができます。
  • ディスク I/O サーバーを機能別にグループ化し、ディスクの入出力 (I/O) スループットを監視します。週単位および月単位の履歴を、製造元によって示されたディスク I/O 率と比較します。監視された I/O が、製造元によって示されたディスク I/O に近い場合は、スピンドルを追加すること (ドライブ ストライプ セットにドライブを追加すること)、またはディスク I/O を複数のディスク コントローラに再分散することを検討します。
  • ファイバ チャネル コントローラとスイッチの帯域幅 システム エリア ネットワーク (SAN) のファイバ チャネル コントローラの帯域幅を監視します。SAN は、通常、クラスタなどの分散コンピュータ システム内のノードを相互接続するために使用されます。これらのシステムは、共通の管理ドメインのメンバであり、通常、物理的にきわめて近くに位置します。SAN は、物理的にセキュリティで保護されています。監視された帯域幅が、製造元によって示されたスループット率に近い場合は、コントローラとスイッチを追加して、トラフィックを再分散し、帯域幅を増やすことを検討します。
  • メモリ 4 MB を超える量のメモリが利用可能であることを確認します。ピーク使用時にシステムがこのレベルに近い場合は、サーバーにメモリを追加します。


ハードウェア パフォーマンス カウンタ

次の表は、インストールされている Commerce Server 2002 で監視する必要のあるハードウェア パフォーマンス カウンタを示しています。これらのカウンタは、Microsoft Windows 2000 のシステム モニタにあります。データ センターの各サーバーをパフォーマンス カウンタで監視し、その結果を集約的に表示する必要があります。System オブジェクトと Memory オブジェクトのカウンタは、キャパシティの監視に使用できます。

パフォーマンス オブジェクト | カウンタ名 | 説明
Network Segment | Bytes received per second Bytes sent per second | ネットワーク カードのキャパシティが上限に近づいた場合は、別のカードを追加する必要があります。この値がネットワークのキャパシティに近づいた場合は、より帯域幅の大きいネットワークが必要と考えられます。
Inetinfo Instance (Process オブジェクトの中) | Virtual bytes | メモリが不足していないか、またはメモリ サイズが利用可能な最大 RAM 容量に近づいていないかを監視します。このカウンタは、仮想メモリ割り当てを測定します。
 | Working set | 利用可能なハードウェア容量の範囲内、つまり物理 RAM の容量以下である必要があります。
Memory | Available bytes | 4 MB 以上である必要があります。
 | Pages per second | 1 秒につき 1 ページ以下である必要があります。システムのメモリが実際に不足している場合、問題を示す最大の指標となります。
Physical Disk | Disk Writes/second Disk Reads/second | この 2 つのカウンタの合計が、ディスクの最大容量を十分に下回っている必要があります。
 | % Disk Time | 経過時間のうち、選択したディスク ドライブが読み取りまたは書き込み要求に対応している時間の比率を示します。
SQL Server | IO transactions/sec | SQL Server が実際に実行している活動の量を示します。
 | Compiles/sec Recompiles/sec | SQL Server が実行しているクエリの効率を示します。SQL Server の CPU 負荷を軽減するには、この数値を下げます。
System | Context switches/sec | このレートが CPU あたり 5,000 コンテキスト スイッチを超える場合は、別のサーバーを追加し、システムを水平方向に拡張する必要があります。
 | %Total Processor | ピーク稼働率が 100% になることはありますが、稼働率がプロセッサの能力を超えた水準で持続しないようにする必要があります。サーバーの要素はすべて水平方向に拡張できます。
Web | Total connections | サーバーへのアクティブな Transmission Control Protocol (TCP) 接続の数です。
 | Get requests/sec | サーバーが受信する HTTP 要求の数です。これは、Web サイトへのトラフィックを示す主要な指標です。
 | Non-anonymous users per second | サイトの認証ユーザーの要求数を追跡します。
Active Server Pages | Requests per second | Active Server Pages (ASP) が要求を処理する速度です。成功した要求と失敗した要求の両方が含まれます。
 | Requests executing ハードウェア カウンタ | サンプル期間中の 1 時点で実行している要求数の平均です。インターネット インフォメーション サービス (IIS) 5.0 には、要求を同時に処理できる多数のスレッドがあります。
 | Request wait time | これは、要求の処理が開始されるまでその要求がキューにある時間を示すため、きわめて 0 に近い値 (100 ミリ秒以下) である必要があります。支払いトランザクションを処理するまで、ユーザーを長時間待たせることは避けるべきです。
 | Requests queued | ピーク時間以外に長いキューが生じないようにする必要があります。

Bytes Received Per Second ハードウェア カウンタ

Bytes received per second カウンタをネットワーク アダプタ カードの総帯域幅と比較し、ネットワーク接続がボトルネックになっていないかどうかを判断します。トラフィックの一時的な急増に備えるため、通常はキャパシティの 50% 以上は使わないようにします。この数値が接続キャパシティにきわめて近く、プロセッサやメモリがさほど使用されていない場合は、接続に問題があると考えられます。

Requests Executing ハードウェア カウンタ

Requests executing カウンタの数値がいつも 1 以上の場合は、ASP ページまたはオブジェクトの問題によって要求がハングしている可能性があります。ピーク時間でもこの数値が 1 を超えない場合は、サイトにバグが生じたままの ASP がある可能性があります。


Commerce Server のパフォーマンス カウンタ

次の表は、Commerce Server 2002 Enterprise Edition で利用できるパフォーマンス カウンタの一覧を示しています。Commerce Server マネージャのコンソール ルートにあるシステム モニタで、これらのカウンタを実行することをお勧めします。

注

  • 複数サイト構成内の 1 つのサイトでパフォーマンスを監視するには、インストールされている各サイトのすべてのプロファイル サービス オブジェクトの接続文字列で Sitename トークンを使用する必要があります。たとえば、3 つのサイト (A、B、C) があり、サイト A でパフォーマンスを監視する場合は、すべてのサイトで、適切なサイト名を指定した "Sitename=" トークンを使用する必要があります。これを行わないと、サイト B とサイト C が原因となって、サイト A を含むすべてのサイト パフォーマンス カウンタの値が増加します。
  • システム モニタでパフォーマンス カウンタが見つからない場合は、レジストリを調べて、次のようなカウンタ用のキーの下に "Disable Performance Counters" という値が存在するかどうかを確認します。

    HKLM\System\CurrentControlSet\Services\CSMarketingPerf\Performance

    この値が 1 の場合は、カウンタが無効になっています。値を 0 に設定すると、カウンタが再び動作します。

パフォーマンス オブジェクト | カウンタ名 | 説明
CS2000:User Profile Management | AuthMgr:AnonTickets/sec | 特定のサイトで 1 秒あたりに匿名ユーザーに設定されたチケット、つまりプロパティ/値の対の数です。
 | AuthChecks Failed/sec | 特定のサイトで 1 秒あたりに失敗した認証チェックの数です。
 | AuthMgr:AuthChecks Succeeded/sec | 特定のサイトで 1 秒あたりに成功した認証チェックの数です。
 | AuthMgr:AuthMgr Objects/sec | 特定のサイトで 1 秒あたりに作成された認証マネージャ オブジェクトの数です。
 | AuthMgr:AuthTickets/sec | 特定のサイトで 1 秒あたりに設定された認証チケットの数です。
 | AuthMgr:Custom Properties/sec | 特定のサイトで 1 秒あたりに設定されたカスタム プロパティの数です。
 | AuthMgr:Get_Custom-Properties/sec | 特定のサイトで 1 秒あたりに設定された取得カスタム プロパティの数です。GetProperty() カウンタは、ユーザーの cookie からカスタム プロパティ値を取得します。
 | AuthMgr:Total AnonTickets | 特定のサイトで匿名ユーザーに設定されたチケット、つまりプロパティ/値の対の総数です。
 | AuthMgr:Total AuthChecks Failed | 特定のサイトで失敗した認証チェックの総数です。
 | AuthMgr:Total AuthChecks succeeded | 特定のサイトで成功した認証チェックの総数です。
 | AuthMgr:Total AuthMgr Objects Created | 特定のサイトで作成された認証マネージャ オブジェクトの総数です。
 | AuthMgr:Total AuthTickets | 特定のサイトの認証チケットの総数です。
 | AuthMgr:Total Custom-Properties | 特定のサイトで設定されたカスタム プロパティの総数です。
 | AuthMgr:Total Get_Custom-Properties | 特定のサイトで設定された取得カスタム プロパティの総数です。
 | AuthFilter:Token-Cache-Entries (total) | Windows 認証モードのトークン キャッシュ エントリの総数です。
 | AuthFilter:Token-Cache-Size (bytes) | Windows 認証モードのトークン キャッシュ エントリのサイズを示すバイト数です。
 | AuthFilter:Token-Cache Entries (Active) | Windows 認証モードで現在アクティブなトークン キャッシュ エントリの数です。
 | AuthFilter:WindowsAuth-Cache-Hits | Windows 認証モードのパスワード キャッシュ ヒットの総数です。
 | AuthFilter:WindowsAuth-Cache-Hits/sec | Windows 認証モードの 1 秒あたりのパスワード キャッシュ ヒットの数です。
 | AuthFilter:WindowsAuth-Cache-Misses | Windows 認証モードのパスワード キャッシュ ミスヒットの総数です。
 | AuthFilter:WindowsAuth-Cache-Misses/sec | Windows 認証モードの 1 秒あたりのパスワード キャッシュ ミスヒットの数です。
 | AuthFilter:Total Successful Windows-AuthChecks | 認証用の Internet Server Application Program Interface (ISAPI) フィルタにより成功した Windows 認証チェックの総数です。これは、フィルタがインターネット インフォメーション サービス (IIS) 5.0 へアカウント情報を渡し、正しく返された回数の合計です。
 | AuthFilter:Successful Windows-AuthChecks/sec | 1 秒あたりに成功した Windows 認証チェックの数です。
 | AuthFilter:Total Failed Windows-AuthChecks | 失敗した Windows 認証チェックの総数です。
 | AuthFilter:Failed Windows-AuthChecks/sec | 1 秒あたりに失敗した Windows 認証チェックの数です。
 | AuthFilter:Total AutoCookies | 生成された自動 cookie の総数です。
 | AuthFilter:AutoCookies/sec | 1 秒あたりに生成された自動 cookieの数です。
 | AuthFilter:Total Requests Failed | フィルタ キャッシュがいっぱいになるか、エラーが発生してフィルタがエラー ページにリダイレクトされたために生じたエラーの数です。
 | UPM:Active Connection Count | 接続プールで現在アクティブな接続の総数です。
 | UPM:Active Heap Count | ヒープ プールで現在アクティブなヒープの総数です。
 | UPM:Active Heap Count (using SetCounter) | SetCounter を使用するときにヒープ プールで現在アクティブなヒープの総数です。
 | UPM:Background Thread State | このカウンタの値は 1 (オン) または 0 (オフ) で、バックラウンド スレッドが現在アクティブかどうかを示します。
 | UPM:Bucket Lock Contention Context Switches/sec | バケット ロック競合によるコンテキスト スイッチの総数 (秒単位) です。
 | UPM:Cache Retry Logic Context Switches/sec | 内部キャッシュ照合再試行ロジックのコード パス中のコンテキスト スイッチの総数 (秒単位) です。
 | UPM:Connection Pool Lock Contention Context Switches/sec | 接続プール ロック競合によるコンテキスト スイッチの総数 (秒単位) です。
 | UPM:Create Profile Latency | すべてのプロファイル オブジェクトを作成するための累積時間 (秒単位) です。
 | UPM:Delete Profile Latency | すべてのプロファイル オブジェクトを削除するための累積時間 (秒単位) です。
 | UPM:DTS Export Errors | エクスポート中に発生したエラーの総数です。
 | UPM:DTS Records Exported | エクスポートされたレコードの総数です。
 | UPM:DTS Records Exported/sec | 1 秒あたりにエクスポートされたレコードの総数です。
 | UPM:Free Entry Lookup Rate | フォアグラウンド スレッドが、空きブロックを検索するためにプロファイル オブジェクト キャッシュからエントリをパージした回数/秒です。
 | UPM:Get Profile Latency | すべてのプロファイル オブジェクトを取得するための累積時間 (秒単位) です。
 | UPM:Heap Pool Lock Contention Context Switches/sec | ヒープ プール ロック競合によるコンテキスト スイッチの数 (秒単位) です。
 | UPM:Modify Profile Latency | すべてのプロファイル オブジェクトを更新するための累積時間 (秒単位) です。
 | UPM:Object Reads | 取得されたプロファイル オブジェクトの総数です。
 | UPM:Object Reads/sec | 1 秒あたりに取得されたプロファイル オブジェクトの数です。
 | UPM:Object Creations | 作成されたプロファイル オブジェクトの総数です。
 | UPM:Object Creations/sec | 1 秒あたりに作成されたプロファイル オブジェクトの数です。
 | UPM:Object Deletes | 削除されたプロファイル オブジェクトの総数です。
 | UPM:Object Deletes/sec | 1 秒あたりに削除されたプロファイル オブジェクトの数です。
 | UPM:Object Modifies | 変更されたプロファイル オブジェクトの総数です。
 | UPM:Object Modifies/sec | 1 秒あたりに変更されたプロファイル オブジェクトの数です。
 | UPM:Cache Objects | キャッシュ オブジェクトの総数です。
 | UPM:Cache Hit Rate/sec | 1 秒あたりのキャッシュ ヒットの数です。
 | UPM:Cache Miss Rate/sec | 1 秒あたりのキャッシュ ミスヒットの数です。
 | UPM:No. of Cache Purges | フォアグラウンド スレッドが、メモリの空きブロックを検索するためにプロファイル オブジェクト キャッシュからエントリをパージした回数です。
Catalog | Catalog Queries per second | 1 秒あたりに商品カタログ システムに対して実行されたクエリの数です。パフォーマンス モニタ カウンタの値を記録するには、Query および FreeTextSearch が使われます。このほかには、カウンタを記録する方法はありません。
Data Warehouse and Analysis | CatImport:Total Catalogs | この DTS インポート タスク中にインポートされたカタログの総数です。
 | CatImport:Total Categories | この DTS インポート タスク中にインポートされたカテゴリの総数です。
 | CatImport:Total Products | この DTS インポート タスク中にインポートされた商品の総数です。
 | UPM:DTS Records Exported/sec | 1 秒あたりにエクスポートされたデータ変換サービス (DTS) レコードの数です。
 | UPM:DTS Records Exported | エクスポートされた DTS レコードの総数です。
 | UPM:DTS Export Errors | エクスポート中に発生した DTS エラーの総数です。これは、データ ウェアハウスでは記録されない場合があるフィールドの不一致とオブジェクトの累積数です。
 | UImport:Free hit buffers | 現在利用できる空のヒット バッファの数です。
 | UImport:Used hit buffers | 現在使用されているヒット バッファの数です。
 | UImport:Hits per second | インポート タスクがヒットを処理している 1 秒あたりのレートです。
 | UImport:Current visits | ログ ファイルの処理中に記録されたアクティブな訪問の総数です。
 | UImport:Commerce events | インポート タスク中に発生した Commerce Server イベントの総数です。
 | UImport:Decoded cookies | インポート タスクの実行中に発生した、Commerce Server によってデコードされた cookie の総数です。
 | UImport:Query strings | インポート タスクの実行中に処理されたクエリ文字列の総数です。
 | Total IPs resolved | この DTS IP 解決タスク中に解決された Internet Protocol (IP) の総数です。
 | Total IPs unresolved | この DTS IP 解決タスク中に解決されなかった IP の総数です。
 | Provider:Total SetColumns | SetColumns() が呼び出された回数の合計です。
 | Provider:Committed rows per second | 1 秒あたりに保存された行の数です。
CS2000:Marketing and Catalog | DML:Direct Mail errors per second | 1 秒あたりにダイレクト メーラーが返したエラーの数です。
 | DML:Direct Mail jobs running | 現在実行中のダイレクト メーラー ジョブの総数です。
 | DML:Mail Messages sent/second | 1 秒あたりにすべてのダイレクト メーラー ジョブが送信したメール メッセージの数です。
 | DML:Total Direct Mail errors | すべてのダイレクト メーラー ジョブが返したエラーの総数です。
 | DML:Total messages sent | すべてのダイレクト メーラー ジョブが送信したメール メッセージの総数です。
 | EEE:Evaluations/second | 1 秒あたりに評価された式の数です。
 | EEE:Expression Cache Size | 現在式キャッシュにある式の総数です。
 | EEE:Property Cache Hits | サーバーが起動してからのプロパティ キャッシュ ヒットの総数です。
 | EEE:Property Reads | サーバーが起動してから式エバリュエータが読み取ったプロパティの総数です。
 | EEE:Property Reads/second | 1 秒あたりに式エバリュエータが読み取ったプロパティの総数です。
 | EEE:Result Cache Hits | サーバーが起動してからのキャッシュ ヒットの総数です。
 | EEE:Total Evaluation Errors | 返された評価エラーの総数です。
 | EEE:Total Evaluations | 成功した評価も失敗した評価も含め、サーバーが起動してから返された評価の総数です。
 | LRUCache:Cache size | キャッシュにあるエントリの総数です。キャッシュ サイズは、ユーザーが設定したサイズを 10% 上回る場合があり、その際にはフラッシュが発生し、キャッシュ サイズがプリセットされた上限に戻ります。LRUCache カウンタは、個々のキャッシュではなく、サイトごとにグループ化されています。
 | LRUCache:Flushes/sec | キャッシュに新しく追加された項目に対応するため、1 秒あたりにキャッシュからフラッシュされた項目の数です。LRU アルゴリズムによってフラッシュされた項目と手動でフラッシュされた項目を記録します。
 | LRUCache:Hits/sec | このキャッシュの 1 秒あたりのキャッシュ ヒットの数です。
 | LRUCache:Misses/sec | このキャッシュの 1 秒あたりのキャッシュ ミスヒットの数です。
CS2000:Pipelines | Average execution time | 特定のパイプライン コンポーネントの平均実行時間をミリ秒で示します。
 | Errors total | 特定のパイプライン コンポーネント (PIPEERRORLEV_FAIL) が返したエラー レベル 3 のエラー、または FAILED HRESULT の総数です。
 | Errors per second | 1 秒あたりに特定のパイプライン コンポーネントが生成したエラーの数です。
 | Execution total | 特定のパイプライン コンポーネントが実行された回数の合計です。
 | Executions per second | 1 秒あたりに特定のパイプライン コンポーネントが行った実行の数です。
 | Warning total | 特定のパイプライン コンポーネント (PIPEERRORLEV_FAIL) が返したエラー レベル 2 のエラーの総数です。
 | Warnings per/second | 1 秒あたりにパイプライン コンポーネントが返した警告の数です。

注

  • Data Warehouse and Analysis オブジェクトについては、DTS タスク、ユーザー、およびカタログなどのデータ グループをインポートする場合にのみ、データ ウェアハウス パフォーマンス カウンタが使用されます。このため、データ ウェアハウス パフォーマンス カウンタは、匿名サーバーとして設定する必要があります。
  • CS2000: Pipelines オブジェクトについては、パイプライン全体に対して各パイプラインのカウンタのインスタンスが 1 つずつ存在します。

AuthChecks Failed/sec パフォーマンス カウンタ

AuthChecks Failed/sec カウンタは、1 秒あたりに失敗した認証チェックの数です。このカウンタのレートは、IsAuthenticated 関数が失敗するたびに増加します。この関数は、cookie に AuthTicket がない場合、または cookie の AuthTicket の期限が切れている場合に、失敗することがあります。

AuthFilter:Token-Cache-Size パフォーマンス カウンタ

Token-Cache-Size カウンタは、フィルタ キャッシュに格納されているユーザー トークンの数です。この数値は、Microsoft 管理コンソール (MMC) の SiteConfig オブジェクトで変更できます。サーバーに十分な RAM があり、短期間にさまざまなユーザーが多数、頻繁にサイトを訪問する場合は、この数値を変更します。

Catalog Queries per Second パフォーマンス カウンタ

Catalog Queries per second カウンタは、サーバーに対する 1 秒あたりの CS2000: Marketing and Catalog オブジェクトによるクエリのレートです。これらのクエリには、すべてのカテゴリおよび商品関連のクエリと、フリー テキスト検索が含まれます。商品キャッシュまたは検索キャッシュを使ってパフォーマンスを向上させることで、商品カタログ システムに対するクエリを軽減できます。フリー テキスト検索は、Microsoft search>queries/sec カウンタでも追跡できます。

カタログ クエリ レートは、キャッシュされないレートです。このレートが高い場合は、LRUCache カウンタなどのローカル キャッシュ機能を利用するようにアプリケーション コードを変更する必要があります。

DML:Direct Mail Jobs Running パフォーマンス カウンタ

Direct Mail jobs running カウンタは、同時実行中のジョブ数を測定します。このサービスでは、同期の方法は指定されていません。同時実行ジョブを増やすと、スループットが増加する場合と増加しない場合があります。


Commerce Server の最適化

Web サイトで必要なレベルのインターネット トラフィックを処理できるように、Microsoft Commerce Server 2002 のシステム パフォーマンスを分析し、最適化します。システムを最適化するには、まず現在のシステムとトランザクションを分析し、通常時およびピーク時にサイトを同時に使用しているユーザー数を調べる必要があります。その後で、システムに調整を加えてパフォーマンスを最適化します。

Commerce Server を最適化する方法の詳細については、http://go.microsoft.com/fwlink/?LinkId=5165 を参照してください。このページにある一連のホワイト ペーパーでは、パフォーマンス分析の概念と方法論について説明しています。また、サンプルのサイトを使ったパフォーマンス分析の実例があります。さらに、ツールのダウンロード ページやサンプル スクリプトのページへのリンクも用意されています。

ここでは、次のトピックについて説明します。

  • 現在のシステムを分析する システムを分析し、サイトのキャパシティを向上させる方法について説明します。
  • トランザクション コスト分析を使用する パフォーマンスを向上させるために、サイトのさまざまな種類の Web トランザクションのコストを測定する方法について説明します。
  • SQL Server クエリのパフォーマンスを最適化する SQL インデックス統計を更新し、SQL Server クエリのパフォーマンスを最適化する方法について説明します。
  • 仮想カタログを具現化する 仮想カタログを具現化する方法、時期、および理由について説明します。
  • Updatefulltextcatalogs スクリプトを実行する Updatefulltextcatalog スクリプトを実行する方法、時期、および理由について説明します。
  • カタログに対するフルテキスト検索のパフォーマンス フルテキスト検索がカタログのパフォーマンスに及ぼす影響について説明します。
  • パフォーマンスを管理する Commerce Server のパフォーマンスをチューニングおよび最適化する方法について説明します。
  • パフォーマンスのトラブルシューティング Commerce Server の最適化ツールを使用中に発生する可能性のある一般的な問題を示します。また、Commerce Server のその他の部分の問題を解決するための参照情報も示します。
  • 最適化に関するその他の情報 Commerce Server を最適化するためのツールと、オンラインおよび印刷物の参照情報を示します。


現在のシステムを分析する

現在のシステムの構成を分析することによって、構成がシステム全体のパフォーマンスに及ぼしている影響をより明確に把握できるようになります。サイトの分析が終わったら、収集した情報を使ってサイトのすべての領域をチューニングし、拡張します。たとえば、構成の変更、ソフトウェアの動作方法の調整、ハードウェアの増強などを行います。

サイトのチューニングおよび拡張を行うと、現在の構成に変更が必要になる場合があります。構成の変更がパフォーマンスに与える影響を正確に判断するには、現在のシステムの構成を把握していなければなりません。システムの基準構成の分析では、評価に次の項目を含める必要があります。

  • ハードウェア ボード、周辺機器 (マウスやキーボードを除く)、およびネットワーク デバイスを含む、各コンピュータの構成の一覧表を作成します。各部品が論理的にどのように接続され、どのような役割を果たしているかを示すシステム構成図を作成します。たとえば、そのサーバーが Web サーバーかデータベース サーバーかを示します。次の図は、ハードウェア構成図の一例です。

  • ネットワーク構成 ネットワーク構成の評価では、次の項目を対象にする必要があります。
    • CPU の種類、速度、数量、キャッシュ サイズ、およびキャッシュ設定
    • メモリの種類、数量、およびサイズ
    • ディスク サブシステムのコントローラ カード
    • ディスクの速度とドライブの種類
    • SCSI プロトコルと Fiber プロトコル
  • ソフトウェア 各コンピュータで使われているソフトウェア、およびそのソフトウェアが他のコンピュータのソフトウェアと対話している方法を記述します。各コンピュータにインストールされているソフトウェアを文書化するときは、次の項目も含めます。
    • ビルド番号。
    • アプリケーション間の論理インターフェイス。たとえば、アプリケーションがデータベースのテーブルからデータを取得している場合は、その関係を記述します。
    • サービス パック。
    • ソフトウェアのインストール時に指定したセットアップ オプション。
    • システムの設定。たとえば、仮想メモリの構成について "/3GB スイッチ指定済み" などと文書化します。IIS のアプリケーションの保護レベルと、IIS Server マネージャの設定を文書化します。IIS Server マネージャの設定としては、セッション状態のキャッシュ (オン/オフ)、ASP デバッグ (通常はオフ)、ASP バッファ (通常はオフ) などがあります。

    ソフトウェアの構成を記述することに加えて、ソフトウェア構成図も作成します。次の図は、ソフトウェア構成図の一例です。

  • 構成内容 Commerce Server 2002 のインストール以降に、各種のサーバーに追加された構成内容を記述します。たとえば、Web サーバーおよびデータベース サーバーの各ファイルと、ファイルが格納されているディレクトリ構造を文書化する必要があります。また、ファイル システム、データベース スクリプト、構成ファイル、データ ファイル、その他のアクセス許可の設定などの情報も文書化する必要があります。
  • 負荷分散 ネットワーク負荷分散 (NLB) を使っている箇所を記述します。たとえば、NLB またはハードウェア負荷分散により、複数のサーバーでサイトを拡張している場合は、それを記述します。
  • 管理の手順や方法の文書化 データベースのバックアップ時にログ ファイルをどのようにアーカイブするかについて記述します。データベースを複数のディスクにどのように分散させているかを記述します。


トランザクション コスト分析を使用する

トランザクション コスト分析 (TCA) は、サイトのキャパシティを測定する方法です。TCA を使うと、トランザクションのパフォーマンス コスト、Web サイトで処理できるトラフィックの量、および各種のトランザクションをサイトで実行するためのコストを測定できます。TCA を使ってサイトのキャパシティを測定したら、その結果に基づいて各システム コンポーネントのキャパシティを向上させます。また、サーバー トランザクションを互いに比較することにより、システムに最も負荷をかけているトランザクションを判別できます。

TCA での "トランザクション" という言葉は、1 台または複数のサーバーが、ユーザーの要求を満たすために実行する処理を意味します。ここで言うサーバーは、Web サーバー、中間層のサーバー、および SQL Server です。たとえば、データベースに格納されている商品説明ページに対するユーザーの要求はトランザクションです。また、買い物バスケットに項目を追加する要求もトランザクションです。金銭がやりとりされる電子商取引のトランザクションの意味ではありません。

トラフィックを分析する

利用状況プロファイルを作成する

Web サイトのキャパシティを向上させる

中間層のキャパシティを向上させる

データベースのキャパシティを向上させる

トラフィックを分析する

現在のシステムを分析し、ハードウェアとソフトウェアの構成を文書化したら、通常、何人のユーザーがサイトを同時に使っているかを、特にピーク時について調べる必要があります。一般に、このデータは次のような方法で収集します。

  • 市場分析 新しいサイトの分析です。サイトの配置時および配置後に、サイトでどの程度の量のトラフィックが発生するかを予測するために、市場分析レポートの作成を依頼することがあります。このレポートを TCA の基準構成として使います。
  • サイトの利用状況分析 既存のサイトの分析です。Web サーバーのログ ファイルを分析し、ある特定の時間におけるサイトのヒット数を調べます。さらに、サイトの各部分の利用数が時の経過と共に増減したかどうかを示す利用傾向も調べます。サイトが現在サポートしている同時ユーザー数を計算するときは、通常時の使用量ではなく、ピーク時の使用量に基づいて計算を行うことに注意してください。

利用状況プロファイルを作成する

サイトを使っているユーザー数がわかったら、次に標準的なユーザーがシステムにどの程度の負荷をかけるかを推定するために、ユーザーによるサイトの利用方法を調べる必要があります。その当初の基準として使用する利用状況プロファイルを作成します。

利用状況プロファイルを作成するには、サイトの利用状況ログ ファイルを分析する必要があります。長期 (最低 1 週間) にわたって収集したログがある場合は、それを使って正確な平均値を得ることができます。最初に、ユーザーが実行できる操作を特定します (参照、検索など)。次に、以下のデータを収集します。

  • サイトを利用するユーザー数
  • 各ページに対するヒット数 (どのページが訪問されているか)
  • 各ページで費やした時間
  • セッションの長さ
  • 利用状況がピークに達する期間

各ページに対する訪問数を使って、サイトにおける標準的なユーザー操作のプロファイルを作成できます。次の一覧は、ある電子商取引商店における標準的な買い物客の操作を表す利用状況プロファイルです。

  • セッションの平均時間 : 10 分
  • 訪問者のうち、購入をした人の割合 (%) : 2
  • ピークの乗数 : 3x 平均
  • 訪問ごとの要求数 : 10

次の表は、統計的に決定されたページ要求の分布の一覧です。ページ要求は総体として計算され、統計的に平均されたユーザー セッションにわたって正規化されます。

操作 | 分布 (%) | 操作あたりの ASP 数 | 計算 | 訪問ごとの正規化
匿名バスケット | 8.15 | 9 | 73.35 | 2.12
匿名参照 | 20.37 | 3 | 61.11 | 1.76
匿名チェックアウト | 0.51 | 10 | 5.10 | 0.15
匿名検索 | 5.09 | 2 | 10.18 | 0.29
匿名ステップ検索 | 3.05 | 3 | 9.15 | 0.26
バスケット | 8.15 | 12 | 97.80 | 2.82
参照 | 20.37 | 2 | 40.74 | 1.17
チェックアウト | 0.71 | 15 | 10.65 | 0.31
ホーム ページ | 24.44 | 1 | 24.44 | 0.70
新規ユーザーの登録 | 1.02 | 3 | 3.06 | 0.09
検索 | 5.09 | 1 | 5.09 | 0.15
ステップ検索 | 3.05 | 2 | 6.1 | 0.18
合計 | 100.00 |  |  | 10

オンラインの利用状況プロファイルを作成する方法の詳細については、『Commerce Server 2000 リソース キット』の「第 18 章 問題の管理」を参照してください。

Web サイトのキャパシティを向上させる

システムのキャパシティを測定すると、現在のシステムでは、Web サイトで発生しているトラフィックの量を処理できないことが判明する場合があります。また、新しいマーケティング構想や、新学期、クリスマスなど季節的な需要によって、トラフィックの急増が懸念される場合もあります。

パフォーマンスの低下を防ぐには、Web サーバーで予想されるトラフィック レベルをテストして、その負荷に対処するために、サーバーのどの部分を拡張すべきかを正確に判断する必要があります。キャパシティの問題が特定の層に切り分けられているのであれば、追加すべきサーバーの台数を決める計算が有効な場合があります。システム モニタを使うと、さまざまなサーバー オブジェクトのカウンタ値を監視できます。Commerce Server の特定のパフォーマンス カウンタを使って、現在のビジネスにとって重要なサーバー オブジェクトを表示できます。システム モニタの詳細については、Windows 2000 Server のヘルプを参照してください。

キャパシティを向上させるには、どのリソースが不足しているかを調べる必要があります。メモリ、CPU、またはネットワークのキャパシティを向上させることによって、Web サーバーを垂直方向に拡張できます。Web サーバーのキャパシティを向上させるもう 1 つの方法は、負荷分散クラスタにサーバーを追加することです。ただし、特定のコンポーネントの拡張を決定する前に、Web ファーム全体のキャパシティを十分に理解しておくことがきわめて重要です。

関連項目

トランザクション コスト分析を使用する

Commerce Server のパフォーマンス カウンタ

中間層のキャパシティを向上させる

中間層のサーバーは、アプリケーションの実行やコンテンツの格納など、さまざまな用途に使われます。中間層のパフォーマンスを評価するには、次のパフォーマンス カウンタを監視する必要があります。

  • Memory (メモリ)
  • System (システム)
  • Physical Disk (物理ディスク)

これらのカウンタの値が示すパフォーマンスが不十分な場合は、この層を拡張する必要があります。たとえば、Bytes Received/sec カウンタを監視しているときは、このカウンタをネットワーク アダプタ カードの総帯域幅と比較して、ネットワーク接続がボトルネックを引き起こしていないかどうかを調べます。訪問者のトラフィックの急激な増加に備えて、値が現在のキャパシティの 50% を超えないようにすることをお勧めします。この数値が接続キャパシティにきわめて近く、プロセッサやメモリがさほど使用されていない場合は、接続に問題があると考えられます。

また、この層で使用されている技術に固有のパフォーマンスの問題を解説したマニュアルを参考にして、中間層のキャパシティを向上させる方法を見つけることもできます。たとえば、Windows 2000 Server ヘルプには、ネットワーク負荷分散 (NLB) を使って追加のサーバーへのアクセスを可能にし、キャパシティを向上させる方法が記載されています。

データベースのキャパシティを向上させる

データベースのキャパシティを向上させるには、まず次のパフォーマンス カウンタを監視する必要があります。

  • Memory (メモリ)
  • System (システム)
  • Physical Disk (物理ディスク)
  • SQL Server

これらのカウンタを監視しておけば、スケールアップが必要かどうかが明確にわかります。スケールアップとは、メモリ、物理ディスクの容量、またはサーバーを追加することです。

スケールアウトするには、新しいサーバーを追加します。これによって、データベースのキャパシティを向上させることができます。新しいサーバーを追加する方が、データベース サーバーを共有しているアプリケーションを新しいサーバーに移動するよりも簡単です。ただし、キャパシティの向上が、必ずしもサーバーの追加だけで済むとは限りません。データベース拡張のガイドラインについては、データベース アプリケーションのマニュアルを確認してください。


SQL Server クエリのパフォーマンスを最適化する

統計が間違っていたり古かったりすると、大量のデータが含まれるテーブルに対してクエリを実行するときの処理時間に大きく影響します。

Commerce Server 2002 テーブルのインデックス統計を更新するには

Commerce Server 2002 テーブルに大量のデータが含まれている可能性がある場合は、それらの各テーブルに対して次のスクリプトを実行します。

UPDATE STATISTICS <Tablename> with FullScan

このスクリプトは、CatalogGlobal テーブルに対して実行します。

基本カタログごとに、このスクリプトを次のテーブルに対して実行します。

  • CatalogName_CatalogProducts
  • CatalogName_CatalogHierarchy
  • CatalogName_CatalogRelationships

仮想カタログごとに、このスクリプトを次のテーブルに対して実行します。

  • CatalogName_CatalogProducts
  • CatalogName_CatalogHierarchy
  • CatalogName_CatalogRelationships
  • CatalogName_CATALOGVIRTUALPRODUCTS


仮想カタログを具現化する

特に指定しない限り、仮想カタログはビューとして作成されます。このため、仮想カタログは編集が容易であり、編集にかかる時間も少なめですが、実行時のパフォーマンスは基本カタログよりも劣る可能性があります。仮想カタログの実行時のパフォーマンスを向上させるには、MaterializeVC.vbs スクリプトを使って仮想カタログを具現化 (基本カタログに変換) します。

MaterializeVC.vbs スクリプト

MaterializeVC.vbs スクリプトを使ってカタログ属性を設定すると、再構築時にカタログが具現化されます。

MaterializeVC.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。

仮想カタログを再構築すると、その仮想カタログは、元の仮想カタログの設定に応じて、具現化された仮想カタログまたは具現化されていない仮想カタログとして構築されます。

カタログが具現化されるかどうかは、CatalogFlags カタログ プロパティ (CatalogGlobal テーブルの CatalogFlags という列を参照) によって決まります。Catalog.idl ファイルの内容の一部を次に示します。

{
CATALOG_FLAG_DEFAULT= 0, // default value for the column
CATALOG_FLAG_MATERIALIZE_VC = 1,
}CatalogFlagsEnum;

MaterializeVC.vbs の実行については、このスクリプトを /? オプションを指定して呼び出し、画面に表示される説明を参照してください。

注

  • 仮想カタログが具現化されている場合、関連付けられた基本カタログの任意のデータを変更したときは、仮想カタログを再構築する必要があります。仮想カタログを再構築する方法については、「仮想カタログを再構築する」を参照してください。


Updatefulltextcatalogs スクリプトを実行する

1 つのフルテキスト カタログにあるすべての商品カタログのフルテキスト インデックスを更新するには、Updatefulltextcatalogs.vbs スクリプトを使う。

1 つのフルテキスト カタログに複数のカタログが含まれている場合は、Updatefulltextcatalog.vbs スクリプトを使って、すべてのカタログのフルテキスト インデックスを同時に更新することができます。Updatefulltextcatalog.vbs スクリプトを使うと、ProductCatalog.RegenerateFullTextIndex オブジェクトを使うときよりも効率的で、SQL Server のリソースを大量に消費しないで済みます。

Updatefulltextcatalog.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。

Updatefulltextcatalog.vbs では、次のパラメータを指定できます。

  • カタログ データベースへの接続文字列。
  • -U。フルテキスト カタログを更新します。
  • -I。フリーテキスト検索で、検索語句の中にある特定の語が無視された場合でも、その語によってエラーが発生しないようにレジストリ キーを設定します。既定では、SQL Server によって "A clause of the query contained only ignored words." というエラー メッセージが返されるようになっています。

-U と -I を省略した場合でも、フルテキスト カタログの更新とレジストリ キーの設定が自動的に行われます。

Updatefulltextcatalog.vbs を実行したら、Microsoft Search サービスを再起動してください。


カタログに対するフルテキスト検索のパフォーマンス

インストール済みの環境にカタログが多数ある場合は、フルテキスト カタログの生成に最大で 10 分かかります。

たとえば、10,000 個程度の多数のカタログがあり、それぞれのカタログの中に、フルテキスト インデックスを作成する列が 12 以上、商品が 1,250 種類 (1,250 行) 含まれているとします。

この場合は、各テーブルに FullTextCatalog フィールドと 12 個のフルテキスト検索可能なプロパティが追加された後、フルテキスト インデックスの作成が開始されます。


パフォーマンスを管理する

Commerce Server 2002 サイトのパフォーマンスの管理は、主としてボトルネックの検出と除去から成ります。ボトルネックとは、最大限度のキャパシティで動作しているハードウェアまたはソフトウェアです。負荷がキャパシティの限度に近づくにつれて、ボトルネックがシステムの処理の流れを制限し始めます。パフォーマンス ツールを使うと、どのハードウェアまたはソフトウェアがボトルネックに達しているかを調べることができます。そして、ハードウエアを拡張したり、構成を変更したり、ソフトウェアをチューニングしたりして、全体のパフォーマンスを向上させることができます。

パフォーマンスは、Commerce Server サイトの最適化における 1 つの要素にすぎません。他にも、開発と保守の容易さ、導入までの時間、優れたプログラミング ツールの利用のしやすさ、社内のサイト開発者の技術力などの重要な要素があります。パフォーマンスの最適化は、このいずれの要素にも影響を及ぼす可能性があります。

Web の開発は、優先順位を決めるビジネス案件によって左右されます。たとえば、プロジェクトの目標に合わせて特定のプログラミング言語やデータ アクセス技術が指定されることがあり、そうした決定は常にパフォーマンスにある程度の影響を及ぼします。Web サイトに適した "必要な" レベルのパフォーマンスを決定してから、サイトを開発し、そのレベルのパフォーマンスになるように管理することがきわめて重要です。

Web サイトはしばしば、個別のハードウェア、システム ソフトウェア、およびアプリケーション ソフトウェアから成る複数の物理層で実行されます。このため、Web アプリケーションはさまざまな種類のパフォーマンス上の問題を抱えることがあります。たとえば、ハードウェア (Web サーバー、データベース サーバー、ネットワーク)、システム ソフトウェア (オペレーティング システム、ネットワーク ソフトウェア、システム サービス)、ブラウザ、論理データベース、物理データベース、データ アクセスなどの問題が挙げられます。

パフォーマンス チューニングの目標を決定する際は、次の項目を検討します。

  • このサイトのパフォーマンスは現在および将来の目標にかなっているか?
  • 現在の構成がボトルネックになると予想されるか?
  • サイトでサポートできるユーザーの数は?

指定されたパフォーマンスの目標をサイトが満たしているかどうかを確認する唯一の方法は、パフォーマンスを定期的に監視することです。パフォーマンスを定期的に監視することで、変更によるパフォーマンスの低下を早期に検出できます。パフォーマンス データを収集するには、既存のシステム ツールを使うか、サイト モニタからパフォーマンスのレポートを受け取るか、またはシステムを操作する特殊なクライアント アプリケーションを構築します。

パフォーマンスをチューニングするときは、まずシステム パフォーマンスを測定し、目標が満たされているかどうかを確認します。パフォーマンスが目標を満たしていない場合は、ボトルネックを検出し、それを除去してから、パフォーマンスの目標に到達するまで作業を繰り返します。パフォーマンスをさらに向上させることは常に可能ですが、サイトのパフォーマンスが目標を満たしているときに、さらにチューニングを行っても、一般にそのコストに見合うだけの効果は得られません。

ここでは、次のトピックについて説明します。

  • パフォーマンスに関する用語
  • パフォーマンスのボトルネックを検出する
  • ハードウェアをチューニングする
  • ソフトウェアをチューニングする
  • ログを監視および管理する
  • 主要なパフォーマンス カウンタ
  • パフォーマンス カウンタを監視する

関連項目

Commerce Server サイトの監視


パフォーマンスに関する用語

次の表は、Commerce Server ヘルプで使用されている、パフォーマンスに関する用語の一覧です。

用語 | 定義
ASP (Active Server Pages) | Web サーバーによってクライアントのブラウザに送信される情報ページ。ASP は、ユーザー操作の構築ブロックであり、Web サーバーのパフォーマンスを測定するための主要な単位 (ASP requests/sec) です。
コンテキスト スイッチ | (1 つのプロセス内または複数のプロセス間で) あるスレッドから別のスレッドに切り替わる割合。
CPU 負荷 | 1 人の買い物客の操作を実行するために必要な CPU リソース。
DC | ドメイン コントローラ。
DTC | Microsoft Distributed Transaction Coordinator。クライアント アプリケーションで、1 つのトランザクションにデータの複数のソースが含まれるようにするトランザクション マネージャです。MS DTC を使うと、分散されたトランザクションのコミットが、トランザクションで監視されているすべてのサーバーにわたって調整されます。
頻度 | 1 人の買い物客が 1 秒間に実行する操作の数。
MSCS | Microsoft Cluster Service。サービスの可用性を向上させるために 2 つのサーバーを結合するサービスです。
MTBF | 平均故障間隔。
NIC | ネットワーク インターフェイス カード。
NLB | ネットワーク負荷分散。Microsoft Windows 2000 Advanced Server に付属する機能で、拡張性および信頼性を提供するものです。
OLAP | オンライン分析処理。
最適なパフォーマンス | 特定の買い物客の操作にかかる CPU 負荷の測定値が最低の場合、最高のパフォーマンスが測定されます。 コンテキスト スイッチが 1 秒あたり 15,000 回を超えると、CPU 負荷は等比級数的に増加します。したがって、最適なパフォーマンスは、コンテキスト スイッチがこのしきい値に達する前に測定されます。
Pentium III equivalent MHz (P3EM) | プロセッサの作業量の測定単位。800 Pentium III equivalent MHz (P3EM) は、800 MHz Pentium III プロセッサによって実現されます。2 基の 800 MHz Pentium III プロセッサを搭載したコンピュータでは、最大 1600 P3EM が実現されます。
Pentium III Million Clock Cycles (P3MC) | Pentium III チップが 1 つの操作の処理で使用したクロック サイクル。たとえば、800 MHz PIII サーバーが 1 秒につき 1 つの要求を 10% の CPU 稼働率で実行する場合、その要求を完了するためには 80 P3MC が必要になります。同様に、同じ CPU で大規模な操作を実行するのに 99% の CPU 稼働率で 10 秒かかる場合、その操作を完了するには 0.99 x 10 x 800 P3MC が必要です。
RAID | Redundant Array of Inexpensive Disks。
SAN | Storage Area Network。ストレージ ソリューションを向上させるためのハードウェア ソリューションです。
SPOF | Single Point of Failure (単一機器の故障がシステム全体の障害の要因となる)。
ユーザー | Web ブラウザを使って Commerce Server サイトに接続しているユーザー。
ユーザー操作 | ユーザーがサイトの訪問中に実行するアクション。商品の参照、買い物バスケットへの商品の追加、商品の購入などあります。
ユーザー プロファイル | ユーザーの行動に関する説明。キャパシティ プランの担当者によって作成され、システムのユーザー キャパシティの予測に使用されます。ユーザー プロファイルは、一定の期間内に特定の割合で行われた一連のユーザー操作で構成されます。
TCA | トランザクション コスト分析。インターネット サイトのキャパシティを計算する方法です。
稼働時間 | Web サイトがエンド ユーザーの要求に応じる時間の割合。


パフォーマンスのボトルネックを検出する

配置されたソリューションにおけるパフォーマンスのボトルネックを検出するための最適な方法は、パフォーマンス カウンタを監視すること、および、システムのアーキテクチャと配置の詳細を理解することです。

不要な ASP コードを避ける

Web 層では、サイトの ASP コードのサイズを縮小することによって、スループットを向上させて、ページ表示の待ち時間を短縮することができます。インクルード ファイルが多いほど、サイトのパフォーマンスは低下します。

IIS のパフォーマンスのチューニングについては、次に示すサイトで『The Art and Science of Web Server Tuning with Internet Information Services 5.0』を参照してください。

www.microsoft.com/TechNet/prodtechnol/iis/maintain/optimize/iis5tune.asp

Web サーバー コンポーネントをキャッシュする

スループットを向上させるための次の段階は、アプリケーション サーバーのキャッシュを活用することです。Commerce Server 2000 には、フロントエンドの Web サーバーで実行されるキャッシュ オブジェクトが用意されています。カタログを検索するページや目的の商品のページでは、新しい LRUCache (最近、最も使われていないキャッシュ) オブジェクトが広範な用途で利用されます。このオブジェクトによって実際の HTML フラグメントがキャッシュされます。これは、バックエンドのデータベース サーバーから返されるデータ セットが表示された後で実行されます。ユーザーが同じコンテンツを再び要求した場合、その要求は LRUCache によってフロントエンドの Web サーバーのローカル メモリから配信されます。

これによって、全体的に CPU 負荷が大幅に低下します。この場合には、SQL Server を呼び出す必要がなく、LRUCache クエリにより、リソースの消費量が、データベース要求のパッケージ化や送受信のときよりも少なくなるためです。クエリはローカル マシンに常駐し続けるので、ネットワーク トラフィックが小さくなり、全体的な入出力負荷も低下します。この新しいオブジェクトのパフォーマンス特性は、詳細については、「Microsoft Commerce Server 2000 Online Marketing Components, Pipeline, and Core Objects Transaction Cost Analysis」というホワイト ペーパーを参照してください。

ISA Server をキャッシュする

Microsoft Internet Security and Acceleration Server 2000 (ISA Server) Enterprise Edition には、送信と受信の両方のトラフィックについて、豊富なキャッシュ サービス オプションが用意されています。キャッシュのパフォーマンスを高くするために、ISA Server Enterprise Edition には ISA アレイを実装することができます。ISA サーバーは、静的コンテンツ (グラフィックスや静的でパーソナライズされていないコンテンツなど) のキャッシュに使用することをお勧めします。これにより、フロント層の Web サーバーの負荷を小さくすることができます。

ISA キャッシュの詳細については、http://www.microsoft.com/japan/isaserver/techinfo/planning/cachingwp.asp で「Internet Security and Acceleration Server 2000 によるキャッシング」というホワイト ペーパーを参照してください。


ハードウェアをチューニングする

Web サーバーおよび SQL Server として適切なハードウェアを選択することは、パフォーマンス分析において重要な位置を占めています。この作業の結果によって、他のユーザーにも適切なハードウェアを推奨することができます。

Web サーバー

Web サーバーには、タスクを実行するのに十分な容量の RAM よりも多くの RAM が搭載されている場合があります。Commerce Server では、サーバーに負荷のかかった状態におけるワーキング セットの最大量を計算することにより、サーバーに搭載する物理 RAM の実際の必要量が判断されています。

フロントエンドの Web サーバーのディスク サブシステムは、読み取り専用デバイスとして使用され、ブート パーティションやサイトのコンテンツが格納されます。ページ ファイルには読み取り/書き込みの可能なデバイスが必要です。ただし、ページ ファイルの操作は、システムをサポートするのに十分な物理メモリが与えられている場合には最小限で済みます。Web サーバーでは、ディスク サブシステムが実際に使用されるのは、イベント ログや Web ログの書き込みをする場合です。この動作はオペレーティング システムによってチューニングされます。パフォーマンスのために複数のスピンドルが必要となることは、ほとんどありません。

Web サーバーのネットワーク システムは、最低でも 1 枚の 100BaseT カードで構成されることが必要です。セキュリティを強化し、管理性および可用性を向上させるためには、サーバーに 2 枚、または、場合によっては 3 枚のネットワーク カードが必要です。Web サーバーでは、ネットワークのスループットに関しては、100 メガビットのカード 1 枚でも性能としては十分です。

最後に、サーバーの CPU および処理サブシステムは、現在入手可能な最高性能のものを使用することが必要です。この特別なハードウェア サブシステムは、当面、サーバーのボトルネックとなる可能性があります。ASP Web ページには、動的でプロセスを多く使う性質があるためです。また、現在は、Commerce Server がプロセッサ単位でのライセンス方式であることについても考慮します。

SQL Server

一般的に、SQL Server では、チューニングの対象として最も重要なのは、物理ディスク サブシステムを設定することです。最適なパフォーマンスのためには、データベースは、そのトランザクション ログとは別の物理ドライブに配置する必要があります。データベース、トランザクション ログ、および TempDB は、個々のディスク サブシステムがボトルネックとならないようにすべて設定する必要があります。テスト シナリオによれば、物理ディスク システムが問題となることはありません。しかし、実際のサイトでは、ディスク負荷とトランザクションとの関連に注意する必要があります。これを考慮してディスク要件が増加するのに備えて計画を作成します。

SQL Server では大容量の物理メモリが使用されるので、利用可能な RAM の量をデータベースのワーキング セットと比較して検討する必要があります。ランタイム テストの間は、SQL Server では、ネットワークの入出力、および処理の負荷は、SQL データベースにアクセスするフロントエンドのサーバーの数によって決まります。また、それだけではなく、負荷のプロファイルによっても決まります。Commerce Server は、SQL Server がボトルネックとならないような設定でテストされています。Commerce Server 2000 は、水平方向の拡張性とパーティショニングをバックエンドのデータベース システムで実現できるように設計されています。マーケティング、ユーザー プロファイル管理、カタログ、データ ウェアハウス、トランザクション、および管理のためのデータベースは、それぞれ SQL Server の複数の物理データベースに分割することができます。このようにすると、配置されたシステムをデータベース単位で別々のサーバーやクラスタに分散させることが容易にできます。方法の詳細については、ここでは説明を省略します。


ソフトウェアをチューニングする

この分析のためには、フロントエンドの Web サーバーのチューニングは最小限にすることをお勧めします。必要に応じて、Internet Service Manager で、パフォーマンスのスライダ バーを最大値に設定します。他の設定はすべて変更する必要はありません。テスト時や実際のサイトでパラメータの変更が必要な場合は、一度に 1 つだけ変更します。変更後の結果は変更前のものと注意して比較します。

注

  • パラメータにはさまざまな性質のものがあるので、不用意に変更してしまうと、サイトの管理や運営に支障をきたす場合があります。

SQL Server のサーバーでは、既定の設定は特に変更する必要はありません。

キャッシュ設定を LRUCache に対してチューニングし、キャッシュ サイズを設定することによってインストールを最適化します。このためには、キャッシュのヒット率、つまり (キャッシュのヒット数)/(キャッシュのヒット数 + キャッシュのミスヒット数) が 90% 以上となるように設定します。キャッシュ サイズはグローバルな初期化の際に変更できます。ユーザー プロファイルのキャッシュも同様の方法でチューニングできます。


ログを監視および管理する

システム ログを定期的に監視することによって、突発的な障害を回避し、予想外のサーバーの利用状況の増加に備えることができます。

  • 1 日に少なくとも 2 回、イベント ビューアから送信されるメールや警告でイベントの利用状況を確認し、異常があれば関係者に連絡します。
  • 週に少なくとも 1 回、Web サーバーのログを分析し、ユーザーのアクセス傾向に変化があるかどうかを調べます。Web サイトへのトラフィックがシステムの限度内にあることを確認します。傾向分析に基づいて、Web ページや商品提供の再構成が必要になることもあります。
  • データベース ログは定期的にバックアップし、整理します。データベース ログを削除する前に、テープ ドライブなどの外部バックアップ デバイスにコピーします。
  • Keynote Systems などの外部の分析機関の協力を得て、リモートのさまざまな場所からサイトのページ表示の待ち時間を監視します。

関連項目

Commerce Server サイトの監視


主要なパフォーマンス カウンタ

次に、この分析をするための主要なカウンタについて重点的に説明します。

Processor -> %Processor Time

キャパシティのパフォーマンス テストを実施している間は、プロセッサは、監視ツールが対象としている制限、またはデータ センターの作業員によって設定された制限を維持している必要があります。テストのために、制限は 85% に設定されています。

Memory -> Pages/sec

ハード ディスクに対する実際のメモリ要求を測定します。この比率が高い場合は、メモリ リソースが不足しているか、または、ソリューションの計画が不完全です。

Memory -> Available Mbytes

利用可能な MB 数が小さいと、システムではページングが開始されます。利用可能な MB 数の絶対的な最小値は 4 ですが、ピークに備えてサーバーに余裕をもたせることをお勧めします。

Active Server Pages -> Request Execution Time

実際のスクリプトを処理するのにかかった時間を測定します。このカウンタが大幅に上昇したり、時間が 1 秒を超えたりした場合は、システムがキャパシティを超えて稼動していることになります。ソリューション サイトのページは、処理が 1 秒未満で完了するように設計されています。

Active Server Pages -> Request Wait Time

新しい要求の処理が開始されるまでその要求がキューにある時間を測定します。

Active Server Pages -> Requests/sec

動的なページの実際のスループットを表します。

Web Service -> Get Requests/sec

動的なページと静的なページの合計数を表します。これはスループットの主要なカウンタです。

Network Interface -> Bytes Total (per card)

カードに対するネットワークのスループットの合計を表します。これはネットワークのスループットの主要なカウンタです。

Physical Disk -> %Disk Time Physical Disk -> Disk Reads/sec Physical Disk -> Disk Writes/sec

ディスク サブシステムの利用状況を追跡する 3 つのカウンタです。どんなシステムでも、ディスク サブシステムがボトルネックとなる場合があります。フロントエンドの Web サーバーでは、1 つのページのコンテンツやイメージがファイル キャッシュ内に格納されるようにするために、ディスクの使用率を最小限に抑える必要があります。ディスク使用率が高いのはログ ファイルですが、Windows 2000 ではそのパフォーマンスがチューニングされています。

ただし、SQL Server では、物理ディスク サブシステムが大量に使用されます。このサブシステムのプランニングとキャリブレーションを行うことは、DBMS の速度を向上させるための重要な要素です。

System -> Context Switches/sec

1 つのスレッドから別のスレッドにシステムが切り替わる回数を表します。このカウンタの値が 1 つのプロセッサにつき 5,000 を超える場合、サーバーやアプリケーションに対する対称型多重処理 (SMP) の拡張性が低いことが示されます。Windows 2000 および Commerce Server 2002 のコンポーネントは、高い拡張性を持つように設計されています。

SQL Server:Databases -> Transactions/sec

バックエンドの SQL Server の利用状況を示す主要な指標です。

NTLM Authentications/sec

認証チェックが行われた実際の回数です。

CS2002 : Marketing and Catalog -> LRUCacheCache Size

システムのキャッシュ サイズの合計をバイト数で表したものです。Global.asa では、キャッシュのヒット率を最大にするために、このサイズを大きくする必要があります。

CS2002 : Marketing and Catalog -> LRUCacheFlushes/sec

最近、最も使われていないキャッシュ (LRUCache) は、プログラムによって要求された場合や、キャッシュの要素の数が Global.asa で設定された最大サイズの 10% を超えた場合に、キャッシュから項目を消去します。

CS2002 : Marketing and Catalog -> LRUCacheHits/sec

要求に対して、メモリの LRUCache から提供されるのに成功した割合です。

CS2002 : Marketing and Catalog -> LRUCacheMisses/sec

要求に対して、メモリの LRUCache から提供されるのに失敗した割合です。これは、キャッシュに新しい項目が追加された割合と見なすこともできます。


パフォーマンス カウンタを監視する

パフォーマンス カウンタを使うと、システムで実行されている処理の特定の側面を監視できます。システム モニタでは、カウンタがオブジェクトの種類ごとにグループ化されています。Commerce Server プロセス、メモリ、キャッシュ、ハード ディスク、および統計情報を生成するオブジェクトごとに、固有のカウンタが存在します。Commerce Server のパフォーマンス カウンタの詳細、およびその使い方については、「Commerce Server サイトの監視」を参照してください。システム モニタの詳細については、Windows 2000 Server のヘルプを参照してください。

関連項目

Commerce Server サイトの監視

ハードウェア パフォーマンス カウンタ

Commerce Server のパフォーマンス カウンタ


パフォーマンスのトラブルシューティング

ここでは、Commerce Server で発生した問題を解決し、システムのパフォーマンスを向上させる方法について説明します。

ここでは、次のトピックについて説明します。

  • 不要なアプリケーションを停止する
  • 運用サーバーを監視する
  • 一貫性のあるサーバー構成を使用する
  • テストを行う際のヒント
  • 特定のパフォーマンスの問題を検出する
  • メモリを使用する
  • 主要なパフォーマンス カウンタを監視する
  • 匿名プロファイリングを無効にする
  • IIS の [パフォーマンス] タブの設定を変更する


不要なアプリケーションを停止する

サーバーの主要な機能の実行に必要のないアプリケーションはインストールしないでください。たとえアプリケーションを一時的にインストールして、その後アンインストールしても、互換性のないダイナミック リンク ライブラリ (DLL) がサーバー上に存在すると問題が起きることがあります。必要のないアプリケーションはすべて停止してください。


運用サーバーを監視する

Web ファームにある運用サーバーの監視には、ランタイム サービスに属さない独立したサーバーを使うことをお勧めします。監視用のプロセスが運用サーバーのパフォーマンスや処理に影響を及ぼすことがないように、運用サーバーは独立したサーバーから監視することが大切です。独立したサーバーを使うことで、運用サーバの真のパフォーマンスをより正確に測定できます。

さらに、ユーザー トラフィックの監視は、実際のデータ処理のトラフィックを扱うネットワークとは別の、独立した管理用のネットワークで行います。システム モニタやその他の監視ツールは、このプロセスで多くのサーバーからのデータを 1 つのまとまったビューに集約できます。また、この情報をログに記録するために必要となる、Web サーバーとデータベース サーバーのディスク入出力 (I/O) も減少します。


一貫性のあるサーバー構成を使用する

同じ機能を実行するサーバーは、同じソフトウェア構成になるようにします。たとえば、Web サーバーはすべて同じソフトウェア構成になるようにします (ただし、必ずしもデータベース サーバーと同じ構成ではありません)。ソフトウェア構成を同じにすると、次のような利点があります。

  • パフォーマンスが等しくなり、予測可能になります (ハードウェアも同等と仮定した場合)。
  • ソフトウェアのアップグレードが容易になります。
  • 1 台のサーバーでパフォーマンスが向上すれば、同じ方法ですべてのサーバーのパフォーマンスが向上します。


テストを行う際のヒント

パフォーマンスを向上させる目的で運用サイトに変更を加える場合は、必ず運用環境と同じ構成のテスト環境上でテストを実施してください。モジュール テストや開発システムでのテストを行っても、通常時およびピーク時のトラフィックの下で完全な構成をテストしたときと同じ結果は得られません。完全なテストを行わずに、運用環境を変更しないでください。次に、テストを行う際の基本的なガイドラインを示します。

  • 各 Web ページをテストして、コンテンツが正しいこと、リンクが機能すること、必要な結果が返されること、およびパフォーマンスが予想どおりであることを確認します。
  • ピーク時のトラフィック条件でシステムをテストし、システムが受ける最大量のトラフィックを処理できることを確認します。Microsoft Web Application Stress (WAS) やシステム モニタなどのツールを活用します。
  • 通常時のトラフィックの下で最も複雑な Web ページを呼び出し、同時にリモートからさまざまな速度の接続を使って Web サイトにアクセスして、応答時間を検証します。


特定のパフォーマンスの問題を検出する

システム スループットの問題は、一般にリソースへの要求が供給を上回ると発生します。パフォーマンスの問題の切り分けは、まずユーザー、Commerce Server 2002、およびオペレーティング システムが、各リソースとどのように対話しているかを調べることから始めます。

この作業を始めるには、Web サイト アーキテクチャの計画段階で、同時ユーザーの詳細な成功基準を生成します。以前の経験やユーザー分析に基づいて、標準的なユーザー訪問の利用状況プロファイルを決定します。このデータから、ページごとのダウンロード サイズ、スループット、および待ち時間の目標が得られます。

サイト開発者は、Microsoft Web Application Stress (WAS) ツールなどの負荷シミュレーション ツールを使って、自分が作成する ASP ページをテストし、その結果を目標に近づけます。ページが 1 台のサーバー構成の目標を達成したら、データ センターの構成により近い分散サーバーのテストのための段階的な目標を計画します。特に、別々のコンピュータに配置されたクライアント シミュレータやバックエンド システムが必要です。データ センターで Web サーバーとバックエンド システムが対称型多重処理 (SMP) サーバーとして配置される場合は、同じように構成する必要があります。

次に、ページ要求の待ち時間を減らすように努めます。パフォーマンスの向上のために最初に着目すべき項目は、SQL Server に対する要求です。Microsoft SQL Server 2000 に付属する SQL Server プロファイラ ツールには、データベースのチューニングにインデックスを推奨するウィザードがあります。このツールは、頻繁なページ操作のテストに非常に役立ちます。Microsoft Active Directory サーバーを使っている場合は、その利用状況の監視も必要になることがあります。Active Directory サーバーの NTDS オブジェクトのパフォーマンス カウンタは、このサーバー コンポーネントの使い方を定義するのに役立ちます。

データがどのようにアクセスされているかを把握したら、ページ ロジックを調査します。Active Server Pages (ASP) のプログラミングに固有のさまざまなチューニングのヒントが存在します。それらの手順に適切に従うことで、各 ASP ページのスループットを大幅に向上させることができます。

データの呼び出しが多すぎるために、ページの待ち時間が非常に長い場合は、Commerce Server の LRUCache オブジェクトを利用できます。このオブジェクトは、表示された HTML フラグメントを保持し、バックエンド サーバーへのクエリをなくすことで、時間のかかるデータの呼び出しを減少させます。

最後に、パフォーマンスとスループットを微調整するために、インターネット インフォメーション サービス (IIS) 5.0 と Microsoft Windows 2000 の中のレジストリ設定をチューニングしてみます。これらの変更を行っても、サイト コードのアルゴリズムやアクセス方法を変更するほどの効果はないことに注意してください。たとえば、IIS の [パフォーマンス] タブの設定を [100,000 件以上] に変更し、ASP デバッグが "有効でない" ことを確認することで、IIS サーバーのパフォーマンスをチューニングできます。

関連項目

IIS の [パフォーマンス] タブの設定を変更する

Commerce Server のパフォーマンス カウンタ


メモリを使用する

メモリ使用量は、おそらくシステム パフォーマンスの最も重要な要素です。メモリ要求が供給を上回ると、Microsoft Windows 2000 Server はページと呼ばれるコードとデータのかたまりをランダム アクセス メモリ (RAM) からディスクに移動して、プロセスのための領域を解放します。ページングによって Windows 2000 Server は実際の物理メモリ (RAM) の容量よりも多くのメモリを使用できるので、ある程度のページングは容認できます。ただし、常にページングが発生している状態では、システムのパフォーマンスが低下します。

Windows 2000 Server を起動すると、システムにページング ファイル (Pagefile.sys) が自動的に作成されます。Windows 2000 Server はページング ファイルを使って仮想メモリを提供します。ページング ファイルの推奨サイズは、システムで利用できる RAM の容量に 12 MB を加えたサイズです。ただし、ファイルのサイズは、ファイルの作成時にハード ディスクで利用できる空き容量にも左右されます。拡張性については、『Commerce Server 2000 リソース キット』を参照してください。


主要なパフォーマンス カウンタを監視する

ピーク時に主要なパフォーマンス カウンタを監視することで、システムのボトルネックを検出できます。監視すべき Commerce Server のパフォーマンス カウンタについては、「Commerce Server のパフォーマンス カウンタ」を参照してください。


匿名プロファイリングを無効にする

Commerce Server 2002 では、匿名ユーザーのプロファイリングを簡単に行うことができます。ただし、非常に規模の大きい Web サイトですべての匿名ユーザーを追跡した場合、コストが高くなる可能性があります。この機能を実装する前に、cookie と一意のインスタンスをデータベースおよび Microsoft Active Directory サーバーに作成することによって得られる利点を慎重に検討してください。この機能によって得られる利点の多くは、Commerce Server のレポートをより綿密に分析することで実現できます。

関連項目

Commerce Server のレポート


IIS の [パフォーマンス] タブの設定を変更する

Microsoft インターネット インフォメーション サービス (IIS) 5.0 の [パフォーマンス] タブの設定を変更し、パフォーマンスを向上させることができます。

IIS の [パフォーマンス] タブの設定を変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. [インターネット インフォメーション サービス] 画面で、ノードを [インターネット インフォメーション サービス]、[<サーバー名>] の順に展開して、[既定の Web サイト] に移動します。
  3. [既定の Web サイト] を右クリックし、[プロパティ] をクリックします。
  4. [パフォーマンス] タブをクリックします。
  5. [パフォーマンス チューニング] スライダを右側の [100,000 件以上] に移動し、[OK] をクリックします。


最適化に関するその他の情報

Commerce Server 2002 サイトのパフォーマンスとキャパシティを最適化するのに役立つ参照情報が他にも用意されています。

ここでは、次のトピックについて説明します。

  • パフォーマンス最適化ツール
  • Web ベースの情報


パフォーマンス最適化ツール

Microsoft では、パフォーマンスをチューニングおよびテストするためのさまざまなツールを提供しています。いくつかのツールは、Microsoft Windows 2000 およびインターネット インフォメーション サービス (IIS) 5.0 に組み込まれています。また、Microsoft の Web サイト (http://www.microsoft.com/japan/ (日本語版) または http://www.microsoft.com/ (英語版)) から入手できるツールもあります。たとえば、システム モニタ (旧パフォーマンス モニタ) は Windows 2000 に組み込まれ、サーバー パフォーマンスにかかわる要素をくまなく監視するために不可欠です。

ここでは、パフォーマンス最適化ツールの簡単な説明と、その入手先を示します。

  • Microsoft Web Application Stress ツール 複数のブラウザによる Web アプリケーションへのページ要求を忠実に再現するために、Web テスタが開発したシミュレーション ツールです。Microsoft は、Web サーバー テストの複雑な側面の一部を隠蔽することで、使いやすいツールを開発しました。したがって、このツールは、Web サイトのパフォーマンス データの収集に関心があるすべてのユーザーに役立ちます。このツールは、長年にわたって開発された多数の優れた機能と、いくつかの新機能を統合したものです。現在のバージョンでは、Microsoft Windows 2000 で実行される、複数層のパーソナライズされた Active Server Pages (ASP) Web サイトのストレス テストに最も必要な機能が提供されています。

    WAS をダウンロードするには、http://go.microsoft.com/fwlink/?LinkId=6731 にアクセスしてください。

  • ネットワーク モニタ ネットワーク トラフィックをキャプチャして表示および分析するためのツールです。ネットワーク モニタを使うと、以前にキャプチャしたデータをユーザー定義の方法で分析したり、定義済みのプロトコル パーサーからデータを抽出したり、ネットワーク上のリアルタイム トラフィックを分析したりすることができます。ネットワーク モニタは、ブラウザ、Web サーバー、および SQL Server 間のパケットのキャプチャに役立つツールです。有用なタイミング情報に加えて、パケット サイズ、ネットワーク利用率など、システム パフォーマンスの管理に役立つ多くの統計情報を得ることができます。
  • SQL Server プロファイラ SQL Server のイベントをサーバーからキャプチャするツールです。イベントはトレース ファイルに保存され、これを分析するか、または後で問題を診断しようとする際に特定の連続した手順を再現するために使用できます。SQL Server プロファイラを使うと、次のようなことができます。
    • 問題のクエリを順を追って実行し、問題の原因を見つける。
    • 実行の遅いクエリを見つけて診断する。
    • 問題を引き起こしている一連の SQL ステートメントをキャプチャする。保存された追跡結果を使って、問題を診断できるテスト サーバーで問題を再現できます。
    • SQL Server のパフォーマンスを監視し、ワークロードをチューニングする。
  • システム モニタ ハードウェア リソースの使われ方とシステム サービスの利用状況に関する広範なデータの収集および表示に利用できるツールです。システム モニタを使うと、次のようなことができます。
    • ローカル コンピュータまたは複数のリモート コンピュータからリアルタイムのパフォーマンス データを収集し、表示する。
    • 現在収集されているか、または以前に収集されたカウンタ ログのデータを表示する。
    • 印刷可能なグラフ、ヒストグラム、またはレポート ビューでデータを表示する。
    • オートメーションを使って、システム モニタの機能を Microsoft Word やその他の Microsoft Office 製品のアプリケーションに組み込む。
    • パフォーマンス ビューから HTML ページを作成する。
    • Microsoft 管理コンソール (MMC) を使って他のコンピュータにインストールできる、再利用可能なモニタの設定を作成する。
  • Visual Studio Analyzer 分散アプリケーションのパフォーマンスの分析、障害原因の切り分け、および構造の把握に利用できるツールです。Visual Studio Analyzer は、Visual Studio ツールで構築したアプリケーションおよびシステムで使用できます。Component Object Model (COM)、Microsoft Active X Data Objects (ADO)、および COM+ などのいくつかの Microsoft 技術は、Visual Studio Analyzer に情報を提供できる機能を備えています。アプリケーションがこれらのいずれかの技術を使っている場合は、Visual Studio Analyzer でこの使用に関する詳細な情報を取得できます。また、Visual Studio Analyzer に情報を提供するようにアプリケーションをカスタマイズできます。
  • プロセスとスレッドの状態 (Pstat.exe) 実行中のすべてのプロセスとスレッドの状態を表示するツールです。このツールは『Windows 2000 Server リソース キット』の付録 CD-ROM に収められています。
  • プロセス ツリー (Ptree.exe) ローカル コンピュータまたはリモート コンピュータのプロセス継承ツリーを照会し、プロセスを削除できるツールです。このツールは『Windows 2000 Server リソース キット』の付録 CD-ROM に収められています。
  • HTTP 監視ツール サーバーの HTTP の活動を監視し、活動量に変化があった場合に通知する機能を備えたツールです。このツールは『Windows 2000 Server リソース キット』の付録 CD-ROM に収められています。
  • NetStat サーバーの現在のネットワーク接続に関する情報を検出するコマンド ライン ツールです。NetStat は『Windows 2000 Server リソース キット』の付録 CD-ROM に収められています。

関連項目

Commerce Server のパフォーマンス カウンタ


Web ベースの情報

次の表は、Commerce Server 2002 サイトのパフォーマンスとキャパシティの最適化に役立つ、Web で入手できるドキュメントを示しています。

タイトル | 説明
Commerce Server Performance Tools | パフォーマンス分析の概念と方法論を説明している一連のホワイト ペーパーがあります。サンプルのサイトを使ったパフォーマンス分析の実例も示しています。さらに、ツールのダウンロード ページやサンプル スクリプトのページへのリンクも用意されています。
Microsoft Developer Network (MSDN) | Commerce Server およびその他の Microsoft .NET Enterprise Server に関する情報があります。このサイトには定期的にアクセスすることをお勧めします。関連文章およびをホワイト ペーパーを検索するには、[このサイトの検索] ボックスに「Commerce Server 2000」と入力します。 http://go.microsoft.com/fwlink/?LinkId=5160
「インターネット インフォメーション サービス 5.0 (IIS 5.0) を使った Web サーバーのチューニング技法」 (英語版) | Windows 2000 Server でインターネット インフォメーション サービス (IIS) 5.0 を実行している場合の Web サーバーのチューニングにかかわる問題および手法を説明しているホワイト ペーパーです。このドキュメントでは、監視とテストの重要性に加えて、ハードウェア、ソフトウェア、およびツールで起こりうる問題についても解説しています。 新規または変更された IIS と Windows 2000 の設定および機能に関するセクションがあります。また、役に立つヒント、レジストリとメタベースの設定、および参照情報が記載された付録もあります。このドキュメントは特に IIS 5.0 用に書かれていますが、大部分の内容は IIS 4.0 の管理者にも役に立ちます。 http://go.microsoft.com/fwlink/?LinkId=5594
Commerce Server Software Development Kit (SDK) | Commerce Server アプリケーション プログラミング インターフェイス (API) と統合する必要のあるプログラム、またはインテリジェント Web ページを作成する開発者向けの技術情報があります。SDK には、プログラマー向けのガイドと、Commerce Server および商取引の各種技術の紹介があります。また、プログラムの作成に使用できるサンプルとヘッダー ファイルも含まれています。
TechNet | 電子商取引 Web サイトの計画、開発、配置、および管理に役立つ技術情報とツールがあります。 Commerce Server の詳細については、画面左側の [製品別技術情報] メニューの [Commerce Server] を選択してください。 http://go.microsoft.com/fwlink/?LinkId=5160
ニュースグループ | 対等に対話できるニュースグループを使って、他の管理者や開発者、および Microsoft Most Valuable Professionals (MVP) の人々と Commerce Server について話し合うことができます。Microsoft では、これらのニュースグループやサイトの内容を管理もサポートもしていません。 http://go.microsoft.com/fwlink/?LinkId=5816
製品サポート サービス | Commerce Server で利用できるサポート オプションの一覧です。 http://go.microsoft.com/fwlink/?LinkId=954
Microsoft Servers サイト | IT 専門家、開発者、およびインターネット専門家向けの Microsoft サーバー製品全種類のガイドです。 http://go.microsoft.com/fwlink/?LinkId=6732


ユーザー インターフェイスのリファレンス

ここでは、Commerce Server マネージャで利用できるリソースに関する、状況依存のヘルプ トピックについて説明します。これらのトピックは、[Commerce Server マネージャ] ダイアログ ボックスで F1 キーを押すか、[ヘルプ] をクリックすると表示できます。

サイト パッケージャのダイアログ ボックスについては、「サイト パッケージャのダイアログ ボックスのヘルプ」を参照してください。

ここでは、次のトピックについて説明します。

  • [<リソース> のプロパティ] - [プロパティ] タブ 各リソースのプロパティ ダイアログ ボックスについて、必要なトピックへのリンクを提供します。
  • [<リソース> のプロパティ] - [接続文字列] タブ 各リソースの接続文字列ダイアログ ボックスについて、必要なトピックへのリンクを提供します。
  • データ ウェアハウス構成ウィザード データ ウェアハウスを構成するためのダイアログ ボックスのヘルプについて説明しています。
  • データ ウェアハウスの UI ヘルプ データ ウェアハウスのダイアログ ボックスのヘルプについて説明しています。
  • データ ウェアハウスのインポート ウィザード データ ウェアハウス インポート ウィザードのダイアログ ボックスのヘルプについて説明しています。
  • DTS タスクの UI ヘルプ Commerce Server 2002 DTS タスクのダイアログ ボックスのヘルプについて説明しています。
  • プロファイル リソースの UI ヘルプ プロファイル リソースのダイアログ ボックスのヘルプについて説明しています。


[<リソース> のプロパティ] - [プロパティ] タブ

グローバル リソースやサイト リソースを構成するには、[<リソース> のプロパティ] ダイアログ ボックスに表示されるリストを使用します。

グローバル リソースを構成する手順の詳細については、次のトピックを参照してください。

  • CS 認証リソースのプロパティを設定する
  • インポートするデータのタイム ゾーンと開始曜日を変更する
  • ダイレクト メーラーを構成する
  • プロファイル リソースの接続文字列を構成する

サイト リソースを構成する手順の詳細については、次のトピックを参照してください。

  • サイト リソースを構成する
  • サイトにグローバル リソース ポインタを追加する


[<リソース> のプロパティ] - [接続文字列] タブ

このダイアログ ボックスは、Commerce Server リソースへの接続文字列を変更するために使います。

Commerce Server 接続文字列の詳細については、次のトピックを参照してください。

データベースの接続文字列を変更する

管理データベースの接続文字列を変更する

データ ウェアハウスの接続文字列

データ ウェアハウスの接続文字列を構成する

HTTPS 経由で分析サーバーにアクセスする

OLE DB Connection Strings for the Data Warehouse

OLE DB Connection Strings for the Profiling System

Code to Connect to the Expression Store

Code to Connect to the Profile Store

サイトのセキュリティ設定


[<ホスト名> のプロパティ] - [ID] タブ

次の表は、[<ホスト名> のプロパティ] ダイアログ ボックスの [ID] タブで利用できるオプションを示しています。

項目 | 操作
[サーバー名] | Web サーバーがインストールされているコンピュータの名前を入力します。サーバー名を変更した場合にだけ、この値を変更してください。
[ID] | Web サーバーについて、インターネット プロトコル (IP) アドレス、TCP ポート、ホスト ヘッダー名が表示されます。これらの値は、最初は IIS から読み込まれます。ID を追加するには [追加] をクリックします。
[SSL ID] | このボックスには、Web サーバーの IP アドレスと Secure Sockets Layer (SSL) ポートが表示されます。これらの値は、最初は IIS から読み込まれます。SSL ID を追加するには [追加] をクリックします。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


[<ホスト名> のプロパティ] - [ログ ファイル] タブ

このダイアログ ボックスは、データ ウェアハウスにインポートする Web サーバー ログ ファイルを構成するために使用します。

注

  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスがオンになっている場合は、[新しいログ期間] プロパティと [ログ ファイル マスク] プロパティのどちらか一方のみ設定できます。両方を同時に使用することはできません。
  • [<アプリケーション名> のプロパティ] ダイアログ ボックスで [ログ ファイル名と場所の同期] チェック ボックスがオンになっている場合、[<ホスト名> のプロパティ] ダイアログ ボックスの [ログ ファイルのディレクトリ] ボックスの値は IIS の値で上書きされます。

次の表は、[<ホスト名> のプロパティ] ダイアログ ボックスの [ログ ファイル] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[新しいログ期間] | IIS Web サイトが、ログ ファイルへの書き込みを始めてから新しいログ ファイルを作成するまでの間隔を指定します。この値は、最初は IIS から読み込まれます。
[ログ ファイル マスク] | 独自の交換を指定します。ログ ファイルの交換とは、IIS Web サイトが、ログ ファイルを書き込み始めてから新しいログ ファイルを作成するまでの間隔を示します。このボックスの内容は省略可能です。 このボックスでの指定例など、詳細については「Web サーバーのログ ファイル マスクを指定する」を参照してください。
[ログ ファイルのディレクトリ] | IIS Web サイトで発生したイベントが記録されるログ ファイルのパスを入力します。たとえば、「C:\Winnt\System32\LogFiles\Log1」とします。この値は、最初は IIS から読み込まれます。ただし、Web のログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、Web サーバーのログ インポート DTS タスクを実行する前に、ここでディレクトリを指定しておいてください。
[ログ ファイルのコード ページ] | このボックスには、ログ ファイルのコード ページが表示されます。必要に応じて、ボックスの一覧から新しいコード ページを選択します。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。
[URL エンコーディングのコード ページ] | このボックスには、すべての URL で使われるコード ページが表示されます。必要に応じて、ボックスの一覧から新しいコード ページを選択します。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。

関連項目

Web サーバーのログ ファイル マスクを指定する


[Web サイト構成] ダイアログ ボックス

このダイアログ ボックスは、Web サーバーに対して IP アドレス、TCP ポート、およびホスト ヘッダー名を追加したり、それらを編集したりするために使用します。

注

  • ホスト ヘッダーは、認証フィルタを実装した複数のサイトを配置する場合は使用できません。Microsoft インターネット インフォメーション サービス (IIS) では、Secure Sockets Layer (SSL) を利用する場合にはホスト ヘッダーの使用をサポートしていません。一方、認証フィルタは、基本的なセキュリティ保護を目的としたものであっても、ログイン資格情報をサーバーへ渡す際に SSL を必要とします。

次の表は、[Web サイト構成] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[IP アドレス] | Web サーバーの IP アドレスを入力します。 [(未使用のものすべて)] という値は、コンピュータには割り当てられているものの、特定のサイトには割り当てられていないアドレスを指しています。既定の Web サイトは、他のサイトに割り当てられていないすべての IP アドレスを使います。割り当てられていない IP アドレスを使用できるのは、1 つのサイトだけです。
[TCP ポート] | この Web サイトのポート アドレスを入力します。既定のポート番号は 80 です。
[ホスト ヘッダー名] | Web サイトのホスト ヘッダー名を入力します。ホスト ヘッダーを使って 1 つの IP アドレスに別のサイトを追加する場合は、ホスト ヘッダー名を割り当てる必要があります。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


データ ウェアハウス構成ウィザード

新しいデータ ウェアハウスを作成するには、データ ウェアハウス構成ウィザードを使います。このウィザードは、既存のデータ ウェアハウスを構成するためのものではありません。

データ ウェアハウス構成ウィザードを起動するには

  • [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[データ ウェアハウス構成ウィザード] をクリックします。

[Commerce Server データ ウェアハウス構成ウィザード] ダイアログ ボックスでの作業を完了すると、データ ウェアハウス構成ウィザードによって次の処理が行われます。

  1. データ ウェアハウスのインストール。
  2. SQL Server データベースの作成。データベースの名前は、既定では <Commerce Server のサイト名>_dw になります。
  3. OLAP データベースの作成。データベースの名前は、既定では <Commerce Server のサイト名>_dw になります。
  4. dw.pup パッケージのアンパッケージ。このパッケージには、分析モジュールのみを備えた Commerce Server ビジネス デスク アプリケーションが収められています。このビジネス デスク アプリケーションの名前は、既定では <Commerce Server のサイト名>bizdesk です。

次の表は、[データ ウェアハウス構成ウィザード] ダイアログ ボックスで利用できるオプションを示しています。

項目 | 操作
[Commerce Server サイト] | 作成するサイトの名前を入力するか、ボックスの一覧から名前を選択します。ここで指定するサイトは、新しいデータ ウェアハウスでサポートされるサイトです。
[データ ウェアハウス] 作成するデータ ウェアハウスのグローバル リソースの名前を入力します。このリソースは、データ ウェアハウス データベース <Commerce Server のサイト名>_dw を指します。[データベース サーバー] ボックスでデータベースの名前を指定する場合は、そのデータベースを指します。

既存データ ウェアハウスのグローバル リソース名は入力しないでください。

注

  • [Commerce Server サイト] ボックスで既存のサイトを選択し、このボックスで新しいデータ ウェアハウスのグローバル リソース名を入力した場合、新しいデータ ウェアハウス リソースはその既存サイトに割り当てられます。既存のデータ ウェアハウスのグローバル リソースがある場合は、置き換えられます。
[Commerce 以外のアプリケーション] | 新しいデータ ウェアハウスによって処理される、Commerce 以外のアプリケーションや Web サーバーを追加する場合は [構成] をクリックします。
[レポート作成サーバー] | ビジネス デスク アプリケーションが配置された Web サーバーを選択するには、[構成] をクリックします。ここで指定するサーバーは、ビジネス デスクのユーザーが使うレポートを実行するためのコンピュータです。
[データベース サーバー] データ ウェアハウス データベースが配置されている SQL Server を選択するには、[構成] をクリックします。必要に応じて、データベースの名前を指定します。データベース名を指定しない場合は、<Commerce Server のサイト名>_dw という名前が付けられます。

[データ リンク プロパティ] ダイアログ ボックスで、ログイン情報を入力します。この情報によって、ConnStr_db_analysis と ConnStr_db_dw という 2 つの接続文字列が構成されます。

これらの接続文字列については、「データ ウェアハウスの接続文字列」を参照してください。
[分析サーバー] Analysis Services がインストールされている SQL Server を選択するには、[構成] をクリックします。必要に応じて、OLAP データベースの名前を指定します。データベース名を指定しない場合は、<Commerce Server のサイト名>_dw という名前が付けられます。

[データ リンク プロパティ] ダイアログ ボックスで、ログイン情報を入力します。この情報によって、ConnStr_db_analysis と ConnStr_db_dw という 2 つの接続文字列が構成されます。

これらの接続文字列については、「データ ウェアハウスの接続文字列」を参照してください。
[インポート ウィザードの起動] データ ウェアハウス構成ウィザードの完了後にデータ ウェアハウスのインポート ウィザードを起動するには、このチェック ボックスをオンにします。

Commerce Server セットアップ プログラムの実行中にデータ ウェアハウス構成ウィザードを実行すると、コンピュータを再起動した後にデータ ウェアハウスのインポート ウィザードが起動します。

関連項目

データ ウェアハウスの接続文字列

データ ウェアハウスのインポート ウィザード


[Commerce 以外のアプリケーションと Web サーバー] ダイアログ ボックス

このダイアログ ボックスは、複数の Commerce 以外のアプリケーションを追加し、それらのアプリケーションに Commerce 以外の Web サーバーを複数追加するために使用します。

Commerce Server は、Microsoft インターネット インフォメーション サービス (IIS) が実行されていない Web サーバーや、Commerce Server コンポーネントが含まれていない Web サーバーもサポートしています。このため、Web サーバーのログ ファイルもデータ ウェアハウスにインポートできます。

  1. Commerce 以外のアプリケーションを追加するには、[Commerce 以外のアプリケーション] ボックスの [新規] をクリックします。
  2. アプリケーションを作成したら、そのアプリケーションの Web サーバーを指定するために、一番上のボックスでそのアプリケーションを選択し、[選択したアプリケーション用の Commerce 以外の Web サーバー] の [新規] をクリックします。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


[Commerce 以外のアプリケーション] - [全般] タブ

このダイアログ ボックスは、Commerce 以外のアプリケーションを構成するために使用します。アプリケーションを構成するときは、そのアプリケーションが使用する Web サーバーのプロパティも指定します。

次の表は、[Commerce 以外のアプリケーション] ダイアログ ボックスの [全般] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[このアプリケーションの Web サーバーは IIS を実行している] Commerce 以外のアプリケーションのサーバーがインターネット インフォメーション サービス (IIS) 5.0 を実行している場合は、このチェック ボックスをオンにします。

非 Commerce アプリケーションに、IIS および非 IIS の両方のサーバーを置くことはできません。
[保護なしのホスト名] アプリケーションの保護なしのリンクで使用するドメイン ネーム サーバー (DNS) の名前を入力します。

注意

  • 80 以外のポート番号を使用している場合は、保護なしのホスト名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:81」とします。ポート番号の表示や編集を行うには、[<ホスト名> のプロパティ] ダイアログ ボックスの [ID] タブで、[TCP ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。
[IIS アプリケーション パス] | IIS アプリケーションのパスを入力します。
[アプリケーション パス] | このアプリケーションの Web サーバーが IIS を実行していない場合に、アプリケーションのパスを入力します。
[HTTPS を有効にする] | アプリケーションの保護付きの HTTP ホスト (SSL) へのリンクを有効にするには、このチェック ボックスをオンにします。
[保護付きのホスト名] アプリケーションの保護付きのリンクで使用する DNS ドメイン名を入力します。

注意

  • 443 以外のポート番号を使用している場合は、保護付きのホスト名の末尾にそのポート番号を追加する必要があります。たとえば、「www.microsoft.com:441」とします。SSL ポート番号の表示や編集を行うには、[<ホスト名> のプロパティ] ダイアログ ボックスの [ID] タブで、[SSL ポート] ボックスを参照します。詳細については、「Web サーバーを構成する」を参照してください。

注

  • [HTTPS を有効にする] チェック ボックスと [保護付きのホスト名] チェック ボックスで設定した内容は、AuthManager オブジェクトによって使われます。認証フィルタによっては使われません。認証フィルタを使用する場合は、[CS Authentication のログインフォーム] プロパティを使用して、ログイン ページ用の SSL を指定します。詳細については、「CS 認証リソースのプロパティを設定する」を参照してください。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


[Commerce 以外のアプリケーション] - [Web サーバー] タブ

このダイアログ ボックスは、アプリケーションに Web サーバーを追加するために使用します。Commerce Server コンポーネントをまったく使用しない、Commerce 以外の Web サーバーも追加できます。Commerce Server コンポーネントを使用しない Web サーバーを追加する目的は、Web サーバーのログ ファイルをデータ ウェアハウスにインポートできるようにすることです。

注

  • [値の同期] を使用できるのは、[全般] タブで [このアプリケーションの Web サーバーは IIS を実行している] チェック ボックスをオンにし、かつ、IIS のユーザー インターフェイスを使用して変更を行った場合に限られます。[値の同期] を使用すると、Commerce Server マネージャと IIS を同期させることができます。

次の表は、[Commerce 以外のアプリケーション] ダイアログ ボックスの [Web サーバー] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[IIS Web サイト] | IIS Web サイトの名前 (Default Web Site など) を入力します。
[ローカル ドメイン] | ローカル ドメインの名前 (microsoft.com など) を入力します。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


[Commerce 以外の Web サーバーの新規作成] - [ID] タブ

次の表は、[Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ID] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[サーバー名] | Web サーバーがインストールされているコンピュータの名前を入力します。サーバー名を変更した場合にだけ、この値を変更してください。
[ID] | Web サーバーについて、インターネット プロトコル (IP) アドレス、TCP ポート、ホスト ヘッダー名が表示されます。これらの値は、最初は IIS から読み込まれます。値を変更するには、[編集] をクリックします。
[SSL ID] | Web サーバーの IP アドレスと SSL ポートが表示されます。これらの値は、最初は IIS から読み込まれます。値を変更するには、[編集] をクリックします。


[Commerce 以外の Web サーバーの新規作成] - [ログ ファイル] タブ

次の表は、[Commerce 以外の Web サーバーの新規作成] ダイアログ ボックスの [ログ ファイル] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[新しいログ期間] | IIS Web サイトが、ログ ファイルへの書き込みを始めてから新しいログ ファイルを作成するまでの間隔を指定します。この値は、最初は IIS から読み込まれます。
[ログ ファイル マスク] | 独自の交換を指定します。ログ ファイルの交換とは、IIS Web サイトが、ログ ファイルを書き込み始めてから新しいログ ファイルを作成するまでの間隔を示します。このボックスの内容は省略可能です。 このボックスでの指定例など、詳細については「Web サーバーのログ ファイル マスクを指定する」を参照してください。
[ログ ファイルのディレクトリ] | IIS Web サイトで発生したイベントが記録されるログ ファイルのパスを入力します。たとえば、「C:\Winnt\System32\LogFiles\Log1」とします。この値は、最初は IIS から読み込まれます。ただし、Web のログ ファイルを Web サーバーから管理用の格納場所にコピーする場合は、Web サーバーのログ インポート DTS タスクを実行する前に、ここでディレクトリを指定しておいてください。
[ログ ファイルのコード ページ] | ログ ファイルのコード ページが表示されます。必要に応じて、ボックスの一覧から新しいコード ページを選択します。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。
[URL エンコーディングのコード ページ] | すべての URL で使われるコード ページが表示されます。必要に応じて、ボックスの一覧から新しいコード ページを選択します。 IIS 5.0 では、システムのコード ページがサポートされています。IIS の将来のリリースでは、UTF-8 がサポートされる予定です。

関連項目

Web サーバーのログ ファイル マスクを指定する


[接続情報] ダイアログ ボックス

このダイアログ ボックスは、Web サーバーに対して IP アドレス、TCP ポート、およびホスト ヘッダー名を追加したり、それらを編集したりするために使用します。

注

  • ホスト ヘッダーは、認証フィルタを実装した複数のサイトを配置する場合は使用できません。Microsoft インターネット インフォメーション サービス (IIS) では、Secure Sockets Layer (SSL) を利用する場合にはホスト ヘッダーの使用をサポートしていません。一方、認証フィルタは、基本的なセキュリティ保護を目的としたものであっても、ログイン資格情報をサーバーへ渡す際に SSL を必要とします。

次の表は、[接続情報] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[IP アドレス] | Web サーバーの IP アドレスを入力します。 [(未使用のものすべて)] という値は、コンピュータには割り当てられているものの、特定のサイトには割り当てられていないアドレスを指しています。既定の Web サイトは、他のサイトに割り当てられていないすべての IP アドレスを使います。割り当てられていない IP アドレスを使用できるのは、1 つのサイトだけです。
[TCP ポート] | この Web サイトのポート アドレスを入力します。既定のポート番号は 80 です。
[ホスト ヘッダー名] | Web サイトのホスト ヘッダー名を入力します。ホスト ヘッダーを使って 1 つの IP アドレスに別のサイトを追加する場合は、ホスト ヘッダー名を割り当てる必要があります。

関連項目

Web サーバーを構成する

アプリケーションに非 Commerce の Web サーバーを追加する

サイトに非 Commerce のアプリケーションを追加する


データ ウェアハウスの UI ヘルプ

ここでは、Commerce Server 2002 データ ウェアハウス リソースに関する、状況依存のヘルプ トピックについて説明します。これらのトピックをデータ ウェアハウス リソースのユーザー インターフェイスから参照するには、データ ウェアハウス リソースの各ダイアログ ボックスの [ヘルプ] をクリックします。

ここでは、次のトピックについて説明します。

  • [データ ウェアハウスのプロパティ] - [SQL Server] タブ
  • [データ ウェアハウスのプロパティ] - [分析サーバー] タブ
  • [データ ウェアハウスのプロパティ] - [時刻] タブ


[データ ウェアハウスのプロパティ] - [SQL Server] タブ

このダイアログ ボックスは、SQL Server のデータ ウェアハウス データベースへの 2 つの接続文字列を構成するために使用します。

  • ConnStr_db_analysis このクライアント側の接続文字列は、動的レポートでのピボットテーブルによってのみ、使用されます。クライアントはこの接続文字列にアクセスして、動的レポートが表示されるときにソースを表示できます。したがって、この接続文字列は、このダイアログ ボックスで [SQL セキュリティ] を指定した場合でも、またはデータ ウェアハウス リソースをアンパックする場合でも、既定で Windows 統合セキュリティを使用します。

    この接続文字列では Windows 統合セキュリティが使用されるので、SQL Server のアクセス許可を持っていない Windows ユーザーは動的 SQL レポートを実行できません。

  • ConnStr_db_dw このサーバー側の接続文字列は、可用性の高いビジネス分析を構成するために提供されています。データ ウェアハウス リソースをアンパックする場合に、最初にこの接続文字列を設定します。この接続文字列には、管理者特権があります。

    この接続文字列では、Windows 統合セキュリティと SQL セキュリティのどちらを使用するかを選択できます。

これらの接続文字列については、「データ ウェアハウスの接続文字列」を参照してください。

次の表は、[データ ウェアハウスのプロパティ] ダイアログ ボックスの [SQL Server] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[SQL Server 認証] | Connstr_db_dw 接続文字列の場合、SQL セキュリティを使うには、このオプションを選択します。 Connstr_db_analysis 接続文字列の場合、SQL Server 認証は使用されません。
[Windows NT 認証] | Connstr_db_dw 接続文字列の場合、Windows NT 認証を使うには、このオプションを選択します。 既定では、Connstr_db_analysis 接続文字列の場合は必ず Windows 統合認証が使用されます。
[ユーザー ID] | SQL Server 認証に使うユーザー ID を入力します。
[パスワード] | SQL Server 認証に使うパスワードを入力します。
[サーバー] | データ ウェアハウス データベースを格納する SQL Server の名前を入力します。
[データベース] | SQL Server のデータ ウェアハウス データベースの名前を入力します。

関連項目

データ ウェアハウスの接続文字列

HTTPS 経由で分析サーバーにアクセスする

データ ウェアハウスの接続文字列を構成する

管理データベースからデータ ウェアハウスの接続文字列を読み取るためのクエリ

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

データ ウェアハウスのパスワードを変更する


[データ ウェアハウスのプロパティ] - [分析サーバー] タブ

このダイアログ ボックスは、分析サーバー (OLAP) データベースへの 3 つの接続文字列を構成するために使用します。

  • ConnStr_OLAP このサーバー側の接続文字列は、可用性の高いビジネス分析を構成するために提供されています。データ ウェアハウス リソースをアンパックする場合に、この接続文字列を設定します。この接続文字列には、管理者特権があります。

    既定では、OLAP データベースが存在するサーバーの Windows ドメインのメンバには、Commerce Server 2002 の OLAP キューブへのクエリ (読み取り) アクセス許可があります。

  • ConnStr_OLAP_HA この接続文字列は、可用性の高いインストール環境および準備環境で OLAP データベースにアクセスするために使用されます。この接続文字列は、利用することはできますが、現在、Commerce Server ビジネス デスクの分析モジュールによって参照されません。
  • ConnStr_OLAP_Client このクライアント側の接続文字列は、動的レポートでのピボットテーブルによってのみ、使用されます。クライアントはこの接続文字列にアクセスして、動的レポートが表示されるときにソースを表示できます。したがって、この接続文字列は、このダイアログ ボックスで [SQL セキュリティ] を指定した場合でも、またはデータ ウェアハウス リソースをアンパックする場合でも、既定で Windows 統合セキュリティを使用します。

    既定では、OLAP データベースが存在するサーバーの Windows ドメインのメンバには、Commerce Server 2002 の OLAP キューブへのクエリ (読み取り) アクセス許可があります。

    注

    • ConnStr_OLAP_Client 接続文字列では、HTTPS および基本認証を使用することをお勧めします。ユーザー ID とパスワードは、Analysis Services コンピュータ上の有効な Windows ユーザーのもので、<ドメイン名>\<ユーザー ID> という形式であれば、どれでもかまいません。たとえば、REDMOND\SeanChai となります。OLAP キューブだけにクエリを実行するアクセス許可を持つ新しいユーザー アカウントを作成できます。

これらの接続文字列については、「データ ウェアハウスの接続文字列」を参照してください。

次の表は、[データ ウェアハウスのプロパティ] ダイアログ ボックスの [分析サーバー] タブで利用できるオプションとその機能を示しています。

[プライマリ分析サーバー] セクション

ConnStr_OLAP 接続文字列を構成するには、このセクションを使います。

項目 | 操作
[サーバー] | 動的レポートに使用される OLAP データベースを格納する分析サーバーの名前を入力します。
[データベース] | 動的レポートに使用される OLAP データベースの名前を入力します。

[セカンダリ分析サーバー] セクション

ConnStr_OLAP_HA 接続文字列を構成するには、このセクションを使います。

項目 | 操作
[サーバー] | 動的レポートに使用される OLAP データベースを格納するセカンダリ分析サーバーの名前を入力します。
[データベース] | 動的レポートに使用されるセカンダリ OLAP データベースの名前を入力します。

[クライアント接続] セクション

ConnStr_OLAP_Client 接続文字列を構成するには、このセクションを使います。ビジネス デスクのユーザーが、インターネット インフォメーション サービス (IIS) を通じて分析サーバーに接続 (OLAP データベースにアクセス) することによって動的レポートを実行できるようにすることが可能です。この接続方法を構成すると、PivotTable サービスがファイアウォールまたはプロキシ サーバーを通過して分析サーバーに到達できます。

この機能を使うために必要な追加の手順については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

項目 | 操作
[HTTP を使用して接続する] | ユーザーが IIS 経由で分析サーバーに接続できるようにする場合にオンにします。
[SSL を使用] | Secure Sockets Layer (SSL) を使って安全なチャネルで接続を暗号化して伝送する場合にオンにします。 オンにすることをお勧めします。
[ユーザー ID] | 有効な Windows ユーザー ID を <ドメイン名>\<ユーザー> という形式で入力します。たとえば、「REDMOND\SeanChai」と入力します。OLAP キューブだけにクエリを実行するアクセス許可を持つ新しいユーザー アカウントを作成できます。
[パスワード] | 有効な Windows パスワードを入力します。
[サーバー] | 分析サーバーの名前を入力します。
[データベース] | データ ウェアハウスの OLAP データベースの名前を入力します。

関連項目

データ ウェアハウスの接続文字列

HTTPS 経由で分析サーバーにアクセスする

データ ウェアハウスの接続文字列を構成する

管理データベースからデータ ウェアハウスの接続文字列を読み取るためのクエリ

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

データ ウェアハウスのパスワードを変更する


[データ ウェアハウスのプロパティ] - [時刻] タブ

このダイアログ ボックスは、インポートされる時刻データにデータ ウェアハウスが適用するタイム ゾーンや開始曜日を構成するために使用します。

既定では、Microsoft SQL Server のタイム ゾーンおよび開始曜日がデータ ウェアハウスに継承されます。ただし、インポートされる時刻データにデータ ウェアハウスが適用するタイム ゾーンや開始曜日を構成することができます。

注

  • SQL Server の開始する曜日はレポートで使用されます。[データ ウェアハウスのプロパティ] ダイアログ ボックスで設定した開始する曜日は、Web ログ ファイルから 1 週間ごとにインポートされるデータを集計するために使われます。

次の表は、[データ ウェアハウスのプロパティ] ダイアログ ボックスの [時刻] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[適用するタイム ゾーン] | ボックスの一覧からタイム ゾーンを選択します。
[開始する曜日] | ボックスの一覧から開始する曜日を選択します。

関連項目

既定の Web サイト プロパティをインポート用に構成する

インポート用の Web ログ ファイルを構成する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスにインポートするデータを指定する


データ ウェアハウス タスクの履歴

この画面を使って、DTS タスクの状態を表示します。

タスクの履歴を表示するには

  • [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce Server マネージャ] を展開します。次に [グローバル リソース] を展開し、タスクの履歴を表示するデータ ウェアハウスを展開します。次に [タスクの履歴] をクリックします。

次の表は、[タスクの履歴] 画面の列を示しています。

項目 | 操作
[説明] | 状態を表示した DTS タスクの説明です。
[開始時刻] | DTS タスクの実行が開始された時刻です。
[終了時刻] | DTS タスクの実行が終了した時刻です。
[状態] | DTS タスクの現在の状態です。
[サイト名/データ ウェアハウス名] | DTS タスクに関連付けられているサイトまたはデータ ウェアハウスの名前です。
[完了 (%)] | DTS タスクの処理がどの程度完了したかを表す割合です。

次の表は、データ ウェアハウス リソースに関連付けられたタスクを実行したときに、[タスクの履歴] に表示される可能性がある状態の一覧です。

状態 | 説明
[成功] | DTS タスクは正常に完了しました。
[中止] | DTS タスクは取り消されたか、失敗しました。
[完了 (エラーあり)] | DTS タスクは取り消されたか、失敗しました。
[未完了] | DTS タスクは失敗しました。

関連項目

DTS タスクを再試行する

データ ウェアハウスのインポート処理のトラブルシューティング

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

データ ウェアハウスに関するヒント集


データ ウェアハウスのインポート ウィザード

データ ウェアハウスのインポート ウィザードは、データ ウェアハウスにデータをインポートし、Commerce Server ビジネス デスクの分析レポートを実行できるようにデータ ウェアハウスを準備するために使用します。

データ ウェアハウスのインポート ウィザードを起動するには

  • [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[データ ウェアハウスのインポート ウィザード] をクリックします。

(データ ウェアハウス構成ウィザードの実行後に、データ ウェアハウスのインポート ウィザードが自動的に起動するように設定することもできます。詳細については、「データ ウェアハウス構成ウィザード」を参照してください。

データ ウェアハウスのインポート ウィザードを完了すると、どのデータをインポートするか、およびいつインポートするかを指定する DTS パッケージが作成されます。

重要

  • データ ウェアハウスのインポート ウィザードでは、パッケージは常にローカルの SQL Server に保存されます。したがって、ローカルの SQL Server をあらかじめ起動しておく必要があります。
  • Windows 認証を利用するようにサイトを構成している場合、データ ウェアハウスのインポート ウィザードを起動してパッケージを保存するためには、アカウントに msdb データベースと sysDTSPackage オブジェクトについての SELECT アクセス許可、INSERT アクセス許可、および UPDATE アクセス許可が付与されている必要があります。msdb データベースは、SQL Server Agent が警告とジョブのスケジュールを設定するときに使われます。また、DTS パッケージを保存するときにアクセスされます。

ここでは、次のトピックについて説明します。

  • [インポート オプション] ダイアログ ボックス
  • [データをインポートするモードを指定します] ダイアログ ボックス
  • [ログ ファイルの場所] ダイアログ ボックス
  • [ログ ファイル] ダイアログ ボックス
  • [インポートの実行オプション] ダイアログ ボックス
  • [DTS パッケージを実行しています] ダイアログ ボックス


[インポート オプション] ダイアログ ボックス

このダイアログ ボックスは、データのインポート対象にするサイト、およびデータ ウェアハウスにインポートするサイト データの種類を選択するために使います。

次の表は、各インポート オプションを示しています。

インポート オプション | 説明
Web サーバー ログ Web サーバーで生成された Web ログ ファイル データをインポートします。Web ログ ファイル データは、ユーザーがサイトを訪問し、サイト ページへのリンクをクリックしたときに取得されます。Web ログ ファイルからデータ ウェアハウスにインポートするデータの例としては、次のものがあります。
  • ユーザーがサイトを訪問し、閲覧した時間の合計
  • ユーザーがこのサイトを訪問する直前にアクセスしていた、参照元のサイト
  • サイト訪問中にユーザーがクリックした広告
  • サイトを訪問したユーザーに掲示された広告
  • ある広告が掲示されたユーザーの総数

注

  • Web ログ ファイルは、World Wide Web Consortium (W3C) の拡張 Web ログ ファイル形式に準拠する必要があります。Apache ログまたは Lotus ログをインポートする場合は、インポートする前にそれらのログを W3C 拡張 Web ログ ファイル形式に変換する必要があります。

Web サーバーのログ ファイル データに基づく Commerce Server レポートの一覧については、「Web ログ ファイル データに基づくレポート」を参照してください。
IP アドレスの解決 | ログ ファイルからインポートした IP アドレスをドメイン名に変換します。たとえば、198.105.232.4 は www.microsoft.com になります。このように変換することによって、レポートを読む場合にデータを理解しやすくなります。
商品カタログ Commerce Server のカタログ データベース内の、商品名、説明、色、サイズなどの商品に関する多様なデータをインポートします。

商品や売り上げ分析に関するレポートを正常に表示するには、カタログ データが必要です。カタログ データをデータ ウェアハウスにインポートしない場合、レポート内で商品を識別する方法は、在庫保管単位 (SKU) の数値だけになります。

どのカタログ プロパティをデータ ウェアハウスにインポートするかを指定するには、Commerce Server ビジネス デスクのカタログ定義デザイナ モジュールを使用します。詳細については、「データ ウェアハウスにインポートするデータを指定する」を参照してください。
トランザクション | 注文や注文番号などのトランザクション データをインポートします。このデータは、商品ごとの販売状況や売り上げ金額、またはユーザーごとの購入金額を調べるために、分析レポートで使用されます。
プロファイル ユーザー名、アドレス、登録データなどのプロファイル データをインポートします。

どのプロファイル プロパティをデータ ウェアハウスにインポートするかを指定するには、ビジネス デスクのプロファイル定義デザイナ モジュールを使用します。詳細については、「データ ウェアハウスにインポートするデータを指定する」を参照してください。
キャンペーン | 広告主、キャンペーン、キャンペーン項目データなどのキャンペーン情報をインポートします。

これらの各インポート オプションは、Commerce Server データ変換サービス (DTS) タスクに対応しています。必要に応じて、データ ウェアハウスのインポート ウィザードを使わずに、これらの各 DTS タスクを手動で構成できます。詳細については、「データ ウェアハウスにデータをインポートする」を参照してください。

これらの各オプションでインポートされるデータの詳細な一覧については、「DTS タスクでの抽出/変換/読み込みプロセス」を参照してください。

関連項目

データ ウェアハウスのインポート ウィザード

Web ログ ファイル データに基づくレポート

データ ウェアハウスにインポートするデータを指定する

データ ウェアハウスにデータをインポートする

DTS タスクでの抽出/変換/読み込みプロセス


[データをインポートするモードを指定します] ダイアログ ボックス

このダイアログ ボックスは、データ ウェアハウスにすべてのデータをインポートするか、新しいデータ (最後のインポート プロセス以降変更されたデータ) だけをインポートするかを指定するために使用します。

[すべて読み込み] を選択すると、このパッケージで選択されているすべてのインポート オプションにおいて、すべてがインポートされます。

注

  • 初めてプロファイル データ、カタログ データ、またはトランザクション データをインポートするためのインポート プロセスを構成する場合は、[すべて読み込み] を選択します。
  • [すべて読み込み] モードでプロファイル データをインポートする場合には、開始日は 2000 年 1 月 1 日になります。開始日を変更するには、データ ウェアハウスのインポート ウィザードで、DTS パッケージを保存した後、そのパッケージを編集します。


[ログ ファイルの場所] ダイアログ ボックス

このダイアログ ボックスは、Web ログ ファイルの場所を指定し、ログ ファイルを生成したコンピュータおよび Web サイトにその場所を関連付けるために使用します。

このダイアログ ボックスに表示される場所から Web ログ ファイルを移動した場合にだけ、このダイアログ ボックスの値を指定します。

Web ログ ファイルの場所および関連するコンピュータと Web サイトを指定するには

  1. [場所とサーバー] ボックスで、Web ログ ファイルをインポートするアプリケーションを選択します。
  2. [ログ ファイル パス] ボックスで、 省略記号 をクリックし、選択したアプリケーションの Web ログ ファイルの場所を参照します。


[ログ ファイル] ダイアログ ボックス

このダイアログ ボックスは、インポートする Web サーバー ログ ファイルを選択するために使用します。

次の表は、インポートの条件を示しています。

インポートの条件 | 説明
[前回以降のすべてのログのインポート] | ログ ファイル マスクを適用して、最後のインポート以降に生成された新しいログ ファイルだけをインポートします。 これらのログ ファイルは、ダイアログ ボックスの [ログ ファイル名] 列に一覧表示されます。
[日付と時刻ごとのログ ファイル] | ログ ファイル マスクを適用して、指定した期間のログ ファイルだけをインポートします。 これらのログ ファイルは、ダイアログ ボックスの [ログ ファイル名] 列に一覧表示されます。
[ログ ファイルを手動で選択] | インポートするログ ファイルを選択します。 ディレクトリ内のすべてのログ ファイルが、ログ ファイル マスクが適用されずに表示されます。


[インポートの実行オプション] ダイアログ ボックス

このダイアログ ボックスは、データ ウェアハウスのインポート ウィザードを使って作成したインポート パッケージの名前を指定し、そのパッケージをいつ実行するかを指定するために使用します。

必要に応じて、次のオプションを選択します。両方選択することも可能です。

  • [インポートをすぐに実行] データ ウェアハウスのインポート ウィザードを完了すると、現在のコンピュータですぐにインポートが実行されます。

    注

    • パッケージは、[SQL Server にインポートの構成を保存] を選択した場合にだけ保存されます。
  • [SQL Server にインポートの構成を保存] インポート パッケージをカスタマイズする場合 (たとえば、プロファイル データをインポートする開始日を変更するため)、または後でインポート プロセスを実行する場合は、このオプションを選択することをお勧めします。

    注

    • パッケージは、SQL Enterprise Manager の [ローカル パッケージ] フォルダに保存されます。ウィザードの実行時に SQL Enterprise Manager が開いている場合は、[ローカル パッケージ] を右クリックし、[最新の情報に更新] をクリックして、新しいパッケージを表示します。

後でインポート パッケージを手動で実行する方法については、「インポート DTS パッケージを実行する」を参照してください。


[DTS パッケージを実行しています] ダイアログ ボックス

このダイアログ ボックスは、[インポートの実行オプション] ダイアログ ボックスで [インポートをすぐに実行] を選択した場合に表示されます。

データ ウェアハウスのインポート ウィザードでは、実行する各作業が表示されます。

注

  • DTS タスクが失敗すると、エラー メッセージが表示されます。[OK] をクリックして、エラー メッセージを閉じます。インポート処理のトラブルシューティングについては、「データ ウェアハウスのインポート処理のトラブルシューティング」を参照してください。


インポート DTS パッケージを実行する

データ ウェアハウスのインポート ウィザードを使ってインポート DTS パッケージを作成する場合、そのパッケージを SQL Server に保存して、後で実行することができます。インポート パッケージを実行するには、次の操作を行います。

インポート パッケージを実行するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. Commerce Server マネージャで、[Microsoft SQL Server] を展開し、[SQL Server グループ] を展開します。次に、データ ウェアハウスがインストールされているサーバーを展開します。
  3. [データ変換サービス] を展開し、[ローカル バッケージ] をクリックします。
  4. パッケージを右クリックし、[パッケージの実行] をクリックします。
  5. [パッケージ実行中] ダイアログ ボックスで、失敗したタスクがあるかどうかを調べます。

    注

    • DTS タスクが失敗すると、エラー メッセージが表示されます。[OK] をクリックして、エラー メッセージを閉じます。インポート処理のトラブルシューティングについては、「データ ウェアハウスのインポート処理のトラブルシューティング」を参照してください。
  6. [終了] をクリックして、[パッケージ実行中] ダイアログ ボックスを閉じます。


DTS タスクの UI ヘルプ

ここでは、Commerce Server 2002 データ変換サービス (DTS) タスクに関する、状況依存のヘルプ トピックについて説明します。ヘルプ トピックを表示するには、Commerce Server 2002 DTS タスクのダイアログ ボックスで、[ヘルプ] をクリックします。

ここでは、次のトピックについて説明します。

  • [DW プロパティの同期] ダイアログ ボックス
  • [Web サーバー ログのインポート] ダイアログ ボックス
  • [Web サーバー ログ ファイル] ダイアログ ボックス
  • [詳細 Web ログ インポートのプロパティ] - [除外] タブ
  • [除外] ダイアログ ボックス
  • [詳細 Web ログ インポートのプロパティ] - [推論] タブ
  • [詳細 Web ログ インポートのプロパティ] - [クエリ文字列] タブ
  • [クエリ文字列] ダイアログ ボックス
  • [詳細 Web ログ インポートのプロパティ] - [既定のファイル] タブ
  • [詳細 Web ログ インポートのプロパティ] - [ログ ファイル] タブ
  • [詳細 Web ログ インポートのプロパティ] - [再開] タブ
  • [トランザクション インポート プロパティ] ダイアログ ボックス
  • [カタログ インポート プロパティ] ダイアログ ボックス
  • [削除タスク] ダイアログ ボックス
  • [IP 解決プロパティ] ダイアログ ボックス
  • [レポートの準備のプロパティ] ダイアログ ボックス


[DW プロパティの同期] ダイアログ ボックス

管理データベースにあるサイト構成データをデータ ウェアハウスにインポートするには、構成の同期 DTS タスクを使用します。このタスクは、[<アプリケーション名> のプロパティ] ダイアログ ボックスの [値の同期] での処理とは異なります。このボタンをクリックすると、値がインターネット インフォメーション サービス (IIS) メタベースから管理データベースに読み込まれ、次に管理データベースからデータ ウェアハウスに読み込まれます。詳細については、「アプリケーションを構成する」を参照してください。

パフォーマンスを向上させるためには、サイトのトポロジ設定が記録されるサイト構成データを、必要になったときに毎回管理データベースから読み込むのではなく、データ ウェアハウスに格納しておきます。

データ ウェアハウスは、1 つのサイトと同期させることも、すべてのサイトと同期させることもできます。データをインポートまたは削除する DTS タスクを実行するには、あらかじめ構成の同期 DTS タスクを実行しておく必要があります。

このタスクを構成および実行する方法の詳細については、「構成の同期 DTS タスクを実行する」を参照してください。

注

  • このタスクは、いったん開始するとキャンセルできません。[キャンセル] ボタンを押すことはできますが、押してもタスクは終了しません。

次の表は、[DW プロパティの同期] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[操作レベル] ボックスの一覧から、次のいずれかを選択します。
  • 1 つのサイトをデータ ウェアハウスと同期させるには、[サイトのレベル] を選択します。
  • すべてのサイトをデータ ウェアハウスと同期させるには、[データ ウェアハウスのレベル] を選択します。
[サイト名] | ボックスの一覧から、データ ウェアハウスと同期するサイトを選択します。
[データ ウェアハウス名] | ボックスの一覧から、サイトと同期させるデータ ウェアハウスを選択します。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

構成の同期 DTS タスクを実行する

構成の同期 DTS タスクでの ETL プロセス

構成の同期 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

DTS タスクを実行するためのワークフロー


[Web サーバー ログのインポート] ダイアログ ボックス

注

  • アプリケーションやログ ファイルが複数ある場合は、ユーザー インターフェイスを使わずに、スクリプトを使って Web サーバー ログ インポート DTS タスクを構成します。詳細については、「Web サーバー ログ インポート DTS タスクのスクリプト」を参照してください。

Web サーバー ログ インポート DTS タスクを使用すると、Web サーバーで生成された Web ログ ファイル データを Commerce Server データ ウェアハウスにインポートできます。Web サーバー ログ インポート DTS タスクを使って、インポートするログ ファイルの名前とパスを指定します。Web ログ ファイルは、World Wide Web Consortium (W3C) の拡張 Web ログ ファイル形式に準拠する必要があります。

Web サーバー ログ インポート DTS タスクを構成および実行する方法の詳細については、「データ ウェアハウスに関するヒント集」を参照してください。

インポート処理のトラブルシューティングについては、「データ ウェアハウスのインポート処理のトラブルシューティング」を参照してください。

関連項目

[ログ ファイルの場所] タブ

[インポートの条件] タブ

[再開の詳細] タブ

次の表は、[Web サーバー ログのインポート] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[操作レベル] 指定したサイトについてのログ ファイルのみをインポートするには、ボックスの一覧の [サイトのレベル] を選択します。

データ ウェアハウスに関連付けられている全サイトのログをインポートするには、[データ ウェアハウスのレベル] を選択します。

[サイト] | インポートする Web サーバー ログを含む Web サイトをボックスの一覧から選択します。
[データ ウェアハウス] | あるデータ ウェアハウスに関連付けられている全サイトのログをインポートするには、そのデータ ウェアハウスをボックスの一覧から選択します。
[再試行回数] データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。

注

  • 次の Web ログ インポート プロセスを開始するまでに、1 つの Web ログ インポート プロセスを何回再開するかを指定するには、[拡張] をクリックし、[再開] タブをクリックします。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。
[拡張] | [詳細 Web ログ インポートのプロパティ] ダイアログ ボックスを開くときにクリックします。

[ログ ファイルの場所] タブ

次の表は、[Web サーバー ログのインポート] ダイアログ ボックスの [ログ ファイルの場所] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[ログ ファイルの場所] | ログ ファイルの一覧をアプリケーション名、コンピュータ名、IIS Web サイト名、またはログ ファイル パスに基づいて並べ替えるには、それぞれの列見出しをクリックします。
[ログ ファイルのパス] | インポートする Web ログ ファイルのパスを入力するか、省略記号 [...] ボタンをクリックしてログ ファイルのパスを参照します。
[ログ ファイル] ボタン | [Web サーバー ログ ファイル] ダイアログ ボックスを開くときにクリックします。[Web サーバー ログ ファイル] ボックスの一覧から、インポートする Web ログ ファイルを選択します。[OK] をクリックすると [Web サーバー ログのインポート] ダイアログ ボックスに戻ります。

[インポートの条件] タブ

次の表は、[Web サーバー ログのインポート] ダイアログ ボックスの [インポートの条件] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[前回以降のすべてのログのインポート] | 前回インポートが行われた後に作成されたログ ファイルのみをインポートするときに選択します。
[日付/時刻の期間を指定したログの記録] | [開始日/時刻] から [終了日/時刻] までの間に作成されたログ ファイルのみをインポートするときに選択します。
[開始日/時刻] | ログ ファイルをインポートする範囲の最初の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。
[終了日/時刻] | ログ ファイルをインポートする範囲の最後の日付と時刻を入力します。このオプションは、[日付/時刻の期間を指定したログの記録] を選択した場合にのみ使用できます。

[再開の詳細] タブ

インポート処理のジョブが失敗した場合やキャンセルされた場合は、[再開の詳細] タブに、インポートに失敗したログ ファイル、サーバー グループ、およびサイト名が一覧表示されます。

次の表は、[Web サーバー ログのインポート] ダイアログ ボックスの [再開の詳細] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[ファイル名] | ログ インポート ファイルの名前です。
[サーバー グループ] | サーバー グループの名前です。
[状態] ログ インポート プロセスの状態です。表示される可能性のある状態は、次の 4 つです。
  • [無効なファイルです] ファイルの中に有効なインポート対象エントリがありません。たとえば、ファイルが空の場合や、ファイルにヘッダーしか含まれていない場合です。
  • [完了] ログ ファイルは正常にインポートされました。
  • [開始していません] ログ ファイルはまだインポートされていません。
  • [中断] ログ ファイルは一部だけインポートされました。
[サイト名] | Web ログ ファイルに関連付けられたサイトの名前です。
[無視] ボタン 失敗したログ インポート タスクを削除し、引き続き新しいログ インポート タスクを実行するときにクリックします。このオプションを選択した場合は、前のインポート ジョブを再開できなくなります。

それ以前の、未完了のログ インポート ジョブについての状態メッセージは、すべて削除されます。
[再開] ボタン | 未完了のログ インポート タスクを再開するときにクリックします。この操作が完了するまでは、他のログ インポート タスクを実行できません。

関連項目

Web サーバー ログ インポート DTS タスクの実行に関するヒント集

データ ウェアハウスのインポート処理のトラブルシューティング

Web サーバー ログ インポート DTS タスクのスクリプト

Web サーバー ログ インポート DTS タスクを構成する

Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを実行する

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

Web ログ ファイル データに基づくレポート

データ ウェアハウスにインポートするデータを指定する


[Web サーバー ログ ファイル] ダイアログ ボックス

このダイアログ ボックスには、インポートするログ ファイルが一覧表示されます。インポートするファイルを一覧から選択したり、インポートしないファイルについては選択を取り消したりすることができます。

インポートするログ ファイルの一覧にファイルを追加するには

  1. [Web サーバー ログ ファイル] ダイアログ ボックスの [キャンセル] をクリックします。
  2. [Web サーバー ログのインポート] ダイアログ ボックスの [ログ ファイルの場所] タブで、インポートするログ ファイルのパスを指定します。

インポート対象のログ ファイルを指定する方法の詳細については、「データ ウェアハウスに対してログ ファイルの場所を指定する」を参照してください。

関連項目

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー


[詳細 Web ログ インポートのプロパティ] - [除外] タブ

このダイアログ ボックスは、データ ウェアハウスに次のデータをインポートしないよう設定するために使用します。

  • 特定のホストからのヒット数
  • 特定のファイル形式またはファイル式の要求
  • クローラによるヒット数

詳細については、「Web ログ ファイルの除外を設定する」を参照してください。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [除外] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[フィルタによる除外の条件] 特定の除外の種類のみを表示するには、ボックスの一覧から除外の種類を選択します。選択できる除外の種類は次のとおりです。
  • [ホスト]
  • [ファイルの種類]
  • [ファイル式]
  • [クローラ]

除外カテゴリの詳細については、「Web ログ ファイルの除外を設定する」を参照してください。
[除外条件に既定のクローラ一覧を含む] | 除外の条件に既定のクローラ一覧を含めるときに選択します。
[除外の種類] | 除外の一覧を除外の種類で並べ替えるときにクリックします。
[除外] | 除外の一覧を除外の条件で並べ替えるときにクリックします。
[アプリケーション] | 除外の一覧をアプリケーション順に並べ替えるときにクリックします。
[追加] | [除外] ダイアログ ボックスを開き、新しい除外を追加するときにクリックします。
[削除] | 選択した除外を削除するときにクリックします。
[プロパティ] | 選択した除外のプロパティを表示できる [除外] ダイアログ ボックスを開くときにクリックします。

関連項目

Web ログファイルの除外を設定する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを実行する

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

データ ウェアハウスのインポート処理のトラブルシューティング


[除外] ダイアログ ボックス

このダイアログ ボックスは、データ ウェアハウスに次のデータをインポートしないよう設定するために使用します。

  • 特定のホストからのヒット数
  • 特定のファイル形式またはファイル式の要求
  • クローラによるヒット数

詳細については、「Web ログ ファイルの除外を設定する」を参照してください。

次の表は、[除外] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[除外カテゴリの選択] 追加するインポートの除外の種類をボックスの一覧から選択します。除外できるデータの種類は次のとおりです。
  • [ホスト]
  • [ファイルの種類]
  • [ファイル式]
  • [クローラ]

除外カテゴリの詳細については、「Web ログ ファイルの除外を設定する」を参照してください。
[名前] | Commerce Server でログ ファイルの検索に使用できる名前を入力します。入力する名前にスペースは使用できません。
[サイト内のすべてのアプリケーション] | サイト内のすべてのアプリケーションからのデータを除外するときに選択します。
[サイト内の選択されたアプリケーション] | サイト内でデータを除外するアプリケーションを指定するときに選択します。
[すべて選択] | 一覧に表示されているすべてのアプリケーションからのデータを除外するときに選択します。
[すべて選択解除] | 一覧表示されたすべてのアプリケーションの選択を解除するときに選択します。

関連項目

Web ログファイルの除外を設定する

Web サーバー ログ インポート DTS タスクを構成する

データ ウェアハウスに関するヒント集

Web サーバー ログ インポート DTS タスクでの ETL プロセス

Web サーバー ログ インポート DTS タスクを実行する

大規模サイトの Web サーバー ログ インポート DTS タスクを実行する

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する


[詳細 Web ログ インポートのプロパティ] - [推論] タブ

このダイアログ ボックスは、インポート中に設定したユーザー数と訪問数の推論を、組織の分析ニーズに合うようにカスタマイズするために使用します。Commerce Server は、Web ログ ファイルのプロパティに基づいてユーザーを識別しようとします。推論とは、Web ログ ファイルに記録されたユーザー データと訪問データに基づいて、一意のユーザーを識別する処理です。

詳細については、「ユーザーの推論を設定する」と「訪問の推論を設定する」を参照してください。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [推論] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[訪問終了と見なすまでのアイドル時間 (分)] | 訪問が終了したと見なされるまでのアイドル時間 (分) を入力します。既定のアイドル時間は 30 分です。
[推論に Commerce Server 識別 cookie を使用] | Commerce Server 識別 cookie を使って各ユーザーを識別するときに選択します。
[推論にユーザー名を使用] | ユーザー名を使って各ユーザーを識別するときに選択します。
[カスタム cookie 識別子を使用] | カスタム cookie を使って各ユーザーを識別するときに選択します。
[新しいカスタム cookie 識別子の入力] | 推論に使うカスタム cookie 識別子を入力します。
[追加] | 新しいカスタム cookie 識別子を推論の一覧に追加するときにクリックします。
[削除] | 選択した行を推論の一覧から削除するときにクリックします。

関連項目

ユーザーの推論を設定する

訪問の推論を設定する

推論の精度

Web サーバー ログ インポート DTS タスクを構成する


[詳細 Web ログ インポートのプロパティ] - [クエリ文字列] タブ

サイトでクエリ文字列を使用する場合、クエリ文字列をログ ファイルに記録して、データ ウェアハウスにインポートできます。クエリ文字列は、サイト内で実行可能ファイルの検索や実行に使用できます。サイトで使用するクエリ文字列の一覧がある場合は、それらのクエリ文字列に関連付けられたコンテンツについてのレポートを生成できます。特に指定しない限り、クエリ文字列は統一リソース識別子 (URI) を使ってデータ ウェアハウスに保存されます。

このダイアログ ボックスは、Web サイトのクエリ文字列をインポートして、そのクエリ文字列に関連するデータを分析するために使用します。

詳細については、「Web ログ ファイルのクエリ文字列のインポート プロパティを設定する」を参照してください。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [クエリ文字列] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[クエリ文字列を URI と共に保存] | クエリ文字列を統一リソース識別子 (URI) と共に保存するときに選択します。
[クエリ文字列] | 一覧をクエリ文字列名で並べ替えるときにクリックします。
[アプリケーション] | 一覧をアプリケーション名で並べ替えるときにクリックします。
[追加] | 新しいクエリ文字列を追加できる [クエリ文字列] ダイアログ ボックスを開くときにクリックします。
[削除] | 指定したクエリ文字列を削除するときにクリックします。
[プロパティ] | 指定したクエリ文字列を編集できる [クエリ文字列] ダイアログ ボックスを開くときにクリックします。

関連項目

Web ログ ファイルのクエリ文字列のインポート プロパティを設定する

Web サーバー ログ インポート DTS タスクを構成する


[クエリ文字列] ダイアログ ボックス

サイトでクエリ文字列を使用する場合、クエリ文字列をログ ファイルに記録して、データ ウェアハウスにインポートできます。クエリ文字列は、サイト内で実行可能ファイルの検索や実行に使用できます。サイトで使用するクエリ文字列の一覧がある場合は、それらのクエリ文字列に関連付けられたコンテンツについてのレポートを生成できます。特に指定しない限り、クエリ文字列は統一リソース識別子 (URI) を使ってデータ ウェアハウスに保存されます。

このダイアログ ボックスは、Web サイトのクエリ文字列をインポートして、そのクエリ文字列に関連するデータを分析するために使用します。

詳細については、「Web ログ ファイルのクエリ文字列のインポート プロパティを設定する」を参照してください。

次の表は、[クエリ文字列] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | クエリ文字列の名前を入力します。
[サイト内のすべてのアプリケーション] | サイト内のすべてのアプリケーションからクエリ文字列をインポートするときに選択します。
[サイト内の選択されたアプリケーション] | サイト内でクエリ文字列をインポートするアプリケーションを指定するときに選択します。
[データ型の選択] ボックスの一覧からクエリのデータ型を選択します。データ型オプションには、次のものがあります。
  • [文字列] (既定値)
  • [整数]、[日付/時刻]
  • [実数]
[複数値データ型] | クエリで複数値のデータ型を使う場合に選択します。

関連項目

Web ログ ファイルのクエリ文字列のインポート プロパティを設定する

Web サーバー ログ インポート DTS タスクを構成する


[詳細 Web ログ インポートのプロパティ] - [既定のファイル] タブ

既定のファイルとは、ディレクトリ インデックス ファイルまたはホーム ページとしても知られ、ユーザーがブラウザの [アドレス] ボックスに特定のファイル名を含めずにサイトの URL を入力した場合に表示される Web ページです。たとえば、ユーザーがブラウザのアドレス ボックスに「www.microsoft.com」または「www.microsoft.com/default.htm」のどちらを入力しても www.microsoft/default.htm ページが表示されます。ただし、Web ログ ファイルでは、これら 2 つの URL を 2 つの異なるページへのヒットとしてカウントします。

このダイアログ ボックスを使用して設定しておくと、リダイレクトや複数の URL 名がある場合にも、サイトの既定のページを訪問した一意のユーザーのヒット数を正確にカウントできます。

詳細については、「Web ログの既定のファイルを設定する」を参照してください。

注

  • 既定のファイルを構成したら、データをデータ ウェアハウスにインポートする前に構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させる必要があります。構成の同期 DTS タスクを実行する方法については、「構成の同期 DTS タスクを実行する」を参照してください。
  • 非インターネット インフォメーション サービス (IIS) サーバーの場合、既定の設定は Index.html、Index.htm、および Default.htm です。これらの設定がサイトには不適切な場合は、要求カウントが正確になるように変更してください。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [既定のファイル] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[ファイル システムのパスから最上位ディレクトリを切り捨てる] | 最上位ディレクトリを付けずにファイル名文字列を表示するときに選択します。
[ディレクトリ インデックス ファイル] | ディレクトリ インデックス ファイルとして指定するファイルの名前を入力します。
[追加] | 既定のファイル一覧に新しいディレクトリ インデックス ファイルを追加するときにクリックします。
[削除] | 既定のファイルの一覧から選択したディレクトリ インデックス ファイルを削除するときにクリックします。

関連項目

Web ログの既定のファイルを設定する

Web サーバー ログ インポート DTS タスクを構成する


[詳細 Web ログ インポートのプロパティ] - [ログ ファイル] タブ

このダイアログ ボックスは、次の操作を行うために使用します。

  • ログ ファイル内に時間の重複する要求がある場合に、冗長データが発生しないようにする。
  • サイズの肥大化を防ぐ目的でログ ファイルをサーバー間で交換する場合に、データの欠落や冗長データをなくす。

時間重複と交換を設定しない場合、利用状況データを失わずにログ ファイルをデータ ウェアハウスにインポートすることはできません。ログ ファイルはサイトが稼働する限り、継続的に作成されるためです。ログ ファイルを複数のサーバーで実行する場合、単一のサーバーでログ生成の中断と再開が発生する場合、ログ ファイルを誤って再インポートする場合、またはログ ファイルを結合する場合は、期間が重複したデータがファイルに含まれることがあります。

詳細については、「"時間重複" プロパティと "交換" プロパティを設定する」を参照してください。

注

  • このダイアログ ボックスでの構成を完了したら、データをデータ ウェアハウスにインポートする前に、構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させる必要があります。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [ログ ファイル] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[レコードが重複していると判定するまでの経過時間 (分)] | ログ ファイル内のレコードが重複していると判定するまでの経過時間を分で入力します。既定の経過時間は 30 分です。
[重複が検出された場合] ログ ファイルが重複していると判定するまでの指定経過時間を過ぎた場合に実行されるアクションを選択します。
  • [すべてのレコードをインポートする] 重複している要求を含め、すべての要求をインポートします。
  • [インポートを中止する] 重複している要求を含むログ ファイルをインポートしません。他のログ ファイルはすべてインポートされます。
  • すべてのインポートを中止する 重複している要求が検出された場合、すべてのログ ファイルのインポートを中止します。
  • [レコードを廃棄して続行する] (既定値) 重複している要求をすべて破棄し、残りの要求をインポートします。
[インポートの完了時] インポート プロセス終了時にオープン ビジットに対して行うアクションを選択します。
  • [次回のインポート時にオープン訪問を保存する] (既定の設定) 1 つの継ぎ目のないログ ファイルのように実際の訪問を再構築します。このオプションは、新しいインポートのたびにキャッシュからオープン ビジットを呼び出す必要があるため、若干時間がかかります。このオプションが正しく機能するには、ログ ファイルを時間順にインポートする必要があります。
  • [データベースにオープン訪問をコミットする] ログ ファイル出力期間の最初と最後は、両方の期間にまたがる訪問が 2 回カウントされるため、訪問数が多くなります。
  • [オープン ビジットを廃棄する] ログ ファイル出力期間の終了時は、終了していない訪問が削除されるため、レポート数が少なくなります。
[キャッシュの消去] | 保存されたデータのキャッシュを消去するときにクリックします。

関連項目

"時間重複" プロパティと "交換" プロパティを設定する

構成の同期 DTS タスクでの ETL プロセス


[詳細 Web ログ インポートのプロパティ] - [再開] タブ

このダイアログ ボックスは、再開オプションの動作を指定するために使用します。再開オプションを使用すると、データ ウェアハウスで異常なインポート ログ ファイルが検出された場合に、インポート プロセス全体を自動的に停止したり、再試行がすべて失敗した後で異常なログ ファイルを削除して続行したりできます。

詳細については、「Web ログ インポートの再開プロパティを設定する」と「失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する」を参照してください。

注

  • 再開のプロパティを構成したら、データをデータ ウェアハウスにインポートする前に構成の同期 DTS タスクを実行して、サイト構成をデータ ウェアハウスと同期させる必要があります。

次の表は、[詳細 Web ログ インポートのプロパティ] ダイアログ ボックスの [再開] タブで利用できるオプションを示しています。

項目 | 操作
[再試行終了後の操作] | インポート プロセス再開の回数が上限に達した場合に実行されるアクションを選択します。
[再開の試行回数] | 失敗したインポート プロセスの再開を試行する回数を指定します。

Web ログ インポート プロセスが停止した原因に関する情報を表示するには、[Web サーバー ログのインポート] ダイアログ ボックスの [再開の詳細] タブをクリックします。

関連項目

Web ログ インポートの再開プロパティを設定する

失敗した Web サーバー ログ インポート タスクを再開、無視、または削除する

データ ウェアハウスのインポート処理のトラブルシューティング


[トランザクション インポート プロパティ] ダイアログ ボックス

トランザクション データ インポート DTS タスクを使用すると、Web サイトでユーザーが買い物バスケットに品目を追加したり買い物バスケットから品目を削除したりしたとき、および品目を購入したときに作成されるトランザクション データをインポートできます。このデータをインポートした後は、レポートを実行してデータを分析できます。

このタスクを構成および実行する方法の詳細については、「トランザクション データ インポート DTS タスクを実行する」を参照してください。

次の表は、[トランザクション インポート プロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[操作レベル] | 指定したサイトについてのログ ファイルのみをインポートするには、ボックスの一覧の [サイトのレベル] を選択します。 データ ウェアハウスに関連付けられている全サイトのログ ファイルをインポートするには、[データ ウェアハウスのレベル] を選択します。
[サイト名] | ボックスの一覧からインポートするデータを含むサイトを選択します。
[データ ウェアハウス名] | ボックスの一覧から、インポート対象のデータを含んでいるサイトに関連付けられたデータ ウェアハウスを選択します。
[増分] | 新しいトランザクション データのみをインポートするときに選択します(前回のインポートに基づきます)。
[すべて] | すべてのトランザクション データをインポートするときに選択します。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

トランザクション データ インポート DTS タスクを実行する

トランザクション データ インポート DTS タスクでの ETL プロセス

トランザクション データ インポート DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


[カタログ インポート プロパティ] ダイアログ ボックス

商品カタログ インポート DTS タスクを使用すると、カタログ データベースから商品データをインポートできます。商品データをインポートすると、トランザクション レポートには、トランザクション データで利用できる情報よりも詳細な商品情報が記載されます。レポートを実行して、商品の売り上げを分析することもできます。

このタスクを構成および実行する方法の詳細については、「商品カタログ データ インポート DTS タスクを実行する」を参照してください。

注

  • 仮想カタログ用のデータをインポートする方法については、「仮想カタログのデータをインポートする」を参照してください。
  • データ ウェアハウスのレベルで操作を行って、データ ウェアハウスに関連付けられたすべてのサイトのカタログ データをインポートする場合、同じ名前のカタログおよび商品が複数のサイトにあると、カタログのプロパティはすべて同一であるものと見なされ、処理されます。カタログのプロパティが互いに異なる場合は、サイトのレベルで操作を行う必要があります。

次の表は、[カタログ インポート プロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[操作レベル] | 指定したサイトのカタログ データのみをインポートするには、ボックスの一覧の [サイトのレベル] を選択します。 データ ウェアハウスに関連付けられている全サイトのカタログ データをインポートするには、[データ ウェアハウスのレベル] を選択します。
[サイト名] | このオプションは、サイトのレベルで操作を行う場合に表示されます。 ボックスの一覧から、インポートするカタログ データを含むサイトを選択します。
[データ ウェアハウス名] | このオプションは、データ ウェアハウスのレベルで操作を行う場合に表示されます。 ボックスの一覧から、カタログ データのインポート対象となるサイトに関連付けられたデータ ウェアハウスを選択します。
[増分の読み込み] | 前回インポート プロセスを実行した後に生成された新しいカタログ データのみをインポートするときに選択します。
[すべて読み込み] | ログ ファイル内のカタログ データをすべてインポートするときに選択します。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

仮想カタログのデータをインポートする

商品カタログ データ インポート DTS タスクを実行する

商品カタログ データ インポート DTS タスクでの ETL プロセス

商品カタログ データ インポート DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


[削除タスク] ダイアログ ボックス

データ削除 DTS タスクを使用すると、データ ウェアハウスからデータを削除できます。指定したサイトの詳細ログ ファイル データを削除するか、データ ウェアハウスに関連付けられている全サイトの詳細ログ ファイル データを削除するかを選択できます。

ログ ファイル データを削除すると、データ ウェアハウスのサイズも小さくすることができます。データ ウェアハウスにあるデータをすべて削除することもできます。たとえば、有効なデータをインポートする前に、テスト データをインポートしたデータ ウェアハウスを空にします。

このタスクを構成および実行する方法の詳細については、「データ削除 DTS タスクを実行する」を参照してください。

次の表は、[削除タスク] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[操作レベル] 指定したサイトの Web ログ ファイルのみを削除するには、ボックスの一覧の [サイトのレベル] を選択します。

データ ウェアハウスに関連付けられている全サイトの Web ログ ファイルを削除するには、[データ ウェアハウスのレベル] を選択します。

[サイト] | Web ログ ファイルのデータを削除するサイトをボックスの一覧から選択します。
[データ ウェアハウス名] | ボックスの一覧で、Web ログ ファイル データの削除対象となるデータ ウェアハウスをクリックします。
[削除の種類の選択] ボックスの一覧から削除の種類を選択します。
  • [データ ウェアハウス内のすべてのデータ] すべてのデータ (詳細データおよび要約データ) をデータ ウェアハウスから削除します。テスト データをインポートしていて、有効なデータをインポートする前にデータ ウェアハウスを空にする場合は、このオプションを選択します。
  • [Web ログ インポート] 選択した Web ログ ファイルからのデータを削除します。データ ウェアハウスのサイズを小さくするには、このオプションを選択します。
[削除のレベル] 選択した Web ログ ファイルからインポートした要約データと詳細データを両方とも削除するには、[すべてのデータ] を選択します。

選択した Web ログ ファイルからインポートした詳細データのみを削除するには、[詳細データ] を選択します。
[削除するログ] ボックスの一覧から、削除するログ ファイルを選択します。
  • [削除する特定の Web ログ インポートの選択] このオプションを選択する場合は、削除する Web ログ ファイルをボックスの一覧から選択します。
  • [現在の Web ログ インポート数の保持] このオプションを選択する場合は、保持する現在のログ ファイル数を指定します。
  • [Web ログ インポートの削除 (時間単位)] このオプションを選択する場合は、削除対象とするログ ファイルの有効期限として、1 日、1 週、1 か月、または 1 年のいずれかを指定します。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

データ削除 DTS タスクを実行する

データ削除 DTS タスクでの ETL プロセス

データ削除 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


[IP 解決プロパティ] ダイアログ ボックス

IP 解決 DTS タスクを使用すると、インポートしたユーザー データからインターネット プロトコル (IP) アドレスを解決できます。IP 解決では、ログ ファイルからインポートした IP アドレスをドメイン名に変換します。たとえば、198.105.232.4 は www.microsoft.com になります。このように変換することによって、レポートを読む場合にデータを理解しやすくなります。

このタスクを構成および実行する方法の詳細については、「IP 解決 DTS タスクを実行する」を参照してください。

次の表は、[IP 解決 DTS プロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[データ ウェアハウス] | IP 解決が実行されるデータ ウェアハウスをボックスの一覧から選択します。
[処理モード] 次のいずれかのオプションを選択します。
  • [増分検索] まだ解決されていない IP アドレスのみを解決するときに選択します。
  • [全検索] すべての IP アドレスを解決するときに選択します。
[ローカル ドメイン名] | IP アドレスを解決するためのプライマリ サーバーとして使われるドメイン ネーム サーバー (DNS) のローカル ドメイン名を入力します。
[検索結果をキャッシュする日数] | 解決した IP アドレスを保存する日数を入力します。既定値は 30 日です。既定値以上に設定すると、IP 解決が頻繁に発生します。ただし、ドメイン名の変更は取得できない場合があります。
[タイムアウトまでの秒数] | IP アドレスが解決できなかったと見なされるまでに DNS サーバーが検索される時間 (秒) を入力します。既定値は 10 秒です。既定値以上に設定すると、解決できる IP アドレスの数は増えますが、IP 解決にかかる時間も長くなります。
[バッチに保持する検索要求の数] | DNS サーバーに一括して転送される IP アドレスの数を入力します。既定値は 200 です。10 ～ 99,999 の範囲で設定できます。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

IP 解決 DTS タスクを実行する

IP 解決 DTS タスクでの ETL プロセス

IP 解決 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


[レポートの準備のプロパティ] ダイアログ ボックス

レポート準備 DTS タスクを使用すると、データ ウェアハウスのデータからオンライン分析処理 (OLAP) キューブを作成できます。Commerce Server 2002 では、Commerce Server ビジネス デスクの分析モジュールで実行されるレポートが短時間で完了するように、OLAP キューブを使ってデータ ウェアハウスのデータを要約します。データ ウェアハウスでデータがインポートまたは削除されるたびに、レポート準備 DTS タスクを実行する必要があります。

注

  • データ ウェアハウスが複数のサイトで共有されている場合は、レポート準備 DTS タスクを 1 回実行すれば、すべてのサイトのデータが処理されます。

    レポート準備 DTS タスクを実行すると、データ ウェアハウス内のすべてのサイトが処理されます。この DTS タスクは、個々のサイトを対象にして実行しないでください。データ ウェアハウスのパフォーマンスに影響を及ぼします。

  • データ ウェアハウスの OLAP キューブにデータを作成する場合、レポート準備 DTS タスクを初めて実行するときは、完全なキューブ処理を実行する必要があります。レポート準備 DTS タスクの実行後は、増分キューブ処理を実行して、新しいデータだけを OLAP キューブに読み込むことができます。
  • データ ウェアハウスからすべてのデータを削除した後にも、すべてのキューブ処理を選択する必要があります。データ ウェアハウスからデータを削除する方法については、「データ削除 DTS タスクを実行する」を参照してください。

このタスクを実行および構成する方法の詳細については、「レポート準備 DTS タスクを実行する」を参照してください。

次の表は、[レポートの準備のプロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[説明] | インポート タスクの説明を入力します。説明文として入力できる文字数は最大で 255 文字です。
[データ ウェアハウス] | レポート準備タスクの対象となるデータ ウェアハウスを選択します。
[サイト] | リストから、分析レポートで使用するデータを含むサイトを選択します。
[処理モード] 次のいずれかのオプションを選択します。
  • [すべて] フル キューブ処理を実行するときに選択します。
  • [データの更新] キューブ内のデータをすべて更新するときに選択します。
  • [増分] 増分キューブ処理を実行するときに選択します。
[再試行回数] | データ ウェアハウスへの接続が失敗する場合に、接続を再試行する回数を入力します。既定の再試行回数は 10 回です。
[再試行間隔 (秒)] | 次の再試行までの待機時間を入力します。既定の再試行間隔は 30 秒です。

関連項目

レポート準備 DTS タスクを実行する

レポート準備 DTS タスクでの ETL プロセス

レポート準備 DTS タスクのスクリプト

データ ウェアハウスに関するヒント集

データ ウェアハウスにインポートするデータを指定する

DTS タスクを実行するためのワークフロー

データ ウェアハウスのインポート処理のトラブルシューティング


プロファイル リソースの UI ヘルプ

ここでは、コンテキストに応じた、Commerce Server 2002 プロファイル リソースのヘルプ トピックについて説明します。これらのトピックをプロファイル リソースのユーザー インターフェイスから参照するには、プロファイル リソースの各ダイアログ ボックスの [ヘルプ] をクリックします。

ここでは、次のトピックについて説明します。

  • [Profiles のプロパティ] - [接続文字列] タブ
  • [プロファイル カタログのプロパティ] - [全般] タブ
  • [<プロファイル定義> のプロパティ] - [全般] タブ
  • [<プロファイル定義> のプロパティ] - [カスタム属性] タブ
  • [新しいデータ ソース] ダイアログ ボックス
  • [データ ソース] ダイアログ ボックス
  • [パーティション] ダイアログ ボックス
  • [パーティション] ダイアログ ボックス
  • [システム属性] ダイアログ ボックス
  • [LDAP 接続文字列] ダイアログ ボックス
  • [新しいデータ オブジェクト] ダイアログ ボックス
  • [新しいデータ メンバ] ダイアログ ボックス
  • [<データ メンバ> のプロパティ] - [全般] タブ
  • [<データ メンバ> のプロパティ] - [プロパティ] タブ
  • [<データ オブジェクト> のプロパティ] - [全般] タブ
  • [新しいプロファイル定義] ダイアログ ボックス
  • [プロファイル定義のコピー] ダイアログ ボックス
  • [<データ ソース> のプロパティ] - [全般] タブ
  • [サイト用語のプロパティ] ダイアログ ボックス
  • [カスタム属性] ダイアログ ボックス


[Profiles のプロパティ] - [接続文字列] タブ

Commerce Server マネージャを使うと、プロファイル プロパティの接続文字列を変更できます。プロファイル プロパティの接続文字列は、アンパック処理中に設定され、管理データベースに格納されます。

  • [Profiles (<サーバー名>_<データベース名>) のプロパティ] ダイアログ ボックスの [接続文字列] タブで変更する文字列をクリックし、[変更] をクリックします。


[プロファイル カタログのプロパティ] - [全般] タブ

プロファイル カタログのプロパティを変更するには、プロファイル リソースを使います。

次の表は、[プロファイル カタログのプロパティ] ダイアログ ボックスの [全般] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | プロファイル カタログのプログラム上の定義名を表示します。
[表示名] | プロファイル カタログの表示名を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | プロファイル カタログの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル定義を管理する


[<プロファイル定義> のプロパティ] - [全般] タブ

プロファイル リソースを使って、プロファイル定義に含まれているプロパティの表示名や説明を変更することができます。

次の表は、[<プロファイル定義> のプロパティ] ダイアログ ボックスの [全般] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | 編集中のプロファイル定義のプログラム上の定義名を表示します。
[表示名] | プロファイルの表示名を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | プロファイルの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル定義を管理する


[<プロファイル定義> のプロパティ] - [カスタム属性] タブ

プロファイル リソースを使って、プロファイル定義にカスタム属性を追加することができます。

次の表は、[<プロファイル定義> のプロパティ] ダイアログ ボックスの [カスタム属性] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[新規] | [カスタム属性] ダイアログ ボックスを開き、新しいカスタム属性を作成するときにクリックします。
[編集] | [カスタム属性] ダイアログ ボックスを開き、選択したカスタム属性を編集するときにクリックします。
[削除] | 選択したカスタム属性を削除するときにクリックします。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル定義を管理する


[新しいデータ ソース] ダイアログ ボックス

プロファイル データの格納用に新しいデータ ソースを追加するには、プロファイル リソースを使います。また、プロファイル定義をデータベースまたは LDAP ソースにマップするには、データ ソースを使います。データベースまたは LDAP ソースは、データ ソースを作成する前に、作成する必要があります。

次の表は、[新しいデータソース] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | データ ソースのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
[表示名] | データ ソースに対して表示される名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ ソースの短い説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[データ ソース] ダイアログ ボックス

プロファイル定義をデータベースまたは LDAP ソースにマップするには、データ ソースを使います。データベースまたは LDAP ソースは、データ ソースを作成する前に、作成する必要があります。[データ ソース] ダイアログ ボックスは、[新しいデータ ソース] ダイアログ ボックスで [次へ] をクリックすると表示されます。

次の表は、[データ ソース] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[ソースの種類] | ソースの種類として、[LDAPv3 準拠のソース] または [OLEDB-ANSI プロバイダ] を選択します。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[パーティション] ダイアログ ボックス

データ ソースを複数のパーティションに分割することができます。[データ ソース] ダイアログ ボックスで [次へ] をクリックすると、[パーティション] ダイアログ ボックスが表示されます。

次の表は、[パーティション] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[パーティションに分割されたデータ ソース] | このデータ ソースに複数のパーティションを作成するときに選択します。
[パーティションの数] | このデータ ソースの既存のパーティション数を表示します。
[追加] | [パーティション] ダイアログ ボックスを開き、新しいパーティションを作成するときにクリックします。
[編集] | [パーティション] ダイアログ ボックスを開き、選択したパーティションを編集するときにクリックします。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[パーティション] ダイアログ ボックス

新しいパーティションを追加したり、選択したパーティションを編集したりできます。[パーティション] ダイアログ ボックスは、[パーティション] ダイアログ ボックスで [追加] をクリックすると表示されます。

次の表は、[パーティション] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[編集] | [データ ソース] ダイアログ ボックスで LDAP を選択した場合に [LDAP 接続文字列] ダイアログ ボックスを開くためにクリックします。 [データ ソース] ダイアログ ボックスで OLE DB を選択した場合に [データ リンク プロパティ] ダイアログ ボックスを開くためにクリックします。
[テスト] | 接続文字列をテストするときにクリックします。
[パーティション名] | このパーティションのプログラム上の定義名を入力します。パーティション名には、127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
[既定のパーティション] | このパーティションを既定のパーティションに指定するときに選択します。
[LDAPv3 のバインド資格情報 : ユーザー名] | LDAP ソースのユーザー名を入力します。
[LDAPv3 のバインド資格情報 : パスワード] | LDAP ソースのパスワードを入力します。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[システム属性] ダイアログ ボックス

システム属性を入力する必要があります。[システム属性] ダイアログ ボックスは、[パーティション] ダイアログ ボックスで [次へ] をクリックすると表示されます。

次の表は、[システム属性] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[親 URL] | ディレクトリ ツリーの中で新しいオブジェクトを作成する場所を入力します。これはルートに対する相対的な場所です。
[すべてのユーザーに同じ資格情報を使用] | プロファイル サービスで、このパーティションのアカウント情報をすべての結合に使用するときに選択します。
[簡易結合の許可] | プロファイル サービスでパスワードをクリア テキストで送信するときに選択します。
[動的コンテナ] | Internet Locator Service (ILS) などの動的ストアに接続するときに選択します。
[1 つのレベル] | ディレクトリ内で検索を実行するには、このオプションを選択します。
[サブツリー] | サブツリー内で検索を実行するには、このオプションを選択します。
[ドメイン名] | Active Directory サーバーのドメイン名を入力します。非 Active Directory ソースの場合は、コンピュータ名を使います。
[参照] | Active Directory サーバーのドメイン名を取得するときにクリックします。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[LDAP 接続文字列] ダイアログ ボックス

[データ ソース] ダイアログ ボックスで [LDAPv3 準拠のソース] を選択した場合は、[パーティション] ダイアログ ボックスで [編集] をクリックすると [LDAP 接続文字列] ダイアログ ボックスが表示されます。

次の表は、[LDAP 接続文字列] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[サーバー] | LDAP ソースのあるサーバーの名前を入力します。
[ポート] | ポート名を入力します。既定のポートは 389 です。
[接続文字列] | 接続文字列が表示されます。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

プロファイル リソースで新しいデータ ソースを作成する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[新しいデータ オブジェクト] ダイアログ ボックス

データ ソースにデータ オブジェクトを追加するには、プロファイル リソースを使います。プロファイル定義のプロパティについて収集されるデータを保存する列を含むデータベースのテーブル (または LDAP ソースのクラス) を選択します。

プロファイル リソースを使ってデータ オブジェクトを作成する前に、データ ソースを作成する必要があります。したがって、変更は直接データベースまたは LDAP ストアに対して行う必要があります。また、データ オブジェクトの主キーに当たるデータ メンバを指定する必要があります。

次の表は、[新しいデータ オブジェクト] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[オブジェクト名] | ボックスの一覧から、基となるデータ ストアのテーブルまたは LDAP クラスの名前であるデータ オブジェクトを選択します。
[表示名] | データ オブジェクトに対して表示される名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ オブジェクトの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
[オブジェクトのメンバ] | 選択したデータ オブジェクトのデータ メンバが表示されます。

関連項目

データ ソース

新しいデータ ソースを追加する

新しいプロファイル定義を追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[新しいデータ メンバ] ダイアログ ボックス

データ オブジェクトの主キーに当たるデータ メンバを指定する必要があります。

次の表は、[新しいデータ メンバ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[メンバ名] | 一覧から新しいデータ メンバの名前を選択します。新しいデータ メンバ名は、データ オブジェクトに対して一意である必要があります。データ メンバには、基となるデータ ストアの列または LDAP 属性の名前を付ける必要があります。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
[表示名] | アプリケーションで表示するデータ メンバの名前を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ メンバの簡単な説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
[種類] データ メンバのデータ型を選択します。次のデータ型がサポートされています。
  • Binary (バイナリ)
  • Boolean (ブール値)
  • Currency (通貨)
  • Date/Time (日付/時刻)
  • Number (数値)
  • 文字列
[複数値] | データ メンバに関連付けられた複数の値のコレクションを有効にするには、このチェック ボックスをオンにします。
[必須] | データ メンバが必須の場合は、このチェック ボックスをオンにします。データ メンバが必須でない場合は省略可能です。
[インデックス付き] | このデータ メンバのデータにインデックスを付ける場合は、このチェック ボックスをオンにします。
[主キー] | このデータ メンバを主キーとして指定する場合は、このチェック ボックスをオンにします。各データ オブジェクトに 1 つずつ、主キーになるデータ メンバを選択する必要があります。
[追加] | 新しいデータ メンバをデータ メンバの一覧に追加するときにクリックします。
[完了] | [新しいデータ メンバ] ダイアログ ボックスを閉じて Commerce Server マネージャの詳細ペインを更新するときにクリックします。

関連項目

データ ソース

新しいデータ ソースを追加する

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[<データ メンバ> のプロパティ] - [全般] タブ

データ メンバの次のプロパティを変更するには、プロパティ リソースを使います。

  • [表示名]
  • [説明]

次の表は、[<データ メンバ> のプロパティ] ダイアログ ボックスの [全般] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | データ メンバのプログラム上の定義名が表示されます。名前は変更できません。
[表示名] | データ メンバに対して表示される名前を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ メンバの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

データ ソース

新しいデータ ソースを追加する

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[<データ メンバ> のプロパティ] - [プロパティ] タブ

次の表は、[<データ メンバ> のプロパティ] ダイアログ ボックスの [プロパティ] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[種類] | このボックスの一覧から、データ メンバの新しい型を選択します。
[複数値] | このデータ メンバに割り当てられるデータベース列 (または LDAP 属性) が複数値の場合は、このチェック ボックスをオンにします。
[必須] | このデータ メンバに割り当てられるデータベース列 (または LDAP 属性) が必須の場合は、このチェック ボックスをオンにします。
[インデックス付き] | このデータ メンバに割り当てられるデータベース列 (または LDAP 属性) にインデックスがインデックス付きの場合は、このチェック ボックスをオンにします。
[主キー] | このデータ メンバに割り当てられるデータベース列 (または LDAP 属性) が主キーの場合は、このチェック ボックスをオンにします。

関連項目

データ ソース

新しいデータ ソースを追加する

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[<データ オブジェクト> のプロパティ] - [全般] タブ

次の表は、[<データ オブジェクト> のプロパティ] ダイアログ ボックスの [全般] タブで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | データ オブジェクトの名前が表示されます。
[表示名] | データ オブジェクトの表示名を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ オブジェクトの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

データ ソース

新しいデータ ソースを追加する

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[新しいプロファイル定義] ダイアログ ボックス

新しいプロファイル定義を作成するには、プロファイル リソースを使います。たとえば、Web サイトや Commerce Server ビジネス デスクから追加データを利用できるようにするために、ビジネス マネージャから新しいプロファイル定義の作成を求められる場合があります。このような場合は、データ オブジェクトに自動的にマップされるプロファイル定義を作成できます。また、データ オブジェクトにマップされないプロファイル定義を作成することもできます。プロファイル定義を使うと、Web サイトを訪問するユーザーについての収集データを定義できます。

次の表は、[新しいプロファイル定義] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | 新しいプロファイルのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
[表示名] | 新しいプロファイルの表示名を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | 新しいプロファイルの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル定義を管理する


[プロファイル定義のコピー] ダイアログ ボックス

既存のプロファイル定義をコピーし、プロファイル デザイナ画面で、プロファイル定義の名前と属性を変更して、新しいプロファイル定義を作成することもできます。

次の表は、[新しいプロファイル定義] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | 新しいプロファイルのプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
[表示名] | 新しいプロファイルの表示名を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | 新しいプロファイルの説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。

関連項目

プロファイル定義

サンプルのプロファイル定義

プロファイル定義にプロパティを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

プロファイル定義を管理する


[<データ ソース> のプロパティ] - [全般] タブ

データ ソースのパーティションにカスタム属性を追加することもできます。

[<データ ソース名> のプロパティ] ダイアログ ボックスの [パーティション] タブで、カスタム属性を追加するパーティションをクリックし、[編集] をクリックします。

次の表は、[<データ ソース> のプロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

[全般] タブ

項目 | 操作
[名前] | データ ソースの名前が表示されます。
[表示名] | データ ソースの表示名を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | データ ソースの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

[データ ソース] タブ

項目 | 操作
[ソースの種類] | ソースの種類として、[LDAPv3 準拠のソース] または [OLEDB-ANSI プロバイダ] を選択します。

[パーティション] タブ

項目 | 操作
[パーティションに分割されたデータ ソース] | このデータ ソースに複数のパーティションを作成するときに選択します。
[パーティションの数] | データ ソースの既存のパーティション数を表示します。
[追加] | [パーティション] ダイアログ ボックスを開いて、新しいパーティションを作成するときにクリックします。
[編集] | [パーティション] ダイアログ ボックスを開いて、選択したパーティションを編集するときにクリックします。

関連項目

データ ソース

データ ソースのパーティション

新しいデータ ソースを追加する

2 つのデータ ソースを持つプロファイル定義を作成する

データ ソースを管理する


[サイト用語のプロパティ] ダイアログ ボックス

Site Term (サイト用語) 型のプロパティは、文字列型のデータ メンバにマップされます。保存できる最大の長さは、Unicode 文字で 255 文字です。Site Term 型プロパティに複数の値がある場合、それぞれの値はセミコロン (;) で区切られ、文字列として格納されます。

次の表は、[サイト用語のプロパティ] ダイアログ ボックスで利用できるオプションとその機能を示しています。

[全般] タブ

項目 | 操作
[名前] | 編集中のプロファイル定義のプログラム上の定義名が表示されます。
[表示名] | プロファイルの表示名を編集します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | プロファイルの説明を編集します。説明には Unicode 文字で最大 127 文字使用できます。

[カスタム属性] タブ

項目 | 操作
[新規] | [カスタム属性] ダイアログ ボックスを開いて、新しいカスタム属性を作成するときにクリックします。
[編集] | [カスタム属性] ダイアログ ボックスを開いて、選択したカスタム属性を編集するときにクリックします。
[削除] | 選択したカスタム属性を削除するときにクリックします。


[カスタム属性] ダイアログ ボックス

データ ソースのパーティションにカスタム属性を追加するには、プロファイル リソースを使います。カスタム属性は、アプリケーション固有の属性です。通常、すべてのプロファイル定義、またはデータ ソースに共通する属性は、ClassDef または SourceDef テーブルに格納されます。しかし、選択された特定のデータ ソース オブジェクトにだけ適用される属性もあります。たとえば、データ ソースのソート順やデータ ソース内のパーティションを管理したり、メンバ定義やソース定義オブジェクトなどの他のオブジェクトとの一貫性を保つために、カスタム属性を作成することもできます。データ ソースのカスタム属性は、プロファイル リソース内でのみ利用できます。

次の表は、[カスタム属性] ダイアログ ボックスで利用できるオプションとその機能を示しています。

項目 | 操作
[名前] | 属性のプログラム上の定義名を入力します。名前には、最大 127 文字の英数字とアンダースコア (_) を使用できます。名前にスペースは使用できません。
[表示名] | 属性の表示名を入力します。表示名には Unicode 文字で最大 127 文字使用できます。
[説明] | 属性の簡単な説明を入力します。説明には Unicode 文字で最大 127 文字使用できます。
[値] | 属性に割り当てる値を入力します。


ビジネス デスクの活用方法

ここでは、Commerce Server ビジネス デスクを使って Web サイトを管理する方法について説明します。取り扱う内容は、サイトのコンテンツの選択と更新、特定のユーザーに対して表示する広告の変更、カタログの更新と変更内容の公開、およびその変更がサイトの生産性に及ぼす影響を測定するためのレポートの実行です。

注

Commerce Server 2002 には、次の 2 つのドキュメント セットが含まれています。

  • Commerce Server 2002 ヘルプ Commerce Server に関するドキュメント一式です。既にインストールされています。サイト開発者およびシステム管理者向けのリンクと関連情報を提供します。システム管理者は、Commerce_Server.chm ファイルを共有フォルダにコピーすることによって、この完全なヘルプ一式をビジネス デスクのユーザーに提供することができます。
  • ビジネス デスク ヘルプ (ビジネス デスク クライアントに含まれている) Commerce Server 2002 ヘルプのサブセットです。ビジネス デスク クライアントをインストールした場合にインストールされます。このサブセットでは、Commerce Server 2002 ヘルプの一部しか参照できません。ただし、Commerce Server 2002 ヘルプにある Commerce Server の概念に関するトピックは含まれています。

ここでは、次のトピックについて説明します。

  • ビジネス デスク ファースト ステップ ガイド ビジネス デスクのコンポーネントとそのカスタマイズや設定の方法を紹介し、ビジネス デスクの基本操作について説明します。
  • ビジネス デスク分析 Web サイトの利用状況を分析するために使用するレポートを設定および実行する方法について説明します。
  • ビジネス デスク キャンペーン 多様なユーザー層ごとに対象化を行い、ビジネスの範囲を広げ、売り上げを拡大するために、広告、割引、ダイレクト メールなど、さまざまなキャンペーンを作成して管理する方法について説明します。
  • ビジネス デスク カタログ カタログ スキーマを作成する方法と、カタログを作成して管理する方法について説明します。
  • ビジネス デスク注文 注文状況を確認する方法と、注文テンプレート、バスケット、注文書承認プロセスを管理する方法について説明します。また、各種データ コードの追加、変更、および削除の方法についても説明します。
  • ビジネス デスク プロファイル 新しい登録済みユーザーや組織を追加する方法について説明します。また、プロファイル定義にプロパティを追加する方法と、サイト用語の追加方法についても説明します。
  • ビジネス デスク セキュリティ ビジネス デスクの特定のカテゴリまたはモジュールに対するユーザー アクセス許可を設定する方法を説明します。
  • ビジネス デスクに関するトラブルシューティング ビジネス デスクの活用中に発生する可能性のある一般的なエラーの原因を解明し、それを解決する方法について説明します。


ビジネス デスク ファースト ステップ ガイド

ここでは、Commerce Server ビジネス デスクを初めて使うユーザー向けの情報を提供します。

ここでは、次のトピックについて説明します。

  • ビジネス デスクの概要 ビジネス デスク アプリケーションとビジネス デスク クライアントについて説明します。ニーズに合わせてビジネス デスクを構成する方法についても説明します。
  • ビジネス デスクの基礎 ビジネス デスクを操作する方法、ビジネス デスク モジュールのセキュリティを設定する方法、およびショートカット キーを使用する方法について説明します。
  • 最初にすべきこと Web サイトを開設して、ビジネスに活用できる状態にするために必要な手順を示します。
  • 一般的な作業 ビジネス デスクを使用して行う一般的な作業を示すと共に、それらの作業に必要なヘルプ トピックへのリンクを提供します。
  • ビジネス デスク ヘルプを使う ヘルプ トピックの検索と印刷を行う方法について説明します。
  • さらにヘルプが必要な場合 システム管理者やサイト開発者に依頼できる作業を示します。


ビジネス デスクの概要

Commerce Server ビジネス デスクは、Commerce Server 2002 で利用できる Web ベースのサイト管理ツールです。ビジネス デスクは、サイトの構成、管理、および分析に使うビジネス管理モジュールのホストの役割を果たします。たとえば、ビジネス デスク モジュールを使って、多言語に対応できるカタログを作成したり、複数の通貨に対応できるカタログの価格情報を更新します。また、特定のユーザーを新しい広告の対象に指定したり、レポートを実行して、サイトに加えた変更がサイトの生産性に与える影響を測定するときにも使用できます。

注

Commerce Server 2002 には、次の 2 つのドキュメント セットが含まれています。

  • Commerce Server 2002 ヘルプ これは、Commerce Server 2002 の完全なヘルプです。サイト開発者およびシステム管理者向けのリンクと関連情報を提供します。システム管理者は、commerce_server.chm ファイルを共有フォルダにコピーすることによって、この完全なヘルプ一式をビジネス デスクのユーザーに提供することができます。
  • ビジネス デスク ヘルプ (ビジネス デスク クライアントに含まれている) これは、ビジネス デスク クライアントと共にインストールされるドキュメント セットです。Commerce Server 2002 ヘルプのサブセットです。このサブセットでは、Commerce Server 2002 ヘルプの一部しか参照できません。ただし、Commerce Server 2002 ヘルプにある Commerce Server の概念に関するトピックは含まれています。

ビジネス デスクには、対象を指定した、ロール ベースのセキュリティが備わっています。つまり、ビジネス デスクのユーザーは、自分が権限を持つモジュールだけを表示および管理することができます。また、自分が権限を持つ特定のタスクだけを実行することができます。

ここでは、次のトピックについて説明します。

  • ビジネス デスクの機能の概要
  • ビジネス デスクの各エディションにおける機能の比較
  • ビジネス デスクのユーザー インターフェイスの変更点
  • ビジネス デスクのアプリケーションとクライアント
  • ビジネス デスクのモジュールとカテゴリ
  • ビジネス デスクで Web サイトを更新する
  • ビジネス デスクをカスタマイズする
  • システム管理者の作業


ビジネス デスクの機能の概要

次の表は、Commerce Server ビジネス デスクの各機能の概要を示しています。

ビジネス デスクの機能 実行できるタスク
分析
  • Commerce Server のレポートを実行するか、または独自のカスタム レポートを作成して、サイトの効果を分析します。
  • Commerce Server のレポートを実行し、売れ行きの良い商品を特定します。商品のリストを使って割引キャンペーンを作成します。
キャンペーン
  • 商品に割引を適用します。
  • 対象化した商品取引でショッピング体験をパーソナライズします。
  • ユーザーとコンテキストに応じて最適なコンテンツを配信します。
  • パーソナライズされ、対象化された割引、ダイレクト メール、および広告キャンペーンを作成および管理します。
  • 広告や割引の対象となる、特定のプロファイルを持つユーザーを指定します。たとえば、週に 3 回サイトを訪問し、商品を 3 つ以上購入したことのある女性ユーザーを対象に広告を配信できます。
  • 競合する広告が同じページに表示されることのないように、同じ業種で競合する複数の顧客向けにキャンペーンを作成し、スケジュールを設定します。
  • 広告主が希望する広告要求数、またはクリック数に応じて広告料を請求します。
  • 広告主が希望する広告表示ページに応じて広告料を請求します。
カタログ
  • 販売する商品のカタログの作成と更新を行います。
  • 多言語に対応可能なカタログを作成します。
  • 複数通貨に対応可能なカタログを作成します。
  • 仮想カタログを構築します。このカタログには、特定のユーザーを対象にした特別価格や特別な商品グループを設定できます。
  • 他のデータ ソースから商品のカタログを拡張マークアップ言語 (XML) 形式またはコンマ区切り値 (CSV) 形式でインポートします。
  • XML 形式または CSV 形式のカタログをエクスポートします。
  • 特定の日付以降に発生したカタログの変更内容をエクスポートします。
  • Web サイトでユーザーが必要なものを簡単に見つけることができるように、次のような検索機能を追加します。
    • カテゴリ検索 商品カテゴリ別に参照します。
    • フリーテキスト検索 名前またはプロパティの全体または一部によって商品を検索します。
    • プロパティによる検索 価格が 1,000 円以下の商品など、プロパティ値によって商品を検索します。
    • 条件指定検索 商品が見つかるまで検索条件を設定し直します。
  • Microsoft BizTalk Server 2000 以降を使い、カタログ データをベンダとやりとりします。
注文
  • 多言語に対応可能な送付方法を追加します。
  • 特定の国/地域や都道府県/州に対応する税率を追加します。
  • Commerce Server 注文データベースから既存の注文情報を検索します。
  • 使われていない保存済みバスケットを削除します。
プロファイル
  • 何百万ものユーザーと組織を管理します。
  • ユーザーや組織など、あらゆるビジネス関連要素のプロファイルを構築します。
  • サイトを訪問するユーザーについて収集する情報を決定します。
  • 特定のユーザーに表示するカタログ セットを決定します。
  • 特定のユーザー グループを対象とした広告、割引、ダイレクト メールの各キャンペーンを作成します。
セキュリティ
  • ビジネス デスクで特定のタスクを実行するためのアクセス許可を Windows アカウント ユーザーに与えます。
  • 特定のビジネス デスク モジュールにアクセスするためのアクセス許可を Windows アカウント ユーザーに与えます。
  • 特定のカタログ、カタログ プロパティ、およびカタログのカテゴリにアクセスするためのアクセス許可を Windows アカウント ユーザーに与えます。
  • プロファイル プロパティを管理するためのアクセス許可を Windows アカウント ユーザーに与えます。


ビジネス デスクの各エディションにおける機能の比較

ここでは、Commerce Server ビジネス デスクのそれぞれのバージョン (Commerce Server 2002 Enterprise Edition、Commerce Server 2002 Standard Edition、および Commerce Server 2000) でサポートされている機能の要約を示します。

分析機能

キャンペーン機能

カタログ機能

注文機能

プロファイル機能

セキュリティ機能

分析機能

次の表は、ビジネス デスクの各エディションにおける分析機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
新しいレポートを作成する。 | あり | あり | なし
レポートをカスタマイズする。 | あり | なし | あり
レポートをリストとしてリスト マネージャ モジュールにエクスポートする。 | あり | なし | あり
セグメント モデルを分析する。 | あり | なし | あり
アフィニティ リストをリスト マネージャ モジュールにエクスポートする。 | あり | なし | なし
ドリルスルー レポートを作成する。 | あり | あり | なし
ドメイン間のレポートを作成する。 | あり | あり | なし

キャンペーン機能

次の表は、ビジネス デスクの各エディションにおけるキャンペーン機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
多言語に対応可能な広告や割引を作成する。 | あり | あり | なし
対象を指定した割引を作成する。 | あり | あり | あり
対象を指定した広告を作成する。 | あり | あり | あり
対象を指定したダイレクト メールを作成する。 | あり | あり | あり
同じ業種で競合する複数の顧客向けに、キャンペーンのスケジュールを設定する。 | あり | あり | あり
広告主が希望する広告要求数またはクリック数に応じて、広告主に請求する金額を設定する。 | あり | あり | あり
広告を掲載する Web ページに応じて、広告主に請求する金額を設定する。 | あり | あり | あり

カタログ機能

次の表は、ビジネス デスクの各エディションにおけるカタログ機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
複数通貨に対応可能な価格を設定する。 | あり | あり | なし
多言語に対応可能なカタログ。 | あり | あり | なし
仮想カタログ。 | あり | あり | なし
カタログ セット。 | あり | あり | あり
カスタム カタログ。 | なし (仮想カタログに移行) | なし (仮想カタログに移行) | あり
集合カタログ (複数のカタログのコンテンツを集めたもの)。 | あり | あり | なし
XML カタログ ファイルのコンテンツを、インポートせずに評価する。 | あり | あり | なし
カタログ項目の削除内容をインポートおよびエクスポートする。 | あり | あり | なし
特定の日付以降に発生したカタログの変更内容をエクスポートする。 | あり | あり | なし
商品間およびカタログ間の関連付けを作成する。 | あり | あり | なし
Microsoft BizTalk Server を使い、カタログ データをベンダとやりとりする。 | あり | あり | あり
サイトごとに 256 個を超えるカタログを作成できる。 | あり | あり | なし
商品のフィールドに長いテキストを入力できる (8 KB/行の制限なし)。 | あり | あり | なし

注文機能

次の表は、ビジネス デスクの各エディションにおける注文機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
多言語に対応可能な送付方法を追加する。 | あり | あり | なし
送付方法を追加する。 | あり | あり | あり
特定の国/地域や都道府県/州に対応する税率を追加する。 | あり | あり | あり
Commerce Server 注文データベースから既存の注文情報を検索する。 | あり | あり | あり
使われていない保存済みバスケットを削除する。 | あり | あり | あり

プロファイル機能

次の表は、ビジネス デスクの各エディションにおけるプロファイル機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
プロファイル定義デザインのインターフェイス。 | あり | あり | あり
プロファイルを編集する。 | あり | あり | あり (ユーザー プロファイルおよび組織プロファイルのみ)
サイト用語を編集する。 | あり | あり | あり
Microsoft Active Directory グループを管理する。 | あり | あり | なし
複数の値を持つプロファイル。 | あり | あり | なし
複数の値を持つサイト用語。 | あり | あり | なし
埋め込みプロファイルを編集する。 | あり | あり | なし
汎用プロファイルを編集する。 | あり | あり | なし
プロファイル スキーマをインポートおよびエクスポートする。 | あり | あり | なし

セキュリティ機能

次の表は、ビジネス デスクの各エディションにおけるセキュリティ機能のサポート状況を示しています。

機能 | Commerce Server 2002 Enterprise Edition | Commerce Server 2002 Standard Edition | Commerce Server 2000
ビジネス デスク モジュール単位でセキュリティを設定する。 | あり | あり | あり
ビジネス デスク タスクにセキュリティを設定する。 | あり | あり | なし
カタログを管理するためにセキュリティを設定する。 | あり | あり | なし
カタログ プロパティを管理するためにセキュリティを設定する。 | あり | あり | なし
カタログ カテゴリを管理するためにセキュリティを設定する。 | あり | あり | なし
プロファイル プロパティを管理するためにセキュリティを設定する。 | あり | あり | なし


ビジネス デスクのユーザー インターフェイスの変更点

次の表は、変更または追加されたユーザー インターフェイスのカテゴリとモジュールについて、Commerce Server 2000 と Commerce Server 2002 での場所の対応関係を示しています。

Commerce Server 2000 の
カテゴリとモジュール 		Commerce Server 2002 の
カテゴリとモジュール
ユーザー
プロファイル デザイナ
該当なし
 プロファイル
プロファイル定義デザイナ
プロファイル エディタ
注文
トランザクションの発行
 注文
注文コードの発行
カタログ
カタログ デザイナ
 カタログ
カタログ定義デザイナ
プロファイル
該当なし
 プロファイル
グループ マネージャ (Supplier サイト用)
分析
該当なし
 分析
アフィニティ リスト
該当なし
該当なし
 セキュリティ
アクセス許可


ビジネス デスクのアプリケーションとクライアント

ビジネス デスクは、ビジネス デスク アプリケーションとビジネス デスク クライアントの 2 つの要素で構成されます。

  • ビジネス デスク アプリケーション サイトの構成、管理、および分析を行うための管理ツールです。ビジネス デスク アプリケーションをインストールするには、Commerce Server をインストールした後に、ソリューション サイトをアンパックする必要があります。ビジネス デスク アプリケーションは、ソリューション サイト パッケージでのみ利用できます。

    ビジネス デスクは、Microsoft Internet Explorer 5.5 以上を実行する任意のコンピュータから利用でき、安全なリモート アクセスを提供します。

  • ビジネス デスク クライアント ローカル コンピュータにインストールするクライアント ソフトウェアです。ビジネス デスク アプリケーションへのインターフェイスを提供します。URL を指定してビジネス デスク アプリケーションに初めてアクセスしたときに、ビジネス デスク クライアントはダウンロードされ、コンピュータにインストールされます。ビジネス デスク クライアントを実行するコンピュータは、ビジネス デスク アプリケーションに高速接続することをお勧めします。

次の図は、ビジネス デスク クライアントを使ってリモートからビジネス デスク アプリケーションにアクセスし、Web サイトを更新する方法を示しています。


ビジネス デスクのモジュールとカテゴリ

サイトのさまざまな側面の管理には、Commerce Server ビジネス デスクの主要なコンポーネントであるモジュールを使います。カテゴリにはモジュールの組織コンテナが備わっています。たとえば、分析カテゴリには、分析タスクの実行に使用するモジュールがすべて含まれています。

次の表は、ビジネス デスクのモジュール、そのモジュールが属するカテゴリ、およびそれぞれの機能の一覧を示しています。

カテゴリ 説明
分析

レポート
完成したレポート

 サイトの利用状況を表すレポートの実行や確認を行います。分析モジュールには、サイトのさまざまな側面を扱う多くのレポートが含まれています。また、独自のレポートを作成することもできます。
キャンペーン

キャンペーン マネージャ
リスト マネージャ
キャンペーン式
対象グループ
参照テーブル
キャンペーンの発行

 マーケティング キャンペーンの作成とスケジュール設定を行います。顧客情報を追加し、キャンペーンとキャンペーン項目を管理します。キャンペーン項目には、広告バナー、ダイレクト メール ジョブ、商品割引などがあります。各キャンペーン項目の対象を特定のユーザー層に絞って、きわめてパーソナライズされたサイトを作成できます。
カタログ

カタログ定義デザイナ
カタログ エディタ
カタログ セット

 カタログのインポート、カタログの作成、および商品の追加と価格設定を行います。また、複数の通貨がサポートされ、特別価格が含まれ、クラブの会員などの特定のユーザーだけに表示される仮想カタログを作成します。
注文

バスケット マネージャ
場所コード
注文状況コード
注文状況
送付方法
税率
注文コードの発行

 Commerce Server データベースから既存の注文情報を検索したり、注文情報の追加、削除、承認、および変更を行います。また、送付方法と税率の追加、削除、および変更を行います。
プロファイル

プロファイル エディタ
ユーザー
組織
グループ マネージャ
プロファイル定義デザイナ
サイト用語エディタ
プロファイルの発行

 ユーザー、組織、およびプロファイルの作成と変更を行います。また、サイト用語の作成と変更を行います。

注

  • グループ マネージャ モジュールは、Web サイトで Active Directory を利用している場合にのみビジネス デスクに表示されます。詳細については、システム管理者に問い合わせてください。
セキュリティ

アクセス許可

 Windows アカウントへのビジネス デスク アクセス許可の付与、拒否、および表示を行います。このアクセス許可によって、ユーザーが持つアクセスのレベルがビジネス デスクのモジュールごとに制御されます。

関連項目

ビジネス デスクで Web サイトを更新する

システム管理者の作業

ビジネス デスクの基礎

最初にすべきこと


ビジネス デスクで Web サイトを更新する

次の図は、Commerce Server ビジネス デスク モジュールを使って Web サイトを更新する方法を示しています。たとえば、Web サイトから収集したサイト データをデータ ウェアハウスにインポートすると、分析レポートを実行することができます。

ビジネス デスク モジュールで Web サイトを更新する方法を示す図

次に、図に示されているモジュールのタスクについて説明します。

  • データ ウェアハウスに格納されているユーザーのトランザクションに関するレポートを実行するには、分析モジュールを使います。
  • 広告、割引、および宣伝を作成、表示するには、キャンペーン モジュールを使います。
  • カタログの情報を更新するには、カタログ モジュールを使います。
  • Web サイトで注文を受け付けたり、ユーザーの注文を調べるには、注文モジュールを使います。
  • ユーザーのパスワードをリセットしたり、その他のユーザー プロファイル情報を変更したり、収集するプロファイル データを指定するには、プロファイル モジュールを使います。

関連項目

ビジネス デスクのモジュールとカテゴリ

システム管理者の作業

ビジネス デスクの基礎

最初にすべきこと


ビジネス デスクをカスタマイズする

サイト開発者とシステム管理者は、ビジネス ニーズに合わせて Commerce Server ビジネス デスクをカスタマイズできます。

次の表は、ビジネス デスクのユーザーがシステム管理者やサイト開発者とカスタマイズを調整する項目を示しています。

ビジネス デスクのコンポーネント カスタマイズと調整
分析 : レポート モジュール
  • システム管理者は、データを定期的にデータ ウェアハウスにインポートする責任を負います。ビジネス デスクのユーザーは、データ ウェアハウスにインポートされたデータに対してレポートを実行し、それを分析できます。
  • システム管理者は、Web ログ ファイルのどのデータをデータ ウェアハウスにインポートするかをカスタマイズできます。また、レポートの結果に影響を及ぼすユーザーと訪問の定義も設定できます。
プロファイル : プロファイル定義デザイナ モジュール
  • システム管理者は、Commerce Server マネージャを使ってプロファイル定義を作成し、データ ソース、データ オブジェクト、およびデータ メンバを追加して、Commerce Server データベースの構造をプロファイル定義に公開します。

    ビジネス デスクを使ってプロファイル定義にプロファイル プロパティを追加するときに、データ メンバを選択します。これにより、新しいプロファイル プロパティが収集するデータの格納先となる Commerce Server データベース内の場所に、そのプロファイル プロパティがマップされます。

セキュリティ : アクセス許可モジュール
  • システム管理者は Windows アカウントを作成し、そのアカウントにビジネス デスクのユーザーを割り当てます。そのアカウントを使って、ユーザーのグループにビジネス デスク アクセス許可を割り当てることができます。
システムの全般的な設定
  • システム管理者は、測定単位、通貨オプション、支払いオプション、Web サイトの登録とセキュリティのオプションなどのシステム設定を行います。ビジネス デスクのユーザーは、これらのオプションや設定の変更をシステム管理者と調整する必要があります。

関連項目

ビジネス デスクのモジュールとカテゴリ

システム管理者の作業

最初にすべきこと

さらにヘルプが必要な場合


システム管理者の作業

システム管理者 (および、場合によってはサイト開発者) は、ビジネス ニーズに合わせて Commerce Server ビジネス デスクを構成し、Web サイトの分析や更新に必要なデータに確実にアクセスできるようにする責任を負います。

システム管理者は、Commerce Server マネージャを使って、ビジネス デスクの構成と管理を行います。Commerce Server マネージャは Windows ベースのアプリケーションです。Web ベースではないので、リモートからはアクセスできません。

次の表は、システム管理者が実行する Commerce Server の構成作業の一部を示しています。これらの作業や、サイトのその他の機能について疑問がある場合は、システム管理者に問い合わせてください。

カテゴリ システム管理者の作業
分析
  • 必要に応じて、特定の Microsoft SQL Server データベース ロールをビジネス デスクのユーザーに割り当てることによって、一部のユーザーにレポートの読み取りと保存を許可し、その他のユーザーにはレポートの読み取りのみを許可します。
  • レポートを実行できるように、サイト データをデータ ウェアハウスにインポートします。
キャンペーン
  • 運用サイトで広告の項目や割引キャンペーン項目の更新を行う時期と頻度を決定します。
  • SQL Server データベースからリストを直接生成するための接続文字列と SQL クエリを準備します。
カタログ
  • 運用サイトでカタログの更新を行う時期と頻度を決定します。
  • 外部のカタログをインポートできるように、拡張マークアップ言語 (XML) ファイル形式またはコンマ区切り値 (CSV) ファイル形式に変換します。
  • カタログや文書を取引先と交換できるように、BizTalk Server を設定します。
  • Commerce Server の次のプロパティを設定します。
    • Web サイトの言語 (ロケール) (1031 = ドイツ語、1033 = 英語、1034 = スペイン語、1036 = フランス語、1041 = 日本語)
    • 基本通貨の書式設定に必要なロケール
    • 2 種類の通貨の同時表示を可能にするための、代替通貨オプション
    • 商品の送料を計算するための重量測定単位 (kg、ポンドなど)
    • 取引先とカタログをやりとりするための、BizTalk Server 統合オプション
注文
  • サイトでサポートする支払いの種類を、クレジット カード、アカウント課金、またはその両方から定義します。
プロファイル
  • プロファイル定義を追加します。
  • プロファイル データの格納場所を制御するデータ ソースを追加します。
  • Commerce Server の次のプロパティを設定します。
    • サイトでのユーザー登録を可能にする、サイト登録オプション
    • サイトでアドレス帳機能を有効にする、アドレス帳オプション
    • ユーザーにサイトへのログインを要求するタイミングを指定する、ログイン オプション (ユーザーがサイトに入るときにログインする、サイトに入るときにログインするかどうかを選択する、購入時にログインを要求する、またはログインするかどうかをいつでも選択できる)
    • ユーザー名とパスワードを再入力できる回数 (この回数を超えると、ユーザーは顧客サービス担当者に連絡するように求められます)
セキュリティ
  • Windows アカウントを追加して、そのアカウントにビジネス デスクのユーザーを割り当てます。ビジネス デスクを使って、アカウントごとに特定のアクセス許可を割り当てることができます。

関連項目

ビジネス デスクで Web サイトを更新する

ビジネス デスクのモジュールとカテゴリ

ビジネス デスクの基礎

最初にすべきこと


ビジネス デスクの基礎

Commerce Server ビジネス デスクは Web ベースのアプリケーションなので、Microsoft Word や Microsoft Excel などの PC ベースの Microsoft アプリケーションとは、いくつかの点で外観や機能が異なります。たとえば、ビジネス デスクを操作するには、画面の左側にあるメニューのオプション (モジュール) を選択します。このデザインは、多くの Web ページのデザインに似ています。

ここでは、次のトピックについて説明します。

  • ビジネス デスクを操作する
  • ツール バーのボタンを使う
  • データをインポートおよびエクスポートする
  • キーボード ショートカットを使う


ビジネス デスクを操作する

Commerce Server ビジネス デスクのモジュールはそれぞれ独自の機能を備えていますが、どのモジュールも同じような方法で操作できるように設計されているため、情報を簡単に検索して並べ替えることができます。1 つのビジネス デスク モジュールで基本的な操作方法を習得すれば、その知識を他のモジュールにも応用できます。ここでは、ビジネス デスクの画面のレイアウトと、カテゴリからモジュールや画面に移動する方法について説明します。

ナビゲーション ペイン

コンテンツ ペイン

ツール バーのボタン

ナビゲーション ペイン

Commerce Server ビジネス デスクの画面の左側を "ナビゲーション ペイン" と呼びます。このペインは、カテゴリを選択したり、モジュールを開くときに使います。カテゴリの名前をクリックすると、カテゴリは展開し、カテゴリの下の一覧にモジュール名が表示されます。再びカテゴリ名をクリックすると、モジュール名はカテゴリの中に折りたたまれます。

カテゴリ名の左側にある矢印の向きで、カテゴリを展開できるかどうか、または折りたためるかどうかがわかります。右向きの矢印は、一覧を展開できることを示します。下向きの矢印は、一覧が既に展開されていることを示します。

次の図は、注文カテゴリが展開され、モジュールの一覧が表示された状態のナビゲーション ペインを示しています。

ビジネス デスク ナビゲーション ペイン

注

  • 一覧表示された項目のプロパティを参照すると、ナビゲーション ペインが見えなくなります。たとえば、前の図で、コード番号 [1] – [バスケット] のプロパティを表示すると、新しい画面が表示され、ナビゲーション ペインは見えなくなります。ナビゲーション ペインのあるメイン画面に戻るには、ツール バーの 戻る と 保存して戻る を使います。

コンテンツ ペイン

ビジネス デスク画面の右側をコンテンツ ペインと呼びます。コンテンツ ペインは、サイト データを表示したり、情報を編集するときに使います。ナビゲーション ペインでモジュール名をクリックすると、そのモジュールの現在の情報がすべて含まれる一覧がコンテンツ ペインに表示されます。

たとえば、注文カテゴリを開いて、[注文状況コード] というモジュール名をクリックすると、[注文状況コード] 画面がコンテンツ ペインに表示されます。この画面では、注文状況のデータ コードを表示、追加、削除できます。

コンテンツ ペインには次の 2 種類のグラフィックが使われています。

  • 必須 このグラフィックは、画面のボックスに値を入力する必要があることを示します。このボックスに値を入力しない限り、画面上の新しいコンテンツは保存できません。
  • 多言語 このグラフィックは、ボックスが多言語に対応していることを示します。複数の言語で値を入力できます。詳細については、「多言語に対応可能なカタログを作成する」を参照してください。

ツール バーのボタン

コンテンツ ペインの上部に表示される "ツール バー" には、標準的な作業を行うためのボタンが用意されています。たとえば、項目を追加、コピー、または削除する場合などに、ツール バーのボタンをクリックします。ツール バーのボタンには、そのボタンの機能を示すグラフィックが表示されます。ボタンの機能の説明を表示するには、ボタンをクリックする前に、マウスでボタンをポイントしたまま少し待ちます。利用できるツール バーのボタンとそれぞれの機能の説明については、「ツール バーのボタンを使う」を参照してください。

コマンド ボタンには、そのボタンで実行されるコマンドの名前が付いています。コマンド ボタンをクリックして、コンテンツ ペインで特定の作業を実行します。たとえば、結果リストのすべての項目を選択するには、[すべて選択] ボタンをクリックします。

関連項目

ツール バーのボタンを使う

キーボード ショートカットを使う

ビジネス デスク ヘルプを使う


ツール バーのボタンを使う

ツール バーのボタンは、Commerce Server ビジネス デスクの任意の画面で操作を行うときに使います。画面によっては、利用できないボタンもあります。次の表は、ビジネス デスクのツール バーのボタンとそれぞれの機能を示しています。

ツール バーのボタン | 説明
追加 [追加] | 新しい項目を追加します。
開く [開く] | 選択した項目を開きます。
コピー [コピー] | 選択した項目をコピーして、類似のプロパティを持つ新しい項目を作成します。
表示 [表示] | 選択した項目を開いて編集できるようにします。
インポート [インポート] | 一連の情報をインポートします。
エクスポート [エクスポート] | 一連の情報をエクスポートします。
削除 [削除] | 選択した項目を削除します。
送信 [送信] | Microsoft BizTalk Server を使って取引先にカタログを送ります。このボタンは、カタログ エディタ モジュールでのみ利用でき、BizTalk Server がインストールされている場合にのみ有効になります。
仮想カタログの再構築 [再構築] | 仮想カタログを再構築します。仮想カタログを再構築するには、あらかじめ基本カタログ、カテゴリ、または商品を追加しておく必要があります。
カタログの発行 [最新の情報に更新/発行] | カタログ フルテキスト インデックスを更新し、キャッシュを最新状態に更新します。また、プロファイルやキャンペーンをサイトに発行し、キャッシュを更新します。
検索 [検索] | 検索ペインを開きます。
アーカイブ [アーカイブ] | 選択した項目をビジネス デスクのアーカイブに保存します。
戻る [戻る] | 編集画面を閉じて、元の画面に戻ります。
キャンセル [キャンセル] | 処理待ち中の操作を取り消します。
ドロップダウン リストから開く [ドロップダウン リストから開く] | ボックスの一覧を開き、いくつかの種類の項目の中から検索対象の項目を 1 つ選択できます。
ヘルプ [ヘルプ] | 現在のモジュールのビジネス デスク オンライン ヘルプを開きます。さらに、他のヘルプ トピックも参照できます。
印刷プレビュー [プレビュー] | 選択したレポートを、印刷されるときの形式で表示します。
印刷 [印刷] | 選択したレポートを印刷します。このボタンは、分析モジュールでのみ利用できます。
復元 [復元] | 削除したキャンペーン項目を復元します。このボタンは、キャンペーン マネージャ モジュールでのみ利用できます。
レポートの実行 [実行] | 選択したレポートを実行します。このボタンは、分析モジュールでのみ利用できます。
保存 [保存] | 追加または変更した項目やプロパティを保存します。
保存して新規作成 [保存して新規作成] | 追加または変更した項目やプロパティを保存し、新しいページを開いて新しい項目を作成します。
保存して戻る [保存して戻る] | 追加または変更した項目やプロパティを保存し、メインのモジュール画面に戻ります。

関連項目

ビジネス デスクを操作する

キーボード ショートカットを使う

ビジネス デスク ヘルプを使う


データをインポートおよびエクスポートする

カタログ、メーリング リスト、およびユーザー リストのインポートやエクスポートを行うには、Commerce Server ビジネス デスクを使います。次の表は、インポートまたはエクスポートできるデータを示しています。

モジュール インポートまたはエクスポートできるデータ
カタログ エディタ
  • カタログ 外部ソースとの間で、拡張マークアップ言語 (XML) 形式またはコンマ区切り値 (CSV) 形式のカタログをインポートおよびエクスポートできます。カタログのインポートとエクスポートについては、「XML カタログ ファイルをインポートする」、「CSV カタログ ファイルをインポートする」、および「カタログをエクスポートする」を参照してください。
カタログ定義デザイナ
  • カタログ プロパティ カタログ定義デザイナを使って、データ ウェアハウスにインポートして保存するカタログ プロパティを指定します。

    ビジネス デスクのユーザーは、システム管理者がデータ ウェアハウスにインポートしたカタログ プロパティに対してレポートを実行できます。データ ウェアハウスにエクスポートするプロパティの指定については、「カタログのプロパティ定義を追加する」を参照してください。

プロファイル定義デザイナ
  • プロファイル プロパティ プロファイル定義デザイナを使って、データ ウェアハウスにインポートして保存するプロファイル プロパティを指定します。

    ビジネス デスクのユーザーは、システム管理者がデータ ウェアハウスにインポートしたプロファイル プロパティに対してレポートを実行できます。データ ウェアハウスにエクスポートするプロファイル プロパティの指定については、「プロファイル定義に新しいプロパティを追加する」を参照してください。

レポート
  • 動的レポート 動的レポートを実行する場合は、レポートを Microsoft Excel にエクスポートして、スプレッドシートとして保存できます。

関連項目

XML カタログ ファイルをインポートする

CSV カタログ ファイルをインポートする

カタログをエクスポートする

リストをインポートおよびエクスポートする

さらにヘルプが必要な場合


キーボード ショートカットを使う

Commerce Server ビジネス デスクでは、マウスで実行する操作や編集の機能を、キーボード ショートカットでも実行できます。ショートカットを使って、ビジネス デスクで使用するすべての機能を実行できます。

ここでは、キーボード ショートカットについて説明します。また、キーボードを使ったビジネス デスクの操作に関するいくつかのヒントも示します。

Tab キー

キーボード ショートカットの表

Tab キー

Tab キーを使ってビジネス デスクの初期画面を移動する場合、最初はタブ フォーカスがナビゲーション ペイン上に置かれています。タブ フォーカスを取得している画面要素は点線の枠で示されます。

Tab キーでナビゲーション ペインの外に移動すると、タブ フォーカスはツール バーに移り、次にコンテンツ ペインに移ります。タブを項目の一覧に置いたときは、方向キーを使って一覧の中を移動します。選択を確定するには Enter キーまたは Space キーを使います。

次の操作を行う場合、他のキーボード ショートカットも使います。

  • ドロップダウン メニュー (下向き矢印の付いたメニュー) から選択する場合は、方向キーを使って選択し、次に Enter キーを押します。
  • ドロップダウン メニューを開くには、Space キーを押します。
  • ボタンを使う場合は、そのボタンがフォーカスを取得するまで Tab キーを押し、次に Enter キーを押します。
  • Tab キーで前の画面要素に戻るには、Shift キーを押しながら Tab キーを押します。

ビジネス デスク モジュールを開くには

キーボードを使ってツール バーのボタンにアクセスするには

キーボードを使って項目のプロパティを開くには

ビジネス デスク モジュールを開くには

  1. ナビゲーション ペインで、操作するビジネス デスク モジュールが含まれるカテゴリに Tab キーで移動し、次に Enter キーを押します。
  2. 操作するモジュール名に Tab キーで移動し、次に Enter キーを押します。

    選択したモジュールが開きます。

キーボードを使ってツール バーのボタンにアクセスするには

  1. ナビゲーション ペインで、追加または編集する項目が含まれるカテゴリに Tab キーで移動し、次に Enter キーを押します。
  2. 操作するモジュール名に Tab キーで移動し、次に Enter キーを押します。
  3. 使用するツール バーのボタンに Tab キーで移動し、次に Enter キーを押します。

    開いたツール バーの機能を使って、変更や追加を行うことができます。

  4. 追加や変更を保存するには、Alt キーを押しながら S キーを押します。

注

  • Tab キーでボックスの一覧に移動した場合は、Enter キーを押してボックスの一覧からオプションを選択します。↑キーと↓キーを使ってオプションを選択し、次に Enter キーを押します。
  • 1 つ前のボックスに戻るには、Shift キーを押しながら Tab キーを押します。

いくつかの画面要素に、同じキーボード ショートカットが割り当てられていることがあります。たとえば、ナビゲーション ペインの注文モジュールと、ツール バーの 開く は、どちらも Alt キーを押しながら O キーを押すショートカット キーを共有しています。このような場合、キーボード ショートカットを使うと、まず最初の画面要素がアクティブになり、もう一度キーボード ショートカットを使うと次の画面要素がアクティブになります。

キーボードを使って項目のプロパティを開くには

  1. ナビゲーション ペインで、操作する項目が含まれるカテゴリに Tab キーで移動し、次に Enter キーを押します。
  2. 操作するモジュールに Tab キーで移動し、次に Enter キーを押します。選択したモジュールが開きます。
  3. コンテンツ ペインの項目の一覧に Tab キーで移動し、↑キーと↓キーを使って項目にフォーカスを合わせます。
  4. Enter キーを押します。項目が強調表示されます。
  5. Tab キーでツール バーの 開く に移動し、次に Enter キーを押します。

    その項目のプロパティが表示され、プロパティを参照したり変更を加えることができます。

キーボード ショートカットの表

ビジネス デスクには、マウスを使わずに操作を行うためのキーボード ショートカットが用意されています。次の表は、ビジネス デスク内で頻繁に使用するキーボード ショートカットを示しています。また、ツール バーのボタンのキーボード ショートカットは、目的のボタンの上にマウス ポインタを置くと表示されます。この操作によって、ツール バーのボタンに関するヒントが表示されます。

操作 | ショートカット
[開く] | Alt + O
[検索] | Alt + F
[新規] | Alt + N
[保存] | Alt + S
[保存して戻る] | Alt + K
[保存して新規作成] | Alt + N
[削除] | Alt + D
[コピー] | Alt + C
[プロパティの表示] | Alt + V
[ヘルプの表示] | Shift + Alt + ?
[戻る] | Alt + B
[レポートの実行] | Alt + R
[エクスポート] | Alt + E
[インポート] | Alt + I
ビジネス デスクを [閉じる] | Alt + F4

関連項目

ツール バーのボタンを使う

ビジネス デスク ヘルプを使う

ビジネス デスクを操作する

さらにヘルプが必要な場合


最初にすべきこと

Commerce Server ビジネス デスクを使う前に、「ビジネス デスクの概要」を読むことをお勧めします。このトピックでは、ビジネス デスク アプリケーションとビジネス デスク クライアントについて説明しています。ニーズに合わせてビジネス デスクを構成する方法についても説明します。

Web サイトを開設してビジネスを始める前に、ビジネス マネージャまたはサイト開発者は、ビジネス デスクを使って次の作業を行う必要があります。

  1. カタログを作成する
    • XML カタログ ファイルをインポートする

      または

    • カタログ定義を作成する
    • 基本カタログを作成する
    • 基本カタログの商品の価格を設定する
  2. カタログを更新および公開する
  3. 送付方法をカスタマイズする Commerce Server による送料の計算を、商品の重量、ユーザーが購入した数量、購入金額の小計のいずれに基づいて行うか指定する必要があります。

これらの作業を行った後、Web サイトを開設してビジネスを始めることができます。さらに、サイトに合わせてビジネス デスクを構成する方法を理解するために、次の作業を行うことをお勧めします。

[キャンペーン] で、次の作業を行います。

  • 参照テーブルを設定する 参照テーブルには、業種コード、ページ グループ、およびコンテンツ サイズが格納されます。Commerce Server には、一般的な業種コードとコンテンツ サイズがいくつか用意されています。

[分析] で、次の作業を行います。

  1. 既存のレポートを調べて、ニーズが満たされているかどうかを確認します。Commerce Server に用意されているレポートの一覧については、「Commerce Server 2002 のレポート」を参照してください。他のレポートが必要な場合は、カスタム レポートを作成するか、またはサイト開発者に作成を依頼します。新しいレポートの作成については、「新しい動的レポート定義を作成する」を参照してください。
  2. システム管理者に問い合わせて、データがデータ ウェアハウスにインポートされる日時を確認します。システム管理者は、担当者がレポートを実行する前に、データをデータ ウェアハウスにインポートしておく必要があります。

[プロファイル] で、次の作業を行います。

  1. 既存のプロファイル定義を調べて、ニーズが満たされているかどうかを確認します。Commerce Server に用意されているプロファイル定義の一覧については、「サンプルのプロファイル定義」を参照してください。プロファイル定義を追加する場合は、システム管理者に依頼します。プロファイル定義にプロパティを追加する方法については、「プロファイル定義にプロパティを追加する」を参照してください。
  2. 既存のサイト用語を調べて、ニーズが満たされているかどうかを確認します。サイト用語を追加する方法については、「サイト用語を作成する」を参照してください。


一般的な作業

サイトを公開した後で、次の作業を頻繁に実行する必要があります。

  • ユーザー パスワードをリセットする
  • 注文を検索する、表示する、並べ替える
  • カタログに商品を追加する
  • 基本カタログの商品の価格を設定する
  • 割引を作成する
  • 仮想カタログの商品価格に割引を適用する
  • 広告を対象化する
  • レポートを実行する
  • 組織プロファイルを追加する
  • サイト用語を作成する


ビジネス デスク ヘルプを使う

Commerce Server ビジネス デスクからヘルプを参照するには、 ヘルプの表示 をクリックします。必要に応じて、あらゆる画面と作業についてのヘルプが表示されます。

ビジネス デスクには、ダイアログ ボックス レベルのヘルプと作業のヘルプの両方が用意されています。ダイアログ ボックス レベルのヘルプは、特定のテキスト ボックスで必要なエントリを示します。作業のヘルプは、特定の作業の手順を順序立てて示します。Commerce Server 2002 には、システム管理者やサイト開発者向けに書かれたマニュアルも用意されています。

トピックを印刷する

[目次] タブ

[キーワード] タブ

[検索] タブ

用語集の用語

トピックを印刷する

  • 印刷するトピックを右クリックし、[印刷] をクリックします。
  • ポップアップ トピックを印刷するには、ポップアップ ウィンドウの内側を右クリックし、[印刷] をクリックします。
  • ブックに含まれるすべての項目を印刷するには、[目次] タブで目的のブックを右クリックします。[印刷] をクリックして、[選択された見出しおよびすべてのサブトピックを印刷] をクリックします。

    注

    • 大きな図を印刷すると、全体を印刷できない場合があります。図が非常に大きい場合、コードや図の右端で余白の境界を超えた部分は印刷されません。

[目次] タブ

ビジネス デスクのヘルプの最初のウィンドウで、[目次] タブをクリックし、ビジネス デスクのヘルプの目次を表示します。トピック名をクリックしてそのトピックを表示するか、またはプラス記号 (+) をクリックしてトピックを展開します。トピックは、ヘルプ ウィンドウの右側にあるコンテンツ ペインに表示されます。

現在選択されているトピック、または現在選択されているトピックとすべてのサブトピックを印刷するには、 印刷 をクリックします。[同期] をクリックして、目次を右側のコンテンツ ペインと同期させることもできます。検索を実行した後は、目次をコンテンツ ペインと同期させる必要があります。

[キーワード] タブ

ビジネス デスクのオンライン インデックスを表示するには、[キーワード] タブをクリックします。

[キーワード] タブで語句を検索するには

  1. [ビジネス デスク ヘルプ] ウィンドウで、[キーワード] タブをクリックします。
  2. [キーワードを入力してください] ボックスに、検索に使用するキーワードまたは語句を入力します。入力したキーワードまたは語句に最も近い語句が自動的に表示されます。
  3. 一致する語句が見つかったら、[表示] をクリックします。その語句を含むトピックの一覧が [該当するトピック] ボックスに表示されます。
  4. 目的の情報を見つけるには、トピックを選択し、[表示] をクリックします。トピックがコンテンツ ペインに表示されます。

[検索] タブ

ビジネス デスクのヘルプで特定のキーワードまたは語句を検索するには、[検索] タブをクリックします。

キーワードまたは語句を検索するには

  1. [ビジネス デスク ヘルプ] ウィンドウで、[検索] タブをクリックします。
  2. [検索文字列] ボックスに、検索に使用するキーワードまたは語句を入力し、[検索開始] をクリックします。結果の一覧がコンテンツ ペインに表示されます。

    [検索タイプの選択] ボックスを使うと、検索の種類を選択できます。特に指定しない限り、入力したとおりの語句が検索されます。選択できる検索の種類は次のとおりです。

    検索の種類 | 説明
    [完全一致] | 入力した文字列と正確に一致する語句を検索します。たとえば、「ビジネス デスク」と入力した場合は、"ビジネス デスク" という語句が含まれるトピックだけが検出されます。
    [標準検索] | 入力した語句のすべての形態を検索します。たとえば、「ビジネス デスク」と入力した場合は、"ビジネス" を含むトピックと "デスク" を含むトピックがすべて検出されます。
  3. 参照するトピックを表示するには、トピックの見出しをクリックします。

トピックがコンテンツ ペインに表示されます。

用語集の用語

ビジネス デスクのヘルプ トピックがコンテンツ ペインに表示されるときに、いくつかの語句 ("Commerce Server ビジネス デスク" など) が緑色で強調表示されることがあります。強調表示されている語句をクリックすると、その用語の定義が表示されます。また、ビジネス デスクの目次の末尾にある「用語集」では、これらの用語が (英語の単語はアルファベット順に、日本語の単語は五十音順に) 一覧表示されます。


さらにヘルプが必要な場合

ニーズに応じて Commerce Server ビジネス デスクを使用したりカスタマイズする場合、さらにヘルプが必要なときは、システム管理者またはサイト開発者に問い合わせてください。次の表は、それぞれが担当する作業を示しています。

担当者 作業内容
システム管理者
  • カタログをインポートおよびエクスポートする場合に使用する共有フォルダを作成する。
  • 外部のカタログをインポートできるように、拡張マークアップ言語 (XML) ファイルまたはコンマ区切り値 (CSV) ファイルに変換する。
  • BizTalk Server を使ってカタログを交換できるように、取引先を設定する。
  • レポートを実行できるように、データ ウェアハウスにデータをインポートする。
  • 追加のプロファイルデータを収集できるように、新しいプロファイル定義とデータ ソースを追加する。
  • ビジネス デスク モジュールのセキュリティを設定する。
  • ダイレクト メール ジョブのスケジュールを設定する。
  • ビジネス デスクのトラブルシューティングを行う。
  • Web サイト環境のトラブルシューティングを行う。
サイト開発者
  • Web サイトを既存のシステムと統合する。
  • ビジネス デスクの機能をカスタマイズする。
  • ビジネス デスクに新しいモジュールを追加する。
  • クロスセル項目やアップセル項目などの関連セル機能をサイトに追加する。
  • ページ グループを対象に指定できるように、Web ページでの広告表示を有効にする。
  • カスタム レポートを作成する。


ビジネス デスク分析

サイトでのユーザーの利用状況に関するデータを分析するには、分析モジュールを使います。登録済みユーザーに関する特定の情報を分析できます。また、ユーザーが特定のページでどの程度の時間を費やしたか、どのリンクをクリックしたかなど、サイトを訪問中のユーザーの行動を分析することもできます。

レポートを実行してデータを調べることができます。このようなレポートから得られる情報は、価格設定、マーケティング、広告など、ビジネスのさまざまな局面で的確な判断を下すのに役立ちます。

分析レポートを実行するには、システム管理者によって Microsoft Commerce Server 2002 が既にインストールされていることが必要です。さらに、システム管理者によって Web の利用状況およびトランザクションのデータがデータ ウェアハウスにインポートされ、レポート準備タスクが実行されていることも必要です。

ここでは、次のトピックについて説明します。

  • レポート管理のワークフロー レポートを実行、変更、および管理するときのワークフローを示します。
  • 動的レポートと静的レポートについて ビジネス デスク分析のコンポーネントについて、レポートにセキュリティを設定する方法について、およびレポートのプロパティについて説明します。また、さまざまな種類のレポート定義について概要を示します。
  • Commerce Server 2002 のレポート Commerce Server 2002 に用意されているレポートおよびレポート プロパティについて説明します。
  • クリックストリーム分析 Commerce Server 2002 レポートを使ってクリックストリーム分析を行う方法について説明します。
  • Commerce Server データを分析する前に Commerce Server 2002 の分析機能の実行に必要な手順について説明します。
  • レポートを検索する レポートの一覧でレポートを検索する方法について説明します。
  • レポートを実行する 動的レポートと静的レポートを実行する方法について説明します。
  • 動的レポートを表示する 完成した動的レポートを表示する方法について、およびドリルスルー機能を使用する方法について説明します。
  • 静的レポートを表示する "完成したレポート" モジュールで静的レポートを開いたり表示する方法について説明します。
  • レポートを印刷する 動的レポートと静的レポートをブラウザ ウィンドウから印刷する方法について説明します。
  • 動的レポートをエクスポートする 動的レポートを Microsoft Excel にエクスポートする方法について説明します。
  • 新しい動的レポート定義を作成する 新しい動的レポート定義を作成する方法について説明します。
  • レポートを削除する カスタム動的レポート定義および完成した静的レポートを削除する方法について説明します。
  • レポート プロパティを表示する レポート プロパティを表示する方法について説明します。


レポート管理のワークフロー

次の図は、レポートを実行、変更、および管理するときのシナリオの例を示しています。このシナリオは、レポートの実行およびデータ ウェアハウスのデータベースへのアクセスが、システム管理者によって許可されていることを前提としています。

動的レポートの実行例

  1. レポート モジュールで動的レポートを実行して、Web サイトの有効性を分析します。また、売り上げや Web の利用状況のデータを調査します。
  2. レポート モジュールで、商品別売り上げレポートなどの既定の動的レポートを表示します。
  3. ブラウザ ウィンドウで、既存の動的レポート定義を変更します。日付の範囲の変更やレポートへのデータの追加をすることができます。また、ピボットテーブル リストを使って、既存のレポートにディメンションとメジャーを追加することもできます。
  4. ブラウザ ウィンドウで、変更後の動的レポートを新しいレポート定義として保存します。
  5. レポート モジュールで、新しい動的レポート定義を実行します。これは、週に 1 回など、必要な頻度で行います。

静的レポートの実行例

  1. レポート モジュールで、エントリ画面の分析レポートなどの静的レポートを実行します ( レポートの実行 をクリックすると、[レポートのパラメータ] ダイアログ ボックスが表示されます)。
  2. [レポートのパラメータ] ダイアログ ボックスで、必要に応じて定義を変更します。
  3. "完成したレポート" モジュールで、その静的レポートを開いてブラウザ ウィンドウに表示します。指定した情報が含まれるレポートが表示されます。必要に応じて、レポートを印刷できます。

関連項目

レポートにセキュリティを設定する

ユーザー リストとメーリング リスト

リストをインポートおよびエクスポートする


動的レポートと静的レポートについて

分析は、データ ウェアハウスに格納されているユーザーおよびサイトのデータに関するレポートを実行するときに使います。このレポートの結果を使ってビジネス面での分析を行い、顧客または潜在的な顧客が Web サイトをどのように利用しているかを調べます。たとえば、ユーザーの特性や過去の行動に関するレポートを実行して、広告や商品の対象を特定のプロファイルに適合するユーザーに絞るようにサイトを更新できます。

分析レポート モジュールでは、数種類の通貨に基づくサイトを対象にした複数通貨レポートを実行することもできます。たとえば、サイトによっては複数の通貨によるトランザクションが発生する可能性があります。レポートの実行時に、特定の 1 つのサイトを対象にしてレポートを実行するのか、すべてのサイトを対象にしてレポートを実行するのかを指定します。

どのレポートを実行する場合も、システム管理者によってサイト データがデータ ウェアハウスに既にインポートされていることが必要です。このデータは、Web ログ ファイル、Commerce Server データベース、およびその他のデータ ソースから収集されたものです。データがインポートされると、ビジネス デスクからレポートを実行してデータを分析することができます。システム管理者がデータをインポートするときは、Commerce Server データ変換サービス (DTS) タスクが使われます。詳細については、「Commerce Server データを分析する前に」を参照してください。

スクリプト化された DTS タスクを使用する方法については、「DTS タスクのスクリプト」を参照してください。DTS タスクを実行する方法については、「データ ウェアハウスの実行」を参照してください。

ここでは、次のトピックについて説明します。

  • 動的レポートと静的レポートの機能
  • 動的レポート
  • ドリルスルー レポート
  • 静的レポート
  • レポートをドメイン間で使う
  • レポート定義
  • ディメンションとメジャー
  • ピボットテーブル
  • ピボットテーブル フィールド リスト
  • 折りたたまれたディメンション
  • ピボットグラフ
  • レポートにセキュリティを設定する

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


動的レポートと静的レポートの機能

次の表は、動的レポートと静的レポートの相違点を示しています。

機能 | 動的レポート | 静的レポート
レポート結果のサイズを調整する | 詳細データを表示しないようにします。 | レポート定義の行数を制限します。
レポートの内容を変更する | ピボットテーブル機能を使って、レポート結果のディメンションとメジャーを追加または削除します。また、フィルタを指定し、ディメンションのレベルを展開または折りたたみます。 | システム管理者は、プログラムによって静的レポートに変更を加えます。
レポート結果をリスト マネージャに直接エクスポートする | 動的レポートの結果をリスト マネージャにエクスポートすることはできません。 | 静的レポートは、動的リストまたは静的リストとしてリスト マネージャにエクスポートできます。
レポート結果を Microsoft Excel にエクスポートする | 動的レポートの結果は Microsoft Excel にエクスポートできます。 | 静的レポートを Microsoft Excel にエクスポートすることはできません。
新しいレポート定義を作成する | 既存の動的レポートを編集したり、SQL Server クエリや OLAP キューブに基づいて新しいレポート定義を作成することができます。新しい動的レポート定義を作成する方法については、「新しい動的レポート定義を作成する」を参照してください。 | システム管理者は、プログラムによって静的レポートに変更を加えることができます。
レポート定義を削除する | カスタム動的レポート定義は削除できます。既定の動的レポート定義を削除することはできません。 | カスタム静的レポート定義は削除できます。既定の静的レポート定義を削除することはできません。
完成したレポートを保存する | 完成した動的レポートをデータと共にビジネス デスクに保存することはできません。 | 完成した静的レポートは、削除しない限り、データと共にビジネス デスクの"完成したレポート" モジュールに格納されます。
レポート結果をチャートとして表示する | 完成した動的レポートをピボットグラフとして表示できます。 | 完成した静的レポートをチャートとして表示することはできません。
ドリルスルー機能を使って、選択したレポートの付加的なレポート データを表示する | 動的 OLAP レポートの場合は、ピボットテーブルのデータ領域にあるセルをダブルクリックすると、そのセルの詳細データを取得できます。 | ドリルスルー機能は静的レポートでは使用できません。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


動的レポート

動的レポートは、実行時に作成されるレポートです。レポートを実行するたびに、データ ウェアハウスにある最新データが収集されます。時間が経過しても変化しないレポート定義だけが保存されます。レポートがデータと共にデータ ウェアハウスに格納される静的レポートとは、この点が異なります。動的レポートを実行するには、レポート モジュールを使います。

動的レポートを実行すると、Internet Explorer の新しいブラウザ ウィンドウに、ピボットテーブルやピボットグラフ、またはその両方として表示されます。ピボットテーブルやピボットグラフの表示と非表示は、動的レポートの単位で切り替えることができます。

ピボットテーブルはフィルタ、行、列、ディメンション、およびメジャーで構成され、レポートの詳細が格納されます。

ピボットグラフは、レポート内のデータをグラフィックで表現したものです。

ピボットテーブルおよびピボットグラフでは、データの詳細を表示したり、ディメンションとメジャーを移動して違う視点からデータをとらえることができます。ピボットテーブルとピボットグラフは常に同期されるので、同じデータが表現されます。

ピボットテーブルまたはピボットグラフを操作する方法の詳細については、[ピボットテーブル] 画面または [ピボットグラフ] 画面の ヘルプ をクリックして、Microsoft ピボットテーブルまたは Microsoft ピボットグラフのヘルプを表示してください。

動的レポートをエクスポートする

完成した動的レポートを Microsoft Excel にエクスポートするには、ピボットテーブルのコントロールを使います。Microsoft Excel を使って、完成した動的レポートを保存、変更、および印刷します。完成した動的レポートを Microsoft Excel にエクスポートするには、完成した動的レポートが存在するコンピュータに Microsoft Excel がインストールされていることが必要です。

静的レポートと異なり、動的レポートの結果をリスト マネージャ モジュールにエクスポートすることはできません。

新しい動的レポートを作成する

ビジネス デスクの既存のレポートを基にして、新しい動的レポート定義を作成できます。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

動的レポートと静的レポートの機能

ピボットテーブル

ピボットテーブル フィールド リスト

ピボットグラフ

ドリルスルー レポート

新しい動的レポート定義を作成する

動的レポートをエクスポートする

折りたたまれたディメンション

静的レポート


ドリルスルー レポート

ドリルスルー レポートは、動的レポートの一種です。このレポートでは、クリックされたディメンションが含まれるキューブのディメンションすべてに関する詳細な情報を表示できます。

Commerce Server では、商品別売り上げレポートでドリルスルー機能が有効になっています。

ドリルスルーの最大レコード数に対する制限は、プログラムによって設定できます。また、他のレポートでもドリルスルー機能を有効にすることができます。

関連項目

動的レポートと静的レポートの機能

動的レポート

静的レポート


静的レポート

静的レポートは、要求に応じて直ちに実行され、データと共にデータ ウェアハウスに格納されるレポートです。レポートの作成に必要な情報だけがデータ ウェアハウスに格納される動的レポートとは、この点が異なります。静的レポートは Web サイトに掲載できます。また、静的レポートのデータは、ビジネス デスクのリスト マネージャ モジュールにエクスポートできます。

静的レポートの実行にはレポート モジュールを使い、表示には "完成したレポート" モジュールを使います。

静的レポートを使うと、サイズの大きなデータ セットについてのレポートを表示できます。ただし、サイズの大きなデータ セットに対して静的レポートを実行すると、完了までに時間がかかる場合があります。実行中の静的レポートは、"完成したレポート" モジュールに "保留中" と表示されます。完成した静的レポートを開くと、その内容が Microsoft Internet Explorer の新しいウィンドウに HTML 文書として表示されます。

静的レポートの結果をカスタマイズする

静的レポートの結果をカスタマイズするには、[レポートのパラメータ] ダイアログ ボックスで静的レポートのプロパティを使います。静的レポートが基づくどのパラメータについても、既存の値を変更したり、新しい値を入力することができます。次に例を示します。

  • 日付パラメータのあるレポートを実行する場合は、正確な日付、日付の範囲、または相対日付 (昨年など) を選択できます。
  • 式パラメータのある静的レポートを実行する場合は、有効なオペランドを選択して必要な式を作成できます。

静的レポートを実行した後で、レポートの結果をブラウザ ウィンドウで変更することはできません。ただし、Internet Explorer の機能を使って、通常の HTML ファイルと同様に、静的レポートを印刷したり、静的レポートをファイルとして保存することができます。Internet Explorer の機能については、Internet Explorer のヘルプを参照してください。

注

  • カスタム静的レポートを作成するには、SQL スクリプトを使います。静的レポートのサンプル スクリプトおよびツールの詳細については、Commerce Server 2002 ヘルプの「Business Analytics Samples」を参照してください。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

Commerce Server 2002 のレポート

レポートを実行する

動的レポートをエクスポートする

新しい動的レポート定義を作成する

動的レポートを表示する

静的レポートを表示する


レポートをドメイン間で使う

複数の Web サイトを単一の Commerce Server データ ウェアハウスと共に運用している場合は、データ ウェアハウス内にある 1 つ、複数、またはすべてのサイトに対して動的レポートまたは静的レポートを実行できます。

注

  • 複数の Web サイトおよびビジネス デスク アプリケーションがある場合は、複数のサイトからのデータを基に静的レポートを作成できます。ただし、静的レポートを表示できるのは、その静的レポートを作成したときに使ったビジネス デスク アプリケーションだけです。


レポート定義

レポート定義では、レポートに含まれる予定の行ディメンション、列ディメンション、およびメジャーを指定します。また、レポート定義には、レポートの表示方法についての情報も含みます。レポートを実行すると、SQL Server データベースや分析サーバーの OLAP キューブでクエリが実行され、現在のデータが取得されます。

レポート モジュールには、静的と動的の 2 種類のレポート定義があります。静的レポートでは、HTML ベースのレコードでデータが提供されます。動的レポートでは、Office Web コンポーネントを使ってデータのスナップショットが提供されます。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

動的レポートと静的レポートの機能

Commerce Server 2002 のレポート


ディメンションとメジャー

レポートにどのようなデータが返されるかは、レポート定義に含まれているディメンションとメジャーで決まります。メジャーとディメンションを使って、レポートの表示内容を定義することになります。

  • "メジャー" は、最小値、最大値、カウント、合計、平均値など、集計された数値エンティティです。メジャーには、計算によって求められるメジャーもあります。これは、複数のメジャーから数学的演算に基づいて求められます。
  • "ディメンション" は、色、サイズ、商品、時刻などのビジネス エンティティです。Commerce Server 2002 のレポート定義では、ディメンションとメジャーを組み合わせることで、数量ベースの情報と時間ベースの情報を提供できます。

レポートによっては、特定期間中の平均値を数値 (メジャー) にすることもあります。このようなレポートを作成する場合は、平均値計算、時間間隔、およびレポート内での値の物理的な位置によって、数値がどのような影響を受けるのかを理解しておくことが重要です。たとえば、次のようなメジャーについて考えてみます。

  • 平均要求数/時間
  • 平均要求数/曜日
  • 平均訪問数/時間
  • 平均訪問数/曜日

これらの値は時間間隔に基づいて計算されますが、この時間間隔は、ピボットテーブルの現行セルに指定されている範囲によって決まります。レポートに複数の時間ディメンションを追加した場合は、OLAP キューブによってそれらのディメンションの論理積が計算され、平均値を求める時間間隔が決まります。

たとえば、1 時間あたりの平均を求めるメジャー (平均要求数/時間など) を含んだセルがあるとします。このセルがある列は、日付 = 2000 年 6 月、時刻 = 12:00 という期間枠を含む行と交差しています。この場合、セルには、2000 年 6 月のすべてのアクティビティのうち、12:00 ～ 13:00 の間に発生したものの合計を、30 で割った値が表示されます。30 となるのは、6 月は 30 日あり、12:00 ～ 13:00 は 1 日に 1 回あるためです。

静的レポートを実行するときには、返されるデータのパラメータを変更できます。たとえば、商品を購入したユーザー 25 人分だけのデータを要求できます。ただし、静的レポートに含まれるディメンションとメジャーを変更することはできません。

動的レポートを実行するときには、利用できるディメンションとメジャーの一覧が、ピボットテーブルまたはピボットグラフに表示されます。

ピボットテーブル フィールド リストを使って、動的レポートのディメンションとメジャーを変更できます。たとえば、ディメンションとメジャーの方向を追加、削除、または変更をしたり、完成したレポートに表示される詳細のレベルを変更したりします。

完成した動的レポート定義を変更する場合には、変更後のレポート定義を、新しいレポートまたはカスタム動的レポート定義として保存することもできます。

関連項目

動的レポートと静的レポートの機能

Commerce Server 2002 のレポート

ピボットテーブル

ピボットテーブル フィールド リスト

ピボットグラフ


ピボットテーブル

ピボットテーブルは、動的レポートの表示に使用する対話型のテーブルです。

動的レポートのピボットテーブルとピボットグラフは、次のように変更することができます。

  • 行または列として機能するディメンションを追加または削除します。また、メジャーを追加または削除します。
  • ディメンションで表示される詳細のレベルを展開または折りたたみます。
  • フィルタ ディメンションを追加または変更します。

変更を加えた動的レポートは、新しい動的レポート定義として保存できます。この新しい動的レポート定義は、ビジネス デスクのレポート モジュールで利用できます。

関連項目

新しい動的レポート定義を作成する

ピボットグラフ

ピボットテーブル フィールド リスト

折りたたまれたディメンション


ピボットテーブル フィールド リスト

ピボットテーブル フィールド リストには、動的レポートで利用できるディメンションとメジャーのリストがあります。ピボットテーブルにディメンションおよびメジャーを追加するには、ピボットテーブル フィールド リストを使います。ピボットテーブル フィールド リストが表示されるのは、動的レポートがブラウザ ウィンドウに表示されるときです。ピボットテーブル フィールド リストが自動的に表示されない場合は、 フィールド リスト をクリックしてください。

ピボットテーブル フィールド リストには、動的レポートに含まれるディメンションとメジャーが表示されます。太字で表示されているディメンションとメジャーは、特に指定しなくてもレポートに含まれます。太字で表示されていないディメンションとメジャーは、指定することによってレポートに含めることができます。ディメンションとメジャーは、ドラッグ アンド ドロップ機能を使ってレポートに追加できます。

次の図は、ピボットテーブル フィールド リストの画面要素を示しています。

ピボットテーブル フィールド リスト

注

  • 上の図で示しているレポートのピボットテーブル フィールドは、Commerce Server 2002 Enterprise Edition でのみ利用できるものです。

関連項目

ピボットテーブル

ピボットグラフ

折りたたまれたディメンション


折りたたまれたディメンション

ディメンションは、メジャーの説明的な属性です。たとえば、集計はディメンションで、ヒット率はメジャーです。

レポートに表示される詳細のレベルを変更するには、ディメンションを展開または折りたたみます。

折りたたまれたディメンションは、ディメンション名の左側にプラス記号 (+) が付いた形で、ピボットテーブルに表示されます。ディメンションが折りたたまれているときにレポートに表示される合計は、全体としてのディメンションの合計をまとめたものです。ディメンション名の左側のプラス記号をクリックすると、ディメンションの個々のメンバが表示されます。

折りたたまれたディメンションは、そのディメンションが折りたたまれているレベルで並べ替えられます。

関連項目

ピボットテーブル

ピボットグラフ

ピボットテーブル フィールド リスト


ピボットグラフ

ピボットグラフは、動的レポートの表示に使用する対話型のチャートです。 チャート タイプ ボタン をクリックすると、動的レポートがチャートで表示されます。使用されるチャートは、Commerce Server 2002 に用意されている多くの種類のチャートのいずれかになります。

Commerce Server 2002 の動的レポート定義には、既定のチャート形式が割り当てられていますが、必要に応じて他のチャート形式を選択することもできます。ピボットグラフにディメンションおよびメジャーを追加するには、ピボットグラフ フィールド リストを使います。

次の図は、利用状況の要約 (曜日単位) レポートのピボットグラフの画面要素を示しています。

注

  • 上の図で示しているレポートのピボットグラフは、Commerce Server 2002 Enterprise Edition でのみ利用できるものです。

ピボットグラフには、現在のピボットテーブル ビューのメジャーがすべて表示されます。ピボットグラフの数が多いために表示できない場合は、メジャーをいくつか削除する、ディメンションを折りたたむ、ディメンションにフィルタを追加する、などの方法で対処します。

ピボットグラフでは多くのチャート形式がサポートされています。チャート形式を確認したり選択するには、ピボットグラフの チャート タイプ ボタン をクリックします。

注

  • レポートでチャートが表示されている場合に、または、操作する人によって [チャートの表示] ボタンがクリックされた場合にだけ、チャートはピボットに接続されます。これは、大きなレポートは最初に表示するときに時間がかかるためです。

関連項目

動的レポートを表示する

ピボットテーブル

ピボットテーブル フィールド リスト

折りたたまれたディメンション


レポートにセキュリティを設定する

レポートの作成に使うビジネス デスクの分析モジュール、および、レポート データが格納されるデータ ウェアハウスのデータベースには、システム管理者と共同でセキュリティを設定することをお勧めします。いずれのセキュリティを設定する場合でも、システム管理者は、分析機能にアクセスするビジネス デスクのユーザーの Windows グループを作成し、そのグループに必要なアクセス許可を割り当てます。

分析モジュールにセキュリティを設定する

データ ウェアハウスのデータベースにセキュリティを設定する

分析モジュールにセキュリティを設定する

分析レポートを実行するためのアクセス許可をビジネス デスク ユーザーに付与または拒否するには、ビジネス デスクのアクセス許可モジュールを使います。選択したユーザーやユーザー グループだけが特定のレポート機能を利用できるように、ビジネス デスク分析の領域別にセキュリティを設定できます。

たとえば、レポート モジュールの 実行 ボタンを無効にして、あるグループのユーザーがビジネス デスクでレポートを実行できなくすることができます。

既定のビジネス デスク ユーザー アカウントは、ビジネス デスク Administrators グループだけです。ビジネス デスク アプリケーションをインストールした直後は、このグループ アカウントはインストール先の Web サーバーの Windows Administrators グループに属するユーザーで構成されています。

ビジネス デスク Administrators グループのメンバはすべてのアクセス許可があり、他のユーザーを追加したり、[新規] レポート アクセス許可を割り当てることができます。[新規] レポート アクセス許可があると、ユーザーは新しいレポートを作成して保存することができます。

重要

  • [新規] レポート アクセス許可がある場合、ビジネス デスクのユーザーは、レポート用の新しい SQL クエリを作成して、それをデータ ウェアハウスに保存することができます。レポートを実行するユーザーは、自分の実行しているクエリが新しいもので、データに害を及ぼす可能性もあることを認識していない場合があります。[新規] レポート アクセス許可を与えるユーザーを決めるときは、この潜在的なリスクも考慮に入れる必要があります。

ビジネス デスクのアクセス許可を適用する方法については、「Windows アカウントに対してビジネス デスク アクセス許可を設定する」を参照してください。

注

  • キャンペーン マネージャ モジュールを使用するアクセス許可のあるユーザーは、キャンペーン マネージャを使用してレポートをリスト マネージャにエクスポートすると、リスト内のユーザー データにアクセスできます。

    この場合に、ユーザー データにセキュリティを設定するには、ユーザーに対して、リスト マネージャにレポートをエクスポートする権限を明示的に拒否します。

  • ビジネス デスクでユーザーに割り当てたアクセス許可に関係なく、ユーザーが動的レポートを実行すると、 新規 (新しいレポート) ボタンと 保存 (レポートの保存) ボタンが有効になります。これらのボタンはビジネス デスク セキュリティで直接制御されていません。

    ユーザーは、ビジネス デスクでレポートの実行に利用している URL を使うことによって、ビジネス デスク以外で動的レポートを実行できる場合もあります。

データ ウェアハウスのデータベースにセキュリティを設定する

データ ウェアハウスのデータベースにはレポートで使用するデータが含まれているので、そのセキュリティはシステム管理者が設定します。データ ウェアハウスのデータベースにアクセスできないと、ユーザーはレポートを実行できません。

システム管理者は SQL Server にレポート ロールを作成して、そのロールに Windows アカウントのグループを割り当てることができます。詳細については、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。

データ ウェアハウスのデータベースにアクセスするレポートの一覧については、「OLAP キューブと SQL Server にアクセスするレポートの一覧」を参照してください。

Commerce Server 2002 では、インターネット インフォメーション サービス (IIS) 経由で OLAP データベースに接続することによって、ビジネス デスク ユーザーが動的レポートを実行できます。この接続方法が設定されていると、ピボットテーブル サービスがファイアウォールやプロキシ サーバーを通過して、Analysis Services サーバーにアクセスすることも可能です。詳細については、「HTTPS 経由で分析サーバーにアクセスする」を参照してください。

関連項目

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

OLAP キューブと SQL Server にアクセスするレポートの一覧

HTTPS 経由で分析サーバーにアクセスする

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウントのアクセス許可を表示する


Commerce Server 2002 のレポート

Commerce Server 2002 には、35 個のレポート定義が用意されています。動的レポート定義を変更して新しいレポートを作成し、作成した動的レポート定義を Commerce Server ビジネス デスクのレポート モジュールに追加できます。新しい動的レポート定義を作成する方法の詳細については、「新しい動的レポート定義を作成する」を参照してください。

注

  • レポートを実行するには、システム管理者がいくつかの作業をあらかじめ実行しておく必要があります。詳細については、「Commerce Server データを分析する前に」を参照してください。

ここでは、次のトピックについて説明します。

  • 商品別売り上げレポート
  • Web 利用状況のレポート
  • ユーザーのレポート
  • 訪問のレポート
  • 診断のレポート
  • クエリ文字列のレポート
  • レポート プロパティ
  • レポート内の時間の処理

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

データ ウェアハウスにセキュリティを設定する

レポートがアクセスするデータベースにセキュリティを設定するスクリプト


商品別売り上げレポート

商品別売り上げのデータを分析するには、レポート モジュールを使って次のレポートを実行します。

商品別売り上げ (動的レポート)

商品別売り上げ (動的レポート)

日付単位の商品別販売数量と売り上げ金額を調べるには、商品別売り上げレポートを使います。このレポートでは、合計数量と売り上げ金額が、商品カテゴリの順で表示されます。表示されている商品カテゴリごとに、そのカテゴリとすべての子孫カテゴリに属するすべての商品の売り上げ情報がレポートに表示されます。

たとえば、ある商品カテゴリの階層で、最上位が "電子機器" であり、その 2 つの子カテゴリがそれぞれ "時計" と "ラジオ" だとします。ここで、カテゴリとしては "時計" にも "ラジオ" にも分類できる時計付きラジオが 1 台売れました。レポートでは、この売り上げが "電子機器" の下に数量 1 として表示されます。これは、この商品が "電子機器" カテゴリの子カテゴリに属しているためです。

ただし、"電子機器" カテゴリを展開すると、"時計" の下に 1、"ラジオ" の下に 1 として売り上げが表示されています。これは、時計付きラジオが両方のカテゴリに属しているためです。商品の売り上げが "電子機器" の両方の子カテゴリの下に表示されていても、"電子機器" カテゴリの合計にはこの商品は 1 回だけカウントされます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[数量] | 販売された品目の数。
[収益] | 品目の合計売り上げ金額。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 販売時の日付。
[サイト] | 販売元のサイト。
[商品カテゴリ] | 販売された品目の商品カテゴリ階層。
[通貨] | 販売時に使われた通貨。

注

  • 商品カテゴリ ディメンションには複数のフィルタを選択することはできません。

商品別売り上げレポートに戻る

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する


Web 利用状況のレポート

サイトの利用状況、参照 URL、およびデータ要求を分析するには、レポート モジュールを使って次のレポートを実行します。

ブラウザごとの利用状況 (動的レポート)

ディレクトリ (動的レポート)

エントリ画面の分析 (静的レポート)

参照元ドメインを要求順に表示 (動的レポート)

要求の多いページ (動的レポート)

利用状況の要約 (曜日単位) (動的レポート)

利用状況の要約 (時間単位) (動的レポート)

利用状況の要約 (週単位/年間) (動的レポート)

利用状況の傾向 (動的レポート)

ブラウザごとの利用状況 (動的レポート)

Web サイトへのアクセスに使用されたブラウザの種類別に利用状況を調べるには、ブラウザごとの利用状況レポートを使います。

ブラウザにかかわる技術トレンドを調べて Web サイトの開発に役立てるには、このレポートの情報を使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[訪問数] | レポート期間中にユーザーが特定のブラウザを使ったクローズド ビジットの数。訪問としてカウントするかどうかは、ユーザーが Web サイトを閲覧した時間の長さに基づいて判断されるので、設定によって変えることができます。1 訪問の既定値は 30 分です。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[エージェント ブラウザ カテゴリ] | ユーザーが Web サイトの表示に使っていた Web ブラウザ ソフトウェアの種類。
[エージェントのバージョン] | ユーザーが Web サイトの表示に使っていた Web ブラウザ ソフトウェアのバージョン。
[オペレーティング システム] | サイト訪問時にユーザーが使っていたオペレーティング システム。
[ユーザー エージェント] | Web ログ ファイルから取得したユーザー エージェント文字列。
[日付] | ユーザーがサイトを訪問した日付。
[サイト] | ユーザーが訪問したサイト。

注

  • システム管理者は、CSDW_MakeUserAgentDate ストアド プロシージャを使ってオペレーティング システム ディメンションにオペレーティング システムを追加できます。

Web 利用状況のレポートに戻る

ディレクトリ (動的レポート)

1,000 個の統一リソース識別子 (URI) ディレクトリ レベルのうち、最も訪問されたディレクトリ レベルを調べるには、ディレクトリ レポートを使います。このレポートには、URI ディレクトリの最初の 6 レベルの利用状況が表示されます。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1,000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • 訪問回数が最も多い 1,000 個の URI 以外の情報 (訪問回数の最も少ない URI など) を参照する場合は、サイトのデータベースに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[ヒット数のカウント] | レポート期間中に発生したヒットの合計。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | ヒットが発生した日付。
[ディレクトリのレベル] | サイトに対応するディレクトリのレベル。Commerce Server では最大で 6 レベルまでサポートしています。
[要求] | ヒットが、要求 (広告の配信要求など) であったかどうか。
[サイト] | ヒットが発生したサイト。

Web 利用状況のレポートに戻る

エントリ画面の分析 (静的レポート)

サイトにたどり着くために最も頻繁に使用されたエントリ パスを調べるには、エントリ画面の分析レポートを使います。このレポートには、上位 6 レベルのパス ディレクトリが表示されます。

注

  • エントリ画面の分析レポートでは、ユーザーがサイトにどのような経路でたどり着いたかを分析します。この処理には多くのプロセスが使われるため、完了までに時間がかかる場合があります。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[カウント] | 各ユーザーがサイト訪問中にアクセスしたページの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[URI 1] | ユーザーが訪問した Web サイトにあるページに到達するための、最初のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。
[URI 2] | ユーザーが訪問した Web サイトにあるページに到達するための、2 番目のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。
[URI 3] | ユーザーが訪問した Web サイトにあるページに到達するための、3 番目のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。
[URI 4] | ユーザーが訪問した Web サイトにあるページに到達するための、4 番目のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。
[URI 5] | ユーザーが訪問した Web サイトにあるページに到達するための、5 番目のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。
[URI 6] | ユーザーが訪問した Web サイトにあるページに到達するための、6 番目のパスの統一リソース識別子。Commerce Server では、URI を 6 個まで記録できます。

Web 利用状況のレポートに戻る

参照元ドメインを要求順に表示 (動的レポート)

ユーザーがどのサイトからアクセスしてきたかを調べるには、参照元ドメインを要求順に表示レポートを使います。このレポートには、よく使用された参照元ドメインの一覧が、要求回数別に表示されます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[要求数 (%)] | 現在の要求のカウント数を、すべての要求者の参照ドメイン名の合計要求カウント数で除算した、要求の割合。
[要求のカウント] | レポート期間中に発生した要求の合計。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[参照元のドメイン名] | ユーザーがこのサイトを訪問する直前に参照していたドメイン。
[サイト] | ユーザーが訪問したサイト。

Web 利用状況のレポートに戻る

要求の多いページ (動的レポート)

最も要求されたページを調べるには、要求の多いページ レポートを使います。このレポートでは、要求回数の多い上位 1,000 ページの一覧が、クエリ文字列と共に、要求数ごとに表示されます。

要求の多いページ レポートからは、ページ単位の統計が得られます。URL ディレクトリ単位ですべてのページの統計を表示するディレクトリ レポートとは、この点で異なります。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1,000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • 要求回数が多い上位 1,000 ページ以外の情報 (最も要求回数の少ないページなど) を参照する場合は、データ ウェアハウスに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[要求数 (%)] | レポート期間中、最もよく利用されたページの要求カウント数を、合計要求カウント数で除算して算出した、要求の割合。
[要求のカウント] | レポート期間中に発生した要求数の合計。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[要求] | イベントが要求であるかどうか。
[サイト] | 要求が発生したサイト。
[URI] | 要求された各ページの統一リソース識別子。

Web 利用状況のレポートに戻る

利用状況の要約 (曜日単位) (動的レポート)

ページの平均要求回数と平均ユーザー訪問数を曜日ごとに表示するピボットグラフを参照するには、利用状況の要約 (曜日単位) レポートを使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[平均要求数/日] | レポート期間中に発生した要求数の 1 日あたりの平均 (レポート期間中の合計要求数を日数で除算した値)。
[平均訪問数/日] | レポート期間中に発生した訪問数の 1 日あたりの平均 (レポート期間中の合計訪問数を日数で除算した値)。訪問としてカウントするかどうかは、ユーザーが Web サイトを閲覧した時間の長さに基づいて判断されるので、設定によって変えることができます。1 訪問の既定値は 30 分です。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問または要求が発生した日付。
[曜日] | 訪問または要求が発生した曜日。
[サイト] | 訪問または要求が発生したサイト。

Web 利用状況のレポートに戻る

利用状況の要約 (時間単位) (動的レポート)

ページの平均要求数とユーザー平均訪問数を時間ごとに表示するピボットグラフを参照するには、利用状況の要約 (時間単位) レポートを使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[平均要求数/時間] | レポート期間中に発生した要求数の 1 時間あたりの平均。
[平均訪問数/時間] | レポート期間中に発生した訪問数の平均。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問または要求が発生した日付。
[時刻] | 訪問または要求が発生した時刻。
[サイト] | 訪問または要求が発生したサイト。

Web 利用状況のレポートに戻る

利用状況の要約 (週単位/年間) (動的レポート)

ページの平均要求数とユーザー平均訪問数を週ごとに表示するピボットグラフを参照するには、利用状況の要約 (週単位/年間) レポートを使います。

注

  • たとえば、土曜日で始まる年の場合、最終週の週数ディメンションには 53 週が返されます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[平均要求数/週] | レポート期間中に発生した要求数の 1 週あたりの平均。
[平均訪問数/週] | レポート期間中に発生した訪問数の平均。訪問としてカウントするかどうかは、ユーザーが Web サイトを閲覧した時間の長さに基づいて判断されるので、設定によって変えることができます。1 訪問の既定値は 30 分です。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問または要求が発生した日付。
[サイト] | 訪問または要求が発生したサイト。
[週数] | 訪問または要求が発生した週。

Web 利用状況のレポートに戻る

利用状況の傾向 (動的レポート)

1 日のページ要求、一意のユーザー、および訪問の要約を調べるには、利用状況の傾向レポートを使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[要求数] | 各ユーザーがサイト訪問中に発行した要求の数。
[一意のユーザー数] | レポート期間中に、一意だと判断されたユーザーの数。Commerce Server では、ユーザーが一意のユーザーとしてカウントされるのは 1 回だけです。
[訪問数] | レポート期間中に発生したクローズド ビジットの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 要求が発生した日付。
[サイト] | 要求が発生したサイト。
[ユーザーの種類] | サイトを訪問したユーザーの種類。たとえば、登録済みユーザーや匿名ユーザーなどです。

Web 利用状況のレポートに戻る

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する

OLAP キューブと SQL Server にアクセスするレポートの一覧


ユーザーのレポート

ユーザーのデータを分析するには、レポート モジュールを使って次のレポートを実行します。

時間ごとの重複しないユーザー数 (動的レポート)

ユーザーの傾向 (動的レポート)

時間ごとの重複しないユーザー数 (動的レポート)

少数のユーザーが何度もサイトを訪れているのか、多数のユーザーが一度だけサイトを訪れているのかを判断するには、時間ごとの重複しないユーザー数レポートを使います。このレポートには、サイトを訪れている一意のユーザーの数、および特定の期間のサイト訪問回数が表示されます。このレポートでは、一意のユーザーの数を各ユーザーの訪問回数と関連付けています。現在選択されている期間に訪問した一意のユーザーが計算の対象になります。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[一意のユーザー数] | レポート期間中に、一意だと判断されたユーザーの数。Commerce Server では、ユーザーが一意のユーザーとしてカウントされるのは 1 回だけです。
[訪問数] | レポート期間中にサイトで発生したクローズド ビジットの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[サイト] | 訪問数に関するレポートの作成対象となるサイト。
[日付] | 訪問が発生した日付。
[ユーザーの種類] | サイトを訪問したユーザーの種類。たとえば、registered_user" CLASS="PopLink">登録済みユーザーや匿名ユーザーなどです。

ユーザーのレポートに戻る

ユーザーの傾向 (動的レポート)

サイトを繰り返し訪問するリピート ユーザーがどの程度いるかを調べるには、ユーザーの傾向レポートを使います。このレポートでは、サイトを訪れるユーザーの種類 (新規とリピート) が、日付ごとに表示されます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[一意のユーザー数] | レポート期間中に、一意だと判断されたユーザーの数。Commerce Server では、ユーザーが一意のユーザーとしてカウントされるのは 1 回だけです。
[新しいユーザー数] | レポート期間中にサイトを初めて訪問したユーザーの数。
[リピート ユーザー数 (%)] | レポート期間中にサイトを訪問した、このサイトを 2 度以上訪問したことがあるユーザー (リピーター) の数を、一意のユーザーの数で除算した値。
[リピート ユーザー数] | レポート期間中にサイトを訪問した、このサイトを 2 度以上訪問したことのあるユーザーの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | ユーザーがサイトを訪問した日付。
[サイト] | ユーザーが訪問したサイトの名前。
[週数] | ユーザーがサイトを訪問した週。

ユーザーのレポートに戻る

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する


訪問のレポート

訪問のデータを分析するには、レポート モジュールを使って次のレポートを実行します。

最初に参照したページ (動的レポート)

最後に参照したページ (動的レポート)

一般的な利用状況の統計 (動的レポート)

最初に参照したページ (動的レポート)

ユーザーがサイトに訪れるときに最初にアクセスする可能性が高い上位の 1,000 ページを調べるには、最初に参照したページ レポートを使います。このレポートには、サイトに訪れる際によく使用される 1,000 個の URI と、各 URI の使用回数が表示されます。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1,000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • よく使用される 1,000 個の URI 以外の情報 (最も使用回数の少ない URI など) を参照する場合は、サイトのデータベースに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[訪問数のカウント] | レポート期間中にサイトで発生したクローズド ビジットの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問が発生した日付。
[サイト] | ユーザーが訪問したサイト。
[URI] | ユーザーがこのサイトで最初に参照したページの統一リソース識別子。

訪問のレポートに戻る

最後に参照したページ (動的レポート)

ユーザーがサイトを去る際に使用する可能性が高いページを調べるには、最後に参照したページ レポートを使います。このレポートには、サイトを去る際によく使用される 1,000 個の URI と、各 URI の使用回数が表示されます。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1,000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • よく使用される 1,000 個の URI 以外の情報 (最も使用回数の少ないページなど) を参照する場合は、サイトのデータベースに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[訪問数のカウント] | レポート期間中にサイトで発生したクローズド ビジット数の合計。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問が発生した日付。
[サイト] | ユーザーが訪問したサイト。
[URI] | ユーザーがサイトを去る際に参照していたページの統一リソース識別子。

訪問のレポートに戻る

一般的な利用状況の統計 (動的レポート)

サイトでの利用状況をすばやく調べるには、一般的な利用状況の統計レポートを使います。このレポートには、1 回の訪問あたりの平均要求回数、平均訪問時間、および要求回数と訪問回数が表示されます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[平均滞在時間 (秒)/訪問] | ユーザーがサイトで過ごした平均時間 (秒単位)。
[平均要求数/訪問] | ユーザーがサイト訪問中に発行した要求数の平均。
[要求数] | レポート期間中にサイトで発生した要求の数。
[訪問数] | レポート期間中にサイトで発生したクローズド ビジットの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 訪問が発生した日付。
[サイト] | ユーザーが訪問したサイト。

訪問のレポートに戻る

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する

OLAP キューブと SQL Server にアクセスするレポートの一覧


診断のレポート

診断のデータを分析するには、レポート モジュールを使って次のレポートを実行します。

帯域幅の要約 (動的レポート)

帯域幅の傾向 (動的レポート)

ヒット数 (HTTP ステータスごと) (動的レポート)

ヒット数 (Win32 ステータスごと) (動的レポート)

帯域幅の要約 (動的レポート)

サイトの週ごとの帯域消費量を表示するピボットグラフを参照するには、帯域幅の要約レポートを使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[帯域幅 (MB)] | レポート期間中に使われる帯域幅の量。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 帯域幅の測定対象となる日。
[サイト] | 帯域幅の測定対象となるサイト。

診断のレポートに戻る

帯域幅の傾向 (動的レポート)

サイトの毎日の帯域消費量を調べるには、帯域幅の傾向レポートを使います。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[帯域幅 (MB)] | レポート期間中に使われる帯域幅の量。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | 帯域幅の測定対象となる日。
[曜日] | 帯域幅の測定対象となる曜日。
[サイト] | 帯域幅の測定対象となるサイト。

診断のレポートに戻る

ヒット数 (HTTP ステータスごと) (動的レポート)

要求回数の多い上位 1,000 ページをユーザーが訪れた際に発生する可能性のある問題を調べて診断するには、ヒット数 (HTTP ステータスごと) レポートを使います。このレポートには、Web サイトで要求回数の多い上位 1,000 ページに関する HTTP コードが表示されます。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • 要求回数が多い上位 1,000 ページ以外の情報 (最も要求回数の少ないページなど) を参照する場合は、サイトのデータベースに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[カウント] | レポート期間中のサイトでの合計ヒット数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | ページがヒットされた日付。
[HTTP ステータス] | ヒットが発生したページの HTTP ステータス (200、404、または 500 など。HTTP ステータスの詳細については、W3C 標準に関するドキュメントを参照してください)。
[サイト] | ヒットが発生したサイト。
[URI] | ヒットが発生したサイトにあるページの統一リソース識別子。

診断のレポートに戻る

ヒット数 (Win32 ステータスごと) (動的レポート)

要求回数の多い上位 1,000 ページをユーザーが訪れた際に発生する可能性のある問題を調べて診断するには、ヒット数 (Win32 ステータスごと) レポートを使います。このレポートには、Web サイトで要求回数の多い上位 1,000 ページに関する Win32 コードが表示されます。

注

  • 上位の 1,000 ページは必ずレポートに含まれますが、それ以外のページを含めることもできます。これは、URI ディメンションにはサイトごとに上位 1,000 の、最初に参照したページ、最後に参照したページ、および要求の多いページが存在するためです。
  • 要求回数が多い上位 1,000 ページ以外の情報 (最も要求回数の少ないページなど) を参照する場合は、サイトのデータベースに保存されている CSDW_MakeAggRequestsByUri ストアド プロシージャを編集するように、システム管理者に依頼してください。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[カウント] | レポート期間中にサイトで発生したヒットの数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[日付] | ヒットが発生した日付。
[サイト] | ヒットが発生したサイト。
[URI] | ヒットが発生したサイトにあるページの統一リソース識別子。
[Win32 ステータス] | ヒットが発生したページの Win32 ステータス (0=successful など。Win32 ステータスの詳細については、W3C 標準に関するドキュメントを参照してください)。

診断のレポートに戻る

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する

OLAP キューブと SQL Server にアクセスするレポートの一覧


クエリ文字列のレポート

クエリ文字列のデータを分析するには、レポート モジュールを使って次のレポートを実行します。

クエリ文字列 (複数値) (静的レポート)

クエリ文字列 (単数値) (静的レポート)

クエリ文字列 (複数値) (静的レポート)

ユーザーがサイトでどのような情報を探しているかを調べるには、クエリ文字列 (複数値) レポートを使います。このレポートには、システムで分析する目的で設定したクエリ文字列への要求回数が表示されます。たとえば、システム管理者は、複数の値を取るクエリ文字列を設定して、ユーザーがどのような商品に興味を持っているかを追跡できます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[要求数] | レポート期間中にサイトで発生した要求の数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[名前] | サイトで実行されたクエリ文字列の名前。
[値] | クエリ文字列の値。たとえば、//mydomain/my.asp?Query1=Value1 などです。

クエリ文字列のレポートに戻る

クエリ文字列 (単数値) (静的レポート)

ユーザーがサイトでどのような情報を探しているかを調べるには、クエリ文字列 (単数値) レポートを使います。このレポートには、システムで分析する目的で設定したクエリ文字列への要求回数が表示されます。たとえば、システム管理者は、単一の値を取るクエリ文字列を設定して、ユーザーがサイトで特定の検索文字列を入力した回数を追跡できます。このレポートを使って、サイトで最も頻繁に使用される検索文字列を分析できます。

次の表は、このレポートに含まれるメジャーの一覧です。

メジャー | 説明
[要求数] | レポート期間中にサイトでクエリ文字列が要求された回数。

次の表は、このレポートに含まれるディメンションの一覧です。

ディメンション | 説明
[名前] | クエリ文字列の名前。
[値] | クエリ文字列の値。たとえば、//mydomain/my.asp?Query1=Value1 などです。

クエリ文字列のレポートに戻る

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

Commerce Server データを分析する前に

レポートを検索する

レポートを実行する

動的レポートを表示する

静的レポートを表示する

レポートを印刷する

OLAP キューブと SQL Server にアクセスするレポートの一覧


レポート プロパティ

実行前にレポートの詳細を調べるには、レポート プロパティを使います。レポートのプロパティに用意されているレポート クエリを表示すると、特定のレポート定義が希望どおりのデータを返すかどうかを判断するのに役立ちます。大規模なデータ セットに対して静的レポートを実行すると、処理にかなりの時間がかかる場合があります。

レポート プロパティには、名前、説明、種類、作成日、レポートの基礎となるクエリなど、レポートに関する有益な情報が含まれます。レポート プロパティに変更を加えることはできません。レポート プロパティを表示する方法については、「レポート プロパティを表示する」を参照してください。

次の表は、レポート モジュールで表示できるプロパティを示しています。

プロパティ | 説明
[名前] | レポートの名前。
[説明] | レポートの説明。
[レポートの種類] | レポートの種類。
[作成日時] | レポートが作成された日付。
[作成者] | レポートを作成した人の名前。
[変更日時] | レポートが最後に変更されたときの日付。
[変更者] | レポートを最後に変更した人の名前。
[クエリ] | レポート用に実行する Structured Query Language (SQL) クエリまたはマルチ ディメンション式 (MDX) クエリ。[クエリ] ボックスは動的レポートでは利用できません。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

新しい動的レポート定義を作成する

OLAP キューブと SQL Server にアクセスするレポートの一覧


レポート内の時間の処理

データ ウェアハウスの実行」を参照してください。

関連項目

OLAP キューブと SQL Server にアクセスするレポートの一覧


クリックストリーム分析

Commerce Server 2002 のレポートを使うと、ログ データを分析して、ユーザーの Web サイト利用状況をさまざまな区分で捉えることができます。その結果に基づいて、利用状況が似ているユーザーをセグメントとしてまとめること、サイト訪問者をデモグラフィックスに基づいて分類すること、ユーザーが閲覧するコンテンツ、参照元の Web サイトなどを調べることができます。

クリックストリーム データを分析することによって、顧客の嗜好など、顧客の行動パターンをすばやく把握できるので、マーケティング キャンペーンの効果がさらに高まります。

ユーザーのクリックストリーム データを分析するには、次のレポートを使います。

ブラウザごとの利用状況 (動的レポート)

ディレクトリ (動的レポート)

エントリ画面の分析 (静的レポート)

参照元ドメインを要求順に表示 (動的レポート)

要求の多いページ (動的レポート)

利用状況の要約 (曜日単位) (動的レポート)

利用状況の要約 (時間単位) (動的レポート)

利用状況の要約 (週単位/年間) (動的レポート)

利用状況の傾向 (動的レポート)

最初に参照したページ (動的レポート)

最後に参照したページ (動的レポート)

一般的な利用状況の統計 (動的レポート)


Commerce Server データを分析する前に

レポートを実行し、セグメント モデルを表示して、Web サイトでのユーザーの利用状況を分析するには、ビジネス デスク分析を使います。ユーザーの利用状況のデータを分析に利用するには、いくつかの作業を行う必要があります。次の図は、Commerce Server 2002 の分析処理でデータを利用するために必要な手順を示しています。

Commerce Server データを分析する前に

Commerce Server データを分析する前に

  1. システム管理者は、Commerce Server 2002 をインストールします。Commerce Server 2002 をインストールする方法については、「Commerce Server 2002 インストール ガイド」を参照してください。
  2. ビジネス分析に使用するコンピュータに Commerce Server ビジネス デスク クライアントをインストールします。
  3. システム管理者は、データ ウェアハウスを設定し、必要に応じてデータ削除 DTS タスクを実行します。データ ウェアハウスを構成する方法については、「データ ウェアハウスの実行」を参照してください。
  4. システム管理者は、特定の複数の SQL Server データベース ロールをユーザーに割り当てることによって、一部のユーザーにレポートの読み取りと保存を許可し、その他のユーザーにはレポートの読み取りのみを許可することもできます。これらのロールを作成する方法の詳細については、「レポートがアクセスするデータベースにセキュリティを設定するスクリプト」を参照してください。
  5. システム管理者は、ユーザーの利用状況のデータをデータ ウェアハウスにインポートします。データ ウェアハウスにデータをインポートする方法については、Commerce Server 2002 ヘルプの「データ ウェアハウスにデータをインポートする」を参照してください。
  6. システム管理者は、必要に応じて IP 解決 DTS タスクを実行します。
  7. システム管理者は、レポート準備 DTS タスクを実行し、データ ウェアハウス内のデータと共に OLAP キューブを読み込みます。OLAP キューブは、サイトのアンパッケージ時にインストールされます。OLAP キューブには、分析処理でのデータ検索の効率を上げるように、データが整理されて格納されています。レポート準備タスクを実行する方法については、Commerce Server 2002 ヘルプの「レポート準備 DTS タスクを実行する」を参照してください。
  8. 分析レポートを実行し、Web サイトでのユーザーの利用状況を分析します。レポートを実行する方法については、「レポートを実行する」を参照してください。

関連項目

レポートを検索する

レポートを実行する


レポートを検索する

動的レポートおよび静的レポートを検索するには、レポート モジュールを使います。

レポートの一覧から、特定のレポートまたは複数のレポートを検索できます。用意されているすべてのレポートの一覧を取得したり、レポートのプロパティを使って検索を絞り込むには、検索ペインを使います。検索結果の一覧には、検索条件を満たすすべてのレポートが表示されます。この一覧には、名前、カテゴリ、作成者、種類の 4 つの列があり、それぞれが同じ名前の 4 つのレポート プロパティに対応しています。検索結果の一覧は、"名前"、"カテゴリ"、"作成者"、および "種類" の各レポート プロパティで並べ替えることができます。

レポートを検索すると、検索ペインで指定した検索文字列に一致するエントリとその検索文字列で始まるエントリがすべて返されます。

用意されているレポートの一覧を表示するには

プロパティに基づいてレポートを検索するには

レポートの一覧を並べ替えるには

用意されているレポートの一覧を表示するには

  1. [分析] の [レポート] をクリックし、ツール バーの 分析レポートの検索 をクリックします。
  2. [検索条件] ボックスの一覧の [すべてのレポート] をクリックし、[検索開始] をクリックします。

用意されているレポートの一覧が [レポート] 画面に表示されます。

プロパティに基づいてレポートを検索するには

  1. [分析] の [レポート] をクリックし、ツール バーの 分析レポートの検索 をクリックします。
  2. [検索条件] ボックスの一覧で、次の操作を行います。
    項目 | 操作
    [名前] | レポートを名前で検索するときに選択します。
    [カテゴリ] | レポートのカテゴリでレポートを検索します。
    [作成者] | レポートの作成者でレポートを検索します。
    [種類] | レポートの種類 (動的または静的) でレポートを検索します。
    [情報] | レポートを、[名前]、カテゴリ]、[作成者]、[種類] の各検索条件の任意の組み合わせで検索します。
    [すべてのレポート] | 用意されているレポートをすべて検索します。
  3. 次に表示されるプロパティ値ボックスで、選択したプロパティ (名前、カテゴリ、作成者、および 種類) の値を入力するか、または一覧から値を選択します。

    [情報] を選択した場合は、名前、カテゴリ、作成者、種類の各プロパティに対応したテキスト ボックスが表示されます。

  4. 適切なプロパティ値ボックスで、1 つまたは複数のプロパティの値を入力するか、または値を選択します。
  5. [検索開始] をクリックします。

検索条件に一致するレポートの一覧が [レポート] 画面に表示されます。

レポートの一覧を並べ替えるには

  • [分析] の [レポート] をクリックし、次の操作を行います。
    項目 | 操作
    [名前] | レポートの名前で並べ替えるときにクリックします。既定では、レポートの一覧は名前で昇順に並べ替えられています。
    [カテゴリ] | レポートのカテゴリでレポートを並べ替えます。
    [作成者] | レポートの作成者でレポートを並べ替えます。
    [種類] | レポートの種類でレポートを並べ替えます。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

レポートを実行する

レポート プロパティを表示する


レポートを実行する

動的レポートおよび静的レポートを実行するには、レポート モジュールを使います。

レポートを実行するには、システム管理者がいくつかの作業をあらかじめ実行しておく必要があります。たとえば、システム管理者は、データをデータ ウェアハウスに定期的にインポートし、レポート準備データ変換サービス (DTS) タスクを実行して、実行するレポートのデータが最新であるようにしておく必要があります。必要に応じて、システム管理者は、レポートの保存と表示を行うための適切なアクセス許可をユーザーに割り当てることもあります。詳細については、「Commerce Server データを分析する前に」を参照してください。

注

  • レポート モジュールを最初に開いたときは、すべてのレポートを検索する設定になっています。より具体的な検索条件を指定して、レポートの一覧を絞り込むこともできます。

ここでは、次のトピックについて説明します。

  • 動的レポートと静的レポートを実行する
  • レポートの実行時間を短くする


動的レポートと静的レポートを実行する

レポートを実行するには、次の手順に従ってください。

  • 動的レポートを実行するには
  • 静的レポートを実行するには

動的レポートを実行するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックします。用意されているレポートの一覧で、実行する動的レポート定義を選択し、ツール バーの <レポート名> の実行 をクリックします。

完成した動的レポートは、新しいブラウザ ウィンドウにピボットテーブルとして表示されます。

注

  • ピボットテーブルが表示されない場合は、ツール バーの ピボットの表示/非表示 をクリックしてください。
  • Commerce Server 2002 では、動的レポートの場合、1 つのディメンションにつき最大で 25 万人のメンバまでサポートしています。動的レポートの対象となるデータ セットにメンバが 25 万人を超えるディメンションがある場合、その動的レポートはデータなしでブラウザ ウィンドウに表示されます。

静的レポートを実行するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックします。用意されているレポートの一覧で、実行する静的レポートを選択し、ツール バーの <レポート名> の実行 をクリックします。
  3. [レポートのパラメータ] ダイアログ ボックスの [サイト名] セクションで、次の操作を行います。
    項目 | 操作
    [オペランド] | ボックスの一覧から、レポートの対象となるサイトを判別するためのオペランド ([すべて]、[等しい]、[等しくない]、[同様である]、または [同様ではない]) を選択します。
    [パラメータ値] | 既定では、現在のサイト名が入ります。他のサイトに対してレポートを実行する場合は、そのサイトの名前を入力します。入力した名前が Commerce Server 2002 サイト名と一致しない場合は、レポートが失敗するか、またはデータなしのレポートが表示されます。
  4. [レポートのパラメータ] ダイアログ ボックスで、必要に応じてレポートのパラメータを調整します。レポートのパラメータはすべて、レポート固有のものです。

    注

    • レポート クエリ、サイト名のパラメータ タグ、フィールド名、およびユーザー数のパラメータ タグを表示するには、[レポートのパラメータ] ダイアログ ボックスの [拡張] をクリックします。
  5. [OK] をクリックします。

    注意

    • 同時に実行している静的レポートの数が多いと、処理に時間がかかり、場合によってはビジネス デスクが応答しなくなることがあります。

静的レポートが実行されます。完了すると、"完成したレポート" モジュールで表示できます。

関連項目

レポートにセキュリティを設定する

レポートの実行時間を短くする

OLAP キューブと SQL Server にアクセスするレポートの一覧

レポートがアクセスするデータベースにセキュリティを設定するスクリプト

HTTPS 経由で分析サーバーにアクセスする

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

レポートを検索する


レポートの実行時間を短くする

データ ウェアハウス データベースのサイズが増加すると、レポートが表示されるまでの時間が長くなります。動的レポートの実行時間を短くするには、データ ウェアハウスに対してレポート キャッシュ DTS タスクを実行するよう、システム管理者に依頼してください。この DTS タスクは、レポートを事前実行して、実際にレポートを実行するときには処理の一部が完了しているようにします。

次の静的レポートの場合、データ ウェアハウス データベースが大きいと、表示されるまでに 4 時間ほどかかる場合があります。

  • クエリ文字列 (複数値)
  • クエリ文字列 (単数値)
  • エントリ画面の分析

関連項目

動的レポートと静的レポートを実行する

レポートを印刷する

レポート プロパティを表示する


動的レポートを表示する

完成した動的レポートは、ピボットテーブルまたはピボットグラフとしてブラウザ ウィンドウに表示されます。動的 OLAP レポートのドリルスルー レポート機能を使って、セルの詳細データを表示することもできます。

ドリルスルー レポート機能は、商品別売り上げレポートおよび買い物バスケット イベント レポートで利用できます。これら以外のレポートでドリルスルー機能を有効にしたり、最大レコード数に対する制限を設定するときは、システム管理者が行います。システム管理者は、drillthrough.htc ファイルで指定されている定数を変更することによって、レコード数を調整できます。詳細については、Commerce Server 2002 ヘルプの「動的レポートのドリルスルーを有効にする」を参照してください。

注

  • ドリルスルー機能を使うには、ローカル コンピュータに Microsoft Office XP がインストールされている必要があります。
  • Microsoft Office XP Web コンポーネントおよびそのサポート ファイルには、Microsoft Data Access Components (MDAC) 2.7 が含まれています。また、分析で動的レポートを実行するには、ピボットテーブル サービスが必要です。Microsoft Office XP、Microsoft Excel XP、Microsoft Access XP、または Microsoft FrontPage XP をインストールすると、Microsoft Office XP Web コンポーネントおよび必要なサポート ファイルが自動的にインストールされます。Microsoft Office XP または前出のアプリケーションのいずれかが既にインストールされている場合は、Microsoft Office Web コンポーネントをインストールする必要はありません。Microsoft Office Web コンポーネントは、Commerce Server 2002 CD に含まれています。

動的レポートをピボットグラフとして表示するには、ピボットグラフに表示されるツール バーのボタンを使って、一覧からチャートとプロパティを選択します。たとえば、棒グラフ、円グラフ、バブル チャートなどを選択できます。

注

  • ピボットグラフまたはピボットテーブルでデータやレイアウトを変更すると、もう一方のビューにもその変更が反映されます。
  • 選択されている項目が複数あるレポートで、フィルタ ディメンションが定義されている場合、重複しないカウントのメジャーは合計できません。ピボット コントロールでは、フィルタで定義された複数セットのデータを結合した結果の、重複しないエンティティの数は計算できません。レポートのフィルタがこのように設定されている場合、重複しないカウントのメジャーが含まれているセルには、#VALUE! と表示されます。重複しないカウントのメジャーを表示するためには、単一のメンバまたはすべてのメンバを含めるようにフィルタ ディメンションを定義する必要があります。

ここでは、次のトピックについて説明します。

  • 動的レポートをピボットグラフとして表示する
  • 動的レポートをピボットテーブルとして表示する
  • ドリルスルー機能を使う


動的レポートをピボットグラフとして表示する

動的レポートを実行し、その結果をピボットグラフ形式で表示するには、レポート モジュールを使います。

動的レポートを実行してピボットグラフ形式で表示するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックし、実行する動的レポート定義を選択します。
  3. [レポート] 画面で、ツール バーの <レポート名> の実行 をクリックして動的レポートを実行します。

    完成したレポートは、新しいブラウザ ウィンドウにピボットテーブルまたはピボットグラフとして表示されます。

    注

    • ビジネス デスクを実行しているクライアント コンピュータに Microsoft Office XP、Microsoft Access 2000、Microsoft FrontPage 2002 のいずれかがインストールされていない場合は、Microsoft Excel に動的レポートをエクスポートすることはできません。また、レポート定義を変更すること、および新しい動的レポート定義を作成することはできません。ただし、動的レポートのデータを標準の表示形式で参照すること、およびディメンションの展開や折りたたみを行うことは可能です。
  4. [<完成したレポート>] ブラウザ ウィンドウで、ツール バーの チャートの表示 をクリックして、ピボットグラフを表示します。もう一度クリックすると、ピボットグラフが表示されなくなります。
  5. レポートの表示または印刷が完了したら、ブラウザ ウィンドウを閉じます。

関連項目

動的レポートをピボットテーブルとして表示する

ドリルスルー機能を使う

静的レポートを表示する

レポート プロパティを表示する

ドリルスルー動的レポートを有効にする


動的レポートをピボットテーブルとして表示する

動的レポートを実行し、その結果をピボットテーブル形式で表示するには、レポート モジュールを使います。

動的レポートを実行してピボットテーブル形式で表示するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックし、実行する動的レポート定義を選択します。
  3. [レポート] 画面で、ツール バーの <レポート名> の実行 をクリックして動的レポートを実行します。

    完成したレポートは、新しいブラウザ ウィンドウにピボットテーブルまたはピボットグラフとして表示されます。

  4. [<完成したレポート>] ブラウザ ウィンドウで、次の操作を行います。
    項目 | 操作
    [ピボットの表示] | ピボットテーブルを表示するときにクリックします。もう一度クリックすると、ピボットテーブルが表示されなくなります。
    [詳しい説明の表示] | レポートの説明を表示するときにクリックします。
  5. レポートの表示または印刷が完了したら、ブラウザ ウィンドウを閉じます。

レポートが画面に表示されていれば、ドリルスルー機能を使うことができます。

注

  • ドリルスルー機能は、商品売り上げレポートでのみ利用できます。

関連項目

動的レポートをピボットグラフとして表示する

ドリルスルー機能を使う

静的レポートを表示する

レポート プロパティを表示する

ドリルスルー動的レポートを有効にする


ドリルスルー機能を使う

動的レポートを実行し、その結果をピボットテーブル形式で表示するには、レポート モジュールを使います。データをさらに詳しく分析する場合は、ドリルスルー機能を使います。

動的レポートを実行してドリルスルー機能を使うには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックして、商品別売り上げレポートを選択します。
  3. [レポート] 画面で、ツール バーの <レポート名> の実行 をクリックして動的レポートを実行します。

    完成した商品別売り上げレポートは、新しいブラウザ ウィンドウにピボットテーブルまたはピボットグラフとして表示されます。

  4. 商品別売り上げレポートが表示されたブラウザ ウインドウで、[ピボットテーブル フィールド リスト] が開いている場合は キャンセル をクリックして閉じます。
  5. ピボットテーブルの任意のセルをダブルクリックするか、[ピボットテーブル] ツール バーの 詳細データの表示/非表示 をクリックします。

    ディメンションに関するキューブの詳細が表示されます。

  6. レポートの表示または印刷が完了したら、ブラウザ ウィンドウを閉じます。

関連項目

動的レポートをピボットグラフとして表示する

動的レポートをピボットテーブルとして表示する

静的レポートを表示する

レポート プロパティを表示する

ドリルスルー動的レポートを有効にする


静的レポートを表示する

静的レポートを実行すると、完成した静的レポートは "完成したレポート" モジュールのレポートの一覧で表示できます。レポートの状態の確認、完成したレポートの検索、および完成したレポートの一覧の並べ替えを行うことができます。1 つまたは複数のレポートを開くことや閉じることもできます。

注

  • 複数の Web サイトおよびビジネス デスク アプリケーションがある場合、複数のサイトからのデータを基に静的レポートを作成できます。ただし、静的レポートを表示できるのは、その静的レポートを作成したときに使ったビジネス デスク アプリケーションだけです。

ここでは、次のトピックについて説明します。

  • 静的レポートの状態を確認する
  • 完成した静的レポートを検索する
  • 完成したレポートの一覧を並べ替える
  • 静的レポートを開く
  • 複数の静的レポートを開く
  • 静的レポートを閉じる


静的レポートの状態を確認する

静的レポートの状態を表示するには、"完成したレポート" モジュールを使います。

静的レポートの状態を表示するには

  • [分析] の [完成したレポート] をクリックします。

    レポートの状態が、レポートの一覧の [状態] 列に表示されます。状態は、次のいずれかになります。

    • 完了 レポートは完了しています。レポートを開いて表示できます。
    • 保留中 レポートは実行中です。
    • 失敗 レポートは正常に完了しませんでした。レポートが失敗した場合は、システム管理者に連絡して、イベント ビューアのアプリケーション ログ ファイルのエラー メッセージを確認してもらいます。

注

  • "完成したレポート" モジュールの [状態] 列は、[完了]、[保留中]、[失敗] の順に、[ステータス ID] で並べ替えられます。

関連項目

完成した静的レポートを検索する

完成したレポートの一覧を並べ替える

静的レポートを開く

複数の静的レポートを開く

静的レポートを閉じる

レポートを印刷する

動的レポートをエクスポートする


完成した静的レポートを検索する

完成した静的レポートを検索するには、"完成したレポート" モジュールを使います。

完成した静的レポートを検索するには

  1. [分析] の [完成したレポート] をクリックし、ツール バーの 完成したレポートの検索 をクリックします。
  2. [検索条件] ボックスの一覧で、次の操作を行います。
    項目 | 操作
    [名前] | レポートを名前で検索するときに選択します。
    [実行者] | レポートを実行者の名前で検索します。
    [実行日] | レポートを実行された日付の範囲で検索します。
    [状態] | レポートをレポートの状態 ([完了]、[保留中]、または [失敗]) で検索します。
    [情報] | レポートを、[名前]、[実行者]、[実行日]、[状態] の各検索条件の任意の組み合わせで検索します。
    [すべてのレポート] | 利用可能なレポートをすべて検出します。
  3. 次に表示されるプロパティ値ボックスで、選択した検索条件 ([名前]、[実行日]、[実行者]、[状態] など) の値を入力するか、または一覧から値を選択します。次に、[検索開始] をクリックします。

検索結果のレポートの一覧には、検索条件を満たすすべての静的レポートが表示されます。

関連項目

静的レポートの状態を確認する

完成したレポートの一覧を並べ替える

静的レポートを開く

複数の静的レポートを開く

静的レポートを閉じる

レポートを印刷する

動的レポートをエクスポートする


完成したレポートの一覧を並べ替える

完成した静的レポートの一覧を並べ替えるには、"完成したレポート" モジュールを使います。

完成したレポートの一覧を並べ替えるには

  1. [分析] の [完成したレポート] をクリックし、ツール バーの レポートの検索 をクリックします。
  2. [検索条件] ボックスの一覧で、次の操作を行います。
    項目 | 操作
    [名前] | レポート名でレポートを並べ替えます。
    [実行日] | レポートの実行日でレポートを並べ替えます。既定では、レポートは [実行日] で降順に並べられています。
    [実行時間] | レポートの実行時間でレポートを並べ替えます。
    [実行者] | レポートの実行者でレポートを並べ替えます。
    [状態] | レポートの状態 ([完了]、[保留中]、または [失敗]) でレポートを並べ替えます。

注

  • "完成したレポート" モジュールの [状態] 列は、[失敗]、[保留中]、[完了] の順序で並べ替えられます。
  • "完成したレポート" モジュールの [実行時間] 列は、レポートが実行された日付で並べ替えられます。[実行時間] 列を [実行日] 列から独立して並べ替えることはできません。

関連項目

静的レポートの状態を確認する

完成した静的レポートを検索する

静的レポートを開く

複数の静的レポートを開く

静的レポートを閉じる

レポートを印刷する

動的レポートをエクスポートする


静的レポートを開く

静的レポートを開くには、"完成したレポート" モジュールを使います。

静的レポートを開くには

  1. [分析] の [完成したレポート] をクリックします。
  2. レポートの一覧で、開くレポートを選択し、ツール バーの <レポート名> を開く をクリックします。

    注

    • 開くことができるレポートは、状態が [完了] のレポートだけです。

静的レポートが、新しいブラウザ ウィンドウに HTML 文書として表示されます。

関連項目

静的レポートの状態を確認する

完成した静的レポートを検索する

完成したレポートの一覧を並べ替える

複数の静的レポートを開く

静的レポートを閉じる

レポートを印刷する

動的レポートをエクスポートする


複数の静的レポートを開く

複数の静的レポートを開くには、"完成したレポート" モジュールを使います。

複数の静的レポートを開くには

  1. [分析] の [完成したレポート] をクリックします。
  2. 完成したレポートの一覧で、開くレポートを複数選択し、ツール バーの <レポート名> を開く をクリックします。

静的レポートが、新しいブラウザ ウィンドウに HTML 文書として表示されます。

注

  • [すべて選択] をクリックして一覧のすべてのレポートを選択した場合、それらのレポートを開くことはできません。一覧のすべてのレポートを開くには、各レポートを個別に選択する必要があります。
  • 複数の静的レポートを開く場合、ブラウザのメモリ制限を超えて、"完成したレポート" モジュールが応答しなくなることがあります。

関連項目

静的レポートの状態を確認する

完成した静的レポートを検索する

完成したレポートの一覧を並べ替える

静的レポートを開く

静的レポートを閉じる

レポートを印刷する

動的レポートをエクスポートする


静的レポートを閉じる

静的レポートを閉じるには、ブラウザ ウインドウを閉じます。

静的レポートを閉じるには

  • レポートが表示されているブラウザ ウィンドウを閉じます。

関連項目

静的レポートの状態を確認する

完成した静的レポートを検索する

完成したレポートの一覧を並べ替える

静的レポートを開く

複数の静的レポートを開く

レポートを印刷する

動的レポートをエクスポートする


レポートを印刷する

Commerce Server 2002 のレポートは、ブラウザ ウィンドウで表示するように設計されています。動的レポートと静的レポートは、ブラウザから印刷できます。大規模なレポートを印刷および表示する場合は、サイズ制限の問題があります。

動的レポートのピボットテーブルを印刷したときに実際に印刷されるのは、ブラウザ ウィンドウにスクロールなしで表示できるピボットテーブルの一部だけになります。ピボットテーブルのノードを展開した場合やテーブルがブラウザのメモリ制限を超えた場合には、ピボットテーブルは印刷されません。

大きなピボットテーブルの全体を印刷するには、ピボットテーブルを Microsoft Excel にエクスポートします。ピボットテーブルを Microsoft Excel にエクスポートする方法については、「動的レポートをエクスポートする」を参照してください。Microsoft Excel から印刷する方法については、Microsoft Excel のヘルプを参照してください。

静的レポートを実行するときには、完成したレポートがブラウザ ウィンドウの 1,000 行に収まるように制限されます。

レポートを印刷するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. 静的レポートまたは動的レポートを実行します。
  3. ブラウザ ウィンドウで、[ファイル] メニューの [印刷] をクリックします。
  4. [印刷] ダイアログ ボックスの [印刷] をクリックします。

指定したプリンタでレポートが印刷されます。

関連項目

動的レポートを表示する

レポート プロパティを表示する

動的レポートをエクスポートする


動的レポートをエクスポートする

完成した動的レポートを Microsoft Excel にエクスポートするには、ピボットテーブルのコントロールを使います。Microsoft Excel を使って、完成した動的レポートを保存、変更、および印刷します。完成した動的レポートを Microsoft Excel にエクスポートするには、完成した動的レポートが存在するコンピュータに Microsoft Excel がインストールされていることが必要です。

注

  • Commerce Server 2002 Enterprise Edition では、静的レポートをリストとしてリスト マネージャ モジュールにエクスポートできます。

完成した動的レポートを Microsoft Excel にエクスポートするには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックします。用意されているレポートの一覧で、実行する動的レポート定義を選択し、ツール バーの <レポート名> の実行 をクリックします。

    完成した動的レポートは、新しいブラウザ ウィンドウにピボットテーブルとして表示されます。

    注

    • ピボットテーブルが表示されない場合は、ツール バーの ピボットの表示/非表示 をクリックしてください。
  3. Microsoft Excel でレポートを開くには、[ピボットテーブル] 画面で [ピボットテーブル] ツール バーの Excel へエクスポート をクリックします。

レポートが Microsoft Excel のスプレッドシートとして表示されます。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

レポートを実行する


新しい動的レポート定義を作成する

新しい動的レポート定義を作成したり、レポートのピボットテーブルを変更したり、新しいレポートを新しいレポート定義として保存するには、レポート モジュールを使います。新しく保存したレポートは、レポートの一覧で利用できるようになります。

注

  • Microsoft Office XP Web コンポーネントおよびそのサポート ファイルには、Microsoft Data Access Components (MDAC) 2.7 が含まれています。また、分析で動的レポートを実行するには、ピボットテーブル サービスが必要です。Microsoft Office XP、Microsoft Excel XP、Microsoft Access XP、または Microsoft FrontPage XP をインストールすると、Microsoft Office XP Web コンポーネントおよび必要なサポート ファイルが自動的にインストールされます。Microsoft Office XP または前出のアプリケーションのいずれかが既にインストールされている場合は、Microsoft Office Web コンポーネントをインストールする必要はありません。Microsoft Office Web コンポーネントは、Commerce Server 2002 CD に含まれています。

新しい動的レポート定義を作成するには

ピボットテーブルにフィールドを追加するには

レポートの一覧に新しいレポートを表示するには

レポートの一覧を更新するには

新しい動的レポート定義を作成するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックします。
  3. [レポート] ツール バーの 新規 をクリックして、新しいレポートを作成します。
  4. [新しいレポートの作成 - Web ページ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [レポートの種類] | 作成するレポートの種類に応じて、[OLAP] または [SQL] をクリックします。
    [キューブ名] | OLAP レポートでのみ使用できます。ボックスの一覧からキューブ名を選択します。レポートの対象となる処理済みのキューブだけが表示されます。
    [MDX クエリ] | OLAP レポートでのみ使用できます。このレポートをクエリに基づいて作成する場合は、クエリ文字列を入力して [OK] をクリックします (このボックスの内容は省略可能です)。
    [SQL クエリ] | SQL レポートでのみ使用されます。取得先のフィールドを指定する SQL クエリを入力して [OK] をクリックします。

    注

    • テーブルを開いたときに [ピボットテーブル フィールド リスト] が自動的に表示されない場合は、[ピボットテーブル] ツール バーの ピボットテーブル フィールド リスト をクリックして、[ピボットテーブル フィールド リスト] を表示してください。
  5. [ピボットテーブル フィールド リスト] からフィールドをドラッグして、ピボットテーブルにドロップします。

    ピボットテーブルで、[ピボットテーブル フィールド リスト] の [集計] の下にある項目がメジャーです。[集計] と同じレベルにある項目はディメンションです。メジャーは、ピボットテーブルのデータ領域 (中央のセル) に追加できます。ディメンションは、行、列、またはフィルタとして使用できます。

    フィールドを [ピボットテーブル フィールド リスト] からドラッグ アンド ドロップする代わりに、[ピボットテーブル フィールド リスト] の下部にある [追加] を使うこともできます。[ピボットテーブル フィールド リスト] の使い方については、[ピボットテーブル] ツール バーの ヘルプ をクリックしてください。

  6. 完成したレポートのウィンドウで、ツール バーの レポートの保存 をクリックします。
  7. [レポートの保存 - Web ページ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [レポートの保存] | 特に指定しない限り、既定のレポートの場合は [名前を付けて保存] が選択されます。既定以外のレポートの場合は [上書き保存] が選択されます。
    [レポート名] | 新しいレポートの名前を入力します。
    [レポート カテゴリ] | レポートのカテゴリを入力します。
    [レポートの説明] | 新しいレポートの説明を入力します。
    [レポートの詳しい説明] | 新しいレポートの詳しい説明を入力します。この説明は、 詳しい説明の表示 をクリックしたときに、ピボットテーブル コントロールの上にあるブラウザ ウィンドウに表示されます。
  8. [OK] をクリックします。

    重要

    • 新しいレポートを保存すると、レポートのデータではなく、レポート定義が保存されます。次回そのレポートを実行すると、同じ行、列、およびフィルタが表示されます。また、そのレポート定義に従って、現在のデータが Microsoft SQL Server 2000 Analysis Services (OLAP) から照会されます。
  9. [レポート] 画面に戻るには、レポートのウィンドウを閉じます。

ピボットテーブルを操作する方法の詳細については、[ピボットテーブル] ツール バーの ピボットのヘルプ をクリックしてください。

ピボットテーブルにフィールドを追加するには

  1. システム管理者に問い合わせて、データをデータ ウェアハウスへインポートし、レポート準備 DTS タスクを実行してデータがレポートで利用可能になるように依頼します。
  2. [分析] の [レポート] をクリックし、新しいレポートの基にする動的レポート定義を選択します。
  3. [レポート] 画面で、ツール バーの <レポート名> の実行 をクリックして動的レポートを実行します。

    完成したレポートが、新しいブラウザ ウィンドウにピボットテーブルとして表示されます。ピボットテーブルの上部に [ピボットテーブル フィールド リスト] が表示されます。

    注

    • テーブルを開いたときに [ピボットテーブル フィールド リスト] が自動的に表示されない場合は、[ピボットテーブル] ツール バーの [フィールド リスト] をクリックして、[ピボットテーブル フィールド リスト] を表示してください。
  4. [ピボットテーブル フィールド リスト] からフィールドをドラッグして、ピボットテーブルにドロップします。

    ピボットテーブルで、[ピボットテーブル フィールド リスト] の [集計] の下にある項目がメジャーです。[集計] と同じレベルにある項目はディメンションです。メジャーは、ピボットテーブルのデータ領域 (中央のセル) に追加できます。ディメンションは、行、列、またはフィルタとして使用できます。

    フィールドを [ピボットテーブル フィールド リスト] からドラッグ アンド ドロップする代わりに、[ピボットテーブル フィールド リスト] の下部にある [追加] を使うこともできます。[ピボットテーブル フィールド リスト] の使い方については、[ピボットテーブル] ツール バーの ヘルプ をクリックしてください。

  5. 完成したレポートのウィンドウで、ピボットテーブルのすぐ上にある レポートの保存 をクリックします。[レポートの保存 - Web ページ] ダイアログ ボックスが表示されます。
  6. [レポートの保存 - Web ページ] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [レポート名] | 新しいレポートの名前を入力します。
    [レポート カテゴリ] | 新しいレポートのカテゴリを入力します。
    [レポートの説明] | 新しいレポートの説明を入力します。
    [レポートの詳しい説明] | 新しいレポートの詳しい説明を入力します。この説明は、 詳しい説明の表示 をクリックしたときに、ピボットテーブル コントロールの上にあるブラウザ ウィンドウに表示されます。
  7. [OK] をクリックします。新しいレポートが保存されます。
  8. [レポート] 画面に戻るには、レポートのウィンドウを閉じます。

ピボットテーブルを操作する方法の詳細については、ピボットテーブルのヘルプを参照してください。このヘルプは、[ピボットテーブル] ツール バーの [ヘルプ] をクリックすると表示されます。

重要

  • 新しいレポートを保存すると、レポートのデータではなく、レポート定義が保存されます。次回そのレポートを実行すると、同じ行、列、およびフィルタが表示されます。また、そのレポート定義に従って、現在のデータが Microsoft SQL Server 2000 Analysis Services (OLAP) から照会されます。

レポートの一覧に新しいレポートを表示するには

  1. [分析] の [レポート] をクリックします。
  2. [レポート] 画面で、ツール バーの 分析レポートの検索 をクリックします。次に、レポートの検索に使用する検索条件を選択し、[検索開始] をクリックします。

新しいレポートがレポートの一覧に表示されます。

レポートの一覧を更新するには

  1. [分析] の [レポート] をクリックします。
  2. [レポート] 画面で、ツール バーの 分析レポートの検索 をクリックします。
  3. [検索条件] ボックスで [すべてのレポート] を選択し、[検索開始] をクリックします。

すべてのレポートが含まれる新しい一覧が表示されます。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート


レポートを削除する

カスタム レポート定義を削除するには、レポート モジュールを使います。完成した静的レポートを削除するには、"完成したレポート" モジュールを使います。Commerce Server 2002 にあらかじめ用意されている動的レポート定義および静的レポート定義は削除できません。これらはシステムのレポートです。システムのレポートの場合は、レポート モジュールのレポートの一覧の [作成者] 列に "システム" と表示されます。

カスタム レポート定義を削除する

完成した静的レポートを削除する

カスタム レポート定義を削除する

カスタム レポート定義を削除するには、レポート モジュールを使います。システムのレポートは削除できません。システムのレポートの場合、[作成者] 列に "システム" と表示されます。

カスタム レポートを削除するには

  1. [分析] の [レポート] をクリックし、削除するカスタム レポートを選択します。
  2. ツール バーの 削除 をクリックします。
  3. [レポートを削除しますか?] ダイアログ ボックスで [はい] をクリックします。

選択したカスタム レポートがレポートの一覧から削除されます。

注意

  • レポート モジュールでカスタム レポートを削除すると、対応するレポート定義が削除され、そのレポートを実行できなくなります。

完成した静的レポートを削除する

完成した静的レポートを削除するには、"完成したレポート" モジュールを使います。"完成したレポート" モジュールで静的レポートを削除すると、完成したレポートだけが削除されます。レポート定義は削除されずにレポート モジュールに残ります。

注

  • 失敗したレポートも、完成したレポートと同じ方法で削除できます。
  • 実行中のレポート (状態が [保留中] のレポート) をレポートの一覧から削除しても、そのレポートは終了しません。引き続き実行されます。

完成した静的レポートを削除するには

  1. [分析] の [完成したレポート] をクリックします。
  2. レポートの一覧で、削除するレポートを選択し、ツール バーの 完成したレポートの削除 をクリックします。

選択した静的レポートがレポートの一覧から削除されます。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート


レポート プロパティを表示する

静的レポートおよび動的レポートのプロパティを表示するには、レポート モジュールを使います。

レポート プロパティに変更を加えることはできません。求めているデータを返すクエリがどのレポート定義にも存在しない場合は、既存の動的レポート定義に変更を加え、それを新しい動的レポート定義として保存します。また、システム管理者に依頼して、必要とする動的レポート定義または静的レポート定義を新規に作成してもらうこともできます。

動的レポート定義に変更を加えて新しい動的レポート定義を作成する方法の詳細については、「新しい動的レポート定義を作成する」を参照してください。

レポートのプロパティを表示するには

  1. [分析] の [レポート] をクリックします。
  2. レポートの一覧で、表示するプロパティが含まれているレポートを選択し、ツール バーの <レポート名> を開く をクリックします。

レポート プロパティの一覧が表示されます。

関連項目

動的レポートと静的レポートについて

Commerce Server 2002 のレポート

レポートを検索する


ビジネス デスク キャンペーン

マーケティング キャンペーンを作成したり管理したりするには、キャンペーン モジュールを使います。キャンペーン モジュールは、キャンペーン スケジュールを作成および管理するための使いやすいインターフェイスを備えています。ビジネス デスク キャンペーンを使うと、ユーザーに表示するコンテンツの種類とコンテンツを配信するタイミングを決定することによって、対象化した商品取引でユーザーのショッピング体験をパーソナライズできます。広告キャンペーン、ダイレクト メール キャンペーン、または割引キャンペーンを作成し、対象となるユーザーのグループにコンテンツを配信する時期を指定できます。

ここでは、次のトピックについて説明します。

  • キャンペーン管理のワークフロー キャンペーンの作成、対象決定、および管理のためのワークフローについて説明します。
  • キャンペーンについて 広告、割引、ダイレクト メールについて、およびキャンペーン目標設定の使い方について説明します。また、対象式の作成方法についても説明します。
  • キャンペーンに関するヒントとテクニック キャンペーンの作成と管理に関する推奨事項とヒントについて説明します。
  • 参照テーブルを設定する コンテンツ サイズ、業種コード、およびページ グループをビジネス モデルに合わせて設定する方法について説明します。
  • マーケティング キャンペーンを作成する 顧客情報を追加する方法、キャンペーンの追加とスケジュール設定の方法、キャンペーン項目を作成する方法、および運用サイトに送信する方法について説明します。
  • キャンペーン式を作成する 対象式とカタログ式の目的と使い方、および対象グループを作成する方法について説明します。
  • 広告を作成する 広告を作成する方法、広告のサイズを指定する方法、および広告の対象として特定の Web ページやユーザーのグループを指定する方法について説明します。
  • 割引を作成する 割引キャンペーンを作成および管理する方法について説明します。
  • 割引の例 割引について、さまざまな条件、特典、および必要資格を設定する方法を事例を用いて示します。
  • 割引適用ポリシー 複雑な割引キャンペーンで適用される割引を決定する方法について説明します。
  • キャンペーンの変更を Web サイトに発行する Commerce Server ビジネス デスクを使って追加した新しい情報でサイトを更新する方法について説明します。
  • ユーザー レコード リストを管理する リスト マネージャを使ってメーリング リストとユーザー リストを作成および管理する方法について説明します。
  • ダイレクト メールを作成する ダイレクト メールを追加する方法、ダイレクト メール メッセージのスケジュールを設定する方法、およびダイレクト メール メッセージをパーソナライズする方法について説明します。
  • キャンペーンを検索する フィルタ条件を使ってサイト上のキャンペーンを検索する方法について説明します。
  • 顧客、キャンペーン、およびキャンペーン項目の削除と復元を行う キャンペーンを削除および復元する方法について説明します。
  • キャンペーンを拡張する サイト開発者がサイトに独自の変更を加えることによって、キャンペーンの機能を拡張する方法について説明します。


キャンペーン管理のワークフロー

次の図は、キャンペーンを作成、管理、および対象化するシナリオの例を示しています。

  1. 参照テーブル モジュールで、コンテンツ サイズ、業種コードおよびページ グループを追加します。この操作は、サイト開発者が用意したテーブルを追加または変更する必要がある場合にのみ行います。
  2. キャンペーン式モジュールで対象式を作成して、割引の提供対象となるユーザーを指定します。
  3. キャンペーン マネージャ モジュールで、新しい顧客 (Arbor Shoes など) を作成し、キャンペーン (Fall Season Sale など) を作成します。次に、割引 (Member Discount など) を追加します。

関連項目

キャンペーンについて


キャンペーンについて

マーケティング キャンペーンの作成やスケジュール設定を行ったり、対象化したコンテンツを Web サイトに配信するために、キャンペーン モジュールを使います。Commerce Server には、オンライン キャンペーンを実施するためのさまざまな機能が用意されています。たとえば、広告、割引、およびダイレクト メール用のキャンペーンを作成できます。キャンペーンを分析すれば、価格、コンテンツの対象化、およびビジネスのその他の側面について決断することもできます。ユーザー データを分析してからサイトを更新すると、ユーザーをより効率的に対象化できます。

キャンペーン モジュールは、顧客と協力し、広告、割引、およびダイレクト メールの効果を最大にできるように設計されています。キャンペーン モジュールを使うと、次のことができます。

  • 広告や割引の対象を特定のプロファイルを持つユーザーに設定する。プロファイル定義デザイナ モジュールを使ってユーザー プロファイルを設定し、キャンペーンに組み込みます。広告のページごとに、ページを参照しているユーザーのプロファイルを参照し、対象化されたコンテンツを表示するか、またはまったく表示しないかを指定することができます。
  • 同じ業種で競合する複数の顧客向けにキャンペーンを実行する。競合する広告が同じページに表示されることは決してありません。
  • 顧客が希望する広告要求数に基づいて顧客に料金を請求する。

ここでは、次のトピックについて説明します。

  • キャンペーンの構造
  • キャンペーン目標設定
  • 参照テーブル
  • 広告
  • 割引
  • ユーザー リストとメーリング リスト
  • ダイレクト メール
  • 対象化とパーソナライズ


キャンペーンの構造

"キャンペーン" とは、顧客からの 1 つ以上の契約または注文を表すマーケティング プログラムです。たとえば、新製品を発売するキャンペーン、既存のユーザーを維持するキャンペーン、市場シェアを拡大するキャンペーンなどが考えられます。各キャンペーンには、広告、割引、およびダイレクト メール メッセージの複数のキャンペーン項目が含まれることがあります。

顧客、キャンペーン、および各キャンペーンのキャンペーン項目を作成して管理するには、キャンペーン マネージャ モジュールを使用します。

次の図は、キャンペーン マネージャ ツリーの階層構造を示しています。

キャンペーン マネージャ ツリーの階層構造

請求先などの顧客情報は、その顧客用に作成されるすべてのキャンペーンで使われます。キャンペーン マネージャ モジュールでは、すべての顧客が降順で表示できます。

1 つのキャンペーンに含まれるキャンペーン項目は、顧客と日付範囲がすべて共通です。たとえば、新聞サイトの旅行セクションで、広告主が米国北西部からユーザーに対して 1 週間以内に 10,000 件の要求を配信するように要請したとします。この広告主は、10,000 件の要求を実現するために 3 種類の広告を掲載し、クリック数が最も多い広告を特定しようとしているとします。この場合、各広告がキャンペーン項目となります。


キャンペーン目標設定

"キャンペーン目標設定" は、一定期間内に配信する広告の数 (目標) を指定する処理です。コンテンツ選択フレームワーク (CSF) で広告キャンペーンのキャンペーン目標設定変数を処理し、表示する広告を決定します。広告のクリック数または広告に対する要求数で目標を設定できます。キャンペーンの目標は、キャンペーン レベルまたは広告の項目レベルで設定できます。

  • "キャンペーン レベルの目標設定" では、要求の総数をウエイトに従って配分することによって、キャンペーンのすべてのキャンペーン項目 (広告) に目標を適用します。

    たとえば、ある顧客について、キャンペーン レベルで目標を設定するとします。顧客からは 2 種類の広告を与えられ、25,000 回の広告要求の注文を受けています。キャンペーン レベルで、一方の広告に 80 のウエイトを割り当て、もう一方の広告に 20 のウエイトを割り当てます。これによって、キャンペーン用に指定した広告の合計数は 100 % になります。たとえば、顧客が広告要求の数を 40,000 回に変更した場合でも、広告が表示される回数を手動で変更する必要はありません。ウエイトはそれぞれ 80 と 20 のままになります。最初の広告は 32,000 回表示され、2 番目の広告は 8,000 回表示されます。合計で 40,000 回になります。

    広告の目標は、ウエイトに設定した割合と厳密に同じにする必要はありません。たとえば、広告のウエイトをそれぞれ 800 と 20 に設定できます。この場合、最初の広告は 39,024 回表示され、2 番目の広告は 976 回表示されます。合計で 40,000 回になります。

  • "広告の項目レベルの目標設定" では、キャンペーン項目レベルで目標を適用します。キャンペーンの要求の総数は、注文された各キャンペーン項目の要求の合計数と等しくなります。たとえば、ある顧客が 1 か月で 50,000 回の広告要求を注文したとします。この場合は、広告の項目を 50,000 回配信する必要があります。

キャンペーン レベルの目標設定と広告の項目レベルの目標設定は、切り替えることができます。キャンペーンの目標設定によって、広告のウエイトの計算方法が決まります。たとえば、キャンペーン マネージャでキャンペーン レベルの目標設定を行い、各キャンペーン項目のウエイトに 1 を割り当てておきます。目標設定のレベルは、後で広告レベルに変更することができます。また、キャンペーン項目の 1 つについて、追加の広告要求を出すこともできます。キャンペーンの合計の目標値は、追加の広告要求を足した値になります。

広告レベルの目標設定からキャンペーン レベルの目標設定に変更したキャンペーンに広告を追加する場合は、すべての広告のウエイトを変更する必要があります。ウエイトを変更しない場合は、広告の配信にゆがみが生じることになります。キャンペーン レベルの目標設定と広告の項目レベルの目標設定を切り替える方法については、「キャンペーン目標設定と広告の項目目標設定を切り替える」を参照してください。

関連項目

キャンペーン目標設定と広告の項目目標設定を切り替える

キャンペーンの目標を設定する

広告キャンペーン項目を処理する


参照テーブル

ビジネス デスクの参照テーブル モジュールは、サイトに表示されるコンテンツのサイズを設定し、ページ グループの名前を管理し、同じ業種の 2 つの広告が同時に同じページに表示されないようにするための業種コードを設定するときに使います。参照テーブル モジュールのプロパティによって、サイト全体で広告コンテンツの一貫性を保つことができます。

  • "コンテンツ サイズ" は、コンテンツ (広告および割引) に指定するサイズです。Commerce Server 2002 では、既定のコンテンツ サイズがいくつか用意されています。これらのコンテンツ サイズは、Internet Advertising Bureau (IAB) によって承認された、一般に使われるサイズのリストに基づいています。コンテンツ サイズは、参照テーブル モジュールの [コンテンツ サイズ] セクションで確認します。

    参照テーブルのコンテンツ サイズは、キャンペーン項目のコンテンツ サイズを選択するときに利用できます。定義済みのサイズは、どれでも表示、編集、および削除できます。必要に応じて新しいコンテンツ サイズを作成することもできます。

  • "業種コード" は、自動車、航空、飲料などのさまざまな業種を識別するために使うコードです。業種コードを使うと、広告に関連付けられている業種を特定できるため、同じ業種で競合している複数の企業の広告が同じページに表示されないようにすることができます。業種コードは、割引には適用されません。

    たとえば、業種コードを更新して、コーヒー用に 1 つとミルク用に 1 つ、のように複数の飲料コードを含めると、種類の異なる飲料の広告を同じページに表示できます。たとえば、コーヒーの広告とミルクの広告が同じページで競合しても問題のない場合があります。このテーブルのエントリ数を調整することによって、業種の競合を監視するレベルを設定できます。

    Commerce Server には、一般的な業種コードがいくつか用意されています。広告で使用する業種コードは、参照テーブル モジュールの [業種コード] セクションで確認します。参照テーブルの業種コードは、キャンペーン項目の業種コードを選択するときに利用できます。参照テーブル モジュールの [業種コード] セクションでは、現在のすべての業種コードを一覧表示したり、新しい業種コードを追加したり、業種コードを編集および削除することができます。

  • "ページ グループ" は、特定のページ グループ名を付けられ、広告の対象化に使われる、関連性のある Web ページの集合です。たとえば、新聞のサイトを運用している場合は、トップ記事用に 1 つとローカル ニュース用に 1 つ、スポーツのページ グループを作成できます。さらに、特定のページ グループのページだけに表示されるように広告の対象を指定できます。

    サイトで表示する広告の料金を顧客に請求するときには、ページ グループを広告料の基準に設定できます。たとえば、ホーム ページに表示される広告には割増料金を請求し、それ以外のページに表示される広告には低い料金を請求することができます。

注
  • ページ グループを使うには、サイト開発者に依頼して、ページでの広告表示を有効にしてもらう必要があります。

関連項目

キャンペーンについて

参照テーブルを設定する

コンテンツ サイズを指定する

業種コードを追加する

ページ グループを追加する


広告

Commerce Server では 2 種類の広告をサポートしています。1 つは有料広告で、もう 1 つは自社広告です。

  • "有料広告" は、表示頻度 (NOD) と呼ばれる配信用の特定の計算式に基づいて配信されるコンテンツです。
  • "自社広告" は、有料広告が指定された表示頻度のスケジュールよりも先行して配信された場合に配信されるコンテンツです。たとえば、顧客が 1,000 回の有料広告を 4 か月かけて配信する注文をしているにもかかわらず、最初の 2 か月で 850 回の広告が配信されたとします。この場合、表示頻度のスケジュールを調整するために、自社広告を配信します。

    自社広告は、有料広告を円滑に配信するうえで重要な役割を果たします。また、要求に適した有料広告がない場合にも、自社広告が表示されます。たとえば、すべての有料広告が、要求される対象に適さない場合には、自社広告が配信されます。

    自社広告は、売れ残りの在庫を割引価格で販売するときにも使われます。また、サイトの広告が特定の配信目標を持たないけれども指定したウエイトで広告を実行する必要がある場合にも使われます。

ここでは、次のトピックについて説明します。

  • 広告のコンポーネント
  • 広告を対象化する
  • 広告キャンペーン項目を処理する
  • 多言語に対応可能な広告


広告のコンポーネント

Commerce Server では、広告は次の 4 つの部分で構成されます。

  • "広告プロパティ" には、広告の名前、種類 (有料広告または自社広告)、ウエイトまたは配信する要求数やクリック数 (有料広告と自社広告の割合)、表示上限回数、および広告に関連付けられた業種が含まれます。
  • "広告のスケジュール" は、広告の開始日/時刻と終了日/時刻です。広告を表示する曜日と時刻を選択できます。
  • "広告対象" では、広告を表示するページと、その対象となるグループを指定します。
  • "広告の表示" では、広告のサイズや種類 (イメージ、テキスト、HTML など) を指定できます。また、必要に応じて、ユーザーが他のページ (または Web サイト) に移動するためにクリックする画像や URL も指定します。広告は、イメージ、テキスト、HTML、クリックできないイメージ、Buy Now、Windows メディア サービス、またはビネットとして表示できます (ビネット広告は、広告を表示するイメージと、それに隣接して表示されるテキストで構成されます)。
広告を表示する際は、サイトで使用される通貨とは別の通貨を使用できます。たとえば、使用する通貨としてユーザーが円を選択し、サイトの通貨が米国ドルだった場合、広告は米国ドルで表示されます。ユーザーがサイトを閲覧するとき、すべての商品の価格が円で表示されますが、広告上の通貨は米国ドルで表示されます。

関連項目

キャンペーンについて

広告

キャンペーン項目を追加する

広告を作成する

広告プロパティを追加する


広告を対象化する

Commerce Server を使って、広告をいつ、どこで、だれに対して表示するかを指定できます。広告を作成するときに、次の項目を指定します。

  • 表示上限回数 1 回のセッション中にユーザーに広告を表示できる回数です。サイトでユーザー プロファイルを使用してキャンペーン履歴を保存する場合、表示上限回数は、セッションを越えてユーザーに広告を表示できる回数となります。
  • ウエイト 特定の顧客のすべてのキャンペーン項目との相関関係で、広告を表示する頻度を決める方法です。キャンペーンでは、キャンペーン レベルで目標が設定されている広告にのみウエイトが適用されます。広告の目標が項目レベルで設定されている場合、有料広告にウエイトは適用されません。

    自社広告では、ウエイトは、すべての顧客とすべてのキャンペーンに対する他のすべての自社広告と相関関係にあります。有料広告では、ウエイトは同じキャンペーンの他の有料広告との相関関係になります。個々のキャンペーン項目のウエイトは、他のすべてのキャンペーン項目のウエイトとの相関関係になります。

    たとえば、塗料を販売する 4 つの広告に、次のようなウエイトを割り当てるとします。

    広告 | ウエイト | 配信回数の割合
    青色の塗料 | 1 | 10
    緑色の塗料 | 2 | 20
    赤色の塗料 | 3 | 30
    黄色の塗料 | 4 | 40
    ウエイトの合計 | 10 | 100

    すべての広告のウエイトを合計すると、100 (10 + 20 + 30 + 40 = 100) になります。青色の塗料の広告のウエイトは 1 なので、10 回の広告要求ごとに 1 回表示されます。

    有料広告のウエイトは、そのキャンペーンのすべてのキャンペーン項目の合計に対する 1 つの広告の割合になります。自社広告の場合、キャンペーンの他のすべての自社広告のウエイトの合計がウエイトになります。

    キャンペーン項目レベルで目標が設定されている広告では、広告配信の決定にウエイトは使われません。代わりに、配信する要求数またはクリック数を直接指定します。

  • ページ グループ 特定のページ グループ名を付けられ、広告の対象化に使われる、関連性のある Web ページの集合です。たとえば、新聞のサイトを運用している場合は、トップ記事用に 1 つとローカル ニュース用に 1 つ、スポーツのページ グループを作成できます。さらに、特定のページ グループのページだけに表示されるように広告の対象を指定できます。

    ページ グループは、参照テーブル モジュールを使って作成します。

  • 対象グループ コンテンツが表示される対象の集合です。対象グループでは、各式の評価結果が True になったときに実行する "アクション" を指定して、式を結合します。対象グループの詳細については、「対象グループを作成する」を参照してください。

関連項目

対象グループを作成する

対象式を作成する

広告を作成する

式に基づく対象化


広告キャンペーン項目を処理する

コンテンツ選択フレームワーク (CSF) は、広告に指定するキャンペーン目標設定、表示上限回数、スケジュール、ウエイト、ページ グループ、および対象グループの各変数を処理します。ユーザーがサイトを訪問するたびに、CSF は広告を表示すべきかどうかを判断します。

広告の CSF は、"表示頻度" (NOD) と呼ばれる計算式を使って、まず配信がどの程度スケジュールより遅れているかを基準に広告のスコアを付けます。この計算式では、配信するコンテンツの合計数と、その数量を配信する期間が考慮に入れられます。表示頻度は、CSF が広告要求を処理した後に、CSF によって広告要求ごとに計算されます。表示頻度は有料広告にのみ適用され、自社広告には適用されません。

複数の広告があり、それらがどのような基準で表示されているかを知る必要がある場合は、サイト開発者に問い合わせてください。Commerce Server には、サイト開発者が広告選択処理を追跡するための TraceScores というツールが用意されています。TraceScores を使って、内部のコンテンツ決定処理が実際にどのように機能しているのかを調べます。

同じ対象グループと同じ優先順位を使って複数のキャンペーンを同時に実行する場合、CSF は広告の種類に基づいて表示する広告を選択します。広告がどちらも自社広告の場合は、ウエイトを相対的確率として使った無作為の選択が行われます。広告が有料広告の場合、表示される広告は表示頻度の計算に基づいて選択されます。この計算では、開始日、終了日、スケジュールされているイベントの数、および現在までに配信されたイベントの数が考慮されます。使われるスコア変更の 1 つがペナルティ履歴で、ユーザーが最近表示した広告に、スコアを減らすペナルティが適用されます。ペナルティ履歴を有効にすると、広告は時間の経過と共に "循環" します。

関連項目

キャンペーンについて

広告を作成する

キャンペーン目標設定

式を処理する


多言語に対応可能な広告

広告を複数の言語で利用する場合は、言語ごとに広告を作成し直す必要があります。広告の作成については、「広告を作成する」を参照してください。

注

  • 広告を複数の言語で作成するときは、広告名に50 文字のサイズ制限があることに注意してください。

関連項目

キャンペーンについて

広告を作成する


割引

割引は、Commerce Server による商品取引システムで重要な役割を担う要素です。Commerce Server の割引機能を利用すると、販売促進キャンペーンの管理担当者が、商品または商品グループに販促価格を設定して、その価格を特定の条件を満たすユーザーに提示できます。割引は、カタログのどの項目にも適用できます。割引は、注文全体に対して適用する (注文レベルの割引) ことも、注文の特定の項目に対して適用する (項目レベルの割引) こともできます。

Commerce Server 2002 には、キャンペーンの管理担当者のための機能が用意されています。この機能を使って、1 つの項目または注文に複数の割引を適用したり、割引の適用順序を制御したりできます。また、1 つの注文の中で、項目レベルの割引と注文レベルの割引を混在させることもできます。種類の異なる割引が混在している注文については、「割引の並べ替え」を参照してください。複数の割引については「複数の割引」を参照してください。

  • "項目レベルの割引" は、バスケット内の特定の商品に適用されます。1 つの項目または 1 回の注文に対して、複数の割引を適用することができます。
  • "注文レベルの割引" は、買い物バスケットのすべての商品に適用されます。たとえば、"送料なし" は注文レベルの割引の一種です。バスケット内にあるすべての商品の送料を無料にできます。Commerce Server で利用できる注文レベルの割引は、送料を無料にする割引、合計金額の何割かを差し引く割引、および合計金額から一定額を差し引く割引です。注文レベルの割引に、複数の割引を適用することはできません。注文レベルの割引には、1 回だけの黙示的な制限があります。

Commerce Server を使って、次の種類の割引を作成および適用できます。

  • "クリック必須の割引" は、ユーザーが割引 URL をクリックした場合にのみ適用されます。たとえば、"10% オフ" などと書かれた商品のイメージが、割引 URL になります。サイト開発者は、この種類の割引を他の用途に拡張し、たとえば、ユーザーが割引を受けるために必要な割引券を提供することなどができます。
  • "レバレッジ割引" は、他の商品の購入に基づいて適用されます。たとえば、ユーザーがバスケットに電話機を追加したら、両手が自由になるヘッドセットを支払い時に提供し、ユーザーがそれをバスケットに追加して受け取るようにすることができます。また、他の付属品を割引価格で提供することもできます。
  • "パーセンテージ割引" は、商品の価格を金額ではなくパーセンテージで引き下げます。たとえば、商品に 10% の割引を適用した後で、必要に応じて商品の価格を変更できます。商品の価格を変更すると、割引金額は自動的に更新されます。
  • "金額割引" は、商品の価格を固定金額で引き下げます。たとえば、特定の商品に対して 500 円の割引を提供できます。商品の価格を変更しても、この割引金額 (500 円) は変わりません。
  • "期間限定割引" は、特定の日数の間だけ、または特定の時間帯だけ商品の価格を引き下げます。割引を特定の時間帯だけ適用するようにスケジュールを設定するには、"現在の時刻" プロパティを評価する式を作成します。たとえば、現在の時刻 > 午後 5:00 および現在の時刻 < 午後 9:00 の場合は、商品に 10% の割引を適用する、という式を使います。

これらの割引は、個々の商品に適用することも、カテゴリのすべての商品に適用することもできます。また、特定のメーカーのすべての項目に 10% の割引を適用するような、特定の条件を満たす商品に割引を適用する式を作成することもできます。

たとえば、次の状況で適用する割引を作成できます。

  • 商品の価格が 2,000 円を超えている。割引条件式です。割引条件式は、商品プロパティに基づいています。
  • 同じ商品を 2 個購入した。必要な割引条件基準の一部です。
  • スポーツ ページの割引広告をクリックした。クリック必須の割引です。
  • 登録済みユーザーである。割引資格要件式です。割引資格要件式は、ユーザー プロファイルとコンテキスト プロファイルに基づいています。

注

  • さまざまなビジネスの内容に合わせて割引を設定する方法の例については、「割引の例」を参照してください。

ここでは、次のトピックについて説明します。

  • 割引のコンポーネント
  • 割引の優先順位
  • 割引の条件
  • 割引の特典
  • 割引の制限
  • 条件解除割引
  • クリック必須の割引
  • 割引の特典を受ける対象
  • 複数の割引
  • 割引の並べ替え
  • 割引を処理する
  • 注文レベルの割引を適用する
  • 多言語に対応可能な割引


割引のコンポーネント

割引のコンポーネントには、割引プロパティ、割引定義、割引表示対象、および割引の表示があります。これらのコンポーネントは、割引を作成するときにキャンペーン マネージャ モジュールを使って定義します。

割引プロパティ

割引プロパティは、割引名、状態、優先順位、開始日、および終了日です。

状態

"状態" は、割引がアクティブであるか、非アクティブであるかを示すフラグです。割引が適用されるのは、このフラグがアクティブになっている場合だけです。たとえば、ビジネス マネージャが、休暇シーズンにセーターの販売成果を上げるために割引を作成するとします。休暇が終わったら、ビジネス マネージャはこの割引を非アクティブにします。非アクティブにしても、割引はシステム内に保持されています。次の休暇シーズンになったら、割引をもう一度アクティブにできます。

優先順位

優先順位によって、適用される割引の相対的な順序が決まります。割引の優先順位の詳細については、「割引の優先順位」を参照してください。

開始日

"開始日" は、割引の開始日を決定します。割引が適用されるのは、開始日が現在の日付よりも前になっている場合だけです。

終了日

"終了日" は、割引の終了日を決定します。割引が適用されるのは、終了日が現在の日付よりも後になっている場合だけです。

割引定義

割引定義は、割引を適用する項目、金額、および対象の内訳です。割引定義には、条件 (対象の条件)、特典 (特典の条件)、特典を利用できる制限回数、条件解除割引、クリック必須、特典を受ける対象、および割引管理ポリシーがあります。

条件 (対象の条件)

条件 (対象の条件) ユーザーに特典を与えるかどうかを指定します。対象の条件には、"対象 : すべての商品" 条件、条件の種類、条件値、およびカタログ式があります。

  • 対象 : すべての商品 これを指定すると、特典の対象となる商品がバスケットの中にある場合は、割引が必ず適用されます。
  • 条件の種類 対象の条件の種類を決定します。"対象" 条件の種類には、"数量" と "金額" の 2 つがあります。
  • 条件値 条件となる金額または数量を指定します。
  • カタログ式 ユーザー バスケット内の各項目について評価されます。"対象" 条件の式は、商品カタログに基づいて作成することができます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。

割引条件の詳細については、「割引の条件」を参照してください。

特典 (特典の条件)

特典 (特典の条件) 10% の割引や送料なしなど、ユーザーに提供される割引の内容を指定します。"特典の条件" には、対象商品の種類、値の種類、およびカタログ式という要素があります。

  • 対象商品の種類 特典の対象となる商品を定義します。提供できる特典は、項目レベルの割引、注文レベルの割引、送料なし (注文レベルの割引) の 3 種類です。
  • 特典数の制限 割引が適用された場合に、ユーザーが受ける特典項目の数を決定します。ユーザーのバスケット内の項目が特典の制限数よりも少ない場合は、バスケット内にある項目だけが特典を受けることになります。
  • カタログ式 割引の特典が適用されるのは、この式を評価した結果が True となった場合だけです。割引のためのカタログ式は、ユーザー バスケット内の各項目について評価されます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。
  • 値の種類 特典の値を定義します。特典の値は、パーセンテージ割引または金額割引のいずれかです。

割引特典の詳細については、「割引の特典」を参照してください。

[特典を利用できる制限回数]

特典を利用できる制限回数 割引をバスケットに適用できる回数を決定します。割引制限の詳細については、「割引の制限」を参照してください。

条件解除割引

条件解除割引は、"対象の条件" 句と "特典の条件" 句が同じ商品を参照している場合に適用される割引です。このプロパティによって、割引の条件として使っている項目を特典として再利用するかどうかを決定します。条件解除割引には、次の 2 種類があります。

  • [[特典] で指定した商品のみ割引を適用する] 商品の販促活動を適度に展開するには、ビジネス マネージャはこれを使用します。
  • [[特典] および [対象] で指定した商品の両方に割引を適用する] 商品の販促活動を積極的に推し進めるには、ビジネス マネージャはこれを使用します。

条件解除割引の詳細については、「条件解除割引」を参照してください。

クリック必須

ユーザーが実際に割引をクリックした場合にだけ、割引を適用します。クリック必須の割引の詳細については「クリック必須の割引」を参照してください。

特典を受ける対象

特典を受ける対象 割引の適用対象となるユーザーを指定します。特典を受ける対象は、対象式とも呼ばれます。対象式の評価結果が True になると、割引が適用されます。特典を受ける対象の詳細については、「割引の特典を受ける対象」を参照してください。

割引管理ポリシー

割引管理ポリシー 1 つの項目が複数の割引や特典を受かどうかを決定するルールです。Commerce Server では、次の 4 つの割引管理ポリシーをサポートしています。

  • この割引の条件を、他の割引の条件でも使用できるようにする
  • この割引の条件が、他の割引の特典を受けられるようにする
  • この割引の特典を、他の割引の条件でも使用できるようにする
  • この割引の特典に加え、他の割引の特典も受けられるようにする

注

  • このプロパティが意味を持つのは、ユーザー バスケットに適用できる割引が複数ある場合だけです。

割引管理ポリシーの詳細については、「複数の割引」を参照してください。

割引表示対象

割引表示対象は、割引を広告するページと、その対象グループを指定します。割引表示対象の詳細については、「割引の対象をページ グループと対象グループに設定する」を参照してください。

割引の表示

割引の表示は、割引をユーザーに表示する回数、ユーザーが割引を受けるためにクリックするイメージや URL、および支払い時にバスケットに表示される割引情報を指定します。

割引を表示する際は、サイトで使用される通貨とは別の通貨を使用できます。たとえば、使用する通貨としてユーザーが円を選択し、サイトの通貨が米国ドルだった場合、割引は米国ドルで表示されます。ユーザーがサイトを閲覧するとき、すべての商品の価格が円で表示されますが、割引の通貨は米国ドルで表示されます。

注

  • Web サイトでの通貨変換処理は、サード パーティ製の会計システムを利用して実行することをお勧めします。銀行が使用する変換レートは、サイトのコードに格納されている変換レートと異なることがあるので、ユーザーは、サイトの受注ページに表示された金額と少し異なる金額を請求される場合があります。したがって、サイトでの表示価格はすべて "概算価格" と見なすことができます。ユーザーが注文を送信すると、ユーザーが使用する通貨とサイトの記帳通貨でおおよその合計金額が表示されます。

割引の表示の詳細については、「割引の表示を指定する」を参照してください。

関連項目

割引の優先順位

条件解除割引

複数の割引

割引の条件

割引の特典

割引の制限

クリック必須の割引

割引の特典を受ける対象


割引の優先順位

割引にはすべて優先順位を設定し、商品に適用される可能性のある他の割引との相関関係で、その割引をいつ適用するかを決定します。広告とは異なり、割引では適用のタイミングの決定にウエイトを使いません。割引は、順位の数値が最も小さいものから順に適用されます。たとえば、優先順位が 10 の割引は、優先順位が 20 の割引よりも先に適用されます。これは、割引が同じ特典項目に適用される場合でも同様です。

たとえば、オンライン ストアの飲料部門が、夏に向けて "ジュースを 1 ケース購入すると 2 ケース目は半額" という特別提供を実施するとします。ただし、このオンライン ストアでは、飲料カテゴリの各商品に 10% の割引を適用する特別提供も実施しています。これらの割引に、次の表に示す優先順位を設定します。

割引 | 優先順位
ジュースを 1 ケース購入すると 2 ケース目は 50% の割引 | 10
飲料カテゴリの各商品に対して 10% の割引 | 20

ユーザーがジュースを 4 ケース購入した場合、割引は次のように適用されます。

  • 1 ケース目 : 割引なし。
  • 2 ケース目 : 50% の割引。
  • 3 ケース目 : 割引なし。
  • 4 ケース目 : "1 ケース購入すると 2 ケース目は半額" の割引に制限が設定されていない場合にのみ、50% の割引。50% の割引の方が優先順位が高いので、10% の割引ではなく 50% の割引が再び適用されます。

優先順位 (10 など) と割引の種類 (項目レベルのパーセンテージ割引など) が同じで、割引管理ポリシーが [この割引の特典に加え、他の割引の特典も受けられるようにする] に設定されている場合は、複数の割引を結合できます。たとえば、次のシナリオでは 2 つの割引が結合されて、30% の割引になります。

この例では、2 つの割引を作成し、それぞれに、次の表に示すように優先順位 10 を割り当てます。

割引 | 優先順位
電話機を購入するとラジオが 10% の割引 | 10
テレビ ゲーム機を購入するとラジオが 20% の割引 | 10

2 つの割引は、結合されて 1 つの 30% 割引になります。これは、2 つの割引の優先順位 (10) が等しく、種類も同じ (項目レベルのパーセンテージ割引) で、[この割引の特典に加え、他の割引の特典も受けられるようにする] ポリシーが設定されているためです。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

ユーザー バスケット

商品 | 価格 | 割引 | 調整済み合計価格
電話機 | 4,000 |  | 4,000
テレビ ゲーム機 | 5,000 |  | 5,000
ラジオ | 3,000 | 900 (3,000*.30) | 2,100
 |  | 合計 | 11,100

金額割引についても、同様に優先順位の処理が行われます。優先順位の等しい金額割引が複数ある場合は、それらの金額割引が結合されます。

注

  • 割引は、まず優先順位で並べ替えられます。割引の優先順位が等しい場合は、管理ポリシーによって並べ替えられます ([この割引の条件を、他の割引の条件でも使用できるようにする］ が false に設定されている場合、最初に並べ替えられます)。割引の優先順位が等しく、種類 (パーセンテージ割引または金額割引) が異なる場合は、注文割引パイプライン コンポーネントによって、最初に適用される割引の種類が決定されます。注文割引パイプライン コンポーネントについては、「How Discounts are Applied Programmatically」を参照してください。

関連項目

複数の割引

条件解除割引

割引を作成する

割引の例

割引の並べ替え


割引の条件

割引の条件 (対象の条件) は、特典をユーザーに提供するかどうかを指定する式です。特典は、ユーザーが購入した内容によって決まります。割引を受けるには、対象の条件を満たす必要があります。この条件は、注文フォームの項目ごとに評価されます。条件を式にして、割引を特定の項目に適用することも、すべての項目に適用するように指定することもできます。対象の条件には、"すべての商品" プロパティ、条件の種類、値、およびカタログ式という要素があります。

  • "対象 : すべての商品" を指定すると、割引特典の対象となる商品がバスケットの中にある場合は、割引が必ず適用されます。たとえば、何か購入すると (条件式は、"対象 : すべての商品" になります)、ベルトが無料になります。"対象 : すべての商品" プロパティは、バスケット内の品目が条件として使われないことも示しています。

    注

    • バスケットが空の場合でも、"対象 : すべての商品" 割引は常に受ける資格があります。"対象 : すべての商品" は、"ゼロ (0) 個の商品を購入する" と同じ意味になります。

    "対象 : すべての商品" 割引の例については、「割引の例」の「C を購入すると合計金額が 1,000 円の割引、かつ何を購入しても B が 10% の割引」を参照してください。

  • 条件の種類 対象の条件の種類を決定します。割引の対象の条件には、"数量" と "金額" の 2 種類があります。割引は、ユーザーが購入した数量または金額に基づいて適用できます。たとえば、ユーザーがジュースを 3 ケース購入した場合 (数量) に適用される割引や、ジュースを 2,000 円分購入した場合 (金額) に適用される割引を作成できます。
  • 条件値 条件となる金額または数量を指定します。
  • カタログ式 商品カタログに基づく式です。カタログ式は、ユーザー バスケット内の各項目について評価されます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。次に、条件 (対象の条件) 列にはカタログ式の例、特典 (特典の条件) 列には特典の例を示します。
    条件 (対象の条件) | 特典 (特典の条件)
    ジーンズ 1 本 | シャツが 50% 割引
    "デジタル カメラ" カテゴリ内の商品を 2 つ購入 | フィルム 1 本が 30% 割引
    "デジタル カメラ" カテゴリ内の商品を 1 つ購入
    OR
    カムコーダーを購入     		ラジオが 2,000 円の割引

カタログ式の作成については、「カタログ式を作成する」を参照してください。

注

  • 割引は、必ず適用されるとは限りません。これは、割引の特典の在庫状況が常に変動するためです。
  • カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。

関連項目

複数の割引

割引の例

割引を作成する

割引の特典


割引の特典

"割引の特典 (特典の条件)" は、ユーザーに提供される割引の内容を指定します。割引の特典には、対象商品の種類、特典数の制限、カタログ式、および値の種類という要素があります。

  • 対象商品の種類 特典の対象となる商品を定義します。提供できる特典は、項目レベルの割引、注文レベルの割引、送料割引の 3 種類です。Commerce Server 2002 の初期設定でサポートされている送料割引は、"送料なし" だけです。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。
  • 特典数の制限 割引が適用された場合に、ユーザーが受ける特典項目の数を決定します。ユーザーのバスケット内の項目が特典の制限数よりも少ない場合は、バスケット内にある項目だけが特典を受けることになります。
  • カタログ式 割引の特典が適用されるのは、この式を評価した結果が True となった場合だけです。カタログ式は、商品カタログに基づいています。割引のためのカタログ式は、ユーザー バスケット内の各項目について評価されます。この式が少なくとも 1 回 True と評価されなければ、割引は適用されません。次に例を示します。
    条件 (対象の条件) | 特典 (特典の条件) | 割引
    ジーンズ 1 本 | タートルネック T シャツ 1 枚 | 50% の割引
    注文代金が 50,000 円を超える | "ブルー ジーンズ" カテゴリ内の任意のズボン | 無料
    カムコーダー "モデル 123" を 1 台購入 メモリ カード 1 枚
    OR
    カメラ一体型ビデオ スタンド 2 脚     		40% の割引

カタログ式の作成については、「カタログ式を作成する」を参照してください。

  • 値の種類 特典の値を定義します。特典の値は、パーセンテージ割引または金額割引のいずれかです。

    注

    • Commerce Server 2002 では、ゼロ (0) 円の割引は作成できますが、ゼロ (0) % の割引はサポートされません。

注

  • カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。

ユーザーに割引特典を与える方法は、いくつかあります。Commerce Server では、次の 3 種類の特典をサポートしています。

  • "項目レベルの割引" は、バスケット内の特定の商品に適用されます。1 つの項目または 1 回の注文に対して、複数の割引を適用することができます。
  • "注文レベルの割引" は、買い物バスケットのすべての商品に適用されます。
  • "送料割引" は、ユーザーが、注文した項目を送付先住所に配送してもらうために支払う送料に適用されます。Commerce Server 2002 でサポートされている送料割引は、"送料なし" だけです。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。

利用可能な割引特典の種類については、次のセクションで説明します。

注文代金の割引

送料なし

注文代金の割引

"注文代金の割引" では、割引が注文代金に適用されます。注文代金の割引は、買い物バスケットの中にあるすべての商品に適用される注文レベルの割引です。たとえば、"送料なし" は注文レベルの割引の一種です。バスケット内にあるすべての商品の送料を無料にすることができます。Commerce Server で利用できる注文レベルの割引は、送料を無料にする割引、商品の合計金額の何割かを差し引く割引、および合計金額から一定額を差し引く割引です。注文レベルの割引に、複数の割引を適用することはできません。注文レベルの割引には、1 回だけの黙示的な制限があります。

払い戻しを正しく処理するためには、たとえ注文レベルの割引であっても、品目ごとに代金を計算する必要があります。Commerce Server 2002 が提供できるのは、パーセンテージ割引と金額割引です。注文レベルの割引を適用する方法については、「注文レベルの割引を適用する」を参照してください。

注

  • 注文レベルの割引から特定の項目 (需要の多い項目など) を除外する方法については、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Order Processing\OrderLevelDiscountComponents にある "OrderLevelDiscountApply" コンポーネントを参照してください。このコンポーネントを使うと、キーの名前を指定して、項目が割引を受けることができるかどうかを指定できます。

    この機能は、項目レベルの割引には適用されませんが、カスタム構成作業で追加できます。

送料なし

"送料なし" プロパティは、注文されたすべての商品の送料を、割引の特典として無料にするものです。送料割引が注文に適用される際は、個々の項目レベルではなく、累積レベルで適用されます。この点は、注文レベルの割引と似ています。送料割引にパーセンテージ割引や金額割引を適用するには、サイト開発者が、サイトに独自の変更を加える必要があります。

複数の送付先

Commerce Server 2002 では、複数の送付先がサポートされています。たとえば、顧客はいくつかの商品を購入し、それらを別々の送付先に送付することができます。

送料割引と管理ポリシー

ここでは、送料割引と注文レベルの割引それぞれの管理ポリシーが、互いにどのようにリンクするのかについて説明します。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

割引 | 条件 (対象の条件) | 特典 (特典の条件) | 優先順位
割引 1 | 注文代金が 30,000 円を超える | 2,000 円の注文レベルの割引 | 10
割引 2 | カムコーダーを購入 | "送料なし" を適用 | 20

ユーザー バスケットの内容は、次のとおりです。

項目 | 数量 | 単価 | 合計額
カムコーダー | 1 | 20,000 | 20,000
デジタル カメラ | 1 | 30,000 | 50,000
合計 |  |  | 70,000

割引 1 の優先順位が 10 であるため、割引 1 が最初に適用されます。送料割引は累積割引であるため、Commerce Server の一般的な割引管理ポリシーが使われて、送料割引と注文レベルの割引がリンクされます。したがって、割引 1 によってそれ以上の特典がブロックされるため、割引 2 は適用されません。

関連項目

複数の割引

割引を作成する

割引の例

割引の条件


割引の制限

バスケットに適用できる割引の回数を制限できます。割引の制限の値を "なし" に設定すると、割引は無制限になります。バスケットで割引の条件が何回も満たされた場合には、割引が何回も適用されます。割引の制限は 1 つのバスケットの制限なので、他のバスケットでは適用されません。たとえば、支払いを終えたユーザーが、再びサイトに戻って、同じ割引項目を購入した場合は、再度同じ割引を受けることができます。

関連項目

割引を作成する

割引の例


条件解除割引

条件解除割引は、"対象の条件" 句と "特典の条件" 句が同じ商品を参照している場合に適用される割引です。このプロパティによって、割引の条件として使っている項目を特典として再利用するかどうかを決定します。条件解除割引には、次の 2 種類があります。

  • [[特典] で指定した商品のみ割引を適用する] "対象" 条件は、特典として再利用できません。商品の販促活動を適度に展開するには、ビジネス マネージャはこれを使用します。
  • [[特典] および [対象] で指定した商品の両方に割引を適用する] "対象" 条件は、特典として再利用できます。商品の販促活動を積極的に推し進めるには、ビジネス マネージャはこれを使用します。

次のような割引がある場合、どの条件解除割引を選択したかによって、最終的な代金が異なってきます。条件解除割引ごとに、バスケットの結果を示します。

  • 条件 : ユニセックス シャツ 2 枚を購入
  • 特典 : ユニセックス シャツ 1 枚が 40% 割引
  • 条件解除割引 [[特典] で指定した商品のみ割引を適用する]

次のバスケットでは、3 枚目のユニセックス シャツが 40% の割引になっています。条件解除割引として [[特典] で指定した商品のみ割引を適用する] が選択されているので、条件項目を特典として再利用することはできません。1 枚目と 2 枚目のシャツが条件として使用され、3 枚目のユニセックス シャツに 40% の割引が適用されます。4 枚目のシャツには、条件も特典も当てはまりません。

  • 条件 : ユニセックス シャツ 2 枚を購入
  • 特典 : ユニセックス シャツ 1 枚が 40% 割引
  • 条件解除割引 [[特典] および [対象] で指定した商品の両方に割引を適用する]

次のバスケットでは、2 枚目と 4 枚目のユニセックス シャツが 40% の割引になっています。条件解除割引として [[特典] および[対象] で指定した商品の両方に割引を適用する] が選択されているので、条件項目が特典として再利用されます。バスケット内の 1 枚目と 2 枚目のユニセックス シャツが条件として使用され、2 枚目のシャツに 40% の割引が適用されます。バスケット内の 3 枚目と 4 枚目のシャツが条件として使用され、4 枚目のシャツに 40% の割引が適用されます。

関連項目

複数の割引

割引の並べ替え

割引を作成する

割引の例


クリック必須の割引

クリック必須の割引は、ユーザーが割引をクリックした場合にだけ適用されます。"クリック必須" 割引プロパティが "True" の場合、ユーザーが割引の資格を得るためには、その割引に関連付けられている広告をクリックする必要があります。このプロパティによって、ビジネスにおける広告機能と商品取引機能がリンクされます。

注

  • サイト開発者は、この種類の割引を他の用途に拡張し、たとえば、ユーザーが割引を受けるために必要な割引券を提供することなどができます。割引券については、「割引券」を参照してください。

関連項目

割引を作成する

割引の例


割引の特典を受ける対象

"特典を受ける対象" は、割引の適用対象となるユーザーを指定します。特典を受ける対象は、対象式になります。対象式の評価結果が True になると、割引が適用されます。たとえば、好きなスポーツ = 登山である場合、割引が適用されます。

特典を受ける対象は、"ユーザー オブジェクト"、"対象とするコンテキスト"、"組み込みの評価対象" (現在の日付、現在の時刻) などの "コンテキスト" プロパティを使って作成します。対象式を作成することで、割引を受けるユーザーを対象化できます。たとえば、音楽が好きなユーザーを対象にして、ジャズ CD に対して 20% の割引を提供することができます。対象式の作成については、「対象式を作成する」を参照してください。

対象グループを使って、どのユーザーに対して割引を表示するかを決めることもできます。対象グループの作成については、「対象グループを作成する」を参照してください。

関連項目

対象式を作成する

式に基づく対象化

対象グループを作成する

割引を作成する

割引の例


複数の割引

割引管理ポリシーは、1 つの項目が複数の割引や特典を受けるかどうかを決定するルールです。Commerce Server 2002 では、次の 4 つの割引管理ポリシーをサポートしています。

  • この割引の条件を、他の割引の条件でも使用できるようにする 割引資格を得るために使用された条件項目を再利用して、別の割引資格を得ることができるようにします。
  • この割引の条件が、他の割引の特典を受けられるようにする 割引資格を得るために使用された項目に対しても、割引を受ける資格を与えます。
  • この割引の特典を、他の割引の条件でも使用できるようにする 特典を与えられた項目を使用して、さらに他の割引資格を得ることができるようにします。
  • この割引の特典に加え、他の割引の特典も受けられるようにする 特典を与えられた項目に、別の割引を受ける資格を与えます。1 つの項目が、複数の特典を受けることができるようになります。

これらの 4 つの管理ポリシーは、すべてを同時に選択することができます。ポリシーを同時に選択すると、割引の適用形態をきめ細かく調整することができます。各ポリシーの効果については、次のトピックで例を挙げて詳しく説明します。

この割引の条件を、他の割引の条件でも使用できるようにする

この割引の条件が、他の割引の特典を受けられるようにする

この割引の特典を、他の割引の条件でも使用できるようにする

特典項目を別の特典項目として使用できる

この割引の条件を、他の割引の条件でも使用できるようにする

この管理ポリシーを設定すると、買い物バスケット内の 1 つの項目を、複数の条件を満たすために使用できるようになります。

次の例では、ズボンが割引 1 と割引 2 で条件の要素になっています。[この割引の条件を、他の割引の条件でも使用できるようにする] ポリシーが設定されているので、このズボンは、どちらの割引の資格を得ようとするときにも使用できます。

割引 1

条件項目 | 特典項目 | 割引の制限 | 割引 | 優先順位
ズボン 1 本を購入 | ベルト 1 本 | 1 | 50% の割引 | 10

割引 2

条件項目 | 特典項目 | 割引の制限 | 割引 | 優先順位
ズボン 2 本 | シャツ 1 枚 | 1 | 50% の割引 | 20

ユーザー バスケットの内容は、次のとおりです。

項目 | 単価 | 割引 | 調整済み価格
1 本目のズボン | 5,000 | 0 | 5,000
2 本目のズボン | 5,000 | 0 | 5,000
1 枚目のシャツ | 3,000 | 1,500 | 1,500
2 枚目のシャツ | 3,000 | 0 | 3,000
ベルト | 1,000 | 500 | 500
合計 | 17,000 | 2,000 | 1,5000

1 本目のズボンは、ベルトに対する 50% 割引の資格を得るために使われます。1 本目のズボンは、2 本目のズボンと共に、シャツに対する 50% 割引の資格を得るためにも使われます。したがって、1 本目のズボンは、2 つの割引の資格を得るために使われることになります。

この割引の条件が、他の割引の特典を受けられるようにする

この管理ポリシーを設定すると、買い物バスケット内の項目を使って特典を受ける資格を得た後、その項目を別の特典項目として再利用できるようになります。

次の例では、ズボンが最初の割引で条件の要素になっています。このズボンは、2 番目の割引では特典の要素です。最初の割引に[この割引の条件を、他の割引の条件でも使用できるようにする] ポリシーが設定されているので、バスケット内にあるズボン 1 本に 50% の割引が適用されます。

割引 1

条件項目 | 特典項目 | 割引 | 優先順位
ズボン 1 本を購入 | ベルト 1 本 | 50% の割引 | 20

割引 2

条件項目 | 特典項目 | 割引 | 優先順位
シャツ 2 枚を購入 | ズボン 1 本 | 50% の割引 | 20

ユーザー バスケットの内容は、次のとおりです。

項目 | 単価 | 割引 | 調整済み価格
1 本目のズボン | 5,000 | 2,500 | 2,500
1 枚目のシャツ | 3,000 | 0 | 3,000
2 枚目のシャツ | 3,000 | 0 | 3,000
ベルト | 1,000 | 500 | 500
合計 | 12,000 | 3,000 | 9,000

この割引の特典を、他の割引の条件でも使用できるようにする

この管理ポリシーを設定すると、買い物バスケット内にある特典を与えられた項目を、条件としても使用できるようになります。

次の例では、割引 1 でシャツが特典項目になっています。割引 2 では、このシャツは条件項目になっています。割引 1 に [この割引の条件を、他の割引の条件でもしようできるようにする] ポリシーが設定されているので、割引 2 が適用されます。このポリシーを設定しない場合、割引 2 は適用されません。既定の設定では、特典項目を条件項目として使用できないようになっているためです。

割引 1

条件項目 | 特典項目 | 割引 | 優先順位
ズボン 2 本 | シャツ 1 枚 | 50% の割引 | 10

割引 2

条件項目 | 特典項目 | 割引 | 優先順位
シャツ 1 枚を購入 | ベルト 1 本 | 50% の割引 | 20

ユーザー バスケットの内容は、次のとおりです。

項目 | 単価 | 割引 | 調整済み価格
1 本目のズボン | 5,000 | 0 | 5,000
2 本目のズボン | 5,000 | 0 | 5,000
1 枚目のシャツ | 3,000 | 1,500 | 1,500
ベルト | 1,000 | 500 | 500
合計 | 14,000 | 2,000 | 12,000

この割引の特典に加え、他の割引の特典も受けられるようにする

この割引ポリシーを設定すると、買い物バスケット内の 1 つの項目が複数の特典を受けられるようになり、同じ項目に対して複数の割引を使用できます。

次の例では、割引 1 に [この割引の特典に加え、他の割引きの特典も受けられるようにする] ポリシーが設定されているので、割引 1 と割引 2 の両方の割引がベルトに適用され、合計の割引は 50% (25% + 25%) になります。これらの割引が結合されて 1 つの割引になるのは、優先順位が "等しい" ためです。割引 1 に [この割引の条件を、他の割引の条件でも使用できるようにする] ポリシーが設定されているので、割引 2 が適用されます。このポリシーを設定しない場合、割引 2 は適用されません。既定の設定では、特典項目を条件項目として使用できないようになっているためです。

割引 1

条件項目 | 特典項目 | 割引 | 優先順位
ズボン 1 本を購入 | ベルト 1 本 | 25% の割引 | 10

割引 2

条件項目 | 特典項目 | 割引 | 優先順位
シャツ 1 枚を購入 | ベルト 1 本 | 25% の割引 | 10

ユーザー バスケットの内容は、次のとおりです。

項目 | 単価 | 割引 | 調整済み価格
ズボン 1 本 | 5,000 | 0 | 5,000
シャツ | 3,000 | 0 | 3,000
ベルト | 1,000 | 500 | 500
合計 | 9,000 | 500 | 8,500

関連項目

割引の例

割引の並べ替え

条件解除割引

割引を作成する


割引の並べ替え

ユーザー バスケットの中の特典項目が処理される順序によって、ユーザーが受ける割引額の合計が変わります。特典を最初に一致した最も高価な項目に適用すると、特典がユーザーにとって有利になります。既定の並べ替えを変更する場合は、サイト開発者に問い合わせてください。

注

  • バスケットの項目の割引条件が処理される順序も、ユーザーが受ける割引額の合計に影響を与えます。しかし、この並べ替えの順序は変更できません。

関連項目

複数の割引

割引の例


割引を処理する

割引コンテンツ選択フレームワーク (CSF) パイプラインは、注文割引パイプライン コンポーネントを使って、割引を処理します。ユーザーにとって最も適切な割引を設定するには、割引 CSF パイプラインを、また、買い物バスケットに割引を適用するには、バスケット パイプラインを使います。

  • "割引 CSF パイプライン" は、割引の開始日と終了日をチェックし、適用可能な割引の一覧のスコアを調整します。これにより、現在のユーザーに最も関連のある割引に最高の優先順位が与えられるようにします。
  • "注文割引パイプライン コンポーネント" は、まず利用可能な割引に必要条件を適用します。適用される割引に応じて、ユーザー プロファイルとコンテキスト プロファイルの情報を使って対象式を評価します。さらに、クリックが必要な割引の場合は、クリックされるすべての項目のキャンペーン項目 ID の一覧をチェックします。次に、注文パイプラインは条件と特典をテストしながら各項目を処理します。割引は、優先順位が最も高いものから適用されます。2 つの割引の優先順位が同じ場合は、優先順位以外のプロパティによって、割引が適用される順序が決まります。

関連項目

割引を作成する

キャンペーン式を作成する


注文レベルの割引を分配して適用する

払い戻しを正しく処理するためには、たとえ注文レベルの割引であっても、品目ごとに代金を計算する必要があります。Commerce Server 2002は、パーセンテージ割引と金額割引を商品ごとに分配して適用します。

たとえば、キャンペーンの管理担当者が、優待客に 10% の割引を提供することにしたとき、次のような注文があったとします。

  • 1 冊 2,500 円の本を 4 冊 = 10,000 円

割引を最終価格に対してだけ適用した場合、レシートは次のようになります。

項目 | 金額
書籍 1 | 2,500
書籍 2 | 2,500
書籍 3 | 2,500
書籍 4 | 2,500
小計 | 10,000
割引 | (1,000)
合計 | 9,000

この例では、最終的な価格 (10,000 円) に 10% の割引が適用されます。ユーザーが本 1 冊を返品した場合は、全額の 2,500 円が返金されます。しかし、ユーザーは本 1 冊ごとに 2,500 円は支払っていません。実際に支払う金額は 2,250 円です。

次の例は、同じ注文のすべての項目に適用される割引額を示しています。

項目 | 割引 | 金額
書籍 1 | 250 | 2,250
書籍 2 | 250 | 2,250
書籍 3 | 250 | 2,250
書籍 4 | 250 | 2,250
合計 | 1,000 | 9,000

この例では、各項目の調整済み価格が 2,250 円として記録されます。最終的な販売価格は、最終的な価格に割引を適用した場合と同じです。この例は、割引を適切に反映しています。ユーザーが本 1 冊を返品した場合でも、払い戻しが多くなることはありません。

パーセンテージ割引を分配して適用する

Commerce Server 2002 では、注文の項目ごとに分配してパーセンテージ割引が適用されます。パーセンテージ割引では、次のアルゴリズムが使われます。

PercentageDiscount = Round((ItemAdjustedPrice*DiscountFraction),0;

これは次と同じことを意味しています。

ItemAdjustedPrice*DiscountFraction の値を小数点以下桁数ゼロで丸めます。ここでのItemAdjustedPrice は、注文レベルの割引の前に適用された割引で調整済みの項目の価格です。

次の例は、2 つのパーセンテージ割引をユーザー バスケットに適用する方法を示しています。

 | 割引 1 | 割引 2
条件 | シャツ 1 枚を購入 | すべての商品
特典 | シャツが 30% 割引 | 10% の注文レベルの割引
条件解除割引 | [特典] および [対象] で指定した商品の両方に割引を適用する | [特典] で指定した商品のみ割引を適用する
特典を利用できる制限回数 | なし | なし
優先順位 | 10 | 20

次に、割引を適用する前のユーザー バスケットを示します。

ユーザー バスケット (割引適用前)

項目 | 数量 | 単価 | 割引 | 調整済み価格 | 合計
シャツ | 2 | 1,236 | 0 | 2,472 |
調整済みの注文小計 |  |  |  | 2,472 |

次に、最初の割引が適用された後のユーザー バスケットを示します。

ユーザー バスケット (割引 1 適用後)

項目 | 数量 | 単価 | 割引 | 調整済み価格 | 合計
シャツ | 2 | 1,236 | 742 | 1,730 |
調整済みの注文小計 |  |  |  | 1,730 (0.3*1,236) |

次に、割引 2 が適用された後のユーザー バスケットを示します。

ユーザー バスケット (割引 2 適用後)

項目 | 数量 | 単価 | 割引 | 調整済み価格 | 合計
シャツ | 2 | 1,236 | 915 (742+173) | 1,557 | 1,557
調整済みの注文小計 |  |  |  | 15,57 | 1,557

割引 2 が適用されるとき、最初の割引が適用される前の調整済み価格である 2,472 円ではなく、1,730 円 (最初の割引が適用された後の調整済み価格) に 10% の割引が適用されます。

注

  • この例では、パーセンテージ割引は小数点以下桁数ゼロで丸められています。

Commerce Server では注文の項目ごとに割引が適用され、パーセンテージ割引は小数点以下桁数ゼロで丸められるので、会計上の問題が生じる可能性があります。

丸めの問題によって調整済みの項目の価格が調整済み代金と等しくならない例を、次の注文レベルの割引で示します。

条件 : すべての商品

特典 : 15% の注文レベルの割引

注文レベルの割引が適用された後のユーザー バスケットを示します。

ユーザー バスケット

項目 | 数量 | 単価 | 割引 | 調整済み価格 | 合計
シャツ | 2 | 1,236 | 370.8 (371 に丸める) | 2,101 |
ズボン | 1 | 764 | 114.6 (115 に丸める) | 649 |
調整済みの注文小計 |  | 3,236 | 485.4 (485 に丸める) | 2,751 |

調整済み価格 (2,101+649=2,750) の合計が、調整済みの注文小計 (3,236-485=2,751) と等しくないことに注意してください。Commerce Server Software Development Kit (SDK) には、注文レベルのパーセンテージ割引を適用するコードが含まれています。このコードは、特定のビジネス ニーズに合わせて変更できます。

注文レベルの割引を適用するコードを変更する方法については、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Order Processing\OrderLevelDiscountComponents にある SDK の "BaseOrderDiscountEngine.cpp" を参照してください。

金額割引を分配して適用する

金額割引を分配して適用するには、各項目の割引金額を計算し、バスケット内のすべての項目に割引を適用します。金額割引では、次のアルゴリズムが使われます。

ItemDiscount = Truncate(((ItemAdjustedPrice/OrderAdjustedSubtotal)*DiscountAmount),0);

これは次と同じことを意味しています。

ItemAdjustedPrice/OrderAdjustedSubtotal の値を小数点以下桁数ゼロで切り捨てます。ここでのItemAdjustedPrice は、注文レベルの割引の前に適用された割引で調整済みの項目の価格です。OrderAdjustedSubtotal は、注文レベルの割引の後に適用された割引で調整済み注文の合計です。

注

  • 金額割引では、小数点以下桁数ゼロで切り捨てられます。

次に、金額割引がバスケット内の品目ごとに計算される例を示します。キャンペーンの管理担当者が、ユーザーに 2,500 円の割引を提供することにしたとき、次のような注文があったとします。

  • 3,000 円のシャツ 2 枚
  • 5,000 円のズボン 2 本
  • 1,000 円のベルト 1 本

次に、2,500 円の割引が適用される前のユーザー バスケットを示します。

ユーザー バスケット

項目 | 数量 | 単価 | 合計額
シャツ | 2 | 3,000 | 6,000
ズボン | 2 | 5,000 | 10,000
ベルト | 1 | 1,000 | 1,000
合計 |  |  | 17,000

次に、2,500 円の割引が適用された後のユーザー バスケットを示します。

ユーザー バスケット

項目 | 単価 | 割引 | 調整済み価格
1 枚目のシャツ | 3,000 | 441 | 2,559
2 枚目のシャツ | 3,000 | 441 | 2,559
1 本目のズボン | 5,000 | 735 | 4,265
2 本目のズボン | 5,000 | 735 | 4,265
ベルト | 1,000 | 147 | 852
合計 | 17,000 | 2,499 | 14,500

割引の合計が、注文の割引の合計 2,500 円ではなく、2,499 円であることに注意してください。

次に、丸めの問題を訂正する方法を 2 つ示します。

方法 1

方法 1 では、項目リストの最後に割引を適用する項目との差を追加します。

If (CurrentItem = LastItemThatCanReceiveADiscount)

If (TotalDiscountApplied < AwardAmount)

ItemDiscount = (AwardAmount – TotalDiscountApplied)

注

  • 値が切り捨てられているため、常に TotalDiscountApplied <=AwardAmount になります。

方法 2

方法 2 では、次の計算を行います。

  1. 小数点以下の桁数を基に、最低価格を算出します。たとえば、小数点以下の桁数が 0 (ゼロ) の場合、最低価格は 1 になります (通貨がドルなどで、小数点以下の桁数が 2 の場合、最低価格は 0.01 になります)。
  2. 最も高価な品目から、品目の割引に "最低価格" を追加します。2 つの品目が同じ "最高価格" である場合は、バスケット内の順番が先のほうの品目の割引に適用します。
  3. この値を割引誤差から引きます。
  4. 手順 2. と3. を、割引誤差がゼロ (0) になるまで繰り返します。

次に、方法 1 を使って 2,500 円の割引を適用する方法を示します。

  • 3,000 円のシャツ 2 枚
  • 5,000 円のズボン 2 本
  • 1,000 円のベルト 1 本

ユーザー バスケット

項目 | 単価 | 割引 | 調整済み価格
1 枚目のシャツ | 3,000 | 441 | 2,559
2 枚目のシャツ | 3,000 | 441 | 2,559
1 本目のズボン | 5,000 | 735 | 4,265
2 本目のズボン | 5,000 | 735 | 4,265
ベルト | 1,000 | 148 | 852
合計 | 17,000 | 2,500 | 14,500

上の例では、ベルトは割引を受けることができる最後の項目です。したがって、1 (割引誤差) がベルトの割引特典 148 (147+1) に追加され、注文の割引合計が 2,500 円になります。

さらに、方法 1 を使って金額割引を適用する例を示します。

  • 対象 : すべての商品
  • 特典 : 500 円の注文レベルの割引

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 249 | 501
2 | 項目 1 | 750 | 249 | 501
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 498 | 1,003

この例では、割引の合計が、注文の割引の合計 500 円ではなく、498 円であることに注意してください。

次に、方法 1 を使って 上の例の割引を適用する方法を示します。

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 249 | 501
2 | 項目 1 | 750 | 251 | 499
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 500 | 1,001

上の例では、バスケット内の順番が 2 の項目 1 が、割引を受けることができる最後の項目です (項目 3 は単価が 1 円のため、2 円の割引ができません)。したがって、2 (割引誤差) がバスケット内の順番が 2 の項目 1 の合計 251 に追加され、注文の割引合計が500 円になります。

次に方法 1 を使った推論を示します。

  • バスケット内の順番 1 および 2 は同じ項目番号を含みます (単価も同じ)。しかし、割引は異なります。
  • 項目 3 に割引は適用されません。
  • 項目 1 と項目 2 は単価が同じため、項目 1 が返品された場合、ユーザーに 501 円と 499 円のどちらを払い戻すか?

次に、方法 2 を使って 上の例の割引を適用する方法を示します。

ユーザー バスケット

バスケット内の順番 | 項目 | 単価 | 割引 | 調整済み価格
1 | 項目 1 | 750 | 250 | 500
2 | 項目 1 | 750 | 250 | 500
3 | 項目 3 | 1 | 0 | 1
合計 |  | 1,501 | 500 | 1,001

各項目の調整済み価格は記録され、ユーザーは 500 円の払い戻しを受けます。バスケット内の順番が 1 および 2 は、同じ割引を受けます。これによって、どちらかの項目が返品されても、両方の項目の払い戻しは同じになります。

注

  • 上の例では、割引の適用に OrderDiscountApply パイプライン コンポーネントが使われます。OrderDiscountApply コンポーネントの詳細については、Commerce Server 2002 Help Programmer’s Reference の "OrderDiscount" トピックを参照してください。

関連項目

割引を処理する

割引のコンポーネント

割引を作成する


多言語に対応可能な割引

割引を複数の言語で利用する場合は、言語ごとに割引を作成し直す必要があります。割引の作成については、「割引を作成する」を参照してください。

注

  • 割引を複数の言語で作成するときは、割引名に50 文字のサイズ制限があることに注意してください。

関連項目

割引を作成する

割引の例


ユーザー リストとメーリング リスト

Commerce Server ビジネス デスクのリスト マネージャ モジュールを使って、ユーザー リストとメーリング リストのインポートとエクスポートを行います。リスト マネージャで取り扱うリストは、特定の形式になっている必要があります。メーリング リストの形式については、「メーリング リスト」を参照してください。ユーザー リストの形式については、「ユーザー リスト」を参照してください。

  • リストをリスト マネージャに追加するまた、SQL Server (SQL テーブルを作成する場合)、メモ帳 (ASCII テキスト ファイルを作成する場合)、Microsoft Excel (スプレッドシートを作成する場合)、Microsoft Outlook (アドレスのリストを含む .pst ファイルをエクスポートする場合) など、他のアプリケーションで作成したリストも、リスト マネージャにインポートできます。

    たとえば、アドレスのリストが Microsoft Excel のスプレッドシートにある場合は、リスト マネージャを使ってビジネス デスクにインポートし、ダイレクト メール キャンペーンで使用できます。メーリング リストの作成については、「メーリング リストを作成する」を参照してください。

    リスト マネージャにリストをインポートする方法については、「リストをインポートおよびエクスポートする」を参照してください。

  • リスト マネージャからリストを使うリスト マネージャ モジュールのユーザー リストを使って、ユーザー プロファイルを更新できます。次に、ユーザー モジュールでユーザー プロファイルのプロファイル プロパティに特定の値を割り当てて、リストのユーザー プロファイルを更新します。その値を使って、変更したプロファイルを持つユーザーを、特定の広告または割引キャンペーンの対象に指定します。ユーザー モジュールへのリストのインポートについては、「メーリング リスト内のユーザー プロファイルを検索する」を参照してください。複数のユーザー プロファイルを変更する方法については、「複数のユーザー プロファイルを編集する」を参照してください。

    また、リストを他のアプリケーションにエクスポートすることもできます。ファイルへのリストのエクスポートについては、「リストをインポートおよびエクスポートする」を参照してください。

ここでは、次のトピックについて説明します。

  • メーリング リスト
  • ユーザー リスト
  • 汎用リスト
  • 動的リストと静的リスト


メーリング リスト

メーリング リストには、ダイレクト メール キャンペーン用の電子メール アドレスが列挙されます。リストの各行に受信者が 1 人ずつ記載され、次の要素がコンマ区切り形式で並べられます。

要素 | 説明
電子メール アドレス | 名前または名前@ドメイン。
GUID | グローバル一意識別子。パーソナライズされたメール メッセージにコンテンツを提供するときに使用するユーザー ID です。
メッセージ形式 Collaboration Data Object (CDO) が結果をどのメッセージ形式に変換するかを制御します。次の値がサポートされています。
  • Text (1)
  • MIME (2)
  • MHTML (3)

メッセージ形式については、「メッセージ形式」を参照してください。
言語 | コード ページの値は、US-ASCII および ISO-8859-1 などのダイレクト メール リストで使われます。
URL | ユーザーごとに個々の URL を CDO に渡すことができます。

リストは、メモ帳などのテキスト エディタを使って作成できます。リスト マネージャ モジュールを使って、ASCII テキスト ファイル、Microsoft Excel や Microsoft Outlook のファイル、または SQL Server データベースのテーブルをインポートすると、ビジネス デスクにメーリング リストを追加できます。メーリング リストの作成については、「メーリング リストを作成する」を参照してください。

ダイレクト メール キャンペーン用のメーリング リストをインポートする方法については、「メーリング リストをインポートする」を参照してください。

関連項目

メーリング リストを作成する

メーリング リストをインポートする

ユーザー レコード リストを管理する

ユーザー リスト

汎用リスト


ユーザー リスト

ユーザー リストには、ユーザー ID と、必要に応じてその他のユーザー プロファイル プロパティが列挙されます。ユーザー リストは、rcp_guid 列を持つリストです。リスト マネージャ モジュールからユーザー モジュールにユーザー リストをエクスポートすることで、特定のユーザーのプロパティに対する一括更新を実行できます。

関連項目

メーリング リストを作成する

メーリング リストをインポートする

メーリング リスト内のユーザー プロファイルを検索する

リストをインポートおよびエクスポートする

ユーザー レコード リストを管理する

汎用リスト


汎用リスト

ユーザー リストやメーリング リストと異なり、汎用リストに内容の要件はありません。汎用リストを使うには、サイト開発者がアプリケーションをカスタマイズする必要があります。

汎用リストには、任意の情報を入れることができるほか、次の例に示すようにヘッダーを含めることができます。

商品 ID | ProductName | Unit
1 | 靴下 | 100
2 | シャツ | 20

汎用リストは、商品プロパティを設定する場合などに使います。Commerce Server の商品別売り上げレポートを実行し、Web サイトで最も人気のある商品 (売上高の点で) を特定します。次に、リスト マネージャ モジュールを使って、このレポートの結果を商品のリストとしてインポートし、カタログ エディタ モジュールを使って、これらが売れ筋商品であることを示すプロパティを設定します。このプロパティを使って、対象式を作成したり、売れ筋商品の価格を 5% 割り増しすることができます。

関連項目

メーリング リスト

ユーザー リスト

リストをインポートおよびエクスポートする

ユーザー レコード リストを管理する


動的リストと静的リスト

ユーザー リスト、メーリング リスト、および汎用リストは、動的または静的のどちらかになります。

  • "動的リスト" は、実行時に作成されます。たとえば、ダイレクト メール キャンペーンで使うリストを、リスト マネージャからエクスポートするときに作成されます。リストが要求されるたびに、リスト マネージャはデータ ウェアハウスにある最新データを収集します。リスト マネージャが使用するデータベースには、リストの作成に必要な情報だけが格納されます。動的リストは、頻繁に実行するダイレクト メール キャンペーンや、頻繁に更新される受信者のリストに使います。
  • "静的リスト" は、要求に応じて直ちに作成され、リスト マネージャが使用するデータベースに格納されます。静的リストは、まれに実行するダイレクト メール キャンペーンや、あまり変更されない受信者のリストに使います。

関連項目

リストをインポートおよびエクスポートする

ユーザー レコード リストを管理する

メーリング リストを作成する


ダイレクト メール

ダイレクト メールを作成し、対象となるユーザー グループに電子メール メッセージの広告を配信します。配信したメールから高い応答率を得ることが目的となります。Web ページからパーソナライズされた電子メール メッセージを送ることも、フラット テキスト ファイルからパーソナライズされていないメッセージを送ることもできます。写真、割引、URL などの添付ファイルを含むダイレクト メール メッセージを作成できます。ダイレクト メール サービスは、パーソナライズされた電子メール メッセージを大量のユーザーに一括送信するように設計されています。

ダイレクト メールを設定するには、ビジネス デスクのキャンペーン マネージャ モジュールを使用します。ダイレクト メールは、大量の電子メールを高速に送信できる強力なエンジンである、ダイレクト メーラー サービスによって処理されます。

ダイレクト メールを作成するには、次の操作を行います。

  • メッセージを作成する パーソナライズされた電子メール メッセージを作成するには、まずサイト開発者がパーソナライズされたテキストを含む ASP ページを作成し、Web サーバーに追加する必要があります。サイト開発者は、ASP ページの場所の URL をビジネス デスクのユーザーに知らせる必要があります。パーソナライズされていないメッセージを作成するには、メモ帳などのテキスト エディタを使って、テキストをフラット テキスト ファイルに入力します。
  • 受信者のリストを生成する Commerce Server の強力な分析ツールを使って、ダイレクト メール キャンペーンの受信者のリストを生成できます。たとえば、ビジネス デスクのレポート モジュールを使うと、データ ウェアハウスのデータに対してレポートを実行し、特定のユーザーのリストを取得できます。次に、取得したリストをリスト マネージャにエクスポートできます。リスト マネージャにエクスポートしたリストは、ダイレクト メーラーで利用できます。

    対象グループを使って、ユーザーの電子メール アドレスにダイレクト メールを直接送信することはできません。

  • ダイレクト メール キャンペーンを作成し、スケジュールを設定する キャンペーン マネージャ モジュールを使って、キャンペーンの名前、受信者のリストの名前、キャンペーン項目の開始時刻と日付、およびダイレクト メーラーがメッセージ本文を取得する URL (パーソナライズされたメッセージの場合) または静的ファイルを指定します。

ダイレクト メールを追加する方法の詳細については、「ダイレクト メールを作成する」を参照してください。

ここでは、次のトピックについて説明します。

  • メッセージ形式
  • 脱退リスト
  • ダイレクト メールを処理する


メッセージ形式

ダイレクト メール メッセージの内容 (コンテンツ) を作成する方法は、いくつかあります。メッセージ形式は、Collaboration Data Object (CDO) が結果をどのメッセージ形式に変換するかを制御します。ダイレクト メーラーは、テキスト、MIME、MHTML の 3 種類のメッセージ形式をサポートします。

  • テキストメールの形式を ASCII 形式に設定します。
  • MIME (Multipurpose Internet Mail Extensions)インターネットの公式標準です。異なる電子メール システムでやりとりができるように、メッセージを設定する方法を指定します。MIME は柔軟性のある形式です。Simple Mail Transfer Protocol (SMTP) を拡張して、ビデオ、サウンド、バイナリ ファイルなどのデータを ASCII 形式に変換せずに、インターネットの電子メールで送信できます。
  • MHTML (MIME Encapsulation of Aggregate HTML Documents)Web ページの一部分、または Web ページ全体をメッセージとして送信します。メッセージには、HTML 書式、画像、および元の Web ページに含まれるその他の要素のすべて、または一部を含めることができます。
HTML 文書の通信をより柔軟にするため、MHTML は MIME 上に構築されます。メッセージには MIME の複数部分、または関連する本文部分にある、その他のリンクされている文書を含めることができます。HTML 内にある他の部分へのリンクは、CID (Content-ID) URL またはその他すべての種類の URL によって提供されます。リンクされている本文部分は、Content-ID (CID URL によりリンクされている) または Content-Location (その他すべての種類の URL によりリンクされている) のどちらかによって、見出しに指定されています。

ダイレクト メーラー サービスで電子メールを MHTML 形式にしない場合や、電子メールを変更せずにASP ページの外部へ、厳密に HTML を送信する場合は、<ドライブ名>:\Program Files\Microsoft Commerce Server 2002 にある DMLPipe.pcf ファイルの "電子メール作成" ステージの Direct Mailer ComposeDMLMessage コンポーネントを参照してください。メッセージ本文の形式の設定は、Compose CMLMessage コンポーネントで行います。

次の図は、次の ASP ページの HTML コンテンツの場合の、3 種類のメッセージ形式 (テキスト、MIME、および MHTML) の電子メール メッセージを示しています。

<html>

<body>

<h1>SPRING SALE !!!</h1>

<img src=http://<server name>/SKY.JPG height=100 width=100 />

</body>

</html>

次の図に、テキスト メッセージ形式を使って送信されたメッセージを示します。すべての HTML オブジェクト を除外し、テキスト メッセージのみを送信します。

注

次の図は、Outlook Express の画面です。その他の電子メール クライアントでは、表示が異なります。

次の図に、MIME メッセージ形式を使って送信されたメッセージを示します。MIME 形式で HTML オブジェクトをエンコードし、ASP ページの場所から SKY.jpg イメージを取得して、添付ファイルとして追加します。メッセージには、テキスト メッセージだけが含まれています。

次の図に、MHTML メッセージ形式を使って送信されたメッセージを示します。MHTML 形式のイメージとして HTML オブジェクトをエンコードし、ASP ページの場所から SKY.jpg イメージを取得します。イメージを SRC 属性に内部的にリンクするため、BASE-64 でイメージをエンコードし、イメージを CID に渡します。

重要

  • 3 つのメッセージ形式 (テキスト、MIME、および MHTML) は、ビジネス デスクで利用できます。ダイレクト メール キャンペーンを既定値で作成し、ユーザー固有の電子メールの書式が NULL のときだけ使う場合のみ、メッセージ形式を利用できます。メーリング リストを作成、またはインポートしたときに、ユーザー固有の電子メール書式が指定された場合、ダイレクト メールの送信時にはユーザー固有の書式が使われます。

関連項目

キャンペーンについて

ダイレクト メール

ダイレクト メールを作成する

ダイレクト メールのプロパティを追加する

ユーザー レコード リストを管理する


脱退リスト

ダイレクト メーラーは、脱退機能をサポートしています。キャンペーン項目の一部として実行されるダイレクト メール ジョブでは、個々の受信者がダイレクト メール キャンペーン項目からの脱退を要求できます。脱退 Active Server Pages (ASP) ページは、ユーザーが自分自身を脱退リストに追加できるように設計されています。

サンプルの脱退 ASP ページは、サンプルの ServiceReminder ASP ページと共に使用します。後者は、ダイレクト メーラー コンテンツを作成するためのページです。この ASP ページを実装すると、各ユーザーに宛てて、Web サイトを訪れて新商品を見るように促すパーソナライズされた電子メール メッセージが送信されます。この ASP ページには、ユーザーがメーリング リストから脱退する場合に備えて、脱退リンクも含まれています。

ダイレクト メーラー ジョブ向けの ASP ページを作成する開発者であれば、opt-out.asp ページへのリンクを配置できます。これにより、受信者は、該当するリンクをクリックすることで、すべてのサイト メールまたはダイレクト メール キャンペーン項目から脱退できるようになります。キャンペーン項目の一部として実行されるダイレクト メーラー ジョブが実行されると、ダイレクト メーラーはサイト レベルの脱退リストとキャンペーン項目レベルの脱退リストが存在するかどうかを調べます。両方の脱退リストが存在していれば、これらの脱退リストが元のメーリング リストから削除され、削除後のリストが新しいメーリング リストとして機能します。

関連項目

キャンペーンについて

ダイレクト メール

ダイレクト メールを作成する


ダイレクト メールを処理する

ダイレクト メーラーでは、コマンド ライン インターフェイスを使って、ダイレクト メーラー ジョブの作成、実行、監視、および削除を行ったり、ジョブの開始と回復を行います。ダイレクト メーラーに関するプロパティを構成するには、Commerce Server マネージャを使います。

ダイレクト メーラーでは、次の作業を行います。

  • 受信者への電子メール メッセージの送信。
  • ダイレクト メーラー ジョブとして繰り返し送信する電子メール メッセージの管理。
  • フラット テキスト ファイルを元にしたパーソナライズされていないメッセージ本文の準備。
  • ASP ページからのパーソナライズされたメッセージの生成。
  • 電子メール メッセージ ヘッダーの書式設定。
  • コードページ値 (US-ASCII、ISO-8859-1 など、ダイレクト メール リストで使われる値) の設定と、メッセージ本文の正しいメッセージ形式への変換。形式には、テキスト、Multipurpose Internet Mail Extensions (MIME)、または MIME Encapsulation of Aggregate HTML Documents (MHTML) があります。
  • 電子メール メッセージの送信先である受信者の大規模なリストの高速処理。
  • ファイル添付の有効化。

ダイレクト メーラー パイプラインは、受信者のリストを処理するために使われます。パイプラインに新しいコンポーネントを追加したり、コンポーネントを基幹業務システムに統合したり、そのコンポーネントをサード パーティが供給するコンポーネントと交換することができます。

関連項目

キャンペーンについて

ダイレクト メール

ダイレクト メールを作成する

ユーザー レコード リストを管理する


対象化とパーソナライズ

対象化とパーソナライズは、パーソナライズされたコンテンツを 1 人または複数のユーザー、あるいはプロファイルを持つその他のビジネス エンティティに配信する処理です。たとえば、スポーツに関する Web サイトを運用している場合、テニス関連の情報を、テニス プレーヤーのみに配信したり、テニスに興味がある人に配信することができます。近日開催されるテニス トーナメントに関する発表や、テニス商品の広告と宣伝を配信することもできます。

    Commerce Server 2002 では、式に基づく対象化が可能です。これは明示対象化とも呼ばれます。式に基づく対象化は、配信対象となるユーザーのプロファイル プロパティがわかっている場合、またはコンテキストがわかっている場合で、配信するコンテンツが明確なときに使われます。

    Commerce Server ビジネス デスクのキャンペーン モジュールを使ってこの情報を指定し、ユーザーにコンテンツを配信します。式に基づく対象化を使った場合、受信するユーザーの興味を引くコンテンツを配信できる可能性が高まります。パーソナライズされたコンテンツを期待できる場合、ユーザーが再びサイトを訪問する確率が上がります。

    ここでは、次のトピックについて説明します。

    • Web サイトの管理に対象化を使う
    • 式に基づく対象化
    • 式ビルダ
    • 式を処理する


Web サイトの管理に対象化を使う

プロファイルを持つビジネス関連の項目に合わせて、コンテンツを対象化できます。たとえば、匿名ユーザー、登録済みユーザー、企業、またはコンテキストに合わせて、コンテンツを対象化できます。プロファイルの概念については、「プロファイルについて」を参照してください。

ビジネス関連の項目に合わせてコンテンツを対象化するには、ビジネス デスクを使います。たとえば、次の作業を行うことができます。

  • ユーザーにパーソナライズされた電子メール メッセージを配信するためのダイレクト メール キャンペーンを作成する。
  • 特定のユーザー プロファイル プロパティに基づいて、ユーザーに広告などのコンテンツを配信する。たとえば、"好きなスポーツ" プロパティが "自転車" に設定されているユーザーに、自転車の広告を表示します。
  • Web ページのグループを特定し、それらのページにのみ、または特定のプロパティを持つユーザーがそれらのページにアクセスした場合にのみ表示されるようにコンテンツを対象化する。
  • ページ上の他のコンテンツのプロパティに基づいて、ページにコンテンツを表示する。たとえば、Web サイトでニュースを提供する場合、Weather_Type プロパティが "Hot" か "Cold" かを指定して、コンテンツにプロファイルを割り当てます。Weather_Type = Hot (気候 = 暑い) の場合、エアコンの広告を表示できます。
  • 商品自体の特性やユーザー プロファイルに基づいて、カタログの特定の商品に割引を適用する。
  • 割引を表示する時期、および注文に割引を適用する時期を選択する。たとえば、ユーザーが項目をバスケットに入れたとき、または支払うときに、割引を適用できます。

関連項目

式に基づく対象化

式ビルダ

式を処理する


式に基づく対象化

式に基づく対象化は、対象化するユーザーまたはコンテキスト、および配信するコンテンツを定義する式を作成する処理です。"式" とは、プロファイルに対して評価される条件で、コンテンツを配信するか、またはその他のアクションを実行するかを決定します。たとえば、user.totalvisit > 100 (ユーザーの訪問回数の合計 > 100 回) という式があるとします。この式の評価結果が True の場合、ユーザーに対して該当するコンテンツが表示されます。

ビジネス デスクのキャンペーン モジュールを使って式を作成し、式を評価した後に実行するアクションに式を結合します。次の 2 種類の式を作成できます。

  • 対象式 どこで、いつ、だれにコンテンツを表示するかを特定します。たとえば、特定のプロファイル プロパティを持つユーザーをコンテンツの対象に設定できます。また、"ページ グループ" と呼ばれる、Web サイトの特定のセクションをコンテンツの対象に設定することもできます。たとえば、スポーツのページにのみ特定の広告を表示する対象式を作成できます。
  • カタログ式 割引を適用できるカタログの商品を指定します。たとえば、Product.price = 2000 (商品の値段 = 2,000 円) というカタログ式を作成します。この式の評価結果が特定の商品で True の場合、ユーザーが買い物バスケットにその商品を追加すると、商品の価格に 10% の割引が適用されます。

対象グループ

対象式を作成した後で、それらを結合して対象グループを形成できます。"対象グループ" は、式とアクションの集合です。たとえば、サイトを 10 回訪問したユーザーに特定のコンテンツを表示する式と、サッカー シャツを購入したユーザーにコンテンツを表示する式を作成します。これら 2 つの式を AND または OR ステートメントで結合し、対象グループにします。次に例を示します。

ユーザーがサイトを 10 回訪問し、かつ (AND)、そのユーザーがサッカー シャツを購入した場合、サッカーの商品を表示する。

対象グループでは、各式の評価結果が True になったときに実行する "アクション" を指定して、式を結合します。各アクションにはそれぞれ 2 つの乗数があります。式が True の場合に適用する乗数と、式が False の場合に適用する乗数です。乗数が適用されると、式にはスコアが与えられ、コンテンツの配信が有効かどうかに影響します。次のアクションを指定できます。

  • 対象 式の評価結果が True の場合、スコアは増加し、コンテンツが表示される確率も上がります。式の評価結果が False の場合、スコアは変わりません。いずれの場合でも、コンテンツの配信は有効です。
  • 適用 式の評価結果が True の場合、コンテンツの配信は有効です。False の場合、コンテンツの配信は無効です。
  • 除外 式の評価結果が True の場合、コンテンツの配信は無効です。False の場合、コンテンツの配信は有効です。
  • スポンサー 式の評価結果が True の場合、コンテンツの配信は有効です。他のコンテンツは、同じ action = Sponsor (アクション = スポンサー) の式がない限り無効です (スポンサーの乗数は 1 つだけです)。たとえば、Microsoft がホーム ページの広告のスポンサーである場合は、Microsoft の広告だけが表示されます。ただし、他にもそのホーム ページのスポンサー企業の広告がある場合は、それらの広告の表示も有効になります。

サイト開発者は、Commerce Server に用意されている乗数の値を変更できます。あるアクション タイプが設定された式の優先順位を、他のアクション タイプが設定された式より高くする場合などに、この値を変更します。

関連項目

Web サイトの管理に対象化を使う

式ビルダ

式を処理する


式ビルダ

ビジネス マネージャによる式の作成、編集、および表示を可能にする Commerce Server の機能を、"式ビルダ" といいます。式ビルダは、式を構築するためのユーザー インターフェイスを提供します。式ビルダは、式を構築するための適切なプロパティにアクセスし、式に名前を付け、Commerce Server データベースに格納します。

式ビルダは、サイト開発者が、その機能やユーザー インターフェイスを他のビジネス デスク モジュールに簡単に組み込めるように設計されています。また、式ビルダは、式を使用したり操作する任意の Web アプリケーションから呼び出せるため、他の処理と統合できます。たとえば、既存のコンテンツ管理処理がある場合、式ビルダの機能を組み込んで、ユーザーに合わせてコンテンツを対象化できます。

式ビルダを使用するアプリケーションを作成するには、次の操作を行います。

  • プロファイルの定義 式が使うプロファイルを指定します。式ビルダは、これらのプロファイル定義を読み込んで式を構築します。プロファイル プロパティ フィルタを指定して、式ビルダのユーザーが利用できるプロファイルのプロパティを制限することもできます。
  • 式の保存 使用する式ストアまたはプロファイル ストアを指定できます。式ビルダは、このデータベースに式を読み込んで保存します。
  • ユーザーに対するメッセージの表示 式ビルダのユーザー インターフェイスに表示されるメッセージをカスタマイズできます。たとえば、独自のメッセージとして [広告の対象式を作成します] に変更できます。

式ビルダはユーザー インターフェイスに Dynamic Hypertext Markup Language (DHTML) を使うため、アプリケーションのスタイル シートが式ビルダのユーザー インターフェイスに適用され、アプリケーションの外観が一貫したものになります。

関連項目

式に基づく対象化

Web サイトの管理に対象化を使う

式を処理する


式を処理する

Commerce Server は、いくつかの処理を実行して、ユーザーに対して表示するコンテンツを指定します。この処理では、次のコンポーネントが使われます。

  • 式エバリュエータ この Component Object Model (COM) オブジェクトは、式とユーザー データを入力すると、式を処理して評価結果が True と False のいずれになるかを決定します。
  • コンテンツ選択フレームワーク (CSF) このプラットフォーム レベルのフレームワークには、式の結果として実行されるアクションを決定する一連のコンポーネントとパイプライン (コンテンツ選択パイプラインとイベント処理パイプライン) が含まれます。

次の図は、対象式、カタログ式、ユーザー データ、およびコンテキスト データが式エバリュエータに入力され、その結果が True、False、または未定義になるしくみを示しています。結果は CSF に入力され、CSF は実行するアクションを決定します。

対象式、カタログ式、ユーザー データ、およびコンテキスト データが式エバリュエータに入力されるしくみを示す図

関連項目

プロファイルについて

キャンペーン式を作成する

カタログ式を作成する

対象式を作成する

対象グループを作成する


キャンペーンに関するヒントとテクニック

ここでは、キャンペーンの作成と管理に関する推奨事項とヒントを紹介します。

ここでは、次のトピックについて説明します。

  • キャンペーンに関するヒント集
  • キャンペーンに関するテクニック


キャンペーンに関するヒント集

キャンペーンの作成と管理に関する推奨事項を次に示します。

広告に関するヒント集

割引に関するヒント集

広告に関するヒント集

  • コンテンツ選択フレームワーク (CSF) の既定の設定を使う。

    ビジネス ポリシーによる変更が必要な場合を除き、CSF コンポーネントの既定の設定を変更しないでください。

  • できるだけ、対象式の代わりにページ グループを使う。

    式の評価は、ページ グループの削除よりも長い時間がかかります。

割引に関するヒント集

  • サイト上の各割引に、それぞれ異なる優先順位を設定する。

    ビジネス マネージャは、サイト上の各割引にそれぞれ異なる優先順位を設定することによって、所定の割引がいつ適用されるかを決定できます。同じ優先順位を持つ割引が複数ある場合は、システムの内部アルゴリズムが使用され、どの割引が適用されるかが決まります。アルゴリズムによる処理の結果には一貫性がありますが、結果は簡単には予測できず、ビジネス マネージャが要求するものとは異なる場合があります。

  • 割引を作成する前に、結果を判断する。

    割引を作成する前に、その割引の結果を理解することが重要です。割引の作成処理は複雑で、適用した結果は、優先順位、条件、特典、割引管理ポリシーなどの割引コンポーネントによって異なります。

  • 割引をサイトで実行する前に、割引のマニュアルを十分に読む。
  • 割引を運用サーバーに導入する前に、準備サーバーで確認する。

    割引のシナリオは無数にあり、ユーザーがどの商品をバスケットに入れるのかも予測はつかないため、独自の割引を運用サイトに導入する前に、その割引を準備環境のサーバー上に作成して、独自の割引シナリオをテストしておくことをお勧めします。

  • すべての割引 (orderform)._discounts を注文フォームの一部として保存することは避ける。

    ContentList オブジェクトは、大量のシリアル化に対応するように設計されていません。そのため、すべての割引 (orderform)._discounts を注文フォームの一部として保存すると、パフォーマンスが低下することがあります。


キャンペーンに関するテクニック

キャンペーンの作成と管理に関するテクニックを次に示します。

ダイレクト メール キャンペーンに関するテクニック

広告に関するテクニック

キャンペーン式に関するテクニック

割引に関するテクニック

リストのインポートとエクスポートに関するテクニック

キャンペーンの発行に関するテクニック

ダイレクト メール キャンペーンに関するテクニック

  • ダイレクト メール キャンペーンを作成する前に、必ず SQL Server Agent を実行しておく。

    SQL Server Agent が動作していない場合は、ダイレクト メール キャンペーンを保存できません。SQL Server Agent を実行する方法については、システム管理者に問い合わせてください。

  • スケジュールが設定されたダイレクト メーラー ジョブの実行中に SQL Server Agent が停止すると、ダイレクト メーラー ジョブは実行を停止し、再開できなくなる。

    スケジュールが設定されたジョブがこの状態で停止すると、ジョブの失敗を示すメッセージは表示されません。SQL Server Agent を再開した後、ダイレクト メーラー ジョブを再起動する必要があります。

広告に関するテクニック

  • 広告の対象となるページ グループを指定する前に、サイト開発者がページでの広告表示を有効にする必要がある。

    ページでの広告表示を有効にする方法については、Commerce Server 2002 Software Development Kit の Ad Sitelet サンプルを参照してください。

キャンペーン式に関するテクニック

  • キャンペーン式では、セミコロン (;) を使って値を区切る。

    コンマ (,) は使わないでください。コンマは区切り文字として認識されません。たとえば、数値のリストであれば「2,534; 3,485; 6,982」のように入力します。セミコロン自体を入力するためのエスケープ文字は、円記号 (\) です。たとえば、ABC;12 という値は「ABC\;12」と入力します。

割引に関するテクニック

  • 複数のバスケットを調査対象にして、ユーザーが受けることのできる特典の数を制限する場合は、サイト開発者に問い合わせる。

リストのインポートとエクスポートに関するテクニック

  • インポートまたはエクスポートするファイルのパス (<ドライブ名>:\<ファイル名> など) を指定するときの <ドライブ名> は、サーバー コンピュータのドライブ名を指す。クライアント コンピュータのドライブ名ではない。
  • ファイルにエクスポートできるのは、メーラブル リスト (rcp_email 列のあるリスト) のみ。
  • リストのエクスポートに失敗した場合は、ビジネス デスク サーバー コンピュータ上でイベント ログを調べる。

    イベント ログには、失敗に関する詳細な情報が一覧表示されます。詳細については、システム管理者に問い合わせてください。

  • コンマ区切り値 (CSV) ファイルにエクスポートしたリストに含まれるレコードを並べ替えたり検索したりするには、並べ替え機能や検索機能を持つアプリケーションでファイルを開く

キャンペーンの発行に関するテクニック

  • 必要なアクセス許可を持っていない場合やデータベースへの接続に問題がある場合には、サイトは更新されず、新しいキャンペーン項目は追加されない。

    また、キャンペーンの発行には BDRefresh.asp という ASP が必要になります。このページは、各 Web サーバー上で、サイトのルート ディレクトリに置いておく必要があります。サイトを更新できない場合は、システム管理者に問い合わせてください。


参照テーブルを設定する

参照テーブルを設定すると、ビジネス モデルを正確に反映できます。参照テーブルには、有効な広告業種コード、ページ グループ、およびコンテンツ サイズが格納されます。キャンペーン項目で使用するページ グループが参照テーブルのページ グループと一致しない場合、このキャンペーン項目は運用サイトに表示されません。

Commerce Server 2002 で用意されている以外の業種コード、ページ グループ、およびコンテンツ サイズを追加するには、参照テーブル モジュールを使います。使用しない業種コード、ページ グループ、およびコンテンツ サイズを削除することもできます。

ここでは、次のトピックについて説明します。

  • コンテンツ サイズを指定する
  • 業種コードを追加する
  • ページ グループを追加する


コンテンツ サイズを指定する

キャンペーン項目のコンテンツ サイズは指定できます。Commerce Server 2002 では、既定のコンテンツ サイズがいくつか用意されています。これらのコンテンツ サイズは、Internet Advertising Bureau (IAB) の Standards and Practices Committee によって承認された、一般的に使われるサイズのリストに基づいています。コンテンツ サイズは、参照テーブル モジュールの [コンテンツ サイズ] セクションで確認します。

参照テーブルのコンテンツ サイズは、キャンペーン項目のコンテンツ サイズを選択するときに利用できます。定義済みのサイズは、どれでも表示、編集、および削除できます。必要に応じて新しいコンテンツ サイズを作成することもできます。

コンテンツ サイズを指定するには

  1. [キャンペーン] の [参照テーブル] をクリックします。
  2. [参照テーブル] 画面の [コンテンツ サイズ] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [タグ] タグの名前を入力します。

    タグは、ページのコンテンツ要求に渡されるパラメータ値で、文書の一部または全体をどのように書式設定するかを指定します。
    [名前] | 新しいコンテンツ サイズの名前を入力します。
    [幅] | コンテンツ サイズの幅 (ピクセル数) を入力します。
    [高さ] | コンテンツ サイズの高さ (ピクセル数) を入力します。
  3. [確認] をクリックします。

    コンテンツ サイズの一覧に新しいコンテンツ サイズが追加されます。一覧では、[タグ] ボックスに入力したコンテンツ サイズの名前がアルファベット順で表示されます。

  4. 新しいコンテンツ サイズを保存して [ビジネス デスクへようこそ] 画面に戻るには、ツール バーの 保存してメイン メニューに戻る をクリックします。

新しいコンテンツ サイズが保存され、キャンペーン項目のコンテンツ サイズを選択するときに利用可能になります。

関連項目

広告のサイズを指定する

割引のサイズを指定する

広告を作成する

割引を作成する

コンテンツ サイズを指定する

広告の表示を指定する


業種コードを追加する

業種コードは、業種 (自動車、航空、飲料など) を定義するときに使います。業種コードを使うと、広告に関連付けられている業種を特定できるため、同じ業種で競合している複数の企業の広告が同じページに表示されないようにすることができます。また、業種コードを更新することもできます。たとえば、コーヒーとソフト ドリンクの飲料コードを追加すると、種類の異なる飲料の広告を同じページに表示できます。

Commerce Server には、一般的な業種コードがいくつか用意されています。広告で使用する業種コードは、参照テーブル モジュールの [業種コード] セクションで確認します。参照テーブルの業種コードは、広告の業種コードを選択するときに利用できます。参照テーブル モジュールの [業種コード] セクションでは、現在のすべての業種コードを一覧表示したり、新しい業種コードを追加したり、業種コードを編集および削除することができます。

業種コードを作成するには

  1. [キャンペーン] の [参照テーブル] をクリックします。
  2. [参照テーブル] 画面の [業種コード] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [業種コード] | 新しい業種コードの名前を入力します。
  3. [確認] をクリックします。

    新しい業種コードが業種コードの一覧に追加され、アルファベット順で表示されます。

  4. 新しい業種コードを保存して [ビジネス デスクへようこそ] 画面に戻るには、ツール バーの 保存してメイン メニューに戻る をクリックします。

新しい業種コードが保存され、キャンペーン項目の業種コードを選択するときに利用できるようになります。

関連項目

広告を作成する

参照テーブル


ページ グループを追加する

ページ グループは、Web サイトで広告を表示するページを指定するときに使います。ページ グループを使うと、対象を特定した広告をサイトのすべてのページに表示することも、指定した 1 つのページにだけ表示することもできます。たとえば、ニュースのサイトであれば、スポーツのページ グループを用意して、スポーツ関連の広告の対象に指定できます。さらに、広告を掲載するページ グループに応じて、広告主に請求する金額を変更することもできます。ページ グループは、参照テーブル モジュールの [ページ グループ] セクションを使って確認します。

参照テーブルのページ グループは、キャンペーン項目を表示するページを選択するときに利用できます。キャンペーン項目が使用するページ グループと [ページ グループ] プロパティが一致すれば、そのキャンペーン項目を運用サイトに表示できます。参照テーブル モジュールの [ページ グループ] セクションでは、現在のすべてのページ グループを一覧表示したり、新しいページ グループを追加したり、ページ グループを編集および削除することができます。

注

  • 広告の対象となるページ グループを指定する前に、サイト開発者がページでの広告表示を有効にする必要があります。ページでの広告表示を有効にする方法については、Commerce Server 2002 Software Development Kit の Ad Sitelet サンプルを参照してください。

ページ グループを追加するには

  1. [キャンペーン] の [参照テーブル] をクリックします。
  2. [参照テーブル] 画面の [ページ グループ] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [ページ グループ] | 新しいページ グループの名前を入力します。
    [説明] | ページ グループの説明を入力します。
  3. [確認] をクリックします。

    新しいページ グループがページ グループの一覧に追加され、アルファベット順で表示されます。

  4. 新しいページ グループを保存して [ビジネス デスクへようこそ] 画面に戻るには、ツール バーの 保存してメイン メニューに戻る をクリックします。

新しいページ グループが保存され、キャンペーン項目のページ グループを選択するときに利用可能になります。

関連項目

参照テーブル

広告の対象となるページ グループを指定する


マーケティング キャンペーンを作成する

マーケティング キャンペーンでは、さまざまなコミュニケーション手段 (広告やダイレクト メールなど) を使って、市場シェアの拡大、新商品の発売、顧客の維持など、特定の目的を達成します。マーケティング キャンペーンによって、顧客から契約や注文を得ることを目指します。各顧客には、ブランド認知キャンペーンやリピーター獲得キャンペーンなど、複数のキャンペーンを関連付けることができます。各キャンペーンには、広告、割引、ダイレクト メールなどの複数のキャンペーン項目を含めることができます。顧客、キャンペーン、およびキャンペーン項目を作成して管理するには、キャンペーン マネージャ モジュールを使用します。

マーケティング キャンペーンを作成するには、まずキャンペーン マネージャ モジュールに顧客を追加します。次に、キャンペーン マネージャで、その顧客用のキャンペーンを作成します。たとえば、ブランド認知キャンペーンを作成します。さらに、キャンペーンの目標を設定します。設定した目標によって、特定の時間内に配信する広告の数が決まります。キャンペーンを作成したら、1 つ以上のキャンペーン項目を作成し、広告の表示を指定します。広告の表示を定義したら、必要に応じて広告をプレビューしてから運用サイトに送信します。

次の図は、マーケティング キャンペーンを作成し、そのキャンペーンを Web サイトに発行するシナリオの例を示しています。

  1. キャンペーン マネージャ モジュールで、新しい顧客 (Arbor シューズなど) を追加します。
  2. キャンペーン マネージャ モジュールで、新しいキャンペーン (秋物セールなど) を追加します。
  3. キャンペーン レベルの目標設定などで、キャンペーンのスケジュールを設定します。
  4. 広告 (夏物サンダルなど) を作成します。
  5. キャンペーンの発行モジュールで、新しい広告を使ってサイトを更新します。

ここでは、次のトピックについて説明します。

  • 顧客を追加する
  • キャンペーンを追加する
  • キャンペーン項目を追加する


顧客を追加する

キャンペーンを作成するには、そのキャンペーンを所有する顧客に関する情報を最初に追加する必要があります。それぞれの顧客には、マーケティング プログラムごとに複数のキャンペーンを関連付けられます。たとえば、1 人の顧客に秋物セール、新製品キャンペーン、および春の割引セールを関連付けます。各キャンペーンには、広告、割引、ダイレクト メールなどの複数のキャンペーン項目を含めることができます。

キャンペーン マネージャ モジュールを使うと、顧客の追加、顧客のプロパティの変更、および顧客の削除を行うことができます。

新しい顧客を追加するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [新しい顧客] をクリックします。
  3. [キャンペーン マネージャ - 新規 (顧客)] 画面の [顧客プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 顧客の名前を入力します。
    [住所] | 顧客の住所 (国/地域、郵便番号、都道府県、市区町村、番地など) を入力します。
    [種類] 顧客との関係をボックスの一覧から選択します。関係の種類は次のとおりです。
    • [自社]
    • [広告主]
    • [広告代理店]
    [URL] | 顧客に関連する URL を入力します。
    [業種] 顧客の業種を選択します。

    業種コードは参照テーブル モジュールを使って作成します。詳細については、「参照テーブルを設定する」を参照してください。

    [削除済み] これは編集できないボックスです。

    このボックスは、顧客が削除されたかどうかを示します。顧客の削除と復元の詳細については、「顧客を削除および復元する」を参照してください。
    [コメント] | 必要に応じて顧客に関するコメントを入力します。
  4. [連絡先情報] セクションで、次の操作を行います。
    項目 | 操作
    [連絡先] | 顧客の連絡先情報を入力します。
    [電子メール] | 連絡先の電子メール アドレスを入力します。
    [電話] | 連絡先の電話番号を入力します。
    [FAX] | 連絡先の FAX 番号を入力します。
  5. 顧客情報を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

これで、顧客情報が保存されました。次に、この顧客のためのキャンペーンを追加します。

関連項目

キャンペーン管理のワークフロー

キャンペーンについて

キャンペーンを追加する


キャンペーンを追加する

顧客情報を追加すると、その顧客のキャンペーンを追加できるようになります。それぞれの顧客には、複数のキャンペーンを関連付けられます。たとえば、1 人の顧客にブランド認知キャンペーンとリピーター獲得キャンペーンの両方を関連付けます。特定の顧客向けのキャンペーンおよびキャンペーン プロパティを追加するには、キャンペーン マネージャ モジュールを使用します。配信する広告の数や配信期間を決めるには、キャンペーンの目標を設定します。キャンペーン マネージャ モジュールを使用して、キャンペーンのコピー、検索、削除、復元、およびキャンペーン プロパティの編集を行うこともできます。

ここでは、次のトピックについて説明します。

  • キャンペーン プロパティを追加する
  • キャンペーンの目標を設定する


キャンペーン プロパティを追加する

キャンペーンの名前、開始日、終了日などのキャンペーン プロパティを追加するには、キャンペーン マネージャ モジュールを使用します。キャンペーンの状態 (アクティブ/非アクティブ) を切り替えることもできます。

キャンペーン プロパティを追加するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、新しいキャンペーン作成の対象となる顧客を選択し、ツール バーの 新しいキャンペーン項目 をクリックします。次に、ボックスの一覧の [新しいキャンペーン] をクリックします。
  3. [キャンペーン マネージャ - <顧客> - 新規 (キャンペーン)] 画面の [キャンペーン プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [キャンペーン名] | 新しいキャンペーンの名前を入力します。
    [開始日] | ドロップダウン カレンダーからキャンペーンの開始日を選択します。
    [終了日] ドロップダウン カレンダーからキャンペーンの終了日を選択します。

    特に指定しない限り、キャンペーン項目の日付はキャンペーンの日付と同じ日付になります。ただし、キャンペーン項目の日付はキャンペーンの日付に優先します。このため、キャンペーン項目の日付にはキャンペーンの日付を越える日付を設定できます。
    [状態] | ボックスの一覧からキャンペーンの状態を選択します。状態には、[アクティブ] と [非アクティブ] があります。
    [削除済み] これは編集できないボックスです。

    このボックスは、キャンペーンが削除されたかどうかを示します。キャンペーンの削除と復元の詳細については、「キャンペーンを削除および復元する」を参照してください。
    [コメント] | 必要に応じてキャンペーンに関するコメントを入力します。

キャンペーン プロパティが作成されます。

広告の配信数と配信期間を決めるには、キャンペーン レベルまたは広告項目レベルで、キャンペーンの目標を設定します。キャンペーンの目標設定については、「キャンペーンの目標を設定する」を参照してください。

関連項目

キャンペーン管理のワークフロー

キャンペーンについて

顧客を追加する


キャンペーンの目標を設定する

配信する広告の数や期間を決めるには、キャンペーン目標設定を利用します。目標は、キャンペーン レベルまたは広告の項目レベルで設定できます。キャンペーン レベルで目標を設定し、新しいキャンペーンを作成する場合は、キャンペーン全体に対する要求の総数を指定します。たとえば、キャンペーン レベルで目標を設定していて、顧客から 25,000 回の広告要求の注文を受けたとします。キャンペーン項目レベルでは、一方の広告が広告要求の 60% 表示されるように設定し、もう一方の広告が広告要求の 40% 表示されるように設定します。顧客が広告要求の数を、たとえば 40,000 回に変更した場合でも、広告が表示される回数を手動で変更する必要はありません。表示回数は、それぞれ 60% と 40% のままになります。広告の項目レベルでスケジュールを設定する場合は、要求数の目標を広告ごとに設定します。キャンペーン目標設定の詳細については、「キャンペーン目標設定」を参照してください。

キャンペーンでは、キャンペーン レベルで目標が設定されている広告にウエイトが適用されます。自社広告では、ウエイトは、すべての顧客およびすべてのキャンペーンで設定されているすべての自社広告との相関関係になります。有料広告では、ウエイトは同じキャンペーンの他の有料広告との相関関係になります。

キャンペーンの目標は、クリック数と要求数のどちらかを基準にして設定できます。クリック数を基準にして目標を設定する場合は、ユーザーが実際に広告をクリックしたときにキャンペーンの目標が達成されます。要求数を基準にして目標を設定する場合は、指定したページ グループに広告が表示されたときにキャンペーンの目標が達成されます。

キャンペーンの目標を設定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、キャンペーンのスケジュールを設定する顧客を展開します。次に、キャンペーンを選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客名> - <キャンペーン名> (キャンペーン)] 画面の [広告/キャンペーンの目標] セクションで、次の操作を行います。
    項目 操作
    [目標] ボックスの一覧から目標設定レベルを選択します。キャンペーンの目標には、キャンペーン レベルまたは広告の項目レベルがあります。

    [キャンペーン] を選択した場合、[目標] ボックスの下のフィールドで [目標値] を変更できます。キャンペーン マネージャ モジュールでキャンペーンに広告キャンペーン項目を追加した後は、[広告/キャンペーンの目標] セクションの一番下にある動的テーブルを編集できます。このテーブルで広告の項目を選択し、[編集] をクリックして各広告のウエイトを変更します。広告ごとの数量が、入力したウエイトに基づいて再配分されます。

    [広告の項目] を選択した場合、[目標値] のボックスは表示されません。広告の項目レベルで目標を設定したキャンペーンの要求数は、広告キャンペーン項目で入力します。キャンペーン マネージャでキャンペーンに広告キャンペーン項目を追加した後は、[広告/キャンペーンの目標] セクションの一番下にある動的テーブルを編集できます。このテーブルで広告の項目を選択し、[編集] をクリックして各広告の目標値を変更します。

    割引とダイレクト メール キャンペーン項目の場合、このボックスの設定は不要です。

    注

    • 目標の種類は、キャンペーン レベルから広告の項目レベルに、また広告の項目レベルからキャンペーン レベルに変更できます。目標の種類を変更する方法については、「キャンペーン目標設定と広告の項目目標設定を切り替える」を参照してください。
    [目標値] このキャンペーンで受けた注文の目標値を入力します。

    このボックスは、[目標] ボックスの一覧で [キャンペーン] をクリックした場合にのみ表示されます。
    [カウント方法] ボックスの一覧の [要求数] または [クリック数] をクリックします。

    [要求数] を選択すると、指定したページ グループに広告が表示されたときにキャンペーンの目標が達成されます。

    [クリック数] を選択すると、ユーザーが広告をクリックしたときにキャンペーンの目標が達成されます。
  4. キャンペーンを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

キャンペーンが保存されます。次に、キャンペーンの広告キャンペーン項目を作成します。

キャンペーンの目標設定と広告の項目の目標設定を切り替える

キャンペーンのスケジュールは、キャンペーン目標設定を使って設定します。スケジュールは、キャンペーン レベルまたは広告の項目レベルで設定できます。キャンペーンでは、キャンペーン レベルで目標が設定されている広告にウエイトが適用されます。自社広告では、ウエイトは、すべての顧客とすべてのキャンペーンに対する他のすべての自社広告と相関関係にあります。有料広告では、ウエイトは同じキャンペーンの他の有料広告との相関関係になります。キャンペーンのスケジュールを設定した後で、キャンペーン レベルの目標と広告の項目レベルの目標を切り替えることができます。これにより、広告のウエイトの計算方法が決まります。

ここでは、有料広告の目標を設定する 3 つのシナリオを示します。最初のシナリオでは、顧客がキャンペーン レベルで目標を設定する 2 つの広告を注文します。2 番目のシナリオでは、顧客が 2 つの広告の一方に要求数を追加したために、広告の項目レベルの目標設定に切り替えます。3 番目のシナリオでは、顧客が 2 つの広告を 3 対 1 の割合で表示するように求めてきたために、キャンペーン レベルの目標設定に戻します。

シナリオ 1 : 顧客が秋物セールに向けて、合計で 1,000 回の目標値を均等に実行する 2 つの有料広告を注文してきました。広告ごとの目標値は 500 回になります。キャンペーンの目標は、キャンペーン レベルで設定します。

シナリオ 2 : その後、顧客が 1 つ目の広告の要求数を 500 回追加するように求めてきました。キャンペーンを広告の項目レベルの目標設定に変更し、1 つ目の広告の目標値に 500 回の要求を追加して合計で 1,000 回の要求にします。2 つ目の広告の要求は 500 回のままです。

シナリオ 3 : 顧客は、1 つ目の広告と 2 つ目の広告を 3 対 1 のウエイトで実行するように注文を再配分することに決めました。キャンペーンを、合計の目標値が 1,500 回のキャンペーン レベルの目標設定に戻します。広告キャンペーン項目のウエイトを、1 つ目の広告については 3、2 つ目の広告については 1 に変更すると、新しいキャンペーンのウエイトは 1 つ目の広告が 1,125 回、2 つ目の広告が 375 回になります。

注意

  • 2 番目のシナリオのあとで、顧客が注文を再配分することに決め、さらにウエイトが 1 の 3 つ目の広告を追加する場合は、すべての広告のウエイトを再設定する必要があります。広告を、広告の項目で目標設定されたキャンペーンからキャンペーンで目標設定されたキャンペーンに変更するため、すべての広告のウエイトを変更する必要があります。ウエイトを変更しない場合は、広告の配信にゆがみが生じることになります。

関連項目

キャンペーン管理のワークフロー

キャンペーンについて

キャンペーン目標設定

キャンペーンを追加する


キャンペーン項目を追加する

コンテンツ配信のスケジュールを設定するには、キャンペーン項目を作成する必要があります。Commerce Server のキャンペーン項目には、広告、割引、およびダイレクト メールの 3 種類があります。サイト開発者は、これら 3 つのキャンペーン項目に加えて、インテリジェント クロスセル項目やアップセル項目などの関連セル機能をサイトに追加できます。

    キャンペーン項目の作成については、次の各トピックを参照してください。

    • 広告を作成する
    • 割引を作成する
    • ダイレクト メールを作成する


キャンペーン式を作成する

割引の適用対象にする商品や商品カテゴリを決めたり、広告や割引の対象にするユーザーを指定したりするには、キャンペーン式を作成します。たとえば、好きなアウトドア スポーツが登山であるユーザーを対象として、軽登山靴 1 足に 30% の割引を適用できます。キャンペーン式モジュールを使うと、対象としての条件を満たすユーザーに表示するカテゴリ、商品、または商品プロパティを定義できます。作成できる式の種類は次のとおりです。

  • カタログ式 広告または割引を適用するカテゴリ、商品、または商品プロパティを定義します。たとえば、"書籍の価格が 2,000 円を超える場合、割引を適用する" のように使用します。カタログ式を作成したら、作成したキャンペーン式の条件を満たす商品を広告または割引の対象として指定できます。
  • 対象式 キャンペーン項目をプロファイル プロパティに基づいて対象に指定します。Commerce Server では、ユーザー プロファイルとコンテキスト プロファイルがサポートされます。サイトのユーザーを対象に指定するには、ユーザー プロファイルを使います。たとえば、"ユーザーが女性の場合、塗料が青の広告を配信する" のように使用します。コンテンツ要求のコンテキストを表す情報を対象に指定するには、コンテキスト プロファイルを使います。たとえば、特定のページ グループをコンテンツの対象に設定できます。
  • 対象グループ いくつかの対象式を組み合わせ、その式の条件を満たすユーザーのグループを広告キャンペーンまたは割引キャンペーンの対象に指定します。対象式を使って、Web サイト上のページ グループを対象に指定することもできます。対象式を定義したら、いくつかの式を組み合わせて対象グループを作成できます。たとえば、"ユーザーが女性の場合" という式と "ユーザーが以前に塗料を購入したことがある場合" という式を組み合わせて、"女性の塗料ユーザー" という対象グループを作成できます。これにより、壁紙の広告や割引を "女性の塗料ユーザー" グループに表示できます。
各式の評価結果が True になったときに実行する "アクション" を指定して、式を結合します。各アクションにはそれぞれ 2 つの乗数があります。式が True の場合に適用する乗数と、式が False の場合に適用する乗数です。乗数が適用されると、式にはスコアが与えられ、コンテンツの配信が有効かどうかに影響します。対象グループの詳細については、「対象グループ」を参照してください。

ここでは、次のトピックについて説明します。

  • カタログ式を作成する
  • 対象式を作成する
  • 対象グループを作成する


カタログ式を作成する

割引を適用するカテゴリまたは商品を指定するには、カタログ式を作成します。式を作成するには、商品、商品プロパティ、カタログ内のカテゴリ、または演算子を一覧から選択したり、式が評価する値を必要に応じて入力します。カタログ式は、"書籍の価格が 2,000 円より大きい"、"カテゴリが小説に等しい" などの形になります。式の評価結果が "True" であれば、その商品またはカテゴリに割引が適用されます。

カタログ式を作成するには、[カタログ式] 画面で次のいずれかを選択します。

  • [新しい商品の選択] このオプションは、式の条件に使用するカタログ、商品、商品プロパティ、またはカテゴリを検索する場合に選択します。
  • [新しいカタログ式] このオプションは、式ビルダを開く場合に選択します。

[新しい商品の選択]

商品の選択を使うと、割引キャンペーンの対象とする商品またはカテゴリを検索したり選択することができます。

商品の選択を開くには

カタログを参照するには

キーワードで検索するには

商品プロパティで検索するには

商品の選択を開くには

  1. [キャンペーン] の [キャンペーン式] をクリックします。
  2. [キャンペーン式 : 対象式] 画面で、ツール バーの キャンペーン式の表示 をクリックし、ボックスの一覧の [カタログ式] をクリックします。
  3. [キャンペーン式 : カタログ式] 画面で、ツール バーの 新しいカタログ式 をクリックし、ボックスの一覧の [新しい商品の選択] をクリックします。

カタログを参照するには

  1. [商品の選択] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [検索方法] | [カタログの参照] をクリックします。
    [カタログ] | 検索するカタログをボックスの一覧から選択します。
    [カテゴリ] | 検索するカテゴリを選択します。
  2. [OK] をクリックします。
選択したカテゴリが [カタログ式] ボックスに表示されます。

キーワードで検索するには

  1. [商品の選択] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [検索方法] | [キーワード検索] をクリックします。
    [カタログ] | 検索するカタログをボックスの一覧から選択します。
    [キーワード] | 検索する文字列を入力し、[検索開始] をクリックします。
    [商品] | 対象として指定する商品を選択します。
  2. [OK] をクリックします。次に、式の名前を入力するボックスに名前を入力し、[OK] をクリックします。
選択した商品が [カタログ式] ボックスに表示されます。

商品プロパティで検索するには

  1. [商品の選択] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [検索方法] | [プロパティによる検索] をクリックします。
    [カタログ] | 検索するカタログをボックスの一覧から選択します。
    [次の式に基づいて対象化します] [新規] をクリックします。

    [次の式に基づいて対象化します] ボックスの 3 つのエディット ボックスのうち、1 番目のボックスがアクティブになり、式の句を選択または入力できるようになります。
    [次の式に基づいて対象化します]
    • 1 番目のボックス ボックスの一覧からプロパティ グループを選択し、新しいカタログ式の作成に使用するプロパティを選択します。
    • 2 番目のボックス このカタログ式で使用する演算子をボックスの一覧から選択します。
    • 3 番目のボックス カタログ式で評価するプロパティまたは値を入力します。

    注

    • キャンペーン式では、セミコロン (;) を使って値を区切る。コンマ (,) は使わないでください。コンマは区切り文字として認識されません。たとえば、数値のリストであれば「2,534; 3,485; 6,982」のように入力します。セミコロン自体を入力するためのエスケープ文字は、円記号 (\) です。たとえば、ABC;12 という値は「ABC\;12」と入力します。

    たとえば、書籍のカタログで、"著者 (プロパティ) が右の項目を含む (演算子) Penn (文字列)" という式は、Daniel Penn が著した本にのみ割引を適用します。

  2. [適用] をクリックし、[検索開始] をクリックします。

    対象の条件に一致する商品が [商品] ボックスに表示されます。

    注

    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  3. [OK] をクリックします。
  4. 式の名前を入力するボックスに名前を入力し、[OK] をクリックします。

キャンペーン式モジュールの [キャンペーン式 : カタログ式] 画面に式が追加されます。これで、この式を使ってユーザーのグループを割引キャンペーンの対象に指定できるようになります。

[新しいカタログ式]

[カタログ式] 画面で、式ビルダを使ってカタログ式を作成します。

カタログ式を作成するには

  1. [キャンペーン] の [キャンペーン式] をクリックし、ツール バーの 表示 をクリックし、ボックスの一覧の [カタログ式] をクリックします。
  2. [キャンペーン式 : カタログ式] 画面で、ツール バーの をクリックし、[新しいカタログ式] を選択します。
  3. [カタログ式] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいカタログ式の名前を入力します。
    [説明] 新しいカタログ式の説明を入力し、[新規] をクリックします。

    [次の式に基づいて対象化します] ボックスの 3 つのエディット ボックスのうち、1 番目のボックスがアクティブになります。式の句を選択または入力します。
    [次の式に基づいて対象化します]
    • 1 番目のボックス この式に関係するオプションをボックスの一覧から選択します。選択できるオプションは、[商品] と [式] (存在する場合) です。
      • [商品] をクリックすると、商品プロパティの一覧が表示されます。新しいカタログ式の作成に使用するプロパティを選択します。
      • [式] をクリックすると、現在あるすべてのカタログ式の一覧が表示されます。新しいカタログ式の作成に使用するカタログ式を選択し、[OK] をクリックします。
    • 2 番目のボックス このカタログ式と共に使用する演算子をボックスの一覧から選択します。
    • 3 番目のボックス カタログ式で評価するプロパティまたは値を入力します。

    注

    • キャンペーン式では、セミコロン (;) を使って値を区切る。コンマ (,) は使わないでください。コンマは区切り文字として認識されません。たとえば、数値のリストであれば「2,534; 3,485; 6,982」のように入力します。セミコロン自体を入力するためのエスケープ文字は、円記号 (\) です。たとえば、ABC;12 という値は「ABC\;12」と入力します。

    たとえば、書籍のカタログで、"著者 (商品プロパティ) 右の項目を含む (演算子) Penn (プロパティ)" という式は、Daniel Penn が著した本にのみ割引を適用します。

  4. [適用] をクリックします。

    新しいカタログ式が [次の式に基づいて対象化します] ボックスに追加されます。

    注

    • 作成したカタログ式に条件を追加するには、手順 2. ～ 4. を繰り返し、ボックスの一覧の [And] または [Or] をクリックします。
  5. カタログ式を保存して [キャンペーン式 : カタログ式] 画面に戻るには、[保存] をクリックします。

式が [キャンペーン式 : カタログ式] 画面に追加されます。これで、この式を使ってユーザーのグループを割引キャンペーンの対象に指定できるようになります。

関連項目

割引を作成する


対象式を作成する

広告と割引の対象となるユーザーを指定するには、対象式を作成します。対象式では、要求のコンテキストを対象として指定することもできます。たとえば、ユーザーが来訪前にいた Web サイト、現在のページ グループ、時刻、HTTP cookie などを対象式で対象として指定できます。式とは、プロパティ、演算子、および値を組み合わせたもので、評価すると結果が返されます。式を作成するには、あらかじめ定義されている対象や演算子を一覧から選択します。必要な場合は、式が評価する値 (数値など) を入力します。対象式は、"アカウント クラスが 10 に等しい"、"女性ユーザーが True" などの形になります。対象式の作成には、[対象式] 画面の式ビルダを使います。

対象式を作成すると、特定の言語および通貨を広告や割引の対象にすることができます。広告または割引の対象となる言語を選択するには、式ビルダを使います。

新しい対象式を作成するには

特定の言語を対象に指定するには

新しい対象式を作成するには

  1. [キャンペーン] の [キャンペーン式] をクリックします。
  2. [キャンペーン式 : 対象式] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [対象式] を選択します。
  3. [キャンペーン式 : 対象式] 画面で、ツール バーの 追加 をクリックします。
  4. [対象式] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しい対象式の名前を入力します。
    [説明] 新しい対象式の説明を入力し、[新規] をクリックします。

    [次の式に基づいて対象化します] ボックスの 3 つのエディット ボックスのうち、1 番目のボックスがアクティブになり、式の句を選択または入力できるようになります。
    [次の式に基づいて対象化します]
    • 1 番目のボックス この式に関係するオプションをボックスの一覧から選択します。選択できるオプションは、[ユーザー オブジェクト]、[対象とするコンテキスト]、[組み込みの評価対象]、および [式] (存在する場合) です。

      注

      • オブジェクトまたは関数が一覧に表示されない場合は、式ビルダを起動したコンテキストでオブジェクトまたは関数が有効ではありません。たとえば、対象がユーザー オブジェクトではなく式に基づいている場合は、別の演算子の集合が表示されます。

      [ユーザー オブジェクト] をクリックすると、ユーザー オブジェクトのプロパティ グループの一覧が表示されます。ユーザー オブジェクトのプロパティ グループを選択し、この式で使用するユーザー オブジェクトの種類を選択します。

      [対象とするコンテキスト] をクリックすると、[ページ グループ] プロパティが表示されます。対象とするコンテキスト プロファイル用に作成されたプロパティがある場合は、それも表示されます。この式で使用するプロパティを選択します。プロファイル プロパティの追加については、「プロファイル定義にプロパティを追加する」を参照してください。

      [組み込みの評価対象] をクリックした場合は、この式で使用する時間単位の量を選択します。

      [式] をクリックすると、[式の選択] ダイアログ ボックスが表示されます。式の一覧から使用する式を選択し、[OK] をクリックします。

      [対象式] ダイアログ ボックスを開く前に作成した式だけが表示されます。

    • 2 番目のボックス ボックスの一覧に表示される利用可能な種類の中から、式の演算子の種類を選択します。
    • 3 番目のボックス 式で評価するプロパティまたは値を入力します。

    注

    • キャンペーン式の中に複数値 (リストなど) を入力する場合は、それぞれの値をセミコロン (;) で区切ってください。コンマ (,) は使わないでください。コンマは区切り文字として認識されません。たとえば、数値のリストであれば「2,534; 3,485; 6,982」のように入力します。セミコロン自体を入力するためのエスケープ文字は、円記号 (\) です。たとえば、ABC;12 という値は「ABC\;12」と入力します。

      たとえば、"State (プロパティ) が右の項目と等しい (演算子) CA (文字列)" という式は、カリフォルニア州に住む顧客にのみ割引を適用します。

  5. [適用] をクリックします。

    新しい対象式が [次の式に基づいて対象化します] ボックスに追加されます。

    注

    • 作成したカタログ式に条件を追加するには、手順 3. ～ 5. を繰り返し、ボックスの一覧の [And] または [Or] をクリックします。
  6. 対象式を保存して [キャンペーン式 : 対象式] 画面に戻るには、[保存] をクリックします。

式が [キャンペーン式 : 対象式] 画面に追加されます。これで、いくつかの対象式を組み合わせて対象グループを作成できるようになります。作成した対象グループは、広告や割引の対象を指定するときに使います。

特定の言語を対象に指定するには

  1. [キャンペーン] の [キャンペーン式] をクリックします。
  2. [キャンペーン式 : 対象式] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [対象式] を選択します。
  3. [キャンペーン式 : 対象式] 画面で、ツール バーの 追加 をクリックします。
  4. [対象式] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | 新しい対象式の名前を入力します。
    [説明] 新しい対象式の説明を入力し、[新規] をクリックします。

    [次の式に基づいて対象化します] ボックスの 3 つのエディット ボックスのうち、1 番目のボックスがアクティブになり、式の句を選択または入力できるようになります。
    [次の式に基づいて対象化します]
    • 1 番目のボックス [ユーザー オブジェクト] をクリックし、[一般情報] をクリックします。次に、下にスクロールし、[既定の言語] をクリックします。
    • 2 番目のボックス ボックスの一覧に表示される利用可能な演算子の中から、[が右の項目と等しい] を選択します。
    • 3 番目のボックス 省略記号 […] ボタンをクリックします。[サイト用語の選択] ダイアログ ボックスのサイト用語の一覧で、対象として指定する言語をクリックし、[OK] をクリックします。
  5. [適用] をクリックします。

    新しい対象式が [次の式に基づいて対象化します] ボックスに追加されます。

    注

    • 作成したカタログ式に条件を追加するには、手順 3. ～ 5. を繰り返し、ボックスの一覧の [And] または [Or] をクリックします。
  6. 対象式を保存して [キャンペーン式 : 対象式] 画面に戻るには、[保存] をクリックします。

式が [対象式] ボックスに追加されます。これで、いくつかの対象式を組み合わせて対象グループを作成できるようになります。作成した対象グループは、広告や割引の対象を指定するときに使います。

関連項目

広告を作成する

対象グループを作成する

式に基づく対象化


対象グループを作成する

いくつかの式を組み合わせて、広告や割引をユーザーのグループに表示するには、対象グループ モジュールを使用します。グループに含めるユーザーと、グループから除外するユーザーを指定することができます。たとえば、動物の飼い主で構成される対象グループの場合、対象式にアクションを適用することによって、猫の飼い主をグループに含め、犬の飼い主は除外するように指定できます。対象グループを定義すれば、広告または割引の表示対象にするユーザーのグループを指定するビジネス ルールを作成できます。

対象グループでは、各式の評価結果が True になったときに実行する "アクション" を指定して、式を結合します。各アクションにはそれぞれ 2 つの乗数があります。式が True の場合に適用する乗数と、式が False の場合に適用する乗数です。乗数が適用されると、式にはスコアが与えられ、コンテンツの配信が有効かどうかに影響します。

次のアクションを指定できます。

アクション | 説明
対象 | 対象アクションは、プロパティの人口が非常に少ない場合でも、ユーザーが多くの要求を獲得する状況で使用できます。 式の評価結果が True の場合、スコアは増加し、コンテンツが表示される確率も上がります。式の評価結果が False の場合、スコアは変わりません。いずれの場合でも、コンテンツの配信は有効です。
スポンサー | 対象グループに関連付けられた広告を、サイトで排他的に表示します。 式の評価結果が True の場合、コンテンツの配信は有効です。他のコンテンツは、同じ action = Sponsor (アクション = スポンサー) の式がない限り無効です (スポンサーの乗数は 1 つだけです)。
適用 | 対象式内のユーザーのグループが対象グループに含まれます。 式の評価結果が True の場合、コンテンツの配信は有効です。False の場合、コンテンツの配信は無効です。
除外 | 対象式内のユーザーのグループが対象グループから除外されます。 式の評価結果が True の場合、コンテンツの配信は無効です。False の場合、コンテンツの配信は有効です。

新しい対象グループを作成するには

  1. [キャンペーン] の [対象グループ] をクリックします。
  2. [対象グループ] 画面で、ツール バーの 追加 をクリックします。
  3. [対象グループ : 新規] 画面で、次の操作を行います。
    項目 | 操作
    [対象グループ名] | 新しい対象グループの名前を入力します。
    [式] 新しい対象グループの作成に使用する式をボックスの一覧から選択します。

    新しい式を作成する場合は、[新しい式の作成] をクリックします。新しい対象式の作成については、「対象式を作成する」を参照してください。
    [アクション] 新しい対象グループのアクションをボックスの一覧から選択します。

    選択できるアクションは次のとおりです。

    • 対象
    • スポンサー
    • 適用
    • 除外

    注意

    • アクションで [適用] または [除外] を選択すると、除外プロパティが定義されたユーザーに広告が表示されなくなります。また、必須プロパティまたは除外プロパティが定義されていないユーザーにも、広告は表示されません。たとえば、Hotmail のユーザーを除外する対象グループを作成すると、電子メール アカウントが定義されていないユーザーも対象グループから除外されます。したがって、電子メール アカウントが定義されていて、Hotmail のアカウントを持っていないすべてのユーザーに広告が表示されます。
  4. [確認] をクリックします。
  5. 対象グループを保存して [対象グループ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい対象グループは、利用可能な対象グループのリストに保存されます。これで、この対象グループを使って広告または割引の対象を指定できるようになります。

関連項目

広告を作成する

割引を作成する

キャンペーン式を作成する

対象式を作成する


広告を作成する

コンテンツ選択フレームワーク (CSF) は、広告に指定するキャンペーン目標設定、表示上限回数、スケジュール、ウエイト、ページ グループ、および対象グループの各変数を処理します。ユーザーがサイトを訪問するたびに、コンテンツ選択フレームワークは広告を表示すべきかどうかを判断します。CSF の詳細については、「Content Selection Framework Concepts」を参照してください。

広告の配信スケジュールを設定するには、広告を作成します。広告はキャンペーン項目の 1 つで、通常は配信目標、日付の範囲、および対象の属性を持っています。広告を作成した後は、広告のスケジュールを設定したり、広告を表示する Web ページを指定したり、広告の対象となる特定のグループのユーザーを指定することができます。また、広告の表示を指定することもできます。たとえば、テキストとイメージの両方を含んでいる広告を表示したり、テキストのみの広告を表示することができます。広告の表示を指定したら、どのように表示されるかをプレビューできます。

広告を複数の言語で利用する場合は、言語ごとに広告を作成し直す必要があります。

ここでは、次のトピックについて説明します。

  • 広告プロパティを追加する
  • 広告のスケジュールを設定する
  • 広告の対象となるページ グループを指定する
  • 広告の対象となるユーザーのグループを指定する
  • 広告の表示を指定する
  • 広告をプレビューする
  • 広告をコピーする


広告プロパティを追加する

特定のキャンペーン用の広告を作成するには、キャンペーン マネージャ モジュールを使用します。まず、広告の種類を選択します。これは、表示頻度 (NOD) のスケジュールにによって、有料広告または自社広告のどちらかを選択します。また、1 回のセッション中にユーザーにコンテンツを表示する回数の上限を設定することもできます。同じ業種で競合している複数の企業の広告が同じページに表示されないようにするには、広告の業種を選択します。

広告を作成するには

広告の表示を設定するには

広告を作成するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、新しく作成する広告の対象となる顧客を展開します。新しく作成する広告の対象となるキャンペーンを選択し、ツール バーの 追加 をクリックします。次に、ボックスの一覧の [新しい広告] をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - 新規 (広告)] 画面の [広告プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [広告名] 広告の名前を入力します。

    自社広告と有料広告を区別できるように、この 2 種類の広告には明確な名前付け規則を適用します。たとえば、自社広告には Business Books_HA、有料広告には Business Software_PA などの名前を使います。

    注

    • 広告を複数の言語で作成するときは、広告名に50 文字のサイズ制限があることに注意してください。
    [状態] ボックスの一覧から広告キャンペーンの状態を選択します。

    状態には、[アクティブ] と [非アクティブ] があります。
    [削除済み] これは編集できないボックスです。

    このボックスは、広告が削除されたかどうかを示します。キャンペーン項目の削除と復元の詳細については、「キャンペーン項目を削除および復元する」を参照してください。
    [種類] 広告の種類を選択します。

    種類には、[有料広告] と [自社広告] があります。有料広告と自社広告の切り替えについては、「有料広告と自社広告を切り替える」を参照してください。
    [要求数またはクリック数/ウエイト] キャンペーンの目標が "キャンペーン レベル" に設定されている場合は、[自社広告] または [有料広告] の [ウエイト] を選択します。

    キャンペーンの目標が "要求数" による "広告の項目レベル" に設定されている場合は、次の操作を行います。

    • 広告の種類で [有料広告] を選択した場合は、広告に対する広告の要求数を入力します。
    • 広告の種類で [自社広告] を選択した場合は、自社広告のウエイトの値を入力します。自社広告の既定のウエイトは 1 です。

    キャンペーンの目標が "クリック数" による "広告の項目レベル" に設定されている場合は、次の操作を行います。

    • 広告の種類で [有料広告] を選択した場合は、広告に対するクリック数を入力します。
    • 広告の種類で [自社広告] を選択した場合は、自社広告のウエイトの値を入力します。自社広告の既定のウエイトは 1 です。
    [表示上限回数] 1 回のセッション中にユーザーに広告を表示できる回数をボックスの一覧から選択します。

    ユーザーに広告を表示できる回数の上限は、1 セッションあたり 10 回です。
    [受信日時] 特に指定しない限り、このボックスには現在の日付が入ります。広告が受信される日付を入力するか、またはドロップダウン カレンダーから選択します。

    この日付は、広告を保存した後は変更できません。

    [業種] | 広告の業種を選択します。
    [コメント] | 必要に応じてこの広告に関するコメントを入力します。

注

  • 広告を保存する前に、広告の表示を設定する必要があります。

広告の表示を設定するには

  1. [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | ボックスの一覧から広告のコンテンツ サイズを選択します。
    [種類] | ボックスの一覧から広告の種類を選択します。

    注

    • [種類] ボックスの下に表示されるボックスは、選択した広告の種類によって異なります。広告を保存する前に、[広告の表示] セクションに必要な情報を入力する必要があります。特定の種類の広告用に広告キャンペーンの表示を設定する方法については、「広告の種類を設定する」を参照してください。
  2. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

キャンペーン マネージャのツリーで、指定した顧客とキャンペーンの下に新しい広告が表示されます。

重要

  • 広告に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

有料広告と自社広告を切り替える

有料広告は、表示頻度 (NOD) のスケジュールに基づいて配信されるコンテンツです。自社広告は、有料広告が指定された表示頻度のスケジュールよりも先行して配信された場合に配信されるコンテンツです。

広告は、有料広告から自社広告に切り替えることも、自社広告から有料広告に切り替えることもできます。たとえば、支払い可能な広告料金に見合った配信回数を超えた場合でも広告配信を続けてもらいたいと希望する顧客がいる場合は、広告の一部を配信すると保証します。ただし、その顧客は、配信が保証されない広告については割引を受けることを希望しています。これを実現するには、保証期間が終了したら有料広告を自社広告に切り替えます。自社広告の広告要求スケジュールは、自動的に 0 に設定し直されます。広告を有料広告に戻す場合は、必要な広告要求の数を入力し直すことによって、手動でスケジュールを調整する必要があります。

関連項目

キャンペーンを追加する

業種コードを追加する

コンテンツ サイズを指定する

広告の表示を指定する

広告のスケジュールを設定する

広告の対象となるページ グループを指定する

広告の対象となるユーザーのグループを指定する


広告のスケジュールを設定する

新しい広告を作成したら、広告を実行する開始日と終了日を選択します。広告の実行中に、終了日を変更できます。たとえば、終了日を 1 日前や後にずらすことができます。この場合は、スケジュールの残りの数量と期間に基づいて、表示頻度 (NOD) が再計算されます。

広告のスケジュールを設定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、広告を作成したキャンペーンを展開します。次にスケジュールを設定する広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <広告キャンペーン項目> (広告 ID : <番号>)] 画面の [広告のスケジュール] セクションで、次の操作を行います。
    項目 | 操作
    [開始日] | 広告を開始する日付を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | 広告を終了する日付を入力するか、またはドロップダウン カレンダーから選択します。
    [曜日] | 広告を実行する曜日のチェック ボックスをオンにします。
    [開始時刻] | 広告を開始する時刻をサーバーの時刻に基づいて入力するか、またはボックスの一覧から選択します。
    [終了時刻] | 広告を終了する時刻をサーバーの時刻に基づいて入力するか、またはボックスの一覧から選択します。

    注

    • 開始時刻を終了時刻よりも遅い時刻に設定した場合、広告は遅い方の時刻に開始され、終了時刻まで実行されます。たとえば、開始時刻を 11:00 に設定し、終了時刻を 9:00 に設定した場合、広告は 22 時間にわたって実行されます。
    • 開始時刻と終了時刻を同じ時刻に設定した場合は、24 時間にわたって表示されます。
  4. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

スケジュールが広告に保存されます。

重要

  • 広告に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

キャンペーンの目標を設定する

広告を作成する


広告の対象となるページ グループを指定する

広告をサイトのすべてのページに表示するか、または割り当てられたページ グループだけに表示するかを指定できます。ページ グループを使用すると、どの Web ページに広告を表示するかを指定できます。たとえば、オンライン新聞 Web サイトの場合、ゴルフ クラブの広告をスポーツ ページだけに表示するように指定できます。

広告は、すべてのページ グループに表示することも、参照テーブル モジュールの [ページ グループ] セクションで作成した利用可能なページ グループから選択することもできます。

注

  • 広告の対象となるページ グループを指定する前に、サイト開発者がページでの広告表示を有効にする必要があります。ページでの広告表示を有効にする方法については、Commerce Server 2002 Software Development Kit の Ad Sitelet サンプルを参照してください。

広告の対象となるページ グループを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、広告を作成したキャンペーンを展開します。次に、新しいページ グループを作成する広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <広告キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の対象] セクションで、次の操作を行います。
    項目 | 操作
    [すべてのページ グループで表示] このチェック ボックスをオンにすると、Web サイトのすべてのページ グループに広告が表示されます。

    広告キャンペーンを特定のページ グループに割り当てるには、このチェック ボックスをオフにして、これ以降の操作を行います。
    [ページ グループ : 利用可能] | 割り当てるページ グループを選択します。
    [対象グループ : 利用可能] 割り当てる対象グループを選択します。

    対象グループについては、「対象グループ」および「対象グループを作成する」を参照してください。
  4. [追加] をクリックします。

    選択したページが [割り当て] ボックスに移動します。

  5. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

選択したページ グループに広告が表示されます。

重要

  • 広告に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

広告を作成する

ページ グループを追加する


広告の対象となるユーザーのグループを指定する

対象グループは、広告の対象を特定のユーザーのグループに指定するためのアクションに関連付けられた式です。1 つの対象グループには、複数の式やアクションを設定できます。グループの中の特定のユーザーだけを対象グループに含めたり、特定のユーザーをグループから除外することもできます。対象に指定するユーザーのグループは、既存のグループ リストから選択します。このリストは、対象グループ モジュールを使って作成します。対象グループの作成については、「対象グループを作成する」を参照してください。

広告の対象となるユーザーのグループを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、広告を作成したキャンペーンを展開します。次に新しい対象グループを割り当てる広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <広告キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の対象] セクションで、次の操作を行います。
    項目 操作
    [対象グループ : 利用可能] 割り当てる対象グループを選択します。

    対象グループについては、「対象グループ」および「対象グループを作成する」を参照してください。
  4. [追加] をクリックします。

    対象グループが [割り当て] ボックスに移動します。

  5. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

選択した対象グループが広告の対象になります。

重要

  • 広告に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

広告を作成する

対象式を作成する

対象グループを作成する


広告の表示を指定する

ユーザーに広告を表示する方法と形式を指定できます。たとえば、ホーム ページに大きな広告を表示して、ユーザーの注意を引くことができます。広告を表示するには、主に 2 つの作業を行います。この手順は次のとおりです。

  • 広告のサイズを指定する
  • 広告の種類を設定する

広告のサイズを指定する

Commerce Server 2002 には、広告に適用できる標準的なコンテンツ サイズのセットが用意されています。また、カスタム コンテンツ サイズを独自に指定することもできます。標準のサイズとカスタム サイズのどちらを適用する場合でも、広告にサイズを適用するときには次の操作を行います。

注

  • カスタム コンテンツ サイズを指定するには、参照テーブル モジュールを使います。詳細については、「コンテンツ サイズを指定する」を参照してください。

広告のサイズを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、広告を作成したキャンペーンを展開します。次にサイズを指定する広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <広告キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の表示] セクションで、[サイズ] ボックスの一覧から広告のサイズを選択します。

これで、広告のコンテンツ サイズが指定されました。次に、広告の種類を設定します。

広告の種類を設定する

広告キャンペーンに特定の種類の広告が必要になることがあります。たとえば、イメージを含んでいる広告を表示したり、テキストのみの広告を表示したりすることができます。

広告の種類を設定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、広告を作成したキャンペーンを展開します。次に種類を設定する広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <広告キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の表示] セクションで、[種類] ボックスの一覧から広告の種類を選択します。

    注

    • [種類] ボックスの下に表示されるボックスは、選択した広告の種類によって異なります。特定の種類の広告用に広告キャンペーンの表示を設定する方法については、このセクションの残りの手順を参照してください。

    設定できる広告の種類は次のとおりです。

    イメージ広告

    テキスト広告

    HTML 広告

    クリックできないイメージ広告

    Buy Now 広告

    Windows メディア サービス広告

    方向付きビネット広告

  4. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

広告がキャンペーンに保存されます。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

イメージ広告

イメージ広告を、広告の表示スケジュールを設定するときに表示先として指定した Web ページにリンクします。この広告が表示されるページをユーザーが訪問すると、イメージが表示されます。

イメージ広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] | [イメージ] を選択します。
    [イメージの保存場所] 広告に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。

    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスが有効になっていないときに表示される代替テキストを入力します。

広告がイメージ広告として設定されます。

テキスト広告

テキスト広告は、テキストだけで構成されます。この広告が表示されるページをユーザーが訪問すると、テキストが表示されます。

テキスト広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] | [テキスト] をクリックします。
    [テキスト] | 広告に表示するテキストを入力します。
    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。

広告がテキスト広告として設定されます。

HTML 広告

HTML 広告は、HTML コードで構成されます。この広告が表示されるページをユーザーが訪問すると、HTML コードから生成されたテキストが表示されます。

HTML 広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] | [HTML] をクリックします。
    [HTML テキスト] | 広告に表示する HTML テキストを HTML 形式で入力します。

広告が HTML 広告として設定されます。

クリックできないイメージ広告

クリックできないイメージ広告 (グラフィックス イメージ) は、この広告の表示対象として指定された Web ページにユーザーが訪問すると表示されます。この広告は、Web ページにリンクされません。

クリックできないイメージ広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] | [クリックできないイメージ] をクリックします。
    [イメージの保存場所] 広告に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスが有効になっていないときに表示される代替テキストを入力します。

広告が、クリックできないイメージ広告として設定されます。

Buy Now 広告

Buy Now 広告を使うと、ユーザーはインターネット上のどの Web ページからでも商品を購入できます。ユーザーが商品のイメージをクリックすると、送付先とクレジット カード情報の入力を求めるダイアログ ボックスが表示されます。

Buy Now 広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [型] | [Buy Now] をクリックします。
    [イメージの保存場所] 広告に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスの表示が無効になっている場合に表示する代替テキストを入力します。
    [ウィンドウの幅] | 広告の幅をピクセル数で入力します。
    [ウィンドウの高さ] | 広告の高さをピクセル数で入力します。

広告が Buy Now 広告として設定されます。

Windows Media サービス広告

Windows Media サービス広告は、高品質のオーディオとビデオによる広告を表示します。

Windows Media サービス広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] | [Windows Media サービス] をクリックします。
    [Windows Media サービス ASF] | 広告の Windows Media サービス ASF を入力します。
    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。

広告が Windows メディア サービス広告として設定されます。

方向付きビネット広告

ビネット広告は、広告を表示するイメージと、それに隣接して表示されるテキストで構成されます。

方向付きビネット広告を設定するには

  • [広告の表示] セクションで、次の操作を行います。
    項目 | 操作
    [サイズ] | 広告のサイズを選択します。
    [種類] [テキストの左に画像を表示]、[テキストの右に画像を表示]、[テキストの上に画像を表示] のいずれかをクリックします。

    [テキストの左に画像を表示] - 広告をテキストの左に配置します。

    [テキストの右に画像を表示] - 広告をテキストの右に配置します。

    [テキストの上に画像を表示] - 広告をテキストの上に配置します。
    [イメージの保存場所] 広告に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [テキスト] | 広告に隣接して表示するテキストを入力します。
    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスの表示が無効になっている場合に表示する代替テキストを入力します。

広告が方向付きビネット広告として設定されます。

関連項目

広告を作成する

コンテンツ サイズを指定する

広告をプレビューする

キャンペーンの変更を Web サイトに発行する


広告をプレビューする

広告の表示を定義したら、広告をプレビューしてから Web サイトに発行します。クリックが可能な広告の場合は、ユーザーが広告をクリックしたときに表示される Web ページをプレビューすることもできます。

注

  • ビジネス デスクを SupplierActiveDirectory ソリューション サイトに基づいて構築し、認証フィルタを有効にしている場合は、認証コードが設定されるため、イメージ ファイルを表示することはできません。イメージ ファイルをビジネス デスクでプレビューするには、ビジネス デスクの仮想ルート フォルダに格納されているすべてのイメージ ファイルについて、匿名アクセスを有効にする必要があります。匿名アクセスの有効化については、Commerce Server 2002 ヘルプの「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。

広告をプレビューするには

広告の Web ページを表示するには

広告をプレビューするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、プレビューするイメージが含まれる広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の表示] セクションで、必要なフィールドに情報が入力されていることを確認し、[プレビュー] をクリックします。
  4. [プレビュー] ダイアログ ボックスの [はい] をクリックして、広告を保存します。

広告のコピーが [プレビュー] ボタンの下の表示領域に表示されます。

[広告の表示] セクションで広告の種類を設定する方法については、「広告の種類を設定する」を参照してください。

広告の Web ページを表示するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、プレビューするイメージが含まれる広告を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン項目> (広告 ID : <番号>)] 画面の [広告の表示] セクションで、必要なフィールドに情報が入力されていることを確認し、[プレビュー] ボタンの下の表示領域で広告をクリックします。

広告に関連付けられている Web ページが、Internet Explorer の新しいウィンドウに表示されます。追加した新しい情報でサイトを直ちに更新するには、キャンペーンの発行モジュールを使います。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

広告を作成する

広告のサイズを指定する

広告の種類を設定する

キャンペーンの変更を Web サイトに発行する


広告をコピーする

既存の広告をコピーすると、キャンペーンの広告を簡単に追加できます。既存の広告をテンプレートとして使用し、そのプロパティを変更することで、新しい広告キャンペーン項目の目標を設定できます。

広告をコピーするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、コピーする広告を選択し、ツール バーの キャンペーン項目のコピー をクリックします。
  3. [広告のコピー] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [顧客の選択] | 広告のコピー元となる顧客をボックスの一覧から選択します。
    [キャンペーンの選択] | 広告のコピー元となるキャンペーンをボックスの一覧から選択します。
  4. [OK] をクリックします。
  5. [キャンペーン マネージャ - <顧客> - <キャンペーン> - 新規 (広告)] 画面の [広告プロパティ] セクションの [広告名] ボックスに、新しい広告の名前を入力します。
  6. その他のプロパティを必要に応じて編集します。
  7. 広告を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

キャンペーン マネージャのツリーで、選択した顧客とキャンペーンの下に新しい広告が表示されます。

関連項目

広告を作成する


割引を作成する

キャンペーンを作成したら、割引を作成します。割引はキャンペーン項目の一種です。作成する割引は、カタログ内の任意の項目およびカテゴリに適用できます。たとえば、Computer Hardware カタログの Keyboard カテゴリに 20% の割引を適用することができます。割引を作成するときは、割引をユーザーに表示する方法と形式を指定します。

キャンペーン マネージャ モジュールで、新しい割引を作成し、サイトに割引を表示するスケジュールを設定し、割引を適用する商品、ページ グループ、または対象グループを指定し、割引の表示方法を指定することができます。また、指定した Web サイトやページ グループで割引がどのように表示されるかをプレビューすることもできます。

割引の対象となる特定のユーザーを指定するには、対象式を使います。たとえば、優待客が買い物バスケットに入れた中で最も高価な 2 つの項目に、10% の割引を適用できます。また、1 回のセッション中に特定の割引を表示する回数を指定することもできます。割引の表示を指定したら、保存する前にキャンペーン マネージャ モジュールで表示をプレビューできます。

割引を複数の言語で利用する場合は、言語ごとに割引を作成し直す必要があります。

注

  • さまざまな種類の割引の作成方法を示す例については、「割引の例」を参照してください。この例は、各割引のビジネス デスクと、各ユーザー バスケットの割引の結果を示しています。
  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

ここでは、次のトピックについて説明します。

  • 割引プロパティを追加する
  • 条件と特典を定義し、割引の対象を設定する
  • 割引の対象をページ グループと対象グループに設定する
  • 割引の表示を指定する
  • 割引の表示をプレビューする
  • 割引をコピーする


割引プロパティを追加する

ユーザーの買い物バスケットに複数の割引が適用される場合に、どの割引を適用するか、優先順位を設定できます。また、割引の開始日と終了日を指定したり、割引の状態 (アクティブ/非アクティブ) を切り替えたりすることもできます。

次の図は、対話型の [割引プロパティ] 画面です。強調表示されている割引プロパティ コンポーネントの詳細については、画面をクリックしてください。

注

  • 割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。割引の表示の設定については、「割引の表示を指定する」を参照してください。

割引キャンペーン プロパティを追加するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、作成する割引の対象となる顧客を展開します。新しく作成する割引の対象となるキャンペーンを選択し、ツール バーの 追加 をクリックします。次に、ボックスの一覧の [新しい割引] をクリックします。
  3. [キャンペーン マネージャ - <顧客名> - <キャンペーン名> - 新規 (割引)] 画面の [割引プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [割引名] 割引の名前を入力します。

    注

    • 割引を複数の言語で作成するときは、割引名に50 文字のサイズ制限があることに注意してください。
    [状態] ボックスの一覧から割引キャンペーンの状態を選択します。

    状態には、[アクティブ] と [非アクティブ] があります。
    [削除済み] これは編集できないボックスです。

    このボックスは、割引が削除されたかどうかを示します。キャンペーン項目の削除と復元の詳細については、「キャンペーン項目を削除および復元する」を参照してください。
    [優先順位] ボックスの一覧から割引の優先順位を選択します。

    割引の優先順位によって、バスケットでどの割引が適用されるかが決まります。たとえば、優先順位が 10 の割引は、優先順位が 20 の割引よりも優先して適用されます。
    [コメント] | 必要に応じて、この割引に関するコメントを入力します。
    [開始日] | 割引の開始日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | 割引の終了日を入力するか、またはドロップダウン カレンダーから選択します。

これによって、割引の定義と対象の設定ができます。割引の定義と対象の設定については、「条件と特典を定義し、割引の対象を設定する」を参照してください。

注

  • 割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。割引の表示の設定については、「割引の表示を指定する」を参照してください。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

割引の例

条件と特典を定義し、割引の対象を設定する

割引の対象をページ グループと対象グループに設定する

割引の表示を指定する

キャンペーンの変更を Web サイトに発行する


条件と特典を定義し、割引の対象を設定する

割引を適用する商品または商品カテゴリをカタログの中から選び、割引額を (金額または単位で) 指定します。割引は、注文全体に対して適用する (注文レベルの割引) ことも、注文の特定の項目に対して適用する (項目レベルの割引) こともできます。

割引定義を定義するには、割引の条件、特典、および必要な資格を設定します。必要な資格によって、割引を適用するユーザーが決まります。

注

  • 割引について、さまざまな種類の条件、特典、および資格を設定する方法を示した例については、「割引の例」を参照してください。例では、それぞれの割引について、ビジネス デスクの [割引定義] 画面と、各ユーザー バスケット内の割引の結果を示します。

強調表示されている割引コンポーネントの詳細については、次の対話型画面をクリックしてください。

注

  • 割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。割引の表示の設定については、「割引の表示を指定する」を参照してください。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

割引定義を定義するには

  • [キャンペーン マネージャ - <顧客名> - <キャンペーン名> - 新規 (割引)] 画面の [割引定義] セクションで、次の操作を行います。
    項目 | 操作
    [対象] : [すべての商品] 必要条件がない場合は、このチェック ボックスをオンにします。このチェック ボックスがオンのとき、特典の対象となる商品がバスケットの中にある場合は、割引が必ず適用されます。"すべての商品" 条件の詳細については、「割引の条件」を参照してください。

    購入される特定の商品または商品カテゴリに割引を適用する場合は、このチェック ボックスをオフのままにして、これ以降の操作を行います。
    [対象] :
    • 種類ボックス 対象条件の種類を選択します。

      種類には、[金額] と [数量] があります。たとえば、ユーザーが CD を 3 枚 (数量) または 4,000 円分 (金額) 購入したときに特典を与えることができます。

    • 値ボックス 種類 ボックスで選択した割引の基準に応じて、割引の金額または数量を入力します。
    • カタログ式ボックス 一覧からこの割引のオプションを選択します。選択できるオプションは、[[すべての商品]]、[[商品の選択]]、および [[式ビルダ]] です。

      [すべての商品] 購入されるすべての商品に割引を適用する場合は、このオプションを選択します。

      [商品の選択] カタログ内の特定の商品または商品カテゴリが購入されたときに割引を適用するには、このオプションを選択します。[商品の選択] ダイアログ ボックスを使って、カタログ内の特定の商品またはカテゴリを検索します。商品の選択を使用する方法については、「[新しい商品の選択]」を参照してください。

      または

      省略記号 [...] ボタンをクリックするか、または [[式ビルダ]] オプションを選択して、[カタログ式] ダイアログ ボックスを開きます。割引を適用する商品や商品カテゴリを指定するには、カタログ式を使います。カタログ式の作成については、「カタログ式を作成する」を参照してください。

      注

      • カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。
      • 以前に選択した商品やカテゴリがある場合は、それらもボックスの一覧に表示されます。

    割引条件の詳細については、「割引の条件」を参照してください。
    [特典] : [送料なし] このチェック ボックスをオンにすると、注文されたすべての商品の送料が、割引の特典として無料になります。

    割引の特典を適用する商品または商品カテゴリを指定するには、[送料なし] チェック ボックスをオフのままにして、これ以降の操作を行います。

    割引特典としての送料なしについては、「送料なし」を参照してください。
    [特典] : [注文代金の割引] このチェック ボックスをオンにして、割引を注文代金に適用します。

    注文代金の金額は、ユーザー バスケット内の品目ごとに計算されます。

    注文代金の割引については「注文代金の割引を参照してください。
    [特典]
    • 数値 割引のルールに適合したときに、ユーザーが特典を受けるカタログ項目の単位数を入力します。
    • カタログ式 ボックスの一覧から、この割引に関係するオプションを選択します。選択できるオプションは、[[すべての商品]]、[[商品の選択]]、および [[式ビルダ]] です。

      すべての商品 カタログ内のすべての商品にこの割引の特典が関係する場合に選択します。

      商品の選択 カタログ内の特定の商品またはカテゴリにこの特典が関係する場合に選択します。[商品の選択] ダイアログ ボックスには、カタログ内の特定の商品またはカテゴリを検索するためのインターフェイスが用意されています。商品の選択を使用する方法については、「[新しい商品の選択]」を参照してください。

      または

      省略記号 [...] ボタンをクリックするか、または [[式ビルダ]] オプションを選択して、[カタログ式] ダイアログ ボックスを開きます。カタログ式を作成し、特典を適用するカテゴリまたは商品を指定できます。カタログ式の作成については、「カタログ式を作成する」を参照してください。

      注

      • カタログ式ビルダでは、AND と OR 両方の累積条件を使用することができますが、割引に適用できるのは OR 条件だけです。AND 条件はサポートされていませんので、使用しないでください。
      • 以前に選択した商品やカテゴリがある場合は、それらもボックスの一覧に表示されます。
    • 型 ボックスの一覧から、割引の特典を適用するための測定単位を選択します。

      測定単位は [金額] または [パーセント (%)] のいずれかです。

    • 値 割引の特典の金額または数値を入力します。割引の特典は、選択した基準に応じて、金額またはパーセント (%) で適用されます。

    割引特典の詳細については、「割引の特典」を参照してください。
    [特典を利用できる制限回数] ボックスの一覧から割引の制限を選択します。[なし] を選択すると、割引の制限がなくなります。バスケットごとに 10 特典まで割引を制限できます。

    注

    • 複数のバスケットを調査対象にして、ユーザーが受けることのできる特典の数を制限する場合は、サイト開発者に問い合わせてください。

    割引制限の詳細については、「割引の制限」を参照してください。
    [[特典] で指定した商品のみ割引を適用する] 対象条件を特典として再利用しない場合は、この条件解除割引オプションを選択します。

    条件解除割引の詳細については、「条件解除割引」を参照してください。
    [[特典] および [対象] で指定した商品の両方に割引を適用する] 対象条件を特典として再利用する場合は、この条件解除割引を選択します。

    条件解除割引の詳細については、「条件解除割引」を参照してください。
    [クリック必須の割引 : 割引広告がクリックされたときだけ割引を適用する] ユーザーが割引広告をクリックしたときにだけ割引を適用するには、このチェック ボックスをオンにします。

    広告をクリックしなくても割引を適用する場合は、このチェック ボックスをオフのままにしておきます。

    注

    • サイト開発者は、この種類の割引を他の用途に拡張し、たとえば、ユーザーが割引を受けるために必要な割引券を提供することなどができます。

    クリック必須の割引の詳細については「クリック必須の割引」を参照してください。
    [特典を受ける対象] : [利用可能な式] | 利用可能な対象式の一覧で、割引対象を指定するための式を選択し、[追加] をクリックします。たとえば、作成した対象式をクリックして、割引を受ける対象となるユーザーまたはユーザー グループを指定します。対象式の作成については、「対象式を作成する」を参照してください。
    [割引の組み合わせ] : [この割引の条件を、他の割引の条件でも使用できるようにする] 条件項目を別の条件項目として再利用する場合は、このチェック ボックスをオンにします。

    割引管理ポリシーの詳細については、「複数の割引」を参照してください。
    [割引の組み合わせ] : [この割引の条件が、他の割引の特典を受けられるようにする] 条件項目を特典項目として再利用する場合は、このチェック ボックスをオンにします。

    割引管理ポリシーの詳細については、「複数の割引」を参照してください。
    [割引の組み合わせ] : [この割引の特典を、他の割引の条件でも使用できるようにする] 特典項目を条件項目として再利用する場合は、このチェック ボックスをオンにします。

    割引管理ポリシーの詳細については、「複数の割引」を参照してください。
    [割引の組み合わせ] : [この割引の特典に加え、他の割引の特典も受けられるようにする] 特典項目を別の特典項目として再利用する場合は、このチェック ボックスをオンにします。

    割引管理ポリシーの詳細については、「複数の割引」を参照してください。

割引について、条件、特典、および必要な資格が指定されます。

割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。割引の表示の設定については、「割引の表示を指定する」を参照してください。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

割引の例

割引プロパティを追加する

割引の対象をページ グループと対象グループに設定する

割引の表示を指定する

キャンペーンの変更を Web サイトに発行する


割引の対象をページ グループと対象グループに設定する

割引は、サイトのすべてのページに表示されるように指定することも、特定のページ グループだけに表示されるように指定することもできます。ページ グループを使用すると、割引を表示する Web ページを指定できます。たとえば、オンライン新聞 Web サイトの場合、ゴルフ クラブの割引をスポーツ ページだけに表示するように指定できます。

割引は、すべてのページ グループで表示できます。また、参照テーブル モジュールの [ページ グループ] セクションで作成したページ グループから選択することもできます。ページ グループの作成については、「ページ グループを追加する」を参照してください。

注

  • 割引の対象となるページ グループを指定する前に、サイト開発者がページでの広告表示を有効にする必要があります。ページでの広告表示を有効にする方法については、Commerce Server 2002 ヘルプの「Software Development Kit」にある「Discount Sitelet」を参照してください。

割引を表示する対象グループを指定することもできます。対象グループとは、特定のユーザーのグループを対象として指定する 2 つ以上の式の集まりです。対象グループを使うと、グループの中の特定のユーザーを対象グループに含めたり、特定のユーザーを除外することができます。対象グループの作成については、「対象グループを作成する」を参照してください。

注

割引について、さまざまな種類の条件、特典、および資格を設定する方法を示した例については、「割引の例」を参照してください。例では、それぞれの割引について、ビジネス デスクの [割引定義] 画面と、各ユーザー バスケット内の割引の結果を示します。

  • 割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。
  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

割引の対象となるページ グループを指定するには

割引の対象となる対象グループを指定するには

割引の対象となるページ グループを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックし、割引対象を指定する割引を選択します。次に、ツール バーの 開く をクリックします。
  2. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン割引項目> (割引 ID : <番号>)] 画面の [割引表示対象] セクションで、次の操作を行います。
    項目 操作
    [割引定義で選択した対象式の他に、次の対象グループで選択した対象式も使用する] [割引定義] 画面で選択した特典を受ける対象式に加え、ページ グループ、対象グループ、またはその両方を使う場合は、このオプションを選択します。たとえば、好きなスポーツがサイクリングであるユーザーを割引の対象にし、さらに、割引を特定のページ グループ (新聞サイトのスポーツ ページなど) に表示するように指定できます。

    ページ グループについては、「ページ グループを追加する」を参照してください。対象グループについては、「対象グループを作成する」を参照してください。
    [割引定義で選択した対象式の代わりに、次の対象グループで選択した対象式を使用する] [割引定義] 画面で選択した特定を受ける対象式の代わりに、ページ グループ、対象グループのいずれか、またはその両方を使う場合は、このオプションを選択します。

    ページ グループについては、「ページ グループを追加する」を参照してください。対象グループについては、「対象グループを作成する」を参照してください。
    [すべてのページ グループで表示] このチェック ボックスをオンにすると、Web サイトのすべてのページ グループに広告が表示されます。

    割引を特定のページ グループに割り当てるには、このチェック ボックスをオフにして、これ以降の操作を行います。
    [ページ グループ : 利用可能] 割り当てるページ グループを選択し、[追加] をクリックします。

    選択したページ グループが [割り当て] ボックスに移動します。[割り当て] ボックスからページ グループを削除するには、[削除] をクリックします。これにより、ページ グループが [利用可能] ボックスに移動します。

選択したページ グループと割引キャンペーンの対象に関する情報が、割引に指定されます。

割引の対象となる対象グループを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックし、割引対象を指定する割引を選択します。次に、ツール バーの 開く をクリックします。
  2. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン割引項目> (割引 ID : <番号>)] 画面の [割引表示対象] セクションで、次の操作を行います。
    項目 操作
    [割引定義で選択した対象式の他に、次の対象グループで選択した対象式も使用する] [割引定義] 画面で選択した特典を受ける対象式に加え、ページ グループ、対象グループ、またはその両方を使う場合は、このオプションを選択します。たとえば、好きなスポーツがサイクリングであるユーザーを割引の対象にし、さらに、割引を特定のページ グループ (新聞サイトのスポーツ ページなど) に表示するように指定できます。

    ページ グループについては、「ページ グループを追加する」を参照してください。対象グループについては、「対象グループを作成する」を参照してください。
    [割引定義で選択した対象式の代わりに、次の対象グループで選択した対象式を使用する] [割引定義] 画面で選択した特典を受ける対象式の代わりに、ページ グループ、対象グループのいずれか、またはその両方を使う場合は、このオプションを選択します。

    ページ グループについては、「ページ グループを追加する」を参照してください。対象グループについては、「対象グループを作成する」を参照してください。
    [対象グループ : 利用可能] この割引を適用する対象グループを選択し、[追加] をクリックします。

    選択した対象グループが [割り当て] ボックスに移動します。[割り当て] ボックスから対象グループを削除するには、[削除] をクリックします。これにより、対象グループが [利用可能] ボックスに移動します。

    対象グループについては、「対象グループ」および「対象グループを作成する」を参照してください。

選択した対象グループと割引キャンペーンの対象に関する情報が、割引に指定されます。

割引を保存するには、あらかじめ割引の表示を設定しておく必要があります。割引の表示の設定については、「割引の表示を指定する」を参照してください。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

割引の例

割引プロパティを追加する

条件と特典を定義し、割引の対象を設定する

割引の表示を指定する

キャンペーンの変更を Web サイトに発行する


割引の表示を指定する

割引の表示には、バスケットの表示と広告の表示の 2 種類があります。

  • バスケットの表示バスケットの表示は、適用される割引をテキストまたは HTML でユーザーに示します。割引をユーザーにわかりやすく表示することが重要です。わかりにくいと、ユーザーはバスケットを放棄することがあります。
  • 広告の表示広告の表示は、ユーザーに割引を表示する方法と形式を指定します。割引を宣伝する広告を表示するかどうかは、コンテンツ選択フレームワーク (CSF) によって決定されます。たとえば、カタログの全商品を 20% 割引で販売することを宣伝する大きな広告をホーム ページに表示できます。また、1 回のセッション中に特定の割引を表示する回数を指定することもできます。

バスケットの表示を指定するには

広告の表示を指定するには

バスケットの表示を指定するには

  • [キャンペーン マネージャ - <顧客> - <キャンペーン> - <割引キャンペーン項目> (割引 ID : <番号>)] 画面の [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [表示上限回数] 1 回のセッション中にユーザーに広告を表示できる回数をボックスの一覧から選択します。

    ユーザーに広告を表示できる回数の上限は、1 セッションあたり 10 回です。
    [バスケット表示] | ユーザーに割引を説明するテキストまたは HTML テキスト (HTML 形式) を入力します。

広告の表示を指定するには

割引を宣伝する広告を表示するには、主に 2 つの作業を行います。この手順は次のとおりです。

  • 割引のサイズを指定する
  • 割引の種類を設定する

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

割引のサイズを指定する

Commerce Server 2002 には、割引に適用できる標準的なコンテンツ サイズのセットが用意されています。また、カスタム コンテンツ サイズを独自に指定することもできます。標準のサイズとカスタム サイズのどちらを適用する場合でも、割引にコンテンツ サイズを適用するときには次の操作を行います。

注

  • カスタム コンテンツ サイズを指定するには、参照テーブル モジュールを使います。詳細については、「コンテンツ サイズを指定する」を参照してください。

割引のサイズを指定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、割引が作成されたキャンペーンを展開します。サイズを指定する割引を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <割引キャンペーン項目> (割引 ID : <番号>)] 画面の [割引の表示] セクションで、[コンテンツ サイズ] ボックスの一覧から割引のサイズを選択します。

これで、割引のコンテンツ サイズが指定されました。次に、割引の種類を設定します。

割引の種類を設定する

キャンペーンで利用される割引の種類を指定します。たとえば、イメージを含んでいる割引を表示したり、テキストのみの割引を表示したりすることができます。

割引の種類を設定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、顧客を展開し、割引を作成したキャンペーンを展開します。次に種類を設定する割引を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <割引キャンペーン項目> (割引 ID : <番号>)] 画面の [割引の表示] セクションで、[コンテンツの種類] ボックスの一覧から割引の種類を選択します。

    注

    • [種類] ボックスの下に表示されるボックスは、選択した広告の種類によって異なります。特定の種類の広告用に広告キャンペーンの表示を設定する方法については、このセクションの残りの手順を参照してください。

    設定できる割引の種類は次のとおりです。

    イメージ割引

    テキスト割引

    HTML 割引

    クリックできないイメージ割引

    Buy Now 割引

    Windows メディア サービス割引

    方向付きビネット割引

  4. 割引を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

    割引がキャンペーンに保存されます。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

イメージ割引

イメージ割引を、割引の表示スケジュールを設定するときに表示先として指定した Web ページにリンクします。この割引が表示されるページをユーザーが訪問すると、イメージが表示されます。

イメージ割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] | [イメージ] を選択します。
    [イメージの保存場所] 割引に表示するイメージの URL を入力します。

    注

    • 絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [クリック時のリンク先] 表示される割引のリンク先の URL を入力します。

    注

    • 絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスが有効になっていないときに表示される代替テキストを入力します。

割引がイメージ割引として設定されます。

テキスト割引

テキスト割引は、テキストだけで構成されます。この割引が表示されるページをユーザーが訪問すると、テキストが表示されます。

テキスト割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] | [テキスト] をクリックします。
    [テキスト] | 割引に表示するテキストを入力します。
    [クリック時のリンク先] 表示される割引のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。

割引がテキスト割引として設定されます。

HTML 割引

HTML 割引は、HTML コードで構成されます。この割引が表示されるページをユーザーが訪問すると、HTML コードから生成されたテキストが表示されます。

HTML 割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] | [HTML] をクリックします。
    [HTML テキスト] | 割引に表示する HTML テキストを HTML 形式で入力します。

割引が HTML 割引として設定されます。

クリックできないイメージ割引

クリックできないイメージ割引 (グラフィックス イメージ) は、この割引の表示対象として指定された Web ページにユーザーが訪問すると表示されます。この割引は、Web ページにリンクされません。

クリックできないイメージ割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] | [クリックできないイメージ] をクリックします。
    [イメージの保存場所] 割引に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスが有効になっていないときに表示される代替テキストを入力します。

広告が、クリックできないイメージ広告として設定されます。

Buy Now 割引

Buy Now 割引を使うと、ユーザーはインターネット上のどの Web ページからでも商品を購入できます。ユーザーが商品のイメージをクリックすると、送付先とクレジット カード情報の入力を求めるダイアログ ボックスが表示されます。

Buy Now 割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 広告のサイズを選択します。
    [コンテンツの種類] | [Buy Now] をクリックします。
    [イメージの保存場所] 広告に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [クリック時のリンク先] 表示される広告のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスの表示が無効になっている場合に表示する代替テキストを入力します。
    [ウィンドウの幅] | 広告の幅をピクセル数で入力します。
    [ウィンドウの高さ] | 広告の高さをピクセル数で入力します。

広告が Buy Now 割引として設定されます。

Windows Media サービス割引

Windows Media サービス割引では、高品質のオーディオとビデオによる広告が表示されます。

Windows Media サービス割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] | [Windows Media サービス] をクリックします。
    [Windows Media サービス ASF] | 割引の Windows Media サービス ASF を入力します。
    [クリック時のリンク先] 表示される割引のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。

割引が Windows メディア サービス割引として設定されます。

方向付きビネット割引

ビネット割引は、割引を表示するイメージと、それに隣接して表示されるテキストで構成されます。

方向付きビネット割引を設定するには

  • [割引の表示] セクションで、次の操作を行います。
    項目 | 操作
    [コンテンツ サイズ] | 割引のサイズを選択します。
    [コンテンツの種類] [テキストの左に画像を表示]、[テキストの右に画像を表示]、[テキストの上に画像を表示] のいずれかをクリックします。

    [テキストの左に画像を表示] 割引をテキストの左に配置します。

    [テキストの右に画像を表示] 割引をテキストの右に配置します。

    [テキストの上に画像を表示] 割引をテキストの上に配置します。
    [イメージの保存場所] 割引に表示するイメージの URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [テキスト] | 割引に隣接して表示するテキストを入力します。
    [クリック時のリンク先] 表示される割引のリンク先の URL を入力します。

    注

    絶対 URL (http://www.microsoft.com など) を入力する必要があります。
    [代替テキスト] | ユーザーのコンピュータでグラフィックスの表示が無効になっている場合に表示する代替テキストを入力します。

割引が方向付きビネット割引として設定されます。

関連項目

コンテンツ サイズを指定する

割引の表示をプレビューする

キャンペーンの変更を Web サイトに発行する


割引の表示をプレビューする

割引の表示を定義したら、表示をプレビューしてから Web サイトに発行します。ビジネス デスクの [割引の表示] セクションで広告をプレビューします。クリックが可能な割引の場合は、ユーザーが割引をクリックしたときに表示される Web ページをプレビューすることもできます。

注

  • 実際にバスケットに適用される割引は、ビジネス デスクに表示できません。実際の割引は、Web サイトでだけ表示できます。割引の例とユーザー バスケットでの表示結果については、「割引の例」を参照してください。
  • ビジネス デスクを SupplierActiveDirectory ソリューション サイトに基づいて構築し、認証フィルタを有効にしている場合は、認証コードが設定されるため、イメージ ファイルを表示することはできません。イメージ ファイルをビジネス デスクでプレビューするには、ビジネス デスクの仮想ルート フォルダに格納されているすべてのイメージ ファイルについて、匿名アクセスを有効にする必要があります。匿名アクセスの有効化については、Commerce Server 2002 ヘルプの「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。

割引をプレビューするには

割引の Web ページを表示するには

割引をプレビューするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、割引キャンペーンの表示をプレビューする割引を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン割引項目> (割引 ID : <番号>)] 画面の [割引の表示] セクションで、[プレビュー] をクリックします。
  4. [プレビュー] ダイアログ ボックスの [はい] をクリックして、割引を保存します。

割引のコピーが [プレビュー] ボタンの下の表示領域に表示されます。

割引に関連付けられている Web ページが、Internet Explorer の新しいウィンドウに表示されます。

割引の Web ページを表示するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、プレビューするイメージが含まれる割引を選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <キャンペーン項目> (割引 ID : <番号>)] 画面の [割引の表示] セクションで、必要なフィールドに情報が入力されていることを確認し、[プレビュー] ボタンの下の表示領域で割引をクリックします。

割引に関連付けられている Web ページが、Internet Explorer の新しいウィンドウに表示されます。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

関連項目

割引を作成する

広告の表示を指定する

広告をプレビューする


割引をコピーする

既存の割引をコピーすると、キャンペーンの割引を簡単に追加できます。既存の割引をテンプレートとして使用し、そのプロパティを変更することで、新しい割引キャンペーン項目の目標を設定できます。

割引をコピーするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、コピーする割引を選択し、ツール バーの コピー をクリックします。
  3. [割引のコピー] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [顧客の選択] | 割引のコピー元となる顧客をボックスの一覧から選択します。
    [キャンペーンの選択] | 割引のコピー元となるキャンペーンをボックスの一覧から選択します。
  4. [OK] をクリックします。
  5. [キャンペーン マネージャ - <顧客> - <キャンペーン> 新規 (割引)] 画面の [割引プロパティ] セクションの [割引名] ボックスに新しい割引の名前を入力します。
  6. 残りのプロパティを必要に応じて編集します。割引を保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

キャンペーン マネージャのツリーで、顧客とキャンペーンの下に新しい割引が表示されます。

関連項目

割引を作成する


割引の例

次の例は、それぞれの割引について、ビジネス デスクの [割引定義] 画面と、各ユーザー バスケット内の割引の結果を示しています。これらの例では、カタログ内にあって割引の適用対象となる商品またはカテゴリ、割引の金額、およびユーザーが受ける特典を指定しています。割引を作成する方法については、「割引を作成する」を参照してください。

次の各例を読み進めていくときは、それぞれの割引のメカニズムを理解することが重要です。割引を適用した結果は、優先順位、条件、特典、割引管理ポリシーなどの割引コンポーネントによって異なるためです。複数の割引がある場合の割引の適用方法については、「割引適用ポリシー」を参照してください。

注

  • 割引のシナリオは無数にあり、ユーザーがどの商品をバスケットに入れるのかも予測はつかないため、独自の割引を運用サイトに導入する前に、その割引を準備環境のサーバー上に作成して、独自の割引シナリオをテストしておくことをお勧めします。

重要

  • 割引に対する変更の内容はすべて、Web サイトに表示する前に、運用サイトに発行する必要があります。変更を Web サイトに発行する方法については、「キャンペーンの変更を Web サイトに発行する」を参照してください。

強調表示されている割引コンポーネントの詳細については、次の対話型画面をクリックしてください。

ここでは、次の種類の割引について、例を用意しています。

  • 項目レベルの割引の例
  • 注文レベルの割引の例
  • 複数の割引の例
  • 複雑な割引の例


項目レベルの割引の例

"項目レベルの割引" は、バスケット内の特定の商品に適用されます。1 つの項目または 1 回の注文に対して、複数の割引を適用することができます。項目レベルで作成できる割引は、商品の価格の何割かを差し引く割引、または一定額を差し引く割引です。

項目レベル : A を購入すると B が 10% の割引

項目レベル : A を購入すると B が 200 円の割引

項目レベル : A を購入すると B が 10% の割引

次の [割引定義] 画面は、項目レベルの割引を作成し、"バックパック" カテゴリ内の項目を購入したユーザーを対象として、カタログ項目に 10% の割引を適用する方法を示しています。

条件 : "Backpack(バックパック)" カテゴリ内にあるカタログ項目を 1 つ購入

特典 : ユニバーシティー のバックパック (AW140-13) が 10% の割引

割引管理ポリシー : なし

優先順位 : 10

項目レベルの割引 - A を購入すると B が 10% の割引

次のバスケットでは、ユニバーシティーのバックパックが 10% の割引になっています。ユーザーが Backpack カテゴリにあるエースのバックパック (AW325-13) をバスケットに入れたので、割引の条件は満たされています。したがって、ユニバーシティーのバックパック (AW140-13) に 10% の特典が適用されます。

割引のシナリオ 1 のユーザー バスケット

項目レベル : A を購入すると B が 200 円の割引

次の [割引定義] 画面は、項目レベルの割引を作成して、カタログ項目に 200 円の割引を適用する方法を示しています。

条件 : ビッグ サーの寝袋 (AW200-12) を 1 つ購入

特典 : パシフィックのバックパック (AW151-13) が 200 円の割引

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、パシフィックのバックパックが 200 円の割引になっています。ユーザーがビッグ サーの寝袋をバスケットに入れたので、割引の条件は満たされています。したがって、パシフィックのバックパックに 200 円の特典が適用されます。

関連項目

割引を作成する

割引と特典を定義し、割引の対象を設定する

割引

割引の条件

割引の特典

割引の特典を受ける対象


注文レベルの割引の例

"注文レベルの割引" は、買い物バスケットのすべての商品に適用されます。たとえば、"送料なし" は注文レベルの割引の一種です。バスケット内にあるすべての商品の送料を無料にすることができます。Commerce Server で利用できる注文レベルの割引は、送料を無料にする割引、注文商品の合計金額の何割かを差し引く割引、および注文商品の合計金額から一定額を差し引く割引です。

注文レベル : A を 3,000 円分購入すると送料なし

注文レベル : A を 2,000 円分購入すると注文代金が 10% の割引

注文レベル : A を 2 つ購入すると注文代金が 100 円の割引

注文レベル : A を 3,000 円分購入すると送料なし

次の [割引定義] 画面は、送料割引を作成して、ユーザーが "カラビナ" カテゴリ内のカタログ項目を合計 3,000 円以上購入した場合に送料を無料にする方法を示しています。

条件 : "Carabinar(カラビナ)" カテゴリ内のカタログ項目を 3000 円分以上購入

特典 : "送料なし" を適用

割引管理ポリシー : なし

優先順位 : 10

[割引定義] 画面 - 送料割引

次のバスケットは、"送料なし" 割引を示しています。ユーザーがペツル スピリット (AW014-08) を 22 個バスケットに入れ、"Carabiner(カラビナ)" カテゴリでの合計金額が 3,000 円を超えたので、割引の条件は満たされています。したがって、注文代金に "送料なし" の特典が適用されます。

注文レベル : A を 2,000 円分購入すると注文代金が 10% の割引

次の [割引定義] 画面は、注文レベルの割引を作成し、カタログ項目を合計 2,000 円分以上購入したユーザーを対象として、商品の注文代金に 10% の割引を適用する方法を示しています。

条件 : "Boots(ブーツ)" カテゴリ内のカタログ項目を 2,000 円分以上購入

特典 : 注文代金が 10% の割引

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、注文代金が 10% の割引になっています。ユーザーが 2,000 円分のブーツをバスケットに入れたので、割引の条件は満たされています。したがって、注文代金に 10% の割引特典が適用されます。特典の金額は、バスケット内の 3 つの品目ごとに計算されます。ユーザーが払い戻しを要求した場合でも、払い戻しは正しく処理されます。なぜなら、割引が、注文代金にではなく個々の品目に適用されているためです。

注文代金に対する 10% の割引

注文レベル : A を 2 つ購入すると注文代金が 100 円の割引

次の [割引定義] 画面は、注文レベルの割引を作成し、カタログ項目を 2 つ購入したユーザーを対象として、注文代金に 100 円の割引を適用する方法を示しています。

条件 : デューンのブーツ (AW074-04) を 2 足購入

特典 : 注文代金が 100 円の割引

割引管理ポリシー : なし

優先順位 : 10

注文代金に対する 100 円の割引

次のバスケットは、注文代金が 100 円の割引になっています。ユーザーがデューンのブーツを 2 足バスケットに入れたので、割引の条件は満たされています。したがって、注文代金に 100 円の割引特典が適用されます。特典の金額は、バスケット内の品目ごとに計算されます。ユーザーが払い戻しを要求した場合、払い戻しは正しく処理されます。なぜなら、割引が、最終価格にではなく個々の品目に適用されているためです。

ユーザー バスケット - 注文代金 - 金額割引

関連項目

割引を作成する

割引と特典を定義し、割引の対象を設定する

割引

割引の条件

割引の特典

割引の特典を受ける対象


複数の割引の例

Commerce Server 2002 では、1 つの項目または注文に複数の割引を適用したり、割引の適用順序を制御したりできます。1 つの注文の中で、項目レベルの割引と注文レベルの割引を混在させることもできます。

項目レベル/項目レベル : A を購入すると B が 50% の割引、かつ A を購入すると C が 100 円の割引

項目レベル/項目レベル : X を購入すると A が 50% の割引、かつ B を購入すると X が 50% の割引

項目レベル/項目レベル : A を購入すると X が 50% の割引、かつ X を購入すると B が 50% の割引

項目レベル/項目レベル : A を購入すると X が 100 円の割引、かつ B を購入すると X が 200 円の割引

注文レベル/注文レベル : A を 1,000 円分以上購入すると合計金額が 100 円の割引、かつ A を 10 個購入すると合計金額が 10% の割引

項目レベル/注文レベル : A を購入すると B が 10% の割引、かつ C を購入すると合計金額が 1,000 円の割引

項目レベル/項目レベル : A を購入すると B が 50% の割引、かつ A を購入すると C が 100 円の割引

次の [割引定義] 画面は、割引の条件を別の割引の条件として再利用することを許可する割引管理ポリシーを使って、割引を作成する方法を示しています。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

条件 : ペツルのハーネス (AW072-10) を購入

特典 : エル キャピタンのハーネス (AW053-10) が 50% の割引、かつブラック ダイヤモンド ボッドのハーネス (AW032-10) が 100 円の割引

割引管理ポリシー : この割引の条件を、他の割引の条件でも使用できるようにする

優先順位 : 10

[割引定義] 画面 - 複数の割引

[割引定義] 画面 - 複数の割引

次のバスケットでは、エル キャピタンのハーネスが 50% の割引、ブラックダイヤモンド ボッドのハーネスが 100 円の割引になっています。ユーザーがペツル マーキュリーのハーネスをバスケットに入れたので、割引の条件は満たされています。割引管理ポリシーによって、Petzl の Mercury ハーネスを別の割引の条件として再利用することが許可されています。したがって、エル キャピタンのハーネスに 50% の割引特典が適用され、かつブラック ダイヤモンド ボッドのハーネスに 100 円の割引特典が適用されます。

項目レベル/項目レベル : X を購入すると A が 50% の割引、かつ B を購入すると X が 50% の割引

次の [割引定義] 画面は、割引の条件を別の割引の特典として再利用することを許可する割引管理ポリシーを使って、割引を作成する方法を示しています。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

条件 : 女性用 4 ポケット のパンツ (AW032-01) を 1 本購入

特典 : ユニセックス ハイキング パンツ (AW055-01) が 50% の割引

割引管理ポリシー : この割引の条件が、他の割引の特典を受けられるようにする

優先順位 : 10

[割引定義] 画面 - 複数の割引

条件 : 男性用 8 ポケット 切り替えパンツ (AW046-01) を 1 本購入

特典 : 女性用 4 ポケット パンツ (AW032-01) が 50% の割引

割引管理ポリシー : なし

優先順位 : 20

[割引定義] 画面 - 複数の割引

次のバスケットでは、女性用 4 ポケット パンツが 50% の割引、ユニセックス ハイキング パンツが 50% の割引になっています。ユーザーが、女性用の 4 ポケット パンツと男性用 8 ポケット 切り替えパンツをバスケットに入れたので、割引の条件は満たされています。割引管理ポリシーによって、女性用 4 ポケット パンツを特典として再利用することが許可されています。したがって、女性用 4 ポケット パンツとユニセックス ハイキング パンツに 50% の割引特典が適用されます。

項目レベル/項目レベル : A を購入すると X が 50% の割引、かつ X を購入すると B が 50% の割引

次の [割引定義] 画面は、割引の特典を条件として再利用することを許可する割引管理ポリシーを使って、割引を作成する方法を示しています。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

条件 : クリスタルのパーカー (AW125-06) を 1 着購入

特典 : サハラのパーカー (AW114-06) が 50% の割引

割引管理ポリシー : この割引特典を、他の割引の条件でも使用できるようにする

優先順位 : 10

条件 : サハラのパーカー (AW114-06) を 1 着購入

特典 : アルパインのパーカー (AW188-06) が 50% の割引

割引管理ポリシー : なし

優先順位 : 20

次のバスケットでは、サハラのパーカーが 50% の割引、アルパインのパーカーが 50% の割引になっています。ユーザーがクリスタルのパーカーとサハラのパーカーをバスケットに入れたので、割引の条件は満たされています。割引管理ポリシーによって、サハラのパーカーの特典を割引条件として再利用することが許可されています。したがって、アルパインのパーカーに 50% の割引特典が適用されます。

項目レベル/項目レベル : A を購入すると X が 100 円の割引、かつ B を購入すると X が 200 円の割引

次の [割引定義] 画面は、特典を特典として再利用することを許可する割引管理ポリシーを使って、割引を作成する方法を示しています。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

条件 : モローのロックシューズ (AW084-05) を 1 足購入

特典 : トスカナのロックシューズ (AW086-06) 1 足が 100 円の割引

割引管理ポリシー : この割引の特典に加え、他の割引の特典も受けられるようにする

優先順位 : 10

条件 : プリマスのロックシューズ (AW125-05) を 1 足購入

特典 : トスカナのロックシューズ (AW086-06) 1 足が 200 円の割引

割引管理ポリシー : なし

優先順位 : 20

次のバスケットでは、トスカナのロックシューズが 300 円の割引になっています。ユーザーがモローのロックシューズとプリマスのロックシューズをバスケットに入れたので、割引の条件は満たされています。割引管理ポリシーによって、トスカナのロックシューズの特典を両方の割引の特典として使用することが許可されています。したがって、トスカナのロックシューズは、100 円の割引特典と 200 円の割引特典の両方、つまり合計で 300 円の割引を受けます。

注文レベル/注文レベル : A を 1,000 円分以上購入すると合計金額が 100 円の割引、かつ A を 10 個購入すると合計金額が 10% の割引

次の [割引定義] 画面は、ある特典を他でも特典として再利用することを許可する割引管理ポリシーを使って、注文レベルの割引を作成する方法を示しています。割引管理ポリシーの詳細については、「複数の割引」を参照してください。

条件 : "Shirt(シャツ)" カテゴリ内のカタログ項目を 1,000 円分以上購入

特典 : 注文代金が 100 円の割引

割引管理ポリシー : この割引特典を他の割引の特典とすることを許可

優先順位 : 10

条件 : 男性用のボタンダウン シャツ (AW042-03) を 10 枚購入

特典 : 注文代金が 10% の割引

割引管理ポリシー : なし

優先順位 : 20

次のバスケットでは、注文代金に 100 円の割引と 10% の割引が適用されています。ユーザーが、シャツを 3 枚 (合計 1,000 円以上) と紳士物のボタン ダウン シャツを 10 枚バスケットに入れたので、割引の条件は満たされています。割引管理ポリシーによって、注文代金の特典に加え、他の特典も利用することが許可されます。したがって、100 円の割引と 10% の割引が、両方とも注文代金に適用されます。注文代金の割引額は、バスケット内の両方の品目に分散されます。

項目レベル/注文レベル : A を購入すると B が 10% の割引、かつ C を購入すると合計金額が 100 円の割引

次の [割引定義] 画面は、項目レベルの割引と注文レベルの割引を両方とも含む割引を作成する方法を示しています。

条件 : ポーラ スターの寝袋 (AW310-12) を購入

特典 : ノース フェイス サンスポット寝袋 (AW390-12) が 10% の割引

割引管理ポリシー : なし

優先順位 : 10

条件 : ビッグ サーの寝袋 (AW200-12) を購入

特典 : 注文代金が 100 円の割引

割引管理ポリシー : なし

優先順位 : 20

次のバスケットでは、ノース フェイス サンスポット寝袋が 10% の割引、注文代金が 100 円の割引になっています。ユーザーがポーラー スターの寝袋とビッグ サーの寝袋をバスケットに入れたので、割引の条件は満たされています。したがって、ノース フェイス サンスポット寝袋に 10% の特典が適用され、注文代金に 100 円の特典が適用されます。注文代金の割引額は、バスケット内の 3 つの品目ごとに計算されます。

関連項目

割引を作成する

割引と特典を定義し、割引の対象を設定する

割引

割引の条件

割引の特典

割引の特典を受ける対象


複雑な割引の例

Commerce Server 2002 には、1 つの項目または注文に複数の割引を適用する機能が用意されており、1 つの注文の中で項目レベルの割引と注文レベルの割引を混在させることもできます。次の例は、複数の割引が適用され、項目レベルの割引と注文レベルの割引の両方が適用されるときの [割引定義] 画面とユーザー バスケットを示しています。

注文レベル/項目レベル : C を購入すると合計金額が 100 円の割引、かつ A が 10% の割引

注文レベル/項目レベル : C を購入すると合計金額が 100 円の割引、かつ何を購入しても B が 10% の割引

注文レベル : A を 2 つ購入すると A が 1 つ無料

項目レベル : A を 2 つ購入すると A の 1 つが 10% の割引

注文レベル/項目レベル : C を購入すると合計金額が 100 円の割引、かつ A が 10% の割引

次の [割引定義] 画面は、注文レベルの割引と項目レベルの割引を両方とも含む割引を示しています。

条件 : ビッグ サーの寝袋 (AW200-12) を購入

特典 : 注文代金が 100 円の割引

割引管理ポリシー : なし

優先順位 : 20

条件 : 任意の商品を購入

特典 : スカウトプライドの調理セット (AW475-14) が 100 円の割引

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、Scoutpride の調理セットが 10% の割引になっています。ユーザーがビッグ サーの寝袋をバスケットに入れたので、割引の条件は満たされています。スカウトプライドの調理セットに 10% の割引特典が適用されます。注文代金が 1,000 円の割引の優先順位 (20) よりも、スカウトプライドの調理セットの割引の優先順位 (10) の方が高いので、注文代金には特典が適用されません。

注文レベル/項目レベル : C を購入すると合計金額が 100 円の割引、かつ何を購入しても B が 10% の割引

次の [割引定義] 画面は、注文レベルの割引と "すべての商品" 項目レベルの割引を両方とも含む割引を作成する方法を示しています。

条件 : ビッグ サーの寝袋 (AW200-12) を購入

特典 : 注文代金が 100 円の割引

割引管理ポリシー : なし

優先順位 : 20

条件 : すべての商品

特典 : ウルフガングのストーブ (AW051-14) が 10% の割引

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、ウルフガングのストーブに 10% の割引が適用され、さらに注文代金に100 円の割引が適用されています。ユーザーがウルフガングのストーブをバスケットに入れたときに、10% の特典が適用されます。"すべての商品" プロパティでは、項目がバスケットに入っているという条件は必要ないので、ビッグ サーの寝袋は調理セットの条件として使われていません。そのため、100 円の注文代金の割引を適用する条件として使われています。

注文レベル : A を 2 つ購入すると A が 1 つ無料

次の [割引定義] 画面は、ユーザーが同じカタログ項目を 2 つ購入した場合に、そのうち 1 つが無料になる特典を与える割引を作成する方法を示しています。この割引のシナリオでは、条件解除割引プロパティを使って、割引の条件として使っている項目を特典として再利用するかどうかを決定します。条件解除割引の詳細については、「条件解除割引」を参照してください。

条件 : アプトスのテント (AW335-11) を 2 つ購入

特典 : アプトスのテントが 1 つ無料

条件解除割引 : [[特典] および [対象] で指定した商品の両方に割引を適用する]

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、ユーザーがアプトスのテントを 2 つバスケットに入れた後、1 つが無料になっています。[[特典] および [対象] で指定した商品の両方に割引を適用する] 条件解除割引プロパティによって、条件項目を同じ割引の特典として再利用することが許可されます。このシナリオでは、最初のテントが条件として使われ、2 番目のテントが条件として使われ、さらに 100% の割引が特典として適用されています。条件解除割引の詳細については、「条件解除割引」を参照してください。

項目レベル : A を 2 つ購入すると A の 1 つが 10% の割引

次の [割引定義] 画面は、条件項目を特典として再利用する条件解除割引プロパティ ("[特典] および [対象] で指定した商品の両方に割引を適用する") を使わないと、バスケットで目的の結果が得られないことを示しています。条件解除割引の詳細については、「条件解除割引」を参照してください。

条件 : スターライトのテント (AW425-11) を 2 つ購入

特典 : スターライトのテントが 10% の割引

条件解除割引 : [[特典] で指定した商品のみ割引を適用する]

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、2 番目のスターライトのテントに割引が適用されません。条件解除割引プロパティとして [[特典] および [対象] で指定した商品の両方に割引を適用する] が選択されていないので、条件項目を特典として再利用することはできません。このシナリオでは、最初と 2 番目のテントが条件として使われ、特典には適用されません。条件解除割引の詳細については、「条件解除割引」を参照してください。

次のバスケットの中には、3 つのスターライトのテントがあります。バスケットの中にある 3 番目のスターライトのテントに 10% の割引特典が適用されます。このシナリオでは、最初と 2 番目のテントが条件として使われ、3 番目のテントは条件には使われません。そのため、10% の割引が特典として適用されています。

次の [割引定義] 画面は、前の例 (「項目レベル : A を 2 つ購入すると A の 1 つが 10% の割引」) で、同じ項目レベルの割引に対して条件項目を特典として再利用する条件解除割引プロパティ ([[特典] および [対象] で指定した商品の両方に割引を適用する]) を使うと、バスケットで目的の結果が得られることを示します。

条件 : スターライトのテント (AW425-11) を 2 つ購入

特典 : スターライトのテントが 10% の割引

条件解除割引 : [[特典] および [対象] で指定した商品の両方に割引を適用する]

割引管理ポリシー : なし

優先順位 : 10

次のバスケットでは、2 番目のスターライトのテントが 10% の割引になっています。[[特典] および[対象] で指定した商品の両方に割引を適用する] 条件解除割引プロパティによって、条件項目を特典として再利用することが許可されます。このシナリオでは、最初と 2 番目のテントが条件として使われ、2 番目のテントに 10% 割引の特典が適用されます。条件解除割引の詳細については、「条件解除割引」を参照してください。

関連項目

割引を作成する

割引と特典を定義し、割引の対象を設定する

割引

割引の条件

割引の特典

割引の特典を受ける対象


割引適用ポリシー

キャンペーン マネージャは、互いに組み合わせて使用できる項目レベルの割引、注文レベルの割引 (送料の割引など) など複数の割引を作成し、適用できます。たとえば、バスケットは複数の項目レベルの条件と注文レベルの条件を満たすことがあり、これらの条件に 1 つ以上の割引ポリシーが設定されていることがあります。

Commerce Server は、優先順位と管理ポリシーだけでは割引の順序を決定できないときに、次のポリシーを使います。

条件適用ポリシー

  • disjoint = False の場合、Commerce Server は特典を受ける項目に対しても条件を割り当てます。
  • Commerce Server は、前のポリシーに違反する場合を除き、特典として使用できなくなるまで項目を使います。
  • disjoint = True の場合、Commerce Server は特典として割り当てられた項目に条件が割り当てられるのを防ぎます。

特典適用ポリシー

  • Commerce Server は、キャンペーン マネージャで指定した割引管理ポリシーを満たします。
  • 等しく特典を受けることができる複数の項目がある場合は、サイト運営者にとって有利になるように、最も高額な割引が適用されている項目が選択されます。

関連項目

割引

割引の優先順位

割引の条件

割引の特典

複数の割引

複数の割引の例

条件解除割引


キャンペーンの変更を Web サイトに発行する

Web サイトに追加した新しい情報でサイトを直ちに更新するには、キャンペーンの発行モジュールを使います。多くの電子商取引ビジネスでは、まずテスト サイトで変更を行ってから、スケジュール設定された日時に運用サイトに変更を発行します。変更内容を運用サイトに発行する時期と方法については、システム管理者に問い合わせてください。

キャンペーンの発行モジュールが備えている検索機能を利用すると、キャンペーン項目の種類に基づいて Web サーバー上のサイトを検索できます。サイトと、サイトに含まれるキャンペーン キャッシュを表示できます。サイトのキャンペーン キャッシュを発行しない場合は、そのキャッシュを検索結果一覧から削除できます。

注

  • Web サーバーまたはサイトが検索結果一覧に表示されない場合、その原因としては、キャンペーン システムを使用するページをサイト ユーザーがまだ訪れていないことが考えられます。各 Web サーバーとサイトは、キャンペーン システムがキャンペーン情報を最初に読み込んだときに、自動的に登録されます。Campaigns データベースの virtual_directory テーブルは、最初にユーザーがキャッシュ データを問い合わせた後で更新されます。virtual_directory テーブルが更新されると、キャンペーンの発行モジュールにキャンペーン キャッシュが表示されます。

キャンペーン キャッシュを検索するには

キャンペーン キャッシュを削除するには

キャンペーン項目を発行するには

キャンペーン キャッシュを検索するには

  1. [キャンペーン] で、[キャンペーンの発行] をクリックします。
  2. [キャンペーンの発行] 画面で、ツール バーの キャンペーン キャッシュの検索 をクリックします。
  3. 検索ペインの [検索対象] ボックスで、検索するキャンペーン キャッシュの種類をボックスの一覧から選択し、[検索開始] をクリックします。

検索条件に一致する種類のキャッシュを含んだサイトが [サイトに発行する項目] ボックスに表示されます。

キャンペーン キャッシュを削除するには

  1. [キャンペーン] で、[キャンペーンの発行] をクリックします。
  2. [キャンペーンの発行] 画面で、ツール バーの キャンペーン キャッシュの検索 をクリックします。
  3. 検索ペインの [検索対象] ボックスで、削除するキャンペーン キャッシュの種類をボックスの一覧から選択し、[検索開始] をクリックします。

    検索条件に一致する種類のキャッシュを含んだサイトが [サイトに発行する項目] ボックスに表示されます。

  4. サイトおよび削除するキャンペーン キャッシュを選択し、ツール バーの 削除 をクリックします。
  5. [削除しますか?] ダイアログ ボックスで、[はい] をクリックし、選択したサイトのキャンペーン キャッシュを削除します。

選択したサイトのキャンペーン キャッシュが、[サイトに発行する項目] ボックスから削除されます。

キャンペーン項目を発行するには

  1. [キャンペーン] で、[キャンペーンの発行] をクリックします。
  2. [キャンペーンの発行] 画面で、発行するキャンペーン項目を選択し、ツール バーの 変更をサイトに発行し、キャッシュを更新 をクリックします。

キャンペーン項目が運用サイトに送信されます。サイトが更新され、新しいキャンペーン項目が追加されます。

注

  • 必要なアクセス許可を持っていない場合やデータベースへの接続に問題がある場合には、サイトは更新されず、新しいキャンペーン項目は追加されません。また、キャンペーンの発行には Bdrefresh.asp という ASP ページが必要になります。このページは、各 Web サーバー上で、サイトのルート ディレクトリに置いておく必要があります。サイトを更新できない場合は、システム管理者に問い合わせてください。

関連項目

広告を作成する

割引を作成する


ユーザー レコード リストを管理する

リストの作成と管理を行うには、リスト マネージャを使います。リストには、汎用リストとメーラブル リストの 2 種類があります。汎用リストは、レポート モジュールまたは SQL Server テーブルからリスト マネージャにインポートされたリストです。メーラブル リストは、汎用リストの下位カテゴリです。このリストには、電子メール アドレスを格納する列 (rcp_email) が含まれています。メーリング リストからインポートされた、その他の列が含まれていることもあります。メーリング リストについては、「メーリング リスト」を参照してください。

メーリング リストは、リストから選ばれた受信者に対してダイレクト メーラーが電子メールの作成と送信を行うときに使われます。汎用リストに電子メール アドレスが含まれておらず、ユーザー リストの要件が満たされていると、その汎用リストはユーザー リストとしてインポートされます。ユーザー リストの要件の詳細については、「ユーザー リスト」を参照してください。

リストを作成するには、リスト マネージャを使用して、Microsoft SQL Server (SQL テーブル作成用) やメモ帳 (ASCII テキスト ファイル作成用) などのアプリケーションで作成したリストをインポートします。

リスト マネージャにインポートされたリストを使ってダイレクト メーラー ジョブを実行すると、対象となるユーザーをより的確に指定できます。たとえば、ユーザーの特性や過去の行動を示すレポートを実行し、そのユーザーを広告や商品の対象とするダイレクト メール キャンペーンを作成できます。

個々の受信者は、キャンペーン レベルとサイト レベルのどちらの脱退リストに配置されるのかを要求することができます。特定のキャンペーン項目の一部として作成されたダイレクト メール メッセージを受信しないことを要求した受信者は、キャンペーン レベルの脱退リストに配置されます。キャンペーン レベルの脱退リストの名前は、"Opt Out <キャンペーン項目 ID>" になります。脱退リストへの配置を要求したユーザーは、サイトのダイレクト メール キャンペーンで作成されたダイレクト メール メッセージを一切受信しなくなります。[リスト マネージャ] 画面で、サイト レベルの脱退リストの名前は "Opt Out" と表示されます。脱退リストの詳細については、「脱退リスト」を参照してください。

また、リスト マネージャを使って、ファイルまたは SQL Server データベースへのリストのエクスポート、リストの追加や削除、リストのコピー、リストの抽出、およびリスト自体の削除を行うこともできます。

ここでは、次のトピックについて説明します。

  • リストをインポートおよびエクスポートする
  • エクスポートしたリストを表示する
  • リストを追加および削除する
  • リストの名前を変更する
  • メーリング リストをコピーする
  • メーリング リストを抽出する
  • リストを削除する


リストをインポートおよびエクスポートする

リストを作成するには、リスト マネージャを使用して、Microsoft SQL Server (SQL テーブル作成用) やメモ帳 (ASCII テキスト ファイル作成用) などのアプリケーションで作成したリストをインポートします。リスト マネージャで取り扱うファイルは、特定のメーリング リスト形式になっている必要があります。メーリング リストの形式については、「メーリング リストを作成する」を参照してください。また、静的分析レポートやセグメント ビューア リストをリスト マネージャにインポートすることもできます。これらのリストを使ってダイレクト メーラー ジョブを実行すると、メールを送る対象となるユーザーをより的確に指定できます。

また、リスト マネージャからファイルまたは SQL Server データベース テーブルにリストをエクスポートし、そのリストのメンバを検索したり表示したりすることもできます。

リストをインポートするには

リストをエクスポートするには

リストをインポートするには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、ツール バーの リストのインポート をクリックします。
  3. リストが作成されたソースを選択します。

    選択できるオプションは、[ファイル] と [SQL テーブル] です。

    • メモ帳などのアプリケーションを使用してリストをフラット テキスト ファイルで作成した場合は、[ファイル] を選択します。
    • リストを SQL テーブル内に作成した場合は、[SQL テーブル] を選択します。
  4. [リストのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [リストの種類]
    • 静的リストをインポートするには、[静的] チェック ボックスをオンにします。
    • 動的リストをインポートするには、[動的] チェック ボックスをオンにします。
    [コピー先のリスト名を入力] | インポートするリストの名前を入力します。
    [サーバーのファイルを指定]
    • インポート元のリストがフラット テキスト ファイルの場合は、リストのパス、ファイル名、および拡張子を入力します。
      注
      • パス (<ドライブ名>:\<ファイル名> など) を指定するときの <ドライブ名> は、サーバー コンピュータのドライブ名を指します。クライアント コンピュータのドライブ名ではありません。クライアント コンピュータ上でインポートを実行するには、汎用名前付け規則 (UNC) パスを入力します。
      • インポートするリストが SQL テーブル内に作成されている場合は、次の操作を行います。
      1. [接続文字列] ボックスに、データベース接続文字列を入力します。この文字列で、データベースの場所と接続方法を定義します。

        例 : OLEDB 接続文字列 :

        Provider=SQLOLEDB.1;Integrated
Security='SSPI';Initial
Catalog="Retail_Commerce";
Data Source=<machine name>"
      2. [SQL クエリ] ボックスに、目的の情報を取得するための SQL クエリを入力します。クエリのメンバは、すべて完全修飾名で指定する必要があります。

        例 : SQL Server 7.0 データベース クエリ :

        SELECT u_email_address AS rcp_email
FROM retail_commerce.dbo.UserObject
WHERE d_date_registered >= '03/01/2000'

        例 : リモート SQL Server データベース クエリ

        SELECT u_email_address AS rcp_email
FROM <Server name>.retail_commerce.dbo.UserObject
WHERE d_date_registered >= '03/01/2000'

        リスト マネージャのフィールド名の要件については、「メーリング リストを作成する」を参照してください。

      注

      • データベース プロパティおよび SQL クエリの情報については、システム管理者に問い合わせてください。SQL クエリの記述方法については、SQL Server Books Online の「クエリ - SQL Server, 基礎」を参照してください。
  5. [OK] をクリックします。

新しいリストがリスト マネージャに表示されます。これで、このリストをダイレクト メール キャンペーンで使用できるようになりました。

リストをエクスポートするには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、エクスポートするリストを選択し、ツール バーの リストのエクスポート をクリックします。
  3. エクスポートするリストのソースを選択します。

    選択できるオプションは、[ファイル] と [SQL テーブル] です。

    • メモ帳などのアプリケーションを使用してリストをフラット テキスト ファイルで作成した場合は、[ファイル] を選択します。
    • リストを SQL テーブル内に作成した場合は、[SQL テーブル] を選択します。
  4. [リストのエクスポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバーのファイルを指定] または [データベース プロパティ]
    • エクスポート元のリストがフラット テキスト ファイルの場合は、エクスポート先リストのパス、ファイル名、および拡張子を入力します。
      注
      • パス (<ドライブ名>:\<ファイル名> など) を指定するときの <ドライブ名> は、サーバー コンピュータのドライブ名を指します。クライアント コンピュータのドライブ名ではありません。クライアント コンピュータ上でエクスポートを実行するには、汎用名前付け規則 (UNC) パスを入力します。
      • エクスポートするリストが SQL テーブル内に作成されている場合は、次の操作を行います。
      1. [接続文字列] ボックスに、データベース接続文字列を入力します。この文字列で、データベースの場所と接続方法を定義します。

        例 : OLEDB 接続文字列 :

        Provider=SQLOLEDB.1;
Integrated Security='SSPI';
Initial Catalog="Retail_Commerce";
Data Source=<machine name>"
      2. [テーブル名] ボックスに、リストのエクスポート先となるテーブルの名前を入力します。
      注
      • ファイルにエクスポートできるのは、メーラブル リスト (rcp_email 列のあるリスト) のみです。
      • データベース プロパティの情報については、システム管理者に問い合わせてください。
    [既存のファイルを上書きする] または [既存のテーブルを上書きする] | これからエクスポートするリストで既存のファイルまたはテーブルを上書きする場合は、このチェック ボックスをオンにします。
  5. [OK] をクリックします。

選択したエクスポート先にリストがエクスポートされます。

注

  • エクスポートに失敗した場合は、ビジネス デスク サーバー コンピュータのイベント ログで失敗に関する詳細情報を参照するか、システム管理者に問い合わせてください。

関連項目

メーリング リスト内のユーザー プロファイルを検索する


エクスポートしたリストを表示する

エクスポートしたメーリング リストを対象として、メンバの検索や表示を行うことができます。個別の電子メール アドレスを検索したり、特定のリストのすべてのアドレスを表示することもできます。

SQL Server テーブルにエクスポートしたリストを表示するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. 左側のウィンドウで、[Microsoft SQL Servers]、[SQL Server グループ]、[(サーバー名)]、[データベース] の順に展開し、リストが含まれるテーブルを格納しているデータベースを展開します。
  3. 詳細ペインで、テーブルを右クリックし、[テーブルを開く] をポイントします。次に、[全行を返す] をクリックして、テーブルのすべてのデータを表示します。

SQL Server テーブルを検索する方法については、SQL Server Enterprise Manager の Books Online の「検索基準の指定」を参照してください。

注

  • コンマ区切り値 (CSV) ファイルにエクスポートしたリストに含まれるレコードを並べ替えたり検索したりするには、並べ替え機能や検索機能を持つアプリケーションでファイルを開いてください。

関連項目

ダイレクト メールを作成する


リストを追加および削除する

リスト マネージャの複数のリストを組み合わせて、1 つの新しいリストにまとめることができます。また、既にリスト マネージャの複数のリストを 1 つのリストにまとめてある場合に、その中から 1 つのリストを削除することもできます。リスト マネージャには、複数のリストを管理する機能が用意されています。

リストの追加や削除を行うには、各リストがメーラブル リストでなければなりません。たとえば、各リストに rcp_email 列が含まれている必要があります。メーリング リストの要件については、「メーリング リストを作成する」を参照してください。

リストを他のリストに追加するには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、他のリストと組み合わせるリストを選択し、ツール バーの リストの追加/削除 をクリックします。
  3. [リストの追加/削除] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [操作] | ボックスの一覧の [対象リストに追加] をクリックします。
    [対象リスト] | 元のリストの追加先となるリストを選択します。
    [新しいリストの名前] | 新しいリストの名前を入力します。
    [説明] | 新しいリストの説明を入力します。
  4. [OK] をクリックします。

新しいリストがリスト マネージャに表示されます。

リストから 1 つのリストを削除するには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、情報を削除するリストを選択し、ツール バーの リストの追加/削除 をクリックします。
  3. [リストの追加/削除] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [操作] | ボックスの一覧の [対象リストから削除] をクリックします。
    [対象リスト] | 情報の削除元となるリストを選択します。
    [新しいリストの名前] | 新しいリストの名前を入力します。
    [説明] | 新しいリストの説明を入力します。
  4. [OK] をクリックします。

削除されたリストを除いた新しいリストがリスト マネージャに表示されます。

関連項目

ユーザー レコード リストを管理する


リストの名前を変更する

リスト マネージャのリストの名前を、わかりやすい名前に変更できます。

リストの名前を変更するには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、名前を変更するリストを選択し、ツール バーの 開く をクリックします。
  3. [リストの更新 : <リスト名>] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [名前] | リストの新しい名前を入力します。
    [説明] | プロパティの説明を入力します。
  4. リストを保存して [リスト マネージャ] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

リストの名前が変更され、 [リスト マネージャ] 画面に表示されます。

関連項目

ユーザー レコード リストを管理する

ユーザー リスト

ユーザー リストとメーリング リスト

汎用リスト


メーリング リストをコピーする

既存のリストがある場合は、それを利用して新しいリストを作成できます。リスト マネージャで、既存の汎用リストまたはメーリング リストをコピーし、簡単に変更することができます。たとえば、コピーしたリストを既存のリストと組み合わせて、大規模なリストを作成できます。

メーリング リストをコピーするには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、コピーするリストを選択し、ツール バーの リストのコピー をクリックします。
  3. [リストのコピー] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [コピー先を既存のリストから選択] | リストのコピー先となる既存のリストを選択します。
    [コピー先のリスト名を入力] | リストのコピー先となる新しいリストの名前を入力します。
  4. [OK] をクリックします。

リストがコピーされ、コピーされたリストを変更できるようになります。

関連項目

ユーザー レコード リストを管理する

ユーザー リスト

ユーザー リストとメーリング リスト

汎用リスト


メーリング リストを抽出する

リスト マネージャで、重複していたり空白になっている電子メール アドレスを汎用リストから削除し、メールの送信に必要なフィールドだけを残すことができます。削除後のリストには、一意の電子メール アドレスの数がより正確に反映されるので、リストがさらに有用になり、実行時のパフォーマンスも向上します。

メーリング リストを抽出するには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、抽出するリストを選択し、ツール バーの メーリング リストの抽出 をクリックします。
  3. [メーリング リストの抽出] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [コピー先のリスト名を入力] | メーリング リストの抽出先となる新しいリストの名前を入力します。
    [説明] | 抽出するリストの説明を入力します。
  4. [OK] をクリックします。

一意の電子メール アドレスを含むリストが抽出されます。

関連項目

ユーザー レコード リストを管理する

ユーザー リスト

ユーザー リストとメーリング リスト

汎用リスト


リストを削除する

不要になったリストは、リスト マネージャで削除できます。

リストを削除するには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、削除するリストを選択し、ツール バーの 削除 をクリックします。
  3. [リストの削除] ダイアログ ボックスで、[OK] をクリックしてリストを削除します。

リストがリスト マネージャから削除されます。

関連項目

ユーザー レコード リストを管理する

ユーザー リスト

ユーザー リストとメーリング リスト

汎用リスト


ダイレクト メールを作成する

ダイレクト電子メール広告キャンペーンを作成および管理するには、キャンペーン マネージャ モジュールを使います。ダイレクト メールは、キャンペーン項目の一種です。リスト マネージャに格納されているメーリング リストを利用することによって、特定のユーザーを対象にすることができます。キャンペーン マネージャ モジュールを使って、新しいダイレクト メール キャンペーンの作成、メッセージのパーソナライズ、ダイレクト メール メッセージへの添付ファイルの追加、およびダイレクト メール プロパティの変更を行います。また、ダイレクト メール リストは、運用環境に送信する前にテストすることもできます。方法については、「ダイレクト メーラー チュートリアル」を参照してください。

次のワークフローは、ダイレクト メール キャンペーンの作成と管理を行うシナリオの例を示しています。

  1. リスト マネージャ モジュールで、メーリング リスト (たとえば、リピーターのリスト) をインポートします。
  2. キャンペーン マネージャ モジュールで、リピーターのメーリング リストを対象とするダイレクト メール キャンペーンを作成します。
  3. パーソナライズされたコンテンツが含まれている HTML ページの名前を入力します。
  4. ダイレクト メール キャンペーンに添付ファイルを追加します。
  5. ダイレクト メール キャンペーンの開始時刻と終了時刻のスケジュールを設定し、ダイレクト メール ジョブを送信する頻度を指定します。
  6. テスト リストにダイレクト メールを送信してテストし、パーソナライズされたページを表示します。

ここでは、次のトピックについて説明します。

  • メーリング リストを作成する
  • メーリング リストをインポートする
  • ダイレクト メールのプロパティを追加する
  • ダイレクト メール メッセージをパーソナライズする
  • ダイレクト メールに添付ファイルを追加する
  • ダイレクト メールのスケジュールを設定する
  • ダイレクト メールをテストする
  • ダイレクト メールをコピーする


メーリング リストを作成する

ダイレクト メール キャンペーンを作成する前に、有効なメーリング リストをリスト マネージャ モジュールに格納する必要があります。有効なメーリング リストとは、電子メール アドレスを格納する列 (rcp_email) があり、各行にメール受信者 1 名ずつ記録されているものです。メーリング リストは、あるリストから選ばれた受信者にダイレクト メーラーがメールを送信するときに使われます。

メーリング リストの作成には、テキスト エディタを使用できます。また、他のアプリケーションで作成したリストをリスト マネージャにインポートすることもできます。作成元のアプリケーションとしては、SQL Server (SQL テーブルを作成する場合)、メモ帳 (ASCII テキスト ファイルを作成する場合)、Microsoft Excel (スプレッドシートを作成する場合)、Microsoft Outlook (個人用フォルダ ファイル (.pst ファイル) の情報をエクスポートする場合) などがあります。

SQL Server からリストをインポートする場合、リスト マネージャでは次の表に示すフィールド名が必要です。1 行につき 1 人の受信者について記載し、各行には次の要素をコンマ区切り形式で並べます。

フィールド名 | パラメータ | 説明
rcp_email | 電子メール アドレス | 必須。名前または "名前@ドメイン名" の書式で指定します。
rcp_guid | GUID | 省略可。グローバル一意識別子。パーソナライズされた電子メール メッセージにコンテンツを提供するときに使用する一意のユーザー ID です。
rcp_fmt メッセージ形式 省略可。Collaboration Data Object (CDO) が結果をどのメッセージ形式に変換するかを制御します。次の値がサポートされています。
  • Text (1)
  • MIME (2)
  • MHTML (3)

メッセージ形式については、「メッセージ形式」を参照してください。
rcp_locale | 言語 | 省略可。コード ページの値は、US-ASCII および ISO-8859-1 などのダイレクト メール リストで使われます。
rcp_url | URL | 省略可。ユーザーごとに個々の URL を CDO に渡すことができます。

注

  • フィールド名は、この表に示す順序で指定しなければなりません。省略可能なパラメータを省いて後続のパラメータを指定する場合は、区切り文字を入力する必要があります。

次の例は、メモ帳などのテキスト エディタを使って作成したメーリング リスト (ASCII テキスト ファイル) を示しています。

BettyUser@Microsoft.com, BettyUser,1,,www.Microsoft.com
JoeUser@Microsoft.com, JoeUser,1,,www.Microsoft.com
JaneUser@VigorAirLines.com, JaneUser,2,,www.VigorAirlines.com
JackUser@ArborShoes.com, JackUser,3,,www.ArborShoes.com

Microsoft Outlook の情報をメーリング リストとしてリスト マネージャにエクスポートするには、次の操作を実行します。

  1. Microsoft Outlook の [連絡先] 画面で、[ファイル] メニューの [インポートとエクスポート] をクリックします。
  2. [ファイルへエクスポート] をクリックし、[次へ] をクリックします。
  3. ファイルの種類として Tab Separated Values (タブ区切り) または Comma Separated Values (カンマ区切り) を選択し、[次へ] をクリックします。
  4. エクスポートする元のフォルダを選択し、[次へ] をクリックします。
  5. エクスポート ファイルのパス名とファイル名を入力するか、[参照] をクリックしてファイルをエクスポートする先の場所を検索します。次に [次へ] をクリックします。
  6. [フィールドの一致] をクリックし、右側の [インポート/エクスポート先] ウィンドウの [すべてクリア] をクリックします。
  7. 左側の [インポート/エクスポート元] ウィンドウの [電子メール] 値をドラッグし、右側の [インポート/エクスポート先] ウィンドウにドロップします。次に [OK] をクリックし、[完了] をクリックします。

これによって、ファイルが Microsoft Outlook からエクスポートされます。このファイルは、有効なメーリング リストとしてリスト マネージャにインポートできます。Microsoft Outlook からファイルをエクスポートする方法については、Microsoft Outlook のオンライン ヘルプの「ファイルや個人用フォルダ ファイルにアイテムをエクスポートする」を参照してください。

関連項目

ユーザー レコード リストを管理する

ユーザー リスト

ユーザー リストとメーリング リスト

汎用リスト


メーリング リストをインポートする

ダイレクト メール キャンペーンを作成する前に、有効なメーリング リストをリスト マネージャ モジュールに格納する必要があります。リスト マネージャ モジュールを使うと、ユーザー リストをインポートし、ダイレクト メール キャンペーンの対象として指定できます。インポートできるのは、ASCII 形式のテキスト ファイル、Microsoft Excel のファイル、または SQL Server データベースのテーブルです。

メーリング リストをインポートするには

  1. [キャンペーン] の [リスト マネージャ] をクリックします。
  2. [リスト マネージャ] 画面で、ツール バーの リストのインポート をクリックします。
  3. [リストのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [リストの種類] リストの種類を選択します。

    選択できるオプションは、[静的] と [動的] です。

    • フラット テキスト ファイルの静的リストをインポートするには、[静的] をクリックします。
    • 動的リスト (SQL Server データベースからのリストなど、変化するリスト) をインポートするには、[動的] を選択します。
    [コピー先のリスト名を入力] | インポート後のリストの名前を入力します。
    リストのソース リストのソースの種類を選択します。

    選択できるオプションは、[ファイル] または [SQL データベース] です。

    • 静的リストの場合は [ファイル] を選択します。
    • [SQL データベース] を選択した場合は、次の操作を行います。
      1. [接続文字列] ボックスに、データベース接続文字列を入力します。この文字列で、データベースの場所と接続方法を定義します。
      2. [SQL クエリ] ボックスに、目的の情報を取得するための SQL クエリを入力します。

        例 : SQL クエリ :

        SELECT u_email_address AS rcp_email
FROM UserObject
WHERE d_date_registered >= '03/01/2000'

        リスト マネージャのフィールド名の要件については、「メーリング リストを作成する」を参照してください。

      注

      • データベース プロパティおよび SQL クエリの情報については、システム管理者に問い合わせてください。SQL クエリの記述方法については、SQL Server Books Online の「クエリ - SQL Server, 基礎」を参照してください。
    ファイル名 | インポートするリストのパス、ファイル名、および拡張子を入力します。
  4. [OK] をクリックします。

新しいリストがインポートされ、リスト マネージャに表示されます。これで、このリストをダイレクト メール キャンペーンで使用できるようになります。

関連項目

ユーザー レコード リストを管理する

リストをインポートおよびエクスポートする

ユーザー リストとメーリング リスト


ダイレクト メールのプロパティを追加する

ダイレクト メール キャンペーンは、広告をユーザーに見てもらう方法の 1 つです。リスト マネージャに格納されているメーリング リストを使用すると、ダイレクト メールの対象として特定のユーザーを指定することができます。ASCII 形式のテキスト ファイルと SQL Server データベースのテーブルをインポートできます。これらのリストを使用してダイレクト メーラー ジョブを実行すれば、メールの送信対象となるユーザーをより的確に特定できます。

注

  • ダイレクト メール キャンペーンを作成する前に、必ず SQL Server Agent を実行しておきます。SQL Server Agent が動作していない場合は、ダイレクト メール キャンペーンを保存できません。SQL Server Agent を実行する方法については、システム管理者に問い合わせてください。

ダイレクト メールのプロパティを追加するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ダイレクト メール作成の対象となる顧客を展開し、ダイレクト メール作成の対象となるキャンペーンを選択します。次にツール バーの 追加 をクリックし、ボックスの一覧の [新しいダイレクト メール] をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - 新規 (ダイレクト メール)] 画面の [ダイレクト メールのプロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [ダイレクト メール名] | ダイレクト メーラー ジョブの名前を入力します。
    [送信元電子メール アドレス] | ダイレクト メールの送信元のアドレスを入力します。
    [返信先電子メール アドレス] 返信先が既定のアドレスと異なる場合に、返信先のアドレスを入力します。

    特に指定しない限り、このボックスにはダイレクト メールの送信元のアドレスが入ります。
    [メッセージの件名] | このダイレクト メーラー ジョブの件名を入力します。
    [メッセージ本文を含むファイル パスまたは URL] ダイレクト メール メッセージの表示に使用するファイルのパスまたは URL を入力します。

    パーソナライズされたメッセージ本文の URL には、HTML コンテンツの種類として有効な拡張子 (.htm や .asp) が含まれている必要があります。無効な拡張子 (.xml など) が含まれている場合は、Collaboration Data Objects (CDO) エラーが発生し、メッセージは送信されません。

    パーソナライズされたページを表示する方法については、「ダイレクト メールをテストする」を参照してください。

    注意

    • サイズが 2 MB を超えるファイルは切り捨てられます。データの先頭の 2 MB だけがダイレクト メールで使われます。
    [添付ファイル] メッセージと共に送信する添付ファイルのファイル パスと名前を入力します。

    添付ファイルを送信しない場合は、このボックスを空のままにします。
    [メーリング リスト] | このダイレクト メール キャンペーンで使用するメーリング リストをボックスの一覧から選択します。
    [ユーザーごとにパーソナライズするダイレクト メール] このチェック ボックスをオンにすると、このダイレクト メール キャンペーンのパーソナライズが有効になります。

    このチェック ボックスをオンにすると、ユーザーごとにメッセージ本文の ASP ページが表示され、結果が電子メールで送信されます。

    このチェック ボックスをオフにすると、メッセージ本文の ASP ページ が一度表示され、すべてのユーザーに同じコンテンツが使われます。

    注

    • このオプションは、特にメールの一括送信などの処理速度を大幅に削減します。
    [メールの形式] このメールの形式を選択します。

    選択できるオプションは次のとおりです。

    • [テキスト] メールの形式を ASCII 形式に設定します。
    • [MIME] メールの形式を Multipurpose Internet Mail Extensions (MIME) に設定します。
    • [MHTML] メールの形式を MIME Encapsulation of Aggregate HTML Documents (MHTML) に設定し、メールを電子メール メッセージとして送信できるようにします

    重要

    • これらのメッセージ形式は既定値で、ユーザー固有の電子メール形式が NULL の場合にだけ使われます。メーリング リストを作成またはインポートするときにユーザー固有の電子メール形式を指定した場合は、ダイレクト メールを送信するときにユーザー固有の形式が使われます。

    メッセージ形式については、「メッセージ形式」を参照してください。
    [コメント (メッセージには含まれない)] | このダイレクト メール ジョブに関するコメントを必要に応じて入力します。
  4. ダイレクト メールを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

ダイレクト メールがキャンペーン マネージャ モジュールに追加されます。これで、ダイレクト メールのスケジュールを設定し、テストを実施できるようになります。

注

  • [メッセージ本文を含むファイル パスまたは URL] ボックスで、メッセージ本文の URL パスが有効かどうかを確認するには、まず、パスとファイルまたは URL を選択し、Ctrl キーを押しながら C キーを押して選択範囲をコピーします。次に、ブラウザを開き、Ctrl キーを押しながら V キーを押して選択範囲を [アドレス] ボックスに貼り付け、Enter キーを押します。ファイルまたは URL が正しければ、該当するページがブラウザに表示されます。

ダイレクト メールのスケジュールを設定する方法については、「ダイレクト メールのスケジュールを設定する」を参照してください。ダイレクト メールのテストについては、「ダイレクト メールをテストする」を参照してください。

関連項目

キャンペーンを追加する

ユーザー レコード リストを管理する

リストをインポートおよびエクスポートする


ダイレクト メール メッセージをパーソナライズする

パーソナライズ用に設計された ASP ページを使うと、ユーザーに送る電子メール メッセージをパーソナライズできます。たとえば、文頭のあいさつでユーザーごとに名前を変えたメッセージを送信できます。また、ASP ページに特殊なテキストを追加して配信することもできます。パーソナライズを指定しない場合、ダイレクト メール メッセージは通常の HTML ページとして配信されます。

ダイレクト メール メッセージをパーソナライズするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、パーソナライズするダイレクト メール キャンペーンを選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <ダイレクト メール項目> (ダイレクト メール ID : <番号>] 画面で、次の操作を行います。
    項目 | 操作
    [メッセージ本文を含むファイル パスまたは URL] | パーソナライズされたコンテンツが含まれている HTML ページの名前を入力します。
    [ユーザーごとにパーソナライズするダイレクト メール] このチェック ボックスをオンにすると、このダイレクト メール キャンペーンのパーソナライズが有効になります。

    このチェック ボックスをオンにすると、ユーザーごとにメッセージ本文の ASP ページが表示され、結果が電子メールで送信されます。

    このチェック ボックスをオフにすると、メッセージ本文の ASP ページ が一度表示され、すべてのユーザーに同じコンテンツが使われます。

    注

    このオプションは、特にメールの一括送信などの処理速度を大幅に削減します。
    [メールの形式] このメールの形式を選択します。

    選択できるオプションは次のとおりです。

    • [テキスト] メールの形式を ASCII 形式に設定します。
    • [MIME] メールの形式を Multipurpose Internet Mail Extensions (MIME) に設定します。
    • [MHTML] メールの形式を多言語 HTML に設定します。
  4. パーソナライズしたダイレクト メール キャンペーンを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

ダイレクト メール メッセージは、パーソナライズされて送信されます。

パーソナライズされたページを表示する方法については、「ダイレクト メールをテストする」を参照してください。

関連項目

ダイレクト メールを作成する

ダイレクト メールをテストする


ダイレクト メールに添付ファイルを追加する

[キャンペーン マネージャ - <顧客> - <キャンペーン> - <ダイレクト メール項目> (ダイレクト メール ID : <番号>)] 画面の [ダイレクト メールのプロパティ] セクションを使うと、ダイレクト メールに添付ファイルを追加できます。添付ファイルには、ダイレクト メールと共に送信する情報が含まれる任意のファイルを使用できます。

ダイレクト メールに添付ファイルを追加するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、添付ファイルを追加するダイレクト メールを選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <ダイレクト メール項目> (ダイレクト メール ID : <番号>) 画面の [添付ファイル] ボックスに、メール本文と共に送信する添付ファイルのパス名を入力します。
  4. 添付ファイルをダイレクト メール キャンペーンに保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

添付ファイルがダイレクト メーラー ジョブに保存されます。

関連項目

ダイレクト メールのプロパティを追加する


ダイレクト メールのスケジュールを設定する

ダイレクト メールの開始時刻と終了時刻を設定し、ダイレクト メールを送信する頻度を指定するには、[キャンペーン マネージャ] 画面の [メール スケジュール] セクションを使用します。

ダイレクト メールのスケジュールを設定するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、スケジュールを設定するダイレクト メールを選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <ダイレクト メール項目> (ダイレクト メール ID : <番号>] 画面の [メール スケジュール] セクションで、次の操作を行います。
    項目 | 操作
    [開始日] | ダイレクト メールの開始日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] ダイレクト メールの終了日を入力するか、またはドロップダウン カレンダーから選択します。

    ダイレクト メールの送信間隔が 1 回限りに設定されている場合、[終了日] ボックスは使用できません。
    [開始時刻] | ボックスの一覧からキャンペーンの開始時刻を選択します。
    [メールの送信間隔] | ボックスの一覧から、メールを送信する間隔を選択します。

    注

    • メールの送信間隔については、いくつかのオプションが用意されています。選択したオプションによっては、キャンペーンでのメール送信の繰り返しパターンを選択するボックスが表示されます。
  4. スケジュールをダイレクト メールに保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

スケジュールがダイレクト メールに保存されます。

注

  • スケジュールが設定されたダイレクト メーラー ジョブの実行中に SQL Server Agent が停止すると、ダイレクト メーラー ジョブは実行を停止し、再開できません。スケジュールが設定されたジョブがこのようにして停止すると、ジョブの失敗を示すメッセージは表示されません。SQL Server Agent を再開した後、ダイレクト メーラー ジョブを再開する必要があります。

関連項目

ダイレクト メールを作成する


ダイレクト メールをテストする

ダイレクト メールを大規模なメーリング リストに送信する前に、テスト リストに送信してテストすることができます。また、テスト メールを送信することで、パーソナライズされたページが正確かどうかを確認することもできます。

ダイレクト メールをテストするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、テストするダイレクト メール キャンペーンを選択し、ツール バーの 開く をクリックします。
  3. [キャンペーン マネージャ - <顧客> - <キャンペーン> - <ダイレクト メール項目> (ダイレクト メール ID : <番号>] 画面の [テスト] セクションの [テスト リスト] ボックスで、ダイレクト メールをテストするメール リストを選択します。
  4. [テスト メールの送信] をクリックします。

選択したテスト リストに対して、ダイレクト メーラーからメールが送信されます。

関連項目

ダイレクト メールを作成する


ダイレクト メールをコピーする

既存のダイレクト メールをコピーすると、キャンペーンに対してダイレクト メールを簡単に追加できます。既存のダイレクト メールをテンプレートとして使用して、既存のダイレクト メールのプロパティを、新しいダイレクト メール キャンペーンの目標に合わせて変更できます。

ダイレクト メールをコピーするには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、コピーするダイレクト メールを選択し、ツール バーの コピー をクリックします。
  3. [ダイレクト メールのコピー] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [顧客の選択] | ダイレクト メール項目のコピー元となる顧客をボックスの一覧から選択します。
    [キャンペーンの選択] | ダイレクト メールのコピー元となるキャンペーンをボックスの一覧から選択します。
  4. [OK] をクリックします。
  5. [キャンペーン マネージャ - <顧客> - <キャンペーン> 新規 (ダイレクト メール)] 画面の [ダイレクト メールのプロパティ] セクションの [ダイレクト メール名] ボックスに新しいダイレクト メールの名前を入力します。
  6. その他のプロパティを必要に応じて編集します。
  7. ダイレクト メールを保存して [キャンペーン マネージャ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。

キャンペーン マネージャのツリーで、指定した顧客とキャンペーンの下に新しいダイレクト メールが表示されます。


キャンペーンを検索する

キャンペーン マネージャのツリー構造は、大規模になる場合があります。キャンペーン マネージャ モジュールの検索ペインを使うと、フィルタ条件を使ってキャンペーンを検索できます。フィルタ条件を使うと、キャンペーン マネージャのツリーに表示される項目数が減り、目的のキャンペーンを探したり管理することが簡単になります。

キャンペーンは、キャンペーン項目、顧客名、または状態 (アクティブまたは非アクティブ) に基づいて検索できます。また、削除したキャンペーンを検索することもできます。削除したキャンペーンは、キャンペーン項目と共にアーカイブされているため、必要に応じて復元できます。

キャンペーン項目を検索するには

削除した割引を検索するには

キャンペーン項目を検索するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  3. 検索ペインで、次の操作を行います。
    項目 | 操作
    [項目の種類] | ボックスの一覧からキャンペーン項目の種類を選択するか、または [すべて] をクリックしてすべてのキャンペーン項目を検索対象とします。
    [顧客] | 検索するキャンペーンの顧客名を入力します。
    [状態] | ボックスの一覧の [アクティブ] または [すべて] をクリックします。
    [削除済み] | ボックスの一覧の [いいえ] または [両方] をクリックします。
    [開始日] | キャンペーンの開始日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | キャンペーンの終了日または終了予定日を入力するか、またはドロップダウン カレンダーから選択します。
  4. [検索開始] をクリックします。

検索条件に一致するキャンペーン項目がフィルタ ビュー リストに表示されます。

注

  • 既定の検索条件に戻すには、[リセット] をクリックします。

削除した割引を検索するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  3. 検索ペインで、次の操作を行います。
    項目 | 操作
    [項目の種類] | ボックスの一覧の [割引] をクリックします。
    [顧客] | 割引の顧客名を入力します。
    [状態] | ボックスの一覧の [すべて] をクリックします。
    [削除済み] | ボックスの一覧の [両方] を選択します。
    [開始日] | 割引の開始日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | 割引の終了日または終了予定日を入力するか、またはドロップダウン カレンダーから選択します。
  4. [検索開始] をクリックします。

検索条件に一致するキャンペーン項目が [フィルタ ビュー] ボックスの一覧に表示されます。

注

  • 既定の検索条件に戻すには、[リセット] をクリックします。

関連項目

キャンペーンについて

顧客、キャンペーン、およびキャンペーン項目の削除と復元を行う


顧客、キャンペーン、およびキャンペーン項目の削除と復元を行う

不要になった顧客、キャンペーン、またはキャンペーン項目は、キャンペーン マネージャ モジュールから削除できます。キャンペーン マネージャは、顧客、キャンペーン、キャンペーン項目の順で階層化されています。顧客、キャンペーン、またはキャンペーン項目を削除すると、その下の階層にある項目も削除されます。たとえば、顧客を削除すると、その顧客のキャンペーンとキャンペーン項目も削除されます。キャンペーン項目を復元するときは、その上の階層も復元する必要があります。たとえば、キャンペーン項目を復元する場合は、その上の階層のキャンペーンと顧客のレコードも復元する必要があります。

顧客を削除すると、キャンペーンとキャンペーン項目も同時にアーカイブされます。削除した顧客、キャンペーン、またはキャンペーン項目は、キャンペーン マネージャを使って復元できます。

ここでは、次のトピックについて説明します。

  • 顧客を削除および復元する
  • キャンペーンを削除および復元する
  • キャンペーン項目を削除および復元する


顧客を削除および復元する

顧客はキャンペーン マネージャ モジュールを使って削除できます。顧客を削除すると、キャンペーンとキャンペーン項目も同時にアーカイブされます。削除した顧客は、キャンペーン マネージャで復元できます。

顧客を削除するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、削除する顧客を選択し、ツール バーの キャンペーン項目の削除 をクリックします。
  3. [削除しますか?] ダイアログ ボックスの [はい] をクリックします。

顧客はキャンペーン マネージャから削除され、キャンペーンとキャンペーン項目も同時にアーカイブされます。

顧客を復元するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  3. 検索ペインで、次の操作を行います。
    項目 | 操作
    [顧客] 復元する顧客の名前を入力します。

    注

    • 文字列を入力して検索対象を絞り込むことができます。たとえば、「ar」と入力すると、Arbor Shoes、School of Fine Art など、名前に "ar" が含まれる顧客だけが取得されます。
    [削除済み] | ボックスの一覧の [両方] を選択します。
  4. [検索開始] をクリックします。

    [フィルタ ビュー] ボックスの一覧に顧客が表示されます。状態は "削除済み" と表示されます。

  5. [フィルタ ビュー] ボックスの一覧の [顧客] を選択し、ツール バーの キャンペーン項目の復元 をクリックします。
  6. [復元しますか?] ダイアログ ボックスの [はい] をクリックします。
  7. 検索ペインで [リセット] をクリックし、[フィルタ ビュー] ボックスを元の状態に戻し、[検索ペインを閉じる] をクリックします。

顧客が復元され、[フィルタ ビュー] ボックスの一覧に表示されます。

関連項目

キャンペーンについて

キャンペーンを削除および復元する

キャンペーン項目を削除および復元する

キャンペーンを検索する


キャンペーンを削除および復元する

キャンペーンはキャンペーン マネージャ モジュールを使って削除できます。キャンペーンを削除すると、キャンペーン項目も同時にアーカイブされます。削除したキャンペーンは、キャンペーン マネージャで復元できます。

キャンペーンを削除するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、削除するキャンペーンを選択し、ツール バーの キャンペーン項目の削除 をクリックします。
  3. [削除しますか?] ダイアログ ボックスの [はい] をクリックします。

キャンペーンはキャンペーン マネージャから削除され、キャンペーン項目も同時にアーカイブされます。

キャンペーンを復元するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  3. 検索ペインで、次の操作を行います。
    項目 | 操作
    [顧客] | 復元するキャンペーンの顧客名を入力します。
    [削除済み] | ボックスの一覧の [両方] を選択します。
    [開始日] | キャンペーンの作成日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | キャンペーンの削除日を入力するか、またはドロップダウン カレンダーから選択します。
  4. [検索開始] をクリックします。

    [フィルタ ビュー] ボックスの一覧にキャンペーンが表示されます。状態は "削除済み" と表示されます。

  5. [フィルタ ビュー] ボックスの一覧の [キャンペーン] を選択し、ツール バーの キャンペーン項目の復元 をクリックして、キャンペーンの状態をアクティブに復元します。
  6. [復元しますか?] ダイアログ ボックスの [はい] をクリックします。
  7. 検索ペインで [リセット] をクリックし、[フィルタ ビュー] ボックスを元の状態に戻し、[検索ペインを閉じる] をクリックします。

キャンペーンが復元され、[フィルタ ビュー] ボックスの一覧に表示されます。

関連項目

キャンペーンについて

顧客を削除および復元する

キャンペーン項目を削除および復元する

キャンペーンを検索する


キャンペーン項目を削除および復元する

キャンペーン項目はキャンペーン マネージャ モジュールを使って削除できます。キャンペーン項目を削除すると、アーカイブされます。削除したキャンペーン項目は、キャンペーン マネージャで復元できます。

キャンペーン項目を削除するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、削除するキャンペーン項目を選択し、ツール バーの キャンペーン項目の削除 をクリックします。
  3. [削除しますか?] ダイアログ ボックスの [はい] をクリックします。

キャンペーン項目がキャンペーン マネージャから削除されます。

キャンペーン項目を復元するには

  1. [キャンペーン] の [キャンペーン マネージャ] をクリックします。
  2. [キャンペーン マネージャ] 画面で、ツール バーの 検索 をクリックします。
  3. 検索ペインで、次の操作を行います。
    項目 | 操作
    [項目の種類] | 復元するキャンペーン項目の種類を選択します。
    [顧客] | 復元するキャンペーン項目の顧客名を入力します。
    [削除済み] | ボックスの一覧の [両方] を選択します。
    [開始日] | キャンペーン項目の作成日を入力するか、またはドロップダウン カレンダーから選択します。
    [終了日] | キャンペーン項目の削除日を入力するか、またはドロップダウン カレンダーから選択します。
  4. [検索開始] をクリックします。

    [フィルタ ビュー] ボックスの一覧にキャンペーン項目が表示されます。状態は "削除済み" と表示されます。

  5. [フィルタ ビュー] ボックスの一覧でキャンペーンを選択し、 キャンペーン項目の復元 をクリックして、キャンペーン項目の状態をアクティブに復元します。
  6. [復元しますか?] ダイアログ ボックスの [はい] をクリックします。
  7. 検索ペインで [リセット] をクリックし、[フィルタ ビュー] ボックスを元の状態に戻し、[検索ペインを閉じる] をクリックします。

キャンペーン項目が復元され、[フィルタ ビュー] ボックスの一覧に表示されます。

関連項目

キャンペーンについて

顧客を削除および復元する

キャンペーンを削除および復元する

キャンペーンを検索する


キャンペーンを拡張する

サイト開発者は、サイトに独自の変更を加えることによって、キャンペーンの機能を拡張できます。ここでは、Commerce Server 2002 には用意されていないものの、独自のコードを作成して追加できる機能について説明します。

ここでは、次のトピックについて説明します。

  • 割引の適用記録
  • 割引券
  • 無料ギフトの進呈 (GWP)
  • パーセンテージ割引や金額割引を適用した送料割引
  • ユーザー リストに基づいて対象化する


割引の適用記録

バスケット内の商品項目には、複数の割引が適用されることがあります。適用される可能性のある割引としては、項目レベルの割引、注文レベルの割引、および送料割引があります。Commerce Server には、割引の適用記録が用意されています。この記録には、注文の中の同じ品目に適用された複数の割引に関する情報が格納されます。割引の適用記録機能を有効にする方法については、Commerce Server 2002 Software Development Kit (SDK) の「Discount Sitelet sample」を参照してください。

関連項目

キャンペーンについて

割引

複数の割引


割引券

サイト開発者がクリック必須の割引を拡張すると、割引券を提供できるようになります。割引券を実装する方法の 1 つに、割引券のコードを評価してから適切な campaign_item_id を取得する方法があります。この後、キャンペーン項目を Discounts_clicked simpleList に追加します。バナー広告を使って割引券機能を有効にすることもできます。ユーザーがバナーをクリックしたときに、宣伝対象の項目と共に多目的割引券をバスケットに追加します。

関連項目

キャンペーンについて

割引

割引の表示を指定する


無料ギフトの進呈 (GWP)

"無料ギフトの進呈" (GWP : Gift with Purchase) は、よく使われる販売手法の 1 つです。買い物バスケットが特定の条件を満たした場合に、ユーザーに無料のギフト (品物) を進呈します。次に例を示します。

<何か> を購入すると <商品> が 100% の割引

GWP には 2 種類あります。

  • サイト カタログ以外のギフト

    この特典項目は、ユーザーが購入できるサイト カタログに表示されません。たとえば、ユーザーがスープを 10 袋購入した場合、シャンプーのサンプルを無料で受け取ることができます。シャンプーはサイト カタログに登録されていませんが、無料ギフトとして提供されます。そのため、サイト カタログ以外の項目の価格はゼロ (0) です。

  • サイト カタログ ギフト

    この特典項目は、サイト カタログに表示され、価格が設定されています。そのため、サイト カタログ ギフトをバスケットに追加した後、割引システムで 100% の割引を適用する必要があります。

GWP 割引は、特典項目がユーザーのバスケットに入れられた場合にだけ適用されます。項目は無料ですが、割引システムは項目を自動的にバスケットに追加しません。このため、割引システムを変更して、この機能を実装する必要があります。

GWP 機能を実装するには、次の作業を行う必要があります。

  • 手順 1 : バスケットに対する無料ギフト項目を決定する.
  • 手順 2 : 無料ギフトに決定した項目をバスケットに追加する.
  • 手順 3 : 変更したバスケットに割引を再び適用する (この手順は、サイト カタログ ギフトの場合にだけ必要です)
  • 手順 4 : 整合性を保つために、バスケットへの項目の自動追加を処理する手順以外の問題について検討する

ここでは、手順 1. ～ 4. の操作について説明します。

手順 1 : バスケットに対する無料ギフト項目を決定する

バスケットに対する無料ギフト項目を決定する方法を次のコードで示します。

' -----------------------------------------------------------------------------
' Free gift retrieving function
' -----------------------------------------------------------------------------

' -----------------------------------------------------------------------------
' getFreeGifts
'
' Description:
' Given an orderform, the function returns the qualifying items which are given away Free.
' GWP (Gift With Purchase) discount =    Any discount which has award as a SINGLE ITEM at 100% off
'            Eg. Buy A, get B at 100% off
'       Buy more than 100$ worth of goods, get B at 100% off
' This function finds out GWP discounts which apply on the ordergroup, and returns the list of free items.
' Parameters:
'            OrderGroup for which the freegifts need to be found out (Commerce.OrderGroup)
'
' Returns:
'            SimpleList of productIDs which are the free Gifts (Commerce.SimpleList)
'
' Notes :
'   1-->This function assumes that there is only a SINGLE orderform by name "default" in the ordergroup
'            2-->The returned simpleList contains the productIDs (DATABASE:: <CATALOG>_CatalogProducts.productID)
'            3-->It is assumed that an expressionStore object has been initialised as an application scope object prior to
'                        calling of this function
'            4-->It is assumed the NAME of the award expression = PRODUCT ID of the item given as award
'                        This is the default behavior of the productPicker tool that comes along with Business Desk.
'                        If this is not desired, the appropriate XML corresponding to the expressionID should be extracted from the
'                        expressionStore, parsed, and the productID has to be found out.
'
'                        ################################ WARNING ###################################
'                        If the EXPRESSION DEFINITION and the EXPRESSION NAME do not match as per the assumption above, it will
'                        lead to inconsistency
'                        Eg.
'                        A123 is the productID for "Perforation Photo Paper 4 inches * 6 inches"
'                        B234 is the productID for "Inkjet Printer model 123"
'       Expression: "productName contains INKJET" is named as "A123". (exprName = A123)
'                                    --------Note that the name of the product A123 DOES NOT CONTAIN "inkjet"----------
'                        This expression is used in the discount:  Buy Anything, get 100% OFF on product matching expression A123
'
'                        The expression A123 is met for any state of the basket(since it is buy anything), and so
'                        A123 will be added FREE to the basket.
'                        This is inconsistent.

' -----------------------------------------------------------------------------
Function getFreeGifts(mscsOrderGrp)
            'Get a list of the discounts the shopper qualifies for, but for which there is
            'no award item (orderform.[_qualifying_discounts])
            'But the list may also contain NON GWP DISCOUNTS. So, GWP discounts have to be separated from others, and returned.

            Dim oOrderForm, oQualifyingDiscounts, oQualifyingDiscount, expressionStore
            Dim freeDiscount, allDiscounts, freeItems, tempExprID
            set freeItems = Server.CreateObject("Commerce.SimpleList")
            set oOrderForm = mscsOrderGrp.Value(ORDERFORMS).Value("default")
            'If the "_qualifying_discounts" key does not exist, then just proceed further, and return the empty simple list
            on error resume next
            set oQualifyingDiscounts = oOrderForm.[_qualifying_discounts]
            if Err.number = 0 then
                        'The expressionStore object has to be initialised before calling this function
                        Set expressionStore       = Application("MSCSExpressionStore")
                        Set allDiscounts = oOrderForm.[_discounts]
                        for each oQualifyingDiscount in oQualifyingDiscounts
                                    '"item_id" key refers to the campaign item ID  (database::: CAMPAIGN_ITEM.i_campitem_id)
                                    Set freeDiscount = allDiscounts.Search("item_id", oQualifyingDiscount)
                                    'Only discounts which are ITEMLEVEL (order_level=0), % OFF (offer_type=2)
                                    ' and 100% OFF (offer_value=100) are chosen
                                    if(freeDiscount.Fields("order_level")=0 and freeDiscount.Fields("offer_type")=2 and freeDiscount.Fields("offer_value")=100) then
                                                'Assuming that the EXPRESSION NAME = PRODUCT ID
                                                tempExprID = freeDiscount.Fields("award_expr")
                                                freeItems.Add(expressionStore.getExprName(tempExprID))
                                    end if
                        next
            End if

            Set getFreeGifts = freeItems

End Function

手順 2 : 無料ギフトに決定した項目をバスケットに追加する

無料ギフトに決定した項目をバスケットに追加します。

手順 3 : 変更したバスケットに割引を再び適用する

バスケット ページをもう一度最新の情報に更新する方法を次のコード例で示します。バスケット ページを最新の情報に更新すると、割引パイプラインが再び実行され、新しく追加された項目に割引が適用されます。

If(free gifts added to the basket) {

  Refresh the current page

}

注

  • バスケットに無料ギフトが追加されたかどうかを調べるには、手順 1. を使います。

手順 4 : 問題について検討する

手順 1. ～ 3. で、バスケットへの項目の自動追加を処理します。整合性を保つために、次の問題について検討する必要があります。

  • 条件項目が削除されたときに、特典を自動的に削除する。
  • ユーザーがバスケットに無料ギフト特典項目を追加した場合、条件項目が削除されても特典項目は削除しない。
  • 無料項目をバスケットに追加するかどうかをユーザーが選択できるようにする。GWP の実装では、常に自動的に項目が追加されるようにしないでください。たとえば、無料ギフトのサイズが大きい場合、受け取りたくないユーザーもいます。

関連項目

キャンペーンについて

割引

割引の表示を指定する


パーセンテージ割引や金額割引を適用した送料割引

注文レベルの割引と同様に、パーセンテージ割引と金額割引は送付先ごとに適用されます。OrderLevelDiscountApply コンポーネントと ShippingDiscountAdjust コンポーネントは、同じコードを使っています。サイト開発者は、このコードでこの種類の割引を変更できます。OrderLevelDiscountApply コンポーネントの詳細については、「OrderLevelDiscountApply」を参照してください。ShippingDiscountAdjust コンポーネントの詳細については、「ShippingDiscountAdjust」を参照してください。

関連項目

キャンペーンについて

割引

割引の表示を指定する


ユーザー リストに基づいて対象化する

Commerce Server 対象化システムを使うと、対象化した商品取引でショッピング体験をパーソナライズし、コンテキストで特定のユーザーに最適化したコンテンツを配信できます。たとえば、週に 3 回サイトを訪問し、商品を 3 つ以上購入したことのある女性ユーザーを対象に広告を配信できます。ユーザー リストに基づいた対象化の詳細については、「Commerce Server システムによる成功へのビジネス サイクル」チュートリアルを参照してください。

関連項目

キャンペーンについて

割引

ダイレクト メール

ユーザー リスト

ユーザー プロファイル

広告を対象化する

対象化とパーソナライズ

ダイレクト メールを作成する

Commerce Server システムによる成功へのビジネス サイクル


ビジネス デスク カタログ

カタログ モジュールを使うと、製品のカタログを作成したり、製品データを追加および更新したりすることができます。ビジネス マネージャには、商品のカタログを複数のサプライヤなどの異なるソースから集める場合でも、商品データを格納するデータベースに関する専門知識は必要ありません。

ここでは、次のトピックについて説明します。

  • 基本カタログを作成するワークフロー 基本カタログを作成するワークフローを示します。
  • 仮想カタログを作成するワークフロー 仮想カタログを作成するワークフローを示します。
  • カタログについて カタログのコンポーネントについて説明し、カタログ定義を作成する手順の概要を示します。
  • カタログの名前とサイズの制限 カタログ、プロパティ、商品、およびカテゴリの名前として使用できない文字を示します。
  • カタログに関するヒント集 カタログの作成と管理に関する重要事項について説明します。
  • カタログをインポートおよびエクスポートする 拡張マークアップ言語 (XML) 形式のカタログ ファイルを評価およびインポートする方法、コンマ区切り値 (CSV) 形式のカタログ ファイルをインポートする方法、およびカタログを共有にエクスポートする方法について説明します。
  • カタログ定義を作成する カタログのカテゴリ定義、商品定義、およびプロパティ定義を定義する方法について説明します。
  • 基本カタログを作成する 基本カタログを作成する方法について説明します。基本カタログは、多言語に対応できます。
  • カタログにカテゴリを追加する カタログにカテゴリを追加する方法について説明します。
  • カタログに商品を追加する カタログに商品を追加する方法について説明します。
  • 商品バリエーションを商品に追加する 商品に商品バリエーションを追加する方法について説明します。
  • カタログに言語を追加する カタログに複数の言語を追加して多言語に対応可能なカタログを作成する方法について説明します。
  • 仮想カタログを作成する 仮想カタログを作成する方法について説明します。仮想カタログは、複数のカタログを集計して単一のカタログとしてユーザーに表示したり、複数の通貨で商品の価格を設定したり、特別価格や商品のサブセットを特定のグループのユーザーに提供したりするために使います。
  • 多言語に対応可能なカタログを作成する 商品情報を複数の言語で表示するカタログを作成する方法について説明します。
  • ビジネス デスクを使ってカタログを変換する カタログ エディタ モジュールを使って多言語に対応可能なカタログの少数の商品を別の言語に変換する方法について説明します。
  • カタログをエクスポートおよびインポートして変換する カタログを XML にエクスポートし、XML ベースのカタログを変換プログラムに送信し、変換されたカタログを Microsoft Commerce Server 2002 で使われるカタログ データベースにインポートして、多言語に対応可能な多数の商品を別の言語に変換する方法について説明します。
  • カタログ セットを作成する 複数のカタログを結合し、カタログ セットにユーザー アクセスを割り当てて、カタログ セットを作成する方法について説明します。
  • 基本カタログの商品の価格を設定する カタログの商品価格を商品レベルおよび商品バリエーション レベルで設定する方法、商品グループの価格を設定する方法、および複数の通貨で商品の価格を設定する方法について説明します。
  • カテゴリ階層を作成する カタログ内にカテゴリの階層を作成して、サイトのカテゴリおよび商品を整理できるようにする方法について説明します。
  • カテゴリと商品の関連付けを作成する カタログ内に関連付けを作成して、カタログの商品を整理し、目的の商品に移動しやすくする方法について説明します。
  • カタログを更新および公開する カタログの更新を Web サイトで公開する方法、およびフルテキスト インデックスを更新して、新しいカタログ データを検索機能で利用できるようにする方法について説明します。
  • カタログを取引先に送信する カタログを取引先に送信する方法について説明します。
  • カタログ定義を管理する プロパティ定義、商品定義、およびカテゴリ定義を編集する方法および削除する方法について説明します。
  • カタログで項目を検索する キーワード検索またはプロパティによる検索を使ってカタログの商品を検索する方法について説明します。
  • 商品、カテゴリ、カタログ、およびカタログ セットを管理する 商品、カテゴリ、カタログ、およびカタログ セットを編集する方法および削除する方法について説明します。
  • カテゴリと商品の関連付けを管理する カテゴリと商品の関連付けを編集する方法および削除する方法について説明します。


基本カタログを作成するワークフロー

次の図は、基本カタログを作成するサンプルのシナリオを示しています。この図は、拡張マークアップ言語 (XML) 形式のカタログ ファイルまたはコンマ区切り値 (CSV) 形式のカタログ ファイルをインポートしてカタログを作成する方法や、カタログ定義を作成してカタログを作成する方法を示しています。また、カタログ定義を作成した後で、カテゴリを追加し、商品を追加して、その商品に商品バリエーションを追加する方法も示しています。1 つまたは複数のカタログを作成したら、カタログ セットを作成します。最後に、カタログに変更を加えてから Web サイトで公開します。

次の図は、基本カタログを作成するワークフローを示しています。


仮想カタログを作成するワークフロー

次の図は、仮想カタログを作成するワークフローを示しています。仮想カタログの内容を変更した場合は (価格ルールの変更、包含ルールと除外ルールの変更など)、その仮想カタログを再構築する必要があります。


カタログについて

カタログは、販売する商品を系統立てる手段です。カタログを使って、サイトで公開するデータベースの商品データを整理および管理したり、商品の対象ユーザーを特定します。

Commerce Server ビジネス デスクでは、カタログを整理するために、カタログごとに定義されたプロパティの説明がカタログ定義に保持されます。カタログ定義には、カタログに含まれるカテゴリ、商品、およびプロパティがすべて列挙されています。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にカタログを使う
  • カタログ構造の概要
  • カタログ : 商品とカテゴリ
  • カタログ定義 : 商品およびカテゴリの説明
  • カタログの一意識別子
  • カタログの階層と関連付け
  • 基本カタログと仮想カタログ
  • 複数サプライヤからのカタログ
  • 集合カタログ
  • 多言語に対応可能なカタログ
  • 外部カタログ : 結合キーを使う
  • カタログ セット
  • 商品価格の設定方法


Web サイトの管理にカタログを使う

カタログを作成および保守するには、Commerce Server ビジネス デスクのカタログ モジュールを使います。カタログの商品の販売を促進するには、他のビジネス デスク モジュールを使います。たとえば、サイトの運用中に、分析モジュールを使ってレポートを実行して売れ行きの良くない商品を特定し、キャンペーン モジュールを使って、これらの商品の売り上げを拡大するための割引キャンペーンを作成できます。

ビジネス デスクを使うと、次のようなことができます。

  • 他のデータ ソースからカタログをインポートする 拡張マークアップ言語 (XML) 形式またはコンマ区切り値 (CSV) 形式のカタログをインポートできます。たとえば、他のデータベースにカタログがある場合は、Commerce Server のカタログ データベースにインポートし、ビジネス デスクを使って管理できます。

    カタログを XML 形式または CSV 形式に変換するには、既存のデータベース管理システムを使って XML 形式または CSV 形式でカタログを保存するか、カタログを変換するスクリプトの作成をサイト開発者に依頼します。

  • カタログをエクスポートする カタログを XML 形式でエクスポートできます。たとえば、商品を卸で販売している場合、小売業者にカタログを提示するには、カタログをエクスポートします。また、在庫管理システムや価格設定システムなどのアプリケーションに、カタログをエクスポートすることもできます。

    カタログを定期的に Commerce Server にインポートまたはエクスポートする場合は、サイト開発者はその機能を追加できます。

  • 商品に割引を適用する 割引は、カテゴリのすべての商品に適用することも、指定した条件を満たす特定の商品に適用することもできます。たとえば、Product.price > 2000 (商品の値段 > 2,000 円) であれば、ユーザーがこの商品を買い物バスケットに追加したときに、商品の価格に 10% の割引を適用するように指定できます。
  • カタログの商品を編集する 必要に応じて、商品名、価格、説明、およびその他の商品プロパティを変更できます。
  • 商品情報をリアルタイムで更新する 商品価格などの商品情報を更新し、変更を直ちに Web サイトで公開できます。たとえば、ユーザーが商品をバスケットに追加し、その支払の前にサイトが更新された場合は、バスケット内の商品に新しい価格が適用されます。ユーザーがバスケットを保存し、価格の更新後にバスケットに戻ると、新しい価格が表示されます。
  • 売れている商品を特定する Commerce Server のレポートを実行すると、最もよく売れている商品を販売数量または合計販売数に基づいて特定できます。また、最もよく売れているカテゴリも、販売数量または合計販売数に基づいて特定できます。分析結果を利用して、売れ行きのよくない商品に割引を適用したり、よく売れている商品の付属品の販売を促進することもできます。さらに、サイト開発者は、アップセルやインテリジェント クロスセルなどの関連セルをサポートするようにサイトをカスタマイズできます。
  • 商品を検索する プロパティによる検索やフリーテキスト検索を実行して、商品を検索できます。

次の図は、商品カタログ システムでの処理概要を示しています。処理には、カタログのインポートとエクスポート、カタログ データベースの更新、レポート作成のための、カタログ データのデータ ウェアハウスへのインポートが含まれます。

関連項目

XML カタログ ファイルをインポートする

CSV カタログ ファイルをインポートする

カタログをエクスポートする

割引の概念

割引を作成する

仮想カタログの商品価格に割引を適用する

カタログを更新および公開する


カタログ構造の概要

Commerce Server 2002 のカタログは、次の 3 つの主要な要素で構成されます。

  • カタログ定義 カタログのカテゴリと商品プロパティを記述したものです。定義には、カタログで許可されるすべてのカテゴリ、商品、およびプロパティが列挙されます。カタログ定義は、サイトのすべてのカタログに適用できます。
  • 基本カタログ カタログ定義の単一のインスタンスで、データが格納されます。
  • 仮想カタログ 1 つまたは複数の基本カタログの商品データを参照するカタログです。商品は、データベース内で一意に表されます。これは、その商品が表示される仮想カタログの数とは無関係です。

次の表は、サンプルのカタログ定義 "衣料" と、"スポーツ ウェア" カタログのデータが格納された Clothes カタログ定義の単一のインスタンスを示しています。

カタログ定義 基本カタログ : スポーツ ウェア
カテゴリ定義 : 部門
カテゴリ プロパティ
名前
説明
イメージ ファイル名
イメージの高さ
イメージの幅
 カテゴリ : スポーツ シャツ部門

スポーツ シャツ部門
2002 年度版スポーツ シャツ カタログ
Sports_shirts.gif
100
200
商品定義 : シャツ
商品プロパティ :
名前
製造元
価格
商品バリエーション プロパティ :
サイズ
色
SKU
 商品 : Ace サッカー シャツ

Ace サッカー シャツ
Ace シャツ
\2,000

M
グリーン
23354

Commerce Server カタログを理解するには、次のトピックを参照してください。次のトピックでは、スポーツ ウェア カタログなどの Web サイト上に表示される内容から始まって、基本構造となるカタログ定義まで掘り下げて、カタログについて説明しています。

関連項目

基本カタログと仮想カタログ

カタログ定義 : 商品およびカテゴリの説明

カタログ : 商品とカテゴリ


カタログ : 商品とカテゴリ

Commerce Server カタログはカタログ定義のインスタンスであり、個別の商品およびその商品が属するカテゴリに関するデータが格納されます。カタログを作成するには、Commerce Server ビジネス デスクのカタログ モジュールを使って外部カタログをインポートするか、新しいカタログを構築して、そのカタログを Web サイトで公開します。

カタログ

カテゴリ

商品

商品グループと商品バリエーション

カタログ

カタログは、カテゴリ、商品、商品バリエーション、およびプロパティで構成されます。Web サイトを訪問するユーザーは、カテゴリを経由してページ間を移動し、商品の説明を参照し、特定の商品または商品バリエーションを購入します。プロパティは、ユーザーが商品を検索するためのキーワードになります。

カテゴリ

"カテゴリ" は、カテゴリ定義の個別のインスタンスです。たとえば、"部門" という名前のカテゴリ定義を使って、"サッカー シャツ" カテゴリを作成できます。

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、ある商品が複数のカテゴリに属し、価格がカテゴリ レベルで設定されている場合は、プライマリ親カテゴリの価格がその子カテゴリおよび商品に適用されます。価格は、カテゴリ レベルの価格設定を使って、またはカテゴリの仮想カタログ価格ルールを使って設定することができます。

商品

"商品" は、カタログの中の 1 項目です。商品は、プロパティ定義の組み合わせによって定義されます。たとえば、サッカー シャツという名前の商品定義が存在し、"名前"、"色"、および "サイズ" という 3 つのプロパティが定義されている場合は、名前、色、およびサイズの組み合わせをカタログに登録するごとに商品を 1 つ作成します。

商品グループと商品バリエーション

"商品グループ" は、"商品バリエーション" を含む商品です。商品グループと商品の違いはこの点だけです。

「カタログ定義 : 商品およびカテゴリの説明」の図で、Ace サッカー シャツは、同じ種類のシャツの、入手可能な色とサイズのすべての組み合わせを含む商品グループです。種類、サイズ、および色の各組み合わせが商品バリエーションです。サイズが L、色がグリーン、SKU が 115 のシャツは、サッカー シャツ商品の商品バリエーションの 1 つです。この場合、サイズ、色、および SKU の組み合わせが商品バリエーションを構成します。

商品グループには、商品名など、常に一意の識別子があります。

商品バリエーションには、SKU などの一意の識別子と価格が必ず含まれます。各商品バリエーションは、同じ商品定義に基づいています。

関連項目

基本カタログと仮想カタログ

集合カタログ

多言語に対応可能なカタログ

カタログ セット

基本カタログを作成する

カタログの名前とサイズの制限

カタログの一意識別子


カタログ定義 : 商品およびカテゴリの説明

カタログ定義

カテゴリ定義

商品定義

プロパティ定義

カタログ定義

カタログ定義は、カテゴリ定義、商品定義、およびプロパティ定義で構成されます。カテゴリ定義と商品定義は、プロパティ定義を使って作成されます。

次の図は、サンプルのカタログ定義の各要素を示しています。

カタログにデータを登録した後でも、カタログ定義は編集できます。たとえば、次の作業を行うことができます。

  • 商品定義またはカテゴリ定義の名前を変更する。
  • カテゴリ定義または商品定義に含まれているプロパティを変更する。

次の操作を行うことはできません。

  • プロパティ定義の名前を変更する。
  • プロパティのデータ型を変更する (数値型から文字列型への変更など)。

カテゴリ定義

カテゴリ定義は、カタログの各カテゴリの特性を記述したものです。これらの特性は、カテゴリ プロパティと呼ばれます。カテゴリ定義を作成するには、カテゴリ定義にカテゴリ プロパティを割り当てます。たとえば、"部門" カテゴリ定義に "名前"、"説明"、"イメージ ファイル名"、"イメージの高さ"、"イメージの幅" などのカテゴリ プロパティを割り当てます。"部門" カテゴリ定義に基づいてカテゴリを作成する場合は、カテゴリ プロパティの値を入力します。たとえば、"名前" カテゴリ プロパティに "スポーツ シャツ部門" と指定します。

商品定義

商品定義は、特定の商品の特性を記述したものです。これらの特性は、商品プロパティと呼ばれます。商品定義を作成するには、商品定義に商品プロパティを割り当てます。たとえば、"シャツ" という商品定義を作成し、"名前"、"製造元"、および "価格" という 3 つの商品プロパティを割り当てます。"シャツ" 商品定義に基づいて商品を作成する場合は、商品プロパティの値を入力します。たとえば、"名前" 商品プロパティは "Ace サッカー シャツ" とします。

プロパティ定義

カテゴリ プロパティと商品プロパティは、いずれもプロパティ定義に基づいています。プロパティ定義は、プロパティに関する情報を記述したものです。プロパティのデータ型 (Number、Text、Multilingual Text、Decimal など)、プロパティの名前、およびプロパティの最小値を記述します。たとえば、"S サイズ"、"M サイズ"、"L サイズ" のいずれかの値を取る "シャツのサイズ" という名前のプロパティを作成したり、最小値が 10 で最大値が 120 である "長さ" という名前のプロパティを作成することができます。

関連項目

カタログ定義を作成する

カタログ : 商品とカテゴリ

カタログの名前とサイズの制限

カタログに関するヒント集


カタログの一意識別子

基本カタログを作成するときには、商品と商品バリエーションの一意識別子となるプロパティを指定します。商品と商品バリエーションは、いずれも一意の識別子を持ちます。一意の識別子は、テキスト型または数値型のプロパティです。

注

  • 仮想カタログの場合、商品 ID は常に "ProductID" でバリエーション ID は "VariantID" です。したがって、仮想カタログを作成するときは、商品 ID やバリエーション ID を指定する必要はありません。

書籍のカタログの場合、たとえば、書名を商品の一意の識別子とし、ISBN 番号を商品バリエーションの一意の識別子とすることができます。『The Quest Ahead』という書籍の場合、ハード カバー版が第 1 のバリエーション、ペーパーバック版が第 2 のバリエーション、オーディオ版が第 3 のバリエーションになります。これら 3 つの商品バリエーションは、いずれも商品グループ "The Quest Ahead" の一部となります。

次の例は、商品グループ "The Quest Ahead" のコンポーネントを示しています。

Product Family = The Quest Ahead
Unique ID = Title:The Quest Ahead

Product Variant = The Quest Ahead hardback
Unique ID = ISBN:1102334
Price = 20.00
Product Variant = The Quest Ahead paperback
Unique ID = ISBN:1102335
Price = 10.00
Product Variant = The Quest Ahead audio
Unique ID = ISBN:1102336
Price = 15.00

一意の識別子の割り当てに関するヒント集の一覧については、「カタログに関するヒント集」を参照してください。


カタログの階層と関連付け

カタログ定義でカタログの基本構造を提供する一方、カタログ内の商品を整理して、ユーザーが目的の商品に移動しやすくするために、カタログの階層と関連付けを作成します。カタログの階層と関連付けは、同じカタログ内または異なるカタログ内のカテゴリと商品の間で作成することができます。たとえば、大規模なカタログの場合、親カテゴリを作成して、その中に別のカテゴリ、つまり子カテゴリを含むことができます。ユーザーが親カテゴリに移動すると、子カテゴリが表示され、目的の商品が含まれているカテゴリにすぐに移動できます。

プライマリ親カテゴリ

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、ある商品が複数のカテゴリに属し、価格がカテゴリ レベルで設定されている場合は、プライマリ親カテゴリの価格がその子カテゴリおよび商品に適用されます。価格は、カテゴリ レベルの価格設定を使って、またはカテゴリの仮想カタログ価格ルールを使って設定することができます。

次の図は、親カテゴリに含まれる複数の子カテゴリが、同時に親カテゴリにもなっているようすを示しています。

前の図で、スポーツ ウェア カタログにはシャツとパンツという 2 つのカテゴリがあります。シャツ カテゴリには、サッカー シャツとツーピースのトラックスーツという 2 つの子カテゴリがあります。このように構成することによって、ユーザーはツーピースのトラックスーツ カテゴリに 2 つの経路で移動できます。つまり、シャツ カテゴリ経由とパンツ カテゴリ経由になります。

この図は、Ace サッカー シャツと Ace サッカー パンツの間のアクセサリの関連付けも示しています。シャツに関心を示すユーザーは、パンツにも関心を示す可能性があります。

関連項目

カテゴリ階層を作成する

カテゴリと商品の関連付けを作成する

カタログに関するヒント集

カタログの名前とサイズの制限


基本カタログと仮想カタログ

カタログを作成して整理する前に、基本カタログと仮想カタログという 2 つの種類のカタログを作成できることを理解しておくことが重要です。ここでは、この 2 種類のカタログについて説明し、仮想カタログの使用例を 3 つ示します。

基本カタログ

仮想カタログ

仮想カタログの例 1 :特別価格を提示する

仮想カタログの例 2 :別の通貨で商品の価格を設定する

仮想カタログの例 3 :商品のサブセットを提示する

基本カタログ

"基本カタログ" は、カテゴリと商品が含まれますが、特定の価格設定ルールは含まれません。基本カタログには、カタログ データベースに格納されている商品データも含まれます。

仮想カタログ

仮想カタログは、1 つまたは複数の基本カタログに格納されている商品データを参照しています。基本カタログに商品を追加すると、包含ルールによっては、関連付けられた仮想カタログにもその商品が表示される場合があります。仮想カタログの商品がデータベースに表されるのは 1 回だけです。これは、その商品が表示される仮想カタログの数には関係しません。

仮想カタログには、3 つの主要な用途があります。

  • 複数のカタログを集計し、1 つのカタログとしてユーザーに表示する。
  • 複数の通貨で商品の価格を設定する。
  • 特別価格や商品のサブセットを特定のグループのユーザーに提供する。

仮想カタログでは、価格ルールがサポートされます。これによって、カテゴリまたは商品の価格を基本カタログの価格と同じものにするか、違うものにするかを指定できます。たとえば、特定の割合または設定金額を増減して価格を指定します。

仮想カタログの例 1 : 特別価格を提示する

次の図では、ヨーロッパの架空の 2 つの会社が契約を結んでいます。一方は車輪を販売する会社で、もう一方はオートバイを大量販売する会社です。車輪販売会社は、オートバイ販売会社の顧客に車輪を 20% 割引で販売します。商品はすべてユーロ通貨で価格が設定されています。

仮想カタログの例 2 : 別の通貨で商品の価格を設定する

次の図は、仮想カタログの中に基本カタログの商品が含まれているようすを示しています。基本カタログの商品は、価格が米国ドルで設定されています。仮想カタログの商品は、米国ドルでの価格に 1.6 が掛けられています。これは、カナダで販売する商品の価格をカナダ ドル建てで表示するためです。

仮想カタログの例 3 : 商品のサブセットを提示する

次の図は、基本カタログの商品のサブセットを含む仮想カタログを示しています。商品のサブセットはフランスで販売されます。商品はすべてユーロ通貨で価格が設定されています。

関連項目

基本カタログを作成する

仮想カタログを作成する

複数の通貨で商品の価格を設定する

仮想カタログの商品価格に割引を適用する

集合カタログ

多言語に対応可能なカタログ

カタログ セット


複数サプライヤからのカタログ

カタログを複数のサプライヤからインポートし、1 つのカタログとして Web サイトに表示することができます。また、カタログの商品が購入されるときに、注文をサプライヤに直接伝送することができます。

各 Commerce Server カタログには、ベンダ ID 属性が含まれます。この属性が作成されるのは、システム管理者が Microsoft BizTalk Server を使ってベンダとの取引契約を設定するとき (およびアプリケーション既定の構成リソースを構成して BizTalk Options プロパティを 1 に設定するとき) です。ベンダ ID 属性が空の場合は、ビジネス マネージャがそのカタログのベンダであると見なされます。

BizTalk Server と統合した場合は、ベンダ ID 属性は、カタログから購入された項目のベンダに注文書を自動的に送信するために使われます。システム管理者がベンダとの取引契約を設定すると、新しいベンダが Commerce Server ビジネス デスクの、ベンダのボックスの一覧に追加され、そのボックスの一覧からベンダを選択できるようになります。

このシナリオを実現するための主な手順としては次の 2 つがあります。

  1. 仮想カタログを作成して、サプライヤのカタログからコンテンツを集計する。手順の詳細については、「仮想カタログを作成する」を参照してください。
  2. Commerce Server を BizTalk Server と統合し、注文を取引先に伝送する。手順について、Commerce Server 2002 ヘルプの「BizTalk Server との統合」を参照してください。

次に、ビジネス マネージャとベンダが BizTalk Server を使ってカタログを交換する手順の概要を示します。

  1. BizTalk Server をインストールして、ベンダからカタログを受信できるように構成します。
  2. アプリケーション既定の構成リソースを構成して、BizTalk Options プロパティを 1 に設定します。
  3. ベンダとの取引契約を設定します。
  4. ベンダから電子メールまたは BizTalk Server を使ってカタログが送信されたら、ビジネス マネージャは、ビジネス デスクのカタログ エディタ モジュールを使って Commerce Server のカタログ データベースにインポートします。
  5. カタログ エディタ モジュールのツール バーにある送信ボタンをクリックすると、カタログをビジネス デスクからベンダに送信できます。BizTalk Server および契約で定義されているベンダを示すダイアログ ボックスが表示されます。これらのベンダにカタログを送信できます。

1 つのベンダには、複数のカタログを関連付けることができます。また、ビジネス マネージャは、商品レベルでベンダを指定できます。商品レベルでベンダを指定する場合は、サイト開発者が Web サイトの _additem.asp ページをカスタマイズする必要があります。_additem.asp のカスタマイズについては、「Commerce Server Solution Sites」を参照してください。

関連項目

基本カタログと仮想カタログ

集合カタログ

多言語に対応可能なカタログ

カタログ セット


集合カタログ

集合カタログでは、複数のカタログのコンテンツが表示されます。たとえば、複数のサプライヤからのコンテンツを販売する場合で、各サプライヤから 1 つまたは複数のカタログが送信される場合は、コンテンツを 1 つの集合カタログに結合できます。

2 つ以上のカタログを集計するには、まず、仮想カタログを作成し、次に、基本カタログのコンテンツを含めます。集合カタログは、サイトを訪問するユーザーには 1 つのカタログとして表示されます。

集合カタログとカタログ セットは、それぞれを構成するコンポーネントが異なり、また、その用途も異なります。主な相違点を次に示します。

  • 集合カタログとは、複数のカタログを組み合わせて 1 つの仮想カタログとしたものです。
  • カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。カタログ セットを作成する場合は、集合カタログおよびデータベース内の他のカタログを含むカタログ セットを作成できます。

カタログ セット内のカタログは、表示可能なユーザーや組織を指定できます。集合カタログがカタログ セットのメンバでない場合は、集合カタログはすべてのユーザーで利用可能です。

関連項目

基本カタログと仮想カタログ

多言語に対応可能なカタログ

カタログ セット


多言語に対応可能なカタログ

多言語に対応可能なカタログでは、カテゴリおよび商品のテキストが複数の言語で表示されます。たとえば、商品情報を、英語、フランス語、および日本語で表示できます。

多言語に対応可能なカタログを作成する手順の概要を次に示します。

  1. 多言語プロパティ定義を追加する 複数の言語で表示する項目に対して多言語プロパティ定義を追加します。

    既定では、カタログ定義には、次のような一連の多言語プロパティが含まれます。

    • "商品名" - "多言語テキスト"
    • "説明" - "多言語テキスト"
    • "色" – "多言語の複数選択"
  2. 商品定義を追加する 多言語プロパティを使う商品定義を追加します。たとえば、"商品名"、"説明"、および "色" を各商品定義に割り当てます。
  3. カタログを作成する カタログを作成して、カタログがサポートする言語 (英語、フランス語、日本語など) を指定します。
  4. 商品を追加する、および、カテゴリを追加する "商品名"、"説明" などの多言語プロパティを含む、商品およびカテゴリを追加します。
  5. 多言語に対応可能な商品およびカテゴリを、カタログでサポートされる言語に変換します。カタログを変換するには、次のいずれかの方法を使います。
    • カタログをエクスポートおよびインポートして変換する 多数の商品を変換する場合は、カタログ エディタ モジュールを使ってカタログを XML にエクスポートし、カタログを変換プログラムに送信します。カタログが変換されると、変換されたカタログを Commerce Server で使われるカタログ データベースにインポートできます。これで、Commerce Server ビジネス デスクを使って、必要に応じてカタログを更新して公開することができます。
    • ビジネス デスクを使ってカタログを変換する 少数の商品を変換する場合は、ビジネス デスクのカタログ エディタ モジュールを使って、別の言語の商品データを手動で追加します。

関連項目

複数の通貨で商品の価格を設定する

カタログの多言語プロパティ定義を追加する

カタログの商品定義を追加する

基本カタログを作成する

カタログに商品を追加する

カタログにカテゴリを追加する

カタログをエクスポートおよびインポートして変換する

ビジネス デスクを使ってカタログを変換する


外部カタログ : 結合キーを使う

Commerce Server 2002 の新機能として、結合キーのサポートがあります。開発者は、結合キーを使い、外部テーブルにリンクして実行時に在庫データを取得したり、商品に複数の値を関連付けたりすることができます。

次に、結合キーを使うための一般的なシナリオを 2 つ示します。

  • 在庫データなど、更新される頻度の高いカタログ データは、実行時に取得する。カタログ自体に在庫データを含むことはできません。これは、サイトではカタログ データベースへの書き込みが行われないためです。さらに、ネットワーク負荷分散を使うには、カタログ データベースが読み取り専用でなければなりません。
  • 1 つの商品に複数の値を関連付ける。たとえば、CD に対しては曲目リストを、映画のタイトルに対しては配役リストを関連付けます。また、商品に対する顧客評価のリストを関連付けます。

次の図は、結合キーを使って、外部テーブルおよび Commerce Server カタログ データベースからデータを取得する方法を示しています。


カタログ セット

"カタログ セット" を作成すると、サイトでユーザーに対して表示するカタログを決定できます。カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。

カタログ セットと集合カタログは、それぞれを構成するコンポーネントが異なり、また、その用途も異なります。主な相違点を次に示します。

  • 集合カタログとは、複数のカタログを組み合わせて 1 つの仮想カタログとしたものです。
  • カタログ セットとは、さまざまなユーザーや組織に対して公開する 1 つまたは複数のカタログのグループのことです。カタログ セットを作成する場合は、集合カタログおよびデータベース内の他のカタログを含むカタログ セットを作成できます。

カタログ セット内のカタログは、表示可能なユーザーや組織を指定できます。集合カタログがカタログ セットのメンバでない場合は、集合カタログはすべてのユーザーで利用可能です。

カタログを作成するには、たとえば、2 つの基本カタログと 1 つの仮想カタログを作成し、これらの基本カタログと仮想カタログを含むカタログ セットを定義して、特定の組織のメンバにこのカタログ セットを表示します。

次の図は、特別価格が設定されたチーム ウェアのカタログを、サッカー クラブのメンバが表示できるようにするしくみを示しています。

関連項目

カタログ セットを作成する

基本カタログと仮想カタログ

集合カタログ

多言語に対応可能なカタログ


商品価格の設定方法

一般的に、商品の価格は定期的に更新する必要があります。ただし、初期値として、カタログの商品の価格は、直接価格設定、間接価格設定、および特別価格設定 (価格ルール) のいずれかの方法で設定できます。

直接価格設定

間接価格設定

特別価格設定 (仮想カタログの価格ルール)

割引キャンペーン

直接価格設定

商品の価格を商品自体に定義します。商品を作成または編集するときに価格を設定できます。詳細については、「基本カタログの商品の価格を設定する」および「商品バリエーション レベルで価格を設定する」を参照してください。

間接価格設定

価格は、特定の価格カテゴリとの関連によって決定されます。商品が価格カテゴリに関連付けられていると、商品の価格はそのカテゴリで指定された価格に置き換えられます。特定の価格カテゴリとの関連付けがなくなると、商品の価格は元に戻ります。

すべての商品が 200 円の特別なカテゴリを作成するなど、商品のグループに同じ価格設定をする場合は、通常、間接価格設定を使います。商品の間接価格設定については、「カテゴリの商品の価格を設定する」を参照してください。

特別価格設定 (仮想カタログの価格ルール)

仮想カタログでは、カテゴリ、商品、または商品バリエーションに価格ルールを適用できます。

代替通貨で仮想カタログを作成する場合、または割引価格を適用するクラブのメンバなど特定のユーザーのグループだけに表示する仮想カタログを作成する場合は、価格ルールを適用します。

1 つのカテゴリ、商品、または商品バリエーションには、1 つの価格ルールしか設定できません。

仮想カタログのカテゴリおよび商品には、次の価格ルールを適用できます。

  • 設定価格 正確な商品価格を指定します。たとえば、商品を 1,000 円で販売するときに使います。
  • 割増 基本価格に上乗せする金額を指定します。
  • 割増率 価格に上乗せする基本価格の割合を指定します。
  • 割引 基本価格から差し引く金額を指定します。
  • 割引率 価格から差し引く割合を指定します。たとえば、価格の 20% を差し引く場合は 20% を指定します。

特別価格設定の詳細については、「複数の通貨で商品の価格を設定する」を参照してください。

割引キャンペーン

商品価格に割引を適用するには、仮想カタログを使う方法以外に、割引キャンペーン項目を作成する方法があります。割引キャンペーン項目を作成すると、割引を適用できる期間のスケジュールを設定したり、割引キャンペーンの効果に関するレポートを実行したりできます。商品の割引については、「割引を作成する」を参照してください。

関連項目

Using Current Product Prices vs Original Product Prices

基本カタログの商品の価格を設定する

商品バリエーション レベルで価格を設定する

カテゴリの商品の価格を設定する

複数の通貨で商品の価格を設定する

割引を作成する


カタログの名前とサイズの制限

ここでは、Commerce Server ビジネス デスク レベルでの、およびカタログ アプリケーション プログラミング インターフェイス (API) レベルでの、カタログの名前とサイズの制限について説明します。一意の識別子として使うことができる値の詳細については、「カタログに関するヒント集」を参照してください。

ビジネス デスクとカタログ API

商品カタログ データ インポート DTS タスクの制限

商品カタログの条件

ここでは、Commerce Server ビジネス デスク レベルでの、およびカタログ アプリケーション プログラミング インターフェイス (API) レベルでの、カタログの名前とサイズの制限について説明します。

ビジネス デスクとカタログ API

次の表は、プロパティに使用できる文字についての制限を示しています。

項目 | 名前とサイズの制限
プロパティ定義名
  • プロパティ定義名は 100 文字以内で設定します。
  • 先頭の 1 文字には数字を使用できません。
  • コンマ (,) およびピリオド (.) は使用できません。
  • XML タグ名として認められない文字は使用できません。XML のリソース一覧については、次のページを参照してください。

    http://go.microsoft.com/fwlink/?LinkId=6769

  • 商品 ID またはバリエーション ID をプロパティ定義名として使うことはできません。
商品定義名 | 商品定義名は 128 文字以内で設定します。
カテゴリ定義名 | カテゴリ定義名は 128 文字以内で設定します。
カタログ名 (内部名、Web サイトにはこの名前は表示されません)
  • この名前は一意でなければなりません。
  • カタログ名は 85 文字以内で設定します。
  • 角かっこ ([ ])、単一引用符 (')、丸かっこ (( ))、および番号記号 (#) は使用できません。コンマ (,) およびピリオド (.) は使用できません。
  • カタログ表示名には制限はありません。
  • カタログ データを格納する別々のデータベースを備えた複数の Commerce Server サイトが存在し、サイト間で同じデータ ウェアハウスを共有している場合は、それぞれのサイトの別々のカタログに同じ名前を付けないでください。同じ名前のカタログが複数存在する場合、データ ウェアハウスはこれらを 1 つのカタログとして処理します。
カテゴリ名
  • この名前は一意でなければなりません。
  • スラッシュ (/)、コンマ (,)、および二重引用符 (") は使用できません。コンマ (,) は使用できません。
  • 100 文字を超える名前は使用できません。
商品名
  • 商品名の最大長は、商品定義で指定される値によって異なります。Commerce Server による長さの制限はありません。
  • 商品ごとに一意の名前を使用します。
  • カテゴリ名と商品名の組み合わせは一意でなければなりません。
    • サイトのカタログを作成したときに一意でない商品名がカテゴリに存在する場合は、ユーザーが購入のために商品を選択すると、正しくない商品が買い物バスケットに追加されることがあります。このような現象は、商品名がカテゴリ名に追加されている場合に発生します。たとえば、商品 "1A" がカテゴリ "B" に存在し、商品 "A" がカテゴリ "B1" に存在すると、これらの商品はいずれも "B1A" として格納されます。
商品 ID
  • 整数または文字を使用します。
  • 日付、時刻、または通貨は使用できません。
  • 引用符 (" ') は使用できません。
バリエーション ID
  • 引用符 (" ') は使用できません。

商品カタログ データ インポート DTS タスクの制限

カタログ データをデータ ウェアハウスにインポートする場合は、特殊文字を使ったカタログ プロパティを作成しないでください。特殊文字を使うと、商品カタログ データ インポート DTS タスクが失敗します。カタログ プロパティの中で使用できない文字には、! " % & ( ) * + - . / : ; < = > ? \\ ] ^ ` { | } ~ があります。制御文字も使用できません。たとえば、0x00 (NULL)、0x01、0x02、0x03、0x04、0x05、0x06、0x07 (Ctrl-G <BEL>)、0x08 (Ctrl-H <BS>)、0x09 (Ctrl-I <HT>)、0x0a (Ctrl-J <LF>)、0x0b (Ctrl-K <VT>)、x0c (Ctrl-J <FF>)、0x0d (Ctrl-M <PRS_CR>)、0x0e (Ctrl-N <SO>)、0x0f (Ctrl-O <SI>)、0x10、0x11、0x12 などは使用できません。

商品カタログの条件

次の表は、Commerce Server カタログの条件を示しています。

項目 | サポートされるサイズまたは数
カタログ数 基本カタログ 10,000 または仮想カタログ 10,000

または、基本カタログと仮想カタログを合わせて 10,000
カタログあたりの商品数 5,000,000

注

  • それぞれ 5,000,000 の商品を含む 10,000 のカタログではテストされていません。
カタログあたりのプロパティ定義数 | 1,000
仮想カタログあたりの基本カタログ数 | 80
仮想カタログあたりの商品数 | 1,000,000
仮想カタログあたりの価格ルール数 | 10,000
カテゴリあたりの商品数 | 10,000
カテゴリのネスト数 | 5

また、Commerce Server では、SQL テキスト データ型がサポートされます。SQL テキスト データ型では、Microsoft SQL Server における、行のサイズが 8,060 バイトまでという制限は受けません。複数の商品カタログで、SQL Server の 1 つのフルテキスト カタログを共有できます。

関連項目

カタログに関するヒント集


カタログに関するヒント集

次のヒント集は、実装を担当するサイト開発者、システム管理者、およびビジネス マネージャが対象です。

カタログ コンポーネントを使って開発する

カタログをデザインする

商品識別子とバリエーション識別子を割り当てる

カタログをインポートする

カタログを配置する

カタログ コンポーネントを使って開発する

次のヒント集は、実装を担当するサイト開発者を対象としています。

  • 商品 ID、バリエーション ID、またはその他の CatalogProducts テーブルにあるインデックス付き列を結合キーとして使う場合は、外部の結合テーブルの結合キー列にインデックスを付ける。

    たとえば、GetProductProperties API (結合キーは商品 ID) を使う場合は、外部テーブルの結合キーにインデックスを付けると、パフォーマンスが向上します。パフォーマンスは、結合テーブルを使わない場合と同程度のものが得られます。

    この場合、商品 ID が外部テーブルのインデックスでないときは、高いパフォーマンスは得られません。結合キーの詳細については、「Code to Join an External Table to Product Recordsets」を参照してください。

  • 外部テーブルにリンクして実行時に在庫データを取得したり、商品に複数の値を関連付けたりするには、結合キーを使う。

    次に、結合キーを使うための一般的なシナリオを 2 つ示します。

    • 在庫データなど、更新される頻度の高いカタログ データは、実行時に取得する。カタログ自体には在庫データを含まないようにします。これは、サイトではカタログ データベースへの書き込みが行われないためです。また、カタログ データベースを読み取り専用にすると、カタログ データベースのネットワーク負荷分散を使って、サイトを拡張することができます。
    • 1 つの商品に複数の値を関連付ける。たとえば、CD に対しては曲目リストを、映画のタイトルに対しては配役リストを関連付けます。また、商品に対する顧客評価のリストを関連付けます。

    結合キーの詳細については、「Code to Join an External Table to Product Recordsets」、「CatalogManager.SetJoinTable Method」、および「CatalogContext.SetJoinTable Method (BCL)」を参照してください。

  • .NET ベースのサイトを開発するときは、CatalogContext.DebugContext を使って、追跡を実装する。

    DebugContext の使い方については、「CatalogContext.DebugContext」を参照してください。

カタログをデザインする

次のヒント集は、実装を担当するサイト開発者およびビジネス マネージャを対象としています。

  • カタログの将来の拡大に備えてデザインする場合は、次の条件を考慮する。
    • 複数の商品カタログで、SQL Server の 1 つのフルテキスト カタログを共有できます。
    • Commerce Server は、少なくとも 10,000 のカタログをサポートします。つまり、10,000 までの基本カタログ、または、10,000 までの仮想カタログ、あるいは、10,000 までの基本カタログと仮想カタログの組み合わせがサポートされます。
    • 1 つのカタログは、少なくとも 5,000,000 の商品をサポートします。それぞれ 5,000,000 の商品を含む 10,000 のカタログではテストされていません。
    • 1 つのカタログは最大 1,000 のプロパティ定義をサポートできます。
    • 仮想カタログには、最大 80 の基本カタログからコンテンツを含めることができますが、他の仮想カタログからコンテンツを含めることはできません。
    • 仮想カタログには、最大 1,000,000 の商品を含めることができます。
    • 1 つの仮想カタログは最大 10,000 の価格ルールをサポートできます。
    • 1 つのカテゴリは、最大 10,000 の商品をサポートできます。
    • カテゴリは 5 層の深さまでネストすることができます。
    • Commerce Server では、SQL テキスト データ型がサポートされます。SQL テキスト データ型では、SQL Server における、行のサイズが 8,060 バイトまでという制限は受けません。
  • カタログ、カテゴリ、および商品にはそれぞれ一意の名前を使う。カテゴリ名と商品名の組み合わせがすべて一意であることを確認する。

    サイトのカタログを作成したときに一意でない商品名がカテゴリに存在する場合は、ユーザーが購入のために商品を選択すると、正しくない商品が買い物バスケットに追加されることがあります。このような現象は、商品名がカテゴリ名に追加されている場合に発生します。

    たとえば、商品 "1A" がカテゴリ "B" に存在し、商品 "A" がカテゴリ "B1" に存在すると、これらの商品はいずれも "B1A" として格納されます。

  • 作成した商品には、異なる商品定義を割り当てることはできない。
  • 作成したプロパティのデータ型を変更することはできない。

    たとえば、次のものを作成するとします。

    • "商品定義 1"。これには "プロパティ 1" と "プロパティ 2" が含まれます。
    • "商品定義 2"。これには "プロパティ 2" と "プロパティ 3" が含まれます。

    "商品定義 1" に基づいて商品を作成した場合、後でその商品を "商品定義 2" に基づくように変更することはできません。ただし、"商品定義 1" は変更できます。たとえば、"プロパティ 4" を追加することができます。

    商品またはプロパティが使用された後に、新しい商品定義を割り当てたり、データ型を変更したりすることはできません。これは、他の商品またはプロパティが変更による影響を受けるためです。

  • プロパティ名に不一致な組み合わせのかっこがないことを確認する。

    次に例を示します。

    • 正 : 靴のサイズ (男性用)
    • 誤 : 靴のサイズ 男性用)

    Commerce Server では、かっこの組み合わせは検証されません。かっこの一方が欠落したプロパティ名は作成できますが、そのプロパティは Commerce Server データベースから取得することができません。

  • 複数の通貨を含む単一のカタログを表示するには、通貨ごとに仮想カタログを作成する。

    通貨型のプロパティを使います。複数の通貨に対して多言語プロパティを使うことはできません。

    次のいずれかの方法のうち、1 つを使用します。

    • 国または地域別に仮想カタログを作成し、価格ルールを使って国または地域ごとの各商品の価格を定義します。
    • 国または地域別に仮想カタログを作成し、価格ルールを使ってすべての商品に通貨の変換レート (割合) を適用します。
    • サポートする通貨ごとに通貨型のプロパティを作成します ("cy_list_price_USD"、"cy_list_price_CDN"、"cy_list_price_JPY" など)。カタログをクエリして現在の国の通貨型プロパティを選択するコードを記述します。

    価格ルールを使って特に指定した場合を除き、仮想カタログの商品には基本価格が適用されます。

    言語固有の値を別の言語に自動的に適用することはできません。この機能が必要な場合は、戻り値が空の場合に既定値を取得するような独自のランタイム コードを作成できます。または、カタログ内の空の値に既定値を取り込むコードを記述することもできます。

  • Commerce Server ビジネス デスクの商品リストにプロパティを表示するかどうかを決めるには、プロパティ定義の "商品リストに表示" 属性を使う。

    "商品リストに表示" 属性は、Web サイトに影響を与えません。

  • 商品に割り当てられた最初の価格を表示するには、組み込み済みのプロパティ "既定の価格" を使う。

    "既定の価格" は、商品の価格が初期化されるときに設定され、その後は変更されません。Commerce Server では、商品価格の履歴は保持されません。

    詳細については、「Using Current Product Prices vs Original Product Prices」を参照してください。

  • 必要に応じて、独自のユーザー定義の属性を、カタログ レベル、プロパティ レベル、またはその両方のレベルで追加する。

    ビジネス デスクには、通貨、重量測定単位、ロケール、カタログ名などのカタログ属性が含まれています。最小文字数、最小値、最大文字数、最大値、既定値、表示名などのプロパティ属性も含まれています。たとえば、独自のカタログ属性を追加して、カタログの商品を供給するベンダの情報を格納することができます。たとえば、独自のプロパティ属性を追加して、Web ページで特定のプロパティをどのように表示するか (ドロップダウン リスト、ボタン、ラベルなど) を記述することもできます。

    ユーザー定義のカタログ属性やプロパティ属性を追加するには、まず、サイト管理者がカタログ API を使って、属性を Commerce Server に追加する必要があります。次に、新しいカタログ属性を含む XML カタログ ファイルをインポートし、カタログ定義デザイナ モジュールを使って属性の値を設定します。

商品識別子とバリエーション識別子を割り当てる

基本カタログには、商品 ID とバリエーション ID を割り当てる必要があります。仮想カタログでは、商品 ID は常に "ProductID" でバリエーション ID は "VariantID" です。したがって、仮想カタログを作成するときは、商品 ID やバリエーション ID を指定する必要はありません。

次のヒント集は、実装を担当するサイト開発者およびビジネス マネージャを対象としています。

  • 各カタログで、一意の ID に対して同じプロパティを使う。

    ビジネス デスクでカタログの商品を一覧表示する場合は、Commerce Server では一意の ID プロパティごとに列が 1 列作成されます。たとえば、仮想カタログに 20 のカタログを含める場合、各カタログで一意の ID に対して異なるプロパティを使うときは、一意の ID 列が 20 列表示されます。各カタログで一意の ID に対して同じプロパティが使われる場合、表示される列は 1 列だけです。

  • 商品に商品 ID を割り当てるときは、整数または文字を使う。

    日付、時刻、または通貨は使用できません。

  • 商品 ID として使われるプロパティは、すべて商品バリエーション プロパティとして追加できない。

    たとえば、"モデル番号" をカタログの商品の識別子として使う場合は、"モデル番号" が商品バリエーション プロパティとして表示される商品定義を作成しないでください。このようにすると、そのカタログ内に商品定義のインスタンスを作成できなくなります。

  • 商品の一意の識別子には、バリエーションの一意の識別子と同じ値を使わない。

    商品のバリエーション プロパティが、カタログの商品の一意の識別子である場合は、商品は保存できません。たとえば、在庫保管単位 (SKU) を、商品の一意の識別子と、商品バリエーションの一意の識別子に割り当てることはできません。

カタログをインポートする

次のヒント集は、実装を担当するビジネス マネージャを対象としています。

  • ビジネス デスクを使って XML カタログ ファイルをインポートする前に、[カタログのインポート] ダイアログ ボックスの [XML ファイルの評価 (インポートなし)] オプションを選択して、XML ファイルのデータがすべて有効であることを確認する。

    ビジネス デスクでは、XML カタログ ファイル インポートで見つかったエラーが最大で 20 個表示されます。評価時のエラーがなくなるまで、XML カタログ ファイルをインポートしないでください。

  • カタログをカタログ データベースにインポートするには、あらかじめシステム管理者がフルテキスト インデックス サービス (Microsoft Search サービス) を起動しておく。

    カタログが Commerce Server カタログ データベースにインポートされると、フルテキスト インデックスが同時に作成されます。

  • 10 万点 ～ 100 万点の商品を基本カタログにインポートするとき、または、同様のサイズの仮想カタログを公開するときに、パフォーマンスが低下する場合は、サイト開発者が 2 つの SQL Server Database Console ステートメント (DBCC) を使ってパフォーマンスを向上させる。

    SQL Server クエリ アナライザを使って、DBCC FREEPROCCACHE と sp_updatestats を実行します。これらのコマンドにより、GetProduct や GetProductProperties などのカタログ API のパフォーマンスが向上します。

    • DBCC FREEPROCCACHE により、プロシジャのキャッシュからすべての要素が削除されます。

      構文 : DBCC FREEPROCCACHE

    • sp_updatestats により、現在のデータベースにあるすべてのユーザー定義のテーブルに対して、UPDATE STATISTICS が実行されます。

      構文 : sp_updatestats [[@resample =] 'resample']

    これらのコマンドの詳細については、SQL Server Books Online を参照してください。

  • スケジュールを設定して、カタログを取引先などから定期的にインポートする場合は、システム開発者に依頼して必要なコードを記述してもらう。

    CatalogManager API を使ってカタログ インポート用のコードを記述する方法については、「CatalogManager Object」を参照してください。

カタログを配置する

次のヒント集は、実装を担当するシステム管理者を対象としています。

  • カタログ ファイル名のプロパティでイメージへの相対 URL を使っているサイトでは、このイメージがカタログ エディタに表示されるように、それらのグラフィックス用の仮想ディレクトリを作成する。

    BizDesk 仮想ディレクトリの下にイメージ格納用の仮想ディレクトリを作成し、URL をそのディレクトリにマップする必要があります。

    仮想ディレクトリを作成するには

    1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
    2. [インターネット インフォメーション サービス] 画面で <サーバー名> を展開し、<Web サイト> を展開します。
    3. ビジネス デスク アプリケーション (retailbizdesk など) を右クリックし、[新規] をクリックします。次に [仮想ディレクトリ] を選択します。

      仮想ディレクトリの作成ウィザードが起動します。

    4. [仮想ディレクトリの作成ウィザードへようこそ] ダイアログ ボックスの [次へ] をクリックします。
    5. [仮想ディレクトリ エイリアス] ダイアログ ボックスの [エイリアス] ボックスに、サイト用のイメージを格納するサブディレクトリの名前を入力し、[次へ] をクリックします。
    6. [Web サイトのコンテンツのディレクトリ パス] ダイアログ ボックスの [ディレクトリ] フィールドに適切なパスを入力し、[次へ] をクリックします。既定のパスは C:\inetpub\wwwroot\images です。
    7. [アクセス許可] 画面の [ASP などのスクリプトを実行する] チェック ボックスをオフにし、[次へ] をクリックします。
    8. [仮想ディレクトリの作成ウィザード] ダイアログ ボックスの [完了] をクリックします。
  • サーバーで BizDesk フォルダの下に共有フォルダとして ProductCatalogs フォルダを設定する。

    サーバー側のファイルを指定してインポートまたはエクスポートを実行するときに、ファイル名だけを指定すると、ファイルのインポート元またはエクスポート先は、そのサーバーの BizDesk フォルダの下にある ProductCatalogs フォルダになります。たとえば、output.xml ファイルをエクスポートすると d:\inetpub\wwwroot\retailbizdesk\productcatalogs\output.xml にエクスポートされます。このフォルダは、共有として設定しておくことをお勧めします。

  • SQL Server の変更の監視機能を有効にして、カタログ テーブルのフルテキスト インデックスを自動的に更新する。

    変更の監視機能を使うと、バックグラウンドのインデックス更新オプションを使って、変更に関するフルテキスト インデックスを、直ちに更新したり、スケジュールどおりに更新したり、または変更が行われるときに更新したりすることができます。ただし、SQL Server が定期的にフルテキスト インデックスを更新すると、サイトのパフォーマンスに大きく影響します。

    既定では、Commerce Server カタログ テーブルに対する変更の監視機能は無効です。つまり、カタログ内のデータが変更されるたびに、(ビジネス デスクを使って) フルテキスト インデックスを手動で更新する必要があります。ただし、これは指定した時点で、一度に行います。

    変更の監視を有効にする方法については、SQL Server Books Online を参照してください。

  • 具現化された仮想カタログを含む .pup パッケージを作成する場合は、仮想カタログをアンパックした後で、再び具現化する。

    具現化された仮想カタログがアンパックされると、具現化されたテーブルの代わりにビューが使われます。MaterializeVC.vbs スクリプトの使い方については、「仮想カタログを具現化する」を参照してください。

  • MSCS_CatalogScratch データベースから一時的なテーブルを削除するには、CatalogCleanup.vbs スクリプトを使う。

    商品カタログ システムでは、MSCS_CatalogScratch データベースを使って、一時的なカタログ テーブルが格納されます。CatalogCleanup.vbs スクリプトを週に 1 回自動的に実行するようにスケジュールを設定します。

    CatalogCleanup.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。CatalogCleanup.vbs を実行するには、MSCS_CatalogScratch データベースへの接続文字列を指定します。

  • 仮想カタログを再構築して、基本カタログから含めた商品に価格ルールを設定できるようにする。

    次のシナリオに従って仮想カタログを再構築する必要があります。

    • 仮想カタログが具現化されている場合、関連付けられた基本カタログの任意のデータを変更したときは、仮想カタログを再構築する必要があります。
    • 仮想カタログが具現化されていない場合、関連付けられた基本カタログのデータを変更したときは (価格設定の変更、階層や関連付けの変更など)、仮想カタログを再構築する必要があります。
    • 包含/除外ルールまたは価格設定ルールを変更したときは、仮想カタログを再構築する必要があります。
  • 運用サーバー上の仮想カタログを再構築すると、ユーザーがカタログにアクセスできなくなる。

    準備環境のサーバー上だけで仮想カタログを再構築します。カタログを具現化した後は、ユーザーのトランザクションに影響を与えずに、カタログを運用サーバーに複製できます。

  • フルテキスト インデックス サービス (Microsoft Search サービス) が停止したときは、カタログから商品を削除しない。

    Microsoft Search サービスでは、カタログのコンテンツおよびプロパティに対するフルテキスト インデックスが作成され、これらのデータを高速に言語検索できるようになります。Microsoft Search サービスが停止した場合、カタログからデータを削除すると、カタログが破損します。システム管理者は、Microsoft Search サービスの停止時間のスケジュールを設定したときは、ユーザーに通知するようにします。

  • 1 つのフルテキスト カタログにあるすべての商品カタログのフルテキスト インデックスを更新するには、Updatefulltextcatalogs.vbs スクリプトを使う。

    1 つのフルテキスト カタログに複数のカタログが含まれている場合は、Updatefulltextcatalog.vbs スクリプトを使って、すべてのカタログのフルテキスト インデックスを同時に更新することができます。Updatefulltextcatalog.vbs スクリプトを使うと、ProductCatalog.RegenerateFullTextIndex オブジェクトを使うときよりも効率的で、SQL Server のリソースを大量に消費しないで済みます。

    Updatefulltextcatalog.vbs スクリプトは、\Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。Updatefulltextcatalog.vbs を実行するには、カタログ データベースへの接続文字列と 2 つのパラメータを渡します。操作方法については、「Updatefulltextcatalog スクリプトを実行する」を参照してください。

  • フルテキスト サービス (Microsoft Search サービス) のリソース使用量を設定するには、SP_FULLTEXT_SERVICE コマンドを使う。

    次のコマンドは、リソース使用量を 3 (既定値) に設定します。

    EXEC sp_fulltext_service 'resource_usage', '3'

    リソース使用量を 5 に設定すると、フルテキスト インデックスの作成は高速になりますが、サービスは CPU を 100% 使います。

    詳細については、次のページでサポート技術情報の記事「INF : SQL 7.0 フルテキスト カタログのフォルダとファイルを移動、コピー、バックアップする方法」を参照してください。

    http://go.microsoft.com/fwlink/?LinkId=6770

  • CatalogLanguageMap テーブルを設定するには、UpdateLanguageInfo.vbs を使う。言語に依存しないテーブルでは、フルテキスト インデックス化された列ごとに単語区切りを構成する。

    単語区切りでは、"This is a new book" などのフルテキスト検索語句が、個々の単語に区切られます。単語区切りの動作は、構成対象の言語によって異なります。たとえば、英語のカタログを検索できるようにするには、単語区切り 1033 を指定します。1033 は、英語のロケール ID です。

    カタログの言語の単語区切りを構成できます。たとえば、日本語専用のカタログがある場合は、すべてのテキスト プロパティで日本語のテキストが保持されます。これは、プロパティが多言語として定義されているかどうかには関係しません。この場合、既定の単語区切りでは不適切なため、日本語の単語区切りを構成します。

    カタログの単語区切りを指定するには、CatalogLanguageMap テーブルにロケールの行を手動で追加します ("en-us", 1033 など)。または、UpdateLanguageInfo.vbs を使って、CatalogLanguageMap テーブルを作成します。UpdateLanguageInfo.vbs は、\Program Files\Microsoft Commerce Server 2002\Support フォルダにあります。

    言語に依存しないテーブル <カタログ名>_CatalogProducts の単語区切りを構成するには、CatalogLanguageMap テーブルで行 {"neutral", <ロケール ID>} を使います。言語に依存しない単語区切りを変更した場合に影響を受けるカタログは、変更後に作成されるカタログだけです。この変更は、既存のカタログと新しく作成されるカタログの両方に適用されます。


カタログをインポートおよびエクスポートする

次のシナリオに従って Commerce Server カタログをインポートおよびエクスポートすることができます。

  • Oracle データベースに格納されているカタログ データは、XML ファイルまたは CSV ファイルにエクスポートし、次に Commerce Server にインポートします。この作業を定期的に行うには、システム管理者に、スケジュール設定されたジョブの作成を依頼します。
  • Commerce Server の多言語に対応可能なカタログは、XML ファイルにエクスポートし、変換プログラムに送信して変換し、次にそのカタログを Commerce Server にインポートします。
  • Microsoft Excel スプレッドシートに格納されているカタログ データは、エクスポートしてから、次に Commerce Server にインポートします。

これら 3 つのすべてのシナリオで、Commerce Server ビジネス デスクを使ってカタログをインポートすることができます。

スケジュールを設定して、カタログを取引先などから定期的にインポートする場合は、システム開発者に依頼して必要なコードを記述してもらいます。CatalogManager API を使ってカタログ インポート用のコードを記述する方法については、「CatalogManager Object」を参照してください。

ここでは、次のトピックについて説明します。

  • XML カタログ ファイルをインポートする
  • CSV カタログ ファイルをインポートする
  • カタログをエクスポートする
  • CSV カタログ ファイルを Excel にエクスポートする


XML カタログ ファイルをインポートする

拡張マークアップ言語 (XML) ファイル形式の Commerce Server カタログには、カタログ定義と商品データの両方が含まれます。Commerce Server カタログの XML ファイルをインポートし、カタログ エディタ モジュールを使って商品データを変更できます。

注

  • カタログをカタログ データベースにインポートするには、あらかじめシステム管理者がフルテキスト インデックス サービス (Microsoft Search サービス) を起動しておく必要があります。
  • 既存の商品定義と名前が同じで、プロパティが異なる商品定義を含むカタログは、インポートできません。
  • カタログには、カスタム カタログ属性およびプロパティ属性を含むことができます。
  • カタログに商品バリエーションが含まれている場合は、XML を使ってバリエーションを保持する必要があります。コンマ区切り値 (CSV) ファイルでは、商品バリエーションはサポートされません。
  • カタログをインポートした後に、ユーザーまたはシステム管理者は、サーバーのアプリケーション イベント ログでエラーがあるかどうかを確認する必要があります。
  • サイズが 1 GB を超えるカタログ XML ファイルをインポートするには、サーバーに MSXML 4.0 がインストールされている必要があります。

XML のカタログ ファイルをインポートするには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの カタログのインポート をクリックし、ボックスの一覧の [XML のインポート] をクリックします。
  3. [XML カタログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバーの XML ファイルを指定] | インポートする XML カタログ ファイルの名前を入力します。この XML カタログ ファイルは、Commerce Server と同じコンピュータに配置する必要があります。
    [ローカルにアクセスできる XML ファイルを指定] [参照] をクリックして、ビジネス デスク クライアント コンピュータ上の XML カタログ ファイルに移動します。

    カタログのサイズが大きい場合、インポート プロセスが完了するまでに数分かかります。サーバーに配置されたカタログをインポートする方が、はるかに高速です。
    [このカタログの既存のデータを削除する] | Commerce Server カタログ データベースに既に存在するカタログをインポートする場合、このチェック ボックスをオンにすると、既存のカタログからデータが削除された後で、新しいデータがインポートされます
    [XML ファイルの評価 (インポートなし)] | XML ファイルのデータをインポートする前に評価する場合は、このチェック ボックスをオンにします。データが有効でない場合、エラー メッセージが表示され、カタログはインポートされません。
  4. [OK] をクリックします。

    カタログ インポート プロセスが開始されたことを示すメッセージが表示されます。カタログ インポート プロセスには数分かかります。必要な時間は、カタログのサイズによって異なります。この間、ビジネス デスクを使って、他のタスクを実行することができます。また、ビジネス デスクを終了することもできます。

    XML ファイルが無効であるというメッセージが表示された場合は、システム管理者に問い合わせて、問題を特定してください。

  5. インポートしたカタログを表示するには、[カタログ エディタ] をクリックします。この手順では、[カタログ エディタ] 画面が更新されます。
  6. カタログを Web サイトに公開するには、[カタログ エディタ] をクリックし、ツール バーの カタログの公開 をクリックします。

    カタログの公開の詳細については、「カタログを更新および公開する」を参照してください。

関連項目

カタログに関するヒント集

カタログをエクスポートおよびインポートして変換する

CSV カタログ ファイルをインポートする

カタログをインポートできない

CatalogManager Object


CSV カタログ ファイルをインポートする

コンマ区切り値 (CSV) カタログ ファイルを使うと、Microsoft Excel スプレッドシートからデータをインポートすることなどができます。Microsoft Excel では、スプレッドシートを CSV ファイルとして保存できます。

CSV ファイルには次の特性があることに注意してください。

  • CSV カタログ ファイルには、商品データは含まれますが、カタログ定義は含まれません。
  • CSV ファイルでは、商品はカテゴリに分類されません。
  • CSV カタログ ファイルには、商品 ID と価格の列が必要です。
  • CSV カタログ ファイルには個別の商品だけが含まれ、商品バリエーションはサポートされません。
  • CSV カタログ ファイルでサポートされるデータ型は、文字列データ型だけです。

インポートされた CSV カタログ ファイルの商品は、単一の商品定義にマップされます。

CSV カタログ ファイルをインポートすると、ファイルに含まれる列に基づいて、商品定義が自動的に作成されます。個々の商品は、自動的に作成された商品定義のインスタンスとしてインポートされます。商品定義には、インポートするカタログと同じ名前が付けられます。

CSV カタログ ファイルをインポートしたら、カタログ エディタ モジュールを使ってカテゴリを作成し、カテゴリに商品を追加します。

注

  • カタログをカタログ データベースにインポートするには、あらかじめシステム管理者がフルテキスト インデックス サービス (Microsoft Search サービス) を起動しておく必要があります。
  • 商品バリエーションを持つカタログをインポートするには、XML を使用してバリエーションを保持する必要があります。CSV ファイルでは、商品バリエーションはサポートされません。
  • 商品定義と同じ名前のカタログをインポートすると、元の商品定義は上書きされます。
  • カタログに含まれる商品定義が、同じ名前の既存の商品定義と異なるプロパティを持つ場合、そのカタログはインポートできません。
  • カタログをインポートした後に、ユーザーまたはシステム管理者は、サーバーのアプリケーション イベント ログでエラーがあるかどうかを確認する必要があります。

CSV カタログ ファイルをインポートするには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの カタログのインポート をクリックし、ボックスの一覧の [CSV のインポート] をクリックします。
  3. [CSV カタログのインポート] ダイアログ ボックスで、次の操作を行います。
    項目 | 操作
    [サーバーの CSV ファイルを指定] | インポートする CSV カタログ ファイルの名前を入力します。このファイルは、Commerce Server と同じコンピュータに配置する必要があります。
    [ローカルにアクセスできる CSV ファイルを指定] [参照] をクリックして、ビジネス デスク クライアント コンピュータ上の CSV カタログ ファイルに移動します。

    カタログのサイズが大きい場合、インポート プロセスが完了するまでに数分かかります。サーバーに配置されたカタログをインポートする方が、はるかに高速です。
    [言語] | インポートするカタログに関連付ける言語を選択します。
    [カタログ名] | インポートするカタログの一意の名前を入力します。この名前は、インポート処理時に作成される商品定義の名前にも使われます。
    [商品 ID] | CSV ファイルの ID 列名を入力します。
    [価格の列] | CSV ファイルの価格列名を入力します。
    [このカタログ内の任意の既存データを削除する] | Commerce Server カタログ データベースに既に存在するカタログをインポートする場合、このチェック ボックスをオンにすると、既存のカタログからデータが削除された後で、新しいデータがインポートされます
  4. [OK] をクリックします。

    カタログ インポート プロセスが開始されたことを示すメッセージが表示されます。カタログ インポート プロセスには数分かかります。必要な時間は、カタログのサイズによって異なります。この間、ビジネス デスクを使って、他のタスクを実行することができます。また、ビジネス デスクを終了することもできます。

    CSV ファイルが無効であるというメッセージが表示された場合は、システム管理者に問い合わせて、問題を特定してください。

  5. インポートしたカタログを表示するには、[カタログ エディタ] をクリックします。この手順では、[カタログ エディタ] 画面が更新されます。
  6. カタログを Web サイトに公開するには、[カタログ エディタ] をクリックし、ツール バーの カタログの公開 をクリックします。

    カタログの公開の詳細については、「カタログを更新および公開する」を参照してください。

関連項目

カタログに関するヒント集

CSV カタログ ファイルを Excel にエクスポートする

XML カタログ ファイルをインポートする

カタログをインポートできない

CatalogManager Object

カタログをエクスポートおよびインポートして変換する

カタログにカテゴリを追加する

カタログに商品を追加する


カタログをエクスポートする

カタログをエクスポートすることで、カタログが移動可能になります。たとえば、提携先とカタログを共有したり、カタログの作成と保守を外部に委託できるようになります。

別の言語に変換するカタログをエクスポートする方法については、「カタログをエクスポートおよびインポートして変換する」を参照してください。

基本カタログと仮想カタログの両方を XML 形式または CSV 形式でエクスポートできます。

注

  • エクスポートした仮想カタログは、基本カタログになります。たとえば、仮想カタログをエクスポートしてから、別のサーバーまたはカタログ名の変更後に基本カタログとしてインポートできます。

    エクスポートした仮想カタログを、再び仮想カタログとしてインポートすることはできません。

  • 仮想カタログをエクスポートする場合、価格ルールはエクスポートされません。
  • カタログを XML ファイル形式でエクスポートする場合は、1 つまたはすべての言語でエクスポートできます。
  • カタログを CSV ファイル形式でエクスポートする場合、1 つの言語のカタログしかエクスポートできません。

カタログをエクスポートするには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、エクスポートするカタログを選択し、ツール バーの カタログのエクスポート をクリックします。
  3. カタログをエクスポートするファイル形式として、XML 形式と CSV 形式のどちらかをボックスの一覧から選択します。
  4. CSV ファイルを選択した場合は、手順 5. に進みます。XML ファイルを選択した場合は、次の操作を行います。
    • [カタログのエクスポート] ダイアログ ボックスで、[開始日] ボックスに指定した日付以降にカタログに適用された変更だけをエクスポートする場合は、[増分エクスポート] を選択します。
    • [開始日] ボックスに、増分エクスポートの対象となる開始日を入力します。
  5. [言語] ボックスで、エクスポートする多言語プロパティの言語を指定します。たとえば、[説明] プロパティに英語と中国語の値が含まれている場合は、英語のみ、中国語のみ、またはその両方の言語のカタログをエクスポートできます。
  6. [サーバーでファイルを保存する場所を指定] ボックスで、サーバーで書き込まれるカタログの完全なパスとファイル名を入力し、[OK] をクリックします。

    サーバー側のファイルを指定するときに、ファイル名だけを指定すると、ファイルのエクスポート先は、そのサーバーの BizDesk フォルダの下にある ProductCatalogs フォルダになります。たとえば、output.xml ファイルをエクスポートすると d:\inetpub\wwwroot\retailbizdesk\productcatalogs\output.xml にエクスポートされます。このフォルダは、共有として設定しておくことをお勧めします。

指定した場所にエクスポートされたカタログは、コピーして別の場所で使用できます。

関連項目

CSV カタログ ファイルを Excel にエクスポートする

カタログをエクスポートおよびインポートして変換する

カタログを取引先に送信する

複数サプライヤからのカタログ

CatalogManager Object


CSV カタログ ファイルを Excel にエクスポートする

Commerce Server データベースからカタログをエクスポートして、Microsoft Excel スプレッドシートにインポートすることができます。

注

  • エクスポートした仮想カタログは、基本カタログになります。たとえば、仮想カタログをエクスポートして、それを基本カタログとしてインポートすることができます。
  • カタログを CSV ファイル形式でエクスポートする場合、1 つの言語のカタログしかエクスポートできません。
  • 仮想カタログをエクスポートする場合、価格ルールはエクスポートされません。

カタログを CSV ファイル形式でエクスポートするには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、エクスポートするカタログを選択し、ツール バーの カタログのエクスポート をクリックします。
  3. ボックスの一覧の [CSV にエクスポート] をクリックします。
  4. [カタログのエクスポート] ダイアログ ボックスの [開始日] ボックスに、増分エクスポートの対象となる開始日を入力します。
  5. [言語] ボックスで、エクスポートする多言語プロパティの言語を指定します。たとえば、[説明] プロパティに英語と中国語の値が含まれている場合は、英語のみ、中国語のみ、またはその両方の言語のカタログをエクスポートできます。
  6. [サーバーでファイルを保存する場所を指定] ボックスで、サーバーで書き込まれるカタログの完全なパスとファイル名を入力し、[OK] をクリックします。

    サーバー側のファイルを指定するときに、ファイル名だけを指定すると、ファイルのエクスポート先は、そのサーバーの BizDesk フォルダの下にある ProductCatalogs フォルダになります。たとえば、output.xml ファイルをエクスポートすると d:\inetpub\wwwroot\retailbizdesk\productcatalogs\output.xml にエクスポートされます。このフォルダは、共有として設定しておくことをお勧めします。

選択した場所にカタログがエクスポートされます。

CSV カタログ ファイルを Excel にインポートするには

  1. Microsoft Excel で、 開く をクリックします。
  2. [ファイルの場所] ボックスの一覧で、開くファイルが含まれるドライブ、フォルダ、またはインターネットの場所を見つけます。
  3. [ファイルの種類] ボックスの一覧から [テキスト ファイル (*.prn, *.txt, *.csv)] を選択し、[開く] をクリックします。

    テキスト ファイル ウィザードが起動します。

  4. [テキスト ファイル ウィザード - 1 / 3] 画面で、既定のエントリをそのまま使い、[次へ] をクリックします。
  5. [テキスト ファイル ウィザード - 2 / 3] 画面で、区切り文字として [カンマ] を選択し、それ以外は既定のエントリをそのまま使い、[次へ] をクリックします。
  6. [テキスト ファイル ウィザード - 3 / 3] 画面で、列のデータ形式を選択し、[完了] をクリックします。

    カタログ ファイルが Excel にインポートされます。

関連項目

CSV カタログ ファイルをインポートする

カタログに関するヒント集

カタログをエクスポートおよびインポートして変換する

カタログを取引先に送信する

複数サプライヤからのカタログ

CatalogManager Object


カタログ定義を作成する

カタログをインポートするのではなく、独自に作成する場合は、最初にカタログ定義を作成する必要があります。カタログ定義を作成したら、カタログにカテゴリ、商品、およびプロパティを追加します。

カタログ定義を作成するには、次の 3 つの操作を行います。

  1. カタログのプロパティ定義を追加する たとえば、Name、Description、Artist、Title、および List Price はプロパティ定義です。プロパティ定義は、商品定義とカテゴリ定義で使われます。
  2. カタログの商品定義を追加する たとえば、音楽 CD を販売するサイトであれば、"Compact Disks" という種類の商品の商品定義を作成し、Artist、Title、List Price の各プロパティを割り当てることができます。カタログ内のすべての商品は、商品定義のインスタンスです。商品定義は、特定の種類の商品のプロパティを指定します。
  3. カタログのカテゴリ定義を追加する たとえば、Name と Description はカテゴリ定義で定義されるカテゴリのプロパティです。

次の図は、商品定義とカテゴリ定義が、プロパティ定義に基づくことを示しています。

ここでは、次のトピックについて説明します。

  • カタログのプロパティ定義を追加する
  • カタログの多言語プロパティ定義を追加する
  • カスタム カタログ属性およびプロパティ属性を追加する
  • カタログの商品定義を追加する
  • カタログのカテゴリ定義を追加する


カタログのプロパティ定義を追加する

プロパティ定義は、カタログのカテゴリ定義または商品定義の特性を 1 つ指定します。

1 つのプロパティ定義を複数のカテゴリ定義と商品定義で使ったり、カタログ間で共有したりすることができます。たとえば、カテゴリと商品に説明を追加する際に、"Description" プロパティ定義をすべての商品定義とカテゴリ定義で使用できます。

カタログ定義に追加したプロパティ定義を、カテゴリ定義または商品定義に追加することができます。

注

  • プロパティ定義名は 100 文字以内で設定します。
  • プロパティ定義名に角かっこ [ ]、または二重引用符 (") の文字を使うことはできません。ピリオド (.) またはコンマ (,) を使うこともできません。
  • プロパティ定義名の先頭に数字を使うことはできません。
  • カタログ データをデータ ウェアハウスにインポートする場合は、「カタログの名前とサイズの制限」を参照して、商品カタログ データ インポート DTS タスクの名前付けに関する制限事項を把握しておいてください。
  • "ProductID" および "VariantID" をプロパティ定義名として使うことはできません。
  • プロパティ定義名に不一致な組み合わせのかっこが含まれていないことを確認します。たとえば、プロパティ名として "靴のサイズ (男性用)" ではなく "靴のサイズ 男性用)" を入力した場合、このプロパティは格納されますが、Commerce Server データベースから取得することはできません。
  • [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての商品定義に対して、このプロパティが自動的に継承されます。このプロパティが設定されている XML カタログをインポートすると、作成する商品定義すべてに影響します。
  • プロパティに必要な値を指定するには、[必須] ボックスを使用します。プロパティが必須である場合は、 必須 と表示されます。

カタログ定義にプロパティ定義を追加するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [カタログ定義デザイナ : プロパティ定義] 画面で、ツール バーの 新規 をクリックし、新しいプロパティ定義で使うプロパティのデータ型を選択します。

    必要な属性が Commerce Server に用意されていない場合は、独自のカスタム プロパティ属性を追加できます。詳細については、「カスタム カタログ属性およびプロパティ属性を追加する」を参照してください。

  4. [プロパティ定義 : 新規] 画面に、選択したプロパティ定義のデータ型によって異なるボックスが表示されます。次の操作を行います。
    項目 | プロパティのデータ型 | 操作
    [名前] すべて プロパティの内部名を入力します。

    注

    • このプロパティを保存した後で、プロパティ名を変更することはできません。
    [表示名] | すべて | このプロパティのラベルとして Web サイトに表示する名前を入力します。たとえば、"シャツの色" という名前のプロパティであれば、"色" などの表示名にします。
    [サイトに表示] すべて このチェック ボックスをオンにすると、指定したプロパティが Web サイト上のユーザーに表示されます。内部で使用する一部のプロパティを非公開にする場合は、このチェック ボックスをオフにします。

    既定では、長いテキストのプロパティに対して、このチェック ボックスはオンになっています。
    [フリーテキスト検索可能] Text、Multiple Choice このチェック ボックスをオンにすると、このプロパティに格納されている値が、カタログのフリーテキスト検索の対象になります。

    [フリーテキスト検索] チェック ボックスをオンにすると、カタログのフルテキスト インデックスにプロパティ定義が追加されます。カタログで検索対象に指定されている項目を変更したときは、フルテキスト インデックスを更新する必要があります。フルテキスト インデックスの更新については、「カタログを更新および公開する」を参照してください。
    [条件指定可能] Text、Number、Decimal、Money/Currency、Date/Time、Multiple Choice、Multilingual このチェック ボックスをオンにすると、条件指定検索でこのプロパティが使われます。

    既定では、長いテキストのプロパティに対して、このチェック ボックスはオフになっています。説明の長いテキストは条件指定検索に適していないためです。
    [最小文字数] Text、Multilingual このプロパティのデータ型の値の最小長を入力します。

    ゼロ以外の長さを指定すると、このプロパティは商品定義またはカテゴリ定義の必須プロパティになり、 [image] と表示されます。
    [最大文字数] | Text、Multilingual | このプロパティのデータ型の値の最大長を入力します。
    [最小値] | Number、Decimal、Money/Currency | このプロパティのデータ型の最小値を入力します。
    [最大値] Number、Decimal、Money/Currency このプロパティのデータ型の最大値を入力します。

    たとえば、貨幣のプロパティを追加する場合は、商品に適用する最高金額が収まるような値を指定します。小数や端数を指定することもできます。
    [最も早い日付] | Date/Time | このプロパティの有効期間で最も早い日付を入力します。たとえば、ユーザーが新しい本を注文できる最も早い日付を指定します。
    [最も早い時刻] | Date/Time | プロパティに関連付ける最も早い時刻を 00:00 形式で入力します。たとえば、開始時刻を指定します。
    [最も遅い日付] | Date/Time | このプロパティの有効期間で最も遅い日付を入力します。
    [最も遅い時刻] | Date/Time | このプロパティの有効期間で最も遅い時刻を 00:00 形式 (午後 10:00 であれば 22:00 など) で入力します
    [既定値] | Text、Number、Decimal、Money/Currency、Date/Time、Multiple Choice、Multilingual | このプロパティのデータ型の既定値を入力します。値の形式は、追加するプロパティのデータ型によって異なります。
    [すべての商品の種類に割り当てる] すべて すべての種類の商品にこのプロパティを割り当てるには、このチェック ボックスをオンにします。たとえば、名前、説明、重量などの汎用の商品プロパティの場合にオンにします。

    [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての定義に対して、このプロパティが自動的に継承されます。
    [分析用にデータを保存] | Long Text と Long Multilingual Text を除くすべて | このプロパティをデータ ウェアハウスにエクスポートするには、このチェック ボックスをオンにします。データ ウェアハウスにエクスポートしたデータは、レポート処理に利用できます。
    [商品リストに表示] | すべて | サイト上の商品リストにこのプロパティを表示するには、このチェック ボックスをオンにします。
    [必須] | Multilingual Multiple Choice を除くすべて | このプロパティに値を設定する必要がある場合に、このチェック ボックスをオンにします。プロパティが必須である場合は、 [image] と表示されます。
  5. プロパティ定義を保存するには、ツール バーの 保存 をクリックします。
  6. プロパティにセキュリティを設定して、ビジネス デスクのユーザーがプロパティを編集したり削除したりできないようにするには、[セキュリティ] セクションで、[アクセス許可] をクリックします。
  7. このカタログを更新するためのセキュリティのアクセス許可が付与されているユーザーの Windows アカウントを指定し、[閉じる] をクリックします。
  8. プロパティ定義のアクセス許可を保存して、[カタログ定義デザイナ : プロパティ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

これで、プロパティ定義をカテゴリ定義、商品定義、またはその両方に追加できるようになります。

関連項目

カタログの名前とサイズの制限

カタログの多言語プロパティ定義を追加する

カタログの商品定義を追加する

カタログのカテゴリ定義を追加する


カタログの多言語プロパティ定義を追加する

多言語をサポートするカタログのプロパティを作成できます。たとえば、"説明" プロパティが多言語テキストであることを指定し、次に "説明" が英語、ドイツ語、日本語、およびフランス語をサポートできることを指定することができます。多言語プロパティを作成すると、複数の言語をサポートするカタログを作成できます。

作成できる多言語プロパティのデータ型は次のとおりです。

  • Multilingual Text (多言語テキスト)
  • Multilingual Long Text (長い多言語テキスト)
  • Multilingual File Name (多言語ファイル名) 言語ごとに一意のファイル名です。たとえば、商品のイメージにテキストが含まれている場合などに、言語ごとに商品のイメージ ファイルを変えます。
  • Free-Text Searchable (フリーテキスト検索)
  • Multilingual Multiple Choice (多言語の複数選択)

多言語プロパティでは、フリーテキスト検索オプションはサポートされません。

注

  • [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての商品定義に対して、このプロパティが自動的に継承されます。このプロパティが設定されている XML カタログをインポートすると、作成する商品定義すべてに影響します。
  • プロパティ名の先頭に数字を使うことはできません。
  • プロパティの値が必須かどうかを指定するには、[必須] ボックスを使います。プロパティが必須である場合は、 [image] と表示されます。

カタログ定義に多言語プロパティ定義を追加するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [カタログ定義デザイナ : プロパティ定義] 画面で、ツール バーの 新規 をクリックし、新しいプロパティ定義で使う複数言語プロパティのデータ型を選択します。
  4. [プロパティ定義 : 新規] 画面に、選択したプロパティ定義のデータ型によって異なるボックスが表示されます。[プロパティ] セクションで、次の操作を行います。
    項目 | プロパティのデータ型 | 操作
    [名前] すべて プロパティの内部名を入力します。Web サイトに表示する名前を入力するには、手順 5. を参照してください。

    注

    • このプロパティを保存した後で、内部プロパティ名を変更することはできません。
    [サイトに表示] | すべて | このチェック ボックスをオンにすると、指定したプロパティが Web サイト上のユーザーに表示されます。内部で使用する一部のプロパティを非公開にする場合は、このチェック ボックスをオフにします。
    [条件指定可能] | すべて | このチェック ボックスをオンにすると、条件指定検索でこのプロパティが使われます。
    [最小文字数] | Multilingual Text | このプロパティのデータ型の値の最小長を入力します。ゼロ以外の長さを指定すると、このプロパティは商品定義またはカテゴリ定義の必須プロパティになり、 [image] と表示されます。
    [最大文字数] | Multilingual Text | このプロパティのデータ型の値の最大長を入力します。
    [すべての商品の種類に割り当てる] すべて すべての種類の商品にこのプロパティを割り当てるには、このチェック ボックスをオンにします。たとえば、名前、説明、重量などの汎用の商品プロパティにプロパティを追加できます。

    [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての定義に対して、このプロパティが自動的に継承されます。
    [分析用にデータを保存] | Multilingual Long Text を除くすべて | このプロパティをデータ ウェアハウスにエクスポートするには、このチェック ボックスをオンにします。データ ウェアハウスにエクスポートしたデータは、レポート処理に利用できます。
    [商品リストに表示] | すべて | 商品リストにこのプロパティを表示するには、このチェック ボックスをオンにします。
  5. [表示名] セクションの [新規] をクリックし、ボックスの一覧から言語を選択します。
  6. [表示名] ボックスに言語のプロパティ名を入力し、[確認] をクリックします。

    この名前が、サイトを訪問するユーザーに適切な言語で表示されます。

  7. [既定値] セクションの [新規] をクリックし、ボックスの一覧から言語を選択します。
  8. [既定値] ボックスに、このプロパティに適用する値を、指定した言語で入力し、[確認] をクリックします。
  9. プロパティにセキュリティを設定して、ビジネス デスクのユーザーがプロパティを編集したり削除したりできないようにするには、[セキュリティ] セクションで、[アクセス許可] をクリックします。
  10. このカタログを更新するためのセキュリティのアクセス許可が付与されているユーザーの Windows アカウントを指定し、[閉じる] をクリックします。
  11. プロパティ定義のアクセス許可を保存して、[カタログ定義デザイナ : プロパティ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

これで、多言語プロパティ定義をカテゴリ定義、商品定義、またはその両方に追加できるようになります。

関連項目

カタログの名前とサイズの制限

カタログの商品定義を追加する

カタログのカテゴリ定義を追加する


カスタム カタログ属性およびプロパティ属性を追加する

Commerce Server ビジネス デスクには、通貨、重量測定単位、ロケール、カタログ名などのカタログ属性が含まれています。最小文字数、最小値、最大文字数、最大値、既定値、表示名などのプロパティ属性も含まれています。

独自のカタログ属性を追加して、カタログの商品を供給するベンダの情報を格納することができます。

独自のプロパティ属性を追加して、Web サイトでの特定のプロパティの表示方法を記述することができます。たとえば、プロパティをドロップダウン リストに表示する、オプション ボタンとして表示する、またはラベルとして表示するように指定できます。

ユーザー定義のカタログ属性やプロパティ属性を追加するには

  1. サイト管理者に問い合わせて、カタログ API を使って Commerce Server に新しい属性を追加します。
  2. カタログおよびプロパティで使う新しいカタログ属性およびプロパティ属性を含む XML カタログ ファイルをインポートします。
  3. [カタログ定義デザイナ] を使って、カタログおよびプロパティに属性を割り当て、属性の値を設定します。

関連項目

XML カタログ ファイルをインポートする

カタログのプロパティ定義を編集する


カタログの商品定義を追加する

商品定義は、特定の種類の商品のプロパティを指定します。たとえば、音楽 CD を販売するサイトであれば、"コンパクト ディスク" という商品の商品定義を作成できます。商品定義には、"アーティスト"、"タイトル"、"標準価格" の各プロパティを割り当てることができます。

注

  • "標準価格" プロパティが、各商品定義に自動的に割り当てられます。
  • 商品 ID として使われるプロパティは、すべて商品バリエーション プロパティとして追加できません。

カタログ定義に商品定義を追加するには

  1. 商品定義に追加するプロパティ定義が既に作成されていることを確認します。プロパティ定義を作成する方法の詳細については、「カタログのプロパティ定義を追加する」を参照してください。
  2. [カタログ] の [カタログ定義デザイナ] をクリックします。
  3. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [商品定義] をクリックします。
  4. [カタログ定義デザイナ : 商品定義] 画面で、ツール バーの 新規 をクリックします。
  5. [商品定義 : 新規] 画面で、[名前] ボックスに新しい商品定義の名前を入力します。
  6. [商品プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧から新しい商品定義に追加する 1 つまたは複数のプロパティを選択し、[追加] をクリックします。

    注

    • 黄色で強調表示されている、割り当てられたプロパティを削除することはできません。これらのプロパティには、"すべての商品の種類に割り当てる" 属性を持つプロパティがあります。
  7. 新しい商品にバリエーションがある場合は、[商品バリエーション プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧から 1 つまたは複数のプロパティを選択し、[追加] をクリックします。

    注

    • 商品 ID として使われるプロパティは、すべて商品バリエーション プロパティとして追加できません。
  8. プロパティの順序を変更するには、移動するプロパティを選択し、[1 つ上に移動] または [1 つ下に移動] をクリックして目的の位置に移動します。

    カタログに表示されるプロパティの順序は、[割り当てられたプロパティ] ボックスに表示されるプロパティの順序と同じになります。

  9. 商品定義を保存して [カタログ定義デザイナ : 商品定義] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

プロパティ定義、商品定義、およびカテゴリ定義を作成したら、カタログを作成し、カテゴリと商品を追加します。詳細については、「基本カタログを作成する」を参照してください。

関連項目

カタログのプロパティ定義を追加する

カタログのカテゴリ定義を追加する

基本カタログを作成する

カタログに商品を追加する

カタログにカテゴリを追加する


カタログのカテゴリ定義を追加する

カテゴリには、名前、説明、イメージなど、1 つまたは複数のプロパティを割り当てることができます。これらのプロパティはカテゴリ定義で定義されます。たとえば、メーカーに関する情報を保存して、商品をメーカー別に整理する場合は、"製造元" カテゴリ定義を作成し、"製造元の名前"、"国/地域"、"住所"、"連絡窓口" などの異なるプロパティを割り当てることができます。

カテゴリ定義を作成したら、そのカテゴリ定義に基づいてカテゴリを作成します。

Commerce Server には、作業を容易に開始するために、編集したり、そのままで使用したりできる、部門という名前のカテゴリ定義が用意されています。部門カテゴリ定義には、説明、イメージ ファイル名、イメージの幅、およびイメージの高さを示すプロパティがあります。部門カテゴリ定義をそのまま使うことも、ビジネス ニーズに応じてプロパティを編集して使うこともできます。

カタログ定義にカテゴリ定義を追加するには

  1. カテゴリ定義に追加するプロパティ定義が既に作成されていることを確認します。プロパティ定義を作成する方法の詳細については、「カタログのプロパティ定義を追加する」を参照してください。
  2. [カタログ] の [カタログ定義デザイナ] をクリックします。
  3. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログの表示 をクリックし、ボックスの一覧の [カテゴリ定義] をクリックします。
  4. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの 新規 をクリックします。
  5. [カテゴリ定義 : 新規] 画面で、[名前] ボックスに新しいカテゴリ定義の名前を入力します。
  6. [カテゴリ プロパティ] セクションで、[利用できるプロパティ] ボックスの一覧から新しいカテゴリ定義に追加する 1 つまたは複数のプロパティを選択し、[追加] をクリックします。

    カタログに表示されるプロパティの順序は、[割り当てられたプロパティ] ボックスに表示されるプロパティの順序と同じになります。

  7. プロパティの順序を変更するには、移動するプロパティを選択し、[1 つ上に移動] または [1 つ下に移動] をクリックして目的の位置に移動します。
  8. 商品定義を保存して [カタログ定義デザイナ : カテゴリ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

プロパティ定義、商品定義、およびカテゴリ定義を作成したら、カタログを作成し、カテゴリと商品を追加します。

関連項目

基本カタログを作成する

仮想カタログを作成する

カタログのプロパティ定義を追加する

カタログの商品定義を追加する

カタログに商品を追加する

カタログにカテゴリを追加する


基本カタログを作成する

カタログ定義 (プロパティ定義、商品定義、およびカテゴリ定義) を作成したら、そのカタログ定義を使って新しいカタログを作成します。

作成できるカタログには 2 種類あります。基本カタログと仮想カタログです。仮想カタログの作成方法については、「仮想カタログを作成する」を参照してください。

カタログを作成するときは、次の事項を指定します。

  • 商品の価格を設定するために使う通貨 (たとえば、ユーロの場合は省略形 EUR を指定します)
  • カタログの商品を識別するために使う一意の ID (商品名など)
  • 商品バリエーションを識別するために使う一意の ID (在庫保管単位など)
  • カタログでサポートする言語 (英語、スペイン語、フランス語、日本語など)

プロパティに指定する値は、カタログ定義によって異なります。たとえば、カタログ定義で、一意の ID を、商品の在庫保管単位 (SKU) 番号にすることを指定できます。

注

  • カタログに既定の言語を指定しない場合は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムと同じ言語が使われます。
  • 新しいカタログの作成時間は、データベース内の Commerce Server カタログの数によって変わります。たとえば、空のカタログを初めて作成する場合にかかる時間は数秒です。データベース内に 300 を超えるカタログがあり、各カタログに 5,000 点の商品がある場合は、追加のカタログを作成するのに 10 分かかる場合があります。

基本カタログを作成するには

  1. ここでは、ビジネス マネージャまたはサイト開発者によって、既にカタログ定義が作成されていることを前提に説明を行います。まだ作成していない場合は、「カタログ定義を作成する」を参照してください。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、ツール バーの 新規 をクリックし、ボックスの一覧の [新しい基本カタログ] をクリックします。
  4. [カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] 新しいカタログの一意の内部名を入力します。この内部名に、Commerce Server カタログ データベースの既存のカタログと同じ名前を指定することはできません。

    この内部名は、カタログ レポートで使われます。名前は、85 文字以内で設定します。

    カタログの作成後にこの名前を変更することはできません。ただし、サイトに表示するカタログ名を編集することはできます。手順 4. を参照してください。
    [開始日] | カタログの開始日を入力します。この日付が Web サイトに影響を及ぼすことはありません。ただし、カタログを取引先と交換する場合、取引先はこの日付から、カタログが有効になる最初の日付を知ることができます。
    [終了日] | カタログの終了日を入力します。取引先は、この日付を使ってカタログの有効期限を調べます。既定では、終了日は現在の日付から 3 か月後に設定されます。たとえば、カタログを 12 月に作成する場合は、カタログの終了日は 3 月になります。
    [通貨] | ボックスの一覧からカタログの通貨を選択します。
    [重量測定単位] | このカタログの商品の重量測定単位が表示されます。この値は、Commerce Server の構成時にシステム管理者が指定します。値の変更が必要な場合は、システム管理者に連絡してください。
    [商品の一意の ID] ボックスの一覧から一意の識別子を選択します。バリエーションのない商品の場合は、SKU 番号を指定できます。バリエーションがある商品の場合は、ここに名前またはタイトルを指定し、[商品のバリエーションの一意の ID] に [SKU] を指定できます。

    カタログを作成した後で、この値を変更することはできません。

    一意の ID の割り当てについては、「カタログに関するヒント集」を参照してください。
    [商品のバリエーションの一意の ID] ボックスの一覧から商品バリエーションの一意の識別子を選択します。たとえば、SKU やその他の一意の ID を指定します。バリエーションのない商品の場合は、[商品の一意 ID] ボックスで選択したものと同じプロパティを選択します。

    カタログを作成した後で、この値を変更することはできません。

    一意の ID の割り当てについては、「カタログに関するヒント集」を参照してください。
  5. [カタログ言語] セクションで、次の操作を行います。
    項目 操作
    [追加] カタログがサポートする言語を選択します。

    一度に 5 つの言語を追加することができます。カタログを保存した後に、さらに 5 つの言語を追加できます。カタログに追加できる言語の数に制限はありません。
    [既定の言語] ボックスの一覧からカタログの既定の言語を選択します。

    既定の言語を指定しない場合は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムと同じ言語が使われます。
    [レポート作成言語] ボックスの一覧から、データ ウェアハウスに格納されるプロパティに使用する言語を選択します。

    ここで指定する言語は、レポートおよび分析に使用される言語です。
  6. カタログの表示名を入力するには、[言語] ボックスで言語を選択し、[編集] をクリックします。
  7. [表示名] ボックスに、選択した言語でカタログの名前を入力します。このカタログ名が、Web サイトで表示されます。
  8. [依存カタログ] セクションで、この基本カタログに関連付けられた仮想カタログが一覧表示されます。仮想カタログに基本カタログを含める方法については、「仮想カタログに基本カタログを含める」を参照してください。
  9. [セキュリティ] セクションで、[アクセス許可] をクリックし、このカタログを更新するためのセキュリティのアクセス許可が付与されているユーザーの Windows アカウントを指定します。セキュリティのアクセス許可を付与する方法については、「ビジネス デスク セキュリティについて」を参照してください。
  10. カタログを保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  11. カタログに商品およびカテゴリを追加するには、「カタログにカテゴリを追加する」および「カタログに商品を追加する」を参照してください。

関連項目

カタログに関するヒント集

カタログ定義を作成する

カスタム カタログ属性およびプロパティ属性を追加する

仮想カタログを作成する

仮想カタログに基本カタログを含める

カタログに商品を追加する

カタログにカテゴリを追加する


カタログにカテゴリを追加する

カタログにカテゴリを追加するには、カタログ エディタ モジュールを使います。カタログに商品を追加する場合は、商品またはカテゴリを編集する言語を動的に変更することができます。

コンマ区切り値 (CSV) ファイル形式のカタログをインポートした場合は、カタログのカテゴリを作成し、商品を割り当てる必要があります。

カタログにカテゴリを追加する場合は、次の操作を行います。

  1. カタログにカテゴリを追加する
  2. 親カテゴリと子カテゴリを割り当てる (必要な場合)
  3. カテゴリの関連付けを作成する (必要な場合)
  4. カテゴリにセキュリティを設定する (必要な場合)

注

  • カテゴリ名は、それぞれの基本カタログ内で一意でなければなりません。カテゴリ名は、仮想カタログの中に新しく作成される (継承されない) カテゴリごとに一意でなければなりません。
  • 基本カタログに新しいカテゴリを追加すると、包含ルールによっては、関連付けられた仮想カタログにもそのカテゴリが自動的に追加されます。
  • このカテゴリを編集するビジネス デスク ユーザーにアクセス許可を付与するには、カタログ エディタ モジュールを使います。ビジネス デスクのアクセス許可モジュールは使用しないでください。

カタログにカテゴリを追加するには

  1. カテゴリの基になるカテゴリ定義が定義されていることを確認します。カテゴリ定義を追加する方法については、「カタログのカテゴリ定義を追加する」を参照してください。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、新しいカテゴリを追加するカタログを選択し、ツール バーの カタログを開く をクリックします。
  4. [カタログ コンテンツ - <カタログ名>] 画面の [カテゴリ] セクションで、[新規] をクリックします。
  5. [新しいカテゴリ] ダイアログ ボックスで、カテゴリの基になるカテゴリ定義を選択し、[継続] をクリックします。このダイアログ ボックスは、カテゴリ定義が 1 つしかない場合には表示されません。

    カテゴリ定義を追加するには、カタログ定義デザイナ モジュールを使います。手順については、「カタログのカテゴリ定義を追加する」を参照してください。

  6. 多言語に対応可能なカタログの場合は、[カタログ エディタ - <カタログ名> - 新規 (カテゴリ)] 画面の上部で、多言語プロパティで使う言語を選択します。これらの多言語プロパティには、 多言語 が横にあります
  7. [カタログ エディタ - <カタログ名> - 新規 (カテゴリ)] 画面に、選択したカテゴリ定義に基づいてボックスが表示されます。ここで説明した以外のボックスが表示される場合もあります。次の操作を行います。
    項目 | 操作
    [名前] 新しいカテゴリの一意の内部名を入力します。入力できる文字数は、最大 100 文字です。カテゴリ名は、それぞれのカタログ内で一意でなければなりません。

    この名前は、カタログ レポートで使われます。
    [表示名] | Web サイトで表示するカテゴリの名前を入力します。
    [説明] | Web サイトで表示するカテゴリの説明を入力します。
    [価格] カテゴリの価格を入力します。この価格はこのカテゴリのすべての商品に割り当てられます。

    商品または商品バリエーションに直接価格を割り当てる方法については、「基本カタログの商品の価格を設定する」および「商品バリエーション レベルで価格を設定する」を参照してください。
    [検索可能] | このカテゴリを条件指定検索の開始点にする場合に、このチェック ボックスをオンにします。このチェック ボックスをオンにすると、このカテゴリが Web サイトの [拡張検索] ページに表示されます。
  8. この時点で、 保存して戻る をツール バーで選択してカタログを保存できます。

    また、[カタログ エディタ] 画面の次のセクションに進んで親カテゴリと子カテゴリを割り当てたり、カテゴリのセキュリティを設定したりすることもできます。

親カテゴリと子カテゴリを割り当てるには

  1. [カテゴリ] セクションで、親カテゴリまたは子カテゴリを割り当てるカテゴリを選択し、[編集] をクリックします。
  2. [割り当てられたカテゴリ] セクションで、プライマリ親カテゴリとして割り当てるカテゴリを選択し、[設定] をクリックします。
  3. [利用できる子カテゴリ] ボックスの一覧で、親カテゴリを追加するカテゴリを選択し、[追加] をクリックします。

    カテゴリが [利用できる子カテゴリ] ボックスの一覧から [割り当てられた子カテゴリ] ボックスの一覧に移動します。

  4. この時点で、 保存して戻る をツール バーで選択してカタログを保存できます。または、[カタログ エディタ] 画面の次のセクションに進んで、カテゴリの関連付けを割り当てることもできます。

カテゴリの関連付けを作成するには

  1. [カテゴリの関連付け] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] 関連付けの名前を入力します。この名前は Web サイトには表示されません。

    関連付けの追加対象となるのはカテゴリまたは商品です。

    [項目] | 省略記号 [...] ボタンをクリックし、[商品の選択] ダイアログ ボックスを開きます。
  2. [商品の選択] ダイアログ ボックスで、操作するカテゴリが含まれるカタログを選択します。
  3. [カテゴリ] ボックスの一覧から、関連付けを作成するカテゴリを選択し、[OK] をクリックします。

    選択したカテゴリが [カテゴリの関連付け] セクションの [項目] ボックスに表示されます。

  4. [確認] をクリックし、カテゴリの関連付けを保存します。
  5. 変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

カテゴリにセキュリティを設定するには

  1. [セキュリティ] セクションの [アクセス許可] をクリックします。
  2. [アカウント] ダイアログ ボックスで、[許可] をクリックして、このカテゴリを編集するビジネス デスク ユーザーにアクセスを許可し、[閉じる] をクリックします。
  3. 変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  4. 新しい商品を Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カテゴリ階層を作成する

カテゴリと商品の関連付けを作成する

カタログに関するヒント集

基本カタログのカテゴリを編集する

カタログに商品を追加する

カタログを更新および公開する

カタログのカテゴリ定義を追加する


カタログに商品を追加する

既存のカタログに新しい商品を追加するには、カタログ エディタ モジュールを使います。カタログに商品を追加する場合は、商品またはカテゴリを編集する言語を動的に変更することができます。

カタログに新しい商品を追加するには

  1. 商品定義の作成、基本カタログの作成、および 1 つまたは複数のカテゴリの追加が完了していることを確認します。完了していない場合は、「カタログの商品定義を追加する」、「基本カタログを作成する」、および「カタログにカテゴリを追加する」を参照してください。
  2. 商品に商品バリエーションを含める場合は、商品の基になる商品定義で、商品バリエーションを含むように定義されていることを確認します。商品定義の編集については、「カタログの商品定義を編集する」を参照してください。
  3. [カタログ] の [カタログ エディタ] をクリックします。
  4. [カタログ] 画面で、新しい商品を追加するカタログを選択し、ツール バーの カタログを開く をクリックします。
  5. [カタログ コンテンツ - <カタログ名>] 画面の [商品] セクションで、[新規] をクリックします。
  6. [新しい商品] ダイアログ ボックスで、この商品の基になる商品定義を選択し、[OK] をクリックします。

    注

    • 利用できる商品定義は、カタログ定義に追加した商品定義によって異なります。詳細については、「カタログの商品定義を追加する」を参照してください。
  7. 多言語に対応可能なカタログの場合は、[カタログ エディタ - <カタログ名> - 新規 (カテゴリ)] 画面の上部で、多言語プロパティで使う言語を選択します。これらの多言語プロパティには、 多言語 が横にあります
  8. [カタログ エディタ - <カタログ名> 新規 (<商品定義>)] 画面の [商品プロパティ] セクションで、利用可能なプロパティの情報を入力します。次のボックスは必須です。
    項目 | 操作
    [名前] Web サイトに表示される商品の名前を入力します。

    この名前は、カタログ レポートで使われます。
    [説明] | Web サイトに表示される商品の説明を入力します。
  9. [商品のバリエーション] セクションの [新規] をクリックし、利用可能なプロパティの情報を入力します。完了したら、[終了] をクリックします。

    注

    • 商品バリエーションは、その商品バリエーションが含まれる商品定義が定義されている場合にのみ、定義することができます。商品定義を編集して商品バリエーションを含めるには、「カタログの商品定義を編集する」を参照してください。
  10. [割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 操作
    [利用できるカテゴリ] 商品に割り当てるカテゴリを選択し、[追加] をクリックします。

    割り当てられているカテゴリを削除する場合は、[削除] をクリックします。
    [割り当てられたカテゴリ] 割り当てられたカテゴリを編集する場合は、カテゴリを選択して、[編集] をクリックします。

    新しいカテゴリを作成する場合は、[新規] をクリックします。
    [プライマリ親カテゴリ] プライマリ親カテゴリにするカテゴリを選択し、[設定] をクリックします。

    商品やカテゴリへの既定のパスを決める場合、またはカテゴリ レベルの価格設定ルールを商品に適用する場合は、プライマリ親カテゴリを使用します。
  11. [商品グループの関係] セクションの [新規] をクリックし、関連付けの名前 (「アクセサリ」など) を入力します。次に、省略記号 [...] ボタンをクリックして、[商品の選択] ダイアログ ボックスを表示します。
  12. [商品の選択] ダイアログ ボックスで、関連付けるカテゴリまたは商品を選択し、[OK] をクリックします。必要なカテゴリや商品を検索するには、参照するか、または、キーワード検索を実行します。
    注
    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  13. [商品グループの関係] セクションで、[確認] をクリックします。関連付けをさらに追加するには、[新規] をクリックします。
  14. 商品を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  15. 新しい商品を Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログについて

カテゴリと商品の関連付けを作成する

送付方法をカスタマイズする


商品バリエーションを商品に追加する

カタログの商品に、商品バリエーションを割り当てることができます。たとえば、T シャツの商品バリエーションとしては、色やサイズなどが考えられます。L サイズでブルーの T シャツは、T シャツという商品グループのバリエーションの 1 つになります。S サイズでブルーの T シャツは、同じ商品グループの別のバリエーションになります。

注

  • 商品に商品バリエーションを追加する前に、商品定義で、商品にバリエーションが含まれることを指定する必要があります。詳細については、「カタログの商品定義を編集する」を参照してください。
  • 商品バリエーションには、それぞれ一意の ID が必要です。一意の ID については、「カタログに関するヒント集」を参照してください。

商品バリエーションを商品に追加するには

  1. 商品の基になる商品定義で、商品バリエーションを含むように定義されていることを確認します。商品バリエーションには、それぞれ一意の ID が必要です。商品定義の編集については、「カタログの商品定義を編集する」を参照してください。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、商品バリエーションを追加するカタログを選択し、ツール バーの カタログを開く をクリックします。
  4. [カタログ エディタ - <カタログ名>] 画面の [商品] セクションで、[検索開始] をクリックしてすべての商品を表示します。
  5. 商品バリエーションを追加する商品を選択し、[編集] をクリックします。
  6. [カタログ エディタ - <カタログ名> - (商品)] 画面の [商品のバリエーション] セクションで、[新規] をクリックします。
  7. [商品のバリエーション] セクションの [バリエーション価格] ボックスに、商品の価格を入力します。
  8. 在庫保管単位 (SKU) 番号など、一意の ID プロパティの一意の値を含むプロパティをボックスに入力し、[終了] をクリックします。

    商品バリエーションの情報が、[商品バリエーション] テーブルに表示されます。

  9. 変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  10. 新しい商品バリエーションを公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログに関するヒント集

商品バリエーション レベルで価格を設定する


カタログに言語を追加する

基本カタログを作成するときは、カタログでサポートする言語を指定します。次のことを指定します。

  • 既定の言語 カタログに既定の言語を指定しない場合は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムと同じ言語が使われます。
  • レポート作成言語 データ ウェアハウスの作成に使われるカタログの言語を指定します。この言語でレポートに表示されます。

    レポート作成言語を変更すると、システム管理者がカタログ データをデータ ウェアハウスに次にインポートするときは、新しい言語が使われます。このようにすると、データ ウェアハウスの内部でデータの言語が異なってしまうことになる場合があります。

    システム管理者は、商品カタログ データ インポート データ変換サービス (DTS) タスクを使って、フル インポートを実行し、すべてのデータを同じ言語にする必要があります。フル インポートによって商品のプロパティは更新されます。これは、プロダクト キーはすべての言語で一意であるためです。

作成したカタログには、いつでも言語を追加できます。

注

  • 1 つのカタログは最大 10 の言語をサポートできます。

カタログに言語を追加するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、言語を追加するカタログを選択し、ツール バーの 表示 をクリックします。
  3. [カタログ プロパティ - 新しい基本カタログ] 画面の [カタログ言語] セクションで、[追加] をクリックします。
  4. [言語の選択] ダイアログ ボックスで、追加する言語を選択し、[追加] をクリックします。
  5. カタログに複数の言語を追加する場合は、[既定の言語] ボックスで、既定の言語を指定します。
  6. [レポート作成言語] ボックスで、データ ウェアハウスに格納するデータに使われる言語を指定します。ここで指定する言語は、レポートおよび分析に使用される言語です。
  7. 変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  8. 変更内容を発行するには、ツール バーの カタログの公開 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

多言語に対応可能なカタログを作成する


仮想カタログを作成する

仮想カタログとは、1 つまたは複数の基本カタログの商品データを参照するカタログです。商品は、データベース内で一意に表されます。これは、その商品が表示される仮想カタログの数とは無関係です。

仮想カタログには、3 つの主要な用途があります。

  • 複数のカタログを集計し、1 つのカタログとしてユーザーに表示する。
  • 複数の通貨で商品の価格を設定する。
  • 特別価格や商品のサブセットを特定のグループのユーザーに提供する。

最大で 10,000 の仮想カタログを作成できます。仮想カタログを作成するときは、次の事項を指定します。

  • カタログの名前。
  • 商品の価格を設定するために使う通貨 (JPY など)。

仮想カタログを作成したら、次の事項を指定する包含ルールを追加します。

  • 仮想カタログに含める、基本カタログの商品およびカテゴリ。仮想カタログには、最大 1,000,000 の商品を含めることができます。
  • 商品およびカテゴリに適用する価格ルール。1 つのカタログに、最大で 10,000 の価格ルールを作成できます。

仮想カタログに基本カタログを含める方法については、「仮想カタログに基本カタログを含める」を参照してください。仮想カタログにカテゴリを追加する方法については、「仮想カタログにカテゴリを追加する」を参照してください。

注

  • 仮想カタログには、最大 80 の基本カタログからコンテンツを含めることができますが、他の仮想カタログからコンテンツを含めることはできません。
  • 仮想カタログ プロパティを編集して、既定の言語およびレポート作成言語を指定することができます。基本カタログを編集する必要はありません。

ここでは、次のトピックについて説明します。

  • 新しい仮想カタログを作成する
  • 仮想カタログに基本カタログを含める
  • 仮想カタログを再構築する
  • 仮想カタログに価格ルールを追加する
  • 仮想カタログにカテゴリを追加する


新しい仮想カタログを作成する

ここでは、仮想カタログを作成する方法について説明します。

仮想カタログを作成するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [新しい仮想カタログ] をクリックします。
  3. [カタログ プロパティ - 新しい仮想カタログ] 画面の [カタログ プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいカタログの名前を入力します。この名前は一意でなければなりません。Commerce Server カタログ データベースの既存のカタログと同じ名前は指定できません。
    [開始日] | カタログの開始日を入力します。この日付が Web サイトに影響を及ぼすことはありません。ただし、カタログを取引先と交換する場合、取引先はこの日付から、カタログが有効になる最初の日付を知ることができます。
    [終了日] | カタログの終了日を入力します。取引先は、この日付を使ってカタログの有効期限を調べます。既定では、終了日は現在の日付から 3 か月後に設定されます。たとえば、カタログを 12 月に作成する場合は、カタログの終了日は 3 月になります。
    [通貨] | ボックスの一覧からカタログの通貨を選択します。
    [重量測定単位] | このカタログの商品の重量測定単位が表示されます。この値は、Commerce Server の構成時にシステム管理者が指定します。値の変更が必要な場合は、システム管理者に連絡してください。
  4. [カタログ言語] セクションの [追加] をクリックし、カタログでサポートする言語を選択します。
  5. [既定の言語] ボックスで、カタログの既定の言語を指定します。

    既定の言語を指定しない場合は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムと同じ言語が使われます。

  6. カタログで複数の言語をサポートする場合は、[レポート作成言語] ボックスで、データ ウェアハウスに格納するプロパティで使われる言語を指定します。

    ここで指定する言語は、レポートおよび分析に使用される言語です。

  7. 仮想カタログを保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  8. 仮想カタログに基本カタログを含める方法については、「仮想カタログに基本カタログを含める」を参照してください。仮想カタログに商品およびカテゴリを含めるには、この操作を行う必要があります。

関連項目

仮想カタログに基本カタログを含める

仮想カタログに価格ルールを追加する

仮想カタログにカテゴリを追加する

複数の通貨で商品の価格を設定する


仮想カタログに基本カタログを含める

仮想カタログを作成したら、仮想カタログに 1 つ以上の基本カタログを含める必要があります。仮想カタログに基本カタログを含めると、カテゴリおよび商品が、包含ルールで指定されたとおりに継承されます。

仮想カタログに対して包含または除外するカテゴリおよび商品を指定した後は、商品およびカテゴリに適用する価格を指定します。

仮想カタログに新しいカテゴリおよび商品を追加する方法については、「仮想カタログにカテゴリを追加する」を参照してください。

注

  • 仮想カタログには、最大 80 の基本カタログからコンテンツを含めることができますが、他の仮想カタログからコンテンツを含めることはできません。
  • 仮想カタログには、最大 1,000,000 の商品を含めることができます。
  • 1 つの仮想カタログは最大 10,000 の価格ルールをサポートできます。
  • 1 つのカテゴリまたは商品には、1 つの包含ルールしか設定できません。別の包含ルールを追加すると、元の包含ルールが自動的に上書きされます。
  • 仮想カタログ プロパティを編集して、既定の言語およびレポート作成言語を指定することができます。基本カタログを編集する必要はありません。
  • 基本カタログのカテゴリまたは商品の値を変更すると、仮想カタログに含まれている値も自動的に変更されます。
  • 仮想カタログに含まれている基本カタログを削除するときは、メッセージが表示されません。基本カタログを削除すると、[カタログ エディタ] 画面の仮想カタログのフラグが、"再構築 = 必須" になります。

仮想カタログに基本カタログを含めるには

  1. 仮想カタログに含める基本カタログを作成します。詳細については、「基本カタログを作成する」を参照してください。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、処理する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  4. [カタログ コンテンツ - <仮想カタログ>] 画面の [コンテンツの選択] セクションで、[新規] をクリックします。
  5. [カタログ] ボックスの省略記号 [...] ボタンをクリックします。
  6. [カタログの選択] ダイアログ ボックスで、仮想カタログに含める基本カタログを選択し、[選択] をクリックします。
  7. [ルール] ボックスで、基本カタログの商品をすべて含めるか、特定のカテゴリや商品を包含または除外するかを選択します。
  8. 商品やカテゴリを包含または除外することを選択した場合は、[項目] ボックスの省略記号 [...] ボタンをクリックします。[商品の選択] ダイアログ ボックスで、包含または除外する商品またはカテゴリを選択し、[OK] をクリックします。
    注
    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  9. [終了] をクリックし、包含ルールを保存します。

    これで、基本カタログが仮想カタログに含まれます。この操作を繰り返し、必要な基本カタログを仮想カタログに含めます。

カタログの商品またはカテゴリに価格ルールを追加するには

  1. [カタログ コンテンツ - <仮想カタログ>] 画面の [価格ルール] セクションで、[新規] をクリックします。
  2. [項目] ボックスの省略記号 [...] ボタンをクリックします。
  3. [商品の選択] ダイアログ ボックスで、価格を設定するカテゴリまたは商品を選択し、[OK] をクリックします。
  4. [種類] ボックスの一覧で、次のうち 1 つを選択します。
    種類 | 説明
    [設定価格] | 項目の価格を指定します。
    [割増] | 項目の基本価格に追加する金額を指定します。
    [割増率] | 項目の基本価格に追加する割合を指定します。
    [割引] | 項目の基本価格を割引する金額を指定します。
    [割引率] | 項目の基本価格を割引する割合を指定します。
  5. [合計] ボックスに、価格の合計、または基本カタログから設定された価格を変更した場合の合計を指定します。
  6. [終了] をクリックし、価格ルールを保存します。

価格ルールが仮想カタログに追加されます。この操作を繰り返し、必要なカテゴリと商品に価格を設定します。

関連項目

仮想カタログを作成する

仮想カタログにカテゴリを追加する


仮想カタログを再構築する

仮想カタログに基本カタログ、カテゴリ、または商品を追加した場合や、仮想カタログに含まれている基本カタログを削除した場合は、仮想カタログを再構築します。仮想カタログを再構築すると、カテゴリと商品が仮想カタログで利用できるようになるため、価格ルールを設定できます。

商品とカテゴリを追加、編集、または削除するごとに、仮想カタログを再構築する必要があります。

注

  • 運用サーバー上の仮想カタログは再構築しないでください。ユーザーがカタログにアクセスできなくなります。代わりに、準備サーバー上で仮想カタログを再構築します。カタログを具現化した後は、ユーザーのトランザクションに影響を与えずに、カタログを運用サーバーに複製できます。

仮想カタログを再構築するには

  1. [カタログ] 画面でカタログを選択し、ツール バーの 再構築 をクリックします。

    "カタログ再構築プロセスが正常に開始されました。" というメッセージが表示されます。

  2. [OK] をクリックし、[カタログ エディタ] をクリックして、カタログの一覧を最新の情報に更新します。

    選択したカタログがリストに表示され、[状態] セクションに "最新" と表示されます。

    [状態] セクションに "再構築中" と表示された場合は、しばらく待ってから [カタログ エディタ] をもう一度クリックします。

関連項目

カタログに関するヒント集


仮想カタログに価格ルールを追加する

価格ルールとは、基本カタログの項目の価格に優先する割増価格、割引価格、または設定価格です。

価格ルールは、仮想カタログの通貨に適用されます。たとえば、基本カタログの商品の価格が USD で設定され、仮想カタログの商品の価格が FR で設定されている場合に価格ルールを適用すると、価格ルールは

注

  • 1 つのカテゴリまたは商品には、1 つの価格ルールしか設定できません。2 つ目の価格ルールを追加すると、最初の価格ルールが自動的に無効になります。

仮想カタログに価格ルールを追加するには

  1. 1 つ以上の基本カタログを仮想カタログに含めます。詳細については、「仮想カタログに基本カタログを含める」を参照してください。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、価格ルールを追加する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  4. [カタログ コンテンツ - <仮想カタログ>] 画面の [価格ルール] セクションで、[新規] をクリックします。
  5. [項目] ボックスの省略記号 [...] ボタンをクリックします。
  6. [商品の選択] ダイアログ ボックスで、価格を設定するカテゴリまたは商品を選択し、[OK] をクリックします。

注

  • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  1. [種類] ボックスの一覧で、次のうち 1 つを選択します。
    種類 | 説明
    [設定価格] | 項目の価格を指定します。
    [割増] | 項目の基本価格に追加する金額を指定します。
    [割増率] | 項目の基本価格に追加する割合を指定します。
    [割引] | 項目の基本価格を割引する金額を指定します。
    [割引率] | 項目の基本価格を割引する割合を指定します。
  2. [合計] ボックスに、価格の合計、または基本カタログから設定された価格を変更した場合の合計を指定します。
  3. [終了] をクリックし、価格ルールを保存します。

価格ルールが仮想カタログに追加されます。この操作を繰り返し、必要なカテゴリと商品に価格を設定します。

関連項目

仮想カタログに基本カタログを含める

仮想カタログにカテゴリを追加する


仮想カタログにカテゴリを追加する

仮想カタログにカテゴリを追加する手順は、基本カタログに追加する手順と同じです。操作方法については、「カタログにカテゴリを追加する」を参照してください。

カタログの各カテゴリ名は一意でなければなりません。複数の基本カタログのカテゴリから仮想カタログに継承される場合は、カタログ名が重複する可能性があります。これを防ぐため、仮想カタログにカテゴリが追加されるときに、カテゴリ名に、カテゴリが含まれている基本カタログの名前が追加されます。

たとえば、Ace Clothes 社という架空のメーカーの基本カタログに次のカテゴリが含まれているとします。

Ace Clothes (基本カタログ名)

シャツ
パンツ

これらのカテゴリが仮想カタログに追加されると、仮想カタログでのカテゴリ名は次のように表示されます。

All Manufacturers Clothes (仮想カタログ名)

シャツ (Ace Clothes)
パンツ (Ace Clothes)

関連項目

カタログに関するヒント集

カタログにカテゴリを追加する

カタログに商品を追加する


多言語に対応可能なカタログを作成する

複数の言語による商品情報を格納するカタログを Web サイトに作成できます。たとえば、商品情報を、英語、スペイン語、および中国語で表示できます。

多言語に対応可能なカタログを作成する手順の概要を次に示します。

  1. カタログの多言語プロパティ定義を追加する 複数の言語で表示する項目に対して多言語プロパティ定義を追加します。たとえば、次の多言語プロパティを作成します。
    • "商品名" - "Multilingual Text (多言語テキスト)"
    • "説明" - "Multilingual Text (多言語テキスト)"
    • "色" – "Multilingual Multiple Choice (多言語の複数選択)"

    既定では、カテゴリの表示名は多言語テキストです。

  2. カタログの商品定義を追加する 多言語プロパティを使う商品定義を追加します。

    たとえば、"商品名"、"説明"、および "色" を各商品定義に割り当てます。

  3. 基本カタログを作成する カタログを作成して、カタログでサポートする言語 (英語、スペイン語、中国語など) を指定します。
  4. カタログに商品を追加する、および、カタログにカテゴリを追加する "商品名"、"説明" などの多言語プロパティを含む、商品およびカテゴリを追加します。
  5. 多言語に対応可能な商品およびカテゴリを、カタログでサポートされる言語に変換します。カタログを変換するには、次の方法を使うことができます。
    • 多数の商品を変換する場合は、カタログ エディタ モジュールを使ってカタログを XML にエクスポートし、カタログを変換プログラムに送信します。カタログが変換されると、変換されたカタログを Commerce Server で使われるカタログ データベースにインポートできます。これで、Commerce Server ビジネス デスクを使って、必要に応じてカタログを更新して公開することができます。手順については、「カタログをエクスポートおよびインポートして変換する」を参照してください。
    • 少数の商品を変換する場合は、ビジネス デスクのカタログ エディタ モジュールを使って、別の言語の商品データを手動で追加します。手順については、「ビジネス デスクを使ってカタログを変換する」を参照してください。


ビジネス デスクを使ってカタログを変換する

変換する商品が少数の場合は、Commerce Server ビジネス デスクのカタログ エディタ モジュールを使って、異なる言語の商品データを追加します。この手順については、このトピックで説明します。

多数の商品を変換する場合は、カタログ エディタ モジュールを使ってカタログを XML にエクスポートし、カタログを社内で変換するか、変換サービスに送信します。手順については、「カタログをエクスポートおよびインポートして変換する」を参照してください。

ビジネス デスクを使ってカタログを変換するには

  1. 変換する商品プロパティとカテゴリ プロパティが多言語プロパティ定義であることを確認します。サイト開発者は、プログラムによってプロパティを多言語プロパティに変換できます。詳細については、「多言語に対応可能なカタログを作成する」を参照してください。
  2. 必要に応じて、カタログに新しい言語を追加します。手順については、「カタログに言語を追加する」を参照してください。
  3. [カタログ] の [カタログ エディタ] をクリックします。
  4. [カタログ] 画面で、処理するカタログを選択し、ツール バーの カタログを開く をクリックします。
  5. [カタログ コンテンツ - <カタログ>] 画面の [商品] セクションで、[検索開始] をクリックしてすべての商品を表示するか、検索方法の 1 つを使って、変換する商品だけを表示します。
  6. 変換する商品を選択し、[編集] をクリックします。
  7. ツール バーの [言語] ボックスの一覧から、編集する言語を選択します。カタログでサポートする言語だけを選択できます。
  8. 多言語ボックスに変換後のテキストを入力します。これらのボックスは 多言語 の横にあります。入力する値は、現在選択されている言語だけに適用されます。

    注

    • 多言語に対応可能ではないボックスでテキストまたは値を変更すると、その変更はすべての言語の商品に適用されます。
    • 入力する言語の文字がキーボードでサポートされていない場合は、入力方式エディタ (IME) を使ってテキストを入力する必要があります。
  9. 変換後のテキストを保存して [カタログ コンテンツ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  10. 編集する別の商品を選択するか、ツール バーの 戻る をクリックします。

関連項目

カタログをエクスポートおよびインポートして変換する

多言語に対応可能なカタログを作成する

カタログに言語を追加する

XML カタログ ファイルをインポートする

カタログをエクスポートする

CSV カタログ ファイルを Excel にエクスポートする


カタログをエクスポートおよびインポートして変換する

多数の商品を変換する場合は、カタログ エディタ モジュールを使ってカタログを XML にエクスポートし、カタログを社内で変換するか、変換サービスに送信します。カタログが変換されると、変換されたカタログを Commerce Server で使われるカタログ データベースにインポートできます。

変換する商品が少数の場合は、ビジネス デスクのカタログ エディタ モジュールを使って、異なる言語の商品データを追加します。手順については、「ビジネス デスクを使ってカタログを変換する」を参照してください。

XML ファイルにエクスポートしたカタログを変換する主な手順としては次の 4 つがあります。

  1. 変換する XML ファイルを準備するカタログを既定の言語でエクスポートしたら、対象言語の言語コードを追加します。システム管理者に問い合わせて、言語コードの一覧を入手してください。コードは、ビジネス デスクの構成フォルダの languages.xml ファイルに格納されます。
  2. カタログ定義を変換する カタログ定義は XML ファイルのカタログ スキーマとしても知られています。カタログを特定の言語に初めて変換する場合、またはカタログ定義が前回の変換後に変更された場合は、次の操作を行います。
    1. 定義内のカタログごとに、新しい言語用のカタログ表示名の属性を追加します。
    2. 定義内のカテゴリごとに、新しい言語用のカテゴリ表示名の属性を追加します。
    3. 定義内のプロパティごとに、新しい言語用のプロパティ表示名の属性を追加します。
  3. カタログ コンテンツを変換する ここでは、「Language=<対象言語>」の箇所で、対応する Value、displayName、および PropertyValue が変換プログラムによって変換されます。カタログ コンテンツの複数選択値は、カタログ定義の場合とまったく同じように変換する必要があります。
  4. カタログをインポートする 変換されたカタログをインポートするときは、[XML カタログのインポート] ダイアログ ボックスで、まず、[XML ファイルの評価 (インポートなし)] オプションを選択して、内容を評価します。ファイルの評価が完了し、エラーが報告されなかった場合は、ファイルをインポートできます。

    [XML カタログのインポート] ダイアログ ボックスの [このカタログの既存のデータを削除する] は選択しないでください。選択すると、カタログ データベースには対象言語しか格納されなくなります。

関連項目

ビジネス デスクを使ってカタログを変換する

CSV カタログ ファイルを Excel にエクスポートする


カタログ定義を変換する

カタログを特定の言語に最初に変換する場合には、カタログ定義を変換します。また、カタログ定義が変更された場合にも、カタログ定義を変換します。

カタログ定義が複数の言語に既に変換されている場合、さらに別の言語を追加するためにカタログを XML ファイルにエクスポートすると、出力には基本言語だけではなく、すべての言語が含まれます。

カタログ定義を連続して複数の言語に変換する

カタログ定義を変換するには

カタログ定義を連続して複数の言語に変換する

カタログ定義を複数の言語に変換する場合は、カタログ定義を、いったん 1 つ目の言語に変換してから、そのカタログ ファイルをインポートする必要があります。次に、再びエクスポートして 2 つ目の言語に変換します。

たとえば、英語のカタログ ファイルをエクスポートし、そのカタログ ファイルをフランス語に変換してインポートすると、その結果、2 つの言語が存在することになります。カタログ ファイルを再びエクスポートすると、そのカタログ ファイルにはフランス語と英語が存在します。英語だけを 3 つ目の言語、たとえば日本語に変換してインポートします。再びエクスポートすると、存在する言語は 3 つになります。

次の図は、カタログ定義を複数の言語に変換するプロセスを示しています。

カタログ定義を変換するには

  1. 変換する商品プロパティとカテゴリ プロパティが多言語プロパティ定義であることを確認します。サイト開発者は、プログラムによってプロパティを多言語プロパティに変換できます。

    多言語プロパティの作成の詳細については、「多言語に対応可能なカタログを作成する」を参照してください。

  2. 変換元の言語の XML カタログ ファイルをエクスポートします。
  3. XML 出力ファイルの <CatalogSchema> セクションに、カタログ表示名に言語タグを、および、Value、DisplayName、PropertyValue のそれぞれに言語タグを追加します。"重複する" 情報は変換プログラムによって変換されます。

    たとえば、次の <DisplayName> タグでは、ProductColor プロパティ定義の英語 (U.S.)(en-US) 表示名が指定されています。

    <Property name="ProductColor" dataType="string" IsFreeTextSearchable="0"
    IncludeInSpecSearch="0" MinValue="1" MaxValue="100" DisplayOnSite="1"
    AssignAll="0" ExportToDW="1" DisplayInProductsList="0" Multilingual="1"
    IsRequired="0" id="CatalogProperty8">
    <DisplayName Value="Color" Language="en-US" />

    フランス語に変換するファイルを準備するには、次の例のように、fr-FR の言語タグを追加して、このプロパティのフランス語表示名を指定します。

    <Property name="ProductColor" dataType="string" IsFreeTextSearchable="0"
    IncludeInSpecSearch="0" MinValue="1" MaxValue="100" DisplayOnSite="1"
    AssignAll="0" ExportToDW="1" DisplayInProductsList="0" Multilingual="1"
    IsRequired="0" id="CatalogProperty8">
    <DisplayName Value="Color" Language="en-US" />
    <DisplayName Value="Color" Language="fr-FR" />

  4. 必要な言語タグを追加したら、XML カタログ ファイルを変換プログラムに送信します。
  5. XML 出力ファイルの <CatalogSchema> セクションの「Language=<対象言語>」の箇所で、対応する Value、displayName、および PropertyValue が変換プログラムによって変換されます。

    次の例は、フランス語に変換された後の ProductColor プロパティ定義を示しています。

    <Property name="ProductColor" dataType="string" IsFreeTextSearchable="0"
    IncludeInSpecSearch="0" MinValue="1" MaxValue="100" DisplayOnSite="1"
    AssignAll="0" ExportToDW="1" DisplayInProductsList="0" Multilingual="1"
    IsRequired="0" id="CatalogProperty8">
    <DisplayName Value="Color" Language="en-US" />
    <DisplayName Value="Couleur" Language="fr-FR" />

  6. インポートする前に、XML カタログ ファイルのコンテンツを評価します。[XML カタログのインポート] ダイアログ ボックスで、[XML ファイルの評価 (インポートなし)] を選択します。
  7. XML カタログ ファイルの評価が完了し、エラーが報告されなかった場合は、ファイルをインポートして、変換されたカタログ定義をカタログ データベースに追加します。

    [XML カタログのインポート] ダイアログ ボックスでは、[このカタログの既存のデータを削除する] を選択しないでください。選択すると、カタログ データベース内の既存のカタログ データは削除され、対象言語しか格納されなくなります。

これらの操作が完了した後は、変換プログラムでカタログ コンテンツを変換できます。詳細については、「カタログ コンテンツを変換する」を参照してください。

関連項目

ビジネス デスクを使ってカタログを変換する

多言語に対応可能なカタログを作成する

カタログに言語を追加する

XML カタログ ファイルをインポートする

カタログをエクスポートする

CSV カタログ ファイルを Excel にエクスポートする


カタログ コンテンツを変換する

カタログ コンテンツを変換するため、「Language=<対象言語>」の箇所で、対応する Value、displayName、および PropertyValue が変換プログラムによって変換されます。カタログ コンテンツの複数選択値は、カタログ定義の場合とまったく同じように変換する必要があります。

カタログ コンテンツを変換する

  1. 変換する商品プロパティとカテゴリ プロパティが多言語プロパティ定義であることを確認します。サイト開発者は、プログラムによってプロパティを多言語プロパティに変換できます。

    詳細については、「多言語に対応可能なカタログを作成する」を参照してください。

  2. 変換元の言語の XML カタログ ファイルをエクスポートします。
  3. XML 出力ファイルを編集し、<Catalog name> タグの言語属性を変更して、対象言語を含めます。

    たとえば、次の <Catalog name> タグでは、カタログの言語として en-US が指定されています。

    <Catalog name="Adventure Works Catalog" startDate="2001-02-22"
    endDate="2001-05-22" variantUID="VariantCode"
    productUID="ProductCode" currency="USD" weight_measuring_unit="lbs"
    DateChanged="2001-03-07T15:07:33" DefaultLanguage="en-US"
    ReportingLanguage="en-US" languages="en-US">

    フランス語に変換するファイルを準備するには、次の例のように、言語属性に fr-FR を追加します。

    <Catalog name="Adventure Works Catalog" startDate="2001-02-22"
    endDate="2001-05-22" variantUID="VariantCode"
    productUID="ProductCode" currency="USD" weight_measuring_unit="lbs"
    DateChanged="2001-03-07T15:07:33" DefaultLanguage="en-US"
    ReportingLanguage="en-US" languages="en-US,fr-FR">

  4. 変換プログラムで変換するテキストを残りのカタログ データ セクションで指定するには、「Language="<基本言語>"」を「Language="<対象言語>"」で置き換えます。この作業は、最初の <カタログ名> タグの後に表示されるコンテンツに対してだけ行います。

    たとえば、英語のコンテンツをフランス語に変換する場合は、次の例のように、「language="en-US"」を「language="fr-FR"」に変更します。

    言語属性の変更前は次のとおりです。

    <DisplayName Value="Adventure Works Catalog" Language="en-US" />
    <Description Value="Catalog Section for Sleeping Bags" Language="en-US" />

    言語属性の変更後は次のようになります。

    <DisplayName Value="Adventure Works Catalog" Language="fr-FR" />
    <Description Value="Catalog Section for Sleeping Bags" Language="fr-FR" />

  5. XML カタログ ファイルを変換プログラムに送信します。
  6. カタログの XML ファイルの「Language=<対象言語>」の箇所で、対応する Value 属性が変換プログラムによって変換されます。

    次の例は、英語で表示される AdvWorksCatalog.xml ファイルの Boots カテゴリを示しています。

    <Category name="Boots" isSearchable="1" Definition="AdvWorkCatDef"
    Image_height="120" Image_width="120"
    Image_filename="./images/boots.gif"
    id="Item110">
    <Description Value="Catalog Section for Boots" Language="en-US" />
    <DisplayName Value="Boots" Language="en-US" />
    </Category>

    フランス語に変換した後のこのセクションは次のようになります。

    <Category name="Boots" isSearchable="1" Definition="AdvWorkCatDef"
    Image_height="120" Image_width="120"
    Image_filename="./images/boots.gif"
    id="Item110">
    <Description Value="Section Chaussures de randonn馥 du catalogue"
    Language="fr-FR" />
    <DisplayName Value="Chaussures de randonn馥" Language="fr-FR" />
    </Category>

  7. 変換されたカタログを変換プログラムから受信したら、カタログ名 (displayName ではない方) が変換されていないこと、およびその他のコンテンツが変換されていることを確認します。変換されたカタログをインポートする場合は、カタログ名をカタログ データベースの既存のカタログ名に一致させる必要があります。
  8. インポートする前に、XML カタログ ファイルのコンテンツを評価します。[XML カタログのインポート] ダイアログ ボックスで、[XML ファイルの評価 (インポートなし)] を選択します。
  9. XML カタログ ファイルの評価が完了し、エラーが報告されなかった場合は、ファイルをインポートして、新しい言語のコンテンツをカタログ データベース内の既存のカタログに追加します。

    [XML カタログのインポート] ダイアログ ボックスでは、[このカタログの既存のデータを削除する] を選択しないでください。選択すると、カタログ データベース内の既存のカタログ データは削除され、対象言語しか格納されなくなります。

関連項目

カタログ定義を変換する

ビジネス デスクを使ってカタログを変換する

多言語に対応可能なカタログを作成する

カタログに言語を追加する

XML カタログ ファイルをインポートする

カタログをエクスポートする

CSV カタログ ファイルを Excel にエクスポートする


カタログ セットを作成する

特定のカタログのグループを作成し、グループに一意の名前を付けるには、カタログ セットを使います。たとえば、リピータ用のプログラムを用意しており、一般の顧客には提供しない割引や特典をこのプログラムの会員に提供する場合は、会員用の特定のカタログを含むカタログ セットを作成し、このプログラムの会員だけがこれらのカタログにアクセスできるようにすることができます。

少数の限られたユーザーにのみアクセスを許可するいくつかの商品が別々のカタログにある場合は、そのカタログを特定のユーザーだけがアクセスできる特別なカタログ セットの一部にすることができます。

カタログ セットを作成しても、基になるカタログは変更されません。

注

  • カタログ セットを作成した後は、カタログ セットにアクセスするユーザーを指定する必要があります。ユーザーの追加について、また、アクセス可能なカタログの指定については、「ユーザー プロファイルを追加する」を参照してください。

カタログ セットを作成するには

  1. [カタログ] 画面の [カタログ セット] をクリックし、ツール バーの カタログ セットの追加 をクリックします。
  2. [新しいカタログ セット] 画面で、次の操作を行います。
    項目 | 操作
    [名前] | カタログ セットの名前を入力します。
    [説明] | カタログ セットの説明を入力します。
    [すべてのカタログの追加] | このチェック ボックスをオンにすると、新しいカタログが追加されても、このカタログ セットがすべてのカタログを表すようになります。このカタログ セットに追加するカタログを個別に指定する場合は、このチェック ボックスをオンにしないでください。
    [利用できるカタログ] カタログ セットに追加するカタログを個別に選択し、[追加] をクリックします。

    選択したカタログは、[利用できるカタログ] ボックスから [割り当てられたカタログ] ボックスに移動します。
    [割り当てられたカタログ] | このカタログ セットに追加したカタログが表示されます。[割り当てられたカタログ] ボックスから削除したカタログは、自動的に [利用できるカタログ] ボックスに移動します。
  3. カタログ セットを保存して [カタログ セット] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  4. 新しいカタログ セットを公開するには、カタログ エディタ モジュールで、ツール バーの カタログの公開 をクリックします。

    カタログ セットが Web サイトで公開されます。

  5. カタログ セットにアクセスできるユーザーを指定します。ユーザーの追加について、また、アクセス可能なカタログの指定については、「ユーザー プロファイルを追加する」を参照してください。

関連項目

カタログについて

カタログ セットを変更する

カタログ セットを削除する


基本カタログの商品の価格を設定する

商品の価格は、商品プロパティの作成時に設定します。ただし、価格変更の通知を受けるたびに商品の価格を変更することもできます。たとえば、黒の革ジャケットの価格が 39,900 円から 42,900 円に値上がりした場合に、商品プロパティで価格を変更することができます。

仮想カタログの商品の価格を設定する手順は、基本カタログの商品の価格を設定する手順と大幅に異なります。手順については、「仮想カタログの商品の価格を設定する」を参照してください。

注

  • 一定期間だけ、または選択したユーザー グループに対してだけ、商品の価格を一時的に変更するには、割引キャンペーンを作成します。詳細については、「割引を作成する」を参照してください。

基本カタログの商品の価格を設定するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、価格を設定する商品が含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名> (商品)] 画面の [商品] セクションで、価格を設定する商品を検索します。すべての商品のリストを表示するには、[すべて検索] をクリックします。
  4. [商品] ボックスの一覧で、価格を設定する商品を選択し、[編集] をクリックします。
  5. [カタログ エディタ - <カタログ名> - <商品名>] 画面の [既定の価格] ボックスに、商品の価格を入力します。
  6. [カタログ コンテンツ - <カタログ名> (商品)] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  7. [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  8. 更新した価格設定を Web サイトに適用するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


仮想カタログの商品の価格を設定する

仮想カタログに基本カタログの商品およびカテゴリを含め、仮想カタログを再構築した後は、仮想カタログの商品の価格を設定できます。仮想カタログの商品の価格を設定するには、価格ルールを適用します。

注

  • 仮想カタログを再構築すると、関連付けられた基本カタログの商品とカテゴリを利用できるようになるため、価格ルールを適用できます。[包含/除外] セクションの入力が完了したら、 保存して戻る をクリックし、次に [カタログ] 画面で、ツール バーの 再構築 をクリックします。
  • 1 つの仮想カタログは最大 10,000 の価格ルールをサポートできます。

仮想カタログの商品の価格を設定するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、価格を設定する商品が含まれている仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名> (商品)] 画面の [価格ルール] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [項目] | 省略記号 [...] ボタンをクリックすると、[商品の選択] ダイアログ ボックスが表示されます。価格ルールを適用するカテゴリまたは商品を選択し、[OK] をクリックします。
    [種類] ボックスの一覧から、次のいずれかを選択します。
    • [設定価格] 項目の価格を指定します。
    • [追加] 項目の基本価格に追加する金額を指定します。
    • [割合の追加] 項目の基本価格に追加する割合を指定します。
    • [割引] 項目の基本価格を割引する金額を指定します。
    • [割引率] 項目の基本価格を割引する割合を指定します。
    [値] | 価格の合計、または基本カタログから設定された価格を変更した場合の合計を指定します。
  4. [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  5. 更新した価格設定を Web サイトに適用するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

商品バリエーション レベルで価格を設定する

カテゴリの商品の価格を設定する

複数の通貨で商品の価格を設定する

仮想カタログの商品価格に割引を適用する

割引を作成する


商品バリエーション レベルで価格を設定する

商品グループの商品バリエーションごとに異なる価格を設定できます。また、バリエーション価格を設定した後で、市場の動向を反映するために価格を編集することもできます。

たとえば、ジャケットの商品グループがあり、その中に黒のジャケットと茶色のジャケットの商品バリエーションが含まれているとします。レポートを実行して売り上げを分析すると、黒のジャケットのほうが茶色のジャケットより売れ行きがよいことがわかります。この情報に基づいて、茶色のジャケットの売り上げを伸ばすために、バリエーション レベルで茶色のジャケットの価格を引き下げる一方で、黒のジャケットの価格はそのままにしておくことができます。

バリエーションのレベルで価格を割り当てるには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、価格を設定する商品バリエーションが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名> (商品)] 画面の [商品] セクションで、商品グループを検索します。すべての商品のリストを表示するには、[すべて検索] をクリックします。
  4. [商品] ボックスの一覧で、価格を設定する商品グループを選択し、[編集] をクリックします。
  5. [商品のバリエーション] セクションで、価格を設定する商品バリエーションを選択します。
  6. [バリエーション価格] ボックスに価格を入力し、[終了] をクリックします。
  7. [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  8. 変更を保存して [カタログ エディタ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  9. 更新した価格設定を Web サイトに適用するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

基本カタログの商品の価格を設定する

カテゴリの商品の価格を設定する

複数の通貨で商品の価格を設定する

仮想カタログの商品価格に割引を適用する

割引を作成する


カテゴリの商品の価格を設定する

同じカテゴリのすべての商品に単一の価格を設定できます。これは、たとえばある範囲の商品が同じ価格の範囲に収まる場合などに便利です。この設定を使うと、商品の価格を個別に変更する代わりに、商品のグループ全体の価格を一度に変更できます。

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、1 つの商品が複数のカテゴリに存在する場合、価格をカテゴリ レベルで設定すると、プライマリ親カテゴリの価格が、それ以外のすべてのカテゴリの価格に優先します。

注

  • カテゴリ レベルで割り当てた価格は、そのカテゴリのすべての商品および商品バリエーションの価格に優先します。

商品のグループに同一の価格を割り当てるには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、価格を設定する商品が含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [カテゴリ] セクションで、価格を設定するカテゴリを選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> - <カテゴリ名>] 画面の [カテゴリ プロパティ] セクションで、[価格] ボックスに商品のグループの価格を入力します。
  5. カテゴリへの変更を保存して [カタログ - <カタログ名>] 画面に戻るには、 保存して戻る をクリックします。
  6. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。
  7. 新しい価格を Web サイトで表示するには、ツール バーの カタログの公開 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

基本カタログの商品の価格を設定する

複数の通貨で商品の価格を設定する

仮想カタログの商品価格に割引を適用する

割引を作成する


複数の通貨で商品の価格を設定する

商品価格を複数の通貨で格納して、Web サイトで複数の通貨を表示することができます。たとえば、商品価格を日本円と US ドルの両方で表示できます。

複数の通貨で商品の価格を設定する手順の概要を次に示します。

  1. 基本通貨で商品の価格が設定される基本カタログを作成します。
  2. サイトに表示する追加の通貨ごとに仮想カタログを 1 つ作成します。
  3. 仮想カタログに追加する商品、カテゴリ、またはカタログごとに、価格ルールを指定します。

価格ルールを使って、基本カタログ (および基本通貨) での項目の価格と、代替通貨での項目の価格との間の変換レート (割合) または差額を定義します。

価格ルールを指定すると、商品価格が 1 つの通貨で格納され、必要に応じて、価格がその他の通貨で動的に再計算されます。価格ルールにより、基本カタログの価格が為替レートで調整されます。価格が計算されるのは、仮想カタログが発行されたときです。

注

  • 仮想カタログでは、バリエーション レベルの価格ルールがサポートされています。

複数の通貨で商品の価格を設定するには

  1. 基本通貨で商品の価格が設定される基本カタログを作成します。詳細については、「基本カタログを作成する」を参照してください。
  2. 1 つ以上の基本カタログを仮想カタログに含めます。詳細については、「仮想カタログに基本カタログを含める」を参照してください。
  3. [カタログ] の [カタログ エディタ] をクリックします。
  4. [カタログ] 画面で、処理する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  5. [カタログ コンテンツ - <仮想カタログ>] 画面の [価格ルール] セクションで、[新規] をクリックします。
  6. [項目] ボックスの省略記号 [...] ボタンをクリックします。
  7. [商品の選択] ダイアログ ボックスで、価格を設定するカテゴリまたは商品を選択し、[OK] をクリックします。

    注

    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  8. [種類] ボックスの一覧で、次のうち 1 つを選択します。
    種類 | 説明
    [設定価格] | 項目の価格を指定します。
    [追加] | 項目の基本価格に追加する金額を指定します。
    [割増率] | 項目の基本価格に追加する割合を指定します。
    [割引] | 項目の基本価格を割引する金額を指定します。
    [割引率] | 項目の基本価格を割引する割合を指定します。
  9. [合計] ボックスに、価格の合計、または基本カタログから設定された価格を変更した場合の合計を指定します。
  10. [終了] をクリックし、価格ルールを保存します。
  11. この操作を繰り返し、必要なカテゴリと商品に価格を設定します。

関連項目

仮想カタログに基本カタログを含める

仮想カタログにカテゴリを追加する

商品バリエーション レベルで価格を設定する

基本カタログの商品の価格を設定する

カテゴリの商品の価格を設定する

仮想カタログの商品価格に割引を適用する

割引を作成する


仮想カタログの商品価格に割引を適用する

商品価格に割引を適用する方法には次の 2 つがあります。

  • 割引キャンペーンを作成する たとえば、次の状況で割引を適用する割引キャンペーンを作成できます。
    • 商品の価格が 2,000 円を超えている 割引条件式です。割引条件式は、商品プロパティに基づいています。
    • 商品を 2 点購入した 必要な割引条件の一部です。
    • スポーツ ページの割引広告をクリックした クリック必須の割引です。

    割引キャンペーンの作成については、「割引を作成する」を参照してください。

  • 仮想カタログを作成し、価格ルールを適用する この方法については、このトピックで説明します。

仮想カタログを作成すると、割引を、個別の商品、またはカテゴリのすべての商品に適用できます。また、式を作成して、特定の条件を満たす商品に割引を適用することもできます。

注

  • 仮想カタログでは、バリエーション レベルの価格ルールがサポートされています。

仮想カタログを作成して割引価格ルールを適用するには

  1. 仮想カタログを作成します。手順については、「仮想カタログを作成する」を参照してください。
  2. 1 つ以上の基本カタログを仮想カタログに含めます。詳細については、「仮想カタログに基本カタログを含める」を参照してください。
  3. [カタログ] の [カタログ エディタ] をクリックします。
  4. [カタログ] 画面で、処理する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  5. [カタログ コンテンツ - <仮想カタログ>] 画面の [価格ルール] セクションで、[新規] をクリックします。
  6. [項目] ボックスの省略記号 [...] ボタンをクリックします。
  7. [商品の選択] ダイアログ ボックスで、価格を設定するカテゴリまたは商品を選択し、[OK] をクリックします。

注

  • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  1. [種類] ボックスで、[割引] または [割引率] を選択します。
  2. [合計] ボックスで、項目の基本価格に適用する割引の金額を指定します。
  3. [終了] をクリックし、価格ルールを保存します。
  4. この操作を繰り返し、必要なカテゴリおよび商品に割引を適用します。

関連項目

割引を作成する

仮想カタログに基本カタログを含める

仮想カタログにカテゴリを追加する

商品バリエーション レベルで価格を設定する

基本カタログの商品の価格を設定する

カテゴリの商品の価格を設定する

割引の概念


カテゴリ階層を作成する

カテゴリ階層を作成するには、カタログ エディタ モジュールを使います。カテゴリ階層を作成すると、カタログの商品を整理しやすくなり、ユーザーも Web サイトを移動しやすくなります。

親カテゴリや子カテゴリを持つカテゴリを作成できます。

たとえば、"CD" というカテゴリの子カテゴリとして、"ロック"、"R&B"、および "クラシック" を設定できます。また、子カテゴリの子カテゴリを設定することもできます。たとえば、"ロック" カテゴリの子カテゴリとして、 "ポップ" と "オルタナティブ" を設定できます。

各カテゴリおよび商品には、1 つのプライマリ親カテゴリを割り当てることができます。プライマリ親カテゴリは、子カテゴリや商品への既定のパスを提供します。また、1 つの商品が複数のカテゴリに存在する場合、価格をカテゴリ レベルで設定すると、プライマリ親カテゴリの価格が、カテゴリの価格設定を使う、それ以外のすべてのカテゴリの価格に優先します。

注

  • カテゴリは、5 層の深さまでネストできます。

親カテゴリと子カテゴリを割り当てるには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、親カテゴリまたは子カテゴリを割り当てるカテゴリが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [カテゴリ] セクションで、親カテゴリまたは子カテゴリを割り当てるカテゴリを選択し、[編集] をクリックします。
  4. [割り当てられたカテゴリ] セクションで、プライマリ親カテゴリとして割り当てるカテゴリを選択し、[設定] をクリックします。
  5. [利用できる子カテゴリ] ボックスの一覧で、親カテゴリを追加するカテゴリを選択し、[追加] をクリックします。

    カテゴリが [利用できる子カテゴリ] ボックスの一覧から [割り当てられた子カテゴリ] ボックスの一覧に移動します。

  6. 親カテゴリと子カテゴリの割り当てを保存して [カタログ] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。
  7. 更新したカタログを公開するには、ツール バーの カタログの公開 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログについて

カテゴリと商品の関連付けを作成する


カテゴリと商品の関連付けを作成する

商品からカテゴリへの関連付けと、カテゴリから商品への関連付けを作成できます。関連付ける商品とカテゴリは、同じカタログ内にあっても、それぞれ異なるカタログにあってもかまいません。たとえば、商品どうしの関連付けでは、ある映画のビデオを購入したユーザーに、同じ映画のサウンドトラックも提供するような関係を考えます。これは明示的な関連付けです。

カテゴリどうしの関連付けでは、カテゴリ間の関連付けを作成できます。たとえば、"CD" のカテゴリと "伝記本" のカテゴリの間の関連付けを設定できます。クラシック音楽の CD と作曲家の伝記本の両方を販売するような場合に利用できます。

商品グループの関連付けを作成する手順は、商品の関連付けを作成する手順と同じです。ただし、商品グループの関連付けは、商品にバリエーションがある場合に作成します。

注

  • Commerce Server のソリューション サイトでは、関連付けは表示されません。サイト開発者がソリューション サイトを使ってサイトを構築した場合は、カテゴリと商品の関連付けを作成できないことがあります。Web サイトでの関連付けの表示については、サイト開発者に問い合わせてください。

カテゴリの関連付けを作成するには

商品の関連付けを作成するには

カテゴリの関連付けを作成するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、関連付けを作成するカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [カテゴリ] セクションで、関連付けを追加するカテゴリを選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> (カテゴリ)] 画面の [カテゴリの関連付け] セクションで、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] | 関連付けの名前を入力します。
    [項目] | 省略記号 [...] ボタンをクリックし、[商品の選択] ダイアログ ボックスを開きます。
  5. [商品の選択] ダイアログ ボックスで、操作するカテゴリが含まれるカタログを選択します。
  6. [カテゴリ] ボックスの一覧から、関連付けを作成するカテゴリを選択し、[OK] をクリックします。

    選択したカテゴリが [カテゴリの関連付け] セクションの [項目] ボックスに表示されます。

  7. [確認] をクリックし、カテゴリの関連付けを保存します。
  8. 変更を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

商品の関連付けを作成するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、関連付けを作成する商品が含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [商品] セクションで、関連付けを追加する商品を選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> - <商品名> (商品)] 画面の [カテゴリの関連付け] セクションで、次の操作を行います。
    項目 | 操作
    [関連付け] | 関連付けの名前を入力します。
    [項目] | 省略記号 [...] ボタンをクリックし、[商品の選択] ダイアログ ボックスを開きます。
  5. [商品の選択] ダイアログ ボックスで、操作する商品が含まれるカタログを選択します。
  6. [カテゴリ] ボックスの一覧でカテゴリをクリックし、[カテゴリ内の商品] ボックスの一覧で商品をクリックして、[OK] をクリックします。

    選択したカテゴリが [商品の関係] セクションの [項目] ボックスに表示されます。[項目の種類] ボックスに、商品の関連付けであることを示す "商品" が表示されます。

  7. [確認] をクリックし、商品の関連付けを保存します。
  8. 変更を保存して [カタログ エディタ - <カタログ名>] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。


カタログを更新および公開する

Web サイトに追加した新しい情報でサイトを更新するには、カタログ エディタ モジュールを使います。電子商取引ビジネスでは、このような変更はまずテスト用のサイトで行われるのが一般的です。その後、あらかじめ決められたスケジュールに従って、運用サイトに発行されます。変更内容を運用サイトに発行する時期と方法については、システム管理者に問い合わせてください。

カタログを更新して公開すると、フルテキスト インデックスも自動的に更新されます。フルテキスト インデックスは、カタログの一部分であり、特定のテーブルのすべてのフルテキスト語句とその場所が格納されます。商品の追加や削除、フリーテキスト検索フィールドの値の変更など、カタログに変更を加えた場合は、フルテキスト インデックスを更新して、検索機能が正しく動作するようにする必要があります。

カタログを更新および公開するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、ツール バーの 最新の情報に更新 をクリックします。

更新したカタログが Web サイトで公開され、すべてのカタログ キャッシュが更新されます。


カタログを取引先に送信する

企業と取引先の両方が Microsoft BizTalk Server を使っている場合は、カタログ、注文、文書、およびその他の電子書式を互いに交換できます。BizTalk Server は、企業と取引先 (ベンダ) の間でビジネス文書を送信するためのゲートウェイとして機能します。たとえば、ベンダから送られてきたカタログを、自社のカタログと共に Web サイトに掲載できます。また、ユーザーが Web サイトで注文を入力すると、注文がベンダに直接送られます。

各取引先は、1 つまたは複数の商品カタログを送信できます。ベンダからのカタログを仮想カタログに集約し、サイトを訪問するユーザーに 1 つのカタログとして表示することができます。

取引先は、BizTalk メッセージ マネージャを使って設定します。カタログを送信する前に設定しておく必要があります。取引先にカタログを送信するようにサイトを設定する方法については、システム管理者に問い合わせてください。

カタログを取引先に送信するには

  1. システム管理者に問い合わせて、会社と取引先の両方が BizTalk Server を使っていること、およびアプリケーション既定の構成リソースを構成して、BizTalk Options プロパティを 1 に設定していることを確認します。
  2. [カタログ] の [カタログ エディタ] をクリックします。
  3. [カタログ] 画面で、送信するカタログを選択し、ツール バーの カタログの送信 をクリックします。
  4. [ベンダの選択] ダイアログ ボックスで、カタログの送信先となるベンダを選択し、[OK] をクリックします。

関連項目

カタログをエクスポートする


カタログで項目を検索する

カタログを検索するには、カタログ エディタ モジュールを使います。次の検索が実行できます。

  • [キーワード検索] カタログにプロパティ定義を追加するときに、そのプロパティ定義がフリーテキスト検索の対象になるように指定するには、[フリーテキスト検索可能] チェック ボックスをオンにします。フリーテキスト検索では、カタログ内のプロパティのすべてのインスタンスが取得されます。これらのプロパティ定義はインデックスに記録されます。

    検索可能に指定されているカタログを変更したときは、フルテキスト インデックスを更新する必要があります。フルテキスト インデックスの更新については、「カタログを更新および公開する」を参照してください。

  • [プロパティによる検索] 特定の値を持つプロパティを検索できます。たとえば、"価格" プロパティの値が 1,000 円よりも小さく、"色" プロパティの値が "赤" である項目を検索できます。既定では、すべてのプロパティがプロパティによる検索の対象となります。

カタログの商品をキーワードで検索するには

カタログの商品をプロパティで検索するには

カタログの商品をキーワードで検索するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、検索するカタログを選択し、ツール バーの カタログを開く をクリックします。多言語に対応可能なカタログでは、特に指定しない場合、既定の言語のカタログが開きます。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、[検索方法] ボックスの一覧の [キーワード検索] をクリックします。
  4. 検索に使用するキーワードを [キーワード] ボックスに入力し、[検索開始] をクリックします。

キーワード検索の結果が、[商品] テーブルに表示されます。

カタログの商品をプロパティで検索するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、検索するカタログを選択し、ツール バーの カタログを開く をクリックします。多言語に対応可能なカタログでは、特に指定しない場合、既定の言語のカタログが開きます。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、[検索方法] ボックスの一覧の [プロパティによる検索] をクリックします。
  4. [次の条件に基づく対象] テーブルで、次の操作を行います。
    操作するボックス (左から右) | 項目 | 操作
    1 番目 | [ここでプロパティを選択] | プロパティのデータ型を選択します。
    2 番目 | [ここで演算子を選択] | 検索の演算子を選択します。
    3 番目 | [評価対象の値を入力] | 評価対象の値を入力します。
  5. 最後のテキスト ボックスに、検索する値を入力します。
  6. [検索開始] をクリックします。

    検索結果が、[商品] テーブルに表示されます。次の図は、プロパティ検索の結果を示しています。

関連項目

カタログを更新および公開する


カタログ定義を管理する

ビジネス ニーズの変化に伴い、カタログ定義の変更が必要になる場合もあります。新しいプロパティ定義を追加したり、既存のプロパティ定義を編集したり、不要になったプロパティ定義を削除したりできます。また、新しい商品定義やカタログ定義を追加したり、変更したりすることもできます。

カタログ定義を変更すると、変更または削除するプロパティ定義に関連付けられている既存のカテゴリや商品に影響を及ぼすことがあります。たとえば、CD 商品定義にベンダ ID を追加した場合、同じ CD 商品定義を使用しているすべての商品のインスタンスにベンダ ID のボックスが追加されます。

ここでは、次のトピックについて説明します。

  • カタログ定義を検索および表示する
  • カタログのカテゴリ定義を編集する
  • カタログの商品定義を編集する
  • カタログのプロパティ定義を編集する
  • カタログ定義をコピーする
  • カタログ定義を削除する


カタログ定義を検索および表示する

プロパティ定義、カテゴリ定義、および商品定義を検索したり表示したりするには、カタログ定義デザイナ モジュールを使います。

プロパティ定義を検索するには

プロパティ定義を一覧表示するには

カテゴリ定義を一覧表示するには

商品定義を一覧表示するには

プロパティ定義を検索するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [カタログ定義デザイナ : プロパティ定義] 画面で、 プロパティ定義の検索 をクリックして [検索] ボックスを表示します。
  4. [検索対象] ボックスで、ボックスの一覧からプロパティ定義の特性を選択し、次の操作を行います。
    項目 | 操作
    [名前] | プロパティの名前またはその一部を入力します。
    [型] | ボックスの一覧からプロパティのデータ型を選択します。
    [すべての商品の種類に割り当てられている] | ボックスの一覧の [はい] または [いいえ] をクリックします。[はい] をクリックすると、すべての商品の種類に共通するプロパティだけが検索対象となります。
    [すべての定義] | 既存のすべての定義を検索します。

    注

    • [すべての定義] を選択すると、[以下のリストだけ検索します。] チェック ボックスが無効になり、フィルタがすべて削除され、すべての定義が検査されます。
  5. [検索開始] をクリックします。

[検索] ボックスの下のボックスの一覧に、検索結果が表示されます。

プロパティ定義を一覧表示するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、[プロパティ定義] をクリックして [カタログ定義デザイナ : プロパティ定義] 画面を表示します。

この画面には、カタログにあるすべてのプロパティの定義と型がアルファベット順に表示されます。

カテゴリ定義を一覧表示するには

  • [カタログ] の [カタログ定義デザイナ] をクリックし、[カタログ定義デザイナ : カテゴリ定義] 画面を表示します。

この画面には、カタログにあるすべてのカテゴリ定義が一覧表示されます。

商品定義を一覧表示するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの 表示 をクリックし、[商品定義] をクリックして [カタログ定義デザイナ : 商品定義] 画面を表示します。

この画面には、カタログにあるすべての商品定義が一覧表示されます。


カタログのカテゴリ定義を編集する

カタログのカテゴリを作成した後でもカテゴリ定義は編集できます。ただし、Web サイトでユーザーに表示されるカタログに影響を及ぼします。多くの組織では、データベースの概念に詳しい人物がカタログ定義を作成および編集します。

注

  • カタログ定義では、プロパティの名前と型は変更できません。プロパティを一度削除した後、新しい名前または型を指定してプロパティを追加してください。

カテゴリ定義を編集するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログの表示 をクリックし、ボックスの一覧の [カテゴリ定義] をクリックします。
  3. 変更するカテゴリを選択し、ツール バーの カテゴリ定義を開く をクリックします。
  4. [カテゴリ定義] 画面で、[カテゴリ プロパティ] セクションの [割り当てられたプロパティ] ボックスの一覧から変更するプロパティを選択し、次のいずれかの操作を行います。
    • カテゴリ定義にプロパティを追加するには、追加するプロパティを [利用できるプロパティ] ボックスの一覧から選択し、[追加] をクリックします。必要なプロパティが存在しない場合は、[新規] をクリックして作成できます。
    • カテゴリ定義からプロパティを削除するには、削除するプロパティを [割り当てられたプロパティ] ボックスの一覧から選択し、[削除] をクリックします。
    • カテゴリに割り当てられているプロパティの順序を変更するには、移動するプロパティを [割り当てられたプロパティ] ボックスの一覧から選択し、[1 つ上に移動] または [1 つ下に移動] をクリックしてプロパティの順序を変更します。
  5. 商品定義を保存して [カタログ定義デザイナ : カテゴリ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。


カタログの商品定義を編集する

カタログに商品を登録した後でも商品定義は編集できます。ただし、Web サイトでユーザーに表示されるカタログに影響を及ぼします。多くの組織では、データベースの概念に詳しい人物がカタログ定義を作成および編集します。

注

  • カタログ定義では、プロパティの名前と型は変更できません。プロパティを一度削除した後、新しい名前または型を指定してプロパティを追加してください。

商品定義を編集するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [商品定義] をクリックします。
  3. 変更する商品定義を選択し、ツール バーの 商品定義を開く をクリックします。
  4. [カタログ定義デザイナ : 商品定義] 画面の [商品プロパティ] セクションで、変更するプロパティを [割り当てられたプロパティ] ボックスから選択し、次のいずれかの操作を行います。
    • 商品定義にプロパティを追加するには、追加するプロパティを [利用できるプロパティ] ボックスの一覧から選択し、[追加] をクリックします。必要なプロパティが存在しない場合は、[新規] をクリックして作成できます。
    • 商品定義からプロパティを削除するには、削除するプロパティを [割り当てられたプロパティ] ボックスの一覧から選択し、[削除] をクリックします。
    • 商品に割り当てられているプロパティの順序を変更するには、移動するプロパティを [割り当てられたプロパティ] ボックスの一覧から選択し、[1 つ上に移動] または [1 つ下に移動] をクリックしてプロパティの順序を変更します。
  5. 変更を保存して [カタログ定義デザイナ] 画面に戻るには、ツール バーの 保存して商品定義リストに戻る をクリックします。


カタログのプロパティ定義を編集する

カタログに商品やカテゴリを登録した後でもプロパティ定義は編集できます。ただし、Web サイトでユーザーに表示されるカタログに影響を及ぼします。多くの組織では、データベースの概念に詳しい人物がカタログ定義を作成および編集します。

注

  • カタログ定義では、プロパティの名前と型は変更できません。プロパティを一度削除した後、新しい名前または型を指定してプロパティを追加してください。
  • [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての商品定義に対して、このプロパティが自動的に継承されます。このプロパティが設定されている XML カタログをインポートすると、作成する商品定義すべてに影響します。
  • プロパティに必要な値を指定するには、[必須] ボックスを使用します。プロパティが必須である場合は、 [image] と表示されます。

プロパティ定義を編集するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [プロパティ定義] 画面で、変更するプロパティを選択し、ツール バーの プロパティ定義を開く をクリックします。
  4. [プロパティ定義 : <プロパティ>] 画面に表示されるボックスは、プロパティ定義の種類によって異なります。次の操作を行います。
    項目 | プロパティのデータ型 | 操作
    [名前] | すべて | この値は変更できません。
    [表示名] | すべて | このプロパティのラベルとして Web サイトに表示する名前を入力します。たとえば、"シャツの色" という名前のプロパティであれば、"色" などのラベルを付けます。
    [サイトに表示] すべて このチェック ボックスをオンにすると、指定したプロパティが Web サイト上のユーザーに表示されます。内部で使用する一部のプロパティを非公開にする場合は、このチェック ボックスをオフにします。

    既定では、長いテキストのプロパティに対して、このチェック ボックスはオンになっています。
    [フリーテキスト検索可能] Text、Multiple Choice このチェック ボックスをオンにすると、このプロパティに格納されている値が、カタログのフリーテキスト検索の対象になります。

    [フリーテキスト検索] チェック ボックスをオンにすると、カタログのフルテキスト インデックスにプロパティ定義が追加されます。カタログで検索対象に指定されている項目を変更したときは、フルテキスト インデックスを更新する必要があります。フルテキスト インデックスの更新については、「カタログを更新および公開する」を参照してください。
    [条件指定可能] Text、Number、Decimal、Money/Currency、Date/Time、Multiple Choice、Multilingual このチェック ボックスをオンにすると、条件指定検索でこのプロパティが使われます。

    既定では、長いテキストのプロパティに対して、このチェック ボックスはオフになっています。説明の長いテキストは条件指定検索に適していないためです。
    [最小文字数] Text、Multilingual このプロパティのデータ型の値の最小長を入力します。

    0 以外の長さを指定すると、このプロパティは商品定義またはカテゴリ定義の必須プロパティになり、 [image] と表示されます。
    [最大文字数] | Text、Multilingual | このプロパティのデータ型の値の最大長を入力します。
    [最小値] | Number、Decimal、Money/Currency | このプロパティのデータ型の最小値を入力します。
    [最大値] Number、Decimal、Money/Currency このプロパティのデータ型の最大値を入力します。

    たとえば、貨幣のプロパティを追加する場合は、商品に適用する最高金額が収まるような値を指定します。小数や端数を指定することもできます。
    [最も早い日付] | Date/Time | このプロパティの有効期間で最も早い日付を入力します。たとえば、ユーザーが新しいレコードを注文できる最も早い日付を指定します。
    [最も早い時刻] | Date/Time | プロパティに関連付ける最も早い時刻を 00:00 形式で入力します。たとえば、開始時刻を指定します。
    [最も遅い日付] | Date/Time | このプロパティの有効期間で最も遅い日付を入力します。
    [最も遅い時刻] | Date/Time | このプロパティの有効期間で最も遅い時刻を 00:00 形式 (午後 10:00 であれば 22:00 など) で入力します
    [既定値] | Text、Number、Decimal、Money/Currency、Date/Time、Multiple Choice、Multilingual | このプロパティのデータ型の既定値を入力します。値の形式は、追加するプロパティのデータ型によって異なります。
    [すべての商品の種類に割り当てる] すべて すべての種類の商品にこのプロパティを割り当てるには、このチェック ボックスをオンにします。たとえば、名前、説明、重量などの汎用の商品プロパティの場合にオンにします。

    [すべての商品の種類に割り当てる] オプションのチェックボックスをオンにすると、作成するすべての定義に対して、このプロパティが自動的に継承されます。
    [分析用にデータを保存] | Long Text と Long Multilingual Text を除くすべて | このプロパティをデータ ウェアハウスにエクスポートするには、このチェック ボックスをオンにします。データ ウェアハウスにエクスポートしたデータは、レポート処理に利用できます。
    [商品リストに表示] | すべて | サイト上の商品リストにこのプロパティを表示するには、このチェック ボックスをオンにします。
    [必須] | Multilingual Multiple Choice を除くすべて | このプロパティに値を設定する必要がある場合に、このチェック ボックスをオンにします。プロパティが必須である場合は、 [image] と表示されます。
  5. プロパティ定義を保存するには、ツール バーの 保存 をクリックします。
  6. プロパティにセキュリティを設定して、ビジネス デスクのユーザーがプロパティを編集したり削除したりできないようにするには、[セキュリティ] セクションで、[アクセス許可] をクリックします。
  7. このカタログを更新するためのセキュリティのアクセス許可が付与されているユーザーの Windows アカウントを指定し、[閉じる] をクリックします。
  8. プロパティ定義のアクセス許可を保存して、[カタログ定義デザイナ : プロパティ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

このプロパティ定義を使うすべてのカテゴリおよび商品が、自動的に更新されます。

関連項目

カタログの多言語プロパティ定義を追加する

カタログの商品定義を追加する

カタログのカテゴリ定義を追加する


カタログ定義をコピーする

既存のプロパティ定義、商品定義、またはカテゴリ定義をコピーするには、カタログ定義デザイナ モジュールを使います。たとえば、既存の定義によく似た新しい定義を作成するときに、既存の定義をコピーできます。

カテゴリ定義をコピーするには

商品定義をコピーするには

プロパティ定義をコピーするには

カテゴリ定義をコピーするには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログの表示 をクリックし、ボックスの一覧の [カテゴリ定義] をクリックします。
  3. [カタログ定義デザイナ : カテゴリ定義] 画面で、コピーするカテゴリを選択し、ツール バーの カテゴリ定義のコピー をクリックします。
  4. [カテゴリ定義 : 新規] 画面で、[名前] ボックスに新しいカテゴリ定義の名前を入力します。入力できる文字数は、最大 128 文字です。
  5. 新しいカテゴリ定義用に現在のカテゴリ プロパティを変更する必要がある場合は、[割り当てられたプロパティ] ボックスのプロパティを編集します。
  6. 新しいカテゴリ定義を保存して [カタログ定義デザイナ : カテゴリ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

商品定義をコピーするには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [商品定義] をクリックします。
  3. [カタログ定義デザイナ : 商品定義] 画面で、コピーする商品定義を選択し、ツール バーの 商品定義のコピー をクリックします。
  4. [商品定義のプロパティ] セクションの [名前] ボックスに、新しい商品定義の名前を入力します。入力できる文字数は、最大 128 文字です。
  5. 新しい商品定義用に現在の商品プロパティを変更する必要がある場合は、[割り当てられたプロパティ] ボックスでプロパティを変更します。
  6. 新しい商品定義を保存して [カタログ定義デザイナ : 商品定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。

プロパティ定義をコピーするには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [カタログ定義デザイナ : プロパティ定義] 画面で、コピーするプロパティを選択し、ツール バーの プロパティ定義のコピー をクリックします。
  4. [プロパティ定義 : 新規] 画面で、次の操作を行います。
    項目 | プロパティのデータ型 | 操作
    [名前] すべて プロパティの名前を入力します。

    注

    • このプロパティを保存した後で、プロパティ名を変更することはできません。
    [サイトに表示] | すべて | このチェック ボックスをオンにすると、指定したプロパティが Web サイト上のユーザーに表示されます。内部で使用する一部のプロパティを非公開にする場合は、このチェック ボックスをオフにします。
    [表示名] | すべて | このプロパティのラベルとして Web サイトに表示する名前を入力します。たとえば、"シャツの色" という名前のプロパティであれば、"色" などのラベルを付けます。
    [フリーテキスト検索可能] Text、Multiple Choice、File このチェック ボックスをオンにすると、このプロパティに格納されている値が、カタログのフリーテキスト検索の対象になります。

    [フリーテキスト検索] チェック ボックスをオンにすると、カタログのフルテキスト インデックスにプロパティ定義が追加されます。カタログで検索対象に指定されている項目を変更したときは、フルテキスト インデックスを更新する必要があります。フルテキスト インデックスの更新については、「カタログを更新および公開する」を参照してください。
    [条件指定可能] | すべて | このチェック ボックスをオンにすると、条件指定検索でこのプロパティが使われます。条件指定検索を使うと、ユーザーは特定の商品の検索に役立つ値を選択できます。
    [最小文字数] | Text | このプロパティのデータ型の値の最小長を入力します。既定の最小長はゼロ (0) 文字です。ゼロ以外の長さを指定すると、このプロパティはプロパティ定義の必須プロパティになります。
    [最大文字数] | Text | このプロパティのデータ型の値の最大長を入力します。最大長の上限は 3,600 文字です。
    [最小値] | Number、Decimal、Money/Currency | このプロパティのデータ型の最小値を入力します。既定の最小値はゼロ (0) です。
    [最大値] | Number、Decimal、Money/Currency数値、10 進、貨幣/通貨 | このプロパティのデータ型の最大値を入力します。たとえば、通貨のプロパティを追加する場合は、商品に適用する最高金額が収まるような値を指定します。
    [最も早い日付] | Date/Time | このプロパティの有効期間で最も早い日付を入力します。たとえば、ユーザーが新しいレコードを注文できる最も早い日付を指定します。
    [最も早い時刻] | Date/Time | プロパティに関連付ける最も早い時刻を 00:00 形式で入力します。たとえば、開始時刻を指定します。
    [最も遅い日付] | Date/Time | このプロパティの有効期間で最も遅い日付を入力します。たとえば、ユーザーが販売促進商品を注文できる最も遅い日付を指定します。
    [最も遅い時刻] | Date/Time | このプロパティの有効期間で最も遅い時刻を 00:00 形式で入力します。たとえば、期限切れの時刻を指定します。
    [既定値] | Text、Number、Decimal、Money/Currency、Date/Time、Multiple Choice | このプロパティのデータ型の既定値を入力します。この値は、追加するプロパティのデータ型によって変わります。
    [すべての商品の種類に割り当てる] | すべて | すべての種類の商品にこのプロパティを割り当てるには、このチェック ボックスをオンにします。
    [データ ウェアハウスにエクスポート] | すべて | このプロパティをデータ ウェアハウスにエクスポートするには、このチェック ボックスをオンにします。データ ウェアハウスにエクスポートしたデータは、レポート処理に利用できます。
    [商品リストに表示] | すべて | 商品リストにこのプロパティを表示するには、このチェック ボックスをオンにします。
  5. 商品定義を保存して [カタログ定義デザイナ : カテゴリ定義] 画面に戻るには、ツール バーの 保存して戻る をクリックします。


カタログ定義を削除する

プロパティ定義、商品定義、およびカテゴリ定義を削除するには、カタログ定義デザイナ モジュールを使います。定義を削除する前に、削除する定義がカタログの既存のプロパティ、商品、またはカテゴリによって使用されていないことを確認する必要があります。商品定義やカテゴリ定義を削除する場合、その定義に基づく商品やカテゴリが存在するときは、警告メッセージが表示されます。

カテゴリ定義を削除するには

商品定義を削除するには

プロパティ定義を削除するには

カテゴリ定義を削除するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログの表示 をクリックし、ボックスの一覧の [カテゴリ定義] をクリックします。
  3. [カタログ定義デザイナ : カテゴリ定義] 画面で、削除するカテゴリ定義を選択し、ツール バーの カテゴリ定義の削除 をクリックします。
  4. [カテゴリ定義の削除の確認] ダイアログ ボックスの [はい] をクリックして定義を削除します。

商品定義を削除するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [商品定義] をクリックします。
  3. [カタログ定義デザイナ : 商品定義] 画面で、削除する商品定義を選択し、ツール バーの 商品定義の削除 をクリックします。
  4. [商品定義の削除の確認] ダイアログ ボックスの [はい] をクリックして定義を削除します。

プロパティ定義を削除するには

  1. [カタログ] の [カタログ定義デザイナ] をクリックします。
  2. [カタログ定義デザイナ : カテゴリ定義] 画面で、ツール バーの カタログ定義の表示 をクリックし、ボックスの一覧の [プロパティ定義] をクリックします。
  3. [カタログ定義デザイナ : プロパティ定義] 画面で、削除するプロパティ定義を選択し、ツール バーの プロパティ定義の削除 をクリックします。
  4. [プロパティ定義の削除の確認] ダイアログ ボックスの [はい] をクリックして定義を削除します。


商品、カテゴリ、カタログ、およびカタログ セットを管理する

既存の商品、カテゴリ、カタログ、およびカタログ セットを表示、検索、編集、削除するには、カタログ エディタ モジュールを使います。

ここでは、次のトピックについて説明します。

  • カタログを一覧表示する
  • カタログのカテゴリを一覧表示する
  • カタログのプロパティを編集する
  • 基本カタログのカテゴリを編集する
  • 仮想カタログのカテゴリを編集する
  • 基本カタログの商品を編集する
  • 仮想カタログの商品を編集する
  • カテゴリ階層を編集する
  • 商品バリエーションを編集する
  • カタログ セットを変更する
  • カタログからカテゴリを削除する
  • カタログから商品を削除する
  • 基本カタログを削除する
  • カタログ セットを削除する
  • 商品バリエーションを削除する


カタログを一覧表示する

既存のすべてのカタログを一覧表示するには、カタログ エディタ モジュールを使います。いずれかのカタログを選択し、カタログ名の左側の矢印をクリックすると、選択しているカタログが基本カタログとして作成された、任意のカスタム カタログを表示できます。

既存のカタログを一覧表示するには

  • [カタログ] の [カタログ エディタ] をクリックします。

[カタログ] 画面が表示され、既存のすべてのカタログが一覧表示されます。


カタログのカテゴリを一覧表示する

選択したカタログのカテゴリとカテゴリ階層を表示できます。カテゴリ間の親子関係を表示すると、カテゴリの追加が必要な箇所や、既存のカテゴリの変更または削除が必要な箇所を特定できます。たとえば、音楽関連のビデオのカテゴリを追加する場合に、カテゴリの一覧を調べて、新しいカテゴリを親カテゴリにするかどうか、または新しいカテゴリを既存のカテゴリに関連付けるかどうかを判断できます。

カタログに割り当てられているカテゴリを一覧表示するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、表示するカテゴリが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。

    [カタログ コンテンツ - <カタログ名>] 画面が表示されます。

カタログに割り当てられているすべてのカテゴリが [カテゴリ] セクションに表示されます。


カタログのプロパティを編集する

基本カタログまたは仮想カタログのカタログ プロパティを編集するには、カタログ エディタ モジュールを使います。たとえば、カタログのカテゴリとプロパティの情報や、カタログの開始日と終了日を編集できます。

注

  • カタログの内部名は編集できません。Web サイトに表示されるカタログ名は編集できます。
  • 基本カタログの商品およびカテゴリを仮想カタログに含める方法については、「仮想カタログに基本カタログを含める」を参照してください。
  • レポート作成言語を変更すると、システム管理者がカタログ データをデータ ウェアハウスに次にインポートするときは、新しい言語が使われます。このようにすると、データ ウェアハウスの内部でデータの言語が異なってしまうことになる場合があります。

    システム管理者は、商品カタログ データ インポート データ変換サービス (DTS) タスクを使って、フル インポートを実行し、すべてのデータを同じ言語にする必要があります。フル インポートによって商品のプロパティは更新されます。これは、プロダクト キーはすべての言語で一意であるためです。

カタログ プロパティを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集するカタログを選択し、ツール バーの プロパティの編集 をクリックします。
  3. [カタログ プロパティ - <カタログ名>] 画面が表示されます。この画面に表示されるプロパティは、Commerce Server によって割り当てられたものを除いて、どれでも編集できます。
    項目 | 操作
    [名前] カタログの内部名が表示されます。この名前は変更できません。ただし、サイトに表示するカタログ名は編集できます。手順 4. を参照してください。

    この名前に、Commerce Server カタログ データベースの既存のカタログと同じ名前を指定することはできません。

    この名前は、カタログ レポートで使われます。

    カタログ名は 85 文字以内で設定します。
    [開始日] | カタログの開始日を入力します。この日付が Web サイトに影響を及ぼすことはありません。ただし、カタログを取引先と交換する場合、取引先はこの日付から、カタログが有効になる最初の日付を知ることができます。
    [終了日] | カタログの終了日を入力します。取引先は、この日付を使ってカタログの有効期限を調べます。既定では、終了日は現在の日付から 3 か月後に設定されます。たとえば、カタログを 12 月に作成する場合は、カタログの終了日は 3 月になります。
    [通貨] | ボックスの一覧からカタログの通貨を選択します。
    [重量測定単位] | このカタログの商品の重量測定単位が表示されます。この値は、Commerce Server の構成時にシステム管理者が指定します。値の変更が必要な場合は、システム管理者に連絡してください。
    [商品の一意の ID] このカタログの商品の一意の識別子が表示されます。バリエーションのない商品の場合は、在庫保管単位 (SKU) を指定できます。バリエーションがある商品の場合は、ここに名前またはタイトルを指定し、[商品のバリエーションの一意の ID] に [SKU] を指定できます。

    一意の ID の割り当てについては、「カタログに関するヒント集」を参照してください。
    [商品のバリエーションの一意の ID] 商品バリエーションの一意の識別子が表示されます。たとえば、SKU やその他の一意の ID を指定します。バリエーションのない商品の場合は、[商品の一意 ID] ボックスで選択したものと同じ値を選択します。

    一意の ID の割り当てについては、「カタログに関するヒント集」を参照してください。
  4. [カタログ言語] セクションで、次の操作を行います。
    項目 | 操作
    [追加] | カタログでサポートする言語を追加します。
    [削除] | カタログでサポートしない言語を削除します。すべての言語を削除した場合は、既定の言語がサポートされます。既定の言語は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムの言語と同じです。
    [既定の言語] ボックスの一覧からカタログの既定の言語を選択します。

    既定の言語を指定しない場合は、ビジネス デスク Web サーバー上の Microsoft Windows オペレーティング システムと同じ言語が使われます。
    [レポート作成言語] ボックスの一覧から、データ ウェアハウスに格納されるプロパティに使用する言語を選択します。

    ここで指定する言語は、レポートおよび分析に使用される言語です。

    サイトの運用後にレポート作成言語を変更すると、レポートの対象期間によっては、レポート データが 2 つの言語で表示される場合があります。

    システム管理者は、商品カタログ データ インポート DTS タスクを使って、フル インポートを実行し、すべてのデータを同じ言語にする必要があります。フル インポートによって商品のプロパティは更新されます。これは、プロダクト キーはすべての言語で一意であるためです。
  5. カタログの表示名を入力するには、[言語] ボックスで言語を選択し、[編集] をクリックします。
  6. [表示名] ボックスに、選択した言語でカタログの名前を入力します。このカタログ名が、Web サイトで表示されます。
  7. [依存カタログ] セクションで、この基本カタログに関連付けられた仮想カタログが一覧表示されます。仮想カタログに基本カタログを含める方法については、「仮想カタログに基本カタログを含める」を参照してください。
  8. [セキュリティ] セクションで、[アクセス許可] をクリックし、このカタログを更新するためのセキュリティのアクセス許可が付与されているユーザーの Windows アカウントを指定します。セキュリティのアクセス許可を付与する方法については、「ビジネス デスク セキュリティについて」を参照してください。
  9. 編集内容を保存して [カタログ] 画面に戻るには、ツール バーの 保存してカタログ リストに戻る をクリックします。
  10. 新しい商品を Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログに関するヒント集

仮想カタログに基本カタログを含める


基本カタログのカテゴリを編集する

基本カタログの既存のカテゴリのプロパティを編集するには、カタログ エディタ モジュールを使います。たとえば、カテゴリの価格の変更、親カテゴリの追加または削除、および、プライマリ親カテゴリの変更をすることができます。

注

  • カテゴリの内部名は編集することができません。Web サイトに表示されるカテゴリ名は編集できます。
  • 基本カタログに新しいカテゴリを追加すると、包含ルールによっては、関連付けられた仮想カタログにもそのカテゴリが自動的に追加されます。
  • このカテゴリを編集できる Commerce Server ビジネス デスク ユーザーにアクセス許可を与えるには、カタログ エディタ モジュールを使います。ビジネス デスクのアクセス許可モジュールは使用しないでください。

基本カタログのカテゴリを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集するカテゴリが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [カテゴリ] セクションで、編集するカテゴリを [カテゴリ] ボックスの一覧から選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> - (カテゴリ)] 画面に、カテゴリに対するカテゴリ定義に基づいてボックスが表示されます。ここで説明した以外のボックスが表示される場合もあります。次の操作を行います。
    項目 | 操作
    [名前] 新しいカテゴリの内部名を表示します。この名前は編集できません。入力できる文字数は、最大 100 文字です。カテゴリ名は、それぞれのカタログ内で一意でなければなりません。

    この名前は、カタログ レポートで使われます。
    [表示名] | Web サイトで表示するカテゴリの名前を入力します。
    [説明] | Web サイトで表示するカテゴリの説明を入力します。
    [価格] カテゴリの価格を入力します。この価格はこのカテゴリのすべての商品に割り当てられます。

    商品または商品バリエーションに直接価格を割り当てる方法については、「基本カタログの商品の価格を設定する」および「商品バリエーション レベルで価格を設定する」を参照してください。
    [検索可能] このカテゴリを条件指定検索の開始点にする場合に、このチェック ボックスをオンにします。

    このチェック ボックスをオンにすると、このカテゴリが Web サイトの [拡張検索] ページに表示されます。
  5. [割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 | 操作
    [利用できる親カテゴリ] | 現在のカテゴリに追加する親カテゴリを選択し、[追加] をクリックします。
    [割り当てられた親カテゴリ] プライマリ親カテゴリを選択し、[設定] をクリックします。

    プライマリ親カテゴリは、そのカテゴリへの既定のパスを決めるために使われます。
    [利用できる子カテゴリ] | 現在のカテゴリに追加する子カテゴリを選択し、[追加] をクリックします。
  6. [カテゴリの関連付け] セクションでカテゴリの関連付けを追加するには、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] | 新規の関連付けの名前を入力します (「アクセサリ」など)。
    [項目] | 関連付けの商品またはカテゴリの名前を入力します。または、省略記号 [...] ボタンをクリックし、[商品の選択] ダイアログ ボックスを表示して、カテゴリまたは商品を選択します。
  7. [確認] をクリックして編集内容を保存します。
  8. [セキュリティ] セクションの [アクセス許可] をクリックします。
  9. [アカウント] ダイアログ ボックスで、アカウントを選択してこのカテゴリを編集するアクセス許可を付与または拒否するか、または [アカウントの追加] をクリックして Windows のグループ アカウントにアクセスを許可します。
  10. 編集内容を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  11. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

仮想カタログのカテゴリを編集する


仮想カタログのカテゴリを編集する

仮想カタログに固有のカテゴリのプロパティを編集するには、カタログ エディタ モジュールを使います。基本カタログから含めたカテゴリの場合は、基本カタログのカテゴリを編集し、次に仮想カタログを再構築する必要があります。

たとえば、カテゴリの価格の変更、親カテゴリの追加または削除、および、プライマリ親カテゴリの変更をすることができます。

注

  • 仮想カタログを編集する場合、基本カタログから含めたカテゴリを編集することはできません。編集できるのは、仮想カタログに固有のカテゴリだけです。
  • 基本カタログのカテゴリおよび商品を包含または除外する方法については、「仮想カタログに基本カタログを含める」を参照してください。
  • カテゴリの内部名は編集することができません。Web サイトに表示されるカテゴリ名は編集できます。
  • 基本カタログに新しいカテゴリを追加すると、包含ルールによっては、関連付けられた仮想カタログにもそのカテゴリが自動的に追加されます。
  • このカテゴリを編集できる Commerce Server ビジネス デスク ユーザーにアクセス許可を与えるには、カタログ エディタ モジュールを使います。ビジネス デスクのアクセス許可モジュールは使用しないでください。

仮想カタログのカテゴリを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、カテゴリを編集する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [カテゴリ] セクションで、編集するカテゴリを [カテゴリ] ボックスの一覧から選択し、[編集] をクリックします。

    仮想カタログに固有のカテゴリを選択する必要があります。基本カタログから含めたカテゴリを編集するには、基本カタログのカテゴリを編集し、次に仮想カタログを再構築する必要があります。

  4. [カタログ エディタ - <カタログ名> - (カテゴリ)] 画面に、カテゴリに対するカテゴリ定義に基づいてボックスが表示されます。ここで説明した以外のボックスが表示される場合もあります。次の操作を行います。
    項目 | 操作
    [名前] 新しいカテゴリの内部名を表示します。この名前は編集できません。入力できる文字数は、最大 100 文字です。カテゴリ名は、それぞれのカタログ内で一意でなければなりません。

    この名前は、カタログ レポートで使われます。
    [表示名] | Web サイトで表示するカテゴリの名前を入力します。
    [説明] | Web サイトで表示するカテゴリの説明を入力します。
    [価格] カテゴリの価格を入力します。この価格はこのカテゴリのすべての商品に割り当てられます。

    価格の割り当てについては、「仮想カタログの商品の価格を設定する」および「複数の通貨で商品の価格を設定する」を参照してください。

    [検索可能] このカテゴリを条件指定検索の開始点にする場合に、このチェック ボックスをオンにします。

    このチェック ボックスをオンにすると、このカテゴリが Web サイトの [拡張検索] ページに表示されます。
  5. [割り当てられたカテゴリ] セクションでは、基本カタログまたは仮想カタログのカテゴリを、現在のカテゴリの親カテゴリまたは子カテゴリに割り当てることができます。次の操作を行います。
    項目 | 操作
    [利用できる親カテゴリ] | 現在のカテゴリに追加する親カテゴリを選択し、[追加] をクリックします。
    [利用できる子カテゴリ] | 現在のカテゴリに追加する子カテゴリを選択し、[追加] をクリックします。
  6. [カテゴリの関連付け] セクションでカテゴリの関連付けを追加するには、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    [関連付け] | 新規の関連付けの名前を入力します (「アクセサリ」など)。
    [項目] | 関連付けの商品またはカテゴリの名前を入力します。または、省略記号 [...] ボタンをクリックし、[商品の選択] ダイアログ ボックスを表示して、カテゴリまたは商品を選択します。
  7. [確認] をクリックして編集内容を保存します。
  8. [セキュリティ] セクションの [アクセス許可] をクリックします。
  9. [アカウント] ダイアログ ボックスで、アカウントを選択してこのカテゴリを編集するアクセス許可を付与または拒否するか、または [アカウントの追加] をクリックして Windows のグループ アカウントにアクセスを許可します。
  10. 編集内容を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  11. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

基本カタログのカテゴリを編集する


基本カタログの商品を編集する

カタログの既存の商品を編集するには、カタログ エディタ モジュールを使います。たとえば、イメージ ファイルを変更して、商品の新しいイメージをサイトに掲載することができます。

注

  • 商品の内部名は編集できません。Web サイトに表示される商品名は編集できます。
  • 商品の関連付けの名前は変更できますが、関連付けのメンバは変更できません。メンバを変更するには、関連付けを削除し、新しい関連付けを作成する必要があります。
  • 基本カタログの商品を編集した場合、その商品が仮想カタログに含まれているときは、仮想カタログを再構築する必要があります。

基本カタログの商品を編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集するカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [商品] セクションで、キーワード検索または条件指定検索を実行するか、あるいは [すべて検索] をクリックして、編集する商品を検索します。

    商品を検索する手順については、「カタログで項目を検索する」を参照してください。

  4. [商品] ボックスの一覧から、編集する商品を選択し、[編集] をクリックします。
  5. [カタログ エディタ - <カタログ名> - (商品)] 画面に、商品に対する商品定義に基づいてボックスが表示されます。ここで説明した以外のボックスが表示される場合もあります。次の操作を行います。
    項目 | 操作
    [名前] Web サイトに表示される商品の名前を入力します。

    この名前は、カタログ レポートで使われます。
    [説明] | Web サイトに表示される商品の説明を入力します。
    [価格] | 商品の価格を入力します。
  6. [商品のバリエーション] セクションの [編集] をクリックし、利用可能なプロパティの情報を入力します。完了したら、[終了] をクリックします。

    注

    • 商品バリエーションは、その商品バリエーションが含まれる商品定義が定義されている場合にのみ、定義することができます。商品定義を編集して商品バリエーションを含めるには、「カタログの商品定義を編集する」を参照してください。
  7. [割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 | 操作
    [利用できるカテゴリ] 商品に追加するカテゴリを選択し、[追加] をクリックします。

    割り当てられているカテゴリを削除する場合は、[削除] をクリックします。
    [割り当てられたカテゴリ] 割り当てられたカテゴリを編集する場合は、カテゴリを選択して、[編集] をクリックします。

    新しいカテゴリを作成する場合は、[新規] をクリックします。
    [プライマリ親カテゴリ] プライマリ親カテゴリにするカテゴリを選択し、[設定] をクリックします。

    商品への既定のパスを決める場合、またはカテゴリ レベルの価格設定ルールを商品に適用する場合は、プライマリ親カテゴリを使用します。
    [カテゴリ価格を使用] | プライマリ親カテゴリを設定した後、商品の価格をカテゴリから継承する場合に、このオプションを選択します。
    [直接価格を使用] | プライマリ親カテゴリを設定した後、商品の価格を直接使用する場合に、このオプションを選択します。
    [更新] | カタログに新しいカテゴリを追加した後、[利用できるカテゴリ] ボックスの一覧にそのカテゴリを表示する場合に、[更新] をクリックします。
  8. [商品の関係] セクションで、商品の編集する関連付けを選択し、次に、[編集] をクリックして関連付けの名前を変更します。

    商品の関連付けの項目またはカタログを変更するには、関連付けを選択し、[削除] をクリックします。次に、[新規] をクリックして、新しい関連付けを作成します。

  9. [商品の選択] ダイアログ ボックスで、関連付けるカテゴリまたは商品を選択し、[OK] をクリックします。必要なカテゴリや商品を検索するには、参照するか、または、キーワード検索を実行します。

    注

    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  10. [商品グループの関係] セクションで、[確認] をクリックします。関連付けをさらに追加するには、[新規] をクリックします。
  11. 商品を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  12. 仮想カタログに含まれている商品の場合は、仮想カタログを選択し、ツール バーの 再構築 をクリックします。
  13. 新しい商品を Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


仮想カタログの商品を編集する

カタログの既存の商品を編集するには、カタログ エディタ モジュールを使います。たとえば、商品、または商品の関連付けに割り当てられたカテゴリを変更できます。

注

  • 商品の内部名は編集できません。Web サイトに表示される商品名は編集できます。
  • 仮想カタログの商品を編集する場合、その変更は仮想カタログだけに適用されます。関連付けられた基本カタログには適用されません。

基本カタログの商品を編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集する仮想カタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ コンテンツ - <カタログ名>] 画面の [商品] セクションで、キーワード検索または条件指定検索を実行するか、あるいは [すべて検索] をクリックして、編集する商品を検索します。

    商品を検索する手順については、「カタログで項目を検索する」を参照してください。

  4. [商品] ボックスの一覧から、編集する商品を選択し、次のいずれかをクリックします。
    • [仮想カタログで編集] これは、仮想カタログの新しいカテゴリに商品を割り当てるとき、および基本カタログから継承された商品のカテゴリの割り当てを表示するときにクリックします。変更はすべて仮想カタログだけに適用されます。
    • [基本商品の編集] これは、基本カタログの商品を編集して、更新データが基本カタログと仮想カタログの両方に取り込まれるようにするときにクリックします。詳細については、「基本カタログの商品を編集する」を参照してください。
  5. [仮想カタログで編集] を選択すると、[カタログ エディタ - <カタログ名> (商品)] 画面が表示されます。[割り当てられたカテゴリ] セクションで、次の操作を行います。
    項目 | 操作
    [利用できるカテゴリ] 商品に追加するカテゴリを選択し、[追加] をクリックします。

    割り当てられているカテゴリを削除する場合は、[削除] をクリックします。
    [割り当てられたカテゴリ] 割り当てられたカテゴリを編集する場合は、カテゴリを選択して、[編集] をクリックします。

    新しいカテゴリを作成する場合は、[新規] をクリックします。
    [プライマリ親カテゴリ] プライマリ親カテゴリにするカテゴリを選択し、[設定] をクリックします。

    商品への既定のパスを決める場合、またはカテゴリ レベルの価格設定ルールを商品に適用する場合は、プライマリ親カテゴリを使用します。
    [カテゴリ価格を使用] | プライマリ親カテゴリを設定した後、商品の価格をカテゴリから継承する場合に、このオプションを選択します。
    [直接価格を使用] | プライマリ親カテゴリを設定した後、商品の価格を直接使用する場合に、このオプションを選択します。
    [更新] | カタログに新しいカテゴリを追加した後、[利用できるカテゴリ] ボックスの一覧にそのカテゴリを表示する場合に、[更新] をクリックします。
  6. [商品の関係] セクションで、商品の編集する関連付けを選択し、次に、[編集] をクリックして関連付けの名前を変更します。

    商品の関連付けの項目またはカタログを変更するには、関連付けを選択し、[削除] をクリックします。次に、[新規] をクリックして、新しい関連付けを作成します。

  7. [商品の選択] ダイアログ ボックスで、関連付けるカテゴリまたは商品を選択し、[OK] をクリックします。必要なカテゴリや商品を検索するには、参照するか、または、キーワード検索を実行します。

    注

    • [商品の選択] ダイアログ ボックスでは、商品名の 31 文字以降は切り捨てられます。名前の先頭 30 文字が等しい商品が複数ある場合、それらの商品は重複エントリとして表示されます。
  8. [商品グループの関係] セクションで、[確認] をクリックします。関連付けをさらに追加するには、[新規] をクリックします。
  9. 商品を保存して [カタログ] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  10. 更新した仮想カタログを Web サイトで公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カテゴリ階層を編集する

選択したカタログの既存のカテゴリ階層を編集できます。密接に関連する 2 つの親カテゴリがあり、一方のカテゴリが他方に論理的に従属する可能性がある場合は、カテゴリの割り当てを変更できます。たとえば、Classical と Composers という名前の 2 つの親カテゴリが存在する場合に、Composers を Classical の子カテゴリにすることができます。

カテゴリ階層を編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集するカテゴリ階層が含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [カテゴリ] セクションで、編集する階層を持つカテゴリを選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> (カテゴリ)] 画面の [割り当てられたカテゴリ] セクションで、[カテゴリ] ボックスの一覧からこのサブカテゴリを関連付けるカテゴリを選択します。
  5. 変更を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存してカテゴリ プロパティに戻る をクリックします。
  6. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


商品バリエーションを編集する

既存の商品バリエーションを編集するには、カタログ エディタ モジュールを使います。たとえば、T シャツを販売していて、在庫保管単位 (SKU) 番号を変更する必要が生じた場合は、選択した T シャツの既存のバリエーションを編集できます。

商品バリエーションを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、編集する商品バリエーションが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、商品バリエーションを編集する商品を選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> - (商品)] 画面の [商品のバリエーション] セクションで、編集する商品バリエーションを [商品のバリエーション] ボックスで選択します。

    [商品のバリエーション] セクションに表示されるプロパティのボックスは、編集する商品バリエーションの種類によって異なります。

  5. 各ボックスでプロパティを編集し、[終了] をクリックします。
  6. 編集内容を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  7. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

商品バリエーションを削除する

基本カタログの商品の価格を設定する

カタログを更新および公開する


カタログ セットを変更する

既存のカタログ セットを変更できます。既存のカタログ セットに対してカタログの削除や追加を行うと、ユーザーに表示するカタログを変更できます。カタログ セットに対する変更が、個別のカタログの内容に影響を与えることはありません。

カタログ セットを変更するには

  1. [カタログ] の [カタログ セット] をクリックします。
  2. [カタログ セット] 画面で、変更するカタログ セットを選択し、ツール バーの カタログ セットを開く をクリックします。
  3. [カタログ セット] 画面で、必要に応じてカタログ セット プロパティを変更します。
  4. [割り当てられたカタログ] ボックスからカタログを削除する場合は、[削除] をクリックします。
  5. 変更を保存して [カタログ セット] 画面に戻るには、ツール バーの 保存してキャンペーン マネージャ リストに戻る をクリックします。
  6. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カタログからカテゴリを削除する

カタログからカテゴリを削除するには、カタログ エディタ モジュールを使います。カタログからカテゴリを削除すると、関連付けまたは階層によってそのカテゴリに関連付けられていたすべてのカテゴリが影響を受けます。カテゴリがカテゴリ価格を通じて商品に関連付けられている場合は、カテゴリを削除するとそれらの商品が影響を受けます。たとえば、"たった 500 円" というカテゴリがあり、このカテゴリを価格カテゴリとして使用している 15 枚の CD があるとします。このカテゴリを削除すると、CD の価格は商品レベルで割り当てられた価格に戻ります。

カタログからカテゴリを削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除するカテゴリが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [カテゴリ] セクションで、削除するカテゴリを選択し、[削除] をクリックします。

    注意

    • カテゴリを誤って削除した場合は、カタログに追加し直す必要があります。
  4. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。
  5. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログにカテゴリを追加する

基本カタログのカテゴリを編集する


カタログから商品を削除する

カタログから商品を削除するには、カタログ エディタ モジュールを使います。たとえば、既に在庫がなく、今後販売する予定もない商品がカタログにある場合は、その商品をカタログから削除できます。

注

  • 商品の関連付けの一部になっている商品を削除すると、関連付けが影響を受けます。

商品を削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除する商品が含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、削除する商品を [商品] ボックスの一覧から選択し、[削除] をクリックします。

    注意

    • 商品を誤って削除した場合は、カタログに追加し直す必要があります。
  4. ツール バーの 戻る をクリックして、[カタログ] 画面に戻ります。
  5. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。

関連項目

カタログに商品を追加する

基本カタログの商品を編集する


基本カタログを削除する

古くなった基本カタログを削除するには、カタログ エディタ モジュールを使います。

注意

  • 一度削除したカタログは元に戻せません。
  • カタログは、Web サイトを更新するまでサイトに表示され続けます。
  • 仮想カタログに含まれている基本カタログを削除するときは、メッセージが表示されません。基本カタログを削除すると、[カタログ エディタ] 画面で仮想カタログのフラグが [Rebuild = Required] になります。

基本カタログを削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除するカタログを選択し、ツール バーの カタログの削除 をクリックします。
  3. [削除しますか?] ダイアログ ボックスで、[はい] をクリックしてカタログを削除します。
  4. カタログが表示されなくなるように、Web サイトを更新するには、ツール バーの カタログの公開 をクリックします。

カタログが Web サイトから削除されます。

関連項目

カタログをエクスポートする

基本カタログを作成する

カタログのプロパティを編集する

カタログ セットを変更する


カタログ セットを削除する

不要になった既存のカタログ セットは削除できます。カタログ セットを削除しても、カタログ セットに含まれるカタログに影響を与えることはありません。削除されるのは、カタログ間のグループ関係だけです。既存のユーザーに関連付けられているカタログ セットを削除すると、ユーザーとの関連付けは消滅します。

カタログ セットを削除するには

  1. [カタログ] の [カタログ セット] をクリックします。
  2. [カタログ セット] 画面で、削除するカタログ セットを選択し、ツール バーの カタログ セットの削除 をクリックします。
  3. [削除] ダイアログ ボックスで、[はい] をクリックしてカタログ セットを削除します。
  4. カタログ セットが表示されなくなるように、Web サイトを更新するには、ツール バーの カタログの公開 をクリックします。

カタログ セットが Web サイトから削除されます。


商品バリエーションを削除する

商品バリエーションは、いつでも商品から削除できます。

商品から商品バリエーションを削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除する商品バリエーションが含まれているカタログを選択し、ツール バーの カタログ セットを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、商品バリエーションを削除する商品を選択し、[編集] をクリックします。
  4. [カタログ エディタ - <商品名> (商品)] 画面の [商品バリエーション] セクションで、削除する商品バリエーションを [商品バリエーション] テーブルから選択し、[削除] をクリックします。

    商品バリエーションが [商品バリエーション] テーブルから削除されます。

    注意

    • 商品バリエーションを誤って削除した場合は、カタログに追加し直す必要があります。
  5. 変更を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存してカテゴリ プロパティに戻る をクリックします。
  6. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カテゴリと商品の関連付けを管理する

カテゴリや商品は、他のカテゴリや商品と関連付けることができます。たとえば、商品どうしの関連付けでは、特定の映画のビデオを購入したユーザーが、同じ映画のサウンドトラックも購入するような関係を考えます。カテゴリどうしの関連付けでは、たとえば、"CD" のカテゴリと "伝記本" のカテゴリの間の関連付けを設定できます。クラシック音楽の CD と作曲家の伝記本の両方を販売するような場合に利用できます。

既存の商品やカテゴリの関連付けは、編集したり削除したりすることができます。たとえば、映画の最新版のサウンドトラックを追加する場合は、既存のサウンドトラックの商品の関連付けを編集し、新しくリリースされたサウンドトラックをユーザーに提示できます。

ここでは、次のトピックについて説明します。

  • カタログのカテゴリの関連付けを編集する
  • カタログの商品の関連付けを編集する
  • カタログのカテゴリの関連付けを削除する
  • カタログの商品の関連付けを削除する


カタログのカテゴリの関連付けを編集する

関連付けに変更がある場合は、いつでもカテゴリの関連付けを編集できます。たとえば、クラシック音楽と作曲家の伝記本の間にカテゴリの関連付けが存在し、伝記の販売をやめて作曲家のドキュメンタリの販売を開始する場合は、関連付けをクラシック音楽とドキュメンタリの間に変更する必要があります。

カテゴリの関連付けを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面の編集する関連付けを含むカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [カテゴリ] セクションで、関連付けを編集するカテゴリを選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> (カテゴリ)] 画面の [カテゴリの関連付け] セクションで、カテゴリの関連付けを編集し、[確認] をクリックして関連付けを保存します。
  5. 編集内容を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  6. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カタログの商品の関連付けを編集する

関連付けに変更がある場合は、いつでも商品の関連付けを編集できます。たとえば、映画のビデオと、同じ映画のサウンドトラックの間に作成した商品の関連付けに、新たにミキシングし直したサウンドトラックを追加する場合は、商品の関連付けを編集します。

商品の関連付けを編集するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、商品の関連付けを編集するカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、関連付けを編集する商品を選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カタログ名> - (商品)] 画面の [商品の関係] セクションで、商品の関連付けを編集し、[確認] をクリックして関連付けを保存します。
  5. 編集内容を保存して [カタログ - <カタログ名>] 画面に戻るには、ツール バーの 保存して戻る をクリックします。
  6. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カタログのカテゴリの関連付けを削除する

あるカテゴリの商品の販売をやめたり、Web サイトの商品を再構成するような場合は、いつでもカテゴリの関連付けを削除できます。

カテゴリの関連付けを削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除するカテゴリの関連付けが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [カテゴリ] セクションで、関連付けを削除するカテゴリを選択し、[編集] をクリックします。
  4. [カタログ エディタ - <カテゴリ名> (カテゴリ)] 画面の [カテゴリの関連付け] セクションで、削除する関連付けを選択し、[削除] をクリックします。

    注意

    • 関連付けを誤って削除した場合は、カタログに追加し直す必要があります。
  5. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


カタログの商品の関連付けを削除する

商品の関連付けからは、いつでも商品を削除できます。たとえば、Web サイトの商品を再構成する場合に、いくつかの商品の関連付けを削除することがあります。

商品の関連付けを削除するには

  1. [カタログ] の [カタログ エディタ] をクリックします。
  2. [カタログ] 画面で、削除する商品の関連付けが含まれているカタログを選択し、ツール バーの カタログを開く をクリックします。
  3. [カタログ - <カタログ名>] 画面の [商品] セクションで、関連付けを削除する商品を選択し、[編集] をクリックします。
  4. [カタログ エディタ - <商品名> (商品)] 画面の [商品の関係] セクションで、削除する商品の関連付けを選択し、[削除] をクリックします。

    注意

    • 関連付けを誤って削除した場合は、カタログに追加し直す必要があります。
  5. 更新したカタログを Web サイトに公開するには、ツール バーの 最新の情報に更新 をクリックします。

更新済みのカタログが Web サイトに公開されます。


ビジネス デスク注文

注文モジュールは、Commerce Server データベースの既存の注文情報を検索するときや、使われていない保存済みバスケットを削除するときに使います。たとえば、注文状況コードを使って注文が注文処理のどの段階にあるかを追跡し、どの部分で注文が滞っているか、または未解決の問題に直面しているかを特定できます。また、税率や送付方法を追加し、Web サイトのそれらの情報を更新することもできます。

ここでは、次のトピックについて説明します。

  • 注文管理のワークフロー 注文を管理するためのワークフローについて説明します。
  • 注文について 注文のコンポーネントについて説明します。
  • 注文状況コードを追加する 注文状況コードを追加する方法について説明します。
  • 国/地域コードを追加する 国/地域コードを追加する方法について説明します。
  • 都道府県/州コードを追加する 都道府県/州コードを追加する方法について説明します。
  • 注文状況コードを管理する 注文状況コードを編集および削除する方法について説明します。
  • 場所コードを管理する 場所コードを編集および削除する方法について説明します。
  • 送付方法をカスタマイズする Microsoft Commerce Server 2002 に用意されている 3 種類の送付方法と、それらを Web サイトに合わせてカスタマイズする方法について説明します。
  • 税率を追加する 国/地域、都道府県/州、および連邦の税を追加する方法について説明します。
  • 税率を管理する 国/地域、都道府県/州、および連邦の税をカスタマイズする方法について説明します。
  • Web サイトで注文コードを発行する 変更済みの注文、新しい税率、および新しい送付方法など、新しい注文コード情報を Web サイトに発行する方法について説明します。
  • バスケットを検索する、並べ替える 保存済みバスケットの検索および並べ替えを行う方法について説明します。
  • バスケットを削除する 使われていない保存済みバスケットを削除する方法について説明します。
  • 注文を検索する、表示する、並べ替える 注文の検索、表示、および並べ替えを行う方法について説明します。
  • 注文を削除する Commerce Server データベースから注文を削除する方法について説明します。


注文管理のワークフロー

次の図は、注文状況コード、国/地域コード、都道府県/州コードの追加、送付方法のカスタマイズ、および税率の追加のシナリオの例を示しています。

  1. 注文状況モジュールで、ユーザーによる Web サイトでの注文を追跡するための注文状況コードを追加します。この操作は、既定の注文状況コードではビジネス ニーズに対応できない場合にのみ実行してください。
  2. 場所コード モジュールで、ユーザーの送付オプションとして Web サイトに表示する国/地域コードを追加します。
  3. 場所コード モジュールで、ユーザーの送付オプションとして Web サイトに表示する都道府県/州コードを追加します。
  4. 送付方法モジュールで、Web サイトで利用できる送付方法をカスタマイズします。
  5. 税率モジュールで、税率を追加します。
  6. 注文コードの発行モジュールで、Web サイトに加えた変更を発行します。

関連項目

注文について

注文状況コードを追加する

国/地域コードを追加する

都道府県/州コードを追加する

送付方法をカスタマイズする

税率を追加する

Web サイトで注文コードを発行する


注文について

注文状況の情報の表示、注文に使用される注文データ コードの管理、および Web サイトでのユーザーの注文の管理を行うには、Commerce Server ビジネス デスクの注文モジュールを使います。たとえば、ユーザーが放棄したバスケットを削除するには、バスケット マネージャ モジュールを使います。税率を追加するには、税率モジュールを使います。また、送付方法のカスタマイズを行うには、送付方法モジュールを使います。

ここでは、次のトピックについて説明します。

  • 注文状況コード
  • 場所コード
  • 注文処理
  • 送付方法
  • 放棄されたバスケット


注文状況コード

注文状況コードは、ユーザーによる注文を追跡する場合に役立ちます。Web サイトに表示する注文状況コードを追加するには、注文状況コード モジュールを使います。たとえば、滞っている注文や未解決の問題に直面している注文に対して注文状況コードを追加できます。注文状況コードの追加については、「注文状況コードを追加する」を参照してください。

注文状況コードを使うと、注文の進行状況を追跡できます。既定の注文状況コードには、4 (新規注文)、2 (保存済みの注文)、および 1 (バスケット) の 3 つがあります。

ユーザーがバスケットに項目を追加したり、Web サイトに注文を送信したりすると、その注文に注文状況コードが割り当てられます。たとえば、未処理の新しい注文には、状況コード 4 (新規注文) が割り当てられます。サイトを訪問するユーザーが出した注文を検索できます。たとえば、品目の説明、商品 ID、または注文番号によって、注文を検索できます。また、注文を並べ替えて、探している情報をわかりやすく表示することもできます。たとえば、注文状況やユーザーの姓を基準に注文を並べ替えることができます。


場所コード

送付先と請求先を指定するには、場所コードを使います。場所コードには、次の 2 つの型があります。

  • 国/地域コード サイトで商品を注文するユーザーが商品の送付先として指定する国または地域を識別します。
  • 都道府県/州コード 注文の送付先の都道府県や州を識別します。

場所コードを追加および編集するには、場所コード モジュールを使います。新しい都道府県/州コードを追加する前に、それに対応する国/地域コードがデータベースに存在することを必ず確認します。

サイトで商品を注文するユーザーは、送付先などが含まれるプロファイル フォームに記入する必要があります。Web サイト上のプロファイル フォームには、指定した都道府県/州コードと国/地域コードが含まれています。

関連項目

注文管理のワークフロー

注文状況コードを追加する

国/地域コードを追加する

都道府県/州コードを追加する

注文状況コードを管理する


注文処理

ユーザーが Web サイトに注文を送信すると、注文は Commerce Server 注文処理パイプラインによって処理されます。注文処理パイプライン (OPP) は、作業のカテゴリを表すいくつかのステージに注文処理を分割します。一般的な OPP には、買い物客情報ステージ、支払いステージ、および送料ステージが含まれます。たとえば、Commerce Server データベースから商品説明と送付先が取得され、税金が計算されます。注文情報と合計金額は、その注文に対して Commerce Server データベースに保存されます。

Microsoft BizTalk Server 2000 以降のエディションとビジネス デスクの注文モジュールを併用すると、ユーザーが Commerce Server Web サイトで出した注文を処理できます。たとえば、サイトでコンピュータ ハードウェアを販売するとします。販売するハードウェアには、自社製品と取引先から供給されている商品があるとします。BizTalk Server を使うと、販売するハードウェアを供給する取引先ごとに取引契約を作成できます。ユーザーがサイトを訪問し、取引先から供給されている商品のいずれかを注文すると、Commerce Server は注文を処理して BizTalk Server に送信し、BizTalk Server はその商品の取引先に注文を送信します。BizTalk Server とビジネス デスク注文モジュールの統合の詳細については、システム管理者に問い合わせてください。

関連項目

注文管理のワークフロー


送付方法

ユーザーが Web サイトで注文を出せるようにするには、少なくとも 1 つの送付方法を用意しておく必要があります。

Commerce Server ビジネス デスクでは、次の 3 種類の送付方法をサポートしています。

  • 重量で課金 この方法は、注文の重量で送料を決定する場合に使用します。重量の範囲に対して料金を指定するには、この方法を使います。

    注

    • 重量で課金するには、カタログ内のすべての商品について "重量" という商品プロパティが定義されている必要があります。"重量" がプロパティとして定義されていない商品があると、Web サイトでこのオプションが正しく機能しません。商品定義の追加の詳細については、「カタログの商品定義を追加する」を参照してください。
  • 数量で課金 この方法は、注文された商品の数量で送料を決定する場合に使用します。この方法では、商品の正確な個数または数量の範囲のいずれかに対して料金を指定します。たとえば、商品が 3 個までの注文の送料を 200 円に設定したとします。4 個以上の商品を含む注文の場合は、送料を 400 円に設定できます。
  • 代金で課金 この方法は、注文の代金で送料を決定する場合に使用します。たとえば、総額 7,000 円になる 4 枚の CD の注文には送料を 495 円に設定します。1,799 円の CD 1 枚の注文の場合には、送料を 200 円に設定できます。

選択した送付方法は、その送付方法プロパティを変更することができます。たとえば、運賃が変更された場合、送付方法ごとに料金を変更できます。

他の方法で請求する必要がある場合、またはサードパーティ アプリケーションを提供する配送サービス (UPS、DHL など) を利用する場合は、サイト開発者に問い合わせてください。配送サービスから提供されたサードパーティ アプリケーションを使う必要がある場合は、Commerce Server データベースに国/地域コードを追加する前に、その配送サービスに問い合わせて、使用されている標準の国/地域コードを確認してください。

カスタム送付方法、またはサードパーティ製パイプライン コンポーネンのインストールについては、システム管理者に問い合わせてください。

送付方法のカスタマイズの詳細については、「送付方法をカスタマイズする」を参照してください。

関連項目

注文管理のワークフロー

送付方法をカスタマイズする

多言語に対応可能な送付方法


多言語に対応可能な送付方法

Web サイトで送付サービスを複数の言語で利用できるようにすることができます。送付方法の名前および送付方法の説明を複数の言語で作成するには、ビジネス デスクの送付方法モジュールを使います。Web サイトで、送付方法をサーバーの既定の言語とは異なる言語で表示するには、ビジネス デスクの送付方法モジュールで送付方法に関連付ける言語を選択する必要があります。多言語に対応可能な送付方法の作成については、「送付方法をカスタマイズする」を参照してください。

関連項目

送付方法

送付方法をカスタマイズする


放棄されたバスケット

ユーザーが購入しようとしている項目は、仮想バスケットに入ります。それらの項目はすべて、支払いの際にバスケットの中に表示されます。しかし、ユーザーは、そのバスケットの項目の支払いを行わないで、または、バスケットを空にしないで、サイトからログオフすることがあります。これらの放棄されたバスケットは、管理者が削除するか、またはユーザーが再びログインしてバスケットを空にするまで、Commerce Server データベースに残ります。ユーザーはバスケットを保存して、そのバスケットを Commerce Server データベースに無期限に置いておくことができます。

Commerce Server データベースに放棄または保存された大量のバスケットが置かれていると、収集がつかなくなります。これを避けるため、一定期間以上放棄または保存されたバスケットを定期的に削除する必要があります。ビジネス デスクのバスケット マネージャ モジュールの検索ペインで、フィルタ条件を使って削除するバスケットを検索できます。たとえば、2 週間以上にわたって放棄または保存されているバスケットを検索し、それらのバスケットを削除できます。バスケットの削除の詳細については、「バスケットを削除する」を参照してください。

関連項目

注文管理のワークフロー

バスケットを検索する、並べ替える

注文を検索する、表示する、並べ替える


注文状況コードを追加する

注文が注文処理のどの段階にあるかを検索するには、注文状況コードを使います。注文状況コードを使うと、注文処理の段階をコードで識別できます。たとえば、ユーザーが 8 週間前に 2 枚の CD と 2 枚の Ｔ シャツを注文した場合、注文状況コードを確認して、その注文が注文処理のどの段階にあるかを追跡できます。既定の注文状況コードには、4 (新規注文)、2 (保存済みの注文)、および 1 (バスケット) の 3 つがあります。新しい注文状況コードを作成して、注文処理が行われている個々の注文を追跡することができます。たとえば、Web サイト上の未処理の注文を定義する注文状況コードを作成できます。

注

  • 注文状況コードを追加した場合、その変更を有効にするには、Web サーバーごとにメモリから Commerce Server アプリケーションをアンロードする必要があります。詳細については、「メモリからアプリケーションをアンロードする」を参照してください。

注文状況コードを追加するには

  1. [注文] の [注文状況コード] をクリックします。
  2. [注文状況コード] 画面で、ツール バーの 追加 をクリックします。
  3. [注文状況コード] 画面で、次の操作を行います。
    項目 | 操作
    [コード] | ボックスの一覧から注文状況コードのコード番号を選択します。
    [コード名] | 注文状況コードの名前を入力します。
    [説明] | 注文状況コードの説明を入力します。
  4. 注文状況コードを保存して、新しい注文状況コードの入力を続けるには、ツール バーの 保存して新規作成 をクリックします。

    次の新しい注文状況コードを入力できます。

  5. 注文状況コードを保存して [注文状況コード] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

関連項目

注文管理のワークフロー

注文について

注文状況コードを管理する

国/地域コードを追加する

都道府県/州コードを追加する


国/地域コードを追加する

国/地域を識別するには、国/地域コードを作成します。ユーザーは、Web サイトで登録または商品を注文するときに国/地域コードを入力します。Commerce Server には、既定の国/地域コードがいくつか用意されています。

注

  • 国/地域コードを Commerce Server データベースに追加してから、その国/地域に含まれる都道府県/州コードを追加する必要があります。データベースに国/地域を追加する前に都道府県/州コードを追加しようとすると、エラー メッセージが表示されます。
  • 配送サービスから提供されたサードパーティ アプリケーションを使う必要がある場合は、データベースに国/地域コードを追加する前に、その配送サービスに問い合わせて、その配送サービスで使用する標準の国/地域コードを確認してください。
  • 国/地域コードを追加した場合、その変更を有効にするには、Web サーバーごとにメモリから Commerce Server アプリケーションをアンロードする必要があります。詳細については、「メモリからアプリケーションをアンロードする」を参照してください。

国/地域コードを追加するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の型>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [国/地域コード] をクリックします。次に、ツール バーの 追加 をクリックします。
  3. [場所コード : 国/地域] 画面で、次の操作を行います。
    項目 | 操作
    [国/地域コード] | 国/地域コードを英文字で入力します。国/地域コードは、3 文字以内で指定する必要があります。
    [表示名] | 国/地域コードの表示名を入力します。
    [説明] | 必要に応じて、国/地域コードの説明を入力します。
  4. 国/地域コードを保存して [場所コード : 国/地域] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい国/地域コードが [場所コード : 国/地域] 画面に表示されます。

関連項目

注文管理のワークフロー

注文について

注文状況コードを管理する

都道府県/州コードを追加する


都道府県/州コードを追加する

注文の送付先の都道府県/州を識別するには、Commerce Server データベースに都道府県/州コードを追加します。都道府県/州コードは、Web サイトに表示される都道府県/州を識別します。

注

  • 国/地域コードを Commerce Server データベースに追加してから、その国/地域に含まれる都道府県/州コードを追加する必要があります。データベースに国/地域を追加する前に都道府県/州コードを追加しようとすると、エラー メッセージが表示されます。国/地域コードの追加の詳細については、「国/地域コードを追加する」を参照してください。
  • 都道府県/州コードを追加した場合、その変更を有効にするには、Web サーバーごとにメモリから Commerce Server アプリケーションをアンロードする必要があります。詳細については、「メモリからアプリケーションをアンロードする」を参照してください。

都道府県/州コードを追加するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の種類>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [都道府県/州コード] をクリックします。次に、ツール バーの 追加 をクリックします。
  3. [場所コード : 都道府県/州] 画面で、次の操作を行います。
    項目 | 操作
    [都道府県/州コード] | 都道府県/州コードを英文字で入力します。
    [表示名] | 都道府県/州の表示名を入力します。
    [国/地域] | 都道府県/州の国/地域コードを選択します。
    [説明] | 必要に応じて、都道府県/州コードの説明を入力します。
  4. 変更を保存して [場所コード : 都道府県/州] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

Commerce Server データベースに新しい都道府県/州コードが保存されます。

関連項目

注文管理のワークフロー

注文について

国/地域コードを追加する

注文状況コードを管理する


注文状況コードを管理する

Web サイトに表示する注文状況コードを管理するには、Commerce Server ビジネス デスクの注文状況コード モジュールを使います。注文状況コードは、ユーザーによる注文を追跡する場合に役立ちます。

ここでは、次のトピックについて説明します。

  • 注文状況コードを編集する
  • 注文状況コードを削除する


注文状況コードを編集する

注文状況コード モジュールを使うと、既存の注文状況コードの名前と説明を編集できます。ただし、コードの実際の数値を編集することはできません。

注

  • [コード] ボックスでは、実際のコード番号は編集できません。コード番号を変更する場合は、注文状況コードを削除し、[コード] ボックスで必要な変更を行った新しいコードを追加する必要があります。
  • 注文状況コードを編集した場合は、システム管理者に問い合わせ、新しいコードでサイトを更新する必要があります。

注文状況コードを編集するには

  1. [注文] の [注文状況コード] をクリックします。
  2. [注文状況コード] 画面で、編集する注文状況コードを選択し、ツール バーの 開く をクリックします。
  3. [注文状況コード - <注文状況コード>] 画面で、次の操作を行います。
    項目 | 操作
    [コード名] | 注文状況コードの名前を新しく入力します。
    [説明] | 注文状況コードの説明を新しく入力します。
  4. 編集内容を保存して [注文状況コード] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した注文状況コードが保存されます。

関連項目

注文について

注文状況コードを追加する

注文状況コードを削除する


注文状況コードを削除する

既存の注文状況コードは、注文状況モジュールを使って削除できます。これは、たとえば、特定のオブジェクトの識別に注文状況コードを必要としない場合などに役立ちます。

注

  • 削除した注文状況コードは元に戻せません。削除した注文状況コードが必要な場合は、コードを作成し直す必要があります。
  • 注文状況コードを削除した場合は、システム管理者に問い合わせて、コードが削除されたことを反映するようにサイトを更新する必要があります。

注文状況コードを削除するには

  1. [注文] の [注文状況コード] をクリックします。
  2. [注文状況コード] 画面で、削除する注文状況コードを選択し、ツール バーの 削除 をクリックします。
  3. 確認用の [注文状況コード] ダイアログ ボックスで [OK] をクリックします。

注文状況コードがサイトから削除されます。

関連項目

注文について

注文状況コードを追加する

注文状況コードを編集する


場所コードを管理する

国/地域コードと都道府県/州コードを管理して、送付先と請求先を指定するには、場所コード モジュールを使います。

ここでは、次のトピックについて説明します。

  • 国/地域コードを編集する
  • 都道府県/州コードを編集する
  • 国/地域コードを削除する
  • 都道府県/州コードを削除する


国/地域コードを編集する

場所コード モジュールを使うと、既存の国/地域コードの名前と説明を編集できます。

注

  • [コード] ボックスでは、実際のコード番号は編集できません。コード番号を変更する場合は、国/地域コード全体を削除し、[コード] ボックスで必要な変更を行った新しいコードを追加する必要があります。
  • 国/地域コードを編集した場合は、システム管理者に問い合わせ、新しいコードでサイトを更新する必要があります。

国/地域コードを編集するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の型>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [国/地域コード] をクリックします。
  3. 編集する国/地域コードを選択し、ツール バーの 開く をクリックします。
  4. [国/地域コード - <国/地域>] 画面で、次の操作を行います。
    項目 | 操作
    [表示名] | 国/地域コードの表示名を入力します。
    [説明] | 必要に応じて、国/地域コードの説明を入力します。
  5. 編集内容を保存して [国/地域コード] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した国/地域コードが保存されます。

関連項目

注文について

国/地域コードを追加する

国/地域コードを削除する


都道府県/州コードを編集する

場所コード モジュールを使うと、既存の都道府県/州コードの名前と説明を編集できます。

注

  • [コード] ボックスでは、実際のコード番号は編集できません。コード番号を変更する場合は、都道府県/州コードを削除し、[コード] ボックスで必要な変更を行った新しいコードを追加する必要があります。
  • 都道府県/州コードを編集した場合は、システム管理者に問い合わせ、編集したコードでサイトを更新する必要があります。

都道府県/州コードを編集するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の型>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [都道府県/州コード] をクリックします。

    注

    • ビジネス デスクの画面の表示名は、最後に選択したデータ コードになります。たとえば、最後に選択したデータ コードが注文状況コードの場合、ビジネス デスクの画面の名前は "注文状況コード" になります。
  3. 編集する都道府県/州コードを選択し、ツール バーの 開く をクリックします。
  4. [都道府県/州コード - <都道府県/州>] 画面で、次の操作を行います。
    項目 | 操作
    [表示名] | 都道府県/州の表示名を入力します。
    [説明] | 必要に応じて、都道府県/州コードの説明を入力します。
  5. 編集内容を保存して [都道府県/州コード] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した都道府県/州コードが保存されます。

関連項目

注文について

都道府県/州コードを追加する

都道府県/州コードを削除する


国/地域コードを削除する

既存の国/地域コードは、場所コード モジュールを使って削除できます。これは、たとえば、特定の国や地域に商品を送付していないときに、そのオプションを非表示にする場合などに役立ちます。

注

  • 国/地域コードを削除すると、その国/地域に関連付けられた都道府県/州コードもすべて削除されます。
  • 削除した国/地域コードは元に戻せません。削除した国/地域コードが必要な場合は、コードを作成し直す必要があります。
  • 国/地域コードを削除した場合は、システム管理者に問い合わせて、コードが削除されたことを反映するようにサイトを更新する必要があります。

国/地域コードを削除するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の型>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [国/地域コード] をクリックします。
  3. 削除する国/地域コードを選択し、ツール バーの 削除 をクリックします。
  4. 確認用の [関連コードの削除] ダイアログ ボックスで [OK] をクリックします。
  5. 確認用の [場所コード : 国/地域コード] ダイアログ ボックスで [OK] をクリックします。

国/地域コードがサイトから削除されます。

関連項目

注文について

国/地域コードを追加する

国/地域コードを編集する


都道府県/州コードを削除する

既存の都道府県/州コードは、場所コード モジュールを使って削除できます。これは、たとえば、特定の都道府県/州に商品を送付していないときに、そのオプションを非表示にする場合などに役立ちます。

注

  • 削除した都道府県/州コードは元に戻せません。削除した都道府県/州コードが必要な場合は、コードを作成し直す必要があります。
  • 都道府県/州コードを削除した場合、その変更を有効にするには、Web サーバーごとにメモリから Commerce Server アプリケーションをアンロードする必要があります。詳細については、「メモリからアプリケーションをアンロードする」を参照してください。

都道府県/州コードを削除するには

  1. [注文] の [場所コード] をクリックします。
  2. [場所コード : <場所の型>] 画面で、ツール バーの 表示 をクリックし、ボックスの一覧の [都道府県/州コード] をクリックします。
  3. [都道府県/州コード] 画面で、削除するコードを選択し、ツール バーの 削除 をクリックします。
  4. 確認用の [都道府県/州コード] ダイアログ ボックスで [OK] をクリックします。

都道府県/州コードがサイトから削除されます。

関連項目

注文について

都道府県/州コードを追加する

都道府県/州コードを編集する


送付方法をカスタマイズする

Web サイトに表示する送付方法をカスタマイズするには、Commerce Server ビジネス デスクの送付方法モジュールを使います。

次の要件に注意してください。

  • ユーザーが Web サイトで注文を出せるように、少なくとも 1 つの送付方法を用意しておく必要があります。
  • Web サイトで、サーバーの既定以外の言語で、送付方法を表示するには、送付方法に関連付けられている言語を選択しておく必要があります。
  • 他の方法で請求する必要がある場合、またはサードパーティ アプリケーションを提供する配送サービス (UPS、DHL など) を利用する場合は、サイト開発者に問い合わせてください。
  • 配送サービスから提供されたサードパーティ アプリケーションを使う必要がある場合は、Commerce Server データベースに国/地域コードを追加する前に、その配送サービスに問い合わせて、使用されている標準の国/地域コードを確認してください。

Web サイトで送付サービスを複数の言語で利用できるようにすることができます。送付方法の名前および送付方法の説明を複数の言語で作成するには、Commerce Server ビジネス デスクの送付方法モジュールを使います。

Commerce Server ビジネス デスクでは、次の 3 種類の送付方法をサポートしています。

  • 重量で課金 この方法は、注文の重量で送料を決定する場合に使用します。重量の範囲に対して料金を指定するには、この方法を使います。
  • 数量で課金 この方法は、注文された商品の数量で送料を決定する場合に使用します。この方法では、商品の正確な個数または数量の範囲のいずれかに対して料金を指定します。
  • 代金で課金 この方法は、注文の代金で送料を決定する場合に使用します。

選択した送付方法は、その送付方法プロパティを変更することができます。たとえば、運賃が変更された場合、送付方法ごとにコストを変更できます。

さまざまな送付オプションを用意している配送サービス (USPS や Federal Express など) や、重量と地域で料金を計算する配送サービス (UPS など) を使う場合は、その配送サービスから提供されるサードパーティ製パイプライン コンポーネントを使う必要があります。

注

  • 送付方法を追加した場合は、注文コードの発行モジュールを使って、サイトを更新する必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。
  • 重量で課金するには、カタログ内のすべての商品に "重量" という商品プロパティが定義されている必要があります。"重量" がプロパティとして定義されていない商品があると、Web サイトでこのオプションが正しく機能しません。商品定義の追加の詳細については、「カタログの商品定義を追加する」を参照してください。

多言語に対応可能な送付方法を追加するには

重量で課金する送付方法を追加するには

数量で課金する送付方法を追加するには

代金で課金する送付方法を追加するには

送付方法プロパティを編集するには

多言語に対応可能な送付方法を追加するには

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、ツール バーの 言語 をクリックし、ボックスの一覧から、送付方法に関連付ける言語を選択します。
  3. [送付方法] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧から送付方法を選択します。
  4. [<送付方法> で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] ボックスの一覧から、この送付方法に関連付ける言語を選択します。

    注

    • 送付方法に関連付ける言語を [送付方法] 画面で選択した場合は、この操作を省略してください。
    [名前] | 送付方法の名前を入力します。
    [説明] | 送付方法の説明を入力します。
    [有効] | 送付方法を有効にするには、このチェック ボックスをオンにします。送付方法を有効にしないと、この送付方法は Web サイトに表示されません。
  5. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [<送付方法の名前> (～まで)] | <送付方法> に対応する数量を入力します。
    [送料] | 送料を入力します。
  6. [確認] をクリックします。
  7. すべての送料を入力し終わったら、送料リストの最後の行 ([<入力された最大値> を超える]) をクリックし、[編集] をクリックします。

    重要

    • 送付方法を保存するには、[料金] の下の最後の行を編集する必要があります。
  8. この送付方法の最高金額を入力し、[確認] をクリックします。
  9. 送付方法を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

送付方法が保存されます。

重量で課金する送付方法を追加するには

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [重量で課金] をクリックします。
  3. [重量で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | 送付方法に関連付ける言語を選択します。
    [名前] | 送付方法の名前を入力します。
    説明 | 送付方法の説明を入力します。
    [有効] | 送料を有効にするには、このチェック ボックスをオンにします。送付方法を Web サイトに表示するには、ここで [はい] をクリックして、その送付方法を有効にする必要があります。
  4. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [重量 (～まで)] | 送料に対応する重量を入力します。
    [送料] | 送料を入力します。
  5. [確認] をクリックします。
  6. すべての送料を入力し終わったら、送料リストの最後の行 ([<入力された最大値> を超える]) をクリックし、[編集] をクリックします。

    重要

    • 送付方法を保存するには、[料金] の下の最後の行を編集する必要があります。
  7. この送料の最高金額を入力し、[確認] をクリックします。
  8. 送付方法を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

重量で課金する送付方法が保存されます。

数量で課金する送付方法を追加するには

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [数量で課金] をクリックします。
  3. [数量で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | 送付方法に関連付ける言語を選択します。
    [名前] | 送付方法の名前を入力します。
    説明 | 送付方法の説明を入力します。
    [有効] | 送料を有効にするには、このチェック ボックスをオンにします。送付方法を Web サイトに表示するには、ここで [はい] をクリックして、その送付方法を有効にする必要があります。
  4. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [数量 (～まで)] | 送料に対応する数量を入力します。
    [送料] | 送料を入力します。
  5. [確認] をクリックします。
  6. すべての送料を入力し終わったら、送料リストの最後の行 ([<入力された最大値> を超える]) をクリックし、[編集] をクリックします。

    重要

    • 送付方法を保存するには、[料金] の下の最後の行を編集する必要があります。
  7. この送付方法の最高金額を入力し、[確認] をクリックします。
  8. 送付方法を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

数量で課金する送付方法が保存されます。

代金で課金する送付方法を追加するには

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、ツール バーの 追加 をクリックし、ボックスの一覧の [代金で課金] をクリックします。
  3. [小計で課金 - 新規] 画面の [送付方法プロパティ] セクションで、次の操作を行います。
    項目 | 操作
    [言語] | 送付方法に関連付ける言語を選択します。
    [名前] | 送付方法の名前を入力します。
    [説明] | 送付方法の説明を入力します。
    [有効] | 送付方法を有効にするには、このチェック ボックスをオンにします。送付方法を Web サイトに表示するには、ここで [はい] をクリックして、その送付方法を有効にする必要があります。
  4. [料金] セクションの [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [代金 (～まで)] | 送料に対応する代金を入力します。
    [送料] | 送料を入力します。
  5. [確認] をクリックします。
  6. すべての送料を入力し終わったら、送料リストの最後の行 ([<入力された最大値> を超える]) をクリックし、[編集] をクリックします。

    重要

    • 送付方法を保存するには、[料金] の下の最後の行を編集する必要があります。
  7. この送料の最高金額を入力し、[確認] をクリックします。
  8. 送付方法を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

代金で課金する送付方法が保存されます。

送付方法プロパティを編集するには

  1. [注文] の [送付方法] をクリックします。
  2. [送付方法] 画面で、編集する送付方法を選択し、ツール バーの 開く をクリックします。
  3. [<請求方法> で課金 - <請求方法の名前> で開きます] 画面で、送付方法のプロパティを編集します。
  4. 編集内容を保存して [送付方法] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した送付方法が保存されます。

関連項目

注文管理のワークフロー

注文について

税率を追加する

Web サイトで注文コードを発行する


税率を追加する

国/地域や都道府県/州に対応する税率を追加するには、Commerce Server ビジネス デスクの税率モジュールを使います。

注

  • 税率を追加する前に、国/地域コードと都道府県/州コードを設定しておく必要があります。国/地域コードと都道府県/州コードの追加の詳細については、「国/地域コードを追加する」および「都道府県/州コードを追加する」を参照してください。
  • 都道府県/州ごとに設定された税率は、その国/地域の都道府県/州全体に対して設定された税率より優先されます。
  • 税率を追加した場合は、注文コードの発行モジュールを使って、サイトを更新する必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。

税率を追加するには

  1. [注文] の [税率] をクリックします。
  2. [税] 画面の [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [国/地域] | ボックスの一覧から国/地域を選択します。
    [都道府県/州] | ボックスの一覧から都道府県/州を選択します。
    [税率] | 小数を使った割合の形式で税率を入力します。たとえば、税率が 8.6% の場合は、「8.6」と入力します。
  3. [確認] をクリックします。
  4. 税率を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

税率が保存されます。

関連項目

注文管理のワークフロー

注文について

税率を管理する

Web サイトで注文コードを発行する


税率を管理する

税金の額は国/地域や都道府県/州によって異なり、税金がまったくかからない場合もあります。国/地域や都道府県/州に対応する税率を追加、編集、および削除するには、Commerce Server ビジネス デスクの税率モジュールを使います。

ここでは、次のトピックについて説明します。

  • 税率を編集する
  • 税率を削除する


税率を編集する

税率が変わった場合、税率モジュールを使って既存の税率を編集できます。

税率を編集するには

  1. [注文] の [税率] をクリックします。
  2. 編集する税率を選択し、[編集] をクリックします。
  3. 税率を編集し、[確認] をクリックします。
  4. 編集内容を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した税率が保存されます。

注

  • サイトを更新するには、注文コードの発行モジュールを使う必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。

関連項目

注文について

税率を追加する

税率を削除する

Web サイトで注文コードを発行する


税率を削除する

既存の税率を削除するには、税率モジュールを使います。

税率を削除するには

  1. [注文] の [税率] をクリックします。
  2. 削除する税率を選択し、[削除] をクリックします。
  3. 変更を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

税率がサイトから削除されます。

注意

  • 削除した税率は元に戻せません。削除した税率が必要な場合は、税率を作成し直す必要があります。

注

  • サイトを更新するには、注文コードの発行モジュールを使う必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。

関連項目

注文について

税率を追加する

税率を編集する

Web サイトで注文コードを発行する


Web サイトで注文コードを発行する

変更された注文、新しい税率や送付方法など、新たに追加した情報についてその場でサイトを更新するには、注文コードの発行モジュールを使います。

サイトと、サイトに含まれる注文コード キャッシュを表示できます。注文コード キャッシュを発行しない場合は、そのキャッシュを一覧から削除できます。

税金、送料、および注文の情報を発行するには

注文コード キャッシュを削除するには

税金、注文、および送料の情報を発行するには

  1. [注文] の [注文コードの発行] をクリックします。

    [注文コードの発行] 画面には、アクティブなキャッシュだけが表示されます。キャッシュが表示されない場合は、何も公開されません。

  2. アクティブなキャッシュの一覧から、サイトで更新するキャッシュを選択し、ツール バーの カタログの発行 をクリックします。

注文、税金、および送料のすべての情報が、サイト上で直ちに更新されます。

注文コード キャッシュを削除するには

  1. [注文] の [注文コードの発行] をクリックします。
  2. 削除するサイトとその注文コード キャッシュを選択し、ツール バーの 削除 をクリックします。
  3. [削除しますか?] 確認ダイアログ ボックスで [はい] をクリックし、選択したサイトの注文コード キャッシュを削除します。

選択したサイトの注文コード キャッシュが、[サイトに発行する項目] ボックスの一覧から削除されます。

関連項目

注文管理のワークフロー

注文について

注文状況コードを追加する

送付方法をカスタマイズする

税率を追加する


バスケットを検索する、並べ替える

ユーザーが購入しようとしている項目は、仮想 "バスケット" に入ります。それらの項目はすべて、支払いの際にバスケットの中に表示されます。既存のバスケットは、日付や組織で検索できます。また、現在 Web サイトにあるすべてのバスケットを表示することもできます。最後にアクセスされた日付でバスケットを並べ替えると、どのバスケットが放棄されているかを判断し、それらを削除することができます。

バスケットを検索するには

バスケットを並べ替えるには

バスケットを検索するには

  1. [注文] の [バスケット マネージャ] をクリックします。
  2. [バスケット マネージャ] 画面の [検索条件] ボックスの下向き矢印をクリックし、ボックスの一覧から次のいずれかの項目を選択します。
    項目 | 操作
    [最終アクセス日] 日付で検索するには
    • ボックスの一覧の [次の日から] をクリックします。日付の範囲を入力するか、[次の日から] および [次の日まで] ボックスのドロップダウン カレンダーから日付を選択します。

    または

    • ボックスの一覧の [次の日以前] をクリックします。日付を入力するか、ドロップダウン カレンダーから選択します。
    [組織] | 組織で検索するには、組織名を入力します。
    [すべてのバスケット] | Commerce Server データベースのすべてのバスケットを、一覧で表示します。
  3. [検索開始] をクリックします。

[バスケット マネージャ] 画面の一覧で、結果を確認できます。

バスケットを並べ替えるには

  1. [注文] の [バスケット マネージャ] をクリックします。
  2. [フィルタ ビュー] ボックスの一覧で、バスケットの並べ替えに使用する列見出しをクリックします。

列見出しをクリックすると、リストが動的に並べ替えられます。

関連項目

注文について

放棄されたバスケット

バスケットを削除する


バスケットを削除する

Web サイトで放棄されたバスケットは、Commerce Server ビジネス デスクのバスケット マネージャ モジュールを使って、Commerce Server データベースから削除できます。通常は、ユーザーが支払いをせずに、またはバスケットを空にせずにサイトからログオフした場合、バスケットを削除します。

バスケットを削除するには

  1. [注文] の [バスケット マネージャ] をクリックします。
  2. 放棄されたバスケットを検索するには、検索ペインで次の操作を行います。
    項目 | 操作
    [検索条件] | [最終アクセス日] を選択します。
    [日付] | 日付の条件として [次の日付以前] を選択し、日付を入力するか、ドロップダウン カレンダーから選択します。
  3. [検索開始] をクリックします。
  4. [フィルタ ビュー] ボックスの一覧で、削除するバスケットを選択し、ツール バーの 削除 をクリックします。
  5. [削除] の確認ダイアログ ボックスで [はい] をクリックします。

選択したバスケットが Web サイトから削除されます。

注意

  • 削除したバスケットは元に戻せません。

注

  • サイトを更新するには、注文コードの発行モジュールを使う必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。

関連項目

注文について

注文を検索する、表示する、並べ替える

放棄されたバスケット


注文を検索する、表示する、並べ替える

注文状況の情報を確認し、注文ヘッダーや品目情報など、注文に関連するすべての詳細を表示するには、Commerce Server ビジネス デスクの注文状況モジュールを使います。サイトを訪問するユーザーが出した注文を検索できます。

最大 8 つの検索条件を使って検索することができます。また、すべての注文を表示することもできます。既定では、番号を基準とする降順で表示されますが、並べ替えの順序を変更することもできます。たとえば、注文状況やユーザーの姓を基準に注文を並べ替えることができます。

注文を検索するには

注文を表示するには

リストの注文を並べ替えるには

注文を検索するには

  1. [注文] の [注文状況] をクリックします。
  2. [注文状況] 画面の [検索条件] ボックスの一覧で、次のいずれかを選択します。
    項目 | 操作
    [注文日] | 特定の日までに、または特定の日以降に発注された注文をすべて一覧に表示します。日付を入力するか、またはドロップダウン カレンダーから選択します。
    [ユーザー名] | 特定のユーザーによる注文をすべて一覧に表示します。[名] ボックスと [姓] ボックスに、ユーザーの名、姓、またはその両方の最初の数文字を入力します。
    [注文番号] | 特定の注文番号の注文を一覧に表示します。[注文番号] ボックスに、注文番号を正確に入力してください。
    [組織] | 特定の組織による注文をすべて一覧に表示します。[組織] ボックスに、組織名を入力してください。
    [注文書番号] | 特定の注文書 (PO) 番号からの注文をすべて一覧に表示します。[注文書番号] ボックスに、注文書番号を正確に入力してください。
    [商品 ID] | 特定の商品 ID 番号が含まれる注文をすべて一覧に表示します。[商品 ID] ボックスに、商品 ID 番号を正確に入力してください。
    [品目の説明] | 特定の説明のある注文をすべて一覧に表示します。
    [情報] | すべての検索条件を開きます。注文の詳細の一部またはすべてを入力できます。
    [すべての注文] | 保存済みの注文のうち、注文処理パイプラインで処理されていないものをすべて表示します。
  3. [検索開始] をクリックします。

[注文状況] 画面に検索結果が表示されます。

注文を表示するには

  1. [注文] の [注文状況] をクリックします。
  2. [注文状況] 画面で、表示する注文を検索します。注文の検索については、「注文を検索するには」を参照してください。
  3. [フィルタ ビュー] ボックスの一覧で、表示する注文を選択し、ツール バーの 開く をクリックします。
  4. [注文 : <注文番号>] 画面の [注文内容] セクションに、注文に関係する次の情報が表示されます。
    項目 | 操作
    [注文番号] | 選択した注文の番号。
    [姓] | 注文を出したユーザーの姓。
    [名] | 注文を出したユーザーの下の名前。
    [請求先住所名] | 請求先の住所。
    [注文日] | 注文が出された日付。
    [注文状況] | 注文の状況 (新規、未処理など)。
    [代金] | 送料と税金を除いた、注文の代金。
    [送料] | 注文の送料。
    [送料割引] | 送料割引 (この注文に対する割引特典がある場合)。
    [税] | 注文に課される税の額。
    [合計金額] | 注文の合計金額 (送料と税金を含む)。
    [支払方法] | この注文における支払方法 (クレジット カード払いなど)。

    [注文の詳細] セクションは、次の注文情報を指定します。

    項目 | 操作
    [商品 ID] | 注文に含まれている各商品の ID。
    [バリエーション ID] | 注文に含まれている各商品のバリエーション ID。
    [名前] | 注文に含まれている各商品の名前。
    [説明] | 注文に含まれている各商品の説明。
    [カタログ] | 注文で購入された各商品が含まれているカタログ。
    [送付先] | 注文に含まれている各商品の送付先の名前。
    [送付方法] | 注文に含まれている各商品の送付方法の名前。
    [数量] | 各商品の注文数量。
    [単価] | 注文に含まれている各商品の単価。
    [品目の合計] | 注文に含まれている各商品の代金の総額。
    [メッセージ] | 注文に含まれている各商品に関連付けられたメッセージ。

    [住所] セクションは、宛先に関する次の注文情報を指定します。

    項目 | 操作
    [住所名] | 宛先の名前。
    [姓] | 宛先ユーザーの姓。
    [名] | 宛先ユーザーの下の名前。
    [住所欄] 1 | 住所の 1 行目。
    [住所欄] 2 | 住所の 2 行目。
    [市区町村] | 市区町村の名称。
    [地域] | 地域コード。
    [郵便番号] | 郵便番号。
    [国/地域コード] | 国/地域の国際標準化機構 (ISO) コード。都道府県/州コード、または、国/地域コード。

リストの注文を並べ替えるには

  1. [注文] の [注文状況] をクリックします。
  2. 注文のリストで、注文の並べ替えに使用する列見出しをクリックします。

列見出しをクリックすると、リストが動的に並べ替えられます。

関連項目

注文について

注文を削除する


注文を削除する

既存の注文は、Commerce Server ビジネス デスクの注文状況モジュールを使って削除できます。これは、たとえば、ユーザーが注文をキャンセルしたとき、誤って重複する注文を作成したとき、ユーザーの求める項目が入手できないときなどに役立ちます。

注文を削除するには

  1. [注文] の [注文状況] をクリックします。
  2. 削除する注文を注文結果リストから選択し、ツール バーの 削除 をクリックします。
  3. 削除の確認を求めるダイアログ ボックスで、[はい] をクリックして削除を確認します。

注文がサイトから削除されます。

注意

  • 削除した注文は元に戻せません。

注

  • サイトを更新するには、注文コードの発行モジュールを使う必要があります。注文コードを発行する方法の詳細については、「Web サイトで注文コードを発行する」を参照してください。

関連項目

注文管理のワークフロー

注文について

注文を検索する、表示する、並べ替える


ビジネス デスク プロファイル

Web サイトでのデータの収集を管理するには、プロファイル モジュールを使います。たとえば、ユーザーから収集するデータや、データ ウェアハウスにエクスポートするデータなどを定義することができます。プロファイル モジュールは、プロファイルを管理するとき、たとえば、ユーザー パスワードや組織の管理連絡先を変更するときにも使います。

ここでは、次のトピックについて説明します。

  • プロファイル管理のワークフロー ユーザー プロファイルと組織プロファイルの管理、プロファイル定義のデザイン、およびサイト用語の編集のワークフローについて説明します。
  • プロファイルについて ユーザー プロファイル、組織プロファイル、プロファイル定義、およびサイト用語について説明します。また、Commerce Server でそれらを扱う方法についても説明します。
  • ビジネス デスク プロファイルに関するヒント集 プロファイルの作成と管理に関する重要事項について説明します。
  • サイト用語グループを作成する 新しいサイト用語グループを追加する方法、およびサイト用語を整理する方法について説明します。
  • サイト用語を作成する 新しいサイト用語を追加する方法について説明します。
  • サイト用語に用語を追加する サイト用語に新しい用語 (値) を追加する方法について説明します。
  • プロファイル定義を作成する システム管理者が、ビジネス ニーズに応じた汎用プロファイル定義を作成する方法について説明します。
  • プロファイル定義にプロパティ グループを追加する プロファイル定義にプロパティ グループを追加してプロパティを整理する方法について説明します。
  • プロファイル定義にプロパティを追加する プロファイル定義に新しいプロパティを追加する方法について説明します。
  • サイト用語へマップするプロパティを追加する プロファイル定義にサイト用語を追加し、そのサイト用語を利用して、関連プロパティの値を選択する方法について説明します。
  • プロファイル定義に暗号化プロファイルを追加する 暗号化が可能な新しいプロファイル プロパティを追加する方法について説明します。
  • プロファイル定義を埋め込む プロファイル定義を他のプロファイル定義に埋め込むことによって、プロファイルの内容を関連付ける方法について説明します。
  • プロファイル定義への変更内容を Web サイトに発行する プロファイル定義への変更内容を Web サイトと同期させる方法について説明します。
  • ユーザー プロファイルを追加する Web サイトに新しいユーザー プロファイルを追加する方法について説明します。
  • 代理管理者を追加する 組織の代理管理者に任命されたユーザーのプロファイルを追加する方法について説明します。
  • ユーザー パスワードをリセットする 登録済みユーザーのパスワードをリセットする方法について説明します。
  • 組織プロファイルを追加する Web サイトに新しい組織プロファイルを追加する方法について説明します。
  • 汎用プロファイルを追加する Web サイトに新しい汎用プロファイルを追加する方法について説明します。
  • Active Directory グループにユーザーを追加する Active Directory グループに新しいユーザーを追加する方法について説明します。
  • Active Directory グループにグループを追加する Active Directory グループに Microsoft Active Directory グループを追加する方法について説明します。
  • サイト用語とサイト用語グループを管理する サイト用語とサイト用語グループを編集、整理、および削除する方法について説明します。また、サイト用語から用語 (値) を削除する方法についても説明します。
  • プロファイル定義を管理する プロファイル定義を検索、コピー、および編集する方法と、プロファイル プロパティを削除する方法について説明します。
  • ユーザー プロファイルを管理する ユーザー プロファイルを検索、編集、コピー、および削除する方法について説明します。
  • 組織プロファイルを管理する 組織プロファイルを検索、編集、コピー、および削除する方法について説明します。
  • 汎用プロファイルを管理する 汎用プロファイルを検索、編集、コピー、および削除する方法について説明します。
  • Active Directory グループからユーザーを削除する Microsoft Active Directory グループからユーザーや Active Directory グループを削除する方法について説明します。


プロファイル管理のワークフロー

次の図は、サイト用語の作成、プロファイル定義の更新、およびプロファイルの管理を行うためのシナリオの例を示しています。

  1. サイト用語エディタ モジュールで、サイト用語を追加します。サイト用語をプロファイル定義で使うと、好みの色など、そのプロパティに対するユーザー入力を制限できます。また、サイト用語を使った式を作成すると、サイトの特定のユーザー層のみを広告の対象として指定することができます。
  2. プロファイル定義デザイナ モジュールで、プロファイル定義に新しいサイト用語を追加します。追加したサイト用語は、ユーザー データなどの情報を収集するときに利用できます。
  3. プロファイル定義デザイナ モジュールで、プロファイル定義にプロパティを追加します。
  4. プロファイルの発行モジュールで、プロファイル定義の変更内容をサイトに発行します。
  5. ユーザー モジュールで、Web サイトにあるプロファイルを管理します。たとえば、新しいユーザー プロファイルを追加したり、既存のユーザー プロファイルに変更を加えたりできます。
  6. キャンペーンではキャンペーン式モジュールを使って (たとえば好みの色が右の項目と等しい紫)、対象化の条件と一致するプロファイルを持つ特定のユーザーを対象化する式を作成できます。


プロファイルについて

プロファイル定義、プロファイル、およびサイト用語を管理するには、プロファイル モジュールを使います。プロファイル モジュールは、SupplierActiveDirectory ソリューション サイトを基に作成したサイトの Active Directory グループのメンバシップを管理するときにも使います。データの収集に使うプロファイル定義にプロパティを追加していくと、広告や割引の配信先となるユーザーを絞り込むことができます。サイト用語を作成することによって、サイトでユーザーに入力を求める場面で、ユーザーに表示する選択肢を標準化および制限することができます。

プロファイル モジュールは、ユーザー、会社、ビジネス プロセスなどのビジネス関連項目について収集したデータを管理するためのモジュールです。ビジネス デスク プロファイルには、次のモジュールが用意されています。

  • プロファイル定義デザイナユーザー登録ページに新しい質問を追加するなど、Web サイトから収集する情報の内容を更新するには、プロファイル定義デザイナ モジュールを使います。
  • ユーザーユーザー プロファイル情報を作成、検索、および更新するには、ユーザー モジュールを使います。たとえば、ユーザーに新しいパスワードを割り当てることができます。
  • 組織組織プロファイルを作成、編集、および削除するには、組織モジュールを使います。組織プロファイルには、会社内にある特定の部門の連絡先など、組織に関する情報が格納されます。
  • プロファイル エディタ汎用プロファイルを更新するには、プロファイル エディタ モジュールを使います。汎用プロファイルには、汎用プロファイル定義が格納されます。汎用プロファイル定義とは、ユーザー プロファイル定義でも組織プロファイル定義でもないプロファイル定義のことで、"住所" プロファイル定義などがあります。
  • サイト用語エディタ特定の質問に対するユーザーの回答を標準化および制限するためのサイト用語を作成するには、サイト用語エディタ モジュールを使います。
  • プロファイルの発行プロファイル定義デザイナ モジュールで変更した内容を Web サイトに発行するには、"プロファイルの発行" モジュールを使います。
  • グループ マネージャ(SupplierActiveDirectory サイトでのみ利用可能)Active Directory グループのユーザー メンバシップに変更を加えることによって、Web サイトに対する特定のユーザー グループのアクセス レベルを制御するには、グループ マネージャ モジュールを使います。

注

  • ビジネス デスク アクセス許可は、[セキュリティ] カテゴリのアクセス許可モジュールで設定します。アクセス許可は、モジュール単位、プロファイル定義単位、またはプロファイル プロパティ単位で割り当てることができます。サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

ここでは、次のトピックについて説明します。

  • Web サイトの管理にプロファイルを使用する
  • プロファイルを収集および格納する
  • ユーザー プロファイル、組織プロファイル、および汎用プロファイル
  • プロファイルの構造
  • プロファイル システムの設計時に検討すべき事項
  • プロファイル システムの運用時に検討すべき事項
  • サイト用語
  • Active Directory グループ


Web サイトの管理にプロファイルを使う

プロファイルは、サイトを訪問するユーザーの情報、およびそれらのユーザーがサイトをどのように使うかに関する情報を提供するため、Web サイトの管理には必要不可欠です。プロファイルを使って、ユーザー データを分析したり、コンテンツをユーザーに合わせて対象化したりします。

プロファイルとは、ユーザー、会社、コンテキスト (日付と時刻) などのビジネス関連項目を定義する一連の特性です。次の図は、各種のプロファイルを示しています。

Commerce Server では、プロファイルを使ってビジネス関連項目に関する情報を格納します。たとえば、プロファイルを使って Web サイト上のユーザーからデータを収集します。Commerce Server ビジネス デスクを使って、ユーザー プロファイルや組織プロファイルにデータを直接入力することもできます。

ビジネス デスクを使うと、次のようなことができます。

  • サイトを訪問するユーザーについて収集する情報を定義する。
  • コンテンツをユーザーに合わせるために対象式を作成する。
  • 特定のユーザー グループを対象とした広告、割引、ダイレクト メールの各キャンペーンを作成する。
  • パーソナライズしたダイレクト メール メッセージをユーザーに配信する。


プロファイルを収集および格納する

プロファイル データは、Commerce Server サイトで 2 とおりの方法で収集されます。サイトを訪問するユーザーが自分自身に関するプロファイル データを提供する方法を、明示プロファイルと呼びます。たとえば、ユーザーがサイトで商品を購入するときには、通常、名前、住所、電話番号、および電子メール アドレスを入力します。この情報をユーザー プロファイルの生成に使います。

また、黙示プロファイルという方法でデータを収集することもできます。黙示プロファイルでは、ユーザー (匿名ユーザーと登録済みユーザー) が Web サイトで対話的な操作を実行すると、その操作内容が Web ログ ファイルに記録されます。たとえば、匿名ユーザーがクリックしたリンク、検索した商品、セッションの長さ、特定の Web ページで費やした時間などが記録されます。ユーザーが匿名で、名前や電子メール アドレスなどの情報がわからなくても、ユーザーがサイトをどのように利用したかという情報は貴重です。Commerce Server での cookie の詳細については、「認証の概念」を参照してください。

特定のユーザー セッションで収集されたすべての情報は、1 つのプロファイル、つまりプロファイル定義の 1 つのインスタンスに収集されます。

データ ウェアハウスにプロファイルを格納する方法については、Commerce Server 2002 ヘルプの次のトピックを参照してください。


ユーザー プロファイル、組織プロファイル、および汎用プロファイル

プロファイルの作成に使われるプロファイル定義は、プロファイルの種類を定義するものです。プロファイルの種類の定義を、次の表に示します。

プロファイル定義 | プロファイルの種類
ユーザー オブジェクト ユーザー オブジェクト プロファイル スキーマについては、「UserObject Profile Schema」を参照してください。 | ユーザー
組織 組織プロファイル スキーマについては、「Organization Profile Schema」を参照してください。 | 組織
その他すべてのプロファイル定義 ("住所" プロファイル定義など) アドレス プロファイル スキーマについては、「Address Profile Schema」を参照してください。 | 汎用

次の表は、各種のプロファイル (ユーザー プロファイル、組織プロファイル、汎用プロファイル)、プロファイルの基になるプロファイル定義、およびプロファイルの編集に使うビジネス デスクのプロファイル モジュールの対応を示しています。

プロファイルの種類 | プロファイル定義 | ビジネス デスクのモジュール
ユーザー プロファイル | ユーザー オブジェクト | ユーザー モジュール
組織プロファイル | 組織 | 組織モジュール
汎用プロファイル | その他すべてのプロファイル定義 ("住所" プロファイル定義など) | プロファイル エディタ モジュール

注

  • 既定のビジネス デスク スキーマ (アドレス、ユーザー オブジェクト、組織、および一括注文数) については、ビジネス デスクのプロファイル検索ページで表示列として使われるすべてのプロファイルのプロパティが次のファイルに含まれています。\inetpub\wwwroot\<ビジネス デスクのサイト名>\profiles\columns.xml
  • ここでは、次のトピックについて説明します。
    • ユーザー プロファイル
    • 組織プロファイル
    • 汎用プロファイル


ユーザー プロファイル

ユーザー プロファイルには、ユーザーについての情報が含まれています。サイトを訪れる匿名ユーザーと登録済みユーザーに関する情報を追加、削除、および変更するには、ユーザー モジュールを使います。たとえば、パスワードを忘れた登録済みユーザーのために、パスワードを変更することができます。ユーザーに関する情報を収集するには、"ユーザー オブジェクト" プロファイル定義を使います。プロファイル定義デザイナを使うと、サイトのニーズに合わせて、"ユーザー オブジェクト" プロファイル定義をカスタマイズできます。

Commerce Server がサポートするユーザーには次の 2 種類があります。

  • 匿名ユーザーサイトにサインアップしてアカウントを取得していないユーザー。この種類のユーザーに許可されるのは、保護なしのコンテンツへのアクセスだけです。サイトで匿名ユーザーを追跡する場合には、ユーザーに MSCSProfile チケットを発行できます。
  • 登録済みユーザーWeb サイトにサインアップしてアカウントを取得しているユーザーで、通常はログイン名とパスワードを持ちます。登録済みユーザーは、メンバシップを持つことで得られる特典を受けるために、さらに詳しい個人情報を提供する場合があります。たとえば、認証に成功すると、登録ユーザーには MSCSAuth チケットが発行され、セキュリティで保護されているコンテンツにアクセスできるようになります。


組織プロファイル

組織プロファイルには、組織についての情報が含まれています。組織は、次のいずれかです。

  • 部門
  • 課
  • 会社内のその他の業務単位
  • 取引先となる外部企業

組織は、ビジネス デスクを使って指定するエンティティで、ビジネス情報をやりとりするときの送付元または送付先になります。

たとえば、会社の各部門に対して研修部門が社内研修を実施する場合は、各部門の組織プロファイルを設定します。部門別の組織プロファイルを作成することには、次のような利点があります。

  • 研修部門は、Commerce Server を使用して、会社内部の顧客、つまり他の部門との関係を管理できる。
  • 教育部門は、Commerce Server カタログを科目 (商品) のリストとして使用できる。
  • 他の部門は、研修カタログに掲載されたコースを "購入" できる。
  • 研修部門は、組織プロファイルを使用して、研修を受ける部門の連絡先情報を管理したり、各部門に実施した研修の売り上げをレポートを実行して表示したりできる。

組織プロファイルの情報を追加、削除、および変更するには、組織モジュールを使います。組織に関する情報を収集するには、組織プロファイル定義を使います。プロファイル定義デザイナ モジュールを使うと、サイトのニーズに合わせて、組織プロファイル定義をカスタマイズできます。

サイトの開発者が Blank ソリューション サイトを使ってサイトを作成した場合、サイトには組織プロファイル定義が含まれています。次のような情報を指定するには、組織プロファイル定義を使います。

  • 担当者の氏名
  • 住所
  • 電話番号
  • 購買マネージャの氏名
  • 組織で利用できるカタログ セット

組織プロファイル定義は、人物 (管理連絡先や購買マネージャなど) を参照するプロパティを利用して設計されています。組織プロファイルの中で参照されている人物の情報は、その人物のユーザー プロファイルに含まれています。ユーザー モジュールを使うと、埋め込みユーザー プロファイルの情報を組織プロファイルから編集できます。ユーザー プロファイルの情報は、プロファイル エディタ モジュールを使用して直接編集することもできます。

関連項目

ユーザー プロファイルを追加する

組織プロファイルを追加する


汎用プロファイル

汎用プロファイルには、住所情報などの一般情報が含まれています。これは汎用プロファイル定義とともに作成されます。汎用プロファイル定義とは、"ユーザー オブジェクト" プロファイル定義または組織プロファイル定義以外のプロファイル定義のことです。サイトの開発者が Blank ソリューション サイトを使ってサイトを作成した場合、サイトには "住所" プロファイル定義などの汎用プロファイル定義がいくつか含まれています。

サイトについてのデータを収集する必要がある場合は、システム管理者がプロファイル定義を作成します。システム管理者が作成したプロファイル定義は、すべて汎用プロファイル定義であると見なすことができます。これは、システム管理者が、"ユーザー オブジェクト" プロファイル定義や組織プロファイル定義をコピーして新しいプロファイル定義を作成した場合でも同様です。汎用プロファイル定義を使ってデータを収集すると、データは汎用プロファイルに格納されるので、Commerce Server ビジネス デスクのプロファイル エディタ モジュールを使って編集することができます。

汎用プロファイルを更新するには、プロファイル エディタ モジュールを使います。プロファイル エディタを使ってプロファイルを編集できるようにするには、その基となる汎用プロファイル定義の中に、次の 2 つのカスタム属性を設定する必要があります。

  • sDisplayColumn は、プロパティをプロファイル エディタ モジュールの検索画面の列見出しとしてのプロパティを割り当てます。

    プロファイル定義に sDisplayColumn 属性がない場合は、Commerce Server ビジネス デスクではプロファイル エディタ モジュールの検索画面にプロファイルを表示できません。また、プロファイルの編集もできません。

  • sFriendlyName 属性は、プロファイル エディタ モジュールの [検索] 画面の一番左の列、および [プロファイルの編集 : <表示名>] 画面のタイトル バーに、どのプロパティを表示するかを制御します。カスタム属性、およびカスタム属性をプロファイル定義に追加する方法については、「プロファイル定義にプロパティを追加する」を参照してください。

特定のプロファイル定義にカスタム属性の sDisplayColumn と sFriendlyName を設定するときは、そのプロファイル定義で作成されたプロファイルを操作できるように、プロファイル エディタをカスタマイズします。プロファイル エディタをカスタマイズすると、システム リソースに余裕がある限り、処理の対象にするプロファイル定義の数を自由に増やすことができます。カスタム属性の sDisplayColumn と sFriendlyName を設定する方法については、「プロファイル定義にプロパティを追加する」を参照してください。


プロファイルの構造

プロファイルは、プロファイル定義の 1 つのインスタンスです。プロファイルには、プロファイル定義に従って収集されたデータが収められます。

各プロファイルは、1 つのプロファイル定義に基づいています。プロファイルにプロファイル定義を埋め込むと、相互に参照し合うプロファイルを作成できます。たとえば、"住所" プロファイル定義をユーザー オブジェクト プロファイル定義に追加すると、ユーザーの住所を収集できます。また、そのユーザーも住所を参照できるようになります。プロファイル定義を編集および管理するには、Commerce Server ビジネス デスクのプロファイル定義デザイナ モジュールを使います。

次の表は、サンプルの"ユーザー オブジェクト" プロファイル定義と、Sean Chai のデータが格納された、サンプルの"ユーザー オブジェクト" プロファイル定義の単一のインスタンスを示しています。

プロファイル定義 : ユーザー オブジェクト | プロファイル : Sean Chai
名 | Sean
姓 | Chai
市区町村 | Seattle
性別 | M
年齢 | 52
電子メール アドレス | seanchai@microsoft.com

Commerce Server のプロファイルは、次の要素で構成されます。

  • プロファイル定義 特定の種類のプロファイルについて収集するデータの詳細です。1 つのプロファイル定義に基づいて、複数のプロファイルを作成できます。たとえば、"ユーザー オブジェクト" プロファイル定義を使用して、サイトに登録されている個々のユーザーのプロファイルを作成できます。プロファイル定義を作成するには、システム管理者が、Commerce Server マネージャのプロファイル リソースを使用します。
  • プロファイル プロパティ ユーザーが Web サイトを訪問したときに収集するプロファイル データを指定する特性です。たとえば、"名" プロパティでは、ユーザーの名を収集することを指定します。プロファイル定義にプロファイル プロパティを追加するには、ビジネス デスクのプロファイル定義デザイナ モジュールを使用します。
  • プロファイル属性 プロファイル プロパティのデータ型 (たとえば、Number、文字列、Decimal、Site Term) など、プロパティに関する情報を指定する特性です。


プロファイル定義

プロファイル定義とは、ユーザー、会社、ビジネス プロセスなどのビジネス関連項目を定義する一連の特性です。サイト開発者がソリューション サイトを使ってサイトを構築した場合は、次の 5 つのサンプル プロファイル定義を利用できます。

  • 住所
  • 一括注文数 (注文書)
  • 組織
  • 対象とするコンテキスト
  • ユーザー オブジェクト

サイトについてのプロファイル定義を追加するには、システム管理者の協力が必要です。

たとえば、Music という新しいプロファイル定義を作成し、プロファイル プロパティとして "最初のコンサート"、"最後のコンサート"、"お気に入りの CD"、および未定のプロパティ 2 つを保存するとします。

システム管理者が、"ミュージック" という名前のプロファイル定義を新しく作成します。このプロファイル定義には、合わせて 5 つのプロパティを設定します。既知のプロパティが 3 つ、後で追加する予定のプロパティが 2 つです。さらに、プロファイル データベースを拡張します。具体的には、"ミュージック" プロファイル定義の 5 つのプロパティを使って収集するデータの格納に必要な列を追加します。

システム管理者がプロファイル定義を作成してプロファイル データベースを拡張したら、次の作業を行います。

  • プロファイル定義デザイナ モジュールを使って、最初の 3 つのプロパティを追加し、そのプロファイル プロパティの属性を変更します。
  • システム管理者が用意した、3 つのデータ メンバを持つ 3 つのプロファイル プロパティを、データベースの列にマップします。

注

  • システム管理者は、Commerce Server ビジネス デスクまたは Commerce Server マネージャを使用して、これらの作業を行うことができます。

後日、"ミュージック" プロファイル定義を使って収集する残り 2 つの情報が決まったら、プロファイル定義デザイナ モジュールを使って、残りの 2 つのプロパティを作成し、システム管理者が作成したデータベース列にマップします。

関連項目

プロファイル定義のキー

プロファイル定義にプロパティを追加する

サイト用語へマップするプロパティを追加する

プロファイル定義からプロパティを削除する

プロファイル定義を埋め込む


プロファイル定義のキー

プロファイル定義を有効なものにするには、プロファイル定義にキーを定義する必要があります。プロファイル定義のキーが、一意キー、主キー、結合キー、またはハッシュ キーのいずれであるかを特定するには、ビジネス デスクのプロファイル定義デザイナ モジュールの [詳細属性] セクション、または Commerce Server マネージャのプロファイル定義で選択されているプロパティの [詳細属性] セクションで、[キーの種類] プロパティを調べます。ここでは、次のキーを定義する方法について説明します。

  • 一意キー
  • 主キー
  • 結合キー
  • ハッシュ キー

一意キー

プロファイル定義のキーとして指定されているプロパティは、必ず "一意キー" 属性がオンになっています。キーとして指定できるのは、データ型が文字列または Number のプロパティだけです。プロファイル定義に定義するキーの数に制限はありませんが、パフォーマンスやメモリに対する影響を考慮して、最小限にとどめておくことをお勧めします。

プロファイル システムでは、プロファイル オブジェクトの管理操作のうち、主なもの (CreateProfile、GetProfile、GetProfileByKey、DeleteProfile、DeleteProfileByKey) はすべて、キーになっているメンバだけを処理します。一意キーとして指定されているプロパティの一意性は、プロファイル システムでは保証されません。プロパティの一意性は、基になるデータ ストア (リレーショナル データベースではテーブル、ディレクトリ ストアではクラス) のオブジェクトに課された制約によって、暗黙的に実現されます。

主キー

プロファイル定義には、一意のキー プロパティを 1 つだけ、主キーとして指定する必要があります。主キーとして指定するのは、プロファイル プロパティの中で、プロファイル オブジェクトのインスタンスを操作する際に最もよく使われるものにします。

主キーは、インジケータによって識別できます。赤色の "P" または緑色の "D" (2 重のキー (主キーおよび結合キー) の場合) が、ビジネス デスクのプロファイル定義デザイナ モジュール、および Commerce Server マネージャのプロファイル リソースのプロファイル定義で、プロパティ名の先頭に表示されます。

結合キー

プロファイル定義には、一意のキー プロパティを 1 つだけ、結合キーとして指定する必要があります。最適なパフォーマンスを得るためには、プロファイル定義で、主キーを結合キーとしても指定する必要があります。プロファイル オブジェクトを作成する際に、結合キー プロパティの値を指定しなかった場合、このメンバの値が、プロファイル システムによって自動的に生成されます。

結合キーは、インジケータによって識別できます。青色の "J" または緑色の "D" (2 重のキー (主キーおよび結合キー) の場合) が、ビジネス デスクのプロファイル定義デザイナ モジュール、および Commerce Server マネージャのプロファイル リソースのプロファイル定義で、プロパティ名の先頭に表示されます。プロファイル システムでは、結合キー プロパティを使って、複数のデータ ストアに格納されているプロファイル オブジェクトのフラグメントを結合します。結合キー プロパティの値は、すべてのデータ ストアに複製されます。

注

  • 結合キー プロパティは、コミットされ、基になるストアに格納された後は更新できません。

ハッシュ キー

プロファイル定義には、一意のキー プロパティを 1 つ、ハッシュ キーとして指定することができます。プロファイル集計層では、ハッシュ キー プロパティを使って、プロファイル オブジェクトをハッシュし、データ ソース内の一意のパーティションに格納します。したがって、プロファイル定義のインスタンスをデータ ソース内の複数のパーティションに格納するには、ハッシュ キー プロパティを指定する必要があります。このプロパティが存在しない場合、プロファイルのインスタンスはすべて既定のパーティションに格納されます。

プロファイル定義では、結合キーをハッシュ キーとして指定してください。これは、最適なパフォーマンスを得るには、主キー、結合キー、およびハッシュ キーに同じプロパティを指定する必要があるためです。

ハッシュ キーであるかどうかは、ビジネス デスクのプロファイル定義デザイナ モジュール、または Commerce Server マネージャのプロファイル リソースのプロファイル定義で、[詳細属性] セクションの [ハッシュ キー] チェック ボックスを調べます。

注

  • プロファイル オブジェクトがコミットされ、基になるストアに格納された後は、ハッシュ キー プロパティを更新することはできません。

重要

複数のパーティションに分割された ANSI SQL ストアの場合に限り、ハッシュ キー以外のキーと ProfileObject オブジェクトの GetInfo メソッドを使ってプロファイル オブジェクトを取得しようとすると、失敗する可能性があります。ただし、LDAPv3 準拠のストアについては失敗しません。

次の図では、[キーの種類] ボックスと [ハッシュ キー] チェック ボックスが赤色で強調表示されています。


プロファイル システムの設計時に検討すべき事項

ここでは、効果的なプロファイル定義を設計するために検討すべき次の事項について説明します。

  • キー
  • 推奨されるデータ型マッピング
  • その他の検討事項

キー

キー メンバを適切に選択すれば、プロファイル システムのパフォーマンスを最大限まで向上させることができます。プロファイル定義のキーを効率よく定義するには、次の質問に回答した後、下の表を見て、対応するガイドラインを参照してください。

  • 質問 1 オブジェクトがコミットされて基になるストアに格納された後でも、主キー プロパティを更新できるようにするか?
  • 質問 2 データをパーティション分割されたデータ ソースに格納するか?
ガイドライン | 質問 1 | 質問 2
1 つのプロパティを主キーと結合キーとして使う。 | いいえ | いいえ
1 つのプロパティを主キー、結合キー、およびハッシュ キーとして使う。データ ソースがパーティションに分割されている場合、このように構成することで、プロファイル システムの処理のパフォーマンスが向上します。 | いいえ | はい
1 つのプロパティを同時に主キーおよび結合キーとして使用しない。 | はい | いいえ
1 つのプロパティを同時に主キーおよび結合キーとして使用しない。結合キーおよびハッシュ キーとして使用する。このように構成すると、ハッシュ キー (または結合キー) 以外のキー プロパティを使ったプロファイル オブジェクトの処理のパフォーマンスが大幅に向上します。 | はい | はい

推奨されるデータ型マッピング

次の表は、プロファイル システムのデータ型と、SQL Server、Oracle、Active Directory、および Membership ディレクトリの各データ型との推奨されるマッピングの一覧です。

ANSI SQL ストア

プロファイル システムのデータ型 | SQL Server のデータ型 | Oracle のデータ型
Boolean | Smallint | Number
Number | Int | Number
Float | Float | Number
文字列/Profile/Password/Site Term | Nvarchar | Nvarchar2
Currency | Money | Number
Datetime/Date/Time | Datetime | Date
Binary | Varbinary | Raw
Long Text | Ntext | Nclob
Image | image | Blob

LDAPv3 ストア

プロファイル システムのデータ型 | Active Directory のデータ型 | Membership ディレクトリのデータ型
Boolean | Boolean | Integer
Number | Integer | Integer
文字列/Profile/Password/Site Term | 文字列 (Unicode) | UnicodeString
Currency | LargeInteger | Integer
Date/Time | 文字列 (GeneralizedTime) | GeneralizedTime
Binary | 文字列 (オクテット) | Binary
Long Text | 文字列 (Unicode) | UnicodeString
Image | 文字列 (オクテット) | Binary

注

  • ANSI SQL ストアの場合、プロファイル システムでサポートされる複数値は文字列データ型のものだけです。LDAPv3 ストアの場合は、Long Text と Image を除くすべてのデータ型について複数値がサポートされます。

その他の検討事項

次の表は、効果的なプロファイル定義を設計するために考慮しなければならない、その他の検討項目です。

設計上の検討事項 | 説明
WHERE 句に関する制限 | OLE DB Provider for Commerce Server を利用する場合は、クエリの WHERE 句によって渡されるプロパティが、すべて同一の基になるストアにマップされている必要があります。複数のデータ オブジェクトからデータを集計するプロファイル定義を設計する場合は、この制限に留意してください。
データのサイズに関する制限 | プロファイル システムで使われるデータ型のサイズ制限の詳細については、Commerce Server 2002 ヘルプの「プロファイル定義のコンポーネント」を参照してください。このトピックは、「Commerce Server の管理」、「プロファイル リソースの実行」、「プロファイル リソースについて」、「プロファイル定義」の順にたどっていくことで参照できます。
オブジェクト名に使用できる文字 | プロファイル定義のオブジェクト名に使用できる文字は、英数字とアンダースコア (_) だけです。たとえば、ProfileDefinitionName や ProfilePropertyName のようにします。


プロファイル システムの運用時に検討すべき事項

ここでは、プロファイル システムの運用時に検討すべき次の事項について説明します。

  • CSOLEDB ハンドル
  • プロパティへのアクセス
  • トランザクションのサポート
  • データ サイズの評価

CSOLEDB ハンドル

プロファイル システムや OLE DB Provider for Commerce Server へのハンドルは、常にアプリケーション スコープで格納する必要があります。このような処置が必要な理由は、CSOLEDB ハンドルの設計にあります。このハンドルは、オブジェクトをいったん Global.asa ファイルの中に作成し、そのオブジェクトをアプリケーション スコープで格納してから、各 ASP ページで使用します。CSOLEDB ハンドルは、複数のクエリを処理することによって発生する同期の問題を解決するものです。また、基になるストアへの接続のフォールト トレランスも管理して、クエリ処理の信頼性を高めます。

プロパティへのアクセス

プロファイル システムのプロファイル オブジェクトには、さまざまな方法でアクセスできます。ここでは、oUser という ProfileObject オブジェクトの GeneralInfo.user_id プロパティにアクセスする方法の例をいくつか紹介します。

  • Microsoft ActiveX Data Objects (ADO) の標準的な表記を使ってアクセスする場合は、次のように記述します。
    oUser.Fields.Item("GeneralInfo").Value.Item("user_id").ValueoUser.Fields.Item("GeneralInfo").Value.Item("user_id").Value
oUser.Fields("GeneralInfo").Value("user_id").ValueoUser.Fields("GeneralInfo").Value("user_id").Value
  • 拡張ドット表記を使ってアクセスする場合は、次のように記述します。
    oUser.Fields("GeneralInfo.user_id"oUser.Fields("GeneralInfo.user_id"
  • スマート ディスパッチ表記を使ってアクセスする場合は、次のように記述します。
    oUser.GeneralInfo.user_id

どの表記を使った場合でも、パフォーマンスに大きな違いはありません。

トランザクションのサポート

プロファイル システムでは、特に変更を加えない限り、複数のデータ ストアへの書き込み操作でトランザクション処理は行われません。つまり、トランザクション データ ストアに対する 2 フェーズ コミット プロトコルの実行はサポートされません。

ただし、プロファイル システムでは、トランザクション機能が部分的ながらサポートされています。データ集計層には、複数のデータ ストアを対象とする INSERT、UPDATE、および DELETE データ ストア操作が、トランザクションとしてまとめられます。したがって、これらの操作は、すべてのデータ ストア操作が正常に終了した後にのみ、トランザクションに対応しないデータ ストア (ディレクトリ ストアなど) にコミットされます。

トランザクション機能の一部をサポートするには、プロファイル定義に IsTransactioned というカスタム属性を作成して、この属性を "True" に設定します。この属性が存在しない場合や、"False" に設定されている場合は、この機能は無効になります。

データ サイズの評価

プロファイル システムでは、データ サイズの評価は行わず、基礎になるデータ ストアの機能に依存しています。


サンプルのプロファイル定義

Commerce Server ソリューション サイトには、サンプルのプロファイル定義が 5 つ用意されています。サイト開発者がソリューション サイトを使ってサイトを構築した場合は、次の表に示す 5 つのプロファイル定義と、そのプロパティを利用できます。

プロファイル定義 | プロパティ (データ型) | 説明
住所 | 住所 ID (文字列) | 住所の識別子
 | 組織 ID (文字列) | 組織プロファイルへの参照
 | 姓 (文字列) | ユーザーの姓
 | 名 (文字列) | ユーザーの名
 | 住所名 (文字列) | この住所の名前
 | 住所の種類 (Number) | 住所/送付先/請求先
 | 説明 (文字列) | この住所の説明
 | 住所欄 1 (文字列) | 住所の 1 行目
 | 住所欄 2 (文字列) | 住所の 2 行目
 | 市区町村 (文字列) | 市区町村名
 | 地域コード (文字列) | 州、地域、または都道府県コード
 | 都道府県名 (文字列) | 州、地域、または都道府県名
 | 郵便番号 (文字列) | 郵便番号
 | 国/地域コード (文字列) | 国/地域の国際標準化機構 (ISO) コード
 | 国/地域名 (文字列) | 国/地域名
 | 電話番号 (文字列) | この住所の電話番号
 | 内線番号 (文字列) | この住所の電話内線番号
 | ロケール ID (Number) | 住所フォームを表示するロケール
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
一括注文数 | 注文書 ID (文字列) | 一括注文を示すグローバル一意識別子 (GUID)
 | 組織 ID (文字列) | 組織プロファイルへの参照
 | 注文書番号 (文字列) | 一括注文書番号
 | 説明 (文字列) | 注文書の説明
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
組織 | 組織 ID (文字列) | 組織 ID
 | 名前 (文字列) | 組織の名前
 | 取引先番号 (文字列) | 取引先番号
 | 管理連絡先 (文字列) | 管理連絡先のユーザー オブジェクト プロファイルへの参照
 | 受取人 (文字列) | 受取人のユーザー オブジェクト プロファイルへの参照
 | 組織カタログ セット (文字列) | 組織カタログ セット
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 購買マネージャ (文字列) | 購入側組織の購買マネージャのユーザー ID
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
ユーザー オブジェクト | ユーザー ID (文字列) | ユーザー ID
 | ログオン名 (文字列) | ログオン名
 | ユーザー パスワード (Password) | ユーザー パスワード
 | 電子メール (文字列) | ユーザーの電子メール アドレス
 | ユーザーの種類 (Number) | ユーザーの種類
 | 敬称 (文字列) | ユーザーの敬称
 | 姓 (文字列) | ユーザーの姓
 | 名 (文字列) | ユーザーの名
 | 電話番号 (文字列) | ユーザーの電話番号
 | 内線番号 (文字列) | ユーザーの電話内線番号
 | FAX 番号 (文字列) | ユーザーの FAX 番号
 | FAX 内線番号 (文字列) | ユーザーの FAX 内線番号
 | 変更者 (文字列) | 最後にこのプロファイルを変更したユーザーの名前
 | 既定の言語 (Site Term) | 既定の言語
 | 組織 ID (文字列) | 組織 ID
 | アカウントの状態 (Number) | アカウントの状態
 | ユーザー カタログ セット (文字列) | ユーザー カタログ セット
 | 登録日 (Date/Time) | ユーザーが登録した日付
 | キャンペーン履歴 (文字列) | キャンペーン履歴
 | 取引先サービス ロール フラグ (Number) | 取引先サービス ロール
 | 最終変更日時 (Date/Time) | 最後にこのプロファイルが変更された日付
 | 作成日時 (Date/Time) | このプロファイルが作成された日付
対象とするコンテキスト | ページ グループ (文字列) | ページ グループの名前 (スポーツ ページなど)

"ユーザー オブジェクト" プロファイル定義には、未使用のデータ メンバとデータベース列がそれぞれ 5 つ用意されています。これらを利用して、"ユーザー オブジェクト" プロファイル定義にプロパティを 5 つまで追加し、マップすることができます。このとき、システム管理者に連絡してデータベースを拡張してもらう必要はありません。

関連項目

プロファイル定義にプロパティを追加する

サイト用語へマップするプロパティを追加する

プロファイル定義からプロパティを削除する

プロファイル定義を埋め込む


埋め込みプロファイル定義

あるプロファイル定義を別のプロファイル定義に埋め込むことによって、両者間の関連付けを作成できます。この関連付けは、相関関係のあるプロファイルを作成するために使用します。埋め込みプロファイル定義を作成すると、クライアントのリソース使用量を抑えることができます。埋め込めるのは、最高で 4 レベルまでです。サイト開発者は、4 レベルを超えるプロファイル定義を構成できます。

埋め込みプロファイル定義を使うと、次のことを実現できます。

  • 各プロファイル プロパティにプロファイル定義を 1 つ埋め込む。
  • 単一のプロファイル定義内で埋め込みプロファイル定義として定義するための、複数のプロパティを作成する。
  • Profile 型のプロパティを複数値プロパティとして定義し、そのプロパティを持つプロファイル データのインスタンスを複数個収集する。
  • Profile 型のプロパティを単一値プロパティとして定義し、そのプロパティを持つプロファイル データのインスタンスを 1 つだけ収集する。

たとえば、複数の値を持つ "従業員" というプロパティを組織プロファイル定義に追加して、"ユーザー オブジェクト" プロファイル定義を "従業員" プロパティの型参照として使うことができます。このしくみを利用して、組織のすべての従業員に関するプロファイル データを収集できます。

プロファイル プロパティの値が複数ある場合は、それぞれがセミコロン (;) で区切られ、マップ先のデータベース列に文字列として格納されます。

組織に含まれるユーザー プロファイルの検索や更新を実行できるようにするには、組織プロファイル定義で "従業員" プロパティに作成したユーザー プロファイルに組織名を追加します。

"ユーザー オブジェクト" プロファイル定義に、"住所" プロファイル定義を型参照とした "住所" という名前の単一値プロパティを追加すると、組織プロファイル定義の "従業員" プロパティに基づいて収集した一連のユーザー データそれぞれの住所を収集できます。プロファイルは、4 レベル内側のものまで編集することができます。

同じデータ型を持つ特定の類似プロパティを収集する場合、たとえば各ユーザーの送付先住所と請求先住所を収集する場合は、住所の種類ごとにプロファイル プロパティを作成します。このようにすると、ユーザー プロファイル内の住所にアクセスするときに、どの住所を編集するのかが簡単にわかります。

プロファイル定義を更新したら、"プロファイルの発行" モジュールを使って Web サイトのプロファイル定義の情報を更新します。その後は、Web サイトの設計者が getprofile メソッドまたは getprofilebykey メソッドで埋め込み "住所" プロファイル定義の主キーの値とスキーマの種類を指定すれば、該当する ProfileObject オブジェクトを取得できます。取得したオブジェクトを使って、"住所" プロファイル定義のプロパティを Web サイトに追加することができます。

"住所" プロファイル定義を Web サイトに追加したら、ユーザー プロファイルに関連付けられた住所プロファイルから収集し、ユーザー プロファイルの "住所" プロパティに含まれている主キーを使うことで、住所プロファイル データを、それに関連付けられたユーザー プロファイル データと共に表示できます。

"住所" プロファイル定義と "ユーザー オブジェクト" プロファイル定義を埋め込む

2 つのプロファイル間の関連付けを作成するには、プロファイル定義を埋め込みます。たとえば、"住所" プロファイル定義と "ユーザー オブジェクト" プロファイル定義との間に関連付けを作成することができます。"ユーザー オブジェクト" プロファイル定義を拡張して住所情報を収集する方法には、次の 2 つがあります。

  • "住所" プロファイル定義を "ユーザー オブジェクト" プロファイル定義に埋め込む。
  • "住所" プロファイル プロパティを "ユーザー オブジェクト" プロファイル定義に追加する。

次の表は、"住所" プロファイル定義を "ユーザー オブジェクト" プロファイル定義に埋め込むことによって作成した関連付けを示しています。Sean Chai というユーザーが住所情報を登録すると、Sean に関連付けられている "住所" プロファイルの主キーが、Sean のユーザー プロファイルの "請求先" プロパティの値になります (太字を参照)。

"ユーザー オブジェクト" プロファイル定義プロパティ | ユーザー プロファイルのプロパティの値 | "住所" プロファイル定義プロパティ | "住所" プロファイルのプロパティの値
名前 | SeanChai | 住所 ID | Address.SeanChai
請求先 (埋め込み "住所" プロファイル定義) | Address.SeanChai | 番地 | 1234 Main Street

"住所" プロファイル定義を "ユーザー オブジェクト" プロファイル定義に埋め込むと、Web サイトに住所情報を登録したユーザーのユーザー プロファイルと、ユーザーの住所プロファイルとの間に関連付けが作成されます。

1 つのプロファイル定義に複数のプロファイル定義を埋め込むことができます。このことを利用すると、各ユーザーの送付先住所と請求先住所など、複数の住所を簡単に収集できます。埋め込みプロファイル定義を利用し、さらにプロパティを複数値プロパティとして定義すれば、そのプロパティを使ってプロファイル データを複数個収集することもできます。

プロファイル定義の埋め込みについては、「プロファイル定義を埋め込む」を参照してください。

関連項目

プロファイル定義にプロパティを追加する

サイト用語へマップするプロパティを追加する

プロファイル定義からプロパティを削除する

プロファイル定義を埋め込む


プロファイル プロパティ

システム管理者にプロファイル定義を作成してもらったら、ビジネス デスクのプロファイル定義デザイナ モジュールを使って、そのプロファイル定義にプロファイル プロパティを追加できます。

プロファイルに収集される情報は、プロファイル プロパティによって決まります。たとえば、"ユーザー オブジェクト" プロファイル定義には、"名"、"姓"、"市町村"、"性別"、"年齢"、"電子メール アドレス" などのプロパティを含めることがます。関連性のある複数のプロファイル プロパティを 1 つのグループに整理することもできます。

次の図は、サンプルの "ユーザー オブジェクト" プロファイル定義の各要素を示しています。

プロファイル プロパティは、次のデータ型で作成できます。

注

  • Commerce Server 2002 でサポートされるのは、サロゲートを除く Unicode です。
プロパティのデータ型 | プロパティの説明
文字列 | 最大 4,000 文字を保存できます。文字列型のプロパティは、文字列型のデータ メンバにマップされます。
Long String (長い文字列) | 最大 2 の 17 乗 (217) の文字を保存できます。Long String 型のプロパティは、文字列型のデータ メンバにマップされます。
Number (数値) | 整数を保存できます。保存できる最大の長さは、データ ストアによって決まります。Number 型のプロパティは、Number 型のデータ メンバにマップされます。
Decimal (10 進) | 浮動小数点数を保存できます。保存できる最大の長さは、データ ストアによって決まります。Decimal 型のプロパティは、Number 型のデータ メンバにマップされます。
Boolean (ブール値) | 2 つの値 (True/False、yes/no、1/0 など) のどちらか一方を保存できます。Boolean 型のプロパティは、Boolean 型のデータ メンバにマップされます。
Binary (バイナリ) | 最大 4 KB のバイナリ データを保存できます。Binary 型のプロパティは、Binary 型のデータ メンバにマップされます。
Long Binary (ロング バイナリ) | 最大 128 KB のコンテンツ (スプレッドシート、ドキュメント、グラフィックス、サウンドなど) を保存できます。Long Binary 型のプロパティは、Binary 型のデータ メンバにマップされます。
Date/Time (日付/時刻) | 日付と時刻を組み合わせた値を保存できます。使用する形式と最大の長さは、データ ストアによって決まります。Date/Time 型のプロパティは、Date/Time 型のデータ メンバにマップされます。
Date (日付) | 1950/1/1 から 2049/12/31 までの日付を保存できます。使用する形式と最大の長さは、データ ストアによって決まります。Date 型のプロパティは、Date/Time 型のデータ メンバにマップされます。
Time (時刻) | 時、分、秒、ミリ秒の値を保存できます。使用する形式と最大の長さは、データ ストアによって決まります。Time 型のプロパティは、Date/Time 型のデータ メンバにマップされます。
Currency (通貨) | 通貨の形式の数値を使用できます。使用する通貨の形式と最大の長さは、データ ストアによって決まります。Currency 型のプロパティは、Currency 型のデータ メンバにマップされます。
Password (パスワード) | テキストを使用できます。プロファイル リソースでは、文字列型と同じように扱われます。Commerce Server ビジネス デスクでは、Password 型のプロパティに保存されている値はアスタリスク (*) で表示されます。Password 型データの消失を防ぐには、常にパスワード全体を書き換えるようにします。Password 型のプロパティは、文字列型のデータ メンバにマップされます。最大 255 文字の Unicode 文字を保存できます。
Site Term (サイト用語) Site Term 型のプロパティは、サイト用語に関連付けられます。Site Term 型のプロパティは、単一値にすることも、複数値にすることもできます。
  • 単一値の Site Term 型プロパティを使うと、ユーザーが一度に選択できる値は 1 つだけになります。
  • 複数値の Site Term 型プロパティを使うと、ユーザーは複数の値を選択できます。

たとえば、作成するアプリケーションでは、Web サイトのユーザーがサイト用語の値を複数選択できるようにすることもできます。ユーザーは、サイト用語の一覧で、Ctrl キーを押しながら項目をクリックします。

このプロパティに格納される値は、サイト用語に関連付けられた用語の一覧にあり、かつ有効な値でなければなりません。Site Term 型のプロパティは、文字列型のデータ メンバにマップされます。保存できる最大の長さは、Unicode 文字で 255 文字です。Site Term 型プロパティに複数の値がある場合、それぞれの値はセミコロン (;) で区切られ、文字列として格納されます。
Profile (プロファイル) プロファイル定義に関連付けられます。埋め込みプロファイル定義が含まれているプロパティは、単一値にすることも、複数値にすることもできます。このプロパティに格納される値は、関連付けられたプロファイルの特定のインスタンスで、主キーになっている必要があります。

埋め込みプロファイル定義が含まれているプロパティを単一値にする場合は、その埋め込みプロファイル定義に基づいたプロファイルを 1 つだけ作成できます。埋め込みプロファイル定義が含まれているプロパティを複数値にする場合は、システム リソースに余裕がある限り、その埋め込みプロファイル定義に基づいたプロファイルをいくつでも作成できます。

Profile 型のプロパティは文字列型のデータ メンバにマップされ、保存できる最大の長さは Unicode 文字で 255 文字です。プロファイル定義の中には、他のプロファイル定義をいくつでも埋め込むことができます。最上位レベルも含めて、コンテナ プロファイルから 4 レベルまでの埋め込みプロファイルを編集するには、プロファイル エディタ モジュールを使います。


プロファイルの属性

各プロファイル プロパティには、属性があります。属性は、プロパティに関する情報を提供します。たとえば、名プロパティには、名前、表示名、説明、型の各属性があります。

属性で提供される情報には、プロファイル プロパティのデータ型 (Number、テキスト、Decimal、Site Term など) や、プロパティが単一の値 (たとえば、"名" プロパティにはユーザーごとに 1 つの値しか指定できない) か複数値かなどがあります。

また、属性には、次の 2 つの特殊な型があります。

  • プロファイルのカスタム属性
  • プロファイルの詳細属性

プロファイルのカスタム属性

プロファイルのカスタム属性は、アプリケーション固有の属性です。プロパティにはカスタム属性を定義できます。たとえば、Web サイト ページ上でのプロパティの表示方法を制御するカスタム属性を作成できます。プロパティにカスタム プロファイル属性を追加する方法については、「プロファイル プロパティにカスタム属性を追加する」を参照してください。

プロファイル エディタ モジュールの検索画面やプロファイルの編集画面で汎用プロファイルがどのように表示されるかは、カスタム属性によって決まります。

新しく作成した汎用プロファイルには、sDisplayColumn と sFriendlyName のカスタム属性を必ず設定します。これらの属性が定義されていないと [検索開始] ボタンが利用できるようにならず、それらのプロファイルのインスタンスを検索できなくなります。

  • sDisplayColumn プロパティの表示名です。検索画面に列名として表示されます。

    sDisplayColumn カスタム属性を設定したプロパティは、検索画面の左から右へ向かって、[プロファイル : <プロファイル定義>] 画面の [プロパティ] 一覧と同じ順序で表示されます。sDisplayColumn カスタム属性の値によって、各プロパティの相対的な列幅が決まります。たとえば、列幅の値が先頭のプロパティで 2、2 番目のプロパティで 4 になっている場合、2 番目のプロパティの列幅は、先頭のプロパティの列幅の 2 倍になります。

    注

    • この属性では、大文字と小文字が区別されます。また、列幅の最大値は 100 です。
    • sDisplayColumn カスタム属性が定義されているプロパティだけがプロファイルに含まれる場合、特に指定しない限り、プロファイル表示列はそのプロパティの昇順で格納されます。
    • この属性を持つプロパティは、結合キーや 2 重のキーとして定義することはできません。
    • この属性を持つプロパティは、Site Term 型参照や Profile 型参照にすることはできません。また、データ メンバにマップする必要があります。
  • sFriendlyName プロパティの表示名です。[プロファイルの更新 : <プロファイルの表示名>] 画面のタイトル バーに表示されます。

    このプロパティの表示名は、[検索] 画面の左端列の名前としても使われます。

    注

    • この属性では、大文字と小文字が区別されます。
    • この属性を持つプロパティは、結合キーや 2 重のキーとして定義することはできません。
    • この属性を持つプロパティは、Site Term 型参照や Profile 型参照にすることはできません。また、データ メンバにマップする必要があります。

プロファイルの詳細属性

アプリケーションによるプロファイル プロパティの使い方を変更するには、プロファイルの詳細属性を使います。

次の表は、詳細属性とその用途を示しています。

属性 | 目的
[アクティブ] プロファイル システムでこのプロパティを利用できるかどうかを示します。非アクティブなプロパティはビジネス デスクに表示されません。

注

  • プロパティを "アクティブ" に設定できるのは、プロパティがデータにマップされている場合のみです。
[データへのマップ] | プロパティがマップするデータ メンバです。特定のプロファイル定義を基にしたプロファイルを追加、削除、および編集できるのは、基となったプロファイル定義の中に、マップされたプロパティが少なくとも 1 つ含まれている場合のみです。
[キーの種類] 4 種類のキーを割り当てることができます。
  • 一意キーこのプロパティの値はすべてのメンバに対して一意になります。一意キーとして指定した属性は、SQL Server データベースの一意のフィールド、または Lightweight Directory Access Protocol (LDAP) ソースの一意の属性にマップします。

    一意キー が、一意キーを割り当てたプロパティの右側に表示されます。

  • 主キーこのプロパティの値はすべてのメンバに対して一意になります。主キーとして指定された属性は、SQL Server データベースのプライマリ フィールド、または LDAP ソースの一意の属性にマップします。主キーは、埋め込みプロファイル定義を使って作成されたプロファイルの関連付けに使用します。

    主キー が、主キーを割り当てたプロパティの左側に表示されます。

  • 結合キープロファイル サービスの共通のプロパティによって、複数のデータ ストアを関連付けます。データを収集するための結合キーとして定義したプロパティを編集するには、結合キーのデータが含まれるデータベース列を削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

    結合キー が、結合キーを割り当てたプロパティの左側に表示されます。

  • 2 重のキー (主キーと結合キー)このプロパティの値は一意になります。また、このプロパティを他のデータ ストアにあるプロパティに関連付けます。

    2 重のキー (主キーと結合キー) が、2 重のキーを割り当てたプロパティの左側に表示されます。

[必須] 編集中のプロパティは必須のプロパティになります。

注

  • プロパティを "必須" に設定した場合、"アクティブ" にも設定する必要があります。
[データウェアハウスにエクスポート] | プロパティがデータ ウェアハウスにインポートされるかどうかを指定します。
[キャッシュ読み込みの遅延] | このプロパティが、プロファイルを取得したときには読み込まれず、このプロパティそのものに対してアクセスが行われたときに読み込まれるように指定します。
[複数値] 編集中のプロパティと関連性のある複数の値を取り込めるようにします。

注

  • プロパティを "複数値" に設定する場合、"検索可能" には設定できません。
[検索可能] 基になるデータ ストア内でこのプロパティにインデックスを付けて、検索時に [検索条件] の項目として利用できるようにします。検索可能な属性は、SQL Server データベースまたは LDAP ソースのインデックス付きフィールドにマップします。

注

  • プロパティを "検索可能" に設定する場合、"複数値" には設定できません。
[RDN] | ディレクトリ ストアの相対識別名 (RDN) を入力します。プロパティにこの属性を設定した場合、このメンバは、基になるデータ ストア内の Lightweight Directory Access Protocol (LDAP) クラスの RDN 属性にマップされます。これは、OLE DB Provider for Microsoft Commerce Server (OLE DB) ソースなどのデータ ソースには適用されません。
[ハッシュ キー] | 複数のパーティションにプロファイルのインスタンスを配布するときに、このプロパティが使われます。このプロファイルを取得するには、このキーに対するクエリを実行する必要があります。

ハッシュ キーを使ってプロファイル定義データを複数のデータベースに格納する

ハッシュ キーは、物理的には複数のデータベースに格納されていますが、1 つのソース (この場合はプロファイル定義) からのデータを一元管理するために使われる一意のキーです。データ ソースは、ハッシュ キーを使って、複数のデータベースに及ぶデータをパーティションに分割します。プロファイル定義でハッシュ キーにするプロファイル プロパティを選択するには、プロファイル リソース (または Commerce Server ビジネス デスクのプロファイル定義デザイナ モジュール) を使います。

プロファイル プロパティをハッシュ キーとして定義しない場合は、プロファイル定義で収集されたすべてのデータは、既定のパーティションに割り当てられているデータベースに格納されます。一度ハッシュ キーを定義すると、後で再定義することはできません。ハッシュ キーの定義については、「プロファイル定義にプロパティを追加する」を参照してください。

関連項目

プロファイル定義にプロパティを追加する

プロファイル プロパティにカスタム属性を追加する


サイト用語

Site Term は、ビジネス デスクのユーザーが作成するデータ型です。サイト用語はサイトに関連する特定の値の一覧であり、個々の値のことを用語といいます。サイト用語を使って、この値のリストを属性としてプロパティに割り当てます。

次の 2 種類のサイト用語を作成できます。

  • 単一値のサイト用語 サイトを訪問したユーザーは、サイト用語の一覧から値を 1 つだけ選択できます。
  • 複数の値を持つサイト用語 サイトを訪問したユーザーは、[サイト用語] ボックスの一覧で複数の値を選択できます。複数値のサイト用語を作成するのは、たとえば、趣味や行ってみたいさまざまな観光地などについて、ユーザーが複数回答できるようにする場合です。

    複数値のサイト用語を作成しておくと、ユーザーは同種の項目 (趣味など) を複数選択できるようになるので、同じ質問を何回も表示する必要がなくなります。さらに、ユーザーがパリとメキシコ シティの両方に行ってみたいと思っている場合などには、ユーザーから正確な情報を収集することができます。1 つのサイト用語に対してユーザーが複数の値を選択した場合、それらの値は、セミコロン (;) で区切られ、文字列として格納されます。

たとえば、好きな色のサイト用語を作成する場合、ユーザーが選択できる色の一覧を用意します。この "好きな色" サイト用語では、色の選択肢はサイト用語の作成者があらかじめ定義しておいた色に制限されます。そのため、紫系統の色 (モーブ、バイオレット、ラベンダーなど) が好きなユーザーは、選択肢に紫系統の色が "紫" しかない場合は、"紫" を選択することになります。

サイト用語を作成および管理するには、サイト用語エディタ モジュールを使います。

サイト用語は、次の目的で使います。

  • サイトでユーザーに入力を要求するときに、選択肢を標準化および制限する。
  • ユーザーの入力ミスを避ける。
  • 値どうし (商品の色とユーザーの好きな色など) を対応付ける。これにより、特定のユーザーにコンテンツを配信できます。たとえば、商品の色のプロパティが "紫" の場合、このプロパティを "好きな色" サイト用語に対応付ければ、紫色の商品を選択したユーザーに広告を配信できます。

Web サイトでは、サイト用語はボックスの一覧の項目として表示されます。

関連項目

サイト用語グループ

サンプルのサイト用語

サイト用語グループを作成する

サイト用語を作成する


サイト用語グループ

サイト用語エディタでサイト用語を整理するには、サイト用語グループを使います。たとえば、50 のサイト用語があり、そのうち 10 個を使ってユーザーの好みの商品に関する情報を収集し、20 個を使ってユーザーのライフスタイルに関する情報を収集し、20 個を使って現在のイベントに対するユーザーの意見に関する情報を収集するとします。この場合、商品嗜好のサイト用語を "Products (商品)" というサイト用語グループに、ライフスタイルのサイト用語を "Lifestyle (ライフスタイル)" というサイト用語グループに、意見のサイト用語を "Opinions (意見)" というサイト用語グループに、それぞれまとめることができます。

関連項目

サイト用語

サンプルのサイト用語

サイト用語グループを作成する

サイト用語を作成する


サンプルのサイト用語

Commerce Server ソリューション サイトには、サンプルのサイト用語が用意されています。サイト開発者がソリューション サイトを使って Web サイトを構築した場合は、次に示すサイト用語グループ、サイト用語、およびその用語 (値) を利用できます。

サイト用語グループ | サイト用語 | 用語
User Site Terms (ユーザー サイト用語) | アカウントの状態 | アクティブなアカウント 非アクティブなアカウント
 | ユーザー ロール | 標準ユーザー 管理者
 | ユーザーの種類 | 匿名ユーザー 登録済みユーザー
 | 言語 | 次に例を示します。 英語 フランス語 ドイツ語 日本語 スペイン語
Calendar Site Terms (カレンダー サイト用語) | 曜日 | 日曜日 月曜日 火曜日 水曜日 木曜日 金曜日 土曜日
 | 月 | 1 月 2 月 3 月 4 月 5 月 6 月 7 月 8 月 9 月 10 月 11 月 12 月

関連項目

サイト用語グループを作成する

サイト用語を作成する


Active Directory グループ

Active Directory グループのユーザー メンバシップを管理するには、グループ マネージャ モジュールを使います。グループ マネージャ モジュールを使うには、次の要件を満たす必要があります。

  • システム管理者が、サイトとビジネス デスクを SupplierActiveDirectory ソリューション サイトに基づいて構築している。
  • "ユーザー オブジェクト" プロファイル定義のプロパティが、少なくとも 1 つは Active Directory データ ソースにマップされている。
  • システム管理者が、Active Directory グループを作成し、そのグループにサイトへのアクセス権限を割り当てている。

Active Directory グループのユーザーを追加または削除するには、グループ マネージャ モジュールを使います。ユーザーを Active Directory のグループに追加すると、そのユーザーには、Active Directory のグループに指定されているアクセス レベルが適用されます。

ここでは、次のトピックについて説明します。

Active Directory グループを使ってサイトへのユーザー アクセスを管理する

関連項目

Active Directory グループにユーザーを追加する

Active Directory グループにグループを追加する


Active Directory グループを使ってサイトへのユーザー アクセスを管理する

Commerce Server ビジネス デスクには、Active Directory グループのユーザー メンバシップを管理するためのグループ マネージャ モジュールが用意されています。グループ マネージャ モジュールを使うには、次の要件を満たす必要があります。

  • サイトとビジネス デスクが、SupplierActiveDirectory ソリューション サイトを基に構築されている。
  • "ユーザー オブジェクト" プロファイル定義のプロパティが、少なくとも 1 つは Active Directory データ ソースにマップされている。
  • Commerce Server マネージャの Active Directory グループが、Windows の "Active Directory ユーザーとグループ" スナップインを使って作成されている。

サイトのアクセス権を割り当てるための Active Directory グループを作成するには、"Active Directory ユーザーとグループ" スナップインを使います。ビジネス マネージャが、Active Directory グループのユーザーを追加または削除する場合は、ビジネス デスクのグループ マネージャ モジュールを使います。ユーザーを Active Directory のグループに追加すると、そのユーザーには、Active Directory のグループに指定されているアクセス レベルが適用されます。

Active Directory グループを作成する方法については、Microsoft Windows ヘルプを参照してください。

関連項目

Active Directory グループにユーザーを追加する

Active Directory グループにグループを追加する


ビジネス デスク プロファイルに関するヒント集

ここでは、プロファイルを効率よく作成および管理するためのヒントを紹介します。

  • プロファイル、プロファイル定義、サイト用語、またはプロファイル プロパティへのアクセス許可を設定するには、セキュリティ カテゴリのアクセス許可モジュールを使います。
  • プロファイル プロパティを作成するときは、必ず Unicode 文字列を使います。Commerce Server 2002 では、プロファイル プロパティに Unicode 以外の文字列を使うことはできません。
  • 既存の汎用プロファイル定義に基づいて新しいプロファイルを作成するには、プロファイル定義の中に、次の 2 種類のカスタム属性が含まれている必要があります。
    • sDisplayColumn 属性は、プロファイル エディタ モジュールの検索画面の列見出しとしてのプロパティを割り当てます。プロファイル定義に sDisplayColumn 属性がない場合は、Commerce Server ビジネス デスクではプロファイル エディタ モジュールの検索画面に、プロファイル定義と共に作成されたプロファイルを表示できません。また、プロファイルの編集もできません。
    • sFriendlyName 属性は、プロファイル エディタ モジュールの検索画面の一番左の列、および [プロファイルの編集 : <表示名>] 画面のタイトル バーに、どのプロパティを表示するかを制御します。カスタム属性、およびカスタム属性をプロファイル定義に追加する方法については、「プロファイル定義にプロパティを追加する」を参照してください。
  • ピーク時以外にプロファイルの変更内容を Web サイトに発行します。ピーク時にプロファイルの変更内容を Web サイトに発行すると、サイトに障害が発生する可能性があります。


サイト用語グループを作成する

関連するサイト用語を整理するサイト用語グループを作成するには、サイト用語エディタ モジュールを使います。たとえば、趣味についてのサイト用語を作成する場合は、"創作" や "旅行" などの趣味のカテゴリごとにサイト用語グループを作成します。次に、それぞれのカテゴリ グループの中で、そのカテゴリに属する趣味のセグメントごとにサイト用語を作成します。たとえば、次のようなサイト用語グループを作成します。

創作活動に関するサイト用語グループ。この中には、次のようなサイト用語を入れます。

  • 工芸 (手芸、人形製作、スタンピング)
  • アート (ペン画、筆画、彫刻)
  • 演劇 (演技、製作)
  • 音楽 (クラシック、ジャズ、ロック)

旅行に関するサイト用語グループ。この中には、次のようなサイト用語を入れます。

  • 船旅 (カリブ海、ヨーロッパ、中国、アラスカ)
  • 観光地巡り (ロンドン、パリ、メキシコ シティ、香港、ワシントン D.C.)
  • 体験旅行 (川下り、登山、自転車旅行)

サイト用語グループは、[サイト用語エディタ] 画面の [サイト用語の構成] ボックスの一覧に表示されます。グループ名の左側には、矢印が表示されます。矢印をクリックすると、サイト用語の一覧が展開します。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語グループを作成するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、[追加] をクリックします。
    注
    • サイト用語グループの階層構造を作成すると、サイト用語を整理することができます。サイト用語グループの階層構造を作成するには、新しいサイト用語グループの追加先となるサイト用語グループを選択して、[追加] をクリックします。
    • サイト用語グループを選択してグループを新しく作成すると、作成したグループは、選択したサイト用語グループの下の階層に配置されます。サイト用語グループの選択を解除して、新しいグループの追加を中止する場合は、ツール バーの 戻る をクリックし、[プロファイル] の [サイト用語エディタ] をクリックしてください。
  3. [追加] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  4. [サイト用語エディタ] 画面の [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいサイト用語グループのプログラム上の定義名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 新しいサイト用語グループの表示名を入力します。表示名は最大 128 文字まで入力できます。
    [説明] | 新しいサイト用語グループの説明を入力します。
  5. 新しいサイト用語グループを適用して [サイト用語の構成] ボックスの一覧に表示するには、[適用] をクリックします。

    注

    • サイト用語グループは、必要な数だけいくつでも追加できます。サイト用語グループをさらに追加するには、[追加] をクリックします。
  6. 新しいサイト用語グループを保存してメインの [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

サイト用語グループが保存されます。これで、このサイト用語グループを使ってサイト用語を整理できるようになります。

関連項目

プロファイル管理のワークフロー

サイト用語を作成する

サイト用語を編集する

サイト用語に用語を追加する


サイト用語を作成する

サイト用語を作成して、サイト用語に用語 (値) を追加するには、サイト用語エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語を追加するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、サイト用語の追加先となるグループをクリックし、[追加] をクリックします。
  3. [追加] ダイアログ ボックスで、[サイト用語の新規追加] をクリックし、[OK] をクリックします。
  4. [サイト用語エディタ] 画面の [サイト用語の属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいサイト用語のプログラム上の定義名 (Favorite_Color など) を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 新しいサイト用語の名前を入力します。ここで入力した名前が、Web サイトで表示されます。たとえば、「好きな色」と入力します。表示名は最大 128 文字まで入力できます。
    [説明] | 新しいサイト用語の内容を示す説明を入力します。
  5. 新しいサイト用語を適用して [サイト用語の構成] ボックスの一覧に表示するには、[適用] をクリックします。

    注

    • サイト用語は、必要な数だけいくつでも追加できます。サイト用語をさらに追加するには、[追加] をクリックします。
  6. 新しいサイト用語を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

サイト用語が保存されます。これで、新しいサイト用語に用語 (値) を追加できます。サイト用語に用語を追加する方法については、「サイト用語に用語を追加する」を参照してください。

関連項目

サイト用語グループを作成する

サイト用語へマップするプロパティを追加する

サイト用語に用語を追加する


サイト用語に用語を追加する

サイト用語に用語 (値) を追加するには、サイト用語エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語に用語を追加するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、用語の追加先となるサイト用語が含まれているサイト用語グループを展開し、目的のサイト用語をクリックします。
  3. [サイト用語エディタ] 画面の [用語] セクションで、次の操作を行います。
    項目 | 操作
    [用語の名前] | [新規] をクリックし、新しい用語の名前を入力します。用語とは、サイト用語の値です。たとえば、Favorite_Color (好きな色) サイト用語の場合、用語として「Red」、「Blue」、「Green」、「Yellow」などを入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | 新しい用語の名前を入力します。ここで入力した名前が、Web サイトでユーザーに表示されます。表示名は最大 128 文字まで入力できます。
  4. 新しい用語をサイト用語に追加して、用語の一覧に表示するには、[確認] をクリックします。

    注

    • 新しいサイト用語には、必要なだけ用語を追加できます。用語を追加するには、[新規] をクリックします。
  5. 新しい用語を追加したサイト用語を適用するには、[適用] をクリックします。
  6. 新しい用語を追加したサイト用語を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したサイト用語が保存されます。これで、プロファイル定義にサイト用語を追加できます。

サイト用語を作成したら、プロファイル定義を設定して、そこにサイト用語を組み込むことができます。たとえば、Favorite_Color (好きな色) サイト用語を作成して、"ユーザー オブジェクト" プロファイル定義に追加できます。ユーザーが Web サイトの "好きな色" という質問に答えるときには、Favorite_Color サイト用語で設定した値が並べられた一覧から、好きな色を選択することになります。

関連項目

サイト用語へマップするプロパティを追加する

ビジネス デスク セキュリティについて


プロファイル定義を作成する

システム管理者は、ビジネス ニーズに応じて、Commerce Server マネージャのプロファイル リソースを使って汎用プロファイル定義を作成できます。汎用プロファイル定義は、ユーザー プロファイル定義および組織プロファイル定義以外のプロファイル定義のことで、"住所" プロファイル定義などがあります。汎用プロファイル定義を使って作成したプロファイルを編集および削除するには、プロファイル エディタ モジュールを使います。

システム管理者は、プロファイル定義を作成する前に、次の作業を行う必要があります。

  1. プロファイル データを格納する場所を決定する。
  2. データベースに列を追加するなどして、データを格納するための領域を確保する。
  3. プロファイル定義を使って収集される各データを、そのデータが格納される場所とマップする (関連付ける) ために使用するデータ メンバを作成する。

Commerce Server ソリューション サイトには、次のサンプル プロファイル定義が用意されています。

  • 住所
  • 一括注文数 (注文書)
  • 組織
  • 対象とするコンテキスト
  • ユーザー オブジェクト

"ユーザー オブジェクト" プロファイル定義には、未使用のデータ メンバとデータベース列がそれぞれ 5 つ用意されています。これらを利用して、"ユーザー オブジェクト" プロファイル定義にプロパティを 5 つまで追加し、マップすることができます。このとき、システム管理者に連絡してデータベースを拡張してもらう必要はありません。各プロファイル定義に用意されているプロパティの一覧については、「サンプルのプロファイル定義」を参照してください。

関連項目

プロファイル リソースでプロファイル定義を作成する


プロファイル定義にプロパティ グループを追加する

プロファイル定義にプロパティ グループを追加するには、プロファイル定義デザイナ モジュールを使います。プロパティ グループは、プロファイル定義デザイナでプロファイル プロパティを整理するためのグループです。たとえば、Web サイトを訪れているユーザーの商品嗜好、ライフスタイル、現在のイベントに対する意見などのデータを収集するために、"ユーザー オブジェクト" プロファイル定義に 50 個のプロパティを追加するとします。この場合は、"Product (商品)"、"Lifestyle (ライフスタイル)"、"Opinion (意見)" などのプロパティ グループを作成して 50 個のプロパティを整理すれば、[プロファイル定義デザイナ] 画面のプロパティの一覧で、プロパティを簡単に見つけることができます。

プロパティ グループは、プロファイル定義デザイナ画面の [プロパティ] 一覧に表示されます。グループ名の左側には、矢印が表示されます。矢印をクリックすると、プロパティの一覧が展開します。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

新しいプロパティ グループを追加するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、新しいプロパティ グループを追加するプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] 一覧で、[追加] をクリックします。

    注

    • プロパティ グループの階層構造を作成して、プロファイルのプロパティを整理することができます。プロパティ グループの階層構造を作成するには、新しいグループの追加先となるプロパティ グループを選択して、[追加] をクリックします。
    • プロパティ グループを選択して新しいプロパティ グループを作成すると、作成したグループは、選択したプロパティ グループの下の階層に配置されます。プロパティ グループの選択を解除して、新しいグループの追加を中止する場合は、ツール バーの 戻る をクリックし、[プロファイル] の [プロファイル定義デザイナ] をクリックしてください。
  4. [追加] ダイアログ ボックスで、[グループの新規追加] をクリックし、[OK] をクリックします。
  5. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 新しいプロパティ グループのプログラム上の定義名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。名前にスペースは使用できません。
    [表示名] | 新しいプロパティ グループの表示名を入力します。表示名は最大 128 文字まで入力できます。
    [説明] | 新しいプロパティ グループの説明を入力します。
  6. 新しいプロパティ グループを適用して [プロパティ] ボックスの一覧に表示するには、[適用] をクリックします。
  7. プロパティ グループを保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいプロパティ グループと共にプロファイル定義が保存されます。これで、既存のプロパティを新しいプロパティ グループに移動したり、新しいグループのプロパティを新しく作成したりすることが可能になります。プロパティの移動については、「プロファイル プロパティを移動する」を参照してください。プロファイル定義にプロパティ グループを追加したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

関連項目

プロファイル プロパティにカスタム属性を追加する

プロファイル定義

プロファイル プロパティ

プロファイル定義にプロパティを追加する

プロファイル プロパティを編集する


プロファイル定義にプロパティを追加する

プロファイル定義にプロパティを追加し、追加したプロパティの属性を定義するには、プロファイル定義デザイナ モジュールを使います。

プロファイル プロパティでは、Web サイトを訪問しているユーザーに関してどのようなデータを収集するかを指定します。たとえば、"名" プロファイル プロパティはユーザーの名を収集します。

ここでは、次のトピックについて説明します。

  • プロファイル定義に新しいプロパティを追加する
  • データ メンバにプロパティをマップする
  • プロファイル プロパティにカスタム属性を追加する


プロファイル定義に新しいプロパティを追加する

各プロファイル プロパティには属性があり、それらの属性はそのプロパティで収集する情報の特性を定義します。たとえば "名" プロファイル プロパティの属性を使って、プロパティを、データ ウェアハウスへのエクスポート対象となる単一値の文字列として定義できます。

新しいプロパティを追加するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、プロパティを追加するプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] の一覧で、新しいプロパティを追加するプロパティ グループを選択し、[追加] をクリックします。
    注
    • プロパティ グループを選択しない場合、新しいプロパティはプロパティ グループには分類されず、プロパティ グループと同じレベルに表示されます。
  4. [追加] ダイアログ ボックスの [プロパティの新規追加] をクリックし、[OK] をクリックします。
  5. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティのプログラム名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | プロパティの表示名を入力します。表示名は最大 128 文字まで入力できます。
    [説明] | プロパティの説明を入力します。
    [型] ボックスの一覧からプロパティのデータ型を選択します。プロパティのデータ型は、次の中から選択できます。
    • 文字列
    • Long String (長い文字列)
    • Number (数値)
    • Decimal (10 進)
    • Boolean (ブール値)
    • Binary (バイナリ)
    • Long Binary (ロング バイナリ)
    • Date/Time (日付/時刻)
    • Date (日付)
    • Time (時刻)
    • Currency (通貨)
    • Password (パスワード)
    • Site Term (サイト用語)
    • Profile (プロファイル)

    注

    • サイト用語にマップするプロパティを追加する方法については、「サイト用語にマップするプロパティを追加する」を参照してください。
    • 2 つのプロファイル定義の間に関連付けを作成する方法については、「プロファイル定義を埋め込む」を参照してください。
  6. [詳細属性] セクションで、次の操作を行います。
    項目 | 操作
    [アクティブ] | 新しいプロパティがアクティブか非アクティブかを指定します。
    [データへのマップ] 省略記号 [...] ボタンをクリックすると、[データ ソースの選択] ダイアログ ボックスが開きます。

    [データ ソースの選択] ダイアログ ボックスでは、プロパティのデータ メンバを選択します。プロパティのデータ メンバとして利用できるのは、編集中のプロファイル定義でまだ使用していないデータ メンバだけです。プロファイル定義で既に使用されているプロパティは利用できません。

    プロパティをデータ メンバにマップしないと、そのプロパティはデータベースに格納されませんが、メモリで利用することはできます。たとえば、ユーザーが Web サイトを訪問している間の状態情報を保存できます。

    [キーの種類] ボックスの一覧からキーの種類を選択します。
    • 一意キー このプロパティの値はすべてのメンバに対して一意になります。一意キーとして指定した属性は、SQL Server データベースの一意のフィールド、または Lightweight Directory Access Protocol (LDAP) ソースの一意の属性にマップします。
    • 主キー このプロパティの値はすべてのメンバに対して一意になります。主キーとして指定した属性は、SQL Server データベースのプライマリ フィールド、または LDAP ソースの一意の属性にマップします。主キーは、埋め込みプロファイル定義を使って作成されたプロファイルの関連付けに使用します。
    • 結合キー 編集中のプロパティを、プロファイル サービスの他のデータ ストアにある他のプロパティに関連付けます。データを収集するための結合キーとして定義したプロパティを編集するには、結合キーのデータが含まれるデータベース列を削除する必要があります。古いデータを新しいデータベース列に移行したら、データベース列を削除します。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。
    • 2 重のキー (主キーと結合キー) このプロパティの値は一意になります。また、このプロパティを他のデータ ストアにあるプロパティに関連付けます。
    [暗号化] | Commerce Server 2002 は、非対称型の暗号化 (AE) および一方向のハッシュの2種類の暗号化をサポートします。Commerce Server 2002 は、対称型の暗号化はサポートしません。「プロファイル定義に暗号化プロパティを追加する」を参照してください。
    [必須] | このプロパティに値の入力が必須であるかどうかを指定します。
    [データウェアハウスにエクスポート] | このプロパティがデータ ウェアハウスにエクスポートされることを指定します。
    [キャッシュ読み込みの遅延] | 編集中のプロパティは、明示的に要求するまで返されません。
    [複数値] | このプロパティに複数の値を格納できるようにします。
    [検索可能] | Web サイトの検索機能で編集中のプロパティを検索できるようにします。
    [RDN] | 編集中のプロパティを、LDAP ソースにマップされるすべてのプロファイルの相対識別名 (RDN) としてマークします。これは、OLE DB Provider for Microsoft Commerce Server (OLE DB) ソースなどのデータ ソースには適用されません。
    [ハッシュ キー] | このプロパティ値をハッシュすること、およびプロファイル データの格納先となるデータ ソースのパーティションを特定するために使うことを指定します。
  7. 新しいプロパティを適用して [プロパティ] ボックスの一覧に表示するには、[適用] をクリックします。
  8. プロパティを保存するには、ツール バーの 保存 をクリックしてプロファイルを保存します。

プロファイル定義が新しいプロパティと共に保存されます。プロファイル定義にプロパティを追加したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。


データ メンバにプロパティをマップする

プロパティをデータ メンバにマップしないと、そのプロパティはデータベースに格納されませんが、メモリで利用することはできます。たとえば、ユーザーが Web サイトを訪問している間の状態情報を保存できます。

プロパティのデータ メンバとして利用できるのは、編集中のプロファイル定義でまだ使用していないデータ メンバだけです。プロファイル定義で既に使用されているプロパティは利用できません。詳細については、「プロファイル定義に新しいプロパティを追加する」を参照してください。

データへマップするには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、カスタム属性を追加するプロパティが含まれているプロファイル定義をクリックします。
  3. プロパティをクリックし、[詳細属性] の [データへのマップ] の省略記号 [...] ボタンをクリックすると、[データ ソースの選択] ダイアログ ボックスが開きます。
  4. [データ ソースの選択] ダイアログ ボックスでは、プロパティのデータ メンバを選択します。


プロファイル プロパティにカスタム属性を追加する

プロファイル プロパティにカスタム属性を追加するには、プロファイル定義デザイナを使います。既存の属性にはないプロファイル プロパティの特性を定義するには、カスタム属性を使います。たとえば、カスタム属性を作成して、その中にプロパティ レベルのセキュリティ情報やエラー処理情報を記録することができます。プロファイル プロパティの属性については、「プロファイルの属性」を参照してください。

特定の汎用プロファイルをプロファイル エディタで編集できるようにするには、sDisplayColumn と sFriendlyName カスタム属性を設定する必要があります。

sDisplayColumn カスタム属性は、特定の汎用プロファイル定義に基づいたプロファイルについて、プロファイル エディタ モジュールの [検索] 画面に表示するプロファイル データを指定するために使われます。また、それらのプロファイルの識別名としても使われます。sFriendlyName カスタム属性は、プロファイル エディタ モジュールの [プロファイルの編集 :<プロファイル名>] 画面のタイトル バーに表示するプロファイル データを指定するために使われます。また、編集するプロファイルの識別名としても使われます。これらのカスタム属性はどのプロファイルにも使えます。プロファイルのカスタム属性については、「プロファイルのカスタム属性」を参照してください。

注

  • sDisplayColumn カスタム属性が定義されているプロパティだけがプロファイルに含まれる場合、特に指定しない限り、プロファイル表示列はそのプロパティの昇順で格納されます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

sDisplayColumn カスタム属性を追加するには

sFriendlyName カスタム属性を追加するには

sDisplayColumn カスタム属性を追加するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、カスタム属性を追加するプロパティが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] 一覧で、カスタム属性を追加するプロパティが含まれているグループを展開し、そのプロパティをクリックします。
  4. [カスタム属性] セクションで [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [名前] 「sDisplayColumn」と入力します。

    注

    • この属性では、大文字と小文字が区別されます。
    [表示名] | 「列名」と入力します。
    [説明] | 属性の説明を入力します。
    [値] 属性の値を入力します。この列属性の値によって、[検索] 画面でのプロパティ表示列の相対的な幅が決まります。

    たとえば、sDisplayColumn の属性値をこのプロパティでは "2"、もう一方のプロパティでは "4" に設定したとします。この場合、他方のプロパティの列幅は、このプロパティの列幅の 2 倍になります。
  5. [確認] をクリックします。

    注

    • 手順 4. と 5. を繰り返して、このプロパティにカスタム属性を必要なだけ追加することができます。
  6. 選択したプロパティに新しいカスタム属性を適用するには、[適用] をクリックします。
  7. 新しいカスタム属性と共にプロパティ定義を保存して、[プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいカスタム属性 sDisplayColumn と共にプロファイル定義が保存されます。

sFriendlyName カスタム属性を追加するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、カスタム属性を追加するプロパティが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル] 画面の [プロパティ] 一覧で、カスタム属性を追加するプロパティが含まれているグループを展開し、そのプロパティをクリックします。
  4. [カスタム属性] セクションで [新規] をクリックし、次の操作を行います。
    項目 | 操作
    [名前] 「sFriendlyName」と入力します。

    注

    この属性では、大文字と小文字が区別されます。

    [表示名] | 「表示名」と入力します。
    [説明] | 属性の説明を入力します。
    [値] | sFriendlyName 属性の値は、使用されません。
  5. [確認] をクリックします。

    注

    • 手順 4. と 5. を繰り返して、このプロパティにカスタム属性を必要なだけ追加することができます。
  6. [適用] をクリックして、新しいカスタム属性を適用します。
  7. 新しいカスタム属性と共にプロパティ定義を保存して、[プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいカスタム属性と共にプロファイル定義が保存されます。sFriendlyName カスタム属性を追加したプロパティは、検索画面の一番左に表示されます。sFriendlyName カスタム属性を同じプロファイル定義の複数のプロパティに追加した場合、[プロファイルの編集] 画面のタイトル バーで表示名として使われるのは、[プロファイル :<プロファイル定義>] 画面の [プロパティ] 一覧の先頭に表示されているプロパティです。

プロファイル定義を変更したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

次の表は、プロファイル プロパティのカスタム属性を一覧を示しています。

カスタム属性 | 説明 | 値
DWMemberName | プロファイル プロパティが格納されるデータ ウェアハウス内のデータ メンバ (この場合はテーブルの列) の名前を指定します。そのメンバ名 (列) が、指定したデータ ウェアハウス クラス (テーブル) 内に存在しない場合は、プロファイル データ インポート DTS タスクによってそのメンバ (列) が作成されます。 | データ ウェアハウス内の列の名前。
IsTransactioned | 複数のトランザクション データ ストア間で書き込みトランザクションをサポートすることを指定します。 | True = 有効 False = 無効
sAnonymousAccess | Web サイトの顧客サービス ページのプロパティに対する匿名ユーザーのアクセス レベルを指定します。 | 0 = 匿名ユーザーに対して非表示 1 = 読み取り専用 2 = 編集可能
sDelegatedAdminAccess | Web サイトの顧客サービス ページのプロパティに対する代理管理者のアクセス レベルを指定します。 | 0 = 管理者に対して非表示 1 = 読み取り専用 2 = 編集可能
sDisplayColumn | 特定の汎用プロファイル定義に基づいたプロファイルについて、プロファイル エディタ モジュールの [検索] 画面で、それらのプロファイルの識別名として表示するプロファイル データを指定します。sDisplayColumn カスタム属性が定義されているプロパティだけがプロファイルに含まれる場合、特に指定しない限り、プロファイル表示列はそのプロパティの昇順で格納されます。 | この値によって、各プロパティの相対的な列幅が決まります。この属性では、大文字と小文字が区別されます。また、結合キーや 2 重のキーとして定義することはできません。
sFeatureID | サイトがどのような設定の場合に、Web サイトの顧客サービスおよび取引先サービスでプロパティを表示するかを指定します。 | 0 = 常に表示 1 = サイトで代理管理者オプションがサポートされる場合に限り表示 3 = サイトで Active Directory が使われる場合に限り表示
sFriendlyName | プロファイル エディタ モジュールの [プロファイルの編集 :<プロファイル名>] 画面のタイトル バーで、編集するプロファイルの識別名として表示するプロファイル データを指定します。 | この属性では、大文字と小文字が区別されます。また、結合キーや 2 重のキーとして定義することはできません。sFriendlyName 属性の値は、使用されません。
sSearchOptions | サイトの検索オプションで、特定のプロパティをユーザーが利用できるかどうかを指定します。 | None = すべての検索操作にプロパティが利用できない All = 簡易および拡張のいずれの検索操作にもプロパティが利用できる Advanced = 拡張検索に限りプロパティが利用できる
sShownInList | 特定のプロパティが一覧シート ページに表示されるかどうかを指定します。 | 0 = プロパティは一覧シート ページに表示されない 1 = プロパティは一覧シート ページに表示される
sSiteAdminAccess | Web サイトの顧客サービス ページのプロパティに対するサイト管理者のアクセス レベルを指定します。 | 0 = サイト管理者に対して非表示 1 = 読み取り専用 2 = 編集可能
sUserAccess | Web サイトの顧客サービス ページのプロパティに対する登録済みユーザーのアクセス レベルを指定します。 | 0 = 登録済みユーザーに対して非表示 1 = 読み取り専用 2 = 編集可能
Password | プロパティがパスワードのデータ型であることを指定します。このカスタム属性の値を 1 すると、パスワードのセキュリティを確保するための特別な UI 機能を実装できます。たとえば、ブラウザ ウインドウに実際の文字ではなくアスタリスクを表示する、また、古い値を入力、新しい値を入力、変更の確認のために新しい値を再入力して、複数のフィールドを使ってパスワード変更操作を確認することがあります。 | 0 = 標準のプロパティのデータ型 1 = パスワードのプロパティのデータ型
EncryptionType | プロパティの暗号化を指定します。データ ストア内で暗号化する必要があるプロパティを指定するときに、この属性を使います。 また、これは予約済みのカスタム プロパティ値であることに注意してください。プロパティを暗号化するように設定すると、そのプロパティは自動的に作成され、カスタム属性の動的テーブルで非表示になります。 | 1 = 公開キーまたは秘密キーによる暗号化 2 = 一方向のハッシュ キーによる暗号化

関連項目

プロファイル定義にプロパティ グループを追加する

サイト用語へマップするプロパティを追加する


サイト用語へマップするプロパティを追加する

作成したサイト用語は、プロファイル定義に追加することができます。サイト用語を使うと、サイト全体で使われる値を標準化できます。サイト用語を作成したら、プロファイル定義にそのサイト用語を組み込みます。これで、そのプロファイル定義に一致するサイト ユーザーを広告の対象として設定できるようになります。サイト用語については、「サイト用語」を参照してください。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

プロファイル定義にサイト用語を追加するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、編集するプロパティが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] の一覧で、サイト用語の追加先となるプロパティを選択し、[追加] をクリックします。

    注

    • 目的のプロパティが [プロパティ] 一覧に表示されていない場合は、そのプロパティが含まれているプロパティ グループを展開し、そのプロパティをクリックします。
  4. [追加] ダイアログ ボックスで、[プロパティの新規追加] を選択し、[OK] をクリックします。
  5. [属性] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | プロパティのプログラム名を入力します。名前には、最大 128 文字の英数字とアンダースコア (_) を使用できます。スペースは使用できません。
    [表示名] | プロパティの表示名を入力します。表示名は最大 128 文字まで入力できます。
    [説明] | プロパティの説明を入力します。
    [型] | [型] ボックスの一覧の [サイト用語] をクリックします。
    [型参照] | 省略記号 [...] ボタン をクリックし、[サイト用語の選択] ダイアログ ボックスを開きます。
  6. [サイト用語の選択] ダイアログ ボックスの [サイト用語の選択] 一覧で、プロパティ定義に追加するサイト用語が含まれているサイト用語グループを展開し、そのサイト用語をクリックします。サイト用語の作成については、「サイト用語を作成する」を参照してください。
  7. [OK] をクリックします。
  8. [詳細属性] セクションで、次の操作を行います。
    更新方法 | 操作
    [アクティブ] | 新しいプロパティがアクティブか非アクティブかを指定します。
    [データへのマップ] 省略記号 [...] ボタンをクリックすると、[データ ソースの選択] ダイアログ ボックスが開きます。

    [データ ソースの選択] ダイアログ ボックスでは、プロパティのデータ メンバを選択します。プロパティのデータ メンバとして利用できるのは、編集中のプロファイル定義でまだ使用していないデータ メンバだけです。プロファイル定義で既に使用されているプロパティは利用できません。

    プロパティをデータ メンバにマップしないと、そのプロパティはデータベースに格納されませんが、メモリで利用することはできます。たとえば、ユーザーが Web サイトを訪問している間の状態情報を保存できます。

  9. 新しいサイト用語をプロファイル定義に適用して [サイト用語の構成] ボックスの一覧に表示するには、[適用] をクリックします。
  10. 編集したプロファイル定義を保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

プロファイル定義が保存されます。プロファイル定義への変更内容は Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

関連項目

サイト用語を作成する

プロファイル定義にプロパティを追加する

プロファイル プロパティを編集する

サイト用語を編集する


プロファイル定義に暗号化プロパティを追加する

Commerce Server 2002 は、高度のセキュリティを提供する暗号化ツールでデータを保護できる暗号化機能を備えています。Commerce Server 2002 がサポートしている暗号化には、非対称型の暗号化および一方向のハッシュの 2種類があります。Commerce Server 2002 は、対称型の暗号化はサポートしません。

次に、暗号化が可能な新しいプロファイル プロパティを追加する手順を示します。

注意

既存のデータのプロパティは、暗号化できるように設定しないでください。暗号化できるように設定した場合は、既存のデータが失われます。

キー インデックスに新しいプロパティを追加する

プロファイル レベル カスタム属性を追加する

暗号化プロパティをプロファイルに追加する

キー インデックスに新しいプロパティを追加するには

新しいプロパティは、プロファイル システム プロパティ グループに作成することをお勧めします。

  1. Commerce Server マネージャ を開きます。
  2. [Commerce Server マネージャ]、[グローバル リソース]、[プロファイル カタログ]、[プロファイル定義] の順に展開します。次に、[ユーザー オブジェクト] をクリックします。
  3. 右側のウィンドウで、[プロパティ] 一覧の [プロファイル システム] をクリックします。
  4. [追加] をクリックします。
  5. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] を選択します。
  6. [OK] をクリックします。
  7. [属性] セクションで、次を入力します。
    項目 | 操作
    [名前] | 名前を入力します (KeyIndex など)。
    [表示名] | 表示される名前を入力します (KeyIndex など)。
    [説明] | 省略可。
    [型] | [数値] を選択します。
    [型参照] | 該当なし。
  8. [詳細属性] をクリックし、次を入力します。
    項目 | 操作
    [アクティブ] | [はい] チェック ボックスをオフにします。
    [データへのマップ] | 省略記号 [...] ボタンをクリックして、このプロパティを数値型のデータ メンバにマップします。
  9. [適用] をクリックし、次に [保存] をクリックします。

プロファイル レベル カスタム属性を追加するには

  1. プロファイル (たとえばユーザー オブジェクト) を右クリックし、[プロパティ] を選択します。
  2. [カスタム属性] タブをクリックします。
  3. [新規] をクリックします。
  4. [カスタム属性] ダイアログ ボックスで、次を入力します。
    項目 | 操作
    [名前] | 「KeyIndex」を入力します。
    [表示名] | 表示される名前を入力します (KeyIndex など)。
    [説明] | KeyIndex カスタム属性の説明を入力します。
    [値] 「Key Index」を入力します。

    「新しいプロパティをキー インデックスに追加する」の手順で作成したプロファイルと同じプロパティ名にします。
  5. [カスタム属性] ダイアログ ボックスで、[OK] をクリックします。
  6. [ユーザー オブジェクトのプロパティ] ダイアログ ボックスで [適用] をクリックし、[OK] をクリックします。

暗号化プロパティをプロファイルに追加するには

  1. 右側のウィンドウで [追加] をクリックします。
  2. [追加 - Web ページ ダイアログ] ダイアログ ボックスで、[プロパティの新規追加] を選択します。
  3. [OK] をクリックします。
  4. [属性] セクションで、次を入力します。
    項目 | 操作
    [名前] | プロパティ名を入力します。
    [表示名] | 表示される名前を入力します。
    [説明] | KeyIndex カスタム属性の説明を入力します。
    [型] | [Password] または [文字列] を選択します。
  5. [詳細属性] セクションで、次を入力します。
    項目 | 操作
    [データへのマップ] | 省略記号 [...] ボタンをクリックして、プロパティをデータ メンバにマップします。
    [キーの種類] | 空欄を選択します。キーの種類を 一意キー、結合キー、主キー、2 重のキー、またはハッシュ キーにすることはできません。
    [暗号化] | ボックスの一覧で暗号化の種類 (暗号化なし、一方向のハッシュ、非対称型の暗号化) を 1 つ選択します。
    [データウェアハウスにエクスポート] | [はい] チェック ボックスをオフにします。
    [複数値] | 省略可。
    [検索可能] | [はい] チェック ボックスをオフにします。
    [ハッシュ キー] | [はい] チェック ボックスをオフにします。

    注

  • [カスタム属性] セクションで、暗号化プロパティは表示列または表示名として設定することはできません (プロファイル エディタ専用)。
  • カスタム属性は、EncryptionType (大文字小文字の区別なし) の名前でプロパティ レベルで作成することができません。
  1. [適用] をクリックし、次に [保存] をクリックします。

詳細については、「暗号化されたプロファイル プロパティを管理する」を参照してください。


プロファイル定義を埋め込む

あるプロファイル定義を別のプロファイル定義に埋め込むことによって、両者間の関連付けを作成するには、プロファイル定義デザイナ モジュールを使います。この関連付けは、相関関係のあるプロファイルを作成するために使用します。

埋め込みプロファイル定義を使うと、次のことを実現できます。

  • 4 階層までの埋め込みプロファイル定義の階層を作成する。システム管理者はレベルを増やすことができる。
  • Profile 型のプロパティを、必要な数だけプロファイル定義に追加する (収集可能な数は、基礎となるデータ記憶域のサイズによって決まる)。
  • 埋め込みプロファイル定義を単一値として定義し、プロファイルを 1 つだけ収集する。または、複数値として定義し、必要な数だけ収集する (収集可能な数は、システム リソースのみによって決まる)。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

プロファイル定義を埋め込むには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、埋め込み先のプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] の一覧で、プロファイル定義を埋め込むプロパティを選択します。

    注

    • 目的のプロパティが [プロパティ] 一覧に表示されていない場合は、そのプロパティが含まれているプロパティ グループを展開し、そのプロパティを選択します。
  4. [属性] セクションで、[型] ボックスの一覧の [プロファイル] をクリックします。
  5. [型参照] ボックスの省略記号 [...] ボタンをクリックして、[プロファイルの選択] ダイアログ ボックスを開きます。
  6. [プロファイルの選択] ダイアログ ボックスの [プロファイルの選択] 一覧で、[プロファイル カタログ] を展開し、プロパティに埋め込むプロファイル定義をクリックします。
  7. [OK] をクリックします。
  8. [適用] をクリックして、埋め込みプロパティを適用します。
  9. 編集したプロパティを保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したプロファイル定義が保存されます。

関連項目

プロファイル プロパティ

プロファイル定義にプロパティを追加する

プロファイル プロパティを編集する

"住所" プロファイル定義を埋め込む

サイト用語へマップするプロパティを追加する


"住所" プロファイル定義を埋め込む

"ユーザー オブジェクト" プロファイル定義に "請求先" プロパティを追加して、そこに "住所" プロファイル定義を埋め込むことができます。"請求先" プロパティを単一値として定義する場合には、作成できる住所プロファイルはユーザーごとに 1 つだけです。"住所" プロファイル定義を "ユーザー オブジェクト" プロファイル定義に埋め込んで、ユーザー 1 人につき 1 件の請求先住所を収集するには、次の作業を行います。

  1. "ユーザー オブジェクト" プロファイル定義に "請求先" という名前のプロパティを追加します。
  2. "型" 属性で、"請求先" プロパティをプロファイルとして定義します。
  3. "請求先" プロパティの型参照として、"住所" プロファイル定義を選択します。
  4. この "請求先" プロパティを、文字列型のデータ メンバにマップします。
  5. ユーザー 1 人につき請求先住所を 1 件収集するので、"請求先" プロパティを単一値として定義します。
  6. "請求先" プロパティを "データ ウェアハウスにエクスポート" として定義し、プロパティの値が、ユーザー プロファイルについての情報と共にデータ ウェアハウスにインポートされるようにします。

ユーザーの請求先住所が記録されているプロファイルの主キーは、ユーザー プロファイルの "請求先" プロパティに格納されます。

ユーザー プロファイルを編集するには、ユーザー モジュールを使います。これで、ユーザーの請求先プロファイルにユーザー プロファイルからアクセスできるようになります。ユーザー モジュールを使うと、4 層先にある埋め込みプロファイルまでアクセスできます。


プロファイル定義への変更内容を Web サイトに発行する

新しいプロファイル プロパティにデータを追加するには、プロファイル定義への変更内容を Web サイトに発行する必要があります。最新の変更内容で Web サイトを更新するには、"プロファイルの発行" モジュールを使います。電子商取引システムでは、このような変更はまずテスト用のサイトで行うが一般的です。その後で発行のスケジュールを設定して、変更内容を運用サイトに発行します。変更内容を運用サイトに発行する時期と方法については、システム管理者に問い合わせてください。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • プロファイルの変更内容を Web サイトに発行する場合は、ピーク時を避ける。ピーク時にプロファイルの変更内容を発行すると、サイトに障害が発生する可能性があります。

プロファイルへの変更内容を発行するには

  1. [プロファイル] の [プロファイル発行] をクリックします。
  2. [プロファイルの発行] 画面で、プロファイル定義への変更内容を発行するサイトをクリックし、ツール バーの 変更をサイトに発行し、キャッシュを更新 をクリックします。

    注

    • そのサイトが複数の Web サーバーからサービスを受けている場合は、各 Web サーバーにプロファイル定義への変更内容を発行する必要があります。
    • サーバーの状態の一覧を更新するには、ツール バーの 最新の情報に更新 をクリックします。更新状況をリセットしても、既に発行した変更内容はリセットまたはロールバックされません。

プロファイル定義への変更内容が Web サイトに発行されます。

関連項目

プロファイル定義

プロファイル定義を管理する


ユーザー プロファイルを追加する

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • [新しいプロファイル] 画面では、以下の手順で示されているプロパティと同じプロパティが表示されない場合があります。これは、[新しいプロファイル] 画面に表示されるプロパティが、"ユーザー オブジェクト" プロファイル定義によって決まるためです。"ユーザー オブジェクト" プロファイル定義内のプロパティを変更した場合は、変更内容が [新しいユーザー] 画面に反映されます。プロファイル定義のプロパティを変更する方法については、「プロファイル定義を管理する」を参照してください。

新しいユーザーを追加するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、ツール バーの 追加 をクリックします。
  3. [新しいプロファイル : ユーザー オブジェクト] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 新しいユーザーのログオン名を入力します。
    [ユーザー パスワード] | 新しいユーザーのパスワードを入力します。
    [電子メール] | 新しいユーザーの電子メール アドレスを入力します。
    [ユーザーの種類] | ボックスの一覧で、新しいユーザーが [登録済みユーザー] か [ゲスト ユーザー] かを選択します。通常、作成するのは登録済みユーザーです。
    [敬称] | 「Mr.」や「Ms.」など、新しいユーザーの敬称を入力します。
    [姓] | 新しいユーザーの姓を入力します。
    [名] | 新しいユーザーの名を入力します。
    [電話番号] | 新しいユーザーの電話番号を入力します。
    [内線番号] | 新しいユーザーの電話内線番号を入力します。
    [FAX 番号] | 新しいユーザーの FAX 番号を入力します。
    [FAX 内線番号] | 新しいユーザーの FAX 内線番号を入力します。
    [既定の言語] | 新しいユーザーの既定の言語を選択します。
  4. [アカウント情報] セクションで、次の操作を行います。
    項目 | 操作
    [組織 ID] [組織 ID] ボックスの一覧の [新しいプロファイルの作成] または [既存のプロファイルの挿入] をクリックします。

    [新しいプロファイルの作成] を選択すると、[新しいプロファイル : 組織] 画面が表示されます。新しい組織プロファイルの作成については、「組織プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[組織] 画面が表示されます。組織プロファイルを "組織 ID" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧で既存の組織をクリックし、ツール バーの 選択 をクリックします。既存の組織プロファイルを検索する方法については、「組織プロファイルを検索する」を参照してください。
    [アカウントの状態] | ボックスの一覧で、このユーザーのアカウントの状態を [アクティブなアカウント] または [非アクティブなアカウント] のどちらにするかを指定します。既定の状態は、[アクティブなアカウント] です。アカウントの状態が非アクティブになっているユーザーは、サイトにログオンできません。
    [ユーザー カタログ セット] | ボックスの一覧で、このユーザーにアクセスを許可するカタログ セットを選択します。
    [登録日] | ドロップダウン カレンダーで、新しいユーザーの登録日を選択します。
  5. [取引先のサービス] セクションで、次の操作を行います。
    項目 | 操作
    [取引先サービス ロール フラグ] | ボックスの一覧の [標準ユーザー] または [管理者] をクリックします。既定のロール フラグは、[標準ユーザー] です。[管理者] を選択した場合、このユーザーは代理管理者になります。代理管理者は、代理管理者に対応しているサイトでは組織に対して大きな権限を持ち、注文の確認やユーザー プロファイルの作成などができます。
  6. 新しいユーザー プロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいユーザー プロファイルが保存されます。

関連項目

プロファイルについて

ユーザー プロファイルを削除する

ユーザー プロファイルを検索する

組織プロファイルを追加する


代理管理者を追加する

SupplierAD サイトにログオンする代理管理者に任命されたユーザーを追加するには、ユーザー モジュールを使います。代理管理者は、管理者レベルのユーザーです。代理管理者に対応しているサイトでは、組織に対して大きな権限を持ち、注文の確認やユーザー プロファイルの作成などができます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • [新しいプロファイル] 画面では、以下の手順で示されているプロパティと同じプロパティが表示されない場合があります。"ユーザー オブジェクト" プロファイル定義内のプロパティを変更した場合は、変更内容が [新しいプロファイル] 画面に反映されます。プロファイル定義のプロパティを変更する方法については、「プロファイル定義を管理する」を参照してください。

代理管理者を追加するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、ツール バーの 追加 をクリックします。
  3. [新しいプロファイル : ユーザー オブジェクト] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 新しい代理管理者のログオン名を入力します。
    [ユーザー パスワード] | 新しい代理管理者のパスワードを入力します。
    [電子メール] | 新しい代理管理者の電子メール アドレスを入力します。
    [ユーザーの種類] | ボックスの一覧の [登録済みユーザー] をクリックします。
    [敬称] | 「Mr.」や「Ms.」など、新しい代理管理者の敬称を入力します。
    [姓] | 新しい代理管理者の姓を入力します。
    [名] | 新しい代理管理者の名を入力します。
    [電話番号] | 新しい代理管理者の電話番号を入力します。
    [内線番号] | 新しい代理管理者の電話内線番号を入力します。
    [FAX 番号] | 新しい代理管理者の FAX 番号を入力します。
    [FAX 内線番号] | 新しい代理管理者の FAX 内線番号を入力します。
    [既定の言語] | 新しい代理管理者の既定の言語を入力します。
  4. [アカウント情報] セクションで、次の操作を行います。
    項目 | 操作
    [組織 ID] [組織 ID] ボックスの一覧の [新しいプロファイルの作成] または [既存のプロファイルの挿入] をクリックします。

    [新しいプロファイルの作成] を選択すると、[新しい組織] 画面が表示されます。新しい組織プロファイルの作成については、「組織プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[組織] 画面が表示されます。組織プロファイルを "組織 ID" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧で既存の組織をクリックし、ツール バーの 選択 をクリックします。既存の組織プロファイルを検索する方法については、「組織プロファイルを検索する」を参照してください。
    [アカウントの状態] | ボックスの一覧の [アクティブなアカウント] をクリックします。既定の状態は、[アクティブなアカウント] です。アカウントの状態が非アクティブになっているユーザーは、サイトにログオンできません。
    [ユーザー カタログ セット] | ボックスの一覧から、この代理管理者にアクセスを許可するカタログ セットを選択します。
    [登録日] | ドロップダウン カレンダーで、新しい代理管理者の登録日を選択します。
  5. [取引先のサービス] セクションで、次の操作を行います。
    項目 | 操作
    [取引先サービス ロール フラグ] | ボックスの一覧の [管理者] をクリックします。代理管理者は、管理者レベルのユーザーです。代理管理者に対応しているサイトでは、組織に対して大きな権限を持ち、注文の確認やユーザー プロファイルの作成などができます。
  6. 新しいユーザー プロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい代理管理者のプロファイルが保存されます。

関連項目

プロファイルについて

ユーザー プロファイルを検索する

ユーザー プロファイルを編集する

組織プロファイルを追加する


ユーザー パスワードをリセットする

パスワードを忘れた登録済みユーザーのパスワードをリセットするには、ユーザー モジュールを使います。登録済みユーザーのパスワードをリセットしたら、新しいパスワードをそのユーザーに通知する必要があります。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

ユーザー パスワードをリセットするには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. 特定のユーザーのプロファイルを表示するには、[ユーザー オブジェクト] 画面の検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. [フィルタ ビュー] ボックスの一覧で、パスワードをリセットするユーザーのプロファイルをクリックし、ツール バーの 開く をクリックします。

    [プロファイルの更新 : <ユーザー プロファイル>] 画面の [一般情報] セクションで、[ユーザー パスワード] ボックスの 省略記号 [...] ボタン をクリックします。

  4. [パスワードの再設定] ダイアログ ボックスで、[新しいパスワード] ボックスに新しいパスワードを入力し、[パスワードの確認] ボックスに新しいパスワードを再入力します。

    注

    • パスワードは 7 ～ 14 文字の英数字で設定する必要があります。パスワードでは大文字と小文字が区別されます。また、スペースを入力することはできません。
  5. 新しいパスワードを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいパスワードを含んだユーザー プロファイルが保存されます。ユーザーに新しいパスワードを通知する必要があります。


組織プロファイルを追加する

サイトに組織プロファイルを追加するには、組織モジュールを使います。組織の情報 (識別情報や連絡先情報など) や、組織で利用できるカタログ セットを指定することができます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • [新しいプロファイル : 組織] 画面では、以下の手順で示されているプロパティと同じプロパティが表示されない場合があります。組織プロファイル定義内のプロパティを変更した場合は、変更内容が [新しいプロファイル : 組織] 画面に反映されます。プロファイル定義のプロパティを変更する方法については、「プロファイル定義を管理する」を参照してください。

組織プロファイルを追加するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、ツール バーの 追加 をクリックします。
  3. [新しいプロファイル : 組織] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 組織の名前を入力します。組織名は、53 文字以内で設定します。スペースを含めることもできます。
    [取引先番号] | 組織または取引先の番号を入力します。
    [管理連絡先] [管理連絡先] ボックスの一覧の [新しいプロファイルの作成] または [既存のプロファイルの挿入] をクリックします。

    [新しいプロファイルの作成] を選択すると、新しいプロファイル : ユーザー オブジェクト] 画面が表示されます。新しいユーザー プロファイルの作成については、「ユーザー プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[ユーザー オブジェクト] 画面が表示されます。ユーザー プロファイルを "管理連絡先" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧でユーザーをクリックし、ツール バーの 選択 をクリックします。ユーザーの検索については、「ユーザー プロファイルを検索する」を参照してください。
    [受取人] ボックスの一覧から、サプライヤから送られてくる商品を受け取る、組織内の担当者を選択します。ボックスの一覧に目的のユーザー名がない場合は、新しい組織の受取人について、[新しいプロファイルの作成] または [既存のプロファイルの挿入] のどちらを行うかを指定します。

    [新しいプロファイルの作成] を選択すると、[新しいプロファイル : ユーザー オブジェクト] 画面が表示されます。新しいユーザー プロファイルの作成については、「ユーザー プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[ユーザー オブジェクト] 画面が表示されます。ユーザー プロファイルを "受取人" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧でユーザーをクリックし、ツール バーの 選択 をクリックします。ユーザーの検索については、「ユーザー プロファイルを検索する」を参照してください。
    [組織カタログ セット] | ボックスの一覧から、この組織にアクセスを許可するカタログ セットを選択します。
  4. [購入] セクションで、次の操作を行います。
    項目 操作
    [購買マネージャ] [購買マネージャ] ボックスの一覧の [新しいプロファイルの作成] または [既存のプロファイルの挿入] をクリックします。

    [新しいプロファイルの作成] を選択すると、[新しいプロファイル : ユーザー オブジェクト] 画面が表示されます。新しいユーザー プロファイルの作成については、「ユーザー プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[ユーザー オブジェクト] 画面が表示されます。プロファイルを "購買マネージャ" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧でユーザーをクリックし、ツール バーの 選択 をクリックします。ユーザーの検索については、「ユーザー プロファイルを検索する」を参照してください。
  5. 組織を保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

指定した管理連絡先、受取人、および購買マネージャを含む組織プロファイルが保存されます。

関連項目

プロファイルについて

組織プロファイルを編集する

組織プロファイルを検索する

ユーザー プロファイルを追加する

ユーザー プロファイルを検索する


汎用プロファイルを追加する

サイトで利用する汎用プロファイルを追加するには、プロファイル エディタ モジュールを使います。汎用プロファイルは、"ユーザー オブジェクト" プロファイル定義でも "組織" プロファイル定義でもないプロファイル定義を使って作成されたプロファイルです。

既存の汎用プロファイル定義に基づいて新しいプロファイルを作成するには、プロファイル定義の中に、次の 2 種類のカスタム属性が含まれている必要があります。

  • sDisplayColumn 属性は、プロファイル エディタ モジュールの [検索] 画面の列見出しとしてのプロパティを割り当てます。

    プロファイル定義に sDisplayColumn 属性がない場合は、Commerce Server ビジネス デスクではプロファイル エディタ モジュールの [検索] 画面に、プロファイル定義と共に作成されたプロファイルを表示できません。また、プロファイルの編集もできません。

  • sFriendlyName 属性は、プロファイル エディタ モジュールの [検索] 画面の一番左の列、および [プロファイルの編集 : <表示名>] 画面のタイトル バーに、どのプロパティを表示するかを制御します。カスタム属性、およびカスタム属性をプロファイル定義に追加する方法については、「プロファイル定義にプロパティを追加する」を参照してください。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

次の手順では、"一括注文数" プロファイル定義を例として使っています。

注

  • "一括注文数" 以外のプロファイル定義を使用している場合や、"一括注文数" プロファイル定義のプロパティを変更した場合は、[プロファイルの更新 : <プロファイル定義>] 画面に表示されるプロパティが、この手順で説明しているプロパティとは異なってきます。プロファイル定義のプロパティを変更する方法については、「プロファイル定義を管理する」を参照してください。

汎用プロファイルを追加するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、プロファイル定義として [一括注文数] を選択し、ツール バーの 開く をクリックします。
  3. [一括注文数] 画面で、ツール バーの 追加 をクリックします。
  4. [新しいプロファイル : 一括注文数] 画面で、次の操作を行います。
    項目 | 操作
    [組織 ID] [組織 ID] ボックスの一覧の [新しいプロファイルの作成] または [既存のプロファイルの挿入] をクリックします。

    [新しいプロファイルの作成] を選択すると、[新しいプロファイル : 組織] 画面が表示されます。新しい組織プロファイルの作成については、「組織プロファイルを追加する」を参照してください。

    [既存のプロファイルの挿入] を選択すると、[組織] 画面が表示されます。組織プロファイルを "組織 ID" プロパティに埋め込むには、[フィルタ ビュー] ボックスの一覧で既存の組織をクリックし、ツール バーの 選択 をクリックします。既存の組織プロファイルを検索する方法については、「組織プロファイルを検索する」を参照してください。
    [注文書番号] | 一括注文の番号を入力します。
    [説明] | 一括注文の説明を入力します。
  5. プロファイルを保存して、プロファイルの [<プロファイル定義>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

プロファイルが保存されます。[検索] 画面に新しいプロファイルを表示するには、検索機能を使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。同じプロファイル定義に基づいて、新しいプロファイルをさらに作成することができます。 戻る をクリックして [プロファイル] 画面に戻り、別のプロファイル定義を選択して、そのプロファイル定義に基づいてプロファイルを作成することもできます。

関連項目

汎用プロファイルを編集する

汎用プロファイルを検索する

汎用プロファイルを削除する


Active Directory グループにユーザーを追加する

Commerce Server ビジネス デスクには、Active Directory グループのユーザー メンバシップを管理するためのグループ マネージャ モジュールが用意されています。ビジネス デスクのグループ マネージャ モジュールを使うには、システム管理者が、SupplierActiveDirectory ソリューション サイトに基づいてサイトを作成している必要があります。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

Active Directory グループにユーザーを追加するには

注

  • ユーザーの追加先となる Active Directory グループには、Active Directory ツリー構造全体にわたって一意の名前が付いている必要があります。
  1. [プロファイル] の [グループ マネージャ] をクリックします。
  2. [ユーザーまたはグループの検索] 画面の検索ペインで、[ユーザー] オプションを選択します。
  3. [検索フィルタ] ボックスに、追加するユーザーの名前を入力します。名前にワイルドカード文字 (*) を使うこともできます。
  4. [検索開始] をクリックします。検索条件に一致する項目が 1 件もない場合や、1,000 件以上ある場合には、エラー メッセージが表示されます。検索の結果は、[名前] ボックスの一覧に表示されます。
  5. Active Directory グループに追加するユーザーをクリックし、ツール バーの 開く をクリックします。
  6. [ユーザーの管理] 画面の [検索フィルタ] ボックスに、ユーザーの追加先となる Active Directory グループの名前を入力します。名前にワイルドカード文字 (*) を使うこともできます。
  7. [検索開始] をクリックします。
  8. [検索結果] ボックスの一覧で、ユーザーの追加先となる Active Directory グループをクリックし、ツール バーの オブジェクトをグループに追加 をクリックして、グループを追加すると共に Active Directory グループへの変更内容を保存します。
  9. [このユーザーが所属するグループ] ボックスの一覧に、このユーザーが現在所属しているグループが、すべて表示されます。
  10. 戻る をクリックして、[ユーザーまたはグループの検索] 画面に戻ります。

新しいユーザーが、指定した Active Directory グループに追加されました。続いて、他のユーザーや Active Directory グループを追加することも、ビジネス デスクの他のモジュールをクリックすることもできます。


Active Directory グループにグループを追加する

Commerce Server ビジネス デスクには、Active Directory グループのユーザー メンバシップを管理するためのグループ マネージャ モジュールが用意されています。ビジネス デスクのグループ マネージャ モジュールを使うには、システム管理者が、SupplierActiveDirectory ソリューション サイトに基づいてサイトを作成している必要があります。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

Active Directory グループにグループを追加するには

注

  • グループの追加先となる Active Directory グループには、Active Directory ツリー構造全体にわたって一意の名前が付いている必要があります。
  1. [プロファイル] の [グループ マネージャ] をクリックします。
  2. [ユーザーまたはグループの検索] 画面の検索ペインで、[グループ] オプションを選択します。
  3. [検索フィルタ] ボックスに、追加するグループの名前を入力します。名前にワイルドカード文字 (*) を使うこともできます。
  4. [検索開始] をクリックします。検索条件に一致する項目が 1 件もない場合や、1,000 件以上ある場合には、エラー メッセージが表示されます。検索が正常に終了した場合は、検索条件に一致する項目が表示されます。
  5. Active Directory グループに追加するグループを選択し、ツール バーの 開く をクリックします。
  6. [グループの管理] 画面の [検索フィルタ] ボックスに、グループの追加先となる Active Directory グループの名前を入力します。名前にワイルドカード文字 (*) を使うこともできます。
  7. [検索開始] をクリックします。
  8. [検索結果] ボックスの一覧で、グループの追加先となる Active Directory グループをクリックし、ツール バーの オブジェクトの追加 をクリックして、グループを追加すると共に Active Directory グループへの変更内容を保存します。
  9. [このグループに所属するオブジェクト] ボックスの一覧に、この Active Directory グループが現在所属している Active Directory グループが表示されます。
  10. 戻る をクリックして、[ユーザーまたはグループの検索] 画面に戻ります。

Active Directory グループが、指定した Active Directory グループに追加されました。続いて、新しいユーザーや Active Directory グループを追加することも、ビジネス デスクの他のモジュールをクリックすることもできます。

関連項目

Active Directory グループからユーザーを削除する


サイト用語とサイト用語グループを管理する

サイト用語を作成および更新するには、サイト用語エディタ モジュールを使います。サイト用語は、ユーザーに入力を要求する場面で、利用可能な選択肢を標準化および制限するために使います。また、コンテンツをユーザーに合わせて対象化するためにも使います。たとえば、好きな色を選ぶという場面で、ユーザーが選択できる色を制限することができます。

ここでは、次のトピックについて説明します。

  • サイト用語を編集する
  • サイト用語から用語を削除する
  • サイト用語を整理する
  • サイト用語を削除する


サイト用語を編集する

既存のサイト用語とサイト用語グループを編集するには、サイト用語エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語を編集するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、編集するサイト用語をクリックします。

    注

    • 編集するサイト用語が [サイト用語の構成] ボックスの一覧に表示されていない場合は、目的のサイト用語が含まれているサイト用語グループを展開し、そのサイト用語をクリックします。
  3. [サイト用語の属性] セクションで、次の操作を行います。
    項目 | 操作
    [表示名] | サイト用語の表示名を編集します。表示名は最大 128 文字まで入力できます。
    [説明] | サイト用語の説明を編集します。

    注

    • サイト用語の表示名は変更できますが、サイト用語のプログラム上の定義名は変更できません。サイト用語のプログラム上の定義名を変更する場合は、いったんサイト用語を削除してから、希望する名前で新しいサイト用語を作成する必要があります。
  4. [用語] セクションで、編集する用語をクリックし、[編集] をクリックします。
  5. 必要に応じて用語を編集し、[確認] をクリックします。

    注

    • 用語は必要な数だけ編集できます。他の用語を編集するには、用語を選択してから [編集] をクリックします。
  6. [適用] をクリックして、サイト用語への変更内容を適用します。
  7. サイト用語を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したサイト用語が保存されます。

関連項目

プロファイルについて

サイト用語を作成する

サイト用語グループを作成する

サイト用語へマップするプロパティを追加する

サイト用語に用語を追加する


サイト用語から用語を削除する

用語を削除するには、サイト用語エディタ モジュールを使います。たとえば、"色" というサイト用語から "紫" という用語を削除するのに使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

用語を削除するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、用語の削除対象となるサイト用語をクリックします。

    注

    • 削除するサイト用語が [サイト用語の構成] ボックスの一覧に表示されていない場合は、目的のサイト用語が含まれているサイト用語グループを展開し、そのサイト用語をクリックします。
  3. [用語] セクションの用語の一覧で、削除する用語をクリックし、[削除] をクリックします。

    [用語] 一覧からその用語が削除されます。

  4. [適用] をクリックして、サイト用語属性への変更内容を適用します。
  5. 編集したサイト用語を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したサイト用語が保存されます。

関連項目

プロファイルについて

サイト用語を作成する

サイト用語グループを作成する


サイト用語を整理する

サイト用語とサイト用語グループを整理するには、サイト用語エディタ モジュールを使います。[サイト用語の構成] ボックスの一覧では、サイト用語やサイト用語グループを上下に移動して整理し、見やすくすることができます。グループ間でサイト用語を移動させて、サイト用語の所属先のグループを変更することができます。サイト用語の構成およびサイト用語の階層については、「サイト用語グループを作成する」を参照してください。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語を移動するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、移動するサイト用語またはサイト用語グループをクリックします。

    注

    • 移動するサイト用語が [サイト用語の構成] ボックスの一覧に表示されていない場合は、目的のサイト用語が含まれているサイト用語グループを展開し、そのサイト用語をクリックします。
  3. [サイト用語の構成] ボックスの下にある 上に移動 または 下に移動 をクリックして、サイト用語またはサイト用語グループを目的の位置に移動します。
  4. 変更内容を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいサイト用語の構成が保存されます。

関連項目

プロファイルについて

サイト用語を作成する

サイト用語グループを作成する


サイト用語を削除する

サイト用語とサイト用語グループを削除するには、サイト用語エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

サイト用語を削除するには

  1. [プロファイル] の [サイト用語エディタ] をクリックします。
  2. [サイト用語エディタ] 画面で、削除するサイト用語またはサイト用語グループをクリックし、[削除] をクリックします。
  3. [削除] ダイアログ ボックスで、[OK] をクリックしてそのサイト用語を削除します。

    注意

    • サイト用語グループを削除すると、そのグループ内のすべてのサイト用語も削除されます。
  4. 変更内容を保存して [ビジネス デスク] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

関連項目

プロファイルについて

サイト用語を作成する

サイト用語グループを作成する


プロファイル定義を管理する

プロファイル プロパティを移動、編集、または削除するには、プロファイル定義デザイナ モジュールを使います。必要なユーザー情報や組織情報が変わった場合は、既存のプロファイル定義を編集して新しい要求に合わせることができます。

ここでは、次のトピックについて説明します。

  • プロファイル プロパティを移動する
  • プロファイル プロパティを編集する
  • プロファイル定義からプロパティを削除する
  • プロファイル定義を削除する


プロファイル プロパティを移動する

プロパティ グループの階層構造を作成して、プロファイルのプロパティを整理することができます。プロパティ グループを作成したら、プロファイル定義デザイナ モジュールを使ってプロファイル プロパティをそのプロファイル グループに移動して、ユーザーや組織の情報を整理します。

プロファイル プロパティを移動するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、編集するプロパティが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] の一覧で、移動するプロパティまたはプロパティ グループを選択し、[プロパティ] の一覧の下にある 上に移動 または 下に移動 をクリックしてプロファイル プロパティを目的の位置に移動します。

    注

    • 目的のプロパティが [プロパティ] 一覧に表示されていない場合は、そのプロパティが含まれているプロパティ グループを展開し、そのプロパティをクリックします。
  4. プロファイル プロパティを保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいプロファイル プロパティの構造が保存されます。


プロファイル プロパティを編集する

プロファイル定義で使用されるプロファイル プロパティとプロパティ グループを編集するには、プロファイル定義デザイナ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

プロファイル プロパティを編集するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、編集するプロパティが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] の一覧で、編集するプロパティまたはプロパティ グループを選択します。

    注

    • 目的のプロパティが [プロパティ] 一覧に表示されていない場合は、そのプロパティが含まれているプロパティ グループを展開し、そのプロパティをクリックします。
  4. プロパティの属性を編集します。

    注

    • プロパティを作成した後で、そのプロパティの名前を編集することはできません。表示名は編集できますが、実際のプログラム上の定義名は変わりません。プログラム上の定義名を変更する場合は、対応するプロパティを削除し、新しいプログラム上の定義名でもう一度そのプロパティを追加する必要があります。
  5. [適用] をクリックして、プロパティへの変更内容を適用します。
  6. 編集したプロファイル定義を保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したプロファイル定義が保存されます。プロファイル定義内のプロパティを編集したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

関連項目

プロファイルについて

プロファイル定義にプロパティを追加する

プロファイル定義にプロパティ グループを追加する

プロファイル定義からプロパティを削除する

サイト用語へマップするプロパティを追加する


プロファイル定義からプロパティを削除する

プロファイル定義からプロパティまたはプロパティ グループを削除するには、プロファイル定義デザイナ モジュールを使います。埋め込みプロファイル定義が含まれているプロパティも削除できます。子プロパティは削除できないため、子プロパティが含まれているプロパティ グループは削除できません。プロパティ グループを削除するには、子プロパティをあらかじめグループの外へ移動しておく必要があります。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

プロパティ グループを削除するには

プロファイル プロパティを削除するには

プロパティ グループを削除するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、プロパティ グループを削除するプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面で、削除するプロパティ グループをクリックします。
  4. [削除] をクリックします。
  5. [削除] ダイアログ ボックスで、[OK] をクリックしてプロパティ グループを削除します。
  6. 変更内容を保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したプロファイル定義が保存されます。プロファイル定義からプロパティを削除したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

プロファイル プロパティを削除するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、プロパティを削除するプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [プロファイル : <プロファイル定義>] 画面の [プロパティ] 一覧で、削除するプロパティをクリックします。

    注

    • 目的のプロパティが [プロパティ] 一覧に表示されていない場合は、そのプロパティが含まれているプロパティ グループを展開し、そのプロパティをクリックします。
  4. [削除] をクリックします。
  5. [削除] ダイアログ ボックスで、[OK] をクリックしてプロファイル プロパティを削除します。
  6. 変更内容を保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したプロファイル定義が保存されます。プロファイル定義からプロパティを削除したら、その変更内容を Web サイトに発行する必要があります。変更内容を発行する方法については、「プロファイル定義への変更内容を Web サイトに発行する」を参照してください。

関連項目

プロファイルについて

プロファイル定義にプロパティを追加する

プロファイル定義にプロパティ グループを追加する

プロファイル プロパティを編集する

サイト用語とサイト用語グループを管理する


プロファイル定義を削除する

プロファイル定義を削除するには、プロファイル定義デザイナ モジュールを使います。他のプロファイル定義に埋め込まれているプロファイル定義を削除する場合は、先に参照を削除する必要があります。削除したプロファイル定義への参照はすべて、コンテナ プロファイル定義から削除されます。削除したプロファイル定義は元に戻せません。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注意

  • 削除したプロファイル定義は元に戻せません。

プロファイル定義を削除するには

複数のプロファイル定義を削除するには

プロファイル定義を削除するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、削除するプロファイル定義をクリックし、ツール バーの 削除 をクリックします。
  3. [プロイファイルの削除] ダイアログ ボックスで、[OK] をクリックして、プロファイル定義を削除します。

プロファイル定義が削除されます。削除したプロファイル定義は元に戻せません。新しいプロファイル定義を作成する必要がある場合は、システム管理者に依頼します。

複数のプロファイル定義を削除するには

  1. [プロファイル] の [プロファイル定義デザイナ] をクリックします。
  2. [プロファイル] 画面で、削除するプロファイル定義をクリックし、ツール バーの 削除 をクリックします。
注
  • すべてのプロファイル定義を選択するには、[すべて選択] をクリックします。プロファイル定義の選択をすべて解除するには、[すべて選択解除] をクリックします。
  1. [プロイファイルの削除] ダイアログ ボックスで、[OK] をクリックして、プロファイル定義を削除します。

プロファイル定義が削除されます。削除したプロファイル定義は元に戻せません。新しいプロファイル定義を作成する必要がある場合は、システム管理者に依頼します。


ユーザー プロファイルを管理する

ユーザー プロファイルには、ユーザーについての情報が含まれています。サイトを訪れる匿名ユーザーと登録済みユーザーに関する情報を追加、検索、変更、および削除するには、ユーザー モジュールを使います。

ここでは、次のトピックについて説明します。

  • ユーザー プロファイルを検索する
  • ユーザー プロファイルを編集する
  • ユーザー プロファイルをコピーする
  • ユーザー プロファイルを削除する


ユーザー プロファイルを検索する

Web サイトでユーザー プロファイルを個別に、またはグループ単位で検索するには、ユーザー モジュールを使います。検索ペインでは、"ユーザー オブジェクト" プロファイル定義のプロパティや、検索対象のユーザー プロファイルの値を使って、検索対象を絞り込むことができます。たとえば、"名" というプロファイル プロパティに "Mike" という値が含まれているユーザー プロファイルだけを検索することができます。検索ペインの下にある [フィルタ ビュー] ボックスの一覧に、検索条件に一致するユーザー プロファイルがすべて表示されます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

ユーザー プロファイルを検索するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面の検索ペインで、[検索条件] ボックスの一覧から、次のいずれかの項目を選択します。
注
  • 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
項目 | 操作
[ログオン名] | ログオン名でユーザー プロファイルを検索します。
[電子メール] | 電子メール アドレスでユーザー プロファイルを検索します。
[姓] | 姓でユーザー プロファイルを検索します。
[名] | 名でユーザー プロファイルを検索します。
[アカウントの状態] | アカウントの状態がアクティブまたは非アクティブになっているユーザー プロファイルを検索します。
[登録日] | ユーザーが登録した日付でユーザー プロファイルを検索します。
[取引先サービス ロール フラグ] | [標準ユーザー] または [管理者] であるユーザーのユーザー プロファイルを検索します。
[最終変更日時] | 特定の日付に編集されたユーザー プロファイルを検索します。
[作成日時] | 特定の日付に作成されたユーザー プロファイルを検索します。
[プロパティで検索] | プロパティでユーザー プロファイルを検索します。このオプションは、ユーザー プロファイルを検索するための式を作成する場合に使います。
[ユーザー リスト] | リスト マネージャ モジュールからユーザー リストを開きます。
  1. 表示されたプロパティ値のボックスで、選択したプロパティの特定の値 (検索対象のユーザー プロファイルの姓や電子メール アドレスなど) を入力するか、ボックスの一覧から選択します。

    注

    • より複雑な検索が必要な場合は、[検索条件] ボックスの一覧の [プロパティで検索] をクリックし、ユーザー プロファイルを検索するための式を作成します。
    • 検索には、任意の数の文字に一致するワイルドカード エントリ (*) を含めることができます。たとえば、"t*" を入力すると、名前が文字 "t" で始まるすべてのユーザーが検索の対象になります。
  2. [検索開始] をクリックします。
注意
  • ユーザー プロファイルを検索する場合は、検索条件を限定して、検索パラメータに一致するユーザー プロファイルの数を制御することが重要です。多数のユーザー プロファイルが検索条件に一致すると、Commerce Server ビジネス デスクのパフォーマンスが大幅に低下する場合があります。

検索が実行されます。検索条件に一致するユーザー プロファイルが見つかった場合は、それらのユーザー プロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するものが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。

関連項目

プロファイルについて

ユーザー プロファイルを追加する

ユーザー プロファイルを編集する

ユーザー プロファイルをコピーする

ユーザー プロファイルを削除する


ユーザー プロファイルを検索するための式を作成する

式を作成すると、複雑な検索を実行できます。式は、プロパティ、演算子、および値の組み合わせで、評価すると結果が返されます。たとえば、"ユーザーの役職が役員付き秘書と等しい"、"組織 ID が 3 と等しい" のように指定します。

ユーザー プロファイルを検索するための式を作成するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、ユーザー プロファイルを選択し、ツール バーの 開く をクリックします。
  3. 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  4. [検索条件] ボックスの一覧の [プロパティで検索] をクリックします。
  5. 検索ペインの [新規] をクリックします。
  6. 1 番目のボックスで、プロパティ グループをダブルクリックし、検索に使用するプロパティをクリックします
    注
    • 検索に使用できる演算子は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。サイト用語型のプロパティを選択した場合は、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
  7. 2 番目のボックスの一覧から演算子を選択します。
    注
    • 検索条件の入力方法は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、 省略記号 [...] ボタン をクリックして [サイト用語の選択] ダイアログ ボックスを開き、検索対象の用語を選択します。
  8. 3 番目のボックスで、検索条件を入力するか、または一覧から選択します。
  9. [適用] をクリックし、[検索開始] をクリックします。

検索が実行されます。検索条件に一致するユーザー プロファイルが見つかった場合は、それらのユーザー プロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するプロファイルが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。

関連項目

プロファイルについて

ユーザー プロファイルを追加する

ユーザー プロファイルを編集する

ユーザー プロファイルをコピーする

ユーザー プロファイルを削除する


メーリング リスト内のユーザー プロファイルを検索する

メーリング リストをインポートするには、キャンペーンのリスト マネージャ モジュールを使います。メーリング リストをリスト マネージャにインポートし終わったら、ユーザー モジュールの検索機能を使って、メーリング リスト内にあるユーザー プロファイルのインスタンスを検索することができます。メーリング リスト内にあるユーザー プロファイルのインスタンスを検索するには、メーリング リストにある電子メール アドレスが、ユーザー オブジェクト プロファイルのものと一致している必要があります。見つかったプロファイルのインスタンスは、個別に編集することも、更新クエリを作成してグループ単位で更新することもできます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

メーリング リスト内のユーザー プロファイルを検索するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面の検索ペインで、[検索条件] ボックスの一覧の [ユーザー リスト] をクリックします。
    注
    • 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  3. リスト マネージャにあるユーザー リストの一覧が、検索ペインに表示されます。
  4. ユーザー プロファイルの検索場所となるユーザー リストを選択し、[検索開始] をクリックします。

選択したユーザー リストに含まれているユーザー プロファイルが、[フィルタ ビュー] ボックスの一覧に表示されます。見つかったユーザー プロファイルは、個別に編集したり、更新クエリを作成して複数を一括更新したりできます。複数のユーザー プロファイルを編集する方法については、「複数のユーザー プロファイルを編集する」を参照してください。

関連項目

単一のユーザー プロファイルを編集する

複数のユーザー プロファイルを編集する


ユーザー プロファイルを編集する

既存のユーザー プロファイルを編集するには、ユーザー モジュールを使います。ユーザー プロファイルは、1 つずつ編集することも、複数をまとめて編集することもできます。ユーザー モジュールを使うと、4 階層先にある埋め込みユーザー プロファイルまで編集することもできます。

ここでは、次のトピックについて説明します。

  • 単一のユーザー プロファイルを編集する
  • 複数のユーザー プロファイルを編集する
  • 埋め込みユーザー プロファイルを編集する


単一のユーザー プロファイルを編集する

既存のユーザー プロファイルを編集するには、ユーザー モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールについてのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • 古いデータを新しいデータベース列に移行すると、データベース列を削除できます。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。

ユーザー プロファイルを編集するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、ユーザー プロファイルを選択し、ツール バーの 開く をクリックします。

    注

    • 特定のユーザー プロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. [プロファイルの更新 : <ユーザー プロファイル>] 画面で、ユーザー プロファイルを編集します。

    注

    • [プロファイルの更新 : <ユーザー プロファイル>] 画面については、「ユーザー プロファイルを追加する」を参照してください。
  4. プロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集したプロファイルが保存されます。

関連項目

プロファイルについて

ユーザー プロファイルを追加する

ユーザー プロファイルをコピーする

ユーザー プロファイルを削除する

ユーザー プロファイルを検索する


複数のユーザー プロファイルを編集する

複数のユーザー プロファイルを編集するには、ユーザー モジュールを使います。複数のユーザー プロファイルを編集するときには、編集対象のすべてのプロファイルに同じ変更が加えられます。複数のユーザー プロファイルのプロパティの値を変更するには、更新クエリを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

複数のユーザー プロファイルを編集するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、編集するユーザー プロファイルをすべて選択し、ツール バーの 開く をクリックします。

    注

    • 特定のプロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
    • [フィルタ ビュー] ボックスの一覧にあるユーザー プロファイルをすべて選択するには、[すべて選択] をクリックします。[フィルタ ビュー] ボックスの一覧にあるユーザー プロファイルの選択をすべて解除するには、[すべて選択解除] をクリックします。
    • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックしてユーザー プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されているユーザー プロファイル (1 画面につき、最大で 20 ユーザー) だけです。
  3. 新しい更新クエリを作成するには、[<プロファイルの数> プロファイルの更新] 画面で、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    1 番目のボックスの一覧 (左) 1 番目のボックスの一覧の [ユーザー オブジェクト] をクリックし、プロパティ グループをクリックします。次に、更新クエリの中で使用するプロパティをクリックします。

    注

    • 2 番目のボックスの一覧でどの演算子をクエリに使用できるかは、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。サイト用語型のプロパティを選択した場合は、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
    2 番目のボックスの一覧 (中央) | 更新クエリの演算子を選択します。
    3 番目のボックスの一覧 (右) プロパティの新しい値を入力または選択します。

    プロパティへの変更内容を入力する方法は、1 番目のボックスで選択したプロパティのデータ型によって決まります。

    たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、 省略記号 [...] ボタン をクリックして [サイト用語の選択] ダイアログ ボックスを開き、プロパティに割り当てる用語を選択します。
  4. 新しい更新クエリを作成するには、[適用] をクリックします。
  5. 更新クエリをさらに作成するには、手順 3. と手順 4. を繰り返します。
  6. 更新クエリを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

ユーザー プロファイルが、新しい情報と共に保存されます。

関連項目

ユーザー プロファイルを追加する

メーリング リスト内のユーザー プロファイルを検索する

ユーザー プロファイルを編集する


埋め込みユーザー プロファイルを編集する

最上位レベルを含めて 4 レベル先までの埋め込みユーザー プロファイルを編集するには、ユーザー モジュールを使います。ユーザー モジュールでは、プロファイルを個別に編集することもできます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

埋め込みユーザー プロファイルを編集するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、編集する埋め込みプロファイルが含まれているプロファイルをクリックし、ツール バーの 開く をクリックします。

    注

    • 特定のプロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. [プロファイルの更新 : <ユーザー プロファイル>] 画面の、埋め込みプロファイルを含むプロパティの一覧で、編集する埋め込みプロファイルを選択します。

    注

    • 次の層にある埋め込みプロファイルを編集するには、手順 3. の操作を繰り返します。
  4. 埋め込みプロファイルの内容を変更します。
  5. 埋め込みプロファイルを保存して [プロファイルの更新 : <ユーザー プロファイル>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  6. ユーザー プロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した埋め込みプロファイルが保存されます。


ユーザー プロファイルをコピーする

既存のプロファイルをコピーするには、ユーザー モジュールを使います。たとえば、追加しようとしているユーザー プロファイルによく似たプロファイルが既にある場合は、既存のユーザー プロファイルをコピーして、そのプロファイル情報に必要な変更を加えたうえで、新しいユーザー プロファイルとして保存します。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

ユーザー プロファイルをコピーするには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、コピーするプロファイルをクリックし、ツール バーの コピー をクリックします。

    注

    • 特定のプロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. [新しいプロファイル (コピー)] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [ログオン名] | 新しいユーザー プロファイルのログオン名を入力します。
    [ユーザー パスワード] | 新しいユーザー プロファイルのパスワードを入力します。パスワードは 7 ～ 14 文字の英数字で設定する必要があります。スペースを含めることはできません。
  4. 新しいユーザー プロファイルに合わせて、コピー先のプロファイルに含まれる既存の情報に変更を加えます。
  5. 新しいプロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいプロファイルが保存されます。

関連項目

プロファイルについて

ユーザー プロファイルを追加する

ユーザー プロファイルを編集する

ユーザー プロファイルを削除する

ユーザー プロファイルを検索する


ユーザー プロファイルを削除する

Commerce Server データベースから既存のプロファイルを削除するには、ユーザー モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティの内容を削除するには、プロパティがマップされているデータベース列をまず削除する必要があります。

ユーザー プロファイルを削除するには

複数のユーザー プロファイルを削除するには

埋め込みユーザー プロファイルを削除するには

注意

  • 削除したプロファイルは元に戻せません。

ユーザー プロファイルを削除するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、削除するユーザー プロファイルをすべて選択し、ツール バーの 削除 をクリックします。

    注

    • 特定のプロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. [削除] ダイアログ ボックスで [はい] をクリックして、ユーザー プロファイルを削除します。

選択したユーザー プロファイルが削除されます。

複数のユーザー プロファイルを削除するには

注

  • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックしてユーザー プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されているユーザー プロファイル (1 画面につき、最大で 20 ユーザー) だけです。
  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、削除するユーザー プロファイルをすべて選択し、ツール バーの 削除 をクリックします。

    注

    • 特定のプロファイルを表示するには、[ユーザー オブジェクト] 画面の最上部にある検索ペインを使います。ユーザー プロファイルの検索については、「ユーザー プロファイルを検索する」を参照してください。
  3. 削除を確認するダイアログ ボックスで、[はい] をクリックし、選択したプロファイルを削除します。

    ユーザー プロファイルが削除されます。

  4. ツール バーの 戻る をクリックして、[プロファイル] 画面に戻ります。

埋め込みユーザー プロファイルを削除するには

  1. [プロファイル] の [ユーザー] をクリックします。
  2. [ユーザー オブジェクト] 画面で、削除する埋め込みプロファイルが含まれているユーザー プロファイルをクリックし、ツール バーの 開く をクリックします。
  3. [プロファイルの更新 : <ユーザー プロファイル>] 画面の、削除するプロファイルが含まれているプロパティの一覧を開き、[プロファイル参照の削除] を選択します。
  4. 削除を確認するダイアログ ボックスで [はい] をクリックして、埋め込み汎用プロファイルを削除します。
  5. 更新したプロファイルを保存して [ユーザー オブジェクト] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

プロファイルが保存され、プロファイル データベースから埋め込みプロファイルが削除されます。

関連項目

プロファイルについて

ユーザー プロファイルを追加する

ユーザー プロファイルを編集する

ユーザー プロファイルをコピーする

ユーザー プロファイルを検索する


組織プロファイルを管理する

組織プロファイルには、部門や課を始めとする会社内の業務単位など、組織に関する情報が格納されます。組織に関する情報を検索、追加、変更、および削除するには、組織モジュールを使います。

ここでは、次のトピックについて説明します。

  • 組織プロファイルを検索する
  • 組織プロファイルを検索するための式を作成する
  • 組織プロファイルを編集する
  • 組織プロファイルをコピーする
  • 組織プロファイルを削除する


組織プロファイルを検索する

Web サイトで組織プロファイルを個別に、またはグループ単位で検索するには、組織モジュールを使います。検索ペインでは、プロファイル定義のプロパティや、検索対象のプロファイルの値を使って、検索対象を絞り込むことができます。たとえば、"名前" というプロファイル プロパティに "技術" という値が含まれている組織プロファイルを検索することができます。検索ペインの下にある [フィルタ ビュー] ボックスの一覧には、検索条件に一致するすべての組織プロファイルが表示されます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

組織プロファイルを検索するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面に検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  3. [検索条件] ボックスの一覧で、次の中から検索条件を選択します。
    項目 | 操作
    [名前] | 名前で組織プロファイルを検索します。
    [最終変更日時] | 特定の日付に編集された組織プロファイルを検索します。
    [作成日時] | 特定の日付に作成された組織プロファイルを検索します。
    [プロパティで検索] | プロパティで組織プロファイルを検索します。このオプションは、組織プロファイルを検索するための式を作成する場合に使用します。
  4. 表示されたプロパティ値のボックスで、選択したプロパティの特定の値 (検索する組織プロファイルの名前など) を入力するか、ボックスの一覧から選択します。

    注

    • より複雑な検索が必要な場合は、[検索条件] ボックスの一覧の [プロパティで検索] をクリックして、組織プロファイルを検索するための式を作成します。
    • 検索には、任意の数の文字に一致するワイルドカード エントリ (*) を含めることができます。たとえば、"t*" を入力すると、名前が文字 "t" で始まるすべての組織が検索の対象になります。
  5. [検索開始] をクリックします。
注意
  • 組織プロファイルを検索する場合は、検索条件を限定して、検索パラメータに一致する組織プロファイルの数を制御することが重要です。多数の組織プロファイルが検索条件に一致すると、Commerce Server ビジネス デスクのパフォーマンスが大幅に低下する場合があります。

検索が実行されます。検索条件に一致する組織プロファイルが見つかった場合は、それらのプロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するプロファイルが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルを編集する

組織プロファイルを検索するための式を作成する

組織プロファイルをコピーする

組織プロファイルを削除する


組織プロファイルを検索するための式を作成する

式を作成すると、複雑な検索を実行できます。式は、プロパティ、演算子、および値の組み合わせで、評価すると結果が返されます。式の形式は、たとえば "取引先番号が 4 と等しい" などとなります。

組織プロファイルを検索するための式を作成するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、組織プロファイルを選択し、ツール バーの 開く をクリックします。
  3. 検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  4. [検索条件] ボックスの一覧の [プロパティで検索] をクリックします。
  5. 検索ペインの [新規] をクリックします。
  6. 1 番目のボックスで、プロパティ グループをダブルクリックし、検索に使用するプロパティをクリックします。

    注

    • 検索に使用できる演算子は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。サイト用語型のプロパティを選択した場合は、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
  7. 2 番目のボックスの一覧から演算子を選択します。

    注

    • 検索条件の入力方法は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、 省略記号 [...] ボタン をクリックして [サイト用語の選択] ダイアログ ボックスを開き、検索対象の用語を選択します。
  8. 3 番目のボックスで、検索条件を入力するか、または一覧から選択します。
  9. [適用] をクリックし、[検索開始] をクリックします。

検索が実行されます。検索条件に一致するプロファイルが見つかった場合は、それらのプロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するプロファイルが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルを編集する

組織プロファイルをコピーする

組織プロファイルを削除する


組織プロファイルを編集する

既存の組織プロファイルを編集するには、組織モジュールを使います。組織プロファイルは、1 つずつ編集することも、複数をまとめて編集することもできます。組織モジュールを使うと、4 階層先にある埋め込み組織プロファイルまで編集することもできます。

ここでは、次のトピックについて説明します。

  • 単一の組織プロファイルを編集する
  • 複数の組織プロファイルを編集する
  • 埋め込み組織プロファイルを編集する


単一の組織プロファイルを編集する

既存の組織プロファイルを編集するには、組織モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

組織プロファイルを編集するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、編集する組織プロファイルをクリックし、ツール バーの 開く をクリックします。
    注
    • 特定の組織プロファイルを表示するには、[組織] 画面の最上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
  3. [プロファイルの更新 : <組織プロファイル>] 画面で、組織プロファイルを編集します。
    注
    • [プロファイルの更新 : <組織プロファイル>] 画面については、「組織プロファイルを追加する」を参照してください。
  4. 組織プロファイルを保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した組織プロファイルが保存されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルをコピーする

組織プロファイルを削除する

組織プロファイルを検索する


複数の組織プロファイルを編集する

複数の組織プロファイルを編集するには、組織モジュールを使います。複数の組織プロファイルを編集するときには、編集対象のすべてのプロファイルに同じ変更が加えられます。複数の組織プロファイルのプロパティの値を変更するには、更新クエリを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

複数の組織プロファイルを編集するには

注

  • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックして組織プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されている組織プロファイル (1 画面につき、最大で 20 組織) だけです。
  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、編集する組織プロファイルをすべて選択し、ツール バーの 開く をクリックします。

    注

    • 特定のプロファイルを表示するには、[組織] 画面の最上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
    • [フィルタ ビュー] ボックスの一覧にある組織プロファイルをすべて選択するには、[すべて選択] をクリックします。[フィルタ ビュー] ボックスの一覧にある組織プロファイルの選択をすべて解除するには、[すべて選択解除] をクリックします。
  3. 新しい更新クエリを作成するには、[<プロファイルの数> プロファイルの更新] 画面で、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    1 番目のボックスの一覧 (左) 1 番目のボックスの一覧の [組織] をクリックし、プロパティ グループをクリックします。次に、更新クエリの中で使用するプロパティをクリックします。

    注

    • 2 番目のボックスの一覧でどの演算子をクエリに使用できるかは、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。Site Term 型のプロパティを選択した場合、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
    2 番目のボックスの一覧 (中央) | 更新クエリの演算子を選択します。
    3 番目のボックスの一覧 (右) プロパティの新しい値を入力または選択します。

    プロパティへの変更内容を入力する方法は、1 番目のボックスで選択したプロパティのデータ型によって決まります。

    たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、 省略記号 [...] ボタン をクリックして [サイト用語の選択] ダイアログ ボックスを開き、プロパティに割り当てる用語を選択します。
  4. 新しい更新クエリを作成するには、[適用] をクリックします。
  5. 更新クエリをさらに作成するには、手順 3. と手順 4. を繰り返します。
  6. 更新クエリを保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

組織プロファイルが、新しい情報と共に保存されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルを編集する


埋め込み組織プロファイルを編集する

最上位レベルを含めて 4 レベルまでの埋め込み組織プロファイルを編集するには、組織モジュールを使います。組織モジュールでは、プロファイルを個別に編集することもできます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

埋め込み組織プロファイルを編集するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、編集する埋め込みプロファイルが含まれている組織をクリックし、ツール バーの 開く をクリックします。

    注

    • 特定のプロファイルを表示するには、[組織] 画面の最上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
  3. [プロファイルの更新 : <組織プロファイル>] 画面の、埋め込みプロファイルを参照するプロパティの一覧で、編集する埋め込みプロファイルを選択します。

    注

    • 次の層にある埋め込みプロファイルを編集するには、手順 3. の操作を繰り返します。
  4. 埋め込みプロファイルの内容を変更します。
  5. 埋め込みプロファイルを保存して [プロファイルの更新 : <組織プロファイル>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  6. 組織プロファイルを保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した埋め込みプロファイルが保存されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルをコピーする

組織プロファイルを削除する

組織プロファイルを検索する


組織プロファイルをコピーする

既存の組織プロファイルをコピーするには、組織モジュールを使います。たとえば、追加しようとしている組織プロファイルによく似たプロファイルが既にある場合は、既存の組織プロファイルをコピーして、そのプロファイル情報に必要な変更を加えたうえで、新しい組織プロファイルとして保存します。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

組織プロファイルをコピーするには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、コピーするプロファイルをクリックし、ツール バーの コピー をクリックします。

    注

    • 特定のプロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
  3. [新しいプロファイル (コピー)] 画面の [一般情報] セクションで、次の操作を行います。
    項目 | 操作
    [名前] | 新しい組織の名前を入力します。
  4. 新しい組織プロファイルに合わせて、コピー先のプロファイルに含まれる既存の情報に変更を加えます。
  5. 新しい組織プロファイルを保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しい組織プロファイルが保存されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルを編集する

組織プロファイルを削除する

組織プロファイルを検索する


組織プロファイルを削除する

Commerce Server データベースから既存のプロファイルを削除するには、プロファイル エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティの内容を削除するには、プロパティがマップされているデータベース列をまず削除します。

組織プロファイルを削除するには

複数の組織プロファイルを削除するには

埋め込み組織プロファイルを削除するには

注意

  • 削除した組織プロファイルは元に戻せません。

組織プロファイルを削除するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、削除する組織プロファイルをクリックし、ツール バーの 削除 をクリックします。

    注

    • 特定のプロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
  3. 削除を確認するダイアログ ボックスで [はい] をクリックして、組織プロファイルを削除します。

その組織プロファイルが削除されます。

複数の組織プロファイルを削除するには

注

  • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックして組織プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されている組織プロファイル (1 画面につき、最大で 20 組織) だけです。
  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、削除する組織プロファイルをクリックし、ツール バーの 削除 をクリックします。

    注

    • 特定のプロファイルを表示するには、[組織] 画面の最上部にある検索ペインを使います。組織プロファイルの検索については、「組織プロファイルを検索する」を参照してください。
    • [フィルタ ビュー] ボックスの一覧にある組織プロファイルをすべて選択するには、[すべて選択] をクリックします。[フィルタ ビュー] ボックスの一覧にある組織プロファイルの選択をすべて解除するには、[すべて選択解除] をクリックします。
  3. 削除を確認するダイアログ ボックスで、[はい] をクリックし、選択したプロファイルを削除します。

組織プロファイルが削除されます。

埋め込み組織プロファイルを削除するには

  1. [プロファイル] の [組織] をクリックします。
  2. [組織] 画面で、削除する埋め込みプロファイルが含まれている組織プロファイルをクリックし、ツール バーの 開く をクリックします。
  3. [プロファイルの更新 : <組織プロファイル>] 画面の、削除するプロファイルが含まれているプロパティの一覧を開き、[プロファイル参照の削除] を選択します。
  4. 削除を確認するダイアログ ボックスで [はい] をクリックして、埋め込み汎用プロファイルを削除します。
  5. 更新したプロファイルを保存して [組織] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

プロファイルが保存され、プロファイル データベースから埋め込みプロファイルが削除されます。

関連項目

プロファイルについて

組織プロファイルを追加する

組織プロファイルを編集する

組織プロファイルをコピーする

組織プロファイルを検索する


汎用プロファイルを管理する

汎用プロファイルとは、汎用プロファイル定義を使って作成されたプロファイルのことです。汎用プロファイル定義とは、プロファイル定義または組織プロファイル定義以外のプロファイル定義のことです。汎用プロファイルに関する情報を検索、追加、変更、および削除するには、プロファイル エディタ モジュールを使います。

ここでは、次のトピックについて説明します。

  • 汎用プロファイルを検索する
  • 汎用プロファイルを編集する
  • 汎用プロファイルをコピーする
  • 汎用プロファイルを削除する


汎用プロファイルを検索する

Web サイトで汎用プロファイルを個別に、またはグループ単位で検索するには、プロファイル エディタ モジュールを使います。検索ペインでは、プロファイル定義のプロパティや、検索対象のユーザー プロファイルの値を使って、検索対象を絞り込むことができます。たとえば、"注文書番号" というプロファイル プロパティに "PO345" という値が含まれている汎用プロファイルを検索することができます。検索ペインの下にある [フィルタ ビュー] ボックスの一覧には、検索条件に一致するすべての汎用プロファイルが表示されます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

汎用プロファイルを検索するには

汎用プロファイルを検索するための式を作成する

汎用プロファイルを検索するには

注意

  • 汎用プロファイルを検索する場合は、検索条件を限定して、検索パラメータに一致する汎用プロファイルの数を制御することが重要です。多数の汎用プロファイルが検索条件に一致すると、Commerce Server ビジネス デスクのパフォーマンスが大幅に低下する場合があります。
  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、検索する汎用プロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面に検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  4. [検索条件] ボックスの一覧で、次の中から検索条件を選択します。

    注

    • [検索条件] ボックスの一覧に表示されるプロパティは、この手順で説明するプロパティとは異なっている場合があります。[検索条件] ボックスに表示されるプロパティは、手順 2. で選択したプロファイル定義によって決まります。ここでは、"一括注文数" プロファイル定義を例として使っています。
    項目 | 操作
    [注文書番号] | 名前で汎用プロファイルを検索します。
    [説明] | 説明で汎用プロファイルを検索します。
    [最終変更日時] | 特定の日付に編集された汎用プロファイルを検索します。
    [作成日時] | 特定の日付に作成された汎用プロファイルを検索します。
    [プロパティで検索] | プロパティで汎用プロファイルを検索します。このオプションは、汎用プロファイルを検索するための式を作成する場合に使用します。
  5. 表示されたプロパティ値のボックスで、選択したプロパティの特定の値 (検索する注文書番号の名前など) を入力するか、ボックスの一覧から選択します。

    注

    • より複雑な検索が必要な場合は、[検索条件] ボックスの一覧の [プロパティで検索] をクリックし、汎用プロファイルを検索するための式を作成します。
    • 検索には、任意の数の文字に一致するワイルドカード エントリ (*) を含めることができます。たとえば、"t*" を入力すると、名前が文字 "t" で始まるすべての注文番号が検索の対象になります。
  6. [検索開始] をクリックします。

検索が実行されます。検索条件に一致する汎用プロファイルが見つかった場合は、それらのプロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するプロファイルが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。


汎用プロファイルを検索するための式を作成する

式を作成すると、複雑な検索を実行できます。式は、プロパティ、演算子、および値の組み合わせで、評価すると結果が返されます。式の形式は、たとえば "組織 ID が 4 と等しい" や "注文書番号が 4000 と等しい" などとなります。

汎用プロファイルを検索するための式を作成するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、検索するプロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面に検索ペインが開いていない場合は、ツール バーの 検索 をクリックします。
  4. [検索条件] ボックスの一覧の [プロパティで検索] をクリックします。
  5. 検索ペインの [新規] をクリックします。
  6. 1 番目のボックスで、プロパティ グループをダブルクリックし、検索に使用するプロパティをクリックします

    注

    • 検索に使用できる演算子は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。サイト用語型のプロパティを選択した場合は、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
  7. 2 番目のボックスの一覧から演算子を選択します。

    注

    • 検索条件の入力方法は、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、省略記号 [...] ボタンをクリックして [サイト用語の選択] ダイアログ ボックスを開き、検索対象の用語を選択します。
  8. 3 番目のボックスで、検索条件を入力するか、または一覧から選択します。
  9. [適用] をクリックし、[検索開始] をクリックします。

検索が実行されます。検索条件に一致するプロファイルが見つかった場合は、それらのプロファイルが [フィルタ ビュー] ボックスの一覧に表示されます。検索条件に一致するプロファイルが見つからなかった場合は、"この検索で一致する項目はありません。" というメッセージが表示されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

汎用プロファイルを編集する

汎用プロファイルをコピーする

汎用プロファイルを削除する


汎用プロファイルを編集する

既存の汎用プロファイルを編集するには、プロファイル エディタ モジュールを使います。汎用プロファイルは、1 つずつ編集することも、複数をまとめて編集することもできます。プロファイル エディタ モジュールを使うと、4 階層先にある埋め込み汎用プロファイルまで編集することもできます。

ここでは、次のトピックについて説明します。

  • 単一の汎用プロファイルを編集する
  • 複数の汎用プロファイルを編集する
  • 埋め込み汎用プロファイルを編集する


単一の汎用プロファイルを編集する

既存の汎用プロファイルを編集するには、プロファイル エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

汎用プロファイルを編集するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、編集する汎用プロファイルのプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面で、編集する汎用プロファイルをクリックし、ツール バーの 開く をクリックします。

    注

    • 特定の汎用プロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
  4. [プロファイルの更新 : <汎用プロファイル>] 画面で、汎用プロファイルを編集します。

    注

    • [プロファイルの更新 : <汎用プロファイル>] 画面については、「汎用プロファイルを追加する」を参照してください。
  5. 汎用プロファイルを保存して [プロファイル] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した汎用プロファイルが保存されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

複数の汎用プロファイルを編集する

埋め込み汎用プロファイルを編集する

汎用プロファイルをコピーする

汎用プロファイルを削除する


複数の汎用プロファイルを編集する

複数の汎用プロファイルを編集するには、プロファイル エディタ モジュールを使います。複数の汎用プロファイルを編集するときには、編集対象のすべてのプロファイルに同じ変更が加えられます。複数の汎用プロファイルのプロパティの値を変更するには、更新クエリを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

次の手順では、"住所" プロファイル定義を例として使っています。

複数の汎用プロファイルを編集するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、プロファイル定義として [住所] を選択し、ツール バーの 開く をクリックします。
  3. [住所] 画面で、編集するプロファイルをすべて選択し、ツール バーの 開く をクリックします。

    注

    • 特定の汎用プロファイルを表示するには、[住所] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
    • [フィルタ ビュー] ボックスの一覧にある汎用プロファイルをすべて選択するには、[すべて選択] をクリックします。[フィルタ ビュー] ボックスの一覧にある汎用プロファイルの選択をすべて解除するには、[すべて選択解除] をクリックします。
    • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックして汎用プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されている汎用プロファイル (1 画面につき最大で 20 個) だけです。
  4. 新しい更新クエリを作成するには、[<プロファイルの数> プロファイルの更新] 画面で、[新規] をクリックし、次の操作を行います。
    項目 | 操作
    1 番目のボックスの一覧 (左) 1 番目のボックスの一覧の [住所] をクリックし、プロパティ グループをクリックします。次に、更新クエリの中で使用するプロパティをクリックします。

    注

    • 2 番目のボックスの一覧でどの演算子をクエリに使用できるかは、プロパティのデータ型によって決まります。たとえば、文字列型のプロパティを選択した場合は、演算子には [が右の項目と等しい]、[が右の項目を含む]、または [が右の項目で始まる] を設定できます。サイト用語型のプロパティを選択した場合は、演算子には [が右の項目と等しい] または [が右の項目と等しくない] を設定できます。
    2 番目のボックスの一覧 (中央) | 更新クエリの演算子を選択します。
    3 番目のボックスの一覧 (右) プロパティの新しい値を入力または選択します。

    プロパティへの変更内容を入力する方法は、1 番目のボックスで選択したプロパティのデータ型によって決まります。

    たとえば、文字列型のプロパティを選択した場合は、検索文字列を 3 番目のボックスに入力します。Site Term 型のプロパティを選択した場合は、 省略記号 [...] ボタン をクリックして [サイト用語の選択] ダイアログ ボックスを開き、プロパティに割り当てる用語を選択します。
  5. 新しい更新クエリを作成するには、[適用] をクリックします。
  6. 更新クエリをさらに作成するには、手順 3. と手順 4. を繰り返します。
  7. 更新クエリを保存して [住所] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

組織プロファイルが、新しい情報と共に保存されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

埋め込み汎用プロファイルを編集する

汎用プロファイルをコピーする

汎用プロファイルを削除する


埋め込み汎用プロファイルを編集する

最上位レベルを含めて 4 レベルまでの埋め込み汎用プロファイルを編集するには、プロファイル エディタ モジュールを使います。プロファイル エディタ モジュールでは、プロファイルを個別に編集することもできます。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

埋め込み汎用プロファイルを編集するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、編集する埋め込みプロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面で、編集する埋め込みプロファイルをクリックし、ツール バーの 開く をクリックします。

    注

    • 特定のプロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
  4. [プロファイルの更新 : <プロファイル定義>] 画面の、埋め込みプロファイルを参照するプロパティの一覧で、編集する埋め込みプロファイルを選択し、ツール バーの 開く をクリックします。

    注

    • 次の層にある埋め込みプロファイルを編集するには、手順 4. の操作を繰り返します。
  5. 埋め込みプロファイルの内容を変更します。
  6. 埋め込みプロファイルを保存して [<プロファイル定義> の更新 : <プロファイル>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  7. プロファイルを保存して [<プロファイル定義>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

編集した埋め込みプロファイルが保存されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

汎用プロファイルを編集する

汎用プロファイルをコピーする

汎用プロファイルを削除する


汎用プロファイルをコピーする

既存の汎用プロファイルをコピーするには、プロファイル エディタ モジュールを使います。たとえば、追加しようとしている汎用プロファイルによく似たプロファイルが既にある場合は、既存の汎用プロファイルをコピーして、そのプロファイル情報に必要な変更を加えたうえで、新しい汎用プロファイルとして保存します。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

  • データを収集するための結合キーとして定義したプロパティを編集するには、そのプロパティがマップされているデータベース列をまず削除する必要があります。データベース列を削除したら、古いデータを新しいデータベース列に移行する必要があります。Commerce Server 2002 では、データがある結合キー プロパティの変更はサポートされていません。

汎用プロファイルをコピーするには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、コピーする汎用プロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面で、コピーするプロファイルをクリックし、ツール バーの コピー をクリックします。

    注

    • 特定のプロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
  4. [新しいプロファイル (コピー)] 画面の [一般情報] セクションで、新しい汎用プロファイルに合わせて、コピー先のプロファイルに含まれる既存の情報に変更を加えます。
  5. 新しい汎用プロファイルを保存して [<プロファイル定義>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

新しいプロファイルが保存されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

汎用プロファイルを編集する

汎用プロファイルを削除する


汎用プロファイルを削除する

Commerce Server データベースから既存のプロファイルを削除するには、プロファイル エディタ モジュールを使います。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

注

データを収集するための結合キーとして定義したプロパティの内容を削除するには、プロパティがマップされているデータベース列をまず削除します。

注意

  • 削除した汎用プロファイルは元に戻せません。

汎用プロファイルを削除するには

複数の汎用プロファイルを削除するには

埋め込み汎用プロファイルを削除するには

汎用プロファイルを削除するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、削除するプロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. 削除するプロファイルをクリックし、ツール バーの 削除 をクリックします。

    注

    • 特定のプロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
  4. 削除を確認するダイアログ ボックスで [はい] をクリックして、プロファイルを削除します。

    プロファイルが削除されます。

  5. ツール バーの 戻る をクリックして、[プロファイル] 画面に戻ります。

複数の汎用プロファイルを削除するには

注

  • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックして汎用プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されている汎用プロファイル (1 画面につき最大で 20 個) だけです。
  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、削除する汎用プロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面で、削除する汎用プロファイルを選択し、ツール バーの 削除 をクリックします。

    注

    • 特定の汎用プロファイルを表示するには、[<プロファイル定義>] 画面の上部にある検索ペインを使います。汎用プロファイルの検索については、「汎用プロファイルを検索する」を参照してください。
    • [フィルタ ビュー] ボックスの一覧にある汎用プロファイルをすべて選択するには、[すべて選択] をクリックします。[フィルタ ビュー] ボックスの一覧にある汎用プロファイルの選択をすべて解除するには、[すべて選択解除] をクリックします。
    • [フィルタ ビュー] ボックスの一覧で [すべて選択] をクリックして汎用プロファイルをすべて選択する場合、選択されるのは、現在画面上に表示されている汎用プロファイル (1 画面につき最大で 20 個) だけです。
  4. 削除を確認するダイアログ ボックスで、[はい] をクリックし、選択した汎用プロファイルを削除します。

    汎用プロファイルが削除されます。

  5. ツール バーの 戻る をクリックして、[プロファイル] 画面に戻ります。

埋め込み汎用プロファイルを削除するには

  1. [プロファイル] の [プロファイル エディタ] をクリックします。
  2. [プロファイル] 画面で、削除する埋め込みプロファイルが含まれているプロファイル定義をクリックし、ツール バーの 開く をクリックします。
  3. [<プロファイル定義>] 画面で、削除する埋め込みプロファイルが含まれているユーザー プロファイルをクリックし、ツール バーの 開く をクリックします。
  4. [プロファイルの更新 : <汎用 プロファイル>] 画面の、削除するプロファイルが含まれているプロパティの一覧を開き、[プロファイル参照の削除] を選択します。
  5. 削除を確認するダイアログ ボックスで [はい] をクリックして、埋め込み汎用プロファイルを削除します。
  6. 更新したプロファイルを保存して [<プロファイル定義>] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。
  7. 戻る をクリックして、[プロファイル] 画面に戻ります。

プロファイルが保存され、プロファイル データベースから埋め込みプロファイルが削除されます。

関連項目

プロファイルについて

汎用プロファイルを追加する

汎用プロファイルを編集する

汎用プロファイルをコピーする


Active Directory グループからユーザーを削除する

Active Directory グループから既存のユーザーを削除するには、グループ マネージャ モジュールを使います。グループ マネージャが利用できるのは、Active Directory を配置している場合だけです。

サイト用語、プロファイル定義、またはプロファイルに変更を加えるには、プロファイル モジュールへのアクセス許可が必要です。ビジネス デスク アクセス許可については、「ビジネス デスク セキュリティについて」を参照してください。

Active Directory グループからユーザーを削除するには

Active Directory グループからグループを削除するには

Active Directory グループからユーザーを削除するには

  1. [プロファイル] の [グループ マネージャ] をクリックします。
  2. [ユーザーまたはグループの検索] 画面の検索ペインで、[ユーザー] オプションを選択します。
  3. [検索フィルタ] ボックスに、削除するユーザーの名前を入力します。名前には、ワイルドカード文字 (*) を含めることができます。
  4. [検索開始] をクリックします。

    検索条件に一致する項目が 1 件もない場合や、1,000 件以上ある場合には、エラー メッセージが表示されます。検索が正常に終了した場合は、検索条件に一致する項目が表示されます。

  5. Active Directory から削除するユーザーをクリックし、ツール バーの 開く をクリックします。
  6. [ユーザーの管理] 画面の [このユーザーが所属するグループ] ボックスの一覧で、削除するユーザーが所属するグループをクリックし、ツール バーの オブジェクトをグループから削除 をクリックします。

    ユーザーが、選択した Active Directory グループから削除されます。

  7. 戻る をクリックして、[ユーザーまたはグループの検索] 画面に戻ります。

Active Directory グループからグループを削除するには

  1. [プロファイル] の [グループ マネージャ] をクリックします。
  2. [ユーザーまたはグループの検索] 画面の検索ペインで、[グループ] オプションを選択します。
  3. [検索フィルタ] ボックスに、Active Directory グループの削除元となるグループの名前を入力します。名前には、ワイルドカード文字 (*) を含めることができます。
  4. [検索開始] をクリックします。検索条件に一致する項目が 1 件もない場合や、1,000 件以上ある場合には、エラー メッセージが表示されます。検索が正常に終了した場合は、検索条件に一致する項目が表示されます。
  5. Active Directory グループの削除元となるグループをクリックし、ツール バーの 開く をクリックします。
  6. [グループの管理] 画面の [このグループに所属するオブジェクト] ボックスの一覧で、削除するグループをクリックし、ツール バーの オブジェクトをグループから削除 をクリックします。この結果が保存されます。

    グループが、選択した Active Directory グループから削除されます。

  7. 戻る をクリックして、[ユーザーまたはグループの検索] 画面に戻ります。


ビジネス デスク セキュリティ

ビジネス デスクのユーザー インターフェイスにセキュリティを設定するには、ビジネス デスクのアクセス許可モジュールを使用します。ビジネス デスクのユーザーに、特定のビジネス デスクの機能に対するアクセスを許可したり、アクセスを拒否したりできます。たとえば、ある商品カタログを編集するのをビジネス デスクの特定のユーザーに限定するように指定できます。

アクセス許可モジュールを使用して、ビジネス デスク機能へのアクセスを許可したり、アクセスを拒否したりします。アクセス許可モジュールは、システム管理者および上位のビジネス マネージャ向けに設計されています。アクセス許可モジュールを使用して、Microsoft Windows アカウントまたはグループを選択し、そのユーザーのグループに対してビジネス デスク アクセス許可を付与したり、拒否したりします。

ここでは、次のトピックについて説明します。

  • セキュリティのワークフロー ビジネス デスクのユーザーのアクセスを設定して管理するためのワークフローについて説明します。
  • ビジネス デスク セキュリティについて ビジネス デスク セキュリティについて、および、ビジネス デスク セキュリティを使用してユーザーのアクセスを制限する方法について説明します。
  • アクセス許可に関するヒント集 ビジネス デスク ユーザーにアクセス許可を付与する際の重要事項について説明します。
  • Windows アカウントを作成する ビジネス デスクのユーザーの Windows アカウントを追加する方法について説明します。
  • アカウント一覧に Windows アカウントを追加する アクセス許可モジュールのアカウント一覧に Windows アカウントを追加する方法について説明します。
  • Windows アカウントに対してビジネス デスク アクセス許可を設定する Windows アカウントに対してビジネス デスク アクセス許可を付与、拒否、または変更する方法について説明します。
  • アカウント一覧から Windows アカウントを削除する アクセス許可モジュールのアカウント一覧から Windows アカウントを削除する方法について説明します。
  • アカウントのアクセス許可を表示する アカウントのアクセス許可を表示および管理する方法について説明します。


セキュリティのワークフロー

次の図は、システム管理者によって Windows アカウントが作成されてから、ビジネス デスク アクセス許可モジュールを使用してアクセス許可を付与するまでのシナリオの例を示しています。

ビジネス デスク セキュリティのワークフロー

  1. システム管理者によって Windows アカウントが作成されます。
  2. ビジネス デスク アクセス許可モジュールを使用して、アクセス許可モジュールのアカウント一覧に Windows アカウントを追加します。
  3. ユーザーに、カタログを作成、編集、および削除するためのアクセス許可を付与します。
  4. ユーザーに、プロファイルを作成、編集、および削除するためのアクセス許可を付与します。
  5. ユーザーに、ビジネス デスクのカテゴリ、モジュール、およびタスクにアクセスするためのアクセス許可を付与します。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントを作成する

Windows アカウントに対してビジネス デスク アクセス許可を設定する


ビジネス デスク セキュリティについて

Microsoft Commerce Server 2002 には、Commerce Server ビジネス デスクのための非常に詳細なユーザー レベルおよびアプリケーション レベルのセキュリティが用意されています。ビジネス デスクのセキュリティ機能を使用すると、任意のプロファイル、カタログ、カタログのカテゴリ、およびプロパティにアクセスするためのアクセス許可を付与または拒否できます。さらに、ビジネス デスクのカテゴリおよびモジュールにセキュリティを設定し、各モジュールに関連するタスクを制限できます。

ビジネス デスクでは、ユーザーを認証するために Windows アカウントが使用されます。システム管理者は、どの Windows サーバーからでも Windows のユーザー アカウントまたはグループ アカウントを作成できます。Windows のユーザー アカウントまたはグループ アカウントが作成されると、ビジネス デスク アクセス許可モジュールを使用して、グループまたはユーザーに対してアクセス許可を付与または拒否することができます。

ここでは、次のトピックについて説明します。

  • Windows のユーザー アカウントとユーザー グループ
  • ビジネス デスクにおけるアクセス許可


Windows のユーザー アカウントとユーザー グループ

Windows サーバーにアクセスするすべてのユーザーには、ユーザー アカウントが必要です。ユーザーは、このアカウントを使用して、サーバーまたはドメインにログオンできます。システム管理者は、ユーザー名をアカウントに割り当て、そのユーザーの識別情報と権限を指定して、ユーザー アカウントを作成します。ユーザー アカウントには、ユーザー情報、グループ メンバシップ、およびセキュリティ ポリシー情報が含まれます。

システム管理者は、ユーザーのジョブで必要とされるビジネス デスクへのアクセスに従って、ユーザー グループを作成できます。たとえば、多くの場合、顧客満足度の担当者は、ビジネス デスクの注文モジュールにアクセスする必要があります。

Windows グループを作成することによって、権限およびアクセス許可を複数のユーザーに同時に付与することができます。システム管理者は、いつでも既存のグループに他のユーザーを追加することができます。これによって、追加されたユーザーには、そのグループに付与されている権限およびアクセス許可が直ちに与えられます。システム管理者は、Windows アカウントの作成時に、ローカル サーバー (ローカル アカウント) または Windows ドメイン (ドメイン アカウント) へのアクセスを許可できます。

注

  • Windows アカウントがアクセス許可モジュールのアカウント一覧に存在しない場合、または、Windows アカウントに "許可" オプションが割り当てられていない場合は、そのアカウントに割り当てられているユーザーはビジネス デスクにアクセスできません。
  • アクセス許可モジュールのアカウント一覧に、既に存在しない Windows アカウントがある場合、そのアカウントのユーザーはビジネス デスクのカテゴリおよびモジュールにアクセスできません。

関連項目

Windows アカウントを作成する

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧に Windows アカウントを追加する

アカウント一覧から Windows アカウントを削除する

アカウントのアクセス許可を表示する


ビジネス デスクにおけるアクセス許可

Windows ユーザー アカウントに対してビジネス デスク機能へのアクセスを許可および拒否するには、アクセス許可モジュールを使用します。

アクセス許可によって、ユーザーがビジネス デスクを使用して実行できるアクションが決まります。たとえば、一部のユーザーには、カタログを作成するアクセス許可、カタログ プロパティを変更するアクセス許可、または商品カタログをエクスポートするアクセス許可を付与することができます。また、他のユーザーには、商品カタログを表示のみをするアクセス許可を付与することができます。Windows のユーザー アカウントまたはグループに対してアクセス許可を付与することができます。

任意のプロファイル プロパティ、商品カタログ、カタログ カテゴリ、またはカタログ プロパティに対してアクセスを許可または拒否できます。ビジネス デスクの各カテゴリまたはモジュール、およびそれに関連する各タスクにセキュリティを設定できます。[セキュリティのアクセス許可] 画面に表示される各要素には、許可および拒否という 2 つのオプションがあります。

注

  • 拒否オプションは、常に、許可オプションより優先されます。拒否オプションを使用すると、ユーザーがグループ メンバシップを通じて継承しているアクセス許可を削除できます。

    たとえば、Sean Chai というメンバが Catalogs という Windows グループに属し、この Sean 以外のすべてのメンバに対してカタログ エディタ モジュールへのアクセス許可を付与する場合を考えます。この場合、Catalogs グループに対しては、カタログ エディタ モジュールへのアクセス許可を付与し、Sean に割り当てられているアカウントに対しては、アクセス許可を拒否します。Sean は、カタログ エディタ モジュールにアクセスできなくなりますが、Catalogs グループがアクセスを許可されているその他のモジュールには引き続きアクセスできます。

  • 管理者と、ローカル Administrators グループ (または、ビジネス デスクがドメイン コントローラ上で動作している場合は Domain Administrators グループ) のすべてのメンバは、常に、すべてのビジネス デスクの要素に完全にアクセスできます。管理者をユーザー グループに追加することはできません。

関連項目

Windows アカウントを作成する

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧に Windows アカウントを追加する

アカウント一覧から Windows アカウントを削除する

アカウントのアクセス許可を表示する


アクセス許可に関するヒント集

次のヒント集は、実装を担当するシステム管理者、およびビジネス マネージャを対象としています。

  • 動的レポートの [新しいレポート] ボタンおよび [レポートの保存] ボタンを制御するには、[新しいレポート] ボタンのビジネス デスク セキュリティ設定を使用する。

    ユーザーに対して、新しいレポートを作成するアクセス許可を拒否した場合は、そのユーザーはレポートを保存することができません。

    新しいレポートのアクセス許可がある場合、ビジネス デスクのユーザーは SQL レポート クエリをデータ ウェアハウスに保存することができます。このクエリは、レポートを実行するすべてのユーザーが実行することができます。レポートを作成するユーザーは、レポート クエリを直接実行するアクセス許可がない場合でもレポートをデータ ウェアハウスに保存できます。高位の SQL アクセス許可を持つユーザーは、レポートを実行することによってクエリを実行できます。このようにすると、損傷を与える可能性のあるクエリを実行することが回避できます。

  • 分析レポート内のデータへのアクセスにセキュリティを設定するには、分析レポートおよびリスト マネージャ モジュールにアクセス許可を適用する。

    キャンペーン マネージャ モジュールを使用するアクセス許可のあるユーザーは、キャンペーン マネージャを使用してレポートを [リスト マネージャ] にエクスポートすると、リスト内のユーザー データにアクセスできます。

    この場合に、ユーザー データにセキュリティを設定するには、ユーザーに対して、リスト マネージャ モジュールにレポートをエクスポートする権限を明示的に拒否します。

  • カタログ カテゴリのセキュリティを設定するには、カタログ エディタ モジュールを使用する。

    詳細については、「基本カタログのカテゴリを編集する」を参照してください。

  • カタログ プロパティの変更およびカタログの作成をする権限を付与または拒否するには、アクセス許可を割り当てる。

    プロパティのセキュリティは、すべてのカタログに対して機能します。カタログごとにプロパティ レベルのセキュリティを定義することはできません。たとえば、[説明] プロパティを変更するアクセス許可のないユーザーは、仮想カタログおよび基本カタログを含む、すべてのカタログの [説明] プロパティを変更できません。

    仮想カタログを作成するアクセス許可のあるユーザーには、仮想カタログに商品を追加するアクセス許可があります。

    カテゴリとカタログのセキュリティでは、特定のカタログまたはカテゴリ (およびそれに属する商品) がユーザーによって編集されるのを防ぐことができます。カテゴリとカタログのセキュリティでは、仮想カタログにこれらの項目がユーザーによって追加されるのを防ぐことはできません。

  • サイトをパックする前に、ビジネス デスク アクセス許可を持つ Windows アカウントを確認する。

    Commerce Server サイト パッケージャを使用してサイトをアンパックするときに、ビジネス デスク アクセス許可を持つ Windows アカウントもアンパックされます。

    たとえば、Commerce Server がある 1 台のコンピュータにインストールされていて、ローカルのグループおよびアカウントが追加されているとします。このサイトをパックし、次に、そのサイトを別のコンピュータでアンパックすると、アカウントもアンパックされます。ビジネス デスクを開いた時点で、アクセス許可はそのコンピュータに存在します。


Windows アカウントを作成する

ユーザーに対して、ビジネス デスク機能へのアクセスを許可および拒否するには、アクセス許可モジュールを使用します。ビジネス デスク アクセス許可を設定する前に、システム管理者によって Windows サーバー上または Windows ドメイン内に Windows アカウントが作成されていることが必要です。

必要な Windows ユーザー アカウントまたはグループ アカウントを作成する場合は、システム管理者に連絡してください。Windows アカウントを作成する方法の詳細については、Microsoft Windows 2000 ヘルプの「ローカル ユーザーとグループ」および「Active Directory ユーザー アカウントとコンピュータ アカウント」を参照してください。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧に Windows アカウントを追加する

アカウント一覧から Windows アカウントを削除する

アカウントのアクセス許可を表示する


アカウント一覧に Windows アカウントを追加する

ビジネス デスク アクセス許可を設定する前に、アクセス許可モジュールを使用して、アクセス許可モジュールのアカウント一覧に Windows のアカウントおよびグループを追加する必要があります。アクセス許可モジュールのアカウント一覧には、システム管理者によって作成された Windows のアカウントとグループがあります。

注

  • Windows アカウントがアクセス許可モジュールのアカウント一覧に存在しない場合、または、Windows アカウントに "許可" オプションが割り当てられていない場合は、そのアカウントに割り当てられているユーザーはビジネス デスクにアクセスできません。
  • アクセス許可モジュールのアカウント一覧に、既に存在しない Windows アカウントがある場合、そのアカウントのユーザーはビジネス デスクのカテゴリおよびモジュールにアクセスできません。

アクセス許可モジュールのアカウント一覧に Windows アカウントを追加するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の [Windows アカウント] セクションで、[リストに追加] をクリックします。
  3. [アカウントの追加] ダイアログ ボックスで、アクセス許可を追加する Windows アカウントを入力し、[追加] をクリックします。
  4. [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 戻る をクリックします。

アクセス許可モジュールのアカウント一覧に Windows アカウントが追加されます。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントを作成する

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧から Windows アカウントを削除する


Windows アカウントに対してビジネス デスク アクセス許可を設定する

ビジネス デスクのユーザーに対して Windows アカウントに基づいてアクセス許可を付与、拒否、または変更するには、アクセス許可モジュールを使用します。Windows アカウントにアクセス許可を設定する前に、アクセス許可モジュールのアカウント一覧にそのアカウントを追加する必要があります。

ビジネス デスクのカテゴリ、モジュール、またはタスクのすべてに対してアクセスを許可または拒否できます。アクセス許可を使用して、カタログ、カタログ プロパティ、プロファイル、およびプロファイル プロパティへのアクセスを制限することもできます。

ビジネス デスクの特定のユーザーがエンティティにアクセスできるグループのメンバであり、その特定のユーザーに対してそのエンティティへのアクセスを拒否する場合は、アクセス許可モジュールのアカウント一覧にそのユーザー アカウントを追加し、セキュリティを設定するタスクの拒否オプションを選択する必要があります。拒否オプションは許可オプションより優先されるので、Windows グループをセキュリティを損なうことなく使用できる利点があります。

拒否オプションは、グループ アカウントの特定のメンバからアクセス許可を除去する場合にだけ使用します。グループの全体に対して、ビジネス デスクのカテゴリ、モジュール、またはタスクへのアクセスを拒否するには、許可オプションの選択を解除します。

注

  • ユーザーに対して、新しいレポートを作成するアクセス許可を拒否した場合は、そのユーザーはレポートを保存することができません。

    新しいレポートのアクセス許可がある場合、ビジネス デスクのユーザーは SQL レポート クエリをデータ ウェアハウスに保存することができます。このクエリは、レポートを実行するすべてのユーザーが実行することができます。レポートを作成するユーザーは、レポート クエリを直接実行するアクセス許可がない場合でもレポートをデータ ウェアハウスに保存できます。高位の SQL アクセス許可を持つユーザーは、レポートを実行することによってクエリを実行できます。このようにすると、損傷を与える可能性のあるクエリを実行することが回避できます。

  • 既定では、管理者と、およびローカル Administrators グループ (または、ビジネス デスクがドメイン コントローラ上で動作している場合は Domain Administrators グループ) のすべてのメンバは、常に、すべてのビジネス デスク要素に完全にアクセスできます。
  • ビジネス デスクのユーザーがドメイン アカウントでネットワークにログオンしていて、そのドメイン アカウントが別のビジネス デスク Web サーバー上でアクセス許可が定義されているローカル グループのメンバである場合、そのローカル グループのアクセス許可は付与されません。
  • ユーザーに対して、分析レポートを実行するアクセス許可を拒否できます。ただし、キャンペーン マネージャ モジュールを使用するアクセス許可のあるユーザーは、キャンペーン マネージャを使用してレポートをリスト マネージャにエクスポートすると、リスト内のユーザー データにアクセスできます。

    この場合に、このユーザー データにセキュリティを設定するには、ユーザーがリスト マネージャ モジュールにレポートをエクスポートする権限を明示的に拒否します。

Windows アカウントに対してアクセス許可を設定するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の、[Windows アカウント] ボックスのアクセス許可モジュールのアカウント一覧で、アクセス許可を追加する Windows アカウントを選択します。
  3. [セキュリティのアクセス許可] 画面の [設定可能なエンティティ] セクションで、次の操作を行います。
    項目 | 操作
    [エリア エンティティ] セキュリティを設定できるカタログ エンティティとプロファイル エンティティをすべて表示します。セキュリティを設定できるのは、カタログ、カタログ プロパティ、およびプロファイル定義です。

    カタログ カテゴリのセキュリティを設定するには、カタログ エディタ モジュールを使用します。詳細については、「基本カタログのカテゴリを編集する」を参照してください。
    [許可] | 選択した Windows アカウントまたはグループに対し、それぞれのエンティティへのアクセスを許可するには、このチェック ボックスをオンにします。
    [拒否] | 選択した Windows アカウントまたはグループに対し、それぞれのエンティティへのアクセスを拒否するには、このチェック ボックスをオンにします。拒否オプションをオンにすると、許可オプションの内容は無視されます。
    [アカウント リスト] 当該エンティティについて、アクセス許可モジュールのアカウント一覧にある全 Windows アカウントのアクセス許可設定を表示するには、 省略記号 ボタンをクリックします。

    [アカウント] ダイアログ ボックスでは、既存のアカウントについて、アクセスを許可または拒否することを指定したり、アクセス許可モジュールのアカウント一覧に新しい Windows アカウントを追加したりできます。

    新しい Windows アカウントの追加、グループへのユーザーの追加、またはグループからのユーザーの削除を行う場合は、システム管理者に連絡してください。
    [詳細] 各エンティティについての詳細なセキュリティ オプションを表示するには、このボタンをクリックします。

    [アクセス許可の詳細 : <エンティティ>] 画面に、実行可能な操作 ([編集] など) が表示されます。また、ユーザーに対して編集を許可または拒否できる要素が一覧表示されます。

    [セキュリティのアクセス許可] 画面に戻るには、 戻る をクリックします。
  4. [セキュリティのアクセス許可] 画面の [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションで、次の操作を行います。
    項目 | 操作
    [許可] | 選択した Windows アカウントまたはグループに対し、それぞれのエンティティへのアクセスを許可するには、このチェック ボックスをオンにします。
    [拒否] | 選択した Windows アカウントまたはグループに対し、それぞれのエンティティへのアクセスを拒否するには、このチェック ボックスをオンにします。拒否オプションをオンにすると、許可オプションの内容は無視されます。
    [アカウント リスト] 当該エンティティについて、アクセス許可モジュールのアカウント一覧にある全 Windows アカウントのアクセス許可設定を表示するには、 省略記号 ボタンをクリックします。

    [アカウント] ダイアログ ボックスでは、既存のアカウントについて、アクセスを許可または拒否することを指定したり、アクセス許可モジュールのアカウント一覧に新しい Windows アカウントを追加したりできます。

    新しい Windows アカウントの追加、グループへのユーザーの追加、またはグループからのユーザーの削除を行う場合は、システム管理者に連絡してください。
    [タスクのアクセス許可] 選択したビジネス デスク モジュールについて特定のタスクを実行するアクセス許可を与えたり拒否したりするには、このボタンをクリックします。

    [アクセス許可の詳細 : <ビジネス デスク カテゴリ>] 画面が表示され、実行可能な操作 (新規作成など) が示されます。ユーザーに対して、新しいエンティティの作成を許可または拒否できるページまたはタスクがすべて表示されます。

    たとえば、あるユーザーが新しいエンティティを作成することを禁止する場合は、[新規] タスクと [保存して新規作成] タスクの [拒否] チェック ボックスをオンにします。[新規] タスクだけが拒否されている場合、ユーザーは [保存して新規作成] タスク ボタンを使えば、新しいエンティティを作成できます。

    [セキュリティのアクセス許可] 画面に戻るには、 戻る をクリックします。
  5. 変更を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

重要

  • ビジネス デスク ユーザーのアクセス許可を変更した後で新しい設定を有効にするためには、そのユーザーはビジネス デスクを閉じて再起動する必要があります。

    ビジネス デスク ユーザーの Windows ID (グループ メンバシップ、権限、ACL など) が変更された場合は、そのユーザーはいったんログオフし、新しい設定がサーバーで有効になるように再度ログオンする必要があります。そのようにしないと、クライアントは正しく機能しても、サーバーは正しく機能しません。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントを作成する

アカウント一覧に Windows アカウントを追加する

アカウント一覧から Windows アカウントを削除する

アカウントのアクセス許可を表示する


アカウント一覧から Windows アカウントを削除する

アクセス許可モジュールを使用すると、アクセス許可モジュールのアカウント一覧にある Windows アカウントを削除できます。アクセス許可モジュールのアカウント一覧から Windows アカウントを削除すると、そのユーザーはビジネス デスクにアクセスできなくなります。

削除されたアカウントは、そのアクセス許可もすべて削除されます。

アクセス許可モジュールのアカウント一覧から Windows アカウントを削除するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の、[Windows アカウント] ボックスのアクセス許可モジュールのアカウント一覧で、削除する Windows アカウントを選択し、[リストから削除] をクリックします。
  3. [アカウントを削除しますか?] ダイアログ ボックスで [はい] をクリックします。
  4. [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 戻る をクリックします。

アクセス許可モジュールのアカウント一覧から Windows アカウントが削除されます。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントを作成する

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧に Windows アカウントを追加する


アカウントのアクセス許可を表示する

Windows アカウントのアクセス許可を管理するには、アクセス許可モジュールを使用します。既に設定されているアカウントのアクセス許可を表示することができ、さらに、必要に応じて変更することもできます。

Windows アカウントのアクセス許可を表示するには

  1. [セキュリティ] で、[アクセス許可] をクリックします。
  2. [セキュリティのアクセス許可] 画面の、[Windows アカウント] ボックスのアクセス許可モジュールのアカウント一覧で、アクセス許可を表示する Windows アカウントを選択します。
  3. [セキュリティのアクセス許可] 画面の [安全なエンティティ] セクションで、次の操作を行います。
    項目 | 操作
    [エリア エンティティ] セキュリティを設定できるカタログ エンティティとプロファイル エンティティをすべて表示します。セキュリティを設定できるのは、カタログ、カタログ プロパティ、およびプロファイル定義です。

    カタログ カテゴリのセキュリティを設定するには、カタログ エディタ モジュールを使用する。詳細については、「基本カタログのカテゴリを編集する」を参照してください。
    [許可] | 選択した Windows アカウントまたはグループがフル アクセスを付与されているエンティティをすべて表示します。
    [拒否] | 選択した Windows アカウントまたはグループがアクセスを拒否されているエンティティをすべて表示します。
    [アカウント リスト] 当該エンティティについて、アクセス許可モジュールのアカウント一覧にある全 Windows アカウントのアクセス許可設定を表示するには、 省略記号 ボタンをクリックします。

    [アカウント] ダイアログ ボックスでは、既存のアカウントについて、アクセスを許可または拒否することを指定したり、アクセス許可モジュールのアカウント一覧に新しい Windows アカウントを追加したりできます。

    新しい Windows アカウントの追加、グループへのユーザーの追加、またはグループからのユーザーの削除を行う場合は、システム管理者に連絡してください。
    [詳細] 各エンティティの詳細なセキュリティ オプションを表示するには、 詳細... ボタンをクリックします。

    [アクセス許可の詳細 : <エンティティ>] 画面に、実行可能な操作 ([編集] など) が表示されます。また、ユーザーに対して編集を許可または拒否できる要素が一覧表示されます。

    [セキュリティのアクセス許可] 画面に戻るには、 戻る をクリックします。
  4. [セキュリティのアクセス許可] 画面の [ビジネス デスク カテゴリ/モジュール/タスクにアクセス] セクションで、次の操作を行います。
    項目 | 操作
    [許可] | 選択した Windows アカウントまたはグループがフル アクセスを付与されているエンティティをすべて表示します。
    [拒否] | 選択した Windows アカウントまたはグループがアクセスを拒否されているエンティティをすべて表示します。
    [アカウント リスト] 当該エンティティについて、アクセス許可モジュールのアカウント一覧にある全 Windows アカウントのアクセス許可設定を表示するには、 省略記号 ボタンをクリックします。

    [アカウント] ダイアログ ボックスでは、既存のアカウントについて、アクセスを許可または拒否することを指定したり、アクセス許可モジュールのアカウント一覧に新しい Windows アカウントを追加したりできます。

    新しい Windows アカウントの追加、グループへのユーザーの追加、またはグループからのユーザーの削除を行う場合は、システム管理者に連絡してください。
    [タスクのアクセス許可] 選択したビジネス デスク モジュールについて特定のタスクを実行するアクセス許可を与えたり拒否したりするには、このボタンをクリックします。

    [アクセス許可の詳細 : <ビジネス デスク カテゴリ>] 画面が表示され、実行可能な操作 (新規作成など) が示されます。ユーザーに対して、新しいエンティティの作成を許可または拒否できるページまたはタスクがすべて表示されます。

    たとえば、あるユーザーが新しいエンティティを作成することを禁止する場合は、[新規] タスクと [保存して新規作成] タスクの [拒否] チェック ボックスをオンにします。[新規] タスクだけが拒否されている場合、ユーザーは [保存して新規作成] タスク ボタンを使えば、新しいエンティティを作成できます。

    [セキュリティのアクセス許可] 画面に戻るには、 戻る をクリックします。
  5. 変更を保存して [ビジネス デスクへようこそ!] 画面に戻るには、ツール バーの 保存して前の画面に戻る をクリックします。

関連項目

ビジネス デスク セキュリティについて

Windows アカウントを作成する

アカウント一覧に Windows アカウントを追加する

Windows アカウントに対してビジネス デスク アクセス許可を設定する

アカウント一覧から Windows アカウントを削除する


ビジネス デスクに関するトラブルシューティング

ここでは、Commerce Server ビジネス デスクを使用しているときに発生する可能性がある問題について説明します。特定の分野ごとに発生する可能性のある問題が一覧表示されていますので、該当するリンクをクリックして詳細情報を参照してください。

技術的な支援が必要な場合は、まずシステム管理者またはサイト開発者に問い合わせてください。また、Microsoft オンライン ニュースグループにもアクセスできます。Commerce Server 2002 ニュースグループの詳細については、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=945

次の表は、ビジネス デスクの分野ごとの、発生する可能性がある問題の一覧です。

分野 問題
インストール
  • ビジネス デスクをインストールできない
ビジネス デスク
  • &#13; が [説明] ボックスに表示される
  • ライブラリが登録されていないというメッセージが表示される
  • ビジネス デスクを実行できない
  • ユーザーにページを表示する権限がない – 再認証要求
  • "ビジネス デスクへのアクセス エラー" というエラー メッセージが表示される
  • " Commerce Administration オブジェクトでエラーが発生しました : 説明 - GlobalConfig:Initialize : ユーザー <ユーザー名> のログインに失敗しました。" というエラー メッセージが表示される
  • Web サイトに変更が反映されない
  • 同じビジネス デスクのインスタンスを 2 つ開けない
  • ヘルプのフルテキスト検索で検索結果が返されない
  • 日付が正しく表示されない
分析
  • レポートを実行できない
  • 静的レポートの実行情報のダイアログ ボックスが表示され続ける
  • レポートにデータが表示されない
  • バイヤーの参照の状況レポートのエラー
  • 静的レポートの実行に失敗する
  • キー番号に対して見つからないメンバ名
  • SQL Server ベースの動的レポートが大量のメモリを消費する
キャンペーン
  • ダイレクト メーラーのジョブを実行できない
  • ダイレクト メーラーのジョブがエラーを返さずに失敗する
  • ダイレクト メール キャンペーンを保存できない
  • キャンペーン項目が Web サイトに予想どおりに表示されない
  • リスト マネージャにデータが表示されない
  • Web サイトを更新して新しいキャンペーン項目を追加することができない
  • イメージ ファイルをプレビューできない
カタログ
  • カタログをインポートできない
  • カタログを取引先へ送信できない
  • Samplecatalog.xml ファイルをインポートできない
  • 項目がコレクションに存在しないというエラーが Web サイトで生成される


ビジネス デスク全般の問題

  • ビジネス デスクをインストールできない
  • &#13; が [説明] ボックスに表示される
  • ライブラリが登録されていないというメッセージが表示される
  • ビジネス デスクを実行できない
  • ユーザーにページを表示する権限がない – 再認証要求
  • "ビジネス デスクへのアクセス エラー" というエラー メッセージが表示される
  • Web サイトに変更が反映されない
  • 同じビジネス デスクのインスタンスを 2 つ開けない
  • ヘルプのフルテキスト検索で検索結果が返されない
  • 日付が正しく表示されない


ビジネス デスクをインストールできない

説明

Commerce Server ビジネス デスクの Web サイトに接続してビジネス デスク クライアントをインストールしようとすると、次のメッセージが表示される場合があります。

ビジネス デスクのインストール エラー

解決方法

Windows XP および Internet Explorer 6.0 を使用している場合は、[署名済み ActiveX コントロールのダウンロード] および [未署名の ActiveX コントロールのダウンロード] を有効にする必要があります。

他のオペレーティング システムおよび他の Internet Explorer を使用している場合は、[署名済み ActiveX コントロールのダウンロード] だけを有効にします。

ビジネス デスクのセットアップを継続するには

  1. Internet Explorer で、[ツール] メニューの [インターネット オプション] をクリックします。
  2. [セキュリティ] タブをクリックし、[イントラネット] ゾーンを選択して、[レベルのカスタマイズ] をクリックします。
  3. [設定] ボックスの一覧の [ActiveX コントロールとプラグイン] で、[署名済み ActiveX コントロールのダウンロード] を有効にします。Windows XP および Internet Explorer 6.0 を使用している場合は、[未署名の ActiveX コントロールのダウンロード] および [スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化とスクリプトの実行] も有効にします。
  4. [OK] をクリックし、[警告] ダイアログ ボックスで [はい] をクリックします。
  5. [OK] をクリックして、[インターネット オプション] ダイアログ ボックスを閉じます。
  6. ツール バーの 更新 をクリックし、ブラウザのウィンドウにビジネス デスクの URL を入力して、ビジネス デスクのインストールを続けます。たとえば、「http://<サーバー名>/myretailbizdesk」と入力します。


&#13; が [説明] ボックスに表示される

説明

[説明] ボックスまたは他のボックスに、いくつかの行を入力します。次に、ツール バーの 保存して前の画面に戻る をクリックします。作成した新しい商品用の [説明] 列に、&#13; が、ボックス内のすべてのキャリッジ リターンに対して表示されます。

解決方法

これはエラーではありません。Commerce Server は、ビジネス デスク クライアントに送信されるデータに対して、データベースのキャリッジ リターンを &#13; に変換します。データが表示されるときに、Commerce Server は &#13; を再びキャリッジ リターンに変換します。


ライブラリが登録されていないというメッセージが表示される

説明

Commerce Server ビジネス デスクを使用しているときに "ライブラリは登録されていません" というメッセージが表示されます。

解決方法

\winnt\system32 ディレクトリにある Vbscript.dll の再登録が必要な場合があります。システム管理者に問い合わせてください。


ビジネス デスクを実行できない

説明

問題なく Commerce Server ビジネス デスクを実行していたにもかかわらず、ビジネス デスクを起動しようとすると、次のいずれかのエラー メッセージが表示されました。

  • ビジネス デスクの読み込み中にエラーが発生しました。
  • ビジネス デスク アプリケーションの読み込み中にエラーが発生しました。

解決方法

ビジネス デスク アプリケーションを運用している Web サーバーでシステム管理者のパスワードが変更されると、その変更によって上記のエラー メッセージのうち 1 つが発生する場合があります。


ユーザーにページを表示する権限がない - 再認証要求

このページに対するフィードバックを送信する Commerce Server 2002

ユーザーにページを表示する権限がない – 再認証要求

説明

Commerce Server ビジネス デスクでは、次のいずれか 1 つの状態では、ページを表示できません。

  • ビジネス デスクから、予期しないときにユーザー名とパスワードの要求が表示される。
  • ユーザーにページを表示する権限がないというエラー メッセージが表示される。
  • 正しいログオン情報を入力した後に [ネットワーク パスワードの入力] ダイアログ ボックスが再表示される。

解決方法

ビジネス デスクを Commerce Server とは別の Web サーバーで実行している場合は、Commerce Server を実行している Web サーバーのメモリが不足している可能性があります。システム管理者に問い合わせてください。


"ビジネス デスクへのアクセス エラー" というエラー メッセージが表示される

説明

問題なくビジネス デスクを実行していたにもかかわらず、Commerce Server ビジネス デスクを起動できません。特定のモジュールを開こうとすると、次のメッセージが表示されます。

ビジネス デスクへのアクセス エラー

解決方法

与えられていないユーザー権限を必要とするモジュールを開こうとしています。必要なアクセス許可を得るには、システム管理者に問い合わせてください。


"Commerce Administration オブジェクトでエラーが発生しました : 説明 - GlobalConfig:Initialize : ユーザー <ユーザー名> のログインに失敗しました。" というエラー メッセージが表示される

説明

使用しているセグメント ビューアおよび予測サービスは、ローカル アカウントによって実行されています。

解決方法

予測サービスでドメイン アカウントを使用するように変更します。詳細については、「Windows 認証を使って Commerce Server を配置する」を参照してください。


Web サイトに変更が反映されない

説明

Commerce Server ビジネス デスクに変更を行った後で Web サイトを表示しても、変更が反映されません。

解決方法

Commerce Server のキャッシュの更新が必要な場合があります。キャンペーンの発行モジュール、注文コードの発行モジュール、プロファイルの発行モジュールのいずれかを使ってサイトを更新してください。カタログ エディタ モジュールのツール バーの 発行 ボタンを使ってカタログを発行する必要がある場合もあります。


同じビジネス デスクのインスタンスを 2 つ開けない

説明

同じサイト用の同じ Commerce Server ビジネス デスク クライアントの 2 つのインスタンスを開こうとしたときに、ビジネス デスクが開きません。

解決方法

同じサイト用の同じビジネス デスク クライアントの 2 つのインスタンスを、コンピュータ上で同時に開くことはできません。ただし、異なるサイト用の 2 つのビジネス デスク クライアントを同時に実行することはできます。


ヘルプのフルテキスト検索で検索結果が返されない

説明

Commerce Server ビジネス デスクのヘルプで検索を実行したときに、検索結果が返されません。

解決方法

システム管理者に、ビジネス デスク アプリケーションを運用している Web サーバーで Indexing Service を起動するように依頼してください。Indexing Service が起動してからヘルプのコンテンツを格納したフォルダが利用可能になるまで、時間がかかる場合があります。Indexing Service は必ず自動起動に設定してください。


日付が正しく表示されない

説明

システム管理者によって、日付区切り記号がスラッシュ記号 (/) から他の日付区切り記号、たとえばハイフン (-) に変更された場合、Commerce Server ビジネス デスクの日付は正しく表示されません。

解決方法

システム管理者は、日付区切り記号を変更した後でビジネス デスク アプリケーションを再起動する必要があります。


ビジネス デスク分析に関するトラブルシューティング

  • レポートを実行できない
  • 静的レポートの実行情報のダイアログ ボックスが表示され続ける
  • レポートにデータが表示されない
  • バイヤーの参照の状況レポートのエラー
  • 静的レポートの実行に失敗する
  • キー番号に対して見つからないメンバ名
  • SQL Server ベースの動的レポートが大量のメモリを消費する


レポートを実行できない

説明

レポート モジュールからレポートを実行しようとしたときに、何も起きないことがあります。静的レポートを実行しようとした場合は、実行失敗のエラーが返されるか、またはレポートにデータが含まれません。

注

  • 動的レポートを実行している場合は、次のエラー メッセージが表示されます。

    BOF と EOF のいずれかが True になっているか、または現在のレコードが削除されています。

解決方法

システム管理者に問い合わせてください。レポートを正常に実行するには、システム管理者がデータ ウェアハウスにデータをインポートする必要があります。


静的レポートの実行情報のダイアログ ボックスが表示され続ける

説明

分析で静的レポートを実行するときに、サイト名にダブルバイト文字を使用していると、静的レポートの実行情報のダイアログ ボックスが表示され続けます。そのダイアログ ボックスで [いいえ] を選択した後でも表示され続けます。

解決方法

サイトをセットアップするときは、サイト名に ASCII 文字だけを使用します。そのようにセットアップされていない場合は、静的レポートを実行するときに、このダイアログ ボックスで [いいえ] を選択します。もう一度静的レポートを実行し、左側のウィンドウの [分析] リンクをクリックして、分析モジュールを更新します。このダイアログ ボックスは表示されなくなります。


レポートにデータが表示されない

説明

ブラウザに動的レポートを表示したときに、データが表示されません。Commerce Server ビジネス デスクは、動的レポート内の 1 つのディメンションにつき最大 25 万までのメンバをサポートしています。ディメンションあたり 25 万以上のメンバを含むデータ セットに対して動的レポートを実行した場合には、Office XP Web Components (OWC) のタイムアウトが発生し、ブラウザ ウィンドウにデータを含まないレポートが表示されます。

解決方法

25 万以上のメンバを持つディメンションがデータに含まれている場合は、システム管理者に問い合わせて、データを分析するためのカスタム静的レポートの作成を要求してください。


バイヤーの参照の状況レポートのエラー

説明

バイヤーの参照の状況レポートを実行しようとしたときに、エラー メッセージが表示されます。

解決方法

システム管理者に問い合わせてください。システム管理者は、Commerce Server 2002 ヘルプで、このエラーの解決方法を参照できます。


静的レポートの実行に失敗する

説明

静的レポートを実行しようとしたときに、レポートが生成されず、タスク バー ボタンがすべて無効になります。インターネット インフォメーション サービス (IIS) がリセットされたために IIS COM エラーが発生したというエラー メッセージが表示されます。

解決方法

システム管理者に問い合わせて、静的レポートの実行中に IIS がリセットされたかどうかを確認してください。IIS がリセットされた場合は、いったん Commerce Server ビジネス デスクを終了し、もう一度開いてください。次に、静的レポートを再実行します。


キー番号に対して見つからないメンバ名

説明

広告の利用状況 – ページ グループ ディメンション レポート、または商品別売り上げ – 顧客ディメンション レポートを実行しているときに、レポートに "キー番号に対して見つからないメンバ名" と表示されることがあります。このエラーは、データ ウェアハウスにインポートされたデータに、必要な一意の値がない場合に発生します。

解決方法

次のいずれかの解決方法を使用します。

  • 広告の利用状況レポート システム管理者に問い合わせて、キャンペーン データ インポート データ変換サービス (DTS) タスクを実行し、もう一度レポート準備 DTS タスクを実行してください。ソース データベースからデータが削除されている場合に、この問題が発生します。
  • 商品別売り上げレポート システム管理者に問い合わせて、プロファイル データ インポート DTS タスクを実行し、もう一度レポート準備 DTS タスクを実行してください。ソース データベースからデータが削除されている場合に、この問題が発生します。


SQL Server ベースの動的レポートが大量のメモリを消費する

説明

SQL Server ベースの動的レポートを実行すると、ピボットコントロールが、レポートを表示する前にすべてのデータをメモリに読み込もうとします。たとえば、プライマリ テーブルの 1 つに 40 万の行がある場合、広告の表示回数とヒット率 (キャンペーン項目別) レポートを実行すると、システム メモリを約 700 MB 消費します。

解決方法

SQL Server ベースの動的レポートを実行するときは、メモリ消費に注意して計画を立ててください。

関連項目

新しい動的レポート定義を作成する


ビジネス デスク キャンペーンに関するトラブルシューティング

  • ダイレクト メーラーのジョブを実行できない
  • ダイレクト メーラーのジョブがエラーを返さずに失敗する
  • ダイレクト メール キャンペーンを保存できない
  • キャンペーン項目が Web サイトに予想どおりに表示されない
  • リスト マネージャにデータが表示されない
  • Web サイトを更新して新しいキャンペーン項目を追加することができない
  • イメージ ファイルをプレビューできない


ダイレクト メーラーのジョブを実行できない

説明

実行されないダイレクト メーラー ジョブがあるにもかかわらず、エラー メッセージが返されません。

解決方法

システム管理者に問い合わせてください。ダイレクト メーラー ジョブがパーソナライズされたダイレクト メール キャンペーンである場合は、システム管理者が、パフォーマンス上の理由でダイレクト メーラー ジョブを抑止している可能性があります。ダイレクト メール専用の Web サーバーがない場合、システム管理者が、トラフィックの低い時間帯にキャンペーン項目を開始するように設定している可能性があります。これは、ダイレクト メールはユーザーと同様に Web サーバーにもアクセスするからです。ダイレクト メール リストの量によっては、Web サーバーのパフォーマンスに影響を与えることがあります。


ダイレクト メーラーのジョブがエラーを返さずに失敗する

説明

ダイレクト メーラー ジョブの開始に失敗したにもかかわらず、失敗の理由を通知するエラー メッセージが表示されません。

解決方法

システム管理者に問い合わせてください。この失敗には、いくつかの原因が考えられます。たとえば、スケジュールの設定されたダイレクト メーラー ジョブの実行予定時刻に SQL Server Agent が停止している場合、ジョブは実行されず、失敗は記録されません。ジョブが実行されなかったことを示すメッセージは表示されません。システム管理者が、SQL Server Enterprise Manager の SQL Server Agent コントロールから手動でジョブを開始する必要があります。


ダイレクト メール キャンペーンを保存できない

説明

SQL Server Agent が実行されていない場合にダイレクト メール キャンペーンを作成すると、そのキャンペーンは保存できません。Commerce Server ビジネス デスクの反応が遅くなり、サーバーが実行されていないという SQL Server Agent メッセージが表示されます。

解決方法

システム管理者に問い合わせてください。システム管理者によって SQL Server Agent が開始されると、ダイレクト メール キャンペーンは保存できます。


キャンペーン項目が Web サイトに予想どおりに表示されない

説明

作成された広告キャンペーン項目や割引キャンペーン項目が、Web サイトに表示されません。

解決方法

キャンペーン マネージャ モジュールを使って新しい広告を作成した場合、広告を発行するまで、または定期的な更新サイクルで広告が検出されるまで、広告は非アクティブになります。特に指定しない限り、広告は 5 分ごとに自動的に発行されます。ただし、割引は自動的には発行されないので、手動で発行する必要があります。また、事前に広告または割引を作成して非アクティブにしていた場合は、再びその広告または割引を開いて、アクティブにする必要があります。

注

  • 新しい Web サイトの広告キャンペーンを更新するには、まずそのサイトを訪問する必要があります。キャンペーン項目を運用サイトに送信するには、Web ファームのすべてのサーバーをあらかじめ更新する必要があります。

次の表は、Web サイトに広告または割引が表示されない場合に確認する必要がある、その他の状況を示しています。

説明 | 解決方法
キャンペーン項目は発行されていますか? | 発行されていない場合は、キャンペーンの発行モジュールを使ってキャンペーンを発行します。
広告またはキャンペーン項目の状態はアクティブですか? | 非アクティブな場合は、広告またはキャンペーン項目を開き、状態をアクティブに変更します。
目標値またはウエイトを定義していますか? | 有料広告の場合、広告キャンペーンの目標値またはウエイトを指定する必要があります。
対象化、業種コード、または表示上限回数に矛盾はありませんか? | この広告に関連する対象化、業種コード、または表示上限回数が実行を妨げていないかどうかを確認してください。
広告またはキャンペーンの日付が範囲外ではありませんか? | 広告またはキャンペーンの日付が、遠い未来に設定されていないかどうかを確認してください。
表示しようとした広告の代わりに他の広告が表示されていませんか? | その場合には、表示頻度 (NOD) の高い他の広告が優先されていないかどうかを確認してください。
広告が古いページ グループで実行されるように設定されていませんか? | Web サイトのデザインを変更した場合、広告が前のページ グループで実行されるようにスケジュール設定されている可能性があります。新しい Web サイトの場合は、新しい広告を設定する必要があります。
広告が自社広告ではありませんか? | 広告が自社広告として設定されている場合は、すべての有料広告が表示頻度 (NOD) を達成するまで、Web サイトに表示されません。
対象式が広告の表示を妨げていませんか? | サイト訪問者のプロパティが対象式の定義を満たしていない場合、広告は表示されません。
広告スペースのサイズが制限されていませんか? | Web サイトの広告スペースが特定のコンテンツ サイズに制限されており、広告がそのサイズに該当しない場合、広告は表示されません。


リスト マネージャにデータが表示されない

説明

ユーザー モジュールで大量のユーザー データ セットに対する更新操作または検索操作を実行すると、処理タイムアウトが発生することがあります。

操作のタイムアウトはさまざまな要因によって発生し、データを表示できないこともあります。多数のエンティティが取得されることも、要因の 1 つとなりえます。

解決方法

システム管理者に問い合わせてください。システム管理者は、Commerce Server 2002 ヘルプで、このエラーの解決方法を検索できます。


Web サイトを更新して新しいキャンペーン項目を追加することができない

説明

必要なアクセス許可を持っていない場合やデータベースへの接続に問題がある場合には、Web サイトは更新されず、新しいキャンペーン項目は追加されません。

解決方法

システム管理者に問い合わせてください。システム管理者は、適切なアクセス許可をユーザーに割り当てて、データベースへの接続の問題を解決することができます。

また、キャンペーンの発行には Bdrefresh.asp という ASP ページが必要になります。このページは、各 Web サーバー上で、サイトのルート ディレクトリに置いておく必要があります。


イメージ ファイルをプレビューできない

説明

ビジネス デスクを SupplierActiveDirectory ソリューション サイトに基づいて構築し、認証フィルタを有効にしている場合は、認証コードが設定されるため、イメージ ファイルを表示することはできません。

解決方法

システム管理者に問い合わせてください。イメージ ファイルをビジネス デスクでプレビューするには、ビジネス デスクの仮想ルート フォルダに格納されているすべてのイメージ ファイルについて、匿名アクセスを有効にする必要があります。匿名アクセスの有効化については、「Supplier ソリューション サイトで認証フィルタを有効にする」を参照してください。


ビジネス デスク カタログに関するトラブルシューティング

  • カタログをインポートできない
  • カタログを取引先へ送信できない
  • Samplecatalog.xml ファイルをインポートできない
  • 項目がコレクションに存在しないというエラーが Web サイトで生成される


カタログをインポートできない

説明

カタログをインポートしようとすると、インポートに失敗することがあります。たとえば、カタログ ファイルが C:\Documents and Settings\<ユーザー名>\Desktop にある場合、ファイルの場所が原因でインポートに失敗します。"カタログ インポート プロセスが正常に開始されました" というメッセージが表示されますが、[カタログ エディタ] をクリックしてページを再度読み込んでも、カタログがインポートされていません。

解決方法

システム管理者に問い合わせてください。インターネット インフォメーション サービス (IIS) のアプリケーションの保護が "中 (プール)" で Commerce Server ビジネス デスクを実行している場合、Desktop などのシステム フォルダにアクセスできません。デスクトップからファイルをインポートするには、アップロード ローカル ファイル オプションを使用します。

次の表は、カタログのインポートが完了しなかった場合に確認する必要がある、その他の状況を示しています。

説明 | 解決方法
カタログをインポートし、インポートが進行中であるというメッセージが表示されます。しかし、[カタログ エディタ] をクリックしてページを再度読み込むと、カタログが表示されません。 | 同名の既存の商品定義とはプロパティが異なる商品定義を含むカタログをインポートすると、インポートに失敗します。これを防ぐには、インポートを評価モードで実行し、すべてのカタログで商品定義のプロパティに矛盾がないことを確認してください。
カタログ エディタ モジュールで XML カタログをインポートしようとしたときに、インポートに失敗します。 | カタログの完全なファイル パスとファイル名を使っていること、またはビジネス デスク アプリケーションを実行しているサーバーの共有 (CommerceCatalogs) にカタログがあることを確認してください。カタログをサーバーに置くように、システム管理者に依頼してください。


カタログを取引先へ送信できない

説明

作成した取引先のカタログを、取引先へ送信できません。

解決方法

システム管理者が Microsoft BizTalk Server 2002 をセットアップし、Commerce Server を文書交換用に正しく構成しているかどうかを確認してください。


Samplecatalog.xml ファイルをインポートできない

説明

Commerce Server 2000 には、Samplecatalog.xml という名前の XML ファイルが用意されています。この XML ファイルでは、Name は商品 ID です。この Samplecatalog.xml というファイルは Commerce Server 2002 にインポートすることができません。これは、既定では Name は多言語プロパティであるためです。多言語プロパティは、カタログの商品 ID またはバリエーション ID とすることができません。

解決方法

この相違を [LanguageSensitive] フィールドを変更して解決すると、Samplecatalog.xml ファイルを Commerce Server 2002 にインポートすることができます。

Samplecatalog.xml を Commerce Server にインポートするには

  1. メモ帳で Samplecatalog.xml を開きます。
  2. [LanguageSensitive] の値を 0 に変更します。
  3. [ファイル] メニューの [上書き保存] をクリックし、Samplecatalog.xml を保存します。

これで、Commerce Server ビジネス デスクを使用して Samplecatalog.xml をインポートできます。


項目がコレクションに存在しないというエラーが Web サイトで生成される

作成したカタログに、商品の説明がありません。Web サイト上でユーザが商品をクリックすると、次のようなエラーが表示されます。

Error Type
ADODB.Recordset (0x800A0CC1)
要求された名前または序数に対応するコレクションに項目が存在しません。

ソリューション サイトでは、各カタログに Name および Description などのプロパティが存在することが前提です。このようなプロパティは、組み込み済みのプロパティではありません。このようなプロパティがカタログに存在しない場合に、このエラーが生成されます。

解決方法

カタログに各商品の名前と説明が存在することを確認してください。存在しない場合は、これらのプロパティをカタログに追加します。


Developer's Guide

このページに対するフィードバックを送信する Commerce Server 2002 SDK

Developer’s Guide

Microsoft Commerce Server 2002 provides the tools and services that enable you to develop a world-class commercial Web site more quickly and easily. This section introduces you to Commerce Server development, and provides conceptual information about the various aspects of Web site development using Commerce Server.

This section contains:

  • Commerce Server .NET Application Framework. Describes the components of the Commerce Server .NET Application Framework, and explains how to use the integrated Microsoft Visual Studio .NET tools to build a .NET-based Commerce Server application.
  • Extending Commerce Server. Describes how to extend the resources included in Commerce Server.
  • Software Development Kit. Provides instructions about how to use samples and scripts included in the Commerce Server Software Development Kit.
  • Developing an International Site. Provides guidance for developing an international site with localized text, dates, times, and currencies.
  • International Retail Site. Explains how to use the .NET International Retail Site to build a .NET-based Web site.
  • Commerce Server Solution Sites. Provides an overview of the Commerce Server Solution Sites, including the site features, site infrastructure, site development, and reference information.
  • Programmer's Reference. Provides reference information about programming with the Commerce Server 2002 programming platform.


Commerce Server .NET Application Framework

The Commerce Server .NET Application Framework brings the Microsoft .NET Framework developer experience to Commerce Server. It allows developers to create Commerce Server applications using the new features of the .NET Framework. Two of the new features are the Base Class Library and Common Language Runtime Interop Layer. These additions allow ASP.NET code to run core COM-based Commerce Server services and systems.

This section discusses the programmatic components of the Commerce Server .NET Framework, and also discusses Commerce Server features and tools available in the Microsoft Visual Studio .NET environment that simplify and expedite the creation of .NET-based Commerce Server applications.

This section contains:

  • Programmatic Components of the Commerce Server .NET Application Framework. Describes the programmatic components of the Commerce Server .NET Application Framework.
  • Building a .NET-Based Commerce Server Application. Explains how to use the integrated Microsoft Visual Studio .NET tools to build a .NET-based Commerce Server application.
  • International Retail Site. Describes the multilingual, multicurrency business-to-business, and business-to-consumer Web site included in the Software Development Kit.

See Also

.NET Class Reference


Programmatic Components of the Commerce Server .NET Application Framework

The Commerce Server .NET Application Framework introduces the Base Class Library and the Common Language Runtime Interop Layer to the Commerce Server platform. The Base Class Library and the Common Language Runtime Interop Layer enable Commerce Server objects and services to be utilized within ASP.NET. In addition, the Commerce Server .NET Application Framework uses a new application runtime that simplifies the process of building new Commerce Server applications.

The Base Class Library enables developers to access most pre-existing Commerce Server COM objects through a programming model consistent with the Common Language Specification (CLS) and the .NET Framework design guidelines. Internally, many of the classes in the Base Class Library use existing Commerce Server COM objects.

Between the Base Class Library and the Commerce Server COM platform is the Common Language Runtime Interop Layer, primarily composed of the Primary Interop Assemblies. The Primary Interop Assemblies contain the runtime callable wrapper (RCW) classes that permit the common language runtime to interact with COM objects. For each COM DLL file containing run-time objects, a Primary Interop Assembly is provided.

You should use the Base Class Library instead of using the Primary Interop Assemblies directly. The Base Class Library manages the lifetime of the underlying COM objects for you, resulting in increased performance and stability. The Base Class Library simplifies the programming model and follows the .NET Framework design guidelines.

The following figure shows the internal workflow for how the components in the platform communicate to fulfill a request from a user.

Commerce Server .NET Application Framework

Depicts the Commerce Server .NET Application Framework.

For reference information pertaining to the members of the Base Class Library and the Primary Interop Assemblies, see .NET Class Reference.

This section contains:

  • Commerce Server Application Runtime
  • Base Class Library
  • Common Language Runtime Interop Layer

See Also

Commerce Server .NET Application Framework Tutorial


Commerce Server Application Runtime

The run-time components that previous versions of Commerce Server provided for use in applications all required their own initialization data. Initializing these components required many lines of code in the global.asa file and additional initialization code on each ASP page. However, the architecture of ASP.NET enables the encapsulation of component initialization and configuration into a set of components that extend the core run-time services provided by ASP.NET. The new set of components is made up of HTTP modules and Configuration Section Handlers. From within the Init methods of the HTTP modules, the modules are initialized based on the data in the web.config file. The automation and encapsulation of this process provides a significant reduction in the amount of code you have to write and debug to create and run an application.

The following topics describe the services provided by the Commerce Server Application Runtime and how they are used within the application and request lifecycles.

This section contains:

  • Application Lifecycle
  • Request Lifecycle
  • Run-Time Services
  • Configuration Services
  • Commerce Modules


Application Lifecycle

This topic describes the workflow of the application when an ASP.NET application starts.

  1. A request arrives and the ASP.NET runtime creates an AppDomain for the application. It then creates the first instance of the HttpApplication class within the AppDomain. The AppDomain might create subsequent instances of the HttpApplication class, because ASP.NET can create a pool of instances. Each request to the Web server is serviced by a single instance of the HttpApplication class.
  2. ASP.NET fires the OnStart event. This is normally synced by the Application_Start event handler in the global.asax file.
  3. The HttpApplication class creates and initializes the HTTP modules for servicing the application request. Modules are initialized in the order in which they appear in the web.config file. Some of the HTTP modules created are Commerce Modules. The Init method for each module is called, in which the module can subscribe to other request-processing events raised by the HttpApplication class.
  4. The Init method of the HttpApplication class is called. The Init method is a virtual method that can be overridden in the global.asax file; however, unlike the Application_Start event handler, the Init method is called once per HttpApplication class instance.
  5. Before ASP.NET terminates the AppDomain, the OnEnd event is raised by the HttpApplication class.

See Also

Request Lifecycle


Request Lifecycle

This topic describes how the services provided by the Commerce Server .NET Application Framework are used when completing an application request.

  1. When a new request is received, the ASP.NET runtime raises the BeginRequest event. All subscribers to that event are then called in a deterministic order. Next, the CommerceApplicationModule class creates an instance of the CommerceContext class. The current CommerceContext instance can then be accessed from any object by accessing the static property CommerceContext.Current.
  2. The other Commerce Modules that subscribe to the BeginRequest event are called. Each module has the option of setting some state in the current CommerceContext instance. For example, the CommerceCatalogModule class, if configured in the web.config file, copies a reference from its instance of the CatalogContext class into the current instance of the CommerceContext class.
  3. The Web form is run.
  4. The EndRequest event is raised and its subscribers are called. The CommerceApplicationModule class disposes of the CommerceContext object. When the CommerceContext object is disposed of, it also disposes of all resources that were registered with it during processing of the page.

See Also

Commerce Modules

Application Lifecycle

Run Time Services

CommerceContext Class

CommerceApplicationModule Class

CommerceCatalogModule Class


Run Time Services

.NET-based Commerce Server applications require two types of run time services — application services and page services. Application services are the services and data used by the entire application and globally available to all user sessions, such as the Profile System and the Product Catalog System. Page services are the services and data used only by an individual page and available only within the scope of a user's visit to a site, such as the user's profile.

Application Services

Page Services

Application Services

The Commerce Server Application Runtime simplifies the development of .NET-based Commerce Server applications. The Commerce Server Application Runtime configures Commerce Server application services based on configuration information in the web.config file and makes them easily accessible at run time.

This topic describes the application services provided by the Commerce Server Application Runtime.

Site Resource Settings

Authentication

Address Mapping

Cache Management

Catalog Retrieval

Commerce Event Logging

Creation of Content Selection Applications

Pipeline Management

Profile Retrieval

Resource Localization

Site Resource Settings

A site resource is an entity that provides functionality to the applications in a Commerce Server site. The Web pages of an application use these resources. Site resource configuration settings are available and stored globally within the Commerce Server Application Runtime, and can be accessed through the CommerceContext.Current.Resources property. For more information about the CommerceContext.Resources property, see CommerceContext.Resources Property (BCL)

Authentication

During the OnBeginRequest event, if detection is enabled in the authentication tag of the web.config file, the CommerceAuthenticationModule class automatically detects whether the client supports cookies. The CommerceAuthenticationModule automatically adds a test cookie, creates an instance of the AuthenticationInfo class, and sets the appropriate values for the AuthenticationInfo.SupportsPersistentCookies and AuthenticationInfo.SupportsSessionCookies properties. If cookie detection is not enabled, the value of the AuthenticationInfo.SupportsPersistentCookies and AuthenticationInfo.SupportsSessionCookies properties keep their default value of False.

Use the QueryStringBuilder class, which is available from the CommerceContext class, to build your URLs. The QueryStringBuilder class puts the authentication ticket and/or profile ticket information into the query string if cookieless mode is enabled. You use the QueryStringBuilder.BuildUrl method in any place where you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket is not passed on to the next request. If the CommerceAuthenticationModule is enabled in the web.config file, it automatically detects whether the browser supports cookies and populates the query string appropriately.

Note that on the first request to the site, there is no auto-redirect for cookie detection and the default setting for the QueryStringBuilder.CookieSupport property is False, so it is assumed that the browser does not support cookies.

For more information about the CommerceAuthenticationModule, see Commerce Modules and CommerceAuthenticationModule.

Address Mapping

The Commerce Server Order System and the Profiling System store address data in two different formats. This is due to how the two systems represent the data in their run-time objects. The Commerce Server Application Runtime provides a method of automatically mapping data stored in the Profiling System to the Order System, and provides a unified representation of that data at run time. This mapping is configured in the web.config file. For more information about address mapping, see Configuration Services and addressMap Tag.

Cache Management

Commerce Server applications are dependent on the CacheManager object for caching data from the Targeting and Product Catalog systems. The Commerce Server Application Runtime provides access to the CacheManager object services for configuration during the run-time operation of the application. For more information about configuring caches stored within the Commerce Server Application Runtime, see Configuration Services, CommerceCache, Caching.CommerceCacheCollection, and CommerceContext.Current.

Catalog Retrieval

The CatalogContext object (Microsoft.CommerceServer.Runtime.Catalog.CatalogContext) is used for global access in the application, for retrieving individual catalogs, and for performing searches in the Product Catalog System. The CatalogManager object is available globally from the Commerce Server Application Runtime. No special configuration is required for this service.

In addition, the Commerce Server Application Runtime makes it possible to configure a single catalog in the Product Catalog System so that the data is automatically available at run time.

For more information about catalog classes, see Microsoft.CommerceServer.Runtime.Catalog.

Commerce Event Logging

The Base Class Library includes the BaseCommerceEvent object that enables you to create your own Commerce event managed-code objects. When you create a custom Commerce event, the event information is appended to the Web log file query string. These events can then be tracked and used in reports.

For more information about the BaseCommerceEvent class, see Base Commerce Event Class.

Creation of Content Selection Applications

A Content Selection Application is a collection of caches and pipelines that correspond to a particular type of Content Selection operation. For example, the Advertising Content Selection application consists of a cache of target-based content, a pipeline for selecting the content, a pipeline for recording events, and a URL used as the link between the advertisement and the area to which the advertisement corresponds.

In Commerce Server 2002, the Commerce Server Application Runtime enables you to configure these elements in a single location. The Commerce Server Application Runtime automatically ties them together at run time and makes them available to the Content Selection process when content is requested from a particular Content Selection Application.

For more information about the ContentSelector class, see ContentSelector Class (BCL).

Pipeline Management

The functionality of a pipeline is based on three parts: pipeline components, pipeline configuration files, and the pipeline objects used to invoke the pipeline components and configuration files. When running pipelines in a .NET-based Commerce Server application, only a few configuration properties need to be set to in the web.config file to enable the Commerce Server Application Runtime to call the correct components, pipeline configuration files, and objects.

For more information about the pipelines, see Microsoft.CommerceServer.Runtime.Pipelines or pipelines tag.

Profile Retrieval

The ProfileContext object is stored globally in the application, and is used for retrieving individual profile instances. The ProfileContext object is available globally from the Commerce Server Application Runtime. The configuration of the Profile Service and its usage within an ASP.NET application is limited to mapping the properties implemented by the schema representing users and the schema representing organizations. This is specifically required by the Catalog class library to enable Catalog Sets functionality. For more information about profile retrieval, see profiles Tag.

Resource Localization

The MessageManager object was originally designed for use by pipeline components to insert status and error messages into an OrderForm object. The Commerce Server 2000 Solution Sites use a specialized XML document, rc.xml, for setting the MessageManager object. The Commerce Server .NET Application Framework contains a new method for localizable resource creation and management. This method has a schema similar to the rc.xml document, but with much richer support for localizable resources, including strings and bitmaps.

The Commerce Server Application Runtime relies on the Commerce Server .NET Application Framework localizable resource schema with one exception: the Order Processing pipeline, which remains dependent on the MessageManager object. The Commerce Server Application Runtime maps specific resources from a .resx file and loads them into the MessageManager object when the application starts, so that when the MessageManager object is required by the Order Processing pipeline, it has the data it needs to function correctly. For more information about configuring the MessageManager object, see Configuration Services. For more information about managing messages in the Commerce Server .NET Application Framework, see Using MessageManager.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

Page Services

In addition to the global data required for a Commerce Server application to run, there is also data specific to each page, and potentially to each user, that is provided within the page services. Page services provide Commerce Server-specific data per HTTP request. This data is accessed through the CommerceContext class. The page services are:

  • Current user's profile. The current user’s profile is available from the CommerceContext.Current.UserProfile property.
  • User catalogs. The list of catalogs to which the current user has access is available from the CommerceContext.GetCatalogsForUser method.
  • Targeting context. The current targeting context as required by the Content Selection Framework is available from the CommerceContext.TargetingSystem.TargetingContextProfile property.

See Also

.NET Class Reference

Configuration Services

CommerceContext


Configuration Services

Each .NET-based Commerce Server application contains a web.config file. To configure the Commerce Server .NET Application Framework, you modify the web.config file by changing the following sections:

  • The CommerceServer section configures the framework components.
  • The sectionGroups section lists the ASP.NET Configuration Section Handlers that should be used to read the data in the web.config file.
  • The httpModules section lists which HTTP modules and Commerce Modules should be enabled in the application.

For reference material pertaining to each of the tags in the web.config file, see .NET Configuration Settings.

Notes

  • The order that modules are configured in web.config is significant; modules are initialized in the order in which they are listed.
  • If you create a new Commerce project by using the Project Creation Wizard, it automatically includes a default web.config file. Thus, projects created by the Project Creation Wizard do not need to modify the configSections element of the web.config file. For more information about the Project Creation Wizard, see Creating a Commerce Project.

The following is a sample excerpt from the web.config file:

    <configSections>
        <sectionGroup name="CommerceServer">
            <section name="application"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceApplicationSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="authentication"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceAuthenticationSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="pipelines"
type="Microsoft.CommerceServer.Runtime.Configuration.CommercePipelineSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="caches"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceCacheSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="messageManager"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceMessageManagerSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="catalog"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceCatalogSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="orders"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceOrdersSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="profiles"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceProfilesSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <section name="contentSelection"
type="Microsoft.CommerceServer.Runtime.Configuration.CommerceContentSelectionSectionHandler, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
        </sectionGroup>
    </configSections>

    <CommerceServer>
        <application siteName="OrderSitelet" debugLevel="Checked"/>
        <authentication ticketTimeOut="30" detectCookies="false"/>

        <pipelines>
            <pipeline
                name="basket"
                path="pipelines\basket.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true"/>

            <pipeline
                name="checkout"
                path="pipelines\checkout.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true"/>

            <pipeline
                name="product"
                path="pipelines\product.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true"/>

            <pipeline
                name="total"
                path="pipelines\total.pcf"
                transacted="false"
                type="OrderPipeline"
                loggingEnabled="true"/>

        </pipelines>

        <caches>
            <cache
                name="Advertising"
                type="Advertising"
                refreshInterval="900"
                retryInterval="30"
                maxSize="10000"/>

            <cache
                name="Discounts"
                type="Discounts"
                refreshInterval="0"
                retryInterval="30"
                maxSize="10000"/>

            <cache
                name="SampleRegionalTaxCache"
                type="Tax"
                refreshInterval="0"
                retryInterval="30"
                maxSize="10000"/>

            <cache
                name="ShippingManagerCache"
                type="Shipping"
                loaderProgId="Commerce.ShippingManagerCache"
                refreshInterval="0"
                retryInterval="30"
                maxSize="10000"/>

            <cache
                name="QueryCatalogInfoCache"
                type="QCI"
                loaderProgId="Commerce.LRUCacheFlush"
                refreshInterval="0"
                retryInterval="300"
                maxSize="10000">

                <config key="TableName" value="CatalogCache_Virtual_Directory"/>

            </cache>
        </caches>

        <messageManager>
            <cultures default="en-US" baseName="OrderSitelet" assembly="OrderSitelet">
                <culture id="en-US"/>
                <culture id="fr-fr"/>
                <culture id="ja-JP"/>
            </cultures>
            <resources>
                <resource id="pur_badsku"/>
                <resource id="pur_badplacedprice"/>
                <resource id="pur_discount_changed"/>
                <resource id="pur_discount_removed"/>
                <resource id="pur_noitems"/>
                <resource id="pur_badshipping"/>
                <resource id="pur_badhandling"/>
                <resource id="pur_badtax"/>
                <resource id="pur_badcc"/>
                <resource id="pur_badpayment"/>
                <resource id="pur_badverify"/>
                <resource id="pur_out_of_stock"/>
                <resource id="unknown_shipping_method"/>
            </resources>
        </messageManager>

        <orders>
            <addressMap>
                <profileDefinition name="Address"/>
                <property from="GeneralInfo.address_id" to="address_id"/>
                <property from="GeneralInfo.address_id" to="shipping_address_id"/>
                <property from="GeneralInfo.first_name" to="first_name"/>
                <property from="GeneralInfo.last_name" to="last_name"/>
                <property from="GeneralInfo.address_line1" to="address_line1"/>
                <property from="GeneralInfo.address_line2" to="address_line2"/>
                <property from="GeneralInfo.city" to="city"/>
                <property from="GeneralInfo.region_name" to="region_code"/>
                <property from="GeneralInfo.postal_code" to="postal_code"/>
                <property from="GeneralInfo.country_name" to="ship_to_country"/>
                <property from="GeneralInfo.region_name" to="ship_to_state"/>
                <property from="GeneralInfo.country_name" to="country_code"/>
                <property from="GeneralInfo.tel_number" to="tel_number"/>
            </addressMap>
        </orders>

    <profiles>

        <encryption>
            <keys keyIndex="1">
                <add type="publicKey" value="<hex-string>" />
                <add type="privateKey1" value="<hex-string>" />
                <add type="privateKey2" value="<hex-string>" />
            </keys>
        </encryption>

        <userProfile
            profileDefinition="UserObject"
            userIdProperty="GeneralInfo.logon_name"
            organizationIdProperty="AccountInfo.org_id"
            catalogSetIdProperty="AccountInfo.user_catalog_set"
        />
        <organizationProfile
            profileDefintion="Organization"
            organizationIdProperty="GeneralInfo.org_id"
            catalogSetIdProperty="GeneralInfo.org_catalog_set"
        />
    </profiles>

    <contentSelection>
        <add name="advertising"
            cacheName="advertising"
            selectionPipeline="advertising"
            eventPipeline="recordEvent"
            preloadCache="true"
            redirectUrl="./redir.asp"
        />
        <add name="discounts"
            campaignsType="discounts"
            cacheName="discounts"
            selectionPipeline="discounts"
            eventPipeline="recordEvent"
            redirectUrl="./redir.asp"
        />
    </contentSelection >

    <catalog>
        <joinTable
            joinType=”join-type-enum-value”
            targetTableName=”target-table”
            sourceJoinKey=”source-join-key”
            targetJoinKey=”target-join-key” />

        <catalogSets
            defaultAuthenticated=”Registered Catalog Set”
            defaultAnonymouse=”Anonymous Catalog Set” />
    </catalog>

    </CommerceServer>

    <system.web>

        <httpModules>
            <add name="CommerceApplication"                type="Microsoft.CommerceServer.Runtime.CommerceApplicationModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceAuthentication"                type="Microsoft.CommerceServer.Runtime.CommerceAuthenticationModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceOrder"                type="Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceCatalog"                type="Microsoft.CommerceServer.Runtime.Catalog.CommerceCatalogModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceProfile"                type="Microsoft.CommerceServer.Runtime.Profiles.CommerceProfileModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceExpressionEvaluator"                type="Microsoft.CommerceServer.Runtime.Targeting.CommerceExpressionModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceCache"                type="Microsoft.CommerceServer.Runtime.Caching.CommerceCacheModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceContentSelection"
                type="Microsoft.CommerceServer.Runtime.Targeting.CommerceContentSelectionModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
        </httpModules>
    </system.web>

See Also

.NET Class Reference

Commerce Modules


Commerce Modules

Commerce Modules are an extension of the ASP.NET runtime, and are based on the HTTP module architecture that the runtime provides. Commerce Modules encapsulate the automatic configuration of all Commerce Server Application Runtime components. The CommerceModule class is the base class from which all Commerce Modules derive. After an application is loaded into the Commerce Server Application Runtime, you can use the CommerceContext class to access all page and application scope components provided by Commerce Server from within the global.asax file, a Web form, or any custom component.

Using Commerce Modules decreases the amount of code you need to write in the global.asa file and on individual ASP pages to initialize components. The initialization code is encapsulated in Commerce Modules that read configuration data from the web.config file.

Some Commerce Modules are configurable and some are not. If the Commerce Module is configurable, the module will reference the associated IConfigurationSectionHandler interface. IConfigurationSectionHandler interface instances are defined in the <configSections><sectionGroup name="Commerce Server"> section of the web.config file, as shown in the preceding sample web.config file. Commerce Modules are defined and initialized in the <system.web><httpModules> section of the web.config file.

The following tables contain quick reference information for each of the Commerce Modules.

CommerceApplicationModule | Description
Module description | By definition, an application must use CommerceApplicationModule to be considered a Commerce Server .NET Application Framework application. All other CommerceModules depend on the CommerceApplicationModule.
Public properties
public static string SiteName {
get; }
public static
CommerceResourceCollection
Resources { get; }
public static PipelineCollection
Pipelines { get; }
public static DebugContext
DebugContext { get; set; }
Configuration section read
<application>
CommerceContext properties set
public string SiteName { get; }
public CommerceResourceCollection
Resources { get; }
public PipelineCollection Pipelines
{ get; }
public DebugContext DebugContext {
get; }
Event handlers The OnBeginRequest event creates an instance of the CommerceContext class and stores it in the HttpContext.Current.Items collection for retrieval by the CommerceContext.Current static property.

The OnEndRequest event disposes of the current CommerceContext class instance and all of the disposables it is managing.
Resource dependencies | None
Module dependencies | None
CommerceAuthenticationModule | Description
Module description | Provides a framework for managing authentication of site visitors. Provides the means for client-side cookie detection and creates an instance of AuthManagerInfo at page scope.
Public properties | None
Configuration section read
<authentication>
CommerceContext properties set
public AuthManagerInfo
AuthManagerInfo { get; }
Event handlers | The OnBeginRequest event creates an instance of the AuthManagerInfo class and sets CommerceContext.AuthManagerInfo.
Resource dependencies | Authentication resource
Module dependencies | CommerceApplicationModule
CommerceCacheModule | Description
Module description | Creates the collection of CacheManager caches used on the site.
Public properties
public static
CommerceCacheCollection
CacheCollection { get; }
Configuration section read
<caches>
CommerceContext properties set
public CommerceCacheCollection
Caches { get; }
Event handlers | None
Resource dependencies The Campaigns resource is a dependency only if a cache of type advertising or discounts has been configured.

The Transactions Config resource is a dependency if a cache of type tax, shipping, or QCI has been configured.
Module dependencies | CommerceApplicationModule
CommerceCatalogModule | Description
Module description | Creates a default CatalogContext object for the site.
Public properties
public static CatalogContext
CatalogContext { get; }
Configuration section read
<catalog>
CommerceContext properties set
public CatalogContext CatalogSystem
{ get; set; }
Event handlers | The OnBeginRequest event sets CommerceContext.CatalogSystem.
Resource dependencies | Product Catalog System
Module dependencies | CommerceApplicationModule
CommerceOrderModule | Description
Module description | Creates a default OrderContext object for the site.
Public properties
public static OrderContext
OrderContext { get; }
Configuration section read | None
CommerceContext properties set
public OrderContext OrderSystem {
get; set; }
Event handlers | The OnBeginRequest event sets CommerceContext.OrderSystem.
Resource dependencies | Transactions resource
Module dependencies | CommerceApplicationModule
CommerceProfileModule | Description
Module description | Creates a default ProfileContext object for the site.
Public properties
public static ProfileContext
ProfileContext { get; }
public static
CommerceProviderContext
ProviderContext { get; }
Configuration section read | profiles
CommerceContext properties set
Public ProfileContext ProfileSystem
{ get; set; }
Public CommerceProviderContext
ProviderContext { get; set; }
Event handlers | The OnBeginRequest event sets CommerceContext.ProfileSystem.
Resource dependencies | Profiles resource
Module dependencies | CommerceApplicationModule
CommerceContentSelectionModule | Description
Module description | Creates the collection of ContentSelectionContext objects available for site usage.
Public properties
public static
ContentSelectionContextCollection
ContentSelectionContexts { get; }
Configuration section read
<contentSelection>
CommerceContext properties set
public
ContentSelectionContextCollection
TargetingSystem.SelectionContexts {
get; }
Event handlers | None
Resource dependencies | None
Module dependencies CommerceApplicationModule
CommerceCacheModule
CommerceExpressionModule
CommerceExpressionModule | Description
Module description | Creates an ExpressionEvaluator component for use on the site.
Public properties
public static ExpressionEvaluator
ExpressionEvaluator { get; }
Configuration section read | None
CommerceContext properties set
Public ExpressionEvaluator
TargetingSystem.ExpressionEvaluator
{ get; }
Event handlers | None
Resource dependencies | Profiles resource
Module dependencies | CommerceApplicationModule

Enabling CommerceModules in the web.config File

Module Design Patterns

Exposing Resources Created by a Commerce Module

Building Commerce Modules

Enabling CommerceModules in the web.config File

The set of Commerce Modules available for use in the site must be configured in the <httpModules> section of the web.config file. The order in which the modules appear in the web.config file is significant. Any module dependent upon another module must be listed after the module on which it is dependent.

The CommerceApplicationModule class is a requirement for an application to be considered part of a .NET-based Commerce Server application, and it must be listed before all other CommerceModules classes in the <httpModules> section in the web.config file.

The following code sample shows what the <httpModules> section would look like for an application that used only the CommerceApplicationModule, CommerceOrderModule, and CommerceCatalogModule classes:

<httpModules>
            <add name="CommerceApplication" type="Microsoft.CommerceServer.Runtime.CommerceApplicationModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceOrder" type="Microsoft.CommerceServer.Runtime.Orders.CommerceOrderModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
            <add name="CommerceCatalog" type="Microsoft.CommerceServer.Runtime.Catalog.CommerceCatalogModule, Microsoft.CommerceServer.Runtime, Version=4.5.1915.0, Culture=neutral, PublicKeyToken=fa6ab6564e139293" />
</httpModules>

See Also

.NET Class Reference

CommerceModule Class

CommerceApplicationModule Class

CommerceCatalogModule Class

CommerceOrderModule

Module Design Patterns

A Commerce Module is responsible for creating a resource that will be used on site pages. The module can either create a single instance of the resource, or it can create a different instance of the resource for each instance of the HttpApplication class that is created in the ASP.NET application. This topic describes the issues that should be considered when making this design decision.

The multiple-instance pattern is simplest to implement. The Init method of the module simply creates the resource and stores it in an instance field.

The singleton pattern is a little more complex to implement. The first time the Init method is called for any instance, the module creates the resource and stores it in a static field. This must be done in a way that uses locking to avoid a race condition that might cause multiple instances of the resource to be created. The following code sample demonstrates the singleton pattern:

public sealed class SampleModule : CommerceModule
{
   // The resource the module is responsible for creating
   private static SampleResource sampleResource;

// The key name used to store the resource in the HttpContext Items
// collection
   private const string sampleResourceKey = "SampleCommerceResource";

   // Flag: has this instance been disposed
   private int disposed = false;

   // CommerceModule.Init implementation
   public override void Init(HttpApplication appInstance)
   {
      // First declare module and resource dependencies using the
      // CommerceModule protected helper methods.  These will throw
      // CommerceResourceDependencyExceptions or
      // CommerceModuleDependencyExceptions if the dependencies don’t exist

      // "SampleResourceName" is some custom Commerce Server site resource
      DeclareResourceDependency("SampleResourceName");

      // This module depends on the CatalogModule having been initialized
      // in the pipeline before this module.
      DeclareModuleDependency("CommerceCatalogModule");

      // Create the singleton instance of the resource
      if (sampleResource == null)
      {
         // Lock to prevent race conditions and ensure that exactly one
         // instance of the resource is created
         lock (typeof(SampleModule))
         {
            if (sampleResource == null)
               sampleResource = CreateResource();
         }
      }

      // subscribe to BeginRequest events
      appInstance.BeginRequest += new EventHandler(OnBeginRequest);
   }

   // BeginRequest event handler
   public void OnBeginRequest(Object sender, EventArgs e)
   {
      HttpContext ctx = HttpContext.Current;
      if (ctx != null)
         ctx.Items[sampleResourceKey] = sampleResource;
   }

   // If there are any resources that need to be disposed of, override
   // the Dispose(bool) method from the base class.  This will be called
   // when the module instance is disposed.

   protected override void Dispose(bool disposing)
   {
      // Check to see if Dispose has already been called.
      if(!this.disposed)
      {
         this.disposed = true;
            // If disposing equals true, dispose all managed
         // and unmanaged resources.
         if(disposing)
         {
            // Dispose managed resources.
         }
         // Release unmanaged resources. If disposing is false,
         // only the following code is executed.
         // ...

         // Now call the base class's dispose:
         base.Dispose(disposing);
      }
   }

}

Exposing Resources Created by a Commerce Module

It is recommended that Commerce Modules subscribe to the BeginRequest event of the HttpApplication class. When the event is handled, it copies a reference to the resources that it created in the Init method into the HttpContext.Current.Items collection using a well known, unique, and documented key. The Web form then only needs to retrieve the reference of the resource from the Items collection and assign the appropriate type to it.

For modules supplied with the core Commerce Server .NET Application Framework, the references are copied into a strongly typed property in the CommerceContext class. This is more convenient for you to access and it avoids the cost of a hash table lookup and a run-time type cast.

Building Commerce Modules

While Commerce Modules are an extension to the HTTP module architecture in ASP.NET, it is recommended that you implement or build Commerce Modules instead of implementing the IHttpModule interface. This is because inheriting from the CommerceModule class allows Commerce Server to manage the dependencies between modules in the application.

A third party providing extensions or plug-ins for the Commerce Server platform should build a Commerce Module if any of the following are true:

  • The extension depends on a resource or resources in the Commerce Server Administration database.
  • The extension depends on other Commerce Server modules.
  • The extension requires global configuration before its functionality is used on site pages.
  • The extension needs to subscribe to request processing events raised by the HttpApplication class.
  • Other Commerce Modules might depend on this module being configured.

See Also

Commerce Server Application Runtime

CommerceModule Class (BCL)


Base Class Library

The Commerce Server Base Class Library is a collection of classes, interfaces, and value types that are included in the Commerce Server .NET Application Framework. This library provides access to run-time Commerce Server functionality and is designed to be the foundation on which .NET-based Commerce Server applications are built. The Base Class Library exposes an API that is optimized for the .NET Framework while using the services provided by the Common Language Runtime Interop Layer.

The following table lists the feature areas for which an abstraction layer is provided in the Base Class Library, and the types associated with the feature area.

Run-time subsystem | Namespace
Authentication | Microsoft.CommerceServer.Runtime
Order Processing Pipelines | Microsoft.CommerceServer.Runtime.Pipelines
Caching | Microsoft.CommerceServer.Runtime.Caching
Order System | Microsoft.CommerceServer.Runtime.Orders
Product Catalog System | Microsoft.CommerceServer.Runtime.Catalog
Profiling System | Microsoft.CommerceServer.Runtime.Profiles
Targeting System | Microsoft.CommerceServer.Runtime.Targeting

For more information about the types in each of these namespaces, see Microsoft.CommerceServer.Runtime and Base Class Library Namespaces.

The Base Class Library does not provide an abstraction layer for all Primary Interop Assemblies, and for the Primary Interop Assemblies that do have an abstraction layer, there is not a one-to-one mapping of run-time APIs to members of the Base Class Library.

This section contains:

  • Base Class Library Namespaces
  • Resource Disposal

See Also

.NET Class Reference

Common Language Runtime Interop Layer


Base Class Library Namespaces

Objects and types in the common language runtime are organized in a namespace hierarchy that allows similar types to be grouped by using a logical name. For example, types related to low-level input/output operations such as file reading and writing are grouped in the namespace System.IO.

The Base Class Library namespaces exposed in the Commerce Server .NET Application Framework are grouped by functional area to make it easier for you to discover and use them. The root namespace for the Base Class Library layer is Microsoft.CommerceServer.Runtime, and it groups all core Commerce Server run-time objects.

The namespaces implemented in Commerce Server 2002 are:

  • Microsoft.CommerceServer.Runtime
  • Microsoft.CommerceServer.Runtime.Caching
  • Microsoft.CommerceServer.Runtime.Catalog
  • Microsoft.CommerceServer.Runtime.Configuration
  • Microsoft.CommerceServer.Runtime.Diagnostics
  • Microsoft.CommerceServer.Runtime.Orders
  • Microsoft.CommerceServer.Runtime.Pipelines
  • Microsoft.CommerceServer.Runtime.Profiles
  • Microsoft.CommerceServer.Runtime.Targeting

See Also

Primary Interop Assembly Namespaces

Resource Disposal

.NET Class Reference


Resource Disposal

When used in conjunction with the Commerce Server Application Runtime, disposal of the Base Class Library members is done automatically. All the Base Class Library classes that hold unmanaged resources implement the IDisposable interface, so that they can release these resources when the objects are no longer required. For more information about using this application run-time service, see CommerceContext.RegisterDisposable(Object).

For more information about resource disposal and the IDisposable interface, see the .NET Framework SDK documentation.

See Also

Base Class Library


Common Language Runtime Interop Layer

The common language runtime provides an interoperability layer between COM components and .NET-based applications. It conceals the differences between managed code and unmanaged code, so that COM components are accessible from the common language runtime and vice versa.

The Common Language Runtime Interop Layer is primarily composed of Primary Interop Assemblies. Assemblies are the primary building blocks of a .NET Framework application. Interop assemblies act as a bridge between managed and unmanaged code, mapping COM object members to equivalent .NET managed members. The term Primary Interop Assembly pertains to assemblies made specifically for COM objects. The Common Language Runtime Interop Layer is responsible for running and managing the Primary Interop Assemblies created for Commerce Server.

The Base Class Library uses the Primary Interop Assemblies to interoperate with Commerce Server 2002 core services. You should use the Base Class Library instead of using the Primary Interop Assemblies directly. The Common Language Runtime Interop Layer does not manage the lifetime of a COM object for you; the Base Class Library does, resulting in increased performance and stability. The Base Class Library simplifies the programming model and follows the .NET Framework design guidelines.

This section contains:

  • Primary Interop Assembly
  • Primary Interop Assembly Namespaces

See Also

Microsoft.CommerceServer.Interop


Primary Interop Assemblies

Assemblies are the binary components that are managed and run by the common language runtime. Assemblies contain the code to be run in Microsoft intermediate language (MSIL), the metadata that describes the objects stored in the assembly, the version information associated with the objects in the assembly, and more. They are roughly equivalent to a COM DLL with a type library embedded in it. To make the Commerce Server object model available to the common language runtime, there is a set of Primary Interop Assemblies that act as proxies, forwarding all API calls from managed code to Microsoft native COM APIs.

Note

  • The Base Class Library uses the Primary Interop Assemblies to interoperate with Commerce Server 2002 core services. You should use the Base Class Library instead of using the Primary Interop Assemblies directly. The Common Language Runtime Interop Layer does not manage the lifetime of a COM object for you; the Base Class Library does, resulting in increased performance and stability. The Base Class Library simplifies the programming model and follows the .NET Framework design guidelines.

See Also

Primary Interop Assembly Namespaces

Microsoft.CommerceServer.Interop


Primary Interop Assembly Namespaces

Objects and types in the common language runtime are organized in a namespace hierarchy that allows similar types to be grouped by using a logical name. For example, types related to low-level input/output operations such as file reading and writing are grouped in the namespace System.IO.

The Primary Interop Assemblies exposed in the Commerce Server .NET Application Framework are grouped by functional area to make it easier for you to discover and use them. The root namespace for the interop layer is Microsoft.CommerceServer.Interop, and it groups all the Common Language Runtime Interop Layer objects.

The namespaces implemented by Commerce Server 2002 are:

  • Microsoft.CommerceServer.Interop
  • Microsoft.CommerceServer.Interop.Caching
  • Microsoft.CommerceServer.Interop.Catalog
  • Microsoft.CommerceServer.Interop.Configuration
  • Microsoft.CommerceServer.Interop.Orders
  • Microsoft.CommerceServer.Interop.Profiles
  • Microsoft.CommerceServer.Interop.Targeting

Note

  • The Base Class Library uses the Primary Interop Assemblies to interoperate with Commerce Server 2002 core services. You should use the Base Class Library instead of using the Primary Interop Assemblies directly. The Common Language Runtime Interop Layer does not manage the lifetime of a COM object for you; the Base Class Library does, resulting in increased performance and stability. The Base Class Library simplifies the programming model and follows the .NET Framework design guidelines.

See Also

Base Class Library Namespaces

Common Language Runtime Interop Layer


Building a .NET-Based Commerce Server Application

You use Microsoft Visual Studio .NET to create .NET-based Commerce Server applications that use the Microsoft .NET Framework. Microsoft Commerce Server 2002 provides tight integration with Visual Studio .NET, and allows you to access essential Commerce Server tools from the Visual Studio .NET development environment. You can also create Commerce Web applications in a team development environment; for more information about creating Visual Studio .NET applications in a team development environment, see http://go.microsoft.com/fwlink/?LinkId=6771.

The topics in this section explain how to access Commerce Server tools from Visual Studio .NET.

This section contains:

  • Creating a Commerce Project. Explains how to build a new Commerce Project by using the Project Creation Wizard.
  • Using the Developer Portal: Describes the Commerce Server tools integrated with Visual Studio .NET, including Commerce Server Manager.
  • Enabling Commerce Server in an Existing Web Project. Explains how to enable Commerce Server functionality in an existing Web service, Visual Basic .NET, C#, or empty Web project.
  • Using MessageManager. Explains how to implement message management by using the Commerce Server .NET Application Framework.
  • Creating a Commerce Server Package for the Project Creation Wizard. Explains how to create template files for the Commerce Server Site Packager so that the Commerce Server package can work correctly with the Project Creation Wizard.
  • Removing Commerce Server from your Web Project. Explains how to remove a .NET-based Commerce Server application from a Visual Studio .NET project.


Creating a Commerce Project

You use the Project Creation Wizard in Microsoft Visual Studio .NET to create Commerce Server applications. Using Commerce Projects in the Project Creation Wizard, you can create a new Microsoft Visual Basic .NET- or Microsoft Visual C#-based Commerce Server application.

Using the Project Creation Wizard, you can migrate your existing Commerce Server site to Visual Basic .NET or C# to use .NET-based Commerce Server features.

The following table lists and describes Commerce Project options to create a Commerce Server Project in the Project Creation Wizard.

Use this | To do this
Commerce C# ASP.NET Web Application | Create a new C# application for Commerce Server.
Commerce VB ASP.NET Web Application | Create a new Visual Basic .NET application for Commerce Server.
New Commerce C# Project In Existing Folder | Map files that are not .NET-based to an existing C# Commerce Server application. This will automatically add references to your site and copy files to your site folder.
New Commerce VB Project In Existing Folder | Map files that are not .NET-based to an existing Visual Basic .NET Commerce Server application. This will automatically add references to your site and copy files to your site folder.
Commerce Custom ASP.NET Web Application Create a custom site based upon an existing Commerce Server Site package. You will have an option to select what Commerce Server resources are installed.

Notes

  • To use this option, the Commerce Server custom site package must be built specifically for the Project Creation Wizard.
  • If you receive an error about not being able to connect to a remote site when unpacking a site from a remote computer, enter the full Universal Naming Convention (UNC) path. For example, \\<Server Name>\<drive>$\inetpub\wwwroot\<Site Name>\.

Notes

  • The Project Creation Wizard does not support Csharp or VB Commerce Server Site packages that might be present in the PuP Packages folder.
  • Multiple Business Desk applications in a single Commerce Server Site package are not supported.

To create a new Visual Basic .NET or C# Commerce Server application

To enable a Commerce Server project to an existing Commerce Server site

To create a new Visual Basic .NET or C# Commerce Server application

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. On the File menu, point to New, and then click Project.
  3. In the New Project dialog box, do the following:
    Use this | To do this
    Project Types | Select Commerce Projects.
    Templates | From the list, select Commerce C# ASP.NET Web Application to create a new C# Commerce Server application, or select Commerce VB ASP.NET Web Application to create a new Visual Basic .NET Commerce Server application.
    Location | Type the complete path or click Browse to specify where to store the project.
  4. To create the project, click OK.

    The Commerce Application Project Wizard starts.

  5. In the Commerce Application Project Wizard Welcome dialog box, click Next.
  6. In the Commerce Server Site Packager Quick Unpack dialog box, do the following:
    Use this | To do this
    Site name | Type a name for the site, or retain the name CommerceWebApp1.
    IIS Web site | Select the name of the Internet Information Services (IIS) 5.0 Web site where the applications will be installed.
    SQL Server Computer | Type the name of the SQL Server computer on which you want the site databases to be created.
    Use Windows Integrated Security Select this option if you want to use Windows integrated security.

    When you use Windows integrated security, user names and passwords are not stored in the SQL Server connection string, and are not affected by SQL Server password resets. For information about Commerce Server 2002 security, see Securing Your Site.
    Use a specific user name and password | Select this option if you want to use SQL Server authentication when connecting to the databases.
    SQL Server Login Name Type a SQL Server login user name that has permissions on the SQL Server computer on which the site databases are to be created.

    Note

    • For security purposes, do not use the sa login for access to the databases. To change the login information for the Administration database after it is created, use SQL Server Enterprise Manager.
    SQL Server Login Password | Type the SQL Server login password for the databases.
  7. Click Next.
  8. In the Data Warehouse dialog box, do the following:
    Use this | To do this
    Name | Type the name you want to give to the pointer to the global Data Warehouse resource.
    Server | Type the name of the SQL Analysis Services computer that the Data Warehouse will use.
    Database | Type the name of the Analysis Services database.
  9. Click OK.
  10. In the Profiling System dialog box, accept the default .xml files, and then click Next.
  11. In the next Profiling System dialog box, accept the default .xml files, accept the default connection string and schema definition scripts, and then click OK.

A new C# or Visual Basic .NET Commerce Server project is created.

To enable a Commerce Server project to an existing Commerce Server site

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. On the File menu, point to New, and then click Project.
  3. In the New Project dialog box, do the following:
    Use this | To do this
    Project Types | Select Commerce Projects.
    Templates | From the list, select New Commerce C# Project in Existing Site or select New Commerce VB Project In Existing Folder.
    Name | Type the name for the existing Commerce Server site.
  4. Click OK.
  5. In the Open dialog box, navigate to your existing Commerce Server site folder, select the Commerce Server Application ini file (csapp.ini), and then click Open.

A new Commerce Server project is created in Visual Studio .NET with all the current site files added to the project.

See Also

Using the Developer Portal

Enabling Commerce Server in an Existing Web Project

Creating a Commerce Server Package for the Project Creation Wizard

Removing Commerce Server from your Web Project


Using the Developer Portal

The Developer Portal is suite of Commerce Server tools integrated with Visual Studio .NET, the Developer Portal includes a project creation wizard that enables developers to create Commerce Server projects from the Visual Studio .NET environment, and schema designers to create profiling and product catalog systems that are hosted in the Visual Studio .NET environment.

Using the Developer Portal you can access the following:

  • DataBinding Expression Builder
  • Commerce Server Resources
  • Commerce Server Manager
  • Pipeline Editor
  • Business Desk application
  • Catalog Definition Designer
  • Profile Definition Designer

Note

  • The Developer Portal tools are only available in Commerce Projects. For more information about creating a Commerce Project or adding Commerce Server to your existing Projects, see Creating a Commerce Project and Enabling Commerce Server in an Existing Web Project.

This section contains:

  • Binding Commerce Data to a Web Form
  • Adding and Modifying Application Resources
  • Accessing Commerce Server Manager
  • Accessing the Pipeline Editor
  • Accessing Business Desk
  • Accessing the Catalog Definition Designer
  • Accessing the Profile Definition Designer


Binding Commerce Data to a Web Form

Most Web sites must display catalog, profile, and order data to users. To display this information on Commerce Server ASP.NET-based sites you must complete three main steps: choosing the appropriate Web server control, binding the data to the Web server control, and adding the databinding expression to the Web server control template. When you are familiar with the underlying schema of the data source to which a control is bound, creating these databinding expressions is not difficult. However, because the underlying schema and the names used to access data elements in Commerce Server 2002 are often hidden or abstracted, creating these expressions on your own could be difficult.

To simplify this task for developers, Commerce Server 2002 includes the DataBinding Expression Builder. The DataBinding Expression Builder helps you generate databinding expressions by representing the various data elements in a Commerce Server data source in the DataBinding Expression Builder user interface, and allows you to copy and paste the generated databinding expression to the template of a Web server control.

This topic walks you through the steps involved in binding commerce data to a Web form.

Choosing the appropriate Web server control

Binding data to the Web server control

Adding the databinding expression to the Web form

Choosing the Appropriate Web Server Control

When adding a Web control to your .aspx file, you must determine which Web control will properly render the data onto the page. Any single-valued instance, such as a property name, can be displayed by using the Label, Text Box, or Button Web server controls. Multi-valued instances, such as catalogs, profiles, and order forms, can only be bound to certain Web server controls. The following guidelines should be used when using the DataBinding Expression Builder to bind multi-valued instance data to Web server controls in a Commerce Server project.

Web server controls to bind to | Commerce Server namespace | Guidelines
DataGrid DataList ListBox RadioButton Repeater | Microsoft.CommerceServer.Runtime.Catalog | Bind to methods that have a DataSet return value. You can bind to any DataSet returned by any method in the Catalog namespace.
DataGrid DataList ListBox RadioButton Repeater | Microsoft.CommerceServer.Runtime.Orders | Bind to data returned by methods that implement the System.Collections.Icollection.
DataGrid DataList ListBox RadioButton Repeater | Microsoft.CommerceServer.Runtime.Profiles | Bind to the Profile or PropertyGroup class.

After you have determined which Web server control is appropriate for the data you wish to display, complete the following procedure to add it to your Web form (the .aspx file).

To add the Web server control to the Web form

  1. In Microsoft Visual Studio .NET, on the File menu, point to Open, and then click Project.
  2. In the Open Project dialog box, select the project that contains the Web form you want to modify, and click Open. The project opens.
  3. On the View menu, select Toolbox. The Toolbox opens.
  4. In the Toolbox, click the Web server control you want to add to your Web form and drag the control to the Form design surface. Drop the control on the form.

Binding Data to the Web Server Control

After adding the Web server control to the Web form, you need to add code to bind the data to the Web server control on the codebehind page (the .aspx.cs file). First you must set the data to the Web server control, and then call the DataBind method. For example:

ProductListing.DataSource = CommerceContext.Current.CatalogSystem.GetCatalog(“Adventure Works Catalog”).GetRootProducts();
ProductListing.DataBind();

The following code samples show how to bind data to a Web server control:

Code to set shipping methods on a basket on an ASP .NET Web form

Code to manipulate a basket in an ASP .NET Web form

Code to retrieve and display profile properties

Code to list catalogs on an ASP .NET Web form

Adding the DataBinding Expression to the Web Form

After adding the Web server control to the Web form and binding the data to the Web server control, you can add the databinding expression to the Web form. The databinding expression ensures that the correct portion of data bound to the Web server control is displayed. For example, if you bind a catalog to the Web server control, but only want to display the name of the catalog, you must choose the databinding expression for the CatalogName value.

To simplify the creation of databinding expressions, Commerce Server 2002 includes the DataBinding Expression Builder. The DataBinding Expression Buidler creates syntactically correct expressions based on the schema of a given data source. The expressions created by the DataBinding Expression Builder can be used in two forms:

  • Simple form. Use this to create a nonformatted expression based on the data in the current container.
  • Formatted form. Use this to create a formatted expression based on the data in the current container. This option is most useful when you need to include price, date, or time information in a specific format.

Additionally, you can select an advanced option, which you use to manipulate the generated databinding expression before inserting it into the Web form.

Note

  • The DataBinding Expression Builder is only available in Commerce projects. For more information about creating a Commerce Project, see Creating a Commerce Project.

To create an expression using the DataBinding Expression Builder and add it to the Web form

  1. On the Project menu, point to Commerce Server Project, and then click DataBinding Expression Builder.
  2. In the Commerce DataBinding Expression Builder dialog box, do the following:
    Use this | To do this
    Data Source | Select the source of the data you want to bind from the drop-down menu.
    Data Source Tree View Expand the property group nodes and select the property you want to bind.

    To select more than one property, press the CTRL key while selecting the additional properties.
    Simple Form | Select this option to get the simple form of the expression.
    Formatted Form | Select this option to get the DataBinder.Eval(), or formatted form of the expression.
    Edit Expression | Select this option to manipulate the Simple Form or Formatted Form of the expression.
  3. To copy the expression to the clipboard, click Copy.
  4. To close the Commerce DataBinding Expression Builder dialog box, click Close.
  5. On the Tools menu, click Class View.
  6. On the Class View tab of the Solutions Explorer window, double-click the Web form to which you want to add the expression.
  7. On the Web form code page, in HTML view, place the cursor within the template of the Web server control to which you want to apply the databinding expression.
  8. On the Tools menu, click Paste.

    The expression now appears on the Web form.

  9. Repeat steps 1 through 8 for each expression you want to add to the Web form.
  10. When you have finished, on the File menu, click Save to save the Web form.

You can now rebuild the project, and view the changes in the application.


Adding and Modifying Application Resources

A resource is an entity that provides functionality to the applications in a Commerce Server site. There are two types of resources: global resources and site resources. Global resources are available for use by all sites; site resources provide functionality to a specific site.

Resources include properties that are stored in the Commerce Server Administration database. These properties can be accessed and changed by using the Commerce Server Resources window in Visual Studio .NET.

The Commerce Server 2002 Resource tools window is only available in Commerce Projects. For more information about creating a Commerce Project, see Creating a Commerce Project.

The following table lists and describes the resources in Commerce Server 2002 that appear in the Resource tool window:

Resource | Description | Type
App Default Config | Stores properties that you use to configure a site, such as currency locale and symbols, billing and payment options, privacy options, unit of measure for weight, and options for integrating with Microsoft BizTalk Server 2000 and later. | Site
Business Desk Permissions | Connects to the database that stores data such as security identifiers and definitions that are used to secure the Business Desk user interface. | Site
Profiles | Creates data sources for storing profile data, and creates and stores profile definitions and properties. | Global
Campaigns | Connects to the database that stores data about campaigns (ads, discounts, and direct mail). | Site
Direct Mailer | Sends personalized or non-personalized mailings to large groups of recipients. | Global
Data Warehouse | Imports and manages Web site data from Web log files, Commerce Server databases, and other data sources. | Global
Product Catalog | Connects to the database that stores catalog schema and product data. | Site
Transactions Config | Connects to the database that stores data for shipping methods and rates, tax rates, state and region codes, and order status codes. | Site
Transactions | Connects to the database that stores data for baskets and orders. | Site

To open the Commerce Server Resources tool window

  • On the Project menu, point to Commerce Server Project, and then click Resources.

The Commerce Server Resources tool window opens. Use this tool window to view or edit Commerce Server resource properties.

Important

  • If you add a Commerce Server resource, you will be prompted to select a Commerce Server PuP package. You can select a Commerce Server package that contains the selected resource or you can use the Commerce Server Blank site package located at <drive>:\Program Files\Microsoft Commerce Server 2002\PuP Packages\.
  • If you change a connection string in a Commerce Server resource, you must restart IIS or the Visual Studio .NET application. For information about restarting IIS, see Restarting IIS and Commerce Server Services.

To edit Commerce Server resource properties

  1. In the Commerce Server Resources window, expand the Commerce Server Web application, and then select the resource you want to edit.
  2. On the View menu, click Properties.
  3. In the Properties window, select and edit the resource properties.

See Also

Managing Commerce Resources


Accessing Commerce Server Manager

Commerce Server Manager is a tool that you use to manage and configure Commerce Server 2002 resources, sites, applications, and Web servers. The Microsoft Management Console (MMC), a Windows-based interface that is included in Microsoft Windows 2000, hosts Commerce Server Manager.

The functionality in Commerce Server Manager is not available through either Web-based or command line administration. Instead, most of this functionality is accessed and manipulated through Component Object Model (COM) objects, so it is possible for you to write a Windows Script Host (WSH) script or an Active Server Pages (ASP) page to extend the administration environment.

To access Commerce Server Manager

  • On the Project menu, point to Commerce Server Project, and then click Commerce Server Manager.

Note

  • You can access Commerce Server Manager by clicking Commerce Server Manager in the Commerce Server Resources window.

See Also

Integrating Custom Resources


Accessing the Pipeline Editor

The Pipeline Editor is an application used for creating and editing Commerce Server pipelines. You can use it to edit a pipeline on your local computer or on a computer connected to a local area network (LAN).

Pipelines are described in pipeline configuration (.pcf) files. You create and configure .pcf files with the Pipeline Editor.

The Pipeline Editor displays a pipeline as a pipe, showing the stages of the pipeline as pipe segments. The components used in a stage appear as valves.

Certain components have an "affinity" with certain stages. This means that the component was designed for use within that stage. Commerce Server does not enforce this stage and component association. You can include any component in any stage.

To access the Pipeline Editor

  • On the Project menu, point to Commerce Server Project, and then click Pipeline Editor.


Accessing Business Desk

Commerce Server Business Desk hosts business management modules that you use to configure, manage, and analyze your sites. For example, you use Business Desk modules to create multilingual catalogs, update pricing information in your catalogs in multiple currencies, target new advertisements to specific users, and then run reports to measure how these changes affect site productivity.

Business Desk includes targeted, role-based security, which means that Business Desk users can view and manage only those modules for which they are authorized, and they can perform only the specific tasks for which they are authorized.

To access the Business Desk

  • On the Project menu, point to Commerce Server Project, and then click Business Desk.

Important

  • When you use Business Desk in Microsoft Visual Studio .NET, and you want to import an XML catalog file that is on your local computer or a remote client, you must do one of the following:
    • Move the local file to the server, and then import the XML file on the server.
    • Run Business Desk outside of Visual Studio .NET, and import the XML catalog file.
    • Change your security settings in Internet Explorer to enable or prompt for running unsafe components, and then import the XML catalog file from the local computer. This option is not recommended because it compromises the security of your computer.


Accessing the Catalog Definition Designer

You use the Catalog Definition Designer to view, create, or modify catalog schema and category and product definitions. You can access the Catalog Definition Designer by using Microsoft Visual Studio .NET.

To access the Catalog Definition Designer from Visual Studio .NET

  • On the Project menu, point to Commerce Server Project, and then click Catalog Definition Designer.

The Catalog Definition Designer opens.

Important

  • When you use Business Desk in Visual Studio .NET, and you want import an XML catalog file that is on your local computer or a remote client, you must do one of the following:
    • Move the local file to the server, and then import the XML file on the server.
    • Run the Business Desk outside of Visual Studio. NET, and import the XML catalog file.
    • Change your security settings in Internet Explorer to enable or prompt for running unsafe components, and then import the XML catalog file from local computer. This option is not recommended because it compromises the security of your computer.

See Also

Creating a Catalog Definition


Accessing the Profile Definition Designer

You use the Profile Definition Designer to view, create, or modify the profiles used in your Commerce Server site. You can also map the properties of existing profiles to new data sources, delete existing profiles and profile properties, and configure new data sources. You can access the Profile Definition Designer by using Microsoft Visual Studio .NET.

To access the Profile Definition Designer from Visual Studio .NET

  • On the Project menu, point to Commerce Server Project, and then click Profile Definition Designer.

The Profile Definition Designer opens.

See Also

Creating a Profile Definition


Enabling Commerce Server in an Existing Web Project

You can enable Commerce Server functionality in an existing non-Commerce Server Web service, Visual Basic .NET, C#, or an empty Web project.

After you enable Commerce Server in your existing project, the Commerce Server Site adds Commerce Server resources, sites, and the Business Desk application. The Project Creation Wizard also modifies your existing project file to incorporate Commerce Server-specific configuration settings and Commerce Server assembly references. These configuration settings are in the application level web.config file. The httpModules element and a Commerce Server node are also added to your existing project.

To enable Commerce Server in an existing Web project

  1. Open a non-Commerce Server project in Visual Studio .NET.
  2. On the toolbar, click Project, point to Commerce Server Project, and then click Enable Commerce Server. The Commerce Server Project Wizard starts.
  3. In the Commerce Application Project Wizard Welcome dialog box, click Next.
  4. In the Commerce Server Site Packager Quick Unpack dialog box, do the following:
    Use this | To do this
    Site name | Type a name for the site, or retain the name of your existing project.
    IIS Web site | Select the name of the Internet Information Services (IIS) 5.0 Web site where the applications will be installed.
    SQL Server Computer | Type the name of the SQL Server computer on which you want the site databases to be created.
    Use Windows Integrated Security Select this option if you want to use Windows integrated security.

    When you use Windows integrated security, user names and passwords are not stored in the SQL Server connection string, and are not affected by SQL Server password resets. For information about Commerce Server 2002 security, see Securing Your Site.
    Use a specific user name and password | Select this option if you want to use SQL Server authentication when connecting to the databases.
    SQL Server Login Name Type a SQL Server login user name that has permissions on the SQL Server computer on which the site databases are to be created.

    Note

    • For security purposes, do not use the sa login for access to the databases. To change the login information for the Administration database after it is created, use SQL Server Enterprise Manager.
    SQL Server Login Password | Type the SQL Server login password for the databases.
  5. Click Next.
  6. In the Data Warehouse dialog box, do the following:
    Use this | To do this
    Name | Type the name you want to give to the pointer to the global Data Warehouse resource.
    Server | Type the name of the SQL Analysis Services computer that the Data Warehouse will use.
    Database | Type the name of the Analysis Services database.
  7. Click OK.
  8. In the Profiling System dialog box, accept the default .xml files, and then click Next.
  9. In the next Profiling System dialog box, accept the default .xml files, accept the default connection string and schema definition scripts, and then click OK.

Commerce Server is now enabled in your existing Web project.

See Also

Creating a Commerce Project


Using MessageManager

If you are using the MessageManager object to manage localized message handling through the rc.xml file, you use the RCXml2Resx tool (located in the Commerce Server 2002 folder) to convert your rc.xml file to .resx files, and then create satellite assemblies for the MessageManager object using the .resx files. Commerce Server uses satellite assemblies to store language-dependent string resources.

To implement message management, do the following:

  1. Convert rc.xml files to .resx files by using the RCXml2Resx tool.
  2. Convert .resx files to resource files by using the Microsoft .NET Resource Generator (ResGen) tool.
  3. Generate satellite assemblies by using the Microsoft Assembly Linker (Al.exe) tool.
  4. Obtain the base name for your satellite assemblies.
  5. Edit the web.config file to modify the messageManager tag to include information about the satellite assemblies.

Note

  • You can also generate satellite assemblies by using the Visual Studio .NET integrated development environment (IDE). If choose to use the Visual Studio .NET IDE, you can skip steps 2 and 3. For information about how to use the Visual Studio .NET IDE to build satellite assemblies, see To build satellite assemblies using Visual Studio .NET.

To convert rc.xml files to .resx files

To convert .resx files to resource files

To create satellite assemblies

To build satellite assemblies using Visual Studio .NET

To obtain the base name for your satellite assemblies

To edit the web.config file

An Example Using MessageManager

To convert rc.xml files to .resx files

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, point to Visual Studio .NET Tools, and then click Visual Studio .NET Command Prompt.
  2. In the Visual Studio .NET Command Prompt window, type RCXml2Resx <XMLFilePath> <outputfilename[.ext]>.

    For example, RCXml2Resx c:\rc.xml c:\rc.resx will convert the rc.xml file located on C:\ to a new rc.resx file and place it on C:\.

Notes

  • The RCXml2Resx tool generates one .resx file for each language in the XML file.
  • If outputfilename is not specified then it will be the same as the name of the XML file.
  • If .ext is not specified then the default extension will be .resx.

To convert .resx files to resource files

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, point to Visual Studio .NET Tools, and then click Visual Studio .NET Command Prompt.
  2. In the Visual Studio .NET Command Prompt window, type ResGen <inputFile.ext> [<outputFile.ext>].

To create satellite assemblies

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, point to Visual Studio .NET Tools, and then click Visual Studio .NET Command Prompt.
  2. In the Visual Studio .NET Command Prompt window, type al /embed:<Resource> /culture:<culture name> /out:<filename>

    For example, al /embed:MessageManagerResources.en-US.resources /culture:en-US /out:C:\inetpub\wwwroot\CommerceWebApplication\bin\en-us\CommerceWebApplication.resources.dll will create the satellite assembly for the En-US culture for the MessageManagerResource.en-US resource.

To build satellite assemblies using Visual Studio .NET

  1. Copy the .resx files (from the first procedure) to your Commerce Server Project directory.
  2. Start Visual Studio .NET and open your Commerce Project.
  3. On the toolbar, click File, and then click Add Existing Items.
  4. In the Add Existing Item - <Project Name> dialog box, select the .resx files you copied in step 1, and then click Open.
  5. On the toolbar, click Build, and then click Build Solution.

Visual Studio .NET will generate the satellite assemblies for you.

To obtain the base name for your satellite assemblies

Notes

  • If you are building the satellite assemblies by using the Microsoft Assembly Linker, then the base name will be the name of your resource file. For example, if you created a resource file named MessageManagerResources.en-US.resources, then the base name will be MessageManagerResources.
  • If you are using Visual Studio .NET to build your satellite assemblies, then follow these steps to get the base name.
  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, point to Visual Studio .NET Tools, and then click Visual Studio .NET Command Prompt.
  2. In the Visual Studio .NET Command Prompt window, type ildasm <satellite assembly>.resources.dll
  3. Click MANIFEST.

    You will see a section that looks like .mresource public 'BaseName.en-US.resources'.

    For example, if you see the section 'CommerceWebApplication.MessageManagerResources.en-US.resources', then CommerceWebApplication.MessageManagerResources is the base name for your satellite assembly, and you must use this to edit the web.config file.

To edit the web.config file

  1. Open the web.config file and go to the messageManager tag.
  2. In the messageManager tag, do the following:
    <messageManager>
<cultures default="<type default culture name>" BaseName="<Type the Resource Name. See To obtain the base name for your Satellite Assemblies>" assembly="<Name of the Satellite Assembly containing your resources>">
               <culture id="<Your Culture ID 1>" />
               <culture id="<Your Culture ID 2>" />
                .
                .
               <culture id="<Your Culture ID N>" />
       </cultures>
       <resources>
               <resource id="<Your Resource ID" />
       </resources>
</messageManager>

Your message management system will now use the Commerce Server .NET Application Framework.


An Example Using MessageManager

In this example, you will convert an existing rc.xml file that supports EN-US and FR-FR cultures to .resx files, generate resources and satellite assemblies, and then modify the web.config file.

For this example, the base name of the resources is MessageManagerResources, as specified in the sample web.config file.

Viewing the rc.xml File

Using the RCXML2Resx Tool

Generating Satellite Assemblies Using the Command Prompt

Editing the web.config File

Viewing the rc.xml File

The sample format of the rc.xml file is as follows:

<?xml version="1.0"?>
<MessageManager>
        <Language Name="English"    Locale="1033"/>
        <Language Name="French"     Locale="1036"/>
        <Entry Name=" pur_badsku" Type="_Basket_Errors ">
                <Value Language="English"> Please note that one or more
                       items were removed from your order because the
                       product is no longer sold.
                </Value>
                <Value Language="French"> Notez qu'un ou plusieurs
                       articles ont 騁� supprim駸 de votre commande car le
                       produit n'est plus en vente.
                </Value>
          </Entry>
</MessageManager>

Using the RCXML2Resx Tool

The sample command syntax is as follows:

  • RCXML2Resx C:\Inetpub\wwwroot\CommerceWebApp\rc.xml MessageManagerResources.resx

This will generate the following files in the current directory:

  • MessageManagerResources.en-US.resx
  • MessageManagerResources.fr-FR.resx

MessageManagerResources is the base name used for this example. You can use a different base name to generate .resx files.

Generating Satellite Assemblies Using the Command Prompt

Creating satellite assemblies by using the command prompt is a three-step process:

  1. Use the following commands to create the resource files:
    • resgen MessageManagerResources.en-US.resx
    • resgen MessageManagerResources.fr-FR.resx
  2. Make sure that both folders, en_US and fr_FR, are created under the \Bin folder under the Commerce Server project. In this example, the Commerce Server project name is CommerceWebApp, and it is located at C:\Inetpub\wwwroot\.
  3. Generate satellite assemblies for each culture and place them in the appropriate folders. At the command prompt, type:
    • al /embed:MessageManagerResources.en-US.resources /culture:en-US /out:C:\Inetpub\wwwroot\CommerceWebApp\bin\en-us\CommerceWebApplication.resources.dll
    • al /embed:MessageManagerResources.fr-FR.resources /culture:fr-FR /out:C:\Inetpub\wwwroot\CommerceWebApp\bin\fr-FR\CommerceWebApplication.resources.dll

Alternatively, you can use Visual Studio .NET to generate your satellite assemblies. Visual Studio .NET automatically creates the resources and directories for you. For information about using Visual Studio .NET to generate satellite assemblies, see To build satellite assemblies using Visual Studio .NET

Editing the web.config File

The final step in using the MessageManager object is to edit the web.config file. In this example, information provided earlier is entered in the messageManager tag in the web.config file.

The sample web.config file is as follows:

 <messageManager>
<cultures default="en-US" BaseName="MessageManagerResources" assembly="CommerceWebApplication">
               <culture id="en-US" />
               <culture id="fr-FR" />
       </cultures>
       <resources>
               <resource id="pur_badsku" />
       </resources>

</messageManager>


Creating a Commerce Server Package for the Project Creation Wizard

When you build a custom Commerce Server Site package to work with the Custom option of the Project Creation Wizard, you must create template site files for that package. The template site files are a collection of text files that contain some simple directives. They are parsed and rendered according to user input to the wizard and then added to the Commerce Server project. The information for parsing the templates is obtained by directly accessing the symbol table of the Project Creation Wizard.

Commerce Server Site files follow a template structure similar to the one defined by Visual Studio .NET. For information about template directives used in the Project Creation Wizard template file, see "Template Directives" in Microsoft Visual Studio .NET Help.

Any site that contains template files must include a file named template.ini. This file can be empty of content and will be deleted at the end of the wizard process. It merely signals that the files should be parsed for symbols.

The site must include a web.config file with a valid defaultLanguage attribute on the compilation node. The defaultLanguage attribute must be set to either c# (C#) or vb (Visual Basic .NET).

Notes

  • In Commerce Server 2002, Visual Basic .NET and C# are the only languages supported by the Project Creation Wizard.
  • If the file DynamicDisco.disco is present in the root directory of the site, the Project Creation Wizard will be rename it to <sitename>.disco.

Commerce Server Variables

Sample C# Form Page

Sample C# Codebehind Page

Sample C# AssemblyInfo.vb Page

Sample Visual Basic .NET Form Page

Sample Visual Basic .NET Codebehind Page

Sample Visual Basic .NET AssemblyInfo.vb page

Commerce Server Variables

You use the following Commerce Server variables when creating the Project Creation Wizard template files:

Variable | Description
WIZARD_NAME Specifies the name of the wizard.

WIZARD_NAME will always be Commerce Custom Web Project for package files processed by the Custom option of the Project Creation Wizard.
PROJECT_TYPE Specifies the Visual Studio .NET project type.

This will be either VBPROJ or CSPROJ, and is determined by the defaultLanguage attribute of the compilation tag in the site’s web.config file.

The defaultLanguage attribute must be set to either c# (C#) or vb (Visual Basic .NET).

Note

  • In Commerce Server 2002, Visual Basic .NET and C# are the only languages supported by the Project Creation Wizard.
SHARED_PATH Specifies the shared commerce files folder.

SHARED_PATH is usually set to: <drive>:\Program Files\Common Files\Microsoft Shared\Enterprise Servers\Commerce.
COMMERCE_PATH Specifies the Commerce Server install path.

COMMERCE_PATH is usually set to: <drive>:\Program Files\Microsoft Commerce Server 2002.
DEFAULT_SERVER_SCRIPT Specifies the default server script language.

DEFAULT_SERVER_SCRIPT is either JavaScript or VBScript depending upon the default settings of the user.
DEFAULT_CLIENT_SCRIPT Specifies the default server script language.

DEFAULT_CLIENT_SCRIPT is either JavaScript or VBScript depending upon the default settings of the user.
DEFAULT_TARGET_SCHEMA | Specifies one of the following target schemas depending upon the default settings of the user: http://schemas.microsoft.com/intellisense/ie3-2nav3-0, http://schemas.microsoft.com/intellisense/ie5, or http://schemas.microsoft.com/intellisense/nav4-0.
DEFAULT_HTML_LAYOUT | Specifies either FlowLayout or GridLayout depending upon the default settings of the user.
GUID_ASSEMBLY | Specifies the assembly GUID for use in an assemblyinfo.vb file (if present).
SAFE_CLASS_NAME Specifies the safe class name for the current page.

This symbol is only available for C# projects.
SAFE_NAMESPACE_NAME Specifies the safe namespace for the current project.

This symbol is only available for C# projects.
SAFE_ITEM_NAME Specifies the safe class name for the current page.

This symbol is only available for C# projects.

Sample C# Form Page

Following is a sample form page in C#:

<%@ Page language="c#" Codebehind="$FILENAME$.cs" AutoEventWireup="false" Inherits="$INHERITS$" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<html>
  <head>
    <title>[!output SAFE_ITEM_NAME]</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name=vs_defaultClientScript content="[!output DEFAULT_CLIENT_SCRIPT]">
    <meta name=vs_targetSchema content="[!output DEFAULT_TARGET_SCHEMA]">
  </head>
  <body MS_POSITIONING="[!output DEFAULT_HTML_LAYOUT]">

    <form id="Form1" method="post" runat="server">

    </form>

  </body>
</html>

Sample C# Codebehind Page

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.CommerceServer.Runtime;

namespace [!output PROJECT_NAME]
{
   /// <summary>
   /// Summary description for _Default.
   /// </summary>
   public class _Default : System.Web.UI.Page
   {
      private void Page_Load(object sender, System.EventArgs e)
      {
         // Put user code to initialize the page here
      }

      #region Web Form Designer generated code
      override protected void OnInit(EventArgs e)
      {
         //
         // CODEGEN: This call is required by the ASP.NET Web Form Designer.
         //
         InitializeComponent();
         base.OnInit(e);
      }

      /// <summary>
      /// Required method for Designer support - do not modify
      /// the contents of this method with the code editor.
      /// </summary>
      private void InitializeComponent()
      {
         this.Load += new System.EventHandler(this.Page_Load);
      }
      #endregion
   }
}

Sample C# AssemblyInfo.vb Page

Following is a sample assemblyinfo.vb page in C#:

using System.Reflection;
using System.Runtime.CompilerServices;

//
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
//
[assembly: AssemblyTitle("")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

//
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:

[assembly: AssemblyVersion("1.0.*")]

//
// In order to sign your assembly you must specify a key to use. Refer to the
// Microsoft .NET Framework documentation for more information on assembly signing.
//
// Use the attributes below to control which key is used for signing.
//
// Notes:
//   (*) If no key is specified, the assembly is not signed.
//   (*) KeyName refers to a key that has been installed in the Crypto Service
//       Provider (CSP) on your machine. KeyFile refers to a file which contains
//       a key.
//   (*) If the KeyFile and the KeyName values are both specified, the
//       following processing occurs:
//       (1) If the KeyName can be found in the CSP, that key is used.
//       (2) If the KeyName does not exist and the KeyFile does exist, the key
//           in the KeyFile is installed into the CSP and used.
//   (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
//        When specifying the KeyFile, the location of the KeyFile should be
//        relative to the "project output directory". The location of the project output
//        directory is dependent on whether you are working with a local or web project.
//        For local projects, the project output directory is defined as
//       <Project Directory>\obj\<Configuration>. For example, if your KeyFile is
//       located in the project directory, you would specify the AssemblyKeyFile
//       attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
//        For web projects, the project output directory is defined as
//       %HOMEPATH%\VSWebCache\<Machine Name>\<Project Directory>\obj\<Configuration>.
//   (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
//       documentation for more information on this.
//
[assembly: AssemblyDelaySign(false)]
[assembly: AssemblyKeyFile("")]
[assembly: AssemblyKeyName("")]

Sample Visual Basic .NET Form Page

Following is a sample form page in Visual Basic .NET:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="$FILENAME$.vb" Inherits="$INHERITS$"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
  <head>
    <title>[!output SAFE_ITEM_NAME]</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name=vs_defaultClientScript content="[!output DEFAULT_CLIENT_SCRIPT]">
    <meta name=vs_targetSchema content="[!output DEFAULT_TARGET_SCHEMA]">
  </head>
  <body MS_POSITIONING="[!output DEFAULT_HTML_LAYOUT]">

    <form id="Form1" method="post" runat="server">

    </form>

  </body>
</html>

Sample Visual Basic .NET Codebehind Page

Following is a sample codebehind page in Visual Basic .NET:

Imports Microsoft.CommerceServer.Runtime

Public Class _Default
    Inherits System.Web.UI.Page

#Region " Web Form Designer Generated Code "

    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN: This method call is required by the Web Form Designer
        'Do not modify it using the code editor.
        InitializeComponent()
    End Sub

#End Region

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'Put user code to initialize the page here
    End Sub

End Class

Sample Visual Basic .NET AssemblyInfo.vb Page

Following is a sample assemblyinfo.vb page in Visual Basic .NET:

Imports System.Reflection
Imports System.Runtime.InteropServices

' General Information about an assembly is controlled through the following
' set of attributes. Change these attribute values to modify the information
' associated with an assembly.

' Review the values of the assembly attributes

<Assembly: AssemblyTitle("")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("")>
<Assembly: AssemblyCopyright("")>
<Assembly: AssemblyTrademark("")>
<Assembly: CLSCompliant(True)>

'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("[!output GUID_ASSEMBLY]")>

' Version information for an assembly consists of the following four values:
'
'      Major Version
'      Minor Version
'      Build Number
'      Revision
'
' You can specify all the values or you can default the Build and Revision Numbers
' by using the '*' as shown below:

<Assembly: AssemblyVersion("1.0.*")>

See Also

Creating a Commerce Project


Removing Commerce Server from Your Web Project

You can remove Commerce Server functionality from your Visual Basic .NET, C#, or custom Web project.

To remove Commerce Server from your existing Web project, you must do the following:

  1. Manually remove the following XML nodes from your existing *.csproj or *.vbproj file:
    • <Service ID = "{863A8654-47CB-4109-8737-FB29C465AA33}" /> (if present)
    • CommerceSiteName attribute(s) from the UserProperties tag.
  2. Remove all references to Commerce objects from your project, including the web.config and all other source files.
  3. Delete Commerce Server site and global resources from Commerce Server Manager.
  4. Delete any Commerce Server databases used by the site.


International Retail Site

The International Retail Site is a technology preview of a multilingual, multicurrency business-to-business, and business-to-consumer Web site. It is similar in some ways to the Retail Solution Site provided for Commerce Server 2002.

It is written in ASP.NET and supports many of the latest Commerce Server 2002 features.

The International Retail Site is a functional example of a site created by using .NET and Commerce Server 2002 technologies. It is a sample site only and was not tested or intended to be production grade. If you extend the site for your own use, it is recommended that you test the site thoroughly to be sure that the site and your extensions meet your requirements.

This section contains:

  • International Retail Site Overview. Describes setting up the site and exploring the site from the perspective of the user.
  • International Retail Site Features. Provides a description of the main features of the site.
  • International Retail Site Infrastructure. Provides a description of the site implementation.
  • Tips for Developing Your Site. Provides tips for developing the site.
  • International Retail Site Reference. Describes the file organization and control reference information for the International Retail Site.


International Retail Site Overview

The International Retail Site demonstrates a Commerce Server 2002 business-to-consumer and business-to-business Web site built using ASP.NET and managed code. Much of the functionality of the site is contained in compiled assemblies and controls that inherit from the classes in those assemblies.

The site supports multilingual catalogs and demonstrates how to use .NET CultureInfo data to control how the site displays localized text and other properties. The architecture of the site is designed to manage text and images for multiple cultures, and will distinguish, for example, between French (France) and French Canadian content.

It can provide the correct currency, currency symbol, and delimiters for each while using the same French content translation; however, the currency conversions require additional settings to be made in the Exchange Rates table in Commerce Server Business Desk, populating it with valid ISO 4217 country/region codes and conversion rates.

This section contains:

  • Deploying the International Retail Site. Describes installing the site and Visual Studio .NET integration.
  • Setting Up the International Retail Site. Describes installing the site from Commerce Server 2002 without using Visual Studio .NET integration.
  • Setting Up the International Retail Site with Visual Studio .NET. Describes installing the site as a Visual Studio .NET project.

See Also

Exploring the International Retail Site


Deploying the International Retail Site

The International Retail Site has no hardware requirements beyond those of Commerce Server 2002. However, the software requirements are slightly different. For information about hardware requirements for Commerce Server 2002, see the Commerce Server 2002 Installation Guide. For software requirements for the International Retail Site, see International Retail Site Software Requirements.

The International Retail Site is a functional example of a site created by using .NET and Commerce Server 2002 technologies. It is a sample site only and was not tested or intended to be production grade. If you extend the site for your own use, it is recommended that you test the site thoroughly to be sure that the site and your extensions meet your requirements.

Business Analytics System does not support the .NET Retail Site

The Business Analytics System does not support importing log file data and other data generated by the International Retail site into the Data Warehouse.


Setting Up the International Retail Site

If you want to explore the International Retail Site whether or not you intend to use Microsoft Visual Studio .NET as your development environment, install the International Retail Site by unpacking the Retail2002.pup file using Commerce Server Site Packager. For information about using Commerce Server Site Packager, see Unpacking a Site.

Note

    The Retail2002.pup file is located at <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Retail2002\Retail2002.pup.

    After unpacking the site, set up the International Retail Site Business Desk and import the sample catalog. Using your browser, navigate to http://<myServer>/Retail2002Bizdesk/ to start the Business Desk client setup process.

    To import the sample catalog, see Importing an XML Catalog File. The sample catalog for the site is located at <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet\AdvWorksCatalog.xml.

    The International Retail Site Retail2002.pup file does not include the images associated with the sample catalog. Use the following procedure to install the images associated with the sample catalog:

    1. Unpack the Catalog Sitelet from the same location as the XML file.
    2. Create the folder, <%systemdrive%>\Inetpub\wwwroot\Retail2002\Images\Catalog.
    3. Copy the image files from <%systemdrive%>\Inetpub\wwwroot\NetCatalogSitelet\Images folder to the new Catalog folder.

    See Also

    Setting Up the International Retail Site with Visual Studio .NET


Setting Up the International Retail Site with Visual Studio .NET

If you want to explore or extend the International Retail site using Microsoft Visual Studio .NET as your development environment, you must first unpack the site using Commerce Server Site Packager. For information about using Commerce Server Site Packager, see Unpacking a Site.

The Retail2002.pup file is located at <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Retail2002\Retail2002.pup.

Note

  • When you unpack the International Retail Site, you must select SQL Authentication. If you unpack the site using Windows Authentication, which is the default, you will get a runtime error and you will not be able to use the site.

After unpacking the site, set up the International Retail Site Business Desk and import the sample catalog. Using your browser, navigate to http://<myServer>/Retail2002Bizdesk/ to start the Business Desk client setup process.

To import the sample catalog, see Importing an XML Catalog File. The sample catalog for the site is located at <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet\AdvWorksCatalog.xml.

The International Retail Site Retail2002.pup file does not include the images associated with the sample catalog. Use the following procedure to install the images associated with the sample catalog:

  1. Unpack the Catalog Sitelet from the same location as the XML file.
  2. Create the folder, <%systemdrive%>\Inetpub\wwwroot\Retail2002\Images\Catalog.
  3. Copy the image files from <%systemdrive%>\Inetpub\wwwroot\NetCatalogSitelet\Images folder to the new Catalog folder.

After the site has been unpacked and the sample catalog has been imported, you can open the solution file in Visual Studio .NET using the following procedure:

  1. Start Visual Studio .NET.
  2. On the Open menu, click Project.
  3. In the Open dialog box, browse to and select the file <%systemdrive%>\Inetpup\wwwroot\Retail2002\Retail2002.sln.

The Retail2002 projects open in Visual Studio .NET.

Note

  • Do not use the Commerce Server Project Creation Wizard that is integrated into Visual Studio .NET to create the International Retail Site. The International Retail Site solution contains multiple projects that would have to be deleted and re-added manually.

See Also

Setting Up the International Retail Site


International Retail Site Features

The following sections outline the major feature areas of the International Retail Site. These areas are described at a high level. The implementation of the features is described in the Site Infrastructure topics with details in the International Retail Site Reference section.

This section contains:

  • Multiculture Features. Describes the features that support currency, language, and other cultural attributes.
  • Main Page Features. Describes the main page of the International Retail Site.
  • Product Catalog Features. Describes the navigation controls for the product catalog, and product catalog compatibility requirements.
  • Authentication Features. Describes user authentication.
  • Account Management Features. Describes the features that manage user data.
  • Cart Features. Describes the shopping cart page.
  • Transaction Processing Features. Describes the processing of transactions on the International Retail Site.
  • Campaign Features. Describes support for Commerce Server 2002 advertising and discount campaigns.


Multiculture Features

The International Retail Site is globalized and localizable. The site and the sample catalog are localized into four languages, French, German, Japanese and English. The catalog can be found in the following directory:

<drive>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet\

See Setting up the International Retail Site for instructions to install the sample catalog.

This section contains:

  • Globalized Architecture. Describes how to add additional cultures to the International Retail Site.
  • Multilanguage Features. Describes support for translated strings, bitmaps, and multilanguage catalogs.
  • Multi-Country/Region Features. Describes the elements supported by the .NET CultureInfo class.
  • Multicurrency Features. Describes the multicurrency feature of the International Retail Site.
  • Other Culture Features. Describes culture-specific address templates and international BizTalk Server issues.


Globalized Architecture

The International Retail Site is designed to allow additional cultures to be added easily to the site. For example, the site code is separate from the string resources. Adding a language to the site is a simple process. See Adding a Language to your Site for more information.

To support globalization, the .NET Framework provides a class called CultureInfo, which represents information about a specific culture. This information includes the writing system, calendars in use, date and time formatting conventions, numeric and currency conventions, and sorting rules. Use the CultureInfo class to describe a specific culture and customize operations, such as formatting dates and numbers, sorting strings, or definitions of character sets to be appropriate for that culture.

For more information about the .NET CultureInfo class, see MSDN Library and search on CultureInfo.


Multilanguage Features

Text information in the site comes from several sources:

  • Catalog data
  • User interface text
  • Graphics that contain bitmapped text

Each of these elements must be managed to fully internationalize a site.

To do this, the site takes full advantage of the multilanguage features of Commerce Server 2002 catalogs. Catalogs, categories, and products have display names for each language in the catalog. See Multilingual Catalogs for more information.

The site also contains string resource files (ResX) for each language supported by the site. Adding a new language is as simple as translating the ResX file and adding the translated file to the site. See Localizing Web Site Text for more information.

Providing localized graphics is similar to skinning the site. See Page Authoring for more information.


Multi-Country/Region Features

Culture information goes beyond language. It includes national or even regional distinctions. For example, there is a different culture code for France-French, Canadian-English, Canadian-French, and U.S.-English.

For more information about the .NET CultureInfo class, see MSDN Library and search on CultureInfo.

The following elements are supported by the .NET CultureInfo class. These elements are supported in the International Retail Site:

  • Numbers
  • Currency (which are numbers with a currency symbol)
  • Time
  • Dates
  • Strings
  • Images


Multicurrency Features

The International Retail site exposes a currency conversion feature which allows the user to view product prices expressed in different currencies. This feature uses configurable exchange rates relative to the site's base currency.

The catalog used in the International Solution Site contains price information in a single currency. If more catalogs are added, all catalogs on the site must use the same base currency.

If the user has chosen a display currency that is different from the base currency for the catalog, the International Retail Site can display an approximate price in the display currency of the user, which is calculated from a simple conversion rate configured on the site. Calculating an accurate conversion involves more complicated calculations, access to current rate information, and rules that often vary for specific conversions. This is outside the scope of this sample site.

See Also

International Transactions


Other Culture Features

The site also demonstrates a business-to-business component that uses Microsoft BizTalk Server to manage the transfer of catalog information and orders. The site displays information relating to orders. You should be aware if you are planning to implement such a system that partner sites may not respond in the culture of the current user or provide multilingual data.


Main Page Features

This section describes the main features that are visible on the primary pages of the International Retail Site.

This section contains:

  • Search
  • Catalog Navigation
  • Site Logo
  • Ad Banner
  • Featured Stories/Products
  • Informational Links
  • Targeted Content
  • Fixed Navigational Links


Search

The International Retail Site provides full-text search, allowing users to search for products based on actual text data rather than using the catalog. The advanced search option allows users more control of a full-text search. Users can search with multiple terms using the logical AND and OR operators, and they can control which catalogs are searched.

By default, search works against the current catalog set. Only the catalogs that are in the user’s catalog set are searched. For anonymous users, only the catalogs in the anonymous user catalog set are searched.

The Search Control and the AdvancedSearch control are used to provide this functionality.


Catalog Navigation

Users navigate the site content through a combination of the Browser control and the NavigationTabs control.

When the user first enters the main page no catalog is selected. The navigation tabs display the catalogs available to the user.

The main content area displays a list of featured products. These products are chosen by the site based on a combination of site configuration and the attributes of the products in the catalog.

The number of products shown in the list of featured products can be changed by the developer. The list of featured products can be configured to select products for display using one of the following methods:

  • Select products by Ad using a PageGroup with a context of "Main" and slot context of featured product.
  • Select products by discount using the same targeting context as ads.
  • Select products by catalog which displays the list of root products (products without parent categories).

    After the user selects a catalog, the Browse navigation control displays the title Browse Categories the top of the control. Below this, it shows the root categories.

    There are three different templates for displaying product information in various areas of the site. This section discusses products shown in the medium template. For more information about product display templates see Product Catalog Display.

    As users drill into catalog categories, the browser control displays their location in the catalog hierarchy and shows the categories below their present location. The products in the current category are shown in the main content area.

    The site can distinguish between authenticated users and anonymous users, and use that information to display different catalogs to the user. As the site is configured the two catalog sets are identical. The catalog sets are specified, and can be changed by editing the web.config file.


Site Logo

The site logo in the upper left corner on the International Retail Site is a link to a static image. This image is selected based on the current culture, so that it can be changed to support different languages. It can be easily changed when customizing the site.

See Also

Page Authoring


Ad Banner

The site provides a location for an ad banner at the top of all pages, immediately to the right of the logo. See International Campaigns for more information.


Featured Stories/Products

When no catalog is selected, the home page shows featured products in the main content area.

There are many strategies for the display of featured content that sites may want to implement. Some examples are:

  • Static content – using static HTML pages.
  • Targeted content – using the Content Selector Framework (CSF) for discounts or ads.


Informational Links

Informational links are provided to the Help, Customer Service, and My Account pages. These links are provided to help the user get the most out of the site.


Targeted Content

To the right of the main area is an area set aside for the display of targeted content. The Content Selection Framework is used to select promotions and discounts. If there are none available, the area is left blank.


Fixed Navigational Links

Across the bottom of the main area are a series of links to the site home page, the site map, user account information, as well as several static pages that represent typical static content for a business-to-consumer e-commerce site.


Product Catalog Features

The International Retail Site displays site catalogs, and supports navigation of the site catalogs through either searching or browsing.

This section contains:

  • Product Catalog Search. Describes full-text search and advanced search as they are used on the International Retail Site.
  • Product Catalog Browsing. Describes the controls used for catalog browsing on the site.
  • Product Catalog Display. Describes the product-display templates.
  • Product Catalog Compatibility. Describes catalog features that are required for the site to function properly.


Product Catalog Search

Catalog search is always available to the left of the main page. There are two types of search, full-text search and advanced search. With both types of search the results are displayed in the main area, and users can also control which catalogs are searched.

Full-text Search

The Search control provides a basic full-text search of the current catalog set when the user click the Search link on the page. It also displays a link to the AdvancedSearch control.

Advanced Search

When the user clicks the Advanced Search link on the page, the AdvancedSearch control appears in the main display area. The AdvancedSearch control allows users to more readily define the parameters for their search. Users can search with multiple terms using the logical AND and OR operators. With advanced search capabilities, users can also control how many items to return on the results page.


Product Catalog Browsing

Users navigate the site by using the Browser control and the NavigationTabs control.

The CatalogNavigationTabs control allows users to select the catalog to browse, or to navigate to the site home page.

The CatalogBrowser control allows users to browse through the categories of the selected catalog. If the catalog contains multiple levels of categories, the control displays the current location in the category hierarchy. This display helps users stay oriented on the site.


Product Catalog Display

Product information is displayed differently in different contexts. There are three product-display templates:

  • Small for search results
  • Medium for product list displays
  • Full for product selection/configuration

The ProductList control is used to display product information when browsing a catalog. The full template is used to display the product when the user has selected a specific product. The VariantDisplay control is used if the selected product has a variant. This control allows users to display and manage product options before placing the product in their cart.


Product Catalog Compatibility

The International Retail Site was designed to use catalogs with a structure similar to the sample catalog.

Required Columns

The following columns must be present in any catalog on the site:

  • Description
  • Image_filename
  • Name

A value is required for the Name column to access the Product details page for that product. The Description and Image_filename columns can be empty.

Recommended Hierarchy

Paging is not implemented on the site. If your catalog has a large number of root-level products, the aspnet_wp process will time out and the site will not respond. Your catalog should contain products within categories, and no single category should contain a large number of products.


Authentication Features

The site designer may configure the International Retail Site to require authentication in order for the user to make a transaction on the site. Authentication makes the shopping experience far easier and more targeted. It allows the user to maintain multiple ship-to addresses, multiple credit card information, and past shopping history.

The International Retail Site allows two types of user authentication:

  • Forms / Passport Authentication

    An authenticated user is a user who has filled out a user profile for the site, or who has logged in through Microsoft Passport. The International Retail Site uses authentication to enhance the retail experience by allowing targeted offers and stream-lined checkout; however, users are not forced to authenticate their visits.

  • Anonymous Authentication

    Users are considered anonymous until they log into the site using either Microsoft Passport or the login page. Anonymous users can still be tracked, but less is known about them, and so less can be done for them. Targeted advertisements, for example, cannot be generated for an anonymous user.

Authentication may be expanded to provide other personalized details such as holiday or birthday wish lists. If the user supplies their profile data in advance, it will also make the checkout process easier.

This section contains:

  • Tracking Users. Describes how the site can track users.
  • Passport Integration Features. Describes Microsoft Passport integration features.
  • Security Features in the International Retail Site. Describes security features as they relate to the International Retail Site.

See Also

  • Authenticating Users
  • Integrating with Passport


Tracking Users

The site tracks user sessions in either cookie or cookieless mode. The site automatically detects client-side cookie support for each session. If persistant cookies are enabled on the client, the site can track return visits of anonymous users, as well as user preferences.

There are three possible states that the site must deal with when tracking user visits:

  • The user allows session and persistent cookies

    User information can be tracked using cookies, and those cookies can be stored on the hard disk between sessions.

  • Session cookies only

    User information can be tracked during the session using cookies, but this data will be deleted at the end of the session. It will not be available for future use.

  • No cookie support

    User information cannot be tracked using cookies. In this case, other means must be used to track user data. The International Retail Site will append the Authorization and Profile tickets to the end of the URL for each page request. This is similar to the method used in the Retail Solution Site.

See Also

Passport Integration Features

Security Features in the International Retail Site


Passport Integration Features

The International Retail Site automatically displays the Passport login button if Microsoft Passport is correctly installed and configured on the server. When the user creates a new account and is authenticated by Passport, the site retrieves the available profile properties from Passport and uses them in the user profile maintained in Commerce Server for that user. This transfer of profile properties is done only once, at new account creation. The site does not maintain any synchronization of profile properties between Commerce Server profiles and Passport profiles.

See Also

Security Features in the International Retail Site

Enabling Passport

Integrating with Passport


Security Features in the International Retail Site

The International Retail Site is not intended for users on a kiosk or shared computer. This is because:

  • User information persists only for the duration of the session; however, browser caches are not automatically cleared at the end of the session. When a user walks away from a kiosk, the user information would remain and potentially be available to other users.
  • Address information will persist until the user either logs out or closes all browser windows.

Note

  • Credit card information will not persist or be cached in the browser.

The International Retail Site uses .NET Framework encryption services to secure the most sensitive user data. Search the MSDN Library at http://go.microsoft.com/fwlink/?LinkId=6680 for more information about the System.Security.Cryptography namespace.

The user password is encrypted using a one-way MD5 hash before it is stored in the password property of the profile. For login password matching, the input password is simply hashed the same way. If the resulting hash matches what is stored in the password property, then a valid login is made. The .NET MD5CryptoServiceProvider class is used to accomplish this hashing. See Security Features at: http://go.microsoft.com/fwlink/?LinkId=6688 for more information about the MD5CryptoServiceProvider class.

Credit card data is also encrypted. The site uses a basic level of encryption for storage of credit card numbers using the .NET DESCryptoServiceProvider class. Key strength will depend on the encryption strength of the operating system. Two keys are required for this encryption method:

  • A public encryption key is stored as a site resource in the Commerce Server Administration database.
  • A private encryption key is a system level property only available to the system applications that need the credit card numbers.

It is important to minimize the number of components that have access to this private key. The Order Processing pipeline is the only Commerce Server component that needs the credit card number exposed so that third party credit card verification services can work.

The only other class of applications that need the credit card number exposed are the back-end line of business systems that need the credit card number to process orders.

The site supports rolling the encryption key pairs. For more information, see Adding Values for Public Key, Private Key, and Key Index Tokens. The method supported is to toggle the encryption keys. This specifically drops old keys after a second key upgrade.

Note

  • This assumes that fulfilled orders that are archived past the return policy date do not need their credit card numbers decrypted anymore.

The site displays stored credit card numbers with a mask, so that only the last four numbers are displayed.

The following example demonstrates creating the masked string:

'Digits is a string containing the full credit card number.
'DigitDisplay is set to the display format.
string DigitDisplay  = string.Format("####-####-###{0:1}-{1}",  Digits[0], Digits.Substring(1));

See Also

Passport Integration Features

Authentication Infrastructure

Adding Values for Public Key, Private Key, and Key Index Tokens


Account Management Features

The account management features of the International Retail Site allow users to manage all the data that the site persists. User account management is not to be confused with profile management in the shopping cart and checkout.

This section contains:

  • Using the Account Management Features. Describes the account managment features.
  • Extending the Account Management Features. Describes how to extend the account management features.

See Also

International Retail Site

International Retail Site Overview


Using the Account Management Features

The account management features for the International Retail Site are reached through the My Account link on the main page. This links to the pages that the user interacts with to create and manage personal account data. Account data includes:

  • Address information
  • Credit card numbers
  • Shipping and billing preferences
  • Language preferences

See Also

Extending the Account Management Features


Extending the Account Management Features

The account management features for the International Retail Site are designed to be extensible by developers. The following controls are used to manage this data:

  • WelcomeUser
  • Navigation
  • MyAccount
  • NewAccount
  • AddressView
  • Addressedit
  • CountrySelector
  • CreditCardList
  • CreditCardSelector
  • CreditCardEdit

These controls manage account data that is stored and modeled by the Profiling System. (Microsoft.CommerceServer.Runtime.Profiles).

Programmer access to the data is provided through the Profile class.

Programmer access to the schema is provided through the Profile Service class.

The user interface changes to conform to the schema. The user interface reflects the correct number of properties, property names, data type, and length even if the schema is changed, supporting the flexibility and extensibility of the user interface.

Notes

  • All account data is stored in Unicode format to facilitate multilanguage processing and display.
  • The OLE DB Provider for Commerce Server can handle bulk loading of profile data, and it can consume external third-party data sources to expose the data sources as additional profile objects.
  • The site schema is compatible with the Retail Solution Site schema to facilitate migration and maintain continuity.
  • Users are allowed to delete their profile data (but they may not delete their order data). If users delete their profile data, all associated user address and credit card data are also deleted.

See Also

Using the Account Management Features


Cart Features

In the International Retail Site the shopping cart is displayed to a user after the user clicks the "cart" button, located in the upper right corner of most pages, as well as the Add to Cart button.

The Cart display contains a currency drop-down list that takes its values from each row in the currency conversion table. The user can click the down arrow to pick a currency and then click the Convert Currency button to convert the currency into the currency chosen from the list. This modifies the prices in the cart and shows the users their purchases in the new currency. The new currency is displayed using the localization properties for the user.

Note

  • The values in the currency conversion table are approximate. In a production system this code should be replaced with functions that can supply the current rate of exchange.

The cart and order management architecture is extensible to support different cart types, for example, holiday lists, wedding lists, birthday lists, user defined lists, and order history.

The cart is composed of a functionally isolated section of code in order to facilitate reuse and extensibility. The code can be easily modified to create different cart types.

The following table lists the data displayed in the cart for each line item.

Property | Type | Required | Description
Remove | Check box | Yes | Allows users to remove individual line items.
Quantity | Edit Field, Real | Yes | Allows users to modify the number of items in the cart. Setting this property to zero will remove the item from display.
Item name | String | Yes | Human readable product name. The name is linked to the appropriate product page.
Item discount | String | No | Show any discounts associated with this line item.
Localized Price | Currency | Yes | Localized version of the price. If the price is localized, an asterisk (*) is displayed and a disclaimer is placed at the bottom of the cart page to inform the user that the price is approximate.

The following table lists all order level information for the shopping cart.

Property | Type | Req | Description
Order level discounts | Currency | No | Show all order level discounts, including free shipping, if applicable.
Localized subtotal | Currency | Yes | Allows users to view the sub total.
Discount comments | Text | No | Allows users to view short descriptions of the applied discounts.
Currency disclaimer | String | Yes | If the currency for the user is not the site currency, then display a disclaimer noting that the price is approximate.
Item discount comments | String | No | Show discount descriptions for the discounts that are applied to the cart.

See Also

Exploring the International Retail Site

Step 1: Adding Data to the Site


Transaction Processing Features

The International Retail Site provides a check out process for both authenticated and anonymous users. The primary difference between an authenticated user and an anonymous user is that profile data will be used to pre-populate fields for authenticated users while anonymous users will have to fill out all required data manually.

Once the registered user has selected items to purchase, the user puts those items into the cart and then clicks the Check Out button. The user is redirected to the check out page (checkout.aspx). Items to be purchased on the check out page are presented in a format that is similar to the shopping cart, but the user does not have the ability to change the contents or the quantity. If the user wants to change the contents or the quantity in the cart, the user must use back button to return to the cart.

A drop-down control allows an authenticated user to select a shipping address, which is stored in the user's profile. The site can store multiple named shipping addresses as part of the user profile for authenticated users. This feature is not available for anonymous users, since these users have not filled out the account information and passwords associated with authentication.

If the user needs to create a new address or edit an existing address, the user can click the appropriate link. Once the user has saved the new address, the user is returned to the check out page.

A drop-down list allows the user to select a shipping method. A control in the lower right of the check out page displays the current credit card information and contains a link to the payment page (paymentoption.aspx) where this information can be entered or modified.

Once all the required information is provided, the user can either complete the purchase or click on the multiple shipment link to set up shipments to multiple addresses.

Credit Card Validation

The International Retail Site simulates credit card validation with a simple checksum verification verifying that the number is in the valid format. This demonstrates the hooks necessary to connect the site to a third party validation system.

See Also

Transactions and the Order Processing Pipeline

Working with Business Desk

Customizing Shipping Methods


Campaign Features

The International Retail Site supports two types of campaigns: ads and discounts.

This section contains:

  • Advertising Features. Describes how to use banner ads across the top of the main page and targeted ads displayed in a control on the right edge of the page.
  • Discount Features. Describes how discounts are displayed during checkout.
  • Multilingual Campaigns. Describes how to extend the targeting context to support a specific language.

See Also

Business Desk Campaigns

Content Selection Pipelines


Advertising Features

The site is initially configured to support a full banner ad in the header of most pages, and a vertical banner on the right side of many pages.

Ads are displayed by the control ContentItemControl. The control provides context information in a call to the appropriate Content Selection Framework pipeline to select the item to display. The site code must set the ContentSelector Class object dictionary Language property with the language currently preferred by the user prior to calling the object. This will provide the language-targeting context for consideration by the ContentSelector object.

The ContentItemControl control exposes a culture property. This property is set by default to the culture of the site. It can be changed to a different culture to allow targeting expressions to be used to target content based on a specific culture.

See Also

Ads

Discount Features

Multilingual Campaigns


Discount Features

Discounts are displayed during checkout. They are typically based on the content of the shopping cart at the time of checkout. Discounts use the same ContentItemControl control as ads.

The ContentItemControl control exposes a culture property. This property is set by default to the culture of the site. It can be changed to a different culture to allow targeting expressions to be used to target content based on a specific culture.

Each discount item provides support for a localized shopping cart text display message. This message should contain the percentage off or dollar amount off of the purchase. In the case of dollar amount off discount, the localized text must use the site currency in the dollar off message even if the preferred currency of the user is some other currency. The site does not convert the dollar off amount to another currency for display.

See Also

Discounts

Advertising Features

Multilingual Campaigns


Multilingual Campaigns

Multilingual campaigns are supported by extending the targeting context with the culture property. This allows creation of expressions and target groups based on the culture property, for example, English, to allow targeting English language advertising. The language target group must use the "Require" action; this ensures that the targeting is deterministic.

A campaign (advertising, discounts, direct mail job) item must be created for each language the site supports. Each campaign item must include the language target group for which the campaign item is intended. If the campaign item is intended for an English language site, then the English language target group must be assigned to the campaign item.

If images containing text are used in the campaign item, each campaign item must provide images localized into each language. Each campaign item must also provide localized alternate text to support accessibility.

See Also

Advertising Features

Discount Features


BizTalk Server Integration Features

The International Retail site and accompanying retail2002B2B service demonstrate connecting Commerce Server 2002 sites through BizTalk Server.

The Biztalk Server integration feature consists of a set of adaptors that enable Commerce Server 2002 to exchange catalogs, purchase orders, and purchase order update messages with trading partners using Microsoft BizTalkｮ Server.

Microsoft BizTalk Server provides a gateway for sending business documents between your company and your trading partners. BizTalk Server manages the data translation, encryption, digital signatures, and document tracking services for many different transport mechanisms.

You can use BizTalk Server and Commerce Server together to process orders that users place on your Commerce Server Web site. For specific information about BizTalk Server integration with Commerce Server 2002, see About the BizTalk Server Integration Feature.

This feature is a technology demonstration intended for developers and is not intended for a production environment.

For detailed installation instructions, see the file <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Retail2002\Retail2002_BizTalk Deployment.doc. This file is also available in the <%systemdrive%>\Inetpub\wwwroot\Retail2002B2B folder after the site has been unpacked.

The International Retail Site provides the following BizTalk Server adapters:

  • Catalog Adapter. Describes the catalog adaptor and how it works.
  • Order Adapter. Describes the order adaptor and how it works.
  • Order Status Adapter. Describes the order status adaptor and how it works.

See Also

About BizTalk Server

About the BizTalk Server Integration Feature

Integrating with BizTalk Server


Catalog Adapter

The catalog adapter allows BizTalk Server to automatically import a catalog that has been exported by another site. The publisher sends the catalog file to a specific folder on the receiving site and the adapter imports it into the receiving site.

Business Desk and the CatalogManager APIs support the ability to export XML-Data Reduced (XDR) data that is compliant with BizTalk Server for mapping.

The International Retail Site also provides a catalog Application Integration Component (AIC) that wraps the APIs for getting the catalog document into and out of BizTalk Server.

Note

  • Some catalogs may be very large so it is assumed that message queuing is not used in this process.

See Also

Order Adapter

Order Status Adapter

CatalogManager.ExportXML Method (PIA)


Order Adapter

The order adapter allows a business-to-consumer site to send an order to a supplier.

The order adapter and order status adapter use the POSCHEMA.XML order form for compatibility with BizTalk Mapper.

This adapter is a BizTalk Server-complaint AIC that wraps the Commerce Server 2002 order to XML component. The order adapter is provided so that BizTalk Server can use this AIC to work on order XML documents during run time.

See Also

Catalog Adapter

Order Status Adapter


Order Status Adapter

The order status adaptor receives order status update messages from suppliers as the orders are filled, shipped, back-ordered, and so on. These messages are routed through BizTalk Server into Commerce Server where the original order record is updated. The order status can be viewed from within Commerce Server Business Desk. The user who placed the order can also view the order status through Commerce Server.

You use the Orders module in Commerce Server Business Desk to view the order status.

See Also

Catalog Adapter

Order Adapter


International Retail Site Infrastructure

The International Retail Site is an ASP.NET-based site. It is based on the Commerce Server 2002 Base Class Library (BCL). This approach reduces the amount of code in the site compared to basing the site on the Commerce Server 2002 Primary Interop Assembly (PIA) or COM classes.

Reference information about the BCL can be found in the .NET Class Reference section. Additional information about using the BCL can be found in ASP.NET samples in the Commerce Server SDK.

The International Retail Site is implemented as a .NET solution using multiple Microsoft Visual Basic .NET and Microsoft Visual C# projects. The codebehind pages for the ASPX pages are written in Visual Basic .NET with core functionality in compiled assemblies written in Visual C#. All the source code for the assemblies is included in subfolders of the unpackaged site.

This section contains:

  • Page Model. Describes the execution model for the ASPX pages in the site.
  • Controls Infrastructure. Describes the controls in the site.
  • Caching Infrastructure. Describes data caching in the site.
  • Site Configuration. Describes the different types of configuration settings in the site.
  • Authentication Infrastructure. Describes user authentication and how the site tracks users.
  • Error Handling. Describes the error-handling framework in the site.


Page Model

There are several characteristics that distinguish an ASP.NET application from an ASP application:

  • In ASP.NET, there is a user interface/markup page and a code-behind page for every Web page.
  • The layout and appearance of the page is separated from the code. Code is contained in codebehind pages, typically with an extension of .aspx.vb, or in .NET components that implement certain functionality and business logic, but not the user interface.
  • Components are compiled into assemblies.

Cascading style sheets (CSS) are used to manage the look and feel of each user interface element. Most user interface elements are implemented using controls. They can be either user controls or custom Web controls. For more information about the controls used on the International Retail Site, see Controls Infrastructure.

This is a modular design that enables plug-and-play features, making it easy to customize, extend, localize, and globalize your site. All user interface text is retrieved using the ASP.NET Resource Manager. The site uses the.NET CultureInfo class to display locale specific data. For more information about the .NET CultureInfo class, see http://msdn.microsoft.com/library/.

Some of the advantages of control-based user interface development are:

  • You can change the behavior of a control by getting or setting control properties.
  • You can write new controls that inherit from existing controls.
  • It is easy to upgrade and maintain your site. You do not need to shut down the site to replace a control.

It is easy to customize a site without code changes:

  • CSS style sheets can be easily replaced without code changes.
  • User interface pages and images can be replaced without code change or recompilation.
  • Properties for custom Web controls or user controls can be set to change their appearances.


Controls Infrastructure

ASP.NET is used to manage and create most of the user interface in the International Retail Site. This section contains an overview of these controls and the methods used to program them.

This section contains:

  • Types of Controls in ASP.NET. Describes the ASP.NET user interface controls that are used on the International Retail Site.


Types of Controls in ASP.NET

There are two types of user interface controls in ASP.NET, and the International Retail site uses both types of control as appropriate:

  • Custom Web controls

    Custom Web controls can be shipped as compiled assemblies. User interface rendering must be done manually through code. In addition to a standard set of properties, a custom Web control can have additional properties with richer design support.

    Custom Web controls inherit from system.web.UI.Webcontrols for their user interface, and then extend the functionality of their parent. For example, the countryselector control inherits from system.web.UI.WebControls.dropdownlist. For more information about Custom Web Controls, see the topic system.web.UI.Webcontrols Namespace in the .NET SDK documentation.

  • User controls

    A user control consists of a user interface page (with the extension .ascx) and the codebehind code. The user interface page and its code must be included into the ASP.NET application. User interface rendering is done automatically using the .ascx page. A user control can contain any number of other user controls or custom Web controls. A user control can have its own properties that can be set at design time, but there is little support for the site designer.

    User controls can have public properties that can be set in the containing page. These properties can control the appearance and behavior of the control. There are two advantages of having these public properties:

    • Properties can be set by the containing page at design time
    • Properties can be set programmatically at run time

See Also

Setting User Control Properties at Page Design Time

Setting User Control Properties Programmatically at Run Time


Setting User Control Properties at Page Design Time

User controls have properties that affect how the controls are displayed. These properties can be set at design time or at run time. The following example shows how a control is used at design time. For more information about setting user control properties at run-time, see the Setting User Control Properties Programmatically at Run Time.

In the following example, suppose there is a simple user control "Header" that exposes the property BannerImagePath as a public property. The control uses this property as the path to the image resource in the header. The following code is from a typical .aspx page that contains such a header control:

<%@ Page Language="vb" AutoEventWireup="false" Codebehind="default.aspx.vb" Inherits="Microsoft.CommerceServer.CommerceSite.DefaultForm"%>
<%@ Register TagPrefix="misc" TagName="Header" Src="Misc/header.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <body>
<misc:Header id="Header" BannerImagePath=”.\mycompany.jpg” runat="server"></misc:Header></TD>
  </body>
</HTML>

In the code example, the property is set by the containing page. The site developer does not need to open the user control or the source file.


Setting User Control Properties Programmatically at Run Time

User controls have properties that affect how the controls are displayed. These properties can be set at design time or at run time. The following example shows how a control is used at run time. For more information about setting properties at design time, see Setting User Control Properties at Design Time.

In the following example, suppose there is a simple user control "Header" that exposes the property BannerImagePath as a public property. The control uses this property as the path to the image resource in the header.

In this case, the site developer can easily get or set the property value programmatically at run time, as shown in the following code from the (aspx.vb) page:

Public Class DefaultForm
  Inherits System.Web.UI.Page
#Region " Web Form Designer Generated Code "
…
#End Region
  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim header as HeaderCtrl = Page.FindControl( “Header”)
    If HeaderCtrl is nothing Then
      Throw new ControlNotFoundException
    End If
    If DateTime.Now.Hour < 12 Then
      headerCtrl.BannerImagePath = “./goodmorning.jpg”
    Else
      headerCtrl.BannerImagePath = “./goodafternoon.jpg”
    End if
  End Sub
End Class


Caching Infrastructure

The International Retail Site uses caching techniques available from ASP.NET and Commerce Server 2002, and makes optimum use of both as required. The site is designed so that all static data elements and dynamic data that do not change often are cached.

This section contains:

  • Commerce Server 2002 Caching Techniques. Describes the Commerce Server 2002 caching techniques used on the International Retail Site.

Note

  • When you delete a catalog from the site, the site continues to display the cached copy of the catalog until you perform an IISReset. If you add an item from the deleted catalog to your cart, a runtime error occurs.


Commerce Server 2002 Caching Techniques

Commerce Server 2002 provides the CacheManager object, which is well suited for ASP-based applications and Commerce Server pipelines.

For an ASP.NET-based application using Commerce Server 2002, it is more efficient to use ASP.NET caching techniques whenever possible since this provides all the advantages of the .NET framework features (for example, managed code and integrated functionality with ASP.NET).

Several Commerce Server pipelines, such as the basket, checkout, and Content Selection Framework pipelines, are inherently dependent on the CacheManager object for caching their native data. Therefore, the International Retail Site contains some caches that use the CacheManager object. All of the caches are configured and initialized using the <caches> configuration information in the web.config file.

The following is a list of data caches that use the CacheManager object:

  • AdvertisingDiscounts
  • SampleRegionalTaxCache
  • ShippingManagerCache
  • QueryCatalogInfoCache

Additionally, Commerce Server 2002 provides some degree of internal data caching using the Base Class Library (BCL). Some frequently used items of data that are exposed through properties are cached. This can lead to the Commerce Server Business Desk user needing to "publish" to the Web site to clear a cache. A Refresh method is provided in all BCL objects that employ caching. This method is called when a Business Desk refresh message is received by the International Retail Site.

Caches Tag

The Caches tag is a container element for cache tags that are used to configure CacheManager-based caches in the application. The cache configuration supports a number of default configurations for advertising, discounts, and other types of caches common to Commerce Server. In each case, the cache type has its own default options associated with it; however, the default options can all be overridden. The following code example shows how to use the caches tag:

<caches>
      <cache name="name"
             type="Advertising|Discounts|Tax|Shipping|Custom"
             loaderProgId="progid"
             writerProgId="progid"
             cacheObjectProgId=”progid”
             refreshInterval="0"
             retryInterval="60"
             maxSize=”10”>
             <config key="key" value="value" />
      </cache>
</caches>


Site Configuration

The configuration of the International Retail Site is primarily controlled by two files—the Styles.ccs file and the web.config file. The site is also affected by the App Default Config resource and by Commerce Server Business Desk.

This section contains:

  • Styles.css File. This file controls the appearance of the site.
  • Web.config File. This file controls the configuration of the site.
  • App Default Config Resource. Describes settings in the App Default Config resource that affect the site.
  • Business Desk Configuration. Describes configuration settings managed through Business Desk that affect the site.
  • Enabling Credit Card Number Encryption. Describes the necessary steps to enable the credit card encryption feature.


Styles.css File

The Styles.css file is the cascading style sheet for the entire site. It controls the display properties for all the user interface elements in the site. It lists font, color, and image attributes for HTML tags and controls. It also contains the attributes for the style classes used in the HTML of the .aspx and .ascx files.

You can control the appearance of any design element throughout the site by modifying this file.

See Also

Web.config File


Web.config File

The Web.config file is an XML file that describes and controls the configuration of the application. This file is automatically generated when the site is unpacked. You should use caution when making changes to this file. Some changes can cause certain site features to fail. See Configuration Services for general information about modifying this file.

The web.config file is divided into the following sections:

  • ConfigSections Configuration Section. This section is used to connect the configuration handler code to the other sections of the file. It should not be modified unless you have added a new section and handler. See the ASP.NET documentation at http://go.microsoft.com/fwlink/?LinkId=6680 for information about configuring this section.
  • CommerceServer Configuration Section. This section is used to configure the Commerce Server .NET Application Framework.
  • CommerceServerSite Configuration Section.This section contains a variety of run time parameters that can be changed by developers and site administrators. You also use this section to add new run time properties to enhance the configurability of the site.
  • System.Web Configuration Section. This section configures authentication, file level authorization, error display, and is used to set the site to Debug mode.


CommerceServer Configuration Section

Use this section to configure the Commerce Server .NET Application Framework.

Application Configuration

Example:

<application siteName="Retail2002" debugLevel="Debug"/>
Set debugLevel to "Checked", "Debug", or "Production". Because the "Checked" and "Debug" settings cause the application to run slower than normal, you should only use these values when debugging the application.

Authentication Configuration

Example:

<authentication ticketTimeOut="30" detectCookies="true"/>
Set the ticketTimeOut to the appropriate timeout value for authentication tickets issued for the application. Set detectCookies to true if you want to enable a cookie to the URL-mode fallback authentication scheme.

Pipeline Configuration

Example:

<pipeline

name="product"

path="pipelines\product.pcf"

transacted="false"

type="OrderPipeline"

loggingEnabled="false" />

Configuration parameters:
name
The string you want to use when referencing the pipeline in your application.
path
The relative path of the pipeline configuration file (.pcf) that corresponds to the pipeline you want to run when referencing the pipeline in your application.
transacted
Set transacted to false to disable COM+ transactions when running your pipeline.
type
The type should be set to either "OrderPipeline" or "CSFPipeline" depending if you intend to use the pipeline for processing orders or displaying ads.
loggingEnabled
Set to true to enable pipeline logging. The log file will be created in the "pipelines\log" directory of your application. Logging causes the application to run slower than normal,therefore, it should only be enabled during debugging.

Cache Configuration

Use this section to configure Commerce Server 2002 caches.

Example:

<cache name="Advertising" type="Advertising" refreshInterval="300" retryInterval="60"/>

<cache name="QueryCatalogInfoCache" type="QCI" loaderProgId="Commerce.LRUCacheFlush" refreshInterval="0" retryInterval="300" maxSize="10000">

<config key="TableName" value="CatalogCache_Virtual_Directory"/>

</cache>

Parameters vary with the type of cache; see Cache Objects for more information about configuring a cache.

Configuration parameters:
Name
The string used when referencing the cache. Certain caches must have specific names when using the default Advertising, Discounting, and QueryCatalogInfo pipeline components. These names are Advertising, Discount, and QueryCatalogInfoCache, respectively.
RefreshInterval
How long the cache remains in memory before being refreshed, in seconds.
RetryInterval
How long the CacheManager object waits to retry a call to the cache loader after a failure, in seconds.
MaxSize
The maximum number of entries to store in the cache.

Message Manager Configuration

Use this section to configure string resources that are extracted into the MessageManager object.

The cultures element lists the cultures supported by the site. You add a new culture ID tag to add a new culture to the site. Cultures are specified by their RFC 1766 identifier. Set the default attribute to the identifier of the default culture used by the application. The baseName attribute specifies the root name of the resources used in your application. For example, when using a satellite assembly named "MyResources.en-US.resources", the root name is "MyResources." The assembly attribute is used to specify the name of the assembly containing the default resources; either the executing application or the name of a satellite assembly.

Content Selection Configuration

Use this section to configure the Content Selection Framework and pipelines for ads and discounts.

Catalog Configuration

Use this section to specify the default catalog sets.

Orders Configuration

Use this section to configure an addressMap used for displaying user addresses.

commerceEvent Configuration

Use this section to configure event logging. You add an add tag in this section for each event that you want to log.


CommerceServerSite Configuration Section

Use this section to configure site properties and document security. You also use this section to configure links for user navigation and user preference.

SiteConfiguration

The following properties are set in this section:

EnableApplicationErrorHandler
If true, the application error handler is enabled.
DisablePassport
If true, the Passport service is disabled on the site.
SupportInlineSignIn
If true the Passport inline sign-in feature is enabled. This feature is not supported on the site.
MinimumUsernameLength
An Int32 specifying the minimum length for a user name.
MaximumUsernameLength
An Int32 specifying the maximum length for a user name. The maximum value is 256.
InvalidUsernameCharacters
A string that contains invalid characters for user names.
MinimumEmailLength
An Int32 specifying the minimum length for an e-mail name.
MaximumEmailLength
An Int32 specifying the maximum length for an e-mail name.
MinimumPasswordLength
An Int32 specifying the minimum length for a password.
MaximumPasswordLength
An Int32 specifying the maximum length for a password.
MaxLineitemsInBasket
An Int32 specifying the maximum number of items that can be placed in a cart. This is set at 100 as a security feature.
InvalidPasswordCharacters
A string containing characters that are invalid for a password. The default is "<>&" ?*|:=+;.,)(#[]/^"
InvalidTextBoxCharacters
A string containing characters that are invalid in a text box. The file AgoraSecurity.wsf validates all text box entries against this string. This is a security feature to prevent entering an executable string in a text box. The default is "<>&"?*|=+;%)([]\/^"

DocumentSecurity

This section provides a list of the secure documents that must be either accessed over a secure HTTPS channel or that require authentication or both. Use this section to set up the default behavior. The actual behavior can be overridden at run time by the site code.

UserNavigation

Use this section to configure site-generated links for user navigation.

SitePreferences

Use this section to configure the site-generated link for user locale selection.


System.Web Configuration Section

Use this section to configure authentication, file level authorization, error display, and to set the site to Debug mode.

Compilation Configuration

The default configuration is:

<compilation defaultLanguage="vb" debug="true">

Set debug="true" to insert debugging symbols (.pdb information) into the compiled page. Since this creates a larger file that runs more slowly, you should set this value to true only when debugging and to false at all other times.

CustomErrors Configuration

The default configuration is:

<customErrors mode="RemoteOnly" defaultRedirect="Customerror.aspx">
  <error statusCode="404" redirect="Notfound.aspx" />
</customErrors>

If mode is set to Off, custom error messages will be disabled. Users will receive detailed exception error messages.

If mode is set to On, custom error messages will be enabled.

If mode is set to RemoteOnly, then users will receive custom errors, but users accessing the site locally will receive detailed error messages.

Add an <error> tag for each error you want to handle. The error tag will redirect the user to the Notfound.aspx page when the site returns the 404 (Page not found) error.

Authentication Configuration

Use this section to set the authentication policies of the application. Possible modes are:

  • Windows
  • Forms
  • Passport
  • None

Authorization Configuration

Use this section to control user access to the application.

Examples:

<allow users="*" />   Allow all users
<allow  users="[comma separated list of users]" roles="[comma separated list of roles]"/>
<deny   users="[comma separated list of users]" roles="[comma separated list of roles]"/>

Globalization Configuration

Use this section to set the globalization settings of the application.

Example:

  <globalization requestEncoding="utf-8" responseEncoding="utf-8" />


App Default Config Resource

The App Default Config resource contains properties that affect the functionality of the International Retail Site and Commerce Server Business Desk.

For general information about configuring the App Default Config resource, see Configuring the App Default Config Resource. For information about configuring App Default Config to use BizTalk Server, see Configuring Commerce Server to Work with BizTalk Server.

The site does not respond to all of the App Default Config properties. You use the App Default Config resource to configure base currency properties for the site.

The user will always be redirected to the cart page after adding an item to the cart regardless of the setting of the Add item redirect options property.


Business Desk Configuration

Commerce Server Business Desk is used for day-to-day management of the site. For example, you use it to manage catalogs and ad campaigns.

Configuring Business Desk Security

The International Retail site will secure password and credit card data. It uses a one-way hash for passwords and public key encryption for credit card data. Credit card encryption is optional, but only because it requires manual site configuration to enable. Password encryption is required on the site; it cannot be disabled. Business Desk does not encrypt passwords by default. If you create a user in Business Desk without configuring Business Desk to encrypt passwords, the user will not be able to log onto the site.

Perform the following steps using Business Desk to enable the hashing of a user's password:

  1. In Business Desk, click Profiles, and then click Profile Definition Designer.
  2. In Profiles, select the UserObject profile, and then click Open.
  3. In Profile Definition Designer screen, Properties list, double-click General Information, and then select the User Password property by clicking it.
  4. Expand the Advanced Attributes section of the Profile Definition Designer screen.
  5. Select "One way hash" from the dropdown for the Encrypted property.

Configuring weight-based shipping methods

When entering shipping methods in Business Desk, you must use only methods that have their corresponding unit of measure in the loaded catalogs. Every cart contains a quantity, so using quantity-based shipping methods will always work. The default AdventureWorks catalog does not contain a weight property for catalog products. Weight-based shipping methods will fail with this catalog.

See Also

Enabling Credit Card Number Encryption


Enabling Credit Card Number Encryption

The credit card encryption feature for the International Retail Site is disabled by default. Several manual configuration steps are required to enable the feature.

Perform the following steps using Commerce Server Business Desk to enable the encryption of credit card numbers.

  1. Modify the credit card profile.
    1. In Business Desk, click Profiles, and then click Profile Definition Designer.
    2. In Profiles, select the Credit Card profile, and then click Open.
    3. In Profile Definition Designer, Properties list, double-click General Information, and then select the Credit Card Number property by clicking on it.
    4. Expand the Advanced Attributes section by clicking on it.
    5. Select "Asymmetric Encryption" from the dropdown for the Encrypted property.
    6. Restart IIS. See Restarting IIS and Commerce Server Services for more information.
  2. Run the Microsoft Commerce Server 2002 Cryptographic Key Generator tool to generate a public/private key pair. For information about running the tool, see Generating Public and Private Keys.
  3. Add publicKey value, generated in step 2, to the web.config file under the profiles/encryption/keys section. See How to modify the application so that it supplies tokens used in encryption by the Commerce Server OLEDB provider and by the Profile Service for details about adding this section and the publicKey value.
  4. Add the private key value to the appropriate location as needed to enable your credit card verification system. See Security Features in the International Retail Site for more information.
  5. If you intend to modify credit card profiles through Business Desk, you must modify the Profile Service connection strings in three methods to support the new public key obtained in previous step. The modification consists of adding the publicKey and the keyIndex parameters to the connection strings. See How to modify the application so that it supplies tokens used in encryption by the Commerce Server OLEDB provider and by the Profile Service for details about this modification. This modification is not required to retrieve or view credit card profiles. The following table lists the methods that must be modified.
    Method | File Name
    sGetProviderConnStr | CommonXmlRoutines.asp
    RefreshProviderConnection | RefreshProfileSvcAll.asp
    cnGetProviderConnection | Global.asa

See Also

Managing Encrypted Profile Properties.


Authentication Infrastructure

The International Retail Site provides support for user authentication using user supplied passwords. This password is secured using a hashing scheme described in Security Features in the International Retail Site. The user password may also be provided by Microsoft Passport, as described in Passport Integration Features.

This section contains:

  • Enabling Passport. Provides specific instructions to enable Microsoft Passport on your site.


Enabling Passport

The International Retail site will display the Microsoft Passport login if it detects that the Passport service is installed and correctly configured on the site.

You can install Passport using the following steps:

  1. Open Internet Explorer and browse to http://go.microsoft.com/fwlink/?LinkId=6740.
  2. Download and install the Passport SDK (2.0+), and follow the online instructions to complete the licensing process.
  3. After you have completed the licensing process, you will receive an e-mail notification that contains your site id and the Passport Key Installer executable file, which contains the key for your site.
  4. Using the Passport Administration Utility from the Passport SDK, change the site ID and commit your changes.
  5. Run the Passport Key Installer executable file. The Passport Key Installer contains a number of command line parameters, including the following:
    • /addKey [/m machineName] [/s siteName]
    • /makeCurrent /t oldKeyValidTime [/m machineName] [/s siteName]
    • /showCurrent [/m machineName] [/s siteName]
    • /expire [/m machineName] [/s siteName]

    If, for example, your executable is named partner21273_2.exe:

    Type partner21273_2 /addKey /m <server>, replacing <server> with the name of the computer on which you are installing the key.

  6. Verify that Passport was successfully configured. You can either open the Passport example from the SDK or go to login.aspx page on the International Retail Site and verify that the Passport Sign-in link appears.

    Note

    • If Passport is improperly configured, the passport Sign-in link will not appear on the site. Check the Event Viewer for the following error message:

      Passport Manager is mis-configured: Error reading Passport crypto keys from registry.

More information about Microsoft Passport, including the Passport SDK and sample site code, can be found at http://go.microsoft.com/fwlink/?LinkId=6740.

See Also

Integrating with Passport


Error Handling

This section describes errors that originate in the International Retail Site application. Errors originating in Internet Information Services (IIS) and deployment errors are not described.

When an error occurs on a page, ASP.NET sends information about the error to the ASP.NET client application. Errors are divided into the following categories:

  • Configuration errors

    Occur when the syntax or structure of the web.config file in the configuration hierarchy is incorrect. This includes Commerce Server 2002 run time configuration exceptions.

  • Global.asax errors

    Occur when an error happens when compiling or running the Global.asax file. The application level error handling described in this section traps run time errors in the Global.asax file. Compilation errors in the Global.asa file are not trapped.

  • Parser errors

    Occur when the ASP.NET syntax on a page is malformed.

  • Compilation errors

    Occur when statements in a target language for the page are incorrect.

  • Run-time errors

    Occur during page execution, even though the errors could not be detected at compile time.

Since the International Retail Site is shipped with a valid web.config file, configuration and Global.asax errors are unlikely to happen until the site has been customized by the user.

Parser, compilation, and run-time errors can be trapped.

This section contains:

  • Application Level Error Handling
  • Exception Handling Guidelines and Best Practices
  • Exception Handling of Commerce Server 2002 BCL and PIA/COM Interop Objects


Application Level Error Handling

Web.config settings

The web.config file contains a <customErrors> tag to apply generic exception handling and to specify redirection to an error page:

<customErrors defaultredirect="/error/SiteError.aspx" mode="on">
 <error statuscode="404" redirect="/error/filenotfound.aspx" />
</customErrors>

As shown in the preceeding code, SiteError.aspx is the default redirect page for site errors not trapped by the application code in all conditions. In development servers, users can set the mode setting to "Off" or "RemoteOnly" to see the full default ASP.NET error message. Setting this to "RemoteOnly" will show the ASP.NET error message on the server, but will show the default redirect page on a remote client.

Although most of these error page settings are also available with IIS, using the Web configuration method allows for easier deployment of the site onto many computers. However, users should also configure the IIS metabase for these error conditions to redirect to the appropriate error page. Also web.config settings will only apply for ASP.NET files (.aspx, .asmx, .ascx, and not .htm or .asp files).

If the <customErrors> tag is missing in the web.config file, ASP.NET errors are redirected to a generic server error page, and the following message is displayed:

An application error occurred on the server. The current custom error settings for this application prevent the details of the application error from being viewed.

Implementation

ASP.NET sends minimal information to a page when an error occurs. A Get method is sent to this page with the query string key "ErrorPage" with the virtual path to the page in which the error occurs. The user interface section of this page uses culture-neutral content to display error information to the user.

Exception Handling

In the Global.asax file, error events at the application level are handled by the event Application_Error, which writes the available information to the event log file. Depending on the customErrors setting in the web.config file the appropriate error page will be displayed.

Page Level Error Handling

@Page directive:

Since the web.config file will be configured to redirect to an error page for unhandled errors, @Page ErrorPage = 'xyz.aspx' should not be used in the application.

Page_Error Event Handling

Implementing the Page_Error event handler in individual feature pages of the site is not recommended. This is because the Page_Error event handler requires a full implementation to render the page completely by itself. Since the web.config file is already configured to show a custom error page it is best to make use of it. The Page_Error event handler should be implemented only when it is required to free up page resources and even then it should not call Server.ClearError so that exception will remain unhandled and will allow ASP.NET to redirect to the Application_Error event handler and to the default error redirect page.

The Page_Error event handler should be implemented only in pages where system errors might occur (for example, the Checkout page because it is running a pipeline), and it is recommended that the Page_Error event handler write the error message to the event log and keep the exception alive so that user will be redirected to the custom error page.

Note

  • Server.GetLastError can be used to obtain a reference to the unhandled exception object.
  • Server.ClearError is used only when propagation of the exception is to be stopped.


Exception Handling Guidelines and Best Practices

Do not rely on exceptions in your code. Since exceptions cause performance to suffer significantly, you should never use them as a way to control normal program flow. If it is possible to detect in code a condition that would cause an exception, do so. Do not catch the exception itself before you handle that condition. Common scenarios include checking for null, assigning a value to a string that will be parsed into a numeric value, or checking for specific values before applying math operations. The following example demonstrates code that could cause an exception and code that tests for a condition. Both produce the same result:

' Consider changing this...
Try
  result = 100 / num
Catch (e As Exception)
 result = 0
End Try
// To this...
If Not (num = 0)
  result = 100 / num
Else
 result = 0
End If

However, always use a try-catch-finally block to handle all foreseeable errors (pipeline errors, property not set errors, and so on) so that page rendering is not affected.

If such errors are not handled using a try-catch-finally block, and are left to the Page_Error, Application_Error, or <customerror> handlers in ASP.NET, these handlers cannot render the requested page and will have to redirect the user to a specific error page that may indicate that the requested page is unavailable.

For more information about best practices for error handling, see "Best Practices for Handling Exceptions" in the .NET Framework documentation at The Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161.

See Also

Exception Handling of Commerce Server 2002 BCL and PIA/COM Interop Objects


Exception Handling of Commerce Server 2002 BCL and PIA/COM Interop Objects

All calls to Commerce Server 2002 BCL objects will throw an exception if any error occurs. These errors could be of these types "CommerceException", or an exception derived from the System.Exception class.

It is recommended to call the Base Class Library (BCL) run time using a try-catch-finally block in the following manner:

  1. Gracefully handle specific exceptions of the BCL API calls used (for example ProductNotFoundException). By handling these exceptions the user will able get a graceful error message. The exception will not be rethrown.
  2. If the codepath expects to handle gracefully any other specific exceptions (for example, ArgumentNullException) it may use additional catch blocks to handle them. This will make certain that the error will not be passed to higher level event handlers that might interrupt the display of the page.
  3. If the exception is not handled as above, a general catch statement may be used to catch all other exceptions. You should then throw a new exception with the inner exception property set.

See Also

Exception Handling Guidelines and Best Practices


Tips for Developing Your Site

This section provides some tips for developing a site based on the International Retail Site. The International Retail Site is a sample site that demonstrates .NET Framework technology and best practices in implementing that technology. The site has implemented important security features, but you must thoroughly review and understand them to be sure that they meet all of your security requirements. Ultimately, you are responsible for the security of your site.

This section contains:

  • Page Authoring. Explains how a site developer can change the appearance of the International Retail Site.
  • Source Code Roadmap. Describes the various projects that make up the International Retail Site, and provides information to help you find the source code that you want to examine.
  • Adding a Language to the Site. Describes how to add a language to the International Retail Site.
  • Debugging the Site. Describes how to begin debugging the site using Visual Studio .NET.

See Also

Developing a Secure Site

Security Checklist


Page Authoring

A page in the International Retail Site is a combination of an .aspx page and a codebehind page, either an .aspx.vb page or an .aspx.cs page. The .aspx page contains the user interface, and the codebehind page contains the functionality. The user interface in the .aspx page is defined by a combination of HTML and included Web controls. This separates the design and appearance from the functionality of the site. It also clearly separates the authoring between design and development. A site developer can change the design and functionality of a page by adding or removing controls and modifying the HTML. A site developer can change the appearance by changing images and styles. If no new functionality is required, adding a new page can be simple.

Changing the Appearance of the Site

Site Navigation Framework

Changing the Appearance of the Site

The International Retail Site supports "skins". In other words, the appearance of the site can be changed through a collection of graphics files and a cascading style sheet (.css) file.

The basic structure of the pages in the site is a collection of tables. By using a group of cells to represent a design element it is possible to simulate non-rectangular objects on the screen and still have text in those objects that can be controlled through code.

For example, the following table structure can be used to represent a box with rounded corners.

Element Table Structure

The peripheral cells contain the graphic element for a corner or a side of the box, and possibly a background color. The central cell contains the background color and text. Since the text can be from a localized string resource, the graphics do not need to be localized. Also, the text can be changed under programmatic control as needed, and the .css file can control the appearance.

This design principle has been applied to the entire site. For example, the following figure shows a schematic view of the main page for the International Retail Site.

Main Page Schematic

With the "skin" applied, it looks like this:

Retail2002 Main Page With Skin

Site Navigation Framework

A well-designed site is structured so that a user can easily understand it. As you add features to your site you will need to consider how to make them discoverable and easy to use.

The following figure shows the International Retail Site navigational framework.

Retail2002 Site Navigation Framework


Source Code Roadmap

This topic describes the various projects that make up the International Retail Site, and provides information to help you find the site source code that you want to examine.

Using the Visual Studio solution file in the site, you can browse the entire site and source code from within Visual Studio. See Setting up the International Retail Site with Visual Studio .NET for information about opening the solution file.

There are ten projects in the International Retail Site. Most of the projects are for related groups of controls. See Control Reference for descriptions of the controls.

The projects are:

  • Account Management Controls. This project contains controls used for displaying and editing user information.
  • Authentication Controls. This project contains the signin and SignInLink controls, used for sign in and sign out functionality.
  • Campaign Controls. This project contains the ContentItemControl control, used for ads and discounts.
  • Catalogs CS Controls. This project contains the VariantDisplay control, used for the selection of product variants.
  • Catalogs VB Controls. This project contains all the catalog controls except for the VariantDisplay control. These controls are used for finding and displaying product information.
  • Components. This project contains the source code for the compiled assemblies.
  • Constants. This project contains the Strings.vb file that defines the constants for the solution.
  • Miscellaneous Controls. This project contains the controls for the site as a whole, such as header and composite controls that are used to simplify building a page.
  • Retail2002. This is the primary project. It contains all the .aspx pages, the associated codebehind pages, and site configuration files.
  • Transaction Controls. This project contains controls used for cart and checkout functionality.

You use the Solution Explorer in Visual Studio to view all of the source code in the solution. To view the codebehind for any .aspx or .ascx files, right-click the file name, and then click View Source.

You use the ObjectBrowser in Visual Studio to view all the methods and properties relating to the objects in the solution.


Adding a Language to the Site

When you add a language to the site you will need to perform a few separate tasks. You will need to add a localized resource assembly for all the text strings on the site. You will need to extend the locale selection page so that a user can select the additional language. If your site contains images with text, such as the CompanyLogo.jpg file, you will need to create localized versions of those files. For more information about localized images, see Retail2002\Images Folder. Adding a language to a catalog is done through Commerce Server Business Desk, and is distinct from the site languages. For more information about managing languages in a catalog, see Creating a Multilingual Catalog.

The following procedure describes how to extend the locale selection page and add localized string resources to the site.

To add a new language to the International Retail Site

  1. Add an image for new language or culture to the Retail2002\Images folder. The image file should be the same size as the existing welcome images.
  2. Add an asp:LinkButton Web server control to the LocaleSelection Control.
  3. Modify the styles.css file to support the new asp:LinkButton Web server control and image.
  4. Add the localized satellite resource assembly.
  5. Add a reference to the satellite assembly to the MessageManager, Cultures section in the web.config file.


Debugging the Site

The Visual Studio .NET debugger has the ability to attach to a program that is running in a process outside of Visual Studio .NET. You can use this attachment capability to debug a program running on a remote computer. Whether debugging on a remote or local computer, you must attach Visual Studio to the ASP.NET process to debug the site.

To enable debugging on the International Retail Site

  • Verify that the site is in debug mode. The application element in the web.config file should be: <application siteName="Retail2002" debugLevel="Debug"/>

To attach the Visual Studio debugger to the site

  1. Open Internet Explorer.
  2. In Internet Explorer, in the Address box, type the URL for the site, and then press Enter.
  3. Start Visual Studio .NET.
  4. In Visual Studio .NET, on the Tools menu, click Debug Processes.
  5. In the Process dialog box, if necessary, click the [...] ellipses button to browse to the remote server.
  6. In the Available Processes list, select aspnet_wp.exe, and then click Attach.

Note

  • The source code must be available on the local computer in order to debug the site code.

For more information about debugging ASP.NET Web applications, see "Debugging ASP.NET Web Applications" in Visual Studio Help.


International Retail Site Reference

This section provides reference information for the International Retail site.

This section Contains:

File Organization. Describes the file structure of the International Retail site and the B2B web service.

Control Reference. Describes the controls in the site.


File Organization

This section documents the file structure of the International Retail Site. The main Web page files are in the root folder of the site and supporting page files are in subfolders.

This section contains:

  • Retail2002 Root Folder. This folder contains the user interface/markup and codebehind files, configuration files, and Visual Studio .NET solution and project files.
  • Retail2002\AuthFiles Folder. This folder contains ASP files used for user authorization.
  • Retail2002\Bin Folder . This folder contains compiled assemblies and localized resources.
  • Retail2002\Components Folder. This folder contains source code for the components.
  • Retail2002\Controls Folder. This folder contains the .ascx and codebehind files for the controls and Visual Studio .NET project files.
  • Retail2002\Images Folder. This folder contains images of user interface elements and the Styles.css file that controls site appearance.
  • Retail2002\Pipelines Folder. This folder contains the pipeline configuration files.
  • Retail2002\Resources Folder. This folder contains string resource files.
  • Retail2002B2B Root Folder. This folder contains files for the business-to-business (B2B) Web service.


Retail2002 Root Folder

This folder contains the user interface/markup (.aspx) files and their associated codebehind files. It also contains configuration files and the Visual Studio .NET solution and project files.

The following table lists the files contained in the Retail2002 Root folder.

File | Description
AdvancedSearch.aspx | Web form.
AdvancedSearch.aspx.vb | Visual Basic Source.
AssemblyInfo.vb | Visual Basic Source.
Basket.aspx | Web form.
Basket.aspx.vb | Visual Basic Source.
BasketMerger.vb | Visual Basic Source.
BDRefresh.asp | Active Server Page file. Business Desk Refresh page.
BDRefresh.aspx | Web form. Business Desk Refresh form.
BDRefresh.aspx.vb | Visual Basic Source.
Catalog.aspx | Web form.
Catalog.aspx.vb | Visual Basic Source.
CatalogBase.vb | Visual Basic Source.
Category.aspx | Web form.
Category.aspx.vb | Visual Basic Source.
Checkout.aspx | Web form.
Checkout.aspx.vb | Visual Basic Source.
csapp.ini | Configuration settings.
Customerror.aspx | Web form.
Customerror.aspx.vb | Visual Basic Source.
Default.aspx | Default Web form.
Default.aspx.vb | Visual Basic Source.
EditAddress.aspx | Web form.
EditAddress.aspx.vb | Visual Basic Source.
global.asax | Active Server Application File. Site configuration and initialization.
global.asax.vb | Visual Basic Source.
LocaleSelection.aspx | Web form.
LocaleSelection.aspx.vb | Visual Basic Source.
Login.aspx | Web form.
Login.aspx.vb | Visual Basic Source.
Logout.aspx | Web form.
Logout.aspx.vb | Visual Basic Source.
ManageAddresses.aspx | Web form.
ManageAddresses.aspx.vb | Visual Basic Source.
MultipleShiptoSelect.aspx | Web form.
MultipleShiptoSelect.aspx.vb | Visual Basic Source.
MyAccount.aspx | Web form.
MyAccount.aspx.vb | Visual Basic Source.
NewAccount.aspx | Web form.
NewAccount.aspx.vb | Visual Basic Source.
NewAddress.aspx | Web form.
NewAddress.aspx.vb | Visual Basic Source.
Notfound.aspx | Web form.
Notfound.aspx.vb | Visual Basic Source.
PaymentOption.aspx | Web form.
PaymentOption.aspx.vb | Visual Basic Source.
PaymentSelect.aspx | Web form.
PaymentSelect.aspx.vb | Visual Basic Source.
ProductDetails.aspx | Web form.
ProductDetails.aspx.vb | Visual Basic Source.
ProjectResources.en-US.resx | .NET XML Resource Template.
ProjectResources.resx | .NET XML Resource Template.
Receipt.aspx | Web form.
Receipt.aspx.vb | Visual Basic Source.
Redir.aspx | Web form.
Redir.aspx.vb | Visual Basic Source.
RefreshApp.asp | Active Server Page file.
RefreshApp.aspx | Web form.
RefreshApp.aspx.vb | Visual Basic Source.
Retail2002.sln | Visual Studio Solution file
Retail2002.vbproj | Visual Basic .NET project file
Retail2002.vbproj.webinfo | Webinfo file.
SampleStaticTextPage.aspx | Web form.
SampleStaticTextPage.aspx.vb | Visual Basic Source.
SearchResults.aspx | Web form.
SearchResults.aspx.vb | Visual Basic Source.
web.config | Web configuration file.


Retail2002\AuthFiles Folder

This folder contains ASP files for user authentication. The following table lists the files contained in the AuthFiles folder.

File | Description
autocookie.asp | Active Server Page file.
error.asp | Active Server Page file.
help.asp | Active Server Page file.
interror.asp | Active Server Page file.
Login.asp | Active Server Page file.
nocookie.asp | Active Server Page file.


Retail2002\Bin Folder

This folder contains compiled assemblies and localized resources. It contains the following four subfolders for localized resources:

  • ja
  • fr
  • de
  • en-US

Each folder contains a localized version of the same file, Microsoft.CommerceServer.Retail2002.resources.dll.

The following table lists the files contained in the Bin folder.

File | Description
Microsoft.CommerceServer.Retail2002.Accounts.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Accounts.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Authentication.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Authentication.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Campaign.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Campaign.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Catalogs.cs.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Catalogs.cs.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Catalogs.vb.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Catalogs.vb.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Components.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Components.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Constants.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Constants.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Miscellaneous.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Miscellaneous.pdb | Program Debug Database.
Microsoft.CommerceServer.Retail2002.Transactions.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.Transactions.pdb | Program Debug Database.


Retail2002\Components Folder

This folder contains source code for the components and subfolders for the Visual Studio. NET project. The components provide business logic and application functionality, but not the user interface for the site.

The following table lists the files contained in the Components folder.

File | Description
Components.csproj | C# project file.
Components.csproj.user | Visual Studio Project User Options.
AssemblyInfo.cs | C# source file.
AccountManager.cs | C# source file.
Ado.cs | C# source file.
application.cs | C# source file.
CountryInfo.cs | C# source file.
CurrencyInfo.cs | C# source file.
DataWarehouseLogging.cs | C# source file.


Retail2002\Controls Folder

This folder contains source code for the controls used on the site. Related controls are grouped into projects. Each project is in a separate subfolder. Each Visual Studio project has typical project-related subfolders.

Retail2002\Controls\Accounts Folder

This subfolder contains the project files for the Accounts controls. The following table lists the files contained in this subfolder.

File | Description
Account Management Controls.csproj | C# project file.
Account Management Controls.csproj.user | Visual Studio Project User Options.
AssemblyInfo.cs | C# source file.
AccountLayout.cs | C# source file.
AddressEdit.ascx | Web User Control.
AddressEdit.ascx.cs | C# source file.
AddressView.ascx | Web User Control.
AddressView.ascx.cs | C# source file.
CountrySelector.ascx.cs | C# source file.
CreditCardedit.ascx | Web User Control.
CreditCardedit.ascx.cs | C# source file.
CreditCardList.ascx.cs | C# source file.
CreditCardSelector.ascx | Web User Control.
CreditCardSelector.ascx.cs | C# source file.
FrameControl.ascx.cs | C# source file.
MyAccount.ascx | Web User Control.
MyAccount.ascx.cs | C# source file.
Navigation.ascx | Web User Control.
Navigation.ascx.cs | C# source file.
NewAccount.ascx | Web User Control.
NewAccount.ascx.cs | C# source file.
StateSelector.ascx.cs | C# source file.
WelcomeUser.cs | C# source file.

Retail2002\Controls\Authentication Folder

This subfolder contains the project files for the Authentication controls. The following table lists the files contained in this subfolder.

File | Description
Authentication Controls.csproj | C# project file.
Authentication Controls.csproj.user | Visual Studio Project User Options.
AssemblyInfo.vb | Visual Basic Source file.
signin.ascx | Web User Control.
SignIn.ascx.cs | C# source file.
SignInLink.ascx | Web User Control.
SignInLink.ascx.cs | C# source file.

Retail2002\Controls\Campaign Folder

This subfolder contains the project files for the Campaign controls. The following table lists the files contained in this subfolder.

File | Description
Campaign Controls.vbproj | Visual Basic .NET project file.
Campaign Controls.vbproj.user | Visual Studio Project User Options.
assemblyinfo.vb | Visual Basic Source file.
ContentItem.vb | Visual Basic Source file.

Retail2002\Controls\Catalogs\cs Folder

This subfolder contains the C# project files for the Catalog VariantDisplay control. The following table lists the files contained in this subfolder.

File | Description
Catalogs CS Controls.csproj | C# project file.
Catalogs CS Controls.csproj.user | Visual Studio Project User Options.
VariantDisplay.ascx | Web User Control.
VariantDisplay.ascx.cs | C# source file.

Retail2002\Controls\Catalogs\vb Folder

This subfolder contains the Visual Basic .NET project files for the Catalog controls. The following table lists the files contained in this subfolder.

File | Description
Catalogs VB Controls.vbproj | Visual Basic .NET project file.
Catalogs VB Controls.vbproj.user | Visual Studio Project User Options.
AssemblyInfo.vb | Visual Basic Source file.
CatalogShared.vb | Visual Basic Source file.
_CatalogBrowser.ascx | Web User Control.
_CatalogBrowser.ascx.vb | Visual Basic Source file.
_CatalogNavigationTabs.ascx | Web User Control.
_CatalogNavigationTabs.ascx.vb | Visual Basic Source file.
_CatalogSearch.ascx | Web User Control.
_CatalogSearch.ascx.vb | Visual Basic Source file.
_ProductsList.ascx | Web User Control.
_ProductsList.ascx.vb | Visual Basic Source file.
AdvancedSearch.ascx | Web User Control.
AdvancedSearch.ascx.vb | Visual Basic Source file.

Retail2002\Controls\Miscellaneous Folder

This subfolder contains the project files for the miscellaneous controls. The following table lists the files contained in this subfolder.

File | Description
Miscellaneous Controls.vbproj | Visual Basic .NET project file.
Miscellaneous Controls.vbproj.user | Visual Studio Project User Options.
CompanyLogo.ascx | Web User Control.
CompanyLogo.ascx.vb | Visual Basic Source file.
CompositeHeader1.ascx | Web User Control.
CompositeHeader1.ascx.vb | Visual Basic Source file.
CompositeHeader2.ascx | Web User Control.
CompositeHeader2.ascx.vb | Visual Basic Source file.
CompositeHeader3.ascx | Web User Control.
CompositeHeader3.ascx.vb | Visual Basic Source file.
LocaleSelection.ascx | Web User Control.
LocaleSelection.ascx.vb | Visual Basic Source file.
LogoHeader.ascx | Web User Control.
LogoHeader.ascx.vb | Visual Basic Source file.
PageBottom.ascx | Web User Control.
PageBottom.ascx.vb | Visual Basic Source file.
TopLinks.ascx | Web User Control.
TopLinks.ascx.vb | Visual Basic Source file.

Retail2002\Controls\Transactions Folder

This subfolder contains the project files for the Transaction controls. The following table lists the files contained in this subfolder.

File | Description
Transaction Controls.vbproj | Visual Basic .NET project file.
Transaction Controls.vbproj.user | Visual Studio Project User Options.
AssemblyInfo.vb | Visual Basic Source file.
TxContext.vb | Visual Basic Source file.
AddToCart.ascx | Web User Control.
AddToCart.ascx.vb | Visual Basic Source file.
Cart.ascx | Web User Control.
Cart.ascx.vb | Visual Basic Source file.
CheckoutLink.ascx | Web User Control.
CheckoutLink.ascx.vb | Visual Basic Source file.
CurrencyConverter.ascx | Web User Control.
CurrencyConverter.ascx.vb | Visual Basic Source file.
MultipleShiptoSelector.ascx | Web User Control.
MultipleShiptoSelector.ascx.vb | Visual Basic Source file.
OrderPayment.ascx | Web User Control.
OrderPayment.ascx.vb | Visual Basic Source file.
OrderReceipt.ascx | Web User Control.
OrderReceipt.ascx.vb | Visual Basic Source file.
OrderShipment.ascx | Web User Control.
OrderShipment.ascx.vb | Visual Basic Source file.
OrderTotals.ascx | Web User Control.
OrderTotals.ascx.vb | Visual Basic Source file.
ShipMethodSelector.ascx | Web User Control.
ShipMethodSelector.ascx.vb | Visual Basic Source file.


Retail2002\Images Folder

This folder contains the image files for the user interface of the site. The Styles.css file largely controls the appearance of the site. This file describes the usage of most of the image files in the site.

Non-localized images for the default site language are in this folder. Localized images are in subfolders named with the applicable culture code. The International Retail Site has folders for the following languages:

  • fr-FR
  • en-US
  • ja-JP

Each folder contains localized versions of the same files:

File | Description
CompanyLogo.jpg | User interface element image.
LogoHeader.jpg | User interface element image.

Note

  • The English version of the logo is correct for German, so no localized version of it is required.

The sample catalog for the site expects to find image files in the Retail2002.Images.Catalog folder. The catalog image files are not included in the site pup file. See Setting up the International Retail Site for details about importing the catalog images.

The following table lists the files contained in the Images folder.

File | Description
Styles.css | Cascading style sheet for the site.
AdBanner.gif | Sample ad
AdButton.jpg | Sample ad
VertAdBanner.gif | Sample ad
Passport_Signin.gif | Passport sign in button
Passport_signout.gif | Passport sign out button
CanEngWelcome.gif | Canadian-English welcome flag for the local selection page.
CanFrnWelcome.gif | Canadian-French welcome flag for the local selection page.
FrnWelcome.gif | French welcome flag for the local selection page.
GermanWelcome.gif | German welcome flag for the local selection page.
JapanWelcome.gif | Japanese welcome flag for the local selection page.
USAwelcome.gif | USA-English welcome flag for the local selection page.
BoxDrk_LL.gif | User interface element image.
BoxDrk_LR.gif | User interface element image.
BoxDrk_Tab1.gif | User interface element image.
BoxDrk_Top2.gif | User interface element image.
BoxDrk_Top3.gif | User interface element image.
BoxDrk_UR.gif | User interface element image.
BoxDrk_VLB.gif | User interface element image.
BoxDrk_VLL.gif | User interface element image.
BoxDrk_VLR.gif | User interface element image.
BoxDrk_VLT.gif | User interface element image.
BoxLt_Btm.gif | User interface element image.
BoxLt_L.gif | User interface element image.
BoxLt_LL.gif | User interface element image.
BoxLt_LR.gif | User interface element image.
BoxLt_R.gif | User interface element image.
BoxLt_Top.gif | User interface element image.
BoxLt_Top1.gif | User interface element image.
BoxLt_Top2.gif | User interface element image.
BoxLt_Top3.gif | User interface element image.
BoxLt_UR.gif | User interface element image.
BtnLT_L.gif | User interface element image.
BtnLT_M.gif | User interface element image.
BtnLT_R.gif | User interface element image.
Button_L.gif | User interface element image.
Button_M.gif | User interface element image.
Button_R.gif | User interface element image.
ButtonDrk_L01.gif | User interface element image.
ButtonDrk_M.gif | User interface element image.
ButtonDrk_R.gif | User interface element image.
CompanyLogo.jpg | User interface element image.
DarkBkg.jpg | User interface element image.
LeftColumn.jpg | User interface element image.
LeftGradient.jpg | User interface element image.
RoundedCorner.gif | User interface element image.
RoundedCorner.jpg | User interface element image.
Star_0.gif | User interface element image.
Star_1.gif | User interface element image.
TabBKG.jpg | User interface element image.
TabDrk_1.gif | User interface element image.
TabDrk_2.gif | User interface element image.
TabDrk_3.gif | User interface element image.
TabLT_1.gif | User interface element image.
TabLT_2.gif | User interface element image.
TabLT_3.gif | User interface element image.


Retail2002\Pipelines Folder

This folder contains the pipeline configuration files for the site. The following table lists the files contained in the Pipelines folder.

File | Description
Advertising.PCF | Pipeline configuration file.
basket.pcf | Pipeline configuration file.
checkout.pcf | Pipeline configuration file.
Discounts.PCF | Pipeline configuration file.
product.pcf | Pipeline configuration file.
RecordEvent.pcf | Pipeline configuration file.
recvpo.pcf | Pipeline configuration file.
total.pcf | Pipeline configuration file.


Retail2002\Resources Folder

This folder contains subfolders for each language supported by the site. The Resources folder contains the following subfolders:

  • de
  • fr
  • ja

Each subfolder contains a localized copy of the Microsoft.CommerceServer.Retail2002.resources.dll file.

These files contain localized string resources for the display of text on the site.


Retail2002B2B Root Folder

This folder contains the B2B Web service. See BizTalk Integration Features for more information.

This folder contains only the B2BAdaptors subfolder.


Retail2002B2B\B2BAdaptors Folder

This folder contains the Visual Studio .NET solution file for the B2B Web service, B2B Adaptors.sln, and the subfolders for the individual adapters:

  • B2BAdaptors\CatalogAdaptor Folder
  • B2BAdaptors\OrderAdaptor Folder
  • B2BAdaptors\OrderStatusAdaptor Folder


B2BAdaptors\CatalogAdaptor Folder

The catalog adapter has two components in separate projects contained in the following subfolders:

  • ReceiveCatalog Subfolder
  • UpdateCatalog Subfolder

ReceiveCatalog Subfolder

The following table lists the files contained in this subfolder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
recCat.aspx | Web form.
recCat.aspx.resx | .NET XML Resource Template.
recCat.aspx.vb | Visual Basic Source.
ReceiveCatalog.vbproj | Visual Basic Project File.
ReceiveCatalog.vbproj.webinfo | WEBINFO File.
ReceiveCatalog.vsdisco | Web Service Dynamic Discovery File.
Styles.css | Cascading Style Sheet Document.
Web.config | Web Configuration File.

ReceiveCatalog\Bin Subfolder

File | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.ReceiveCatalog.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.ReceiveCatalog.pdb | Program Debug Database.

ReceiveCatalog\Setup Subfolder

File | Description
ReceiveCatalogSetup.vbs | VBScript Script File.

UpdateCatalog Subfolder

The following table lists the files contained in this folder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
recCatalog.aspx | Web form.
recCatalog.aspx.resx | .NET XML Resource Template.
recCatalog.aspx.vb | Visual Basic Source.
Styles.css | Cascading Style Sheet Document.
UpdateCatalog.vbproj | Visual Basic Project File.
UpdateCatalog.vbproj.webinfo | WEBINFO File.
UpdateCatalog.vsdisco | Web Service Dynamic Discovery File.
Web.config | Web Configuration File.

UpdateCatalog/Bin Subfolder

File | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateCatalog.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateCatalog.pdb |  | Program Debug Database.

BizTalk\Schedules Subfolder

File | Description
ReceiveCatalog.skv | SKV Document.
ReceiveCatalog.skx | SKX Document.
ReceiveCatalogExample.skv | SKV Document.
ReceiveCatalogExample.skx | SKX Document.

BizTalk\Setup Subfolder

File | Description
UpdateCatalogSetup.vbs | VBScript Script File.


B2BAdaptors\OrderAdaptor Folder

The order adaptor has two components in separate projects contained in the following subfolders:

  • OrderAdaptor\Receive Subfolder
  • OrderAdaptor\Send Subfolder

OrderAdaptor\Receive Subfolder

The Receive subfolder contains the following subfolders:

  • ReceiveOrder Subfolder
  • UpdateOrder Subfolder

ReceiveOrder Subfolder

The following table lists the files contained in this folder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
ReceiveOrder.vbproj | Visual Basic Project File.
ReceiveOrder.vbproj.webinfo | WEBINFO File.
ReceiveOrder.vsdisco | Web Service Dynamic Discovery File.
recOrders.aspx | Web form.
recOrders.aspx.resx | .NET XML Resource Template.
recOrders.aspx.vb | Visual Basic Source.
Styles.css | Cascading Style Sheet Document.
vbc_opt.resp | RESP File.
Web.config | Web Configuration File.

ReceiveOrder\Bin Subfolder

File | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.ReceiveOrder.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.ReceiveOrder.pdb | Program Debug Database.

ReceiveOrder\Setup Subfolder

File | Description
ReceiveOrderSetup.vbs | VBScript Script File.

UpdateOrder Subfolder

The following table lists the files contained in this folder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
poschema.xml | XML Document.
ReceivePO.vsdisco | Web Service Dynamic Discovery File.
recvpo.aspx | Web form.
recvpo.aspx.resx | .NET XML Resource Template.
recvpo.aspx.vb | Visual Basic Source.
Styles.css | Cascading Style Sheet Document.
UpdateOrder.vbproj | Visual Basic Project File.
UpdateOrder.vbproj.webinfo | WEBINFO File.
vbc_opt.resp | RESP File.
Web.config | Web Configuration File.

UpdateOrder\Bin Subfolder

File |  | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateOrder.dll |  | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateOrder.pdb |  | Program Debug Database.
Microsoft.CommerceServer.Retail2002.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.pdb | Program Debug Database.

UpdateOrder\Bin\en-US Subfolder

File | Description
Microsoft.CommerceServer.Retail2002.resources.dll | Application Extension.

UpdateOrder\BizTalk Subfolder

The UpdateOrder\BizTalk folder contains only the following subfolders:

UpdateOrder\BizTalk\DocDef Subfolder

File | Description
POSchema.xml | XML Document

UpdateOrder\BizTalk\Schedules Subfolder

File | Description
ReceivePurchaseOrder.skv | SKV Document.
ReceivePurchaseOrder.skx | SKX Document.

UpdateOrder\BizTalk\Setup Subfolder

File | Description
UpdateOrderSetup.vbs | VBScript Script File.

UpdateOrder\Pipelines Subfolder

File | Description
recvpo.pcf | Pipeline Configuration File.

OrderAdaptor\Send Subfolder

The Send subfolder contains only the following subfolder:

OrderAdaptor\Send\BizTalk

The BizTalk subfolder contains the following subfolders:

BizTalk\DocDef

File | Description
POSchema.xml | XML Document.

BizTalk\Schedules

File | Description
SendPurchaseOrder.skv | SKV Document.
SendPurchaseOrder.skx | SKX Document.

BizTalk\Setup

File | Description
SendOrdersSetup.vbs | VBScript Script File.


B2BAdaptors\OrderStatusAdaptor Folder

The OrderStatusAdaptor subfolder contains the following subfolders:

  • ReceiveOrderStatus Subfolder
  • UpdateOrderStatus Subfolder

OrderStatusAdaptor\ReceiveOrderStatus

The following table lists the files contained in this subfolder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
PostStatus.vsdisco | Web Service Dynamic Discovery File.
ReceiveStatus.vbproj | Visual Basic Project File.
ReceiveStatus.vbproj.webinfo | WEBINFO File.
recPOS.aspx | Active Server Application File. Site configuration and initialization.
recPOS.aspx.resx | Resource
recPOS.aspx.vb | Visual Basic Source.
Styles.css | Cascading Style Sheet Document.
vbc_opt.resp | RESP File.
Web.config | Web Configuration File.

ReceiveOrderStatus\Bin

File | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.PostStatus.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.PostStatus.pdb | Program Debug Database.

ReceiveOrderStatus\Setup

File | Description
ReceiveOrderStatusSetup.vbs | VBScript Script File.

OrderStatusAdaptor\UpdateOrderStatus

The following table lists the files contained in this folder.

File | Description
Global.asax | Active Server Application File. Site configuration and initialization.
Global.asax.resx | Resource
Global.asax.vb | Visual Basic Source.
recorderstatus.aspx | Web form.
recorderstatus.aspx.resx | .NET XML Resource Template.
recorderstatus.aspx.vb | Visual Basic Source.
Styles.css | Cascading Style Sheet Document.
UpdateStatus.vbproj | Visual Basic Project File.
UpdateStatus.vbproj.webinfo | WEBINFO File.
UpdateStatus.vsdisco | Web Service Dynamic Discovery File.
vbc_opt.resp | RESP File.
Web.config | Web Configuration File.

UpdateOrderStatus\Bin

File | Description
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateStatus.dll | Application Extension.
Microsoft.CommerceServer.Retail2002.B2Badptors.UpdateStatus.pdb | Program Debug Database.

UpdateOrderStatus\BizTalk

The BizTalk subfolder contains the following subfolders:

UpdateOrderStatus\BizTalk\DocDef

File | Description
AFS_OStatus_Schema.xml | XML Document.

UpdateOrderStatus\BizTalk\Schedules

File | Description
ReceiveOrderStatus.skv | SKV Document.
ReceiveOrderStatus.skx | SKX Document.

UpdateOrderStatus\BizTalk\Setup

File | Description
UpdateOrderStatusSetup.vbs | VBScript Script File.


Control Reference

This section contains reference pages for the controls in the International Retail Site. The following tables group the controls by related function.

Accounts controls

Control | Description
AccountLayout | Determines account management layout.
Addressedit | Enables the user to edit address data.
AddressView | Displays address data.
CountrySelector | Enables country/region selection.
CreditCardSelector | Enables the user to edit credit card data.
CreditCardEdit | Enables the user to select a credit card for payment.
CreditCardList | Enables the user to select a credit card to edit.
FrameControl | Provides a frame user interface element.
MyAccount | Displays user profile data and allows the user to edit the data.
Navigation | Displays a list of customized links.
NewAccount | Displays the controls necessary for creating a new (site user) account.
StateSelectorControl | Enables the user to select a state.
WelcomeUserControl | Welcomes the user by name.

Authorization controls

Control | Description
signin | Provides a sign-in form for the user to sign in.
SignInLink | Displays a sign-in or sign-out link.

Campaign controls

Control | Description
ContentItemControl | Displays ads and other content from the Content Selection Framework.

Catalogs controls

Control | Description
AdvancedSearch | Provides advanced search options.
Browser | Used for catalog and category navigation.
NavigationTabs | Displays navigation tabs.
ProductList | Displays a list of products in catalog/category.
Search | Used for keyword search within a catalog or all catalogs.
VariantDisplay | Displays variant options for user selection.

Miscellaneous controls

Control | Description
CompanyLogo | Displays the company logo on page headers.
CompositeHeader1 | Composite header control, used for grouping controls.
CompositeHeader2 | Composite header control, used for grouping controls.
CompositeHeader3 | Composite header control, used for grouping controls.
LocaleSelection | Encapsulates the functionality of the country/region and language selection on the LocaleSelection page.
LogoHeader | Encapsulates the company header.
PageBottom | Encapsulates links to static pages and the page footer.
TopLinks | Encapsulates links and the checkout button.

Transactions controls

Control | Description
AddToCart | Displays a button, which redirects control to the Cart page when clicked.
Cart | Renders the current list of products added to the shopping cart.
CheckoutLink | Displays a button, which redirects to the checkout page.
CurrencyConverterControl | Encapsulates currency conversion logic.
MultipleShiptoSelector | Allows the user to configure multiple shipments.
OrderPayment | Renders payment related information.
OrderReceipt | Displays the result of running the Checkout pipeline.
OrderShipment | Renders shipment related information.
OrderTotals | Renders order totals.
ShipMethodSelector | Encapsulates a drop-down selection box, which allows the user to select a shipment method/option.


Accounts Controls

This section contains reference pages for the user accounts controls.

Accounts Controls

Control | Description
AccountLayout | Determines account management layout.
AddressEdit | Enables the user to edit address data.
AddressView | Displays address data.
CountrySelector | Enables country/region selection.
CreditCardEdit | Enables the user to edit credit card data.
CreditCardList | Enables the user to select a credit card for payment.
CreditCardSelector | Enables the user to select a credit card to edit.
FrameControl | Provides a frame user interface element.
MyAccount | Displays user profile data and allows the user to edit the data.
Navigation | Displays a list of customized links.
NewAccount | Displays the controls necessary for creating a new (site user) account.
StateSelectorControl | Enables the user to select a state.
WelcomeUserControl | Welcomes the user by name.


AccountLayout Control

Determines account management layout.

Control Information | Location
Class Name | AccountLayout
Source | AccountLayout.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

Controls

  • AddressEdit
  • AddressView
  • CreditCardedit
  • MyAccount


AddressEdit Control

Enables the user to edit address data.

Control Information | Location
Web User Control | AddressEdit.ascx
Codebehind | AddressEdit.ascx.cs Inherits Microsoft.CommerceServer.Site.Accounts.AddressEditControl
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • EditAddress.aspx
  • EditAddress.aspx.vb
  • ManageAddresses.aspx
  • NewAddress.aspx

Controls

  • AddressEdit.ascx
  • AddressEdit.ascx.cs
  • NewAccount.ascx.cs


AddressView Control

Displays address data.

Control Information | Location
Web User Control |  | AddressView.ascx Inherits Microsoft.CommerceServer.Site.AddressViewControl
Codebehind |  | AddressView.ascx.cs
Project File |  | Accounts\Account Management Controls.csproj
Namespace |  | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly |  | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • EditAddress.aspx
  • ManageAddresses.aspx
  • NewAddress.aspx

Controls

  • AddressEdit.ascx
  • CreditCardedit.ascx
  • MultipleShiptoSelector.ascx
  • OrderPayment.ascx
  • OrderShipment.ascx
  • ShipMethodSelector.ascx


CountrySelector Control

Enables country/region selection.

Control Information | Location
Web User Control |  | CountrySelector.ascx Inherits Microsoft.CommerceServer.Site.CountrySelectorControl
Codebehind |  | CountrySelector.ascx.cs
Project File |  | Accounts\Account Management Controls.csproj
Namespace |  | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly |  | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

Controls

  • AccountLayout.cs
  • AddressEdit.ascx
  • MyAccount.ascx


CreditCardEdit Control

Enables the user to edit credit card data.

Control Information | Location
Web User Control | CreditCardEdit.ascx Inherits Microsoft.CommerceServer.Site.CreditCardEditControl
Codebehind | CreditCardEdit.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • PaymentOption.aspx


CreditCardList Control

Enables the user to select a credit card for payment.

Control Information | Location
Class Name | CreditCardList
Source | Accounts\CreditCardList.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Accounts
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • PaymentSelect.aspx


CreditCardSelector Control

Enables the user to select a credit card to edit.

Control Information | Location
Web User Control | CreditCardSelector.ascx Inherits Microsoft.CommerceServer.Site.CreditCardSelectorControl
Codebehind | CreditCardSelector.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

Controls

  • CreditCardedit.ascx


FrameControl Control

Provides a frame user interface element.

Control Information | Location
Class Name | FrameControl
Source | FrameControl.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • EditAddress.aspx
  • ManageAddresses.aspx
  • MyAccount.aspx
  • NewAccount.aspx
  • NewAddress.aspx


MyAccount Control

Displays user profile data and allows the user to edit the data.

Control Information | Location
Web User Control | MyAccount.ascx Inherits Microsoft.CommerceServer.Site.MyAccountControl
Codebehind | MyAccount.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • MyAccount.aspx


Navigation Control

Displays a list of customized links.

Control Information | Location
Web User Control | Navigation.ascx Inherits Microsoft.CommerceServer.Site.NavigationControl
Codebehind | Navigation.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • EditAddress.aspx
  • ManageAddresses.aspx
  • MyAccount.aspx
  • NewAccount.aspx
  • NewAddress.aspx


NewAccount Control

Displays the controls necessary for creating a new (site user) account.

Control Information | Location
Source Files | NewAccount.ascx Inherits Microsoft.CommerceServer.Site.NewAccountControl
Codebehind | NewAccount.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • NewAccount.aspx


StateSelectorControl Control

Enables the user to select a state.

Class Name | StateSelectorControl
Source | StateSelector.ascx.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

Controls

  • AccountLayout.cs
  • AddressEdit.ascx
  • MyAccount.ascx


WelcomeUserControl Control

Welcomes the user by name.

Class Name | WelcomeUserControl
Source | WelcomeUser.cs
Project File | Accounts\Account Management Controls.csproj
Namespace | Microsoft.CommerceServer.Site
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Accounts.dll

Where used

ASPX Pages

  • Default.aspx


Authentication Controls

This section contains reference pages for the authentication controls.

Authentication Controls

Control | Description
signin | Provides a sign-in form for the user to sign in.
SignInLink | Displays a sign-in or sign-out link.


SignIn Control

Provides a sign-in form for the user to sign in.

Web User Control | Signin.ascx
Codebehind | signin.ascx.vb Inherits Microsoft.CommerceServer.Site.Authentication.SignIn
Project File | Authentication\Authentication Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Authentication
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Authentication.dll

Where used

ASPX Pages

  • Login.aspx

Remarks

Provides a sign-in form for the user to sign in to the site on a SQL-based account, and provides a Microsoft Passport sign-in link for the user to sign in on their Passport account.

The Passport sign-in link is displayed only when the Passport SDK is installed on the server.


SignInLink Control

Displays a sign-in or sign-out link depending on whether or not user is currently signed in.

Source Files | SignInLink.ascx
Codebehind | SignInLink.ascx.vb Inherits Microsoft.CommerceServer.Site.Authentication.SignInLink
Project File | Authentication\Authentication Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Authentication
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Authentication.dll

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • ProductDetails.aspx
  • SearchResults.aspx

Controls

  • CompositeHeader2.ascx
  • CompositeHeader3.ascx


Campaign Controls

This section contains reference pages for the campaign controls.

Campaign Controls

Control | Description
ContentItemControl | Displays ads and other content from the Content Selection Framework.


ContentItemControl Control

Displays ads and other content from the Content Selection Framework.

Class Name | ContentItemControl
Source | ContentItem.vb
Project File | \Campaign\Campaign Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Campaign
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Campaign.dll

This control has the following design-time properties:

Property | Description
Size | Lists the available sizes as a drop-down list.
SelectionContext | Allows the user select between "advertising" and "discounts".

This control has the following run-time properties:

Property | Description
Culture | Gets or sets the culture. The default is the current culture of the site. Specify the culture in the format "<languagecode2>-<country/regioncode2>" For example, "en-US".
PageGroup | Gets or sets the PageGroup.
TraceMode | Gets or sets the trace mode. The default is False. Set to True to enable tracing.
ContentSelector | Returns the ContentSelector object.

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • ProductDetails.aspx
  • SearchResults.aspx

Controls

  • CompositeHeader1.ascx
  • CompositeHeader2.ascx

Remarks

The ContentItem control is not dependent on the International Retail Site. It requires only the Commerce Server 2002 platform. If it is used without the International Retail Site, the user will need to add a page for redirection. This page will require functionality similar to that found in the Redir.aspx.vb file in the International Retail Site.

The control maintains a page history when multiple ads or discounts are shown on a page. This prevents displaying the same item multiple times on the same page and avoids industry collisions.

You can create targeting expressions using Commerce Server Business Desk that target content based on the culture.

To add this control to the Visual Studio Toolbox

  1. In Visual Studio, on the Tools menu, click CustomizeToolbox.
  2. In the Customize Toolbox dialog box, on the .NET Framework Components tab, click Browse.
  3. In the Open dialog box, navigate to <%systemdrive%>\Inetpub\wwwroot\Retail2002\bin\Microsoft.CommerceServer.Retail2002.Campaign.dll, and then click Open.
  4. In the Customize Toolbox dialog box, click OK.


Catalogs Controls

This section contains reference pages for the catalog controls.

Catalogs Controls:

Control | Description
AdvancedSearch | Provides advanced search options.
Browser | Used for catalog and category navigation.
NavigationTabs | Displays navigation tabs.
ProductList | Displays a list of products in a catalog/category.
Search | Used for keyword search within a catalog or all catalogs.
VariantDisplay | Displays variant options for user selection.


AdvancedSearch Control

Provides advanced search options.

Control | Description
Web User Control | AdvancedSearch.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.AdvancedSearch
Codebehind | AdvancedSearch.ascx.vb
Project File | Catalogs\vb\Catalogs VB Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

This control has the following properties:

Property | Description
Catalog | Read-only. The catalog name entered in the advanced search control.
Keywords | Read-only. The keywords entered in the advanced search control.
DisplayNo | Read-only. Returns the number of results to display.

Where used

ASPX Pages

AdvancedSearch.aspx

Remarks

The AdvancedSearch control allows the user to specify either "AND" or "OR" relationships between search terms, and to control the number of items per page to return.


Browser Control

Provides catalog and category navigation.

Control | Description
Web User Control | Browser.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.CatalogBrowser
Codebehind | Browser.ascx.vb
Project File | Catalogs\vb\Catalogs VB Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

This control has the following properties:

Property | Description
Catalog | Returns the catalog that contains the category hierarchy when in categories mode. This property is empty when in catalogs mode.
CurrentSelection | Returns the currently selected item following a Click event.
MaxNumberOfItems | Gets or sets the maximum number of items displayed in the Browser control.
Mode | Gets or sets the mode enumeration. The values are catalogs or categories.
Path | Gets the path in the catalog hierarchy to the current category when in category mode.

This control has the following methods:

Method | Description
RenderList | Renders a list of items based on the current property configuration.

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Basket.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • Login.aspx
  • ProductDetails.aspx
  • SearchResults.aspx

Remarks

The Browser control operates in two modes. In Catalog mode, it displays the list of Catalogs exposed through the Catalog System. In Category mode help us navigate the Category hierarchy one level at a time. It exposes the current location in the Category hierarchy as the Path property (which is used by the container page for display purposes).

The Browser control does not truncate or wrap catalog or category names. If the names are too long the control will expand to the right, which disfigures the page. The limit for the length of the names will depend on a number of factors and will need to be determined by testing.


NavigationTabs Control

Displays the navigation tabs.

Control | Description
Web User Control | NavigationTabs.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.CatalogNavigationTabs
Codebehind | CatalogNavigationTabs.ascx.vb
Project File | Catalogs\vb\Catalogs VB Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

This control has the following properties:

Property | Description
SelectedIndex | Sets or gets the currently selected item in the tabs list by position.
Catalog | Sets or gets the currently selected catalog when the control is used in a catalog context.
Url | Gets the URL associated with the current tab selection when the control is used in contexts other than the catalog.

This control has the following methods:

Method | Description
SetTabs | Renders the control, either as the default catalog navigation tabs or as a set of configurable tabs with associated URLs.

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Basket.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • Login.aspx
  • ProductDetails.aspx
  • SearchResults.aspx

Remarks

The default behavior of this control is to display a tab representing the home page and tabs for the first three catalogs in the current catalog set.

The CatalogNavigationTabs control does not truncate the catalog names. If the catalog names are too long, it will limit the number of tabs that can be displayed at one time. This can impact catalog discoverability and site usability.


ProductsList Control

Displays a list of products in a catalog/category.

Control | Description
Web User Control | ProductList.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.ProductsList
Codebehind | ProductsList.ascx.vb
Project File | Catalogs\vb\Catalogs VB Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

This control has the following properties:

Property | Description
Catalog | Gets or sets the current catalog.
Category | Gets or sets the current category.
Path | Gets or sets the category hierarchy for the current category.
ProductId | Gets the product ID for the currently selected item.
VariantId | Gets the variant ID for the currently selected item.
RenderList | Renders a products list based on the current configuration.

Where used

ASPX Pages

  • Catalog.aspx
  • Category.aspx
  • Default.aspx


Search Control

Provides keyword search within a catalog or all catalogs.

Control | Description
Web User Control | Search.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.CatalogSearch
Codebehind | Search.ascx.vb
Project File | Catalogs\vb\Catalogs VB Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

This control has the following properties:

Property | Description
Catalog | Gets the currently selected catalog(s).
Keywords | Gets the keywords to be searched for.

This control has the following methods:

Method | Description
SetCatalogs | Public method to set catalog search context.

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Basket.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • Login.aspx
  • NewAccount.aspx
  • ProductDetails.aspx
  • SearchResults.aspx

Remarks

If multiple terms are entered, there is an implied logical "OR" relationship between the terms. Users must explicitly use the "and" keyword to search on "A and B".


VariantDisplay Control

Displays variant options for user selection.

Control | Description
Web User Control | VariantDisplay.ascx Inherits Microsoft.CommerceServer.Site.Catalogs.VariantDisplay
Codebehind | VariantDisplay.ascx.cs
Project File | Catalogs\vb\Catalogs VB Controls.csproj
Namespace | Microsoft.CommerceServer.Site.Catalogs
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Catalogs.dll

Where used

ASPX Pages

  • ProductDetails.aspx

Remarks

Initially, all values for each property are shown in the variant drop-down lists. The user can select a value for any property, and the other drop-down lists will be repopulated with all the values that match with that selection. This process can be continued until the user has narrowed the possibilities to a single variant.

For example, if a particular color is only available in certain sizes, selecting that color will limit the possible sizes to those sizes available in that color. Conversely, selecting a size that is not available in that color will eliminate that color from the color drop-down list.

If the user clicks the "Reset Variant Data" button, all the variant information is reset to the state where all values are shown for all properties and none are selected.


Miscellaneous Controls

This section contains reference pages for controls that are used throughout the site.

Miscellaneous Controls

Control | Description
CompanyLogo | Displays the company logo on page headers.
CompositeHeader1 | Composite header control, used for grouping controls.
CompositeHeader2 | Composite header control, used for grouping controls.
CompositeHeader3 | Composite header control, used for grouping controls.
LocaleSelection | Encapsulates the functionality of the country/region and language selection on the LocaleSelection page.
LogoHeader | Encapsulates the company header.
PageBottom | Encapsulates links to static pages and the page footer.
TopLinks | Encapsulates links and the checkout button.


CompanyLogo Control

Displays the company logo on page headers.

Web User Control | CompanyLogo.ascx Inherits icrosoft.CommerceServer.Site.Miscellaneous.CompanyLogo
Codebehind | CompanyLogo.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

Where used

Controls

  • CompositeHeader1.ascx
  • CompositeHeader2.ascx
  • CompositeHeader3.ascx


CompositeHeader1 Control

Composite header control, used for grouping controls.

Web User Control | CompositeHeader1.ascx Inherits Microsoft.CommerceServer.Site.Miscellaneous.CompositeHeader1
Codebehind | CompositeHeader1.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

Where used

Used by a set of pages that contain the catalog navigation tabs.

ASPX Pages

  • AdvancedSearch.aspx
  • Basket.aspx
  • Catalog.aspx
  • Category.aspx
  • Default.aspx
  • EditAddress.aspx
  • Login.aspx
  • ManageAddresses.aspx
  • MyAccount.aspx
  • NewAccount.aspx
  • NewAddress.aspx
  • ProductDetails.aspx
  • Receipt.aspx
  • SearchResults.aspx

Remarks

This is a composite header control that encapsulates the company logo, the banner ad, and the top links controls.


CompositeHeader2 Control

Composite header control, used for grouping controls.

Web User Control | CompositeHeader2.ascx Inherits Microsoft.CommerceServer.Site.Miscellaneous.CompositeHeader2
Codebehind | CompositeHeader2.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

This control has the following property:

Property | Description
SignInLinkVisible (Boolean) | Controls whether or not the sign in/out link is visible on the green-blue row, which is part of this header.

Where used

Intended to be used in pages without navigation tabs, such as the account management module pages.

Remarks

This is a composite header control that encapsulates the company logo, the banner ad, the top links controls, and the green-blue row beneath.


CompositeHeader3 Control

Composite header control, used for grouping controls.

Web User Control | CompositeHeader3.ascx Inherits Microsoft.CommerceServer.Site.Miscellaneous.CompositeHeader3
Codebehind | CompositeHeader3.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

This control has the following property:

Property | Description
SignInLinkVisible (Boolean) | Controls whether or not the sign in/out link is visible on the green-blue row, which is part of this header.

Where used

ASPX Pages

  • Checkout.aspx
  • MultipleShiptoSelect.aspx
  • PaymentOption.aspx
  • PaymentSelect.aspx

Remarks

This is a composite header control that encapsulates the company logo and the green-blue row beneath the top row.


LocaleSelection Control

Encapsulates the functionality of the country/region and language selection on the LocaleSelection page.

Web User Control | LocaleSelection.ascx Inherits icrosoft.CommerceServer.Site.Miscellaneous.LocaleSelection
Codebehind | LocaleSelection.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

Where used

ASPX Pages

  • Customerror.aspx
  • LocaleSelection.aspx
  • Notfound.aspx


LogoHeader Control

Encapsulates the company header.

Web User Control | LogoHeader.ascx Inherits Microsoft.CommerceServer.Site.Miscellaneous.LogoHeader
Codebehind | LogoHeader.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

Where used

ASPX Pages

  • Customerror.aspx
  • LocaleSelection.aspx
  • Notfound.aspx


PageBottom Control

Encapsulates links to static pages and the page footer.

Web User Control | PageBottom.ascx Inherits Microsoft.CommerceServer.Site.Miscellaneous.PageBottom
Codebehind | PageBottom.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

This control has the following properties:

Property | Description
LinksCssClass(String) | Gets/sets the CssClass that will be applied to all the links.
TextCssClass(String) | Gets/sets the CssClass that will be applied to the footer text.

Where used

ASPX Pages

  • AdvancedSearch.aspx
  • Basket.aspx
  • Catalog.aspx
  • Category.aspx
  • Checkout.aspx
  • Customerror.aspx
  • Default.aspx
  • EditAddress.aspx
  • LocaleSelection.aspx
  • Login.aspx
  • ManageAddresses.aspx
  • MultipleShiptoSelect.aspx
  • MyAccount.aspx
  • NewAccount.aspx
  • NewAddress.aspx
  • Notfound.aspx
  • PaymentOption.aspx
  • PaymentSelect.aspx
  • ProductDetails.aspx
  • Receipt.aspx
  • SearchResults.aspx

Remarks

These properties can be used to change the links and text of this control to a different color or font.


TopLinks Control

Encapsulates links and the cart/checkout button.

Web User Control | TopLinks.ascx Inherits icrosoft.CommerceServer.Site.Miscellaneous.TopLinks
Codebehind | TopLinks.ascx.vb
Project File | Miscellaneous\Miscellaneous Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Miscellaneous
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Miscellaneous.dll

Where used

Controls

  • CompositeHeader1.ascx
  • CompositeHeader2.ascx


Transactions Controls

This section contains reference pages for the controls used for ordering and purchasing products.

Transactions Controls

Control | Description
AddToCart | Displays a button, which adds an item to the cart.
Cart | Renders the current list of products added to the shopping cart.
CheckoutLink | Displays a button, which redirects to the checkout page.
CurrencyConverterControl | Encapsulates currency conversion logic.
MultipleShiptoSelector | Allows the user to configure multiple shipments.
OrderPayment | Renders payment-related information.
OrderReceipt | Displays the result of running the Checkout pipeline.
OrderShipment | Renders shipment-related information.
OrderTotals | Renders order totals.
ShipMethodSelector | Encapsulates a drop-down selection box, which allows you to choose a shipment method/option.


AddToCart Control

Displays a button, which adds an item to the cart.

Control Information | Location
Web User Control | AddToCart.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.AddToCart
Codebehind | AddToCart.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

This control has the following properties:

Property | Description
Catalog | The catalog containing the product.
Category | The category containing the product.
ProductID | The product ID of the product.
VariantID | The variant ID of the product.
Qty | The quantity selected.

Where used

Product lists or product detail pages that are attached to a product description.

ASPX Pages

  • Basket.aspx
  • ProductDetails.aspx

Controls

  • _ProductsList.ascx


Cart Control

Renders the current list of products added to the shopping cart.

Control Information | Location
Web User Control | Cart.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.Cart
Codebehind | Cart.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • Basket.aspx
  • Checkout.aspx
  • ProductDetails.aspx

Controls

  • _ProductsList.ascx
  • AddToCart.ascx
  • Cart.ascx

Remarks

The user can update the list (delete items and/or update quantities) or proceed with the checkout process.

Note

  • If the value of the cart exceeds $21,474,783.00, a run-time error occurs.
  • You can change the number of items ordered in your cart. If you enter the maximum number of 9s in the Quantity field, and then click Update, an arithmetic overflow error occurs. The overflow will cause a run-time error.


CheckoutLink Control

Displays a button, which redirects to the checkout page.

Control Information | Location
Web User Control | CheckoutLink.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.CheckoutLink
Codebehind | CheckoutLink.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

Controls

  • TopLinks.ascx
  • CheckoutLink.ascx

Remarks

The target of the link depends on the contents (empty or not) in the cart.


CurrencyConverterControl Control

Encapsulates currency conversion logic.

Control Information | Location
Web User Control | CurrencyConverter.ascx Inherits Microsoft.CommerceServer.Site.Transactions.CurrencyConverterControl
Codebehind | CurrencyConverter.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • ProductDetails.aspx

Controls

  • _ProductsList.ascx
  • Cart.ascx
  • CurrencyConverter.ascx


MultipleShiptoSelector Control

Allows the user to configure multiple shipments.

Control Information | Location
Web User Control | MultipleShiptoSelector.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.MultipleShiptoSelector
Codebehind | MultipleShiptoSelector.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • MultipleShiptoSelect.aspx

Remarks

Allows the user to configure multiple shipments by associating various addresses and shipment options with the items in the cart.


OrderPayment Control

Renders payment-related information.

Control Information | Location
Web User Control | OrderPayment.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.OrderPayment
Codebehind | OrderPayment.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

This control has the following methods:

Method | Description
RenderPaymentInfo | Displays payment information.

Where used

ASPX Pages

  • Checkout.aspx

Remarks

Renders payment-related information such as the selected credit card and associated (billing) address.

Displays a Change link that takes the user to a different page where the user can select/create a different payment option (credit card and billing address).


OrderReceipt Control

Displays the result of running the Checkout pipeline.

Control Information | Location
Web User Control | OrderReceipt.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.OrderReceipt
Codebehind | OrderReceipt.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • Receipt.aspx

Remarks

This control displays items, shipments, fees, and other billing and shipping information.


OrderShipment Control

Renders shipment related information.

Control Information | Location
Web User Control | OrderShipment.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.OrderShipment
Codebehind | OrderShipment.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • Checkout.aspx

Remarks

Renders shipment-related information such as the shipping address and shipping option.


OrderTotals Control

Renders order totals.

Control Information | Location
Web User Control | OrderTotals.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.OrderTotals
Codebehind | OrderTotals.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

This control has the following methods:

Method | Description
UpdateTotals | Recalculates the totals and refreshes the display.

Where used

ASPX Pages

  • Checkout.aspx
  • PaymentOption.aspx

Controls

  • OrderReceipt.ascx
  • OrderTotals.ascx

Remarks

Renders the total fees associated with the current order form (subtotal, discount, shipping, tax, and total).


ShipMethodSelector Control

Encapsulates a drop-down selection box, which allows the user to select a shipment method/option.

Control Information | Location
Web User Control | ShipMethodSelector.ascx. Inherits Microsoft.CommerceServer.Site.Transactions.ShipMethodSelector
Codebehind | ShipMethodSelector.ascx.vb
Project File | Transactions\Transaction Controls.vbproj
Namespace | Microsoft.CommerceServer.Site.Transactions
DLL / Assembly | Microsoft.CommerceServer.Retail2002.Transactions.dll

Where used

ASPX Pages

  • Checkout.aspx

Controls

  • MultipleShiptoSelector.ascx
  • OrderShipment.ascx

Remarks

This control selects from a list of shipping methods that were set up using Commerce Server Business Desk. Shipping by weight methods require that all items in the cart have a weight attribute defined in the catalog.


Extending Commerce Server

Microsoft Commerce Server 2002 can be extended in many ways. For example:

  • Custom resources and custom Commerce Server Business Desk modules can be written and integrated into Commerce Server Manager and Business Desk, respectively.
  • The pipeline processing used for order processing, content selection, and direct mailing can be extended by writing and integrating new pipeline components.

These extensions, and others, are described in this section.

This section contains:

  • Building Business Desk Modules. Explains how to build a new Business Desk module. This includes general architectural information, information about integrating new modules, and reference material about the HTML components available for use in new modules.
  • Customizing Style Sheets. Describes how Commerce Server uses customized style sheets.
  • Integrating Custom Resources. Explains how to integrate a custom resource into Commerce Server.
  • Integrating a Third-Party Product Catalog. Describes the various catalog integration points within Commerce Server so that third-party developers can more easily integrate a different catalog system.
  • Integrating with BizTalk Server. Describes how to integrate Microsoft BizTalk Server with Commerce Server 2002.
  • Extending the Content Selection Framework. Describes how the Content Selection Framework can be customized to alter the algorithms used to select personalized content.
  • Working with Pipelines. Describes how to work with Commerce Server 2002 pipelines.


Building Business Desk Modules

This section describes the architecture of Commerce Server Business Desk modules and explains how to build a new Business Desk module.

This section contains:

  • Module Development Basics. Describes Business Desk in general and Business Desk modules in particular. Discusses skill set assumptions that this section makes, and the basic steps required to build a new Business Desk module. Introduces Business Desk terminology and workflow.
  • Business Desk Architecture. Describes the architecture of Business Desk in terms of its constituent parts. These include the Framework, categories, modules, actions, and tasks. Discusses Business Desk security and state management.
  • Business Desk Conventions. Describes the standards and conventions employed in the existing Business Desk modules. Some of these are completely internal, such as coding standards, and some are visible to Business Desk users, such as conventions for error and confirmation messages. The purpose of this section is to make it easier to build new Business Desk modules that conform well to the existing modules.
  • Business Desk Configuration. Describes how Business Desk configuration works in general, and in particular, the configuration information a Business Desk module must provide to execute properly within the Business Desk Framework.
  • Data Manipulation in Business Desk. Discusses the mechanisms typically employed to retrieve data from a database for display in a Business Desk module, and how data that is changed by the user is saved back to the underlying database.
  • HTML Components in Business Desk. Describes the data display and manipulation components that are used extensively in the existing Business Desk modules. One or more of these components are likely to comprise a major portion of the user interface in any new Business Desk module.
  • Business Desk Utilities. Describes the various utility functions that are part of the Business Desk Framework. These functions are employed by the existing Business Desk modules, and will be useful in writing new Business Desk modules.
  • Business Desk Source Code. Provides a roadmap to the source code for the existing Business Desk modules, all of which is included with the product. Often, the easiest way to create a new Business Desk module is to start with the source code for a similar, existing Business Desk module, and modify it as needed.
  • Automating Module Installation. Describes a Component Object Module (COM) object that helps automate the process of integrating new Business Desk modules into existing Business Desk installations. The source code for this object is provided in the Commerce Server Software Development Kit (SDK).


Module Development Basics

Commerce Server Business Desk is a user interface framework implemented primarily as Active Server Pages (ASP) containing Dynamic Hypertext Markup Language (DHTML). This framework provides a structured environment in which third party developers can easily extend the management functionality provided with Microsoft Commerce Server 2002. This environment includes structured page navigation, standard mechanisms for data manipulation, shared utility routines, and a multitude of conventions that help assure a consistent user experience.

By default, every Commerce Server Web site has a distinct instance of Business Desk associated with it. Though Business Desk shares the same set of commerce resources with the Web site, such as various databases, it exists as a separate Active Server Page (ASP) application, with a directory structure and virtual root of its own.

Particular types of management functionality are implemented within Business Desk as distinct Business Desk modules. Microsoft Commerce Server 2002 ships with a number of Business Desk modules that are designed to manage many of the different types of data used by a commercial Web site. Nevertheless, requirements for new Web site features, and their corresponding management functionality, are bound to occur. This drove the highly extensible design of Business Desk, and to the creation of this set of topics that describe how to build a new Business Desk module.

This section contains:

  • Skill Set Assumptions. Describes the assumptions made by these topics regarding the skill set of the developer intent on building a new Business Desk module. Provides some references for learning more about the required technologies.
  • Summary of Required Steps. Summarizes the steps required for building a new Business Desk module. Provides links to topics containing more detailed information required to complete those steps.
  • Business Desk Terminology. Introduces the terminology associated with the basic aspects of Business Desk.
  • Typical Module Workflow. Describes how the pages and corresponding workflow within a Business Desk module are typically arranged.


Skill Set Assumptions

As a developer of a new Commerce Server Business Desk module, you need to be sufficiently familiar with the following technologies:

  • Dynamic Hypertext Markup Language (DHTML)
  • Extensible Markup Language (XML)
  • Extensible Stylesheet Language (XSL)
  • XML Query Language (XQL)
  • Active Data Objects (ADO)
  • HTML Components (HTC), also known as DHTML Behaviors
  • Active Server Pages (ASP)

For detailed information about these technologies, see the online version of The Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161.


Summary of Required Steps in Building a New Commerce Server Business Desk Module

The following sequence of steps is required to build a new Commerce Server Business Desk module. (For more information about terminology that may be unfamiliar, see Business Desk Terminology.)

  1. Create a new folder under the Business Desk root folder for the site in question. Give it a unique name appropriate to the purpose of the new Business Desk module.
  2. Create a module configuration file in the Config folder within the Business Desk root folder. Give it a unique name appropriate to the purpose of the new Business Desk module. This file must express the module configuration information in a particular XML format. For more information about this XML format, see Module Configuration Files.

    Typically, the module configuration file contains an action element for each of the several action pages in the module and at least one module element. This file also describes the taskbar buttons for each action page.

  3. Add a moduleconfig element to the master configuration file that references the newly created module configuration file. Like the module configuration files, the configuration information in the master configuration file is expressed as XML. For more information about XML format of the master configuration file, see Master Configuration File.

    The moduleconfig element to be added identifies the ID of the category with which the new module is to be associated. In some cases it may be appropriate to define a new category for the new module. This is done within the master configuration file.

  4. Create the appropriate ASP pages for the new Business Desk module. Typically, there is one ASP page for each defined action element, plus any module-specific utility files included in the action pages. They should reside in the folder created in step 1.

    Each action page should include the appropriate Business Desk utilities file(s) and link to the main Business Desk style sheet (Bizdesk.css). Then they should call one of the two routines InsertTaskBar (list pages) or InsertEditTaskBar (edit pages) immediately after the opening HTML <BODY> tag.

    Although step 4 is described here as a single step, the creation and debugging of the action pages represents the vast majority of the work involved in developing a Business Desk module.

  5. Create a new HTML help file for each action page in the new module and place them in the Business Desk "docs\htm" folder. Set the helptopic attribute of each action element in the new module configuration file to refer to the appropriate new help file. For the sake of consistency, it is recommended that any new help topics be modeled on the existing help topics.

    If there is no specific help topic page for a given action page, simply leave the helptopic attribute as an empty string and clicking the help button for that page will bring up general Business Desk help.

The SDK includes three different aids to this process, as follows:

  • The folder "<install location>\SDK\Samples\Management\BizDesk" contains a VB Script file named AddModuleToConfig.vbs. This file assumes much of the burden of editing the new module configuration file and the master configuration file. The required information is passed as command line parameters to this script. Refer to the script itself for more information about these parameters.
  • The same SDK folder contains several files that are designed to make the process of creating a new Business Desk module easier. This includes the file Instructions.txt, which provides further instructions on making use of those files. The additional files include ASP pages for basic list, edit, and response pages, and a template for a file in which strings can be isolated.
  • The folder "<install location>\SDK\Samples\Management\BizDesk Module Installer" contains the files required to build the BizDeskModuleInstaller object, which can be used to help automate the process of installing a new module into an existing instance of the Business Desk. For more information about the BizDeskModuleInstaller object, see Automating Module Installation.


Business Desk Terminology

This topic defines the basic concepts associated with Commerce Server Business Desk and the terminology associated with them. The following list contains the names and descriptions of these concepts:

framework
A set of services provided for use by Business Desk modules. These services include navigation, security, and user interface controls. In addition, the framework provides a set of standardized mechanisms defining how to integrate Business Desk modules.
category
An organizational construct used within the navigation pane that allows the grouping of related Business Desk modules.
module
A set of ASP files that provide a particular type of related functionality that are organized with one or more entry points from the navigation pane.
master configuration file
The XML configuration file that defines the categories and modules available within a particular instance of Business Desk. Each module entry identifies a module configuration file that contains the configuration information for that module.
module configuration file
An XML configuration file that defines the actions, tasks, and entry points for a module (or set of modules). Module entry points identify the category with which they are associated.
HTML Components (HTCs), also known as DHTML Behaviors
A set of data display and manipulation controls that are implemented as HTML Components that are used extensively within Business Desk modules. Business Desk includes the following HTCs: DynamicTable, EditField, EditSheet, ExpressionBuilder, ListEditor, ListSheet, QueryBuilder, and TreeView. For more information about these HTCs, see HTML Components in Business Desk.
action page
A single ASP file that provides a particular aspect of the functionality associated with a module. It is typically displayed as a result of clicking a module name in the navigation pane, or as a result of clicking one of the task buttons on an action page.
list page
One of two main types of action pages, list pages provide a read-only view of some type of data, and allow that data to be filtered, sorted, selected, and acted upon. List pages typically display a ListSheet HTC. Sometimes a find pane and its associated HTCs are displayed above the ListSheet HTC. List pages share the Business Desk workspace with the navigation pane.
edit page
One of two main types of action pages, edit pages provide mechanisms for altering the data being displayed. Different edit pages employ different HTCs, depending on the nature of the data being edited. Edit pages do not share the Business Desk workspace with the navigation pane. The latter is hidden from view when edit pages are rendered, thereby preventing navigation to a different module until the edit page is dismissed and the user returns to a list page.
EditSheet group (or EditSheet section)
A section within an EditSheet HTC on an edit page that has a collapsable heading, allowing the information in that section to be displayed or hidden as preferred by the user.
task
An operation performed from an action page, often leading to the display of a different action page where the details of the task are performed. Tasks are initiated by pressing a task button. Some tasks, such as Open and Delete, are context-sensitive; they apply to whatever is selected in the current action page.
task bar
The horizontal area at the top of the content pane where the buttons corresponding to various tasks can be found. (In the user interface documentation, the taskbar is referred to as the toolbar. They are the same, and the naming difference in the User Interface (UI) is due to a desire to conform to Windows standards where end users are concerned.)
navigation pane
The window on the left side of list pages used to display the hierarchy of categories and modules.
content pane
The window on the right side of list pages, and sole window of edit pages, in which action pages are rendered.
find pane
An area in the upper portion of the module content pane in list pages in which find criteria are entered, and then used in a Find task. Most commonly, the lower portion of the module content pane consists of a ListSheet HTC in which the results of the Find task are displayed.
page title bar
The horizontal area at the top of the content pane used to display the page title.
status bar
The horizontal area at the bottom of the content pane used to display status messages.
HTML Application (HTA)
A special type of browser instance in which the normal browser user interface is not displayed. Normally, HTAs will not have the full range of menu and toolbar choices found in a generic browser instance. The Business Desk is designed to run only as an HTA.


Typical Module Workflow

This topic discusses the typical workflow found within most Commerce Server Business Desk modules. This is only a statement of typical workflow; some Business Desk modules may not conform to it. It is the responsibility of the designer of a new Business Desk module to determine the best workflow for that module. Nevertheless, the workflow discussed here has emerged as the most typical.

Using a few modules in Business Desk quickly yields the following observations about the typical workflow for Business Desk modules. The initial action page for a given module presents a mechanism for viewing a table containing a few properties (the columns) of a number of records (the rows). The control that implements this table is the ListSheet HTML Component (HTC) It can be configured in number of different ways.

Frequently, there are too many records to view at one time. Paging through different screens of records is one answer to this problem. It is also typical for there to be mechanisms for limiting the set of records displayed, such as the ability to search for and display only those records matching specified criteria. The ability to sort the records is also typical, and is accomplished in the ListSheet HTC by clicking the column heading of the property on which to sort.

The next step in the workflow involves choosing a task to perform and initiating that task by pressing a task button. Any task that involves existing data requires that the data be identified by being selected. The task buttons associated with such tasks are usually not enabled unless an appropriate selection has been made. Other tasks, such as the New task, generally do not require existing data to be selected.

In any event, the choice of a task often leads to a different action. This new action is generally an action page, known as an edit page, which allows the editing of properties associated with the new or selected record (or records). Once the editing is complete and the Save task is chosen, the user can click a Back taskbar button to display the original ListSheet HTC and continue to the next task.

Sometimes the act of choosing a task results in the display of a dialog box, rather than immediately displaying a new action. A typical example is a dialog box used to confirm a Delete task.

Other tasks might display a short menu to determine the action to be taken. For example, when the New task is clicked, a menu might be displayed to allow the user to select which of several types of objects they wish to add.

The following diagram illustrates one possible Business Desk session, outlined here using the numbered boxes near the arrows.

  • In step 1, the user chooses Module 1.
  • In steps 2 and 3, the user "drills down" two levels to examine and perhaps modify some detailed data, returning to the list page for Module 1 in steps 4 and 5.
  • The steps shown for Module 2 illustrate how a task might loop back to the same action page. An example is the Save and Create New task where the workflow is optimized for a situation in which a number of new items need to be created, one after the other.
  • The steps for Module 3 illustrate how a task might lead back to the same action page, but with a dialog box intervening. An example is the Delete task, where it is typical to present a confirmation dialog box, especially when the data is particularly important or difficult to recover.

A typical new module is likely to have a single list page that is displayed when the module is chosen in the navigation pane. The list page will probably have a small number of tasks it can perform, perhaps five or six tasks. Of these, a few might lead to different edit pages, or perhaps to the same edit page, initialized with different data (the New task versus the Edit task). Some tasks might lead directly to confirmation dialog boxes, and then back to the list page, having carried out or aborted the task.


Business Desk Architecture

This section describes the architecture of Commerce Server Business Desk. The following diagram illustrates how a set of configuration files provides two important types of information needed for the Business Desk Framework to support navigation. The first type determines the set of categorized modules that will be accessible within Business Desk. The second type is used to build and manage the taskbar, which will probably be unique to each action page.

The diagram also illustrates how modules are typically designed such that their initial action page is a list page, from which edit pages may be accessed using task buttons. It also shows the typical design in which a user must return to the initial list page in order to move to a different module.

The choice of the HTML Component (HTC) shown in the various edit pages is purely arbitrary, though a master EditSheet HTC is generally used to contain any other editing controls. The ListSheet HTC is the most common HTC on list pages, sometimes accompanied by individual HTML controls and EditField HTCs in a find pane.

The ListSheet HTC provides a few different modes in which it operates, many of which are designed to accommodate hierarchical data. This often allows the use of a single list page, as opposed to multiple layers of nested list pages on different action pages.

There are three main points to the diagram. First, the master configuration file, together with a set of module configuration files, provides the information needed by the Business Desk Framework to manage both the navigation pane and the taskbar displayed on each action page.

The second point is that action pages that display read-only lists, known as list pages, are always displayed along with the navigation pane. This means that to move to a different module, the user must do so from a list page, not an edit page. List pages are read-only (with the exception of tasks like Delete and Import), which means that users will not generally need to be presented with warnings about leaving the module without having saved changes to data.

The third point is that navigation between action pages should typically be done through the task buttons on the taskbar. This mechanism allows the Business Desk Framework to provide services that occur during transition between action pages. Direct linking of action pages to buttons within a page should be minimized.

This section contains:

  • Framework. Describes the services provided by the Business Desk Framework as well as the visual environment in which Business Desk displays the various Business Desk modules.
  • HTML Application and the Client Installer. Describes how the Business Desk is normally run within the context of an HTA, and how the files necessary for this are downloaded to the client the first time Business Desk is invoked.
  • Configuration Files. Describes how a number of files containing configuration information, specified using XML, provide the data that allows the Business Desk Framework to supply many of its services.
  • Categories. Describes the notion of categories and how they are used to organize modules within Business Desk.
  • Modules. Describes the composition of Business Desk modules, including their manifestation as ASP pages as well as how they make themselves known to the Business Desk Framework.
  • Action Pages. Describes typical contents of the ASP pages that implement Business Desk actions, including information about special elements that all such pages should include, and provides an anatomy of such pages.
  • Tasks. Describes the notion of a task within the Business Desk environment and how tasks are used as the mechanism through which Business Desk provides support for navigation within a particular module.
  • HTML Components. Describes the use of HTML Components (HTC) within Business Desk, including how they provide a standardized mechanism for viewing and altering data.
  • XMLHTTP Operations. Describes the functionality used by a list page to retrieve additional data for the ListSheet HTC without requiring the whole page to be re-rendered. This is an important enhancement that improves the performance of paging through large sets of data, or late loading of detailed data. Also describes framework routines for using XMLHTTP communication to enable saving without needing to reload the page.
  • Security. Describes how the security mechanisms within Business Desk allow for restricting particular users to subsets of the available Business Desk categories, modules, tasks, and data.
  • State Management. Describes the mechanisms available for preserving state on either the client or the server between the various action pages of Business Desk.
  • Error Reporting. Describes the mechanisms available for reporting client and server errors to the Business Desk user.
  • Online Help. Describes how the online Business Desk Help system is implemented and how online Help for new Business Desk modules can be integrated.


Framework

The Commerce Server Business Desk Framework provides the environment in which Business Desk modules are executed. The following list describes the various aspects of this environment:

  • The Framework provides mechanisms through which one module can discover and enumerate the other modules configured in a particular instance of Business Desk.
  • The Framework includes a set of sophisticated data manipulation controls, most of which are implemented as HTML Components (HTCs). HTCs are a form of DHTML behaviors supported in Microsoft Internet Explorer 5. These components provide consistent display, selection, and modification of data among various Business Desk modules, greatly enhancing the sense that Business Desk and its modules are operating as a single, integrated application. List management and data validation are examples of the standardized services provided by these components.
  • The Framework provides a security mechanism through which particular users or groups of users can be restricted from accessing specific categories and modules displayed in the navigation pane, from performing particular tasks within a given module, and even from performing particular actions on particular items of data.
  • The Framework provides the visual environment in which modules are displayed. This environment includes several standard elements such as the navigation pane, the content pane, page title, taskbar, and a status bar.
  • The Framework provides standard mechanisms for navigation between modules and within a module. The navigation pane provides for navigation between different modules, allowing the user to choose a new module in which to work. The task buttons provide for navigation between the various pages comprising a given module. When a Business Desk edit page is displayed, the navigation pane is hidden, forcing the user to complete or cancel the edit action before leaving the module. Hiding the navigation pane also provides a larger area in which the edit page can be displayed.


HTML Application and the Client Installer

Normally, the Business Desk runs as an HTML Application (HTA). An HTA is a customized instance of a browser that hides some of the normal browser features (such as the toolbar and address bar) so that a more consistent and usable user interface can be provided. Business Desk is designed such that, in production, it forces itself to be run as an HTA.

You can override the behavior that forces execution only within an HTA by changing the Business Desk from production mode to development mode. Near the top of the Global.asa file for the Business Desk, you will find the following line of code:

MSCSEnv = PRODUCTION

PRODUCTION is a constant defined a few lines above, along with a sibling constant DEVELOPMENT. If you change the initialization of the MSCSEnv variable from PRODUCTION to DEVELOPMENT, a number of more debugging friendly behaviors ensue. One of these is the ability to execute Business Desk within an normal browser instance. Remember to change this line of code back to its original form before moving Business Desk, which now includes your new module, into a production environment.

Another aspect of Business Desk architecture that does not impact the development of new modules, but which is nevertheless important to understand, is that the first time Business Desk is invoked from a particular machine, it is going to launch the Client Installer. This short process will download a small number of files that must exist on the client for the Business Desk to operate as designed. As already mentioned, this does not affect the development of new modules.


Configuration Files

A set of Extensible Markup Language (XML) configuration files, the master configuration file and a number of module configuration files, are used to inform the Business Desk Framework about a number of different aspects of the modules that are included in a particular instance of Business Desk. At the highest level, each module uses this mechanism to specify information such as the category to which it belongs, the action pages it includes, and the tasks that are available on each of those action pages. At lower levels, a wide variety of additional information is specified in each of these configuration files.

For additional information about configuration of Business Desk, see Business Desk Configuration.

For detailed information about the XML structure of the master configuration file, see Master Configuration File.

For detailed information about the XML structure of the module configuration files, see Module Configuration Files.


Categories

The purpose of categories is to provide a way to organize the various modules in Commerce Server Business Desk. They provide the first level of organization in the navigation pane. The entry points to the modules serve as the second level.

Categories are implemented as entries in XML configuration files, and are displayed only in the navigation pane.

As the author of a new Business Desk module, you need to determine whether the new module belongs in one of the existing categories, or whether the functionality it provides warrants the creation of a new category. If you need to create a new category, you edit the XML contained in the master configuration file and add a new category element. The unique category ID that you devise for this category can then be referenced from the module configuration file that you create for your new Business Desk module. If you are going to add your new module to an existing category, you refer to the category ID of the existing category in your module configuration file.

A category is not displayed in the navigation pane if either of the following conditions is met:

  • No modules specify that category.
  • The current user does not have permission to access any of the module entry points within that category.


Modules

Commerce Server Business Desk modules are what provide the user interfaces that are used to accomplish actual, specific work within Business Desk. Though quite a few Business Desk modules ship with Microsoft Commerce Server 2002, undoubtedly the need for new modules will arise. How to build and integrate such new modules with the existing modules is the subject of this section.

A Business Desk module consists of the following:

  • A set of related ASP pages, including any private utility pages, that present a user interface for managing a particular type of business data. The module also includes any additional, pure-processing ASP pages that support the presented user interface. With the exception of the utility pages, typically included in pages of the other types, these pages are known as action pages.
  • Information about how and where the module should integrate into Business Desk relative to the existing categories and modules. This information is contained in the module configuration file, or potentially in more than one such file.
  • Information about how Business Desk should manage navigation between the ASP pages comprising the module, expressed in terms of tasks, and possibly including some icon files for display on task buttons specific to that module.
  • Optionally, and recommended, help files specific to action pages in the module.


Action Pages

Action pages are the Active Server Page (ASP) pages that constitute a module. Action pages can be used for pure-processing; that is, they are not responsible for the display of any user interface.

In contrast, many action pages are directly responsible for the user interface displayed in the content pane of Commerce Server Business Desk. There are two main types of action pages that are responsible for the display of the user interface: list pages and edit pages.

Any action page linked to as a module or task entry point must be registered in a module configuration file.

At a minimum, action pages responsible for the display of the content pane are comprised of the following:

  • Directives to include the appropriate Business Desk utility files. Some module-specific utility files might also be included.
  • The Business Desk customizable style sheet (CSS), which provides a consistent set of styles for a particular instance of Business Desk, as well as the styles required by the Business Desk HTML Components (HTCs).
  • A call to one of the Framework utility functions, InsertTaskBar or InsertEditTaskBar, to display the task buttons specified in the module configuration file for this action.
  • One or more HTML forms, sometimes including one or more HTCs, that specify the user interface elements associated with the action.

    Although the editing HTCs must generally be within the forms; non-editing controls (like the ListSheet HTC) need not be.

  • Optionally, the ASP code that processes the form data upon submission of the form. This code can be on the same action page, or can be on a different ASP page of either the pure-processing variety or the user interface variety, depending on how the tasks are configured. Typically, if the same page is to be displayed after some ASP code is executed, the form associated with the task will post to that same page and the ASP processing will be done at the top of the page before the content is redisplayed.

This section contains:

  • List Pages
  • Edit Pages


List Pages

List pages are one of two main types of action pages within Commerce Server Business Desk. List pages are characterized by several distinguishing features, as follows:

  • They are read-only. Data should never be modified on a list page (with the exception of search information in the find pane).
  • They appear along side the navigation pane, the latter of which allows a Business Desk user to leave the current module by selecting a different module. The list page is displayed in the right side of the Business Desk workspace.
  • Typically, list pages make use of a ListSheet HTML Component (HTC) for displaying data, using one of several distinct modes of operation offered by that HTC.
  • The list page is often divided into two distinct areas, arranging one above the other. The top area is known as the find pane, and typically contains a small number of EditField HTCs that allow the user to specify find criteria. The bottom area contains the ListSheet HTC mentioned above, and is known as the content pane. When a Find task is performed using the criteria specified in the find pane, the results are displayed in the ListSheet HTC in the content pane.

The following table describes the recommend logical structure for list pages.

Abbreviated List Page Code Description
<% InsertTaskBar %>

List Page server-side routine to insert the proper taskbar and show the navigation pane.

<DIV  id='FindByArea'>

DIV containing the whole find pane.

    <XML id='efMeta'> . . . </XML>

XML data-island containing the configuration data for the EditField HTCs.

    <XML id='efData'> . . . </XML>

XML data-island containing the actual data to be displayed in the EditField HTCs.

    <DIV id='edit1'> . . . </DIV>

DIV containing the first of several EditField HTCs used in the find pane.

    <DIV id='edit2'> . . . </DIV>

DIV containing the second of several EditField HTCs used in the find pane.

    <DIV id='edit3'> . . . </DIV>

DIV containing the third of several EditField HTCs used in the find pane.

</DIV>

End of the find pane DIV.

<DIV  id='ContentArea'

DIV containing the whole content pane.

    <XML id='lsMeta'> . . . </XML>

XML data-island containing the configuration data for the ListSheet HTC.

    <XML id='lsData'> . . . </XML>

XML data-island containing the actual data to be displayed in the ListSheet HTC.

    <DIV id='list1'> . . . </DIV>

DIV containing the ListSheet HTC used in the content pane.

</DIV>

End of the content pane DIV.


Edit Pages

Edit pages are one of two main types of action pages within Commerce Server Business Desk. Edit pages are characterized by several distinguishing features, and subject to certain conventions, as follows:

  • They are read/write. Data should only be modified on an edit page (with the exception of find pane fields on a list page).
  • They do not appear along side the navigation pane. When an edit page appears, the navigation pane is hidden and the edit page occupies the entire Business Desk workspace. This ensures that the user must save or cancel changes before moving to another module. To accomplish this behavior, edit pages must use the InsertEditTaskbar routine rather than the InsertTaskbar routine.
  • Edit pages typically make use of one or more different HTML Components (HTCs) to allow modification of data, including the DynamicTable HTC, the EditSheet HTC, the ListEditor HTC, and individual EditField HTCs. These various HTCs should be defined within a master (or outer) EditSheet HTC. This allows the event handlers to ensure proper operation of confirmation and warning dialogs associated with the Save task.
  • Edit pages with only one EditSheet group should not be expandable or collapsible, and therefore should not have a title bar.
  • When first loading, edit pages should, in general, have the first EditSheet group open and all others closed.
  • If you add an EditField HTC to an edit page you must supply your own label and required icon (if needed). For example:
    <TABLE>
<TR>
    <TD width=30><%= g_imgRequired %></TD>
    <TD CLASS='esLabelCell'>
        <LABEL FOR='password'>Password:</LABEL>
    </TD>
    <TD CLASS='esDataCell'>
        <DIV ID='password' CLASS='editField'
             MetaXML='efMeta'
             DataXML='efData'>Loading property...</DIV>
    </TD>
</TR>
</TABLE>
  • The g_imgRequired constant can be used to insert the markup for a required icon. The required icon is usually in a cell 20 pixels wide. If no required icon is needed simply replace the icon with a &nbsp; element.
  • All field labels should be nested within a LABEL element to provide for accessibility, and end with a semi-colon for consistency.
  • The esDataCell and esLabelCell values for the CLASS attribute allow the field to adopt the characteristics associated with the standard EditSheet layout.
  • If no required icon is needed simply replace the icon with a &nbsp; element
  • The following layout spacing conventions should be followed:
    • The content pane should have a 20-pixel margin on all sides.
    • Control buttons should always be left aligned, in a single horizontal row with six pixels between buttons. The normal size of a button is 80 pixels wide and 25 pixels high. They can be made wider to accommodate longer text.
    • Paging controls should always be right aligned.
    • Control buttons and paging controls should always be 12 pixels away from the control above them.
  • When an edit page is a module entry point (for example, tax rates page), the page must be given the following back button task so that the Back button links to the Business Desk welcome page (rather than to a list page):
    <task icon='taskback.gif' id='back'>
    <goto action='welcome.asp' />
    <name>&lt;U&gt;B&lt;/U&gt;ack</name>
    <key>b</key>
    <tooltip>Back to Main Menu</tooltip>
</task>

The following table describes the recommend logical structure for a particular, sample edit page. It demonstrates how to properly create a nested HTC structure of the following form:

    Master EditSheet
        EditSheet
        EditSheet
            EditSheet
            EditSheet
        EditSheet
            ListEditor
        EditSheet

Note that the code itself is abbreviated for clarity.

Abbreviated Edit Page Code Description
<% InsertEditTaskBar %>

Edit Page server-side routine to insert the proper taskbar and hide the navigation pane.

<XML  id='MasterMeta'>

Start of the XML data-island containing the configuration data for the outer EditSheet HTC.

    <editsheets>

Presence indicates that this EditSheet HTC contains multiple embedded EditSheet groups, listed in the order they are displayed from top to bottom.

    <editsheet> . . . </editsheet>

First nested EditSheet group. Gets its data from the containing EditSheet HTC (id='MasterData' in this example).

    <editsheet>

        <template
            register='InnerES'>
            <![CDATA[
              <DIV id=InnerES
                  class='EditSheet'
                  MetaXML='ESMeta'
                  DataXML='ESData'>
              </DIV>
            ]]>
        </template>
    </editsheet>

Second nested EditSheet group. In this example, the nested EditSheet group contains yet another EditSheet HTC (id=InnerES).

Because it uses the template mechanism, the inner EditSheet HTC must have its own MetaXML and DataXML data-islands.

The register attribute on the template tag assures the correct bubbling of events from the inner EditSheet to the master EditSheet.

    <editsheet>

        <template
            register='InnerLE'>
            <![CDATA[
              <DIV id=InnerLE
                  class='ListEditor'
                  MetaXML='LEMeta'
                  DataXML='LEData'>
              </DIV>
            ]]>
        </template>
    </editsheet>

Third nested EditSheet group. In this example, the nested EditSheet group contains a ListEditor HTC (id=InnerLE).

Because it uses the template mechanism, the inner ListEditor HTC must have its own MetaXML and DataXML data-islands.

The register attribute on the template tag assures the correct bubbling of events from the ListEditor to the master EditSheet.

    <editsheet> . . . </editsheet>

Fourth nested EditSheet HTC. Gets its data from the containing EditSheet HTC (id='MasterData' in this example).

    </editsheets>

End of container for multiple EditSheet HTCs.

</XML>

End of master EditSheet HTC configuration data-island.

<XML  id='MasterData'> . . . </XML>

XML data-island containing the actual data for the master EditSheet HTC. Data actually displayed in nested, non-template EditSheet HTCs.

<XML  id='ESMeta'>

Start of the XML data-island containing the configuration data for the inner EditSheet HTC.

    <editsheets>

Presence indicates that this EditSheet HTC contains multiple embedded EditSheet HTCs, listed in the order they are displayed from top to bottom.

    <editsheet> . . . </editsheet>

First nested EditSheet group. Gets its data from the containing EditSheet HTC (id='ESData' in this example).

    <editsheet> . . . </editsheet>

Second nested EditSheet group. Gets its data from the containing EditSheet HTC (id='ESData' in this example).

    </editsheets>

End of container for multiple EditSheet HTCs.

</XML>

End of nested EditSheet HTC configuration data-island.

<XML  id='ESData'> . . . </XML>

XML data-island containing the actual data for the nested EditSheet HTC.

<XML  id='LEMeta'>

    <listeditor> . . . </listeditor>
</XML>

XML data-island containing the configuration data for the nested ListEditor HTC.

<XML  id='LEData'> . . . </XML>

XML data-island containing the actual data for the inner ListEditor HTC.

<DIV  id='MasterEditSheet'

      class='EditSheet'
      MetaXML='MasterMeta'
      DataXML='MasterData'>
      Loading. Please wait...
</DIV>

DIV that defines the content of entire content pane.


Tasks

A Commerce Server Business Desk task is what ties one action page to another action page, sometimes performing some work during the page transition. In some circumstances the resultant action page can be the same as the originating action page. For example, the Delete task is likely to present a confirmation dialog box, delete the selected record(s) if confirmed, and then return the user to the originating page.

Another way to think about tasks is that they are the mechanism through which Business Desk users initiate high-level actions within the Business Desk. Examples of high-level actions include opening an edit page for a particular selected item, deleting a selected item, and creating a new item. High-level actions can be contrasted to low-level actions that take place within a single page. Examples of low-level actions include scrolling, paging, and changing the value of a displayed field.

Frequently, a task provides a mechanism for performing some more detailed manipulation of data that has been selected on the originating page. For example, suppose a user selects a row that corresponds to a particular record on one action page. By clicking the button for the Open task, the user is presented with a new action page that displays that record in more detail, showing additional fields that were not visible on the originating action page. The new page is likely to allow editing of at least some of the fields being displayed, allowing those fields of the record to be changed by the user.

Tasks are presented in Business Desk user interface as a horizontal row of buttons, known as the taskbar, located at the top of the content pane. There are two types of task buttons: standard task buttons and task menu buttons. Task menu buttons are one of several ways for handling what is known as task branching. The aspects of Business Desk tasks are discussed in more detail in the following topics.

This section contains:

  • Task Buttons and Menus
  • Task Branching
  • The Task Bar


Task Buttons and Menus

Tasks are presented in the Commerce Server Business Desk user interface as buttons. Typically, a task button displays an icon, retrieved from the image file specified as the value of the icon attribute of the task element. If the icon attribute is missing, the data value associated with the name element (child of task element) is used to label the button. The data value associated with the tooltip element (child of the task element) is used as mouse-over text.

For more information about the attributes and sub-elements of the task element, see the task element topic in the "Business Desk XML Structures" reference.

There are two types of task buttons used within Business Desk: standard task buttons and task menu buttons. Standard task buttons are buttons that perform some action when clicked. The action might be, for example, to go to a new action page, to display a deletion confirmation dialog box, or to save modified data.

In contrast, task menu buttons display a drop-down menu when clicked, presenting a number of distinct sub-tasks as possible choices. The user must click one of those choices before any action is taken.

A large number of icons have been pre-defined for a variety of generalized tasks, including some task menu icons. Wherever possible, developers of new Business Desk modules are encouraged to make use of these existing icons. For more information about icons, see Icons.


Task Branching

There are times when a particular task actually represents a number of distinct sub-tasks. For example, when adding a new item of some type, you add a new item with all blank fields, or a new item with field values inherited from a selected item of the same type.

This task branching can be handled in different ways. Sometimes the sub-task is obvious from the item selected, and no user input is required. The code can make the correct sub-task choice on behalf of the user.

If the user must explicitly make the sub-task choice, the preferred method is to define the task as a menu. Using this method, when the user clicks the task button a menu drops down, presenting them with the sub-task choices. This type of mechanism is easily configured within the corresponding task element in the module configuration file.

Another method of accomplishing sub-task branching when the user must make the choice is to use an intermediate dialog box. This can be done by adding an ONTASK attribute to the form associated with a task ("postto" type tasks only). The ONTASK attribute names a function to be executed after the user clicks the task button. This function could display the dialog window and then submit the form unless the user cancels the task.


The Task Bar

Every action page that presents a user interface in the content pane needs to define a set of tasks that are available from that page. These tasks are defined in the module configuration file, using the tasks element contained in each action element. For more information about the details of task definition for each action page, see the tasks element topic in the "Business Desk XML Structures" reference.

The tasks defined for an action page are displayed as a series of task buttons, starting at the top left corner of the content pane and continuing to the right. This series of buttons is known as the taskbar. Task buttons appear in the taskbar in the same order that the corresponding task elements appear within the tasks element in the module configuration file.

There are some conventions about the order in which tasks should be defined, and thus the order in which their associated task buttons will appear in the taskbar. For more information about task bar conventions, see Task Bar.

In addition to the tasks defined by each module, as represented by a left-justified set of task buttons, there is a single global task. This task is the Help task, which has a standard, right-justified button. The Help button displays with a question mark icon, and has the mouse-over text "View help for this page." The Help task is the only global task that is automatically included on every action page. Pages that do not specify a help topic using the helptopic attribute of the action element will display the general Business Desk help when clicked. There is no supported mechanism for adding new global tasks.


HTML Components

One of the important services provided by the Commerce Server Business Desk Framework is a set of HTML Components (HTCs) that provide a standardized manner in which data can be displayed and manipulated. These HTCs are used extensively in Business Desk modules that ship with Commerce Server 2002, and it is expected that they will also be used extensively in new Business Desk modules developed by third parties.

For more information about the HTCs provided by the Business Desk Framework, see HTML Components in Business Desk.

For detailed reference information about the properties, methods, and events supported by each HTC, and for information about the XML structures upon which these HTCs rely, see HTML Components and Business Desk XML Structures, respectively.


XMLHTTP Operations

Two of the HTML Components (HTCs) provided by the Commerce Server Business Desk Framework provide a special feature known as XMLHTTP operations. These HTCs are the ListSheet HTC and the TreeView HTC. The purpose of this feature is to enhance the performance of these HTCs by providing a structured mechanism in which the HTC can request additional XML data from the server in such a way that the page will not need to be reloaded.

In addition, there are a number of routines in the framework for doing XMLHTTP operations on a page outside the context of the ListSheet and TreeView HTCs. These routines can be used to implement pages that save information to the server without having to reload the entire page. Examples include many of the edit pages in the Campaign Manager module.

For more information about XMLHTTP operations and the fetch pages upon which they rely, see XMLHTTP Operations and Fetch Pages.

For more information about the configuration of XMLHTTP operations within the XML meta-data data-islands for the ListSheet HTC and the TreeView HTC, see ListSheet Configuration and TreeView Configuration, respectively.


Security

The Business Desk Framework in Commerce Server 2002 provides a new security model that was not present in Commerce Server 2000. Using this model, different users, and different groups of users can be restricted from accessing aspects of Business Desk at a variety of levels. The following list describes the various aspects of this security model:

  • Windows 2000 Security Identifiers (SIDs) form the basis upon which users or groups of users are allowed or denied access to different aspects of functionality within Business Desk. If your particular installation has a lot of Business Desk users, you should divide those users into logical groups and then secure Business Desk using the SIDs associated with those groups. In Windows 2000 Administrative Tools, use "Local Users and Groups" in the Computer Management tool to create and manage groups.
  • Business Desk security is divided into "security areas". There is one area that is implicitly created. It is for the Business Desk Framework and it handles security at the category, module, and task level. The security settings for these areas are constructed when Business Desk is initialized, based on the categories, modules, and tasks defined in the module configuration files. Initially, only users in the Administrators group are allowed to access Business Desk based on the default security settings for categories, modules, and tasks.

    Commerce Server 2002 also explicitly defines two additional security areas: "catalog" and "profile". These two areas provide finer-grained security for the Product Catalog System and the Profiling System, respectively. For catalogs, edit access can be restricted at the property and catalog levels. For profiles, read and edit access can be restricted at the individual property level.

  • The Security module of Business Desk is used to manipulate the security settings in various security areas. A user in the Administrators group should begin by using the Security module to extend access, as appropriate, to users not in the Administrators group.
  • Besides the SID, there are five key constructs in the security model: "area", "entity", "element", "right", and "deny", defined as follows:

    Area. A security area is logical division of Business Desk security settings according to the Commerce Server feature being secured. The Business Desk Framework constitutes the implicit area, and controls access to categories, modules, and their tasks in a generic manner. The other two areas defined for Commerce Server 2002 are "catalog" and "profile". These later two areas are defined in the same way that additional security areas could be defined for new Commerce Server functionality: by using the file config\master_security_config.xml and the ASP files that it references. The "area" construct is not used at the level of the API supplied by the BizDeskSecurity object.

    Entity. A security entity is the next lower division in the security hierarchy, under security areas. For example, in the Business Desk Framework, the security entities are category, module, and each set of tasks on individual action pages. For catalogs, the security entities are catalog and property. For profiles, the security entities are each defined profile, such as users and organizations. At the level of the API supplied by the BizDeskSecurity object, entities are the highest-level security construct, and must therefore all be unique. To this end, the Business Desk Framework prepends the string "bdfw_" to its category and module security entities, catalog security entities are prepended with "catalog_", and the profile security entities are prepended with "Profiles_".

    Element. A security element is an instance of a security entity. For example, for the Business Desk Framework security entity "category", the corresponding elements are the categories that are actually defined in the module configuration files. Likewise with the security entity "module". The security elements for the security entities defined for each action page are the tasks for that action page, also derived from the module configuration files.

    Right. A security right is an action that can be allowed or denied for a particular security entity, and specifically, for the security elements associated with that entity. Typically, rights are defined as verbs, such as "read" or "edit", though the definition and semantics of rights is entirely specific to the entity for which they are defined.

    Deny. When using the BizDeskSecurity object, the "deny" setting is a tri-state value that is defined for each combination of SID, entity, element, and right. The value zero (0) means that users with the corresponding SID are allowed the type of access specified by the corresponding right to the corresponding element of the corresponding entity type. The value one (1) means that those users are denied that right to that element. The value two (2) means that access for those users for that right and element is inherited from other groups that may have been defined in that security module. In the Permissions module (and dialog box) user interface, "allow" and "deny" are represented by two individual checkboxes. The undefined state is represented by neither checkbox being checked.

Note

  • With the addition of the routines in ServerSecurityUil.asp, you can check security on the server befor serving a page. This can protect against URL spoofing. For more information, see Business Desk Reference.

Consider the following additional points when determining security requirements for a particular instance of Business Desk:

  • Most databases allow some type of security to be implemented at the level of the data fields. A new Business Desk module could be written such that it handled data protection at this level; however, the modules that ship with Microsoft Commerce Server 2002 do not implement this level of security, and would need to be modified to do so.
  • If the user connects to Business Desk from the Internet via an unauthenticated session, Internet Explorer prompts for the user name, password, and domain name in order to authenticate the user for the Business Desk application.
  • When the user is already logged onto the local network, an account context is implicit and that context is used for transparent validation of the authenticity of the user.


State Management

The Commerce Server Business Desk Framework maintains a client state dictionary that is used by modules to pass data between pages. Three client-side routines are provided for interacting with this dictionary. Use SetTemp (client-side) to store data, GetTemp (client-side) to retrieve data, and ClearTemp (client-side) to remove previously stored data. The data to be stored can be any variant type, including objects.

To keep this dictionary operating efficiently, care should be taken to clear values that no longer need to be stored in this dictionary.

All pages displayed within a particular instance of Business Desk share this dictionary, and there are no mechanisms to prevent one page from overwriting a value stored by another page. For this reason, you need to ensure that the dictionary key names that you use are unique and not used by another module. One common practice is to prefix all key names with the module name or some variation thereof.

One important use of the client state dictionary is when nested edit pages are being used. Often, the nested edit page needs to pass information back to the calling edit page. For example, this information might concern newly created objects or renamed objects. The nested edit page stores the relevant information in the client state dictionary, usually in the ONTASK routine associated with the Save task. The information can then be retrieved from the client state dictionary in the callback routine in the calling edit page.

Similarly, Business Desk also provides routines for storing state information on the server that can be accessed from client-side script. These routines convert a client-side Dictionary object into XML, use XMLHTTP to transfer it to the server, convert the XML back to a Dictionary object on the server, and then save it in the Session object. The reverse operation retrieves the saved state from client-side script. For more information about saving state information on the server, see dSetServerState (client-side), dGetServerState (client-side), and dClearServerState (client-side).

Modules can use cookies to save small amounts of state across calls to different pages. Use this state management method only when storing less than 100 bytes of data per action page.


Error Reporting

The Commerce Server Business Desk Framework provides error reporting routines for both client-side and server-side script. These routines fall into the following categories:

  • Formatting routines that are used to construct an HTML table that shows the details of one of several categories of errors.
  • A routine used to set error information in server code that will be displayed on the client when the task bar is inserted in the page.
  • Display routines that result in an error dialog box to be displayed to the Business Desk user.
  • A routine that is used to fetch friendly error strings based on a more terse error string ID.

This topic contains:

  • Server-Side Error Routines. Describes the routines supplied by the Framework for formatting and displaying errors within server-side script.
  • Client-Side Error Routines. Describes the routines supplied by the Framework for formatting and displaying errors within client-side script.
  • Error Routine Examples. Provides a number of examples, showing how the error reporting routines can be combined to report different types of errors.


Server-Side Error Routines

There are four server-side routines for formatting error details, one each for formatting the following types of errors: ADO errors, ASP errors, XML parsing errors, and VBScript errors. For more information about server-side error routines, see:

sGetADOError (server-side) | sGetScriptError (server-side)
sGetASPError (server-side) | sGetXMLError (server-side)

The routine SetError is provided for logging an error in server-side script for eventual display to the Business Desk user. The error information is stored in the ASP Session object and is automatically retrieved and displayed to the user the next time one of the taskbar routines (InsertTaskBar or InsertEditTaskBar) is invoked. For more information about the SetError routine, see SetError (server-side).

Server-side errors are also logged to the Windows NT Application Event Log under the Commerce Server 2002 source.

The routine sGetErrorById is provided to allow the error summary strings stored in the global MessageManager object to be retrieved based on more cryptic, non-localized identifier strings. For more information about the sGetErrorById routine, see sGetErrorById (server-side).


Client-Side Error Routines

There are two client-side routines for formatting error details, one for formatting the details of XML parsing errors, and one for formatting the details of VBScript errors. For more information about client-side error routines, see:

sGetScriptError (client-side) sGetXMLError (client-side)

The routine ShowErrorDialog is provided for displaying an error dialog box to the Business Desk user from client-side script. For more information about the ShowErrorDialog routine, see ShowErrorDlg (client-side).

The error dialog is displayed immediately, and is modal. The detail formatting routines are called within the parameter list of ShowErrorDialog, providing the detail string via their return value.


Error Routine Examples

The following examples show various ways in which the formatting and display routines can be combined to report different types of errors.

The following server-side example shows a call to SetError where the dialog box title is referenced through a localizable string constant, the summary string is looked up using sGetErrorById, and the error details are retrieved using the ASP getLastError method. This example displays an error dialog box with the critical icon.

The call to InsertTaskBar following the call to SetError results in a call to the client-side routine ShowErrorDialog, passing the SetError parameters that were temporarily stored in the Session object.

<%
Call SetError(L_ASP_ERROR_TITLE, _
              SGetErrorById("CS4ERR_ASP_ERROR"), _
              sGetASPError(Server.getLastError), _
              ERROR_ICON_CRITICAL)

Call InsertTaskBar(L_PAGETITLE_TEXT, L_STATUS_TEXT)
%>

The following client-side example shows a call to ShowErrorDialog where the dialog box title and summary strings are referenced through localizable string constants and the error details are contained in the Visual Basic global Err object. This example displays an error dialog box with the question icon.

<SCRIPT LANGUAGE='VBScript'>
Call ShowErrorDialog(L_VB_SCRIPT_ERROR_TITLE, _
                     L_VB_SCRIPT_ERROR_MESSAGE, _
                     sGetScriptError(Err), _
                     ERROR_ICON_QUESTION)
</SCRIPT>

The following client-side example shows a call to ShowErrorDialog where the dialog box title and summary strings are referenced through localizable string constants and the error details are retrieved using the XML Document Object Model (DOM) parseError method (assumes a reference to an XML document is contained in the variable xmlDoc). This example displays an error dialog box with the critical icon.

<SCRIPT LANGUAGE='VBScript'>
Call ShowErrorDialog(L_XML_PARSE_ERROR_TITLE, _
                     L_XML_PARSE_ERROR_MESSAGE, _
                     sGetXMLError(xmlDoc.parseError), _
                     ERROR_ICON_CRITICAL)
</SCRIPT>

The following client-side example shows a call to ShowErrorDialog where the dialog box title is referenced through a localizable string constant, the summary string is looked up in server-side script, and the error details are retrieved in server-side script using the ASP getLastError method. This example displays an error dialog box with the alert icon.

<SCRIPT LANGUAGE='VBScript'>
Call ShowErrorDialog(L_ASP_ERROR_TITLE, _
                     "<%= sGetErrorById("CS4ERR_ASP_ERROR") %>", _
                     "<%= sGetASPError(Server.getLastError()) %>", _
                     ERROR_ICON_ALERT)
</SCRIPT>

The following client-side example shows a call to ShowErrorDialog where the dialog box title and summary strings are referenced through localizable string constants and the error details are retrieved in server-side script using the first error object in the errors collection of an Active Data Objects (ADO) Connection object (assumes a reference to an ADO Connection object is contained in the variable oConn, and that that object contains at least one valid error object). This example displays an error dialog box with the information icon.

<SCRIPT LANGUAGE='VBScript'>
Call ShowErrorDialog(L_ADO_ERROR_TITLE, _
                     L_ADO_ERROR_MESSAGE, _
                     "<%= sGetADOError(oConn.errors.error(0)) %>", _
                     ERROR_ICON_INFORMATION)
</SCRIPT>

The following client-side example shows a call to ShowErrorDialog that displays a dialog box with the default title, summary string, and icon. No details button appears in the dialog box.

<SCRIPT LANGUAGE='VBScript'>
Call ShowErrorDialog("", "", "", "")
</SCRIPT>


Online Help

Every action page specified in a module configuration file must specify an associated help file. Specifically, the action element is required to include the helptopic attribute, the value of which specifies the pathless name of an HTML file that is meant to contain help for that action. Such help files must be placed in the Help folder within the root folder of Commerce Server Business Desk.

When a Business Desk user clicks the Help task, the Business Desk Framework looks up the help file associated with the current task and displays it in a separate help window. If the helptopic attribute contains an empty string then the general Business Desk help page is displayed.


Business Desk Conventions

The Commerce Server Business Desk modules that ship with Microsoft Commerce Server 2002 were developed taking into account established standards for Microsoft Windows applications and defacto standards for Web applications. The goal was to improve both the usability of the Business Desk application and the maintainability of the Business Desk code base. Usability is improved because adherence to the standards tends to increase the consistency between modules developed by different individuals or organizations. Maintainability is improved because the code base is more consistent, allowing new developers to more quickly understand and more successfully modify the code that implements Business Desk.

The topics in this section serve two purposes. First, once developers of new Business Desk modules have learned the standards used, the more easily they will be able to comprehend the Business Desk source code and use it in their new modules, both in terms of invoking Framework functions and in terms of re-using sections of existing code.

Second, to the degree that developers adopt and apply these standards in their own modules, Business Desk usability and maintainability is preserved, benefiting the business managers using it to maintain their Web sites, and any new developers that must learn the now-extended code base to perform future maintenance.

This section contains:

  • Coding Practices. Describes the coding practices used in the Business Desk Framework and module code.
  • Fonts and Color Scheme. Describes the default Business Desk color scheme and the justification behind it. Includes information on how to modify the color scheme.
  • Icons. Describes the icon scheme used in Business Desk. Also provides information about when and how to use various icons.
  • Accessibility. Describes accessibility practices employed in Business Desk. Provides an accessibility checklist for use in module development.
  • Localization. Describes how to make the process of localizing a Business Desk module as easy as possible.
  • Title Bar. Describes the conventions adopted for the text shown in the title bar.
  • Task Bar. Describes the conventions adopted by existing Business Desk modules with respect to the taskbar.
  • ListSheets. Describes standards established for ListSheet HTCs.
  • EditFields. Describes standards established for EditField HTCs.
  • Find Pane. Describes standards established for the find pane.
  • Modal Dialog Boxes. Describes standards established for modal dialog boxes employed by both Business Desk modules and the Framework itself.
  • Confirmation, Warning, and Error Dialogs. Describes the standards adopted with regard to confirmation messages.
  • Asynchronous Behavior. Describes various aspects of how asynchronous behavior is implemented within Business Desk, allowing new modules to successfully integrate with those mechanisms.
  • Error Messages. Describes the standards adopted with regard to error messages.
  • Status Messages. Describes the standards adopted with regard to status messages.
  • Links Between Modules. Describes the conventions adopted with regard to direct linking between actions that belong to different modules.
  • Help Topics. Describes the behavior of the online Help system built into Business Desk. Information about how to develop Help topics for new modules as well as information about how such help can be integrated into the existing system is provided.


Coding Practices

The following list summarizes the coding standards observed during the development of Commerce Server Business Desk.

  • Follow Hungarian naming conventions for variables.
  • Follow file naming conventions.
  • Provide clear and complete comments in the code.
  • Keep use of included files to a minimum.
  • Validate all HTML using an HTML validation tool.
  • Make sure all HTML element IDs are unique and are all in lowercase.
  • Establish some common page characteristics by including the file BDHeader.asp.
  • Specify "Option explicit" at the beginning of each client script block.
  • Use "Request.Querystring" and "Request.Form", as appropriate.
  • Specify ByRef and ByVal explicitly in VBScript function definitions.
  • Keep the number of queries per page to a minimum.
  • Use symbolic constants for clarity.
  • Specify the scripting language per page (ASP) and per element (DHTML).
  • Capitalize all HTML element names and attributes, and all constant names.
  • Use lowercase or mixed case for scripting code.
  • Use a main function for each page to keep use of page globals and script executed inline to a minimum.


Fonts and Color Scheme

The fonts and color scheme used by Commerce Server Business Desk are defined within a customizable style sheet (CSS), allowing centralized modification of these aspects of the Business Desk look and feel. The name of the main CSS file is Bizdesk.css and it is located in the Include folder within the root folder of Business Desk.

There is a separate CSS file for the navigation pane, named Navtree.css.

For the sake of consistency, new modules should adopt the fonts and color scheme defined in the file Bizdesk.css so that any subsequent changes are applied consistently throughout Business Desk.

For detailed information about the CSS file used by Business Desk, see Style Sheet Reference.


Icons

Every action page specified in a module configuration file has a number of tasks associated with it. Given this specification the Commerce Server Business Desk Framework can assemble and display the appropriate taskbar (also known as a toolbar in the Business Desk help). The most prominent visual aspects of the taskbar are the icons that represent the different possible tasks. These icons are specified in the module configuration files as the value of the icon attribute of the task element. The value to be specified is the pathless name of a file, typically a GIF file, located in the Assets folder under the Business Desk root folder.

The Assets folder contains a fairly large set of pre-defined icon files used by existing modules and available for use in new modules. Most of these files are intended for representing tasks that lead to a single subsequent page. The names of the icon files associated with tasks have the form taskTYPE.gif, where TYPE is a short string that describes the associated task. For example, the icon file associated with the export task is named taskExport.gif.

In addition, there are a few icons intended for use in tasks for which multiple choices are offered. These choices are offered in the form of a menu that drops down from the task button when it is clicked. These icons all include a small down-arrow to inform the user that a menu offers further choices. The names of this type of icon file has the form taskTYPEMenu.gif, where TYPE describes the associated task. For example, the icon file associated with the new menu (task) is named taskNewMenu.gif.

Note

  • There is only one icon file per task, and the look of the different button states (enabled versus disabled versus clicked) is controlled by the Framework and the customizable style sheet (CSS).

In addition to the pre-defined icon files, you can place new icon files in the Assets folder and then refer to them in new module configuration files. However, for the sake of consistency, you should use one of the pre-defined icons wherever applicable.

If you need to create new icons, the size of task icons is 22 pixels tall by 23 pixels wide. The size of task menu icons is 22 pixels tall by 33 pixels wide.

There are other icons in the Assets folder that are not used directly by module developers. These include the icons used in error dialog boxes, which correspond to errors of different levels of severity, the icons used to indicate invalid and required input, and the animation icon displayed while a page is loading.


Accessibility

Commerce Server Business Desk Framework and modules have followed certain guidelines to help assure that Business Desk will be accessible to users with disabilities. To maintain consistency with the Framework and existing modules, new modules must follow the accessibility guidelines for Web applications. For more information about accessibility guidelines, see http://go.microsoft.com/fwlink/?LinkId=5161.

Some examples of these guidelines are:

  • The Business Desk must function properly with graphics turned off in the browser.
  • The Business Desk must continue to function properly when custom fonts and font sizes are configured in Internet Explorer.

The following additional design considerations should also be observed:

  • Color should never be the only visual clue.
  • Subtle use of color should be avoided. High contrast is more accessible.
  • Provide keyboard options, including those such as the tab key for navigating to different fields on a page. All visual elements on the page should be included in the tab order.
  • Avoid horizontal scrolling wherever possible.
  • Accommodate screen readers wherever possible. This means that tables and graphics should have associated text that explains their purpose and provides some level of detail about their contents.


Localization

The Commerce Server Business Desk Framework and the Business Desk modules that are delivered with Commerce Server 2002 have been developed in a way that helps to minimize the cost of translating Business Desk into foreign languages. Depending on the circumstances in which a new Business Desk module is being developed, it might be wise for you to adopt the same general guidelines followed by Microsoft developers.

The following list enumerates these guidelines:

  • Navigation should tend to be located at the left and top of the page.
  • Horizontal groupings of controls (other than task buttons) should be avoided so that the typical expansion associated with localization does not disrupt the display.
  • The proper codepage and response charset should be specified in two specific Business Desk include files that are included by all pages. Normal module pages that display HTML in the content pane should be modified to use the proper codepage in the include file BDHeader.asp. Module fetch pages, which are designed to return nothing except XML, should be modified to use the proper codepage in the include file BDXMLHeader.asp.
  • Each module should have a file called "<ModuleName>Strings.asp" in which localizable strings are defined as VB Script constants. Any action page that needs to display one of these strings should include the file and reference the string using its constant name. Hard coded strings should be avoided.
  • Building strings from sub-strings should be avoided because the subject/verb/object order can vary from language to language. Where appropriate, the framework routine sFormatString should be used to ease localization efforts.
  • Allow extra space in forms for the string expansion that typically occurs during localization.
  • Do not use images with text in them.
  • Do not display SQL column names, which will not be localized, on an action page. Other mechanisms exist for supplying display names.
  • Do not display partial file names as part of other messages.


Title Bar

The title bar is used to display information about the current module and action page. Title bar text should use the following format:

Module Title - [action] [option]


Task Bar

Task bar conventions fall into two categories:

  • Conventions for the left-to-right ordering of the task buttons.
  • Conventions and mechanisms for handling the enabled/disabled state of the different types of tasks.

Task Button Order

On List Pages, tasks should be ordered in the taskbar in the following order, starting from the left:

  1. Individual item tasks that do not require selection. For example, View, New, and Compose.
  2. Individual item tasks that do require selection. For example, "Open", "Run", "Preview", and "ViewDetails". Paired tasks also belong in this category. For example, "Delete/Restore" and "Archive/Unarchive".
  3. Tasks that operate on the entire list. For example, "Publish", "Refresh", and "Find".
    • When in doubt, use the modules delivered with Commerce Server as examples.

On Edit Pages, order tasks as follows:

[Back] [SaveBack] [Save] [SaveNew]

Enabling and Disabling Tasks

The New and Find tasks are automatically enabled by the Framework routine OnLoad. When a New task menu is used, the individual menu items must be enabled and disabled by the module page.

The Save and SaveNew tasks are automatically managed by the Framework so long as there is one top level (master) EditSheet HTC that has the OnChange, OnRequire, and OnValid events handled by the SetDirty, SetRequire, and SetValid methods, respectively. In general, the Save and SaveNew tasks should only be enabled when something has been changed and there is no missing required data and no invalid data.

Tasks must be re-enabled after an OnTask routine has been cancelled and the form is not submitted.

The Open, Copy, and Delete tasks should only be enabled when item(s) that support the respective operation are selected. Other tasks that depend on an item being selected should behave in the same way.

The Back task on Edit Pages is always enabled by the Framework.

Tasks that are always available should be enabled in the OnLoad routine and whenever an OnTask routine does not submit the form.


ListSheets

New modules that use ListSheet HTCs in their list pages should conform to the following guidelines:

  • ListSheets containing only one column should not allow sorting (sort='no') since the order would not change.
  • ListSheets that are showing a filtered view of the list based on criteria provided in the find pane should have the following label (placed above the ListSheet in question) to remind the user that they are viewing a filtered list:

    Filtered View (use the Find command to modify the filter criteria)

    A tooltip should be provided for this label. The tooltip should show the criteria upon which the filtered list is based.


EditFields

New modules that use EditField HTCs panes in their list pages should conform to the following guidelines:

  • Editfield input prompts should use the defaults for the field type unless the default prompt is ambiguous or does not convey enough information. For example, a name field with the default "enter text" prompt may be fine, but a password field or a field meant to contain an email address should probably be more specific.
  • Required fields will be indicated with a small red diamond to their left. This is the primary method available for teaching users about which fields are required and which are not.


Find Pane

New modules that use find panes in their list pages should conform to the following guidelines:

  • If a list page starts out with an empty list, the find pane should be initially showing. This most often occurs when showing the entire list by default is not practical due to its size. For more information about showing the find pane, see ShowFindBy (client-side).
  • If a list pages starts out with data displayed in its list, the find pane should be initially hidden. For more information about hiding the find pane, see HideFindBy (client-side).
  • Find pane field prompts should use the defaults for the field type unless the default prompt is ambiguous or does not convey enough information. For example, a name field with the default "enter text" prompt may be fine, but a password field or a field meant to contain an email address should probably be more specific.

    In the case of a drop down list, use the default prompt, or provide a default selection to avoid showing a prompt at all.

  • In find pane fields that support the use of wildcard characters, include a line at the bottom to indicate this fact, phrased as follows:

    Wildcard characters (*) can be used in the <field name> field

  • If a find pane has multiple groups of find fields, each displayed or hidden based on some selection control, it should usually have a Find All button for easy access to the data. The Find All should be the default, until changed by the user. Note that sometimes the sheer size of the list prevents the Find All button from being feasible.
  • If a find pane has just one group of find fields, such that any of the properties may be changed but none of them are ever hidden, the default values in those fields should be the most common ones, yielding the result most likely to be useful to the user.
  • In situations where the find pane presents a large number of options, a Reset button should be included, so that the find criteria can easily be restored to its original state.


Modal Dialog Boxes

In Commerce Server Business Desk, modal dialog boxes are used to offer one or more choices to the user. One use of modal dialog boxes is when transitioning from one page to another, or between different tasks on the same page. Depending on the choice(s) made, the user may be shown different subsequent pages, or default values may be provided in a different way.

If a simple choice needs to be made when clicking on a task button, it is preferable to use task menus rather than displaying a modal dialog box. For more information about task menus, see Task Buttons and Menus.

It is not possible to anticipate all situations in which a Business Desk module might appropriately use a modal dialog box. An alternative is to familiarize yourself with the use of modal dialog boxes in the modules that ship with Commerce Server 2002 and follow their lead.

To promote consistency, modal dialog boxes created for new modules should follow the same conventions used by the modal dialog boxes in existing modules, as follows:

  • The background color for all modal dialog boxes should be the same color as used for the background of Business Desk itself. This should occur automatically when the Business Desk customizable style sheet (CSS) is used.
  • The font for all text in modal dialog boxes is 8 pt. Verdana.
  • All buttons along the bottom of the dialog should be right-justified by including them in a table with a wide far-left cell and follow the normal order of such buttons in Win32 applications:
    <table width=100%><tr>
<td width=100%></td>
<td><button…><button…><button…></td>
</tr></table>


Confirmation, Warning, and Error Dialogs

Confirmation, warning, and error dialogs should conform to the following conventions:

  • All warning messages should be displayed in a message box with the title text set to "Warning". The only button should be the OK button (vbOKOnly).
  • All field validation errors should be displayed in a message box with the title text set to "Validation error". The only button should be the OK button (vbOKOnly).
  • Cross-field validation should usually be done using the onChange event for all fields involved. For example, if you want an end date to always be after a start date, then you should add an onChange event handler to both fields that checks that both fields are valid and that this condition exists; if not, you should display a message box as described above.
  • Any errors other than field validation should be displayed using the ShowErrorDlg routine. Server-side errors can be saved for display on the next page by calling SetError routine. For more information about these routines, see ShowErrorDlg (client-side) and SetError (server-side).
  • Delete confirmation dialogs should be displayed in a message box with the title text set to "Delete?". The dialog should use Yes and No buttons (vbYesNo). Confirmation dialogs for Restore or other similar operations should be handled in the same way.
  • The file SharedStrings.asp defines a number of string constants meant for use in these types of dialogs.
  • To promote a consistent user interface for simple confirmation, warning, and error dialogs, use the ASP files dlg_confirm.asp, dlg_warn.asp, and dlg_error.asp, respectively, as the first argument to the showModalDialog routine.

    These files are located in the Include folder. See the file ActionPageUtil.asp for examples.

Properly built Edit Pages allow the Framework to handle the enable/disable state of the Save and SaveNew tasks as well as Save confirmation and warning dialogs. The following practices must be observed to obtain this behavior:

  • Use one master EditSheet HTC to contain all editing controls on the page.
  • Associate the following handlers with the master EditSheet HTC events:
    • The SetDirty method with the onChange event,
    • The SetRequired method with the onRequire event, and,
    • The SetValid method with the onValid event.

    If additional functionality is required, make sure you call one of these routines, as appropriate, in your event handler.

  • If nested EditSheet HTCs on the page use the template mechanism for freeform layout, make sure to register the IDs of any HTCs within the template in the register attribute of the template element.
  • HTML checkbox and radio button elements need special handling because they do not fire the onChange event. This means that they cannot be registered using the register attribute of the template element. For HTML checkbox and radio button elements, explicitly call the SetDirty method as the onClick handler for each element.
  • When the Edit Page is properly constructed, the Save and SaveNew buttons will not be enabled unless changes have been made to the page, all fields are valid, and no required fields are missing. Note that any special cross-field validation must be done separately.


Asynchronous Behavior

Commerce Server Business Desk modules should not leave the user wondering whether Business Desk is still working or not. This means that operations that take a long time to complete should be performed asynchronously, with some feedback provided to the user indicating that the operation has been started and is being performed.

Any operation that could take more than 10 seconds to complete should provide an intermediate page with the status message: "Loading... Please wait." This is automatically displayed when initially loading a page and when a ListSheet HTC is executing a fetch operation via XMLHTTP.

Operations that could take in excess of one minute to complete, such as importing or exporting a catalog, or generating reports, should be designed in a truly asynchronous fashion. They should run on the server in a separate process, allowing the Business Desk user to perform other tasks in the meantime. The user should be informed that processing has begun, and there should be a page where the user can view the completion status of all such long-running operations.


Error Messages

Commerce Server Business Desk uses a centralized set of friendly error messages for use by all Business Desk modules. These error messages are used for errors encountered within the Business Desk module code, and not in response to HTTP errors. Typically, modules also define their own, unique error messages for use where no shared friendly error message will suffice.

Friendly error messages are passed to the routines SetError and ShowErrorDlg as a text string (in the strFriendlyError parameter).

Server-side friendly error messages are available through a MessageManager object, initialized on application start-up (Global.asa), and then placed in the Application object. Client-side friendly error messages are available through the XML Document Object Model (DOM), added to it when the Business Desk Framework initializes. Using these mechanisms, all module writers have access to the same set of shared error messages.

In addition to both centralized and private friendly error messages, the routine that displays errors can also include detailed information. The detailed information is initially hidden in the error dialog box, but can be shown by clicking the Details button.

Detailed error information is passed to the routines SetError and ShowErrorDlg as a string containing pre-formatted HTML (in the strErrorDetails parameter). If the strErrorDetails parameter is found to be empty, then no Details button is displayed in the dialog box.

The HTML formatting typically specifies a small table with two columns containing a name and value, respectively.

There are a number of client-side and server-side error formatting routines, designed to translate a variety of error objects into a corresponding HTML table. For example, the sGetScriptError client-side routine formats the contents of the global VBScript Err object into an HTML table, and returns it as a string.

The Business Desk Framework provides the following two client-side and four server-side error formatting routines, useful for formatting ADO, ASP, VBScript, and XML Parse errors.

Server-side error formatting routines:

sGetADOError (server-side) | sGetScriptError (server-side)
sGetASPError (server-side) | sGetXMLError (server-side)

Client-side error formatting routines:

sGetScriptError (client-side) sGetXMLError (client-side)

The server-side routine SetError caches its parameters in the Session object, where they are displayed on the client the next time one of the taskbar insertion routines is called. The SetError routine also appends the error to the Microsoft Windows NT Event Log.

Business Desk handles HTTP errors differently, displaying a custom error page. This page contains the original Internet Information Services (IIS) error text, but it is presented in a page that is branded with a Business Desk image. By default, all HTTP "page not found" and "access denied" errors reported by IIS are handled in this standard way.

HTCs gracefully handle XML configuration inputs with missing attributes or tags. If an HTC encounters an error when initializing due to malformed XML, the control will not display and a standard message stating "The control could not load. Please contact your system administrator" will be displayed in a standard message box. There will also be a button that allows the user to see the details of the XML error that caused the control failure.

Data validation error checking is typically performed, and appropriate errors displayed, within the HTCs being used to edit the data. Additional validation error messages, such as for cross-field validation, should display using the standard MsgBox function in the Internet Explorer Document Object Model (DOM).

The ListSheet HTC expects errors returned from fetch pages to be encoded in error nodes by the AddErrorNode routine in the file HTTPXMLUtil.asp. The ListSheet HTC will then automatically display these errors in a dialog.


Status Messages

Status messages should conform to the following guidelines:

Selection:

  • When a single item is selected in a list, the status text should read:

    Selected itemtype: itemname

  • When multiple items are selected, the status text should read:

    number selected

  • When the Select All button is used, the status should read:

    All items in all pages are selected

  • When the last selected item is unselected, the status text should read:

    No items selected

Find:

  • When no items are found, the status text should read:

    No items found

  • When one item is found, the status text should read:

    1 item found

  • When a known number of multiple items are found, the status text should read:

    number items found

Delete:

  • When a single item is successfully deleted, the status text should read:

    Deleted itemtype: itemname

  • When multiple items are successfully deleted, the status text should read:

    number items deleted

  • When a single item is not successfully deleted, the status text should read:

    Unable to delete: itemname

  • When multiple items are not successfully deleted, the status text should read:

    Unable to delete number items

For other operations that result in the re-display of a list, status text similar to that used for Delete operations should be used. Examples of such operations include: import, export, and restore.


Links Between Modules

In general, if one module contains a direct link to another module, it should be implemented through a task button. For example, there is a task button in the Campaign Manager that links to the analysis reports.


Help Topics

To specify a help topic for a particular action page with a module, provide the name of the HTML file containing the help topic as the value of the helptopic attribute of the appropriate action element in the appropriate module configuration file. This file must exist in the docs/htm folder.

When new help topics are added to the docs/htm folder, you can also add corresponding entries to the file Bizdesk.hhc in the docs folder. This will allow the new topics to appear in a particular location within the help system table of contents. Any new index entries related to the new topics can be added to the file Bizdesk.hhc, located in the same folder.

Note

  • Extreme care should be used when making additions to the .hhc and .hhk files so that the existing table of contents and index entries are not disturbed.

Dialog boxes can also have help displayed from a button to the right of the OK and Cancel buttons. When this button is clicked, call the OpenHelp routine with the name of the HTML file containing the help topic in question. This file must exist in the docs/htm folder.


Business Desk Configuration

Different instances of Commerce Server Business Desk can be configured to contain different categories and modules. This configuration is accomplished using a distinct set of XML files for each Business Desk instance. This set of files is comprised of a single master configuration file, named BizDesk.xml, and a series of module configuration files, whose names are variable but refer to the particular module or category with which they are associated. The XML in these two types of files is combined to create a particular configuration using moduleconfig elements in the master configuration file, each of which specifies a distinct module configuration file.

Multiple modules can be defined in a single module configuration file, or each module can be defined in its own module configuration file, or some combination thereof.

The order of category definition in the master configuration file, the order of module definition with a module configuration file, and the order in which module configuration files are defined as belonging to a particular category, define the order in which categories and modules appear in the navigation pane.

All of the configuration files for a particular site, both master and module configuration files, are located in the Config folder under the root folder of the site.

When the Business Desk application loads, it creates a Dictionary object structure that merges the information in the master configuration file and all associated module configuration files, and stores this structure in the Application object. Then, for each particular Business Desk session, this structure is filtered based on the role defined for the current user, creating a custom Business Desk navigation tree for that role.

Note

  • Any manual changes to the master and module configuration files are not reflected in Business Desk until Internet Information Services (IIS) is reset or the Business Desk application is otherwise restarted.

A detailed explanation of the structures of the master and module configuration files is provided in the following XML reference topics:

  • Master Configuration File
  • Module Configuration Files


Data Manipulation in Business Desk

Commerce Server Business Desk is a data-driven application that serves as a management interface for data-driven Web sites. It provides an easy to use mechanism for examining and modifying the various items of data displayed as the content of the Web site pages viewed by Web site users. This data is usually stored in Microsoft SQL Server 2000 databases and the Active Directory directory, though it is possible for the data to exist in other types of databases.

Another important aspect of Business Desk is its reliance on Dynamic HTML (DHTML) and HTML Components (HTCs). These technologies allow for more interactivity within the Web browser itself than has been typical of Web applications, dramatically reducing the number of server roundtrips required to manipulate data in powerful ways. The data to be manipulated is delivered to the Web browser within the page itself; it is passed to the Web browser in a form known as an XML data-island.

An XML data-island is a well-formed segment of XML contained within an xml element and identified by the value associated with the id attribute of that element. The data itself is represented within the XML structure. The structure of the XML is limited only by the rules of XML syntax and the conventions adopted by the script code that is designed to access it. The data is accessed using the normal mechanisms of the Document Object Model (DOM). Such access occurs within the various HTCs that are part of the Business Desk Framework, and can also occur in client-side script on the Web page itself.

The purpose of this section is to describe the typical mechanisms employed by various Business Desk modules to allow Business Desk users to alter the Web site while minimizing the server roundtrips often associated with poor performance in Web applications. The basic steps required to provide this functionality are:

  1. ASP code on a Business Desk module Web page retrieves the data from the database, typically using Active Data Objects (ADO).
  2. ASP code on the page converts a Recordset object returned by ADO into an XML data-island using one of several framework routines.
  3. Microsoft Internet Explorer 5.5 downloads the page, which now contains the XML data-islands and elements with styles linking them to the corresponding HTCs. All the edit type HTCs with the exception of the ExpressionBuilder, ListEditor and DynamicTable include form elements that will automatically be posted with an enclosing form.
  4. The HTCs execute within Internet Explorer 5.5, using the included XML data-islands as the source of configuration information and the data to be displayed.
  5. The user makes changes to the data, eventually requesting that those changes be saved.
  6. The changes are posted back to a Business Desk module Web page using an HTML form. This page converts the posted changes into the appropriate ADO Recordset object format, and then uses ADO to update the database with those changes.

The remainder of this section consists of topics discussing each of these main aspects of data manipulation.

This section contains:

  • XML Data-Islands. Describes how XML data-islands on the ASP pages are used to pass data to the HTCs, and specifically describes the different ways in which XML data-islands can be created.
  • Data versus Meta-data. Describes the difference between data and meta-data in the context of Business Desk, and particularly in the context of the HTCs provided by the Business Desk Framework.
  • Retrieving Data. Describes typical mechanisms for accessing databases from server-side script.
  • Getting Data to the Client. Describes how the Recordset objects returned by ADO are converted to XML data-islands on the page being downloaded to the Web browser.
  • XML Data Merging. Describes how some XML data-islands can be merged for use in the more complex forms of the ListSheet HTC.
  • XMLHTTP Operations and Fetch Pages. Describes special mechanisms used by the ListSheet and TreeView HTCs for retrieving new data from the server without needing to be reloaded in the browser.
  • Data Validation. Describes the data validation techniques employed within both client-side and server-side scripts.
  • Saving Changes to Data. Describes how the data representing modified records is returned to the server and persisted back to the databases from which it originated.


XML Data-Islands

XML data-islands are used to pass data to the HTML Components (HTCs) used on many of the ASP pages in Commerce Server Business Desk. An XML data-island is data, described in XML, that is accessed through an id attribute associated with one of two different elements (xml and script) that might be contained in the ASP page. The data itself often exists in the ASP pages themselves, but need not.

An XML data-island can exist in an ASP page, either hard-coded or generated programmatically using ASP script, using one of the following three tagging mechanisms:

  • Within an xml element:
    <xml id='DataIslandID'>
    data-island XML can go here
</xml>
  • Within a script element that includes the type attribute with the value "text/xml":
    <script type='text/xml' id='DataIslandID'>
    data-island XML can go here
</script>
  • Within a script element that include the language attribute with the value "xml":
    <script language='xml' id='DataIslandID'>
    data-island XML can go here
</script>

The XML data comprising the data-island does not need to be specified on the ASP page itself. Any of the above mechanisms for embedding an XML data-island on an ASP page can use the src attribute to specify the URL of another file from which the contents of the data-island will be retrieved. Any of the following three single lines of code, in conjunction with the data-island XML contained in the specified source file, specify legitimate XML data-islands:

<xml    id='DataIslandID' src='XMLDataFileURL' />
or
<script id='DataIslandID' src='XMLDataFileURL' language='xml' />
or
<script id='DataIslandID' src='XMLDataFileURL' type='text/xml' />


Data versus Meta-data

The HTML Components (HTCs) used to manipulate data within Commerce Server Business Desk modules are instantiated on a Web page as DHTML behaviors associated with an element on the page, typically a DIV element. This element is known as the container element because it contains the HTC. The container element can have arbitrary attributes assigned to it, allowing them to be accessed from the code in the HTC. Such attributes are known as container attributes, and an important aspect of understanding each of the HTCs supplied with the Business Desk Framework is an understanding of the container attributes it expects to be associated with its container element.

A common type of value for a Business Desk HTC container attribute is a string that is the ID of a corresponding data-island in the document. Two of the container attributes expected by most of the Business Desk HTCs each provide the ID of an XML data-island. One of these IDs references a data-island that contains the actual data to be manipulated, represented in a standard format that is an XML representation of a set of database records. The other ID references a data-island that contains what is known as meta-data, or data about the data. For each of the fields in the records of the set, this includes such information as the type of the data and the name to be displayed in the column heading. In addition, the meta-data for many HTCs includes global configuration information that affects the display and behavior of the HTC as a whole.

The data for a particular field in one data-island and the corresponding meta-data for that field in the other data-island are associated using XML attributes and elements. Attributes in the meta-data XML identify a corresponding element in the XML containing the data.

The following table shows the container attributes associated with each of the Business Desk HTCs. With the exception of the meta-data container attribute named DataID, all the data and meta-data container attributes are assigned values that are the same as the value of the id attribute of the corresponding XML data-island (the id attribute of an xml or script element). The container attribute DataID is a special case; it is assigned a value that is the same as the id attribute of a field element within the data-island specified by the corresponding MetaXML container attribute.

HTC Name | Data Container Attributes | Meta-Data Container Attributes | Miscellaneous Container Attributes
DynamicTable | DataXML | MetaXML | <none>
EditField | DataXML | MetaXML | <none>
EditSheet | DataXML | MetaXML | <none>
ExpressionBuilder | <none> | XMLCfgID | <none>
ListBox | <none> | <none> | <none>
ListEditor | DataXML | MetaXML | <none>
ListSheet | DataXML | MetaXML | <none>
QueryBuilder | <none> | XMLCfgID | AutoActivate
TreeView | DataXML | <none> | <none>

The format of the meta-data data-islands is specific to each HTC. For more information about the details of these XML formats, see Business Desk XML Structures.

With one exception, the data-island associated with the DataXML container attribute is in a standard format, regardless of which HTC is in use. For more information about this standard format, creating data-islands programmatically, and creating data-islands containing hierarchical data, see HTML Component Data Representation, Getting Data to the Client, and XML Data Merging, respectively.

The exception to the standard format usage is the TreeView HTC, which expects the data-island associated with the DataXML container attribute to have a completely different format. For more information about this format, see TreeView Configuration.


Retrieving Data

In general, the Commerce Server Business Desk modules that ship with Microsoft Commerce Server 2002 make use of Active Data Objects (ADO) within ASP code to access a database and retrieve the relevant information in the form of an ADO Recordset object. Business Desk provides some global variables and utility functions for creating ADO Connection and Command objects that most of the Business Desk modules shipped with Commerce Server 2002 use. These variables and functions are defined in the Business Desk include file DBUtil.asp.

The DBUtil.asp include file includes the following line to define global ADO Connection and Command objects for use on Business Desk module ASP pages:

Dim g_oConn, g_oCmd

The DBUtil.asp include file defines the routine oGetADOConnection. This routine takes a connection string as its only parameter. It returns a reference to an ADO Connection object that has been initialized with connection and command timeouts of 15 and 30 seconds, respectively, and that has been opened using the passed connection string.

The DBUtil.asp include file also defines the routine oGetADOCommand. This routine takes a Connection object and a command type as parameters. It returns a reference to an ADO Command object that has been initialized to use the passed connection and command type. The passed command type is typically AD_CMD_TEXT, which is also defined in this file.

When these two routines are combined with the creation and opening of an ADO Recordset object, the result is a Recordset object containing the results from the query, ready to be converted into an XML data-island. For more information about converting a Recordset object into and XML data-island, see Getting Data to the Client. The strings sYourConnectionString and sYourSqlQuery, used in the following script, must have been defined elsewhere.

Set g_oConn = oGetADOConnection(sYourConnectionString)
Set g_oCmd = oGetADOCommand(g_oConn, AD_CMD_TEXT)

Dim rsRecSet
g_oCmd.CommandText = sYourSqlQuery
Set rsRecSet = Server.CreateObject("ADODB.Recordset")
rsRecSet.Open g_oCmd, , AD_OPEN_KEYSET, AD_LOCK_PESSIMISTIC


Getting Data to the Client

Data is passed to the Commerce Server Business Desk HTML Components (HTCs) in the form of XML data-islands, frequently within the Web page itself. When the HTCs are executed by Internet Explorer 5 on the client, they can access and display this data for the Business Desk user.

For more information about the ways in which XML data-islands can be created on a page, see XML Data-Islands.

The DBUtil.asp include file defines several routines for producing XML data-islands in the correct format. These routines write all the resultant XML onto the page with the exception of the surrounding xml or script element, and its attributes. Note that the id attribute of both the xml and the script elements is required to identify the data-island to the HTC that is going to use it.

The DBUtil.asp include file contains two routines for converting ADO Recordset objects into the corresponding XML data-islands understood by the HTCs: xmlGetXMLFromRS and xmlGetXMLFromRSEx. It also includes two routines that result in the same XML data-islands, but that also include the database connection and query steps: xmlGetXMLFromQuery and xmlGetXMLFromQueryEx. For more information about these functions, see one of the following:

  • xmlGetXMLFromRS (server-side)
  • xmlGetXMLFromQuery (server-side)
  • xmlGetXMLFromRSEx (server-side)
  • xmlGetXMLFromQueryEx (server-side)

Many of the Microsoft Commerce Server 2002 COM objects are designed to return ADO Recordset objects specifically so that one of these routines can be called to convert them to XML data-islands on an ASP page.

The following code example shows how the invocation of the xmlGetXMLFromRS routine can appear within an xml element on an ASP page. Invocation of this routine and each of the other three routines can appear within an xml element, or within a script element containing the proper attributes to identify it as containing an XML data-island. The id attribute of the xml or script element, DataIslandID, is then assigned to the DataXML container attribute of the DIV element containing the corresponding HTC.

<xml id='DataIslandID'>
<%
    xmlGetXMLFromRS rsRecordset
%>
</xml>

From the perspective of the HTC, it is not important that the XML data-island be produced using one of the provided routines, or even that it be produced from an ADO Recordset object. All that matters from the perspective of the HTC is that the XML data-island be in the expected format. This design allows for greater flexibility with respect to where the data originates, and how it is processed prior to being converted to the proper XML format. The original data may be hard-coded on the page or even the result of an XSL transform.


XML Data Merging

The ListSheet HTML Component (HTC) can be instantiated in several different modes. Many of these modes present data in a hierarchical fashion, allowing details to be hidden, drilled into, and then hidden again. When operating in this manner, the ListSheet HTC expects data to be represented hierarchically in the corresponding XML data-island. This is achieved by merging either two (or three) distinct single-tiered XML data-islands into a single two-tiered (or three-tiered) data-island. The following routines, provided by the Commerce Server Business Desk Framework, perform data merging of this sort:

sMergeGroups2 (server-side) | sMergeGroups2 (client-side)
sMergeGroups3 (server-side) | sMergeGroups3 (client-side)
xmlMergeGroups2 (server-side) | xmlMergeGroups2 (client-side)
xmlMergeGroups3 (server-side) | xmlMergeGroups3 (client-side)
 | xmlMergeGroupsByID2 (client-side)
 | xmlMergeGroupsByID3 (client-side)

The following example illustrates how XML data merging works for two levels. A three level merge is conceptually similar. The following XML representation of two records is considered to be the higher-level information, containing in this case the name and age of different people, to be displayed in the group rows of a ListSheet HTC (the userid is configured to be hidden).

<xml id=master>
    <document recordcount=2>
        <record>
            <name>David</name>
            <age>39</age>
            <userid>dav001</userid>
        </record>
        <record>
            <name>Sarah</name>
            <age>33</age>
            <userid>sar015</userid>
        </record>
    </document>
</xml>

The following XML representation of three records is considered to be the detailed information, containing in this case the names and ages of the children of the people in the XML structure above, to be displayed in the detail rows of a ListSheet HTC (the userid is configured to be hidden).

<xml id=detail>
    <document recordcount=2>
        <record>
            <userid>sar015</userid>
            <name>Jennifer</name>
            <age>6</age>
        </record>
        <record>
            <userid>sar015</userid>
            <name>Thomas</name>
            <age>3</age>
        </record>
        <record>
            <userid>dav001</userid>
            <name>Lilly</name>
            <age>10</age>
        </record>
    </document>
</xml>

A variety of MergeGroups routines can be used to combine either two or three sets of XML records, resulting in a two- and three-tier set of records appropriate for use with a two- or three-level ListSheet HTC. If the two XML structures above are represented in two XML document objects referenced by the variables xmlMaster and xmlDetail, respectively, they could be merged by calling the following routine, which places the resulting merged XML in the string variable sMerged:

sMerged = sMergeGroups2(xmlMaster, xmlDetail, "userid")

The field element name userid is passed in as the key. It must be an element that exists in both sets of records. If a record in the master set and a record in the detail set are found to have the same value for the specified element, the two records are merged in the resulting set, with the master record elements occupying the first-tier of the result record and the detail record elements occupying the second-tier of the result record.

The following XML representation shows the result of combining the two sets of records above. The merged, second-tier fields are shown in bold font. Note that the key element, at least, appears on both tiers of the result records:

<xml>
    <document recordcount=2>
        <record>
            <name>David</name>
            <age>39</age>
            <userid>dav001</userid>
            <record>
                <userid>dav001</userid>
                <name>Lilly</name>
                <age>10</age>
            </record>
        </record>
        <record>
            <name>Sarah</name>
            <age>33</age>
            <userid>sar015</userid>
            <record>
                <userid>sar015</userid>
                <name>Jennifer</name>
                <age>6</age>
            </record>
            <record>
                <userid>sar015</userid>
                <name>Thomas</name>
                <age>3</age>
            </record>
        </record>
    </document>
</xml>


XMLHTTP Operations and Fetch Pages

The ListSheet and TreeView HTML Components (HTCs) support a special class of operations in which a form is posted to a special type of page on the server. This type of page is known as a fetch page. Fetch pages are designed to process these operations and return the results as an XML document containing data in the standard XML data format.

Nothing besides the XML data can be present on the page being returned. Indeed, the content type of the page being returned must be set to "text/xml." Specifically, every fetch page should include the file BDXMLHeader.asp, which establishes the content type and other common page characteristics. Some of the lines from this include file are shown here with the two alternative forms of the first line, the second of which specifies the Norwegian IA5 codepage (do not duplicate line 1 in the actual include file):

 Line
   1    <%@ Language=VBScript %><%'@ Language=VBScript CodePage=1252 %><%
   1    <%'@ Language=VBScript %><%@ Language=VBScript CodePage=20108 %><%
   2
   3    ' switch the @ lines above to set a codepage
   4    ' that is different than the system locale
   5
   6    '   IE 5.5 supports the following settings for charset and codepage:
   7    '      (these are recommended though not all have been tested)
   8

At this point, the file BDXMLHeader.asp includes a list of possible CodePages. Refer to the actual file for details.

   n
 n+1    Option Explicit
 n+2
 n+3    if not isEmpty(Application("MSCSPageEncodingCharset")) then _
 n+4               Response.Charset = Application("MSCSPageEncodingCharset")
 n+5    Response.AddHeader "Pragma", "no-cache"
 n+6    Response.ContentType = "text/xml"
 n+7    Response.Expires = -1
 n+8    Response.Buffer = true
 n+9    %><?xml version='1.0' encoding='<%= Response.Charset %>' ?>
n+10

It is important that the content type of the returned page is set to "text/xml" so that the browser passes the data through to the existing list page, without re-rendering anything. The point of an XMLHTTP operation is to allow the ListSheet and TreeView HTCs to fetch and display new data from the server without reloading the entire list page.

Since the ListSheet HTC posts an XML document, the fetch page can access the various arguments included with the posted form by converting this XML request to a Dictionary object using the dGetRequestXMLAsDict routine. For example:

set g_dRequest = dGetRequestXMLAsDict()
sOperation = g_dRequest("op")

Another important consideration in the construction of fetch pages concerns include files. Since the data returned by the page must be pure XML, any client-side script or HTML will corrupt this XML and make it invalid. The file ActionPageUtil.asp is a good example of a file that must not be included in fetch pages for these very reasons.

At times, the fetch page may need to save some or all of the data passed to it as form arguments so that that data can serve as defaults for the remainder of the session. The ASP Session object is the most natural candidate for saving this type of data. A common example of this type of data is the criteria used within the find pane. If preserved in the Session object, these criteria can be available to be set as the default values in the event that the list page needs to be re-rendered (such as after returning from an edit page).


Data Validation

One of the main purposes of Commerce Server Business Desk is to provide a way for business managers to change the data that determines how their Web site appears to users. Such changes can consist of changing existing data, adding new data, or deleting old data. Several types of errors can occur when data is entered. The entered data might not be of the correct type, or it could exceed the allowable range of values. When a new record is being created, some of the required data could be missing. Further, there could be inconsistencies between various fields in a record based on dependencies between those fields.

Some types of errors are relatively easy to detect and handle in a generic way. Such errors are handled automatically within the relevant HTML Components (HTCs), completely on the client-side. Such errors include:

  • Enforcement of minimum and maximum allowable values for numbers, dates, and times. The min and max attributes of some types of child elements of the fields element are used to specify these restrictions, which are enforced when the input field loses focus.
  • Enforcement of a maximum and minimum length for text input. The maxlen and minlen attributes of some types of child elements of the fields element are used to specify these restrictions, which are enforced when the input field loses focus.
  • Enforcement of matching a particular pattern of characters. The charmask child element of some types of child elements of the fields element is used to specify such pattern restrictions, which are enforced when the input field loses focus.
  • Enforcement of certain formats. The format child element of some types of child elements of the fields element is used to specify such formats, which are enforced when the input field loses focus. Date and Numeric types support different formats.
  • Enforcement of required fields being supplied with a non-empty value. The required attribute of some types of child elements of the fields element is used to specify this restriction, which is enforced when the user commits changes.

The Business Desk user is notified of these types of errors as soon as they are detected, before the erroneous values are sent to the server for subsequent processing. Errors are reported using client-side modal dialog boxes that provide the Business Desk user with a standardized error message, or in the case of the pattern matching errors, a customized error message that is specified in the XML configuration information along with the pattern itself. Once the invalid data dialog box is dismissed, the field or fields that caused the error are marked to draw the attention of the Business Desk user to those fields.

Some types of data validation are more involved and must be handled by the module in a custom manner, usually on the server-side. These types of validation include uniqueness checking across records and cross-field validation. When these types of errors occur, the module is responsible for displaying an appropriate error message, re-displaying the page upon which the error was made, and restoring the state of that page.

A common technique for performing cross-field data validation in client-side code is to trap the OnChange event provided by many of the Business Desk HTCs. You can write a handler function for the OnChange event that, for example, performs consistency checking between different fields on the page, or which forces a user-supplied value into a more acceptable format. The following HTCs support the OnChange event:

  • DynamicTable
  • EditField
  • EditSheet
  • ListEditor


Saving Changes to Data

The most typical scenarios for saving changes to data is to save a record or set of records that have presumably been altered, or deleting one or more records. In general, saving changes could be the initial save of a new record, the saving of changes to an existing record, or the saving of similar changes to a set of records. In all of these cases, the save or delete action is usually initiated by a user pressing a task button.

The changed data is sent to the server to be saved using HTML forms with the POST method (as opposed to the GET method). Typically, for each server-side page used to process such changes to data, a unique HTML form is defined that specifies the arguments to be posted with the form. The following lines of HTML code show the definition of such a form:

<FORM ID='memberchange' METHOD='POST'>
    <INPUT TYPE='hidden' ...>
    ...
    <INPUT TYPE='hidden' ...>
</FORM>

The ACTION attribute is usually not specified for forms used for tasks within the Commerce Server Business Desk Framework. Rather, the association of particular forms and the pages designed to process them is accomplished through the module configuration files. For more information about how forms are associated with the pages designed to process them, see the postto section in the Module Configuration Files topic.

Normally, various edit type HTCs will be enclosed in the form and each will automatically create an INPUT element using the same name as the XML node with which the HTC is associated.

Other arguments for the form can be defined as INPUT elements with their type attributes set to "hidden". Other important attributes that need to be set are:

  • The id attribute, which allows access to the element through the Document Object Model (DOM).
  • The name attribute, which supplies a name to associate with the item of data when posting the form.
  • The value attribute, assuming that there is a default.

The id attribute and the name attribute can be assigned the same value.

The following line of HTML code illustrates a typical INPUT element within such a form, including a default value provided by an ASP variable:

<INPUT TYPE='hidden' ID='expdate'
       NAME='expdate' VALUE='<%= DefaultExpDate%>'>

Sometime before the form is submitted, the module code may assign a (new) value to the INPUT element using the DOM. The element is located using its id attribute and the (new) value is assigned to its value attribute. Once such value changes have been made for all appropriate input elements associated with the form, the form can be submitted and the values become available to the server page processing the changes through the ASP Request object.

A hidden value in a form is often set as a result of an event in the ListSheet HTML Component (HTC). For example, when the OnRowSelect event fires, the key ID for the selection can be placed in a hidden input field so that the selection is sent to an edit page when the form is posted by the task.

Occasionally, you may need to perform some special client-side processing after the task button is clicked, but before the form is posted. Most often, this involves requesting further information from the user, such as asking what type of new record to add, or confirming a modification or delete operation. Sometimes such processing can be performed automatically, without further user interaction. In any event, different processing paths are possible, including different data being submitted with the form, different forms being submitted, or the same form being submitted to a different page for processing.

An ONTASK attribute is defined for the FORM element to support this requirement. If the ONTASK attribute is defined for a FORM element being processed by the Business Desk Framework, the Framework attempts to execute the value provided for that attribute. Most often, the value is a routine name, allowing that routine to perform the required processing.

The following line of HTML code shows the same FORM element as above, though this time it has an ONTASK attribute defined:

<FORM ID='memberchange' METHOD='POST' ONTASK='OnMemberChange'>

When an ONTASK attribute is defined, the executed routine is responsible for submitting the form once the special processing is accomplished. The form can be submitted using the submit method of the form.

The final step in changes to data being persisted to a database occurs within ASP code on the server. A form is posted to an ASP page on the server, and it generally includes various fields of data that can be accessed using the ASP Request object. Using this object, the server-side script retrieves the data posted with the form and places it into an Active Data Objects (ADO) Recordset object to be persisted.

The information in the form will include any fields that were in an EditSheet contained by the form. This includes all EditFields and fields in the EditSheets, which will be sent along with the form.

The DynamicTable and ListSheet HTCs, however, return XMLlists instead of fields. These XMLlists, retrieved through the OnChange event object property XMLlist, needs to be assigned to a hidden form field (see the shipping page for an example).


HTML Components in Business Desk

The Commerce Server Business Desk Framework includes a number of HTML Components (HTCs) that are used extensively by the modules that ship with Commerce Server 2002. (HTCs are one of the ways in which the DHTML behaviors supported in Internet Explorer 5.5 can be implemented. The HTCs supplied with Commerce Server are more complex than typical Internet Explorer 5 behaviors.) The Business Desk HTCs are also intended for use in new Business Desk modules developed by third parties. Not only does such use save third parties significant effort in developing new modules, it benefits the users of Business Desk by promoting a common look-and-feel throughout an extended Business Desk.

Each of the HTCs that ship with Business Desk defines a unique set of events, properties, and methods. Each HTC also has a particular format in which it expects to be passed its configuration data, including both the configuration data used to control the behavior and display of the control, as well as the actual Web site data itself. Also, each HTC is instantiated within script on an ASP page in a slightly different manner. These details are provided in the Business Desk Reference in the section entitled HTML Components.

Each HTC has a variable named m_bDebug, defined at the beginning of the HTC file containing the script code for the HTC. If this variable is set to True, error messages display in alerts to help in debugging while a module is being developed. If the variable m_bDebug is set to False, the same error is sent in an onError event instead of being displayed in an alert. The onError event can then be trapped and handled in script code.

The following table describes the HTCs supplied with the Business Desk Framework, and provides links to more detailed information in the Programmer’s Reference.

HTML Component | Description
DynamicTable | Used for editing tabular data where editing is limited to the columns being displayed.
EditField | Used for editing individual items of data of various types.
EditSheet | Used to bundle together other controls that are used to edit data.
ExpressionBuilder | Describes the control used for creating named expressions that can be used for targeting. The ExpressionBuilder HTC makes use of an embedded version of the QueryBuilder HTC.
ListBox | Used for list-to-list copy and move operations.
ListEditor | Used for editing tabular data where the editing of individual records occurs in a separate table below the table containing the list.
ListSheet | Used to display a list of records and allows selection of one or more of those records for editing. This HTC is read-only.
QueryBuilder | Used to build a simple query.
TreeView | Used to display an XML structure in a tree format.

The ListSheet and TreeView HTCs are unique in that they both offer a mechanism for requesting additional XML data from the server without needing to reload the entire page containing the HTC in question.


Business Desk Utilities

An important aspect of the Commerce Server Business Desk Framework is the set of constants, global variables, and utility routines that provide an extensive base of shared code used by the modules that ship with Microsoft Commerce Server 2002, and which are intended for use by third party developers of new modules.

This shared code is made available to Business Desk modules in the form of include files, specified in the action pages for a module. Depending on the nature of the action page, such as whether it contains client-side script or server-side script, or both, different include files are appropriate for inclusion.

The details of the constants, global variables, and utility routines in the various include files are provided in the Business Desk Reference, in the following sections:

  • Include Files. Describes the include files that define the constants, global variables, and utility routines that constitute much of the Business Desk Framework. Explains when to include and when to not include each of these files.
  • Constants. Describes the constants defined in the various Business Desk include files. Defines which constants are available in client-side versus server-side script.
  • Global Variables. Describes the global variables defined in the various Business Desk include files. Defines which global variables are available in client-side versus server-side script.
  • Utility Routines. Describes the routines defined in the various Business Desk include files. Defines which routines are available in client-side versus server-side script.

    Many of the utility routines are shown in the following list, organized according to their intended use.

Action Page Routines:
ClearStatusText (client-side) | OpenHelp (client-side)
dGetAction (server-side) | SetPageTitleText (client-side)
HideStatusAnimation (client-side) | SetStatusText (client-side)
HideStatusLegend (client-side) | SetWaitDisplayText (client-side)
HideWaitDisplay (client-side) | ShowWaitDisplay (client-side)
List Page Routines:
execDefaultTask (client-side) | SetFindByHeight (client-side)
execTaskFromContextMenu (client-side) | ShowFindBy (client-side)
HideFindBy (client-side) | ToggleFindBy (client-side)
InsertTaskBar (server-side) |
Edit Page Routines:
InsertEditTaskBar (server-side) | SetDirty (client-side)
OpenEditPage (client-side) | SetRequired (client-side)
ResetSaveBtns (client-side) | SetValid (client-side)
Task Button Routines:
DisableTask (client-side) | EnableTask (client-side)
DisableTaskMenuItem (client-side) | EnableTaskMenuItem (client-side)
elGetTaskBtn (client-side) | SetTaskTooltip (client-side)
EnableAllTaskMenuItems (client-side) | ToggleTask (client-side)
EnableAllTasks (client-side) |
Context Menu Routines:
clickContextMenuItem (client-side) | showContextMenu (client-side)
closeContextMenu (client-side) | toggleContextMenuHighlight (client-side)
General Utility Routines:
AddClass (client-side) | nGetYear (client-side)
BDHALsizeButtons (client-side) | RemoveClass (client-side)
BDHALsizeSelects (client-side) | ReplaceClass (client-side)
bGetPubRequired (client-side) | SetPubRequired (client-side)
bHasClass (client-side) | sFormatString (client-side)
bIsDate (client-side) | sFormatString (server-side)
dtGetDate (client-side) | sGetFormattedDate (client-side)
GetSiteConfigField (server-side) | sRelURL2AbsURL (server-side)
nGetDay (client-side) | xmlGetResource (server-side)
nGetMonth (client-side) | xmlGetSiteTermsValue (client-side)
Security Routines:
bDenySecurityForTask (server-side) |
bDenySecurityForElement (server-side) |
bInAdministratorGroup (server-side) |
CheckSecurityForModule (server-side) |
FinishWithXMLSecurityErrors (server-side) |
State Saving Routines:
ClearTemp (client-side) | dSetServerState (client-side)
dClearServerState (client-side) | GetTemp (client-side)
dGetServerState (client-side) | SetTemp (client-side)
Data Retrieval Routines:
oGetADOCommand (server-side) | xmlGetXMLFromQuery (server-side)
oGetADOConnection (server-side) | xmlGetXMLFromQueryEx (server-side)
rsGetRecordset (server-side) |
XML Conversion Routines:
dDictFromXML (client-side) | xmlMergeGroups2 (client-side)
dDictFromXML (server-side) | xmlMergeGroups2 (server-side)
sMergeGroups2 (client-side) | xmlMergeGroups3 (client-side)
sMergeGroups2 (server-side) | xmlMergeGroups3 (server-side)
sMergeGroups3 (client-side) | xmlMergeGroupsByID2 (client-side)
sMergeGroups3 (server-side) | xmlMergeGroupsByID3 (client-side)
xmlGetXMLFromRS (server-side) | xmlXMLFromDict (client-side)
xmlGetXMLFromRSEx (server-side) | xmlXMLFromDict (server-side)
XML DOM Helper Routines:
AddCDATANode (client-side) | AddItemNode (server-side)
AddCDATANode (server-side) | AddWarningNode (server-side)
AddErrorNode (server-side) | xmlGetXMLDOMDoc (client-side)
AddItemNode (client-side) | xmlGetXMLDOMDoc (server-side)
XMLHTTP Routines:
dGetRequestXMLAsDict (server-side) | xmlPostFormViaXML (client-side)
xmlGetRequestXML (server-side) | xmlXMLFromForm (client-side)
Error Routines:
SetError (server-side) | sGetScriptError (server-side)
sGetADOError (server-side) | sGetXMLError (client-side)
sGetASPError (server-side) | sGetXMLError (server-side)
sGetErrorById (server-side) | ShowErrorDlg (client-side)
sGetScriptError (client-side) | ShowXMLNodeErrors (client-side)
International Routines:
ChangeControlStylesheet (client-side) | xmlGetCurrencies (server-side)
InsertControlStylesheet (server-side) | xmlGetLanguages (server-side)


Business Desk Source Code

Source code for all modules used by a particular Web site is available within the folder (and its sub-folders) associated with the virtual directory of that instance of Business Desk. This source code can serve as a useful model when building a new Business Desk module.

The following table correlates folders within the Business Desk virtual root folder with the various modules available in Business Desk, and with other code that constitutes the Business Desk Framework. As a developer of a new Business Desk module, you may find it useful to analyze which existing modules contain functionality most similar to what you need to construct, and then "steal" code from those modules.

Business Desk Folders Module (Category), or Contains�
\analysis\
 Reports (Analysis)

Completed Reports (Analysis)

\application\
 Data Codes (Orders)
\assets\
 Contains numerous GIF files used in the modules for task buttons, required and invalid icons, and so on.

View the file icon_inventory.htm for a nicely arranged summary of the contents.

\AuthFiles\
 Contains files related to the Authentication Service – not to relevant to Business Desk module development.
\Catalogs\
 Catalog Designer (Catalogs) – Designer sub-folder

Catalog Editor (Catalogs) – Editor sub-folder

\catalogsets\
 Catalog Sets (Catalogs)
\common\
 Contains the shared files used from multiple modules in different folders.
\config\
 Contains the Business Desk configuration files. This includes the master configuration file and the various module configuration files.
\docs\
 Contains the files that constitute the Business Desk help system. Individual help topics are in the "htm" sub-folder.
\exprarch\
 Contains files required for the proper operation of the ExpressionBuilder and QueryBuilder HTCs.
\include\
 Contains various Business Desk global include files intended for use in different kinds of module files. For more information about the files in this folder, see Include Files.

Most module include files should reside within the folder associated with the module.

\marketing\
 Campaign Expressions (Campaigns)

Campaign Manager (Campaigns)

List Manager (Campaigns)

Target Group (Campaigns)

Reference Tables (Campaigns)

\orders\
 Basket Manager (Orders)

Order Status (Orders)

\organizations\
 Organizations (Users)
\productionrefresh\
 Publish (Catalogs)

Publish Transactions (Orders)

Publish Campaigns (Campaigns)

\Profiles\
 Profile Designer (Users)
\shipping\
 Shipping Methods (Orders)
\tax\
 Tax Rates (Orders)
\users\
 Users (Users)

The following table correlates folders within the Widgets folder within the Commerce Server installation folder with the various HTML Components (HTCs) available for use in Business Desk.

Note

  • You cannot change the name of the Widgets virtual directory in a Commerce Server installation.
HTC (Widget) Folders Contains source code for�
\editHTC\
 DynamicTable HTC

EditField HTC (and the HTCs for the different types)

EditSheet HTC

ListEditor HTC

\exprbldrHTC\
 ExpressionBuilder HTC

QueryBuilder HTC

\listHTC\
 ListBox HTC

ListSheet HTC

TreeView HTC

\OWC\
 Executable for the Office Web Controls (OWC).
\profile\
 ProfileDesigner HTC - not documented and not intended for use by third parties.


Automating Module Installation

The Commerce Server SDK includes a COM object designed to help automate the installation of new Business Desk modules. This may be useful in situations where a new module needs to be added to a number of different instances of Business Desk. The source files for this COM object are located in the folder "<install folder>\SDK\Samples\Management\Business Desk Installer".

The BizDeskModuleInstall object is capable of being called from both C/C++ code, and automation clients such as Visual Basic.

Note that this object relies on the SiteConfig object to determine the list of applications installed in a site.

The BizDeskModuleInstall object is externally creatable. Create this object using the ProgID CommerceSDK.BizDeskModuleInstall.

The Type Library for this object, once built, will be: Microsoft Commerce Server 2002 SDK BizDesk Module Install Type Library. The DLL name is: BizDeskModuleInstall.dll.

The BizDeskModuleInstall object implements the following four methods:

Init, IsBizDesk, AddModule, RemoveModule

To see a sample of how these methods can be invoked, see the Sample Code section.

These methods can return a number of different custom COM errors, which can be found in the Error Table section at the end of this topic.

Init Method

Use this method to initialize the state of the BizDeskModuleInstall object, establishing the instance of the Business Desk upon which the other methods will operate.

Definition

HRESULT Init(
  BSTR bstrIisVDirName
)

Parameters

bstrIisVDirName
[in] A BSTR containing the name of the virtual directory in Internet Information Services (IIS) that corresponds to the application selected by the user.

IsBizDesk Method

Use this method to determine whether or not the selected IIS application is a Business Desk application. This is accomplished by determining whether the "./config/bizdesk.xml" file exists in the application.

Definition

HRESULT IsBizDesk(
  VARIANT* bRetVal
);

Parameters

bRetVal
[out, retval] The address of a Boolean used to return a value indicating whether or not the IIS virtual directory specified in the Init method contains an instance of the Business Desk. A value of True indicates that it is an instance of the Business Desk. A value of False indicates that it is not an instance of Business Desk.

AddModule Method

Use this method to add a new Business Desk module to the instance of the Business Desk specified in the call to the Init method.

Definition

HRESULT AddModule(
  BSTR bstrCategory,
  BSTR bstrConfigPath,
  VARIANT bOverwrite,
  VARIANT* bSuccess
);

Parameters

bstrCategory
[in] A BSTR containing the name of the category into which the new module should be installed.
bstrConfigPath
[in] A BSTR containing the full path to the module configuration file.
bOverwrite
[in] A Boolean value indicating whether or not to overwrite an existing module configuration file. A value of True indicates that any existing module configuration file will be overwritten. A value of False prevents any overwriting from occurring.

If an existing module configuration file is overwritten, a backup of that file will be placed in a _backup folder within the config folder.

bSuccess
[out, retval] The address of a Boolean used to return a value indicating whether the method was successful. A value of True indicates success. A value of False indicates a failure, in which case the HRESULT will contain further details.

RemoveModule Method

Use this method to remove the specified module from the instance of the Business Desk specified in the call to the Init method.

Definition

HRESULT RemoveModule(
  BSTR bstrCategory,
  BSTR bstrModulePath,
  VARIANT* bSuccess
);

Parameters

bstrCategory
[in] A BSTR containing the name of the category from which the specified module is to be removed.

If the category is empty after removing the module, the category will also be removed.

bstrModulePath
[in] A BSTR containing the path of the folder containing the files associated with the module being removed. The path must be specified relative to the "config" folder.
bSuccess
[out, retval] The address of a Boolean used to return a value indicating whether the method was successful. A value of True indicates success. A value of False indicates a failure, in which case the HRESULT will contain further details.

Sample Code

The following sample code shows how the methods of the BizDeskModuleInstall object can be invoked. This sample shows the invocation of the AddModule method, with the invocation of the RemoveModule method commented out.

Dim bRet As Boolean
Dim oBizInstall As Object
set oBizInstall = CreateObject ("CommerceSDK.BizDeskModuleInstall")
oBizInstall.Init "adbizdesk"
If oBizInstall.IsBizDesk Then
    bRet = oBizInstall.AddModule("MyCategory", _
                                 "d:\temp\module.xml", True)
    'bRet = oBizInstall.RemoveModule("MyCategory", "module.xml")
End If

Error Table

The following table describes the errors that can be returned from the methods of the BizDeskModuleInstall object.

Constant (32-bit value) | Description
S_OK (00000000) | Returned when a method completes successfully.
E_FILE_EXISTS (80041001) | Returned when the module configuration file already exists in the specified location.
E_NOT_CS_APPLICATION (80041002) | Returned when the specified IIS Application is not a Commerce Server application.
E_FILE_NOT_FOUND (80041003) | Returned when the module configuration file cannot be found.
E_APP_NOT_FOUND (80041004) | Returned with the specified IIS Virtual Directory cannot be found.
E_UNHANDLED (80041005) | Returned when an unhandled error occurs.
E_INVALID_MODULE (80041006) | Returned when the specified module does not exist.
E_INIT_MOD_INSTALL_FIRST (80041007) | Returned if the IsBizDesk, AddModule, or RemoveModule methods are called before the Init method is called.
E_INVALID_CATEGORY_FOR_MODULE (80041008) | Returned when an invalid category is specified.
E_IMPROPER_CS_APP (80041009) | Returned when a configuration inconsistency is detected between Commerce Server and IIS. The BizDeskModuleInstall object must be run locally on the same machine where the physical Business Desk files exist.


Customizing Style Sheets

Cascading style sheets, found in files with .css extensions, allow the appearance of whole classes of visual HTML elements to be controlled from one central location. This includes, for example, the background colors and fonts used for various classes of elements.

Commerce Server Business Desk makes extensive use of two such style sheet files: Include\bizdesk.css and Include\navtree.css. The former is used to control the look of the content pane, and the latter is used to control the look of the navigation pane. Together, these two style sheets define a Business Desk "theme". Different themes can be chosen on the home page of Business Desk.

Microsoft Commerce Server 2002 comes with two themes defined: the default theme and a high-contrast theme, the latter of which is provided to improve accessibility. Additional themes can be added using the instructions provided in this topic.

The files Include\bizdesk.css and Include\navtree.css are interfaces to style sheet files in the Include\styles folder. The default theme is implemented by the files Default_bizdesk.css and Default_navtree.css, and the high-contrast theme is implemented by the files Hicont_bizdesk.css and Hicont_navtree.css.

You can change the appearance of Business Desk in two ways. The first way, which is recommended only for very minor changes, is to make modifications to the existing style sheet files for either the default or high-contrast themes.

The second way is to introduce an entirely new theme. You can create new themes by using following the steps, which are also included as comments in the ASP file Welcome.asp:

  1. Make copies of the pair of style sheet files that will provide the best starting point for developing your own theme. Typically, this will be the files Default_bizdesk.css and Default_navtree.css. The copies must be named using a common prefix that you choose. For example, Graytheme_bizdesk.css and Graytheme_navtree.css, for a grayscale theme.
  2. Modify the styles in the new files to your liking. It is probably best to change only colors, borders, and fonts.
  3. Add a new option element in the appropriate location in the ASP file Welcome.asp (look for where these instructions are repeated in that file). The value of the value attribute must be set to the file name prefix you have chosen; to continue the earlier example, you would set the value attribute to graytheme_. The data for the option element should be set to the theme name you want displayed in the drop-down control on the home page, perhaps "Shades of Gray."

For more information about the styles defined in the style sheet files, see Style Sheet Reference.

Important

  • Extreme care should be exercised when changing styles because undesired effects might occur in other areas of Business Desk.


Integrating Custom Resources

A Microsoft Commerce Server 2002 resource is a software package that provides functionality to the applications in a Commerce Server site, and that needs to expose one or more configuration options to a system administrator. Given the latter requirement, the most obvious choice for how to expose the configuration options is through Commerce Server Manager. This section describes how to integrate a custom resource that you develop into Commerce Server Manager so that it can be administered in the same way that other Commerce Server resources are administered.

Another important aspect of the integration process is the enabling of easy deployment of the particular configuration settings using Commerce Server Site Packager. Depending on the complexity of the configuration data, and on decisions regarding where this configuration data is maintained, the deployment aspects of integration range from effortless to the implementation of a particular Component Object Model (COM) interface.

This section contains:

  • Adding a Custom Resource. Describes the steps required to configure the Administration database so that the configuration data associated with a custom resource can be maintained within it.
  • Levels of Integration for a Custom Resource. Describes the different levels of integration that are available to developers of custom resources.
  • Other Sources of Information About Microsoft Management Console. Provides information about where to learn more about the Microsoft Management Console (MMC), including more information about how to build MMC snap-in extensions.


Adding a Custom Resource

The process of adding a custom resource, and its corresponding configuration values, to the Administration database is a two-step process. First, the schema for the custom resource and its properties must be defined. Second, an instance of the custom resource and its particular property values must be added.

The first step consists of adding rows to the schema tables: SystemProps and ExtendedProps. The second step consists of adding corresponding rows to the three resource instance tables: ResourceProps, Resources, and SiteResources.

This section provides details regarding how these rows should be added.

This section contains:

  • Modifying the Resource Schema Tables. Describes how the resource schema tables should be modified as the first step in adding a custom resource and its properties to the Administration database.
  • Modifying the Resource Instance Tables. Describes how the resource instance tables should be modified as the second step in adding a custom resource and its properties to the Administration database.


Modifying the Resource Schema Tables

When a custom resource is added for management within Commerce Server Manager it is necessary to add new rows to the SystemProps and ExtendedProps tables in the Administration database (MSCS_Admin). New rows in the SystemProps table correspond to new resources. New rows in the ExtendedProps table correspond to properties associated with the new resources.

For more information about the columns of the SystemProps and ExtendedProps tables, see SystemProps Table and ExtendedProps Table, respectively.

The Site Status sample in the Commerce Server 2002 Software Development Kit (SDK) includes a pair of files that show one way to add a row representing a new resource to the SystemProps table. The file SiteStatusInit.sql includes the following SQL command, which inserts a new row and initializes the required column values (lines wrapped here for readability):

IF NOT EXISTS(SELECT s_ClassName FROM SystemProps
              WHERE s_ClassName = 'MSCS_SDKSiteStatus')
insert into SystemProps (s_Name, s_ClassName,
                         s_ResourceType, f_ResourceFlags,
                         f_PupFlags, s_ProgIDSnapin)
                  VALUES('', 'MSCS_SDKSiteStatus',
                         'SDKSiteStatus', 6,
                         0, 'CommerceSDK.SiteStatus')

The file InstallSiteStatus.vbs provides an example of one way to run the previous SQL command:

Dim WshShell
Set WshShell = Wscript.CreateObject("Wscript.Shell")
sCmdLine = "osql /S (local) /U sa /P /d MSCS_Admin /i SiteStatusInit.sql"
WshShell.Run sCmdLine, 1, True

The file SiteStatusInit.sql in the Site Status sample in the SDK also includes several SQL commands for adding property schema information to the ExtendedProps table. The following code excerpt shows one of the three properties added in this file (lines wrapped here for readability):

IF NOT EXISTS(SELECT s_PropertyName FROM ExtendedProps
              WHERE s_PropertyName = 's_AppName')
insert into ExtendedProps VALUES ('SDKSiteStatus', 's_AppName',
                                  0, 1, 0,
                                  'SDK SiteStatus Application Name',
                                  8200, '', 's_AppName')


Modifying the Resource Instance Tables

When a new resource is being added for management within Commerce Server Manager it is necessary to add new rows to the ResourceProps, Resources, and SiteResources tables in the Administration database (MSCS_Admin). Taken together, new rows in these tables define a particular instance of a new resource, allowing Commerce Server Manager to display the new resource in the correct location within the scope-pane hierarchy.

These three tables should only be modified using the administration objects GlobalConfig and SiteConfig. Do not modify them directly in SQL Server Enterprise Manager or using SQL scripts.

For more information about the columns of the ResourceProps, Resources, and SiteResources tables, see ResourceProps Table, Resources Table, and SiteResources Table, respectively.

Depending on whether the new resource is a global resource or a site resource, a different mechanism is used to migrate values already added to the SystemProps and ExtendedProps tables into these three tables.

The Site Status sample in the Commerce Server 2002 Software Development Kit (SDK) includes a file named InstallSiteStatus.vbs. This file provides an example of how the SiteConfig object is used to migrate the table values, resulting in a new resource (and corresponding snap-in extension) appearing within the Site Resources folder of the named site ("Retail" in this example). The following code, modified slightly from how it appears in the file InstallSiteStatus.vbs, shows how to use the SiteConfig object in this way:

SSite5Name = "Retail"
sResourceName = "Site Open/Close Applications"

' Initialize the SiteConfig to the selected site.
Dim oSiteCfg
Set oSiteCfg = CreateObject("Commerce.SiteConfig")
oSiteCfg.Initialize sSiteName

' Add the SiteStatus resource to the resource tables.
' Note: The string "MSCS_SDKSiteStatus" must match the
'       corresponding s_ClassName value in the SystemProps table.
oSiteCfg.CreateComponentConfig sResourceName, "MSCS_SDKSiteStatus"
oSiteCfg.Fields(sResourceName).Value.Fields("s_Description") = _
                                            "SDK Site Status Resource"
oSiteCfg.SaveConfig
Set oSiteCfg = Nothing

To add a new resource to the Global Resources within Commerce Server Manager, you only need to change the example as follows (significant changes are shown in bold font):

sResourceName = "Site Open/Close Applications"

' Initialize the GlobalConfig to the selected site.
Dim oGlobalCfg
Set oGlobalCfg = CreateObject("Commerce.GlobalConfig")
oGlobalCfg.Initialize  ' no site name

' Add the SiteStatus resource to the resource tables.
' Note: The string "MSCS_SDKSiteStatus" must match the
'       corresponding s_ClassName value in the SystemProps table.
oGlobalCfg.CreateServiceConfig sResourceName, "MSCS_SDKSiteStatus"
oGlobalCfg.Fields(sResourceName).Value.Fields("s_Description") = \
                                            "SDK Site Status Resource"
oGlobalCfg.SaveConfig
Set oGlobalCfg = Nothing


Levels of Integration for a Custom Resource

There are three different levels of integration at which a custom resource can engage Commerce Server Manager. These levels are distinguished by a trade-off between the development effort and the level of customization. The three levels of integration are as follows, shown in order of least development effort to greatest development effort:

  1. A generic resource, which can be implemented simply by adding appropriate rows to certain tables within the Administration database.
  2. A generic resource with a custom user interface. The user interface is implemented as a Microsoft Management Console (MMC) snap-in extension that extends Commerce Server Manager.
  3. A resource with a custom user interface, which stores its configuration values somewhere other than the Administration database.

When using the first two levels of integration, the configuration values for your resource are stored in the Administration database, and even using the third level, some of your configuration values may be stored in the Administration database. If you store the configuration values for your resource in the Administration database, and your Web pages need to access one or more of these values frequently, you should consider caching a copy of these values in memory.

The SiteConfig and GlobalConfig objects should be used to access configuration values stored in the Administration database. You cannot store these objects at the application scope because they use apartment threading. You should copy the frequently accessed values into a Dictionary object, and make the Dictionary object accessible through the IIS Application object.

This section discusses further details of these three levels of integration.

This section contains:

  • Using the Generic Properties Dialog Box. Provides additional information about the integration approach that requires the least development effort.
  • Integrating a Custom Snap-in Extension. Provides additional information about an integration approach that offers a customized user interface while preserving some of the ease-of-use advantages of generic resource integration.
  • Packaging Other Data. Provides additional information about the integration approach that allows configuration data to be stored somewhere other than the Administration database, yet still allows the resource to use Commerce Server Site Packager.


Using the Generic Properties Dialog Box

A generic resource, which can be implemented simply by adding appropriate rows to certain tables within the Administration database, has the following characteristics:

  • The configuration data for a generic resource can be changed using the Generic Resource dialog box in Commerce Server Manager. This dialog box presents a generic interface through which the configuration values of a generic resource can be changed. This eliminates the need to develop a user interface for configuring a new resource.
  • The configuration data is maintained within this database, and consequently, it is automatically packaged for deployment by Commerce Server Site Packager.
  • The configuration data can also be accessed and altered programmatically using the Commerce Server administration objects GlobalConfig, SiteConfig, and SiteConfigReadOnly.

This level of integration involves the least development effort, consisting of adding the rows to appropriate tables in the Administration database. For more information about how to add these rows, see Adding a Custom Resource.


Integrating a Custom Snap-in Extension

A resource with a custom user interface, which requires the development of a Microsoft Management Console (MMC) snap-in extension, has the following characteristics:

  • The configuration data for this level of integration is administered using a custom MMC snap-in extension that extends the MMC node corresponding to the new resource.
  • The configuration data is still maintained in the Administration database, preserving the ease of deployment advantages that that choice offers.
  • The configuration data can also be accessed and altered programmatically using the Commerce Server administration objects: GlobalConfig, SiteConfig, and SiteConfigReadOnly. For more information about these objects, see GlobalConfig Object, SiteConfig Object, and SiteConfigReadOnly Object, respectively.
  • The MMC snap-in extension should only use the Commerce Server administration objects, GlobalConfig, SiteConfig, and SiteConfigReadOnly, to display and change the configuration data in response to user interaction.
  • The ProgID of the snap-in extension is stored in the s_ProgIDSnapIn column of the Resources table in the Administration database. If the value of this column in the row for your resource is incorrect the Generic Resource dialog box may be invoked instead of your snap-in extension.

This section provides additional details about integrating a custom MMC snap-in extension into Commerce Server Manager.

This section contains:

  • Commerce Server Manager NodeType GUIDs. Provides details regarding specific globally unique identifiers (GUID) needed to extend the Commerce Server Manager snap-in.
  • System Registry Modifications. Describes the system registry modifications required to extend the Commerce Server Manager snap-in.
  • Working with the Clipboard. Describes additional information about Commerce Server Manager snap-in data provided to the new snap-in extension using Microsoft Clipboard.


Commerce Server Manager NodeType GUIDs

The file cssnapin.h defines the NodeType globally unique identifiers (GUID) used by the Microsoft Management Console (MMC) snap-in. They are also shown in the following table with their corresponding C++ constants and their data value.

The NodeType GUIDs in the first two rows are most significant in terms integrating an MMC snap-in extension associated with a new resource. If the new resource is global, the group resources GUID is required (first row), and if the new resource is associated with a specific site, the site resources GUID is required. The other NodeType GUIDs shown in the table are not significant in this context.

NodeType GUID Constants and Values | Description
CSnapInGUID_NODETYPE_Group_Resources 1503A832-6945-11D2-AFF4-00c04F8670E4 | Microsoft Commerce Server 2002 Group Resources Extend this node to add a new global resource.
CSnapInGUID_NODETYPE_Resource 1503A834-6945-11D2-AFF4-00c04F8670E4 | Microsoft Commerce Server 2002 Resource Extend this node under the appropriate site to add a new site resource.
CSnapInGUID_NODETYPE_Root 1503A830-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2002
CSnapInGUID_NODETYPE_Group 1503A831-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2002 Groups
CSnapInGUID_NODETYPE_Sites 1503A833-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2002 Sites
CSnapInGUID_NODETYPE_Site 1503A835-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2002 Site
CSnapInGUID_NODETYPE_Site_Resources 1503A836-6945-11D2-AFF4-00C04F8670E4 | Microsoft Commerce Server 2002 Site Resources

The file cssnapin.h also defines the following NodeType GUIDs:

Constant: CSnapInGUID_NODETYPE_Addresses
GUID: 1503A837-6945-11D2-AFF4-00C04F8670E4
Constant: CSnapInGUID_NODETYPE_Address
GUID: 1503A838-6945-11D2-AFF4-00C04F8670E4
Constant: CSnapInGUID_NODETYPE_AddrItem
GUID: 1503A839-6945-11D2-AFF4-00C04F8670E4
Constant: CResourceNodeItemGUID_NODETYPE
GUID: FAEBE804-5362-4F79-8353-34E1D1DC4D11
Constant: CWebServerNodeItemGUID_NODETYPE
GUID: 2CB5E907-F79A-4b11-AD24-9E3808B7B387
Constant: CSnapInGUID_NODETYPE_Resource_NNSE
GUID: A3DF131F-2075-463E-B8DA-74B31365161E


System Registry Modifications

When adding Microsoft Management Console (MMC) extension snap-ins it is necessary to make certain system registry modifications. These include the normal Component Object Model (COM) entries in the HKEY_CLASSES_ROOT registry key, as well as the MMC-specific entries in the HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\MMC\\NodeTypes and ...\\MMC\\SnapIns registry keys.

If the new extension snap-in will have child nodes exposed in the scope pane, it is also necessary to add the GUID corresponding to the new extension snap-in to the Extension/NameSpace key of the appropriate NodeType key in the system registry.

Depending on whether the new extension snap-in corresponds to a global resource or a site resource, it will be necessary to modify either the "Microsoft Commerce Server 2002 Enterprise Edition Group Resources" or the "Microsoft Commerce Server 2002 Enterprise Edition Resource" NodeType registry entry. For more information about the corresponding NodeType GUIDs, see the first two rows in the table in Commerce Server Manager NodeType GUIDs.

The Site Status sample in the Commerce Server 2002 Software Development Kit (SDK) performs these registry modifications in the file Registry.cpp, and uses some data type information provided in the file Extend.h. The following code excerpt shows the source code that performs these modifications. The excerpt shows a pre-initialized array of EXTENDER_NODE structures, defined in the file Extend.h, and designed to perform a name space extension of the site resources, due to the GUID supplied for the guidNode structure member (unique aspect shown in bold font). To make the same system registry extension for an extension snap-in being added as a global resource, the first component of that GUID would have to be set to 0x1503a832. (The array in the following code excerpt contains one actual entry and one dummy entry, the latter of which is used for loop termination.)

// List all of the nodes that we extend.
EXTENDER_NODE _NodeExtensions[] = {
    {
        // Extension type:
        NameSpaceExtension,
        // "Microsoft Commerce Server 4.0 Site Resources" guid:
        {0x1503a834, 0x6945, 0x11d2,
            { 0xaf, 0xf4, 0x0, 0xc0, 0x4f, 0x86, 0x70, 0xe4 } },
        // CLSID_COpenCloseExtension guid:
        {0xa5ce2b5a, 0x2259, 0x485d,
            { 0x9c, 0x11, 0xa0, 0x20, 0xb7, 0xc3, 0x8e, 0x2f } },
        // Description:
        _T("Commerce 2000 Resource Extension Open/Close sample")
    },

    // Dummy entry for loop termination logic.
    {DummyExtension, NULL, NULL, NULL}
};

The following excerpt shows the for loop that processes the array shown in the previous excerpt. It adds the GUID and description stored in the guidExtension and szDescription structure members as a key/value pair in the Extensions/NameSpace key of the MMC/NodeType entry corresponding to the GUID stored in the guidNode structure member.

Note that the loop terminates when a NULL description is found, as is the case in the last element in the array.

    // register each of the node extensions
    for (pNodeExtension = &(_NodeExtensions[0]) ;
         *pNodeExtension->szDescription ;
         pNodeExtension++)
    {
        hr = StringFromCLSID(pNodeExtension->guidNode, &wszExtendCLSID);
        _tcscpy(szKeyBuf, _T("SOFTWARE\\Microsoft\\MMC\\NodeTypes\\"));
        _tcscat(szKeyBuf, wszExtendCLSID);

        switch (pNodeExtension->eType) {
        case NameSpaceExtension:
            _tcscat(szKeyBuf, _T("\\Extensions\\NameSpace"));
            break;
        default:
            break;
        }

        // Create and open key and subkey.
        long lResult = RegCreateKeyEx(HKEY_LOCAL_MACHINE ,
            szKeyBuf,
            0, NULL, REG_OPTION_NON_VOLATILE,
            KEY_ALL_ACCESS, NULL,
            &hKey, NULL) ;

        if (lResult != ERROR_SUCCESS)
        {
            return FALSE ;
        }

        hr = StringFromCLSID(pNodeExtension->guidExtension,
                             &wszNodeCLSID);
        assert(SUCCEEDED(hr));

        // Set the Value.
        if (pNodeExtension->szDescription != NULL)
        {
            RegSetValueEx(hKey, wszNodeCLSID, 0, REG_SZ,
                          (BYTE *)pNodeExtension->szDescription,
                          (_tcslen(pNodeExtension->szDescription)+1)
                                                     *sizeof(_TCHAR));
        }

        RegCloseKey(hKey) ;

        CoTaskMemFree(wszExtendCLSID);
        CoTaskMemFree(wszNodeCLSID);
    }


Working with the Clipboard

Certain Clipboard formats must be supported by Microsoft Management Console (MMC) snap-ins so that they can pass data back and forth with the MMC framework. The Site Status MMC Extension Snap-In sample in the Commerce Server 2002 Software Development Kit (SDK) illustrates the Clipboard formats that must be supported. This sample defines the required Clipboard formats within four files: compdata.h, compdata.cpp, dataobj.h, and dataobj.cpp. The header files contain the definitions of the formats, and the source files show the registration of those formats. Search these files for the string "clipboard" to find the pertinent code.

The following code excerpt shows how to retrieve the name of the site associated with the sample extension snap-in from the Clipboard and place it into the bstrSiteName variable.

    // Get the site name for this resource from
    // the clipboard "CCF_MSCSAPPNAME" in global memory
    stgmedium.hGlobal = GlobalAlloc(0, sizeof(BSTR));
    if (NULL == stgmedium.hGlobal)
        return GetLastError();
    hr = lpDataObject->GetDataHere(&formatetc, &stgmedium);
    if (!FAILED(hr))
        bstrSiteName = *((LPCOLESTR *)stgmedium.hGlobal);
    GlobalFree(stgmedium.hGlobal);


Packaging Other Data

A resource that has a custom user interface and stores its configuration data somewhere other than the Administration database has the following characteristics:

  • The configuration data is stored somewhere other than the Commerce Server Administration database, such as the system registry, an initialization (.ini) file, or perhaps in a different database.
  • In order to use Commerce Server Site Packager, new resources that are integrated at this level must include a Component Object Model (COM) object that implements the IPuP interface.
  • The configuration data must be administered using a custom Microsoft Management Console (MMC) snap-in extension. This is because the configuration data is not stored in the Administration database, so it is not possible to use the Generic Resource dialog box.
  • Because the configuration data is not stored in the Administration database, it cannot be accessed and altered programmatically using the Commerce Server administration objects GlobalConfig, SiteConfig, and SiteConfigReadOnly. For more information about these objects, see GlobalConfig Object, SiteConfig Object, and SiteConfigReadOnly Object, respectively. You must develop some other solution for programmatic access to the configuration data.
  • It is possible to provide a mixed solution, where some relatively simple configuration data is stored in the Administration database, allowing access through the Commerce Server administration objects, and where other more complex data is stored in other databases or facilities. Many of the resources included with Commerce Server work this way.

This section provides additional details about implementing the IPuP interface, allowing the resource to pack it own data for deployment.

This section contains:

  • Exporting Data to the Package. Provides additional details about the process of exporting data into a site package using Commerce Server Site Packager.
  • Importing Data from the Package. Provides additional details about the process of importing data from a site package.
  • Using the GenericPuP Object. Provides information about a general-purpose object that implements the IPuP interface, which can be used in certain circumstances.


Exporting Data to the Package

You can develop a custom resource in such a way that it can place arbitrary data, in the form of one or more files, in a site package and have those files unpacked on a different computer. In order for this arbitrary set of files to be placed in a site package, a custom resource must include a Component Object Model (COM) object that implements the Export method of the IPuP interface. Commerce Server Site Packager calls this method, providing the name of a temporary file or folder where the custom resource must place the file(s) to be packaged. Once the Export method returns, Commerce Server Site Packager will add the file (or files) to the package.

The ProgID of the object that implements the IPuP interface must be placed into the s_ProgidSnapIn column of the SystemProps table in the Administration database (the ProgID is also added to the s_ProgIDSnapIn column of the Resources table when the SiteConfig object is used to migrate configuration values). When the Commerce Server Site Packager encounters this ProgID in the course of packaging the site, it will instantiate the corresponding object and call the Export method of its IPuP interface.

For more information about the Export method, see IPuP::Export.


Importing Data from the Package

You can develop a custom resource in such a way that it can place arbitrary data, in the form of one or more files, in a site package and have those files unpacked on a different computer. In order for this arbitrary set of files to be retrieved from a site package, a custom resource must include a Component Object Model (COM) object that implements the Import method of the IPuP interface. Commerce Server Site Packager calls this method, providing the name of a temporary file or folder where the Commerce Server Site Packager has placed the file(s) to be unpacked. The Import method must do something with this file or files before returning, such as moving them to another location or moving their contents into a database. Once the Import method returns, Commerce Server Site Packager will delete the file (or files) from the temporary location.

The ProgID of the object that implements the IPuP interface must be placed into the s_ProgidSnapIn column of the SystemProps table in the Administration database (the ProgID is also added to the s_ProgIDSnapIn column of the Resources table when the SiteConfig object is used to migrate configuration values). When Commerce Server Site Packager encounters this ProgID in the course of unpacking the site, it will instantiate the corresponding object and call the Import method of its IPuP interface.

For more information about the Import method, see IPuP::Import.

If the custom resource being unpacked is a site-level reference to a global resource, the Commerce Server Site Packager will call the CreateGroupResource method of the same IPuP interface before calling the Import method. This will provide the custom resource with the opportunity to create the global resource and return its name so that the site-level reference can refer to it. For more information about the CreateGroupResource method, see IPuP::CreateGroupResource.


Using the GenericPuP Object

The GenericPuP object is one of several objects included with Commerce Server that implement the IPuP interface. These objects are used to assist in packaging the existing Commerce Server resources. Specifically, the GenericPuP object is used to package the data associated with three resources: Campaigns, Transactions, and Transaction Config.

These three resources have generic requirements in terms of how their data gets packaged, and if your custom resource has similar, generic requirements, you may be able to use the GenericPuP object instead of developing a new object that implements the IPuP interface.

Note

  • The SDK sample "PuP Resource" in the SDK\Samples\Management folder is actually a version of the GenericPuP object. You might find it useful to study the source code or to modify it for your own purposes.

The GenericPuP object is designed to be able to package and unpack custom tables and data in a single SQL Server database. Several parameters control the execution of the GenericPuP object, including the names of the tables to package, and the names of SQL schema scripts to be executed when unpacking or deleting the custom data. These parameters exist as database entries in the Administration database. The remainder of this topic provides details about those entries and how they can be established.

This topic contains:

  • GenericPuP Database Entries
  • Parameter Usage During Processing
  • Loading GenericPuP SQL Scripts

GenericPuP Database Entries

In order to specify the use of the GenericPuP object, you must assign its ProgID (Commerce.GenericPup) to the s_ProgIDPUP column of appropriate row in the Resources table of the Administration database. Then you must establish the remaining database entries that will control the operation of the GenericPuP object for a particular resource: the Connection String, and the GenericPuP parameters.

Connection String

When the GenericPuP object is invoked to export or import data for a custom resource, it uses the passed resource name to look for the specific connection string in the set of properties associated with that resource. This connection string uses a pre-defined naming convention so that the GenericPuP object can find the connection string amongst the other properties associated with the custom resource. The syntax for the connection string propery name is: "connstr_db_<ResourceName>" where <ResourceName> is the name of the resource for which it is being invoked. There can be only one such connection string, so the GenericPuP object can only package or unpack data from one database.

Note

  • If you look in the s_PropertyName column of the ResourceProps table in the Administration database, you will see the three connection strings connstr_db_Transactions, connstr_db_TransactionConfig, and connstr_db_Campaigns, corresponding to the three standard resources that use the GenericPuP object.

GenericPuP Parameters

After retrieving the connection string, the GenericPuP object will retrieve its parameters from the s_PupParam1, s_PupParam2, and s_PupParam3 columns of the row for the corresponding resource in the Resources table of the Administration database. These three parameters contain the following information:

s_PUPParam1
Contains a comma-delimited list of names of the tables to be packaged and unpacked for the resource.

For example, the table list for the Transactions resource is "TransDimension,TransCategory".

s_PUPParam2
Contains a comma-delimited list of the names of the SQL schema scripts to execute when importing the resource. These scripts are used to create the proper schema prior to importing the data.

For example, the schema script list for the Transaction Config resource is "AppConfig,TaxAndShipping".

s_PUPParam3
Contains a comma-delimited list of the names of the SQL scripts to execute when deleting the resource. If the Delete method implemented by the GenericPuP object is invoked, it will execute these scripts to clean up the database tables associated with the corresponding resource.

For example, the delete script list for the Campaigns resource contains the single script name: "SchemaDrop".

The scripts associated with the parameters s_PUPParam2 and s_PUPParam3 exist in the txt_script column of the pupdbscripts table in the Administration database. The u_scriptname column contains the name of the script as it appears in the list specified by this parameter, and the other two columns in that table, iSiteID and iResourceID, exist to prevent script name clashes between different resources.

The SiteConfig object implements three methods, GetSQLScript, PutSQLScript, and DeleteSQLScript, for managing the scripts stored in the pupdbscripts table. For more information about these three methods, see SiteConfig.GetSQLScript, SiteConfig.PutSQLScript, and SiteConfig.DeleteSQLScript, respectively.

For examples of how to set up your resource configuration to use the GenericPup object see the file SiteCreate.vbs in the \SDK\Samples\Sitecreate folder of your Commerce Server installation directory. Follow the same steps as used by the three resources in that file that use the GenericPup object: Campaigns, Transactions, and Transaction Config.

If you are going to be deal with multiple files via the Import and Export APIs of the IPup object you need to set the f_PupFlags flag on the resource when you add the data of that resource to the systemprops table. A flag value of 1 signals directory and a 0 signals file. With a 1, the path passed to Export is an actual temp directory. The Export function is expected to place all of the data files it requires packed up into that directory. When the path is passed to Import (on the other end of the chain of events) it will be a directory containing all of those files. If f_PupFlags is 0 then the path passed is a complete file path and the Export API should open and write its data to be packed to this file. Import will get a temp file back in the path parameter that contains this data.

Parameter Usage During Processing

When the Export method implemented by the GenericPuP object is invoked to package data, it performs the following steps:

  1. Packages all of the data in the tables specified in the s_PUPParam1 column.
  2. Packages all of the SQL scripts specified in s_PUPParam2 and s_PUPParam3 columns.

When the Import method implemented by the GenericPuP object is invoked to unpack data, it performs the following steps:

  1. Executes the SQL schema scripts specified in the s_PUPParam2 column.
  2. Unpacks the data in the tables specified by the s_PUPParam1 column. The scripts executed in step 1 must have already established the appropriate tables and schema.

When the Delete method or the DeleteGroupResource method implemented by the GenericPuP object is invoked to delete resource data, it performs the following steps:

  1. Executes the SQL schema scripts specified in the s_PUPParam3 column.
  2. Deletes all scripts associated with the current resource from the pupdbscripts table of the Administration database.

Loading GenericPuP SQL Scripts

The following sample code demonstrates one way to load a SQL script from a text file into the txt_script column of the pupdbscripts table of the Administration database. This sample also establishes appropriate values in the other columns. This sample uses the PutSQLScript method of the SiteConfig object to perform the actual database manipulation:

' Define a routine that takes the following four parameters:
' 1) A reference to a SiteConfig object,
' 2) The name of a resource,
' 3) The name of a text file containing the SQL script to load, and,
' 4) The name by which the script will be known in the Admin database.
Sub LoadResourceDBScript(oSiteConfig, sResource, _
                         sFilePath, sScriptName)

    ' Declare variables and constants for text file access...
    Dim oFS, oFile, sScriptContents
    Const ForReading = 1
    Const TristateUseDefault = -2

    ' Read the script from the specified text file...
    Set oFS = CreateObject("Scripting.FileSystemObject")
    Set oFile = oFS.OpenTextFile(sFilePath, ForReading, _
                                 False, TristateUseDefault)
    sScriptContents = oFile.ReadAll()
    oFile.Close
    Set oFile = Nothing

    ' Use the passed SiteConfig object to create
    ' (or overwrite) a row in the pupdbscripts table...
    oSiteConfig.PutSQLScript sResource, sScriptName, _
                             sScriptContents
End Sub

' The following code calls the routine defined previously...

' Create the SiteConfig object...
Dim oSiteConfig
Set oSiteConfig = CreateObject("Commerce.SiteConfig")

' Initialize variables for the other
' parameters to LoadResourceScript...
Dim sResource, sFilePath, sScriptName
sResource = "Transactions"
sFilePath = "C:\temp\Requisition.sql"
sScriptName = "Requisition"

' Call the routine LoadResourceScript, previously defined...
LoadResourceScript oSiteCfgAdmin, sResource, _
                   sFilePath, sScriptName


Other Sources of Information About Microsoft Management Console

The Microsoft Developer Network (MSDN) online Web site includes many topics that discuss various aspects of Microsoft Management Console (MMC) snap-ins and extension snap-ins.

Building your extension snap-in using the Active Template Library (ATL) can simplify and speed development because the ATL will take care of a lot of the details for you.


Integrating a Third-Party Product Catalog

There are two general strategies for using existing product catalog data in Commerce Server 2002. You can migrate the data into the Commerce Server Product Catalog System, or you can integrate your existing or third-party catalog system with Commerce Server 2002 through its application programming interface (API), replacing the Product Catalog System. Choosing between these two approaches depends on a number of factors.

Integrating an existing catalog system with Commerce Server 2002 requires a programming effort to modify or replace components of Commerce Server and possibly components of your existing catalog system.

The most straightforward approach to data migration requires conversion of the existing data to Extensible Markup Language (XML) or comma-separated value (CSV) format. The difficulty of this conversion depends on the format and integrity of your existing data. The size and complexity of your product catalog data has a direct effect on the length of time needed to process the conversion. There are other approaches to migrating your existing product catalog data. You might decide to pursue a Microsoft BizTalk Server 2000 or Data Transformation Services (DTS) integration solution, or you might decide to transmit your product catalog data by using other protocols. The option you choose depends on your available resources and expertise. For more information about importing catalog data, see Importing an XML Catalog File and Importing a CSV Catalog File.

Integrating a third-party catalog with Commerce Server 2002 involves providing a pipeline component that does the work of the Commerce Server QueryCatalogInfo pipeline component for your existing catalog, and integration with the following Commerce Server components:

  • Integrating Third-Party Catalogs with Campaigns. Describes how to provide product data from your external product catalog to the Marketing component for evaluation.
  • Integrating Third-Party Catalogs with Baskets. Describes how the Basket component receives detailed product information from the product catalog through the QueryCatalogInfo component, and how you replace this component with a pipeline component that will provide information from your existing catalog.
  • Integrating Third-Party Catalog Applications. Describes how to replace Commerce Server 2002 Catalog API calls in the Solution Sites in order to use them with your existing catalog system.
  • Integrating Third-Party Catalogs with Business Desk Catalog Modules. Describes how to modify Commerce Server Business Desk, which is a Web-based management system for the Product Catalog System, in order to use it to manage your existing catalog system.


Integrating Third-Party Catalogs with Campaigns

The ExpressionBuilder HTML Component (HTC) is used within the Commerce Server Business Desk Campaigns category to build expressions used for applying targeted discounts to products in your catalog. You use expressions to identify products that are eligible for discounts or are awarded by a discount. These expressions are named and saved in an XML representation in an expression store. Third-party catalogs must provide an XML profile that describes to the ExpressionBuilder the properties of products in the catalog.

You must replace the QueryCatalogInfo pipeline component with a functional equivalent that runs against your custom catalog system. Use this pipeline component to populate the Order dictionary with data from your external catalog in order to evaluate the expressions.

See Also

ExpressionBuilder

ExpressionEval Object


Integrating Third-Party Catalogs with Baskets

When a user places an item in a basket, the product information for that item is transferred from the catalog database to the basket by the QueryCatalogInfo pipeline component. You must provide a pipeline component that will transfer product information from your existing catalog to the basket.

Note

  • If your existing catalog system is based on database queries and tables, you might be able to use the QueryProdInfoADO pipeline component, depending on the complexity of your data structure.

The substitute component must copy appropriate catalog data to each line item in the basket based on a product key (for example, the SKU). When the component copies this catalog data, it should prefix each written dictionary key with "_product_". For example, the description of the product would be copied to item._product_description. Typically, at a minimum, this written data should include _product_list_price. It could also include descriptions, tax codes, product weight, and so on.

If the SKU/key is not found in the catalog system, the component should write the key delete with a value of 1 onto the line item. The RequiredProdInfo pipeline component then handles the error condition.


Integrating Third-Party Catalog Applications

The Commerce Server Solution Sites interface directly with the Commerce Server Catalog Management System API in a few places. If these applications are to be used with an existing catalog system, you must replace all calls to the Commerce Server Catalog API with calls to the Catalog API from the third-party catalog.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.


Integrating Third-Party Catalogs with Business Desk Catalog Modules

The Commerce Server Business Desk modules for managing a catalog are specific to the Commerce Server Catalog Management System. You can write alternative Business Desk catalog management modules to interface with your existing catalog, either to replace or to supplement the management interface or tools that it already has.

For more information, see Building Business Desk Modules.


Integrating with BizTalk Server

By integrating Microsoft BizTalk Server 2000 or later editions with your Microsoft Commerce Server 2002 installation, you can contract with vendors to receive catalogs of their products, and then fill orders for products that are sold on your site. Although it is not required that both you and your vendors install BizTalk Server, this section explains how to set up BizTalk Server systems for both you and your vendors.

This section provides details regarding areas of integration for existing Commerce Server 2000 sites.

For detailed BizTalk Server deployment instructions and information about integrating BizTalk Server with Commerce Server 2002 sites, see the file <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Retail2002\Retail2002_BizTalk Deployment.doc. This file is also available in the <%systemdrive%>\Inetpub\wwwroot\Retail2002B2B folder after the site has been unpacked.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

This section contains:

  • About BizTalk Server. Describes the components of Commerce Server that work with BizTalk Server and provides an overview of steps for orders and catalog exchange.
  • Product Catalog Integration. Describes how BizTalk Server can be used to import product catalogs from various vendors.
  • Order Form Integration. Describes how an order form can be divided into multiple purchase orders (POs) by vendor, and how BizTalk Server can be used to send those POs to their corresponding vendors.
  • Configuring Commerce Server to Work with BizTalk Server. Explains how to configure Commerce Server to integrate it with BizTalk Server.
  • Setting Up the Source Server. Explains how to set up source and sender organizations for catalog or purchase order exchange.
  • Setting Up the Destination Server. Explains how to configure the destination and receiver organizations on BizTalk Server.
  • Setting Up Your Catalogs for BizTalk Server. Explains how to configure BizTalk Server for catalog exchange.

For additional information about integrating BizTalk Server and Commerce Server, see the Microsoft BizTalk Server documentation and the Commerce Server 2000 Resource Kit.

For programming samples, see "Designing Solutions with BizTalk Server" in the BizTalk Server Software Development Kit (SDK). For example, the SDK includes samples for dividing orders by vendor, transforming orders in Extensible Markup Language (XML), and using a BizTalk Server component to send orders to BizTalk Server.


About BizTalk Server

BizTalk Server provides a gateway for sending business documents between your company and your trading partners (also known as vendors). For example, if your company uses BizTalk Server, you can trade catalogs, orders, documents, and other electronic forms with your trading partners. BizTalk Server manages the data translation, encryption, digital signatures, and document tracking services for many different transport mechanisms.

You can use BizTalk Server and Commerce Server together to process orders that users place on your Commerce Server Web site. For example, assume you are selling computer hardware on your site. Your company manufactures some of this hardware, and some of it is supplied to you by trading partners. Using BizTalk Server, you can create a trading agreement for each trading partner who supplies the hardware that you sell on your site. When a user visits your site and places an order for one of the products supplied by a trading partner, Commerce Server processes the order and sends it to BizTalk Server, and then BizTalk Server sends the order to the trading partner to be filled.

The Solution Sites for Microsoft Commerce Server are designed to integrate with Microsoft BizTalk Server in the following two ways:

  • Import/export of product catalogs
  • Multi-vendor order form processing

BizTalk Server integration is configured by using Commerce Server Manager. These configuration settings are used to conditionally execute code within the Solution Sites that implements the integration with BizTalk Server.

If you are integrating Commerce Server and BizTalk Server for developmental purposes, install Commerce Server and BizTalk Server on the same computer. However, if you are integrating Commerce Server and BizTalk Server for production, it is recommended that you install BizTalk Server on a separate computer. For detailed deployment information about integrating Commerce Server and BizTalk Server, see Commerce Server Solution Sites.

If you are running Commerce Server and BizTalk Server on the same computer, you must run BizTalk Server setup on the Commerce Server computer to install the BizTalk tools. For information about installing the BizTalk Server tools, see BizTalk Server Help.

The Commerce Server 2002 International Retail site package contains a Commerce Server business-to-consumer sample site that can send orders to the included sample business-to-business Web service by using BizTalk Server. For detailed deployment information, see the file <%systemdrive%>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Retail2002\Retail2002_BizTalk Deployment.doc. This file is also available in the <%systemdrive%>\Inetpub\wwwroot\Retail2002B2B folder after the site has been unpacked.

Catalogs for Multiple Vendors

Vendor ID

Using BizTalk Server to Exchange Catalogs

Sending Orders to BizTalk Server

Processing Received Orders

Catalogs for Multiple Vendors

Before you can use BizTalk Server to transmit orders to your trading partners, you must first organize the catalogs of those trading partners whose products will appear on your site. Each of your trading partners can send you one or more catalogs of their products. Depending on how you set up your site, you can present these catalogs on your Web site as one catalog, or as multiple catalogs. Maintaining multiple catalogs is helpful when, for example, you are targeting several groups of users with different catalog content, such as senior operations management and hobbyists.

Vendors send you their catalogs by using e-mail or BizTalk Server, and then you import the catalog to your Commerce Server Catalogs database by using the Catalog Editor module in Commerce Server Business Desk. For information about importing catalogs, see Importing an XML Catalog File and Importing a CSV Catalog File.

Vendor ID

When you set up an agreement with a vendor, the vendor ID is automatically made available to Commerce Server. The vendor ID is the organization name that you specify for the vendor when you create a destination organization for the source server. For more information, see Creating Source and Destination Organizations on the Source Server.

Commerce Server displays the vendor ID in Business Desk. It displays those trading partners (organizations) that support the same document type as your organization, and thus have compatible document routing. You can then use Business Desk to associate the vendor ID with the catalog.

More than one catalog can be associated with a given vendor. You can also specify a vendor at the product level; however, if you do this you must also customize the _additem.asp page (if you are developing with the Retail Solution Site).

If you name a vendor "Default," Commerce Server recognizes your own site as the vendor. For instructions about adding the vendor ID to a catalog, see Setting Up Your Catalogs for BizTalk Server.

Notes

  • When a user orders an item from your Web site, the item must exist in the catalog of the destination organization. If the destination organization does not have the item in its catalog, BizTalk Server will not be able to process the purchase order on the destination server. It will write an error message to the event log on the destination server.
  • Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

Using BizTalk Server to Exchange Catalogs

Using BizTalk Server, you can exchange catalogs that are used by Commerce Server with your trading partners. After a catalog is converted to an Extensible Markup Language (XML) document, it is processed by BizTalk Server to save the XML catalog file in a shared folder on the destination computer on which Commerce Server is installed.

After an XML catalog file is saved on the destination computer, you use Business Desk to import the catalog from the shared folder on the destination computer and then publish the catalog to the Web site. You can edit the newly imported catalog, if necessary, by using the Catalog Editor module in Business Desk to make any changes. For information about importing a catalog by using Business Desk, see Importing an XML Catalog File and Importing a CSV Catalog File.

You can set up BizTalk Server to automatically incorporate an incoming catalog to Commerce Server. For information about automating this process by using a BizTalk Server Application Integration Component (AIC), see BizTalk Server Help.

The following figure shows how an XML catalog file is processed.

Sending Orders to BizTalk Server

The following figure shows how Commerce Server processes an order and then sends it to BizTalk Server.

Users perform the following steps to create and process an order:

  1. Users add items to their baskets.

    Commerce Server reads the Commerce Server database and retrieves the vendor name for the products.

  2. Users proceed to checkout, and the Commerce Server Checkout pipeline processes the order.

    For each line item (product) in the order, the Splitter component indicates whether that product is supplied by your company or by a vendor with whom you have a trading agreement. The Splitter component creates a list of the vendors, and attaches it to the order form.

  3. Commerce Server determines whether the BizTalk Options property (in the App Default Config resource) is set to 1.

    If the BizTalk Options property is set to 1, Commerce Server reads the list of vendors and bundles the line items for each vendor.

  4. Commerce Server converts the order form into one or more XML documents to be sent to BizTalk Server.

    When Commerce Server converts the order form (using the XMLTransforms process), it creates one XML document for each vendor.

    To convert the order, Commerce Server uses the schema called POSchema.xml, which is associated with the site. If you add one or more fields to the order form, by default Commerce Server does not include the new fields in the XML document that is sent to BizTalk Server. To add the new fields on the order form, you must edit POSchema.xml, an XDR (XML Data-Reduced) format file, and re-associate the XML file with the document in BizTalk Server. You must also transfer the XML file to BizTalk Server and re-associate it. You can edit POSchema.xml by using BizTalk Editor.

  5. Commerce Server sends the XML documents to BizTalk Server.

Processing Received Orders

You can submit orders to BizTalk Server in several different ways, depending on your needs. You can use mapping to submit orders, you can use a variety of protocols to submit orders, or your trading partner can create a Commerce Server site or a non-Commerce Server site to receive the submitted orders.

If you choose to have your trading partner set up a Commerce Server site to receive orders, you can set up the site by using the _recvpo.asp page that receives XML documents from BizTalk Server. When an XML document is received by _recvpo.asp, the XMLTransforms process is started and converts the XML document back to an order form. Commerce Server then runs a pipeline on the order form. After the pipeline processes the order form, the order is saved to the Commerce Server database. By using _recvpo.asp, you can use Commerce Server objects to redirect the XML to your order management system.

The following figure shows how an XML document is sent from your BizTalk Server installation and processed by the Commerce Server site of the vendor.

You can also set up Commerce Server to process and send order forms to a queue, and then set up either your BizTalk Server (or the BizTalk Server at the vendor installation) to poll the queue. If you use this configuration, you can install BizTalk Server and Commerce Server on separate servers. The following figure shows this configuration.

A figure that shows how you can use BizTalk Server and Message Queuing

See Also

Integrating with BizTalk Server

Programmer's Reference

Splitter


Product Catalog Integration

Product catalog integration is the process of offering products from different vendor catalogs for sale on a Web site. Another scenario that is conceptually similar concerns a company providing access to an office supply catalog on their internal Web site, allowing employees to order their own office supplies. This process needs to be considered from the perspective of the recipient of a vendor catalog as well as from the perspective of the vendor providing the catalog.

Importing Catalogs in the Commerce Server XML Format

Generating Catalogs in the Commerce Server XML Format

Creating Catalog XDR Schema

Importing Catalogs in the Commerce Server XML Format

The process of importing a catalog is normally performed in the Catalog Editor module of Commerce Server Business Desk. For more information about importing a catalog in the proper XML format, see Importing an XML Catalog File. However, a catalog in the proper Extensible Markup Language (XML) format can be imported into the Commerce Server Catalogs database programmatically by using the ImportXML method of the CatalogManager object. For more information about this method, see CatalogManager.ImportXML.

To validate that your catalog XML file conforms to the proper schema:

  1. Edit the second line in your catalog XML file so that it references the catalog XML Data-Reduced (XDR) file provided in the Commerce Server root installation folder. For example:

    <MSCommerceCatalogCollection xmlns="x-schema:C:\Program Files\Microsoft Commerce Server\CatalogXMLSchema.xml">

  2. Open your catalog XML file in Internet Explorer. Internet Explorer will validate that the XML file conforms to the specified schema and show diagnostic errors in the event that it does not conform.

Note

  • These steps only confirm that the catalog XML file conforms to the XDR schema. It does not validate whether the catalog schema, such as product, category, and property definitions, are compatible with any pre-existing catalog schema, or whether products and categories in the catalog XML file are consistent with the catalog schema defined in that XML file. This validation occurs when the file is imported, and any problems found are written to the event log.

If Microsoft BizTalk Server is installed on the same computer as Commerce Server, you can use an Application Integration Component (AIC), as defined by BizTalk Server, to automate the process of importing XML catalogs into Commerce Server as they arrive from vendors through BizTalk Server. For more information about creating an AIC, see the BizTalk Server documentation.

Generating Catalogs in the Commerce Server XML Format

A product catalog must exist in the XML format expected by Commerce Server in order to be successfully imported. If the vendor supplying the catalog is also using Commerce Server as the source of the catalog, as well as using BizTalk Server to deliver the catalog, the process is quite simple. A business manager can select a catalog and send it to a trading partner. For more information about sending a catalog to a trading partner, see Sending a Catalog to a Trading Partner.

If you are a vendor who does not use Commerce Server as the source of your catalog, you can still use BizTalk Server to deliver your product catalog to Commerce Server. You might even be able to take advantage of the Mapper feature in BizTalk Server, using the Looping functoid, to convert your product catalog from its native format to the XML format expected by Commerce Server. For more information about using the Mapper feature and the Looping functoid to convert the catalog to the proper XML format, look for "Commerce Server catalogs" in the BizTalk Server documentation.

If vendors are not using BizTalk Server, they will need to devise a proprietary solution to convert their catalog format to the XML format expected by Commerce Server. For more information about this format, see Catalog XML Structures.

Creating Catalog XDR Schema

You must create a catalog XDR schema to enable catalog exchange between Commerce Server 2002 and BizTalk Server. The file CatalogXMLSchema.xml that is installed with Commerce Server 2002 provides backward compatibility with older installations of Commerce Server.

Use the following sample code to create a catalog XDR schema using a connection string to the catalog database:

     Dim oCatalogManager
     FmtXdr = 2
     Set oCatalogManager = CreateObject("Commerce.CatalogManager")
     Call oCatalogManager.Initialize("connection string to the catalog database", true)
     Call oCatalogManager.ExportXml("path of the xml file", ,true, FmtXdr)

Use the following code to create a catalog XDR schema using a product catalog site name:

     Dim oCatalogManager
     FmtXdr = 2
     Set oCatalogManager = CreateObject("Commerce.CatalogManager")
     Call oCatalogManager.Initialize(sitename, false)
     Call oCatalogManager.ExportXml("path of the xml file", ,true, FmtXdr)

For more information, see Catalog XML Structures.


Order Form Integration

Order form integration is the process of splitting an order form into multiple purchase orders and sending them to the relevant vendors by using Microsoft BizTalk Server. The following aspects of this process need to be considered:

  • Associating a Vendor ID with Each Catalog
  • Configuring Commerce Server for Order Form Integration
  • Overview of Processing


Associating a Vendor with Each Catalog

By associating a vendor ID with each product catalog, the vendor for any given product in an order can be determined by identifying the product catalog associated with the product, and then identifying the vendor associated with that catalog. Being able to determine the vendor associated with each product allows Commerce Server to construct purchase orders on a vendor-by-vendor basis, and deliver those purchase orders to the corresponding vendors by using BizTalk Server.

The process of associating vendors with catalogs is typically done manually, using Commerce Server Business Desk. For more information about assigning a vendor to each catalog, see Setting Up Your Catalogs for BizTalk Server.

Commerce Server also provides a Component Object Model (COM) object designed to allow programmatic assignment of vendors to catalogs. This object also provides methods to, for example, retrieve a list of available vendors, and return vendor information given a particular catalog. For more information about this object, see CatalogToVendorAssociation Object.


Configuring Commerce Server for Order Form Integration

The Commerce Server Solution Sites include conditional code for submitting per-vendor purchase orders to BizTalk Server, allowing these purchase orders to be sent to the relevant vendors. This functionality is built into the Solution Sites, and is configured by using Commerce Server Manager. For more information about how to configure a Commerce Server Solution Site to create purchase orders for each vendor associated with a product in an order form, see Configuring Commerce Server to Work with BizTalk Server. Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.


Overview of Processing

The following Microsoft Visual Basic code shows the processing that occurs in three functions involved in order form integration with BizTalk Server. Note the fact that the first routine calls the second two routines in its innermost loop.

' Always call this routine when processing orders. It will
' return immediately if BizTalk PO integration is not enabled...
Sub InvokeBizTalk(ByVal mscsOrderGrp)
    Dim sOrderName, mscsOrderForm, oVendor, sXML
    Dim sVendorQualID, sVendorQualValue

    ' Do not do anything unless BizTalk PO integration is enabled...
    If dictConfig.i_BizTalkOptions = BIZTALK_PO_XFER_ENABLED Then

        ' Process each order form in the order group...
        For Each sOrderName In mscsOrderGrp.Value.OrderForms
            Set mscsOrderForm = _
                mscsOrderGrp.Value(ORDERFORMS).Value(sOrderName)

            ' Process each vendor known to the order form...
            For Each oVendor In mscsOrderForm.value("_vendors")

                ' Skip the default vendor, which
                ' is the local organization...
                If StrComp(oVendor.vendorID, DEFAULT_ORDERFORM, _
                                             vbTextCompare) <> 0 Then

                    ' Call second function defined here to
                    ' retrieve an XML string containing only
                    ' items associated with the current vendor...
                    sXML = GetXMLForVendorItems(mscsOrderForm, oVendor)

                    ' Get the vendor delivery information from
                    ' the orderform item...
                    sVendorQualID = _
                           mscsOrderForm.items( _
                                oVendor.itemindexes(0)).vendor_qual)
                    sVendorQualValue = _
                           mscsOrderForm.items( _
                                oVendor.itemindexes(0)).vendor_qual_value

                    ' Call third function defined here to submit
                    ' the single vendor PO to BizTalk Server...
                    Call SubmitUsingBizTalk(sXML, oVendor.vendorID, _
                                                     sVendorQualID, _
                                                  sVendorQualValue)
                End If
            Next
        Next
    End If
End Sub

' Returns an XML string containing the PO for the specified vendor...
Function GetXMLForVendorItems(ByVal mscsOrderForm, ByVal oVendor)
    Dim oXMLTransforms, oXMLSchema, oOrderFormXML, oXMLDoc
    Dim oNode, oAttribute
    Dim sFilePath

    ' Create a DictionaryXMLTransforms object...
    Set oXMLTransforms = _
        Server.CreateObject("Commerce.DictionaryXMLTransforms")

    ' Create a PO schema object...
    sFilePath = Server.MapPath("\" & MSCSAppFrameWork.VirtualDirectory) _
                & "\poschema.xml"
    Set oXMLSchema = oXMLTransforms.GetXMLFromFile(sFilePath)

    ' Create an XML version of the order form...
    Set oOrderFormXML = _
      oXMLTransforms.GenerateXMLForDictionaryUsingSchema(mscsOrderForm, _
                                                         oXMLSchema)

    ' Create a copy of the XML version of the order form...
    Set oXMLDoc = Server.CreateObject("MSXML.DOMDOCUMENT")
    oXMLDoc.loadXML oOrderFormXML.xml

    ' For each 'Item' node in the XML order form copy...
    For Each oNode In oXMLDoc.documentElement.childNodes
        If (oNode.nodeName = "Items") Then

            ' If this vendor ID of the 'Item' node is not the
            ' same as the passed vendor ID, discard the node...
            For Each oAttribute In oNode.Attributes
                If (oAttribute.nodeName = "vendorid") Then
                    If Not(oAttribute.nodeValue = oVendor.vendorID) Then
                        oNode.parentNode.removeChild oNode
                    End If
                    Exit For
                Else
                End If
            Next

        End If
    Next

    ' Return an XML string containing the remaining 'Item' nodes,
    ' all of which correspond to the passed vendor...
    GetXMLForVendorItems = oXMLDoc.xml
End Function

' Submit the vendor-specific PO to BizTalk Server...
Function SubmitUsingBizTalk(ByVal sXML, ByVal sVendorName, _
                            ByVal sDestQualID, ByVal sDestQualValue)
    Dim sSubmitType, sDocName
    Dim sSourceQualID, sSourceQualValue
    Dim oDBConfig, oOrg, sID, sName, sDef, oRes
    Dim oInterchange

    ' Retrieve the source BizTalk config values locally...
    sSubmitType = dictConfig.s_BizTalkSubmittypeQueue
    sDocName = dictConfig.s_BizTalkOrderDocType
    sSourceQualID = dictConfig.s_BizTalkSourceQualifierID
    sSourceQualValue = dictConfig.s_BizTalkSourceQualifierValue

    ' Create a BizTalk Interchange object and call its Submit
    ' routine using the passed and gathered parameters...
    Set oInterchange = Server.CreateObject("BizTalk.Interchange")
    oRes = oInterchange.Submit(sSubmitType, _
                               sXML, _
                               sDocName, _
                               sSourceQualID, _
                               sSourceQualValue, _
                               sDestQualID, _
                               sDestQualValue)
End Function


Configuring Commerce Server to Work with BizTalk Server

You use the App Default Config resource to set properties that enable Commerce Server 2002 and BizTalk Server to work together.

To configure Commerce Server to work with BizTalk Server

  1. Click Start, point to Programs, point to Microsoft Commerce Server, and then click Commerce Server Manager.
  2. Expand Commerce Server Manager, expand Commerce Sites, expand the site you want to use with BizTalk Server (for example, Retail), and then expand Site Resources.
  3. In the left pane, right-click App Default Config, and then click Properties.
  4. In the App Default Config Properties dialog box, on the Properties tab, do the following:
    Use this | To do this
    BizTalk Catalog Doc Type | Type the document definition name that is required by BizTalk Server for catalogs (for example, CatalogTransferDoc).
    BizTalk Options | Type 1 to enable integration with BizTalk Server for document exchange; type 0 to disable integration.
    BizTalk PO Doc Type | Type the document definition name that is required by BizTalk Server for purchase orders (for example, PurchaseOrder).
    BizTalk Source Org Qualifier | Type the alias qualifier for this site in BizTalk Server (for example, MyCompany).
    BizTalk Source Org Qualifier Value | Type the alias value for this site in BizTalk Server (for example, Sender).
    BizTalk Submit Type | Type 1 to submit documents to BizTalk Server asynchronously.
  5. If BizTalk Server is not installed on the same computer as Commerce Server, on the Connection Strings tab, click Modify. In the Data Link Properties dialog box, specify the connection string to the BizTalk Server computer.
  6. Click OK.

Note

  • After you change a property value in Commerce Server Manager, you must unload the application from memory on each Web server for the change to take effect. For instructions, see Unloading an Application from Memory.

See Also

Setting Up the Source Server

Setting Up the Destination Server

Setting Up Your Catalogs for BizTalk Server


Setting Up the Source Server

To set up a messaging configuration between two organizations, you must set up the source server and the destination server. For example, your BizTalk Server is the source server, and the vendor BizTalk Server is the destination server.

Perform the steps described in this section to set up purchase order exchange on the source server. For instructions about setting up the destination server, see Setting Up the Destination Server.

This section contains:

  • Example: Configuring the Source Server for Exchanging Catalogs
  • Example: Configuring the Source Server for Exchanging Purchase Orders
  • Copying and Importing Required Files for the Source Server
  • Creating Source and Destination Organizations on the Source Server
  • Creating Document Definitions on the Source Server
  • Creating Envelopes on the Source Server
  • Creating a Messaging Port on the Source Server
  • Creating a Channel on the Source Server


Example: Configuring the Source Server for Exchanging Catalogs

The following tables list sample values for the App Default Config and BizTalk Server properties needed to configure a source server for catalog exchange.

Sample Values for App Default Config Properties

Set this | To
BizTalk Catalog Doc Type | CatalogTransferDoc
BizTalk Options | 1
BizTalk Source Org Qualifier | MyCompanyCatalog
BizTalk Source Org Qualifier Value | CatalogSender
BizTalk Submit Type | 1

Sample Values for Source Organization Properties

Set this | To
Organization Name | Home Organization
Customer Name | MyCompanyCatalog
Qualifier | MyCompanyCatalog
Value | CatalogSender
Application Name | CatalogApplication

Sample Values for Destination Organization Properties

Set this | To
Organization Name | CatalogDestination
Customer Name | MyCompanyCatalog
Qualifier | MyCompanyCatalog
Value | CatalogReceiver

Sample Values for Document Properties

Set this | To
Document Name | CatalogTransferDoc
Document Specification | Type the location of your catalog schema: CatalogXMLSchema.xml. For information about creating catalog XDR schema, see Creating Catalog XDR Schema.

Sample Values for Assigning a Messaging Port to an Organization

Set this | To
Messaging Port Name | CatalogPortToDestination
File Address | Drive: <destination server name>\<shared folder>\CatalogSend.xml Use a valid destination server as <destination server name>. Use a valid shared folder on the destination computer as <shared folder>.

Sample Values for Assigning a Channel from an Application

Set this | To
Name | CatalogChannelToSource
Source Application Name | CatalogApplication
Organization Identifier | BizTalkCatalog/CatalogSender (Default)
Inbound Document | CatalogTransferDoc
Outbound Document | CatalogTransferDoc
Advanced Properties | Click Advanced, and then click Properties. In the Advanced Properties dialog box, set the fully qualified user and password, and then select the type of action to overwrite.

See Also

Configuring Commerce Server to Work with BizTalk Server

Setting Up the Source Server

Setting Up the Destination Server

Setting Up Your Catalogs for BizTalk Server


Example: Configuring the Source Server for Exchanging Purchase Orders

The following tables list examples of the values you enter in App Default Config and BizTalk Server to configure a source server for purchase order exchange.

Sample Values for App Default Config Properties

Set this | To
BizTalk Options | 1
BizTalkPO Doc Type | PurchaseOrder
BizTalk Source Org Qualifier | MyCompany
BizTalk Source Org Qualifier Value | Sender
BizTalk Submit type | 1

Sample Values for Source Organization Properties

Set this | To
Organization Name | Home Organization
Customer Name | MyCompany
Qualifier | MyCompany
Value | Sender
Application Name | POApplication

Sample Values for Destination Organization Properties

Set this | To
Organization Name | Destination
Customer Name | MyCompany
Qualifier | MyCompany
Value | Receiver

Sample Values for Document Properties

Set this | To
Document Name | PurchaseOrder
Document Specification | .../Microsoft/POSchema.xml

Sample Values for Envelope Properties

Set this | To
Envelope Name | POEnvelope

Sample Values for Messaging Port to an Organization

Set this | To
Messaging Port Name | OutPortToDestination
HTTP Address | http://<destination server name>/Retail/ReceiveStandard.asp Use a valid destination server as <destination server name>.
Envelope | POEnvelope
Envelope Identifier | MyCompany / Receiver (Default)

Sample Values for Channel from an Application

Set this | To
Name | OutChannelToDestination
Source Application Name | POApplication
Organization Identifier | BizTalk/Sender (Default)
Inbound Document | PurchaseOrder
Outbound Document | PurchaseOrder

See Also

Configuring Commerce Server to Work with BizTalk Server

Setting Up the Source Server

Setting Up the Destination Server

Example: Configuring the Source Server for Exchanging Catalogs

Example: Configuring the Destination Server for Purchase Orders

Setting Up Your Catalogs for BizTalk Server


Copying and Importing Required Files for the Source Server

Both the source and destination servers must contain the same POSchema.xml and CatalogXMLSchema.xml files.

Note

  • The source and destination servers must have the same catalogs of products; otherwise the purchase order submission will fail. For information about setting up your catalogs, see Setting Up Your Catalogs for BizTalk Server.

To copy POSchema.xml to the source server

To import CatalogXMLSchema.xml into BizTalk Editor

To copy POSchema.xml to the source server

  • Copy the POSchema.xml file located in <drive:>\inetpub\wwwroot\<site name> to the path <drive:>\Program Files\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

To import CatalogXMLSchema.xml into BizTalk Editor

  1. Open BizTalk Editor. Click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Editor.
  2. In BizTalk Editor, on the Tools menu, click Import.
  3. Select XDR Schema, and then click OK.
  4. In the Import XDR Schema dialog box, in the Look in box, navigate to <drive>:\Program Files\Microsoft Commerce Server 2002, select CatalogXMLSchema.xml, and then click Open.
  5. On the File menu, click Store to WebDAV.
  6. In the Store to WebDAV dialog box, in the File name box, type CatalogXMLSchema.xml, and then click Save.
  7. Close BizTalk Editor.

The CatalogXMLSchema.xml file is imported into BizTalk Editor and stored in Web Distributed Authoring and Versioning (WebDAV). The file is now a specification that has the appropriate header information and specified structure so it can be used for catalog exchange.

See Also

Copying Required Files for the Destination Server

Setting Up Your Catalogs for BizTalk Server


Creating Source and Destination Organizations on the Source Server

The source BizTalk Server is the supplier. An organization can be the source or the destination in a messaging port, distribution list, or channel. An organization can represent an external trading partner, your own company, or a business unit within a trading partner or your company. Each organization has unique identifiers that identify it to BizTalk Server and to other trading partner organizations.

On the source server, you must create both a source organization and a destination organization. A source organization is a trading partner organization that has been designated in a channel as the source of documents. A destination organization is a trading partner organization designated in a messaging port as the destination for documents.

To create a source organization on the source server

To create a destination organization on the source server

To create a source organization on the source server

  1. On the source BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, in the Configuration Options dialog box, select the Don't show this dialog box again check box, and then click OK. Click Cancel to close the dialog box.
  3. In BizTalk Messaging Manager, in the left pane, in the Search for other items area, click Organizations, and then click Search Now to display the list of available organizations.
  4. In the list of available organizations, double-click Home Organization.
  5. In the Organization Properties dialog box, on the Identifiers tab, click Add.
  6. In the New Identifier dialog box, verify the Custom option is selected, and then type MyCompany.
  7. In the Qualifier box, type MyCompany.
  8. In the Value box, type the name of the sender (for example, Sender).

    The Value must be the same as the value entered in the Commerce Server App Default Config Properties dialog box, in the BizTalk Source Org Qualifier Value box. If the values are different, the purchase order submission fails and no error message appears.

    For information about setting App Default Config properties, see Configuring Commerce Server to Work with BizTalk Server.

  9. Select the Set as default check box to specify the sender (for example, Sender) as the default organization, and then click OK.

    You must designate a default organization before you can create a messaging port. The default organization can serve as either the source or the destination for each new messaging port. You can designate a different default organization at any time and then create messaging ports that use the new default organization.

  10. On the Applications tab, click Add, and in the New Application dialog box, type the application name (for example, POApplication for purchase orders and CatalogTransferDoc for catalog transfers), and then click OK.
  11. In the New Application dialog box, click OK.
  12. In the Organization Properties dialog box, click OK.

The source organization and sender on the source BizTalk Server are created. For example, the source organization is "Home Organization" and the sender is "Sender." You have specified the sender as the default organization.

To create a destination organization on the source server

  1. In BizTalk Messaging Manager, on the File menu, point to New, and then click Organization.
  2. In the New Organization dialog box, on the General tab, type the name of the destination organization (for example, DestinationOrg).

    The name that you type here is the name that is displayed on Commerce Server Business Desk when you associate a vendor with a catalog. The name appears in a list of available vendors from which you can select the vendor you want.

  3. In the Comments box, type any necessary comments about the destination organization.
  4. On the Identifiers tab, click Add.
  5. In the New Identifier dialog box, verify the Custom option is selected, and then type MyCompany.
  6. In the Qualifier box, type MyCompany.
  7. In the Value box, type the name of the receiver (for example, Receiver), and then click OK.
  8. In the New Organization dialog box, click OK.

The destination organization and receiver on the source BizTalk Server are created. For example, "DestinationOrg" is the destination organization and "Receiver" is the receiver.

See Also

Configuring Commerce Server to Work with BizTalk Server

Creating Document Definitions on the Source Server


Creating Document Definitions on the Source Server

A document definition represents a business document in a messaging port, channel, or distribution list. A document definition provides a pointer to a specification that defines the document. A document definition can be associated with any number of messaging ports, channels, and distribution lists.

To create a document definition with an associated XML file

  1. On the source BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, on the File menu, point to New, and then click Document Definition.
  3. In the New Document Definition dialog box, in the Document definition name box, type a name for the document definition (for example, PurchaseOrder or CatalogTransferDoc).

    The Document definition name must be the same as the value entered in the Commerce Server App Default Config Properties dialog box, in the BizTalk PO Doc Type box. If the values are different, the purchase order submission fails.

    For information about setting App Default Config properties, see Configuring Commerce Server to Work with BizTalk Server.

  4. Select the Document specification check box, and then click Browse.
  5. In the Select a Document Specification from the WebDAV Repository dialog box, double-click the Microsoft folder.
  6. Select the .xml file (for example, POSchema.xml), and then click Open.
  7. In the New Document Definition dialog box, click OK.

The purchase order is created with an associated custom Extensible Markup Language (XML) file.

See Also

Configuring Commerce Server to Work with BizTalk Server

Creating Envelopes on the Source Server


Creating Envelopes on the Source Server

An envelope contains a header and sometimes a footer that prefixes or encapsulates electronic business data for transporting the data to a destination organization. BizTalk Server uses the envelope properties specified in a messaging port to determine the envelope format that is used to prepare documents for transport.

To create an envelope for the source server

  1. On the source BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, on the File menu, point to New, and then click Envelope.
  3. In the New Envelope dialog box, in the Envelope name box, type the name of the envelope (for example, POEnvelope), and then click OK.

If you do not assign a custom Extensible Markup Language (XML) file to the envelope you just created, then the default XML file is assigned to the envelope.

See Also

Configuring Commerce Server to Work with BizTalk Server

Creating a Messaging Port on the Source Server


Creating a Messaging Port on the Source Server

A messaging port is a set of rules that you use BizTalk Messaging Manager to configure, with which you can direct how documents are enveloped, secured, and transported to a designated destination organization. The documents that a messaging port transports originate from the source that is specified in an associated channel. A channel is a set of properties that you can use to provide BizTalk Server with the rules for processing a document that it receives.

In a messaging port, you designate a destination organization or destination application for the documents.

To create a messaging port on the source server

  1. On the source BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, on the File menu, point to New, point to Messaging Port, and then click To an Organization.
  3. In the New Messaging Port Wizard, in the General Information screen, in the Name box, type the name of the port (for example, OutPortToDestination), and then click Next.
  4. In the Destination Organization screen, select the Organization option, and then click Browse to the right of the Name box.
  5. In the Select an Organization dialog box, select a destination organization (for example, DestinationOrg), and then click OK.
  6. Click Browse to the right of the Address box.
  7. In the Primary Transport dialog box, in the Transport type box, select HTTP from the drop-down list.
  8. In the Address box, type http://<destination server name>/<site name>/ReceiveStandard.asp, and then click OK.

    This is the URL for the vendor to which you are sending purchase orders.

  9. Click Next.
  10. In the Envelope Information screen, in the Envelope information box, select POEnvelope from the drop-down list, and then click Next.
  11. In the Security Information screen, verify the Create a channel for this messaging port check box is selected.
  12. In the Channel type box, select From an application from the drop-down list, and then click Finish.
  13. In the General Information screen, click Cancel.

The messaging port between your source organization and the destination organization is created.

See Also

Creating a Channel on the Source Server


Creating a Channel on the Source Server

A channel is a set of properties that you use to provide BizTalk Server with the rules for processing a document that it receives. After a channel processes a document, the document is passed to its associated messaging port or distribution list to be transported to the specified destination. You can create one or more channels for a messaging port or distribution list.

To create a channel on the source server

  1. On the source BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, in the left pane, click the Messaging Ports link in the Search for other items area, and then click Search Now.
  3. Select the messaging port that the channel will be associated with (for example, OutPortToDestination).
  4. On the File menu, point to New, point to Channel, and then click From an Application.
  5. In the New Channel Wizard, in the General Information screen, in the Name box, type the name of the channel (for example, OutChannelToDestination), and then click Next.
  6. In the Source Application screen, verify the Application option is selected.
  7. In the Name box, select the name of the application from the drop-down list (for example, POApplication for purchase order and CatalogTransferDoc for catalog transfer).
  8. In the Organization identifier box, verify <source organization>/ <identifier value> (Default) as the identifier, (for example, My Company / Sender (Default) and then click Next.
  9. In the Inbound Document screen, click Browse to the right of the Inbound document definition name box.
  10. In the Select a Document Definition dialog box, select the document definition (for example, PurchaseOrder), and then click OK.
  11. In the Inbound Document screen, click Next.
  12. In the Outbound Document screen, click Browse to the right of the Outbound document definition name box.
  13. In the Select a Document Definition dialog box, select the document definition (for example, PurchaseOrder), and then click OK.
  14. In the Outbound Document screen, click Next.
  15. In the Document Logging screen, click Next.
  16. In the Advanced Configuration screen, click Advanced.
  17. In the Override Messaging Port Defaults dialog box, click Properties.
  18. In the BizTalk SendHTTPX Properties dialog box, in the User name box, type the fully qualified user. For example, REDMOND\<user name>.
  19. In the Password box, type the user password, and then click OK.
  20. In the Override Messaging Port Defaults dialog box, click OK.
  21. In the Advanced Configuration screen, click Finish.

A channel is created from the Home Organization for the messaging port that you created in the procedure, "To create a messaging port on the source server."

See Also

Setting Up the Destination Server


Setting Up the Destination Server

To set up a messaging port between two organizations, you must set up the source server and the destination server. For example, your BizTalk Server is the source server and the vendor BizTalk Server is the destination server.

Perform the steps described in this section to set up purchase order exchange on the destination server. For instructions about setting up the source server, see Setting Up the Source Server.

This section contains:

  • Example: Configuring the Destination Server for Purchase Orders
  • Copying Required Files for the Destination Server
  • Creating a Destination Organization on the Destination Server
  • Creating Document Definitions on the Destination Server
  • Creating a Messaging Port on the Destination Server
  • Creating a Channel on the Destination Server


Example: Configuring the Destination Server for Purchase Orders

The following tables list examples of the values you enter in BizTalk Server to configure a destination server for purchase order exchange.

Sample Values for Destination Organization Properties

Set this | To
Organization Name | Home Organization
Customer Name | MyCompany
Qualifier | MyCompany
Identifier Value | Receiver
Application Name | POApplication

Sample Values for Source Organization Properties

Set this | To
Organization Name | Source
Customer Name | MyCompany
Qualifier | MyCompany
Identifier Value | Sender

Sample Values for Document Properties

Set this | To
Document Name | PurchaseOrder
Document Specification | .../Microsoft/POSchema.xml

Sample Values for Assigning a Messaging Port to an Application

Set this | To
Port Name | InPortFromSource
Application Name | POApplication
HTTP Address | http://<destination server name>/Retail/_recvpo.asp Use a valid destination server as <destination server name>.
Envelope | POEnvelope
Envelope Identifier | MyCompany / Receiver (Default)

Sample Values for Assigning a Channel from an Organization

Set this | To
Name | InChannelFromSource
Source Application Name | POApplication
Organization Identifier | MyCompany/Sender (Default)
Inbound Document | PurchaseOrder
Outbound Document | PurchaseOrder

See Also

Configuring Commerce Server to Work with BizTalk Server

Setting Up the Source Server

Setting Up the Destination Server

Setting Up Your Catalogs for BizTalk Server

Example: Configuring the Source Server for Exchanging Catalogs


Copying Required Files for the Destination Server

Both the source and destination servers must contain the same POSchema.xml file.

Note

  • The source and destination servers must have the same catalogs of products; otherwise the purchase order submission will fail. For information about setting up your catalogs, see Setting Up Your Catalogs for BizTalk Server.

To copy ReceiveStandard.asp to the destination server

  • Copy the ReceiveStandard.asp file located in <drive:>\Program Files\Microsoft BizTalk Server\SDK\Samples to the path <drive:>\inetpub\wwwroot\<site name>.

To copy POSchema.xml to the destination server

  • Copy the POSchema.xml file located in <drive:>\inetpub\wwwroot\<site name> to the path <drive:>\Program Files\Microsoft BizTalk Server\BizTalkServerRepository\DocSpecs\Microsoft.

See Also

Copying and Importing Required Files for the Source Server

Setting Up Your Catalogs for BizTalk Server


Creating a Destination Organization on the Destination Server

The destination BizTalk Server is the vendor. An organization can be the source or the destination in a messaging port, distribution list, or channel. An organization can represent an external trading partner, your own company, or a business unit within a trading partner or your company. Each organization has unique identifiers that identify it to BizTalk Server and to other trading partner organizations.

To support basic authentication, you use the ReceiveStandard.asp file that is shipped with BizTalk Server. The ReceiveStandard.asp page collects information and submits it to BizTalk Server. To implement a secure Web site, you must set privileges on ReceiveStandard.asp.

On the destination server, you must create both a source organization and a destination organization.

To set privileges on ReceiveStandard.asp

To create a destination organization on the destination server

To create a source organization

To set privileges on ReceiveStandard.asp

  1. Click Start, point to Programs, point to Administration Tools, and then click Internet Services Manager.
  2. Expand the <server name>, expand the default website, select the site (for example, Retail), and then right-click ReceiveStandard.asp.
  3. In the File Security tab, in the Anonymous access and authentication control section, click Edit.
  4. In the Authentication Methods dialog box, in the Anonymous access section, click Edit.
  5. In the Anonymous User Account dialog box, in the Username box, type the Windows user name of the account used to access this computer. In the Password box, type the Windows user account password.
  6. In the Anonymous User Account dialog box, click OK.
  7. In the Authentication Methods dialog box, click OK.
  8. In the ReceiveStandard.asp Properties dialog box, click OK.
  9. Close Internet Services Manager.

ReceiveStandard.asp is set up for secure operations. Access to the site is locked and the receiver of a purchase order exchange or catalog exchange will need to know the user account and password.

To create a destination organization on the destination server

  1. On the destination BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, in the Configuration Options dialog box, click Cancel to close the dialog box.
  3. In the left pane, in the Search for other items area, click Organizations, and then click Search Now to display the list of available organizations.
  4. In the list of available organizations, double-click Home Organization.
  5. In the Organization Properties dialog box, on the Identifiers tab, click Add.
  6. In the New Identifier dialog box, verify the Custom option is selected, and then type MyCompany.
  7. In the Qualifier box, type MyCompany.
  8. In the Value box, type the name of the source organization (for example, Receiver).
  9. Select the Set as default check box to set the source organization as the default organization, and then click OK.
You must designate a default organization before you can create a messaging port. The default organization can serve as either the source or the destination for each new messaging port. You can designate a different default organization at any time and then create messaging ports that use the new default organization.
  1. On the Applications tab, click Add.
  2. In the New Application dialog box, type the application name (for example, POApplication), and then click OK.
  3. In the New Organization dialog box, click OK.

The source organization on the destination server is created and specified as the default organization.

To create a source organization

  1. In BizTalk Messaging Manager, on the File menu, point to New, and then click Organization.
  2. In the New Organization dialog box, on the General tab, in the Organization name box, type the name of the destination organization (for example, Source).
  3. In the Comments box, type any necessary comments about the destination organization.
  4. On the Identifiers tab, click Add.
  5. In the New Identifier box, select the Custom option, and then type MyCompany.
  6. In the Qualifier box, type MyCompany.
  7. In the Value box, type the name of the receiver (for example, Sender), and then click OK.
  8. In the New Organization dialog box, click OK.

The destination organization is created.

See Also

Creating Document Definitions on the Destination Server


Creating Document Definitions on the Destination Server

A document definition represents a business document in a messaging port, channel, or distribution list. A document definition provides a pointer to a specification that defines the document. A document definition can be associated with any number of messaging ports, channels, and distribution lists.

The destination BizTalk Server is the vendor.

To create a document definition with an associated XML file

  1. On the destination BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, on the File menu, point to New, and then click Document Definition.
  3. In the New Document Definition dialog box, in the Document definition name box, type a name for the document definition (for example, PurchaseOrder).
  4. Select the Document specification dialog box, and then click Browse.
  5. In the Select a Document Specification from the WebDAV Repository dialog box, double-click the Microsoft folder.
  6. Select an Extensible Markup Language (XML) file (for example, POSchema.xml), and then click Open.
  7. In the New Document Definition dialog box, click OK.

A purchase order is created with an associated custom XML file.

See Also

Creating a Messaging Port on the Destination Server


Creating a Messaging Port on the Destination Server

The destination BizTalk Server is the vendor.

To create a messaging port on the destination server

  1. On the destination BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, on the File menu, point to New, point to Port, and then click To an Application.
  3. In the New Messaging Port Wizard, in the General Information screen, in the Name box, type the name of the port (for example, OnPortFromSource), and then click Next.
  4. In the Destination Application screen, select the Application option, and then in the Name box, select the name of the application (for example, POApplication) from the drop-down list.
  5. In the Primary Transport section, click Browse to the right of the Address box.
  6. In the Primary Transport dialog box, in the Transport type box, select HTTP from the drop-down list.
  7. In the Address box, type http://<destination server name>/<site name>/_recvpo.asp, and then click OK.
  8. Click Next.
  9. In the Envelope Information screen, leave the Envelope information box blank because the default XML file is being used.
  10. Click Next.
  11. In the Security Information screen, verify the Create a channel for this messaging port check box is selected.
  12. In the Channel type box, select From an application from the drop-down list, and then click Finish.
  13. In the General Information screen, click Cancel.

The messaging port between the Home Organization and the destination organization is created.

See Also

Creating a Channel on the Destination Server


Creating a Channel on the Destination Server

A channel is a set of properties that you can use to provide BizTalk Server with the rules for processing a document that it receives. After a channel has processed a document, it is passed to its associated messaging port or distribution list to be transported to the specified destination. You can create one or more channels for a messaging port or distribution list.

The destination BizTalk Server is the vendor.

To create a channel on the destination server

  1. On the destination BizTalk Server, click Start, point to Programs, point to Microsoft BizTalk Server, and then click BizTalk Messaging Manager.
  2. In BizTalk Messaging Manager, in the left pane, click the Messaging ports link in the Search for other items area, and then click Search Now.
  3. Select the port that the channel will be associated with (for example, SubmitPort).
  4. On the File menu, point to New, point to Channel, and then click From an Organization.
  5. In the New Channel Wizard, in the General Information screen, in the Name box, type the name of the channel (for example, InChannelFromSource), and then click Next.
  6. In the Source Organization screen, verify the Organization option is selected.
  7. Click Browse to the right of the Name box.
  8. In the Select an Organization dialog box, select the destination organization (for example, MySupplier), and then click OK.
  9. In the Organization identifier box, verify <source organization>/ <identifier value> (Default) as the identifier, and then click Next.
  10. In the Inbound Document screen, click Browse to the right of the Inbound document definition name box.
  11. In the Select a Document Definition dialog box, select the document definition (for example, PurchaseOrder), and then click OK.
  12. In the Inbound Document screen, click Next.
  13. In the Outbound Document screen, click Browse to the right of the Outbound document definition name box.
  14. In the Select a Document Definition dialog box, select the document definition (for example, PurchaseOrder), and then click OK.
  15. In the Outbound Document screen, click Next.
  16. In the Document Logging screen, click Next.
  17. In the Advanced Configuration screen, click Finish.

The channel between the Home Organization/application and the Home Organization for the source/sender messaging port is created.


Setting Up Your Catalogs for BizTalk Server

When you set up an agreement with a vendor, the vendor ID is made available to Commerce Server. The vendor ID is the organization name that you specify for the vendor when you create a destination organization for the source server. For more information, see Creating Source and Destination Organizations on the Source Server.

Commerce Server displays the vendor ID in Commerce Server Business Desk. It displays those trading partners (organizations) that support the same document type as your organization, and thus have compatible document routing. You can then use Business Desk to associate the vendor ID and the catalog.

More than one catalog can be associated with a given vendor. You can also specify a vendor at the product level; however, if you do this you must also customize _additem.asp.

If you name a vendor Default, Commerce Server recognizes your own site as the vendor.

Note

  • When a user orders an item from your Web site, the item must exist in the catalog of the destination organization. If the destination organization does not have the item in its catalog, BizTalk Server will not be able to send the purchase order from your site to the vendor. It will write an error message to the event log instead.

To associate a catalog with a vendor

  1. From Commerce Server Business Desk, in Catalogs, click Catalog Editor.
  2. In the Catalogs screen, select the catalog you want to add the vendor ID to, and then click Open on the toolbar.

    In the Catalog Editor - <catalog name> screen, in the Vendor ID box, click the ellipsis to display a list of vendor identifications. Select the appropriate vendor identification for this catalog.

    Commerce Server updates the list of vendors automatically each time you create another agreement with a vendor by using BizTalk Server.

  3. To save your change to the catalog and return to the Catalogs screen, click Save and go back on the toolbar.

See Also

Example: Configuring the Source Server for Exchanging Catalogs

Creating a Base Catalog

Sending a Catalog to a Trading Partner


Extending the Content Selection Framework

The Content Selection Framework (CSF) is a platform-level framework for building targeted content delivery applications on the Internet. The targeted advertising and discount features of Microsoft Commerce Server 2002 are built by using CSF. The framework provides the means for building new types of content delivery applications and makes it easy to customize and extend the advertising and discount delivery systems.

This section contains:

  • Extending the Capabilities of the Content Selection Framework. Describes how to extend the scoring, selection, recording, and cache loading capabilities of the CSF.
  • Content Selection Framework Concepts. Describes scoring, filtering, tracing and debugging, selecting, formatting, and recording events in the CSF.
  • Objects and Components of the Content Selection Framework. Describes the functionality of the objects and components of the CSF.
  • Lifecycle of a Request for a Targeted Advertisement Describes the steps involved in targeting advertisements.
  • Performance and Scalability of the Content Selection Framework. Describes how to ensure that your custom extensions to the CSF maintain maximum performance.
  • Creating the CSF Headlines Sample. Describes how to install and run the custom CSF Headlines sample.
  • Content Selection Framework Component Reference. Lists the components associated with the CacheManager object, the CSF pipelines, and the framework.


Extending the Capabilities of the Content Selection Framework

This section describes some of the ways you can extend the Content Selection Framework (CSF). Because the CSF is built on pipelines, it can be extended in many different ways: scoring, selection, recording, and cache loading.

Scoring

Selection

Recording

Cache Loading

Scoring

You can create pipeline components that score content in different ways. An example of this is the CSF Headlines sample scoring component that takes into account the publish date for a headline and its priority in order to compute a score for the headline. Scoring components can also be more general, such as a scoring component that uses neural network technologies in order to score content based on its likelihood of being clicked or leading to a purchase on your site.

Selection

The SelectWinners pipeline component uses a deterministic selection algorithm when selecting generic content; it selects the content item(s) with the highest scores. You could write a new selection component that instead treats the score of each content item as a probability and uses a random number generator to select from among them.

Recording

Commerce Server 2002 records advertising and other content events to the Internet Information Services (IIS) 5.0 log file and aggregates near real-time counts of these events in the Campaigns database. You could extend this to provide statistical sampling that can be used with a third-party inventory management module. Or, if your business is aligned with a third-party auditing firm, and that firm provides a plug-in pipeline component that provides a different type of event logging, you could extend this by recording advertising events to a database.

Cache Loading

If you want to target dimensions that are not included in the schema of the Campaigns database, you can override the query used by the LoadAdvertisements or LoadDiscounts components and add the new dimensions to the list in the SELECT query. For example, if you run advertisements on multiple Web sites but want to run them all from the same Campaigns database, you could add a dimension for Site. Then each site would use a slightly different query that includes a WHERE Site = 'sitename' clause. Or maybe each ad on your site is associated with a stock ticker, so you add the ticker dimension to the query and then use this to create filters executed by the FilterContent component.


Content Selection Framework Concepts

To optimize your use of Commerce Server 2002, it is important that you understand the underlying concepts on which the Content Selection Framework (CSF) is built.

Scoring

Filtering

Tracing and Debugging

Selecting

Formatting

Recording Events

Scoring

The CSF content selection process is a process of scoring content items and then selecting the "winners" based on those scores. The score for each content item is managed by the ContentList object and is a floating-point number. A content item score of zero means that the content item should not be selected under any circumstances.

There are two stages in a CSF pipeline that manipulate the scores of content items — one to assign an initial score to each item, and one to adjust the score based on targeting criteria. If there is no component in the initial scoring stage, then all content items receive an initial score of 1.0. Score adjustments made in the scoring stage should apply multipliers. A multiplier less than 1.0 can be used to reduce the score of a content item, a multiplier greater than 1.0 can be used to increase the score of a content item, and a multiplier of 0.0 can be used to eliminate a content item from further consideration.

Filtering

Filtering is the process of eliminating content items by using indexes built on the content in the ContentListFactory object. Because a filter uses pre-built indexes, it is considerably more efficient than expression evaluation, but at the expense of reduced flexibility. In the Commerce Server Advertising and Discount pipelines, filters are used on the Page Group and Content Size dimensions, but can be extended to filter on any string, integer, or array column in the ContentList object schema. A filter can require that content items have a particular column value, or it can exclude content items where the column contains particular values. Filters can also use sets of values, so that content items with any one of the values in the set will meet the filter requirements and will be passed through.

Tracing and Debugging

Sometimes it is difficult to know why a particular content item was selected and others were not. To debug or fine-tune a content delivery application, you can enable tracing in the pipeline. You enable tracing by setting the Trace property on the ContentSelector object to true. When tracing is enabled, all modifications to content item scores are tracked. Components that perform scoring should check to see if tracing is enabled, and if it is, then they should pass descriptive strings when calling the SetScore or AdjustScore methods on the ContentList object. The Commerce Server 2002 Software Development Kit (SDK) contains a file called TraceScores.asp that can be used to display the trace strings for each content item, as well as each item's final score. Tracing should be used only for debugging; it should not be used in production. When the Trace flag is on, it severely degrades the performance of the CSF pipelines.

The OrderPipeline object itself provides a rudimentary form of logging so that you can see what values are read and written to or from the Order and Context dictionaries that are passed through the pipeline. To enable this type of debug logging, call the SetLogFile method on the pipeline.

Selecting

After score adjustments have been made, the CSF pipeline has to select the "winners." The SelectWinners component provided with Commerce Server treats advertisements differently than generic content items. For generic content items, it simply picks the item(s) with the highest score. For advertisements, it first decides whether to show a house ad or a paid ad. If a paid ad is selected, it takes the ad with the highest score. If a house ad is selected, it uses the weights of all house ads as probabilities and selects from among them randomly. The SelectWinners component also prevents competing ads from running on the same page and can use a PageHistory string to prevent selecting the same content item multiple times on the same page.

Formatting

The winning content item(s) need to be formatted as strings before they are returned to the page. Formatting brings the properties of the content item and the global- and page-level context properties together and uses them as insertion strings into a provided template. The end result of formatting is a SimpleList object of string values, with each list entry containing the string representing a content item. For information about the formatting process, see FormatTemplate.

Recording Events

Whenever an ad is served or clicked, this event has to be recorded. The Need of Delivery (NOD) algorithm for advertisements uses this event information to compute the score of an ad. The RecordEvent component records these events into an in-memory Dictionary object, called the Performance Dictionary. At the time of the next cache refresh, these events are written to the database by the CSFWriteEvents component. The IISAppendToLog component also records these events to the Internet Information Services (IIS) 5.0 log file for later importing into the Commerce Server Data Warehouse.


Objects and Components of the Content Selection Framework

The objects and components of the Content Selection Framework (CSF) perform all the tasks associated with the scoring, filtering, and selection of targeted content.

CacheManager Object

ContentList and ContentListFactory Objects

ContentSelector Object

Pipelines and Pipeline Components

Expression Evaluator Component

User Object

Targeting Context Profile

Data Warehouse and Analysis Reports

CacheManager Object

The CacheManager object provides simple cache management services. It can periodically invoke Component Object Model (COM) components to fill a cache object, usually a Dictionary component, with information used in the content delivery process. It can also invoke components to write out information collected during the content delivery process, for example, counts of advertising events such as ad requests and ad clicks. For information about how to author these COM components, called Loader and Writer components, see Code to Implement Custom Cache Components.

ContentList and ContentListFactory Objects

The cache loader COM components invoked by the CacheManager object usually create a ContentListFactory object, which contains the entire content set that is available for selection. For each request for content coming in from the ContentSelector object, the ContentListFactory creates a new ContentList object to be used by that single request only. The ContentList object provides methods for scoring and filtering the content in the ContentListFactory object.

ContentSelector Object

The ContentSelector object is the unified interface for selecting all types of dynamic and targeted content displayed on the site. The ContentSelector object provides the means to pass extensible sets of global- and page-level properties to the Content Selection pipelines. It invokes the appropriate pipeline object and returns the resulting content as a SimpleList object of formatted content strings, usually HTML or XML.

Pipelines and Pipeline Components

The core work of content selection occurs in pipelines. Content Selection pipelines are separated into stages such as scoring, selecting, and formatting. You can write custom pipeline components that plug into these stages, either to replace the functionality of an existing Commerce Server 2002 CSF pipeline component or to augment the default behavior.

Scriptor components allow you to prototype a pipeline component in Microsoft Visual Basic Scripting Edition (VBScript) or JScript. Pipelines are also used in the CSF for recording events related to content selection, such as ad requests and ad clicks. For information about the stages in a CSF pipeline and the CSF pipeline components provided with Commerce Server, see Content Selection Pipelines. For information about how to write pipeline components by using the Commerce Server 2002 Software Development Kit (SDK), see Building Pipeline Components.

Expression Evaluator Component

The Expression Evaluator component provides flexibility for targeting content on your site. Expressions are constructed in Commerce Server Business Desk, grouped into target groups, and associated with content items available for selection on the site. At run time the EvalTargetGroups component evaluates the expressions in each target group and adjusts the scores of content items in the ContentList object. You can think of expressions as representing the goals for a content item, for example, if you want an ad to be shown to users whose favorite sport is football, but only to those users who are also over the age of 18.

User Object

To target users on your site, you will need to store information about those users and retrieve that information at run time. The Profiles resource and associated profile objects provide the means to do so. At design time you can manage and extend the properties available in the User object profile definition by using the Profile Definition Designer module available in Business Desk and in the Profiles resource in Commerce Server Manager.

Targeting Context Profile

In addition to targeting users of your site, you might also want to target other information representing the context of a request for content. Examples of this are targeting content to users who are visiting your site from a particular domain, targeting content to specific pages or page groups on your site, and targeting content to pages where specific search keywords are provided.

The ContentSelector object serves the dual role of being the interface to CSF content selection, as well as being a property bag for setting context properties for targeting by expressions or filters. At design time you can manage and extend the properties available in the context profile by using the Profile Definition Designer module available in Business Desk and in Commerce Server Manager.

Data Warehouse and Analysis Reports

The Content Selection Framework enables you to log event data related to content selection into the IIS log files for your site. The log files can then be imported into the Data Warehouse for reporting. You use the Analysis modules in Business Desk to run reports on the user and site data stored in your Data Warehouse, and you use the results of those reports to perform business analytics on the performance of your Web site.


Lifecycle of a Request for a Targeted Advertisement

This topic describes the steps the Content Selection Framework (CSF) follows to retrieve a targeted advertisement for delivery on the site. The discount selection process is identical, except for replacing the AdvertisingNeedOfDelivery component in one pipeline with the ScoreDiscounts component in the other.

A user accesses an ASP Web page

A user clicks an ad

The CacheManager object background thread fires

A user accesses an ASP Web page

  1. The code in the ASP page creates the ContentSelector object (CSO).
  2. The code in the ASP page sets the CSO page context properties.
  3. The code in the ASP page calls the CSO.GetContent method.
  4. The CSO invokes the Advertising pipeline.
  5. The InitCSFPipeline component calls the CacheManager.GetCache method.
  6. The CacheManager object invokes the CSFLoadAdvertisements component (only the first time).
  7. The InitCSFPipeline component copies some page and global context properties into the Pipe Context dictionary.
  8. The InitCSFPipeline component creates filters for the Size and PageGroups properties.
  9. The LoadHistory component loads the user-specific history string.
  10. The FilterContent component applies the filters.
  11. The AdvertisingNeedOfDelivery component assigns each ad an initial score based on the start date and end date of the ad, the duration of the ad run, and how many events have been served to date.
  12. The HistoryPenalty component applies penalties for ads that have already been shown to the current user and enforces exposure limits.
  13. The EvalTargetGroups component evaluates target groups and adjusts scores.
  14. The SelectWinners component selects the winning advertisement(s). It prevents industry collision and uses the PageHistory string to avoid showing the same ad multiple times on the same page.
  15. The RecordEvent component records the event to an in-memory performance dictionary.
  16. The IISAppendToLog component records the event to the IIS log file.
  17. The RecordHistory component records the event to the user-specific history string.
  18. The SaveHistory component saves the user-specific history string.
  19. The FormatTemplate component formats the selected advertisements using a template that brings together ad properties, page context, and global context and puts the resulting strings into a SimpleList object.
  20. The CSO returns a SimpleList object of formatted advertisements.
  21. The content is rendered onto the ASP page.

A user clicks an ad

  1. The Redir.asp page is called.
  2. The Redir.asp page invokes the RecordEvent component.
  3. The RecordEvent and IISAppendToLog components are called.
  4. The content is rendered onto the ASP page.

The CacheManager object background thread fires

  1. The CSFWriteEvents component flushes events in the in-memory performance dictionary to the database.
  2. The CSFLoadAdvertisements component loads new advertising information, including the updated aggregate event counts used for the Need Of Delivery (NOD) calculation.

See Also

Example Code for ContentSelector Object


Performance and Scalability of the Content Selection Framework

This topic presents tips for how to ensure that your custom extensions to the Content Selection Framework (CSF) maintain maximum performance.

Make pipeline components free-threaded and marked as poolable

While it is possible to create CSF pipeline components by using Microsoft Visual Basic 6.0, it is not recommended. Visual Basic components are always apartment-threaded and therefore the pipeline has to create a new instance of your component for each content request. For maximum performance, implement your pipeline components in Microsoft Visual C++ by using the Active Template Library (ATL). Make the components both-threaded and be sure to indicate to the pipeline that it can pool the components by adding the Component Object Model (COM) category, CATID_POOLABLE, to the registration information of your component.

Avoid database access on a per-request basis

For performance reasons, the CSF was designed to avoid database or disk access on each content request. Instead, it caches all of the content into in-memory ContentListFactory and Dictionary objects. It queues up campaign item event data and writes it out during the next cache refresh. When writing your own extensions to the CSF, try to retain this design point, if possible.

Too much content to fit in a single in-memory cache

If the amount of content being served by the CSF grows too large, it might not be possible to store all of the content in a single ContentListFactory object. For example, if there are more than 1,000 content items being considered, they should be segmented into multiple content caches. Find a dimension to segment on, such as page group or site name.

Alternatively, in the Load Context stage of your CSF pipeline, you can make a query against a content store, such as a Microsoft SQL Server 2000 database. Use the results of the query to build a ContentListFactory object unique to the request that contains a small subset of the content. If you use this method, build filtering in as part of your query to avoid building a new index on each ContentListFactory object that is created.

Prefer filtering to expression evaluation

When you have a dimension that is commonly used for targeting on your site, consider using a filter instead of expressions to target that dimension. Because filters use pre-built indexes on the ContentListFactory object, they are more efficient than expressions. However, filters generally require a site developer to set them up, whereas a business manager can create and manage expressions.

The "funnel effect"

Try to arrange your filtering and scoring operations in order of increasing performance cost. Filtering should be first (hence its order in the CSF pipeline), followed by rudimentary scoring, such as application of exposure limits. The last step should generally be expression evaluation because it is usually the most costly operation. Your goal should be to eliminate as much content as possible, as early as possible. For example, if your site uses multiple ad banner sizes, any given user request is usually for only one of those sizes, so a filter is used to quickly eliminate all ads with a size that does not match the requested size. You should look for other opportunities to apply such filtering.


Creating the CSF Headlines Sample

The Commerce Server 2002 Software Development Kit (SDK) includes a sample called CSF Headlines that contains components that you can use for displaying targeted news headlines on a site. It includes a scoring pipeline component and a custom cache loader component for loading the headlines and for creating a ContentListFactory object.

This section contains:

  • Step 1: Installing the CSF Headlines Sample
  • Step 2: Preparing SQL Server for the CSF Headlines Sample
  • Step 3: Preparing the CSF Components for the CSF Headlines Sample
  • Step 4: Running the CSF Headlines Sample


Step 1: Installing the CSF Headlines Sample

To install the CSF Headlines sample, perform the following procedures.

To install the CSF Headlines sample

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Commerce Site Packager.
  2. In the Commerce Server Site Packager screen, select Unpack from a package file [.pup], and then click Next.
  3. In the Unpack dialog box, click Browse.
  4. In the Open dialog box, navigate to <drive:>/Program Files/Microsoft Commerce Server/PuP Packages, select Blank.pup, and then click Open.
  5. When you are returned to the Unpack dialog box, select Custom Unpack, and then click Next.
  6. In the Unpack Method dialog box, click Create a new site, and then click Next.
  7. In the Site Name screen, type CSFHeadlines in the Site name box, and then click Next.
  8. In the Select Resources screen, accept the default setting, which unpacks all the resources in the Resources to unpack box, and then click Next.
  9. In the Global Resource Pointers screen, accept the default settings, and click Next.
  10. In the Database Connection Strings screen, accept the default settings, and click Next.
  11. In the Commerce Server Site Packager dialog box, do the following:
    Use this | To do this
    SQL user name | Type your SQL Server user name.
    SQL password | Type your SQL Server user password.
  12. Click OK.
  13. In the Select Applications screen, accept the default settings, and then click Next.
  14. In the Select IIS Web Sites and Virtual Directories screen, in the IIS virtual directory box, which currently holds the value blanksite, type CSFHeadlines.
  15. In the Application box, select BlankBizDesk, and in the IIS virtual directory box that currently holds the value blankbizdesk, type CSFHeadlinesBizDesk, and then click OK.
  16. Accept the default settings for the following dialog boxes, and click Next until you reach the Unpackaging is complete! dialog box.
  17. To close the Commerce Server Site Packager screen, click Finish.

To Update the ASP scripts and the pipeline directory

  1. Click Start, point to Programs, point to Accessories, and then click Windows Explorer.
  2. Copy the files GLOBAL.ASA, DEFAULT.ASP, DUMPCONTENTLIST.ASP, and TESTHEADLINESLOADER.ASP from <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\Web to <drive:>\Inetpub\wwwroot\CSFHeadlines.
  3. In the Confirm File Replace dialog box, click Yes to All.
  4. Copy the pipeline directory and the files within it from <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\SQL\Web to <drive:>\Inetpub\wwwroot\CSFHeadlines.

For more information about unpacking a site, see Unpacking a Site. The file to unpack, Blank.pup, is located in the <drive:>\Program Files\Microsoft Commerce Server\PuP Packages directory.


Step 2: Preparing SQL Server for the CSF Headlines Sample

To prepare Microsoft SQL Server for the CSF Headlines sample, perform the following procedure. The CSF Headlines sample must be installed before continuing.

To prepare SQL Server for the CSF Headlines sample

  1. Click Start, point to Programs, point to Microsoft SQL Server, and then click Query Analyzer.
  2. In the Connect to SQL Server dialog box, do the following:
    Use this | To do this
    SQL Server | Type the name of the SQL Server computer.
    Connect using | Select SQL Server authentication.
    Login Name | Type your SQL Server login name.
    Password | Type your SQL Server password.
  3. Click OK.
  4. In the SQL Query Analyzer screen, on the Query menu, click Change Database.
  5. In the Select Database dialog box, select CSFHeadlines_commerce, and then click OK.
  6. On the File menu, click Open.
  7. In the Open Query File dialog box, navigate to <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\SQL, select headlines_config.sql, and then click Open.
  8. On the Query menu, click Execute.
  9. On the File menu, click Open.
  10. In the Open Query File dialog box, navigate to <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\SQL, select sample_headlines.sql, and then click Open.
  11. On the Query menu, click Execute.
  12. On the File menu, click Exit.

See Also

Step 1: Installing the CSF Headlines Sample


Step 3: Preparing the CSF Components for the CSF Headlines Sample

To prepare the Content Selection Framework (CSF) components for the CSF Headlines sample, perform the following appropriate procedure for the programming environment. The CSF Headlines sample must be installed and SQL Server must be prepared before performing these procedures.

To prepare the CSF components for the CSF Headlines sample in Visual C++

  1. Click Start, point to Programs, point to Microsoft Visual Studio 6.0, and then click Microsoft Visual C++.
  2. On the File menu, click Open.
  3. In the Open dialog box, navigate to <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\Components\Scoring, select CSFScoreHeadlines.dsw, and then click Open.
  4. In the CSFScoreHeadlines - Microsoft Visual C++ screen, on the Build menu, click Build.
  5. After the project has been built, on the File menu, click Save Workspace.
  6. On the File menu, click Exit.

To prepare the CSF components for the CSF Headlines sample in Visual Basic

  1. Click Start, point to Programs, point to Microsoft Visual Studio 6.0, and then click Microsoft Visual Basic 6.0.
  2. In the New Project screen, on the Existing tab, navigate to <drive:>\Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Headlines\Components\CacheLoader, select HeadlineLoader.vbp, and then click Open.
  3. Build the project.
  4. After the project has been built, on the File menu, click Save Project.
  5. On the File menu, click Exit.

See Also

Step 1: Installing the CSF Headlines Sample

Step 2: Preparing SQL Server for the CSF Headlines Sample


Step 4: Running the CSF Headlines Sample

To run the CSF Headlines sample, complete the following procedure. The CSF Headlines sample must be installed, and both SQL Server and the Content Selection Framework (CSF) components must be prepared before performing this procedure.

To run the CSF Headlines sample

  1. Click Start, point to Programs, and then click Internet Explorer.
  2. In the Address box, type http://<server name>/csfheadlines/default.asp, and then press ENTER.

The CSF Headlines Web page appears.

The targeted headlines appear on the page, as well as debugging and tracing information about the data processed in the pipeline and the data stored in the cache. Click the Refresh button on your browser to see the changing headlines.

You can try changing the headline dates and priorities in the headline table in Microsoft SQL Server and watch the effect on the headline scores. While no Commerce Server Business Desk module is provided for managing headlines, you can create advertisements and then convert them to headlines by adding corresponding records to the Headline table and changing the Guid_campitem_type column in the Campaign_item table to match the globally unique identifier (GUID) for headline type content (retrieve this GUID from the Campitem_types table).

See Also

Step 1: Installing the CSF Headlines Sample

Step 2: Preparing SQL Server for the CSF Headlines Sample

Step 3: Preparing the CSF Components for the CSF Headlines Sample


Content Selection Framework Component Reference

The Content Selection Framework (CSF) contains many object-specific components. This section contains a list of CSF pipeline and CacheManager object components and links to them in the Programmer's Reference.

This section contains:

  • CacheManager Components
  • Content Selection Framework Pipeline Components
  • Framework Components


CacheManager Components

The following components are the Content Selection Framework (CSF) components used by the CacheManager object for loading caches and writing out campaign results:

  • CSFLoadAdvertisements
  • CSFLoadDiscounts
  • CSFWriteEvents


Content Selection Framework Pipeline Components

The Content Selection pipeline and the Event Processing pipeline use the Content Selection Framework (CSF) pipeline components for determining targeted content and processing navigational user events. The following table lists the components and their recommended pipeline(s) and stage.

Component | Pipeline | Stage
AdvertisingNeedOfDelivery | Content Selection | Initial Score
EvalTargetGroups | Content Selection | Scoring
FilterContent | Content Selection | Filter
FormatTemplate | Content Selection | Format
HistoryPenalty | Content Selection | Scoring
IISAppendToLog | Content Selection and Event Processing | Record
InitCSFPipeline | Content Selection | Load Context
LoadHistory | Content Selection | Load Context
RecordEvent | Content Selection and Event Processing | Record
RecordHistory | Content Selection | Record
SaveHistory | Content Selection | Record
ScoreDiscounts | Content Selection | Scoring
SelectWinners | Content Selection | Select


Framework Components

The components listed in the following table are not pipeline components, although they can be created or used by pipeline components.

Component | C++ link | Visual Basic link
CacheManager | C++ | Visual Basic
ContentList | C++ | Visual Basic
ContentListFactory | C++ | Visual Basic
ContentSelector | C++ | Visual Basic
ExpressionEval | C++ | Visual Basic


Working with Pipelines

A Commerce Server 2002 pipeline is a software infrastructure that links one or more components and runs them in sequence. Microsoft Commerce Server 2002 uses this infrastructure to implement three pipeline models: the Order Processing pipeline (OPP), the Direct Mailer pipeline, and the Content Selection pipeline.

This section contains:

  • Pipeline Basics. Describes the basic features of Commerce Server 2002 pipelines.
  • Pipeline Editor. Explains how to use the Pipeline Editor to create pipelines from templates, modify existing pipelines by changing properties, and create custom pipelines.
  • Order Processing Pipelines. Describes the various types of Commerce Server 2002 Order Processing pipelines and enhancements to those pipelines, and provides a reference to the stages and components in Order Processing pipelines.
  • Direct Mailer Pipeline. Describes the stages and components used in the Direct Mailer pipeline.
  • Content Selection Pipelines. Describes the stages and components in the Content Selection pipeline that are used for selecting ads, determining discounts, and adding personalization to pages.
  • Pooled Pipelines. Explains how to use pooled pipelines.
  • Building Pipeline Components. Explains how to build new pipeline components in both C++ and Microsoft Visual Basic.

See Also

Pipeline Framework Objects

Types of Pipelines


Pipeline Basics

A pipeline is a software infrastructure that defines and links one or more stages of a business process, running them in sequence to complete a specific task. Pipelines divide processing into stages, which are abstractions that describe a category of work. They also determine the sequence in which each category of work is performed.

Each stage of a pipeline contains one or more pipeline components (COM objects) that can be configured to work with the unique requirements of the site. For example, a typical Order Processing pipeline may include a Shopper Information stage, a Payment stage, and a Shipping stage.

Pipeline configuration files (.pcf) define pipelines. The pipeline specified by the file is created and run by a pipeline object. Commerce Server 2002 provides five objects to run pipelines: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, and OrderPipeline. The MtsPipeline and PooledPipeline objects do not support transactions. The MtsTxPipeline and PooledTxPipeline objects do support transactions.

Note

  • In Commerce Server 2002, pipelines are often run indirectly through the RunPipe method of the OrderGroup object. The RunPipe method creates one of the five pipeline objects and uses it to run the pipeline.

Pipeline configuration files (.pcf files) are usually marked in one of following three ways:

  • Any pipeline. May be loaded into any pipeline.
  • Requires transacted pipeline. Must be loaded into an MtsTxPipeline or PooledTxPipeline pipeline.
  • Requires a non-transacted pipeline. Must be loaded into an MtsPipeline, PooledPipeline, or OrderPipeline pipeline.

The pooled pipelines take advantage of COM+ object pooling to speed up pipeline loading and execution. For more information, see Pooled Pipelines.

Designing Pipelines for Your Site

As the designer of the pipelines for your site, you must take measures to ensure that the pipelines function correctly. First, you should ensure that no pipeline component is configured to overwrite the work done by another component.

Second, you should define the circumstances under which the pipeline is to stop processing. As each component in the pipeline runs, it returns a status that indicates success, a warning, or failure. If you configure a stage to tolerate warnings, the pipeline continues to operate despite a warning generated by a component in that stage. If you configure a stage to tolerate only success, and a component in that stage returns a warning, the pipeline stops processing, and returns an error.


Pipeline Editor

The Pipeline Editor is an application used for creating and editing Commerce Server pipelines. You can use it to edit a pipeline on your local computer or on a computer connected to a local area network (LAN).

Pipelines are described in pipeline configuration (.pcf) files. You create and configure .pcf files with the Pipeline Editor.

The Pipeline Editor displays a pipeline as a pipe, showing the stages of the pipeline as pipe segments. The components used in a stage appear as valves.

The Pipeline Editor with labels indicating the stages and components of a pipeline.

Certain components have an affinity with certain stages. This means that the component was designed for use within that stage. Commerce Server does not enforce this stage and component association. You may include any component in any stage.

Note

  • If you use the Pipeline Editor to display the components having an affinity with a given stage, you will see the Money Converter and Scriptor components. These components have an affinity with all stages.

This section contains:

  • Starting the Pipeline Editor. Describes how to start the Pipeline Editor and load an existing pipeline configuration file.
  • Creating a New Pipeline. Describes how to use the pipeline configuration templates (.pct) to create a new pipeline.
  • Adding a Component to a Pipeline. Describes how to add a component to a stage of a pipeline configuration.
  • Changing the Order of Components in a Pipeline Stage. Describes how to move components up or down within a pipeline stage.
  • Creating a List of Values Read and Written by a Pipeline. Describes how to create a list of values the pipeline reads from and writes to the various dictionaries.
  • Using the Pipeline Editor Property Pages. Describes how to modify the properties — such as names and currency settings — of the various elements of a pipeline.
  • Creating a Custom Pipeline. Describes the process of creating a pipeline that does not use one of the standard templates.


Starting the Pipeline Editor

The following procedure describes how to start the Pipeline Editor.

To start the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open.
  3. Select the .pcf file for the pipeline you want to edit, and then click Open.

The Pipeline Editor opens and displays the .pcf file you selected to edit.

See Also

Creating a New Pipeline

Creating a Custom Pipeline


Creating a New Pipeline

Commerce Server 2002 provides the following standard templates on which you can base a new pipeline. The template files for creating new pipelines have the .pct file extension (pipeline configuration template). When you save the new template, it is saved with the standard pipeline configuration file (.pcf) extension.

Template name | Description
ContentSelection.pct | Seven-stage pipeline used to select content for advertising, promotions, and personalization. Contains the following stages: Load Context, Filter, Initial Score, Scoring, Select, Record, Format.
Empty.pct | Empty pipeline.
EventProcessing.pct | Three-stage event recording pipeline used to track ads, promotions, and sales for schedule updating. Contains the following stages: Load Context, Record, and Format.
Plan.pct | Fourteen-stage Order Processing pipeline (OPP) used to calculate the amount of an order in a retail scenario. Contains the following stages: Product Info, Merchant Information, Shopper Information, Order Initialization, Order Check, Item Price, Item Adjust Price, Order Adjust Price, Order Subtotal, Shipping, Handling, Tax, Order Total, and Inventory.
Product.pct | Five-stage OPP used to check factors affecting the price of a product. Contains the following stages: Product Info, Shopper Information, Item Price, Item Adjust Price, and Inventory.
Purchase.pct | Three-stage OPP. Accepts the final purchase information. Contains the following stages: Purchase Check, Payment, and Accept.
Test.pct | One-stage pipeline. Contains the Test stage.

The template provides a pre-configured pipeline. You can change the names of stages, and delete or add stages.

You can add or delete any component in any stage.

To create a new pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click New.
  3. In the Choose a Pipeline Template dialog box, select a template, and then click OK.
  4. Modify the pipeline as necessary.
  5. On the File menu, click Save As, type the name of the file in the File name box, and then click Save.

See Also

Adding a Component to a Pipeline

Changing the Order of Components in a Pipeline Stage

Creating a List of Values Read and Written by a Pipeline

Using the Pipeline Editor Property Pages

Creating a Custom Pipeline


Adding a Component to a Pipeline

Using the Pipeline Editor, you can add a component to any stage in a pipeline. However, the values that a particular component needs must exist in the order form before the component can successfully complete its function.

Note

  • You need to ensure that the components in the preceding stages have written the necessary values to the order form before the stage where you insert a component that needs those values.

To add a component to a pipeline using the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open, and then select the pipeline you want to modify.
  3. Do one of the following:
    • Right-click the name of the stage in which you want to insert the component, and then click Insert Component. The Choose a component dialog box appears.

      Or

    • Right-click the name of an existing component within that stage, point to Insert Component, and then click either Before or After. The Choose a component dialog box appears.
  4. In the Choose a component dialog box, do the following:
    Use this | To do this
    Stages | Select a stage option.
    Components Select a component.

    Note

    • The stage option you choose determines which components are displayed in the Components section. The default value is the name of the stage where you are inserting the component; selecting this option displays only those components that are used in that stage. Selecting All displays all components, regardless of the stage in which they are normally used.
  5. In the Components list, select the name of the component you want to insert, and then click OK.
  6. To configure the new component, right-click the component, and then click Properties.
  7. In the Component Properties dialog box, do the following:
    Use this | To do this
    Label | Type a name for the component.
    Class ID | Type a globally unique identifier for the component.
    Program ID | Type the programmatic identifier for the component.
    Description | Type a description for the component.
  8. Click Apply, and then click OK.
  9. On the File menu, click Save.

The new component is added to your pipeline.

See Also

Changing the Order of Components in a Pipeline Stage

Creating a List of Values Read and Written by a Pipeline

Using the Pipeline Editor Property Pages


Changing the Order of Components in a Pipeline Stage

You can change the order of components within a pipeline stage using the up or down arrow buttons in the Pipeline Editor.

To change the order of a component in the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open, and then select the pipeline that contains the component whose order you want to change.
  3. Right-click the name of the component whose order you want to change, and then click either Move Down or Move Up.
  4. On the File menu, click Save.

Your changes to the pipeline are saved.

See Also

Adding a Component to a Pipeline


Creating a List of Values Read and Written by a Pipeline

Each component in a pipeline reads values from the order form, performs its function, and then writes values to the order form. Components that run later in the pipeline often read values that previous components have written to the order form. When you are modifying a pipeline or creating a new one, it can be helpful to see a list of the values that each component reads and writes so that you can ensure that the necessary values are present at each point in the pipeline.

With the Pipeline Editor, you can create a text file that lists each component of a pipeline in the order in which it is run. The text file lists all of the components run by the pipeline, including the required components. (The required component always runs last in a stage.) For each component, the file lists the following information:

  • Input values (values read)
  • Output values (values written)
  • Context values (values read from the PipeContext Dictionary object, which is passed as a parameter to the Execute method of the pipeline object)

To create a list of all values read and written by a pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open, and then select the pipeline that contains the values you want to appear on your list.
  3. On the File menu, click Save Values Read & Written.
  4. In the Save as dialog box, specify a location and a file name for the text file, and then click Save.

The Pipeline Editor saves the file and opens it in Microsoft Notepad.

See Also

Adding a Component to a Pipeline

Using the Pipeline Editor Property Pages


Using the Pipeline Editor Property Pages

The Pipeline Editor provides an easy interface for viewing and modifying the properties for pipelines, stages, and components.

You use the following dialog boxes to edit the properties for pipelines, stages, and components.

Element | Dialog Box | Description
Pipeline | Pipe Properties | Pipeline name, the type of pipeline the .pcf file can be used with, currency and LCID settings, and comments.
Stage | Stage Properties | Stage name, description, GUID, mode and error level settings, and comments.
Component | Component Properties, Values Read and Written, Component-specific pages | Component name, Class ID, ProgID, description, values read from and written to the order form, and values read from the Context dictionary object. A component that has configurable properties may have an additional property page whose options are specific to that component.

To view properties in the Pipeline Editor

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. In the Pipeline Editor, right-click the name of the pipeline, stage, or component whose properties you want to view, and then click Properties.

The properties for the pipeline, stage, or component you want to view appear in the Pipeline Editor.

This section contains:

  • Pipeline Properties. Describes how to change properties of the pipeline as a whole, and how to change specific properties in the Pipeline Properties dialog box.
  • Stage Properties. Describes how to change the properties of a stage.
  • Component Properties. Describes how to change the properties of a component.
  • Values Read and Written Properties. Describes how to view the Values Read and Written properties for a component.
  • Creation Error Properties. Describes the error dialog box that appears when a pipeline component cannot be loaded.


Pipeline Properties

You use the Pipeline Properties dialog box to change the name of the pipeline, specify its transaction compatibility, currency mode, or save notes about the pipeline.

The following properties are available in the Pipeline Properties dialog box:

  • Label. Specifies the name that the Pipeline Editor displays for this pipeline. You can change the name by typing a new name.
  • Transaction Compatibility. Specifies what pipeline object this configuration file can be used with. The options are:
    • Any pipeline. Indicates that this configuration file can be used with an OrderPipeline object, with non-transacted pipeline objects (PooledPipeline, MtsPipeline), or with transacted pipeline objects (PooledTxPipeline, MtsTxPipeline).
    • Requires a transacted pipeline (MtsTxPipeline). Indicates that this configuration file can be used only with a transacted pipeline object (PooledTxPipeline, MtsTxPipeline). Transacted pipeline objects are registered with Microsoft Transaction Server (MTS) as transactions required, and hold a transaction that spans all components in the pipeline.
    • Requires a non-transacted pipeline (MtsPipeline). Indicates that this configuration file can be used only with a non-transacted pipeline object (PooledPipeline, MtsPipeline, and OrderPipeline). Non-transacted pipeline objects are registered with MTS as transactions not supported.
  • Currency Mode. Determines how the pipeline handles currency values. The options are:
    • Currency and Integer (compatibility). Allows Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 components using currency values to be mixed in the pipeline. The Required components at the end of each stage maintain and update two sets of currency values — one set for Site Server 3.0 Commerce Edition components and one set for Commerce Server 2002. Mixing Site Server 3.0 Commerce Edition components and Commerce Server 2002 in the same stage requires using the MoneyConverter pipeline component.
    • Currency (high-precision). Uses the higher-precision currency type for all components in the pipeline. Requires that all components using monetary values be able to use the high precision currency values. In general, the names of these components end with the suffix "Cy."
  • Supply a currency LCID. Specifies a locale ID (LCID) for currency handling. The default value is zero (0), which uses the default locale ID of the server.
  • Supply the number of decimal places used for currency rounding. Determines how many digits of precision are held by a currency (for example, two digits are held for United States pennies). This value is used for default rounding processing, and to determine the scaling factor used in legacy currency keys. This property is active only if Currency (high precision) is specified for Currency Mode.
  • Description. An area for you to enter comments about this pipeline.


Stage Properties

You use the Stage Properties dialog box to change the following properties of a pipeline stage:

  • Label. Specifies the name that the Pipeline Editor displays for this stage. You can change the name by typing a new name.
  • Description. An area for you to type a description for this stage.
  • GUID. A globally unique identifier that identifies this stage.
  • Mode. The Mode field is provided for compatibility with Site Server 2.0 pipelines, in which a number identifies which stages of a pipeline are to be run by the RunProduct, RunPlan, and RunPurchase methods of the Page object. Use 1 for RunProduct, 2 for RunPlan, and 4 for RunPurchase. A value of zero (0) prevents the stage from running
  • Error level. When any component in the stage generates an error at or above the level specified in the Error level box, the stage skips the remaining components in the stage, and logs the event in the log file. For more information about component error levels, see Error Levels.


Component Properties

You use the Component Properties dialog box to change the name of the component, to view the Class ID or ProgID of the component, and to save notes about the component.

The following properties are available in the Component Properties dialog box:

  • Label. Specifies the name that the Pipeline Editor displays for this component. You can change the name by typing a new name.
  • Class ID. Specifies the globally unique identifier (GUID) that identifies this component on any computer. This ID never changes.
  • Program ID. Specifies the easily recognizable ID for the component. This ID never changes.
  • Required. Indicates that the pipeline component should not be removed from the pipeline.
  • Description. An area for you to enter comments about this component.


Values Read and Written Properties

You use the Values Read and Written dialog box to view the values that this component reads from and writes to the order form and the values it reads from the Context dictionary object.

Note

  • The Pipeline Editor is unable to display values read and written for components that do not support the IPipelineComponentDescription interface (such as Site Server 3.0 Commerce Edition components).

The following properties are available in the Values Read and Written dialog box:

  • Values Read. Specifies the values that this component reads from the order form before it performs its function.
  • Values Written. Specifies the values that this component writes to the order form or other dictionaries after it has completed its function.
  • Context Values Read. Specifies the values that this component reads from the Context dictionary object. The Context dictionary object is passed as a parameter to the Execute method of the pipeline.

See Also

Creating a List of Values Read and Written by a Pipeline


Creation Error Properties

This dialog box displays an error to help you determine the reason that a pipeline component could not be loaded.

Try the following solutions:

  • Delete the component from the pipeline and then reinsert it.
  • Make sure that the dynamic-link library (DLL) associated with the component is properly registered.
  • If the above solutions do not correct the problem, try reinstalling Commerce Server.


Creating a Custom Pipeline

With the Pipeline Editor you can create a custom pipeline without basing it on one of the preconfigured pipeline template files (.pct).

To create a custom pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. In the Pipeline Editor, on the File menu, click New.
  3. In the Choose a Pipeline Template box, select Empty.pct, and then click OK.

    An empty pipeline file appears.

  4. Right-click Empty Pipeline Template, and then click Properties.
  5. In the Pipeline Properties dialog box, do the following:
    Use this | To do this
    Label | Type a name for the pipeline.
    Transaction Compatibility Select a transaction compatibility option from the drop-down list. The options are:
    • Any pipeline. May be loaded into any pipeline.
    • Requires transacted pipeline. Must be loaded into an MtsTxPipeline or PooledTxPipeline pipeline.
    • Requires a non-transacted pipeline. Must be loaded into an MtsPipeline or PooledPipeline pipeline.
    Supply a currency LCID | Specify a locale ID (LCID) for currency handling. The default value is zero (0), which uses the default locale ID of the server.
    Supply the number of decimal places used for currency rounding Type the number for digits of precision to be held by the currency (for example, two digits are held for United States pennies). This value is used for default rounding processing, and to determine the scaling factor used in legacy currency keys.

    Note

    • This option is active only if Currency (high precision) is specified for Currency Mode.
    Description | Type a description for the pipeline.
  6. Click Apply, and then click OK.
  7. In the Pipeline Editor, right-click the name of the new pipeline, and then click Insert Stage.

    A New Stage placeholder appears in the pipeline.

  8. Right-click New Stage, and then click Properties.
  9. In the Stage Properties dialog box, do the following:
    Use this | To do this
    Label | Type a name for the stage.
    Description | Type a description for the stage.
    GUID | Type a globally unique identifier for the stage.
    Mode Specify the mode for the stage for compatibility with Site Server 3.0 Commerce Edition.

    Note

    • The Mode field is provided for compatibility with Site Server 2.0 pipelines, in which a number identifies which stages of a pipeline are to be run by the RunProduct, RunPlan, and RunPurchase methods of the Page object. Valid values are:
      • 1 — RunProduct
      • 2 — RunPlan
      • 4 — RunPurchase

      A value of zero (0) prevents the stage from running.

    Error level Specify the error level for the stage.

    Note

    • When any component in the stage generates an error at or above the level specified in the Error level box, the stage stops running and generates an error.
  10. Click Apply, and then click OK.
  11. Right-click the name of the new stage, and then click Insert Component.
  12. In the Choose a component dialog box, do the following:
    Use this | To do this
    Stages | Select a stage option.
    Components | Select the name of the component you want to insert.
  13. Click OK.
  14. To configure the new component, right-click the component, and then click Properties. Modify the properties of the component as necessary, and then click OK.
  15. On the File menu, click Save As, and then type a name for the pipeline configuration file in the File name box.

The file is saved with the .pcf file extension.

See Also

Starting the Pipeline Editor

Creating a New Pipeline

Adding a Component to a Pipeline

Changing the Order of Components in a Pipeline Stage

Using the Pipeline Editor Property Pages


Order Processing Pipelines

The Order Processing pipelines (OPP) are software infrastructures that link several components and run them in sequence on an OrderForm or Dictionary object. Commerce Server 2002 includes three basic types of order processing pipelines, which implement aspects of business-to-consumer and business-to-business sites.

This section contains:

  • About Order Processing Pipelines. Describes how the Order Processing pipelines work.
  • Default and Required Components. Explains the role of the Default and Required components in Order Processing pipelines. These components help to ensure data integrity during processing.
  • Currency Enhancements. Describes the high-precision currency data type and how pipeline components handle it.
  • Discount Objects. Explains the basic parts of a discount and how discounts are applied by using discount components.
  • Inventory Objects. Explains how to check and reduce inventory by using inventory components.
  • Shipping Objects. Describes the multiple-shipment shipping architecture and how to use Site Server 3.0 shipping components in Commerce Server 2002 pipelines.
  • Tax Objects. Explains how to use tax components with the multiple-shipment shipping architecture in Commerce Server 2002.
  • Business-to-Consumer Pipelines. Describes the business-to-consumer pipelines, which are the Product, Plan, and Purchase pipelines. These pipelines are used in Commerce Server sites designed for retail shopping by the public.
  • Using the Order Processing Pipelines. Explains how to use Order Processing pipeline components in Commerce Server sites.
  • Order Processing Pipelines Component Reference. Lists the components used in Order Processing pipelines.


About Order Processing Pipelines

Imagine a company department charged with processing a large volume of daily orders. To deal with the volume, the department might divide order processing into a series of steps, assigning one person to calculate shipping, another to ensure that the items ordered are in inventory, and another to check prices.

For such an assembly-line approach to work, some level of coordination is essential among the people charged with order-related tasks. Thus, while dividing order processing into stages to make large-volume processing possible, this hypothetical processing department must also define the rules that coordinate the various tasks.

The Order Processing pipelines (OPP) work in much the same way as this hypothetical department. The Order Processing pipelines divide order processing into stages that describe categories of work. Thus, a typical OPP might include a Shopper Information stage, a Payment stage, and a Shipping stage.

Each stage in a pipeline consists of zero or more components. The components are run in sequence. A component is a Component Object Model (COM) object designed to perform some operation on an OrderForm object or other Dictionary object. In many cases, this operation is small. For example, the DefaultShipping component, which runs in the Shipping stage, ensures that another component has not already calculated the shipping cost. If this cost has already been set, the DefaultShipping component overwrites the value with zero (0) to ensure that components later in the Shipping stage begin with a reliable value.

The OPP further coordinates the work of components by ensuring that every component in an OPP is reading from and writing to the same purchase order. This purchase order is the OrderForm object.

The OrderForm object, which is the link between the Web site and the pipeline, contains all the necessary information to process a purchase, including user, shipping, tax, and item price information. In addition, the OrderForm object supports the methods needed to add new items to itself. After each component in the OPP performs its work on the OrderForm object, the OPP passes the OrderForm object to the next component in the pipeline.

The designer of the pipelines for your site needs to take measures to ensure that the OPP functions correctly. First, configure the pipeline components so that they do not overwrite the work done by other components. (Components such as the DefaultShipping component are exceptions to this rule.) Second, define the conditions under which the OPP will stop processing an OrderForm object. As each component runs, it returns a status value indicating success, a warning, or failure. If you configure a stage to tolerate warnings, the OPP continues to operate despite warnings. If you configure a stage to tolerate only success, and the component returns a warning, then the OPP stops processing the OrderForm object, and returns an error. The pipeline components do not retry the transaction. When the OPP stops processing, the pipeline process fails and the order is not processed.


Default and Required Components

All the templates for the Order Processing pipelines (OPP) include Default and Required components. These components are provided to ensure the integrity of data as it comes into and goes out of a pipeline stage.

In general, Default components appear at the beginning of a stage, and site developers often replace them. Default components are all named as such—DefaultShipping, DefaultPayment, and so on. Default components ensure that critical values for the stage exist. This might involve copying the values of one set of dictionary keys to another set of keys, or initializing some values to zero. If your pipeline does not require special functionality, then the default components do not need to be replaced. However, if you need these Default components to function differently, you will need to either replace these components with other components included in Commerce Server 2002 or create your own custom components. For more information about creating custom components, see Building Pipeline Components. For a list of components included with Commerce Server 2002, see Pipeline Component Reference.

Required components ensure the integrity of the data as it leaves the pipeline stage. In many cases this involves setting values and raising errors or warnings. It can also involve checking that values were set in a previous component.

In addition, some Required components (RequiredItemPrice, for example) automatically perform currency and integer conversions at the end of a pipeline stage when the Currency Mode is set to Currency and Integer (compatibility). This means that if a pipeline stage contains only Site Server 3.0 Commerce Edition or Commerce Server 2002 objects, you do not need to worry about converting the values. For more information about currency handling, see Currency Enhancements.


Currency Enhancements

With Commerce Server 2002, you have the option of using a high-precision currency value representation. This section describes the new currency representation, explains how to use it in both old and new pipelines, and lists the new data functions for handling the currency type. For information about supporting multiple currencies, see Localizing Currencies.

This section contains:

  • Currency Overview. Describes how Site Server 3.0 Commerce Edition and Commerce Server 2002 represent currency values.
  • Currency Modes. Explains the two modes used by Commerce Server 2002 pipelines that allow you to mix old and new components together, or to improve the performance of your pipelines by using only the new currency value representation.
  • Rounding. Explains how fractional units are rounded in the different currency value representations.
  • Data Functions. Lists the new data functions that allow you to use the new currency value representation on your Active Server Pages (ASP) pages.


Currency Overview

Site Server 3.0 Commerce Edition uses long (32-bit) integers to represent money values in the base monetary unit of a locale. The base monetary unit is the smallest denomination of a currency, for example, pennies in the United States. This representation sets a relatively low limit on the maximum value that can be represented.

Commerce Server 2002 supports the OLE Automation currency data type for monetary values. This representation allows for larger values, as well as allowing up to four decimal places (internally the data type is a 64-bit integer scaled by 10000). Site Server 3.0 Commerce Edition used an integer representation ($1.99 needed to be stored as 199). Commerce Server 2002 uses a direct decimal representation ($1.99 is stored as 1.99).

Commerce Server 2002 retains the Site Server 3.0 Commerce Edition representation, as well as providing the higher-precision representation. Two different types of keys in the dictionaries depict the two representations. When a key has a high-precision currency value assigned to it, the key is prefixed with ""cy_"". The prefix follows any other prefix in the key name. For example, the high-precision currency version of the key _oadjust_adjustedprice is _cy_oadjust_adjustedprice.

See Also

Currency Modes

Rounding

Data Functions

Localizing Currencies


Currency Modes

In Commerce Server 2002, the Order Processing pipelines work in two modes: compatibility mode and high-precision mode. The default mode is compatibility mode. In this mode, monetary values are maintained in both formats, though under different dictionary keys. Compatibility mode allows Site Server 3.0 Commerce Edition pipelines to run without change. It also allows for mixing Site Server 3.0 Commerce Edition and Commerce Server 2002 components.

In high-precision mode, only the high-precision currency type is used. This provides better performance because the pipeline maintains only one set of keys. It also avoids possible loss of precision in converting the values to and from the lower-precision integer format.

You can change the mode of a pipeline in the Pipeline Editor. For more information, see Pipeline Properties. If you use the high-precision mode, all the components in the pipeline must support the high-precision currency type.

If you use compatibility mode and you use all Commerce Server 2002 components or all Site Server 3.0 Commerce Edition components within a stage, you do not have to modify your pipeline. Each stage that uses monetary types includes a Required component at the end of the stage. These components automatically update both sets of keys used in compatibility mode.

If you mix Site Server 3.0 Commerce Edition components and Commerce Server 2002 components within a stage, you will need to surround the Site Server 3.0 Commerce Edition component with the MoneyConverter component to ensure that the dictionary values are kept current for both types of components. For more information, see MoneyConverter.

See Also

Currency Overview

Rounding

Data Functions


Rounding

High-precision currency values, unlike the Site Server 3.0 Commerce Edition integer values, have a fractional part. Because of this, Commerce Server 2002 rounds high-precision currency values before writing them to the dictionary. This helps prevent situations where a fractional value might cause a total value that was not equal to the sum of displayed values.

The Commerce Server 2002 Software Development Kit (SDK) sample code for developing pipeline components includes monetary rounding functions for use in building components. See the files moneyinfo.h and moneyinfo.cpp in the SDK for more information.

See Also

Currency Overview

Currency Modes

Data Functions


Data Functions

Commerce Server 2002 provides two data functions for handling the high-precision currency type. Both are methods of the DataFunctions object.

Function | Description
ConvertStringToCurrency | Converts a string representation of money into a currency Variant, based on the specified locale and currency symbol.
LocalizeCurrency | Creates a string representation of a currency value by using a specified locale and currency symbol.

See Also

Currency Overview

Currency Modes

Rounding


Discount Objects

Microsoft Commerce Server 2002 provides a flexible and powerful way to apply and manage discounts. The Content Selection Framework processes discounts by using the same pipelines that are used for ad selection and order processing.

Discounts are set up as parts of campaigns. For information about setting up discounts through Commerce Server Business Desk, see Creating a Discount. For information about the Content Selection pipeline, see Content Selection Pipelines.

This section contains:

  • Overview of Discount Elements. Describes the four elements of a discount: requirement, condition, award, and offer. Also described are the differences between order-level and item-level discounts.
  • How Discounts Are Applied Programmatically. Describes how the condition, award, and offer are evaluated in order to apply discounts to the purchases in the basket.


Overview of Discount Elements

In Microsoft Commerce Server 2002, discounts have four parts. In addition, discounts can apply either to the entire order or to individual items in the order. The four elements of a discount are:

  • Requirement. Requirements are general conditions that must be true for the discount to apply. These are often target expressions that are evaluated based on the user profile and the context profile. An example of a requirement would be that the user be a preferred shopper.
  • Condition. A condition that must be true for the discount to apply. Conditions are evaluated on individual items in the order form. Expressions for conditions can be built with the product picker or the Expression Builder in Commerce Server Business Desk. A condition includes things such as a specific SKU, a product category, or a particular manufacturer.
  • Award. An award condition that must be true for the discount to apply. An award condition is evaluated for individual items in the order form. An award condition can be an expression that the discount applies to any item or to all items.
  • Offer. An offer that is applied if the requirement, condition, and award are met. An offer is what is normally thought of as a discount — a percentage or monetary amount taken off the price of the product.

Discounts can be applied against an entire order (an order-level discount), or they can be applied against items in the order (an item-level discount). Free shipping is the only order-level discount built into Commerce Server. Other order-level discounts require custom programming.

See Also

How Discounts Are Applied Programmatically


How Discounts Are Applied Programmatically

In a Content Selection pipeline, the ScoreDiscounts component adjusts the scores in the list of possible discounts to ensure that the most relevant discounts receive the highest priority. The OrderDiscount pipeline component in an Order pipeline applies the list of discounts to the basket of the user.

The OrderDiscount component first evaluates the requirements of the available discounts. Depending on the discount involved, it uses the user profile and context profile information to form target expressions that it evaluates. In addition, if a discount requires a click, the component checks the discounts_clicked list (a list of campaign item IDs of every item that was clicked).

For each line item in the order, the OrderDiscount component writes two keys to the item dictionary: _n_unadjusted and _cy_oadjust_adjustedprice. The first key is the quantity of the item that has not had discounts applied. The second key is the total price of the items before discounts. The _n_unadjusted key is set to the quantity of the item; the _cy_oadjust_adjustedprice key is set to the total price for the items.

The OrderDiscount component next goes through the items, testing the conditions and awards. As an item is used in a discount, the two keys (_n_unadjusted and _cy_oadjust_adjustedprice) are adjusted appropriately. Discounts are applied from highest to lowest priority. If two discounts have the same priority, the discount appearing first in the database is applied.

There can be a limit to how many discounts can be applied to a basket. This limit is set in Commerce Server Business Desk. If the discount limit has a value of zero (0), discounts are unlimited. The discount limit is a basket limit and does not apply across baskets.

The OrderDiscount component uses a list to ensure integrity in the process. The component stores a list of discounts that were applied and the last time the discount was modified. If, on the next request, discounts that were applied no longer apply, the pur_dicountremoved error is added to the _Basket_Errors list.

The discount cache must be manually refreshed after changes are made to any discount. You can do this by using the Publish Campaigns module in the Campaigns category of Business Desk.

One way to implement discounts on your site is to accept promotional codes. First, set up the discount properties and the display information through Business Desk. Next, configure the discount definition by using the Expression Builder. For example, the expression could be Context.PromoCode equals 1234. Modifications will need to be made to the source code for the site. When the basket pipeline is called, a ContextProfile dictionary (which is a subdictionary of the Context dictionary) must be passed, and the promotional code entered must be set.

See Also

Overview of Discount Elements

Step 6: Updating the campaign on the Retail site

Business Desk Campaigns


Inventory Objects

Inventory management in Commerce Server sites usually occurs in two stages in the Order Processing pipelines (OPP).

The first stage, the Inventory stage, is usually configured to include components that determine whether a sufficient number of items are available to fill the order for a given product.

The second stage, the Accept stage, can be configured to modify the product table for a site to reflect the new number of items available for a given product. Optionally, you can use the SQLItemADO component in either the Inventory or Accept stage to reduce the local inventory after the items have been purchased.

This section explains how to use the inventory components included in Commerce Server 2002, and explains how you can use Commerce Server to address issues that arise in the context of inventory control.

This section contains:

  • Inventory and Backordering
  • Reducing Inventory


Inventory and Backordering

How you manage inventory on your site depends largely on how you want to respond to a situation in which a given item is out of stock. In such a situation you can either place the item on backorder, or you can notify the customer that the item is not currently available.

The FlagInventory and LocalInventory components, which have an affinity with the Inventory stage, coordinate with the Product Info stage to support either response.

Flag Inventory Checking

Quantity-Based Inventory Checking

Flag Inventory Checking

The FlagInventory component is designed to identify items in the items SimpleList object that are out of stock. When this component runs, it iterates through the items in the items SimpleList object to verify that the _product_in_stock name/value pair for a given item is not zero (0).

If the _product_in_stock name/value pair evaluates to zero (0), the FlagInventory component can respond in one of two ways. The component supports a Disallow Backorder property, which you set by using the property page for the component. If the Disallow Backorder check box is selected, and _product_in_stock evaluates to zero (0), the FlagInventory component adds a _pur_out_of_stock message to the _Purchase_Errors SimpleList object. If the Disallow Backorder check box is not selected, and _product_in_stock evaluates to zero (0), then the _inventory_backorder name/value pair for the affected item is set to zero (0).

Note

  • The FlagInventory component requires that each line item specify _product_in_stock.

Quantity-Based Inventory Checking

The LocalInventory component compares the number of units in the Quantity name/value pair to the number in the _product_local_inventory name/value pair. The _product_local_inventory name/value pair should represent the actual number of items in stock. If the Quantity name/value pair exceeds _product_local_inventory, the difference between these two numbers is written to the _inventory_backorder name/value pair, provided that the LocalInventory component is configured to allow backordering. Otherwise, the LocalInventory component, like the FlagInventory component, writes a _pur_out_of_stock message to the _Purchase_Errors SimpleList object.

The LocalInventory component should be added to the basket pipeline to check item availability when the product is added to the basket. If you include the LocalInventory component in the pipeline for your site, the script that you use to display the basket to your users should be written to notify them that a requested item is either out of stock or on backorder.

Note

  • The LocalInventory component requires that each line item specify product_local_inventory.


Reducing Inventory

The FlagInventory and LocalInventory components are strictly informational components. This means that while they provide notification that a given item is out of stock, they assume that _product_local_inventory for the line item has been maintained by some other process. The SQLItemADO pipeline component can be used to run an SQL query that updates the product inventory.

Note

  • You must unpack a site before starting the following procedure.

To update your inventory using the SQLItemADO pipeline component

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. In the Pipeline Editor, browse to the location of the file total.pcf (for example, <drive:>\Inetpub\wwwroot\<site name>\pipeline), and then double-click the file.

    The total.pcf pipeline appears.

  3. On the pipeline, select the Inventory stage, and then on the Edit menu, point to Insert Component, and click After.
  4. In the Choose a component dialog box, do the following:
    Use this | To do this
    Stages | Select All.
    Components | Select SQLItemADO.
  5. Click OK. The SQLItemADO component appears as a valve on the pipeline.
  6. Double-click the SQLItemADO component.
  7. In the Component Properties dialog box, on the SQL Item (ADO) tab, do the following:
    Use this | To do this
    Connection String | Type an OLE DB connection string to the table storing the inventory data.
    Query Type the SQL query that will update the inventory in the database. The syntax required to replace values in the SQL query is:

    :<position>

    This will replace the items in the SQL query with items listed in the Parameter List box. For example, if you had to replace two values in an SQL query, the format would be:

    SELECT * FROM:1 WHERE Param2='':2''
    Parameter List | Type the list of values you want to use in the SQL query that will be evaluated at run time. The Parameter List box uses a special format for replacement. To retrieve data from the order form, use the notation item.<orderformvalue>. For example, to retrieve the quantity of the items ordered from the order form, you would use item.quantity.

    Click OK.

  8. To save your changes, on the File menu, click Save.

Special Considerations for Inventory

You might have a situation in which two customers want an item of which there is only one in stock. As the OrderForm object for each customer passes through the Plan pipeline, the inventory components indicate to both customers that the product is in stock. This is correct behavior, because the number that indicates how many items of a given SKU are in stock has not yet been reduced to zero (0) by an Accept stage component.

However, when the first customer runs through the Purchase pipeline, the SQLItemADO component will reduce the in-stock value to zero (0). When the second customer runs through the Purchase pipeline, the SQLItemADO component will reduce this value to a negative integer. This scenario creates a backorder, even if the Plan pipeline for the site is configured to not allow back ordering.

There are two ways to address this problem:

  • One solution is to include at the beginning of the Accept stage a SQLItemADO component that checks to ensure that the number of items in stock for a given SKU is greater than zero (0). If no items for a given SKU are in stock, the SQLItemADO component can place the items on backorder (by initializing the _inventory_backorder name/value pair) or can raise the _pur_out_of_stock error.
  • A second solution is to include an instance of the appropriate inventory component, FlagInventory for example, in both the Inventory stage (Plan pipeline) and the Accept stage (Purchase pipeline). Following this component, you would include the SQLItemADO component. The inventory component would run the query to decrement the in-stock value for the item.


Shipping Objects

Microsoft Commerce Server 2002 provides components to support multiple shipments per order.

This section contains:

  • Multiple-shipment Shipping Architecture. Describes the multiple-shipment shipping architecture, the components and objects it uses, and provides code showing how to use these features.
  • Multilingual Shipping Methods. Describes how to display shipping methods in the user's preferred language.
  • Using Site Server 3.0 Commerce Edition Shipping Components. Describes how to use the Site Server 3.0 Commerce Edition shipping components.


Multiple-shipment Shipping Architecture

The Commerce Server 2002 multiple-shipment shipping architecture consists of three pipeline components and two objects that work together to create a powerful and easy-to-use way of handling shipping.

This section contains:

  • Overview of the Multiple-shipment Shipping Architecture. Describes the multiple-shipment shipping architecture and components.
  • Setting Up the Pipeline and Cache. Describes the Active Server Pages (ASP) code required for using the multiple-shipment components in the pipeline.
  • Using the Splitter Component to Create Multiple Shipments. Describes how to set up the Splitter component to divide orders into multiple shipments.
  • Previewing Shipping Costs. Describes how to provide shipping cost previews.
  • Adding Shipping Methods and Components. Describes how to add shipping methods and individual shipping components to the multiple-shipment shipping architecture.
  • Shipping and Address Structures. Describes the dictionaries and simple lists used in the processing of multiple shipments.

See Also

Using Site Server 3.0 Commerce Edition Shipping Components

MinMaxShip Sample Pipeline Component


Overview of the Multiple-shipment Shipping Architecture

The multiple-shipment shipping architecture of Commerce Server 2002 has two purposes: simple modification of shipping method configuration by non-programmers, and the processing of multiple shipments per order.

In the multiple-shipment shipping architecture, the Shipping stage generally uses the same three components: the Splitter, the ShippingMethodRouter, and the ShippingDiscountAdjust components. The Splitter component in its shipping configuration takes the order and splits it into separate shipments. The ShippingMethodRouter component then processes the separate shipments. From the shipment and a database table of shipping information, the ShippingMethodRouter component determines which individual shipping component to use to process a given shipment. The optional third pipeline component, the ShippingDiscountAdjust component, applies shipping discounts to the order.

The ShippingMethodRouter, Splitter, and ShippingDiscountAdjust components are the only shipping components that should be inserted in a pipeline. The ShippingMethodRouter component runs shipping methods configured with the ShippingMethodManager object.

All shipping cost calculation components, except the Splitter component, should be registered with the ShippingMethodRouter component. The shipping cost calculation components that the ShippingMethodRouter component runs are configured in the Shipping Methods module in Commerce Server Business Desk.

The following figure illustrates the relationships between all of the parts of the shipment component process.

This figure illustrates how the Splitter component and the ShippingMethodRouter component work with other objects to process shipments.

Two components use the ShippingConfig table, which is used by the ShippingMethodRouter component. Business Desk uses one of these components, the ShippingMethodManager, to modify the database. The business manager can modify shipping methods through the Shipping Methods module in Business Desk.

The second component is the ShippingManagerCache. The CacheManager object uses this component to load data from the ShippingConfig table into the cache. The ShippingMethodRouter component, in turn, uses the ShippingManagerCache component to get and maintain the cached shipping information.

The following table lists the components and objects in the multiple-shipment shipping architecture, and provides links to more detailed information about each object and component.

Object | Description
ShippingMethodRouter | This object determines the shipping method, runs the individual shipping components, and calculates the total shipping costs for the order.
StepwiseShipping | This pipeline component calculates shipping for individual shipments. It handles charging by weight, quantity, and price. This component is run and configured by the ShippingMethodRouter component. This component can be replaced or augmented by custom components.
ShippingMethodManager Object | This object manages the ShippingConfig database table. This table is used by Business Desk through the ShippingMethodManager object. The ShippingConfig table contains the information used by the ShippingMethodRouter component.
ShippingManagerCache | This loader component is used by the CacheManager object to handle data from the ShippingConfig database table.
Shipping Object | This object provides a method, PreviewShipments, to produce shipping cost previews.
ShippingDiscountAdjust | This component applies shipping discounts to an order; it uses the multiple-shipment shipping architecture.
Splitter | In its shipping configuration, this component divides an order into multiple shipments based on a set of distinguishers.

Taxes are calculated on individual shipments because they can vary based on the shipment. New tax components need to take into account the multiple-shipment structure. The SampleRegionalTax component is an example of such a tax component. For more information about the multiple-shipment structure, see Shipping and Address Structures.

Handling charges, however, are calculated based on the order, rather than on the individual shipments.

See Also

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipping and Address Structures


Setting Up the Pipeline and Cache

In the multiple-shipment shipping architecture, the Shipping stage of a pipeline contains two or three components: Splitter, ShippingMethodRouter, and occasionally the ShippingDiscountAdjust component. The Splitter component divides the order into a series of shipments; the ShippingMethodRouter component takes the shipments created by the Splitter component, checks the shipping method, and runs the appropriately configured shipping component.

In addition to including the two pipeline components in the pipeline, you need to add some Active Server Pages (ASP) code to your pages to handle setting up the CacheManager object and to provide the Context dictionary values expected by the Splitter and ShippingMethodRouter components.

Both the Splitter and ShippingMethodRouter components use the CacheManager object to retrieve information from the ShippingConfig database table. The CacheManager object, in turn, uses a loader component, ShippingManagerCache, to retrieve the information from the database. Setting up the CacheManager object for the shipping components is roughly the same as for any other component using the CacheManager object. Most of the code is contained in the Global.asa file, in the Application_OnStart procedure. For example:

'' Code to set up the CacheManager object and loader for the
'' multiple shipping components.

'' Create a Dictionary object to hold the configuration information.
Set dShipConfig = Server.CreateObject(""Commerce.Dictionary"")

'' Add the connection string to the configuration dictionary.
dShipConfig(""ConnectionString"") = ""DSN=shipsamples;UID=username;PWD=******""

'' Create a CacheManager object.
Set oCM = Server.CreateObject(""Commerce.CacheManager"")

'' Set the ProgID of the loader for the cache.
oCM.LoaderProgId(""ShippingManagerCache"") = _
                    ""Commerce.ShippingManagerCache""

'' Set the loader''s configuration dictionary.
Set oCM.LoaderConfig(""ShippingManagerCache"") = dShipConfig

'' Set the CacheManager object refresh interval to 10 minutes.
oCM.RefreshInterval(""ShippingManagerCache"") = 10 * 60

'' Set the CacheManager object retry interval to 1 minute.
oCM.RetryInterval(""ShippingManagerCache"") = 60

'' Store a reference to the CacheManager object in the Application object.
Set Application(""MSCSCacheManager"") = oCM

Note that in the preceding code, you must use the identifier ""ShippingManagerCache"" when setting the LoaderProgID, LoaderConfig, and other properties. On the page that runs the pipeline, only one additional line of code is needed:

'' Add the items specific to the shipping components.
''
''Add a reference to the CacheManager object created in the Global.asa file
''to the Context dictionary.
Set dContext(""CacheManager"") = Application(""MSCSCacheManager"")

The code to invoke the pipeline would follow this code.

See Also

Overview of the Multiple-shipment Shipping Architecture

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipping and Address Structures


Using the Splitter Component to Create Multiple Shipments

The Splitter component allows you to split orders based on any of the attributes of the line items. The default distinguishers for splitting orders are shipping_method_id and shipping_address_id keys. You can specify other keys to use as criteria in the Input Distinguishers box on the Component Properties tab, which can be displayed by double-clicking the Splitter component in the Pipeline Editor.

Each line in the following table represents a dictionary pointed to by an element of the SimpleList object. The dictionaries also include a key, ItemIndexes, which is a reference to a SimpleList object. Each element in the SimpleList object is an index into the LineItems dictionary, containing line items in the actual order.

The following example has four line items, numbered zero through three. The following table contains a list of some of their attributes.

shipping_method_id | shipping_address_id | shipping_date | catalog | vendor
A | Home | ASAP | A | A
A | Home | ASAP | A | A
B | Work | ASAP | B | B
A | Work | 3/1 | C | B

If you split the previous information by the distinguishers shipping_method_id and shipping_address_id, to an output structure called _shipments, a SimpleList object of dictionaries will be on your order form called ""shipments"" with the following entries:

shipping_method_id | shipping_address_id | ItemIndexes
A | Home | 0,1
B | Work | 2
A | Work | 3

If you sort the the four line items by vendor, to an output structure called _Vendors, a SimpleList of dictionaries will be on your order form called ""_Vendors"" with the following entries:

vendor | ItemIndexes
A | 0,1
B | 2,3

Previewing shipping costs for a user is more complex when shipments are split. You can use the PreviewShipments method of the Shipping object to get the data to display in your ASP page. For more information, see Shipping.PreviewShipments.

See Also

Overview of the Multiple-shipment Shipping Architecture

Setting Up the Pipeline and Cache

Previewing Shipping Costs

Adding Shipping Methods and Components

Shipping and Address Structures


Previewing Shipping Costs

To display the shipping cost previews on your page, use the PreviewShipments method of the Shipping object.

The PreviewShipments method creates the shipping cost previews by splitting the order into individual shipments, just as the Splitter component does in its shipping configuration. For more information about how shipment distinguishers are used to split shipments, see Using the Splitter Component to Create Multiple Shipments and Splitter.

The PreviewShipments method returns a SimpleList object of dictionaries, one for each shipment. Each shipment dictionary in turn contains a SimpleList object of dictionaries, each of which contains the shipping cost for using a particular shipping method.

To loop through all the shipping cost previews for all shipments, you might use code like the following:

Set oShip = Server.CreateObject(""Commerce.Shipping"")
ADistinguishers = Array(""shipping_method_id"", ""shipping_address_id"")
slShipments = oShip.PreviewShipments(dOrder, dContext, ADistinguishers)
For Each dShipment In slShipments
    For Each dPreview In dShipment.Previews

        '' Inside the loop, you can get the preview
        '' information:
        '' dPreview(""shipment_error"")  -  the shipment error, if any
        '' dPreview(""shipping_method_id"")  -  the shipping method ID
        '' dPreview(""shipping_method_name"")  -  the shipping method name
        '' dPreview(""description"")  -  the shipping method description
        '' dPreview(""_cy_shipping_total"")  -  the shipping cost

    Next
Next

See Also

Overview of the Multiple-shipment Shipping Architecture

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Adding Shipping Methods and Components

Shipping and Address Structures


Adding Shipping Methods and Components

For business managers and most site developers, the process of adding shipping methods and installing components is straightforward. Shipping methods using installed components are added through Commerce Server Business Desk. For information about using Business Desk to add shipping methods, see Customizing Shipping Methods.

Similarly, installing third-party shipping pipeline components should be a matter of following the installation instructions.

Component developers, however, who need to test components or provide component installers, need to know how to add custom shipping methods to the multiple-shipment shipping architecture. This process is described in Adding a Custom Shipping Method.

Important

  • Shipping components should expose the IPipelineComponentAdmin::GetConfigData and IPipelineComponentAdmin::SetConfigData methods from the IDispatch implementation, because the Business Desk module(s) that manage these components must be able to call these methods from a late-bound (Active Server Pages) environment.

Adding a Custom Shipping Method

Creating a Custom Shipping Method Page

Adding a Custom Shipping Method

The shipping method editing pages in Business Desk contain two sections, Shipping Method Properties and Rates. Component writers should implement these edit pages in any custom shipping method that they create. The framework handles some of the edit page implementation and all of the list page implementation.

The Shipping Method Properties section is responsible for getting data into and out of the ShippingConfig database table. This data is processed by the ShippingCommon_edit.asp page using edit fields in the top section of the Shipping Method Module in Business Desk. This section also sets up the taskbar for the page and handles all the necessary framework files to make the custom pages fully functional. Be sure to include the ShippingCommon_edit.asp page at the top of any custom shipping method page you create.

The custom shipping method page you create is responsible for processing data in the second section of the page, Custom Properties. This data will reside in the TableShippingRates database table.

Creating a Custom Shipping Method Page

To create a page for your custom data section, begin with an existing page such as the MinMax_edit.asp (or another of the Shipping Method pages) and then customize it.

To create a custom shipping method page

  1. At the top of the page, place a reference to include the file ShippingCommon_edit.asp.
  2. Replace the XML meta- and data-islands with your custom XML meta- and data-islands.
  3. Customize the DIV section to describe the new XML meta- and data-islands.
  4. If necessary, add hidden form input fields to hold values and an event handler (client-side).
  5. Replace the strings in GetActionPageName and GetActionFriendlyName with the names of your custom method page.
  6. Add code to the ProcessCustomShippingData function to handle task button events (loading and saving your custom data).

All the appropriate changes have been made to the shipping page and you are now ready to install it and use it in the Shipping Methods module in Business Desk.

To install the new page

  1. Add information about the new method to the Shipping_methods.xml file in the <drive:>\Inetpub\wwwroot\<Business Desk site name>\Config directory. This information notifies the framework that a new method exists and sets action (posting) information. It will then display the new method as a choice on the taskbar located on the list page, and it will handle posting correctly (see the Shipping_methods.xml file for an example).
  2. Add the new page to <drive:>\Inetpub\wwwroot\<Business Desk site name>\Shipping folder and install and register the custom DLL containing the shipping component (for example, Minmaxatl.dll). When Business Desk is reloaded, your custom module should appear on the menu of the Shipping Methods module list page. When editing this method, your custom components should appear in the lower section of the edit page.


Shipping and Address Structures

The list of shipments produced by the Splitter component contains several nested structures.

The Splitter component in the shipping configuration assigns the list of shipments to the Order.Shipments object. The ShippingMethodRouter component breaks this list down further into a list of shipments_to_process for each individual component run. The list of shipments is a SimpleList object of dictionaries, one for each shipment. The following table shows a sample of the keys in the shipment dictionaries.

Key | Description
shipping_address_id | The ID in the Address dictionary of the dictionary containing the address information.
shipping_method_id | The shipping method ID, taken from the ShippingConfig database table.
shipping_method_name | The name of the shipping method.
_cy_shipment_total | The total shipping cost for the items in this shipment.
ItemIndexes | A SimpleList object of indexes to the line items in the order.

The following example code shows how a component might get at the data in the shipments list:

'' Assume that dContext is the Context dictionary.
For Each dShipment In dContext.shipments_to_process

    '' Get the address information by getting the Address dictionary.
    Set dAddress = dOrder.Addresses(dShipment.address_id)
    '' Manipulate the address information here.

    '' Get the information about each line item in the shipment.
    '' Items is a SimpleList of dictionaries. ItemIndexes stores
    '' the indexes of the items in the current shipment.
    For Each nIndx In dShipment.ItemIndexes
        '' Retrieve the dictionary for the given item.
        dItem = dOrder.Items(nIndx)
        '' Manipulate the individual item dictionary here.
    Next

Next

Each address dictionary contains the following keys:

Key | Description
address_name | Descriptive name for the address.
address_type | Address type: 0 - Neutral. 1 - Shipping. 2 - Billing.
first_name | First name of the addressee.
last_name | Last name of the addressee.
address_line1 | First line of the address.
address_line2 | Second line of the address.
city | City name.
region_name | Name of the state, region, or province.
region_code | Code for the state, region, or province.
postal_code | Postal code.
country_name | Country/region name.
country_code | Country/region code.
tel_number | Telephone number.

Notice that although the shipping address is attached to each item, the billing address is attached to the order. The billing_address_id key identifies which address in the Addresses dictionary is the billing address:

'' dOrder is an Order dictionary.
'' dBillingAddress is a dictionary.
Set dBillingAddress = dOrder.Addresses(dOrder.billing_address_id)

See Also

Overview of the Multiple-shipment Shipping Architecture

Setting Up the Pipeline and Cache

Using the Splitter Component to Create Multiple Shipments

Previewing Shipping Costs

Adding Shipping Methods and Components


Multilingual Shipping Methods

Creating multilingual shipping methods and descriptions is an important component of providing fully localized content to users. In some cases, the names of the companies that supply shipping services are the same in many languages. However, the descriptions associated with each of the shipping suppliers needs to be localized even if the shipping supplier name does not.

Commerce Server 2002 provides a sample site, the Order sitelet, that demonstrates how to filter shipping methods based on a language identifier. If you use the default configuration for the Solution Sites or any of the other sitelets provided by Commerce Server, and you create shipping methods in multiple languages through Commerce Server Business Desk, all of the shipping methods you create will be displayed to the user on the ASP file used to display shipping methods in your application. To limit the displayed shipping methods to only those matching the preferred language of the user, the GetInstalledMethodList method of the ShippingMethodManager object must be passed a value for the filter parameter, for example, language_id = <user''s preferred language>.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

To display multilingual shipping methods in the language preferred by the user

  1. Create the multilingual shipping methods in Business Desk.

    For more information about creating multilingual shipping methods in Business Desk, see Customizing Shipping Methods.

  2. Open the ASP file that is used to display shipping methods on your site. If you are using a Solution Site, the file is pickship.asp; if you are using the Order sitelet, the file is shipping.asp. This file is located at <drive:>\Inetpub\wwwroot\<Site or Sitelet name>\include.
  3. In the line of code that calls the GetInstalledMethodList method, pass the language identifier into the filter property, for example language_id = <user''s preferred language>.

    How you identify the language preferred by the user is at your discretion. In the following code the language is identified from the profile data gathered about the user:

    Dim oShipMgr
Dim oUser
Dim strSelectedLang
Dim rstShipInfo

Set oShipMgr = CreateObject(""Commerce.ShippingMethodManager"")

'' strConnectionString is the connection sting to the database
'' containing the ShippingConfig table.
Call oShipMgr.Initialize(strConnectionString)

'' Get the selected language from the user profile.
strSelectedLang = oUser(""GeneralInfo.SelectedLanguage"")

'' Pass the selected language to the GetInstalledMethodList method.
Set rstShipInfo = oShipMgr.GetInstalledMethodList(""language_id = ''"" & strSelectedLang
& ""''"", vbNullString, Array(""shipping_method_id"",""shipping_method_name""))

'' Write the available shipping methods to the page.
  4. On the File menu, click Save, and then click Exit.

The shipping methods that are displayed to the user are now displayed in the user's preferred language.

See Also

ShippingMethodManager Object


Using Site Server 3.0 Commerce Edition Shipping Components

If you want to use the Site Server 3.0 Commerce Edition single-shipment shipping components, you will first need to remove the Splitter, ShippingMethodRouter, and ShippingDiscountAdjust components from the pipeline. Site Server 3.0 Commerce Edition components do not support the multiple-shipment shipping architecture used in Commerce Server 2002. You must also revert to Site Server 3.0 Commerce Edition tax components, because tax components typically use address and shipment information to configure the taxes. If you are using a site that has a Commerce Server 2002 Active Server Pages (ASP) code base, code changes will also be necessary.

The _cy_shipping_total name/value pair on the OrderForm object stores the total cost of shipping for an order.

The DefaultShipping component sets this name/value pair to zero (0). If you do not want to charge shipping on an order, you can make this the only component in the shipping stage.

In the Site Server 3.0 Commerce Edition single-shipment shipping architecture, components are coordinated to compute the shipping_total. For more information, see Component Coordination.

See Also

Multiple-shipment Shipping Architecture

MinMaxShip Sample Pipeline Component


Using Table Shipping

Table shipping uses values retrieved from a database to set the shipping total for an order.

The TableShippingADO component is designed to retrieve a single currency value from a database table based on a query that you specify, and to write this currency value to the order.[_shipping_total] key. To use this component, perform the following steps:

  1. Determine the basis of the calculation. For example, the basis might be the total weight of all the items in the order, and it might also depend on the shipping method selected by the customer.
  2. Create a table in the site database that stores the shipping cost as a function of the basis.
  3. Create a query designed to retrieve this value. If this query uses a product characteristic such as the total weight of the items in the order form, you might also need to modify the Product Information stage to ensure that this product information is present on the order form.
  4. Configure the property page for the TableShippingADO component to reference this query.

The sections that follow describe how to reference these steps. In this example, you will modify some existing code so that it uses a table to determine shipping costs based on the total weight and the shipping method.

Adding a Weight Attribute to the Product Table

Creating the Shipping Cost Table

Configuring the Component

Special Considerations for Table Shipping


Adding a Weight Attribute to the Product Table

In this example, the weight of each product is used to calculate the shipping cost. For this reason, weight must be specified for every item on your Web site. The following procedure describes how to add a column called ''weight'' to the Product table.

Note

  • This procedure assumes that you are using a site similar to the Site Server 3.0 Commerce Edition sample sites. It also assumes that you are using the QueryProductInfoADO component, and not the QueryCatalogInfo component in your Product Information stage.

To add a database column using SQL Enterprise Manager

  1. Click Start, point to Programs, point Microsoft SQL Server, and then click Enterprise Manager.
  2. Expand the Microsoft SQL Servers node, expand the SQL Server Group node, expand the node for the server that contains the Web site databases, expand the Databases node, expand the name of the database containing your Commerce Server site databases, expand the Objects node, and then expand the Tables node. Double-click the product table for the site. (In this example, the table is called healthy_product.)
  3. In the Manage Tables dialog box, do the following:
    Use this | To do this
    Column Name | Add a new column on the last row named weight.
    Datatype | Select Float.
  4. Click Close to close the dialog box and, when prompted, click Yes to apply your changes.

Next, you need to add the weight column to the query that is used by the QueryProdInfoADO component in the Plan or Basket pipeline for the site. In this example, the name of this query is product_info, and is defined in the Global.asa file.

To add the weight attribute to the product query

  1. Open the Global.asa file for the site using an editor such as Notepad.
  2. Locate the script where product_info is added to the query map. It begins with the following commands:
    Set MSCSQueryMap.product_info = AddQuery(""SELECT
  3. Add pf.weight to the list of columns returned by the SELECT statement. This ensures that the product weight is included in the item list for each product in the order form.


Creating the Shipping Cost Table

You will need to add a shipping cost table to the database. The shipping cost table in this example uses the sum of the weight of each of the items in the items list, as well as the shipping method, as the basis of the shipping cost. The weight of each item is expressed in pounds. The shipping cost is expressed as an integer, in the smallest units of the currency (in this example, pennies). The following SQL script generates such a table:

CREATE TABLE dbo.healthy_shipping_costs (

    shipping_method varchar (20) NOT NULL ,

    min_weight float NOT NULL ,

    max_weight float NOT NULL ,

    cost int NOT NULL

PRIMARY KEY (shipping_method,min_weight,max_weight)

)

GO

truncate table healthy_shipping_costs

go

insert into healthy_shipping_costs values (''shipping_method_1'', 0.0, 2.0, 450)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 2.0, 3.0, 540)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 3.0, 4.0, 630)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 4.0, 5.0, 720)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 5.0, 6.0, 810)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 6.0, 7.0, 900)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 7.0, 8.0, 990)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 8.0, 9.0, 1080)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 9.0, 15.0, 1400)

go

insert into healthy_shipping_costs values (''shipping_method_1'', 15.0, 100.0, 2000)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 0.0, 2.0, 300)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 2.0, 3.0, 390)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 3.0, 4.0, 480)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 4.0, 5.0, 570)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 5.0, 6.0, 660)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 6.0, 7.0, 750)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 7.0, 8.0, 840)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 8.0, 9.0, 930)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 9.0, 15.0, 1000)

go

insert into healthy_shipping_costs values (''shipping_method_2'', 15.0, 100.0, 1200)

go

After creating the shipping cost table, add a query to the QueryMap dictionary for the site. This query should be designed to take as parameters all the values that are used as the basis. In this example, these parameters are the weight of all the items in the order, along with the shipping method. The query should be included among the queries initialized in the Global.asa file for the site, as shown in the following code:

Set MSCSQueryMap.ship_cost = AddQuery(""SELECT cost FROM healthy_shipping_costs WHERE min_weight <= ? AND max_weight > ? AND shipping_method = ?"")

Because the QueryMap dictionary for the site is usually included in the pipe context that is passed to an Order Processing pipeline, the TableShippingADO component can be configured to reference this query.


Configuring the Component

To configure the TableShippingADO component to use the query that you added to the QueryMap dictionary, use the Pipeline Editor to insert the TableShippingADO component into a pipeline.

To insert the TableShippingADO component into a pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open. Browse to the location of your existing .pcf file, and open it.

    A graphic of your pipeline appears.

  3. In the Shipping stage of the pipeline graphic, delete the DefaultShipping component, if it exists.
  4. On the Edit menu, point to Insert Component, and then click After.
  5. In the Choose a component dialog box, do the following:
    Use this | To do this
    Stages | Select Shipping.
    Components | Select TableShippingADO.
  6. Click OK. The TableShippingADO pipeline component appears as a valve on the pipeline graphic.
  7. Double-click the TableShippingADO component.
  8. In the Component Properties dialog box, on the Table Shipping (ADO) tab, do the following:
    Use this | To do this
    Apply when | Select Has any value, which means that the query is run only when the order form contains a shipping_method value. This setting enables the Plan pipeline to be run in the Basket.asp page, before the customer has selected a shipping method and before the _shipping_cost name/value pair has been added to the order form. The Apply When setting identifies the circumstances under which the value returned by the query is written to the _shipping_cost name/value pair. If this field were set to Always, this component would fail on the Basket page because the query could not run successfully. When the Plan pipeline is run again on the Payment.asp page, the shipping_method name/value pair now appears on the order form, and the ship_cost query is run.
    Method | Leave blank.
    Connection String | Type the connection string name on which the query in the Query box is run.
    Query | Type the name of the query to be run. This example uses ship_cost, the name of the Dictionary entry that was added to the QueryMap dictionary.
    Parameter List Type the values to pass to the query. The first two values must be the same (the weight of the total order), because the weight is used as the first two parameters in the query. The third parameter is the shipping method. To implement this example, enter the following parameter list:
    sumq._product_weight sumq._product_weight order.shipping_method
    Column | Type the name of the column that contains the shipping cost. In this example, this setting equates to the column cost that was defined as part of the shipping table. If no value is entered in this column, the component defaults to the value cost. In addition, if you specify a query that returns multiple rows of data, all rows after the first row are ignored.
  9. Click OK.
  10. To save your changes, on the File menu, click Save.


Special Considerations for Table Shipping

When configuring the TableShippingADO component, keep in mind that if your query references an item in the item Dictionary, you should make sure that the query that you run in the Product Information stage is designed to retrieve that value from the product database. For example, if the TableShippingADO component references _product_weight as a parameter to the component's query, then your product table should contain a column named weight, and your QueryProdInfoADO component should run a query that retrieves this column from storage in the item Dictionary.


Tax Objects

Although Microsoft Commerce Server 2002 includes the Site Server 3.0 Commerce Edition tax components, those components will not work with the new multiple-shipment shipping architecture. Only the SampleRegionalTax pipeline component in Site Server 3.0 Commerce Edition takes into account the multiple-shipment shipping architecture.

Notes

  • The tax components shipped with Commerce Server 2002 are provided only for evaluation and testing purposes. Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by these components before you use such information for personal or business purposes.
  • The tax components assume that all line items are in the same currency. Taxing orders that contain items in more than one currency requires custom development.

This section contains:

  • Site Server 3.0 Commerce Edition Tax Components. Explains how to use Site Server 3.0 tax components.

See Also

SampleRegionalTax


Site Server 3.0 Commerce Edition Tax Components

The Tax stage and other tax components ensure that order._tax_total and order._tax_included keys are set. If not, an error is generated.

If you want to use the Site Server 3.0 Commerce Edition components, you will not be able to use the Splitter, ShippingMethodRouter, and StepwiseShipping components. For information about using Site Server 3.0 Commerce Edition shipping methods, see Using Site Server 3.0 Commerce Edition Shipping Components.

You can run all of the components in the Tax stage unless a fatal error is returned. To cooperate, one component in the tax stage must set the _tax_total key, or a shopper warning is raised. Each component must check the resulting _tax_* values. If these values are already set, the component should return without doing anything. If the values are not set, the component will attempt to calculate the tax and if it is successful, set the _tax_* values.

In addition, some Site Server 3.0 Commerce Edition tax components require that the value of the _ship_to_country key is set to the intended country/region; otherwise, the component will not run.

In each of the tax components, the country/region name can be specified as a parameter even though the name of the country/region is part of the name of the component (for example, SimpleCanadaTax). This is because the name of the component describes only the model for computing sales tax, and not the country/region to which it applies. For example, another country/region might use a tax model similar to Canada's model. Because the country/region name is specified, the tax model (and its corresponding component) can be used for more than one country/region.

See Also

DefaultTaxCy, DefaultTax

SampleRegionalTax

SimpleCanadaTax

SimpleJapanTax

SimpleUSTax

SimpleVATTax

RequiredTaxCy, RequiredTax


Business-to-Consumer Pipelines

The business-to-consumer Order Processing pipelines (OPP) are used in Commerce Server sites designed for retail shopping by the public. These pipelines implement functions that are performed at different times during the shopping process.

This section contains:

  • Product Pipeline (Product.pct). Runs OPP components that compute price and discount information for individual products. This pipeline is often used to compute information that is displayed on the page Product.asp.
  • Plan Pipeline (Plan.pct). Runs OPP components that present the user with an order total, including all promotional discounts, taxes, and shipping and handling charges.
  • Purchase Pipeline (Purchase.pct). Runs OPP components that validate the payment for a user, performs the actual purchase transaction, writes an order to database storage and, optionally, finalizes a receipt by writing the contents of the OrderForm object to the receipt database.


Product Pipeline

The Product pipeline runs components that compute price and discount information for individual products. This pipeline is often used to compute information that is displayed on the page Product.asp.

The template for this pipeline is Product.pct.

The Product pipeline consists of the following stages:

  • Product Info Stage
  • Shopper Information Stage
  • Item Price Stage
  • Item Adjust Price Stage
  • Inventory Stage

Product Info Stage (Product Pipeline)

The Product Info stage contains components that retrieve product information about the items in the items list from the site database. If information about a given item cannot be retrieved, Product Info stage components mark the item for deletion by creating a delete key in the item Dictionary object, and giving it the value ""1"".

After the Product Info components have been run, the RequiredProdInfo component in the Product Info stage goes through the items list, deleting every item marked for deletion.

The following table shows the components related to this stage.

Component | Description
QueryCatalogInfo | Retrieves catalog information for every item in the order form. Uses the Commerce Server 2002 Product Catalog System. Marks missing items for deletion and adds basket errors if necessary.
QueryProdInfoADO | Runs a database query, based on the SKUs in the items list of the OrderForm object, and puts the returned data in the items collection of the OrderForm object. Marks missing items for deletion and adds basket errors as necessary.
RequiredProdInfo | Deletes items marked for deletion and writes the appropriate error messages.

Shopper Information Stage (Product Pipeline)

The Shopper Information stage adds information about the user to the OrderForm object.

The following table shows the components related to this stage.

Component | Description
DefaultShopperInfo | Copies information from the Shopper dictionary in the Context dictionary to the OrderForm object.

Item Price Stage (Product Pipeline)

The Item Price stage sets the _iadjust_regularprice key for each item in the order form.

The Item Price stage contains components that set the _iadjust_regularprice key for each item in the items list, as well as components that verify that this value has been set. If this value cannot be set, an error occurs.

This initialization ensures that the _iadjust_regularprice dictionary key entry contains the most current price information for the given SKU.

The following table shows the components related to this stage.

Component | Description
DefaultItemPriceCy, DefaultItemPrice | For each item in the items list, sets the _iadjust_regularprice key to the value stored in the _product_list_price key.
RequiredItemPriceCy, RequiredItemPrice | Ensures that the _iadjust_regularprice key is set for each item in the items list.

Item Adjust Price Stage (Product Pipeline)

The Item Adjust Price stage contains components to initialize the value of the_iadjust_currentprice key. When the stage is complete, the _iadjust_currentprice key contains the current price of the item, adjusted for sales or promotions.

If no sale or promotion component is included in this stage, the key is set to the value stored in the _iadjust_regularprice key.

After the item._iadjust_currentprice key is set for an item, the item cannot be adjusted a second time. For example, if a stage includes both an ItemPromo and a SaleAdjust component, and an item on the order form qualifies for both the promotion and the sale adjustment, the _iadjust_currentprice key of the item is set by the component that was run first within the stage. This generalization applies for any combination of Item Price Adjust stage components that you include in your pipeline.

Note

  • Do not use this stage to calculate discounts in new pipelines. Use the OrderDiscount component in the Order Adjust Price stage of the Plan pipeline. The OrderDiscount component uses the Commerce Server 2002 Targeting System to apply item and order discounts.

The following table shows the components related to this stage.

Component | Description
ItemPromo | Adjusts the value of the _iadjust_currentprice key, based on promotions.
SaleAdjust | Determines whether an item is on sale. If it is, the SaleAdjust component sets the _iadjust_currentprice key of the item to the value stored in the _product_sale_price key.
RequiredItemAdjustPriceCy, RequiredItemAdjustPrice | Verifies that the _iadjust_currentprice key exists and has a value.

Inventory Stage (Product Pipeline)

The Inventory stage contains components that verify that every item ordered is in stock.

The following table shows the components related to this stage.

Component | Description
FlagInventory | Flags items in the items SimpleList object that are out of stock.
LocalInventory | Checks the OrderForm object to ensure that an item does not require more of a given SKU than is in stock.

See Also

Plan Pipeline

Purchase Pipeline


Plan Pipeline

The Plan pipeline contains fourteen stages. These stages consist of components that verify the integrity of the OrderForm object. For example, if the items list in an OrderForm object contains no items, then the RequiredOrderCheck component in the Order Check stage generates an error.

The template for this pipeline is Plan.pct.

The Plan pipeline template consists of the following stages:

  • Product Info Stage
  • Merchant Information Stage
  • Shopper Information Stage
  • Order Initialization Stage
  • Order Check Stage
  • Item Price Stage
  • Item Adjust Price Stage
  • Order Adjust Price Stage
  • Order Subtotal Stage
  • Shipping Stage
  • Handling Stage
  • Tax Stage
  • Order Total Stage
  • Inventory Stage

Product Info Stage (Plan Pipeline)

The Product Info stage contains components that retrieve product information about items in the items list from the site database. If there is no information about an item, Product Info stage components mark the item for deletion by creating a delete key in the Item dictionary with a value of "1".

After the Product Info stage components run, the RequiredProdInfo component in the stage goes through the items list, and deletes every item marked for deletion.

The following table shows the components related to this stage.

Component | Description
QueryCatalogInfo | Retrieves catalog information for every item in the order form. Uses the Commerce Server 2002 Product Catalog System. Marks missing items for deletion and adds basket errors if necessary.
QueryProdInfoADO | Runs a database query, using Microsoft ActiveX Data Objects (ADO). This component differs from the QueryProdInfo component in that the query that it runs can take multiple parameters, and can reference a query in the QueryMap dictionary.
RequiredProdInfo | Deletes items marked for deletion and writes the appropriate error messages.

Merchant Information Stage (Plan Pipeline)

The Merchant Information stage can retrieve static merchant data and write the data to the OrderForm object. Commerce Server 2002 includes no component for this stage (other than the Scriptor component). However, you can add your own custom component to process merchant information. For more information see Building Pipeline Components.

Shopper Information Stage (Plan Pipeline)

The Shopper Information stage contains the DefaultShopperInfo component, which adds shopper information to the OrderForm object.

The following table shows the components related to this stage.

Component | Description
DefaultShopperInfo | Copies information from the Shopper dictionary in the Context dictionary to the OrderForm object.

Order Initialization Stage (Plan Pipeline)

The Order Initialization stage sets initial order information on the OrderForm object and verifies that the OrderForm object contains an order ID.

The following table shows the components related to this stage.

Component | Description
RequiredOrderInitCy, RequiredOrderInit | Initializes the payment authorization code, order ID, totals, and subtotals prior to processing the order.

Order Check Stage (Plan Pipeline)

The Order Check stage verifies that the order can be processed.

The following table shows the components related to this stage.

Component | Description
RequiredOrderCheck | Ensures that there is at least one item in the OrderForm object.

Item Price Stage (Plan Pipeline)

The Item Price stage contains components that set the _iadjust_regularprice key for each item in the items list and components that verify that this value has been set. If this value cannot be set, an error occurs.

This initialization ensures that the _iadjust_regularprice key contains the most current price information for the given item.

The following table shows the components related to this stage.

Component | Description
DefaultItemPriceCy, DefaultItemPrice | For each item in the items list, sets the _iadjust_regularprice key to the value stored in the _product_list_price key.
RequiredItemPriceCy, RequiredItemPrice | Ensures that _iadjust_regularprice key is set for each item in the items list.

Item Adjust Price Stage (Plan Pipeline)

The Item Adjust Price stage contains components to initialize the value of the _iadjust_currentprice key. When the stage is complete, the _iadjust_currentprice key contains the current price of the item, adjusted for sales or promotions.

If no sale or promotion component is included in this stage, the key is set to the value stored in the _iadjust_regularprice key.

After the item._iadjust_currentprice key is set for an item, the item cannot be adjusted a second time. For example, if a stage includes both an ItemPromo and a SaleAdjust component, and an item on the order qualifies for both the promotion and the sale adjustment, the _iadjust_currentprice key of the item is set by the component run first within the stage. This generalization applies for any combination of Item Price Adjust stage components that you include in your pipeline.

Note

  • Do not use this stage to calculate discounts in new pipelines. Use the OrderDiscount component in the Order Adjust Price stage of the Plan pipeline. The OrderDiscount component uses the Commerce Server 2002 Targeting System to apply item and order discounts.

The following table shows the components related to this stage.

Component | Description
ItemPromo | Adjusts the value of the _iadjust_currentprice key, based on promotions.
SaleAdjust | Determines whether an item is on sale. If it is, the SaleAdjust component sets the _iadjust_currentprice key of the item to the value stored in the _product_sale_price key.
RequiredItemAdjustPriceCy, RequiredItemAdjustPrice | Verifies that the _iadjust_currentprice key exists and has a value.

Order Adjust Price Stage (Plan Pipeline)

The Order Adjust Price stage contains components that set the adjusted price of each item.

The item._oadjust_adjustedprice key contains the total cost of a given item. For example, if a user purchases three items costing $5.00 each, and none of the items are discounted, the total for the item is $15.00. If two of the items are sold at the regular price, but the third is sold at half price (because of a discount), the adjusted price is $12.50.

The following table shows the components related to this stage.

Component | Description
DBOrderPromoADO | Queries the database to determine a promotion amount.
OrderDiscount | Applies scheduled discounts to the shopping basket.
RequiredOrderAdjustPriceCy, RequiredOrderAdjustPrice | Checks the _oadjust_adjustedprice key member of each item in the items collection to ensure that it is set.

Order Subtotal Stage (Plan Pipeline)

The Order Subtotal stage calculates the subtotal for an order and stores the resulting value in the _oadjust_subtotal key of the OrderForm object. The _oadjust_subtotal key is the sum of the _oadjust_adjustedprice key for all items.

The following table shows the components related to this stage.

Component | Description
DefaultOrderSubtotalCy, DefaultOrderSubtotal | Calculates the subtotal for an order and stores the result in the order._oadjust_subtotal key.
RequiredOrderSubtotalCy, RequiredOrderSubtotal | Checks the order._oadjust_subtotal key to ensure that it is not NULL.

Shipping Stage (Plan Pipeline)

This stage calculates the total shipping charge for the order and sets the order._shipping_total key accordingly. For information about how the components in this stage interact, see Shipping Objects.

The following table shows the components related to this stage.

Component | Description
DefaultShippingCy, DefaultShipping | Ensures the integrity of the OrderForm object by setting the order._shipping_total key to zero (0).
FixedShipping | Sets the order._shipping_total key to a fixed amount.
LinearShipping | Sets the order._shipping_total key by multiplying a rate by the sum of a specified value on the OrderForm object.
ShippingDiscountAdjust | Applies shipping discounts to an order. The component uses the multiple-shipment shipping architecture.
ShippingMethodRouter | Looks up and runs the components to process the shipments and calculates the shipping total for the entire order. The component uses the multiple-shipment shipping architecture.
Splitter | Divides an order into groups based on a list of item keys. The component uses the multiple-shipment shipping architecture.
TableShippingADO | Sets the order._shipping_total key to a value returned by a specified query. Uses Microsoft ActiveX Data Objects (ADO) to perform the query, and can be included in a transacted pipeline.
RequiredShippingCy, RequiredShipping | Checks the OrderForm object to ensure that the order._shipping_total key has been set.

Handling Stage (Plan Pipeline)

If handling charges are not included in the shipping charge, the Handling stage calculates the total handling charge for the order and sets the order._handling_total key accordingly.

Multiple components can be specified to allow for different handling charges depending on the handling component used. You can use the shipping components to calculate shipping and handling charges together. However, some tax systems require shipping and handling charges to be calculated and taxed separately.

This stage verifies that the order._handling_total key is set. If not, it generates an error.

The following table shows the components related to this stage.

Component | Description
DefaultHandlingCy, DefaultHandling | Assigns zero (0) to the order._handling_total key.
FixedHandling | Assigns a fixed amount to the order._handling_total key.
LinearHandling | Calculates the handling by multiplying a rate by the sum of a specified item on the OrderForm object. Assigns the value to the order._handling_total key.
TableHandlingADO | Calculates the handling based on the results of a database query and assigns the value to the order._handling_total key. Uses Microsoft ActiveX Data Objects (ADO) to perform the query and can be included in a transacted pipeline.
RequiredHandlingCy, RequiredHandling | Checks the OrderForm object to ensure that the total handling (order._handling_total key) has been set.

Tax Stage (Plan Pipeline)

The Tax stage computes the sales tax for each item in the order and the sum of tax for the entire order. The stage assigns values to the item._tax_total, order._tax_total, and order._tax_included keys accordingly. Multiple components can be specified to allow for different tax rates depending upon the destination country/region. For information about how these components interact, see Tax Objects.

The following table shows the components related to this stage.

Component | Description
DefaultTaxCy, DefaultTax | Sets the _tax_total and _tax_included keys on the OrderForm object to zero (0).
SampleRegionalTax | Calculates taxes using the multiple shipment features of Commerce Server 2002.
SimpleCanadaTax | Computes taxes for Canada, including GST (goods and services tax) and PST (provincial sales tax).
SimpleJapanTax | Computes the taxes for Japan.
SimpleUSTax | Applies a given tax rate to any order sent to a specified state.
SimpleVATTax | Computes a value-added tax (VAT) on the items.
RequiredTaxCy, RequiredTax | Checks to ensure that the _tax_total and _tax_included keys in the OrderForm object do not have NULL values.

Order Total Stage (Plan Pipeline)

The Order Total stage sums the subtotal (less any discount), tax, shipping, and handling values and assigns the total to the order._total_total key.

The following table shows the components related to this stage.

Component | Description
DefaultTotalCy, DefaultTotal | Writes the total cost of the order to the _total_total key.
RequiredTotalCy, RequiredTotal | Performs a _VERIFY_WITH check of the OrderForm object.

Inventory Stage (Plan Pipeline)

This stage verifies that every item ordered is in stock. For information about how the inventory components interact, see Inventory Objects.

The following table shows the components related to this stage.

Component | Description
FlagInventory | Flags items in the items SimpleList object that are out of stock.
LocalInventory | Checks the OrderForm object to ensure that an item does not require more of a given SKU than is in stock.

See Also

Product Pipeline

Purchase Pipeline


Purchase Pipeline

The Purchase pipeline consists of three stages. These stages use components that accept the final purchase of an order form, write an order to database storage and, optionally, finalize a receipt and write the contents of the OrderForm object to the receipt database.

The Purchase pipeline can be run after you have run an OrderForm object successfully through the Plan pipeline, and have confirmed that the user wants to finalize a purchase.

Because Purchase pipeline components write to a database, a Purchase pipeline is often a transacted pipeline.

The template for this pipeline is Purchase.pct.

The Purchase pipeline template consists of the following stages:

  • Purchase Check Stage
  • Payment Stage
  • Accept Stage

Purchase Check Stage (Purchase Pipeline)

The Purchase Check stage is typically used to verify that the address and credit card information the user provides meets certain criteria.

In the Purchase.pct template, this stage contains no components by default.

This pipeline configuration contains two Scriptor components:

  • Validate Bill_to. Verifies that each of the bill_to_* fields on the order form contain data. If not, the script gets the appropriate message from the MessageManager object, adds the error text to the error list, and returns a return value of two (2) indicating that an error occurred.
  • Validate CC Info. Verifies that each of the credit card fields on the order form contains data, and that the credit card type is one of a list of acceptable values. If not, the script gets the appropriate message from the MessageManager object and adds the error text to the error list, and returns a return value of two (2) indicating that an error occurred.

The following table shows the components related to this stage.

Component | Description
ValidateCCNumber | Performs a standard checksum test on the credit card number and checks the expiration date.

Payment Stage (Purchase Pipeline)

The Payment stage is used to approve credit card payments. It sets the order._payment_auth_code key upon credit card approval. This stage always ensures that the _payment_auth_code key is set. Otherwise, it generates a pur_bad_payment error.

If a credit card is not approved, this stage sets the _payment_auth_code key to DENIED and returns error level 2.

The details of the payment components vary depending on the third-party payment processing system used.

The following table shows the components related to this stage.

Component | Description
DefaultPayment | Assigns an initial value to the _payment_auth_code key.
RequiredPayment | Ensures that the value of the _payment_auth_code key is not NULL.

Accept Stage (Purchase Pipeline)

The Accept stage handles the completed order, including initiating order tracking, generating purchase orders, and inventory.

The following table shows the components related to this stage.

Component | Description
ExecuteProcess | Executes an application on the server with the specified arguments.
MakePO | Generates a purchase order, based on a template file.
POtoFile | Sends a purchase order (typically the result of the MakePO component) to a file.
SaveReceipt | Writes the contents of the OrderForm object to the receipt storage.
SendSMTP | Sends an e-mail message to the specified address.
SQLItemADO | Runs the specified SQL command for each item in the order with the given fields from the order and item as arguments. This component uses Microsoft ActiveX Data Objects (ADO), and can be included in a transacted pipeline.
SQLOrderADO | Runs the specified SQL command once per order, with the given fields from the order as arguments. This component uses Microsoft ActiveX Data Objects (ADO), and can be included in a transacted pipeline.

See Also

Product Pipeline

Plan Pipeline


Using the Order Processing Pipelines

The Order Processing pipelines (OPP) provide much of the functionality for a working Web site. Therefore, understanding the components and processes of OPPs will aid in the development of a high-performance Web site.

This section contains:

  • OrderForm. Describes the structure of the OrderForm dictionary and how the OPP uses the dictionary.
  • Transactions and the Order Processing Pipeline. Describes the advantages of using transacted pipeline objects and how those objects work with COM+.
  • Error Handling in Pipelines. Describes the use of the MessageManager object with pipeline objects.
  • Using an Order Log. Describes how to use logging in pipelines when designing and debugging pipelines.
  • Displaying the Contents of an Order Form. Explains how to use Microsoft Visual Basic Scripting Edition (VBScript) in a Scriptor pipeline component to display the contents of an OrderForm dictionary.
  • Sending a Purchase Confirmation by E-mail. Explains how to automatically send a purchase confirmation by e-mail when a new order is received.
  • Using the Scriptor Component. Explains when and how to use the Scriptor Component.
  • Using the ExecuteProcess Component. Explains when and how to use the ExecuteProcess Component.
  • Component Coordination. Describes how components within a pipeline stage coordinate their use of common OrderForm object keys.
  • Specifying the Basis Item Key. Describes how to specify the Basis Item key.

See Also

Shipping Objects

Inventory Objects

Tax Objects


OrderForm

The Order Processing pipeline (OPP) requires that data passed from the site to the pipeline, and from the pipeline to the site, be in an OrderForm object. This requirement applies to components included in the default OPP and to components designed to extend it.

The following figure shows an overview of the OrderForm object.

An overview of the OrderForm object.

The OrderForm object is a dictionary containing individual entries, and entries that are Dictionary and SimpleList objects. The structure makes it possible to present a detailed summary of all or part of one or more shopping sessions to the user or to the pipeline. This summary includes user data, such as name, address, and credit-card information, as well as product information related to the purchase.

The first element in the top-level Dictionary object of the OrderForm object is a reference to a SimpleList object of the items that make up the order. Each of these items is itself another Dictionary object. This SimpleList object is referred to as the items list.

The elements that make up both the order Dictionary object and the Dictionary objects in the items SimpleList object consist of a key and a value. Each component that you include in the OPP for your site is designed to operate on one or more of these keys and values. Typical operations include:

  • Key and value creation. Several components create keys and values in an OrderForm object. For example, the QueryCatalogInfo component gathers information about a product from a database, prepends _product_ to the column name, and adds the resulting key and value to the OrderForm object.
  • Key and value initialization. The Required components in the OPP fall into this category. These components check to make sure that certain keys are initialized with values, and if they are not, these components initialize them. Thus, the RequiredOrderInitCy component, which is part of the Order Initialization stage, sets the _cy_total_total, _cy_oadjust_subtotal, _cy_shipping_total, _cy_tax_total, and _cy_handling_total keys to NULL.
  • Key and value verification. The OPP fails if certain keys and values in an OrderForm object are not initialized when the pipeline is invoked. For example, the RequiredOrderInitCy component verifies that the items SimpleList object on an OrderForm object is not empty. If this SimpleList object is empty, the component returns a status that indicates failure.
  • Key and value calculation. The optional components in the OPP initialize keys and values based on the work performed by other components. For example, the components in the Tax stage calculate the tax on an order, based on the list of items in the items SimpleList object of the OrderForm object, and writes the tax to the _tax_total key.

The underscore (_) character that precedes many of the keys in the OrderForm object indicates that the key is not persisted.

Note

  • The contents of an OrderForm object can vary, depending on how the pipeline for a site is configured.

Values Commonly Used in the OrderForm Object

Referencing Items in the OrderForm Object

Modifying the OrderForm Object

Values Commonly Used in the OrderForm Object

The following table lists the typical keys in the OrderForm object, and includes a brief description of each key. Where monetary values are involved, the currency version of the dictionary key is shown. For more information about naming conventions and currency data, see Currency Overview.

Key | Definition
item._cy_iadjust_currentprice | Contains the current price of the item. Whereas the _cy_iadjust_regularprice key contains the regular price of the item, this key reflects the regular price minus any promotional discounts.
item._cy_iadjust_regularprice | Contains the regular price of the item. The DefaultItemPrice component, in the Item Price stage, initializes this key to the value in the _product_list_price key. The RequiredItemPrice component ensures that this key is initialized. Some promotional components use this key as the basis for price adjustments. For example, if an item is to be reduced by a given percentage, that percentage is based on the value stored in the_cy_iadjust_regularprice key.
item._cy_oadjust_adjustedprice | Total cost of this item. This key contains the current price of the item times the quantity, minus discounts resulting from a promotion or sale.
item._cy_tax_included | Value that indicates how much tax is included in the cost of the item.
item._cy_tax_total | Total tax for the items of this stock-keeping number (SKU).
item._n_unadjusted | Number of items of this SKU that have not participated in a promotional price reduction.
item._product_* | Contains information about items of a given SKU. The key is initialized by the QueryProdInfoADO component. The key consists of the prefix _product_ followed by the name of the database table column from which the information was retrieved.
item.cy_placed_price | The price an item had when placed in the basket. This key is used to check for price changes during a purchase.
item.delete | A flag indicating the item should be deleted from the order. This key is set by the QueryCatalogInfo component and used by the RequiredProdInfo component.
item.discounts_applied | A dictionary containing the IDs of the discounts that apply to this item. Keys are the IDs, values are the date-time stamps of the discounts. This key is used by the OrderDiscount object.
item.list_price | List price of the item.
item.quantity | Number of items of a given SKU.
order._Basket_Errors | A SimpleList object in which components in the OPP store basket error messages retrieved from the MessageManager object.
order._cc_expmonth | Month in which the provided credit card expires.
order._cc_expyear | Day on which the provided credit card expires.
order._cc_number | Credit card number for the card used to finance this purchase. By default, the SaveReceipt component, which persists other information in the OrderForm object, does not save credit card numbers.
order._cy_handling_total | Total cost for handling the order. This value is initialized by the Handling stage components (TableHandlingADO, FixedHandling).
order._cy_oadjust_subtotal | Subtotal of all the items in the items list. This value, which is initialized by the DefaultSubtotal component, represents a total of the item._cy_oadjust_adjustedprice keys for each item in the list. The item._cy_oadjust_adjustedprice key represents the total for a given item (its quantity times its list price, minus promotional discounts).
order._cy_shipping_total | Total cost for shipping the items in the OrderForm object. By default, this is the key initialized by every shipping component.
order._cy_tax_included | Value that indicates how much tax is included in the cost of the order.
order._cy_tax_total | Total tax for this order. This key is initialized by the Tax stage components. How this value is calculated depends on the Tax stage component used.
order._cy_total_total | Total cost of the order, including the order subtotal, shipping, handling, and tax. This value is initialized by the DefaultTotal component, and is verified by the RequiredTotal component.
order._payment_auth_code | Payment authorization code for the order form.
order._Purchase_Errors | A SimpleList object in which components in the OPP store purchase error messages that are retrieved from the MessageManager object.
order._Verify_With | A dictionary whose keys and values are tested against keys and values in the order form.
order.cc_name | Name that appears on the credit card used to finance the purchase. This key is initialized prior to the submission of the OrderForm object to the OPP.
order.cc_type | Type of credit card submitted. Valid types are VISA, MC, AMEX, or Discover. The ValidateCCNumber component uses this type as the basis for performing routine validation on the credit card number.
order.order_id | Unique identifier for this order.
order.shipment._cy_tax_included | Total tax for the shipment included in the cost. This is part of the multiple-shipment shipping architecture.
order.shipment._cy_tax_total | Total tax for the shipment. This is part of the multiple-shipment shipping architecture.
order.shipments | A SimpleList object of dictionaries, one dictionary per shipment. This is part of the multiple-shipment shipping architecture.
order.shipments._cy_shipping_total | The shipping totals for each individual shipment. This is part of the multiple-shipment shipping architecture.
order.shopper_id | Unique identifier for the user who submitted this order. This key is initialized prior to the submission of the order to the OPP.

The following table lists the name/value pairs of an OrderForm object and the OPP components that read from or write to the specified pair. Where monetary values are involved, the currency version of the dictionary key is shown. In the case where there are components that use only the non-currency version of the key, both forms are shown. For more information about the naming convention and currency data, see Currency Overview.

Key | Read By | Written By
item._cy_iadjust_currentprice | Not applicable | Not applicable
item._cy_iadjust_regularprice | Not applicable | Not applicable
item._cy_oadjust_adjustedprice | Not applicable | Not applicable
item._cy_tax_included | Not applicable | Not applicable
item._cy_tax_total | Not applicable | Not applicable
item._iadjust_currentprice | DbOrderPromoADO, ItemPromo, RequiredItemAdjustPrice, RequiredOrderAdjustPrice | ItemPromo, RequiredItemAdjustPrice, SaleAdjust
item._iadjust_regularprice | ItemPromo, RequiredItemAdjustPrice, RequiredItemPrice | DefaultItemPrice
item._inventory_backorder | Not applicable | FlagInventory, LocalInventory
item._n_unadjusted | DbOrderPromoADO, RequiredOrderInit | RequiredOrderInit
item._oadjust_adjustedprice | RequiredOrderAdjustPrice, SimpleCanadaTax, SimpleJapanTax, SimpleUSTax, SimpleVATTax | DbOrderPromoADO, DefaultOrderSubtotal, RequiredOrderAdjustPrice, RequiredOrderInit
item._oadjust_discount | Not applicable | RequiredOrderAdjustPrice
item._product_* | QueryProdInfoADO | Not applicable
item._product_gst | SimpleCanadaTax | Not applicable
item._product_in_stock | FlagInventory | Not applicable
item._product_jpn_tax_included | SimpleJapanTax | Not applicable
item._product_jpn_tax_rate | SimpleJapanTax | Not applicable
item._product_list_price | DefaultItemPrice | Not applicable
item._product_local_inventory | LocalInventory | Not applicable
item._product_pst | SimpleCanadaTax | Not applicable
item._product_sale_end | SaleAdjust | Not applicable
item._product_sale_price | SaleAdjust | Not applicable
item._product_sale_start | SaleAdjust | Not applicable
item._product_tax_rate | SimpleVATTax | Not applicable
item._tax_included | Not applicable | SimpleCanadaTax, SimpleJapanTax, SimpleUSTax, SimpleVATTax
item._tax_total | Not applicable | SimpleCanadaTax, SimpleJapanTax, SimpleUSTax, SimpleVATTax
item._tax_vat_item | Not applicable | SimpleVATTax
item.cy_placed_price | RequiredItemAdjustPrice | RequiredItemAdjustPrice
item.delete | RequiredProdInfo, QueryProdInfoADO | Not applicable
item.discounts_applied | Not applicable | Not applicable
item.list_price | Not applicable | Not applicable
item.quantity | DbOrderPromoADO, FlagInventory, LocalInventory, ReduceLocalInventory, RequiredItemAdjustPrice, RequiredOrderInit | RequiredOrderInit
item.sku | LocalInventory, QueryProdInfoADO, ReduceLocalInventory | Not applicable
order._Basket_Errors | Not applicable | RequiredProdInfo
order._cc_expmonth | ValidateCCNumber | Not applicable
order._cc_expyear | ValidateCCNumber | Not applicable
order._cc_number | ValidateCCNumber | Not applicable
order._cy_handling_total | Not applicable | Not applicable
order._cy_oadjust_subtotal | Not applicable | Not applicable
order._cy_shipping_total | Not applicable | Not applicable
order._cy_total_total | Not applicable | DefaultTotal, RequiredOrderInit
order._handling_total | RequiredHandling, DefaultTotal | RequiredOrderInit, DefaultHandling, FixedHandling, LinearHandling, TableHandlingADO
order._oadjust_subtotal | RequiredOrderSubtotal, DefaultTotal | DefaultOrderSubtotal, RequiredOrderInit
order._payment_auth_code | RequiredPayment | DefaultPayment, RequiredOrderInit
order._Purchase_Errors | Not applicable | FlagInventory, LocalInventory, RequiredHandling, RequiredItemAdjustPrice, RequiredOrderCheck, RequiredPayment, RequiredShipping, RequiredTotal, ValidateCCNumber
order._shipping_total | RequiredShipping, DefaultTotal | DefaultShipping, FixedShipping, LinearShipping, RequiredOrderInit, TableShippingADO
order._shopper_* | Not applicable | DefaultShopperInfo, QueryProdInfoADO
order._tax_included | Not applicable | DefaultTax, RequiredOrderInit, SimpleCanadaTax, SimpleJapanTax, SimpleUSTax, SimpleVATTax
order._tax_total | DefaultTotal | DefaultTax, RequiredOrderInit, SimpleCanadaTax, SimpleJapanTax, SimpleUSTax, SimpleVATTax
order._tax_total_gst | Not applicable | SimpleCanadaTax
order._tax_total_pst | Not applicable | SimpleCanadaTax
order._Verify_With | RequiredTotal | Not applicable
order.bill_to_* | Not applicable | Not applicable
order.cc_name | Not applicable | Not applicable
order.cc_type | ValidateCCNumber | Not applicable
order.date_changed | Not applicable | Not applicable
order.items | Not applicable | Not applicable
order.order_id | Not applicable | RequiredOrderInit
order.ship_to_city | Not applicable | Not applicable
order.ship_to_country | SimpleCanadaTax, SimpleJapanTax, SimpleVATTax | Not applicable
order.ship_to_state | SimpleCanadaTax, SimpleUSTax | Not applicable
order.ship_to_street | Not applicable | Not applicable
order.ship_to_zip | TableShippingADO, TableHandlingADO | Not applicable
order.shipment._cy_tax_included | Not applicable | Not applicable
order.shipment._cy_tax_total | Not applicable | Not applicable
order.shipments | Not applicable | Not applicable
order.shipments._cy_shipping_total | Not applicable | Not applicable
order.shipping_method | TableShippingADO, TableHandlingADO | Not applicable
order.shopper_id | Not applicable | Not applicable

Referencing Items in the OrderForm Object

Dictionary items are identified both by their names and by the section of the OrderForm object they are in. Thus, the cc_name item in the order Dictionary object is referenced as follows:

order.cc_name

Similarly, the elements of items in the items SimpleList object are prefixed with the word item:

item.SKU

This form of reference, while not necessarily technically accurate, allows for clarity of the description.

Modifying the OrderForm Object

When you pass an OrderForm object to the Order Processing pipeline (OPP), the OrderForm object must already be initialized with certain data elements.

You can modify an OrderForm object in any of the following ways:

  • By direct assignment. To initialize the shopper_id key on a page, you can make a direct assignment:
    objOrderForm.shopper_id = objPage.GetShopperID()
  • By using the native methods of the OrderForm object. The OrderForm object implements the AddItem, ClearItems, and Clear methods, which are designed to add items to the items SimpleList object, clear items from the items SimpleList object, and clear the entire OrderForm object, respectively.
  • By using the DBStorage object. The DBStorage object is designed to load a row of data from a database table into an OrderForm or Dictionary object. For more information, see DBStorage Object.


Transactions and the Order Processing Pipeline

A transaction is a series of operations performed as a single unit. In case of an error, the operations in a transaction can be undone. In the Active Server Pages (ASP) environment, transactions occur on a per-page level. To mark an ASP page as one that requires a transaction, you include the following script at the top of the ASP page:

<%@ LANGUAGE=VBScript Transaction=Required%>

When you mark an ASP page as transacted, the objects created on the page and the work those objects perform become part of the transaction, provided the objects are registered on the server as components supporting transactions. In the event of an error, the work performed by those objects can be rolled back.

Suppose, for example, that you create an ASP page that includes an object using Microsoft ActiveX Data Objects (ADO) to insert or update data in a database. In the event that this component fails, you can call the SetAbort method of the ObjectContext object to abort the transaction. This will undo all of the modifications made by the object to the database.

Note

  • In Windows 2000, the transaction support provided by Microsoft Transaction Server (MTS) is now incorporated in COM+. The COM+ transaction support provides full backward compatibility with MTS. However, COM+ provides significant extensions to transactions. For more information, search for "More on Porting Applications from MTS to COM+" on the MSDN Web site.

Calling Transacted Pipeline Objects

The Commerce Server Order Processing pipeline (OPP) supports COM+ transactions through the MtsTxPipeline and PooledTxPipeline objects. These objects are marked as requiring a transaction. If you create an MtsTxPipeline object or a PooledTxPipeline object on an ASP page not marked as requiring a transaction, there is still a transaction, but the transaction includes only the pipeline and the components it runs. To extend the transaction to all operations on the page, the page must be marked as requiring a transaction.

In either case, the transaction support of the MtsTxPipeline object and the PooledTxPipeline object provides many benefits to the site developer. Most importantly, transaction support means that if any component in an MtsTxPipeline object or PooledTxPipeline object fails, the work of the preceding components in the pipeline is rolled back, and the pipeline object ends the transaction.

The transaction support of the MtsTxPipeline object and the PooledTxPipeline object is especially useful with pipeline components that modify the site database. If you use components that modify the site database, and a component following them fails, the modifications the components made to the site database are automatically rolled back. This is true whether or not the page is transacted because, as described above, the pipeline and the components it runs are always transacted.

For more information about the transacted pipeline objects, see MtsTxPipeline Object and PooledTxPipeline Object.


Error Handling in Pipelines

Error handling in a Commerce Server 2002 Web site revolves around the interaction of the Order Processing pipeline (OPP) with the OrderForm object, the pipeline objects (MtsPipeline, MtsTxPipeline, PooledPipeline, and PooledTxPipeline), and the MessageManager object.

The OrderForm object provides a detailed, in-memory summary of one or more shopping sessions, including merchant, user, and item information. You pass an initialized OrderForm object to the OPP by calling the Execute method of the pipeline object you are using.

As the OrderForm object goes through various stages of the OPP, the components in each stage read and write values to and from the OrderForm object.

For error processing, the critical members of the OrderForm object are its _Basket_Errors and _Purchase_Errors collections. These collections store strings describing error conditions the OPP detects while processing other elements of the OrderForm object.

The _Basket_Errors collection is used to indicate inconsistencies in the order form data that should be noted whenever the basket is displayed. Basket errors are specific to items in the basket, and are used to make the customer aware of any such problem as soon as possible. One such error is that the price of a product as shown in the basket does not match the price as listed in the product database. This error might occur, for example, if the price has been changed between the time the customer put the item in the basket and the time the purchase has been completed.

The _Purchase_Errors collection applies to the order as a whole. This collection is used to indicate failures in the purchasing process, such as denial of a credit card. Purchase errors are those that would be discovered only when the customer attempts to make the purchase.

The OPP gets the error strings from the MessageManager object. The MessageManager object is the central repository of locale-based error messages for a site. Each message stored in the MessageManager object consists of a string that describes a given error condition, and a string identifier that uniquely identifies the message to the OPP. The MessageManager object creates the association between the string identifier and the string message through the AddMessage method that adds a message to the MessageManager object.

Although the string describing an error can vary from one site to the next, the string ID identifying a message does not change. For example, if the OPP is unable to validate a credit card in the OrderForm object, the pipeline attempts to retrieve the string associated with the message ID pur_bad_cc in the MessageManager object for the site. If the site developer has not associated a string with this message ID, a fatal error will cause the pipeline to stop. Otherwise, the OPP retrieves this message and writes it to the _Purchase_Errors collection in the OrderForm object. When the Execute method returns, you can examine this collection, and the strings in it can be used to provide site users with detailed descriptions of errors that occurred during order processing. For more information, see MessageManager Object.

Note

  • Commerce Server pipeline components are not designed to retry after a failed attempt. When the pipeline stops processing, the pipeline process fails and the order is not processed.

See Also

Error Levels

Error Handling


Using an Order Log

There are two ways to view Order Processing pipeline (OPP) information. You can create an OPP run-time information log, which includes all the keys and values written to the OrderForm object by each component in each stage. You can also view the contents of the OrderForm object by using the DumpOrder sample Scriptor component. The DumpOrder sample is available in the Order Sitelet at: <Drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Order Sitelet\source\pipeline.

You can log run-time information for each stage in the pipeline to a text file. By doing so, you see each stage and each component within that stage as it is run, including the information written to the OrderForm object at each stage. This is especially useful for debugging an Order Processing pipeline. To do this, add a call to the SetLogFile method before the call to the Execute method.

When you run the pipeline, stage and component information is written to the file you specify.

Note

  • For the log file to be created, you must specify a location in which you have write permission; otherwise, the log file creation will fail without a warning. Also be sure to comment out or delete the SetLogFile method when you have finished debugging the pipeline. Logging significantly slows down pipeline execution.

In the log file, components are numbered in the order that they are run and listed by name, but are not separated by pipeline stage.

A log file is easier to read if you use a spreadsheet application, such as Microsoft Excel, to view it.


Displaying the Contents of an Order Form

A sample Microsoft Visual Basic script, DumpOrder.vbs, is supplied in the <Drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Order Sitelet\source\pipeline subdirectory. When it runs, the DumpOrder script writes the contents of the OrderForm object to a file.

To use the DumpOrder script

  1. Add the Scriptor component to any stage in the pipeline. Double-click the Scriptor component icon. In the resulting property page, click the Scriptor tab, click VBScript in the Language drop-down list, and then click File.
  2. In the File box, type the path to the DumpOrder.vbs script (or click Browse to find it).
  3. The DumpOrder.vbs script takes a file name as a parameter, so type the full path name of the output file in the Config field. For example, filename=c:\order.log.
  4. Click OK, and then save the pipeline configuration file.
  5. Stop and restart Internet Information Services (IIS), or modify the Global.asa file to restart the application. The DumpOrder.vbs script will write a file with the name you specified as a parameter when the Order Processing pipeline runs.

See Also

Scriptor

Configuring a Scriptor Component


Sending a Purchase Confirmation by E-mail

This section describes the procedure for adding a pipeline component that will automatically send an e-mail order confirmation message when a new order is received. This example assumes that an e-mail address is required when users fill out their profile. This e-mail address is stored with the user information, and is therefore available in the order form.

In this example, the format of the confirmation e-mail is as follows:

Subject: Order Confirmation

Thank you for shopping at our store. Your order is confirmed.

Tracking number: 93LFF5XNE9SK2TVX00L1R0D9N7

Total purchase: $57.25

This section contains:

Step 1: Adding the text strings to the MessageManager object

Step 2: Creating a script to format the e-mail message

Step 3: Adding the Scriptor component to the pipeline

Step 4: Adding the SendSMTP component to the pipeline

Step 1: Adding the text strings to the MessageManager object

The first step is to add the text of the message to the MessageManager object. Although this step is not strictly necessary (the text could appear as string literals in the script), using the MessageManager object centralizes all text for the site and makes it easy to add support for additional languages at a later time. Add the necessary messages to the MessageManager object by performing the following steps:

  1. Using a text editor, such as Notepad, open the retail site Global.asa file. The file is usually located at C:\Inetpub\wwwroot\retail.
  2. After the call to Main at the end of the list of MessageManager strings, add the following lines:
    Dim oMessageManager
Set  oMessageManager = Server.CreateObject(""Commerce.MessageManager"")
Call oMessageManager.AddLanguage(""usa"", &H0409)
Call oMessageManager.AddLanguage(""FRA"", &H040c)
Call oMessageManager.AddLanguage(""ENC"", &H1009)
oMessageManager.defaultLanguage = ""usa""
Call oMessageManager.AddMessage(""email_subject"", ""Order Confirmation"")
Call oMessageManager.AddMessage(""email_body"", ""Thank you for shopping at our store. Your order is confirmed. "")
Call oMessageManager.AddMessage(""email_tracking"", ""Tracking number: "")
Call oMessageManager.AddMessage(""email_total"", ""Total purchase: "")

Step 2: Creating a script to format the e-mail message

After the proper code has been added to the Global.asa file, the next step is to create a script that formats the e-mail message. The script is to be used in a Scriptor component. The script must add the subject and message body text to the order form, so that a later component in the pipeline can send the e-mail.

Create a file named Email.vbs in the <drive:>\Inetpub\wwwroot\<sitename>\pipeline directory. Using a text editor such as Notepad, type or copy the following script into the file:

Function mscsexecute(config, orderform, context, flags)
    Dim oMessageManager, oDataFunctions
    Set oMessageManager = context.MessageManager
    Set oDataFunctions = context.DataFunctions

    orderform.[_email_subject] = _
              oMessageManager.GetMessage(""email_subject"")
    orderform.[_email_body] = _
              oMessageManager.GetMessage(""email_body"") _
              & chr(10) & chr(13) _
              & oMessageManager.GetMessage(""email_tracking"") _
              & orderform.[order_id] _
              & chr(10) & chr(13) _
              & oMessagemanager.GetMessage(""email_total"") _
              & oDataFunctions.Money(CLng(orderform.[_total_total]))
    mscsexecute = 1
End Function

When this script is run by the Scriptor component in the pipeline, it adds two new fields to the order form: _email_subject is used as the subject line for the e-mail, and _email_body is used as the body of the e-mail.

The script formats these strings by getting the appropriate messages from the MessageManager object and concatenating these strings with values from the order form, including the tracking number (order_id) and the purchase total (_total_total).

mscsMessagemanager.GetMessage(""email_tracking"") & orderform.[order_id]

generates this portion of the e-mail message body:

Tracking number: 93LFF5XNE9SK2TVX00L1R0D9N7

To format the total price as text in the local currency, the price is converted from numeric form as it is stored in the order form, using the DataFunctions.Money method.

Because the script uses methods of both the MessageManager object and the DataFunctions object, it first creates references to these objects. These references are provided by the PipeContext dictionary, which is passed in as an argument to the pipeline.

The function concludes with the following script, which indicates that the component ran successfully in the pipeline:

mscsexecute = 1

Note

  • In a site where the e-mail field is optional, make sure that the SendSMTP component does not attempt to send e-mail. You can disable the SendSMTP component by submitting a To field that contains the text None. The Email.vbs script can check for the existence of an e-mail name. If the user did not provide such a name, the script would substitute the text None.

Step 3: Adding the Scriptor component to the pipeline

In order to run the Email.vbs script within the OPP, a Scriptor component must be added to the Purchase pipeline configuration, as described in the following steps:

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. Open the Purchase.pct template, or the purchase pipeline for your site. Pipelines used in active sites are usually stored at C:/Inetpub/wwwroot/<site name>/pipeline.
  3. Open the Accept stage.
  4. Right-click the last component in that stage, or on the Accept stage itself if there are no components in the stage.
  5. Right-click Insert Component, and then click After.
  6. In the Choose a component dialog box, click Scriptor, and then click OK.

    The Scriptor component is added to the Accept stage.

  7. Double-click the Scriptor component icon.
  8. In the Component Properties dialog box, do the following:
    Use this | To do this
    Scripting Engine | Select VBScript.
    Source | Select External.
    Filename | Click Browse to find the location of the Email.vbs file, or type the path to the Email.vbs file.
  9. On the Component Properties tab, edit the Label box to provide a more helpful description (for example, Scriptor: Email.vbs (Format e-mail confirmation).
  10. Click OK to close the property page.

Step 4: Adding the SendSMTP component to the pipeline

The final step is to add the SendSMTP component to the Purchase pipeline configuration:

  1. In the Pipeline Editor, right-click the Scriptor component that you just added in Step 3: Adding the Scriptor Component to the Pipeline.
  2. Right-click Insert Component, and then click After.
  3. In the Choose a component dialog box, click SendSMTP, and then click OK.
  4. Double-click the SendSMTP component or its icon in the Pipeline Editor.
  5. In the Component Properties dialog box, on the SendSMTP tab, do the following.
    Use this | To do this
    From | Type the e-mail account of the computer from which the e-mail is sent.
    SMTP Host | Type the active SMTP host name that the computer uses to send e-mail.
    To | Type _shopper_email.
    cc | Leave blank.
    Subject | Type _email_subject.
    Message Body | Type _email_body.
    Message Body Contains | Select one of the three choices based on the content of your e-mail. For our example, select Text Body.

    These values in the OrderForm object will be used to format the e-mail. On the To line, _shopper_email is part of the user information that is added to the order form; on the Subject and Message Body lines, _email_subject and _email_body are the values added to the order form by the Email.vbs script.

  6. In the Component Properties dialog box, on the SendSMTP tab, do the following:
    Use this | To do this
    Email address to send test message to | Type an e-mail address to send the test message to.
  7. Click Send test Email.
  8. On the Component Properties tab, in the Label box, type a description.
  9. Click OK to close the property pages.
  10. On the File menu, click Save As.
  11. In the Save As dialog box, browse to the location where you would like to save the file, and then click Save.
  12. On the File menu, click Exit.

Reload the site so that your changes to the Global.asa file take effect.

Note

  • When adding components to a pipeline, it is important to consider the order in which the components appear. In the case of confirmation by e-mail, after the SendSMTP component has successfully sent the e-mail, the e-mail cannot be recalled if subsequent pipeline components fail. For this reason, the e-mail components have been placed last in the pipeline configuration. In this way, the e-mail is sent only if all other components succeed.

Using a Template

Depending on the complexity of the text you want in the e-mail reply, you might prefer to use a template to generate the e-mail message body. The component combines values on the order form with text in a template file.

To use a template, create a script to format the subject line and to convert any numeric values to their displayable text form. The following script does not generate the message body. The following file, Email.vbs, is loaded into a Scriptor component:

Function mscsexecute(config, orderform, context, flags)
    Dim mscsDataFunctions
    Set mscsDataFunctions = context.DataFunctions

    orderform.[_email_subject] = ""Order Confirmation""
    orderform.[_email_total] = mscsDataFunctions.Money(CLng(orderform.[_total_total]))
    mscsexecute = 1
End Function

Next, create a template file. In this example, the file is named Confirm_Template.vbs, and resides in the <drive:>\Inetpub\wwwroot\<sitename>\pipeline directory:

Thank you for shopping at our store. Your order is on its way.

Tracking number: <%%= order_id %%>
<%% Dim nItemcount
    nItemCount = Items.Items.count
if (nitemcount > 0) then
    dim iItem,Item
    for iItem = 0 to nitemcount - 1
    Set Item = Items.Items.Item(iItem) %%>
<%%= item.quantity %%> <%%= item.[_product_name] %%> <%%
    next
end if  %%>

Total purchase: <%%= [_email_total] %%>

Using the Pipeline Editor, insert a MakePO component in the Accept stage, immediately following the Scriptor component. Open the Component Properties dialog box by right-clicking the component and clicking Properties. Specify the Template File Name to indicate the template file just created (Confirm_Template.exe). Specify the Output Property Name as _email_body. The MakePO component, when run, will merge the template text with the values on the order form specified by the commands in the template, and will write the result to the _email_body name/value pair in the order form.

Insert the SendSMTP component after the MakePO component as described in Step 4: Adding the SendSMTP Component to the Pipeline. The SendSMTP component, when run, will use the subject line text generated by the Scriptor component, and the body message generated by the MakePO component.

The following is an example of a message body generated by this template:

Thank you for shopping at our store. Your order is on its way.

Tracking number: 8BMKQ3NHKES12M9D00L1R0D8N7

1 Plastic Commuter Mug

Total purchase: $14.28


Using the Scriptor Component

The Scriptor component makes it possible to insert code modules into your pipeline. These modules are written using Microsoft Visual Basic Scripting Edition (VBScript). From within a Scriptor component, you can access the OrderForm object, access pipeline context information, create other objects, and even run other pipelines. In addition, because the Scriptor component supports configuration parameters, the Scriptor component provides perhaps the easiest way to write custom components for the Order Processing pipeline (OPP).

When you add a Scriptor component to your pipeline, you configure the component by using the Component Properties dialog box. For more information about using the Component Properties dialog box, see Configuring a Scriptor Component.

Scriptor Methods

To display the property pages for a Scriptor component in the Pipeline Editor, select Internal, and then click the Edit button. The Scriptor component displays an edit window that contains the three routines that the Scriptor component can process:

''The following entry points are available (shown in VBScript format):

function MSCSExecute(config, orderform, context, flags)

    MSCSExecute = 1

end function

sub MSCSOpen(config)

end sub

sub MSCSClose()

end sub

These routines are called entry points for the Scriptor component, and you can think of them as you would think of the event handlers for a Visual Basic object or Microsoft ActiveX control. You fill in the body of these routines with your own task-specific scripting code, and when the Order Processing pipeline (OPP) runs the Scriptor component, it runs the code that you write.

The script that you write for your MSCSOpen subroutine is run immediately after the Scriptor component is created. The MSCSExit subroutine is run after the Scriptor component is destroyed. The MSCSExecute function is called after the MSCSOpen subroutine, but before the MSCSExit subroutine.

Of the three exports that make up a default Scriptor component, only the MSCSExecute function is required. The parameters that the Scriptor component passes to this function include the following:

  • config. The configuration Dictionary for the script, which contains the information in the following table.
    Name | Value
    User-defined configuration parameters | Parameter value. For example, if you type tax=1 in the Config box on the property page for the Scriptor component, the tax name/value pair appears in the Configuration dictionary.
    script_type | Identifies whether the script is internal or external. If it is internal, script_type contains the value INTERNAL; otherwise, it contains the value EXTERNAL.
    script_text | Contains the entire script for the component.
    script_name | Contains the fully qualified path to the file that contains the script to run. If the script_type is INTERNAL, this name/value pair does not contain a value.
    engine_prog_id | Identifies the scripting engine used to interpret the script. Possible values are VBScript and JScript.
  • orderform. The OrderForm object that you pass to the Execute method of the pipeline object.
  • context. The Context dictionary that you pass to the Execute method of the pipeline object.
  • flags. The flags that you pass to the Execute method of the pipeline object.


Using the ExecuteProcess Component

The ExecuteProcess component runs a specified executable, passing the executable the arguments that you provide. The process must not display any user interface elements. This component is typically run during the Accept stage, but can be run in any stage.

See Also

ExecuteProcess


Component Coordination

Because Commerce Server 2002 pipeline components run in a linear fashion, certain coordination must exist between the components. Component coordination is critical when multiple components exist within the same stage but only some of the components in the stage are implemented. The components that are implemented correlate to the actions of the Web site user. For example, the Payment stage might include one component that implements payment by electronic currency, and another that charges to a credit card. But you only want to run the component that corresponds to the request made by the user. If the user would like to pay by credit card, the payment by electronic currency component should not be run.

The Commerce Server pipeline architecture dictates that components in certain stages must coordinate to allow such multiple-choice components to exist in the same stage. The components that come with Commerce Server 2002 already follow this convention, and special care must be taken when writing your own components to ensure that they follow this convention.

Keep the following in mind when you create new components:

  • If the value that the component is supposed to compute is already set when the pipeline component begins running, the component should immediately exit. For example, if the user chooses to pay by credit card and the credit card component is run before the electronic currency component, then the credit card component will set the payment_method key to credit card. Then, when the electronic currency component is run, it should see that the payment_method key has been set and should exit.
  • If a component determines that it cannot or should not perform the task for the stage, it should leave the dictionary entry for the stage alone. The payment_method key is a commonly used apply dictionary key in the Payment stage and the component should only continue to run if the proper payment_method key value is set. For example, the user chose to pay by credit card and the credit card component set the payment_method key to credit_card. Then, when the electronic currency component is run it checks to see if the payment_method key is set to electronic currency, and when it determines that the payment method key is not set to electronic currency, it should not apply the rest of the component by charging the user via electronic currency.

Component coordination is critical in the following stages:

  • Shipping. Component coordination is critical for backward compatible components, but usually is not necessary when using the new multiple-shipping shipment architecture in Commerce Server. The _cy_shipping_total key must be coordinated. The shipping_method key is the apply key.
  • Handling. The _cy_handling_total key must be coordinated. The shipping_method key is the apply key.
  • Tax. Although this stage should be coordinated, it is recommended that you have only one tax component in your pipeline. Having only one tax key makes Commerce Server Business Desk management easier. The _cy_tax_total is the key to coordinate. The country key is the apply key.
  • Payment. The payment_method key is the key to coordinate and the apply key.

For information about building pipeline components, see Building Pipeline Components.


Specifying the Basis Item Key

Many of the Order Processing pipeline components use a Basis Item Key to determine applicable rates. For this key, you can use any of the values in the following table.

Basis Item Key Prefix | Description
order.fieldname | The value of the specified field, where fieldname is a property on the order form.
sum.fieldname | The sum of the value of the specified field for each item, where fieldname is a property in the item list.
sumq.fieldname | The sum of the value of the specified field for each item, where fieldname is a property in the item list, times the quantity of that item.
count | The number of line items in the order form. (Does not depend on quantity of each item.)

The following table shows some useful values for the Basis Item Key.

Example Basis Item Key | Result
order._oadjust_subtotal | Subtotal on the order form.
sum.quantity | Sum of all quantities (total number of items ordered).
sum._oadjust_adjustedprice | Sum of adjusted prices.
sumq._iadjust_currentprice | Sum of current price times quantity for all items in the order.
sumq._product_weight | Total weight of order. (Assumes that the weight column exists in the product table and that the query used by the QueryProdInfoADO component includes this field.)

For example, if the sumq._product_weight key is specified, and if the order has two items, one item weighing 2 pounds with a quantity of 3 and the other item weighing 4 pounds with a quantity of 1, then the basis value is 10 pounds.


Order Processing Pipelines Component Reference

The following components are commonly run in the Order Processing pipelines (OPP):

  • DBOrderPromoADO
  • DefaultHandlingCy, DefaultHandling
  • DefaultItemPriceCy, DefaultItemPrice
  • DefaultOrderSubTotalCy, DefaultOrderSubTotal
  • DefaultPayment
  • DefaultShippingCy, DefaultShipping
  • DefaultShopperInfo
  • DefaultTaxCy, DefaultTax
  • DefaultTotalCy, DefaultTotal
  • ExecuteProcess
  • FixedHandling
  • FixedShipping
  • FlagInventory
  • ItemPromo
  • LinearHandling
  • LinearShipping
  • LocalInventory
  • MakePO
  • MoneyConverter
  • OrderDiscount
  • POtoFile
  • QueryCatalogInfo
  • QueryProdInfoADO
  • RequiredHandlingCy, RequiredHandling
  • RequiredItemAdjustPriceCy, RequiredItemAdjustPrice
  • RequiredItemPriceCy, RequiredItemPrice
  • RequiredOrderAdjustPriceCy, RequiredOrderAdjustPrice
  • RequiredOrderCheck
  • RequiredOrderInitCy, RequiredOrderInit
  • RequiredOrderSubtotalCy, RequiredOrderSubtotal
  • RequiredPayment
  • RequiredProdInfo
  • RequiredShippingCy, RequiredShipping
  • RequiredTaxCy, RequiredTax
  • RequiredTotalCy, RequiredTotal
  • SaleAdjust
  • SampleRegionalTax
  • SaveReceipt
  • Scriptor
  • SendSMTP
  • ShippingDiscountAdjust
  • ShippingMethodRouter
  • SimpleCanadaTax
  • SimpleJapanTax
  • SimpleUSTax
  • SimpleVATTax
  • SQLItemADO
  • SQLOrderADO
  • StepwiseShipping
  • TableHandlingADO
  • TableShippingADO
  • ValidateCCNumber


Direct Mailer Pipeline

The Commerce Server Direct Mailer program (Dmlrun.exe) uses a pipeline to process the list of recipients. You can add new components to the pipeline, integrate the components with line-of-business systems, or replace them with components supplied by third parties.

This section contains:

  • About the Direct Mailer Pipeline. Describes the function and structure of the Direct Mailer pipeline.
  • Using the Direct Mailer Pipeline. Explains how to use the Direct Mailer pipeline.
  • Direct Mailer Component Reference. Lists the pipeline components used in the Direct Mailer pipeline.


About the Direct Mailer Pipeline

The Commerce Server Direct Mailer program (Dmlrun.exe) uses a pipeline to process the list of recipients. In general, you will use the Direct Mailer pipeline as it is shipped with the product. However, you can add your own or third-party components to extend the features of the pipeline. For more information, see Building Pipeline Components.

Because of the load on a server, installing the Direct Mailer service on a separate server is recommended. For information about running Direct Mailer, see Running Direct Mailer.

This section contains:

  • Stages and Components of the Direct Mailer Pipeline. Describes the components in each stage of the Direct Mailer pipeline.


Stages and Components of the Direct Mailer Pipeline

The Direct Mailer pipeline runs components that screen recipients and personalize e-mail, and then send the personalized e-mail. The following table lists the stages of the pipeline.

Stage | Description
Throttle | Controls the speed of the Direct Mailer process.
Preprocess Recipient | Verifies the data about the recipient.
Filter Recipient | Allows additional filtering of the recipient list.
Create Cookies | Creates the cookies used to produce personalized content. The Direct Mailer uses a Web server to generate the content.
Compose E-mail | Composes and formats the message.
Send E-mail | Sends the message.
Postprocess Recipient | Updates the Direct Mailer database to mark those messages that were sent, and writes the appropriate error messages if needed.

Throttle Stage

The Throttle stage controls the speed with which direct mail messages are processed by the pipeline. This controls the load on the Simple Mail Transfer Protocol (SMTP) server.

The components related to this stage are shown in the following table.

Component | Description
ThrottleDMLPerformance | Waits a specified number of milliseconds. The Direct Mailer program, Dmlrun.exe, calculates the delay needed to maintain an appropriate delivery rate. It passes this delay to the ThrottleDMLPerformance component through the Context dictionary.

Preprocess Recipient Stage

The Preprocess Recipient stage verifies data such as whether there is a recipient address.

The components related to this stage are shown in the following table.

Component | Description
VerifyRecipientData | The VerifyRecipientData component checks multiple values in the pipeline dictionaries to verify data about the recipient. If any one of the checks fails, the component sets the RCP_BYPASS key to True so that subsequent components in the pipeline skip the recipient.

Filter Recipient Stage

The Filter Recipient stage can perform additional filtering of potential e-mail recipients. Microsoft Commerce Server 2002 includes no component for this stage (other than the Scriptor component). However, you can add your own custom component to perform filtering. For more information, see Building Pipeline Components.

Testing recipient names against an opt-out list could be performed in this stage. However, you may have better performance if you remove the opt-out names from the mailing list in the List Manager module before running the mail job.

Components that you write for this stage should check and, if necessary, set the rcp_bypass key in the Order dictionary. The component should set the rcp_bypass key to True if subsequent components in the pipeline should skip the recipient.

Create Cookies Stage

This stage collects data to create a cookie to use with an Active Server Page to generate a personalized message.

The components related to this stage are shown in the following table.

Component | Description
CreateUPMCookie | Combines information from the Order and Context dictionaries and creates a Cookie dictionary in the Order dictionary containing the information.

Compose E-mail Stage

The Compose E-mail stage creates the body of the e-mail message and adds any attachments.

The components related to this stage are shown in the following table.

Component | Description
ComposeDMLMessage | Creates the body of a direct mail e-mail message. Generates the cookie from data in the Cookie dictionary if the e-mail is personalized.
AddAttachments | Uses the Collaboration Data Objects (CDO) for Microsoft Windows 2000 to add the attachments to the message.

Send E-mail Stage

The Send E-mail stage verifies the body of a direct mail e-mail message and sends the message.

The components related to this stage are shown in the following table.

Component | Description
VerifyMessageBody | Use this component to check the body of a direct mail e-mail message.
SendPrecomposedMessage | Use this component to send a direct mail e-mail message composed in earlier stages in the pipeline.

Postprocess Recipient Stage

The Postprocess Recipient stage can perform additional recipient processing such as recording information in a database. Commerce Server 2002 includes no component for this stage (other than the Scriptor component). However, you can add your own custom components. For more information, see Building Pipeline Components.


Using the Direct Mailer Pipeline

You can create personalized direct mail e-mail messages by writing a custom ASP page. Similarly, you can add third-party or custom components to the Commerce Server Direct Mailer pipeline. Those components need implement only the standard pipeline component interfaces. They also, however, need to understand the dictionary keys used by components in the pipeline.

This section contains:

  • Developing Direct Mail Content. Describes how to write an ASP page for use in sending personalized direct mail e-mail.
  • Implementing Direct Mail Opt-Out. Contains information on how to provide a link in direct mail e-mail messages to allow users to opt out of future mailings.
  • Values in the Direct Mailer Pipeline Dictionaries. A list of the keys used in the Direct Mailer pipeline dictionaries.


Developing Direct Mail Content

The Direct Mail module of Commerce Server 2002 allows you to send targeted email messages by using customer information and custom Active Server Pages (ASP). Direct Mailer acts similarly to a Web browser by gathering the UserID for the customer from a cookie, and using the profile service to obtain the user profile and personalize the page. But Direct Mailer renders the content as an e-mail message instead of a Web page.

The following example, ServiceReminder.asp, can be used to create Direct Mail content. When implemented, this ASP file will send out personalized e-mail messages reminding each of your customers to come to your Web site to view new products. The ASP file also includes an opt-out link if they would like to be removed from your mailing list.

In this example, the UserID is retrieved from the AuthManager object, and the UserObject profile is retrieved from the profile service. For personalization to work correctly with this example, the mailing list must include both an e-mail address and a UserID for all entries. If the mailing list has no UserID, the mail will not be sent. If the personalization flag is not turned on, the mail will not be sent. For more information about creating a mailing list, see Creating a Mailing List.

<%@ Language=VBScript %>

<%

Option Explicit

Response.AddHeader "pragma", "no-cache"

Response.Expires = 0

%>

<html>

<head>

</head>

<div class=Section1>

<%

Dim objAuthManager

Dim objUPM

Dim objProfile

Dim strUserID

Dim sCookieData

On Error goto 0

' Get User ID from AuthManager object.

SET objAuthManager = Server.CreateObject("Commerce.AuthManager")

objAuthManager.Initialize(Application("MSCSCommerceSiteName"))

if( Err.number <> 0 ) Then

Response.Write "<P>AuthManager Failed to initialize</P>"

End If

If Request.Cookies("CampaignItemID") <> "" Then' Part of a Campaign

strUserID = objAuthManager.GetUserID(1)

if( Err.number <> 0 ) Then

Response.Write "<P>Failed to get UserID</P>"

End If

Else' Not part of a Campaign

' The fix for being able to send personalized direct mail outside ' of a campaign is to toggle the comments on the two lines below.

' But please ensure that the web server that generates the

' personalized content is placed behind a firewall (since the user

' guid that is passed in not encrypted in this case).

Err.Raise &H80004005, , "Error: CampaignItemID was not specified"

' strUserID = Request.Cookies("MSCSProfile")

End If

' Get UserObject from profile Service

Set objUPM = Application("MSCSProfileService")

If (Err.Number <> 0) Then

Response.Write "<P>Failed to create Commerce.ProfileService</P>"

End If

Set objProfile = objUPM.GetProfileByKey("User_ID", strUserID, "UserObject")

If (Err.Number <> 0) Then

strErrMsg = "<P>User profile not found: " & strUserID & "</P>"

Response.Write strErrMsg

End If

%>

<table border=1 cellspacing=0 cellpadding=0 bgcolor="#ffff99" style='background:

#FFFF99;border-collapse:collapse;border:none;mso-border-alt:solid windowtext .5pt;

mso-padding-alt:0in 5.4pt 0in 5.4pt'>

<tr>

<td width=655 valign=top style='width:490.9pt;border:solid windowtext .5pt;

padding:0in 5.4pt 0in 5.4pt'>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family: "MS Mincho"'>

From: E-mail Notifier<o:p></o:p></span></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family:

"MS Mincho"'>Sent: <% = Date() %><o:p></o:p></span></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family:

"MS Mincho"'>To: <% = objProfile.GeneralInfo.First_Name %><o:p> </o:p><% = objProfile.GeneralInfo.Last_Name %><o:p></o:p></span></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family:

"MS Mincho"'>Subject: </span><b><span style='font-size:12.0pt;

mso-bidi-font-size: 10.0pt;font-family:Tahoma;

mso-fareast-font-family:"MS Mincho";color:blue'>

New product notice</span></b><span style='mso-fareast-font-family:

"MS Mincho"'><o:p></o:p></span></p>

</td>

</tr>

</table>

<p class=MsoPlainText><b><span style='font-size:12.0pt;

mso-bidi-font-size:10.0pt; mso-fareast-font-family:

"MS Mincho";color:blue'><![if

!supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></b></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family:

"MS Mincho"'>Dear <% = objProfile.GeneralInfo.First_Name

%>,<o:p></o:p></span></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family:

"MS Mincho"'><span style="mso-spacerun: yes">

</span><o:p></o:p></span></p>

<p class=MsoPlainText><span style='font-family:Tahoma;

mso-fareast-font-family: "MS Mincho"'>

<span style="mso-spacerun: yes"> </span>We have added some exciting

new products to our Web site. <o:p></o:p>

<A HREF="<% =objAuthManager.GetUrl("default.asp", False, False)

%>">Come see us today!</A>.<o:p></o:p></span></p>

<p class=MsoNormal style='mso-layout-grid-align:none;

text-autospace:none'><span style='font-size:10.0pt;

font-family:Arial;color:navy'>

<![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p class=MsoNormal style='mso-layout-grid-align:none;

text-autospace:none'><span style='font-size:10.0pt;

font-family:Arial;color:navy'><span style='mso-tab-count:

1'> </span><o:p></o:p></span></p>

<p class=MsoPlainText><span style='mso-fareast-font-family:

"MS Mincho"'>__________________________________________

<o:p></o:p></span></p>

<p class=MsoPlainText><i><span style='font-size:8.0pt;

mso-bidi-font-size:10.0pt; font-family:Verdana;

mso-fareast-font-family:"MS Mincho"'>TO UNSUBSCRIBE: You

have received this e-mail notifier as a result of your personal

registration.<BR>To unsubscribe from this e-mail notifier, click

the link below. <o:p></o:p></span></i></p>

<p class=MsoPlainText><i><span style='font-size:8.0pt;

mso-bidi-font-size:10.0pt;

font-family:Verdana;mso-fareast-font-family:"MS Mincho"'>

<A HREF="<% On Error Goto 0

Response.Write objAuthManager.GetUrl

("opt-out.asp", False, False, _

Array("rcp_email", "campitem_id", "campitem_name"), _

Array(CStr(objProfile.GeneralInfo.email_address),

CStr(Request.Cookies("CampaignItemId")),

CStr(Request.Cookies("CampaignItemName"))) _

) %>">Click here to opt-out of future

mailings.</A><o:p></o:p></span></i></p>

</div>

</body>

</html>

To use this example you must first create a campaign

On the Campaign Manager <Customer> <Campaign> New (direct mail) screen, in the Direct Mail Properties section, and then do the following.

Use this | To do this
Direct mail name | Type a name for the direct mail job.
Message from e-mail address | Type the address that the direct mail is being sent from.
Reply to e-mail address | Type the address to which the recipient is to reply if different from the default address. This box defaults to the address the direct mail is being sent from.
Message subject | Type the subject text for this direct mail job.
File path or URL containing message body | Type the URL that you are using to display the direct mail message. For example, http://<host_name>/<site_name>/ServiceReminder.asp.
Attachment | Leave blank.
Mailing list | Select the mailing list that this direct mail campaign will use from the drop-down list. This mailing list must have e-mail addresses and valid UserIDs; other columns are optional.
Personalize direct mail per user | Select the check box.
Mail format | Select MHTML.
Comments (not included in message) | Type any required comments that are pertinent to this direct mail job.

If you are sending the ServiceReminder.asp code from the command line you must comment out the following line:

Err.Raise  &H80004005, , "Error: CampaignItemID was not specified"

and uncomment the following line:

' strUserID = Request.Cookies("MSCSProfile")

This is shown in comments in the ServiceReminder.asp code.

For more information about sending a test message, see Testing Direct Mail.


Implementing Direct Mail Opt-Out

Direct mail e-mail should always, at a minimum, provide a way for the recipient to opt out of future mailings. Where you send direct mail from determines the effects of opt-out links on your mailing lists.

For Direct Mail sent from Business Desk

The unpacked site associated with the Commerce Server Business Desk module includes an ASP page that takes a query string consisting of the e-mail address of the recipient, the campaign item ID, and the campaign name. When a user clicks on the opt-out link on the direct mail message sent from Business Desk, the user will be added to the opt-out list for the particular campaign that the direct mail was sent from. A user on mailing lists for multiple campaigns will continue to receive direct mail from all campaigns except for the campaign that the direct mail was sent from.

In the direct mail e-mail you send, you can include a link to the opt-out ASP page. The code for a link might appear as follows:

Click

<A HREF="http://mswaldofr/retail/opt-out.asp?rcp_email=mailuser8@passport.com&campitem_id=2&campitem_name=TestMail&MSCSProf">
 here </A> if you do not wish to receive future mailings.

The text the user would see in the e-mail would be "Click here if you do not wish to receive future mailings."

For Direct Mail sent from the command line

Direct mail sent from the command line is not associated with any campaign. Therefore the opt-out ASP page takes a query string containing only the e-mail address of the recipient. When a user clicks on the opt-out link on the direct mail message sent from the command line, the user will be added to the global opt-out list, and subsequently will be removed from all future mailings.

Note

  • If direct mail is sent using the Send Test Mail dialog box in Business Desk, and the recipient is on the opt-out list for the site, the recipient will still receive the mail. Opt-out links sent in direct mail messages from the Send Test Mail dialog box in Business Desk do not use the ListManager object to subtract the opt-out lists from the test mail mailing list. Additionally, if a user is not on a campaign opt-out list, and clicks the opt-out link in the test mail, the user will be added to the opt-out list.

For more information about the opt-out link included in the sample direct mail code, see Developing Direct Mail Content. If the direct mail is sent from the command line, and the recipient clicks the opt-out link, the recipient will be added to global opt-out lists, and will no longer receive direct mail. If the direct mail is sent from the Business Desk module, any recipient who clicks the opt-out link will be added to the opt-out list for the campaign. A recipient on multiple campaign mailing lists will continue to receive direct mail from the other campaigns.


Values in the Direct Mailer Pipeline Dictionaries

The following table lists the keys used in the Commerce Server Direct Mailer pipeline dictionaries. Like other pipelines, the Direct Mailer pipeline uses two dictionaries: a Context (read-only) dictionary and an Order (read/write) dictionary.

Key | Dictionary | Description
Attachments | Order | A SimpleList of URLs pointing to attachments.
campaign_item | Context | The campaign item ID.
campaign_item_name | Context | The name of the campaign item.
cdo_config | Context | A reference to a Collaboration Data Objects (CDO) configuration object (CDO.Configuration).
cdo_error | Order | An error string from the most recent CDO operation, if any. NULL if no error.
cdo_message | Context | A reference to a CDO message object (CDO.Message).
cdo_result | Order | The result code (an HRESULT) from the most recent CDO for Microsoft Windows 2000 operation.
Cookie | Order | The dictionary containing the cookie data.
css_site | Context | The site ID string.
default_formatting | Context | The default format for the message.
default_locale | Order | The locale code to use if there is no recipient locale code (rcp_locale).
default_url | Context | The URL used to retrieve the mailing content.
default_url_content | Context | The content of the file pointed to by default_url if default_url_isfile is True.
default_url_isfile | Context | True if the default URL is a file path and not an http:// path.
delay_msec | Context | The delay between messages in milliseconds.
from_field | Order | The "From" field for the message.
messages_sent | Order | The total number of messages sent for this pipeline cycle.
precomposed_body | Order | The plain-text message body. Defaults to an empty string.
rcp_bypass | Order | Boolean. Component bypasses (skips) processing if True.
rcp_email | Order | The e-mail address of the recipient.
rcp_formatting | Order | The format of the message.
rcp_guid | Order | The GUID uniquely identifying this recipient, taken from the user profile.
rcp_locale | Order | The locale code to use for the recipient.
rcp_personalize | Order | Numeric. Whether or not to personalize the message for this recipient.
rcp_url | Order | The URL used to retrieve the mailing content. Takes precedence over default_url.
rcp_url_content | Order | The content of the file pointed to by rcp_url if rcp_url_isfile is True.
rcp_url_isfile | Order | True if the URL for the content (rcp_url) is a file and not an http:// address.
replyto_field | Order | The "Reply-to" field for the message.
subj_field | Order | The "Subject" field for the message.
use_precomposed_body | Order | Boolean. If True, the component creates the message from the plain-text body assigned to the precomposed_body key.
user_flags | Order | A bit mask indicating elements of the message to check. Only the rightmost bit is currently used.


Direct Mailer Component Reference

The following components are commonly run in the Direct Mailer pipeline:

  • AddAttachments
  • ComposeDMLMessage
  • CreateUPMCookie
  • SendPrecomposedMessage
  • ThrottleDMLPerformance
  • VerifyMessageBody
  • VerifyRecipientData


Content Selection Pipelines

The Content Selection pipelines are a significant part of the Content Selection Framework (CSF). They are used to select content or discounts, and to record events such as ad click-throughs.

This section contains:

  • About Content Selection Pipelines. Describes the role of Content Selection pipelines in the CSF, and introduces the two different forms of Content Selection pipelines.
  • Stages and Components in Content Selection Pipelines. Describes the individual stages in Content Selection pipelines and the components most often used in those stages.
  • Using Content Selection Pipelines. Explains how to use Content Selection pipeline components in Commerce Server sites.
  • Content Selection Component Reference. Lists the pipeline components used in Content Selection pipelines.


About Content Selection Pipelines

Content Selection pipelines are used with the CacheManager object and the ContentSelector object to select content items or other custom content, including discounts.

The advertising and discount delivery engines in Microsoft Commerce Server 2002 are built using Content Selection pipelines. You can create your own pipelines to do different types of content selection.

Two distinct pipelines exist for each content selection application. The first pipeline is responsible for selecting content to be displayed, and is known as the Content Selection pipeline (CSP). It is based on the ContentSelection.pct pipeline-template file. The second pipeline is responsible for processing events related to the displayed content, and is known as the Event Processing pipeline (EPP). An example of such an event is a user clicking on an ad or an ad being selected for display on a page. The pipeline is based on the EventProcessing.pct pipeline-template file.

Note

  • Although Content Selection pipelines are used to select discounts, the discounts are not applied in Content Selection pipelines. Discounts are applied to orders by the OrderDiscount pipeline component in an Order Processing pipeline.

The following table shows the CSP stages and the pipeline components provided for each of those stages, for each application.

CSP Stage | Advertising Application Pipeline Components | Discount Application Pipeline Components
Load Context | InitCSFPipeline LoadHistory | InitCSFPipeline LoadHistory
Filter | FilterContent | FilterContent
Initial Score | AdvertisingNeedOfDelivery | Not applicable
Score | HistoryPenalty EvalTargetGroups | ScoreDiscounts HistoryPenalty EvalTargetGroups
Select | SelectWinners | SelectWinners
Record | RecordHistory SaveHistory RecordEvent IISAppendToLog | RecordHistory SaveHistory RecordEvent IISAppendToLog
Format | FormatTemplate | FormatTemplate

The following table shows the EPP stages and the pipeline components provided for each of those stages, for each application.

EPP Stage | Advertising Application Pipeline Components | Discount Application Pipeline Components
Load Context | None | None
Record | RecordEvent IISAppendToLog | RecordEvent IISAppendToLog
Format | None | None


Stages and Components in Content Selection Pipelines

The following sections describe the stages and components in the Content Selection and Event Processing pipelines. The Content Selection pipeline selects custom content, such as ads or discounts, while the Event Processing pipeline processes events such as a user clicking on an ad.

This section contains:

  • Content Selection Pipeline
  • Event Processing Pipeline


Content Selection Pipeline

The Content Selection pipeline runs components that gather, filter, score, and select content. This pipeline is often used to select ads or discounts.

The Content Selection pipeline consists of the following stages:

  • Load Context Stage
  • Filter Stage
  • Initial Score Stage
  • Scoring Stage
  • Select Stage
  • Record Stage
  • Format Stage

Load Context Stage

This stage contains components that prepare for the execution of the rest of the pipeline.

The components related to this stage are shown in the following table.

Component | Description
InitCSFPipeline | Initializes values needed in the remainder of the pipeline.
LoadHistory | Retrieves a history string from a user profile, an item in the Active Server Pages (ASP) session collection, or a cookie.

Filter Stage

This stage contains components that filter or trim the content list.

The components related to this stage are shown in the following table.

Component | Description
FilterContent | Applies provided filters to the content list.

Initial Score Stage

This stage sets an initial score for each content item.

The components related to this stage are shown in the following table.

Component | Description
AdvertisingNeedOfDelivery | Scores ads so that they are selected often enough to meet business commitments.

Scoring Stage

This stage contains components that adjust the scores of each content item.

The components related to this stage are shown in the following table.

Component | Description
EvalTargetGroups | Targets particular groups for advertising, content, or discounts by evaluating a list of expressions for each item in the list and adjusting item selection.
HistoryPenalty | Applies penalties to content items based on how recently they have been selected.
ScoreDiscounts | Adjusts scores of discount items to promote discounts most relevant to the current user.

Select Stage

This stage, usually containing a single component, selects one or more content items for return.

The components related to this stage are shown in the following table.

Component | Description
SelectWinners | Selects items based on their final scores.

Record Stage

This stage contains components that record the selection made to a database, the server log file, or a history string.

The components related to this stage are shown in the following table.

Component | Description
IISAppendToLog | Records information about content selection results in the QueryString field of the Internet Information Services (IIS) log file.
RecordEvent | Records event delta counts for the selected content items (the winners) in the Performance dictionary. The values are used to calculate the Need of Delivery (NOD) of an item.
RecordHistory | Records the identifiers of the winning content items in the history list string.
SaveHistory | Saves the history string in one of three locations: the user profile object, the ASP session collection, or the HTTP cookie.

Format Stage

This stage contains components that format selected items as HTML or XML for return to the page that ran the pipeline.

The components related to this stage are shown in the following table.

Component | Description
FormatTemplate | Merges data from selected items with their associated templates to form formatted strings. These are usually HTML strings ready for display on the page.


Event Processing Pipeline

The Event Processing pipeline runs components that record the occurrence of particular events, such as a user clicking on a particular ad.

The Event Processing pipeline consists of the following stages:

  • Load Context Stage
  • Record Stage
  • Format Stage

Load Context Stage

Microsoft Commerce Server 2002 includes no components for this stage. This stage is provided for custom extensions to the Content Selection Framework (CSF) or for future enhancements to Commerce Server 2002.

Record Stage

This stage contains components that record the selection made to a database, the server log file, or a history string.

The components related to this stage are shown in the following table.

Component | Description
IISAppendToLog | Records information about content selection results in the QueryString field of the Internet Information Services (IIS) log file.
RecordEvent | Records event delta counts for the selected content items (the winners) in the Performance dictionary. The values are used to calculate the Need of Delivery (NOD) of an item.

Format Stage

Microsoft Commerce Server 2002 includes no components for this stage. This stage is provided for custom extensions to the CSF or for future enhancements to the Commerce Server platform.


Using Content Selection Pipelines

Using Content Selection pipelines included in Microsoft Commerce Server 2002 requires setting up the CacheManager object and the information required by the ContentSelector object. However, custom Content Selection pipelines may or may not use the CacheManager object depending on the size of the content to cache. For code to set up the CacheManager and the ContentSelector objects, see Content Selection Objects.

You can trace the actions of Content Selection pipelines by turning trace mode on for the pipeline. Trace mode uses the ContentSelector object to pass the value to the pipeline. In the following example, if oContentSelector were a ContentSelector object, then the line of code would appear as follows:

oContentSelector.Trace=True

Note

  • Trace mode should not be turned on when running Content Selection pipelines in production Web sites.


Content Selection Component Reference

The following components are commonly run in Content Selection pipelines:

  • AdvertisingNeedOfDelivery
  • EvalTargetGroups
  • FilterContent
  • FormatTemplate
  • HistoryPenalty
  • IISAppendToLog
  • InitCSFPipeline
  • LoadHistory
  • RecordEvent
  • RecordHistory
  • SaveHistory
  • ScoreDiscounts
  • SelectWinners

In addition, the following writer and cache loader components play an important role in Content Selection pipelines:

  • CSFLoadAdvertisements
  • CSFLoadDiscounts
  • CSFWriteEvents


Pooled Pipelines

Commerce Server 2002 Enterprise Edition pooled pipelines use COM+ object pooling to increase both loading and execution speed.

This section contains:

  • About Pooled Pipelines. Describes the PooledPipeline and PooledTxPipeline objects, how pooled and non-pooled components can be run in pooled pipelines, and provides debugging suggestions.
  • Managing Pooled Pipelines. Describes how to change properties of pooled pipeline components in order to maximize pipeline performance, and describes the Commerce Server tools you can use to monitor performance of your pooled pipelines.
  • Poolable Component Reference. Lists all components that are tagged as poolable.


About Pooled Pipelines

Commerce Server 2002 Enterprise Edition supplies two pooled pipeline objects, one for non-transacted pipelines (PooledPipeline) and one for transacted pipelines (PooledTxPipeline). Their use is identical to that of the non-pooled pipeline objects MtsPipeline and MtsTxPipeline. The difference between the two sets of pipelines is that the pooled pipeline objects are registered under COM+ to take advantage of object pooling.

Each of the pooled pipeline objects maintains a table of pipelines. When a pipeline is loaded, a pooled pipeline object first looks in its table of pipelines to see if the pipeline is already loaded. If the pipeline is not loaded already, the pooled pipeline object loads the pipeline and adds an entry to its protected table of pipelines. When the Execute method is called, the pipeline is retrieved from the table and run.

The individual components of a pooled pipeline (if they are poolable) are created once, and then held by the pipeline in the object pool. To be poolable, pipeline components must be free-threaded and cannot maintain state information between executions. Pipeline components written in Microsoft Visual Basic are apartment-threaded; they cannot be pooled. Non-poolable components can still be run within pooled pipelines. However, these components are created each time there is an Execute method call. When you create custom poolable pipeline components, you must add the Component Object Model (COM) category, CATID_MSCSPIPELINE_POOLABLE, to the component to make it poolable. For more information about making a pipeline poolable, see Registering the ATL Component.

Although pooled pipelines are recommended in all new sites, older pipeline objects should be used during debugging. Because pipelines are effectively cached, changes to pipeline configurations may not take effect until either Microsoft Transaction Server (MTS) or Internet Information Services (IIS) is restarted. The objects MtsPipeline and MtsTxPipeline can be used for debugging a new pipeline and the objects PooledPipeline or PooledTxPipeline can be used in the production site.


Managing Pooled Pipelines

You can change properties of COM+ object pools and monitor the performance of those pools using the Component Services administrative tool.

By monitoring pipeline performance and adjusting the parameters of the pooled objects, you can optimize pipeline pooling for your application.

This section contains:

  • Changing Pool Properties of Components
  • Monitoring Pooled Object Performance


Changing Pool Properties of Components

You can specify several properties that determine how COM+ handles the pool of pipeline objects. These properties include:

  • Minimum pool size
  • Maximum pool size
  • Creation request timeout

The minimum pool size is the minimum number of objects that are in the pool and the number of objects created when the application starts. When the pool reaches the maximum pool size, no more objects are created. This includes both active and inactive objects. The creation request timeout value is in milliseconds and specifies how long a client will wait for an object from the pool before the request times out (returns an E_TIMEOUT error).

To change pool properties

  1. Click Start, point to Programs, point to Administrative Tools, and then click Component Services.
  2. Expand Component Services, expand Computers, expand My Computer, expand COM+ Applications, expand CommercePipeline, and then expand Components.
  3. Right-click the pipeline you want to change, and then select Properties.
  4. In the Properties dialog box, on the Activation tab, do the following:
    Use this | To do this
    Enable object pooling | Enable object pooling for the component.
    Minimum pool size | Type the minimum number of objects that will be maintained in the pool at any time.
    Maximum pool size | Type the maximum number of objects that can exist in the pool at any time.
    Creation timeout (ms) | Type the amount of time (in milliseconds) that the object pool has to provide a requested object.
    Enable object construction | Enable object construction for the component.
    Constructor string | Type a string that will be made available to the object at creation time when object construction is enabled.
    Enable Just in Time Activation | Specify that the object may be repeatedly deactivated and reactivated just in time to handle calls from a client, where the client is unaware that the object was ever deactivated.
    Component supports events and statistics | Enable object event reporting and object statistics, such as object call time.
    Must be activated in caller's context | Ensure that the object can only be activated within the context of its initial caller.
  5. Click OK.

The new pool properties are saved.


Monitoring Pooled Object Performance

You can actively monitor pooled object performance in the Component Services administrative tool. The tool allows you to view the items listed in the following table for each pooled object.

Column | Description
Prog ID | The programmatic identifier of the object.
Objects | Number of objects currently held by clients.
Activated | Number of objects that are currently activated.
Pooled | Total number of objects created by the pool. Includes objects in use and deactivated objects.
In Call | Number of objects in the process of being called.
Call Time | The average call duration of method calls made in the last 20 seconds.

To monitor object status

  1. Click Start, point to Programs, point to Administrative Tools, and then click Component Services.
  2. Expand Component Services, expand Computers, expand My Computer, expand COM+ Applications, and expand CommercePipeline.
  3. Right-click Components, select View, and then select Status View. The Status View appears on the right of the Component Services screen.


Poolable Component Reference

The following list contains the pipeline components that are tagged as poolable.

A-D

AddAttachment, AdvertisingNeedOfDelivery, ComposeDMLMessage

CreateAUOCookie, DefaultHandling, DefaultHandlingCy

DefaultItemPrice, DefaultItemPriceCy, DefaultOrderSubTotal

DefaultOrderSubTotalCy, DefaultPayment, DefaultShipping

DefaultShippingCy, DefaultShopperInfo, DefaultTax

DefaultTaxCy, DefaultTotal, DefaultTotalCy

E-Q

EvalTargetGroups, FilterContent, FixedHandling

FixedShipping, FlagInventory, FormatTemplate

HistoryPenalty, IISAppendToLog, InitCSFPipeline

LinearHandling, LinearShipping, LoadCSFHistory

LocalInventory, MoneyConverter, OrderDiscount

QueryCatalogInfo, QueryProdInfoADO

R

RecordCSFHistory, RecordEvent, ReduceLocalInventory

RequiredHandling, RequiredHandlingCy, RequiredItemAdjust

RequiredItemAdjustCy, RequiredItemAdjustPrice, RequiredItemAdjustPriceCy

RequiredItemPrice, RequiredItemPriceCy, RequiredOrderAdjust

RequiredOrderAdjustCy, RequiredOrderAdjustPrice, RequiredOrderAdjustPriceCy

RequiredOrderCheck, RequiredOrderInit, RequiredOrderInitCy

RequiredOrderSubTotal, RequiredOrderSubTotalCy, RequiredPayment

RequiredProdInfo, RequiredShipping, RequiredShippingCy

RequiredTax, RequiredTaxCy, RequiredTotal

RequiredTotalCy

S-Z

SQLItemADO, SaveCSFHistory, ScoreDiscounts

Scriptor, SelectWinners, SendPrecomposedMessage

TableHandlingADO, TableShippingADO, ThrottleDMLPerformance

ValidateCCNumber, VerifyMessageBody, VerifyRecipientData


Building Pipeline Components

The Microsoft Commerce Server 2002 pipeline is a software infrastructure that executes a sequence of components. Each component is a custom-tailored Component Object Model (COM) object designed to perform operations on some part of an OrderForm or Dictionary. The pipeline coordinates the interaction of pipeline components by passing the OrderForm or Dictionary object from one component to another.

You can use pipelines to model many linear processes. The two main processes modeled in Commerce Server are order processing, which is handled by the Order Processing pipelines (OPP), and content selection, which is handled by the Content Selection Framework (CSF) pipelines. The OPP automates order processing in a business-to-consumer scenario. The CSF pipelines automate the selection of advertisements and discounts.

Commerce Server includes a set of components that can be combined into a pipeline to support either architecture. In addition, you can create your own components to extend the capabilities of the pipeline architecture, as described in this section.

This section contains:

  • About Pipeline Components. Describes the basic structure of pipeline components and introduces the OrderForm and Dictionary objects on which pipeline components operate.
  • Creating Pipeline Components Using Visual Basic. Explains how to create and build a pipeline component using the Visual Basic Pipeline Component Wizard, as well as how to customize your components using Microsoft Visual Basic.
  • Creating Pipeline Components Using the Active Template Library (ATL). Explains how to create, build, and register a pipeline component using the ATL Pipeline Component Wizard, as well as how to customize your components using C++.
  • Error Levels. Describes the error values returned by pipeline components.
  • MinMaxShip Sample Pipeline Component. Describes the design of the MinMaxShip sample pipeline component and explains how to implement it in Commerce Server pipelines.

Notes

  • Commerce Server includes wizards for creating pipeline components using Microsoft Visual Basic and Microsoft Visual C++. For the most current sample code for the components, see the ATL Pipeline Component Wizard, the Visual Basic Pipeline Component Wizard, and the complete sample code in the Programmer's Reference.
  • You must have Visual C++ version 6.0 or Visual Basic version 6.0 or higher installed on your computer in order to use the ATL Pipeline Component Wizard.

See Also

Programmer's Reference

Working with Pipelines

Order Processing Pipelines

OrderForm Object

Dictionary Object


About Pipeline Components

A pipeline component is a Component Object Model (COM) server object that implements the IPipelineComponent interface. The following is the definition of this interface as it appears in the Pipecomp.idl file:

    interface IPipelineComponent : IUnknown
    {
        import "oaidl.idl";

        HRESULT Execute(
                    [in]            IDispatch*  pdispOrder,
                    [in]            IDispatch*  pdispContext,
                    [in]            LONG        lFlags,
                    [out,retval]    LONG*       plErrorLevel
                );

        //
        // By default, a pipeline is in "execution mode", this call is
        // used to prepare the pipeline for "design mode" (fEnable ==
        //  TRUE) or to go to design mode (fEnable = FALSE).
        //

        HRESULT EnableDesign( [in]    BOOL fEnable );

    };

When the pipeline creates an instance of a component, it requests an interface pointer to the IPipelineComponent implementation of the component, then uses this pointer to invoke the IPipelineComponent::Execute method.

IPipelineComponent is the only interface that a component must implement to function within the pipeline. However, to enhance the usability of a component, or to take advantage of the transaction capabilities of COM+, you may also design your component to implement one or more of the following interfaces:

  • IDispatch. Implementing this interface is optional. However, it makes it possible for clients to access the capabilities of your component from macro languages, such as Visual Basic Scripting Edition (VBScript) or Visual Basic.
  • IPipelineComponentAdmin. This interface is a component configuration interface. If your component requires configuration at design time, then you should implement this interface. The IPipelineComponentAdmin interface defines the GetConfigData and SetConfigData methods, to which the caller passes a Dictionary object. The GetConfigData and SetConfigData methods write or read this Dictionary object to retrieve or set configuration data on the component.
  • IPipelineComponentDescription. When you implement this interface, you identify to the Pipeline Editor the keys and values in the OrderForm object that your component reads and writes, as well as the pipeline context values that your component uses. The Pipeline Editor displays these keys when the user selects the Values Read and Written tab for the component.
  • IPersistStreamInit. This interface allows components written in C++ to save data to the configuration file. Visual Basic components cannot implement this interface. For Visual Basic components, the IPipelineComponentAdmin interface is used to get and save data to and from the configuration file.
  • ISpecifyPropertyPages. This interface allows your component to specify property pages for use in the Pipeline Editor.

See Also

IPipelineComponent Interface

IPipelineComponent::Execute

IPipelineComponentAdmin Interface

IPipelineComponentDescription Interface

IPersistStreamInit Interface

ISpecifyPropertyPages Interface

IPipelineComponentAdmin::GetConfigData

IPipelineComponentAdmin::SetConfigData


Creating Pipeline Components Using Visual Basic

By creating your own components you can customize the pipeline your customers use. If your business requires these custom components, you can create them using the Visual Basic Pipeline Component Wizard and Microsoft Visual Basic version 6.0 or higher, and register them using the Pipeline Component Registration Tool.

You can write pipeline components in Visual Basic. However, Visual Basic components will, in general, be slower than the same component written in Microsoft Visual C++. For more information about additional limitations to components written in Visual Basic, see Special Considerations for Visual Basic Pipeline Components.

This section contains:

  • Using the Visual Basic Pipeline Component Wizard
  • Implementing the IPipelineComponent Interface
  • Persisting Data
  • Using the Pipeline Component Registration Tool
  • Special Considerations for Visual Basic Pipeline Components


Using the Visual Basic Pipeline Component Wizard

The Visual Basic Pipeline Component Wizard gives site developers point-and-click access to creating a framework code base for creating pipeline components. This wizard is provided as a new project item in the Visual Basic projects menu, and generates code based on responses provided by the user to a series of questions. Previous knowledge of the Visual Basic language is required to complete this wizard.

This section contains:

  • Installing the Visual Basic Pipeline Component Wizard
  • Running the Visual Basic Pipeline Component Wizard

See Also

Implementing the IPipelineComponent Interface

Persisting Data

Using the Pipeline Component Registration Tool

Special Considerations for Visual Basic Pipeline Components


Installing the Visual Basic Pipeline Component Wizard

Registering the PipelineCompWizard.dll causes a new project item to be installed in Visual Basic.

To register the PipelineCompWizard.DLL

  1. Click Start, and then click Run.
  2. In the Run dialog box, type regsvr32 followed by the path to the Visual Basic Pipeline Component Wizard. For example, type regsvr32 "C:\Program Files\Microsoft Commerce Server\SDK\Tools\VB Pipe Wizard\PipelineCompWizard.dll", and then click OK.

The RegSvr32 dialog box appears indicating success in registering the PipelineCompWizard.dll.

See Also

Running the Visual Basic Pipeline Component Wizard


Running the Visual Basic Pipeline Component Wizard

The Visual Basic Pipeline Component Wizard enables you to create a framework from which you can build custom pipeline components. The Visual Basic Pipeline Component Wizard configures the pipeline component to the specifications set while running the wizard.

To run the Visual Basic Pipeline Component Wizard

To register the DLL components

To run the Visual Basic Pipeline Component Wizard

  1. Click Start, point to Programs, and then click Microsoft Visual Basic 6.0.

    Or, if you have Microsoft Visual Studio 6.0 installed, point to Microsoft Visual Studio 6.0, and then click Microsoft Visual Basic 6.0.

  2. To open the wizard, on the File menu, click New Project.
  3. In the New Project dialog box, double-click Pipeline Component Wizard.

    The Pipeline Component Wizard - Introduction (Step 1 of 7) dialog box appears.

  4. Click Next to begin using the wizard.
  5. In the Pipeline Component Wizard - Transaction Support (Step 2 of 7) dialog box, click Yes to support transacted pipelines or click No if you want to use non-transacted pipelines, and then click Next.
  6. In the Pipeline Component Wizard - Shipping Support (Step 3 of 7) dialog box, click Yes to support the new multiple-shipping architecture used in Microsoft Commerce Server 2002 or click No if you want to create a component that does not process shipments. (If you are creating a Shipping or Tax component, click Yes.) Click Next.
  7. In the Pipeline Component Wizard - Component Properties (Step 4 of 7) dialog box, click Add.
  8. In the Add Property dialog box, in the Property name box, type the name of the property you want to add.
  9. In the Data type box, select the data type for the property from the drop-down list, and then click OK.

    The property you added appears in the Properties box in the Pipeline Component Wizard - Component Properties (Step 4 of 7) dialog box.

  10. If you want to remove any unwanted properties, in the Properties box, select the property you want to remove, and then click Remove. To add additional properties complete steps 7, 8, and 9 for each additional property.
  11. Click Next.
  12. In the Pipeline Component Wizard - Project, Class, and Form Names (Step 5 of 7) dialog box, do the following:
    Use this | To do this
    Project Name (*.vbp) | Type a name for the project or leave the default value.
    Pipeline Component Class (*.cls) | Type a component class name for the project or leave the default value.
    Pipeline Component UI Class (*.cls) | Type a component UI class name or leave the default value.
    Pipeline Component UI Form (*.frm) | Type a component UI form name or leave the default value.

    These values will be the names for the project, the form, and the classes created by the wizard.

  13. Click Next.
  14. In the Pipeline Component Wizard - Select Directory (Step 6 of 7) dialog box, select the location for storing the files the wizard will generate.
  15. In the Pipeline Component Wizard - Finished! (Step 7 of 7) dialog box, click Finish to build your component based on the information you provided in the wizard.

Three new component pages appear in the Visual Basic project window: the class module code corresponding to the Pipeline component, the class module corresponding to the Pipeline UI component, and a form corresponding to the Pipeline UI component. Before registering your component for stage affinity you must register the DLL components at the command line.

To register the DLL components

  1. Click Start, and then click Run.
  2. In the Run dialog box, type regsvr32 followed by the path to the pipeline component. For example, type regsvr32 "C:\Program Files\Microsoft Commerce Server\<project name>.dll", and then click OK.

    The RegSvr32 dialog box appears indicating success in registering the .dll file.

  3. Repeat Step 2 for the component UI. For example, type regsvr32, "C:\Program Files\Microsoft Commerce Server\<project name>UI.dll" and then click OK.

Your new component is now registered.

All custom components written in Visual Basic must be registered for stage affinity using the Pipeline Component Registration Tool. For more information about registering components, see Using the Pipeline Component Registration Tool.


Implementing the IPipelineComponent Interface

All pipeline components must implement the IPipelineComponent interface to function within the Pipeline Editor. If you have created your pipeline component using the Visual Basic Pipeline Component Wizard, your component supports this interface.

In a Microsoft ActiveX dynamic-link library (DLL), the pipeline component is a class in the DLL that implements one or more of the pipeline component interfaces. You add a reference to the type library defining the interfaces, add the appropriate implementation statements, and write the implementation code. This is done for you if you used the Visual Basic Pipeline Component Wizard.

For detailed instructions about implementing COM interfaces in Visual Basic, see "Creating and Implementing an Interface" and "Implementing and Using Standard Interfaces" in Visual Basic Help.

All pipeline component interfaces are described in a type library named Pipecomplib.tlb. If you look at the code created by the Visual Basic Pipeline Component Wizard in Running the Visual Basic Pipeline Component Wizard, you will see that the project includes a reference to this library.

The code for the class begins with the following lines:

Implements IPersistDictionary
Implements IPipelineComponent
Implements ISpecifyPipelineComponentUI
Implements IPipelineComponentDescription
Implements IPipelineComponentAdmin

This component implements four interfaces in addition to the IPipelineComponent interface. For more information about the other interfaces implemented by the Visual Basic Pipeline Component Wizard, see Pipeline Component Interfaces.

Further down in the code, you can see the code implementing the two methods of the IPipelineComponent interface, the EnableDesign method, and the Execute method.

The code for the EnableDesign method is:

Private Sub IPipelineComponent_EnableDesign(ByVal fEnable As Long)
End Sub

The EnableDesign method is used by the Pipeline Editor to tell the component when it is being used in design mode and when it is being executed. No changes need to be made to this code.

The Execute method contains most of the functionality of the component. It determines whether or not there was an error, and if the pipeline can continue to execute. The following outline of the Execute method is straightforward:

' Execute() -- This function gets called when the pipeline runs.
' Return 1 for success, 2 for user warnings, 3 for error.
Private Function IPipelineComponent_Execute(ByVal objOrderForm As Object, ByVal objContext As Object, ByVal 1Flags As Long) As Long

      ' Initialization of variables

      IPipelineComponent_Execute = 1

      ' The implementation of the component appears here.

End Function

Note

  • Although it might appear that the dictionaries are passed by value, that is not the case. What is passed by value is a reference to the dictionary — its address (not the contents of the dictionary). A reference passed by value is basically the same as the object passed by reference.

The Execute method is a function that returns a Long. It returns one of three values: 1 for success, 2 for user warnings, and 3 for an error that should stop execution of the pipeline.

For detailed instructions about implementing COM interfaces in Visual Basic, see "Creating and Implementing an Interface" and "Implementing and Using Standard Interfaces" in Visual Basic Help.

Using Commerce Server Objects

Pipeline components written in Visual Basic can use Commerce Server objects. The project for a component created using the Visual Basic Pipeline Component Wizard includes a reference to the Microsoft Commerce 2000 Core Components Type Library and creates variables of the CDictionary type and assigns the dictionaries passed to the Execute method to the variables:

 ' Initialize the PipeCtx dictionary as
 ' CDictionary variables
    Dim objPipeCtx As CDictionary
    Set objPipeCtx = objContext

Note

  • The dictionary has a type library name of CDictionary and a ProgID of Commerce.Dictionary.

For example, if your component includes a reference to the Microsoft Commerce 2000 Core Components Type Library, you can take advantage of early binding, and strongly type your variables in the declaration of the variables:

Dim dictLocalDictionary As Cdictionary
Set dictLocalDictionary = New CDictionary
dictLocalDictionary("Nickel") = ("what is nickel")

See Programmer's Reference for a complete list of objects in Commerce Server and for details about their use.

See Also

Pipeline Component Interfaces

Using the Visual Basic Pipeline Component Wizard

Persisting Data

Using the Pipeline Component Registration Tool

Special Considerations for Visual Basic Pipeline Components


Persisting Data

Visual Basic pipeline components can use the IPersistDictionary interface to implement persistence. The Pipeline Editor and pipelines themselves support this interface for loading and saving. The IPersistDictionary interface is used to persist data for a pipeline component. The Pipeline Editor uses the IPersistDictionary interface to get configuration values from the component and save them in the pipeline configuration file through the Save method.

Similarly, the pipeline passes a dictionary loaded with the previously saved values to the component. Because the Pipeline Editor handles the storage of the data, the component needs only to manipulate a dictionary.

The following table describes the methods of the IPersistDictionary interface.

Method | Description
GetProgID | Returns the ProgID of the component.
IsDirty | Returns a Boolean value of True if the values have changed since they were last saved.
InitNew | Called to initialize the object.
Load | Loads the Dictionary object with the saved values.
Save | Saves the values in the Dictionary object.

The InitNew method initializes the default values for a new instance of the object. In the code created by the Visual Basic Pipeline Component Wizard in Running the Visual Basic Pipeline Component Wizard, the method is called by the Pipeline Editor:

Private Sub IPersistDictionary_InitNew()
    FIsDirty = False
End Sub

The IsDirty method checks whether the values of an object have changed since they were last saved. It returns the value of the IsDirty flag of the object. The flag is cleared by the object in its implementation of the IPersistDictionary::Save method.

The GetProgID method must return the ProgID of the object. In the example, this is a constant that matches the ProgID under which the object is registered. By default, in an ActiveX DLL this is the project name followed by a period and the class name. For example:

Private Function IPersistDictionary_GetProgID() As String
    IPersistDictionary_GetProgID = "MyProject.ClassName"
End Function
Private Function IPersistDictionary_IsDirty() As Long
    IPersistDictionary_IsDirty = fIsDirty
End Function

The IPersistDictionary interface provides a convenient way for pipeline components housed in ActiveX DLLs to save configuration values. If a component is implemented as an ActiveX Control, the component can use the control property bag to save the configuration values.

Note

  • Although you can create your pipeline component as a Visual Basic ActiveX control and use the property page of the control as the configuration tab in the Pipeline Editor, this is not recommended.

See Also

IPersistDictionary Interface

Using the Visual Basic Pipeline Component Wizard

Implementing the IPipelineComponent Interface

Using the Pipeline Component Registration Tool

Special Considerations for Visual Basic Pipeline Components


Using the Pipeline Component Registration Tool

Microsoft Commerce Server 2002 includes the Pipeline Component Registration Tool for efficient registration of pipeline components written in Visual Basic. Typically, registration would be done using the DllRegisterServer entry-point routine, as is done in C++. However, because Visual Basic developers cannot export functions from their components, they usually have to find a way to register the components themselves, which can be a difficult task.

The Pipeline Component Registration Tool simplifies the registration process by registering pipeline components for stage affinity and then exporting the data to a Registry Script (.reg) file so it can be deployed on other servers.

To open the Pipeline Component Registration Tool

To register your pipeline component(s)

To open the Pipeline Component Registration Tool

  1. Click Start, and then click Run.
  2. In the Run dialog box, type the path to your local installation of the PipeReg.exe file. For example, C:\Program Files\Microsoft Commerce Server\SDK\Tools\Registration Tool, and then double-click PipeReg.

The Pipeline Component Registration Wizard appears. You can now begin registering your component(s).

To register your pipeline component(s)

  1. In the Pipeline Component Registration Wizard (Step 1 of 3) dialog box, do the following:
    Use this | To do this
    Select component by ProgID | Type the ProgID for the component you want to register in the ProgID box. This registers a single component.
    Select component Type Library | Type the path to the Type Library (.tlb or .dll) for the component(s) you want to register in the Path box. This registers some or all of the components in the indicated type library.
  2. Click Next.
  3. If you selected the option Select component by ProgID, in the Pipeline Component Registration Wizard (Step 2 of 3) dialog box, or, if you selected Select component Type Library and selected a type library with only a single component, do the following:
    Use this | To do this
    Available Categories | Select from the list of available pipeline stages in which you want to make your component available, and then click the right arrow button to move the pipeline stages to the Selected Categories box.
    Selected Categories | Select from the list of available pipeline stages that you do not want this component to appear in, and then click the left arrow button to remove those stages.
    Add Custom Stage | Click to add a custom stage for this component. In the Add Custom Stage dialog box, type the custom stage label in the Label box, type the GUID for the custom stage in the GUID box, and then click OK.

    Click Next.

  4. If you selected the option Select component Type Library and selected a type library with more than one component, in the Pipeline Component Registration Wizard [Select Components] dialog box select the components you would like to register, and then click Next.

    Return to Step 3 for each component you selected.

  5. In the Pipeline Component Wizard [Registration] dialog box, do one of the following:
    Use this | To do this
    Register components only | Click to update the Implemented Categories of the component for the corresponding registry hive. This option is best for the workstation of a site developer, where components and stages may change on a regular basis.
    Export registration data | Click to export the registry information to a registry script. In the Export path box, select the path to which you want the registry script exported.
    Register and export data | Click to register and export the registration data to a registry script. In the Export path box, select the path to which you want the registry script exported.

    Click Next.

  6. In the Pipeline Component Registration Wizard [Finished] dialog box, review the information to make sure the correct components were loaded and exported to the correct path.
  7. To close the Pipeline Component Registration Wizard, click Close.

The Pipeline Component Registration Wizard adds keys under the Implemented Categories entry in the registry to indicate that it is a pipeline component and to indicate which stages the component may appear in. The Implemented Categories entry can be found at \HKEY_CLASSES_ROOT\CLSID\component_classid\implemented categories\stage_clsid key within the Microsoft Windows NT Registry, where stage_class_id is the GUID of the stage with which the component will have an affinity, and component_class_id is the class ID of the component itself. See the file pipe_stages.h in the Microsoft Commerce Server Software Development Kit (SDK) for the GUID values for different pipeline stages.

See Also

Using the Visual Basic Pipeline Component Wizard

Implementing the IPipelineComponent Interface

Persisting Data

Special Considerations for Visual Basic Pipeline Components


Special Considerations for Visual Basic Pipeline Components

Visual Basic supports the creation of apartment-threaded components, but does not support the creation of free-threaded components. Consequently, if you use Visual Basic to create components for either the Order Processing pipeline (OPP) or Content Selection Framework (CSF) pipeline architectures, you should be aware of certain limitations.

If you include the component in a pipeline you load using the OrderPipeline object, and if you make this object globally available, your component will work as expected. This is because the OrderPipeline object checks the threading model of each component at load time to determine how to marshal the data of that component.

For performance reasons, however, the MtsOrderPipeline or MtsTxOrderPipeline objects do not perform this checking because these objects are generally created on a per-page basis. The MtsOrderPipeline or MtsTxOrderPipeline objects that you create on a per-page basis have no bearing on the proper functioning of Visual Basic pipeline components.

However, including such components in an MtsOrderPipeline or MtsTxOrderPipeline object that you make globally available (through the Application object, for example) is unsupported behavior. If you include a Visual Basic component in a globally available pipeline object instance, you must use the OrderPipeline object to load and execute that pipeline.

Always mark Visual Basic objects as Retain in Memory to keep the reference count above zero.

To mark Visual Basic objects as Retain in Memory

  1. In Visual Basic, on the Project menu, click <project name> Properties.
  2. On the General tab, select the Unattended Execution and Retained In Memory boxes.

See Also

Using the Visual Basic Pipeline Component Wizard

Implementing the IPipelineComponent Interface

Persisting Data

Using the Pipeline Component Registration Tool


Creating Pipeline Components Using the Active Template Library (ATL)

The ATL Pipeline Component Wizard consists of a group of files that you add to your Microsoft Visual C++ installation to automate the creation of Microsoft Commerce Server 2002 pipeline components. The ATL Pipeline Component Wizard creates the object definition and implementation files. These files contain the function prototypes for all of the interfaces that you need to implement to create a fully functional pipeline component. In addition, the ATL Pipeline Component Wizard creates a property page for your project, in which you add the controls through which users set component properties.

This section contains:

  • Active Template Library
  • Building the ATL Pipeline Component Wizard
  • Creating a Project
  • Adding an Object
  • Deciding Which Interface to Expose
  • Enhancing Component Usability
  • Implementing the IPipelineComponent Interface
  • Registering the ATL Component


Active Template Library

The Active Template Library (ATL) is a collection of C++ templates included in Microsoft Visual C++ versions 4.0 and later. This template library is intended specifically to facilitate the creation of Component Object Model (COM) objects.

Although you can create a pipeline component using any development environment that supports the creation of COM components, the use of the ATL is recommended because it creates small, fast code. COM components created using the ATL are smaller and faster than other approaches to component creation, including approaches supported by Visual C++. Although you can easily create COM components using the Microsoft Foundation Classes (MFC) library, you incur the significant memory overhead that is occasioned by using a large class library.

For information about the Active Template Library, see the ATL tutorial, which is included with Microsoft Visual C++.

See Also

Building the ATL Pipeline Component Wizard

Enhancing Component Usability

Registering the ATL Component

MinMaxShip Sample Pipeline Component


Building the ATL Pipeline Component Wizard

Before using the ATL Pipeline Component Wizard, you must build it by using the CommerceDLG.dll file on your local computer, and then copy specific files to the correct directories on your computer. This is because the ATL Pipeline Component Wizard functions within the Microsoft Visual C++ program.

To build the CommerceDLG.dll file

  1. Click Start, and then click Run.
  2. In the Run dialog box, type regsvr32 followed by the path to the Visual Basic Pipeline Component Wizard. For example, type regsvr32 "C:\Program Files\Microsoft Commerce Server\SDK\Tools\ATL Pipe Wizard\CommerceDLG.dll", and then click OK.

The RegSvr32 dialog box appears indicating success in building the CommerceDLG.dll file.

See Also

Creating a Project

Adding an Object

Deciding Which Interface to Expose

Enhancing Component Usability

Implementing the IPipelineComponent Interface

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Creating a Project

To create a custom component using the ATL Pipeline Component Wizard, you must first create an active project. To create a project in Visual C++ version 6.0, you use the ATL COM App Wizard.

To create a project in Visual C++

  1. Click Start, point to Programs, point to Microsoft Visual C++, and then click Visual C++.
  2. On the File menu, click New, and then select the Projects tab.
  3. On the Projects tab, select ATL COM App Wizard, and then do the following:
    Use this | To do this
    Project name | Type a name for the project.
    Location | Type the path to the location where the project will be saved.
    Create new workspace | Select to create a new skeleton project.
    Add to current workspace | Select to add on to an existing project.
    Platforms | Keep the default, which is WIN32.
  4. Click OK.
  5. In the ATL COM App Wizard - Step 1 of 1 dialog box, do the following:
    Use this | To do this
    Server Type Select one of the following:
    • Dynamic Link Library (DLL)
    • Executable (EXE)
    • Service (EXE)

    Note

    • If you are creating a modified ASP component, leave the Server Type as DLL because a control must be an in-process server.
    Allow merging of proxy/stub code | Specify that proxy/stub code be merged into your main project (available for DLL projects only). By default, the proxy/stub marshaling code is contained in a separate DLL.
    Support MFC | Specify that your object includes Microsoft Foundation Classes (MFC) support, and the MFC libraries will be attached to your code (available for DLL projects only).
    Support MTS | Specify the support for Microsoft Transaction Server (MTS) by adjusting the project build settings.
  6. Click Finish.

    The New Project Information dialog box appears, which lists the files that will be created for your project. These files and their descriptions are listed in the following table.

    File extension | Description
    .dsp | File that contains the project settings.
    .cpp File that contains the implementation of the following methods:
    • DllMain
    • DllCanUnloadNow
    • DllGetClassObject
    • DllRegisterServer
    • DllUnregisterServer

    This file also contains an object map, which is a list of the ATL objects in your project. This is initially blank, because you have not yet created an object.
    .idl | An interface definition language file, which describes the interfaces specific to your objects.
    .mk | A make file that can be used to build a proxy and stub DLL.
  7. Click OK.

    The project you created appears in the Visual C++ Workspace window.

  8. To save your workspace, from the File menu, click Save Workspace.

See Also

Adding an Object

Deciding Which Interface to Expose

Enhancing Component Usability

Implementing the IPipelineComponent Interface

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Adding an Object

After you create your project, you compile the files that Microsoft Visual C++ created for you into a dynamic-link library (DLL). To make this DLL useful, however, you must add support for an object that implements the appropriate pipeline interfaces.

When you use the ATL Pipeline Component Wizard to add an object to your project, the IPipelineComponent interface is implemented by default. In addition, you can choose to implement the ISpecifyPropertyPages, IPersistStreamInit, and IPipelineComponentDescription interfaces. For more information about which interfaces to implement, see Pipeline Component Interfaces.

Note

  • You must install the ATL Pipeline Component Wizard and create a project before starting the following procedure. For more information about installing the wizard, see ATL Pipe Wizard Folder. For more information about creating a project, see Creating a Project.

To add an object to your project

  1. In your project in Visual C++, on the Insert menu, click New ATL Object.
  2. In the ATL Object Wizard dialog box, do the following:
    Use this | To do this
    Category | Select Objects to add a new pipeline component.
    Objects | Select Commerce Component.
  3. Click Next.
  4. In the ATL Object Wizard Properties box, on the Names tab, do the following:
    Use this | To do this
    C++ Short Name | Type the name of your component.
    C++ Class | Type the class name to implement the control, or leave the default value.
    C++ .H File | Type the name of the .h file, or leave the default value.
    C++ .CPP File | Type the name of the .cpp file, or leave the default value.
    COM CoClass | Type the name of the component class for the object, or leave the default value.
    COM Interface | Type the name of the interface on which the component will implement its custom properties, or leave the default value.
    COM Type | Type the description for the control, or leave the default value.
    COM ProgID | Type the name of the ProgID, or leave the default value.

    Important

    • Do not click OK until you configure the Commerce Component tab.
  5. Click the Commerce Component tab. (This tab displays a list of the optional interfaces that you can implement on a Microsoft Commerce Server 2002 pipeline component.)
  6. In the ATL Object Wizard Properties dialog box, on the Commerce Component tab, do the following:
    Use this | To do this
    ISpecifyPropertyPages | Select whether your component uses property pages to allow users to set component properties.
    IPersistStreamInit | Select whether your component saves and loads its properties to and from a stream.
    IPipelineComponentDescription | Select whether you want your component users to identify the OrderForm object or pipe context values that your component reads and writes.
  7. Click OK.

The ATL Object Wizard creates the definition and implementation files that implement the necessary pipeline interfaces, and adds these files to the project.

In addition, the ATL Object Wizard creates a stub implementation for the object interface, on which you implement the properties for your component.

Note

  • The approach to adding properties described in this section assumes that you do not intend to implement the IPipelineComponentAdmin interface. However, Commerce Server defines this interface as an alternative way to implement properties on an object.

See Also

Deciding Which Interface to Expose

Enhancing Component Usability

Implementing the IPipelineComponent Interface

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Deciding Which Interface to Expose

Before a component can be configured using a macro language such as Microsoft Visual Basic Scripting Edition (VBScript), it must implement the IDispatch interface. Because any interface that you create can inherit from the IDispatch interface, you decide which of the interfaces that you implement will use the IDispatch interface to expose the properties and methods of your component.

Several options are available. When you add an object to your project, Microsoft Visual C++ adds an interface to the object definition that appears in the interface definition language (IDL) file for the project. By default, the interface that Visual C++ adds inherits from the IDispatch interface.

You can use this interface, or you can implement the IPipelineComponentAdmin interface. This interface is defined by Microsoft Commerce Server 2002 specifically to enable component writers to expose their component properties. The IPipelineComponentAdmin interface defines two methods: GetConfigData and SetConfigData. These methods take a Dictionary object as a parameter, and read or write to this Dictionary object to retrieve or set the values of the properties of the component.

The options described in the preceding paragraphs are mutually exclusive; you cannot implement two IDispatch interfaces on a single object and make both available to Active Server Pages (ASP) clients.

The following lists the advantages of using the Visual C++ user interface to get an IDispatch implementation:

  • Implementing IDispatch::Invoke is done automatically. If you add properties and methods using the Visual C++ user interface, this work is done for you.
  • As you add properties and methods to your object, Visual C++ automatically adds the appropriate entries to the project IDL, header, and implementation files. Because the added interface is the default interface for the object, a VBScript client that creates an instance of your object using the ProgID gets this interface, and can set the methods and invoke the properties implemented in it.

According to the rules for Component Object Models (COM), the advantage of implementing the IPipelineComponentAdmin interface is that after an interface is published, it cannot be changed. By adding properties to a published object, you necessarily modify the dispatched interface, running the risk that you will break the client code of existing users. Because implementing the IPipelineComponentAdmin interface does not require that your component definition be modified to add support for new properties, your component can evolve over time without requiring the publication of a new interface. The IPipelineComponentAdmin interface also allows for simple persistence, because the dictionary supports persistence. And the dictionary exposed through the IPipelineComponentAdmin interface supports enumeration of property names.

The IPipelineComponentAdmin interface is required if you are implementing a shipping component that requires configuration.

Important

  • Shipping Components should expose the IPipelineComponentAdmin::GetConfigData and IPipelineComponentAdmin::SetConfigData methods from the IDispatch interface implementation, because the Commerce Server Business Desk module(s) that manage these components must be able to call these methods from a late-bound (Active Server Pages) environment.

See Also

Pipeline Component Interfaces

Enhancing Component Usability

Implementing the IPipelineComponent Interface

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Enhancing Component Usability

To enhance the usability of your component, you may choose to implement the optional IPipelineComponentDescription interface. This interface defines methods that return SAFEARRAY variables that identify the pipe context elements that a component reads, as well as the OrderForm or Dictionary object elements that a component reads and writes.

When a user activates the property pages for your component through the Pipeline Editor, the Pipeline Editor checks to see if your component implements the IPipelineComponentDescription interface. If it does, the Pipeline Editor invokes your IPipelineComponentDescription method implementations and displays the values that the component reads and writes in a property page.

When you run the ATL Pipeline Component Wizard, the wizard adds a reference to the IPipelineComponentDescription interface to your derivation list, and adds the IPipelineComponentDescription interface signatures to the class definition. For example:

// IPipelineComponentDescription
    STDMETHOD (ContextValuesRead)(VARIANT *pVar);
    STDMETHOD (ValuesRead)(VARIANT *pVar);
    STDMETHOD (ValuesWritten)(VARIANT *pVar);

In addition, the ATL Pipeline Component Wizard adds stub implementations to implement files. The code the wizard adds is:

//
// IPipelineComponentDescription Methods
//
STDMETHODIMP CSampleComponent::ContextValuesRead(VARIANT *pVarRead)
{
    // TODO: Add your own values to the array.
    int cEntries = 1;
    // Allocate the SAFEARRAY of VARIANTs.
    SAFEARRAY*    psa = SafeArrayCreateVector(VT_VARIANT, 0, cEntries);
    // Populate the SAFEARRAY of VARIANTs.
    VARIANT* pvarT = (VARIANT*)psa->pvData;
    V_BSTR(pvarT) = SysAllocString(L"Example Context Value Read");
    V_VT(pvarT) = VT_BSTR;
    // Set up the return value to point to the SAFEARRAY.
    V_VT(pVarRead) = VT_ARRAY | VT_VARIANT;
    V_ARRAY(pVarRead) = psa;
    return S_OK;
}

STDMETHODIMP CSampleComponent::ValuesRead(VARIANT *pVarRead)
{
    // TODO: Add your own values to the array.
    int cEntries = 1;
    // Allocate the SAFEARRAY of VARIANTs.
    SAFEARRAY*    psa = SafeArrayCreateVector(VT_VARIANT, 0, cEntries);
    // Populate the SAFEARRAY of VARIANTs.
    VARIANT* pvarT = (VARIANT*)psa->pvData;
    V_BSTR(pvarT) = SysAllocString(L"Example Value Read");
    V_VT(pvarT) = VT_BSTR;
    // Set up the return value to point to the SAFEARRAY.
    V_VT(pVarRead) = VT_ARRAY | VT_VARIANT;
    V_ARRAY(pVarRead) = psa;

    return S_OK;
}

STDMETHODIMP CSampleComponent::ValuesWritten(VARIANT *pVarWritten)
{
    // TODO: Add your own values to the array.
    int cEntries = 1;
    // Allocate the SAFEARRAY of VARIANTs.
    SAFEARRAY*    psa = SafeArrayCreateVector(VT_VARIANT, 0, cEntries);
    // Populate the SAFEARRAY VARIANTs.
    VARIANT* pvarT = (VARIANT*)psa->pvData;
    V_BSTR(pvarT) = SysAllocString(L"Example Value Written");
    V_VT(pvarT) = VT_BSTR;
    // Set up the return value to point to the SAFEARRAY.
    V_VT(pVarWritten) = VT_ARRAY | VT_VARIANT;
    V_ARRAY(pVarWritten) = psa;
    return S_OK;
}

This code contains the basic instructions for implementing the interface.

Note

  • Each of the methods in the IPipelineComponentDescription interface must return an array. If there are no association values, the IPipelineComponentDescription interface should return an empty array.

See Also

Deciding Which Interface to Expose

Implementing the IPipelineComponent Interface

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Implementing the IPipelineComponent Interface

All pipeline components must implement the IPipelineComponent interface. This interface is defined as follows:

// IPipelineComponent

STDMETHOD (Execute) (
    IDispatch*  pdispOrder,
    IDispatch*  pdispContext,
    LONG        lFlags,
    LONG*       plErrorLevel);

STDMETHOD (EnableDesign) (BOOL fEnable);

When the pipeline creates an instance of a component, it requests an interface pointer on the IPipelineComponent interface of the component, and then uses that pointer to call the Execute method of the component. The pipeline passes the component an IDispatch interface pointer on the OrderForm object being passed through the pipeline, and an IDispatch interface pointer on the pipe context of the site. The pipe context is a Dictionary object that contains references to various contextual pieces of information for the site, such as connection strings and cache references.

The IPipelineComponent interface is among the interfaces for which the ATL Pipeline Component Wizard adds method definitions and implementation stubs when you add an object to your project. To implement the IPipelineComponent::Execute method for your component, open the .cpp file, and modify the default implementation provided by the ATL Pipeline Component Wizard.

See Also

Deciding Which Interface to Expose

Enhancing Component Usability

Registering the ATL Component

Active Template Library

MinMaxShip Sample Pipeline Component


Registering the ATL Component

Pipeline component registration involves identifying the component as a pipeline component, identifying the stage or stages with which the component has an affinity, and optionally registering its name, threading model, and also optionally registering the component as poolable.

A globally unique identifier (GUID) identifies each stage in the pipeline. GUIDs are defined in the Pipe_stages.h file, which you include in the implementation file in which you are registering a component.

To identify the stage or stages with which a component has an affinity, you write the class ID of the new component to the \HKEY_CLASSES_ROOT\CLSID\component_classid\implemented categories\stage_clsid registry key within the Microsoft Windows NT Registry, where stage_class_id is the GUID of the stage with which the component will have an affinity, and where component_class_id is the class ID of the component itself.

The code with which you register your component should be invoked in the DLLRegisterServer routine that is created for you when you create the component project in Microsoft Visual C++.

The ATL Pipeline Component Wizard creates a skeleton DllRegisterServer routine for the component housing. Although this will register the component, several more keys need to be added to the registry so that the Pipeline Editor displays the component properly.

The Pipeline Editor looks under the Implemented Keys category in the registry to see if the object is a pipeline component and, if so, which stages it may appear in. The function RegisterCATID, provided in the Computil.cpp file, makes this registration easier. In addition, the name displayed for the component comes from the AuxUserType\2 key for the component. The RegisterName function handles this registration. The following is the complete DllRegisterServer routine:

STDAPI DllRegisterServer(void)
{
    HRESULT hr = S_OK;

    hr = _Module.RegisterServer(TRUE);

    if(FAILED(hr)) return hr;

// Register the component as a pipeline component.
    hr = RegisterCATID(CLSID_MyPipelineComponent,
                       CATID_MSCSPIPELINE_COMPONENT);

    if(FAILED(hr)) return hr;

// Register the component for stage affinity.
    hr = RegisterCATID(CLSID_MyPipelineComponent,
                       CATID_MSCSPIPELINE_SHIPPING);

// Optionally register the component as poolable.
    hr = RegisterCATID(CLSID_MyPipelineComponent,
                       CATID_MSCSPIPELINE_POOLABLE);

    if(FAILED(hr)) return hr;

// Optionally register the name of the component.
    if(FAILED(hr)) return hr;

    hr = RegisterName(CLSID_MyPipelineComponent,L"MinMax.MinMaxShipping");
    if(FAILED(hr)) return hr;

    return hr;

}

See the Pipe_stages.h file for the constants for other pipeline stages and features.

See Also

Deciding Which Interface to Expose

Enhancing Component Usability

Implementing the IPipelineComponent Interface

Active Template Library

MinMaxShip Sample Pipeline Component


Error Levels

Pipeline components return one of the following values:

  • 1 = OPPERRORLEV_SUCCESS
  • 2 = OPPERRORLEV_WARN
  • 3 = OPPERRORLEV_FAIL

The pipeline keeps track of the highest error value returned by a previously executed component in the pipeline. Attached to each stage in the pipeline is an attribute that indicates the maximum error level the component will tolerate. If the current pipeline error level is less than or equal to the maximum error level for the stage, the next component in the pipeline can run the IPipelineComponent::Execute method. If the maximum error level for the stage is less than the current error level for the pipeline, the remaining components in the stage are skipped and the action is logged.

Error levels are checked upon entrance to stages to improve the user experience. For example, a user has completed the shipping stage, the tax stage, and the payment stage, and has entered incorrect information, causing level 3 errors in any or all of these stages. Instead of prompting the user with a shopper warning after each stage, the user can be presented with just one error before the processing of the credit card in the accept stage. This is because, when the level 3 errors are encountered by the accept stage, which has a maximum error level of 2, it prompts the user with a shopper warning indicating all the errors at one time.

See Also

Error Handling in Pipelines

Debugging Pipeline Components

Error Handling


Debugging Pipeline Components

This section contains a few tips to aid in debugging custom pipeline components. This section contains:

  • Debugging Scriptor Pipeline Components
  • Debugging Visual Basic Pipeline Components
  • Debugging Visual Basic .NET and C# Pipeline Components

Note

  • Like all debug settings, these setting should be removed before production.

Debugging Scriptor Pipeline Components

Ensure that HKEY_USERS\*\Software\Microsoft\Windows Script\Setting\JITDebug is set to 1.

Setting the key under HKEY_CURRENTUSER will fail because the script engine is being hosted by the pipeline component, which is running under IIS and is typically running under a different account than that of the user currently logged on to the computer.

Debugging Visual Basic Pipeline Components

Ensure that the Visual Basic debugger process (VB.exe) and the process hosting the pipeline component (inetinfo.exe or dllhost.exe) are running under the same user account. This enables VB.exe to intercept the Visual Basic pipeline component calls and debug them. The simplest way to accomplish this is to change the IIS anonymous user impersonation account to that of the currently logged on user.

Debugging Visual Basic .NET and C# Pipeline Components

If the Visual Basic .NET or C# pipeline component is installed in the Global Assembly Cache (GAC), and is therefore strongly signed, then running the Register Assembly Utility (regasm.exe) will register the component. If the pipeline component is not installed in the GAC, you need to add the registration value for "codebase=<full-path>" under the component's class ID. This registration value is written automatically when the project is built from Visual Studio .NET. However, when you copy that DLL to another box, when you deploy it for instance, and run the regasm.exe utility on it, regasm.exe does not register it, and therefore the creation of that pipeline component fails.

See Also

MinMaxShip Sample Pipeline Component


MinMaxShip Sample Pipeline Component

The purpose of the MinMaxShip sample is to demonstrate interaction with the Order Processing pipeline (OPP) as a pipeline component, as well as to demonstrate the new shipping component architecture in Microsoft Commerce Server 2002. By updating a custom Commerce Server Business Desk module, called Shipping Method, the MinMaxShip sample can be quickly added to an existing Commerce Server site for use in the shipping stage of an OPP.

This section contains:

  • Design
  • How to Use the MinMaxShip Sample


Design

The MinMaxShip object is a Component Object Model (COM) object that exposes a set of COM interfaces to the Order Processing pipeline (OPP).

The MinMaxShip sample object, which is included in the Microsoft Commerce Server 2002 Software Development Kit (SDK), calculates the shipping total for all "shipments to process" in an order by taking the sum of the list prices for the items in a shipment, multiplying it by a percentage, and comparing the product to some specified minimum. The larger number in this comparison is then stored in the _shipping_total key for the shipment.

All shipping components, except the Splitter component, should be registered with the ShippingMethodRouter pipeline component. The Splitter component should be configured from the Pipeline Editor and the code. The remaining components should be configured from the Commerce Server Business Desk Shipping Method module.

See Also

How to Use the MinMaxShip Sample


How to Use the MinMaxShip Sample

The MinMaxShip sample can be found in the MinMaxShip directory of the Order Processing samples directory. For example, C:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\MinMaxShip. In the MinMaxShip directory, the Visual Basic code is in the folder named VB, and the C++ code is in the folder named ATL.

To build the Visual Basic sample

To build the Visual C++ ATL sample

To build the C# sample

To run the MinMaxShip sample

To build the Visual Basic sample

  1. Click Start, point to Programs, point to Microsoft Visual Studio, and then click Microsoft Visual Basic.
  2. On the File menu, click Open, and then navigate to the directory that contains the MinMaxShipVB.vbp file. For example, C:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\MinMaxShip\VB. Select the MinMaxShipVB.vbp file.
  3. On the File menu, click Make MinMaxShipVB.dll.
  4. After the project has been built, on the File menu, click Exit.

The Visual Basic MinMaxShip sample is now built on your computer.

To build the Visual C++ ATL sample

  1. Click Start, point to Programs, point to Microsoft Visual Studio, and then click Microsoft Visual C++.
  2. On the File menu, click Open, and then navigate to the directory that contains the MinMaxShip.dsw file. For example, C:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\MinMaxShip\ATL. Select the MinMaxShip.dsw file.
  3. On the Build menu, click Build MinMaxShip.dll.
  4. After the project has been built, on the File menu, click Save Workspace.
  5. To close the program, on the File menu, click Exit.

The ATL MinMaxShip sample is now built on your computer.

To build the C# sample

  1. Click Start, point to Programs, point to Microsoft Visual Studio .NET, and then click Microsoft Visual Studio .NET.
  2. On the Start page, click Open Project, and then navigate to the directory that contains the Commerce.csproj file. For example, C:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Order Processing\MinMaxShip. Select the Commerce.csproj file, and then click Open.
  3. On the Build menu, click Build Solution.
  4. In the Save File As dialog box, accept the default settings, and then click Save.
  5. On the File menu, click Close Solution, and then click Exit.
  6. On the Start menu, point to Accessories, and then click Windows Explorer.
  7. Navigate to the folder C:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Order Processing\MinMaxShip\CSharp\bin\Debug. Right-click CSSDKSample.dll, and then click Properties.
  8. In the CSSDKSample.dll Properties dialog box, select the Security tab, and then click the Add button.
  9. On the Look In menu, select the local computer name.
  10. In the Name column, select IUSR_ComputerName, click Add, and then click OK.
  11. Ensure that Read and Read & Execute are selected for the Internet Guest Account, and then click OK.

    The C# MinMaxShip sample is now built on your computer.

Running the Sample

To the MinMaxShip samples, you must first install one of the Microsoft Commerce Server 2002 Solution Sites. After you have installed one of these sites, go to the directory containing the Commerce Server Business Desk files, and perform the following procedure.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

To run the MinMaxShip sample

  1. Copy the file MinMax_edit.asp from the BizDesk directory in the MinMaxShip directory to the Shipping directory in Business Desk on the installed site. For example, copy MinMax_edit.asp from C:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\MinMaxShip\BizDesk to C:\InetPub\wwwroot\RetailBizDesk\Shipping.
  2. Copy the file Shipping_methods.xml from the Business Desk directory in the MinMaxShip directory to the Config directory in Business Desk on the installed site. For example, copy Shipping_methods.xml from C:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\MinMaxShip\BizDesk to C:\InetPub\wwwroot\RetailBizDesk\Config.
  3. If you are running the Visual Basic sample, you must open the file MinMax_edit.asp, and change the following line of code:
    g_sProgID = "commerce.minmaxshipatl.1"

    to

    g_sProgID = "commerce.MinmaxShipVB".

    Or, if you are running the C# sample, you must open the file MinMax_edit.asp, and change the following line of code:

    g_sProgID = "commerce.minmaxshipatl.1"

    to

    g_sProgID = "Commerce.MinMaxShipCSharp".

    Note

    • This step is not required for the Visual C++ ATL sample.

After the custom Shipping Method module is updated, you can use it to configure new shipment methods of the type "MinMaxShip."

See Also

Design


Software Development Kit

The Microsoft Commerce Server 2002 Software Development Kit (SDK) includes extensive samples and tools to help developers get started programming with Commerce Server. When installed, all of the files composing the Commerce Server 2002 SDK are in a folder called "SDK" under the "Microsoft Commerce Server" folder. This topic describes the structure and contents of the SDK folder.

Notes

  • You must include the following components of the Platform SDK to build the samples in the Commerce Server 2002 SDK (choose at least these options on the Custom Installation screen of the Platform SDK installation program):

    Configuration Options (all)

    Build Environment

    Base Services (all)

    Component Services

    COM

    Data Access Services

    OLE DB

    SQL Server

    Management Services

    Microsoft Management Console

    Minimum Build Tools

    Networking and Directory Services

    Active Directory Services Interface

    Web Services

    Microsoft Internet Explorer

    Microsoft Internet Information Server

    Win32 API

    You may also want to install the following debugging tools at the same time:

    Debugging Tools

    WinDbg

    SQL Profiler

    OEM Support Tools

    UserDump

  • In addition to installing the Platform SDK, you must also update your system include path to contain the Commerce Server 2002 SDK Include folder, and update your Microsoft Visual C++ directory options to contain the Commerce Server 2002 SDK Include folder.

    Note that the installation of the Platform SDK should have added the path settings that it requires to the user INCLUDE and LIB environment variables:

    • INCLUDE: <Platform SDK folder>\Include
    • INCLUDE: <Platform SDK folder>\Include\ATL30
    • LIB: <Platform SDK folder>\Lib

To update your user INCLUDE environment variable

To update Microsoft Visual C++

To update your user INCLUDE environment variable

  1. Right-click My Computer, and then click Properties.
  2. In the System Properties dialog box, on the Advanced tab, click Environment Variables.
  3. In the Environment Variables dialog box, select the variable INCLUDE from the User variables for <username> box, and then click Edit.
  4. In the Edit User Variable dialog box, append the path to the Commerce Server 2002 SDK Include directory to the value in the Variable Value box. For example, C:\Program Files\Microsoft Commerce Server\SDK\Include.
  5. To exit all three dialog boxes, click OK three times.

To update Microsoft Visual C++

  1. Open Microsoft Visual C++.
  2. On the Tools menu, click Options.
  3. In the Options dialog box, on the Directories tab, verify that the Include files option in the Show directories for box is selected.
  4. Click New, and then type the path to the Commerce Server 2002 SDK Include directory. For example, C:\Program Files\Microsoft Commerce Server\SDK\Include.
  5. Click OK.

This section contains:

  • Include Files. Describes the files contained in the Include folder.
  • Tools Folder. Explains how to use the SDK tools.
  • Samples Folder. Explains how to use the SDK samples and sitelets.


Include Files

Location in SDK: SDK\Include

The Include folder contains numerous C++ header (.h extension) and Interface Definition Language (.idl extension) files that are of general use when using Commerce Server COM objects from C++, and examining the details of interface definitions, respectively.

Many of the header files are referenced in the C++ version of the reference topic for the corresponding object.


Tools Folder

The Tools folder contains a number of different tools, divided into the following subfolders:

  • Registration Tool Folder
  • Ad Server folder and the Membership folder
  • ATL Pipe Wizard Folder and the VB Pipe Wizard Folder


Registration Tool Folder

Location in SDK: SDK\Tools\Registration Tool

The files in this folder constitute the source files of a tool that helps you register pipeline components for stage affinity. It allows you to register the pipeline component on the computer on which the tool is being run, and it allows you to export the data to a registry script (.reg extension) for deployment to other servers.

For more information about the pipeline component registration tool, see Using the Pipeline Component Registration Tool.


Membership Folder

Location in SDK: SDK\Tools\SSCE Migration\Membership

The files in this folder constitute the source files of a tool that allows you to migrate user profiles from a Microsoft Site Server 3.0 Commerce Edition (SSCE) Membership Directory into a Microsoft Commerce Server 2002 user profile store.

For more information about migrating user profiles from Site Server 3.0 Web sites to Commerce Server 2002 Web sites, see Migrating the Membership Directory.


Ad Server Folder

Location in SDK: SDK\Tools\SSCE Migration\Ad Server

The file Adservermigration.exe in the Ad Server subfolder is a tool that allows you to migrate campaigns from Site Server 3.0 Ad Server to the Commerce Server 2002 Content Selection Framework.

Run the tool on the command line, passing the following parameters:

1: /cs30:"Connection string to the Site Server 3.0 Commerce Edition AdServer database"
2: /cs2000:"Connection string to the Commerce Server 2002 Campaign database"
3: /exprstore:"Connection string to the Commerce Server 2002 Expression store database"
4: [/silent]   (Note that this parameter is optional)

For example:

adservermigration.exe \
/cs30:"Provider=SQLOLEDB;Data Source=Commerce30servername;Initial Catalog=Commerce30DatabaseName;Integrated Security=’SSPI’" \
/cs2000:"Provider=SQLOLEDB;Data Source=Commerce2000servername;Initial Catalog=MarketingSystemDatabaseName;Integrated Security=’SSPI’" \
/exprstore:"Provider=SQLOLEDB;Data Source=Commerce2000servername;Initial Catalog=ExpressionStoreDatabaseName;Integrated Security=’SSPI’"


ATL Pipe Wizard Folder

Location in SDK: SDK\Tools\Visual Studio 6\ATL Pipe Wizard

The files in this folder constitute the source files of a tool that allows you to install a new wizard in your Microsoft Visual C++ 6.0 installation. This wizard automates the creation of Commerce Server pipeline components by creating the object definition and implementation files containing function prototypes for the interfaces required to implement a fully functional pipeline component.

In addition, this wizard creates a property page for your pipeline component. You can add controls to this property page through which users can set component properties.

You must build the ATL Pipeline Component Wizard before installing it.

For more information about using the ATL Pipeline Component Wizard, see Creating Pipeline Components Using the Active Template Library (ATL).


VB Pipe Wizard Folder

Location in SDK: SDK\Tools\Visual Studio 6\VB Pipe Wizard

The files in this folder constitute the source files of a tool that allows you to install a new wizard in your Microsoft Visual Basic 6.0 installation. This wizard automates the creation of Commerce Server pipeline components by creating the object definition and implementation files containing function prototypes for the interfaces required to implement a fully functional pipeline component.

In addition, this wizard creates a property page for your pipeline component. You can add controls to this property page through which users can set component properties.

You must build the Visual Basic Pipeline Component Wizard before installing it.

Once built, register the file PipelineCompWizard.dll. Registering this DLL will cause a new project item to be installed into your Visual Basic installation. After you register the DLL, open Visual Basic, and, on the menu, click New and then click Project. The VB Pipeline Component Wizard is available in the list of available projects.

For more information about the Visual Basic Pipeline Component Wizard, see Creating Pipeline Components Using Visual Basic.


Samples Folder

The Samples folder contains a number of different samples, divided into categories.

This section contains:

  • ASP.NET Samples
  • Auction Samples
  • Business Desk Samples
  • Classic ASP Samples
  • Order Processing Samples
  • Privacy Samples
  • Site Management Samples
  • Site Creation Samples
  • Targeting Samples


ASP.NET Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains six sample sites to demonstrate the functionality of the Commerce Server .NET Application Framework.

This section contains:

  • ASP.NET-Based Advertising Sitelet
  • ASP.NET-Based Catalog Sitelet
  • ASP.NET-Based Order Sitelet
  • ASP.NET-Based Profile Sitelet
  • Catalog Web Service
  • International Retail Site

See Also

Debugging Pipeline Components

MinMaxShip Sample Pipeline Component


ASP.NET-Based Advertising Sitelet

Location in SDK: SDK\Samples\ASPNET\Ad Sitelet

The primary goal of the Advertising Sitelet is to demonstrate the use and behavior of the components that work together to display advertisements in a Commerce Server site. In this sitelet, you will view a demonstration of targeted advertisements for hard-coded profile data to learn and understand how the ContentSelector object works. The profile data for this sitelet is stored in the site SQL Server database; this database is populated by Commerce Server Site Packager during the sitelet installation process.

The Advertising Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. Using the sitelet, you can create and display ads using the Campaign Manager module, and you can manage ad targeting based on profiles in your Profiles database. No modification to the source code is required to deploy the Advertising Sitelet to a server running Commerce Server 2002.

Similar functionality to that found in the ASP.NET-Based Advertising Sitelet can be found in the ASP-Based Advertising Sitelet. For more information, see ASP-Based Advertising Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP.NET-Based Advertising Sitelet Code Notes

Installing the ASP.NET-Based Advertising Sitelet

ASP.NET-Based Advertising Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The ASP.NET sitelets set the language character sets in the Page_Init functions of several ASPX pages using code such as the following:

strLanguage = coll[Utility.languageLabel];
try {SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage);}
catch(Exception e) {
SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage);
strLanguage = Utility.englishLanguage;
}

Installing the ASP.NET-Based Advertising Sitelet

You unpack the Advertising Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Advertising Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Ad Sitelet\SDK-ADSITELET-ASPNET.PUP

Use the following procedure to install the Advertising Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP.NET-based Advertising Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP.NET-Based Advertising Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Ad Sitelet directory.
  2. Click the SDK-ADSITELET-ASPNET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, type the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/netAdSitelet to open the sitelet.

See Also

ASP.NET-Based Catalog Sitelet

ASP.NET-Based Order Sitelet

ASP.NET-Based Profile Sitelet

Catalog Web Service

International Retail Site

Example code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


ASP.NET-Based Catalog Sitelet

Location in SDK: SDK\Samples\ASPNET\Catalog Sitelet

The primary goal of the Catalog Sitelet is to demonstrate how to use the Catalog object model to browse and search a product catalog, providing you with a functional example of the catalog API in action.

The Catalog Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. You can deploy the sitelet to a server running Commerce Server 2002 without the need for code modifications. After the Catalog Sitelet has been deployed, you can use it to browse and search a sample catalog.

The Catalog Sitelet demonstrates the two query mechanisms supported by the Catalog object model, and also demonstrates using the Catalog object model to provide catalog browsing functionality.

Similar functionality to that found in the ASP.NET-Based Catalog Sitelet can be found in the ASP-Based Catalog Sitelet. For more information, see ASP-Based Catalog Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP.NET-Based Catalog Sitelet Code Notes

Installing the ASP.NET-Based Catalog Sitelet

ASP.NET-Based Catalog Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The sitelets set the language character sets in the Page_Init functions of several ASPX pages using code such as the following:

strLanguage = coll[Utility.languageLabel];
try {SelectedCulture = CultureInfo.CreateSpecificCulture(strLanguage);}
catch(Exception e) {
SelectedCulture = CultureInfo.CreateSpecificCulture(Utility.englishLanguage);
strLanguage = Utility.englishLanguage;
}

Installing the ASP.NET-Based Catalog Sitelet

You unpack the Catalog Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Catalog Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet\SDK-CATALOGSITELET-ASPNET.PUP

Use the following procedure to install the Catalog Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP.NET-based Catalog Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP.NET-Based Catalog Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Catalog Sitelet directory.
  2. Click the SDK-CATALOGSITELET-ASPNET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/netCatalogSitelet to open the sitelet.

See Also

ASP.NET-Based Advertising Sitelet

ASP.NET-Based Order Sitelet

ASP.NET-Based Profile Sitelet

Catalog Web Service

International Retail Site

Example code for the Microsoft.CommerceServer.Runtime.Catalog Namespace


ASP.NET-Based Order Sitelet

Location in SDK: SDK\Samples\ASPNET\Order Sitelet

The primary goal of the Order Sitelet is to demonstrate how to allow users to create an order, and then confirm and view the status of that order. For more information on order queuing, see Order Queuing SDK Sample or search the Commerce Server 2002 Help files for "order queuing.�

The Order Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. No modification of the source code is required to deploy the Order Sitelet to a server running Commerce Server 2002.

Similar functionality to that found in the ASP.NET-Based Order Sitelet can be found in the ASP-Based Order Sitelet. For more information, see ASP-Based Order Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP.NET-Based Order Sitelet Code Notes

Installing the ASP.NET-Based Order Sitelet

ASP.NET-Based Order Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The sitelet sets the language character set in the Page_Init function in several ASPX pages using code such as the following:

_language = Request.QueryString["language"];
try {
     Thread.CurrentThread.CurrentCulture =
            CultureInfo.CreateSpecificCulture(_language);
     Thread.CurrentThread.CurrentUICulture =
            Thread.CurrentThread.CurrentCulture;
     }
catch (ArgumentException e)
     {
     _language = "en-US";
     Thread.CurrentThread.CurrentCulture =
            CultureInfo.CreateSpecificCulture(_language);
     Thread.CurrentThread.CurrentUICulture =
            Thread.CurrentThread.CurrentCulture;
     }

Installing the ASP.NET-Based Order Sitelet

You unpack the Order Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Order Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Order Sitelet\SDK-ORDERSITELET-ASPNET.PUP

Use the following procedure to install the Order Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP.NET-based Order Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the Order Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Order Sitelet directory.
  2. Double-click the SDK-ORDERSITELET-ASPNET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/netOrderSitelet to run the sitelet.

See Also

ASP.NET-Based Advertising Sitelet

ASP.NET-Based Catalog Sitelet

ASP.NET-Based Profile Sitelet

Catalog Web Service

International Retail Site

Example code for the Microsoft.CommerceServer.Runtime.Orders Namespace


ASP.NET-Based Profile Sitelet

Location in SDK: SDK\Samples\ASPNET\Profile Sitelet

The primary goal of the Profile Sitelet is to demonstrate through code how to use the Profiling System in Commerce Server 2002 to create user profiles, set user profile attributes, and to read user profile data using the Profiling System objects.

The Profile Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. Using the sitelet, you can create and modify user profiles, using the AuthManager, Profile, and ProfileService objects. No modification to the code is required to deploy the Profile Sitelet to a server running Commerce Server 2002.

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese.

Similar functionality to that found in the ASP.NET-Based Profile Sitelet can be found in the ASP-Based Profile Sitelet. For more information, see ASP-Based Profile Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

Installing the ASP.NET-Based Profile Sitelet

Installing the ASP.NET-Based Profile Sitelet

You unpack the Profile Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Profile Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Profile Sitelet\SDK-PROFILESITELET-ASPNET.PUP

Use the following procedure to install the Profile Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP.NET-based Profile Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP.NET-Based Profile Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\ASPNET\Profile Sitelet directory.
  2. Click the SDK-PROFILESITELET-ASPNET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/netProfileSitelet to run the sitelet.

See Also

ASP.NET-Based Advertising Sitelet

ASP.NET-Based Catalog Sitelet

ASP.NET-Based Order Sitelet

Catalog Web Service

International Retail Site

Example code for the Microsoft.CommerceServer.Runtime.Profiles Namespace


Catalog Web Service

Location in SDK: SDK\Samples\ASPNET\Catalog Web Service

The code in this sample shows how to use a Web service to navigate a catalog hierarchy.

See Also

Example code for the Microsoft.CommerceServer.Runtime Namespace

Example code for the Microsoft.CommerceServer.Runtime.Catalog Namespace

Example code for the Microsoft.CommerceServer.Runtime.Configuration Namespace

Example code for the Microsoft.CommerceServer.Runtime.Orders Namespace

Example code for the Microsoft.CommerceServer.Runtime.Pipelines Namespace

Example code for the Microsoft.CommerceServer.Runtime.Profiles Namespace

Example code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


Auction Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains two samples to demonstrate how auctions can be used with Commerce Server 2002. The following is a list of auction samples provided in the SDK:

  • Auction Component
  • Auction Sitelet


Auction Component

Location in SDK: SDK\Samples\Auction\Component

This directory contains the source code for the sample Auction component.

For more information about the Auction object, see Auction Object.


Auction Sitelet

Location in SDK: SDK\Samples\Auction

The primary goal of the Auction Sitelet is to demonstrate through code how to use the Auction component to implement Winning Bid auctions. It includes a custom Commerce Server Business Desk module, Auction, designed for managing auctions.

The Auction Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. No modification to the code is required to deploy the Auction Sitelet to a server running Commerce Server 2002.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

Installing the Auction Sitelet

You unpack the Auction Sitelet using Commerce Server Site Packager. The package file is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction\SDK-AUCTION-SITELET.PUP

Unpacking the Auction Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

Use the following procedures to install the Auction Sitelet on one computer using the Quick mode in Site Packager.

To unpack the Auction Sitelet

To add a blank Business Desk to the Auction Sitelet

To add the Auction Module to Business Desk

To create an auction

To bid on an auction item

To view bid history in Business Desk

To unpack the Auction Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction directory.
  2. Double-click the SDK-AUCTION-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. In the Unpacking is complete screen, review the list of SQL databases and Internet Information Services (IIS) applications that were created. To review the list of events that occurred while Site Packager was running, click View Log File.
  8. To close Site Packager, click Finish.

To add a blank Business Desk to the Auction Sitelet

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Commerce Server Manager.
  2. In Commerce Server Manager, on the Tree tab, expand Commerce Server Manager, expand Commerce Sites, and then expand Auction Sitelet.
  3. Right-click Applications, point to New, and then click Add Application.
  4. In the Add Application From dialog box, select Blank.pup, and then click Open.
  5. In the Select Applications dialog box, in the Applications in the package box, clear the BlankSite option. Only the BlankBizDesk site option should be selected.
  6. Click Next.
  7. In the Select IIS Web Sites and Virtual Directories dialog box, do the following:
    Use this | To do this
    Machine Name of IIS Server | Type the computer name for the IIS server.
    IIS Web site | Select the Default Web Site from the drop-down list.
    IIS Virtual Directory | Type auctionsiteletbizdesk where blankbizdesk currently appears.
  8. Click Next.
  9. In the Unpacking is complete dialog box, review the list of SQL databases and IIS applications that were created. To review the list of events that occurred while Site Packager was running, click View Log File.
  10. To close Site Packager, click Finish.
  11. To close Commerce Server Manager, in the Commerce Server Manager screen, on the Console menu, click Exit.
  12. In the Microsoft Management Console dialog box, click No.

To add the Auction module to Business Desk

  1. Click Start, point to Microsoft Commerce Server 2002, and then click Software Development Kit.
  2. Navigate to <drive>:\Samples\Auction\bBizdesk\Config, and copy the Auction.xml and Bizdesk.xml files.
  3. Navigate to <drive>:\Inetpub\wwwroot\Auctionsiteletbizdesk\Config, and paste the Auction.xml and Bizdesk.xml files into this directory.
  4. Navigate to <drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Auction\Bizdesk, and copy the Include directory, Auction_edit.asp, Auction_event.asp, Auction_list.asp, Bids_event.asp, and Bids_list.asp. The only item that should not be copied is the Config folder.
  5. Navigate to <drive>:\Inetpub\wwwroot\auctionsiteletbizdesk, and on the File menu, point to New, and then click Folder.
  6. In the right pane, name the new folder auction.
  7. Double-click the auction folder, and paste the copied files into the auction folder. The auction folder should now contain the files auction_edit.asp, auction_event.asp, auction_list.asp, bids_event.asp, bids_list.asp, and an Include directory.
  8. Click Start, and then click Run.
  9. In the Run dialog box, in the Open box, type iisreset, and then click OK.

A command box appears while IIS is being reset. IIS is reset when the command box closes.

To create an auction

  1. Click Start, point to Programs, and then click Internet Explorer.
  2. In Internet Explorer, in the Address box, type //<computer name>/auctionsiteletbizdesk, and then press ENTER.
  3. In the Browse for Folder dialog box, accept the default settings, and then click OK.
  4. In Internet Explorer, click Start Business Desk.

    The Auction sitelet Business Desk opens.

  5. Click the Auction module, and then click Auction Manager.
  6. In the Auction Events screen, click [image] on the toolbar.
  7. In the New Auction Item screen, enter the product information for the item up for bid. For exemplary purposes, the Auction Sitelet sets the Auction Type to winning bid. For more information about the product properties, see the UpdateItem method for the Auction object in Commerce Server Help.
  8. In the New Auction Item screen, click The Save Auction icon. on the toolbar to save the auction item, and then click The Back icon. on the toolbar to return to the Auction Events screen.

    The auction item now appears in the Filtered View list.

To bid on an auction item

  1. Click Start, point to Programs, and then click Internet Explorer.
  2. In Internet Explorer, in the Address box, type //<computer name>/auctionsitelet, and then press ENTER.

    The Auction sitelet appears.

  3. Follow the onscreen directions to place a bid.

To view bid history in Business Desk

  1. Open the Auction sitelet in Business Desk from either the Start menu or the Desktop.
  2. In the Auction module, click Bids Manager.

All bids for all items appear in the Filtered View list.


Business Desk Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) includes several samples that demonstrate how to customize and extend Commerce Server Business Desk.

This section contains:

  • Business Desk Themes Sample
  • Custom Business Desk Module Sample
  • Business Desk Installer Sample
  • Widget Samples


Business Desk Themes Sample

Location in SDK: SDK\Samples\BizDesk\Themes

The Microsoft Commerce Server 2002 Software Development Kit (SDK) includes a Business Desk Themes sample that allows users to change the Business Desk theme or color scheme. After making minor code changes to two of the ASP pages for the site, the themes are available for selection on the home page of Business Desk, in the Themes drop-down list.

Each Business Desk theme is based on two cascading style sheet (CSS) files, theme_bizdesk.css and theme_navtree.css, such as earth_bizdesk.css and earth_navtree.css for the theme with the Earth color scheme.

There are five themes included in the SDK. The following lists the name of the theme, a description of the color scheme, and a graphic of the theme used in Business Desk.

  • Earth, mixture of greens and browns

    The Business Desk Earth theme.

  • Grape, shades of purple

    The Business Desk Grape theme.

  • Ocean, shades of blues and greens

    The Business Desk Ocean theme.

  • Raspberry, shades of red

    The Business Desk Raspberry theme.

  • Steel, shades of grays and blues

    The Business Desk Steel theme.

Installing the Business Desk Theme Sample

Use the following procedure to install the Business Desk Themes sample.

Notes

  • Before you can install the Business Desk Themes sample, Commerce Server Business Desk must be installed. Business Desk is installed automatically when a Solution Site is unpacked. Business Desk is not installed automatically when an SDK sitelet is unpacked.
  • Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

To install the Business Desk Themes sample

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Software Development Kit.
  2. Navigate to the Themes folder, for example <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\BizDesk\Themes.
  3. Copy the two files associated with each theme you want to have available in Business Desk, for example, ocean_navtree.css and ocean_bizdesk.css.
  4. Navigate to the Bizdesk folder for the site, for example <drive>:\Inetpub\wwwroot\<Sitename>Bizdesk\Include\Styles, and then paste the files in the folder.
  5. Navigate to the welcome.asp file, located at <drive>:\Inetpub\wwwroot\<SiteName>bizdesk\welcome.asp. Open the file in a text editor such as Notepad or Microsoft Visual Studio.
  6. Add the new theme options to the drop-down list. After the following line of code on line 120, <option value='hicont_'><%= L_CSSHiContrast_MenuItem%></option>, add a new line of code for each new theme.

    For example:

    'Existing Code
<option value='default_'><%= L_CSSDefault_MenuItem    %></option>
<option value='hicont_'><%= L_CSSHiContrast_MenuItem  %></option>
'New Code
<option value='ocean_'>Ocean</option>

    Note that to preserve the ability to easily localize the Business Desk code, you should add a new variable for the word "Ocean" to the file BizDeskStrings.asp in the Include folder below the existing definitions of the L_CSSDefault_MenuItem and L_CSSHiContrast_MenuItem variables, and reference the new variable in the file welcome.asp.

  7. On the File menu, click Save. (You can optionally close the file welcome.asp and the text editor at this point.)
  8. Open Business Desk for the site. Click Start, and then click Business Desk - <Sitename>.
  9. On the Business Desk home page, select the theme you want to use from the Theme drop-down list, and then click Apply.

Business Desk is displayed in the color scheme for the theme you selected.


Custom Business Desk Module Sample

Location in SDK: SDK\Samples\BizDesk\Module

The files in this sample provide a working code base from which to develop new Commerce Server Business Desk modules. This code base demonstrates how to use XML data-islands, and includes the use of the Business Desk HTML Components (HTCs) for creating a rich, Web-based user interface to allow for nontechnical administration of your Commerce Server Web site. This sample provides you with an edit page that demonstrates the use of edit page HTCs, a list page that demonstrates the use of the list page HTC, and a response page for handling requests from the Business Desk user interface.

For more information about building Business Desk modules, see Building Business Desk Modules.


Business Desk Installer Sample

Location in SDK: SDK\Samples\BizDesk\Installer

The files in this sample constitute the C++ source code for a Component Object Model (COM) object that provides a mechanism for automating the process of adding the configuration information for a new Business Desk module to an existing Business Desk installation. For more information about the interface that this object implements, see Automating Module Installation.


Widget Samples

Location in SDK: SDK\Samples\BizDesk\Widgets

The files in this sample constitute demonstration pages for the various HTML Components (HTCs) provided with the Business Desk Framework.

You can set a Microsoft Internet Information Services (IIS) virtual directory to the Widgets folder to see sample pages for all of the HTML Components (HTCs) used in Business Desk.


Classic ASP Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains six samples that demonstrate the use of the Targeting system, Product Catalog system, Order Processing system, and the User Profile Management feature.

This section contains:

  • ASP-Based Advertising Sitelet
  • ASP-Based Catalog Sitelet
  • ASP-Based Discount Sitelet
  • ASP-Based Order Sitelet
  • ASP-Based Passport Sitelet
  • ASP-Based Profile Sitelet


ASP-Based Advertising Sitelet

Location: SDK\Samples\Classic ASP\Ad Sitelet

The primary goal of the Advertising Sitelet is to demonstrate the use and behavior of the components that work together to display advertisements in a Commerce Server site. In this sitelet, you will view a demonstration of targeted advertisements for hard-coded profile data to learn and understand how the ContentSelector object works. The profile data for this sitelet is stored in the site SQL Server database; this database is populated by Commerce Server Site Packager during the sitelet installation process.

The Advertising Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. Using the sitelet, you can create and display ads using the Campaign Manager module, and you can manage ad targeting based on profiles in your Profiles database. No modification to the source code is required to deploy the Advertising Sitelet to a server running Commerce Server 2002.

Similar functionality to that found in the ASP-Based Advertising Sitelet can be found in the ASP.NET-Based Advertising Sitelet. For more information, see ASP.NET-Based Advertising Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP-Based Advertising Sitelet Code Notes

Installing the ASP-Based Advertising Sitelet

ASP-Based Advertising Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The sitelet sets the language character sets in the Main routine of several ASP pages using code such as the following:

Sub Main()
    Set g_ojbMsgMgr = Application ("MSCSMessageManager")
    Response.CharSet = "iso-8859-1"
End Sub

Notes

  • MessageManager object entries are read from the file rc.xml.
  • This sitelet uses a hard-coded user ID, which is set in the file siteletconst.asp.

Installing the ASP-Based Advertising Sitelet

You unpack the Advertising Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Advertising Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Ad Sitelet\SDK-AD-SITELET.PUP

Use the following procedure to install the Advertising Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP-based Advertising Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP-Based Ad Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Ad Sitelet directory.
  2. Click the SDK-AD-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/AdSitelet to open the sitelet.


ASP-Based Catalog Sitelet

Location: SDK\Samples\Classic ASP\Catalog Sitelet

The primary goal of the Catalog Sitelet is to demonstrate how to use the Catalog object model to browse and search a product catalog, providing you with a functional example of the catalog API in action.

The Catalog Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. You can deploy the sitelet to a server running Commerce Server 2002 without the need for code modifications. After the Catalog Sitelet has been deployed, you can use it to browse and search a sample catalog.

The Catalog Sitelet demonstrates the two query mechanisms supported by the Catalog object model, and also demonstrates using the Catalog object model to provide catalog browsing functionality.

Similar functionality to that found in the ASP-Based Catalog Sitelet can be found in the ASP.NET-Based Catalog Sitelet. For more information, see ASP.NET-Based Catalog Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP-Based Catalog Sitelet Code Notes

Installing the ASP-Based Catalog Sitelet

ASP-Based Catalog Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The ASP sitelets set the language character sets in the Main routine of several ASP pages using code such as the following:

Sub Main()
    Set g_ojbMsgMgr = Application ("MSCSMessageManager")
    Response.CharSet = "iso-8859-1"
End Sub

Notes

  • MessageManager object entries are read from the file Rc.xml.
  • The catalog for this sitelet is both multilingual and multicurrency.

Installing the ASP-Based Catalog Sitelet

You unpack the Catalog Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Catalog Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Catalog Sitelet\SDK-CATALOG-SITELET.PUP

Use the following procedure to install the Catalog Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP-based Catalog Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP-Based Catalog Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Catalog Sitelet directory.
  2. Click the SDK-CATALOG-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/CatalogSitelet to run the sitelet.


ASP-Based Discount Sitelet

Location in SDK: SDK\Samples\Classic ASP\Discount Sitelet

The primary goal of the Discount Sitelet is to demonstrate how to create and apply discounts to items added to a shopping cart using the Campaign Manager module in Commerce Server Business Desk and the Basket pipeline. Using this sitelet, you can examine a demonstration of discounts based on hard coded catalog data, and understand how the discount pipeline component works in the Order Processing pipeline (OPP). The Discount Sitelet shows you how to:

  • Create a multilingual site
  • Use discounts as part of campaign management
  • Display discounts
  • Create click-required discounts
  • Create discount applications and expressions (targeted discounts)
  • Create discount events

The Discount Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. Using the Discount Sitelet, you can implement discounts on a Commerce Server-based Web site. No modification to the code is required to deploy the sitelet to a server running Commerce Server 2002.

Discounts in the sitelet are determined by what type of account the user has. Users that log in as Premier Users get 10 percent off all items in their basket. Premier Users also receive an additional 40 percent off Black Diamond Quicksilver II when they purchase Gibraltar. Users that log in as Standard Users get 50 percent off an item when they purchase three items.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP-Based Discount Sitelet Code Notes

Installing the ASP-Based Discount Sitelet

ASP-Based Discount Sitelet Code Notes

The discounts, users, and catalog are hard-coded in the Discount Sitelet, meaning that this data is stored in the appropriate SQL Server site database tables during the site installation process.

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. Language character sets are set in the Main routine of several ASP pages using code such as the following:

Sub Main()
    Set g_ojbMsgMgr = Application ("MSCSMessageManager")
    Response.CharSet = "iso-8859-1"
End Sub

Notes

  • MessageManager object entries are read from the file rc.xml.
  • This sitelet also supports multicurrency ordering.
  • This sitelet uses a hard-coded user ID, which is set in the file siteletconst.asp.
  • Users that log in as Premier Users get 10 percent off all items in their basket. They also recieve an additional 40 percent off Black Diamond Quicksilver II when they purchase Gibraltar. Users that log in as Standard Users get 50 percent off every third item in their basket.

Installing the ASP-Based Discount Sitelet

You unpack the Discount Sitelet using Commerce Server Site Packager. The package file is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Discount Sitelet\SDK-DISCOUNT-SITELET.PUP

Unpacking the ASP-based Discount Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

Use the following procedures to install the Discount Sitelet on one computer using the Quick mode in Site Packager.

To unpack the ASP-Based Discount Sitelet

To add a blank Business Desk to the ASP-Based Discount Sitelet

To import the Adventure Works Catalog

To view the ASP-Based Discount Sitelet

To unpack the ASP-Based Discount Sitelet

  1. Using Windows Explorer, navigate to Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Discount Sitelet.
  2. Click the SDK-DISCOUNT-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.

To add a blank Business Desk to the ASP-Based Discount Sitelet

Adding a Business Desk to the Discount Sitelet is optional.

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Commerce Server Manager.
  2. In Commerce Server Manager, on the Tree tab, expand Commerce Server Manager, expand Commerce Sites, and then expand Discount Sitelet.
  3. Right-click Applications, point to New, and then click Add Application.
  4. In the Add Application From dialog box, select Blank.pup, and then click Open.
  5. In the Select Applications dialog box, in the Applications in the package box, clear the BlankSite option. Only the BlankBizDesk site option should be selected.
  6. Click Next.
  7. In the Select IIS Web Sites and Virtual Directories dialog box, do the following:
    Use this | To do this
    Machine Name of IIS Server | Type the computer name for the Internet Information Services (IIS) server.
    IIS Web site | Select Default Web Site on the drop-down list.
    IIS Virtual Directory | Type discountsiteletbizdesk where blankbizdesk currently appears.
  8. Click Next.
  9. In the Unpacking is complete dialog box, review the list of SQL databases and IIS applications that were created. To review the list of events that occurred while Site Packager was running, click View Log File.
  10. To close Site Packager, click Finish.
  11. To close Commerce Server Manager, in the Commerce Server Manager screen, on the Console menu, click Exit.
  12. In the Microsoft Management Console dialog box, click No.

To import the Adventure Works Catalog

  • After unpacking the Discount Sitelet and adding Business Desk, you can optionally import the Adventure Works Catalog into the Discount Sitelet. The Adventure Works Catalog is located at <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Discount Sitelet\AdvWorksCatalog.xml.

For more information about importing the Adventure Works Catalog, see Importing an XML Catalog File.

To view the ASP-Based Discount Sitelet

  • In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/DiscountSitelet, and then press ENTER.


ASP-Based Order Sitelet

Location in SDK: SDK\Samples\Classic ASP\Order Sitelet

The primary goal of the Order Sitelet is to demonstrate how to allow users to create an order, and then confirm and view the status of that order. For more information on order queuing, see Order Queuing SDK Sample.

The Order Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. No modification of the source code is required to deploy the Order Sitelet to a server running Commerce Server 2002.

Similar functionality to that found in the ASP-Based Order Sitelet can be found in the ASP.NET-Based Order Sitelet. For more information, see ASP.NET-Based Order Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

ASP-Based Order Sitelet Code Notes

Installing the ASP-Based Order Sitelet

ASP-Based Order Sitelet Code Notes

This sitelet demonstrates multilingual functionality. The following languages are supported: English, French, German, and Japanese. The ASP sitelets set the language character sets in the Main routine of several ASP pages using code such as the following:

Sub Main()
    Set g_ojbMsgMgr = Application ("MSCSMessageManager")
    Response.CharSet = "iso-8859-1"
End Sub

Notes

  • MessageManager object entries are read from the file rc.xml.
  • This sitelet also supports multicurrency ordering.
  • This sitelet uses a hard-coded user ID, which is set in the file siteletconst.asp.

Installing the ASP-Based Order Sitelet

You unpack the Order Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Order Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Order Sitelet\SDK-ORDER-SITELET.PUP

Use the following procedure to install the Order Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP-based Order Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP-Based Order Sitelet

  1. In Windows Explorer, navigate to the directory containing either the ASP or the ASP.NET version of the sitelet, as described above.
  2. Double-click the SDK-ORDER-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/OrderSitelet to open the sitelet.


ASP-Based Passport Sitelet

Location in SDK: SDK\Samples\Classic ASP\Passport Sitelet

The primary goal of the Passport Sitelet is to demonstrate through code how to integrate Passport single sign-on capability with the Profiling System. With this capability, you and your users can benefit from a single sign-on authentication service, meaning that users can access more than one secure site with the same user name and password.

The Passport Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. No modification to the code is required to deploy the Passport Sitelet to a server running Commerce Server 2002.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

Installing the ASP-Based Passport Sitelet

You unpack the Passport Sitelet using Commerce Server Site Packager. The package file is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Passport Sitelet\SDK-PASSPORT-SITELET.PUP

Use the following procedure to install the Passport Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP-based Passport Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the Passport Sitelet

  1. In Windows Explorer, navigate to the <drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Passport directory.
  2. Click the SDK-PASSPORT-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/PassportSitelet to run the sitelet.


ASP-Based Profile Sitelet

Location in SDK: SDK\Samples\Classic ASP\Profile Sitelet

The primary goal of the Profile Sitelet is to demonstrate through code how to use the Profiling System in Commerce Server 2002 to create user profiles, set user profile attributes, and to read user profile data using the Profiling System objects.

The Profile Sitelet consists of a package file, which you unpack using Commerce Server Site Packager. The source code for the sitelet is included in this package. Using the sitelet, you can create and modify user profiles, using the AuthManager, ProfileObject, and ProfileService objects. No modification to the code is required to deploy the Profile Sitelet to a server running Commerce Server 2002.

Similar functionality to that found in the ASP-Based Profile Sitelet can be found in the ASP.NET-Based Profile Sitelet. For more information, see ASP.NET-Based Profile Sitelet.

Best coding practices are maintained in this sample, and the code represents the prescribed method of using the object model.

Installing the ASP-Based Profile Sitelet

You unpack the Profile Sitelet using Commerce Server Site Packager. The package file for the ASP version of the Profile Sitelet is located in the following directory:

<drive>:\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Classic ASP\Profile Sitelet\SDK-PROFILE-SITELET.PUP

Use the following procedure to install the Profile Sitelet on one computer using the Quick mode in Site Packager.

Unpacking the ASP-based Profile Sitelet using the Custom unpack option and creating independent databases for each of the site resources is not recommended.

To unpack the ASP-Based Profile Sitelet

  1. In Windows Explorer, navigate to the directory containing either the ASP or the ASP.NET version of the sitelet, as described above.
  2. Click the SDK-PROFILE-SITELET.PUP icon.
  3. In the Unpack screen, select Quick Unpack, and then click Next.
  4. In the Quick Unpack screen, ensure that the SQL Server computer name is correct, enter the SQL Server login name and password, and then click Next.
  5. In the Profiling System screen, accept the defaults, and then click Next.
  6. In the second Profiling System screen, accept the defaults, and then click OK.
  7. After the unpacking is complete, a dialog box appears with the message "Unpacking is complete!". Click Finish.
  8. In Internet Explorer, in the Address box, type HTTP: //<c omputer name>/ProfileSitelet to open the sitelet.


Order Processing Samples

The Order Processing folder contains the following samples:

  • MinMaxShip Pipeline Component Sample
  • Order Level Discount Pipeline Components
  • Order Queuing Sample


MinMaxShip Pipeline Component Sample

Location in SDK: SDK\Samples\Order Processing\MinMaxShip

The files in this sample are divided into four subfolders: ATL, BizDesk, CSharp, and VB. The ATL and VB folders contain files that constitute parallel implementations of the same pipeline component, known as the MinMaxShip pipeline component. The ATL folder contains the source code for a C++ Active Template Library (ATL) implementation, and the VB folder contains the source code for a Microsoft Visual Basic implementation. The CSharp folder contains the source for a C# implementation of the component.

The MinMaxShip pipeline component demonstrates how a new pipeline component can be added to the Order Processing pipeline, as well as demonstrating the new shipping architecture in Commerce Server.

The BizDesk folder provides a custom Commerce Server Business Desk module that allows the MinMaxShip sample to be quickly added to an existing Commerce Server Web site for use in the shipping stage of an Order Processing pipeline.

To run either implementation of the MinMaxShip sample, you must first either install one of the Solution Sites that can be downloaded from http://go.microsoft.com/fwlink/?LinkId=6767, or install the Order Sitelet and Commerce Server Business Desk. For instructions on installing the Order Sitelet, see Installing the ASP-Based Order Sitelet. For instructions on installing Business Desk, see Adding a Business Desk Application to a Site. After you have installed a site or a sitelet and Business Desk, go to the directory containing the Business Desk files, and do the following:

  • Copy the file MinMax_edit.asp from the MinMaxShip\BizDesk folder to the relevant Shipping folder. For example, C:\InetPub\wwwroot\RetailBizDesk\Shipping.
  • Copy the file shipping_methods.xml from the MinMaxShip\BizDesk folder to the Config folder. For example, C:\InetPub\wwwroot\RetailBizDesk\Config.

After the Shipping module in Business Desk is updated, you can use it to configure new shipment methods of type "MinMaxShip".

For more information about the MinMaxShip sample, see MinMaxShip Sample Pipeline Component.


Order Level Discount Pipeline Components

Location in SDK: SDK\Samples\Order Processing\OrderLevelDiscountComponents

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains two extendable pipeline components: OrderLevelDiscountsApply and ShippingDiscountsApply. The components in the SDK are exactly the same as the components included in the platform except they have distinct Programmatic Identifiers and the source code is available for the SDK pipeline components. Because the SDK pipeline components have unique Programmatic Identifiers, both the platform and SDK components can be registered at the same time.

To create and use the extendable pipeline components, you must perform three procedures.

To build the OrderLevelDiscountsComponents.dll file

To add the OrderLevelDiscountsApply component to a pipeline

To add the ShippingDiscountsApply component to a pipeline

To build the OrderLevelDiscountsComponents.dll file

Before you start this procedure, you must update the Include files for Microsoft Visual C++. For information on updating the Include files, see To update Microsoft Visual C++.

  1. On the Start menu, point to Programs, point to Microsoft Visual Studio 6.0, and then click Microsoft Visual C++.
  2. On the File, click Open.
  3. On the Open dialog box, change Files of type to All Files, and then navigate to the <drive>:\Program Files\Microsoft Commerce Server\2002\SDK\Samples\OrderProcessing\OrderLevelDiscountComponents directory, select OrderLevelDiscountsComponents.dsw, and then click Open.
  4. On the Build menu, click Build OrderLevelDiscountsComponents.dll.
  5. On the File menu, click Save Workspace, and then click Exit.

    Notes

    • Visual Studio automatically registers the component it compiles. If an error occurs, register it manually.
    • The directory that the DLL resides in should allow IUSR_<computer name> account access.

To add the OrderLevelDiscountsApply component to a pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open, and then select the pipeline you want to modify. For example, <drive>:\Inetpub\wwwroot\Retail\Pipeline\basket.pcf.
  3. Right-click the OrderDiscount component, point to Insert Component, and then click After.

    The Choose a component dialog box appears.

    Note

  • The OrderLevelDiscountsApply component should always be placed in the Order Adjust Price stage, between the OrderDiscount and RequiredOrderAdjustPriceCy components.
  1. In the Choose a component dialog box, select OrderLevelDiscountsApply SDK from the Component window, and then click OK.
  2. To configure the new component, right-click the OrderLevelDiscountsApply component, and then click Properties.
  3. In the Component Properties dialog box, do the following:
    Use this | To do this
    Apply discounts to all items | Apply order level discounts to all items in the order form.
    Apply discounts to items where the following key exists and the corresponding value is nonzero | Apply order level discounts only to items in the order form where the specified item dictionary key exists and the corresponding value is nonzero.
  4. Click Apply, and then click OK.
  5. On the File menu, click Save, and then click Exit.

    The new component is added to your pipeline.

To add the ShippingDiscountsApply component to a pipeline

  1. Click Start, point to Programs, point to Microsoft Commerce Server 2002, and then click Pipeline Editor.
  2. On the File menu, click Open, and then select the pipeline you want to modify. For example, <drive>:\Inetpub\wwwroot\Retail\Pipeline\total.pcf.
  3. Right-click the Commerce.ShippingMethodRouter component, point to Insert Component, and then click After.

    The Choose a component dialog box appears.

    Note

  • The ShippingDiscountsApply component should always be placed in the Shipping stage, following the Commerce.ShippingMethodRouter component.
  1. In the Choose a component dialog box, select ShippingDiscountsApply SDK in the Component window, and then click OK.
  2. To configure the new component, right-click the component, and then click Properties.
  3. In the Component Properties dialog box, do the following:
    Use this | To do this
    Label | Type a name for the component.
    Class ID | Type a globally unique identifier for the component.
    Program ID | Type the programmatic identifier for the component.
    Description | Type a description for the component.
  4. Click Apply, and then click OK.
  5. On the File menu, click Save.

The new ShippingDiscountsApply component is added to your pipeline.

See Also

OrderDiscount

OrderLevelDiscountApply

ShippingDiscountAdjust

Business Desk Campaigns


Order Queuing Sample

Location in SDK: SDK\Samples\Order Processing\Queuing

The Microsoft Commerce Server 2002 Software Development Kit (SDK) includes the Order Queuing sample that contains components that you can use for queuing orders so you can process them at a later time. Providing the capability to process orders offline is a recommended best practice for high-availability sites.

The Order Queuing sample integrates Message Queuing, which allows an order to be stored in a queue until a server or database becomes available. Message Queuing ensures that users are not affected by server or database outages, and efficiently and accurately stores orders when real-time processing is not a viable option.

Diagram depicting the workflow of the Order Queuing sample.

When order queuing is implemented, the IPersistXML interface is used to convert an order into XML-formatted text. This text is saved in the message queue. The Order Queuing sample includes a sample Reader application that allows you to view the XML-formatted version of the order and save it to the orders database as an OrderGroup object, or return it to the queue for processing at a later time. It is recommended that a custom Reader application be created for use in production Web sites to automate the polling of the order queue.

For more information about message queuing, see the Message Queuing topics available in the Platform SDK in the online MSDN Library (http://go.microsoft.com/fwlink/?LinkId=6680).

This section contains:

  • Order Queuing Sample Code Walkthrough
  • Installing the ASP-Based Order Queuing Sample

Order Queuing Sample Code Walkthrough

The Order Queuing sample includes a writer component (writeorder.cls) and a reader component (readorder.cls). The writer component stores the orders in a private queue. This component should be used in a site or sitelet to store the order in the queue instead of in the orders database. The reader component reads orders from the queue and stores them in your Commerce Server orders database.

The reader application, ReaderApp.exe, is a sample application provided to exemplify one way in which the reader component can be used. The reader application initializes the components, reads the order from the queue where it is stored as XML, returns the OrderGroup object, and then calls the function SaveAsOrder to write the order to the orders database.

Installing the Order Queuing Sample

Use the following procedures to install the Order Queuing sample. After you have installed the code to run the sample, you will need to make the OrderQueue.dll file, make the ReaderApp.exe file, and register the OrderQueue.dll file. You will then need to reset Internet Information Services (IIS).

Notes

  • Before installing the Order Queuing sample, the Order Sitelet must be installed. For more information about installing the Order Sitelet, see Installing the Order Sitelet.
  • Before installing the Order Queuing sample, the Message Queuing Services component in Windows 2000 must be installed on the same computer as the Order Sitelet. The Message Queuing Services component can be installed through the Windows Components Wizard, which is accessible through Control Panel, Add/Remove Programs, Add/Remove Windows Components.
  • Before installing the Order Queuing sample, Microsoft Visual Studio 6.0 must be installed on the same computer as the Order Sitelet.

To install the Order Queuing sample

To make the OrderQueue.dll file

To make the ReaderApp.exe file

To register the OrderQueue.dll file

To reset IIS

To run the Order Queuing sample

To install the Order Queuing sample

  1. Click Start, point to Programs, point to Accessories, and then click Windows Explorer.
  2. Navigate to the global.asa file located at <drive>:\Inetpub\wwwroot\ordersitelet\global.asa.
  3. Right-click the Global.asa file, point to Open With, and then select your preferred editor

    In this example, the text editor is WordPad.

  4. Paste the following code into the global.asa file, in the Main function following the line of code Set Application("MSCSExpressionEvaluator") = MSCSExpressionEvaluator:
    Dim MSCSWriteToQueue

Set MSCSWriteToQueue = CreateObject("OrderQueue.WriteOrder")
Call MSCSWriteToQueue.Initialize ("ordersitelet")

Set Application("MSCSWriteToQueue") = MSCSWriteToQueue
  5. On the File menu, click Save.
  6. On the File menu, click Open, navigate to the orderlib.asp file located at <drive>:\Inetpub\wwwroot\ordersitelet\Include\orderlib.asp, and then click Open.
  7. Comment out the following line of code in the CompleteOrder function of the file orderlib.asp:
    ' Call oBasket.SaveAsOrder()
  8. Paste the following code into the CompleteOrder function in the file orderlib.asp after the line of code ' Call oBasket.SaveAsOrder():
    Dim oWriter
Set oWriter = Application("MSCSWriteToQueue")
Call oWriter.WriteToQueue(oBasket)
  9. On the File menu, click Save, and then click Exit.

To make the OrderQueue.dll file

  1. Click Start, point to Programs, point to Microsoft Visual Studio 6.0, and then click Microsoft Visual Basic 6.0.
  2. On the File menu, click Open Project, navigate to the OrderQueue.vbp file located at <drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\Queuing\Component\OrderQueue.vbp, and then click Open.
  3. On the File menu, click Make OrderQueue.dll.
  4. In the Make Project dialog box, click OK.
  5. On the File menu, click Save Project.

To make the ReaderApp.exe file

  1. In Microsoft Visual Basic 6.0, on the File menu, click Open Project, navigate to the ReaderApp.vbp file located at <drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\Queuing\ReaderApp.vbp, and then click Open.
  2. On the File menu, click Make ReaderApp.exe.
  3. In the Make Project dialog box, click OK.
  4. On the File menu, click Save Project, and then click Exit.

You can now register the OrderQueue.dll file.

To register the OrderQueue.dll file

  1. Click Start, and then click Run.
  2. In the Run dialog box, in the Open box, type regsvr32 "<drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\Queuing\Component\OrderQueue.dll", and then click OK.

    After the registration succeeds, the RegSvr32 dialog box appears.

  3. In the RegSvr32 dialog box, click OK.

To reset IIS

  1. Click Start, and then click Run.
  2. In the Run dialog box, in the Open box, type iisreset, and then click OK.

A command box appears while IIS is being reset. IIS is reset when the command box closes.

To run the Order Queuing sample

  1. Click Start, point to Programs, and then click Internet Explorer.
  2. In Internet Explorer, in the Address box, type http://<server name>/ordersitelet, and then press ENTER.

    The default.asp page for the Order Sitelet appears.

  3. Place a sample order in the Order Sitelet following the on-screen directions.
  4. After placing the order and receiving order confirmation, open the ReaderApp.exe file located at <drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Order Processing\Queuing\ReaderApp\ReaderApp.exe.
  5. In the Read Order From Queue dialog box, in the Site name box, type the name of the site (for example, OrderSitelet).
  6. Click ReadOrder to read the first order from the queue.
The order is read from the queue and displayed in the Order details box.
  1. Click OK to save the order to the database.

    Note

    • Clicking Cancel will return the order to the queue and close the application.
  2. Repeat steps 6 and 7 until all orders have been read from the queue.
  3. To close the Read Order from Queue dialog box, click Cancel.


Privacy Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains the following privacy scripts:

  • Delete User Data Script
  • Disassociate User Data Script

Delete User Data Script

Location in SDK: SDK\Samples\Privacy\DeleteDetailedData.vbs

This sample demonstrates how to use the OLE DB Provider for Commerce Server to delete detailed data about a particular user from the Data Warehouse.

Disassociate User Data Script

Location in SDK: SDK\Samples\Privacy\DisconnectDetailedData.vbs

This sample demonstrates how to use the OLE DB Provider for Commerce Server to disassociate detailed data about a particular user without deleting the data itself.


Site Management Samples

The Management folder contains the following samples:

  • Pup Resource Sample. Describes the Pup Resource sample.
  • ResourceConfig Sample. Describes the ResourceConfig sample.
  • Site Status Sample. Describes the Site Status sample.


PuP Resource Sample

Location in SDK: SDK\Samples\Site Management\PuP Resource

The files in this sample constitute the Microsoft Visual Basic source code for a COM object that implements the IPuP interface. The implementation is essentially the same as that implemented by the GenericPuP object, and can be used to package a specified set of tables from a single SQL Server database. For more information about the IPuP interface and the GenericPuP object, see Site Packager Interface and Using the GenericPuP Object.


ResourceConfig Sample

Location in SDK: SDK\Samples\Site Management\ResourceConfig

The files in this sample constitute the Microsoft Visual Basic source code that demonstrates how to add the configuration information for a custom resource with one configuration property to the tables of the Administration database. For more information about integrating a custom resource, see Integrating Custom Resources.


Site Status Sample

Location in SDK: SDK\Samples\Site Management\Site Status

The files in this sample constitute the C++ source code of a Microsoft Management Console (MMC) extension snap-in and custom Commerce Server site resource that extends the Commerce Server Manager interface and provides the ability to open and close the Commerce Server applications into which it is installed.

When installed as a site resource, this extension snap-in retrieves the name of the site it is installed in, and then retrieves the names of all the applications installed in the site. When you choose to close the site, it queries the Internet Information Services (IIS) metabase on each Web server hosting the site, and sets the RedirectUrl key in the metabase to redirect all incoming requests to a page that reports the site as closed.

To install the sample into an existing site, run the InstallSiteStatus.vbs script from the command line, passing in the name of the site. For example:

    C:\>cscript InstallSiteStatus.vbs Retail

Note

  • This example assumes that your account logon user name is sa, and the password is blank. Update the account logon user name and password in the InstallSiteStatus.vbs file to match your resources.


Site Creation Samples

Location in SDK: SDK\Samples\SiteCreate

The files in the SiteCreate folder are provided for two purposes. The .vbs and .sql script files are examples of how to create sites or add resources to sites using script. These files are also useful for learning how to incorporate new resources that use the GenericPup object. For more information about the GenericPup object, see the PuP Resource Sample. The .ini files are examples of those used to pack and unpack Commerce Server 2002 packages silently through the Commerce Server Site Packagers command line interface. For more information about the Site Packager resource, see Using Site Packager.


Targeting Samples

The Microsoft Commerce Server 2002 Software Development Kit (SDK) contains the following targeting samples:

  • Database Scripts to Remove Tables and Related Objects
  • Targeting Debugging Samples
  • Headline Targeting Sample

Database Scripts to Remove Tables and Related Objects

Location in SDK: SDK\Samples\Targeting\dbscripts

The files in this sample provide SQL scripts that can be used to remove different categories of tables and related objects, as follows:

  • campaigns-drop.sql: Removes all tables and related objects for the Campaigns resource.
  • expression-store-drop.sql: Removes all tables and related objects for an Expression store, which is normally in the same database as the Profile store.
  • listmanager-drop.sql: Removes all tables and related objects in a List Manager database, which is normally in the same database used by the Campaigns resource.

Targeting Debugging Samples

Location in SDK: SDK\Samples\Targeting\Debug

The files in this sample provide a set of Active Server Pages (ASP) that you can include in your ASP files to dump the contents of a Content Selection Framework (CSF) cache, and to trace the scoring logic applied for any given content request. The CSF Score Headlines sample demonstrates how to use these debugging utilities.

The ASP files in this directory are DumpContentList.asp and TraceScores.asp.

Headline Targeting Sample

Location in SDK: SDK\Samples\Targeting\Headlines

The files in this sample demonstrate how to extend the Targeting System using custom Content Selection Framework (CSF) Cache Loading and Scoring components. This sample shows how to target headlines to users of your site based on the age of the headline and what headlines have been seen the most. It demonstrates integration with the Targeting System using both Microsoft Visual C++ and Microsoft Visual Basic.

For more information about creating the sample, see Creating the CSF Headlines Sample or the Readme.txt file in the Headlines folder.

See Also

Targeting Programming Concepts

Extending the Content Selection Framework


Developing an International Site

Microsoft Commerce Server 2002 provides functionality to ease the process of internationalizing your Web site. Commerce Server includes features for tracking the language chosen by the user, for maintaining Web site text in multiple languages, and for manipulating date, time, and currency strings for presentation in the language of choice.

This section contains:

  • Starting with an Example Site. Describes quick-start options for developers who are building a new site.
  • Tracking Language Choice. Describes different mechanisms for tracking the language chosen by the user.
  • Localizing Web Site Text. Describes how to present Web site text in the language chosen by the user.
  • Localizing Dates and Times. Describes the Commerce Server objects provided for manipulating date and time strings and values so that they conform to the language chosen by the user.
  • Localizing Currencies. Describes the Commerce Server objects provided for manipulating currency strings and values so that they conform to the language chosen by the user. Also described are strategies for presenting product prices in different currencies.
  • International Site Development Examples. Describes site development tasks and provides sample code for those tasks.

Note

  • For additional ASP.NET code sample sitelets, see:
    • International Retail Site
    • ASP.NET-based Advertising Sitelet
    • ASP.NET-based Catalog Sitelet
    • ASP .NET-based Order Sitelet
    • ASP .NET-based Profile Sitelet
  • For additional ASP code sample sitelets, see:
    • ASP-based Advertising Sitelet
    • ASP-based Catalog Sitelet
    • ASP-based Discount Sitelet
    • ASP-based Order Sitelet
    • ASP-based Passport Sitelet
    • ASP-based Profile Sitelet

See Also

Planning an International Solution

International Scenarios

Table of Language Culture Names, Codes, and ISO Values

Table of Country / Region and State / Provence Names


Starting with an Example Site

If you are developing a new international business-to-consumer (B2C) site, you can base an effective site on the Retail Solution Site or the International Retail Site. The choice depends on several factors, such as your existing code base and the features you need in your site. It is possible to use Active Server Pages (ASP) and ASP.NET in the same site, but this can compromise the performance advantage of ASP.NET.

Commerce Server Retail Site is available at http://go.microsoft.com/fwlink/?linkid=6491.

The following table lists the differences between the two sites.

Feature | International Retail Site | Retail Solution Site
Implementation language? | ASP.NET | ASP
Multilingual and multicurrency support? | Yes | No
Improved multicultural content handling? | Yes | No
Modular architecture? | Yes | No
Feature set? | Less complete | More complete
Close to production level code? | No, SDK sample | Yes
Business-to-consumer (B2C) support? | Main features | Yes
Business-to-business (B2B) support? | Basic features | Yes


Tracking Language Choice

If you are developing a Web site that will support multiple languages, you need a strategy for tracking the language choice made by the user. You can do this by:

  • Storing the language choice in the user profile. One option for tracking a language choice is to persist the choice made by each user in the user profile. Each page retrieves the user profile and then uses the value stored in the language property to make the appropriate selections for text formatting. This is a cost-effective method of storing language preferences, because the only performance cost involved is retrieving and updating the profile. In most cases this will be the most effective method for storing the user language preference. The ASP Profile Sitelet and the ASP.NET Profile Sitelet provided in the SDK demonstrate how to implement this technique.
  • Creating distinct Web sites for each language. If your site contains mostly static HTML pages, you could pre-generate pages for each language. Using this approach, you develop and maintain multiple parallel Web sites, one for each language that is supported. Typically, the links on these pages link to other pages in the same language, while the links that move the user to a different language link to the equivalent page in each supported language. In this approach, the language choice is inherent in the URLs.

    You can minimize the maintenance burden of this approach by pre-generating pages from a reference Web site. The reference Web site should have all language-specific strings expressed as replaceable variables. You could then develop a tool to substitute the appropriate language-specific strings for each of these variables for each language that is supported.

  • Storing the language choice in client-side cookies. Storing the language choice in a client-side cookie is the easiest way to track a language choice, but cookies must be enabled on client browsers. In this approach, you store a language code (for example, "en", "fr", or "nl") in the cookie and read the cookie on every page that displays language-dependent strings. The language code can then be used to make the appropriate selections for text formatting. This is the choice used for the International Retail Solution Site.

    Depending on the expiration date of the cookies, this option may allow language choice to be preserved from session to session.

  • Passing the language choice in URL query strings. You can store the language choice in the query string portion of the URL for each page to track a language choice. If you use this approach, each page must read the language choice from the query string and use it to dynamically append the language choice to all URLs on the page so that that choice can be passed to subsequent pages. The language choice must also be used to make the appropriate selections for text, currency, and date/time formatting.
  • Detect the browsers language. The initial settings of the language choice can be based on the browser settings. This value can then be stored, and the user can change it if a different choice is wanted.


Localizing Web Site Text

On Web sites that support multiple languages, rendered pages must be capable of displaying text in the language chosen by the user. You must first decide whether you will build and maintain parallel Web sites in different languages, or whether you will build a single Web site that dynamically builds each page in the appropriate language.

Although the parallel Web site approach offers better performance due to its more static nature, the maintenance burden of keeping multiple Web sites synchronized has made this approach unpopular.

Commerce Server includes features to make the dynamic approach easier to develop. These features include:

  • Product Catalog System. The extensible nature of the Product Catalog System provides a convenient mechanism for storing multiple language information for each product in the catalog. For example, you can create multilingual properties for product descriptions, and then display the appropriate description based on the preferred language of a user. For more information about the Product Catalog System, see Product Catalog System.
  • MessageManager Object. This object serves as a repository for text strings used on a Web site. It includes a mechanism for separating the symbolic name of the string from the particular language translation of the string. For example, you could output the string "Weekly Specials" in English using the GetMessage method of the MessageManager object, as shown in the following code example:
    Dim sLangChoice
sLangChoice = "en"
<%= oMessageManager.GetMessage("Weekly_Specials", sLangChoice)%>

    By changing the way in which the sLangChoice parameter is initialized, the same line of code could be used to display a version of the string in a different language.

    An instance of the MessageManager object is typically created and loaded with messages in the Global.asa file. A reference to this object is then placed in the intrinsic Application object so that all pages in the Web site have easy access to the stored messages. If multiple languages are being used, the initialization code in the Global.asa file will load the MessageManager object with multiple sets of messages, where each set corresponds to one of the languages being supported.

    If you provide a set of localized messages for a particular language, it is important that you provide a translated version of all corresponding text. If you attempt to call the GetMessage method of the MessageManager object and pass a string name and language for which no string exists, a run-time error will occur.

    All of the ASP sitelets provided in the SDK use the MessageManager object to display site text in the language established in the user profile.

    For more information about using the MessageManager object, see MessageManager Object.

  • CacheManager Object. This object can serve as a high-performance repository for strings or other data that are used frequently. Since retrieval from a CacheManager object is dependent upon a single key string, and not a combination of a key string and a language string as is the case for the MessageManager object, the choice of language must be embedded within the key string itself.

    For example, multiple language versions of the same string in English, French, and Dutch could be stored in a CacheManager object, with the key strings for each ending in "_en", "_fr", and "_nl", respectively. The key string would be built dynamically, altering the final component of the string based on the language choice of the user.

    For more information about using the CacheManager object, see CacheManager Object and General Purpose Objects.

  • .NET support for localization of static text

    ASP.NET handles the internationalization of static text differently from ASP. With ASP.NET, the localized resources are separated into a resource file (.resx) that can be embedded in an assembly or a satellite assembly on a per culture basis.

    The .NET ResourceManager class is used to retrieve the appropriate resources from the .resx file based on culture settings. There is a built-in fall-back mechanism for when resources for a culture are missing. For more information about the .NET Resource Manager, search on "Resource Manager" in the .NET Framework SDK located at http://go.microsoft.com/fwlink/?LinkId=6680.

    For example, if you want to support French Canadian (fr-CA) and French France (fr-FR) cultures, you can do so with one set of French resources marked as simply "fr". When the site user selects the fr-CA culture, the .NET globalization namespace methods provide a way to appropriately display currencies, and dates for the fr-CA culture. In this case, the Resource Manager will look for resources marked as fr-CA, will not find any, and will then automatically look for an existing country/region neutral culture for "fr". The Resource Manager will find the "fr" resources, and the strings will be loaded.

    Notes

    • If the "fr" resource did not exist. the Resource Manager would fall back to the default resources.
    • A tool, called the Resource File Generator (resgen), is provided to migrate from rc.xml to resx. Resgen converts .txt files and .resx (XML-based resource format) files to common language run-time binary resources files that can be embedded in a run-time binary executable, or compiled into satellite assemblies.


Localizing Dates and Times

On Web sites that support multiple languages, rendered pages must display dates and times in the format appropriate for the language chosen by the user.

Commerce Server provides several Component Object Model (COM) objects for processing date and time values in different languages. These features include:

  • AppFrameWork Object. This object includes several methods for retrieving locale-sensitive date and time values from HTTP requests. These methods are:
    • AppFrameWork.RequestDate
    • AppFrameWork.RequestDateTime
    • AppFrameWork.RequestTime
  • DataFunctions Object. This object includes several methods for converting locale-sensitive date and time strings to their equivalent variant values, and back again. These methods are:
    • DataFunctions.ConvertDateString
    • DataFunctions.Date
    • DataFunctions.ConvertDateTimeString
    • DataFunctions.DateTime
    • DataFunctions.ConvertTimeString
    • DataFunctions.Time

On .NET-based sites, the .NET cultures system provides strong support for these tasks as well. Fore more information, see the .NET Framework Developer's Guide topic "Using the CultureInfo Class."

For more information about these objects, see Core Object Programming Concepts.


Localizing Currencies

On Web sites that support multiple languages, rendered pages must display currency values in the format appropriate for the country/region chosen by the user. Further, the price of any given product needs to be displayable in multiple currencies.

This section contains:

  • Objects for Manipulating Currencies
  • Presenting Product Prices in Multiple Currencies


Objects for Manipulating Currencies

Commerce Server provides several Component Object Model (COM) objects for processing currency values in different languages. These features include:

  • AppFrameWork Object. This object includes a method for retrieving locale-sensitive currency values from HTTP requests. This method is:
    • AppFrameWork.RequestMoneyAsNumber
  • DataFunctions Object. This object includes several methods for converting and formatting currency values. These methods are:
    • DataFunctions.ConvertMoneyStringToNumber
    • DataFunctions.ConvertStringToCurrency
    • DataFunctions.CurrencySymbol
    • DataFunctions.LocalizeCurrency
    • DataFunctions.Money
  • EuroDisplay Object. This object includes several methods for converting locale-sensitive currency strings to their equivalent numeric values, and back again. These methods are:
    • EuroDisplay.ConvertAltStringToCurr
    • EuroDisplay.ConvertBaseStringToCurr
    • EuroDisplay.ConvertMoney
    • EuroDisplay.FormatAltMoney
    • EuroDisplay.FormatBaseMoney
    • EuroDisplay.Initialize

For more information about these objects, see Core Object Programming Concepts.


Presenting Product Prices in Multiple Currencies

An issue related to the display of currencies in Web sites that support multiple languages is the presentation of product prices in different currencies.

As with product text, one alternative is to extend the product catalog schema to allow for the storage of product prices in different properties, one per language. The advantage of this approach is that product prices can be presented in conventional, well-rounded amounts such as $4.95 or ｣9.99. If you adopt this approach, however, you will be offering your products at slightly different prices based on the language chosen by the user, and you will have the burden of maintaining multiple prices per product.

A different strategy involves storing product-pricing information in only one currency, known as the base currency. For example, you can store your prices in U.S. dollars or European euros, and then recalculate prices in other currencies, as needed. This calculation adjusts the price in the base catalog by the exchange rate. When your site displays a price, it calculates the price based on the exchange rate and displays it with the associated currency symbol and display format.

Virtual catalogs are also an option for providing alternate currency pricing. See the topic Viirtual Catalogs for more information.

Important

  • If you store search results and product detail pages in the CacheManager object, you must make the currency part of the cache key or you will retrieve the wrong results when you try to display pricing in a different currency. For more information, see Caching Programming Concepts.
  • You may need to change the currency mode settings within the pipeline configurations to accommodate your choice of locale. More information can be found in the topics Currency Modes, Using the Pipeline Editor Property Pages, and Pipeline Properties.


International Site Development Examples

Before you develop your international site you will need to gather all the requirements for the markets you are going to include. For example, you will need to define the currencies and language settings you plan to include. You will also need to decide on the default language and currency to display, if you are not able to determine the preference for the site user.

Once you have determined all of your requirements, you will be ready to implement the code to meet those requirements. This section provides examples of common development tasks for international sites.

This section contains:

  • Code to Display Shipping Methods for a Particular Language
  • Code to Filter Catalog Data for a Particular Language
  • Code to Set the Language Properties for a User Profile


Code to Display Shipping Methods for a Particular Language

You can use the ShippingMethodManager object to control how shipping methods are displayed on your site. Shipping methods are stored in the ShippingConfig table of the Commerce Server run-time database (for example, Retail_commerce). The general steps for using the ShippingMethodManager object are to first initialize the ShippingMethodManager object and then obtain a list of the supported shipping methods. To retrieve the list of supported methods you call the GetInstalledMethodList method, which generates a SQL query and returns an ADO recordset containing all of the shipping methods in the ShippingConfig table. You can obtain a list of shipping methods for a particular language by appending a WHERE clause to the query that specifies a language_id field. The filter parameter of the GetInstalledMethodList method provides the WHERE clause. The following code example illustrates this concept. The code generates the following SQL query:

SELECT shipping_method_id, shipping_method_name FROM ShippingConfig WHERE language_id= ‘en’
Dim oShipMgr
Dim rstShipInfo
Set oShipMgr = Server.CreateObject(“Commerce.ShippingMethodManager”)
rstShipInfo = oShipMgr.GetInstalledMethodList(“language_id=en”, “”, _
                                              Array(“shipping_method_id”,
                                              “shipping_method_name”))

Note

  • The values for the language_id field are retrieved from the languages.xml file that is installed by default in the <bizdesk>\config directory.

See Also

International Shipping

ShippingMethodManager Object


Code to Filter Catalog Data for a Particular Language

The product catalog provides support for storing language-specific properties. You can retrieve these properties by setting the language setting for an instance of a product catalog before you display the catalog information.

The following code example demonstrates one way of retrieving catalog data for a particular language. The ASP Catalog Sitelet and ASP.NET Catalog Sitelet in the SDK provide a more complete example of how to use the product catalog multilingual support.

Note

  • Searching for Unicode text in a catalog requires a modified syntax. SQL requires that Unicode strings be identified with an "N" prefix. This is a problem in parameter searches as only part of the query is Unicode and Commerce Server cannot automatically supply the prefix. For example, a user requests products that match [ISBN] like "<Kanji string>". The SQL query for this search would contain a string like this "(([ISBN] like ''%Kanji string%''))". This query would not return the wanted results because the Kanji string would not be interpreted as Unicode. Instead, the user needs to specify [ISBN] like N"<Kanji string>" to obtain the wanted results.

The following sample includes an HTML form for selecting a particular language. The Action element for the form posts the form date to the Catman.asp file. The Catman.asp file performs the following operations:

  • Creates an instance of the CatalogManager object
  • Retrieves the catalog named "Adventure Works Catalog"
  • Sets the display language to the language selected in the form
  • Retrieves the products for the "Sleeping Bags" category
  • Displays the descriptions of the products in the "Sleeping Bags" category in the selected language

Form to select the language

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<Form ID="setlang" Action = "catman.asp" Method = "Post">
<SELECT id=select1 name=Lang>
<OPTION value=fr-FR>French</OPTION>
<OPTION value=en-US>English</OPTION>
<OPTION value=de-DE>German</OPTION></SELECT>

<Input Type=submit>
</Form>

</BODY>
</HTML>

Catman.asp

<html>
<body>
<%
dim oCatMan
dim oProdCat
dim oProducts
dim sConnStr
dim sCatname
dim sCatagoryname
dim sLang

'Instantiate Catalog Manager and setup string variables
Set oCatMan = Server.CreateObject("Commerce.CatalogManager")
sConnStr = "Provider=SQLOLEDB.1;Integrated Security='SSPI';Initial Catalog=Retail_Commerce;Data Source=Myserver;Network Library=dbmssocn;"
sCatname = "Adventure Works Catalog"
sCategoryname = "SleepingBags"
sLang = Request.Form ("Lang")

'Initialize the Catalog Manager, set the display language and get some products
oCatMan.Initialize sConnStr, True
Set oProdCat = oCatMan.GetCatalog(sCatname)
oProdCat.Language = sLang
Set oProducts = oProdCat.GetCategory(sCategoryname).Products

'Display the product description
Do While Not oProducts.EOF
  Response.Write oProducts("Description") & "<BR>"
  oProducts.MoveNext ()
Loop

%>
</body>
</html>


Code to Set the Language Properties for a User Profile

One of the first tasks in developing an international site is to decide how you will determine the locale settings preferred by the user. Although there are a number of methods for accomplishing this, one common way is by reading the language and currency properties from the user profile. These two properties are included in the default user profile supplied in Commerce Server. If your site relies on these properties to determine how to display locale-specific content, you will need to mark these as required fields in your user registration form.

Once you have retrieved the preferences for a user from their user profile, you can use these settings to display the appropriate content. The following code example illustrates this concept. The example consists of a simple HTML form for entering a user ID, password, and language preference. The form posts the entered data to an ASP file named Profileexamp.asp. The Profileexamp.asp file instantiates the Profile Service, and creates a new profile with the user ID, password, and language preference entered in the form. The Profileexamp.asp file then retrieves the language setting for the new user profile, and displays it.

Note this code example does not reflect best practices for developing with the Profile objects, and is only provided for illustrative purposes. Error handling has been removed, and instantiating the Profile Service at the page level is not recommended. For a more complete example of how to use the Profile objects, see Profile Sitelet.

Form to enter user information

<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
<TITLE></TITLE>
</HEAD>
<BODY>
<Form ID="setlang" Action = "profileexamp.asp" Method = "Post">
<Input Type= text id=useridin name=userid>User ID</Input><BR>
<Input Type= text id=pwordin name=pword>Password</Input><BR>

<SELECT id=select1 name=Lang>
<OPTION value=fr-FR>French</OPTION>
<OPTION value=en-US>English</OPTION>
<OPTION value=de-DE>German</OPTION></SELECT>
<BR>
<Input Type=submit>
</Form>

</BODY>
</HTML>

Profileexamp.asp

<html>
<body>
<%
dim oProfService
dim oProfile
dim sConnStr
dim sUser
dim sCatagoryname
dim sLang
dim sProfile
dim sUserLang

'Instantiate ProfileService and setup string variables
Set oProfService = Server.CreateObject("Commerce.ProfileService")
sConnStr = "Provider=CSOLEDB;User ID=username;Password=******;Initial Catalog=Retail_Commerce;Data Source=Myserver;"
sLang = Request.Form ("Lang")
sUser = Request.Form ("Userid")
sProfile = "UserObject"

'Initialize the Profile Service, create the profile, and set the language preference
oProfService.Initialize sConnStr
Set oProfile = oProfService.CreateProfile (sUser, sProfile)
oProfile.GeneralInfo.Language = sLang
oProfile.Update
‘Retrieve the profile property you just set and write it out to the client
sUserLang = oProfile.GeneralInfo.Language
Response.Write sUserLang
%>
</body>
</html>

See Also

International Campaigns


Commerce Server Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites provide a significant head start for developing a Web site based on Commerce Server 2002. They provide a highly structured approach to building a Web site that will be easy to extend and maintain once you have gained a sufficient understanding of how the Solution Sites work. The purpose of this documentation is to provide you with the information necessary to achieve that understanding.

This document contains:

  • Solution Sites Overview. Provides a brief overview of the Retail and Supplier Solution Sites, and provides information about how to best use this documentation.
  • Solution Site Features. Describes the features of the Solution Sites from the perspective of someone using them to buy products.
  • Solution Site Infrastructure. Describes several aspects of the infrastructure provided by the Solution Sites code.
  • Site Development Using Solution Sites. Provides information related to using the Solution Sites and modifying them into a production-ready, branded, commercial Web site.
  • Solutions Sites File Organization. Describes the files that constitute the Solution Sites and how they are organized into a hierarchy of folders.
  • Solution Sites Reference. Provides reference material useful when developing commercial Web sites based on the Solution Sites.


Solution Sites Overview

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites provide a starting point for building commercial Web sites that use the functionality provided by Commerce Server 2002. There are two Solution Sites available, the Retail site and the Supplier site.

These sites consist of the same set of files, configured to behave differently. This was done because both types of sites incorporate much of the same functionality, differing only in a few particular ways. Further, this ability to reconfigure the sites provides for the possibility of easily constructing a different type of site that blends the functions of the Retail and Supplier sites.

The Retail site serves as the starting point for building a business-to-consumer Web site. This is a typical internet shopping site, allowing, for example, access by the general public and purchases with credit cards.

The Supplier site serves as the starting point for building a business-to-business Web site. Specifically, the Supplier site models situations such as a business that supplies products to other businesses. The businesses buying the products must be known in advance to the selling business. The Supplier Site includes features that allow for the delegation of some administrative functions to the buying businesses themselves.

This section contains:

  • Solution Sites Common Code Base
  • Retail Site
  • Supplier Site
  • Solution Sites Documentation


Solution Sites Common Code Base

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

As a developer of a Web site based on one of the Commerce Server Solution Sites, it is important that you understand that the Solution Sites are based on the same set of files. Configuration information, known as App Default Config, stored in the Commerce Server Administration database, is responsible for the differences between the sites. Within the script code that generates the HTML for the sites, there are numerous tests of the values in App Default Config, switching particular features on and off, or making more complex decisions between feature choices.

This means that the differences between the Retail Solution Site and the Supplier Solution Site are a matter of a few configuration differences in their respective App Default Config settings, and that one type of site could be changed into the other type of site by making the appropriate App Default Config changes using Commerce Server Manager.

An exception to this rule concerns the Profiling System that is supplied with the Solution Sites. The Supplier site installs a Profiling System that is based on Active Directory, while the Retail site installs a Profiling System that is based solely on SQL Server.

For more information about the App Default Config settings that constitute each of the Solution Sites, see Configuration Settings for Solution Sites. For more information about where the various App Default Config values are tested or otherwise used in the Solution Sites script code, see Use of App Default Config Settings in Solution Sites.


Retail Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Retail site represents a configuration of the Solution Sites common code base that is intended for you to use as the starting point for developing a retail Web site.

For information about the features included in the Retail site, see the Solution Site Features section.

The Retail site differs from the Supplier site in the following respects:

  • Partner Services is disabled in the Retail site, as specified by a setting of zero (0) for the i_DelegatedAdminOptions property of App Default Config.
  • Logging in is not required in the Retail site unless and until a purchase is made, as specified by a setting of six (6) for the i_FormLoginOptions property of App Default Config.
  • The Internet Information Service (IIS) authentication mechanism is configured to allow anonymous access.
  • Credit cards are the only allowed payment option in the Retail site, as specified by a setting of one (1) for the i_PaymentOptions property of App Default Config.
  • Self-registration is allowed in the Retail site, as specified by a setting of one (1) for the i_SiteRegistrationOptions property of App Default Config.
  • In the Retail site, user profile information is stored in a SQL Server database, as specified directly in the Profiling System.

For more information about the configuration settings that make the Retail site different from the Supplier site, see Configuration Settings for Solution Sites.

See Also

Supplier Site

Solution Site Features

Configuration Settings for Solution Sites


Supplier Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Supplier site represents a configuration of the Solution Sites common code base that is intended for you to use as the starting point for developing a site that allows contractual purchasing. The business model for this site is a business that is offering its products to an established set of other business, the latter of which have authorized certain employees to be able to make purchases. In fact, there is a feature, known as Partner Services, through which the administration of the list of authorized employees is delegated to the purchasing companies themselves.

Also note that the Product Catalog System in Commerce Server, using custom catalogs and catalog sets, allows the supplier business to offer custom pricing to different purchasing businesses.

For information about the features included in the Supplier site, see the Solution Site Features section.

The Supplier site differs from the Retail site in the following respects:

  • Partner Services is enabled in the Supplier site, as specified by a setting of one (1) for the i_DelegatedAdminOptions property of App Default Config.
  • Logging in is required in the Supplier site, and authentication is provided through Internet Information Services (IIS) using Basic or Integrated Windows authentication, as specified by a setting of seven (7) for the i_FormLoginOptions property of App Default Config.
  • Both credit cards and purchase order billing are allowed as payment options in the Supplier site, as specified by a setting of five (5) for the i_PaymentOptions property of App Default Config.
  • Self-registration is not allowed in the Supplier site, as specified by a setting of zero (0) for the i_SiteRegistrationOptions property of App Default Config.
  • In the Supplier site, user profile information is stored in Active Directory, as specified directly in the Profiling System.

For more information about the configuration settings that make the Supplier site different from the Retail site, see Configuration Settings for Solution Sites.

See Also

Retail Site

Solution Site Features

Configuration Settings for Solution Sites


Solution Sites Documentation

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

It is strongly recommended that you review all of the topics in the first four sections of this documentation before you begin Web site development based on one of the Commerce Server Solution Sites. It is important that you understand the features implemented by the Solution Sites, key aspects of the Solution Sites infrastructure, and additional information related to site development using the Solution Sites. These sections are:

  • Solution Sites Overview. Provides a brief overview of the Retail and Suppler Solution Sites, and provides information about how to best use the included documentation.
  • Solution Site Features. Describes the features of the Solution Sites from the perspective of someone using them to buy products, and so on.
  • Solution Site Infrastructure. Describes several aspects of the infrastructure provided by the Solution Sites code.
  • Site Development Using Solution Sites. Provides information related to starting with the Solution Sites and customizing them into an actual, branded, commercial Web site.

The last two sections of the documentation are intended as reference material. It is advised that you review the content of these sections before you begin customizing the Solution Sites so that you gain a better understanding of the information provided, and where different types of information can be found. These sections are:

  • Solution Sites File Organization. Describes the files that constitute the Solution Sites and how they are organized into a hierarchy of folders.
  • Solution Sites Reference. Provides reference material that you will find useful when developing your commercial Web sites based on the Solution Sites.

The Routines Reference provides a valuable resource, intended for use when modifying existing pages by changing existing code and when developing new pages. When modifying existing code, the routine topics can help you quickly track down the places where a particular routine is invoked, so that you can consider the full impact of the changes you are making. When creating new pages, the routine topics can help you find existing routines that can be invoked to help build the content for new pages in a manner that is consistent with existing pages. For more information about the functional categories in which these routines are grouped, see Utility Routines for Solution Sites.


Solution Site Features

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites incorporate most of the capabilities of Commerce Server 2002. You use the Solution Sites to build working Web sites that you can customize as needed. Most of the basic features needed for creating a commercial Web site are present in the Solution Sites, such as a shopping basket, a checkout procedure, a product catalog, user profiles, and so on. There are also more advanced features, such as prediction and BizTalk Server integration.

For each such feature, this section describes the implementation of that feature in the Solution Sites, divided into separate discussions of the initialization of the feature, and the browse time execution of the feature (that is, when a user is viewing a Web site page incorporating the feature in their browser).

This section contains:

  • About the Basket Feature for Solution Sites
  • About the Checkout Feature for Solution Sites
  • About the Payment Options Feature for Solution Sites
  • About the Catalog Feature for Solution Sites
  • About the Address Management Feature for Solution Sites
  • About the Login Feature for Solution Sites
  • About the User Tracking Feature for Solution Sites
  • About the Profiles Feature for Solution Sites
  • About the Ads Feature for Solution Sites
  • About the Discounts Feature for Solution Sites
  • About Prediction for Solution Sites
  • About the Customer Service Feature for Solution Sites
  • About the Partner Service Feature for the Supplier Solution Site
  • About the Analysis Integration Feature for Solution Sites
  • About the BizTalk Server Integration Feature
  • Enabling International Features for Solution Sites


About the Basket Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The basket feature involves many parts. It stores a list of items a user has selected to purchase, applies any relevant discounts to product prices, and computes the order subtotal. Users can save shopping baskets so that they can return to the site and purchase the items at a later date.

The following figure shows the basket.asp page workflow.

This figure illustrates the workflow of the basket asp page.

The basket.asp page displays the contents of the user's basket. From the basket.asp page the user can remove a single item, remove all items, change the quantity of a product in their basket, return to the product page, or continue the checkout process through the use of various buttons and links.

The App Default Config settings can be modified to change the user's experience when using the basket feature.

The Add item redirect options property determines the page that is called after users add items to their baskets from the product.asp page. The App Default Config setting for the Add item redirect options property is set to leave users on the product page of the product added to their baskets. The Add item redirect options property can be changed to facilitate other configurations. The following table shows the other configurations for the Add item redirect options property.

Selected Property Value | Friendly Name | Description
0 | REDIRECT_TO_BASKET | Redirects users to the basket.asp page after adding a product to their basket.
1 | REDIRECT_TO_PRODUCT | Leaves the user on the product page of the product that was added to the basket.

For more information about changing the App Default Config settings, see Configuring the App Default Config Resource.

If users have items in their baskets that meet the discount criteria, details on the discount being applied appear in their baskets.

If a user qualifies for a discount, a discount banner may appear at the bottom of the basket.asp page. Some discounts require that the user click the discount banner before the discount is applied; other discounts are automatically applied. Specifying how and when discounts are applied is done in the Campaign Manager module in Commerce Server Business Desk. For more information about the discount banner, see Page Layout Customization for Solution Sites or Creating a Discount.

Initialization

Initialization for the basket feature occurs in the following files:

include\global_main_lib.asp

The InitSitePipelines function is called from the Main subroutine and the returned Pipeline object is set to Application scope as MSCSPipeline.

include\global_siteconfig_lib.asp

The dictPipelines datastructure is used to assign friendly names to the file locations.

Browse Time

The following files display the basket feature:

_additem.asp

Adds the product of a given product ID and variant ID from the given catalog name to the order group. Calls the Analysis_LogAddToBasket subroutine from the include\analysis.asp page. Also calls the ApplyVendorInfo function, which looks up the vendor ID, the vendor qualifier, and the vendor qualifier value for the item. The App Default Config setting for the Add item redirect options property determines if users are sent to the basket.asp page or left on the product page after adding items to their baskets. The default configuration for the Solution Sites leaves users on the product page after they add items to their baskets. The _additem.asp page is called when the Add to Basket button is clicked from the product.asp page.

_delitem.asp

Removes the item at the specified index from the order group. Calls the Analysis_LogRemoveFromBasket subroutine from the analysis.asp page, which removes an item from the user's basket. Returns the user to the basket.asp page, which displays the updated basket. The _delitem.asp page is called when the Remove link is clicked from a line item on the basket.asp page.

_delall.asp

Deletes all the items from the basket. Returns the user to the basket.asp page, which displays the updated empty basket. The _delall.asp page is called when the Remove all link is clicked from the order Subtotal line on the basket.asp page.

_editqty.asp

The user can alter the quantity of any line item by changing the Quantity value and then clicking the Update button. Returns the user to the basket page, which displays the updated order subtotal. This page performs the quantity update by using the Ordergroup object. The _editqty.asp page is called when the Update button is clicked from the basket.asp page.

basket.asp

Displays all the items users have added to their baskets, the quantity of each item, the product code, the product description, the unit price for each item, the total price for each item, the discount applied (if any), a link to remove each item from the order, a link to remove all items from the order, and the order subtotal. The Checkout button at the bottom of the basket.asp page calls either the addrform.asp page or the addrbook.asp page, depending on the App Default Config setting for the Address Book Options property and the user type (registered or anonymous). For more information about the Address Book Options property, see About the Address Management Feature for Solution Sites. The user can reach the basket.asp page at any time by clicking the Basket link from the menu area near the top of the Web page.

See Also

pipeline\basket.pcf

About the Checkout Feature for Solution Sites

About the Payment Options Feature for Solution Sites

About the Catalog Feature for Solution Sites


About the Checkout Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The checkout feature process the order after users have added items to their baskets.

The following figure shows the workflow of the ASP pages involved in the checkout feature.

This figure illustrates the workflow of the ASP pages involved in the checkout feature.

The checkout process begins when the user clicks the Check-out button from the basket.asp page. The default implementations of the Solution Sites have the following page processes:

  1. The basket.asp page calls the address management pages.
  2. Depending on the App Default Config settings pertaining the addressbook feature, users will either enter their bill-to and ship-to addresses on the addrform.asp page or on the addrbook.asp page. The addresses are then set by the _setadrs.asp page, which does not have a user interface.
  3. Users are sent to the pickship.asp page, where they select their shipping method. The shipping method is set by the _setship.asp page, which does not have a user interface.
  4. From the _setship.asp page, the user is redirected to the summary.asp page, where the complete order is displayed for the user to review.
  5. Depending on the App Default Config settings, users will either be redirected to the crdtcard.asp page or the po.asp page to enter their payment information.
  6. On the confirm.asp page users are given order numbers and confirmation that their order was received.

The VerifyWithTotal key is passed between pages in the checkout process to verify that the prices of the items on the orders do not change between the time the products are added to the orders and the time when users actually submit their credit card numbers and when baskets are saved as orders. For example, if the price of an item changed between the time the item was added to a user's basket and the time the order was submitted, the VerifyWithTotal key would display an error message.

Initialization

Initialization for the checkout feature occurs in the following files:

include\global_siteconfig_lib.asp

Included in the global.asa file. The dictPipelines datastructure is used to assign friendly names to the file locations.

Browse Time

The following files display the checkout feature:

addrbook.asp

Allows users to add, delete, or edit addresses from their address books, and to select the shipping and billing address for their current orders. Used only if the App Default Config setting for the Address Book Options property enables the address book. The Select Address button on the addrbook.asp page calls the pickship.asp page.

crdtcard.asp

Displays the page for specifying credit card information. The Submit button calls the crdtcard.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page. The crdtcard.asp page is called when the Check-out button on the summary.asp page is clicked. The crdtcard.asp page can also be reached from the po.asp page if purchase orders are enabled in the App Default Config settings.

confirm.asp

Displays an order number and confirmation that the order was received. For credit card payments, this page is called when the Submit button on the crdtcard.asp page is clicked. For purchase orders, this page is called when the Submit button on the po.asp page is clicked. The Submit button calls the crdtcard.asp page or the po.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

include\payment.asp

Contains functions used on payment feature pages.

pickship.asp

Enables users to select a shipping method. The Check-out button calls the summary.asp page. The pickship.asp page is called when the Select Address button on the addrbook.asp page is clicked.

po.asp

Displays the page for entering the purchase order number in the PO # box. The Submit button calls the po.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

summary.asp

Displays the billing address, shipping address, items ordered, order sub-total, shipping charges, handling charges, tax, and order total. The Check-out button calls the crdtcard.asp page. The summary.asp page is called by the Check-out button on the pickship.asp page.

See Also

About the Address Management Feature for Solution Sites

About the Payment Options Feature for Solution Sites


About the Payment Options Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites have two payment options, credit card payment or purchase orders. The Retail site is configured to enable credit card billing only and the Supplier site is configured to enable purchase orders only. Either of these sites can be configured to enable credit card billing, purchase orders or both.

You use the crdtcard.asp page to enter credit card information, and the po.asp page to enter purchase order information.

The following figure shows the workflow of the crdtcard.asp page.

This figure illustrates the workflow of the crdtcard.asp page.

After the user clicks the Check-out button from the summary.asp page, the crdtcard.asp page is called, which displays a page for editing credit card payment information.

If the Reset button is clicked from the crdtcard.asp page, the form is reset to its original values. If the Submit button, located next to the Reset button, is clicked the crdtcard.asp page is called where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

On the crdtcard.asp page, the Other Payment Options box lists all the payment options for the user. In the default configuration of the Retail site, the only option listed is Credit Card. In the default configuration of the Supplier site, both Credit Card and Purchase Order are listed. Either of these configurations can be changed to enable credit card payment, purchase orders, or both, by changing the App Default Config setting for the Payment options property.

The App Default Config setting for the Payment options property is set to enable credit card billing only on the Retail site, and purchase orders only on the Supplier site. The Payment options property can be changed to facilitate other configurations, as shown in the following table.

Selected Property Value | Friendly Name | Description
1 | CREDIT_CARD_PAYMENT_OPTION | Default setting. Enables credit card billing only.
4 | PURCHASE_ORDER_PAYMENT_OPTION | Enables purchase order billing only.
5 | CREDIT_CARD_PAYMENT_OPTION BitOr PURCHASE_ORDER_PAYMENT_OPTION | Enables credit card and purchase order billing.

For more information about changing App Default Config settings, see Configuring the App Default Config Resource.

The payment option is one part of the checkout feature. For more information about the checkout feature, see Checkout.

Initialization

Initialization for the payment feature occurs in the following files:

include\global_creditcards_lib.asp

Initializes credit card payment information. Included in the global.asa file.

include\global_forms_lib.asp

Contains functions used to retrieve form and field definitions, and profile attributes. Included in the global.asa file.

include\global_siteconfig_lib.asp

The payment pages are assigned friendly names by the GetSitePages function.

Browse Time

The following files display the payment feature:

confirm.asp

Displays an order number and confirmation that the order was received. For credit card payments, this page is called when the Submit button on the crdtcard.asp page is clicked. For purchase orders, this page is called when the Submit button on the po.asp page is clicked. The Submit button calls the crdtcard.asp or po.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

crdtcard.asp

Displays the page for editing credit card information. Called when the Check-out button on the summary.asp page is clicked on the Retail site. The Submit button calls the crdtcard.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

include\payment.asp

Contains functions used on payment feature pages and runs the checkout pipeline file, checkout.pcf.

po.asp

Displays the page for entering the purchase order number in the PO # box. The Submit button calls the po.asp page where the checkout pipeline is run and validated, the order is submitted to BizTalk Server (if BizTalk Server integration is enabled in the App Default Config settings), the basket is saved as an order, and finally the user is redirected to the confirm.asp page.

See Also

About the Checkout Feature for Solution Sites


About the Catalog Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

A catalog is a way of organizing the products you want to sell. The Solution Sites provide a mechanism for browsing and searching through single or multiple Commerce Server catalogs. They also allow users to view detailed information on an individual product and provide a link so users can add the product to their baskets.

Both the Retail and Supplier Solution Sites are packaged without any catalogs installed. None of the catalog-related features of the Solution Sites will work until a catalog is either created or imported for the application through Commerce Server Business Desk. You can use a sample catalog, which is provided in the Commerce Server SDK, if you do not have a catalog from which to work. The sample catalog is an XML file.

The topic 的mporting an XML Catalog File� in Commerce Server 2002 Help explains how to import the AdvWorks.xml catalog file. The full path to this file is \<Computer Name><Drive>\Program Files\Microsoft Commerce Server 2002\SDK\Samples\Auction\AdvWorksCatalog.xml. Copy this file to the root folder of your computer to make it easier to import.

The Solution Sites rely heavily on caching to improve performance in the catalog. See Catalog Caching for more information about caching catalog data.

Note

  • The catalog pages were written assuming that every product in the catalog has a property called name. The Commerce Server catalog system does not enforce this.

The Solution Sites use the Commerce Server Catalogset object to determine which catalogs are available to a user. The Solution Sites distinguish between a catalog set for anonymous users and a catalog set for authenticated users. Catalog sets are managed through Business Desk.

Initialization

Initialization for the product catalog feature occurs in the following files:

include\global_catalog_lib.asp

The Main subroutine calls three functions in this file to initialize three application variables for the catalog feature. The InitCatalogManager function is called and the returned CatalogManager object is set to Application scope as MSCSCatalogManager. The dictGetCatalogAttributes function is called and the returned dictionary is set to Application scope as MSCSCatalogAttribs. This dictionary is used as a cache for the CatalogManager object properties. The InitCatalogSets function is called and the returned dictionary is set to Application scope as MSCSCatalogSets.
See Caching Solution Sites for information about initialization of the catalog caches.

Browse Time

The user locates products through the search and browsing catalog features. The menu pane provides two types of search features, full-text search and specification search. Both the template\menu.asp and default.asp pages display either a list of searchable categories if there is only one catalog, or a list of catalogs if there is more than one catalog. Either page can be used as a starting point for browsing the application. Most of the browse-time catalog functionality is in the include\catalog.asp file.

Catalog Search Features

The following files display the catalog search features:

template\menu.asp

The htmRenderSearchSection function creates a text box, a search button, and a link to Advanced search. When the user clicks the search button, the user is redirected to the search.asp page with the contents of the text box posted to that page. When the user clicks the Advanced link, the user is redirected to the srchdept.asp page.

search.asp

The bFullTextResultsAreCached function checks for a cached result for the query text. If there is no cached result, the rsFreeTextSearch function constructs a query for the MSCSCatalogManager.FreeTextSearch method and returns a recordset of the results. The RenderSearchResults function converts the recordset into HTML. The CacheFragment function caches the rendered page.

srchdept.asp

This page selects the category that will be searched. Specification searches are limited to a single category.
The bIsSearchDeptPageCached function checks for a cached page with the catalog set for the user. If there is not a cached page, the arrSearchDept function creates an array of strings; each string is a catalog name separated from a category name by an arbitrary string token. The htmRenderSearchDeptPageContent function renders this array as a list of links to the stepsrch.asp page. Each link contains the catalog and category data for the search.

stepsrch.asp

This page implements the specification search for the catalog and category selected on the srchdept.asp page. When the number of matches is less than the value of the SEARCH_THRESHOLD constant, or the user has previously pressed the View Results button, the matches will be listed; otherwise the page displays a list box for each searchable property in the category. Each list box will list all the values for that property in the category. Users can click the View Results button to display the list or the users can refine their search by changing the values selected.
The PrepareSpecificationSearch function builds the query from the user's selections on the page. The first time the page is displayed there is no user input, so a search is performed with an empty specification search clause. This returns the number of items and the properties and values in the category. When the search is refined the user's selections are posted to this page and the search is run again. The search results are rendered by the htmRenderStepSearchPageContent function.

Catalog Browse Feature

The following files display the catalog browse feature:

template\menu.asp

The PrepareCatalogSection function returns a recordset of the catalogs available to the user and the number of catalogs in the recordset. The htmRenderCatalogSection function tests for the number of catalogs available to the user. If there is only one catalog it displays a list of the root categories in the catalog. If there are multiple catalogs it displays a list of the catalogs. In either case the links in the list take the user to the category.asp page.

default.asp

The mscsUserCatalogsetID function returns the CatalogSetID variable. This is used as a key for the page cache. If there is not a cached copy of this page the PrepareDefaultPage function uses the CatalogSetID variable to retrieve a recordset of the catalogs available to the user. The htmRenderDefaultPage function tests for the number of catalogs in the rsCatalogs recordset. If there is only one catalog it calls the htmRenderCategoryPage function to display a list of the root categories in the catalog, and if the number of categories is below a threshold, adds subcategories and products to the list. If there are multiple catalogs it calls the htmRenderCatalogList function to display a list of the catalogs. Each catalog or category is displayed on the page as a link that takes the user to the category.asp page.

category.asp

This page displays lists of category or product links. The FetchCategoryData subroutine sets several page level variables from the Request object's QueryString property, primarily the catalog and category names. The page obtains the Catalog object from the CatalogManager object and calls the mscsGetCategoryObject function to get the Category object. It calls the mscsGetProductList function to get a recordset of the products in the category. This function supports paging, so it will return a subset of all the products, depending on user input.
The htmCategoryHTML function generates the HTML for the page from the data from the previous functions. This function will display all the subcategories and products in the category. A category will typically contain only subcategories or products, but not both. The subcategories will be displayed as links to the category.asp page, which will display the subcategory. The products will be displayed as links to the product.asp page.

product.asp

This page displays product details. The page uses calls to the GetRequestString function to retrieve the productID and variantID from the Request object's QueryString property. After checking the cache, the page gets the Catalog object from the MSCSCatalogManager object, and then the Product object from the Catalog object. The page calls methods on the Product object to get a recordset of product properties and a recordset of variants. The page renders the product properties as an HTML fragment in the htmProduct variable. It calls the RenderForm function to build an HTML form containing the list of variants (if available), hidden text defining the product, a text box for the quantity and an Add to Basket button. The HTML fragments are concatenated into the htmPageContent variable. When the user enters a quantity into the text box and clicks the Add to Basket button the form is submitted to the _additem.asp page.

See Also

include\catalog.asp


About the Address Management Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Storing user's addresses allows for a better repeat-shopper experience. Registered users can store numerous addresses in the address book feature of the Solution Sites if the address book feature is set for read and write access in the App Default Config settings. The address book feature stores addresses that can be used as ship-to or bill-to addresses. The addresses are entered on the newaddr.asp page when the address book feature is enabled. These addresses are available whenever registered users login to the Web site in the future.

For Web sites that have the address book feature enabled with read-only access, registered users can select from a list of previously entered addresses, but they may not add new addresses or modify existing addresses.

For Web sites that do not have the address book feature enabled, and for anonymous users, addresses are not stored for future use. These users must enter their bill-to and ship-to information every time they place an order on the addrform.asp page.

The following figure shows the workflow of the addrbook.asp page.

This figure illustrates the workflow for the addressbook.asp page.

For users that have read and write access to their address books, after the Check-out button is clicked on the basket.asp page, the addrbook.asp page is called, which displays a list of all the addresses in the address book for the user. If users have addresses stored in their address books, they can select one of the addresses from the address book by selecting one of the radio buttons, or they can add a new address by clicking the link Click here to add an address.

If the radio button for an existing address is selected and the user clicks the Select Address button, the pickship.asp page is called. If the user clears the check box indicating that the billing address is the same as the shipping address, and instead clicks the Select Address button, the addrbook.asp page is called again so the user can select the bill-to address.

If the Edit link is clicked, the newaddr.asp page is called, which enables users to edit their selected addresses.

If the Delete link is clicked the newaddr.asp page is called, the address is removed, and the user is immediately redirected to the updated addrbook.asp page.

Users with no addresses stored in their address book only have one option—to click the Click here to add an address link to add a new address. If the user clicks the Click here to add an address link, the newaddr.asp page is called. After the user enters the new address information and clicks the Submit button, the addrbook.asp page appears with the new address.

For users that have read-only access to their address books, after the Check-out button is clicked on the basket.asp page, the addrbook.asp page is called, which displays a list of all the available ship-to addresses in the address book for the users. Users can select one of these addresses by selecting one of the radio buttons. These users do not have the ability to edit, delete, or add a new address to their address books.

For users that do not have the address book feature enabled, after the Check-out button is clicked on the basket.asp page, the addrform.asp page is called. The addrform.asp page displays an empty form in which users must enter their ship-to and bill-to addresses. When the Submit button is clicked, the user is redirected to the pickship.asp page after validation of the address.

The App Default Config setting for the Address Book Options property is set to enable the use of the address book. The Address Book Options property can be changed to facilitate other configurations. The following table shows the available configurations.

Selected Property Value | Friendly Name | Description
0 | ADDRESSBOOK_DISABLED | Disables the use of the address book.
1 | ADDRESSBOOK_READONLY | Read-only access. Users can select from a list of existing addresses, but cannot add new addresses. This is useful for companies that have a predefined list of approved delivery addresses.
2 | ADDRESSBOOK_READWRITE | Read-write access. Users can add and modify the addresses in their own address books.

For more information about changing App Default Config settings, see Configuring the App Default Config Resource.

Initialization

Initialization for the address management features occur in the following file:

include\global_siteconfig_lib.asp

The address book pages are assigned friendly names by the GetSitePages function.

include\global_addressbook_lib.asp

Contains functions and form definitions used by the address management pages. Contains commented code that illustrates how to use alternative address formatting to accommodate international addresses.

Browse Time

The following files display the address management features:

addrbook.asp

Displays the page representing the user's addressbook. Called when the Check-out button is clicked from the basket.asp page if the user is a registered user. The App Default Config value for AddressBookOptions is set to ADDRESSBOOK_READONLY or ADDRESSBOOK_READWRITE.

addrform.asp

Displays a form for users to specify their addresses. Addresses entered on this page are not added to an address book collection. After the address is validated, the address is saved to the order group and the users are redirected to the summary.asp page. Called when the Check-out button is clicked from the basket.asp page if the users are anonymous or if the App Default Config value for AddressBookOptions is ADDRESSBOOK_DISABLED.

newaddr.asp

Displays the page for adding a new address to the user's address book. Called when the Click here to add an address, Edit, or Delete links are clicked from addrbook.asp page.

_setadrs.asp

Takes an address selected from the address book and saves it to the OrderGroup object. Redirects the user to the summary.asp page.

See Also

include\form_lib.asp

About the Checkout Feature for Solution Sites


About the Login Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in the Login Folder provide most of the functionality of the login/logoff process.

Initialization

Initialization for the login feature occurs in the following file:

include\global_main_lib.asp

This file initializes the AppConfig object, which provides access to the Form login options property of the App Default Config Site resource in Commerce Server Manager. The login option constants are defined in the AppConsts 1.0 Type Library.
The following table lists the login options.
Login Option | Value | Description
FORM_LOGIN_NOT_SUPPORTED | 0 | Login is not supported.
FORCE_LOGIN_ON_ENTRANCE | 1 | Login is required to enter the site.
LOGIN_OPTIONAL_ON_ENTRANCE | 2 | Login is optional on entering the site.
FORCE_LOGIN_ON_PURCHASE | 5 | Login is required at the time of purchase (when a user visits a page in the Purchase pageset).
LOGIN_OPTIONAL_ANY_TIME | 6 | Login is optional at any time. This is the default for the Retail site.
USE_IIS_AUTH | 7 | Authentication is through Internet Information Services (IIS) using Basic or Integrated Windows authentication. This is the default for the Supplier site.

Browse Time

The following files display the login feature:

login\login.asp

The login form is rendered and validated using routines from the include\form_lib.asp file. As with other pages that use this library, the login form acts as both a form presentation page and a form acceptor page. On initial access, the page is rendered with an empty login form. On submittal, validation and (potentially) login occurs.
The login form is displayed using the template\no_menu.asp file. It contains User name and Password input text boxes. Additionally, if the user is anonymous and the login option is LOGIN_OPTIONAL_ON_ENTRANCE, a link to entering the site as an anonymous user (login\_guest.asp) is displayed. If registration is enabled on the site, a link to the registration page (login\newuser.asp) is rendered.
The following figure shows a sample login page for a site with registration enabled, and with the login option equal to LOGIN_OPTIONAL_ON_ENTRANCE. The user supplied invalid login credentials, which resulted in the red warning message.

Validation
This page first determines whether the login option is FORM_LOGIN_NOT_SUPPORTED or USE_IIS_AUTH. If either one, the user is immediately redirected to the home page (default.asp), as login is not logical in this context. By default, the login option for the Supplier site is USE_IIS_AUTH. Thus, form login is disabled for the Supplier site and the following discussion in not applicable.
For all other login options, whether the page was posted or submitted is determined, and a test session cookie is written.
When the user submits the login form, the profile associated with the user is retrieved and used to validate the password (ValidateSubmittedLoginData). If the user does not have a profile or the password is not valid, the login form is redisplayed with a warning message. If the password is valid, the registered user ID is retrieved from the profile.
Post-validation
If the user is shopping as an anonymous user and then decides to register (or was forced to register because the login option equals FORCE_LOGIN_ON_PURCHASE), the contents of the user's basket are transferred to a new basket associated with the registered user ID (MoveBasketItems).
If the user allows session cookies, both Auth and Profile tickets are set in individual cookies. The Auth ticket is set to indicate the user is a logged in registered user. The Profile ticket is set so that when the user starts a new browser session, the same user ID is used (since this is only a Profile ticket, the user is not logged in). The site recognizes that the user ID is associated with a registered account and takes the user to the welcome back page where they can log in again. If the site is part of a Web farm, the date the profile for the user was last changed is set into a cookie. For more information, see About the Profiles Feature for Solution Sites.
If the user does not allow session cookies, an Auth ticket is set into a URL query string. A Profile ticket is not set since it would be unavailable when the user starts a new browser session. There is no need to set the date the profile for the user was last changed since, with cookies disabled, the profile for the user is automatically retrieved from the Profile store.
Finally, upon successful login, the user is redirected to the home page.

login\newuser.asp

This page is build to be self-posting and validating. On initial access, the page is rendered with an empty registration form. On submittal, validation and (potentially) profile creation and login occurs.
The registration process is similar to the login process. If registration is not supported on the site or the login option is either FORM_LOGIN_NOT_SUPPORTED or USE_IIS_AUTH, the user is immediately redirected to the home page.
For all other cases, whether the page was posted or submitted is determined, and a test session cookie is written. The registration form is displayed using the template\no_menu.asp file and contains User name, Password, and Confirm password input text boxes.
When the user submits the registration form, the submitted user name is checked against previous registered users to determine if the user name already exists (iValidateSubmittedRegistrationData). If it does, or if the password is syntactically invalid or does not match the confirmation password, the page is redisplayed with a warning message.
If you modify the code to change the minimum/maximum password and user name requirements, the Business Desk and Partner/Customer Services sections of the site must be updated to match.
Upon successful submission, if the user had a previous anonymous profile, it is changed to registered profile (mscsTransferGuestUserProfile). If not, a new profile is created and marked as a registered profile (mscsNewRegisteredUserProfile).
If the user allows session cookies, both Auth and Profile tickets are set in individual cookies. If the user does not allow session cookies, only the Auth ticket is set into a URL query string. For more information, see the discussion in the previous section (login\login.asp).
Finally, upon successful registration, the user is redirected to the home page as a new user.

login\_guest.asp

This page redirects the anonymous user to the home page. If the user already has an Auth ticket, it is removed (effectively logging the user out). If profiling is allowed on the site, a new profile is created for the anonymous user (GetNewGuestUserProfile). Either way, a user ID is generated and set into a Profile ticket.

login\logoff.asp

Running this page logs a user off your site. Depending on the login mode and the browser, the user may have to perform additional steps to be completely and safely logged off your site. This page can also offer links to re-login, register as a new user, or enter the site as a new anonymous user, as appropriate.

See Also

Page-Level Access Control for Solution Sites

About the Profiles Feature for Solution Sites

About the User Tracking Feature for Solution Sites

Global Constants


About the User Tracking Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Users of a Web site are classified by user type and access type, and tracked through the use of a unique user ID (anonymous and authenticated users only). Profiles may be associated with users depending on site configuration settings. When a user visits a page, the GetUserInfo subroutine in the file include\setupenv.asp retrieves the user ID and sets the user type and access type. This information is used to determine whether page access is allowed. For more information about page access, see Authentication. The user ID is written to the Web server log file and used to identify the user by the Commerce Server Business Analytics System.

The following table lists the user types. This value is stored in the m_UserType variable.

User Type | Value | Description
ANON_USER | 1 | An anonymous user. The user is unidentified, does not have a ticket, and is not tracked (is not recognized on return visits).
GUEST_USER | 2 | An anonymous user. The user has not registered but has a GUEST_TICKET. The user may or may not have a profile depending on site options. The user is tracked during the current session and, if cookies are enabled on the client and the site, the user is tracked between sessions.
AUTH_USER | 4 | An authenticated user. The user is registered, authenticated (access type equals either IIS_AUTH or TICKET_AUTH), and is tracked.

The following table lists the access types. This value is stored in the m_UserAccessType variable.

Access Type | Value | Description
GUEST_VISIT | 1 | A visit by a GUEST_USER authenticated using the AuthManager object and a GUEST_TICKET.
IIS_AUTH | 2 | A visit by an AUTH_USER authenticated to Internet Information Services (i_FormLoginOptions = USE_IIS_AUTH) using either Basic or Integrated Windows authentication.
TICKET_AUTH | 3 | A visit by an AUTH_USER authenticated using the AuthManager object and an AUTH_TICKET.
ANON_VISIT | 5 | A visit by an ANON_USER.

The Retail site stores the user ID in a ticket, which is a set of property name/value pairs placed in a cookie (if cookies are enabled on the client and the site) or a URL query string (URL mode). The user ID is also stored in the profile of the user if profiling is enabled. For more information about tickets, see Authentication Tickets.

The following table lists the two ticket types, their values, the ticket names (cookie/URL key name), and the constants defined for the ticket names.

Type | Value | Name | Name Constant | Description
GUEST_TICKET | 1 | MSCSProfile | GUEST_TICKET_NAME | A ticket for an anonymous user, which contains a unique user ID.
AUTH_TICKET | 2 | MSCSAuth | AUTH_TICKET_NAME | A ticket for an authenticated user, which contains a unique user ID, the last login time for the user, and a time window of validity.

The user ID is written to the Web server log file either as part of the cookie or the URL query string. The Commerce Server Business Analytics System retrieves the user ID from the cookie when the Web log file is imported by the Web server log file Data Transformation Service (DTS) task. If URL mode is enabled, users may not be correctly identified and several Analysis reports may be incorrect. A PERL script is available that pre-processes the Web log file so that the user ID is correctly imported when using URL mode. For more information about obtaining the PERL script, see the Commerce Server Web site.

The following table lists the constants, used for the iSiteTicketOptions property of the App Default Config resource, that determine whether the site uses cookie or URL mode to store the ticket. If the site is set to use cookie mode but cookies are disabled on the client, the site uses URL mode.

Type | Value | Description
PUT_TICKET_IN_URL | 1 | Uses URL mode.
PUT_TICKET_IN_COOKIE | 2 | Uses cookie mode.

The following table lists the constants that determine where the AuthManager object places the ticket.

Type | Value | Description
WRITE_TICKET_TO_COOKIE | -1 | Writes the ticket to a cookie.
WRITE_TICKET_TO_URL | 0 | Writes the ticket to a URL query string.

The previous constants are defined in the AppConsts 1.0 Type Library.

The Supplier site uses Internet Information Services (IIS) authentication. In this mode, the user name is stored in the AUTH_USER variable of the ServerVariables collection of the Request object. The user name is used to retrieve the profile of the user, which contains the user ID.

Initialization

Initialization for the User Tracking feature occurs in the following file:

include\setupenv.asp

This file calls the GetAuthManagerObject function in the include\std_access_lib.asp file to create the AuthManager object, which is used to set and retrieve the tickets in the Retail site.

Browse Time

The following files are used for User Tracking:

login\_guest.asp

login\login.asp

login\newuser.asp

The ticket is set into either a cookie or a URL query string by routines in these files and by the EnsureAccess subroutine.

include\std_access_lib.asp

The user ID is retrieved from the ticket or the ServerVariables collection by the GetUserInfo subroutine in this file. If the user has both a GUEST_TICKET and an AUTH_TICKET, the AUTH_TICKET takes precedence.

include\std_url_lib.asp

The ticket location is retrieved by the GetTicketLocation function in this file.

See Also

About the Profiles Feature for Solution Sites

Page-Level Access Control for Solution Sites

About the Login Feature for Solution sites

Global Constants

AuthManager Object


About the Profiles Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

A profile is a set of characteristics that define a business-related entity. The Solution Sites use UserObject, Organization, and Address profiles. The UserObject profile contains personal information about the user, logon credentials, and catalog set information. For the Retail Solution Site, profiles are stored in a SQL Server database. For the Supplier Solution Site, an Active Directory store is also used. The storage locations are collectively referred to as the Profiles store.

The Solution Sites have a feature called Customer Services that allows registered users to view and modify their own profile. The Solution Sites can also expose a feature called Partner Services that allows delegated administrators of an organization to manage the profiles of members of their organization.

In the Retail site, all registered users have a profile. Whether anonymous users have profiles is optional; however, this feature is enabled by default. To disable anonymous user profiling, set the Site privacy options (i_SitePrivacyOptions) property to 2 (TRACK_GUEST_VISITS) in the App Default Config Site resource in Commerce Server Manager. This property is checked before creating any new anonymous profiles (GetNewGuestUserProfile).

The Supplier site only allows registered users, so each user and organization must have a profile. Typically, the site administrator creates the Organization profile and a UserObject profile for a delegated administrator through Commerce Server Business Desk. The delegated administrator then creates the profiles for members of the organization.

Web farm issues

In a Web farm scenario, each server provides a local profile cache. The value of the user's profile (UserObject profile) in a particular cache can become outdated if the profile was changed on a different server. In order for the server to recognize that the user's profile has changed, a last updated timestamp is set in both the user's profile (in the Profiles store) and in a cookie for the user, when the profile is created and updated (UpdateUserProfile).

When a user visits a server in the Web farm, the timestamp in the profile in the local cache is checked against the timestamp in the cookie (GetCurrentUserProfile). If they are not equal, the profile is retrieved from the Profiles store (using the GetInfo method of the IADs interface), bypassing the local cache. If cookies are not enabled, the cache is always bypassed, because there is no reliable way of tracking the last updated time due to Back button, page refresh, and other issues.

The lookup of Address profiles always bypasses the cache because they are accessed infrequently and there is potentially a large number of these profiles to track. Organization profile lookups bypass the cache on an as-needed basis depending on the likeliness of the data in the profile changing.

Even with the timestamp solution, there are potential cache coherency issues with the profiles. For instance, if a user's profile, which is currently cached, is changed from the Business or Partner Desk on a different computer by a different user, the sites will not know that the cache is out of date. To mitigate this, the Solution Sites call the GetInfo method upon login. If this level of accuracy is not acceptable, the Solution Sites include the m_iGlobalProfileLookUpOption variable, declared in the file include\setupenv.asp, which when set always forces a GetInfo method call to retrieve the profile from the Profiles store.

Initialization

Initialization for the profiling feature occurs in the following files:

include\global_data_lib.asp

The BusinessDataAdmin object is created, connected to the Profiles store, and returned by the oGetBizDataObject function defined in this file.

include\global_profile_lib.asp

The ProfileService object is created, initialized, and returned by the InitProfileService function in this file. To increase performance, all the properties of all the profile types are put into a global Dictionary object by the dictGetProfileSchemaForAllProfileTypes function. The properties are obtained by parsing the XML Data Reduced (XDR) schema for the profiles.

include\global_siteconfig_lib.asp

The IsActiveDirectoryPresent and sGetActiveDirectoryDefaultNamingContext functions in this file parse the XML Data Reduced (XDR) schema for the UserObject profile. The IsActiveDirectoryPresent function checks whether the ParentDN property is set on the profile to determine if Active Directory is used to store part of the profile. The Profiling System allows other means to signify that Active Directory is used. If using one of these alternatives, the Solution Sites need to be correspondingly modified. For more information, see "Managing Pre-existing Accounts in Active Directory Stores" in the Commerce Server Resource Kit. If Active Directory is used, the sGetActiveDirectoryDefaultNamingContext function retrieves the Active Directory domain name.

include\global_main_lib.asp

Whether the Profiling System uses Active Directory is given Application scope as a Boolean variable named MSCSProfileServiceUsesActiveDirectory. If the IsActiveDirectoryPresent function returns True, the Active Directory domain name is set to Application scope as MSCSActiveDirectoryDomain.
The Dictionary object containing all the profile properties is given Application scope as MSCSProfileProperties.
The InitProfileService function is called and the returned ProfileService object is given Application scope as MSCSProfileService.

include\std_profile_lib.asp

This file supplies routines to create a new profile, retrieve and update a current profile, check whether the user has a profile, and whether profiling is enabled on the site. This file also provides the Web farm support.

services\include\check_profile.asp

services\include\delete_profiles.asp

services\include\get_profiles.asp

services\include\profiles_common.asp

services\include\save_all_profiles.asp

services\include\save_one_profile.asp

These files provide common routines for use in Customer and Partner Services.

Browse Time

Users have direct interaction with the Profiling System through the following files:

addrbook.asp

This file allows users, depending on the user type and site options, to view and edit their address book (Address profiles).

newaddr.asp

This file allows users, depending on the user type and site options, to add a new address to their address book.

login\_guest.asp

This file allows a user to enter the site as an anonymous user and creates an associated anonymous profile.

login\newuser.asp

This file allows the user to register with the site. If the user has an anonymous profile, it is changed to a registered profile. If the user does not have an anonymous profile, a new registered profile is created.

services\customer\account.asp

This file allows registered users to view and change their own profile through Customer Services.

services\partner\account.asp

Using the Partner Services feature, this file allows users who are delegated administrators for their organization to view and modify the profile of their organization.

services\partner\users.asp

Using the Partner Services feature, this file provides a list of users who are members of an organization. Delegated administrators can select profiles to view, modify, or delete from this list, or create new member profiles.

services\partner\edit_user.asp

Using the Partner Services feature in the Supplier site, this file allows users who are delegated administrators for their organization to manage the profiles of members of their organization.

See Also

About the Address Management Feature for Solution Sites

Page-Level Access Control for Solution Sites

About the Login Feature for Solution Sites

About the User Tracking Feature for Solution Sites

About the Customer Service Feature for Solution Sites

About the Partner Service Feature for the Supplier Solution Site

Profiling System Objects


About the Ads Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The advertising feature displays advertisements to users based on the properties in the user's profile, and the Need of Delivery (NOD) for the advertisement.

Advertisements are placed in the banner slot located along the top of the Web pages. Through Commerce Server Business Desk you can configure the advertisement's properties, schedule, target audience, and display.

Initialization

Initialization for the advertising feature occurs in the following files:

include\global_csf_lib.asp

Initializes the Content Selection Framework (CSF), and creates the global context for CSF advertisements.

include\global_cache_lib.asp

Creates and configures the advertising cache.

include\global_siteconfig_lib.asp

Creates a PageSet of pages on which advertisements can be shown.

Browse Time

The following files display the advertising feature:

template\banner.inc

Called by the file template\layout1.asp or template\no_menu.asp. Checks to see if the current page is in the advertising PageSet, as configured on the global_siteconfig_lib.asp page. If the page is in the advertising PageSet it displays the winning ad.

template\layout1.asp

Provides the HTML display layout for a Web page with a menu, navigation bar, advertising banner, discount banner, and footer.

template\no_menu.asp

Provides a basic HTML display layout for a Web page without a menu, navigation bar, or footer.

See Also

Campaign Caching for Solution Sites

Advertising.PCF

About the Basket Feature for the Solution Sites

Page Layout Customization for Solution Sites


About the Discounts Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The discount feature displays discounts to users based on user profile properties, items that are in the user's basket, the product the user is viewing, or other properties.

There are two types of discount displays—the discount banner display and the discount information in the user's basket.

In the Solution Sites implementation, discount banners are placed on the bottom of a Web page. The discounts can be automatic or click-required. Click-required discounts require that the user click the discount banner to receive the discount. Automatic discounts do not require any user interaction; the discount is automatically applied to the user's basket.

Discount information that you want to include in the user's basket is displayed on the basket.asp page. When the user receives a discount the basket.asp page automatically adds two columns to the basket table. One column lists the discount in a price value; the other column lists any messages associated with the discount.

Initialization

Initialization for the discount feature occurs in the following files:

include\global_csf_lib.asp

Initializes the Content Selection Framework (CSF), and creates the global context for CSF discounts.

include\global_cache_lib.asp

Creates and configures the discount cache.

include\setupenv.asp

This file is used to set up environment variables and retrieve information about the user.

Browse Time

The following files display the discount feature:

template\discount.asp

Selects and renders discount banners.

basket.asp

Includes the template\discount.asp page and calls its RenderDiscounts function, storing the results in the htmDiscountBanner variable. The basket.asp page also displays the price reduction associated with any applied discounts and a discount message.

product.asp

Includes the template\discount.asp page and calls its RenderDiscounts function storing the results in the htmDiscountBanner variable.

redir.asp

Handles click-throughs and other events on marketing campaign items. It invokes a pipeline that records the events in memory and to the Internet Information Services (IIS) log file.

summary.asp

Computes the discounts and displays the adjusted prices in addition to the bill-to address, ship-to address, the basket, and the order total.

template\layout1.asp

Calls the Response.Write function on the htmDiscountBanner variable, which is populated in the Main function on pages that want to display discount banners.

See Also

About the Basket Feature for the Solution Sites

Discounts.PCF

Page Layout Customization for Solution Sites


About Prediction for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The prediction feature recommends products to a user based on items in the user's shopping basket. The Solution Sites use the PredictorClient object to make these recommendations.

Initialization

Initialization for the prediction feature occurs in the following files:

include\global_predictor_lib.asp

The PredictorClient object is created in the InitPredictor function of this file and used to load the Transaction prediction model, which is supplied with Commerce Server, from the Data Warehouse. Two prediction properties, fpPopularityPenalty and fpDefaultConfidence, are set in this file.
In development mode, the bFailOnUnknownInputAttributes property may be set to True by uncommenting a line of code. With this property set, a run time error is generated if any of the input attributes are not recognized.

include\global_main_lib.asp

The InitPredictor function is called from the Main subroutine in this file and the returned PredictorClient object is set to Application scope as MSCSPredictor.

Browse Time

The following file displays the prediction feature:

basket.asp

The RenderBasketPage subroutine is used to call the htmRenderPredictions function which sets up the input case and calls the Predict method of the PredictorClient object to make the recommendations of which products to purchase. The PredictedPropToHREF function is used to create links into the product catalog from the recommended products.

See Also

About the Basket Feature for the Solution Sites


About the Customer Service Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Customer Service feature is available to all users who have a profile. Initial access to the Customer Service feature is provided in the template\menu.asp file. These appear to the user as links, in the left menu pane, to the two Customer Service features:

  • Customer Profile Feature
  • Customer Orders Feature

See Also

About the Partner Service for Supplier Solution Site


About the Customer Profile Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Customer Profile feature allows users to edit their own profile. When users first enter the Customer Profile feature they are shown their profile data. The fields that are available for them to edit are controlled through Commerce Server Business Desk. When users click the User password Change button they are redirected to the services\change_password.asp page. Most of the fields available to them by default are text boxes that are edited in place. When the user clicks the Save button any changes are saved to their profile.

Initialization

The Customer Profile feature relies heavily on the MSCSProfileService, which is initialized in the include\global_profile_lib.asp file. By default the Retail site stores profile data in the catalog database, and the Supplier site stores profile data in Active Directory.

Initialization for the Customer Profile feature occurs in the following files:

include\std_access_lib.asp

The EnsureAuthAccess function verifies that only authenticated (registered) users are allowed access to this page. Anonymous users are redirected to the login page, login\login.asp.

services\include\initialize.asp

The InitializePartnerDesk subroutine sets the values of three variables — sAction, sSubAction, sProfileIDs — from the URL query string or form post variable. These variables are used to control program flow on the remainder of the page.

Browse Time

The following file displays the Customer Profile service:

services\customer\account.asp

This page ensures that users can only see their own profile before rendering any content. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
The services\customer\account.asp page renders in one of three ways, depending on the value of the sAction variable:
EDIT_ACTION
This is the first time the user views the page. This is also the default action. The PrepareEditAction subroutine handles the business logic and the htmEditAction function renders the page.
CHANGE_ACTION
This action occurs when the user clicks the Change button on the page. The PrepareSaveChangesConfirmation subroutine handles the business logic and the htmChangePasswordActionHandler function creates HTML for the page, which redirects the user to the change password page, services\change_password.asp.
SAVE_ACTION
This action occurs when the user clicks the Save button on the page. The PrepareSaveAction subroutine handles the business logic and the htmSaveActionHandler function renders the page.

See Also

About the Partner Users Feature


About the Customer Orders Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Customer Orders feature allows users to view a list of their orders and to view details of specific orders. When users enter the Customer Orders feature they are shown a list of their existing orders on the services\customer\orders.asp page. When a user selects a particular order and clicks the View Item Details button, the user is shown the order details on the services\customer\view_order.asp page. Clicking the Close button on that page returns the user to the order list page.

Initialization

Initialization for the Customer Orders feature occurs in the following files:

include\std_access_lib.asp

The EnsureAuthAccess function verifies that only authenticated (registered) users are allowed access to this page. Anonymous users are redirected to the login page, login\login.asp.

services\include\initialize.asp

The InitializePartnerDesk subroutine sets the values of three variables — sAction, sSubAction, sProfileIDs — from the URL query string or form post variable. These variables are used to control program flow on the remainder of the page.

Browse Time

The following files display the Customer Orders feature:

services\customer\orders.asp

This page displays a list of the orders for the current user. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
The OrderListActionHandler subroutine prepares the page for rendering. This subroutine sets paging variables on the page in response to the value of the sAction variable, for example NEXTPAGE_ACTION. The htmRenderOrderList function retrieves the list of orders and renders the page.
Selecting an order and clicking the View Item Details button submits a form with the order ID number, which is a globally unique identifier (GUID), to the services\customer\view_order.asp page.

services\customer\view_order.asp

This page displays the order details of the order selected in the orders.asp page. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
The PrepareOrderDetailsAction subroutine gets a count of the number of orders that have been selected. If only one order has been selected the htmOrderDetailsActionHandler function retrieves the order details and renders the page. If more than one order has been selected the user is redirected to the list page.
When the user clicks the Close button the PrepareCloseOrderDetailsAction subroutine determines the source page and the CloseOrderDetailsActionHandler redirects the user back to the list page.

See Also

About the Partner Orders Feature


About the Partner Service Feature for the Supplier Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Partner Service feature is, by default, only activated in the Supplier Solution Site, and is only visible to users who are delegated administrators. Delegated administrators are users with administrative privileges for their organization. Initial access to the Partner Service feature is provided by a link in the template\menu.asp file. The Partner Service section of the menu appears only when the following four conditions are met:

  • The site has the Delegated Administrator feature enabled.
  • The user has a profile.
  • The user is authorized to act as administrator for other users.
  • The user has been assigned an organization.

After the Partner Service section appears in the menu pane, links to the three Partner Service features are provided. These three Partner Service features are:

  • Partner Profile Feature
  • Partner Users Feature
  • Partner Orders Feature

See Also

About the Customer Service Feature for Solution Sites

Profile Definitions


About the Partner Profile Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Partner Profile feature allows delegated administrators to edit the profile for their organization. When delegated administrators first enter the Partner Profile feature they are shown the profile data for their organization. The fields that are available to them are controlled through Commerce Server Business Desk. Each property in the profile has an attribute, sDelegatedAdminAccess. When the value of the sDelegatedAdminAccess attribute is zero (0), for a property it is not displayed. When the value is one (1), the property is displayed as read-only. When the value is two (2), the delegated administrator can change the property.

Some of the properties that the delegated administrator can change are simply edited in a text box on the page; however, properties that contain user names are changed with a picker mechanism. At the end of any field containing a user name is an ellipsis (...) button. When the administrator clicks that button, the administrator is redirected to the services\partner\users.asp page in "picker" mode. When the administrator selects a user from the list the admin is returned to the profile page and the field is filled in with the name of the user.

Initialization

Initialization for the Partner Profile feature occurs in the following files:

include\std_access_lib.asp

The EnsureAuthAccess and CheckPartnerServiceAccess functions verify that only authorized users with delegated administrator privileges are allowed access to this page. Unauthorized users are redirected to an error page.

services\include\initialize.asp

The InitializePartnerDesk subroutine sets the values of three variables; sAction, sSubAction, sProfileIDs, from the URL query string or form post variable.

services\include\lib.asp

The CheckIfProfilesExist subroutine verifies the globally unique identifier ProfileID(s).

Browse Time

The following file displays the Partner Profile feature:

services\partner\account.asp

This page ensures that users can only view the profile for their organization before rendering any content. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
This page renders in one of four ways depending on the value of the sAction variable:
EDIT_ACTION
This is the first time the user views the page. This is also the default action. The PrepareEditAction subroutine handles the business logic and the htmEditAction function renders the page.
SAVE_ACTION
This action occurs when the user saves changes to the account profile.
The business logic is in the htmSaveActionHandler function rather than the PrepareSaveAction subroutine because the preparation varies by the value of the subAction variable. The PrepareSaveAction subroutine remains as a placeholder for any business logic that would apply to all values of the subAction variable. The htmSaveActionHandler function renders the page.
SELECT_ACTION
This action occurs when the delegated administrator selects a property containing a user profile for editing and there are multiple user profiles available. The PrepareSelectActionHandlerForEdit subroutine handles the business logic and the htmSelectActionHandlerForEdit function generates an HTML fragment, which redirects the user to the page services\partner\users.asp.
SELECTED_ACTION
This action occurs after a SELECT_ACTION, when the delegated administrator returns from selecting a user profile from the services\partner\users.asp page. The PrepareSelectedAction subroutine handles the business logic and the htmSelectedActionHandlerForEdit function renders the page.

See Also

About the Customer Profile Feature

About the Partner Users Feature

Using Profiles in Web Site Management


About the Partner Users Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Partner Users feature allows the delegated administrator to add new users, delete users, and edit user profiles for their organization. When delegated administrators first enter the Partner Users feature they are presented with a list of the users in their organization. After the delegated administrator selects a user the delegated administrator is redirected to an edit page where the delegated administrator can change the profile for the user.

Initialization

Initialization for the Partner Users feature occurs in the following files:

include\std_access_lib.asp

The EnsureAuthAccess and CheckPartnerServiceAccess functions verify that only authorized users with administrator privileges are allowed access to this page. Unauthorized users are redirected to an error page.

services\include\initialize.asp

The InitializePartnerDesk subroutine sets the values of three variables; sAction, sSubAction, sProfileIDs, from the URL query string or form post variable.

Browse Time

The following files display the Partner Users feature:

services\partner\users.asp

The page renders in one of two ways depending on the value of the sAction variable. For all valid actions except SELECTED_ACTION, the htmRenderProfilesList function renders the list of users. The SELECTED_ACTION occurs when the user returns from the edit_user.asp page. In this case, the SelectedActionHandlerForList subroutine redirects the user as necessary.

services\partner\edit_user.asp

This page displays an individual user profile. The htmEditPageActionHandlers function selects the appropriate action handler depending on the value of the sAction variable. Some of the cases in this function are intended for editing multiple profiles. The multi-edit feature is not implemented and the cases for it cannot be reached from the Solution Sites user interface.

See Also

About the Customer Profile Feature

Using Profiles in Web Site Management


About the Partner Orders Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Partner Orders feature allows the delegated administrator to view the orders for all the users in their organization. When the delegated administrator first enters the Partner Orders feature the administrator is presented a list of all the orders for their organization. From this list page the administrator can select an individual order and be redirected to a page that displays the order details.

Initialization

Initialization for the Partner Orders feature occurs in the following files:

include\std_access_lib.asp

The EnsureAuthAccess and CheckPartnerServiceAccess functions verify that only authorized users with administrator privileges are allowed access to this page. Unauthorized users are redirected to an error page.

services\include\initialize.asp

The InitializePartnerDesk subroutine sets the values of three variables; sAction, sSubAction, sProfileIDs, from the URL query string or form post variable.

Browse Time

The following files display the Partner Orders feature:

services\partner\orders.asp

This page displays a list of the orders for the organization of the delegated administrator. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
The htmOrderListActionHandler subroutine prepares the page for rendering. This subroutine sets paging variables on the page in response to the value of the sAction variable, for example NEXTPAGE_ACTION. The htmRenderOrderList function retrieves the list of orders and renders the page.
Selecting an order and clicking the View Item Details button submits a form with the order ID number and a globally unique identifier (GUID) to the services\partner\view_order.asp page.

services\partner\view_order.asp

This page displays the order details of the order selected in the orders.asp page. Business logic and rendering are in separate routines to make the code easier to maintain and modify.
The PrepareOrderDetailsAction subroutine gets a count of the number of orders that have been selected. If only one order has been selected the htmOrderDetailsActionHandler function retrieves the order details and renders the page. If more than one order has been selected the user is redirected to the list page.
When the user clicks the Close button, the PrepareCloseOrderDetailsAction subroutine determines the source page and the CloseOrderDetailsActionHandler redirects the user to the source page, if present, or to the corresponding list page.

See Also

About the Customer Orders Feature


About the Analysis Integration Feature for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Commerce events are specially structured entries written by the Solution Sites to the Web server log file under the heading cs-uri-query. The Web server log import Data Transformation Services (DTS) task imports these events into the Data Warehouse for use by Analysis Services. The Solution Sites applications write a log event when a user adds or removes a basket item or submits an order. The format of the logged event is:

   CEVT={T=class,EVT=event,property1,property2,...}

Initialization

The query strings are constructed in the following file:

include\analysis.asp

The Analysis_LogAddToBasket and Analysis_LogRemoveFromBasket subroutines set the class to BSK, the event to AIBSK or RIBSK, respectively, and call the Analysis_ConstructPRID function to construct the item property. The resulting string resembles the following:
   CEVT={T=BSK,EVT=AIBSK,CatalogName;ProductID;VariantID}
The Analysis_LogSubmitOrder subroutine sets the class to ORD, the event to SUBOR, and calls the Analysis_ConstructKeyValueString function to construct the order property. The resulting string resembles the following:
   CEVT={T=ORD,EVT=SUBOR,ORID=OrderID}
The Analysis_LogEvent subroutine performs the actual logging by calling the AppendToLog method of the Active Server Pages (ASP) Response object.

Browse Time

The following files provide logging of the Commerce events:

_additem.asp

When a user adds an item to the basket, the Analysis_LogAddToBasket function is called from this file.

_delitem.asp

When a user removes an item from the basket, the Analysis_LogRemoveFromBasket function is called from this file.

crdtcard.asp

When a user submits an order charged to a credit card, the SaveBasketAsOrder subroutine located in the file include\payment.asp is called by this file. This subroutine, in turn, calls the Analysis_LogSubmitOrder subroutine.

po.asp

When a user submits a purchase order, the SaveBasketAsOrder subroutine located in the file include\payment.asp is called by this file. This subroutine, in turn, calls the Analysis_LogSubmitOrder subroutine.

See Also

About the Basket Feature for Solution Sites

About the Checkout Feature for Solution Sites

About the User Tracking Feature for Solution Sites


About the BizTalk Server Integration Feature

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

BizTalk Server provides a gateway for sending business documents between your company and your trading partners (also known as vendors). For example, if your company uses BizTalk Server, you can trade catalogs, orders, documents, and other electronic forms with your trading partners. BizTalk Server manages the data translation, encryption, digital signatures, and document tracking services for many different transport mechanisms.

BizTalk integration is not enabled in the default configuration of the Solution Sites. To enable BizTalk integration you must change the App Default Config settings for your site.

The App Default Config setting for the BizTalk Options property is set to disable integration with BizTalk Server for exchanging documents. The BizTalk Options property can be changed to facilitate other configurations as shown in the following table.

Selected Property Value | Friendly Name | Description
0 | BIZTALK_PO_XFER_DISABLED | Disables integration with BizTalk Server to exchange documents. This is the default setting for the Solution Sites.
1 | BIZTALK_PO_XFER_ENABLED | Enables integration with BizTalk Server to exchange documents.

Once BizTalk Server is enabled via the BizTalk Options property, the following App Default Config settings should be changed as well. Each of these properties needs to match the respective entry in BizTalk Messaging Manager:

  • The BizTalk Catalog Doc Type property must be set to the document definition name that is required by BizTalk Server for catalogs.
  • The BizTalk PO Doc Type property must be set to the document definition name that is required by BizTalk Server for purchase orders.
  • The BizTalk Source Org Qualifier property must be set to the alias qualifier for the site.
  • The BizTalk Source Org Qualifier Value property must be set to the alias value for the site.
  • The BizTalk Submit type property should not be changed even if BizTalk Server is enabled. The default value is 1.

For more information about changing App Default Config settings, see Configuring the App Default Config Resource.

The recvpo pipeline handles the processing of purchase orders received through BizTalk Server. First, the _recvpo.asp page receives XML documents from BizTalk Server. When an XML document is received by the _recvpo.asp file, the XMLTransforms process is started and converts the XML document back to an order form. Commerce Server then runs the recvpo pipeline on the order form. After the pipeline processes the order form, the order is saved to the Commerce Server database. By using the _recvpo.asp file, you can use Commerce Server objects to redirect the XML to your order management system.

For more information about integrating BizTalk Server, see Integrating with BizTalk Server or "Integrating Commerce Server with BizTalk Server" in the Commerce Server 2000 Resource Kit.

Initialization

include\global_siteconfig_lib.asp

Included in the global.asa file. The dictPipelines datastructure is used to assign friendly names to the file locations.

Browse Time

The following files run the BizTalk Server feature:

_additem.asp

If the App Default Config setting for the BizTalk Options property is set to enable BizTalk Server integration, the ApplyVendorInfo subroutine will return the vendor ID associated with the catalog.

_recvpo.asp

This page receives purchase orders from BizTalk Server.

include\payment.asp

Sets the iBIZTALKOPENNESS variable, which determines where BizTalk Server will find its connection information. Also submits the appropriate OrderForm objects using BizTalk Server.

ReceiveStandard.asp

Sample standard BizTalk Server receive page for purchase orders.


Enabling International Features for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites provide the foundation for implementing several features necessary for an international site, multiple languages, dual currency display, and multiple address formats. By default, none of these features are implemented in the Solution Sites. A full implementation of a truly international site is very complex and not suitable for the demonstration purposes of the Solution Sites.

Multiple languages for Solution Sites

Euro dual currency display for Solution Sites

Multiple address formats for Solution Sites

Localized data formats for Solution Sites

Initializing International features for Solution Sites

Multiple languages for Solution Sites

The solution sites are written for single language use. English, French, German and Japanese versions are available. But, they are written to simplify translation and provide the foundation for multiple language support. Most of the strings in the Solution Sites are contained in a single XML file, others, such as Site Terms, shipping method descriptions, and discount descriptions, come from external sources. Translating a site, not counting external strings, to another single language is simply a matter of translating the strings in the rc.xml file and changing the Language attributes in that file to the name of the new language. The first step in supporting multiple languages is also to edit the rc.xml file. Within the file there is a Language node with name and locale attributes for each supported language. An Entry node identifies each string in the application. Each Entry node contains a Value node for each language in the file. The Value nodes are distinguished by their Language attributes. For example:

   <Entry Name="L_Login_HTMLText" Type="General">
      <Value Language="English">Login</Value>

The MessageManager object serves as a repository for the text strings used on the Solution Sites. During application initialization the MessageManager object is loaded with the data in the rc.xml file. Whenever a string is needed in the Solution Sites it is retrieved from the MessageManager object with a call, such as sText = mscsMessageManager.GetMessage("L_FirstName_HTMLText", sLanguage). Throughout the Solution Sites the value of the sLanguage variable, used to determine the language used, is set to the value of the DefaultLanguage attribute in the rc.xml file. This limits the Solution Sites to a single language. In order to support multiple languages you will need to create a mechanism to select the correct value for the sLanguage variable as needed, perhaps based on the lcid.

Euro dual currency display for Solution Sites

The Solution Sites have the ability to enable dual-currency display for Euro-countries. The Commerce Server EuroDisplay object provides the foundation for displaying a price in two currencies simultaneously, for example the French Franc and the Euro. The exchange rate between the primary and secondary currencies is fixed at application initialization and comes from a value in the App Default Config settings. The htmRenderCurrency function renders currency values based on the value of the i_AltCurrencyOptions option in the App Default Config settings. This provides a centralized place for extending the currency display in the Solution Sites.

Multiple address formats for Solution Sites

There are commented examples in the Solution Sites that demonstrate changing the address format based on the default lcid for the site. Search the site for the string $$INTLADDR to find these examples.

Localized data formats for Solution Sites

The Solution Sites provide, through the Commerce Server DataFunction object, the ability to format and parse currencies and numbers in a variety of international formats. You can use this object to perform locale-based formatting, parsing, and value range checking of data on your site.

Initializing International Features for Solution Sites

Initialization for the international features occurs in the following files:

include\header.asp

include\txheader.asp

One or the other of these nearly identical files is included as the header in all of the pages in the Solution Sites applications. The header sets the character set for the page. By default this is set to the s_PageEncodingCharset option from the App Default Config settings.
If you need to explicitly set the server code page, for example you are running a Japanese site on an English server, use the CodePage directive. For more information about using multiple languages in Active Server Pages (ASP), search for "Accommodating International Clients" and "Setting the Code Page for String Conversions" on the Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161.

include\global_messagemanager_lib.asp

The Solution Sites use the MessageManager object to provide support for multiple languages. The GetMessageManagerObject function is called from the Main subroutine and the returned MessageManager object is set to Application scope as MSCSMessageManager. The data source for MSCSMessageManager is the rc.xml file.

include\global_internationalization_lib.asp

The InitAltCurrencyDisp function is called from the Main subroutine and the returned EuroDisplay object is set to Application scope as MSCSAltCurrencyDisp. The initialization values for the EuroDisplay object come from the App Default Config Settings.

include\global_data_lib.asp

The InitDataFunctions function is called from the Main subroutine and the returned DataFunctions object is set to Application scope as MSCSDataFunctions. The initialization value, Locale, for the DataFunctions object comes from the App Default Config settings.

See Also

App Default Config Settings for Solution Sites

Code to Manipulate and Display Euro Values

Localizing Web Site Text

DataFunctions Object


Solution Site Infrastructure

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites comprise various aspects of a comprehensive infrastructure for building a highly structured and easily maintained commercial Web site. As described in the Solution Site Features topics, the Solution Sites incorporate most of the capabilites of Commerce Server 2002. The code for the Solution Sites has been organized such that the feature implementations share a common infrastructure.

In addition, the Retail and Supplier Solution Sites are implemented as the same set of files, with the differences controlled by configuration settings and corresponding tests in the code. For more information about the files that constitute the Solution Sites, see Solution Sites File Organization.

This section discusses the infrastructure of the Solution Sites.

This section contains:

  • Page Execution Model for Solution Sites. Describes the execution model of the pages in the Solution Sites, which is crucial to understanding how the existing code is structured, and how new code should be written in order to conform to the existing model.
  • Configuration Settings for Solution Sites. Describes the configuration mechanisms that make the Retail and Supplier Solution Sites unique, given that they are based on the same set of files.
  • Initialization of Solution Sites. Describes the processing that occurs when the Web site application starts up. In other words, what processing occurs when the file global.asa is run.
  • Page-Level Access Control for Solution Sites. Describes the authentication scheme used by the Solution Sites, including the various modes in which authentication can be performed.
  • Security Issues for Solution Sites. Describes issues related to the security of the Solution Sites.
  • Caching Solution Sites. Describes the caching techniques employed by the Solution Sites in the interest of improved performance.
  • Constants in Solution Site Applications. Describes the special mechanism used by the Solution Sites that allows the use of a large number of constants with the least performance impact.
  • HTML Construction for Solution Sites. Describes the techniques used in the Solution Sites for constructing the HTML that gets rendered as the pages in the site.
  • Forms Processing for Solution Sites. Describes the forms definition and processing infrastructure used in the Solution Sites.
  • Pipelines for Solution Sites. Describes the pipeline infrastructure used by the Solution Sites.
  • Error Handling for Solution Sites. Describes the error-handling infrastructure used by the Solution Sites, including the built-in differences between DEVELOPMENT and PRODUCTION modes.
  • Utility Routines for Solution Sites. Describes the utility routines used by the existing Solution Sites code, and intended for use in the code you write for any new pages you create. A functional categorization of the routines is provided.


Page Execution Model for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites use a Page Execution Model for Solution Sites that is highly structured and standardized throughout the sites. On a given Web site page, such as basket.asp, all of the standard processing occurs within files that are included on the page. Code to implement the unique aspects of the page occurs within the page itself, implemented within a routine named Main, and within any additional routines included as helper routines to the routine Main. In other words, the routine Main is the entry-point routine for custom processing on a page.

The following figure shows a hypothetical Web site page. The annotations, shown to the right in red, describe the high-level function of various aspects of a standard Solution Site Web page.

Page Execution Model for Solution Sites

The Page Execution Model for Solution Sites is explained in greater detail in the following topics:

  • Include Files for Solution Sites
  • Standard Execution Flow for Solution Sites
  • Custom Execution Flow for Solution Sites
  • Page Layout Variables for Solution Sites
  • Page Layout for Solution Sites

See Also

Page Authoring for Solution Sites

Page Layout Customization for Solution Sites


Include Files for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The types of include files for a standard Solution Sites Web page can be divided into five categories, as follows:

  1. Response header files

    The files include\header.asp and include\txheader.asp contain script that writes the appropriate entries into the response header. One of these two files must be included on a given page. For more information about the differences between these two files, see Including Files in Solution Sites.

  2. Constants file

    The file include\const.asp is empty by default, but exists to provide a place where new constants can be defined. The constants provided with the Solution Sites have been compiled into a type library for improved performance. Depending on the number of new constants you create, it may be beneficial to adopt the same strategy for your new constants.

    For more information about compiled constants and compiling new constants, see Constants in Solution Site Applications.

  3. Utility routine files

    This set of files, most of which begin with the prefix "std_", contain a wide variety of utility routines, organized such that routines with related functions are placed in the same file.

    For example, the file include\html_lib.asp contains numerous functions designed to make the formatting of HTML text easier. It contains routines such as RenderCheckBox and RenderRadioButton, used to render INPUT elements with TYPE attribute values of CHECKBOX and RADIO, respectively.

    Depending on the functionality and implementation of a particular Web page, some of these files can be omitted, thereby improving performance.

    For more information about the utility routines supplied in these files, see Routines Reference.

  4. Page initialization file

    The file include\setupenv.asp is central to the execution of a page. Other than a small amount of script executed in the file header.asp, Web page processing begins in the file setupenv.asp. At the highest level, the processing in this file consists of:

    • Defining several dozen variables for use in the custom code for the page, and initializing most of them.
    • Correcting the URL of the requested page (for example, correcting the pathname case, in cookie mode, in order for cookies to work correctly).
    • Getting user context under which the page is running by calling the routine GetUserInfo.
    • Calling the routine Main, which serves as the entry point for custom processing done for the Web page.
  5. Layout files

    The files template\layout1.asp and template\no_menu.asp define the two basic layouts of all Web pages that conform to the Solution Sites Page Execution Model for Solution Sites. These files contain the high-level HTML tags, including HTML, HEAD, and BODY. Using a combination of include files and the contents of a couple of page layout variables, these short files provide a mechanism for standardizing the layout of all pages on the Web site.

    For more information about the page layout variables, see Page Layout Variables for Solution Sites.

    For more information about how this file controls the layout of the Web site pages that use it, see Page Layout for Solution Sites.

See Also

Page Authoring for Solution Sites

Page Layout Customization for Solution Sites


Standard Execution Flow for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The flow of standard execution within the Solution Sites Page Execution Model for Solution Sites can be understood in terms to the files included on a Web site page. For more information about the different types of include files, see Include Files for Solution Sites.

Processing begins in the first include file, either include\header.asp or include\txheader.asp, in which a small amount of script is executed in order to add some standard response header entries.

The two types of files that are typically included next are the constants file and the utility routine files. Since these files do not contain any global code, that is, code outside of any function or subroutine, they can be included in any order relative to the other include files. The lack of global code in these files means that their inclusion does not necessarily result in any processing. If one or more routines in these files is called, it occurs at a later stage in the execution flow. For more information about when the code in these files enters the flow of execution, see Custom Execution Flow for Solution Sites.

The next include file, include\setupenv.asp, is central to the standard execution flow. This file is responsible for defining and (generally) initializing several dozen variables that can be used further on in the processing. It is also responsible for doing some correction of the URL (by calling the routine CorrectRequest). Finally, it ends by calling the routine Main, which is typically implemented as the first routine following the file inclusions. All custom processing for the page occurs within the Main routine and any routines called from within it.

After the routine Main returns, the HTML and the script in the final include file, either template\layout1.asp or template\no_menu.asp, is processed. All processing up to this point is entirely in script, as the opening HTML element has not yet been encountered. These layout files are mostly HTML, with the exception of a few include files that contain executable script, and the writing of the contents of a couple of page layout variables using the Internet Information Services (IIS) "<%=" directive.

For more information about the details of page layout, and the page layout variables, see Page Layout for Solution Sites and Page Layout Variables for Solution Sites, respectively.

See Also

Custom Execution Flow for Solution Sites


Custom Execution Flow for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

All custom aspects of the standard page execution flow occur within the routine Main. The Main routine is typically implemented as the first routine following include files on a Web site page. Helper routines that are specific to the page are typically found after the Main routine. Helper routines that are useful in a variety of pages are found in the utility routine include files.

The purpose of the Main routine, and its helper routines, is to establish the content to be displayed in a particular content area of the Web page being constructed. Both of the layout files template\layout1.asp and template\no_menu.asp assume that appropriate HTML content has been assigned as a string to the variable htmPageContent. The area of the page in which this content will be rendered is different in the two pages. In the file layout1.asp, the corresponding area is to the right of the menu area, and between the two horizontal rules (HR elements). In the file no_menu.asp, the corresponding area is the full width of the browser window, below the one horizontal rule.

The file layout1.asp also expects that a second content variable, htmDiscountBannerSlot, might also be assigned a string containing HTML content to be displayed in a full-width discount banner area below the second horizontal rule.

This is accomplished by setting two particular string variables to contain the HTML that will render the intended content. The layout files use the Internet Information Services (IIS) "<%=" directive to write the contents of the content variables in the appropriate location within the page layout. For more information about these variables, see Page Layout Variables for Solution Sites.

In addition to establishing the HTML content to be assigned to the appropriate content variables, the routine Main and its subordinate routines need to perform other processing appropriate to the purpose of the page. Often, this involves interaction with one or more databases to retrieve information to be displayed and write new information to be saved (such as information about purchases being made).

The routine Main is also responsible for controlling access to the page by calling either EnsureAccess or EnsureAuthAccess before doing anything else.

See Also

Standard Execution Flow for Solution Sites


Page Layout Variables for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

There are several page layout variables that are referenced from within the two layout files template\layout1.asp and template\no_menu.asp. The routine Main is responsible for setting some of these to appropriate HTML strings. The others are initialized as described below.

  • htmPageContent. This variable, declared in the file include\setupenv.asp, must be set within the routine Main to the HTML string that will result in the rendering of the main content area of the page. If this variable is not set, no content will be displayed in the main content area. If this variable does not contain valid HTML, the displayed content may not be rendered as intended. Therefore, appropriate care must be taken when writing or modifying the code that establishes the value of this variable.

    This content variable is referenced in the layout files template\layout1.asp and template\no_menu.asp.

  • htmDiscountBannerSlot. This variable, declared in the file include\setupenv.asp, may be set within the routine Main to an HTML string designed to display discounts being offered to the user. In the layout file template\layout1.asp the content associated with this variable is displayed below the menu and main content areas, just above the second horizontal rule (HR element). The layout file template\no_menu.asp does not reference this variable.

    Discounts are generally not appropriate for all pages on a Web site, or even for all pages that use the layout file template\layout1.asp. In such cases, the routine Main should leave this variable empty, resulting in nothing being displayed in the discount area of the page.

    Normally, when discounts are to be included on a page, this variable is set to the string returned by the function RenderDiscounts, defined in the include file template\discount.asp. This function runs a Content Selection pipeline to retrieve discount content, potentially targeted to the user and the contents of their basket.

  • dictConfig.s_SiteName. This value is taken directly from the App Default Config settings. The Dictionary object from which this string is retrieved is created in each page by the file include\setupenv.asp using the GetOptionsDictionary method of the AppConfig object stored in the Internet Information Services (IIS) Application object.

    This value is referenced in the layout files template\layout1.asp and template\no_menu.asp.

  • sPageTitle. This variable, declared in the file include\setupenv.asp, should be set within the routine Main to a string intended to be the title of the page (the data associated with the TITLE element).

    This content variable is referenced in the layout files template\layout1.asp and template\no_menu.asp.

For more information about how the HTML strings assigned to these variables are rendered in a standard location within the Web page, see Page Layout for Solution Sites.

See Also

Implementing the Main Subroutine for Solution Sites

Initializing the htmPageContent Variable


Page Layout for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Page layout within the Solution Sites is controlled by HTML code in one of two layout files: template\layout1.asp and template\no_menu.asp.

The file layout1.asp provides a common type of Web page layout, with space for a banner ad at the top, followed by the Web site name, and several navigation links. Below this is the typical side-by-side menu and main content areas, with the latter being the portion of the page that is unique to each page. The bottom portion of the page is used to display discount information, if any, and also includes a footer area.

The file no_menu.asp provides a simpler layout that does not include the navigation links, the menu area, the discount area, or the footer.

Each of the areas on the Web page are controlled by either a specific include file, or by writing out the contents of a specific string variable that was previously initialized when the routine Main was invoked from the file include\setupenv.asp. For more information about how these variables should be initialized, see Custom Execution Flow for Solution Sites and Page Layout Variables for Solution Sites. For more information about the utility routines designed to help you create HTML content, see HTML Construction for Solution Sites.

When required to achieve the layout you want, you should add additional content areas to the existing layout files, and new include files or content variables to supply content for them. When more than two types of page layout are needed, you should create new layout files for the additional layouts you require.

This section contains:

  • Page Layout Using 斗ayout1.asp� for the Retail Solution Site
  • Page Layout Using 渡o_menu.asp� for the Retail Solution Site


Page Layout Using 斗ayout1.asp・for the Retail Solution Site

このページに対するフィードバックを送信する Commerce Server 2002 SDK

Page Layout Using 斗ayout1.asp� for the Retail Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following figure shows the home page of the Retail Solution Site, which uses the layout file template\layout1.asp. It is annotated with the include files and variable names responsible for the display of each separate area of the page. In this figure, the areas associated with the include file template\banner.inc and the variable htmDiscountBannerSlot are both empty. If one or both of them were not empty, the rendered page would use correspondingly more vertical space.

Page layout figure for layout1.asp

From top to bottom and left to right, the areas of the page are controlled as follows:

  • sPageTitle. A string variable that has been initialized within the routine Main. For more information, see Page Layout Variables for Solution Sites.
  • banner.inc. Runs a Content Selection pipeline to choose an appropriate ad for display. For more information, see template\banner.inc.
  • dictConfig.s_SiteName. A string variable that has been initialized within the routine GetAppConfigObject. For more information, see Page Layout Variables for Solution Sites.
  • navbar.inc. Produces an HTML string that will render links to home, catalog, and basket pages. The HTML string is cached when first produced for quicker subsequent retrieval. For more information, see template\navbar.inc.
  • menu.asp. Produces an HTML string that will render the menu area of the Web page, which includes controls to enable searching, links to the catalog, customer service, and so on. For more information, see template\menu.asp.
  • htmPageContent. A string variable that has been initialized within the routine Main. For more information, see Page Layout Variables for Solution Sites.
  • htmDiscountBannerSlot. A string variable that has been initialized within the routine Main. For more information, see Page Layout Variables for Solution Sites.
  • footer.inc. Produces an HTML string that will render copyright text. For more information, see template\footer.inc.

With an understanding of these files, you can create a more sophisticated Web site by creating alternative page layouts, perhaps naming the files that implement them as layout2.asp, layout3.asp, and so on.

See Also

Page Layout Using 渡o_menu.asp� for the Retail Solution Site

Page Layout Customization


Page Layout Using 渡o_menu.asp・for the Retail Solution Site

このページに対するフィードバックを送信する Commerce Server 2002 SDK

Page Layout Using 渡o_menu.asp� for the Retail Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following figure shows the sign-in page of the Retail Solution Site, which uses the layout file template\no_menu.asp. It is annotated with the include files and variable names responsible for the display of each separate area of the page. In this figure, the area associated with the include file template\banner.inc is empty. If it were not empty, the rendered page would use correspondingly more vertical space.

Page layout figure for no_menu.asp

From top to bottom, the areas of the page are controlled as follows:

  • sPageTitle. A string variable that has been initialized within the routine Main. For more information, see Page Layout Variables for Solution Sites.
  • banner.inc. Runs a Content Selection pipeline to choose an appropriate ad for display. For more information, see template\banner.inc.
  • dictConfig.s_SiteName. A string variable that has been initialized within the routine GetAppConfigObject. For more information, see Page Layout Variables for Solution Sites.
  • htmPageContent. A string variable that has been initialized within the routine Main. For more information, see Page Layout Variables for Solution Sites.

See Also

Page Layout Using 斗ayout1.asp� for the Retail Solution Site

Page Layout Customization


Configuration Settings for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Retail and Supplier Solution Sites have a common code base. The variations in their functionality come from differences in the App Default Config settings and whether the Profiling System stores profiles in SQL Server, Active Directory, or both types of data stores.

This section contains:

  • App Default Config Settings for Solution Sites
  • Profiling System Data Store for Solution Sites
  • INI File Configuration for Solution Sites


App Default Config Settings for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following table lists the App Default Config properties and their values for the Retail and Supplier Solution Sites. Properties that are connection strings or computer names are not listed. The Blank Solution Site has identical settings to the Retail site. The items in bold, in the following table, highlight the properties that are used with different values between the two sites. Italicized entries, under the Retail and Supplier headings, are values that depend on the locale where the site is installed.

Property | Retail | Supplier | s_Description
f_AltCurrencyConversionRate | 2 | 2 | Rate used to convert from the base currency to the alternate currency (for example, base currency = 2 x alternate currency).
i_AddItemRedirectOptions | 1 | 1 | Page to be displayed after a user adds an item to the basket: 0 - redirect to the basket page 1 - display the current product page
i_AddressBookOptions | 2 | 2 | Address book feature: 0 - disable 1 - enable and make the address book read-only 2 - enable and make the address book read/write
i_AltCurrencyLocale | 1033 | 1033 | Locale for the alternate currency: 1031 - German 1033 - English 1034 - Spanish 1036 - French 1041 - Japanese
i_AltCurrencyOptions | 0 | 0 | Simultaneous display of base and alternate currencies: 0 - disable 1 - enable
i_AuctionsOptions | 1 | 0 | Auctions: 0 - disable 1 - enable Not used by the Solution Sites.
i_BaseCurrencyLocale | 1033 | 1033 | Locale for the base currency; see the i_AltCurrencyLocale property in this table for valid values.
i_BillingOptions | 0 | 2 | If account billing was specified for the i_PaymentOptions property, this property further specifies billing types. The only option supported is 2 - stand-alone purchase orders. Not used by the Solution Sites.
i_BizTalkOptions | 0 | 0 | Integration with BizTalk Server to exchange documents: 0 - disable 1 - enable
i_CookiePathCorrectionOptions | 1 | 1 | Cookie path correction: 0 - enable 1 - enable application-based correction 2 - enable filter-based correction
i_CurrencyDisplayOrderOptions | 0 | 0 | When simultaneously displaying base and alternate currencies: 0 - display the base currency first 1 - display the alternate currency first
i_DelegatedAdminOptions | 0 | 1 | Partner Services: 0 - disable 1 - enable
i_FormLoginOptions | 6 | 7 | Login requirement; see About the Login Feature for Solution Sites.
i_FormLoginTimeOut | 60 | 60 | Number of minutes after which the ticket times out.
i_HostNameCorrectionOptions | 1 | 1 | Host name correction: 0 - disable 1 - enable
i_PaymentOptions | 1 | 5 | Payment types: 1 - credit card 4 - account billing 5 - both
i_ShipToLevelOptions | 0 | 0 | Shipment level: 1 - shipments made at the purchase order level 2 - shipments allowed at the line item level Not used by the Solution Sites.
i_ShoppingListOptions | 0 | 0 | Shopping lists: 0 - disable 1 - enable Not used by the Solution Sites.
i_SiteDefaultLocale | 1033 | 1033 | Locale for this site; see the i_AltCurrencyLocale property in this table for valid values.
i_SitePrivacyOptions | 1 | 1 | Anonymous users: 1 - profile 2 - profile and track visits
i_SiteRegistrationOptions | 1 | 0 | Self-registration: 0 - disable 1 - enable
i_SiteTicketOptions | 2 | 2 | User ticket location: 1 - in URL query string 2 - in a cookie
s_AltCurrencyCode | EUR | EUR | The ISO 4217 code for the alternate currency.
s_AltCurrencySymbol | EUR | EUR | Symbol for the alternate currency.
s_AnonymousUser DefaultCatalogSet | {11111111-1111-1111- 1111-111111111111} | {11111111-1111-1111- 1111-111111111111} | Default catalog set for an anonymous user.
s_AuthenticatedUser DefaultCatalogSet | {22222222-2222-2222- 2222-222222222222} | {22222222-2222-2222- 2222-222222222222} | Default catalog set for an authenticated user.
s_BaseCurrencyCode | USD | USD | The ISO 4217 code for the base currency.
s_BaseCurrencySymbol | $ | $ | Symbol for the base currency.
s_BizTalkCatalogDocType |  |  | Document definition name required by BizTalk Server to exchange catalogs. Not used by the Solution Sites.
s_BizTalkConnString |  |  | Connection string to the BizTalk Interchange Manager database, which stores messages sent from Commerce Server. Not used by the Solution Sites, but is used in Commerce Server Business Desk.
s_BizTalkOrderDocType |  |  | Document definition name required by BizTalk Server to submit purchase orders (for example, PurchaseOrder). The i_BizTalkOptions property must be enabled for this property to be used by the Solution Sites.
s_BizTalkSourceQualifierID |  |  | Alias qualifier for this site in BizTalk Server (for example, BizTalk). The i_BizTalkOptions property must be enabled for this property to be used by the Solution Sites.
s_BizTalkSourceQualifierValue |  |  | Alias value for this site in BizTalk Server (for example, MySite). The i_BizTalkOptions property must be enabled for this property to be used by the Solution Sites.
s_BizTalkSubmittypeQueue | 1 | 1 | Submit documents to BizTalk Server: 0 - synchronously 1 - asynchronously The i_BizTalkOptions property must be enabled for this property to be used by the Solution Sites.
s_PageEncodingCharset | windows-1252 | windows-1252 | Document encoding character set for the site (for example, 1252 - Windows).
s_SMTPServerName | TestSMTPServer | TestSMTPServer | Computer name of the SMTP server. Not used by the Solution Sites.
s_WeightMeasure | lbs | lbs | Unit of measure for calculating product shipping costs. Not used by the Solution Sites, but is used in Business Desk.

Related Commerce Server 2002 Help Topics

Administering Commerce Server\Managing Commerce Resources\Configuring App Default Config Resource Properties

See Also

Configuration Settings for Solution Sites

Use of App Default Config Settings in Solution Sites


Profiling System Data Store for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

One of the ways the Solution Sites differ is through the storage mechanism of the Profiling System. The Retail site uses UserObject profiles stored in a SQL Server database. The Supplier site uses UserObject profiles stored in Active Directory.

The Solution Sites check whether UserObject profiles are stored in Active Directory through the IsActiveDirectoryPresent function. This function checks if the UserObject profile definition contains a ParentDN property. The existence of this property signifies the use of Active Directory.

See Also

Configuration Settings for Solution Sites


INI File Configuration for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following table lists the properties contained in the csapp.ini file. By default, the SiteName, AddressKeyName, and RelativeURL properties are set to Retail or Supplier for the respective sites. These values should not be changed except during the unpacking process.

Property | Value | Description
SiteName | Retail or Supplier by default | The name of the site. This appears in the displayed HTML pages and as the name of the Commerce Server site in Commerce Server Manager.
AddressKeyName | Retail or Supplier by default | The name of the application.
RelativeURL | Retail or Supplier by default | The name of the Internet Information Services (IIS) virtual directory for the application relative to the default Web site.
CreatedBy | Author | Author of the site.
CreatedDate | 1999.04.02 00:00:00 | The date the site was created.
Version | 4.5.0000 | The version of Commerce Server 2002 that is being used.

See Also

Configuration Settings for Solution Sites

Initialization of Solution Sites


Initialization of Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This topic describes the actions taken in the global.asa file to initialize the site when the application starts. It also describes the initialization that occurs on each page due to the common include files.

This section contains:

  • Application Startup for Solution Sites
  • Page Initialization for Solution Sites


Application Startup for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following initialization actions occur in the global.asa file when the application starts.

Three type libraries are declared as meta-data so that constants declared in these libraries are globally available:

  • CS Apps Constants 1.0 Type Library
  • Microsoft Commerce 2002 Catalog Type Library
  • Microsoft Commerce 2002 Profile Service Type Library

Text box properties are declared.

The environment is set either to PRODUCTION or DEVELOPMENT.

The Main subroutine in the file include\global_main_lib.asp is called. The following table lists the global variables (given Application scope) created in this subroutine, the actions taken when the variable is created, and the routine that supplies the actions.

Variable | Actions | Routine
MSCSActiveDirectoryDomain | If the Profiling System uses Active Directory, the Active Directory domain name is retrieved. | sGetActiveDirectoryDefaultNamingContext
MSCSAdoConnection | An open ActiveX Data Object Database (ADODB) connection to OLE DB Provider for Commerce Server is created. | oGetOpenConnectionObject
MSCSAltCurrencyDisp | The EuroDisplay object is created and initialized for display of alternate currency. | InitAltCurrencyDisp
MSCSAppConfig | The AppConfig object is created. | GetAppConfigObject
MSCSAppFrameWork | The AppFrameWork object is created. | Main
MSCSAuthManager | The AuthManager object is created. | InitAuthManager
MSCSCacheManager | The CacheManager object and caches are created and configured. | InitCacheManager
MSCSCatalogAttribs | Retrieves all the property definitions that exist in the Product Catalog System and places them in a Dictionary object for fast access. | dictGetCatalogAttributes
MSCSCatalogManager | The CatalogManager object is created and initialized. | InitCatalogManager
MSCSCatalogSets | The CatalogSets object is created and initialized. | InitCatalogSets
MSCSCommerceAppName | The application name is retrieved from the config.ini file. | GetINIString
MSCSCommerceSiteName | The site name is retrieved from the config.ini file. | GetINIString
MSCSDataFunctions | The DataFunctions object is created and the locale set. | InitDataFunctions
MSCSExpressionEvaluator | The ExpressionEval object is created and connected to the Expression store. | Main
MSCSForms | Form definitions are retrieved and placed in a Dictionary object. | GetFormDefinitions
MSCSGenID | The GenID object is created. | oGetGenIDObject
MSCSMessageManager | The MessageManager object is created and entries from the rc.xml file are read. | GetMessageManagerObject
MSCSObjectInstances | A SimpleList object and a Dictionary object are created and placed in a Dictionary object. | GetObjectInstanceDictionary
MSCSPageEncodingCharset | The s_PageEncodingCharset site configuration property is retrieved using the GetOptionsDictionary method of the AppCfg object. | GetConfigDictionary
MSCSPageProperties | A Dictionary object is created that contains one Dictionary object for each page in Partner and Customer Services. Each Dictionary object contains properties of the page. | GetPartnerAndCustomerServicePageAttributes
MSCSPageSets | The following page sets (groups of related pages) are created and placed in a Dictionary object: AdvertisementPageSet, ProductPageSet, and PurchasePageSet. | InitPageSets
MSCSPipelines | Friendly names are created for the pipelines and placed in a Dictionary object; logging is enabled. | InitSitePipelines
MSCSPredictor | The PredictorClient object is created and the Transaction prediction model is loaded from the Data Warehouse. | InitPredictor
MSCSProfileProperties | All the properties of all the profile schemas are placed into a Dictionary object. | dictGetProfileSchemaForAllProfileTypes
MSCSProfileService | The ProfileService object is created and initialized to the Profile store. | InitProfileService
MSCSProfileServiceUsesActiveDirectory | Whether Active Directory is used by the Profiling System is determined and placed in a Boolean value. | IsActiveDirectoryPresent
MSCSSecurePages | The Dictionary object containing the names of the secure pages is retrieved. All secure pages need to be put into this Dictionary object. | GetSecurePagesDictionary
MSCSSitePages | Friendly names are created for the site pages and placed in a Dictionary object. | GetSitePages
MSCSSitePaymentMethods | The payment methods for the site are retrieved and placed in a SimpleList object. | GetPaymentMethodsForSite
MSCSSiteStyle | HTML styles are defined and placed in a Dictionary object. | GetSiteStyles
WebServerCount | This server is joined to the Web farm, if there is one. The number of servers in the Web farm is retrieved. | JoinWebFarm
CSFAdvertisingContext, CSFDiscountContext, CampaignsCSFEventPipe | The Content Selection Framework is initialized for advertising, discounts, and an event-processing pipeline. | InitCSF

See Also

Initialization of Solution Sites

Page Initialization for Solution Sites


Page Initialization for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

A common subset of files is included in all pages. Most of these files provide access to numerous routines. However, the following files also provide code declared outside of any routines:

  • include\header.asp
  • include\setupenv.asp - This file provides extensive functionality, including the creation of local variables from the application variables created in the global.asa file.

See Also

Page Execution Model for Solution Sites

Initialization of Solution Sites

Application Startup for Solution Sites


Page-Level Access Control for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The EnsureAccess and EnsureAuthAccess routines, defined in the file include\std_access_lib.asp, implement page-level access control based on the user type and access type. For information about the user type and access type, see User Tracking.

The EnsureAccess and EnsureAuthAccess routines must be called from within the Main subroutine on every page that requires access control. The call must appear before any other statement in the Main subroutine.

Both the EnsureAuthAccess and EnsureAccess routines grant access to users who are registered and authenticated (user type = AUTH_USER), and have a profile. The EnsureAccess subroutine also allows access to anonymous users based on the login option. Neither of these routines allow direct anonymous access and should not be called on any page where direct access by anonymous users is wanted.

This section contains:

  • Using EnsureAuthAccess to Access Solution Sites
  • Using EnsureAccess to Access Solution Sites
  • Using Anonymous Access for the Retail Solution Site

See Also

About the Login Feature for Solution Sites

About the Profiles Feature for Solution Sites

Security Issues for Solution Sites

About the User Tracking Feature for Solution Sites


Using EnsureAuthAccess to Access Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The EnsureAuthAccess function allows page access to users who are registered and authenticated (user type = AUTH_USER), and have a profile. Authenticated users without a profile are redirected to the error\profile.asp page which displays an error message. All other user types are redirected to the login\login.asp page.

The following pages call this function:

_setadrs.asp | addrbook.asp
newaddr.asp | po.asp
services\partner\account.asp | services\change_password.asp
services\partner\edit_user.asp | services\customer\account.asp
services\partner\orders.asp | services\customer\orders.asp
services\partner\users.asp | services\customer\view_order.asp
services\partner\view_order.asp

See Also

Page-Level Access Control for Solution Sites

Using EnsureAccess to Access Solution Sites

Using Anonymous Access for the Retail Solution Site


Using EnsureAccess to Access Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following figure shows the steps performed by the EnsureAccess subroutine. These steps are described immediately following the figure.

EnsureAccess logic diagram

Authenticated Users

Page access is granted to users who are registered and authenticated (user type = AUTH_USER), and have a profile. Authenticated users without a profile are redirected to the error\profile.asp page. All other user types are redirected to the login\login.asp page. This is functionally equivalent to the EnsureAuthAccess function.

Anonymous Users

If login is not required, anonymous users (GUEST_USER) are allowed access to the page. The following steps are performed for anonymous users:

  1. If login is required on the site, the user is redirected to the login page.
  2. If the user has previously registered, the user is redirected to the welcome.asp page.
  3. Otherwise, access to the page is granted.

Anonymous Users

If login is not required, the EnsureAccess subroutine is re-called. The following steps are performed for anonymous users:

  1. If login is required on the site, the user is redirected to the login page.
  2. If profiling is enabled on the site, a new profile (with a globally unique identifier (GUID) for the user ID) is created for the user. Otherwise, only the GUID is generated for the user ID.
  3. The user ID is set in a Profile ticket either as a cookie (if enabled on the client) or a URL query string.
  4. The user type is changed to GUEST_USER and the access type to GUEST_VISIT.
  5. The EnsureAccess subroutine is called again in order to trigger the validation logic for anonymous users.

The following pages call the EnsureAccess subroutine:

_additem.asp | category.asp | product.asp
_delall.asp | confirm.asp | redir.asp
_delitem.asp | crdtcard.asp | search.asp
_editqty.asp | default.asp | srchdept.asp
_setship.asp | dispatch.asp | stepsrch.asp
addrform.asp | pickship.asp | summary.asp
basket.asp

See Also

Page-Level Access Control for Solution Sites

Using EnsureAuthAccess to Access Solution Sites

Using Anonymous Access for the Retail Solution Site


Using Anonymous Access for the Retail Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following pages in the Retail site do not call either the EnsureAuthAccess or EnsureAccess routines and thus allow direct anonymous access:

_recvpo.asp | error\baditem.asp
welcome.asp | error\badurl.asp
login\login.asp | error\closed.asp
login\logoff.asp | error\construc.asp
login\newuser.asp | error\noauth.asp
login\_guest.asp | error\profile.asp
services\error\badaction.asp | services\error\noaccess.asp
services\error\noorder.asp | services\error\noorgprofile.asp
services\error\noprofile.asp

See Also

Page-Level Access Control for Solution Sites

Using EnsureAuthAccess to Access Solution Sites

Using EnsureAccess to Access Solution Sites


Security Issues for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following security issues pertain specifically to the Solution Sites. For more information about security issues in general, see "Securing Your Site" in Commerce Server 2002 Help.

  • You must place any page you want to have secured using the Secure Socket Layer (SSL) protocol into the secure pages dictionary (MSCSSecurePages). Add secure pages to this dictionary using the GetSecurePagesDictionary function of the include\global_siteconfig_lib.asp file. SSL for the site must be enabled from the Internet Information Services (IIS) snap-in.
  • There is an IIS configuration switch that forces a site to run all of its pages in SSL mode. The Retail site was not built to support running in this mode; nor is it recommended for performance reasons.
  • Page access is controlled through the use of IIS security settings and by the EnsureAccess and EnsureAuthAccess routines, defined in the include\std_access_lib.asp file. For more information, see Page-Level Access Control for Solution Sites.
  • Tickets are property name/value pairs stored in either a cookie (if enabled) or appended to the URL query string (URL mode). A ticket contains a unique ID used for tracking and authenticating a user. If using URL mode, the ticket containing the ID of the user is available from the HTML cache and browser history list. This may be used to impersonate the user and gain access to the account information of the user. For more information about tickets, see User Tracking.
  • The BDRefresh.asp and RefreshApp.asp files allow cache refreshes to be triggered from Commerce Server Business Desk. Clearing either of these caches repeatedly could lead to a denial of service for users. These files must be secured to ensure that only Business Desk users can trigger the refresh of the pages. Secure these files by granting access to specific Business Desk users through the use of IP address access restrictions in IIS. For more information about securing these files, and other files included with the Solution Sites, see "Limiting Access to Your Site" in Commerce Server 2002 Help.
  • The csapp.ini file should be secured by turning off both read and anonymous access to it in IIS. This file should not be secured with NTFS permissions because it needs to be readable under user credentials, such as the IUSR account.
  • Several of the files in the Solution Sites have the file extension ".inc". These files are downloadable and the source is viewable if the files are not properly secured. By default, Commerce Server Site Packager denies download access to the directory in which these file are located. Be sure that this setting is preserved. These files also can be safely renamed with an ".asp" extension.
  • Access to different catalogs can be granted on a user or organization basis. Users are locked out of catalogs not in their catalog set. The catalog set information is stored in the profile of the user or their organization. The GetCatalogForUser function ensures that the user or organization has rights to a specified catalog.
  • The request wrapper functions (GetRequestString and GetRequestStringRange) prevent scripting attacks by stripping double quotes, and opening and closing element tags (< and >) from strings obtained through the Request object.
  • Partner and Customer Service pages use profile property attributes to determine whether different types of users (normal users, delegated administrators, and so on) can read or write the profile properties. For example, a user profile may have a property called "approval limit". You can use the property attributes to designate that normal users cannot edit the property, but delegated administrators can. For more information about setting the attributes, see "Profile Definitions" under "Running the Profiles Resource" in Commerce Server 2002 Help.
  • Credit card information is not stored in a database. The credit card number is passed to a payment pipeline component, which takes full ownership of the number. However, the pipeline component can be changed to explicitly save the credit card number to the order form. (The creditcard number, _cc_number, is not persisted to the database because it is prefixed by the underscore.)

See Also

Page-Level Access Control for Solution Sites

About the Login Feature for Solution Sites

About the Profiles Feature for Solution Sites

About the User Tracking Feature for Solution Sites


Caching Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Retail and Supplier Solution Sites rely heavily on data caching to improve performance. Data caching is a method of keeping data and objects that you expect to reuse in memory for quicker access. The Solution Sites cache most of the HTML displayed on the site, as well as frequently used data for advertisements and the Order Processing pipeline.

This section contains:

  • Caching Overview for Solution Sites
  • Catalog Caching for Solution Sites
  • Search Caching for Solution Sites
  • Campaign Caching for Solution Sites
  • OPP Caching for Solution Sites
  • Other Caches
  • Adding a New Cache


Caching Overview for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Retail and Supplier Solution Sites use the same code for caching. The initialization code at application startup creates a Commerce Server CacheManager object that is available at the application level. The CacheManager object maintains the collection of caches, and the caches are accessed through it.

Initialization for caching occurs in the following files:

include\global_main_lib.asp

This file contains the Main function for the global.asa file. During application initialization the Main function creates the application variable MSCSCacheManager and sets it to the CacheManager object returned by the InitCacheManager function.

include\global_cache_lib.asp

The InitCacheManager function creates a new CacheManager object. It then creates and initializes the collection of caches for the application, and then returns the CacheManager object.

All the caches can be refreshed from Commerce Server Business Desk through the BDRefresh.asp page. The BDRefresh.asp page contains code to refresh multiple caches when any one of a group of related caches is refreshed. This avoids inconsistencies between related caches, such as the catalog caches.

See Also

Catalog Caching for Solution Sites

Search Caching for Solution Sites

Campaign Caching for Solution Sites

OPP Caching for Solution Sites

Initialization of Solution Sites


Catalog Caching for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

All of the catalog caches are initialized in an identical fashion. Most of them are used to store HTML fragments. Based on your scenario you may want to adjust cache sizes or other attributes to enhance the performance of your application. Details for performance tuning are beyond the scope of this document. For more information about performance tuning, see Optimizing Commerce Server.

Initialization

The following code, from the InitCacheManager function with additional comments, shows how the cache ProductListCache is created in the Solution Sites:

'Create the configuration dictionary for the cache loader.
      Set dictProductListCacheConfig = GetDictionary()

'Get the connection string from the configuration dictionary.
    dictProductListCacheConfig("ConnectionString") = _
       dictConfig.s_TransactionConfigConnectionString

'Set cache size, this is the number of items in the cache.
'It is not related to the size of the items.
    dictProductListCacheConfig("CacheSize") = 10000

'Set the name of the table used to provide information to Business Desk.
    dictProductListCacheConfig("TableName") = _
        "CatalogCache_Virtual_Directory"

'CacheName is one of the fields inserted in the above table.
'It also is used in BDRefresh.asp to trigger
'refreshing all catalog caches.
    dictProductListCacheConfig("CacheName") = "CatalogCache"
'Machine Base URL, to be inserted in the above table.
    dictProductListCacheConfig("AppUrl") = sMachineBaseURL
...
' Configure CacheManager For ProductList Fragment Caching.
'Setting RefreshInterval to 0 disables automatic refresh.
    oCacheManager.RefreshInterval("ProductListCache") = 0
'RetryInterval in seconds.
    oCacheManager.RetryInterval("ProductListCache") = 5 * 60
'Use an LRUCache object for the cache.
    oCacheManager.CacheObjectProgId("ProductListCache") = _
        "Commerce.LRUCache"
    oCacheManager.LoaderProgId("ProductListCache") = _
        "Commerce.LRUCacheFlush"
'Reference the dictionary created above for configuration data.
    Set oCacheManager.LoaderConfig("ProductListCache") = _
        dictProductListCacheConfig

Using Caches

The Solution Sites use four wrapper routines to simplify moving items in or out of the catalog caches.

CacheFragment

CacheObject

LookupCachedFragment

LookupCachedObject

Note

  • These routines expect an LRUCache object name, and will not work with a dictionary object name.

During site development it can be useful to disable caching. When troubleshooting caching problems it can be useful know whether a particular item was cached. There is commented debug code in the LookupCachedFragment function to show if a fragment was cached.

Individual Caches

There are six caches, not counting search caches, that are related to the catalog. The search caches are discussed in Search Caching for Solution Sites.

ProductListCache

QueryCatalogInfoCache

DiscountProductInfo

DefaultPageCache

ProductPageCache

StaticSectionsCache

ProductListCache

The cache ProductListCache is used to store product list HTML fragments on the category.asp page. It is referenced in the htmCategoryHTML and htmCachedProductList functions.

QueryCatalogInfoCache

The cache QueryCatalogInfoCache is used by the QueryCatalogInfo pipeline component. For more information, see QueryCatalogInfo. The Commerce Server 2002 QueryCatalogInfo pipeline component expects a cache of this name.

DiscountProductInfo

The discountProductInfo cache is used to store SimpleList objects containing product information on the template\discount.asp helper page. It is referenced in the GetShownProductsDetails and oCachedDiscountProductInfo functions.

DefaultPageCache

The DefaultPageCache cache is used to store the HTML for the user's default page on the default.asp page. It is referenced in the Main (default.asp) function on the page and in the htmRenderDefaultPage function.

ProductPageCache

The cache ProductPageCache is used to store product page HTML on the product.asp page. It is referenced in the Main (product.asp) function.

StaticSectionsCache

The cache StaticSectionsCache is used to store a variety of miscellaneous HTML fragments on the site. The following are examples of pages that reference the cache StaticSectionsCache:

  • template\menu.asp is referenced in the htmRenderLoginSection and htmRenderMenu functions.
  • template\navbar.inc is referenced in the RenderNavbar function.
  • include\form_lib.asp is referenced in the htmRenderFillOutForm function.
  • pickship.asp is referenced in the Main (pickship.asp) and htmCachedShippingMethods functions.

See Also

Search Caching for Solution Sites

Optimizing Commerce Server


Search Caching for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

There are three caches for search — one for full text search and two that support specification searches. They are created in the identical fashion as the catalog caches, and are refreshed with them.

SearchDeptPageCache

StepSearchPageCache

FTSearchPageCache

SearchDeptPageCache

The cache SearchDeptPageCache is used to store search results on the srchdept.asp page. This page is reached by the Advanced link next to the Search button on the menu pane. This cache is referenced in the Main (srchdept.asp) and bIsSearchDeptPageCached functions.

StepSearchPageCache

The cache StepSearchPageCache is used to store search results on the stepsrch.asp page. This page is reached from the department links on the srchdept.asp page. This cache is referenced in the Main (stepsrch.asp) and bIsStepSearchPageCached functions.

FTSearchPageCache

The cache FTSearchPageCache is used to store full text search results on the search.asp page. This page is reached by clicking the Search button on the menu pane. This cache is referenced in the bFullTextResultsAreCached and htmRenderFullTextSearchResults functions.

See Also

Catalog Caching for Solution Sites

template\menu.asp

Product Catalog Programming Concepts

Code to Perform a Specification Search of a Catalog

Code to Perform a Free-Text Search of a Catalog


Campaign Caching for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites provide two caches for advertisements and discounts that are used by the Content Selection Framework (CSF). Site developers do not need to reference these caches. Unlike the catalog caches, these caches use Dictionary objects, so they are initialized in a slightly different way.

Advertisement Cache

Discounts Cache

Advertisement Cache

Initialization

The following code, from the InitCacheManager function, shows the creation of the advertising cache:

'Create the configuration dictionary.
    Set dictCampaignConfig = GetDictionary()
    dictCampaignConfig("ConnectionString") = _
        dictConfig.s_CampaignsConnectionString
    Set dictCampaignConfig("Evaluator") = oEvaluator
        ' oEvaluator is the Commerce Server ExpressionEvaluator.

    ' Configure CacheManager for ads.
    oCacheManager.RefreshInterval("advertising") = 5*60
    oCacheManager.RetryInterval("advertising") = 60
    oCacheManager.LoaderProgId("advertising") = _
        "Commerce.CSFLoadAdvertisements"
    oCacheManager.WriterProgId("advertising") = "Commerce.CSFWriteEvents"
    Set oCacheManager.LoaderConfig("advertising") = dictCampaignConfig
    Set oCacheManager.WriterConfig("advertising") = dictCampaignConfig

Discounts Cache

Initialization

The following code, from the InitCacheManager function, shows the creation of the discounts cache:

'Create the configuration dictionary.
    Set dictCampaignConfig = GetDictionary()
    dictCampaignConfig("ConnectionString") = _
        dictConfig.s_CampaignsConnectionString
    Set dictCampaignConfig("Evaluator") = oEvaluator
        ' oEvaluator is the Commerce Server ExpressionEvaluator.

'Configure CacheManager for discounts.
    'Setting RefreshInterval to 0 disables automatic refreshing.
    oCacheManager.RefreshInterval("discounts") = 0
    oCacheManager.RetryInterval("discounts") = 60    'seconds
    oCacheManager.LoaderProgId("discounts") = "Commerce.CSFLoadDiscounts"
    oCacheManager.WriterProgId("discounts") = "Commerce.CSFWriteEvents"
    Set oCacheManager.LoaderConfig("discounts") = dictCampaignConfig
    Set oCacheManager.WriterConfig("discounts") = dictCampaignConfig

See Also

Content Selection Pipelines


OPP Caching for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites use several pipeline components that require specific caches. The Solution Sites provide two caches for tax and shipping that are used by the Order Processing pipeline. Site developers do not need to reference these caches. Unlike the catalog caches, these caches use Dictionary objects, so they are initialized in a slightly different way.

SampleRegionalTaxCache Cache

Shipping Method Router Cache

SampleRegionalTaxCache Cache

Initialization

The following code, from the InitCacheManager function, shows the creation of the SampleRegionalTaxCache cache:

'Create the configuration dictionary.
    Set dictTransactionConfig = GetDictionary()
    dictTransactionConfig("ConnectionString") = _
        dictConfig.s_TransactionConfigConnectionString

    ' Configure CacheManager for tax.
    oCacheManager.RefreshInterval("SampleRegionalTaxCache") = 0
    oCacheManager.RetryInterval("SampleRegionalTaxCache") = 60
    oCacheManager.LoaderProgId("SampleRegionalTaxCache") = _
        "Commerce.SampleRegionalTaxCache"
    Set oCacheManager.LoaderConfig("SampleRegionalTaxCache") = _
        dictTransactionConfig

The initialization code calls the GetCache method on the tax cache to ensure that Commerce Server Business Desk is informed that this application is caching tax information.

    Call oCacheManager.GetCache("SampleRegionalTaxCache")

Shipping Method Router Cache

The Shipping Method Router pipeline component requires a cache named ShippingManagerCache.

Initialization

The following code, from the InitCacheManager function, shows the creation of the cache ShippingManagerCache:

'Create the configuration dictionary.
    Set dictTransactionConfig = GetDictionary()
    dictTransactionConfig("ConnectionString") = _
        dictConfig.s_TransactionConfigConnectionString

    ' Configure CacheManager for shipping.
    oCacheManager.RefreshInterval("ShippingManagerCache") = 0
    oCacheManager.RetryInterval("ShippingManagerCache") = 60
    oCacheManager.LoaderProgId("ShippingManagerCache") = "Commerce.ShippingManagerCache"
    Set oCacheManager.LoaderConfig("ShippingManagerCache") = dictTransactionConfig

    ' Call GetCache() on the shipping cache to ensure that Business Desk
    ' is informed that this application is caching shipping information.
    Call oCacheManager.GetCache("ShippingManagerCache")

See Also

Shipping Objects

Tax Objects


Other Caches

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The CatalogManager object properties and the profiles in the ProfileService object are cached in application level dictionaries for performance reasons. This is a different mechanism from the other caches; the CacheManager object does not manage these dictionaries.

Catalog Manager Properties Cache

Profile Definition Cache

CatalogManager Properties Cache

The MSCSCatalogAttribs dictionary caches the catalog attributes as exposed by the CatalogManager object. This cache is used for quicker attribute lookup on the product.asp page. The dictGetCatalogAttributes function loads properties into the dictionary. This dictionary is refreshed when the other catalog caches are refreshed in the file BDRefresh.asp.

Profile Definition Cache

The MSCSProfileProperties dictionary caches the profile definition information. The dictGetProfileSchemaForAllProfileTypes function loads the profile definitions from MSCSProfileService in the include\global_main_lib.asp file. This cache has a refresh mechanism that is similar to other site caches. However the Publish Profiles module in Commerce Server Business Desk calls the RefreshApp.asp page instead of the BDRefresh.asp file.


Adding a New Cache

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

You can create a cache using either a dictionary or LRUCache object. The choice depends on how you use the cache. If you are going to cache HTML fragments, particularly if the number of fragments is likely to grow beyond a reasonable cache size, it is advisable that you use the LRUCache object. The wrapper functions discussed in Catalog Caching for Solution Sites expect an LRUCache object.

Initialize your cache in the file include\std_cache_lib.asp. Depending on how you want to refresh your cache, you may need to modify the file BDRefresh.asp as follows. If you are adding another catalog cache you will need to add it to the list catalog caches. If you are adding multiple caches that must be refreshed together, you will need to add a an additional case statement to detect your cache names and refresh all of your caches

In order to refresh a cache from Commerce Server Business Desk the CacheLoader component has to notify Business Desk that the cache is present. The CacheLoader component inserts a new record, or updates an existing record, in a table in your site database with the computer URL, the cache name, and the date created. If you are adding an additional catalog-related cache you can use the same table as the other catalog caches, the CatalogCache_Virtual_Directory table.

If you are adding a cache for data that is not related to an existing data source you will want to create a new table for registering the cache. See the txVirtual_directory table, used for order related caches, in the Solution Sites database for an example of the table to create if you are caching data from a different source. You will need to modify Business Desk to look at your new table. See the retailbizdesk\productionrefresh\refresh.asp file in the Business Desk site for an example of Business Desk code that triggers a cache refresh.

The LRUCacheLoader component uses information in the LoaderConfig dictionary to write the necessary record the first time the cache is called. The following code shows how the cache ProductListCache is configured:

'Get the connection string from the configuration dictionary.
'This is the connection string to the database containing the table.
    dictProductListCacheConfig("ConnectionString") = _
       dictConfig.s_TransactionConfigConnectionString

'Set the name of the table used to provide information to Business Desk.
    dictProductListCacheConfig("TableName") = _
        "CatalogCache_Virtual_Directory"

'CacheName is one of the fields inserted in the above table.
'It also is used in BDRefresh.asp to trigger
'refreshing all catalog caches.
    dictProductListCacheConfig("CacheName") = "CatalogCache"
'Machine Base URL, to be inserted in the above table.
    dictProductListCacheConfig("AppUrl") = sMachineBaseURL
...

See Also

Code to Implement Custom Cache Components

Code to Manipulate an LRUCache Object

Building Pipeline Components

Building Business Desk Modules


Constants in Solution Site Applications

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Most of the constants in the Solution Sites application are contained in the AppConsts 1.0 Type Library, which can be found in <Drive>:\Program Files\Microsoft Commerce Server\appconsts.tlb. This type library was released with Microsoft Commerce Server 2002 and can be used by any application. Declaring constants in a type library greatly improves performance, but does make it more difficult to change the values of the constants. You can view the contents of the type library with Microsoft Visual Basic or the OLE View tool in Microsoft Visual Studio. For a list of the constants, see Constants Reference.

The type library is declared in a METADATA tag near the top of the global.asa file. This makes the constants available anywhere within the application. Search for "TypeLibrary Declarations" on the Microsoft Developer Network (MSDN) Web site at http://go.microsoft.com/fwlink/?LinkId=5161 for more information about using the "TypeLib" METADATA tag.

The AppConsts 1.0 Type Library replaced the include file \include\consts.asp during the development of the Solution Sites application. This change was made to improve performance. This file was left in the Solution Sites application so that constants could be added to the application without recompiling the type library. The file \include\consts.asp is currently empty.

The file services\include\const.asp contains constants specific to the partner/customer service portion of the Solution Sites application.

This section contains:

  • Using Compiled Constants in Solution Site Applications
  • Re-compiling Constants Using MIDL for Solution Site Applications

See Also

Constants Reference


Using Compiled Constants in Solution Site Applications

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The constants declared in the AppConsts 1.0 Type Library are available throughout the scope of the application, and can be used exactly like constants declared directly in the ASP pages.

It is possible to have constants with the same name in more than one type library. You can avoid ambiguous references to constants by adding the type library name as a prefix for the constant, for example, AppConstsLib.SITE_NAME.

See Also

Re-compiling Constants Using MIDL for Solution Site Applications


Re-compiling Constants Using MIDL for Solution Site Applications

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

If you change any of the constants declared in the AppConsts 1.0 Type Library you will need to recompile the edited source to make a new type library

The source for the AppConsts 1.0 Type Library is in the Microsoft Commerce Server SDK at <Drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Solution Sites\AppConsts.idl.

The following procedure shows the general steps to follow to create a new type library.

To re-compile constants using MIDL

  1. Edit the .idl file as needed.
  2. Generate a new globally unique identifier (GUID) with the GUIDGEN.exe file (included with Microsoft Visual Studio).
  3. Replace the universally unique identifier (UUID) declaration in the .idl file with the new GUID.
  4. [optional]Rename the type library.
  5. Run the Microsoft Interface Definition Language (MIDL) compiler.

    Note

    • For more information about running the MIDL compiler, search the Microsoft Developer Network (MSDN) Web site at http://go.microsoft.com/fwlink/?LinkId=5161 for "Invoking the MIDL Compiler."
  6. [optional] Register the resulting .tlb file.

    Note

    • If you have multiple servers the type library will need to be registered on each server.
    • If you write the METADATA tag to reference the type library by file name rather than by UUID, you do not have to register the type library. Saving the file at the root of your application will make it easy to include the file if the application is packaged for distribution to multiple servers.
  7. Modify the METADATA tag to reference the new type library. The following example references a type library by its file name.
    <!--METADATA TYPE="TypeLib"
FILE="MyComponent.tlb"
-->

    Note

    • For more information about using the "TypeLib" METADATA tag, search the Microsoft Developer Network (MSDN) Web site at http://go.microsoft.com/fwlink/?LinkId=5161 for "TypeLibrary Declarations."


HTML Construction for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites use a technique for constructing HTML that differs from the more traditional technique in which HTML tags, content, and script are freely intermixed on Web pages. Opposed to this, nearly all of the HTML returned to browsers by the Solution Sites is produced by script.

As is the case in most large Web sites, the data itself, such as the descriptions and prices of products in the catalog, is retrieved from databases using script.

The Solution Sites take this technique further, retrieving the content that explains the data from strings that are defined centrally. This methodology has the advantage of making localization of the Web site much more straightforward.

Script is used to intermix the data, the centralized content, and the HTML tags that format both. The script produces strings, sometimes quite large, that are then written to the browser using either the Write method of the intrinsic Response object, or the abbreviated form: <%= sHTM %>.

One of the main advantages of this technique, that builds the HTML in strings, is that the strings can be cached, thereby reducing database access. The Solution Sites use caching extensively.

The Solution Sites include a utility routine file that contains routines dedicated to helping you construct HTML. The name of this file is include\html_lib.asp.

This section contains:

  • HTML Construction Methodology for Solution Sites Provides a brief explanation of the string concatenation methodology used within the Solution Sites script to build strings containing complex HTML.
  • Categories of Routines used for Solution Sites Provides a functional categorization of the routines in the file include\html_lib.asp.


HTML Construction Methodology for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

String concatenation is used extensively throughout the Solution Sites code to build the strings of HTML that are eventually written to the browser. The nature of HTML lends itself quite naturally to this technique, as the following examples show.

Given a hypothetical routine that produces HTML, named htmReturnsHTML, and a variable for "collecting" the accumulating HTML, named htmContent, the following examples show how intuitive it is to wrap, prepend, or append one string of HTML to another.

Wrap: htmContent = "<B>" & htmReturnsHTML() & "</B>"
Wrap: htmContent = "<P>" & htmContent & "</P>"
Prepend: htmContent = htmReturnsHTML() & htmContent
Append: htmContent = htmContent & htmReturnsHTML()

The file include\html_lib.asp contains many routines that have encapsulated these types of string concatenations. Some are quite simple, like the functions Bold and Italic. Others are more complex, like the routines provided for building HTML tables. For more information about the different categories of routines provided in the file include\html_lib.asp, see Categories of Routines used for Solution Sites.

Another important aspect of the HTML routines concerns styles, which are most often set by specifying attributes to the HTML elements. For example, the function RenderText takes two parameters: str and sAttList. The parameter str provides the basic string that is going to be wrapped in a FONT element. The parameter sAttList provides a list of attributes that will be associated with the FONT element, providing such characteristics as the type and size of the font to be rendered. The function RenderText consists of the following line of code:

RenderText = "<FONT" & sAttList & ">" & str & "</FONT>"

Notice how the value of the sAttList parameter is embedded within the starting FONT tag, in the position where element attributes occur. The strings you construct for the sAttList parameters that are used by many of the HTML routines are space-separated lists of attributes appropriate to the element with which they are being associated. They must begin with a space character so that the first attribute specified will be separated from the element tag itself.

Another way in which styles are specified occurs globally, in a Dictionary object accessible through the page variable MSCSSiteStyle. This dictionary contains numerous entries that provide styles to be applied in different contexts throughout the HTML produced by the Solution Sites code. For example, it is common to see a line of code like the following in the Solution Sites code (RenderLink is called 43 times), which shows the global link style being passed as the sAttList parameter to the RenderLink function:

htmContent = htmContent & RenderLink(urlLink, htmLinkText, _
                                     MSCSSiteStyle.Link) & BR

This technique allows you to easily make global changes to the styles used in your site. For more information about the global style settings, see Customizing Styles.

If suitable for the users of your site, you could implement client-side styles by using these global style dictionary entries to define CLASS and ID attributes for use with Cascading Style Sheet (CSS) files.

The preceeding RenderLink example illustrates another important aspect of the HTML construction infrastructure used by the Solution Sites: constants are provided for some of the simpler HTML tags, such as BR for "<BR>". Using these constants can make the code read more cleanly. For more information about these constants, see HTMLLib Constants.


Categories of Routines used for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The routines in the file include\html_lib.asp can be categorized as follows:

Basic Formatting Routines

The routines in this category are used to format the string passed to them in using a basic HTML formatting element, such as B, I, or P, for bold, italic, and paragraph, respectively. Two of the routines, RenderElement and Tag, allow for an arbitrary element to be specified, making them very flexible.

Bold
BRTag
Italic
PTag
RenderElement
Tag
RenderPreFormattedText
RenderText

Hyperlinking Routines

The routines in this category are unique because they require that a URL be passed as one of their parameters (exceptions to this rule are the RenderForm and RenderImageButton routines, which must also be passed URLs as parameters; they has been categorized with the other form building routines below).

RenderImage
RenderLink

List Building Routines

The routines in this category are used to build HTML lists. They are passed their data in varying forms, and they convert the data to be wrapped in a series of LI elements, sometimes surrounding those with a UL element.

RenderListFromSimpleList
RenderUnorderedList
RenderUnorderedListFromSimpleList

Table Building Routines

The routines in this category are used to build HTML tables. Their table data is passed to them in the form of array parameters, with an entire row of data being passed in a single array. The routine RenderTable is always called last, as it wraps the accumulated TR elements in a TABLE element.

RenderTable
RenderTableDataRow
RenderTableHeaderRow
RenderTableRow

Form Building Routines

The routines in this category are used to build HTML forms. All of them except the RenderForm routine are used to build INPUT elements with TYPE attributes of various sorts. Once a series of INPUT elements has been accumulated, the RenderForm routine is called to wrap those elements in a FORM element, with the specified ACTION and METHOD attributes.

Note that the use of the forms infrastructure provided by the Solution Sites means that you generally do not need to call these routines directly. For more information about the forms infrastructure, see Forms Processing for Solution Sites.

RenderCheckBox
RenderHiddenField
RenderImageButton
RenderListBox
RenderListBoxFromArray
RenderListBoxFromSimpleList
RenderPasswordBox
RenderRadioButton
RenderResetButton
RenderSubmitButton
RenderTextBox
RenderForm

Miscellaneous Array Routines

The routines in this category are miscellaneous routines that share the characteristic of performing HTML formatting operations on parameters that are arrays of strings.

GetRepeatStyle
InsertBlankSpace
InsertLineBreaks
InsertParagraphBreaks


Forms Processing for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Forms processing and rendering in the Commerce Server Solution Sites is based on a data structure that consists of a Dictionary object containing a collection of SimpleList objects, each of which contains a series of Dictionary objects. Each SimpleList object represents a form, and contains an ordered set of form fields, represented as subordinate Dictionary objects. Each of these Dictionary objects represents the schema of the single form field. This structure can be illustrated as follows:

Form Definitions Dictionary
FormA Fields SimpleList
Field1 Schema Dictionary
Field2 Schema Dictionary
. . .
FieldN Schema Dictionary
FormB Fields SimpleList
Field1 Schema Dictionary
Field2 Schema Dictionary
. . .
FieldN Schema Dictionary
. . .
FormN Fields SimpleList
Field1 Schema Dictionary
Field2 Schema Dictionary
. . .
FieldN Schema Dictionary

The topics in this section provide additional information about the forms infrastructure so that existing forms can be easily modified, and new forms can be easily created.

This section contains:

  • Form Definition Keys Used in Solution Sites
  • Form Field Schema
  • Run Time Use


Form Definition Keys Used in Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The subroutine Main in the file include\global_main_lib.asp executes the following line of code to initialize the form definitions Dictionary object and assign it to the intrinsic Application object using the key "MSCSForms":

Set Application("MSCSForms") = GetFormDefinitions()

The function GetFormDefinitions contains lines of the following form, which establish a series of SimpleList objects to represent the various forms used within the Solution Sites, and associate them with well-known key names in the Form Definition Dictionary:

Set dictForms.Value("FormDefKey") = GetFormTypeFieldDefinitions()

The following table shows the form definition keys used in the Solution Sites and the corresponding initialization function.

Form Definition Keys | Initialization Function
AddressBookAddress | GetAddressBookAddressFieldDefinitions
BillToAddress | GetAddressFieldDefinitions
CreditCard | GetCreditCardFieldDefinitions
Login | GetLoginFieldDefinitions
PurchaseOrder | GetPurchaseOrderFieldDefinitions
Registration | GetRegistrationFieldDefinitions
ShipToAddress | GetShipToAddressFieldDefinitions

Once defined, the form definitions are accessed in various pages in the Solution Sites and used for preparing the HTML from which the form will be rendered, as well as in form validation routines. The Solution Sites code contains lines of the following form to retrieve the SimpleList object that represents the fields of a particular form:

Set listFlds = Application("MSCSForms").Value("FormDefKey")


Form Field Schema

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The fields in each form are represented as a SimpleList object containing a Dictionary object for each field in the form. Each of these Dictionary objects is populated with a well-known set of entries corresponding to attributes of the field; in other words, the schema for the field. The following table describes these attributes.

Field Schema Dictionary Key | Description
Name | An arbitrary string naming the field.
Label | An arbitrary string providing a label for the field in the user interface. The string is retrieved from the MessageManager object for localization purposes.
Size | A number providing the size of the input field.
MinLength | A number providing the minimum required length of the input.
MaxLength | A number providing the maximum required length of the input.
InputType | A constant providing the type of the input field. Legal values are: TEXTBOX, LISTBOX, PASSWORD, and CHECKBOX.
ErrorMessage | A string providing an error message when field validation fails. The string is retrieved from the MessageManager object for localization purposes.
IsRequired | A Boolean specifying whether the field is required or not, and used during field validation.
Pattern | An optional string providing a regular expression that must be matched for field validation to succeed.
PatternErrorMessage | An optional string providing a custom error message when pattern validation fails. If this dictionary entry is not supplied, and the Pattern entry is supplied, and pattern validation fails, the ErrorMessage entry will be used to report the error.
RawInput | If this property is not Null, this form field will be retrieved without stripping the characters quote ("), left bracket (<), or right bracket (>), as normally performed by the routine GetRequestString. If you read fields using this technique, make sure you do not write the field values back to the browser, as it could lead to erroneous interpretation of content as client script.
ListItems | When the InputType entry is set to "LISTBOX", a SimpleList object that provides list box display names.
ListValues | When the InputType entry is set to "LISTBOX", a SimpleList object that provides list box values corresponding to the display names.


Run Time Use

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The SimpleList object that represents the schema of the fields in a particular form is passed as a function parameter in a variety of circumstances, often in conjunction with one or two other Dictionary objects.

The first type of associated Dictionary object is most often associated with the parameter name dictFldVals. This type of Dictionary object contains key/value pairs where the keys are the names of the fields (corresponding to the Name key in the field schema dictionary), and the values are either actual submitted form values or default values for that form.

The second type of associated Dictionary object is most often associated with the parameter name dictFldErrs. This type of Dictionary object contains key/value pairs where the keys are the names of the fields (corresponding to the Name key in the field schema dictionary), and the values are error messages associated with validation failures for the corresponding field.

There are five basic circumstances where the form field SimpleList objects and the associated types of Dictionary objects are used in the Solution Sites code. The first three of these correspond to function calls related to form field validation, the fourth corresponds to initializing default values for forms, and the fifth corresponds to the preparation of the HTML that will render the form.

This section contains:

  • Forms Processing Code Flow for Solution Sites
  • IsFormSubmitted Routine
  • GetSubmittedFieldValues Routine
  • GetFieldsErrorDictionary Routine
  • ValidateSubmittedItem Routines
  • GetDefaultValuesForItemFields Routines
  • htmRenderFillOutForm Routine


Forms Processing Code Flow for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

There are three typical scenarios that result in different code flow:

  • Form is being shown for the first time
  • Form is submitted with data that is not valid
  • Form is submitted with valid data

Form is being shown for the first time

  1. The call to the IsFormSubmitted routine determines that the form is being shown for the first time.
  2. Call the htmRenderFillOutForm routine to prepare the HTML that will render the form. The parameters are as follows:

    urlAction

    Typically set to the page that the form is on (for pages that are self-validating).

    sFormName

    The name of the form.

    dictFieldVals

    A Dictionary object containing initial values for the form. Pass Nothing to create an empty form. For a pre-populated form, pass a dictionary with key/value pairs where the keys are the form field names, and the values are the initial values. The Solution Sites use the GetDefaultValuesForItemFields routines to build these dictionaries.

    dictMessages

    Set to Nothing.

Form is submitted with data that is not valid

  1. The call to the IsFormSubmitted routine determines that the form is being submitted.
  2. Call the GetSubmittedFieldValues routine to create a Dictionary object that contains the form field values submitted with the HTTP request. The one parameter is the field definition dictionary for the form.
  3. Call the GetFieldsErrorDictionary routine to perform field-level validation based on the passed field definition dictionary and the dictionary with field values returned by the call to the GetSubmittedFieldValues routine. If the returned Dictionary object is empty, no field-level validation errors were found.
  4. Perform any custom validation that is required, such as validation that requires database access, or cross-field validation. If the custom validation code associates error messages with particular form fields, it should write error messages into the same Dictionary object returned by the GetFieldsErrorDictionary routine. In the Solution Sites, the ValidateSubmittedItem routines perform this function.
  5. In this scenario, field validation errors were found in either step 4 or step 5 (or both). Call the htmRenderFillOutForm routine to prepare the HTML that will re-render the form so that the user can correct the invalid data. The parameters are as follows:

    urlAction

    Typically set to the page that the form is on (for pages that are self-validating).

    sFormName

    The name of the form.

    dictFieldVals

    A Dictionary object that can contain either the original default data for the form, or the posted data that includes the data that is not valid, or a combination of the two. You could also pass Nothing if it makes the most sense for the user to start from scratch.

    dictMessages

    A Dictionary object that contains error messages associated with the form fields that failed validation. This dictionary contains key/value pairs where the keys are the form field names, and the values are error messages that will be displayed below the form fields to which they correspond. If this parameter is set to Nothing, no such error messages will be displayed.

Form is submitted with valid data

  1. The call to the IsFormSubmitted routine determines that the form is being submitted.
  2. Call the GetSubmittedFieldValues routine to create a Dictionary object that contains the form field values submitted with the HTTP request. The one parameter is the field definition dictionary for the form.
  3. The call to the GetFieldsErrorDictionary routine performs field-level validation based on the passed field definition dictionary and the dictionary with field values returned by the call to the GetSubmittedFieldValues routine. It returns an empty Dictionary object, indicating that no field-level validation errors were found.
  4. Custom validation, normally performed by the ValidateSubmittedItem routines, determines that no other errors are present.
  5. Since no form field errors were found, accept the form submittal by processing the form data and proceeding to the next page (usually by re-directing to a different page).


IsFormSubmitted Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The function IsFormSubmitted determines whether the form has been submitted with values to be validated and processed, or whether the form is being displayed for the first time. To make this determination, this function looks for a request variable named MODE. If present, the form has been submitted with data.


GetSubmittedFieldValues Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The function GetSubmittedFieldValues creates, initializes, and returns a Dictionary object that contains an entry for every posted form value that has a name corresponding to one of the field names in the field definition SimpleList object passed in the listFlds parameter.

The following line of code shows the creation of such a Dictionary object:

Set dictFldVals = GetSubmittedFieldValues(listFlds)


GetFieldsErrorDictionary Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The function GetFieldsErrorDictionary creates, initializes, and returns a Dictionary object that contains an error message entry for every posted form field value that fails validation, as specified by the values passed in the dictFldVals parameter and the schema passed in the listFlds parameter.

The returned Dictionary object will be empty if there are no errors. When errors are found, this dictionary can be passed into the routine htmRenderFillOutForm to show error messages associated with particular fields.

The following line of code shows the creation of such a Dictionary object:

Set dictFldErrs = GetFieldsErrorDictionary(listFlds, dictFldVals)


ValidateSubmittedItem Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following functions are used to perform custom validation for submitted form data for different types of forms used within Commerce Server. The field definition SimpleList object passed in their listFlds parameters provide the schema against which the values passed in the Dictionary object passed in the dictFldVals parameter can be tested.

iValidateSubmittedAddress
iValidateSubmittedAddressForAddressBook
iValidateSubmittedRegistrationData
ValidateSubmittedCreditCardData
ValidateSubmittedLoginData
ValidateSubmittedPurchaseOrderData

The schema also provides the error messages that are copied into the Dictionary object passed in the dictFldErrs parameter of these functions. The function GetFieldsErrorDictionary is called to perform the field-level validation based on the schema, and other, more specialized validation and error message copying are performed in the ValidateSubmittedItem functions.

The following code shows a call to validate a submitted address form:

iErrorLevel = iValidateSubmittedAddress(listFlds, _
                                        dictFldVals, _
                                        dictFldErrs)

In this call, the listFlds and dictFldVals parameters are passing data into the function, and the return value and the dictFldErrs parameter are passing data out of the function.


GetDefaultValuesForItemFields Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following functions create, initialize, and return Dictionary objects that contain an entry for every default form value that has a name corresponding to one of the field names in the field definition SimpleList object passed in their listFlds parameters.

GetDefaultValuesForAddressFormFields
GetDefaultValuesForCreditCardFields
GetDefaultValuesForPurchaseOrderFields

Depending on how the default values are being derived, the field definition SimpleList object can be used to iterate through the fields in the form.

The following code shows the creation of such a Dictionary object:

Set dictFldVals = GetDefaultValuesForAddressFormFields(mscsOrderGrp, _
                                                       listFlds, _
                                                       iAddrType)


htmRenderFillOutForm Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The function htmRenderFillOutForm prepares the HTML that will render the specified form. The form is constructed based on the fields definitions dictionary, a form values dictionary, and a form error messages dictionary. The form errors dictionary allows the form to redisplayed upon validation failure, with error messages displayed next to the fields found to have data that is not valid.

Rather than passing the form definition SimpleList object, the form definition dictionary key is passed and the form definition SimpleList object is retrieved directly from the intrinsic Application object.

Form field values are passed in the Dictionary object specified by the dictFldVals parameter. These might be values actually posted using the form, or they might be default values. In any event, if a value is present for a particular form field, it is provided as a default. You can pass Nothing for this parameter to display a completely blank form.

Form field error messages are passed in the Dictionary object specified by the dictFldErrs parameter. This dictionary is typically built using the routine GetFieldsErrorDictionary and one of the routines with names of the form ValidateSubmittedItem routines. An error message will be present for a particular field when there is an error associated with that field. If an error message is present, it is added to the produced HTML such that it will appear directly below the form field to which it corresponds.

The following code shows how the HTML for rendering a form is constructed and appended to HTML that has already been constructed:

htmContent = htmContent & htmRenderFillOutForm(urlAction, _
                                               "ShipToAddress", _
                                               dictFldVals, _
                                               dictFldErrs)


Pipelines for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The default implementation of the Solution Sites uses three pipeline files to automate the business process. First, the OPP for Baskets gathers basket information and computes the order subtotal. Next, the OPP for Totaling Orders, computes tax, shipping, handling, and the order total. And finally, the Checkout pipeline receives and accepts the payment information. Pipeline logging can be enabled for pipelines to aid in the debugging process.

If the App Default Config settings enable BizTalk Server integration, the recvpo.pcf file is used to handle the processing of purchase orders received through BizTalk Server.

This section contains:

  • OPP for Baskets
  • OPP for Checkout
  • OPP for Receiving Purchase Orders
  • OPP for Totaling Orders
  • Pipeline Log Files


OPP for Baskets

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that gathers basket information and computes the order subtotal.

The basket.pcf file is modeled on the plan.pct file (pipeline configuration template). For more information about the plan.pct file, see "Plan Pipeline" in Commerce Server 2002 Help.

Product Info Stage

This stage checks for product information and removes any unknown products.

The components included in this stage are shown in the following table.

Component | Description
QueryCatalogInfo | Retrieves catalog information for every item in the order form. Uses the Commerce Server 2002 Product Catalog System. Marks missing items for deletion and adds basket errors if necessary.
RequiredProdInfo | Deletes any items marked for deletion and writes the appropriate error messages.

Merchant Information Stage

This stage retrieves and writes merchant information to the OrderForm object.

Shopper Information Stage

This stage retrieves and writes shopper information to the OrderForm object.

Order Initialization Stage

This stage sets the initial order information on the OrderForm object and verifies that the OrderForm object contains an order ID.

The component included in this stage is shown in the following table.

Component | Description
RequiredOrderInitCy | Initializes the OrderForm object to contain user information.

Order Check Stage

This stage verifies that the order can be processed.

The component included in this stage is shown in the following table.

Component | Description
RequiredOrderCheck | Ensures that the OrderForm object contains at least one line item.

Item Price Stage

This stage ensures that the _cy_iadjust_currentprice key for each item contains the most current price information.

The components included in this stage are shown in the following table.

Component | Description
DefaultItemPriceCy | Initializes the _cy_iadjust_regularprice key for each line item to store the most current price.
RequiredItemPriceCy | Ensures that the _cy_iadjust_regularprice key for each line item is set.

Item Adjust Price Stage

This stage ensures that the _cy_iadjust_currentprice key for each item contains the most current price.

The component included in this stage is shown in the following table.

Component | Description
RequiredItemAdjustPriceCy | Validates that the price of the item is set and has not changed since it was added to the basket. If the price has changed, the error message "_Basket_Error" is returned.

Order Adjust Price Stage

This stage decrements the _n_unadjusted key, which is initialized to 'quantity' by the RequiredOrderInit component as line item units participate in discounts. The _cy_oadjust_subtotal key must be set to the price of the adjusted items.

The components included in this stage are shown in the following table.

Component | Description
Order Discount | Applies discounts scheduled in the Campaign Manager module in Commerce Server Business Desk to the shopping basket.
RequiredOrderAdjustPriceCy | Adds any unadjusted items to the subtotal. Calculates the discount savings for each line item.

Order Subtotal Stage

This stage calculates the subtotal for an order.

The components included in this stage are shown in the following table.

Component | Description
DefaultOrderSubTotalCy | Sets the _cy_oadjust_subtotal key to sum of _cy_oadjust_adjustedprice key for each item.
RequiredOrderSubTotalCy | Ensures that the _oadjust_subtotal key is available.

See Also

About the Basket Feature for Solution Sites

basket.pcf


OPP for Checkout

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that receives and accepts payment information.

Purchase Check Stage

This stage is used to verify that the address and credit card information the user provides meets certain criteria.

The component included in this stage is shown in the following table.

Component | Description
Commerce.Splitter | Divides an order into groups based on their vendor.

Payment Stage

This stage approves credit card payments.

The components included in this stage are shown in the following table.

Component | Description
Scriptor--Payment Info | This scriptor pipeline component sets the billing_currency and billing_amount keys as expected by payment components The billing_currency key value should be an ISO 4217 3-digit code. The billing_amount key value should be the _cy_total_total key converted to the billing_currency key. As needs dictate, consider rewriting this scriptor to compiled code.
ValidateCreditCard | Verifies that each credit card field on the order form contains data, that the credit card has not expired, and that the number is properly formed.
DefaultPayment | Assigns an initial value to the payment_auth_code key.
RequiredPayment | Ensures that the _payment_auth_code key is not NULL.

Accept Stage

This stage initiates order tracking, generates purchase orders, and saves the order.

The components included in this stage are shown in the following table.

Component | Description
RecordEvent | Records events such as clicks and requests in the Performance dictionary.
IISAppendToLog | Records information about content selection results in the QueryString key of the Internet Information Services (IIS) log file.

See Also

checkout.pcf

About the Checkout Feature for Solution Sites

Pipelines for Solution Sites


OPP for Receiving Purchase Orders

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that enables the Web site to receive orders through BizTalk Server.

Product Info Stage

The components in this stage enter product information for each line item. If the line item is unknown, the item will be marked 'delete=1'.

The components included in this stage are shown in the following table.

Component | Description
Scriptor: Fixup product_variant_id | This component can be removed from the pipeline, it has no functionality.
QueryCatalogInfo | Ensures that the items submitted via BizTalk Server are in the recipient's catalog. Executes a database query for each line item in the OrderForm object. If data is not found for the line item, the item is marked for deletion.
RequiredProdInfo | Goes through each item on the order form and deletes any line items marked for deletion. If there are any deletions, a "_Basket_Error to MessageManager(pur_badsku)" error message is returned.

Order Initialization Stage

This stage sets the initial order information on the OrderForm object and verifies that the OrderForm object contains an order ID.

Order Check Stage

This stage verifies that the order can be processed.

The component included in this stage is shown in the following table.

Component | Description
RequiredOrderCheck | Ensures that the OrderForm object contains at least one line item.

Item Price Stage

This stage ensures that the _cy_iadjust_currentprice key for each item contains the most current price information.

The components included in this stage are shown in the following table.

Component | Description
DefaultItemPriceCy | Initializes the _cy_iadjust_regularprice key for each line item to store the most current price.
RequiredItemPriceCy | Ensures that the _cy_iadjust_regularprice key for each line item is set.

Item Adjust Price Stage

This stage ensures that the _cy_oadjust_currentprice key for each item contains the most current price adjusted for discounts.

The component included in this stage is shown in the following table.

Component | Description
RequiredItemAdjustPriceCy | Ensures that the current price for each item in the order is set and that the price has not been changed.

Order Adjust Price Stage

This stage decrements the _n_unadjusted key, which is initialized to 'quantity' by the RequiredOrderInit component as line item units participate in discounts. You must set the _cy_oadjust_subtotal key to the price of the items adjusted.

The components included in this stage are shown in the following table.

Component | Description
Scriptor: Use Submitted Prices | Accepts the price submitted in the XML as the price for the product. This component should be replaced with logic that will validate that the submitted prices are correct.
RequiredOrderAdjustPriceCy | Adjusts the total cost of each item in an order after applying any discounts.

Order Subtotal Stage

This stage calculates the subtotal for an order.

The components included in this stage are shown in the following table.

Component | Description
DefaultOrderSubTotalCy | Calculates the subtotal for the order.
RequiredOrderSubTotalCy | Ensures that the subtotal of all items in the item list of an order exist so that the order totals are properly calculated.

Order Total Stage

This stage sums the subtotal, tax, shipping, and handling values.

The components included in this stage are shown in the following table.

Component | Description
Scriptor: My Total | Placeholder component. This component should be replaced on an as needed basis. Currently, it accepts the BizTalk Server XML order, sets the shipping, handling and tax charges to zero, and sets the order total.
RequiredTotalCy | Performs a _VERIFY_WITH check on the OrderForm object.

Accept Stage

This stage can be used to initiate order tracking, generate purchase orders, and save the order.

See Also

About the BizTalk Server Integration Feature

Pipelines for Solution Sites

recvpo.pcf


OPP for Totaling Orders

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that computes the sum of the subtotal, tax, shipping, and handling values.

Shipping Stage

This stage calculates the total shipping charge for the order.

The components included in this stage are shown in the following table.

Component | Description
Commerce.Splitter | Divides an order into groups based on the shipping_method_id and the Shipping_address_id keys.
Commerce.ShippingMethodRouter | Runs components to process the shipments and calculates the shipping total for the entire order.
ShippingDiscountAdjust | Applies shipping discounts to an order.

Handling Stage

This stage calculates the total handling charge for the order.

The components included in this stage are shown in the following table.

Component | Description
DefaultHandlingCy | Sets the _handling_total key to zero.
RequiredHandlingCy | Ensures that the _handling_total key was set.

Tax Stage

This stage calculates the sales tax for each item on the order and the sum of the tax for the entire order.

The components included in this stage are shown in the following table.

Component | Description
SampleRegionalTax | Calculates the tax for the order.
RequiredTaxCy | Ensures that the tax values are set.

Order Total Stage

This stage sums the subtotal, tax, shipping, and handling values.

The components included in this stage are shown in the following table.

Component | Description
DefaultTotalCy | Computes the _cy_total_total key as the _cy_oadjust_subtotal key plus the _cy_shipping_total key plus the _cy_handling_total key plus the _cy_tax_total key.
RequiredTotalCy | For each key/value pair in the _Verify_With dictionary, this component reads the same key from the order form. If any of the values do not match, or keys do not exist, the error "MessageManager("pur_badverify")" is added to the _Purchase_Errors log.

Inventory Stage

This stage verifies that every item ordered is in stock.

CopyFields Stage

This stage copies fields of interest to the application, onto the order form.

Component | Description
CopyFields | Copies the _product_description key into the description field, which is saved to a database, enabling future product description searches on the order. It also copies the user_first_name key from the profile for the user onto the order form. This also enables future first name searches and allows the first name of the user to be displayed without looking up the profile for the user.

See Also

About the Checkout Feature for Solution Sites

Pipelines for Solution Sites

total.pcf


Pipeline Log Files

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

When pipeline logging is enabled, pipeline log files are stored in the pipeline/logfiles subdirectory. A log file is created for every user and pipeline pair, so every user has a log file for every pipeline they run. If a user runs a pipeline more than once, their previous log file is written over by the new log file.

You can use the information contained in the pipeline log files to see what dictionary values are read and written by the components that are run in the pipeline, and what the error level for each component is, which is useful in debugging.

Use the following procedure to enable pipeline logging on your site.

Note

  • It is recommended that you only use pipeline logging in development mode. You can enable pipeline logging while in production mode; however, logging the pipelines in production mode will decrease the performance for your site.

To enable pipeline logging

  1. Open the global_siteconfig_lib.asp page.
  2. In the InitSitePipelines function, find these lines of code and replace False with True (if in production mode, the first line is MSCSEnv = PRODUCTION):
    If MSCSEnv = DEVELOPMENT Then
   dictPipeline.LoggingEnabled = False
   dictPipeline.LogsCycled     = False
  3. Open Windows Explorer and browse to the log files subdirectory.
  4. On the File menu, click Properties.
  5. On the Security tab click Add.
  6. In the Select Users, Computers, or Groups dialog box, type the name of the anonymous user account in the lower box. For example, if your server name is computer1, type computer1\iusr_computer1 and then click OK.
  7. On the Log Files Properties dialog box, set the permission level to Full Control for the anonymous account by checking the Allow box in the Full Control row of the Permissions box, and then click OK.
  8. To test the logging feature, make sure your site is the environment in which pipeline logging was enabled in Step 1. To change the environment, open the global.asa file and set MSCSEnv to the correct environment.

A pipeline log file is now created for each user that runs a pipeline, for each pipeline in your site. If a user runs a pipeline more than once, the previous log file will be written over.

See Also

Logfiles Folder


Error Handling for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites implement various error-handling methods. Some of these methods are used to handle errors within the code, whereas others are used to determine the appropriate site content to show users when errors in the code occur. The main techniques used to handle errors within the code are the On Error Resume Next error handler, and the normal bubble-up error handling built into Visual Basic Scripting Edition. The main techniques used to notify Web site users of errors are pipeline warnings and Active Server Pages (ASP) error pages. Pipeline warnings notify users of incorrect user input and other non-critical problems pertaining to their order. ASP error pages are used to inform users of critical errors in the Web site. The content of the ASP error pages can be altered to show different levels of detail by changing between the DEVELOPMENT and PRODUCTION environments.

This section contains:

  • On Error Resume Next
  • Normal Bubble-Up
  • Pipeline Warnings
  • ASP Error Pages for Solution Sites
  • Development and Production Modes for Solution Sites

See Also

Error Levels

Error handling in Pipelines


On Error Resume Next

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The On Error Resume Next error handler is a Visual Basic Scripting Edition statement that allows a page to continue processing even after it has encountered an error. The ability to continue processing script after encountering an error is useful if errors are expected, or if you wish to implement custom error handling. The dangerous part of enabling the On Error Resume Next statement is that it turns off all error handling for subsequent statements in the function until the On Error Goto 0 statement is called.

The On Error Resume Next statement is used in the Solution Sites to ignore specific non-critical errors. These errors are usually generated by objects that may return an error, but the error is expected and can be handled. Careful attention must be paid to re-raise any non-expected error that occurred during the On Error Resume Next code block. You can raise an error using the Err.Raise property, but this statement must be outside the On Error Resume Next code block.

The Solution Sites use the On Error Resume Next statement as little as possible, mitigating the risk of accidentally leaving it on. Centralized error processing is left to the 500error.asp page.

When the Solution Sites use the On Error Resume Next statement, the affected section of code is typically indented for clarity.

See Also

Normal Bubble-Up

Pipeline Warnings

ASP Error Pages for Solution Sites

Development and Production Modes for Solution Sites


Normal Bubble-Up

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Error handlers such as On Error Resume Next do not need to be implemented in every procedure written in Visual Basic. When errors are encountered in Visual Basic Scripting Editing, they bubble-up through the call stack until an error handler is found.

In a scenario where there are nested procedures, the error will move up the procedure hierarchy and look for the first error handler. For example, if function A enables the On Error Resume Next error handler and calls function B, which does not contain the On Error Resume Next error handler, and an error is generated in the function B, the error will bubble up and the next line of code in the function A will be called.

See Also

On Error Resume Next

Pipeline Warnings

ASP Error Pages for Solution Sites

Development and Production Modes for Solution Sites


Pipeline Warnings

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Pipeline warnings are generated when a pipeline component has determined that a user-related error has occurred. For example, if a user enters an invalid zip code, the pipeline runs and returns a value of 2, indicating that a warning should be displayed to the user. The site then enumerates the _Basket_Errors and _Purchase_Errors collections from the order form and displays them to the user. Then the page is rendered again with a message stating, "Please enter of correct ZIP/postal code."

Pipelines can return values of 1, 2, or 3. The following table describes the error levels.

Return Value | Description
1 | The pipeline executed successfully.
2 | Warning message shown to user.
3 | Critical failure, failed HRESULT.

The _Basket_Errors and _Purchase_Errors collections contain lists of all the warnings accumulated in the pipeline. So, if numerous errors have accumulated in these collections the user is prompted to correct them all at the same time.

For more information about error handling in pipelines, see "Error Handling" or "Error Levels" in Commerce Server 2002 Help.

See Also

On Error Resume Next

Normal Bubble-Up

ASP Error Pages for Solution Sites

Development and Production Modes for Solution Sites


ASP Error Pages for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The 500error.asp page is the most common error page that users will view when a critical error is encountered on your site. To aid in the usability of your site, it is recommended that you customize this page. The current message displayed on the 500error.asp page is, "We apologize for the inconvenience. Please try again later. If the problem persists, please contact our webmaster." You may want to add an e-mail link to your webmaster so that your users can contact you when they encounter difficulties. For more information about the 500error.asp page, see 500error.asp.

To specify which error page will be displayed when errors are encountered, see the Custom Errors tab in the IIS Properties dialog box for your site.

To view the Custom Errors tab

  1. Click Start, point to Programs, point to Administrative Tools, and then click Internet Services Manager.
  2. In the Internet Information Services screen, expand the nodes to the following path: Internet Information Services/<Server Name>/Default Web Site/<Site Name>.
  3. Right-click <Site Name> and select Properties.
  4. Click the Custom Errors tab.

The Custom Errors tab lists all the HTTP errors and the file that is displayed when the error is encountered. The file names can be changed by clicking the Edit Properties button.

For more information about all of the Active Server Pages (ASP) error pages included in the Solution Sites, see Error Folder.

See Also

On Error Resume Next

Normal Bubble-Up

Pipeline Warnings

Development and Production Modes for Solution Sites


Development and Production Modes for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Solution Sites can operate in two modes, DEVELOPMENT and PRODUCTION. PRODUCTION mode shows user-friendly error messages that are set in the Active Server Pages (ASP) error page associated with the error encountered, and does not reveal site internals. DEVELOPMENT mode enables you to see more detailed error messages. The detailed message includes the file name and line of code in which the error was raised. DEVELOPMENT mode also shows you the user-friendly message associated with the error so that you know what your users will see if they encounter the same error in PRODUCTION mode.

There are other differences between PRODUCTION and DEVELOPMENT mode that may be used while debugging your Web site. For example, when in DEVELOPMENT mode, test credit card numbers are automatically filled into the crdtcard.asp page.

To change the environment you are working in, you must change the environment variable in the global.asa file. Set the MSCSEnv key to the environment variable you would like to use, either MSCSEnv = DEVELOPMENT or MSCSEnv = PRODUCTION.

See Also

On Error Resume Next

Normal Bubble-Up

Pipeline Warnings

ASP Error Pages for Solution Sites


Utility Routines for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The folders "include" and "services\include" contain utility routine files. These files are intended for inclusion in Web page files so that the utility routines they contain can be called from the script code in the Web pages.

These utility routines fall into three broad categories. The first type are those used during Internet Information Services (IIS) application initialization. In other words, those routines that are called when the file global.asa runs. These are initialization utility routines. In general, you will never add additional calls to these routines, because the initialization process is already in place. But you might find a need to modify one or more of these routines to accommodate changes to the initialization process. You might also add new routines of this type to accommodate new types of initialization requirements.

The second type of utility routine are those called from any of the Web site pages, including customer or partner services pages. These are general utility routines. The following two categories of general utility routines have extra conceptual information because of their relative importance:

HTML Construction for Solution Sites

Forms Processing for Solution Sites

The third type of utility routine are those designed specifically for the customer and partner services pages. These are services utility routines.

This section contains:

  • Utility Routines for Initializing Applications
  • General Utility Routines
  • Services Utility Routines


Utility Routines for Initializing Applications

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The utility routines used for application initialization can be divided into the following categories, which also correspond to the files in which they are defined.

This section contains:

  • Address Book Initialization Routines
  • Cache Initialization Routines
  • Configuration Initialization Routines
  • Credit Card Initialization Routines
  • CSF Initialization Routines
  • Data Initialization Routines
  • Entry-Point Initialization Routine
  • Forms Initialization Routines
  • Internationalization Initialization Routines
  • MessageManager Initialization Routine
  • Prediction Initialization Routine
  • Product Catalog Initialization Routines
  • Profiles Initialization Routines
  • Site Terms Initialization Routines
  • Styles Initialization Routines


Address Book Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_addressbook_lib.asp

The following address book initialization routines are defined in this file:

GetAddressBookAddressFieldDefinitions
This function initializes the form field definitions for address book entries.
GetAddressFieldDefinitions
This function initializes the form field definitions for address fields used in address book entries and on shipping and billing address forms.
GetShipToAddressFieldDefinitions
This function creates and returns a SimpleList object containing field definitions for the ship-to-address field. Most of the SimpleList is populated by a call to the GetAddressFieldDefinitions function. A Dictionary object containing items such as Name, Label, InputType, and so on, is also included in the SimpleList.


Cache Initialization Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_cache_lib.asp

The following cache initialization routine is defined in this file:

InitCacheManager
This function creates, initializes, and returns a CacheManager object. For more information about the individual caches created, see Remarks.


Configuration Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_siteconfig_lib.asp

The following configuration initialization routines are defined in this file:

GetAppConfigObject
This function returns an initialized AppConfig object. It sets the global variable dictConfig to the Dictionary object returned by the GetOptionsDictionary method of the AppConfig object, and adds the s_SecureHostName and s_NonSecureHostName values from the SiteConfig object to the dictConfig dictionary.
GetBaseURL
This function returns the base URL for this application.
GetCommerceSiteInstallPoint
This function returns one of the constants HOME_DIRECTORY or VIRTUAL_DIRECTORY, depending on whether the application was installed at the root of the website or in a virtual directory, respectively.
GetCommerceSiteName
This function returns the Commerce Server site name stored in the global page variable MSCSCommerceSiteName.
GetComputerName
This function returns the name of the computer.
GetConfigDictionary
This function returns the Dictionary object returned by a call to the GetOptionsDictionary method of the AppConfig object.
GetINIFileName
This function returns the file name for the .ini file containing the site configuration information.
GetINIString
This function returns the value of the specified key or "" (an empty string) if the key or its value cannot be found.
GetMachineBaseURL
This function returns the base URL for this application, and specifically for this server.
GetPaymentMethodsForSite
This function returns the payment methods for the site. This function must run after the MessageManager object is assigned.
GetRootPath
This function returns the file path to the root of the application.
GetSecurePagesDictionary
This function returns the Dictionary object containing the names of the secure site pages.
GetSiteConfigObject
This function creates, initializes, and returns a SiteConfig object.
GetSitePages
This function assigns friendly names to pages in the site. Friendly names are also used by PageSets and the GetSecurePagesDictionary function.
iGetWebServerPort
This function returns the Web server port number being used for the site. For Web farms, it is assumed that the sites on all servers are using the same port number.
InitPageSets
This function creates sets of related pages, which are returned in a Dictionary object, where each entry in the dictionary is a string of comma-separated page names.
InitSitePipelines
This function creates and initializes a Dictionary object with an entry for each pipeline configuration file (PCF) used in the site. It also establishes pipeline logging settings.
IsActiveDirectoryPresent
This function determines whether Active Directory is being used by the Profile Service, returning True if it is being used, and False otherwise.
JoinWebFarm
This sub adds the current Web server to the Web farm, if the machine is not already recognized as being so. This routine will run in the case where a site was replicated using Microsoft Application Center 2000, or other cases where the site was not installed using Commerce Site Packager.
sGetActiveDirectoryDefaultNamingContext
This function gets the Active Directory domain name.


Credit Card Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_creditcards_lib.asp

The following credit card processing initialization routines are defined in this file:

GetCreditCardCodesList
This function returns the same SimpleList object as the GetCreditCardNamesList function, except that the first item is set to the string "-1".
GetCreditCardFieldDefinitions
This function initializes and returns the form field definitions for credit card fields.
GetCreditCardNamesList
This function returns a SimpleList object that has the string corresponding to the MessageManager constant L_SelectOne_Text as the first item, and the names of the accepted credit cards as the subsequent items.


CSF Initialization Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_csf_lib.asp

The following Content Selection Framework initialization routine is defined in this file:

InitCSF
This sub creates and initializes the global context Dictionary objects and the event recording pipeline for the Content Selection Framework (CSF).


Data Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_data_lib.asp

The following data initialization routines are defined in this file:

GetDWConnectionString
This function returns the SQL Server OLEDB connection string for the Data Warehouse that corresponds to the Web site.
InitDataFunctions
This function creates a DataFunctions object and returns a reference to it, setting the default locale before returning.
oGetBizDataObject
This function creates an instance of the BusinessDataAdmin object and returns a reference to it, calling its Connect method before returning.
oGetGenIDObject
This function creates an instance of the GenID object and returns a reference to it.


Entry-Point Initialization Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_main_lib.asp

The following initialization entry-point routine is defined in this file:

Main
This sub serves as the entry point into the file global.asa, which creates and initializes many of the objects supplied by Commerce Server 2002. References to these objects are stored in the intrinsic Application object so that they can be retrieved and used from Web site pages.


Forms Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_forms_lib.asp

The following forms processing initialization routines are defined in this file:

dictGetPropertySchema
This function creates and returns a Dictionary object containing property attributes. These attributes are used in the application for standard form validations, rendering functions, and profile updates.
GetFormDefinitions
This function returns a Dictionary object of field definitions (including variables such as maximum and minimum field lengths, whether the field is required, and so on) for the following fields: Login, Registration, BillToAddress, ShipToAddress, AddressBookAddress, CreditCard, and PurchaseOrder.
GetLoginFieldDefinitions
This function returns the login form field definitions.
GetPasswordFieldDefinition
This function returns a Dictionary object of field definitions for the password field in the new user and login forms. The field definitions include size constraint settings, invalid characters, and so on.
GetPurchaseOrderFieldDefinitions
This function returns a Dictionary object of form field definitions, including name, size constraint settings, and so on. A billing currency field is created if an alternate currency can be used on the site.
GetRegistrationFieldDefinitions
This function returns a Dictionary object of field definitions for the registration form.


Internationalization Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_internationalization_lib.asp

The following internationalization initialization routines are defined in this file:

GetBillToCurrenciesListItems
This function creates and returns a SimpleList object containing three items: the MessageManager "L_SelectOne_Text" message, the base currency symbol, and the alternate currency symbol.
GetBillToCurrenciesListValues
This function creates and returns a SimpleList object containing three items: the integer –1, the base currency code, and the alternate currency code.
GetBillToCurrencyFieldDefinition
This function initializes the form field definitions for the bill-to currency field.
GetCountryCodesList
This function returns a SimpleList object that has "-1" as the first item, and the codes corresponding to the countries returned by the GetCountryNamesList method of the AppConfig object as the subsequent items.
GetCountryNamesList
This function returns a SimpleList object that has the string corresponding to the MessageManager constant L_SelectOne_Text as the first item, and the names of the countries returned by the GetCountryNamesList method of the AppConfig object as the subsequent items.
InitAltCurrencyDisp
This function creates, initializes, and returns a EuroDisplay object. This enables the display of the Euro as an alternate currency.


MessageManager Initialization Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_messagemanager_lib.asp

The following MessageManager object initialization routine is defined in this file:

GetMessageManagerObject
This function reads the MessageManager object entries from the file rc.xml.


Prediction Initialization Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_predictor_lib.asp

The following prediction initialization routine is defined in this file:

InitPredictor
This function creates, initializes, and returns a PredictorClient object. Before returning, it also loads the Transaction prediction model from the Data Warehouse, and sets prediction properties.


Product Catalog Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_catalog_lib.asp

The following product catalog initialization routines are defined in this file:

dictGetCatalogAttributes
This function retrieves all the property definitions that exist in the Product Catalog System and places them in a Dictionary object for fast access.
dictGetRSFields
This function creates and returns a Dictionary object containing items whose values correspond to the field values of the Recordset object specified by the rs parameter.
InitCatalogManager
This function creates, initializes, and returns a CatalogManager object.
InitCatalogSets
This function creates and initializes a CatalogSets object. Then it creates, initializes, and returns a reference to a Dictionary object of Dictionary objects, where each subordinate dictionary represents a CatalogSets object, and each entry in the subordinate dictionaries represents a catalog in the corresponding CatalogSets object.


Profiles Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_profile_lib.asp

The following profiles initialization routines are defined in this file:

AddGroupAndPropertySchemas
This sub recursively adds all group and property definitions for a profile to a flat list of Dictionary objects contained in a SimpleList object.
dictGetProfileSchemaForAllProfileTypes
This function returns a Dictionary object containing the schema for all profile types.
InitAuthManager
This function creates an AuthManager object and returns a reference to it.
InitProfileService
This function creates and initializes a ProfileService object, and returns a reference to it.
listGetProfileSchema
This function creates and returns a SimpleList object of Dictionary objects that represent the schema specified by the parameters.
oGetOpenConnectionObject
This function creates an ADO Connection object and returns a reference to it, opening a connection to the Commercer Server OLEDB Provider before returning.
oGetProfile
This function returns an XML DOMDocument object that contains the profile specified by the sProfileName parameter.


Site Terms Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_siteterms_lib.asp

The following site terms initialization routines are defined in this file:

bIsSiteTerm
This function determines whether the specified property is a site term.
oGetSiteTermOptions
This function returns a SimpleList object of Dictionary objects, where each dictionary contains a single key/value pair. Each key/value pair represents the display name and value of one site term choice associated with the property specified by the sPropertyName parameter.
sGetReferenceString
This function returns the reference string attribute value for a given property element.


Styles Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\global_ui_lib.asp

The following styles initialization routines are defined in this file:

GetSiteStyles
This function returns the site styles, which are used by HTML library functions.
GetStyles
This function returns a Dictionary object containing the size attribute for standard text and password boxes.


General Utility Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The utility routines appropriate for use on all Web pages, including the customer and partner services pages, can be divided into the following categories, which also correspond to the files in which they are defined.

This section contains:

  • Address Book Routines
  • Analysis Routines
  • Authentication and Access Control Routines
  • Cache Routines
  • Cookie Routines
  • Date Routines
  • Forms Routines for Solution Sites
  • HTML Routines for Solution Sites
  • Miscellaneous Routines
  • Order Routines
  • Payment Routines
  • Pipeline Routines
  • Product Catalog Routines
  • Profile Routines
  • String Routines
  • URL Routines


Address Book Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\addr_lib.asp

The following address book processing utility routines are defined in this file:

GetAddresses
This function returns a Recordset object of address information for either a user or an organization, based on the value of the sAddrParentID parameter.
GetAddressType
This function returns the address type from the request variable ADDRESS_TYPE.
GetOrganizationAddresses
This function serves as a wrapper function to the GetAddresses function, passing the sOrgID parameter to retrieve the corresponding address as a Recordset object.
GetUserAddresses
This function retrieves the address for a user. It calls the more generic GetAddresses function to retrieve and return the required address as a Recordset object.
IsZipCodeValid
This function determines whether the basic format of the zip code specified by the sZipCode parameter is correct, returning True if so, and False otherwise. For additional information, see the Remarks.
LookupRegion
This function returns the region name associated with the passed parameters. The sRegion parameter might specify a region name, in which case that name is returned, or it might specify a region code, in which case the corresponding region name is returned. If the region name cannot be determined, Null is returned.


Analysis Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\analysis.asp

The following analysis-related utility routines are defined in this file:

Analysis_ConstructKeyValueString
This function constructs a key/value pair for the "submit order" Commerce event.
Analysis_ConstructPRID
This function constructs the property string for "add to basket" and "remove from basket" Commerce events.
Analysis_LogAddToBasket
This sub logs a Commerce event (CEVT) when an item is added to the basket.
Analysis_LogEvent
This function logs a Commerce event (CEVT) to the Web server log file.
Analysis_LogRemoveFromBasket
This sub logs a Commerce event (CEVT) when an item is removed from the basket.
Analysis_LogSubmitOrder
This sub logs a Commerce event when an order is submitted.


Authentication and Access Control Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_access_lib.asp

The following authentication-related utility routines are defined in this file:

CheckPartnerServiceAccess

This sub implements page-level access control. It grants access to users who have their PartnerDeskRoleFlags set to ROLE_ADMIN. All others are redirected to an error page.

EnsureAccess
This sub implements page-level access control. It grants access to users who are either authenticated to Internet Information Services (IIS), using Basic/Integrated Windows authentication, or have tickets. Call this sub from within the Main subroutine on every page that requires such access control. A call to this sub must appear before any other statement in the Main subroutine.
EnsureAuthAccess
This function implements page-level access control. It grants access to users who are either authenticated to Internet Information Services (IIS), using Basic/Integrated Windows authentication, or have an AUTH_TICKET. Call this function from within the Main subroutine on every page that requires such access control. A call to this function must appear before any other statement in the Main subroutine.
GetAuthManagerObject
This function creates, initializes, and returns an AuthManager object.
GetUserInfo
This sub, called from the include\setupenv.asp file, assigns the user ID, user type and user access type into the following global variables: m_userid, m_UserType, and m_UserAccessType.
IsFormLoginRequired
This function determines whether login is required on the current page. It returns True if logging in is always required, or if logging in is required for a purchase and the current page is in the purchase page set. Otherwise, it returns False.
IsPersistentCookieAllowed
This function determines whether persistent cookies are enabled in the current user's browser, returning True if so, and False otherwise. A test cookie and page redirection are used to make the determination.
sGetUserIDForNewGuestUser
This function gets the user ID for a new anonymous user.


Cache Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_cache_lib.asp

The following cache-related utility routines are defined in this file:

CacheFragment
This sub caches an HTML fragment.
CacheObject
This sub caches the specified object.
LookupCachedFragment
This function searches the LRUCache object specified by the sCacheName parameter for the fragment (a string) associated with name specified by the sCacheItemName parameter, returning the fragment if it is found, and Null otherwise.
LookupCachedObject
This function searches the LRUCache object specified by the sCacheName parameter for the object associated with name specified by the sCacheItemName parameter, returning the object if it is found, and Nothing otherwise.


Cookie Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_cookie_lib.asp

The following cookie processing utility routines are defined in this file:

CorrectRequest
This sub corrects a cookie for URL case-sensitivity.
GetCorrectedCookiePath
This function converts the case of a cookie path to match the Internet Information Services (IIS) application name, returning True if any character case was converted, and False otherwise.
GetCorrectedHostName
This function corrects the host name in the url parameter, if needed. It returns True if the host name was corrected, and False otherwise.
GetIISApplicationName
This function returns the Internet Information Services (IIS) application name.
GetRequestType
This function returns the type of request (POST or GET).
SetTestCookie
This sub sets a test cookie to learn if a browser allows cookies.


Date Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_dates_lib.asp

The following date processing utility routines are defined in this file:

GetMonthCodesList
This function returns a list of numeric month codes.
GetMonthNamesList
This function returns a list of month names.
GetYearsListItems
This function creates and returns a SimpleList object of items. The first item contains the MessageManager object "L_SelectOne_Text" message; the next item contains the current year; the following four items contain the next four year values (for example, if the current year is 2002, then the four items would contain 2003 through 2006).
GetYearsListValues
This function creates and returns a SimpleList object of items. The first item contains the integer "-1"; the next item contains the current year; the next four items contain the next four year values (for example, if the current year is 2002, then the four items would contain 2003 through 2006).


Forms Routines for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

For conceptual information about how forms are constructed and processed in the Solution Sites, see Forms Processing for Solution Sites.

include\form_lib.asp

The following forms processing utility routines are defined in this file:

bMatchesPattern
This function checks whether the value specified by the sValue parameter matches the expression specified by the sPattern parameter. If a match is found, this function returns True; otherwise it returns False.
GetFieldsErrorDictionary
This function returns a Dictionary object. The keys are the names of the form post fields and the values are the associated field validation error messages. Examples of errors include empty fields where input is required, incorrect password length, invalid characters, and so on.
GetSubmittedFieldValues
This function retrieves form post values from the request, based on the expected fields specified by the listFlds parameter, placing them in a Dictionary object where the corresponding keys are the names of the fields.
htmRenderFillOutForm
This function prepares the HTML that renders the form specified by the sFormName parameter in the forms Dictionary object stored in the intrinsic Application object, which is under the name "MSCSForms".
IsFormSubmitted
This function is used to test whether the current request contains a query string or form post variable with the name "mode" that has a value that can be successfully converted to a number.


HTML Routines for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

For conceptual information about how HTML is constructed in the Solution Sites, see HTML Construction for Solution Sites.

include\html_lib.asp

The following HTML processing utility routines are defined in this file:

Bold
This function surrounds the string specified by the s parameter with the tags "<B>" and "</B>", and then returns the resulting string.
BRTag
This function appends the <BR> tag to the end of the string specified by the s parameter, and then returns the resulting string.
GetRepeatStyle
This function creates an array with the number of array elements specified by the iCount parameter. Each array element is assigned the attribute string specified by the sAttList parameter. This is used to construct a table style array initialized to a common value.
InsertBlankSpace
This function returns a string containing space characters, where the number of space characters is equal to the number of items in the passed array.
InsertLineBreaks
This function returns a string containing a concatenation of each of the strings in the passed array, separated by BR elements, and ending with a BR element. In other words, it concatenates the strings in the array, appending a <BR> tag to each string in the process.
InsertParagraphBreaks
This function returns a string containing a concatenation of each of the strings in the passed array, where each source string is wrapped in a P element. In other words, it concatenates the strings in the array, prepending a <P> tag to the beginning of each source string and appending a </P> tag to the end of each source string.
Italic
This function surrounds the string specified by the s parameter with the tags <I> and </I> and then returns the resulting string.
PTag
This function surrounds the string specified by the s parameter with the tags <P> and </P>, and then returns the resulting string.
RenderCheckBox
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "CHECKBOX", and for which other attribute values are supplied by the parameters.
RenderElement
This function prepares the HTML that will render an arbitrary HTML element and its associated attributes and content, as specified by the parameters.
RenderForm
This function prepares the HTML that will render the specified HTML form.
RenderHiddenField
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "HIDDEN", and for which other attribute values are supplied by the parameters.
RenderImage
This function prepares the HTML that will render an IMG element for which other attribute values are supplied by the parameters.
RenderImageButton
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "IMAGE", and for which other attribute values are supplied by the parameters.
RenderLink
This function prepares the HTML that will render a link (an HTML A element) for which the attribute values and hot text are supplied by the parameters.
RenderListBox
This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters.
RenderListBoxFromArray
This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters. It serves as a wrapper for the function RenderListBox, hardcoding the iSource parameter to the constant ARRAY_COLLECTION, and passing through all other parameters as is.
RenderListBoxFromSimpleList
This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters. It serves as a wrapper for the function RenderListBox, hardcoding the iSource parameter to the constant SIMPLELIST_COLLECTION, and passing through all other parameters as is.
RenderListFromSimpleList
This function prepares the HTML that will render a sequence of formatted text items, each followed by the BR element.
RenderPasswordBox
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "PASSWORD", and for which other attribute values are supplied by the parameters.
RenderPreFormattedText
This function prepares the HTML that will render the passed string as pre-formatted text.
RenderRadioButton
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "RADIO", and for which other attribute values are supplied by the parameters.
RenderResetButton
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "RESET", and for which other attribute values are supplied by the parameters.
RenderSubmitButton
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "SUBMIT", and for which other attribute values are supplied by the parameters.
RenderTable
This function prepares the HTML that will render a TABLE element for which the attributes and content are supplied by the parameters.
RenderTableDataRow
This function prepares the HTML that will render a row of data within a table. In other words, a series of TD elements wrapped in a TR element. It serves as a wrapper for the function RenderTableRow, hardcoding the iRowType parameter to the constant DATA_ROW, and passing through all other parameters as is.
RenderTableHeaderRow
This function prepares the HTML that will render a header row within a table. In other words, a series of TH elements wrapped in a TR element. It serves as a wrapper for the function RenderTableRow, hardcoding the iRowType parameter to the constant HEADER_ROW, and passing through all other parameters as is.
RenderTableRow
This function prepares the HTML that will render a header or data row within a table. In other words, a series of either TH or TD elements wrapped in a TR element. It performs the real work for the functions RenderTableHeaderRow and RenderTableDataRow, which hardcode the iRowType parameter to the constants HEADER_ROW and DATA_ROW, respectively, and passing through all other parameters as is.
RenderText
This function prepares the HTML that will render the specified string wrapped in FONT tags, and assigned the specified FONT-specific attributes.
RenderTextBox
This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "TEXT", and for which other attribute values are supplied by the parameters.
RenderUnorderedList
This function prepares the HTML that will render an unordered list from the data in the passed array. In other words, a series of LI elements wrapped in a UL element.
RenderUnorderedListFromSimpleList
This function prepares the HTML that will render a series of list elements from the data in the passed SimpleList object. In other words, a series of LI elements.
Tag
This function encloses the text segment between a beginning and an ending HTML tag.


Miscellaneous Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_util_lib.asp

The following miscellaneous utility routines are defined in this file:

ConvertListToArray
This function converts a SimpleList object to an array.
CreateSet
This function creates a set from an array of items.
DoubleQuote
This function applies double quotes to a string.
FormatOutput
This function formats a string, replacing variables in the sTemplate parameter of the form %1, %2, and so on, with strings supplied in the arrArgs array parameter.
GetAddressPage
This function returns the name of the page used to enter or select an address. If the user is an anonymous user or if address book functionality is disabled, the name of the address form page is returned. Otherwise, the name of the address book page is returned.
GetArrayFromList
This function creates and returns an array containing the items in the specified SimpleList object.
GetDictionary
This function creates and returns a Dictionary object.
GetDiscountDescription
This function searches the content list and returns the description of the discount that has been applied to the item.
GetErrorSource
This function returns the site and function names of the error source.
GetFileSystemObject
This function creates and returns a Scripting.FileSystemObject object.
GetKeyValue
This function returns the value part of a key/value pair line in an INI file.
GetListItemIndex
This function returns the index of the specified item in the list.
GetObjectInstanceDictionary
This function creates and returns a Dictionary object. The Dictionary object contains an item called "Dictionary" that contains an empty Dictionary object. The Dictionary object also contains an item called "SimpleList" that contains an empty SimpleList object.
GetQualifiedName
This function constructs a qualified name from the group name and fieldname, resulting in a string of the form sGroupName.sFieldName.
GetRecordCount
This function returns the number of records in the specified Recordset object.
GetRegExp
This function creates and returns the VBScript.RegExp object.
GetSimpleList
This function creates and returns a SimpleList object.
htmRenderCurrency
This function renders a monetary value, using the base currency setting. It will also render the monetary value and the alternate currency for the site (for example, the Euro) depending on the settings of the site.
IsBitValueSet
This function determines whether every bit in the iBitValue parameter is also set in the iValue parameter, returning True if so, and False otherwise.
IsEntityInArray
This function determines whether the string specified by the sEntity parameter is equal to one of the strings in the array specified by the arrItems parameter, returning True if so, and False otherwise.
IsEntityInList
This function determines whether the string specified by the sEntity parameter is equal to one of the strings in the SimpleList object specified by the list parameter, returning True if so, and False otherwise.
IsEntityInSet
This function determines whether the string specified by the sEntity parameter is equal to one of the substrings in the comma-separated string specified by the sSet parameter, returning True if so, and False otherwise.
IsNumberInRange
This function determines whether the number specified by the iNumber parameter is in the range specified by the iMin and iMax parameters (inclusive), returning True if so, and False otherwise.
RsToDict
This function creates a new Dictionary object and populates it with the fields of the current record in the passed Recordset object. The field names are used as the dictionary keys, and the field values are assigned to the corresponding keys.
SortDictionaryKeys
This function sorts the keys for a Dictionary object and puts the result into a SimpleList object.


Order Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_ordergrp_lib.asp

The following order processing utility routines are defined in this file:

AddDiscountMessages
This sub adds a footnote symbol for each discount applied to each line item. The footnote symbol is a "D" plus the campaign ID.
GetAnyLineItem
This function returns an arbitrary line item from the specified OrderGroup object, which is useful when all line items contain similar information. This is accomplished by searching each OrderForm object in the specified OrderGroup object, and returning the first line item found.
GetAnyOrderForm
This function searches the specified OrderGroup object, and returns the first OrderForm object it finds.
GetErrorCount
This function returns the error count in each order form.
GetLineItemsCount
This function returns the number of items in the basket.
GetOrderGroup
This function returns an initialized OrderGroup object.
GetOrderGroupManager
This function returns an OrderGroupManager object.
LoadBasket
This function retrieves and returns the OrderGroup object associated with the current user, calling its LoadBasket method before returning.
RemoveEmptyOrderForms
This sub removes empty OrderForm objects from the specified OrderGroup object.
SetKeyOnOrderForms
This sub sets the key on order forms.


Payment Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\payment.asp

The following payment processing utility routines are defined in this file:

CatchErrorsForPaymentPages
This sub redirects the user to the appropriate page if an error is encountered when initializing the credit card or purchase order pages.
CheckOut
This function runs the basket, total, and checkout pipelines.
EnsureSupportForPaymentMethod
This sub checks whether the selected payment method is supported for the user; if it is not, the user is redirected to the default payment method page for the user.
GetDefaultPaymentMethodForUser
This function returns the first payment method in the passed SimpleList object.
GetPaymentMethodDisplayName
This function returns the display name for the specified payment method.
GetPaymentMethodsForUser
This function returns the payment methods for the user.
GetPaymentPageFromPaymentMethod
This function returns the friendly name of either the crdtcard.asp or po.asp page, depending on the value of the sPaymentMethod parameter.
GetXMLForVendorItems
This function creates and returns an XML document containing the line items corresponding to the specified order form and vendor. The oVendor parameter is a list of line items to be associated with a vendor, and is generated in the Splitter component of the checkout pipeline.
htmRenderPaymentOptionsForUser
This function renders the payment options for the user.
InvokeBizTalk
This sub submits purchase orders to the appropriate vendors using BizTalk Server when BizTalk Server integration is enabled.
SaveBasketAsOrder
This sub saves the basket as an order and deletes old baskets. It also invokes the BizTalk Server as appropriate, and calls the routine Analysis_LogSubmitOrder for analysis purposes.
SubmitUsingBizTalk
This function submits an order using the Submit method of the BizTalk Server Interchange object.


Pipeline Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_pipeline_lib.asp

The following pipeline utility routines are defined in this file:

GetPipelineLogFile
This function returns the log file path along with the user ID in the file name.
RunMtsPipeline
This function runs one of four pipelines on the passed OrderGroup object: Product, Basket, Total, or Checkout. It establishes the appropriate context dictionary and logging support prior to running the pipeline.


Product Catalog Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\catalog.asp

The following product catalog utility routines are defined in this file:

EnsureUserHasRightsToCatalog
This sub ensures that the user has access rights to the given catalog. If not, the user is redirected to the "bad catalog item" error page (error\baditem.asp).
GetCatalogForUser
This function returns the ProductCatalog object specified by the sCatalogName parameter. If the user does not have rights to this catalog, the user is redirected to the "bad catalog item" error page (error\baditem.asp).
GetPriceAndCurrency
This sub retrieves both the price and a formatted price string for a product.
htmRenderCatalogList
This function creates a string that contains a series of links to different catalogs, separated by carriage returns.
htmRenderCategoriesList
This function creates the HTML representation of a list of links to the categories within the passed Recordset object.
htmRenderCategoryPage
This function renders a category page, which lists subcategories and products within a category.
htmRenderProductsTable
This function renders a Recordset object containing products in a table format. The table has the following four columns: identifying property (for example SKU), name, description, and price. If the identifying property and name are the same, only three columns are shown.
mscsGetCategoryObject
This function gets the Category object for the given category name. If the category name is "" (meaning the root category), this function returns Nothing, as the catalog does not have a Category object for the root category.
mscsGetProductList
This function returns the product Recordset object for a specified category, using the specified paging information.
mscsGetSubCategoriesList
This function returns the child categories Recordset object for the Category object specified by the oCategory parameter.
mscsUserCatalogs
This function returns a Recordset object that contains the catalogs associated with the current user.
mscsUserCatalogsetID
This function returns the ID of the catalog set associated with the current user. If it is not found, the ID of the catalog set associated with the user's organization is returned. If it is not found, the ID of the default catalog set for the type of the current user is returned.
mscsUserCatalogsFromID
This function returns a Recordset object containing the catalogs associated catalog set ID specified by the CatalogSetID parameter.
RenderCatalogLink
This function prepares the HTML that will render a link to the specified catalog, using the specified FONT element attributes for the link text style.
RenderCatalogURL
This function constructs the URL for a catalog. This produces the same result as calling the RenderCategoryURL function with an empty string for the sCategory parameter and the number one (1) for the nPage parameter.
RenderCategoryLink
This function prepares the HTML that will render a link to the specified catalog, category, and page number, using the specified FONT element attributes for the link text style.
RenderCategoryURL
This function constructs the URL for a category by appending the specified catalog, category, and page number as arguments to the category page URL stored in the MSCSSitePages Dictionary object.
RenderProductLink
This function prepares the HTML that will render a link to the product specified by the parameters, using the specified FONT element attributes for the link text style.
RenderProductURL
This function constructs the URL for the specified product.
RenderSearchResultRow
This function prepares the HTML that will render the current record from a Recordset object containing search results.
RenderSearchResults
This function prepares the HTML that will render the search results contained in the passed Recordset object.
rsFreeTextSearch
This function performs a free text search and returns the results as a Recordset object. The number of records retrieved is set in the iRecordCount parameter.
sUserCatalogsAsString
This function retrieves the catalogs associated with a user as a comma-separated list, suitable for passing to various catalog methods that accept a list of catalogs as a parameter.


Profile Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_profile_lib.asp

The following profile utility routines are defined in this file:

EnsureUpToDateUserProfile
This sub retrieves the profile of the user from the cache if it is up-to-date. Otherwise, the profile is retrieved from the Profiles store.
EnsureUserProfile
This function ensures that the profile of the user exists. If not, the user is redirected to the "missing profile" error page (error\profile.asp).
GetCurrentUserProfile
This function gets the profile of the current user, if the user has one. This function also ensures that the profile returned is the latest version available on the Web farm.
GetNewGuestUserProfile
If the privacy options of the Site Configuration dictionary is set to PROFILE_GUEST_USER, this function creates a new user profile, sets the user_id_changed_by field to the newly generated user ID, sets the user_type field to GUEST_PROFILE, the account_status field to ACCOUNT_ACTIVE, the partner_desk_role field to ROLE_USER, and the date_created field to the current time. After the profile is created, the function passes it to the UpdateUserProfile routine to perform common functions the sites require when saving profiles.
GetProfileFromDB
This sub retrieves the specified profile from the Profiles store.
GetProfileService
This function creates and initializes a ProfileService object.
GetUserProfileByLoginName
This function returns the profile for the given login name.
rsGetProfile
This function retrieves the specified profile and returns it in a Recordset object.
rsGetProfileByKey
This function retrieves the profile specified by the passed key name/value pair, and returns it in a Recordset object.
UpdateUserProfile
This sub updates the profile for the current user.


String Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_string_lib.asp

The following string processing utility routines are defined in this file:

BooleanToString
This function converts a Boolean value to a string value.
RemoveBlankItemsFromArray
This sub copies all non-empty strings from the array specified by the arrItems parameter into the array specified by the arrNew parameter, discarding any previous contents of the latter.
sChopOffLeft
This function deletes the left section of the sValue parameter string corresponding to the sToChopOffLeft parameter string, providing that the sValue parameter string begins with the sToChopOffLeft parameter string.
sChopOffRight
This function deletes the right section of the sValue parameter string corresponding to the sToChopOffRight parameter string, providing the sValue parameter string ends with the sToChopOffRight parameter string.
Space
This function counts spaces and renders the appropriate number of HTML spaces (&nbsp).
StringToBoolean
This function converts a String to a Boolean.


URL Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

include\std_url_lib.asp

The following URL processing utility routines are defined in this file:

AddURLArguments
This function appends property/value pairs to a URL string.
GenerateURL
This function checks whether the page is defined as supporting the Secure Socket Layer (SSL) protocol, and whether the ticket is stored in a cookie or in the URL. This information, along with the parameters, is passed to the GetURL method of the AuthManager object.
GetRequestString
This function removes double quotes, and opening and closing element characters (< and >) from strings obtained through the Request object.
GetRequestStringRange
This function removes double quotes, and opening and closing element characters (< and >) from strings obtained through the Request object. This function also ensures that the requested string is within the length range specified by the iMinLength and iMaxLength parameters.
GetTicketInUrlArg
This function retrieves the ticket from a URL string.
GetTicketLocation
This function returns the location of a ticket.


Services Utility Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The utility routines appropriate for use only on the customer and partner services Web pages can be divided into the following categories, which also correspond to the sets of files in which they are defined.

This section contains:

  • Services Active Directory Routines
  • Services Edit Page Routines
  • Services List Page Routines
  • Services Initialization Routines
  • Services Message Box Routines
  • Services Miscellaneous Routines
  • Services Order Routines
  • Services Password Routines
  • Services Profile Routines


Services Active Directory Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\ad_routines.asp

The following customer and partner services utility routines are related to Active Directory processing, and are defined in this file:

bAddUserToGroup
This function adds a user to an existing Active Directory group.
bPaintACLForUser
This function paints access control lists (ACLs) for a user in an Active Directory store. This is achieved by adding or removing the user to or from <COMPANY_NAME>_ADMINGROUP or <COMPANY_NAME>_USERGROUP.
bRemoveUserFromGroup
This function removes a user from an Active Directory group.


Services Edit Page Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\edit_handlers.asp

The following customer and partner services utility routines are related to handling edit page processing, and are defined in this file:

DeleteAllActionHandler
This sub checks the user action on the DeleteAll message box page, and redirects to the profile list page with the appropriate parameters.
DeSelectAllActionHandler
This sub redirects the user in a "Select All" action.
GetStatusFieldAndID
This sub updates the status message for the "Save" action.
htmAddActionHandler
This function renders a blank edit page for any profile, and serves as a wrapper function to the htmRenderBlankEditPage function.
htmChangePasswordActionHandler
This function is called by EDIT-type pages for changing the user_security_password property. It is called before the execution is passed to the change_password.asp page.
htmCloseActionHandler
This function provides rendering for the "Close" action handler.
htmCopyActionHandler
This function provides rendering for the "Copy" action handler.
htmDeleteActionHandler
This function provides rendering for the "Delete" action handler.
htmEditAction
This function provides the "Edit" action handler. It supports single-edit, multi-edit, and SelectAll+Edit scenarios. Business logic to prepare for this display is in the PrepareEditAction subroutine.
htmEditAllProfiles
This function serves as a wrapper function for the htmRenderEditPage function, and renders the edit page contents.
htmInsertProfile
This function renders the edit page by calling the htmRenderEditPage function if the profile has been successfully inserted during the profile save operation that calls this function; otherwise, it renders the edit page by calling the htmRenderBlankEditPage function.
htmSaveActionHandler
This function checks if the user is saving profiles returned by the search criteria in the corresponding list page, then calls an appropriate handler to handle the following cases: SELECTALL_ACTION; ADD_ACTION; COPY_ACTION; EDIT_ACTION.
htmSaveAllActionHandler
This function renders the "Save All" action output.
htmSaveProfiles
This function renders the "Save Profiles" action output.
htmSelectActionHandlerForEdit
This function renders the "Select" action.
htmSelectedActionHandlerForEdit
This function renders the "Selected" action.
PrepareAddAction
This sub initializes its five parameters in preparation for adding a user in Partner Services.
PrepareCloseAction
This sub prepares for the call to the function htmCloseActionHandler by initializing the values of all of the passed parameters other than the first two.
PrepareCopyAction
This sub prepares for the call to the function htmCopyActionHandler by initializing the values of all of the passed parameters other than the first two.
PrepareDeleteAction
This sub prepares for the call to the function htmDeleteActionHandler by initializing the values of the last two parameters.
PrepareDeleteAllAction
This sub prepares for the call to the sub DeleteAllActionHandler by initializing the value of its one parameter.
PrepareDeselectAllAction
This sub prepares for the call to the sub DeSelectAllActionHandler by initializing the value of its one parameter.
PrepareEditAction
This sub prepares for the call to the function htmEditAction by initializing the values of the last two parameters.
PrepareEditAllAction
This sub initializes the parameters passed to it.
PrepareInsertProfile
This sub prepares for the call to the function htmInsertProfile by initializing the values of all parameters other than sSubAction and sProfileIDs.
PrepareSaveAction
This sub currently performs no processing at all, but is called before calls to the function htmSaveActionHandler. If you modify the latter function and need to perform special preparation before calling it, consider adding the preparation code to this function.
PrepareSaveAllAction
This sub prepares for the call to the function htmSaveAllActionHandler by initializing the values of the parameters passed to it. When the profile changes are found to be valid, the sub SaveAllSelectedProfiles is called to save the changes.
PrepareSaveProfiles
This sub prepares for the call to the function htmSaveProfiles by initializing the values of all parameters passed to it other than the first three.
PrepareSelectActionHandlerForEdit
This sub prepares for the call to the function htmSelectActionHandlerForEdit by initializing the values of all parameters passed to it other than the first three.
PrepareSelectAllAction
This sub prepares for the call to the sub SelectAllActionHandler by initializing the value of the sProfileListPage parameter.
PrepareSelectedAction
This sub prepares for the call to the function htmSelectedActionHandlerForEdit by initializing the values of the last three parameters.
SelectAllActionHandler
This sub provides the "Select All" action handler.

services\include\render_edit_blank.asp

The following customer and partner services utility routines are related to preparing blank edit page content for rendering, and are defined in this file:

formRenderBlankEditPageBody
This function prepares the HTML that will render a blank profile editing form.
htmRenderBlankEditPage
This function renders a blank edit page for any profile.
rowRenderBlankProperty
This function prepares the HTML that will render a row in a table that corresponds to a blank property. This row contains three cells: either an image or a checkbox, the display name, and the value, respectively.
tableRenderBlankProfile
This function prepares the HTML that will render tables for blank editing pages.

services\include\render_edit_common.asp

The following customer and partner services utility routines are related to preparing edit page content for rendering, and are defined in this file:

colRenderForeignKeyProperty
This function renders hidden fields that contain a variety of content, depending on whether a pre-existing profile exists, whether a new profile is being created, and so on. A button is rendered to allow the user to submit the selected information.
colRenderPasswordProperty
This function prepares the rendering of the value for the user_security_password property.
colRenderPrimaryKeyProperty
This function prepares the rendering of the value for the primary key property.
colRenderProperty
This function prepares the rendering of a property.
colRenderPropertyTip
This function prepares a warning message for a property that fails validation.
colRenderUniqueKeyProperty
This function prepares the rendering of the value for the unique key property.
formRenderEditPageBody
This function prepares the HTML that will render a profile editing form.
htmRenderEditPage
This function renders the contents of any EDIT-type page.
rowRenderHiddenProperty
This function prepares the HTML that will include hidden properties as INPUT elements with their TYPE attribute set to "HIDDEN".
rowRenderProperty
This function prepares the HTML that will render a row in a table that corresponds to a property that is accessible to the current user. This row contains three cells: either an image or a checkbox, the display name, and the value, respectively.
rowRenderPropertyGroup
This function prepares the HTML that will render a row containing a property group heading.
rowRenderPropertyTip
This function examines the specified property, and if found to have an error associated with it, adds a table row that displays an error message in the third of three cells.
rowRenderReadOnlyProperty
This function prepares the HTML that will render a row in a table that corresponds to a read-only property. This row contains three cells: blank, the display name, and the value, respectively.
sRenderHTMLPreFixForProperty
This function renders the "Required" icon or check box (for multi-edits) before each property in an EDIT-type page.
tableRenderEditPageTasks
This function renders tasks buttons for the current page.
tableRenderProfiles
This function renders an edit page for a profile.
varGetPropertyValue
This function determines the profile property value to display.
varGetValueFromPropertyDictionaries
This function gets the property value from a list of property dictionaries.
varGetValueFromRequestObject
This function gets the property value from the underlying Request object (URL or HTML FORM).
varUpdateValueForCurrentAction
This function gets the property value based on the current action type as stored in the global variable sAction.


Services List Page Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\list_handlers.asp

The following customer and partner services utility routine is related to handling list page processing, and is defined in this file:

SelectedActionHandlerForList
This sub provides the "Selected" action handler for a LIST-type page.

services\include\render_list.asp

The following customer and partner services utility routines are related to preparing list page content for rendering, and are defined in this file:

arrPopulateProfileDetails
This function populates an array with the properties of a profile.
formRenderListPageContents
This function prepares the HTML that will render a profile list form.
formRenderProfileSearchOptions
This function prepares the HTML that will render either a simple or advanced profile searching form, based on the value of the request variable QUERY_STRING_CRITERIA.
htmRenderProfilesList
This function renders the contents for any LIST-type page.
htmRenderUniqueIDForProfile
This function adds a globally unique profile identifier to the LIST page.
RelocateRecordPointer2
This sub initializes local variables used in the paging mechanism of the page that lists profiles. It also sets the current record in the Recordset object specified by the rs parameter to the beginning of the specified page number.
rowRenderListHeading
This function prepares the HTML that will render the header row for a table of profile properties, skipping properties that are designated as not to be shown.
rowsRenderAdvanceSearchOptionsForProfiles
This function prepares the HTML that will render a series of rows in a table where each row allows advanced search criterion for profiles to be specified.
rowsRenderSimpleSearchOptionsForProfiles
This function prepares the HTML that will render a series of rows in a table where each row allows simple search criterion for profiles to be specified.
tableRenderListPageTasks
This function renders tasks specific to LIST-type pages.
tableRenderMultipleRecords
This function adds list contents to the current page.


Services Initialization Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\global_service_lib.asp

The following customer and partner services utility routines are related to application initialization, and are defined in this file:

AddPartnerAndCustomerServicePages
This sub assigns friendly names to pages used by Customer and Partner Services.
AddPartnerAndCustomerServiceStyles
This sub adds styles used by Customer and Partner Services.
GetPartnerAndCustomerServicePageAttributes
This function retrieves the properties for all Partner and Customer Services pages.

services\include\initialize.asp

The following customer and partner services utility routines are also related to initialization, and are defined in this file:

InitializePartnerDesk
This sub initializes its parameters for use in all Customer and Partner Services pages.
sGetAction
This function determines the action to be taken for the current page.
sGetIDFromForm
This function loops through the FORM collection to determine the selected profiles.
sGetSelectedIDs
This function gets the profile IDs.
sGetSubAction
This function gets the sub action.


Services Message Box Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\messagebox_handlers.asp

The following customer and partner services utility routines are related to handling the presentation of message boxes, and are defined in this file:

htmSaveChangesConfirmationHandler
This function renders the "Save Changes Confirmation" action.
PrepareSaveChangesConfirmation
This sub prepares for the call to the function htmChangePasswordActionHandler by initializing the values of all parameters passed to it other than the first. This sub is also called by PrepareSelectActionHandlerForEdit to help initialize its parameters.

services\include\render_messagebox.asp

The following customer and partner services utility routines are related to preparing message box content for rendering, and are defined in this file:

htmRenderMessageBoxForCancel
This function renders the message box page for a cancel action.
htmRenderMessageBoxForDelete
This function renders the message box page while deleting entity records.
htmRenderMessageBoxForDeleteAll
This function renders the message box page for a "DeleteAll" action.
htmRenderMessageBoxForSave
This function renders the message box page with save options.
htmRenderMessageBoxForSelect
This function renders the message box page for a "Select" action.
htmRenderMessageBoxPage
This function renders the message box page.
rowRenderMessageBoxPageContents
This function prepares the HTML that will render the contents for the message box page.
tableRenderMessageBoxPage
This function renders a message box page.
tableRenderMessageBoxPageButtons
This function renders the message box page submit buttons.


Services Miscellaneous Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\lib.asp

The following customer and partner services utility routines provide a variety of miscellaneous processing assistance, and are defined in this file:

bCheckIfThePropertyFeatureIsSupported
This function determines whether the featureID attribute for the specified property is set.
bInvalidDate
This function determines whether a given date is not valid.
bValidateLoginNameChars
This function validates the characters in a login name.
bValidatePasswordChars
This function validates the characters in the string specified by the sPassword parameter.
CheckIfOrderExists
This sub redirects the user or delegated administrator to the services\error\noorder.asp page if the specified order does not exist.
CheckIfProfilesExist
This sub determines whether the specified profiles exist.
dictGetpropertyFromList
This function retrieves the specified property from a list of properties.
dictGetSearchDictionaryForPage
This function retrieves the filter criteria for the current user and page.
GetSearchDictionaryForThisPage
This function stores and retrieves the search criteria for the current user and current page.
iGetCountOfProfiles
This function returns –1 if the sSubAction parameter is equal to the constant SELECTALL_ACTION. Otherwise, it returns the number of profiles in the string specified by the sProfileIDs parameter.
iGetCurrentUserPropertyAccessClass
This function is used in Partner Services to determine whether the current user is a registered user, and if the user is anonymous or a delegated administrator.
InitializePagingVariables
This sub initializes paging variables for Customer and Partner Services. The iPageNumber and iTotalPages parameters are initialized based on the values of the sAction and bIsProfilePage parameters.
listCloneProfileSchema
This function creates and returns a SimpleList object that contains a copy of the profile schema associated with the page specified by the sPageName parameter.
listGetValidPropertiesForMultiEdit
This function creates, initializes, and returns a SimpleList object that contains those profile properties from the SimpleList object specified by the listProfileSchema parameter that are valid participants in the current multi-edit operation.
listReConstructPropertiesSchema
This function reconstructs the profile schema to include the properties that have failed validation.
PopulateOrderSearchCriteria
This sub retrieves search criteria related to an order from the HTTP request and places it into the passed Dictionary object. It also performs validation for some date-related criteria.
PopulateProfileSearchCriteria
This sub retrieves search criteria related to a profile from the HTTP request and places it into the passed Dictionary object. It also performs validation for some date-related criteria.
ReDirectToPage
This sub generates a URL for the specified page and appends name/value argument pairs based on the corresponding values in the arrKeys and arrValues array parameters. It then redirects the user using the constructed URL.
RelocateRecordPointer
This sub initializes local variables used in the paging mechanism of the page that lists orders. It also sets the current record in the Recordset object specified by the rs parameter to the beginning of the specified page number.
SetGlobalPagingVariables
This sub sets the global paging variables depending on the local variables passed to the sub.
sGetDisplayValueForProperty
This function gets the display text for properties of type Number.
sGetOrderStatusDetails
This function gets the description for the order status code.
sGetParentDN
This function gets the ParentDN property related to an organization.
sGetSelectActionPropertyName
This function gets the property name for the Select Action button that was clicked.
sGetThisPageProperty
This function gets the page properties.
sGetUserAccessForThisProperty
This function returns the current user access privileges for this property.
sGetUserPartnerDeskRole
This function gets the i_partnerdeskroleflags description for the user.
sGetUserStatus
This function gets the status code description for the user.
TDTag
This function prepares the HTML that will render a data cell in an HTML table.
THTag
This function prepares the HTML that will render a header cell in an HTML table.
TRTag
This function renders a table row.
ValidateFields
This function validates submitted profile form fields retrieved from the HTTP request using the profile schema specified by the listCtrls parameter.

services\include\render_common.asp

The following customer and partner services utility routines are related to the preparation of content for rendering, and are defined in this file:

cellRenderReadOnlyProperty
This function prepares a read-only property to be rendered.
colRenderAdvancedSearchTab
This function adds the advanced search option tab to list-type pages.
colRenderCountryNames
This function prepares the rendering of all country names.
colRenderSimpleSearchTab
This function adds the simple search option tab to list-type pages.
formRenderPagingButtons
This function prepares the HTML that will render paging buttons. These buttons are wrapped in a form that gets posted when a paging button is clicked.
htmRenderBlankSpaces
This function renders HTML blank spaces (&nbsp).
htmRenderBoolean
This function renders a check box corresponding to a Boolean property.
htmRenderCountries
This function renders all the country names in an HTML combo box.
htmRenderEmptyRecordSet
This function renders the HTML table for an empty recordset.
htmRenderOrderDateTypes
This function renders the order date type for both user and organization orders.
htmRenderOrderStatusOptions
This function renders the order status options.
htmRenderPartnerDeskRoles
This function renders the user i_PartnerDeskRoleFlags options.
htmRenderSelectEndTag
This function renders the HTML end select tag, </SELECT>.
htmRenderSelectTag
This function renders the select tag.
htmRenderSiteTerm
This function renders a list box corresponding to a SiteTerm property.
htmRenderUserStatusOptions
This function renders the user status options.
rowRenderEditSheetBlankLine
This function prepares the HTML that will render a blank line in an edit sheet table.
rowRenderHeader
This function allows you to put a common toolbar (containing, for example, a Help button) at the top of every page. It currently does nothing.
rowRenderSearchOptionForDate
This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a pair of text boxes that correspond to a starting and ending date.
rowRenderSearchOptionForInteger
This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a list box displaying options appropriate for one of four possible properties: user status, partner services role, order status, and types of dates associated with the order.
rowRenderSearchOptionForString
This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a text box for entering a string value for which to search.
rowRenderStatusInfo
This function prepares the HTML that will render a row in a table that contains one column in which status information is placed based on the values of the parameters.
sGetPageHeading
This function gets the page heading.
sReConstructPageURL
This function re-constructs the page URL and replaces the key values.
sReplaceString
This function replaces or adds the value for a key in a query string with a new value.
tableRenderFooterInfo
This function renders footer information for the current page.


Services Order Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\logic_orders.asp

The following customer and partner services utility routines are related to orders and discount logic, and are defined in this file:

AddDiscountMessages
This sub adds a footnote symbol for each discount applied to each line item. The footnote symbol is a "D" plus the campaign ID.
mscsGetOrderGroupWithDiscountsByID
This function retrieves the OrderGroup object associated with the current user, loads the order specified by the iID parameter, adds discount messages, and then returns a reference to the OrderGroup object.
PrepareOrderList
This sub prepares for the calls to the routines formRenderOrderSearchOptions, formRenderOrdersListContents, rowRenderStatusInfo, and tableRenderFooterInfo by initializing the values of all parameters other than the first.
sGetAddressName
This function gets the address name field of the specified address ID in the specified order group.
sGetPaymentMethodString
This function returns the friendly, localizable version of the payment method identifier as a string.

services\include\order_handlers.asp

The following customer and partner services utility routines are related to handling orders, and are defined in this file:

CloseOrderDetailsActionHandler
This sub handles the "close order details" action.
htmOrderDetailsActionHandler
This function provides rendering for the "Order details" action handler.
htmRenderOrderDetailsForIDs
This function redirects the user back to the order list page, because multiple orders cannot be viewed at once.
PrepareCloseOrderDetailsAction
This sub prepares for the call to the sub CloseOrderDetailsActionHandler by initializing the values of the passed parameters.
PrepareOrderDetailsAction
This sub prepares for the call to the function htmOrderDetailsActionHandler by initializing the value of the iProfileCount parameter.
RedirectOrderDetailsForIDs
This sub is used to redirect the user to a page from which they can choose which order to retrieve details for.

services\include\render_orders.asp

The following customer and partner services utility routines are related to preparing password-related content for rendering, and are defined in this file:

arrPopulateOrderHeaderDetails
This function populates an array with the details of an order in preparation for rendering.
formRenderOrderContents
This function prepares the HTML that will render an order details form.
formRenderOrderSearchOptions
This function prepares the HTML that will render either a simple or advanced order searching form, based on the value of the sCriteria parameter.
formRenderOrdersListContents
This function prepares the HTML that will render an orders list form.
htmRenderOrderDetails
This function renders the order details.
htmRenderOrderList
This function renders the order list.
rowRenderAdvancedSearchOptionsForOrders
This function prepares the HTML that will render advanced search options within the orders form in Partner Services.
rowRenderLineItemHeader
This function prepares the HTML that will render the header row for a table of line items in an order.
rowRenderListHeadingForOrders
This function prepares the HTML that will render the header row for a table of orders.
rowRenderSimpleSearchOptionsForOrders
This function prepares the HTML that will render simple search options within the orders form in Partner Services.
sRenderAddress
This function renders an address dictionary.
tableRenderOrdersListContents
This function renders a table of orders, including hidden fields containing the order number for each record.
tableRenderOrdersListTasks
This function renders a toolbar containing tasks that can be performed on an order in the list. By default, this will show a button displaying the text stored in the MessageManager L_ORDERDETAILS_ACTION_BUTTON message and allows the user to see order details.
tblOrderDetailsTasks
This function renders a CANCEL_ACTION button for use in rendering the order details, and is used when the user wants to close the displayed page.
tblRenderOrderDetailsContents
This function displays order header and line items in an table format.

services\include\requisition.asp

The following customer and partner services utility routines are related to order processing, and are defined in this file:

rsGetOrderDetails
This function retrieves the detailed information for the specified order and returns the result as a Recordset object.
rsGetOrdersList
This function retrieves orders based on the specified filter criteria and returns the result as a Recordset object.


Services Password Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\password_handlers.asp

The following customer and partner services utility routines are related to handling changes to passwords, and are defined in this file:

ChangeActionHandler
This function handles the "change password" action.
htmCancelUpdatePasswordAction
This function cancels the update of the user_security_password property of the user.
UpdatePasswordActionHandler
This function saves the user_security_password property for the user.

services\include\render_password.asp

The following customer and partner services utility routines are related to preparing password-related content for rendering, and are defined in this file:

formRenderChangePasswordPageContents
This function prepares the HTML that will render the change password form.
htmRenderChangePasswordPage
This function renders the change password page.
tableChangePasswordTasks
This function renders Save and Close buttons with their appropriate text messages wrapped in a table.
tableRenderChangePasswordContents
This function renders the Password Change edit page.


Services Profile Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

services\include\check_profile.asp

The following customer and partner services utility routines are related to checking profiles, and are defined in this file:

bCheckIfProfileExists
This function determines whether a specific user profile already exists.
bIsPropertyValueAdded
This function determines if any property values were added in the edit page.
bProfileHasChanged
This function checks whether the posted values for a profile are different than the values for the profile in the Profile store.

services\include\delete_profiles.asp

The following customer and partner services utility routines are related to deleting profiles, and are defined in this file:

DeleteAllProfiles
This sub deletes all the selected profiles. It also deletes all the profiles returned by the search criteria in the corresponding list page.
DeleteRegisteredUser
This sub deletes a specific registered user profile.
DeleteSelectedProfiles
This sub deletes all the selected profiles.
DeleteSingleProfile
This sub deletes the specified profile.
sGetWhereClauseForCurrentUser
This function gets the WHERE clause for the current user.

services\include\get_profiles.asp

The following customer and partner services utility routines are related to retrieving profiles, and are defined in this file:

GetAttributeValueFromProfile
This function retrieves a property value from a profile.
GetOrgAttributeFromID
This function returns the value of the specified property for an Organization profile.
GetUserPropertyFromID
This function returns the value of a property from the profile of a user.
rsGetOrgDetails
This function retrieves detailed information about the specified organization and returns the result as a Recordset object.
rsGetProfileDetails
This function retrieves detailed information about the specified user or organization profile and returns the result as a Recordset object. It serves as a dispatch function for the functions rsGetOrgDetails and rsGetUserDetails, which do the real work.
rsGetProfilesList
This function retrieves a set of user profiles based on the specified filter criteria, returning the result as a Recordset object.
rsGetUserDetails
This function retrieves the profile for the specified user, and returns the results in a Recordset object.
sGetUserFullName
This function gets the full name (last name + first name) of the user.
sGetUserLoginName
This function gets the login name of a user.

services\include\profiles_common.asp

The following customer and partner services utility routines are related to common profile processing, and are defined in this file:

GetODBCTimeStamp
This function converts a date variant to an Open Database Connectivity (ODBC) timestamp format { ts 'yyyy-mm-dd hh:mm:ss' }.
GetTableNameAndWhereClause
This sub gets the database table name and uses a WHERE clause to search for a given organization ID.
HandleSingleQuote
This function replaces a single quote with a double quote for processing profiles.
sAddCriteriaToQuery
This function builds a Transact-SQL statement.
sAddEndDate
This function adds an End Date clause.
sAddSetClause
This function adds a Set clause.
sAddSQLNumber
This function adds an AND clause for a property of type Number.
sAddSQLString
This function adds an AND "property LIKE value" clause for a property of type String.
sAddStartDate
This function adds a Start Date clause.
sConstructWHEREclause
This function constructs a WHERE clause.

services\include\save_all_profiles.asp

The following customer and partner services utility routines are related to saving all profiles, and are defined in this file:

AddSetClauseAndUpdateUserAccountControl
This function updates the PartnerDeskRole property in the profile of the user.
GetUserAccountControl
This function determines whether to update the User Account Status and User Partner Desk Role properties.
sAddWhereClauseForActiveUsers
This function adds an AND or WHERE "USER_STATUS = ACCOUNT_ACTIVE" clause.
sAddWhereClauseForPartnerRole
This function adds an AND or WHERE "FIELD_USER_PARTNERDESK_ROLE = iPartnerDeskRole" clause.
SaveAllSelectedProfiles
This sub saves all selected profiles.
UpdateUserAccountControlProperty
This function updates the user_account_control property of the profile based on the iPartnerDeskRole and dictSearchOptions parameters.

services\include\save_one_profile.asp

The following customer and partner services utility routines are related to saving a single profile, and are defined in this file:

bHandlePaintingACLsForUsersInAD
This function handles painting of appropriate access control lists (ACLs) for users in Active Directory (adding the users to/from the appropriate Active Directory groups, for example, ADMINGROUP or USERGROUP).
bInsertProfile
This function validates the login name and password of a user and, if successful, creates a new profile.
bInsertProfileDetails
This function inserts property values into an empty profile.
bInsertProperty
This function checks whether the specified property is supported for the user and, if so, adds it to the profile.
bSaveProfileAndRedirect
This function updates the profile properties and redirects the delegated administrator to the services\partner\users.asp page.
bSaveProfileDetails
This function saves the value of each property in the profile. If this is a user profile and Active Directory is used, the access control lists (ACL) are updated.
bSaveProperty
This function saves the specified property.
bSaveReadWriteProperty
This function saves a read/write property.
GetActiveUsersOnly
This function examines the semicolon-separated list of user profile IDs, and returns a similar list containing only those user profile IDs that correspond to users that have an account status of ACCOUNT_ACTIVE.
InsertHiddenProperty
This sub copies particular, hidden properties from the current user profile to the specified profile Recordset object. Currently, only the organization ID of the user can be copied.
SaveCommonValueForAllSelectedRecords
This sub saves a common value to all the selected records.
SaveProfileProperty
This sub saves a property value in a profile.
SaveReadOnlyProperty
This sub saves any read-only property.
SaveSAMAccountNameProperty
This sub saves the SAMAccountName property.
SaveUserAccountControlProperty
This sub saves the User Account Control property (Active Directory specific).
SaveUserParentDNProperty
This sub saves the User ParentDN property (Active Directory specific).
SaveUserPartnerDeskRoleProperty
This sub saves the User Partner Desk Role property.
SaveUserPropertyForID
This sub saves the User property for a user ID.
sGetAdminsOnly
This function determines which users specified by the input parameter sProfileIDs are administrators (for example, the FIELD_USER_PARTNERDESK_ROLE is specified as ROLE_ADMIN) and returns a string that contains the profile IDs of those administrators.
sGetUsersOnly
This function determines which users specified by the input parameter sProfileIDs are users (for example, do not have an admin profile) and returns a string that contains the profile IDs of those users.
UpdateSelectActionPropertyName
This function updates properties changed by the user. The fields associated with the selected properties are updated, as well as the "changed by" and "date updated" values.
UpdateUserPasswordProperty
This sub updates the user password property depending on the current user type (DELEGATED_ADMIN or USER).


Site Development Using Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Although all of the Commerce Server Solution Sites documentation ultimately concerns site development, the topics in this section are oriented toward starting with the existing Solution Sites and modifying them to suit your own business needs.

This section contains:

  • Coding Conventions for Solution Sites. Describes the coding conventions used in the Solution Sites.
  • Page Authoring for Solution Sites. Describes what you need to do to author new pages in a manner consistent with the existing pages.
  • Page Layout Customization for Solution Sites. Describes how to customize the layout of existing and new pages.
  • About Customizing HTML Styles for your Solution Site. Describes the HTML styles used to customize the Solution Sites.
  • Debugging Resources. Describes where to find information about how to debug Active Server Pages (ASP) applications.
  • Optimizing Tools and Techniques. Describes how to optimize the performance of the Solution Sites.


Coding Conventions for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Variables and file names in the code for the Solution Sites are named using common conventions. All variables in the code for the Solution Sites can be identified by their prefix. The prefixes used in naming local variables, framework variables, dictionary variables, and file names are defined in the following tables.

Local Variables

Framework Variables

Dictionary Variables

File Name Prefixes

Local Variables

The following table lists the base types used in naming local variables in the code for the Solution Sites.

Prefix | Description
arr | Signifies an array
b | Signifies a boolean
f | Signifies a flag
htm | Signifies an HTML string
i | Signifies an integer
list | Signifies a SimpleList
o | Signifies an object
s | Signifies a non-HTML string

Framework Variables

The following table lists the prefixes used to name framework variables in the code for the Solution Sites.

Prefix | Description
MSCS | Initialized with values from application scope variables.
mscs | Signifies that the variable holds page-scope objects.
m_ | Signifies that the variable holds private page-scope values.

Dictionary Variables

The following table lists the prefix used to name dictionary variables in the Solution Sites code.

Prefix | Description
dict | Signifies the variable is a dictionary variable.

File Name Prefixes

The following table lists the prefix used to name files in the Solution Sites code.

Prefix | Description
_ | Signifies that there is no user interface for the file. This convention only applies to files in the <site name> folder, and not to files in the <site name> subdirectories.


Page Authoring for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Commerce Server Solution Sites implement Web site pages using a structured approach that uses the same page execution model for all pages. For more information about this page execution model, see Page Execution Model for Solution Sites. An adequate understanding of the page execution model is crucial to proper page authoring.

Page authoring consists of creating a page that includes the correct files in the correct order, and which then contains the implementation of a subroutine named Main. Ultimately, this subroutine has a single job to do: initialize particular variables to strings that contain the HTML that will produce the desired content areas when rendered. These variables include htmPageContent, htmDiscountBannerSlot, and any variables defined for new custom content areas. The topics in this section provide additional information about this page-authoring scheme.

This section contains:

  • Including Files in Solution Sites
  • Implementing the Main Subroutine for Solution Sites
  • Implementing Support Routines for Solution Sites
  • Controlling Access to Solution Site Pages
  • Initializing the htmPageContent Variable

See Also

Page Execution Model for Solution Sites


Including Files in Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The first step in authoring a new Web page for your site consists of including the appropriate files in the correct order.

Files should be included using the following inclusion directive:

<!-- #INCLUDE FILE="include/filename.asp" -->

The files to be included can be divided into the following six categories:

  1. Response header information and pipeline choice. You should include one of the two files include\header.asp or include\txheader.asp, but not both. The only differences between them is that the file txheader.asp includes the transaction directive "TRANSACTION=REQUIRES_NEW", and they define the global string variable g_sPipelineProgID differently.

    The file txheader.asp defines the variable g_sPipelineProgID as "PooledTxPipeline" and the file header.asp defines it as "PooledPipeline", defining the use of a pooled pipeline with and without transactions, respectively. This variable is passed as the second parameter to the RunPipe method of the OrderGroup object in the file std_pipeline_lib.asp.

  2. Constant definitions, if any. The file include\const.asp is empty as delivered with the Solution Sites, and need not be included unless you add your own constant definitions to it that are used in the file being authored. The constants used by the existing routines in the Solution Sites are defined in the type library named appconsts.tlb. For more information, see Constants and Constants Reference.
  3. Utility routines. There are a number of include files that define utility routines in various functional categories. Depending on the functionality of the page you are authoring, you will probably end up including a fair number of the following files (the files shown in bold font are more likely to be included in every page you author):
include\addr_lib.asp | include\std_dates_lib.asp
include\analysis.asp | include\std_error_lib.asp
include\catalog.asp | include\std_ordergrp_lib.asp
include\form_lib.asp | include\std_pipeline_lib.asp
include\html_lib.asp | include\std_profile_lib.asp
include\payment.asp | include\std_string_lib.asp
include\std_access_lib.asp | include\std_url_lib.asp
include\std_cache_lib.asp | include\std_util_lib.asp
include\std_cookie_lib.asp |
The presence of these files and the large number of utility routines they provide highlight the importance of learning as much as possible about the functionality they provide. Otherwise, you could end up writing and debugging code that is already provided. For more information about the utility routines, see Utility Routines for Solution Sites and Routines Reference.
  1. Discount processing. The file template\discount.asp should be included if the page you are authoring is meant to display discount banners (as opposed to discounts displayed in the basket). If so, your page should include a line of code similar to the following, which uses the RenderDiscounts routine defined in the file template\discount.asp to initialize the variable htmDiscountBannerSlot defined in the file include\setupenv.asp.
    htmDiscountBannerSlot = RenderDiscounts(ProductAffinity, BasketAffinity, nDiscountsToShow)

    The HTML string contents of the variable htmDiscountBannerSlot are then "dumped" to the discount area of the standard page layout in the file template\layout1.asp.

  2. Variable definition and page processing. You must include the file include\setupenv.asp to use the page execution model employed by the Solution Sites. This file creates a large number of global variables, many of which are initialized to values that are stored in the Active Server Pages (ASP) Application object. Code in this file also provides basic functionality required on every page, such as user identification and host name correction. The code on the page ends by invoking a function named Main that serves as the entry point to the page-specific code that provides the HTML that gets rendered as the page you are authoring. For more information, see Implementing the Main Subroutine for Solution Sites.
  3. Page layout. The last file you should include in the page you are authoring should be one of the two files template\layout1.asp or template\no_menu.asp (but not both). The former provides the standard page layout provided with the Solution Sites and the latter provides the more minimal (no menus) layout used in some of the pages within the Solution Sites (for example, welcome.asp and login\login.asp). For more information about the page layouts provided with the Solution Sites, see Page Layout.

    You may determine that your site should use more than the two layouts included with the Solution Sites. In this case, you can develop one or more alternative layout pages, modeled on the files template\layout1.asp and template\no_menu.asp. You would then include an alternative layout page as the last include file on the page you are authoring.

See Also

Page Execution Model for Solution Sites


Implementing the Main Subroutine for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Every page you author that uses the standard page execution model supported by the Solution Sites must implement a routine called Main (implemented as a sub rather than a function). This routine is called near the end of the processing in the file include\setupenv.asp. The routine Main has several responsibilities, as follows:

  • Initialize the variable htmPageContent, which is defined in the include\setupenv.asp file. This variable should be initialized to a string containing the HTML that you want rendered in the content area of the page you are authoring.
  • Where appropriate, initialize the variable htmDiscountBannerSlot, which is defined in the include\setupenv.asp file. This variable should be initialized to a string containing the HTML that you want rendered in the discount area of the page you are authoring.
  • Where appropriate, initialize any additional variables that have been defined to pass HTML content between the routine Main and a customized layout file.
  • Whatever other processing is appropriate for the page you are authoring, such as adding items to the basket, performing checkout processing, and so on.

For example, perhaps the simplest implementation of the routine Main looks something like this:

Sub Main
    htmPageContent = "This is the content area."
End Sub

Another example, which displays the same string in bold font, looks something like this:

Sub Main
    htmPageContent = "This is the content area."

    ' Function Bold from include\html_lib.asp
    htmPageContent = Bold(htmPageContent)
End Sub

Realistically, the routine Main will be much more complex, often involving calls to Commerce Server objects, and to the various utility routines that are available when the files in which they are implemented are included in the page you are authoring. It is important to familiarize yourself with both of these types of resources so that you do not spend unnecessary time re-writing functionality that already exists. Unfortunately, there is no effortless way to gain this familiarity other than by the careful reading of the supplied documentation and examination of the existing code for the Solution Sites.

There are numerous examples of Main routines throughout the pages of the Solution Sites. You should study a number of these to familiarize yourself with how the HTML content assigned to the variable htmPageContent is created in the pages that already exist.

See Also

Implementing Support Routines for Solution Sites

Page Execution Model for Solution Sites


Implementing Support Routines for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The code required to create the page content that is assigned to the variable htmPageContent is often complex enough that good coding practices dictate that you should divide it into multiple routines. The routine Main always serves as the entry point, called by the code in the file include\setupenv.asp. To keep the routine Main from becoming too large and unwieldy, you should often create additional routines that Main calls in the course of performing its job. By convention, these routines typically appear after the routine Main in the page being authored. There are many examples of this in the pages that are delivered with the Solution Sites.

The challenge will be to determine whether the functionality supplied by any supporting routines that you create are specific to the page being authored, or are possibly more general in nature. If they are of the former type, they should be implemented directly in the page being authored. If they are of the latter type, you should create a one or more include files to contain the new utility routines. (Avoid adding new routines to the existing include files so that it is easier to upgrade new releases of the existing files.)

Another challenge is to acquire an adequate understanding of the functionality supplied by the existing utility routines so that you do not spend unnecessary time re-implementing functionality that already exists.

See Also

Implementing the Main Subroutine for Solution Sites

Page Execution Model for Solution Sites


Controlling Access to Solution Site Pages

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

You may want to control access to some of the pages that you author. If so, you should call one of the two routines EnsureAuthAccess - Solution Sites Routine or EnsureAccess - Solution Sites Routines as the first processing performed in the routine Main. If the page you are authoring is meant to be viewable by any user on your site, regardless of whether they are classified as anonymous or authenticated, and you do not care about tracking these users, simply do not call either of these two routines.

The routine EnsureAuthAccess provides the most restrictive level of control for a page. When you call this routine, any users who are not authenticated are prohibited from viewing the page, and they are re-directed to the login page. In other words, only users who are authenticated to Internet Information Services (IIS) (using Basic/Integrated Windows authentication) or have an Auth ticket can get past this routine and view the page. Such users must be both registered and logged in.

The routine EnsureAccess provides a less restrictive level of control for a page. When you call this routine, any user who has not been identified is prohibited from viewing the page. In other words, only users who are authenticated to IIS (using Basic/Integrated Windows authentication) or have either an Auth ticket or a Profile ticket can get past this routine and view the page.

If anonymous users attempt to view a page protected by the routine EnsureAccess, and the site is not configured to require login, an attempt is made to issue them a Profile ticket. If this succeeds, they are allowed to view the page.

For more information about authentication of users and the login processing provided with the Solution Sites, see Page-Level Access Control for Solution Sites and About the Login Feature for Solution Sites, respectively.

See Also

About the User Tracking Feature for Solution Sites

Page-Level Access Control for Solution Sites

About the Login Feature for Solution Sites

Page Execution Model for Solution Sites

EnsureAccess - Solution Sites Routines

EnsureAuthAccess - Solution Sites Routine


Initializing the htmPageContent Variable

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

As mentioned in Implementing the Main Subroutine for Solution Sites and Page Execution Model for Solution Sites, one of the responsibilities of the Main routine in a particular page you are authoring is to establish the value of the variable htmPageContent prior to returning. Once the Main routine has returned, execution proceeds to the page layout code, which uses the value of the variable htmPageContent as the HTML to be rendered in the content area of the page.

Many of the utility routines that exist in the various include files are designed to help create the HTML tags that end up within the string assigned to the variable htmPageContent. One particularly basic set of such routines can be found in the file include\html_lib.asp.

The following example shows a function from the file include\html_lib.asp that wraps the string passed to it in tags that will cause it to be rendered in bold font:

Function Bold(ByVal s)
    Bold = "<B>" & s & "</B>"
End Function

Suppose you have already initialized the variable htmPageContent to contain the string "To be or not to be" that you want to display in the content area of the page, and that you want the string to be rendered in bold font. You could call the function Bold as follows:

htmPageContent = Bold(htmPageContent)

The resulting string is now "<B>To be or not to be</B>".

Another function in the file include\html_lib.asp, named PTag, can be used to wrap a string in paragraph tags. If the new value of the variable htmPageContent is passed to the PTag function, the new value would be "<P><B>To be or not to be</B></P>".

These very simple functions illustrate an important aspect of the design of the utility routines designed to help create the value stored in the variable htmPageContent, and which follows naturally from the nature of HTML markup itself: the construction of the HTML that gets stored as a string in the variable htmPageContent should begin from the innermost, simplest aspects of the page, and build toward the more complex constructs. This methodology makes heavy use of string concatenation, but does provide a higher-level programming approach, allowing you to change styles globally later. It also has the advantage of allowing content to be cached. For more information about caching content, see Caching Solution Sites.

Consider the following, simplified example, which uses three functions to build a table:

Function WrapTable(ByVal s)
    WrapTable = "<TABLE>" & s & "</TABLE>"
End Function

Function WrapRow(ByVal s)
    WrapRow = "<TR>" & s & "</TR>"
End Function

Function WrapCell(ByVal s)
    WrapCell = "<TD>" & s & "</TD>"
End Function

Given the following four string values, these functions can be used to build a 2-by-2 table as shown below:

Dim sRow1Col1, sRow1Col2, sRow2Col1, sRow2Col2, htmTemp1, htmTemp2
sRow1Col1 = "r1,c1"
sRow1Col2 = "r1,c2"
sRow2Col1 = "r2,c1"
sRow2Col2 = "r2,c2"

htmTemp1 = WrapCell(sRow1Col1) & WrapCell(sRow1Col2)
htmTemp1 = WrapRow(htmTemp1)
htmTemp2 = WrapCell(sRow2Col1) & WrapCell(sRow2Col2)
htmTemp2 = WrapRow(htmTemp2)
htmPageContent = htmTemp1 & htmTemp2
htmPageContent = WrapTable(htmPageContent)

This code will produce the following string:

<TABLE><TR><TD>r1,c1</TD><TD>r1,c2</TD></TR><TR><TD>r2,c2</TD><TD>r2,c2</TD></TR></TABLE>

This string will render as follows:

r1,c1 | r1,c2
r2,c2 | r2,c2

For purposes of illustration, this example is simpler than the actual table building routines in the file include\html_lib.asp (RenderTable, RenderTableDataRow, and RenderTableHeaderRow), which are designed such that the data and the formatting attributes for the cells in a table are passed in the form of arrays, avoiding the need to explicitly wrap each cell in TD tags as shown in this example. Nevertheless, the example does show how the string value assigned to the variable htmPageContent is built from the inside out.

Reviewing the provided utility routines will give you an understanding of the functionality provided. The existing pages show how these utility routines are used to build the HTML content that is assigned to the variable htmPageContent in the various functions named Main, and then displayed in the content area in one of the two layout files template\layout1.asp or template\no_menu.asp (or in another layout file of your own design).

See Also

Implementing the Main Subroutine for Solution Sites

Page Execution Model for Solution Sites


Page Layout Customization for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The page execution model for the Commerce Server Solution Sites separates the content displayed on a page from the layout of that content. For a thorough explanation of this execution model, see Page Execution Model for Solution Sites.

As delivered, the Commerce Server Solution Sites provide two different page layout files: template\layout1.asp and template\no_menu.asp. The no_menu.asp file does not incorporate the menu portion of the page, as constructed by the include file template\menu.asp. It also does not incorporate the areas reserved for discounts and a footer that are found in the file template\layout1.asp. For more information about how these two layout pages divide the rendered page into different areas, and where the content for those areas comes from, see Page Layout for Solution Sites.

In order to maintain the separation of content and high-level page layout employed by the Solution Sites, you must understand and conform to the existing mechanisms. There are three ways in which the layout of Web site pages can be changed, the first two concern the high-level layout of the relative positions of the main areas of the page; the third concerns the layout of the content within a given area of the page.

This section contains:

  • Changing the Layout of Existing Solution Site Pages
  • Creating New Content Sources for your Solution Site
  • Adding New Pages to your Solution Site using a Different Layout
  • Changing the Layout Within a Single Page Area for your Solution Site


Changing the Layout of Existing Solution Site Pages

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The easiest way to change the high-level page layout for existing pages is to modify one of the two files template\layout1.asp or template\no_menu.asp, as appropriate for the set of pages you want to change. You must continue to use the existing include files and content variables to populate the existing areas of the page, but you can alter the relative positions of those areas, remove one or more existing areas, or add new areas of your own design.

The HTML code used within the layout pages consists of HTML markup directives, a discussion of the details of which is beyond the scope of this document.

If you add new areas to the page, you will need to choose the type of the content source to associate with those new areas. You must decide between using a new include file or a new content variable to supply the content. For more information, see Creating New Content Sources for your Solution Site.

See Also

Page Layout for Solution Sites

Page Execution Model for Solution Sites


Creating New Content Sources for your Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

If you add new areas to the page, or want to change the content source of one or more existing areas, you will need to choose the type of the content source to associate with those areas. The choice between an include file and a content variable is largely dependent on how custom the content in the new area needs to be, from page to page. If it is not different on each page, the include file approach is best because you can avoid modifying every page in the site that uses that layout design. You can also use a content variable that is initialized somewhere in the code that already gets executed for every page. For more information about where such code would need to be added, see Standard Execution Flow for Solution Sites.

If the content in the new area needs to be quite different for every page being rendered, the best approach may be to define a new content variable and use it in a fashion similar to the variable htmPageContent. The variable can be defined in the file include\setupenv.asp, and initialized somewhere within the routine Main in each page that is using the modified layout.

See Also

Page Layout for Solution Sites

Page Execution Model for Solution Sites

Changing the Layout of Existing Solution Site Pages

Adding New Pages to your Solution Site using a Different Layout


Adding New Pages to your Solution Site using a Different Layout

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

If you add new pages to your site for which you want a different high-level layout, in addition to the two existing page layouts, you should author a new layout page to be included in the new pages being authored. To preserve the existing page execution model of the Solution Sites, model the new layout page on the existing layout pages template\layout1.asp and template\no_menu.asp, and then use the new layout page as the last included file in the new pages being added to the site.

You may or may not use the same set of include files and content variables that are used by the existing layout pages, or you may use some subset of those content sources. If you have areas in the new page layout for which the content comes from a new source, you will need to decide how to implement that new source. For more information about creating new content sources, see Creating New Content Sources for your Solution Site.

See Also

Page Layout for Solution Sites

Page Execution Model for Solution Sites


Changing the Layout Within a Single Page Area for your Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Another aspect of page layout occurs at a lower level, within each of the content areas defined in the files template\layout1.asp and template\no_menu.asp. Changing layout at this lower level consists of changing the HTML code that comes from one or more of the content sources. The layout with the content area controlled by the string assigned to the variable htmPageContent is an obvious example of changing low-level layout. Since the content area is one of the large areas of the page, it is normal to expect its layout to vary more from page to page. Indeed, the content area being different is, to a large extent, what makes one page different from another. Therefore, changing the code that creates the contents of the variable htmPageContent for a particular page might only change the content area for that one page. Whether your code changes affect content on more than one page is largely dependent on where you make the changes. If your changes are in the routine Main or its supporting routines in the page file itself, only that page will be affected. If your changes are made to one or more of the utility routines in the files that are included in multiple pages, every page that includes any of the modified files will be affected.

A more interesting aspect of low-level layout changes concerns the areas of the page other than the content area associated with the variable htmPageContent. If you make changes in the HTML produced within one or more of the files included in either the template\layout1.asp or the template\no_menu.asp files, those changes will be seen throughout your site on whatever pages incorporate those files through the layout page that they include. The files in this category, as delivered in the Solution Sites, are:

  • template\banner.inc (included in layout1.asp and no_menu.asp)
  • template\navbar.inc (included in layout1.asp)
  • template\menu.asp (included in layout1.asp)
  • template\footer.inc (included in layout1.asp)

The other file that produces HTML content is the file template\discount.asp. The HTML produced by the script in the file discount.asp is passed back to the file template\layout1.asp using the variable htmDiscountBannerSlot. The entry point in this file is the RenderDiscounts routine. This routine is only called in the two files basket.asp and product.asp.

All other pages in the site do not display the discounts area, for one of two reasons. First, they might include the alternative layout file template\no_menu.asp, which does not include the contents of the variable htmDiscountBannerSlot in the content it produces. Second, the variable htmDiscountBannerSlot might remain initialized to the empty string because a call to the routine RenderDiscounts is never made.

See Also

Page Layout Variables for Solution Sites

Page Layout for Solution Sites

Page Execution Model for Solution Sites


About Customizing HTML Styles for your Solution Site

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The style mechanism in the Solution Sites provides most of the advantages of Cascading Style Sheets (CSS) without requiring a browser that supports CSS. The main advantage of this approach is that it provides central management of the appearance of the site. The Solution Sites will work with any browser that supports HTML 3.2. This provides compatibility with a number of older browsers, maximizing the number of potential customers. If this level of compatibility is not an issue for you, you can change these styles to specify client-side CSS styles.

All of the HTML styles used in the Solution Sites are stored in a Dictionary object that is created and initialized by two functions. These functions are GetSiteStyles and AddPartnerAndCustomerServiceStyles. During application initialization, the Main function in the global.asa file, which is contained in the file global_main_lib.asp, calls the GetSiteStyles function to create the MSCSSiteStyle dictionary. The GetSiteStyles function sets the basic styles, and then calls the AddPartnerAndCustomerServiceStyles function to add the styles used in the Partner and Customer services. As shipped, the service-related styles are only used in the Partner and Customer services; however, they are available throughout the application.

Since the MSCSSiteStyle dictionary is an application variable, using any of the styles is straightforward. The following example sets the Title font style on the text "Title".

   "<FONT" & MSCSSiteStyle.Title & ">" & "Title" & "</FONT>"

Occasionally the Solution Sites use styles in just this way; however, in most cases the styles are inserted into HTML fragments in a wrapper function. These functions are contained in the include\html_lib.asp file. This makes it easier to use the styles and makes it possible to apply styles to an HTML fragment returned by another function. For example, the following code uses the RenderText function to add a style to text returned by the MessageManager object:

htmTitle = RenderText( _
   mscsMessageManager.GetMessage("L_AdvancedSearch_HTMLTitle", sLanguage), _
   MSCSSiteStyle.Title) & CRLF

The MessageManager object is used throughout the Solution Sites to provide multiple language support. See Internationalization Features for more information about multiple language support.

You can customize the styles that are included with the Solution Sites.

This section contains:

  • Customizing Styles


Customizing Styles

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

There are several ways to customize the appearance of your site. You can apply different styles in the code; for example, you could replace a BorderedTable style with a BorderlessTable style in a particular routine or ASP page. This only changes this one location. You can customize the value of the style; for example, you could change the width of the border in the BorderedTable style to "2". This would change the look of every table that uses that style. It is a good idea to know where a style is used before customizing it. Styles are used in utility functions as well as display pages, and can be used anywhere in your application. You can search the application files for the string "mscssitestyle.<stylename>" using the Find in Files search functionality to locate all occurrences of a particular style.

Before customizing a style, you must be certain that the syntax for that style will be correct wherever it is used. The wrapper functions in the include\html_lib.asp file insert the style into the HTML fragment without any error checking.

The following topics list the styles in the MSCSSiteStyle dictionary:

  • GetSiteStyles
  • AddPartnerAndCustomerServiceStyles

GetSiteStyles

The GetSiteStyles function sets the following styles:

Table Styles

Attributes: ALIGN, WIDTH, BORDER, CELLSPACING, CELLPADDING

BorderlessTable = " BORDER='0'"

BorderedTable = " BORDER='1' CELLSPACING='0' CELLPADDING='5'"

AddressTable = " BORDER='1' CELLSPACING='2' CELLPADDING='5'"

Form = " BORDER='0' CELLSPACING='10'"

MenuTable = " BORDER='0' CELLSPACING='10'"

NoBorderTable = " BORDER='0'"

BasketTable = " BORDER='1' CELLSPACING='0' CELLPADDING='1'"

Table Row (tr) Styles

Attributes: ALIGN, VALIGN

TRLeft = " ALIGN='Left'"

TRCenter = " ALIGN='Center'"

TRRight = " ALIGN='Right'"

TRTop = " VALIGN='Top'"

TRMiddle = " VALIGN='Middle'"

TRBottom = " VALIGN='Bottom'"

Table Heading and Data (th/td) Styles

Attributes: NOWRAP, ROWSPAN, COLSPAN, WIDTH, HEIGHT, ALIGN, VALIGN,

TDLeft = " ALIGN='Left'"

TDCenter = " ALIGN='Center'"

TDRight = " ALIGN='Right'"

Font Styles

Attributes: SIZE, COLOR

SiteName = " SIZE='+3'"

Title = " SIZE='+1'"

MenuHead = ""

MenuBody = ""

BasketHeader = ""

BasketData = ""

Body = ""

Warning = " COLOR='Red'"

Tip = " COLOR='Red'"

Currency Styles

BaseCurrency = ""

AltCurrency = " COLOR='Red'"

Input Styles

TextBox = ""

PasswordBox = ""

CheckBox = ""

RadioButton = ""

Button = ""

Link = ""

ListBox = ""

AddPartnerAndCustomerServiceStyles

The AddPartnerAndCustomerServiceStyles function sets the following styles:

Search Box Styles

header

SearchHeaderTable = " BGCOLOR='#FFFFCC' border='1' cellspacing='5' cellpadding='0'"

body

SearchBodyTable = " BGCOLOR='#FFFFCC' width='100%'"

EditSheet (table) Styles

Grid

ContentsHeaderTable = " BGCOLOR='#CCFFCC' border='0' width='100%' cellspacing='0' cellpadding='0'"

Header

ContentsBodyTable = " BGCOLOR='#FFFFCC' border='0' width='100%' cellspacing='0' cellpadding='0'"

Group Divider

ContentsGroupTable = " BGCOLOR='#CCCCFF' border='0' width='100%' cellspacing='0' cellpadding='0'"

ListSheet (results table) Styles

Header

ListContentsHeaderTable = " BGCOLOR='#CCCCFF' BORDER='0' CELLSPACING='0' CELLPADDING='2' WIDTH='100%'"

Grid

ListContentsBodyTable = " BGCOLOR='#CCFFCC' BORDER='1' CELLSPACING='0' CELLPADDING='2' WIDTH='100%'"

Table Styles

StatusTable = " BGCOLOR='#FFFFFF' border='0' width='100%' cellspacing='0' cellpadding='0'"

FooterTable = " BORDER='0' WIDTH='100%' CELLSPACING='0' CELLPADDING='0'"

MsgBoxTitleTable = " BGCOLOR='#CCCCCC' border='0' width='60%' height='5%' cellspacing='0' cellpadding='0'"

MsgBoxHeadingTable = " BGCOLOR='#CCCCCC' border='0' width='60%' heigth='5%' cellspacing='0' cellpadding='0'"

MsgBoxBodyTable = " BGCOLOR='#CCCCCC' border='0' width='60%' heigth='15%' cellspacing='0' cellpadding='0'"

MsgBoxFooterTable = " BGCOLOR='#CCCCCC' border='0' width='60%' heigth='5%' cellspacing='0' cellpadding='0'"

Font Styles

StatusString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

SearchHeaderString = " COLOR='BLACK' FACE='Verdana' SIZE='5'"

SearchBodyString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

ContentsHeaderString = " COLOR='BLACK' FACE='Verdana' SIZE='5'"

ContentsGroupString = " COLOR='BLACK' FACE='Verdana' SIZE='5'"

ContentsBodyString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

FooterString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

MsgBoxTitleString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

MsgBoxHeadingString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

MsgBoxBodyString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

MsgBoxFooterString = " COLOR='BLACK' FACE='Verdana' SIZE='4'"

See Also

Initialization


Debugging Resources

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

It is beyond the scope of this documentation to teach you how to debug Web applications. However, this topic directs you to sources of additional information about how to debug potential problems that may occur with your use of Commerce Server and the Solution Sites.

This topic contains:

  • Articles About Debugging
  • Debugging Tools
  • Articles on ASP Development

Articles About Debugging

The Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161 contains a large volume of information related to debugging. You may find the following articles instructive (search for them by title, using "Exact Phrase" as your search criteria and including both "MSDN Library" and "Web Workshop" in your search scope):

  • Microsoft Visual InterDev 6.0 Debugging
  • Debugging Distributed Web Applications
  • Debugging Applications and Components
  • Troubleshooting Components Under ASP Technology
  • Debugging ASP Applications
  • Debugging Script Objects in ASP Pages for Microsoft Visual InterDev 6.0 Developers

You can find additional information about debugging in the technical articles on the Visual InterDev Web site at http://go.microsoft.com/fwlink/?LinkId=6735.

Debugging Tools

One of the primary tools used to develop Commerce Server was Microsoft Visual Studio, which includes Microsoft Visual InterDev, Microsoft Visual C++, and Microsoft Visual Basic. It is the recommended integrated development environment for working with Commerce Server.

The Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161 contains information about additional tools that can be useful when debugging Web applications, including how to acquire these tools. Search for the indicated tool by title, using "Exact Phrase" as your search criteria and including both "MSDN Library" and "Web Workshop" in your search scope:

  • Microsoft Script Debugger. Search string: "Microsoft Script Debugger for Internet Explorer".
  • IIS Exception Monitor. Search string: "Troubleshooting with Exception Monitor".
  • User Mode Process Dump. Search string: "OEM Support Tools".
  • WinDbg. The WinDbg files are installed when you install the developer tools included with the Platform Software Development Kit (SDK). For information on using WinDbg, see the help file windbg.hlp, which is included with WinDbg.
  • System Monitor, Performance Logs and Alerts, and Event Viewer. These three Microsoft Management Console (MMC) snap-ins are included, by default, in the Commerce Server Manager console. You may find them useful for debugging and performance tuning your Web site.

When debugging pipelines, you should consider turning on logging for pipeline execution to help see where failures occur.

The Order sitelet in the Commerce Server SDK includes the script file DumpOrder.vbs (in the source\pipeline sub-folder). This file is designed to be used with the Scriptor pipeline component. It can be used to dump the contents of an OrderForm object at arbitrary points in the execution of the Order Processing pipeline (OPP). For more information, see the instructions at the beginning of the file DumpOrder.vbs.

Articles on ASP Development

An important way reduce the occurrence of bugs in the first place is to understand and apply various best practices. The Microsoft Developer Network (MSDN) at http://go.microsoft.com/fwlink/?LinkId=5161 contains such information, discussing best practices for Web site development using Active Server Pages (ASP). Search for the following articles by title, using "Exact Phrase" as your search criteria and including both "MSDN Library" and "Web Workshop" in your search scope:

  • "Improving ASP Application Performance"
  • "ASP Component Guidelines"
  • "Load Test Your ASP Application"
  • "ASP Guidelines"


Optimizing Tools and Techniques

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Monitoring and measuring the performance of your site is the first step in optimizing the performance of your Web site. This section describes some of the performance measuring tools available through Microsoft, and some of the most common optimization techniques in the Solution Sites.

This section includes:

  • Performance Measuring Tools for Solution Sites
  • Optimization Techniques for Solution Sites


Performance Measuring Tools for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Before making any changes to the code in the Solution Sites code, you should measure the performance of your site. To make the most of the time you spend optimizing the performance of your site you must determine which optimizations yield the greatest savings with a minimum amount of development time. Measurements should be done with a proper load, and it is best to measure the all the pages and major components individually, so you can see which components are taking the most time overall. There are many tools available to help you measure the performance of your site.

Microsoft Web Application Stress (WAS) Tool

Microsoft Network Monitor

SQL Server Profiler

System Monitor

Visual Studio Analyzer

Microsoft Web Application Stress (WAS) Tool

This tool reproduces the effects of multiple browsers requesting pages from a Web application. It masks some of the complexities of Web server testing, and it creates an environment similar to production so that problems can be found before you deploy your site. For more information about WAS, see the Microsoft Developer Network at http://go.microsoft.com/fwlink/?LinkId=5161 and search for the Web Application Stress Tool.

Microsoft Network Monitor

This tool monitors real-time traffic on your network, analyzes previously captured data, and extracts data from defined protocol parsers. Network Monitor is also useful for capturing packets between browsers, Web servers, and SQL Server. It provides valuable timing information as well as packet size, network use, and many other statistics that can be valuable for managing system performance. For instructions about installing Network Monitor, see http://go.microsoft.com/fwlink/?LinkId=5161.

SQL Server Profiler

The SQL Server Profiler tool captures Microsoft SQL Server events from a server. The captured events are saved in a trace file that can be analyzed later when trying to diagnose a problem. You can use the trace files to step through problem queries to find the cause of the problem, find and diagnose slow-running queries, or capture the series of SQL statements that lead to a problem. The saved trace file can then be used to replicate the problem on a test server where the problem can be diagnosed. For more information see http://go.microsoft.com/fwlink/?LinkId=6682.

System Monitor

This tool collects extensive data about the ways in which hardware resources and system services are used on your site. Use System Monitor to collect and view real-time performance data on a local computer or from several remote computers. Data can be presented in a printable graph, histogram, or report view. You can incorporate System Monitor functionality into Microsoft Word or other applications in the Microsoft Office suite to link gathered data with Microsoft Word or Microsoft Excel documents. You can also create reusable monitoring configurations that can be installed on other computers using the Microsoft Management Console. For more information, see http://go.microsoft.com/fwlink/?LinkId=6736.

Visual Studio Analyzer

This tool analyzes performance, isolates page faults, and understands the structure of your distributed applications. Visual Studio Analyzer can be used with any application built with the Microsoft Visual Studio tools. Several Microsoft technologies, (COM, ADO and COM+) are shipped with the ability to provide information to Visual Studio Analyzer. In addition, you can customize your own applications to provide information to Visual Studio Analyzer. For more information, see http://go.microsoft.com/fwlink/?LinkId=6737.


Optimization Techniques for Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

After measuring your site for bottlenecks and other performance issues, and setting performance goals, you can start tuning your site. This topic discusses some of the most common optimization techniques and their solutions.

Creating a static homepage

Profiling anonymous users

Limiting the number of constants

Tuning the size of existing caches

Caching custom content

Removing unused code

Porting code to Visual Basic

Creating a static homepage

Because static pages do not require database lookups or other Active Server Pages (ASP) processing, you can reduce latency by creating a static home page. Any reduction in dynamic content improves the capacity of your servers. However, creating a static home page may create difficulties if you have users whose browsers do not support cookies.

Profiling anonymous users

Implicit profiling of anonymous users can be a great way to collect information about how users interact with your site. However, the cost of the storing this information may not be beneficial if the information is not analyzed on a regular basis to improve your Web site. To stop profiling anonymous users, change the Site privacy options App Default Config property to two (2). For more information about changing App Default Config settings, see Configuring the App Default Config Resource.

Limiting the number of constants

Measurements indicate that having more than thirty-three constants in an ASP page causes Web site performance to degrade. One solution to this problem is to put all the constants into a type library.

Tuning the size of existing caches

When determining the size of a cache, consider the following: memory requirements of each fragment, the memory on your computer, the hit rate of a particular cache entry, and latency costs to compute each cache entry. In general, expensive calls should be stored in a larger cache than cheaper calls. For example, you may want to set the product cache size to 100,000 and the category cache size to 1,000 if product calls are more expensive than category calls, and the performance measurements indicate that although the product cache size is large, it performs faster than the respective property calls.

Caching custom content

Typically caching content is a much more efficient way to store content than calling object properties each time information is needed. Thus, if you add custom content to your Web site, you should look into caching that content.

When adding a new type of fragment cache, you must first initialize it in the file global_cache_lib.asp, which is similar to the initialization for the ProductList Fragment Cache. If the cache is catalog related, and you determine that it should be refreshed when the catalog changes, you must also add an oCacheManager.RefreshCache entry in the file BDRefresh.asp, so that when changes are made to the cache it will write to a table that will force the page to refresh with the newly updated information.

To determine which fragments are cached and which are not, uncomment the following three lines of debug code in the LookupCachedFragment function in the file include\std_cache_lib.asp:

If Not IsNull(LookupCachedFragment) Then
   LookupCachedFragment = "<TABLE BORDER=1><TR><TD>Cached: " _
   & sCacheName & BR & sCacheItemName& sLanguage & "</TD></TR><TR><TD>"_
   & LookupCachedFragment & "</TD></TR></TABLE>"
End If

This function puts a table cell around all the cached content, so that you visualize which content is cached.

For more information about creating a custom cache, see Code to Implement Custom Cache Components.

Removing Unused Code

If you do not implement all of the features available in the Solution Sites there is no reason to keep unnecessary code. For example, the user authentication code can be simplified if you do not need to support all of the login permutations.

Porting code to Visual Basic

Porting your ASP code to compiled Visual Basic is a fairly easy way to achieve additional performance in your site. However, there are many arguments to consider before porting your ASP code to Visual Basic. Deployment, versioning and debugging will be more difficult.


Solution Sites File Organization

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Retail and Supplier Solution Sites are implemented using the exact same set of files. The sites differ with respect to a few configuration values in the App Default Config settings, yielding their different behaviors. For more information about the configuration differences between the Retail and Supplier Solution Sites, see Configuration Setting for Solution Sites.

This section describes the common folder structure used by both Solution Sites, and describes the files in each folder. The topic structure in this section generally mirrors the file folder structure of an unpackaged Solution Site, with each folder topic describing the purpose of the files in the corresponding folder, and containing one topic for each file in the folder. The file topics describe the purpose of each file, and provide links to topics in the Routines Reference, one for each routine in the file.

This section contains:

  • Solution Sites Root Folder
  • Solution Sites AuthFiles Folder
  • Solution Sites Error Folder
  • Solution Sites Images Folder
  • Solutions Sites Include Folder
  • Solution Sites Login Folder
  • Solution Sites Pipeline Folder
  • Solution Sites Services Folder
  • Solution Sites Template Folder


Solution Sites Root Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following files are contained in this folder.

File | Description
_additem.asp | Adds an item to the user's basket and then logs the action as a Commerce event.
_delall.asp | Deletes all items from the user's basket.
_delitem.asp | Delete an item from the user's basket and then logs the action as a Commerce event.
_editqty.asp | Used to change the quantity of an item in the user's basket.
_recvpo.asp | Receives a purchase order form from Microsoft BizTalk Server, transforms the data into a Dictionary object, adds it to the order group, runs the pipeline\recvpo.pcf pipeline, and, on validation, saves the new order.
_setadrs.asp | Used to set the shipping or billing address in the user's basket after picking an address from the address book.
_setship.asp | Used to set the shipping method in the user's basket.
addrbook.asp | Retrieves and displays the address book for editing.
addrform.asp | Displays a page for editing the billing or shipping address.
basket.asp | Initializes and displays the basket page.
BDRefresh.asp | Called from Commerce Server Business Desk, this file refreshes all appropriate caches.
category.asp | Displays the products and categories under a specific category.
confirm.asp | Initializes and displays the confirmation page for an order.
crdtcard.asp | Displays an input screen for credit card information when checking out.
csapp.ini | Contains the site and application names.
default.asp | Prepares and renders the home page.
dispatch.asp | Dispatches the user to the payment method page (crdcard.asp or po.asp) when checking out.
fileslst.txt | This file is not used by the Solution Sites.
global.asa | Creates and initializes global objects and variables, and places them in application scope.
newaddr.asp | Adds, edits, or deletes address book addresses.
opt-out.asp | Adds the user to the opt-out list of a direct mail campaign.
pickship.asp | Displays a page for picking the shipping method.
po.asp | Displays an input screen for purchase order information when checking out.
poschema.xml | Contains the XML-Data Reduced (XDR) schema for purchase order forms.
product.asp | Displays the details for a given product.
rc.xml | Defines localizable string constants.
ReceiveStandard.asp | This file is a standard BizTalk Server receive page used for receiving orders through BizTalk Server over HTTP.
redir.asp | Handles click-throughs and other events on marketing campaign items. It invokes a pipeline that records the events both in memory and to the Internet Information Services (IIS) log file.
RefreshApp.asp | Called from Business Desk, this file refreshes the definitions associated with the Profiling System.
search.asp | Performs a free text search and displays the results.
ServiceReminder.asp | Serves as an example for generating personalized e-mail using direct mail.
srchdept.asp | Displays a list of specification searchable categories from a catalog.
stepsrch.asp | Performs a product specification search and displays the results.
summary.asp | Displays a summary of the basket order, including the grand total.
unpack.vbs | Used when a site is unpackaged using Commerce Server Site Packager. Sets up the error\500error.asp page to be a custom error handler for the site, as well as certain App Default Config resource properties.
welcome.asp | Displays the "Welcome back" message to previously registered users.


_additem.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to add an item to the user's basket and log the action as a Commerce event.

Routines

ApplyVendorInfo

GetProductQuantity

Main

See Also

About the Analysis Integration Feature for Solution Sites

About the Basket Feature for Solution Sites

Solution Sites Root Folder


_delall.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to delete all items from the user's basket.

Routines

Main

See Also

About the Basket Feature for Solution Sites

Solution Sites Root Folder


_delitem.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to delete an item from the user's basket and log the action as a Commerce event.

Routines

Main

See Also

About the Analysis Integration Feature for Solution Sites

About the Basket Feature for Solution Sites

Solution Sites Root Folder


_editqty.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to change the quantity of an item in the user's basket.

Routines

Main

See Also

About the Basket Feature for Solution Sites

Solution Sites Root Folder


_recvpo.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page receives a purchase order form from BizTalk Server, transforms the data into a Dictionary object, adds it to the order group, runs the pipeline\recvpo.pcf pipeline, and, on validation, saves the new order.

Routines

Main

ParseRequestForm

RunOrderPipeline

See Also

About the BizTalk Server Integration Feature

Solution Sites Root Folder


_setadrs.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to set the shipping or billing address in the user's basket after picking an address from the address book.

Routines

CatchErrors

FetchData

Main

See Also

About the Address Management for Solution Sites

About the Basket Feature for Solution Sites

Solution Sites Root Folder


_setship.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page is used to set the shipping method in the user's basket.

Routines

bIsShippingMethodSupported

CatchErrors

GetShippingMethodNameFromID

Main

See Also

About the Basket Feature for Solution Sites

Solution Sites Root Folder


addrbook.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file retrieves and displays the address book for editing.

Routines

CatchErrors

FetchData

htmRenderAddressBook

htmRenderAddressBookPage

htmRenderAddressRows

Main

See Also

About the Address Management for Solution Sites

Solution Sites Root Folder


addrform.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays a page for editing the billing or shipping address.

Routines

CatchErrors

GetAnySavedAddressID

GetDefaultValuesForAddressFormFields

GetSavedAddressID

iValidateSubmittedAddress

Main

SaveAddressToOrderGroup

See Also

About the Address Management for Solution Sites

Solutions Sites Root Folder


basket.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file initializes and displays the basket page.

Routines

CheckBasket

CreatePOIndexes

htmRenderBasket

htmRenderBasketWarnings

htmRenderCheckoutButton

htmRenderDiscountMessageGroup

htmRenderDiscountMessages

htmRenderDiscountsApplied

htmRenderPredictions

InitializeBasketPage

Main

PredictedPropToHREF

RenderBasketPage

See Also

About the Basket Feature for Solution Sites

Solution Sites Root Folder


BDRefresh.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file, called from Commerce Server Business Desk, refreshes all appropriate caches.

Routines

sGetScriptError

See Also

Solution Sites Root Folder


category.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the products and categories under a specific category.

Routines

FetchCategoryData

htmCachedProductList

htmCategoryHTML

Main

See Also

About the Catalog Feature for Solution Sites

Solution Sites Root Folder


confirm.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file initializes and displays the confirmation page for an order.

Routines

htmRenderConfirmationPage

InitializeConfirmationPage

Main

TerminateConfirmationPage

See Also

About the Basket Feature for Solution Sites

About the Checkout Feature for Solution Sites

Solution Sites Root Folder


crdtcard.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays an input screen for credit card information when checking out.

Routines

GetDefaultValueForNameOnCard

GetDefaultValuesForCreditCardFields

htmRenderCreditCardPage

InitializeCreditcardPage

Main

RemovePurchaseOrderInfo

SetCreditCardInfo

ValidateSubmittedCreditCardData

See Also

About the Analysis Integration Feature for Solution Sites

About the Checkout Feature for Solution Sites

About the Payment Options Feature for Solution Sites

Solution Sites Root Folder


csapp.ini

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is generated by Commerce Server Site Packager during unpacking and contains the site and application names. The information in this file should not be changed and will be lost after packaging and unpacking a site.

Remarks

This file should be secured by turning off both read and anonymous access to it in Internet Information Services (IIS). This file should not be secured with NTFS permissions because it needs to be readable under user credentials such as the IUSR account.

See Also

Solution Sites Root Folder


default.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file prepares and renders the home page.

Routines

htmRenderDefaultPage

Main

PrepareDefaultPage

See Also

Solution Sites Root Folder


dispatch.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file dispatches the user to the payment method page (crdtcard.asp or po.asp) when checking out.

Routines

Main

sLookUpPaymentMethod

See Also

About the Checkout Feature for Solution Sites

About the Payment Options Feature for Solution Sites

Solution Sites Root Folder


fileslst.txt

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is not used by the Solution Sites.

See Also

Solution Sites Root Folder


global.asa

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file creates and initializes global objects and variables, and places them in application scope.

Routines

Application_OnStart

Remarks

Most of the creation and initialization of the global objects and variables is performed by a call to the Main subroutine of the file include\global_main_lib.asp. The environment is set to either PRODUCTION or DEVELOPMENT in this file.

See Also

Solution Sites Root Folder


newaddr.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file adds, edits, or deletes address book addresses.

Routines

bIsAddressNameUnique

CatchErrors

dictGetInitialFieldValues

FetchData

htmRenderAddressForm

iValidateSubmittedAddressForAddressBook

Main

SetupAddressForm

UpdateAddressBook

See Also

About the Address Management for Solution Sites

Solution Sites Root Folder


opt-out.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file adds the user to the opt-out list of a direct mail campaign.

Routines

CreateOptOutList

ErrorOut

GetOptOutList

Main

OptOut

SetOptOutList

See Also

Solution Sites Root Folder


pickship.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays a page for selecting the shipping method.

Routines

CatchErrors

dictAggregatePreviews

htmCachedShippingMethods

htmRenderPickshipForm

htmRenderShippingMethods

htmRenderShippingOptionsEx

Main

PreparePickShipForm

PrepareShippingMethods

rsGetShippingMethods

sGetDefaultShippingMethod

See Also

About the Checkout Feature for Solution Sites

Solution Sites Root Folder


po.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays, when checking out, an input screen for purchase order information.

Routines

GetDefaultValuesForPurchaseOrderFields

htmRenderPaymentOptionsPage

InitializePO

Main

RedirectToPOConfirmation

RemoveCreditCardInfo

SetPurchaseOrderInfo

TerminatePO

ValidateSubmittedPurchaseOrderData

See Also

About the Analysis Integration Feature for Solution Sites

Solution Sites Root Folder


poschema.xml

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains the XML-Data Reduced (XDR) schema for purchase order forms.

See Also

Solution Sites Root Folder


product.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the details of a given product.

Routines

htmRenderBuiltInProperties

htmRenderUserDefinedProductProperties

htmRenderVariantsList

listGetVariantPropertiesToShow

Main

PeekField

sGetPropertyDisplayName

See Also

About the Catalog Feature for Solution Sites

Solution Sites Root Folder


rc.xml

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file defines localizable string constants.

See Also

Solution Sites Root Folder


ReceiveStandard.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is a standard BizTalk Server receive page used for receiving orders through BizTalk Server over HTTP.

Routines

None.

See Also

About the BizTalk Server Integration Feature

Solution Sites Root Folder


redir.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file handles click-throughs and other events on marketing campaign items. It invokes a pipeline that records the events both in memory and to the Internet Information Services (IIS) log file.

Routines

Main

RecordClickToBasket

See Also

Solution Sites Root Folder


RefreshApp.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file, called from Business Desk, refreshes the definitions associated with the Profiling System.

Routines

ProfileRefresh

See Also

Solution Sites Root Folder


search.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file performs a free text search and displays the results.

Routines

bFullTextResultsAreCached

htmRenderFullTextSearchResults

Main

See Also

Solution Sites Root Folder


ServiceReminder.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file serves as an example for generating personalized e-mail using direct mail.

Routines

None.

See Also

Solution Sites Root Folder


srchdept.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays a list of specification searchable categories from a catalog.

Routines

arrSearchDept

bIsSearchDeptPageCached

htmRenderSearchDeptPageContent

Main

See Also

About the Catalog Feature for Solution Sites

Solution Sites Root Folder


stepsrch.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file performs a product specification search and displays the results.

Routines

bClickedViewButton

bClickedViewOrSearchButton

bIsStepSearchPageCached

GetSpecificationSearchClauses

htmRenderStepSearchPageContent

Main

PerformSpecificationSearch

PrepareSpecificationSearch

ShowRefinedSearch

ShowSearchMatches

See Also

About the Catalog Feature for Solution Sites

Solution Sites Root Folder


summary.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays a summary of the basket order, including the grand total.

Routines

CatchErrors

htmRenderAddress

htmRenderDiscountsDescriptions

htmRenderGrandTotals

htmRenderOrderForm

htmRenderSummaryPage

htmRenderVerifyWithForm

InitializeSummaryPage

Main

TerminateSummaryPage

See Also

About the Basket Feature for Solution Sites

About the Checkout Feature for Solution Sites

Solution Sites Root Folder


unpack.vbs

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is used when a site is unpacked using Commerce Server Site Packager. It sets up the error\500error.asp page to be a custom error handler for the site, as well as the i_SiteDefaultLocale, i_BaseCurrencyLocale, and s_PageEncodingCharset properties in the App Default Config resource, based on the system locale.

Routines

FormatOutput

Remarks

Since this routine is not used in the Solution Sites, it does not appear in the Routines Reference section.

See Also

500error.asp

App Default Config Settings for Solution Sites

Solution Sites Root Folder


welcome.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the "Welcome back" message to registered users who return to the site.

Routines

Main

See Also

About the Login Feature for Solution Sites

Solution Sites Root Folder


Solution Sites AuthFiles Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder are provided for use with the AuthFilter, the Internet Server API (ISAPI) filter provided with Commerce Server. Only the Supplier AD Solution Site uses the AuthFilter or any files in this folder. These files are included in case you want to integrate the AuthFilter into your Supplier AD site.

The following files are contained in this folder.

File | Description
autocookie.asp | Generates a globally unique identifier (GUID) used to track an anonymous user, creates a ticket containing the GUID, and sets the ticket in a persistent cookie.
error.asp | Used to write an error message to the user.
help.asp | Used to write a help message to the user.
interror.asp | The user is redirected to this page if any abnormal internal errors occur with the AuthFilter or Internet Information Services (IIS).
Login.asp | Handles the login process. A different file with the same name, login\login.asp, is used by the Solution Sites.
nocookie.asp | The user is redirected to this page if cookies are disabled. Provides an informational message.


autocookie.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file generates a globally unique identifier (GUID) used to track an anonymous user, creates a ticket containing the GUID, and sets the ticket in a persistent cookie.

Routines

None.

See Also

Solution Sites AuthFiles Folder


error.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is used to write an error message to the user.

Routines

None.

See Also

Solution Sites AuthFiles Folder


help.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is used to write a help message to the user.

Routines

None.

See Also

Solution Sites AuthFiles Folder


interror.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides an informational message. The user is redirected to this page if any abnormal internal errors occur within the AuthFilter or Internet Information Services (IIS).

Routines

None.

See Also

Solution Sites AuthFiles Folder


Login.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file handles the login process. A different file with the same name, login\login.asp, is used by the Solution Sites.

Routines

GetCurrentUserPassword

Remarks

Since this routine is not used in the Solution Sites, it does not appear in the Routines Reference section.

See Also

Solution Sites AuthFiles Folder


nocookie.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides an informational message. The user is redirected to this page if cookies are disabled.

Routines

None.

See Also

Solution Sites AuthFiles Folder


Solution Sites Error Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder provide for the client display of various error messages. These messages include the error, and sometimes a number of possible causes and links to other pages. The error messages are obtained from the rc.xml file. The file, 500error.asp, provides a centralized place to process Active Server Pages (ASP) errors.

The following files are contained in this folder.

File | Description
500error.asp | Displays messages for any 500 error that occurs during page processing.
baditem.asp | Displays the message that a catalog item is unavailable.
badurl.asp | Displays the message that the URL is not valid.
closed.asp | Displays the message that the site is closed.
construc.asp | Displays the message that the site is under construction.
noauth.asp | Displays the message that the user is not authorized to access the page.
profile.asp | Displays the message that the account (profile) for the user could not be found and provides links to a corrective action.


500error.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Active Server Pages (ASP) application settings for the Solution Sites have been configured so that if any 500 error (an ASP script error, and so on) occurs during page processing, this page will be displayed. The 500error.asp file has been written to show detailed error messages when the site is in DEVELOPMENT mode, but shows a friendlier error message and an event log message when the site is in PRODUCTION mode. Developers are encouraged to modify this file to provide a branded error message, perhaps with Webmaster contact information, and so on, as their needs dictate.

The unpack.vbs file programmatically sets up the ASP application to use this custom error handler. It can also be configured manually using Internet Information Services (IIS).

Routines

RenderDetailedInfoList

RenderErrorType

RenderPageInfo

RenderPostData

RenderTime

See Also

Error Handling for Solution Sites

Solution Sites Error Folder


baditem.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that a catalog item is unavailable.

Routines

Main

See Also

Solution Sites Error Folder


badurl.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that the URL is not valid.

Routines

Main

See Also

Solution Sites Error Folder


closed.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that the site is closed.

Routines

Main

See Also

Solution Sites Error Folder


construc.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that the site is under construction.

Routines

Main

See Also

Solution Sites Error Folder


noauth.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that the user is not authorized to access the page.

Routines

Main

See Also

Solution Sites Error Folder


profile.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This page displays the message that the account (profile) for the user could not be found, and provides links to a corrective action. The page can be reached, for instance, if the site has deleted the profile associated with a cookie, or if invalid login credentials are given in an Active Directory scenario.

Routines

Main

See Also

Solution Sites Error Folder


Solution Sites Images Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This folder provides a central repository for images you use on your Web site. With extensibility of the Solution Sites in mind, this folder is subdivided to allow for separating the images by feature area or some other criteria.

This folder contains the following subfolders:

Folder | Description
Catalog | Images used by the Product Catalog System are stored in this folder.
Site | Images used by the site in general are stored in this folder.


Solution Sites Catalog Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Images stored in this folder are intended for use by the Product Catalog System. This folder contains the following file:

File | Description
clockped.gif | An example of an animated image in Graphics Interchange Format (GIF). This image is not used by the Solution Sites.


Solution Sites Site Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Images stored in this folder are intended for use by the site in general. This folder contains the following file:

File | Description
bg.gif | An example of an image that can be used as a page background. This image is not used by the Solution Sites.


Solution Sites Include Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder can be grouped into two major divisions, global libraries and standard libraries. All of the global libraries (global_name_lib) are included and used by the global.asa file. A few of these global files are also used by the BDRefresh.asp and RefreshApp.asp files. The rest of the files are standard libraries that are included by many of the other Active Server Pages (ASP).

The following files are contained in this folder.

File | Description
addr_lib.asp | Contains functions used to retrieve and validate addresses.
analysis.asp | Contains routines used to log Commerce events to the Web server log file for use by Analysis Services.
catalog.asp | Contains routines that deal with catalogs.
const.asp | Stores constants.
form_lib.asp | Contains functions used to render and validate forms.
global_addressbook_lib.asp | Contains functions that describe address forms.
global_cache_lib.asp | Contains a function used to initialize the CacheManager object caches used in the site.
global_catalog_lib.asp | Contains initialization functions for catalogs.
global_creditcards_lib.asp | Contains functions used to retrieve credit card names and field definitions.
global_csf_lib.asp | Contains a subroutine used to initialize the Content Selection Framework (CSF).
global_data_lib.asp | Contains functions used to create and initialize the DataFunctions, SiteConfigReadOnly, BusinessDataAdmin, and GenID objects.
global_forms_lib.asp | Contains functions used to retrieve form and field definitions, and profile attributes.
global_internationalization_lib.asp | Contains functions used to retrieve country name and code lists, and to deal with alternate currencies.
global_main_lib.asp | Contains the Main subroutine called by the global.asa file to create, initialize, and place in application scope many of the objects supplied by Commerce Server.
global_messagemanager_lib.asp | Contains functions used to create and initialize the MessageManager object.
global_predictor_lib.asp | Contains a function used to create the PredictorClient object, and to load the Transaction prediction model from the Data Warehouse.
global_profile_lib.asp | Contains routines used to create and initialize the ProfileService and AuthManager objects, and place all the properties of all the profile schema types into a cached Dictionary object for later reference.
global_siteconfig_lib.asp | Contains routines used to retrieve site configuration information, join a Web farm, and build the dictPages data structure.
global_siteterms_lib.asp | Contains functions used to retrieve and cache site terms for later reference.
global_ui_lib.asp | Contains functions used to initialize site styles.
header.asp | Used to specify the client and server-side code page, response-buffering mode, and so on.
html_lib.asp | Contains functions used to render HTML text, formatting tags, buttons, lists, forms, and tables.
payment.asp | Contains routines used on payment-related pages (crdtcard.asp, dispatch.asp, po.asp, and summary.asp).
setupenv.asp | Used to set up framework variables, retrieve information about the user, and call the Main subroutine.
std_access_lib.asp | Contains routines used to implement page-level access control.
std_cache_lib.asp | Contains routines used to cache fragments and retrieve the cached fragments.
std_cookie_lib.asp | Contains routines used with cookies.
std_dates_lib.asp | Contains date functions.
std_error_lib.asp | Not used.
std_ordergrp_lib.asp | Contains routines used with order groups.
std_pipeline_lib.asp | Contains functions used to retrieve the path of the log file and run the pipeline.
std_profile_lib.asp | Contains routines used to create a new profile, retrieve and update a current profile, check whether the user has a profile, and check whether profiling is enabled on the site.
std_string_lib.asp | Contains routines used for string handling.
std_url_lib.asp | Contains functions used with URLs.
std_util_lib.asp | Contains utility functions used in most pages and also by the global.asa file.
txheader.asp | Used to specify the client and server-side code page, response-buffering mode, and so on, for pages that require a new transaction.


addr_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve and validate addresses.

Routines

GetAddresses

GetAddressType

GetOrganizationAddresses

GetUserAddresses

IsZipCodeValid

LookupRegion

See Also

Solution Sites Include Folder


analysis.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used to log Commerce events to the Web server log file for use by Analysis Services.

Routines

Analysis_ConstructKeyValueString

Analysis_ConstructPRID

Analysis_LogAddToBasket

Analysis_LogEvent

Analysis_LogRemoveFromBasket

Analysis_LogSubmitOrder

See Also

About the Analysis Integration Feature for Solution Sites

Solution Sites Include Folder


catalog.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines that deal with catalogs, and additionally provides the following code declared outside of any routines:

  • Const PRODUCTLIST_PAGE_SIZE = 10
  • Const CATALOG_ROOT_CATEGORY_COLS = "CategoryName,CatalogName"

Routines

EnsureUserHasRightsToCatalog

GetCatalogForUser

GetPriceAndCurrency

htmRenderCatalogList

htmRenderCategoriesList

htmRenderCategoryPage

htmRenderProductsTable

mscsGetCategoryObject

mscsGetProductList

mscsGetSubCategoriesList

mscsUserCatalogs

mscsUserCatalogsetID

mscsUserCatalogsFromID

RenderCatalogLink

RenderCatalogURL

RenderCategoryLink

RenderCategoryURL

RenderProductLink

RenderProductURL

RenderSearchResultRow

RenderSearchResults

rsFreeTextSearch

sUserCatalogsAsString

See Also

About the Catalog Feature for Solution Sites

Solution Sites Include Folder


const.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is used for storing constants when extending the Solution Sites. This file is intentionally empty. For increased performance, the shipped versions of the Solution Sites store constants in a type library.

See Also

Constants in Solution Site Applications

Solution Sites Include Folder


form_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to render and validate forms.

Routines

bMatchesPattern

GetFieldsErrorDictionary

GetSubmittedFieldValues

htmRenderFillOutForm

IsFormSubmitted

See Also

Solution Sites Include Folder


global_addressbook_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions that describe address forms.

Routines

GetAddressBookAddressFieldDefinitions

GetAddressFieldDefinitions

GetShipToAddressFieldDefinitions

See Also

About the Address Management for Solution Sites

Solution Sites Include Folder


global_cache_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains a function used to initialize the CacheManager object caches used in the site.

Routines

InitCacheManager

See Also

Solution Sites Include Folder


global_catalog_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains initialization functions for catalogs.

Routines

dictGetCatalogAttributes

dictGetRSFields

InitCatalogManager

InitCatalogSets

Remarks

This file is used by both the global.asa and BDRefresh.asp files.

See Also

About the Catalog Feature for Solution Sites

Solution Sites Include Folder


global_creditcards_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve credit card names and field definitions.

Routines

GetCreditCardCodesList

GetCreditCardFieldDefinitions

GetCreditCardNamesList

See Also

Solution Sites Include Folder


global_csf_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains a subroutine used to initialize the Content Selection Framework (CSF).

Routines

InitCSF

See Also

Solution Sites Include Folder


global_data_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to create and initialize the DataFunctions, SiteConfigReadOnly, BusinessDataAdmin, and GenID objects.

Routines

GetDWConnectionString

InitDataFunctions

oGetBizDataObject

oGetGenIDObject

Remarks

This file is used by both the global.asa and RefreshApp.asp files.

See Also

Solution Sites Include Folder


global_forms_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve form and field definitions, and profile attributes.

Routines

dictGetPropertySchema

GetFormDefinitions

GetLoginFieldDefinitions

GetPasswordFieldDefinition

GetPurchaseOrderFieldDefinitions

GetRegistrationFieldDefinitions

Remarks

This file is used by both the global.asa and RefreshApp.asp files.

See Also

Solution Sites Include Folder


global_internationalization_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve country name and code lists, and to process alternate currencies.

Routines

GetBillToCurrenciesListItems

GetBillToCurrenciesListValues

GetBillToCurrencyFieldDefinition

GetCountryCodesList

GetCountryNamesList

InitAltCurrencyDisp

See Also

Enabling International Features for Solution Sites

Solution Sites Include Folder


global_main_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains the Main subroutine called by the file global.asa to create, initialize, and place in application scope many of the objects supplied by Commerce Server.

Routines

Main

See Also

Solution Sites Include Folder


global_messagemanager_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains a function used to create and initialize the MessageManager object.

Routines

GetMessageManagerObject

See Also

Solution Sites Include Folder


global_predictor_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains a function used to create the PredictorClient object, and to load the Transaction prediction model from the Data Warehouse.

Routines

InitPredictor

See Also

About Prediction for Solution Sites

Solution Sites Include Folder


global_profile_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used to create and initialize the ProfileService and AuthManager objects. All the properties of all the profile schema types are placed into a cached Dictionary object for later reference.

Routines

AddGroupAndPropertySchemas

dictGetProfileSchemaForAllProfileTypes

InitAuthManager

InitProfileService

listGetProfileSchema

oGetOpenConnectionObject

oGetProfile

See Also

About the Profiles Feature for Solution Sites

Solution Sites Include Folder


global_siteconfig_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used to retrieve the site configuration information, join a Web farm, and build the dictPages data structure.

Routines

GetAppConfigObject

GetBaseURL

GetCommerceSiteInstallPoint

GetCommerceSiteName

GetComputerName

GetConfigDictionary

GetINIFileName

GetINIString

GetMachineBaseURL

GetPaymentMethodsForSite

GetRootPath

GetSecurePagesDictionary

GetSiteConfigObject

GetSitePages

iGetWebServerPort

InitPageSets

InitSitePipelines

IsActiveDirectoryPresent

JoinWebFarm

sGetActiveDirectoryDefaultNamingContext

Remarks

This file is used by both the global.asa and RefreshApp.asp files.

See Also

Solution Sites Include Folder


global_siteterms_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve and cache site terms for later reference.

Routines

bIsSiteTerm

oGetSiteTermOptions

sGetReferenceString

Remarks

This file is used by both the global.asa and RefreshApp.asp files.

See Also

Solution Sites Include Folder


global_ui_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to initialize site styles.

Routines

GetSiteStyles

GetStyles

See Also

Solution Sites Include Folder


header.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file (or the txheader.asp file, its transactional counterpart) should be included at the top of every page. It is used to specify the client and server-side code page, response-buffering mode, and so on.

Remarks

This file provides the following initialization code:

  • @ LANGUAGE=VBScript EnableSessionState=False
  • Option Explicit
  • Response.Charset = Application("MSCSPageEncodingCharSet")
  • Response.Buffer = True
  • Response.CacheControl = "no-cache"
  • Response.AddHeader "Pragma", "no-cache"
  • Response.Expires = -1
  • g_sPipelineProgID = "Commerce.PooledPipeline"

This file is used for all the Active Server Pages (ASP) in the following folders:

  • Root - except for the files crdtcard.asp and po.asp, which use the txheader.asp file
  • Error
  • About the Login Feature for Solution Sites
  • Services - except for the help.asp file
  • Services\Customer
  • Services\Error
  • Services\Partner

See Also

Solution Sites Include Folder


html_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to render HTML text, formatting tags, buttons, lists, forms, and tables.

Routines

Bold

BRTag

GetRepeatStyle

InsertBlankSpace

InsertLineBreaks

InsertParagraphBreaks

Italic

PTag

RenderCheckBox

RenderElement

RenderForm

RenderHiddenField

RenderImage

RenderImageButton

RenderLink

RenderListBox

RenderListBoxFromArray

RenderListBoxFromSimpleList

RenderListFromSimpleList

RenderPasswordBox

RenderPreFormattedText

RenderRadioButton

RenderResetButton

RenderSubmitButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderTableRow

RenderText

RenderTextBox

RenderUnorderedList

RenderUnorderedListFromSimpleList

Tag

See Also

Solution Sites Include Folder


payment.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used on payment-related pages (crdtcard.asp, dispatch.asp, po.asp, and summary.asp).

Routines

CatchErrorsForPaymentPages

About the Checkout Feature for Solution Sites

EnsureSupportForPaymentMethod

GetDefaultPaymentMethodForUser

GetPaymentMethodDisplayName

GetPaymentMethodsForUser

GetPaymentPageFromPaymentMethod

GetXMLForVendorItems

htmRenderPaymentOptionsForUser

InvokeBizTalk

SaveBasketAsOrder

SubmitUsingBizTalk

See Also

About the Analysis Integration Feature for Solution Sites

About the Payment Options Feature for Solution Sites

Solution Sites Include Folder


setupenv.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is used to set up framework variables, retrieve information about the user, and call the Main subroutine.

Routines

SetupPage

Remarks

This file performs the following actions:

  • Sets application variables into local variables
  • Sets up framework variables
  • Corrects for case sensitivities in the URL
  • Retrieves the user ID and sets the user type and access type
  • Calls the Main subroutine of the file it is included in

See Also

Solution Sites Include Folder


std_access_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file includes routines to implement page-level access control.

Routines

EnsureAccess

EnsureAuthAccess

IsFormLoginRequired

IsPersistentCookieAllowed

CheckPartnerServiceAccess

GetUserInfo

sGetUserIDForNewGuestUser

GetAuthManagerObject

See Also

Page-level Access Control for Solution Sites

Solution Sites Include Folder


std_cache_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used to cache fragments and retrieve the cached fragments.

Routines

CacheFragment

CacheObject

LookupCachedFragment

LookupCachedObject

See Also

Solution Sites Include Folder


std_cookie_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used with cookies.

Routines

CorrectRequest

GetCorrectedCookiePath

GetCorrectedHostName

GetIISApplicationName

GetRequestType

SetTestCookie

See Also

Solution Sites Include Folder


std_dates_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve month name and code lists, and year lists.

Routines

GetMonthCodesList

GetMonthNamesList

GetYearsListItems

GetYearsListValues

Remarks

This file is used only by the file include\global_creditcards_lib.asp, which is called only by the global.asa file.

See Also

Solution Sites Include Folder


std_error_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is not used by the Solution Sites.

See Also

Solution Sites Include Folder


std_ordergrp_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines used with order groups.

Routines

AddDiscountMessages

GetAnyLineItem

GetAnyOrderForm

GetErrorCount

GetLineItemsCount

GetOrderGroup

GetOrderGroupManager

LoadBasket

RemoveEmptyOrderForms

SetKeyOnOrderForms

See Also

Solution Sites Include Folder


std_pipeline_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used to retrieve the path of the log file, and to run the pipeline.

Routines

GetPipelineLogFile

RunMtsPipeline

See Also

Solution Sites Include Folder


std_profile_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file supplies routines to create a new profile, retrieve and update a current profile, check whether the user has a profile, and check whether profiling is enabled on the site.

Routines

EnsureUpToDateUserProfile

EnsureUserProfile

GetCurrentUserProfile

GetNewGuestUserProfile

GetProfileFromDB

GetProfileService

GetUserProfileByLoginName

rsGetProfile

rsGetProfileByKey

UpdateUserProfile

See Also

About the Profiles Feature for Solution Sites

Solution Sites Include Folder


std_string_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains string-handling functions used only by the file stepsrch.asp.

Routines

BooleanToString

RemoveBlankItemsFromArray

sChopOffLeft

sChopOffRight

Space

StringToBoolean

See Also

Solution Sites Include Folder


std_url_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions used with URLs.

Routines

AddURLArguments

GenerateURL

GetRequestString

GetRequestStringRange

GetTicketInUrlArg

GetTicketLocation

See Also

Solution Sites Include Folder


std_util_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains utility functions, and also provides the following code declared outside of any routines:

   SCRIPT LANGUAGE=VBScript RUNAT=Server

Routines

ConvertListToArray

CreateSet

DoubleQuote

FormatOutput

GetAddressPage

GetArrayFromList

GetDictionary

GetDiscountDescription

GetErrorSource

GetFileSystemObject

GetKeyValue

GetListItemIndex

GetObjectInstanceDictionary

GetQualifiedName

GetRecordCount

GetRegExp

GetSimpleList

htmRenderCurrency

IsBitValueSet

IsEntityInArray

IsEntityInList

IsEntityInSet

IsNumberInRange

RsToDict

SortDictionaryKeys

Remarks

This file is included by most pages, and also by the global.asa file.

See Also

Solution Sites Include Folder


txheader.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file (or the header.asp file, its non-transactional counterpart) should be included at the top of every page. It is used to specify the client and server side code page, response-buffering mode, and so on, for pages that require a new transaction. This file is only used by the files crdtcard.asp and po.asp.

Remarks

This file provides the following initialization code:

@ TRANSACTION=REQUIRES_NEW LANGUAGE=VBScript EnableSessionState=False
Option Explicit
Response.Charset = Application("MSCSPageEncodingCharSet")
Response.Buffer = True
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
g_sPipelineProgID = "Commerce.PooledTxPipeline"

See Also

Solution Sites Include Folder


Solution Sites Login Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder provide the functionality of the login/logoff process.

The following files are contained in this folder.

File | Description
login.asp | Displays the login page and validates submitted login data.
logoff.asp | Displays the logoff page.
newuser.asp | Used to register new users.
_guest.asp | Redirects the user to the home page as an anonymous user.


login.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides functions to prepare and display the login page.

Routines

Main

PrepareLoginPage

htmRenderLoginPage

ValidateSubmittedLoginData

MoveBasketItems

Remarks

Submitted login data is validated and a ticket is set in a cookie (if enabled on the client) or a URL query string. If used in a Web farm, a timestamp cookie is set.

See Also

About the Login Feature for Solution Sites

Solution Sites Login Folder


logoff.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides functions to prepare and display the logoff page, and logs the user off when the page is run.

Routines

Main

PrepareLogoffPage

htmRenderLogoffPage

Remarks

If the user has an authentication ticket (AUTH_TICKET) or a Web farm timestamp cookie, it is removed. Once logged off, the user is allowed to log in as either as a new anonymous user, or as an existing or new registered user, as appropriate to the site login option.

See Also

About the Login Feature for Solution Sites

Solution Sites Login Folder


newuser.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides functions to prepare and display the registration page where users can self-register.

Routines

Main

PrepareNewUserPage

htmRenderNewUserPage

bRegistrationPageNotAvailable

iValidateSubmittedRegistrationData

mscsNewRegisteredUserProfile

mscsTransferGuestUserProfile

Remarks

The submitted user name is checked for uniqueness. If the user currently has an anonymous profile, it is upgraded to a registered profile. If not, a new profile is created. Upon creation, a ticket is issued so that the user can be tracked throughout the session and possibly in future sessions.

See Also

About the Login Feature for Solution Sites

Solution Sites Login Folder


_guest.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file redirects the user to the home page (default.asp) as an anonymous user.

Routines

Main

See Also

About the Login Feature for Solution Sites

Solution Sites Login Folder


Solution Sites Pipeline Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This folder contains files that implement the pipeline feature.

The following subfolder is contained in this folder:

Folder | Description
Logfiles | Stores pipeline log files, if pipeline logging is enabled.

The following files are contained in this folder:

File | Description
Advertising.pcf | Content Selection Framework (CSF) pipeline that selects targeted advertising.
Basket.pcf | Order Processing pipeline (OPP) that gathers basket information and computes the order subtotal.
Checkout.pcf | OPP that receives and accepts payment information and completes the transaction.
Discounts.pcf | CSF pipeline that selects targeted discounts.
Product.pcf | OPP that looks up information about a specific product. This pipeline is not used in the default implementation of the Solution Sites.
RecordEvent.pcf | CSF pipeline that records targeted content event information to a database.
Recvpo.pcf | OPP that enables the Web site to receive orders through Biz Talk Server.
Total.pcf | OPP that computes the shipping and handling charges, tax, and the order total.


Logfiles Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This folder stores pipeline log files, if pipeline logging is enabled.

The following file is contained in this folder:

File | Description
empty.tmp | A placeholder file.

See Also

Pipelines for Solution Sites

Solution Sites Pipeline Folder


Advertising.PCF

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Content Selection Framework (CSF) pipeline that selects targeted advertising.

Remarks

This pipeline can be added to the Retail or Supplier Solution Sites to implement targeted discounts, but it is not implemented in the default configuration of the Solution Sites.

For more information about the stages and components in the Advertising.pcf file, see Content Selection Pipelines.

See Also

About the Ads for Solution Sites

Pipelines for Solution Sites

Solution Sites Pipeline Folder


basket.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that gathers basket information and computes the order subtotal.

Remarks

The basket.pcf file is modeled on the plan.pct (pipeline configuration template) file. For more information about the plan.pct file, see Plan Pipeline.

See Also

About the Basket Feature for Solution Sites

Pipelines for Solution Sites

Solution Sites Pipeline Folder


checkout.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that receives and accepts payment information.

See Also

About the Checkout Feature for Solution Sites

Pipelines for Solution Sites

Solution Sites Pipeline Folder


Discounts.PCF

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Content Selection Framework (CSF) pipeline that selects targeted discounts.

Remarks

This pipeline can be added to the Retail or Supplier Solution Sites to implement targeted discounts, but it is not implemented in the default configuration of the Solution Sites.

For more information about the stages and components in the Discounts.pcf file, see Content Selection Pipelines.

See Also

About the Discounts Feature for Solution Sites

Pipelines for Solution Sites

Solution Sites Pipeline Folder


product.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that enters the line item detail for each item in the basket.

See Also

About the Basket Feature for Solution Sites

Pipelines for Solution Sites

Solution Sites Pipeline Folder


RecordEvent.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Content Selection Framework (CSF) pipeline that records targeted content event information to a database.

Remarks

This pipeline can be added to the Retail or Supplier Solution Sites, but it is not included in the default configuration of the Solution Sites.

See Also

Pipelines for Solution Sites

Solution Sites Pipeline Folder


recvpo.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that enables the Web site to receive orders through BizTalk Server.

See Also

About the BizTalk Server Integration Feature

Pipelines for Solution Sites

Solution Sites Pipeline Folder


total.pcf

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The Order Processing pipeline (OPP) that computes the sum of the subtotal, tax, shipping, and handling values.

See Also

About the Checkout Feature for Solution Sites

Payment

Pipelines for Solution Sites

Solution Sites Pipeline Folder


Solution Sites Services Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder and subfolders are used for Customer and Partner Services. Customer Services allows users to modify their profiles and view order information. Partner Services allows adminstrators to search and view order information, and to search and modify profiles of users of their organization.

The following subfolders are contained in this folder.

Folder | Description
Customer | Files in this folder allow users to modify their own profile, search for orders, and view order information.
Error | Files in this folder provide for the client display of various error messages.
Include | Files in this folder are used by the files in the Customer Folder and the Partner Folder.
Partner | Files in this folder allow adminstrators to search and view order information, and to search and modify profiles of members of their organization.

The following files are contained in this folder.

File | Description
change_password.asp | Initializes the Partner Desk for changing the user_security_password property of a UserObject profile.
help.asp | This file is a placeholder for a help page.


Customer Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder allow users to modify their own profile, search for orders, and view order information.

The following files are contained in this folder.

File | Description
account.asp | Allows users to view and modify their own profile.
orders.asp | Allows users to search for their orders.
view_order.asp | Allows users to view their orders.


account.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows users to view and modify their own profile.

Routines

Main

See Also

Services\Customer Folder


orders.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows users to search for their orders.

Routines

Main

OrderListActionHandler

See Also

Services\Customer Folder


view_order.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows users to view their orders.

Routines

Main

See Also

Services\Customer Folder


Solution Sites Error Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder provide for the client display of various error messages. The error messages are obtained from the rc.xml file.

The following files are contained in this folder.

File | Description
badaction.asp | Displays the message that an invalid action was requested.
noaccess.asp | Displays the message that the user does not have the necessary privileges to access the page.
noorder.asp | Displays the message that the requested order is not available.
noorgprofile.asp | Displays the message that the user does not belong to an organization.
noprofile.asp | Displays the message that the posted profiles are invalid.


badaction.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the message that an invalid action was requested.

Routines

Main

See Also

Services\Error Folder


noaccess.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the message that the user does not have the necessary privileges to access the page.

Routines

Main

See Also

Services\Error Folder


noorder.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the message that the requested order is not available.

Routines

Main

See Also

Services\Error Folder


noorgprofile.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the message that the user does not belong to an organization.

Routines

Main

See Also

Services\Error Folder


noprofile.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file displays the message that posted profiles are invalid.

Routines

Main

See Also

Services\Error Folder


Solution Sites Include Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder are used by the files in the Services\Customer and Services\Partner folders except for global_service_lib.asp, which is included by the file global.asa.

The following files are contained in this folder.

File | Description
ad_routines.asp | Contains functions to add or remove a user from an Active Directory group.
check_profile.asp | Contains functions for checking whether a profile exists and whether a profile being edited has changed.
const.asp | Defines constants used in Customer and Partner Services.
delete_profiles.asp | Contains routines for deleting profiles.
edit_handlers.asp | Contains action handlers (for example, add, delete, copy, and so on).
get_profiles.asp | Contains functions for retrieving profile properties or a list of profiles.
global_service_lib.asp | Used to assign friendly names to Customer and Partner Services pages, and adds attributes and styles to these pages. Included by the file global.asa.
initialize.asp | Contains routines to initialize the variables (action, subaction, and profile ID) used in all the Partner and Customer Services pages.
lib.asp | Contains general routines.
list_handlers.asp | Contains action handlers for "selecting" in list-type pages.
logic_orders.asp | Contains routines to prepare the order page before rendering.
messagebox_handlers.asp | Contains the action handler for the Save changes confirmation message box.
order_handlers.asp | Contains action handlers for the order details page.
password_handlers.asp | Contains action handlers for the change password form.
profiles_common.asp | Contains routines to build T_SQL statements for use with the Profiling System.
render_common.asp | Contains common rendering functions.
render_edit_blank.asp | Contains common rendering functions for blank editing pages.
render_edit_common.asp | Contains common rendering functions for editing pages.
render_edit_multi.asp | This file is intentionally empty.
render_edit_single.asp | This file is intentionally empty.
render_list.asp | Contains common list rendering routines.
render_messagebox.asp | Contains functions for rendering various types of message boxes.
render_orders.asp | Contains functions for rendering the orders page.
render_password.asp | Contains functions for rendering the change password form.
requisition.asp | Contains routines for retrieving orders and order details requested by the user.
save_all_profiles.asp | Contains common routines for saving profiles when the Select All option is in use.
save_multiple_profiles.asp | This file is empty. In multi-select mode, profiles are saved one-by-one by the file save_one_profile.asp.
save_one_profile.asp | Contains common routines for creating and saving single profiles. In multi-select cases, the profiles are saved one-by-one.


ad_routines.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions to add or remove a user from an Active Directory group.

Routines

bAddUserToGroup

bPaintACLForUser

bRemoveUserFromGroup

See Also

Services\Include Folder


check_profile.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions for checking whether a profile exists and whether a profile being edited has changed.

Routines

bCheckIfProfileExists

bIsPropertyValueAdded

bProfileHasChanged

See Also

Services\Include Folder


const.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file defines constants used in Customer and Partner Services.

Routines

None.

See Also

Services\Include Folder


delete_profiles.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines for deleting profiles.

Routines

DeleteAllProfiles

DeleteRegisteredUser

DeleteSelectedProfiles

DeleteSingleProfile

sGetWhereClauseForCurrentUser

See Also

Services\Include Folder


edit_handlers.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains action handlers (add, delete, copy, and so on).

Routines

DeleteAllActionHandler

DeSelectAllActionHandler

GetStatusFieldAndID

htmAddActionHandler

htmChangePasswordActionHandler

htmCloseActionHandler

htmCopyActionHandler

htmDeleteActionHandler

htmEditAction

htmEditAllProfiles

htmInsertProfile

htmSaveActionHandler

htmSaveAllActionHandler

htmSaveProfiles

htmSelectActionHandlerForEdit

htmSelectedActionHandlerForEdit

PrepareAddAction

PrepareCloseAction

PrepareCopyAction

PrepareDeleteAction

PrepareDeleteAllAction

PrepareDeselectAllAction

PrepareEditAction

PrepareEditAllAction

PrepareInsertProfile

PrepareSaveAction

PrepareSaveAllAction

PrepareSaveProfiles

PrepareSelectActionHandlerForEdit

PrepareSelectAllAction

PrepareSelectedAction

SelectAllActionHandler

See Also

Services\Include Folder


get_profiles.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions for retrieving profile properties or a list of profiles.

Routines

GetAttributeValueFromProfile

GetOrgAttributeFromID

GetUserPropertyFromID

rsGetOrgDetails

rsGetProfileDetails

rsGetProfilesList

rsGetUserDetails

sGetUserFullName

sGetUserLoginName

See Also

Services\Include Folder


global_service_lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file assigns friendly names to Customer and Partner Services pages, and adds attributes and styles to these pages.

Routines

AddPartnerAndCustomerServicePages

AddPartnerAndCustomerServiceStyles

GetPartnerAndCustomerServicePageAttributes

Remarks

This file is included by the file global.asa.

See Also

Services\Include Folder


initialize.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines to initialize the variables (action, subaction, and profile ID) used in all the Partner and Customer Services pages.

Routines

InitializePartnerDesk

sGetAction

sGetIDFromForm

sGetSelectedIDs

sGetSubAction

See Also

Services\Include Folder


lib.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains general routines used by Customer and Partner Services.

Routines

bCheckIfThePropertyFeatureIsSupported

bInvalidDate

bValidateLoginNameChars

bValidatePasswordChars

CheckIfOrderExists

CheckIfProfilesExist

dictGetpropertyFromList

dictGetSearchDictionaryForPage

GetSearchDictionaryForThisPage

iGetCountOfProfiles

iGetCurrentUserPropertyAccessClass

InitializePagingVariables

listCloneProfileSchema

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

PopulateOrderSearchCriteria

PopulateProfileSearchCriteria

ReDirectToPage

RelocateRecordPointer

SetGlobalPagingVariables

sGetDisplayValueForProperty

sGetOrderStatusDetails

sGetParentDN

sGetSelectActionPropertyName

sGetThisPageProperty

sGetUserAccessForThisProperty

sGetUserPartnerDeskRole

sGetUserStatus

TDTag

THTag

TRTag

ValidateFields

See Also

Services\Include Folder


list_handlers.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains the action handler used when selecting items in list-type pages.

Routines

SelectedActionHandlerForList

See Also

Services\Include Folder


logic_orders.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines to prepare the order page before rendering.

Routines

AddDiscountMessages

mscsGetOrderGroupWithDiscountsByID

PrepareOrderList

sGetAddressName

sGetPaymentMethodString

See Also

Services\Include Folder


messagebox_handlers.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains the action handler for the Save changes confirmation message box.

Routines

htmSaveChangesConfirmationHandler

PrepareSaveChangesConfirmation

See Also

Services\Include Folder


order_handlers.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains action handlers for the order details page.

Routines

CloseOrderDetailsActionHandler

htmOrderDetailsActionHandler

htmRenderOrderDetailsForIDs

PrepareCloseOrderDetailsAction

PrepareOrderDetailsAction

RedirectOrderDetailsForIDs

See Also

Services\Include Folder


password_handlers.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains action handlers for the change password form.

Routines

ChangeActionHandler

htmCancelUpdatePasswordAction

UpdatePasswordActionHandler

See Also

Services\Include Folder


profiles_common.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines to build T_SQL statements for use with the Profiling System.

Routines

GetODBCTimeStamp

GetTableNameAndWhereClause

HandleSingleQuote

sAddCriteriaToQuery

sAddEndDate

sAddSetClause

sAddSQLNumber

sAddSQLString

sAddStartDate

sConstructWHEREclause

See Also

Services\Include Folder


render_common.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common rendering functions.

Routines

cellRenderReadOnlyProperty

colRenderAdvancedSearchTab

colRenderCountryNames

colRenderSimpleSearchTab

formRenderPagingButtons

htmRenderBlankSpaces

htmRenderBoolean

htmRenderCountries

htmRenderEmptyRecordSet

htmRenderOrderDateTypes

htmRenderOrderStatusOptions

htmRenderPartnerDeskRoles

htmRenderSelectEndTag

htmRenderSelectTag

htmRenderSiteTerm

htmRenderUserStatusOptions

rowRenderEditSheetBlankLine

rowRenderHeader

rowRenderSearchOptionForDate

rowRenderSearchOptionForInteger

rowRenderSearchOptionForString

rowRenderStatusInfo

sGetPageHeading

sReConstructPageURL

sReplaceString

tableRenderFooterInfo

See Also

Services\Include Folder


render_edit_blank.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common rendering functions for blank editing pages.

Routines

formRenderBlankEditPageBody

htmRenderBlankEditPage

rowRenderBlankProperty

tableRenderBlankProfile

See Also

Services\Include Folder


render_edit_common.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common rendering functions for editing pages.

Routines

colRenderForeignKeyProperty

colRenderPasswordProperty

colRenderPrimaryKeyProperty

colRenderProperty

colRenderPropertyTip

colRenderUniqueKeyProperty

formRenderEditPageBody

htmRenderEditPage

rowRenderHiddenProperty

rowRenderProperty

rowRenderPropertyGroup

rowRenderPropertyTip

rowRenderReadOnlyProperty

sRenderHTMLPreFixForProperty

tableRenderEditPageTasks

tableRenderProfiles

varGetPropertyValue

varGetValueFromPropertyDictionaries

varGetValueFromRequestObject

varUpdateValueForCurrentAction

See Also

Services\Include Folder


render_edit_multi.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is intentionally empty.

Routines

None.

See Also

Services\Include Folder


render_edit_single.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is intentionally empty.

Routines

None.

See Also

Services\Include Folder


render_list.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common list rendering routines.

Routines

arrPopulateProfileDetails

formRenderListPageContents

formRenderProfileSearchOptions

htmRenderProfilesList

htmRenderUniqueIDForProfile

RelocateRecordPointer2

rowRenderListHeading

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

tableRenderListPageTasks

tableRenderMultipleRecords

See Also

Services\Include Folder


render_messagebox.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions for rendering various types of message boxes.

Routines

htmRenderMessageBoxForCancel

htmRenderMessageBoxForDelete

htmRenderMessageBoxForDeleteAll

htmRenderMessageBoxForSave

htmRenderMessageBoxForSelect

htmRenderMessageBoxPage

rowRenderMessageBoxPageContents

tableRenderMessageBoxPage

tableRenderMessageBoxPageButtons

See Also

Services\Include Folder


render_orders.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions for rendering the orders page.

Routines

arrPopulateOrderHeaderDetails

formRenderOrderContents

formRenderOrderSearchOptions

formRenderOrdersListContents

htmRenderOrderDetails

htmRenderOrderList

rowRenderAdvancedSearchOptionsForOrders

rowRenderLineItemHeader

rowRenderListHeadingForOrders

rowRenderSimpleSearchOptionsForOrders

sRenderAddress

tableRenderOrdersListContents

tableRenderOrdersListTasks

tblOrderDetailsTasks

tblRenderOrderDetailsContents

See Also

Services\Include Folder


render_password.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains functions for rendering the change password form.

Routines

formRenderChangePasswordPageContents

htmRenderChangePasswordPage

tableChangePasswordTasks

tableRenderChangePasswordContents

See Also

Services\Include Folder


requisition.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains routines for retrieving orders and order details requested by the user.

Routines

rsGetOrderDetails

rsGetOrdersList

See Also

Services\Include Folder


save_all_profiles.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common routines for saving profiles when the Select All option is in use.

Routines

AddSetClauseAndUpdateUserAccountControl

GetUserAccountControl

sAddWhereClauseForActiveUsers

sAddWhereClauseForPartnerRole

SaveAllSelectedProfiles

UpdateUserAccountControlProperty

See Also

Services\Include Folder


save_multiple_profiles.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is empty. In multi-select mode, profiles are saved one-by-one by the save_one_profile.asp file.

Routines

None.

See Also

Services\Include Folder


save_one_profile.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains common routines for creating and saving single profiles. In multi-select cases, the profiles are saved one-by-one.

Routines

bHandlePaintingACLsForUsersInAD

bInsertProfile

bInsertProfileDetails

bInsertProperty

bSaveProfileAndRedirect

bSaveProfileDetails

bSaveProperty

bSaveReadWriteProperty

GetActiveUsersOnly

InsertHiddenProperty

SaveCommonValueForAllSelectedRecords

SaveProfileProperty

SaveReadOnlyProperty

SaveSAMAccountNameProperty

SaveUserAccountControlProperty

SaveUserParentDNProperty

SaveUserPartnerDeskRoleProperty

SaveUserPropertyForID

sGetAdminsOnly

sGetUsersOnly

UpdateSelectActionPropertyName

UpdateUserPasswordProperty

See Also

Services\Include Folder


Partner Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder allow adminstrators to search and view order information, and search and modify profiles that belong to members of their organization. Administrators can also view and modify the profile of their organization.

The following files are contained in this folder.

File | Description
account.asp | Allows administators to view and modify the profile of their organization.
edit_user.asp | Allows administators to add, delete, or modify profiles that belong to members of their organization.
orders.asp | Allows administators to search for orders made by members of their organization.
users.asp | Allows administators to search for profiles that belong to members of their organization.
view_order.asp | Allows administators to view orders made by members of their organization.


account.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows administators to view and modify the profile that belongs to their organization.

Routines

Main

See Also

Services\Partner Folder


edit_user.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows administators to add, delete, or modify profiles that belong to members of their organization.

Routines

htmEditPageActionHandlers

Main

See Also

Services\Partner Folder


orders.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows administators to search for orders made by members of their organization.

Routines

htmOrderListActionHandler

Main

See Also

Services\Partner Folder


users.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows administators to search for profiles that belong to members of their organization.

Routines

htmListPageActionHandlers

Main

See Also

Services\Partner Folder


view_order.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file allows administators to view orders made by members of their organization.

Routines

Main


change_password.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file initializes the Partner Desk for changing the user_security_password property of a UserObject profile.

Routines

Main

PasswordActionHandlers

See Also

Solution Sites Services Folder


help.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is a placeholder for a help page.

Routines

None.

See Also

Solution Sites Services Folder


Solution Sites Template Folder

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The files in this folder provide the basic HTML display layout, and routines for ad and discounts banners. For more information about the page layout, see Page Execution Model for Solution Sites.

The following files are contained in this folder.

File | Description
banner.inc | Included by the files layout1.asp and nomenu.asp to display advertising banners for pages in the advertisement page set.
discount.asp | Contains logic for choosing discount banner content.
footer.inc | Provides content that is shown at the bottom of every page that is displayed using the layout1.asp file.
layout1.asp | Provides the HTML display layout for the page content along with an advertising banner, navigation bar, menu, discount banner, and footer.
menu.asp | Prepares and displays the menu bar.
navbar.inc | Included by the file layout1.asp to display the navigation bar.
no_menu.asp | Provides a basic HTML display layout for the page content without a menu, navigation bar, or footer.


banner.inc

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is included by the files layout1.asp and no_menu.asp to display advertising banners for pages in the advertisement page set.

Routines

None.

See Also

Solution Sites Template Folder


discount.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file contains logic for choosing discount banner content. It is included by the files basket.asp and product.asp.

Routines

CollectBasketItems

CopyProductToItem

GetAncestorCategories

GetBasketDetails

GetInputParameters

GetShownProductsDetails

listGetShownProductsInfo

oCachedDiscountProductInfo

RenderDiscounts

See Also

Solution Sites Template Folder


footer.inc

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides content that is shown at the bottom of every page that is displayed using the layout1.asp file.

Routines

None.

See Also

Solution Sites Template Folder


layout1.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides the HTML display layout for the page content (htmPageContent) along with an advertising banner, navigation bar, menu, discount banner (htmDiscountBannerSlot), and footer. The htmPageContent and htmDiscountBannerSlot HTML strings are calculated by the Main subroutine.

Routines

None.

See Also

Solution Sites Template Folder


menu.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is included to display the menu bar.

Routines

htmRenderCatalogSection

htmRenderCustomerServiceSection

htmRenderLoginSection

htmRenderMenu

htmRenderPartnerServiceSection

htmRenderSearchSection

PrepareCatalogSection

PrepareLoginSection

PrepareRenderMenu

See Also

Solution Sites Template Folder


navbar.inc

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file is included by the file layout1.asp to display the navigation bar.

Routines

RenderNavbar

See Also

Solution Sites Template Folder


no_menu.asp

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This file provides a basic HTML display layout for the page content without a menu, navigation bar, or footer.

Routines

None.

See Also

Solution Sites Template Folder


Solution Sites Reference

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section provides reference material that can be useful in the course of modifying the Solution Sites to create customized and branded commercial Web sites.

All objects described in this section are supported by Commerce Server 2002.

This section contains:

  • Use of Solution Site Objects. Describes where the various Commerce Server 2002 objects are instantiated in the Solution Sites.
  • Use of App Default Config Settings in Solution Sites. Describes where the various App Default Config settings are tested in the Solution Sites code, enabling or disabling the features that affect the differences between the Retail and Supplier Solution Sites.
  • Constants Reference. Describes the constants available for use in the Solution Sites code.
  • Routines Reference. Describes the numerous routines that constitute the majority of the code in the Solution Sites.


Use of Solution Site Objects

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following table lists the Component Object Model (COM) objects created in the Solution Sites and the files where they are created.

All objects described in this section are supported by Commerce Server 2002.

For an object created more than once in a file (usually in different routines), the number of times it is created is shown after the file name. Objects with the vendor section of the ProgID equal to "Commerce" are supplied by Commerce Server 2002.

ProgID | File
ADODB.Connection | include\global_profile_lib.asp
ADODB.Connection | opt-out.asp
ADODB.Recordset | opt-out.asp
ADODB.Recordset | include\addr_lib.asp
ADODB.Recordset | services\include\delete_profiles.asp
ADODB.Recordset | services\include\get_profiles.asp
ADODB.Recordset | services\include\save_all_profiles.asp (2)
AdoDB.Stream | _recvpo.asp
AdoDB.Stream | ReceiveStandard.asp
BizTalk.Interchange | ReceiveStandard.asp
BizTalk.Interchange | include\payment.asp
Commerce.Acl | unpack.vbs
Commerce.AdminEventLog | opt-out.asp
Commerce.AppConfig | RefreshApp.asp
Commerce.AdminEventLog | error\500error.asp
Commerce.AppConfig | include\global_siteconfig_lib.asp
Commerce.AppFrameWork | include\global_main_lib.asp (2)
Commerce.AuthManager | ServiceReminder.asp
Commerce.AuthManager | AuthFiles\autocookie.asp
Commerce.AuthManager | AuthFiles\Login.asp
Commerce.AuthManager | AuthFiles\nocookie.asp
Commerce.AuthManager | include\global_profile_lib.asp
Commerce.AuthManager | include\std_access_lib.asp
Commerce.BusinessDataAdmin | include\global_data_lib.asp
Commerce.BusinessDataAdmin | include\global_siteconfig_lib.asp (2)
Commerce.CacheManager | include\global_cache_lib.asp
Commerce.CatalogManager | include\global_catalog_lib.asp
Commerce.CatalogSets | include\catalog.asp (2)
Commerce.CatalogSets | include\global_catalog_lib.asp
Commerce.CatalogToVendorAssociation | _additem.asp
Commerce.ContentSelector | template\banner.inc
Commerce.ContentSelector | template\discount.asp
Commerce.DataFunctions | unpack.vbs
Commerce.DataFunctions | include\global_data_lib.asp
Commerce.DBStorage | services\include\lib.asp (2)
Commerce.Dictionary | _additem.asp
Commerce.Dictionary | pickship.asp (4)
Commerce.Dictionary | redir.asp (2)
Commerce.Dictionary | include\global_cache_lib.asp (8)
Commerce.Dictionary | include\global_catalog_lib.asp (2)
Commerce.Dictionary | include\global_csf_lib.asp (2)
Commerce.Dictionary | include\global_siteconfig_lib.asp
Commerce.Dictionary | include\global_siteterms_lib.asp
Commerce.Dictionary | include\std_util_lib.asp
Commerce.Dictionary | services\include\lib.asp (2)
Commerce.DictionaryXMLTransforms | _recvpo.asp
Commerce.DictionaryXMLTransforms | include\payment.asp
Commerce.EuroDisplay | include\global_internationalization_lib.asp
Commerce.ExpressionEvaluator | include\global_main_lib.asp
Commerce.GenID | AuthFiles\autocookie.asp
Commerce.GenID | AuthFiles\Login.asp
Commerce.GenID | include\global_data_lib.asp
Commerce.ListManager | opt-out.asp
Commerce.MessageManager | include\global_messagemanager_lib.asp
Commerce.OrderGroup | include\std_ordergrp_lib.asp
Commerce.OrderGroupManager | include\std_ordergrp_lib.asp
Commerce.OrderGroupManager | services\include\requisition.asp (2)
Commerce.OrderPipeline | include\global_csf_lib.asp (3)
Commerce.PredictorClient | include\global_predictor_lib.asp
Commerce.PrivateDWMBToAdmin | include\global_siteconfig_lib.asp
Commerce.ProfileService | include\global_profile_lib.asp
Commerce.ProfileService | include\std_profile_lib.asp
Commerce.Shipping | pickship.asp
Commerce.ShippingMethodManager | pickship.asp
Commerce.SimpleFindResultInfo | services\include\requisition.asp (2)
Commerce.SimpleFindSearchInfo | services\include\requisition.asp (2)
Commerce.SimpleList | basket.asp
Commerce.SimpleList | redir.asp (2)
Commerce.SimpleList | include\global_profile_lib.asp
Commerce.SimpleList | include\global_siteterms_lib.asp
Commerce.SimpleList | include\std_util_lib.asp (2)
Commerce.SimpleList | services\include\lib.asp (2)
Commerce.SimpleList | template\discount.asp
Commerce.SiteConfig | unpack.vbs
Commerce.SiteConfig | include\global_siteconfig_lib.asp
Commerce.SiteConfigReadOnly | include\global_data_lib.asp
MSXML.DOMDocument | include\global_messagemanager_lib.asp
MSXML.DOMDOCUMENT | include\payment.asp
Scripting.FileSystemObject | unpack.vbs
Scripting.FileSystemObject | include\std_pipeline_lib.asp
Scripting.FileSystemObject | include\std_util_lib.asp
VBScript.RegExp | include\addr_lib.asp
VBScript.RegExp | include\std_util_lib.asp
VBScript.RegExp | services\include\lib.asp
WindowsInstaller.Installer | unpack.vbs
WScript.Shell | unpack.vbs
Wscript.Shell | include\global_siteconfig_lib.asp

Related Commerce Server 2002 Help Topics

Programmer's Reference\Object Reference

See Also

Initialization of Solution Sites


Use of App Default Config Settings in Solution Sites

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following table lists the App Default Config properties and where these properties are referenced in the Solution Sites. For a property referenced more than once in a file, the number of times it is referenced is shown after the file name.

Property | Referencing File
f_AltCurrencyConversionRate | include\global_internationalization_lib.asp
i_AddItemRedirectOptions | _additem.asp (2)
i_AddressBookOptions | addrbook.asp basket.asp newaddr.asp include\std_util_lib.asp
i_AltCurrencyLocale | include\global_internationalization_lib.asp
i_AltCurrencyOptions | include\global_creditcards_lib.asp include\global_forms_lib.asp include\std_util_lib.asp
i_AuctionsOptions | Not referenced in the Solution Sites.
i_BaseCurrencyLocale | include\global_internationalization_lib.asp include\std_util_lib.asp
i_BillingOptions | Not referenced in the Solution Sites.
i_BizTalkOptions | _additem.asp include\payment.asp
i_CookiePathCorrectionOptions | include\std_cookie_lib.asp
i_CurrencyDisplayOrderOptions | include\std_util_lib.asp
i_DelegatedAdminOptions | services\include\lib.asp services\include\render_orders.asp template\menu.asp
i_FormLoginOptions | include\std_access_lib.asp (3) login\login.asp (3) login\logoff.asp (3) login\newuser.asp template\menu.asp
i_FormLoginTimeOut | login\login.asp (2) login\newuser.asp (2)
i_HostNameCorrectionOptions | include\std_cookie_lib.asp
i_IsFullTextSearchInstalled | search.asp
i_PaymentOptions | include\global_siteconfig_lib.asp (2)
i_ShipToLevelOptions | Not referenced in the Solution Sites.
i_ShoppingListOptions | Not referenced in the Solution Sites.
i_SiteDefaultLocale | include\std_profile_lib.asp (2)
i_SitePrivacyOptions | include\std_access_lib.asp include\std_profile_lib.asp
i_SiteRegistrationOptions | login\login.asp login\newuser.asp template\menu.asp
i_SiteTicketOptions | stepsrch.asp include\std_access_lib.asp include\std_cache_lib.asp (2) include\std_cookie_lib.asp include\std_profile_lib.asp (3) include\std_url_lib.asp login\login.asp login\newuser.asp template\menu.asp
s_AltCurrencyCode | include\global_internationalization_lib.asp
s_AltCurrencySymbol | include\global_internationalization_lib.asp (2)
s_AnonymousUserDefaultCatalogSet | include\catalog.asp (2)
s_AuthenticatedUserDefaultCatalogSet | include\catalog.asp (2)
s_BaseCurrencyCode | crdtcard.asp po.asp include\global_internationalization_lib.asp
s_BaseCurrencySymbol | include\global_internationalization_lib.asp (2) include\std_util_lib.asp
s_BizDataStoreConnectionString | include\global_data_lib.asp include\global_main_lib.asp include\global_siteconfig_lib.asp (2)
s_BizTalkCatalogDocType | Not referenced in the Solution Sites, but is used in Commerce Server Business Desk.
s_BizTalkConnString | Not referenced in the Solution Sites.
s_BizTalkOrderDocType | include\payment.asp
s_BizTalkSourceQualifierID | include\payment.asp
s_BizTalkSourceQualifierValue | include\payment.asp
s_BizTalkSubmittypeQueue | include\payment.asp
s_CampaignsConnectionString | opt-out.asp include\global_cache_lib.asp
s_CatalogConnectionString | _additem.asp BDRefresh.asp include\catalog.asp (2) include\global_catalog_lib.asp (2) include\std_pipeline_lib.asp
s_CommerceProviderConnectionString | include\global_profile_lib.asp services\include\delete_profiles.asp services\include\save_all_profiles.asp (3)
s_NonSecureHostname | include\global_siteconfig_lib.asp (2) include\std_cookie_lib.asp
s_PageEncodingCharset | include\global_main_lib.asp
s_ProfileServiceConnectionString | include\global_profile_lib.asp include\std_profile_lib.asp
s_SecureHostname | include\global_siteconfig_lib.asp include\std_cookie_lib.asp
s_SiteName | template\layout1.asp template\no_menu.asp
s_SMTPServerName | Not referenced in the Solution Sites.
s_TransactionConfigConnectionString | BDRefresh.asp pickship.asp (2) include\catalog.asp (2) include\global_cache_lib.asp (10) include\global_catalog_lib.asp include\std_pipeline_lib.asp (2)
s_TransactionsConnectionString | include\std_ordergrp_lib.asp (2) services\include\lib.asp (2) services\include\requisition.asp (2)
s_WeightMeasure | Not referenced in the Solution Sites, but is used in Business Desk.

See Also

App Default Config Settings


Constants Reference

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Existing global constants are declared in a type library. There are two files named const.asp in the Solution Sites. The distinction between them is their scope—that is, which files include them. The file services\include\const.asp contains constants specific to Partner and Customer Services. An empty file, include\const.asp, is included in all the other Active Server Pages (ASP) pages in the Solution Sites.

This section contains:

  • Partner/Customer Service Constants
  • Global Constants

See Also

Constants


Partner/Customer Service Constants

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The file services\include\const.asp contains constants specific to Partner and Customer Services. The following pages include this file:

  • services\customer\account.asp
  • services\customer\orders.asp
  • services\customer\view_order.asp
  • services\partner\account.asp
  • services\partner\edit_user.asp
  • services\partner\orders.asp
  • services\partner\users.asp
  • services\partner\view_order.asp

See Also

Global Constants

Constants Reference

Constants


Global Constants

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The AppConsts 1.0 Type Library is included in the global.asa file. The full source code used to compile this type library is in the Microsoft Commerce Server SDK at <Drive>:\Program Files\Microsoft Commerce Server\SDK\Samples\Solution Sites\AppConsts.idl. Use this file as a starting point if you want to change any values in the type library. If you change any of the values in this type library, you will need to recompile the type library for your changes to become effective.

An empty file, include\const.asp, is included in all the Active Server Pages(ASP) pages other than Partner and Customer Services. You can declare constants in it to avoid rebuilding the AppConsts 1.0 Type Library.

The following topics list the constants declared in the AppConsts 1.0 Type Library:

  • HTMLLib Constants
  • Miscellaneous Constants
  • Access Constants
  • AppConfig Values

See Also

Partner Service Constants

Constants Reference

Constants


HTMLLib Constants

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following constants are declared in the AppConsts 1.0 Type Library.

Constant | Data Type | Value
Post types |  |
HTTP_POST | LONG | 1
HTTP_GET | LONG | 2
Collection types |  |
SIMPLELIST_COLLECTION | LONG | 1
DICTIONARY_COLLECTION | LONG | 2
ARRAY_COLLECTION | LONG | 3
Row types |  |
HEADER_ROW | LONG | 1
DATA_ROW | LONG | 2
Commonly used elements |  |
CR | BSTR | L"<BR>"
CRLF | BSTR | L"<P></P>"
BR | BSTR | L"<BR>"
HR | BSTR | L"<HR>"
NBSP | BSTR | L"&nbsp"
NOWRAP | BSTR | L"NOWRAP"
LJ | BSTR | L"LEFT"
RJ | BSTR | L"RIGHT"
CJ | BSTR | L"CENTER"
ALIGN_LEFT | BSTR | L"LEFT"
ALIGN_RIGHT | BSTR | L"RIGHT"
ALIGN_CENTER | BSTR | L"CENTER"

See Also

Miscellaneous Constants

Access Constants

AppConfig Values

Global Constants

Partner Service Constants


Miscellaneous Constants

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following constants are declared in the AppConsts 1.0 Type Library.

Constant | Data Type | Value
Pipeline |  |
BASKET_ERRORS | BSTR | L"_Basket_Errors"
PURCHASE_ERRORS | BSTR | L"_Purchase_Errors"
ORDERFORMS | BSTR | L"OrderForms"
ORDERGROUP_ID | BSTR | L"ordergroup_id"
PREFERRED_BILLING_CURRENCY | BSTR | L"preferred_billing_currency"
FIRST_NAME | BSTR | L"first_name"
LAST_NAME | BSTR | L"last_name"
DEFAULT_ORDERFORM | BSTR | L"Default"
SHIPPING_METHOD_NAME | BSTR | L"shipping_method_name"
ADDRESS_ID | BSTR | L"address_id"
ADDRESS_PARENT_ID | BSTR | L"ID"
ADDRESS_NAME | BSTR | L"address_name"
REGION_NAME | BSTR | L"region_name"
REGION_CODE | BSTR | L"region_code"
POSTAL_CODE | BSTR | L"postal_code"
ADDRESS_COUNTRY | BSTR | L"country_code"
Forms |  |
CONFIRM_PASSWORD | BSTR | L"confirm_password"
General |  |
MODIFIED_BY | BSTR | L"user_id_changed_by"
DATE_REGISTERED | BSTR | L"date_registered"
DATE_CREATED | BSTR | L"date_created"

See Also

HTMLLib Constants

Access Constants

AppConfig Values

Global Constants

Partner Service Constants


Access Constants

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following constants are declared in the AppConsts 1.0 Type Library.

Constant | Data Type | Value
m_UserAccessType |  |
GUEST_VISIT | LONG | 1
IIS_AUTH | LONG | 2
TICKET_AUTH | LONG | 3
ANON_VISIT | LONG | 5
iUserType |  |
ANON_USER | LONG | 1
GUEST_USER | LONG | 2
AUTH_USER | LONG | 4
AuthManager ticket types |  |
GUEST_TICKET | LONG | 1
AUTH_TICKET | LONG | 2
PROFILE_TYPE |  |
GUEST_PROFILE | LONG | 0
REGISTERED_PROFILE | LONG | 1
Cookie names |  |
GUEST_TICKET_NAME | BSTR | L"MSCSProfile"
AUTH_TICKET_NAME | BSTR | L"MSCSAuth"
TEST_COOKIE_NAME | BSTR | L"mscs_test_cookie_name"
TEST_COOKIE_VALUE | BSTR | L"mscs_test_cookie_value"
Ticket modes |  |
WRITE_TICKET_TO_COOKIE | BOOL | -1
WRITE_TICKET_TO_URL | BOOL | 0
Account status |  |
ACCOUNT_INACTIVE | LONG | 0
ACCOUNT_ACTIVE | LONG | 1
Operational environment |  |
PRODUCTION | LONG | 1
DEVELOPMENT | LONG | 0
Site installation point |  |
HOME_DIRECTORY | LONG | 1
VIRTUAL_DIRECTORY | LONG | 2
Format control |  |
CONTROL_ERROR_TEMPLATE | BSTR | L"%1%2"
BRACKETED_TEMPLATE | BSTR | L"[%1]"
SINGLE_QUOTE_TEMPLATE | BSTR | L"'%1'"
SELECT_CLAUSE_TEMPLATE_3 | BSTR | L"SELECT %1 FROM %2 WHERE %3 ORDER BY %4"
LABEL_TEMPLATE | BSTR | L"%1:"
FULLNAME_TEMPLATE | BSTR | L"%1%2"
KEYVALUE_TEMPLATE | BSTR | L"%1=%2"
Buttons, post, and URL keys |  |
MODE | BSTR | L"mode"
ACTION_BTN_CTRL_NAME | BSTR | L"btnAction"
SUBMIT_BUTTON | BSTR | L"btnSubmit"
RESET_BUTTON | BSTR | L"btnReset"
ADDRESS_TYPE | BSTR | L"address_type"
PAGENUMBER_URL_KEY | BSTR | L"Page"
DEF_NAME_URL_KEY | BSTR | L"def_name"
CATALOG_NAME_URL_KEY | BSTR | L"catalog_name"
CATEGORY_NAME_URL_KEY | BSTR | L"category_name"
PRODUCT_ID_URL_KEY | BSTR | L"product_id"
PRODUCT_QTY_URL_KEY | BSTR | L"product_qty"
PRODUCT_ACTION_KEY | BSTR | L"ActionKey"
VARIANT_ID_URL_KEY | BSTR | L"variant_id"
ITEM_INDEX_URL_KEY | BSTR | L"index"
ORDERFORM_NAME | BSTR | L"orderform_name"
ORDER_ID | BSTR | L"order_id"
ORDER_NUMBER | BSTR | L"order_number"
BILLING_USE | BSTR | L"use_for_billing"
CHECKED | BSTR | L"1"
GUIDS | BSTR | L"ID"
SOURCE_PAGE | BSTR | L"SourcePage"
ADD_ACTION | BSTR | L"New"
ADDRBK_MODE | BSTR | L"addrbk_mode"
RETURN_URL | BSTR | L"return_url"
PO_ITEMINDEX_URL_KEY | BSTR | L"po_index"
SHIPPING_METHOD_URL_KEY | BSTR | L"chkShippingMethod"

See Also

HTMLLib Constants

Miscellaneous Constants

AppConfig Values

Global Constants

Partner Service Constants


AppConfig Values

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

The following constants are declared in the AppConsts 1.0 Type Library.

Constant | Data Type | Value
i_AddressBookOption |  |
ADDRESSBOOK_DISABLED | LONG | 0
ADDRESSBOOK_READONLY | LONG | 1
ADDRESSBOOK_READWRITE | LONG | 2
i_AddItemRedirectOptions |  |
REDIRECT_TO_BASKET | LONG | 0
REDIRECT_TO_PRODUCT | LONG | 1
i_AltCurrencyOptions |  |
ALTCURRENCY_DISPLAY_DISABLED | LONG | 0
ALTCURRENCY_DISPLAY_ENABLED | LONG | 1
i_BillingOptions |  |
NO_BILLING_OPTIONS | LONG | 0
STANDALONE_PO | LONG | 2
i_BizTalkOptions |  |
BIZTALK_PO_XFER_DISABLED | LONG | 0
BIZTALK_PO_XFER_ENABLED | LONG | 1
i_CurrencyDisplayOrderOptions |  |
DISPLAY_BASE_CURRENCY_FIRST | LONG | 0
DISPLAY_ALT_CURRENCY_FIRST | LONG | 1
i_DelegatedAdminOptions |  |
DELEGATED_ADMIN_NOT_SUPPORTED | LONG | 0
DELEGATED_ADMIN_SUPPORTED | LONG | 1
i_FormLoginOptions |  |
FORM_LOGIN_NOT_SUPPORTED | LONG | 0
FORCE_LOGIN_ON_ENTRANCE | LONG | 1
LOGIN_OPTIONAL_ON_ENTRANCE | LONG | 2
FORCE_LOGIN_ON_PURCHASE | LONG | 5
LOGIN_OPTIONAL_ANY_TIME | LONG | 6
USE_IIS_AUTH | LONG | 7
i_PaymentOptions |  |
CREDIT_CARD_PAYMENT_OPTION | LONG | 1
PURCHASE_ORDER_PAYMENT_OPTION | LONG | 4
i_HostNameCorrectionOptions |  |
HOSTNAME_CORRECTION_DISABLED | LONG | 0
HOSTNAME_CORRECTION_ENABLED | LONG | 1
i_CookiePathCorrectionOptions |  |
APP_BASED_CORRECTION | LONG | 1
FILTER_BASED_CORRECTION | LONG | 2
i_SitePrivacyOptions |  |
PROFILE_GUEST_USER | LONG | 1
TRACK_GUEST_VISITS | LONG | 2
i_SiteRegistrationOptions |  |
REGISTRATION_SUPPORTED | LONG | 1
REGISTRATION_NOT_SUPPORTED | LONG | 0
i_SiteTicketOptions |  |
PUT_TICKET_IN_URL | LONG | 1
PUT_TICKET_IN_COOKIE | LONG | 2
GetProfile option |  |
RETURN_NOTHING_ON_NO_PROFILE | BOOL | 0
RETURN_HRESULT_ON_NO_PROFILE | BOOL | -1
Profile fields |  |
PROFILE_TYPE_USER | BSTR | L"UserObject"
PROFILE_TYPE_ADDRESS | BSTR | L"Address"
PROFILE_TYPE_ORG | BSTR | L"Organization"
SCHEMA_CATALOG | BSTR | L"ProfileDefinitions"
PROFILE_SYSTEM_GROUP | BSTR | L"ProfileSystem"
BUSINESS_DESK_GROUP | BSTR | L"BusinessDesk"
GENERAL_INFO_GROUP | BSTR | L"GeneralInfo"
ACCOUNT_INFO_GROUP | BSTR | L"AccountInfo"
FIELD_ORG_ORG_ID | BSTR | L"org_id"
FIELD_ORG_NAME | BSTR | L"name"
FIELD_ORG_CONTACT | BSTR | L"user_id_admin_contact"
FIELD_ORG_DATE_UPDATED | BSTR | L"date_last_changed"
FIELD_ORG_CHANGED_BY | BSTR | L"user_id_changed_by"
FIELD_ORG_PURCHASING_MANAGER | BSTR | L"user_id_purchasing_manager"
FIELD_ORG_RECEIVING_MANAGER | BSTR | L"user_id_receiver"
ORG_CATALOGSET | BSTR | L"GeneralInfo.org_catalog_set"
FIELD_USER_ID | BSTR | L"user_id"
FIELD_USER_LOGIN_NAME | BSTR | L"logon_name"
FIELD_USER_PASSWORD | BSTR | L"user_security_password"
FIELD_USER_FIRST_NAME | BSTR | L"first_name"
FIELD_USER_LAST_NAME | BSTR | L"last_name"
FIELD_USER_CHANGED_BY | BSTR | L"user_id_changed_by"
FIELD_USER_TELEPHONE | BSTR | L"tel_number"
FIELD_USER_TELEPHONE_EXTENSION | BSTR | L"tel_extension"
FIELD_USER_ORGID | BSTR | L"org_id"
FIELD_USER_STATUS | BSTR | L"account_status"
FIELD_USER_DATE_REGISTERED | BSTR | L"date_registered"
FIELD_USER_PARTNERDESK_ROLE | BSTR | L"partner_desk_role"
FIELD_USER_DATE_UPDATED | BSTR | L"date_last_changed"
FIELD_USER_PARENT_DN | BSTR | L"ParentDN"
FIELD_USER_UserAccountControl | BSTR | L"user_account_control"
FIELD_USER_SAMAccountName | BSTR | L"sam_account_name"
FIELD_USER_OLD_PASSWORD | BSTR | L"old_user_password"
FIELD_USER_NEW_PASSWORD | BSTR | L"new_user_password"
FIELD_USER_CONFIRM_PASSWORD | BSTR | L"confirm_password"
ACCOUNT_STATUS | BSTR | L"account_status"
USER_ID | BSTR | L"user_id"
PROFILE_TYPE | BSTR | L"user_type"
LOGON_NAME | BSTR | L"logon_name"
LOGON_PASSWORD | BSTR | L"user_security_password"
USER_LOGIN_NAME | BSTR | L"GeneralInfo.logon_name"
USER_PASSWORD | BSTR | L"GeneralInfo.user_security_password"
USER_FIRST_NAME | BSTR | L"GeneralInfo.first_name"
USER_LAST_NAME | BSTR | L"GeneralInfo.last_name"
USER_CHANGED_BY | BSTR | L"GeneralInfo.user_id_changed_by"
USER_ORGID | BSTR | L"AccountInfo.org_id"
USER_STATUS | BSTR | L"AccountInfo.account_status"
USER_DATE_REGISTERED | BSTR | L"AccountInfo.date_registered"
USER_CATALOGSET | BSTR | L"AccountInfo.user_catalog_set"
USER_PARTNERDESK_ROLE | BSTR | L"BusinessDesk.partner_desk_role"
USER_DATE_UPDATED | BSTR | L"ProfileSystem.date_last_changed"
USER_PARENT_DN | BSTR | L"ProfileSystem.ParentDN"
USER_UserAccountControl | BSTR | L"ProfileSystem.user_account_control"
USER_SAMAccountName | BSTR | L"ProfileSystem.sam_account_name"
FIELD_ADDRESS_ID | BSTR | L"id"
FIELD_ADDRESS_ADDRESS_ID | BSTR | L"address_id"
FIELD_ADDRESS_TYPE | BSTR | L"address_type"
FIELD_ADDRESS_FRIENDLY_NAME | BSTR | L"address_name"
FIELD_ADDRESS_FIRST_NAME | BSTR | L"first_name"
FIELD_ADDRESS_LAST_NAME | BSTR | L"last_name"
FIELD_ADDRESS_ADDRESS1 | BSTR | L"address_line1"
FIELD_ADDRESS_ADDRESS2 | BSTR | L"address_line2"
FIELD_ADDRESS_CITY | BSTR | L"city"
FIELD_ADDRESS_REGION_NAME | BSTR | L"region_name"
FIELD_ADDRESS_REGION_CODE | BSTR | L"region_code"
FIELD_ADDRESS_POSTAL_CODE | BSTR | L"postal_code"
FIELD_ADDRESS_COUNTRY_CODE | BSTR | L"country_code"
FIELD_ADDRESS_COUNTRY_NAME | BSTR | L"country_name"
FIELD_ADDRESS_TELEPHONE | BSTR | L"tel_number"
FIELD_ADDRESS_TELEPHONE_EXTENSION | BSTR | L"tel_extension"
FIELD_ADDRESS_DATE_CREATED | BSTR | L"date_created"
FIELD_ADDRESS_DATE_UPDATED | BSTR | L"date_last_changed"
FIELD_ADDRESS_UPDATED_BY | BSTR | L"user_id_changed_by"
FIELD_ADDRESS_DESCRIPTION | BSTR | L"description"
ADDRESS_ADDRESS1 | BSTR | L"GeneralInfo.address_line1"
ADDRESS_ADDRESS2 | BSTR | L"GeneralInfo.address_line2"
ADDRESS_CITY | BSTR | L"GeneralInfo.city"
ADDRESS_POSTALCODE | BSTR | L"GeneralInfo.postal_code"
ADDRESS_COUNTRY_NAME | BSTR | L"GeneralInfo.country_name"
ADDRESS_TELEPHONE | BSTR | L"GeneralInfo.tel_number"
ADDRESS_TELEPHONE_EXTENSION | BSTR | L"tel_extension"
ADDRESS_DATE_CREATED | BSTR | L"ProfileSystem.date_created"
ADDRESS_DATE_UPDATED | BSTR | L"ProfileSystem.date_last_changed"
ADDRESS_UPDATED_BY | BSTR | L"GeneralInfo.user_id_changed_by"
ADDRESS_DESCRIPTION | BSTR | L"GeneralInfo.description"
Address types |  |
NEUTRAL_ADDRESS | LONG | 0
SHIPPING_ADDRESS | LONG | 1
BILLING_ADDRESS | LONG | 2
User admin roles |  |
ROLE_USER | LONG | 1
ROLE_ADMIN | LONG | 2
Caching |  |
TICKET_REPLACEMENT_TOKEN | BSTR | L"__TICKET__"
Catalog classes |  |
cscCategoryClass | LONG | 1
cscProductVariantClass | LONG | 2
cscProductClass | LONG | 4
cscProductFamilyClass | LONG | 8
cscProductFamilyForVariantsClass | LONG | 16
cscProductVariantsForFamily | LONG | 32
Catalog attributes/properties |  |
DISPLAY_ON_SITE_ATTRIBUTE | BSTR | L"DisplayOnSite"
DISPLAY_NAME_ATTRIBUTE | BSTR | L"DisplayName"
PROPERTY_NAME_ATTRIBUTE | BSTR | L"PropertyName"
DEFINITION_TYPE_PROPERTY_NAME | BSTR | L"i_ClassType"
CATALOG_PRODUCTID_PROPERTY_NAME | BSTR | L"ProductID"
CATALOG_VARIANTID_PROPERTY_NAME | BSTR | L"VariantID"
PRODUCT_NAME_PROPERTY_NAME | BSTR | L"Name"
PRODUCT_DESCRIPTION_PROPERTY_NAME | BSTR | L"description"
PRODUCT_PRICE_PROPERTY_NAME | BSTR | L"cy_list_price"
CATALOG_NAME_PROPERTY_NAME | BSTR | L"CatalogName"
CATEGORY_NAME_PROPERTY_NAME | BSTR | L"CategoryName"
IMAGE_FILENAME_PROPERTY_NAME | BSTR | L"Image_filename"
IMAGE_WIDTH_PROPERTY_NAME | BSTR | L"Image_width"
IMAGE_HEIGHT_PROPERTY_NAME | BSTR | L"Image_height"
PROD_CLASSTYPE_FLDNAME | BSTR | L"i_ClassType"
PROD_CATALOG_FLDNAME | BSTR | L"CatalogName"
PRODUCTLIST_SORT_PROPERTY_NAME | BSTR | L"name"
CATALOG_SEARCH_CATEGORY_NAME | BSTR | L""
CATALOG_ROOT_CATEGORY_NAME | BSTR | L""
ADO_CONNECTION_STRING | BOOL | -1
Pipeline keys |  |
SHIPPING_ADDRESS_ID | BSTR | L"shipping_address_id"
BILLING_ADDRESS_ID | BSTR | L"billing_address_id"
SHIPPING_METHOD_KEY | BSTR | L"shipping_method_id"
PAYMENT_METHOD | BSTR | L"payment_method"
ORDERFORM_PRODUCT_QTY_KEY | BSTR | L"quantity"
TOTAL_LINEITEMS | BSTR | L"total_lineitems"
SHIPPING_TOTAL | BSTR | L"_cy_shipping_total"
HANDLING_TOTAL | BSTR | L"_cy_handling_total"
TAX_TOTAL | BSTR | L"_cy_tax_total"
SAVED_SUBTOTAL | BSTR | L"saved_cy_oadjust_subtotal"
SAVED_SHIPPING_TOTAL | BSTR | L"saved_cy_shipping_total"
SAVED_HANDLING_TOTAL | BSTR | L"saved_cy_handling_total"
SAVED_TAX_TOTAL | BSTR | L"saved_cy_tax_total"
SAVED_TOTAL_TOTAL | BSTR | L"saved_cy_total_total"
SUBTOTAL | BSTR | L"_cy_oadjust_subtotal"
TOTAL_TOTAL | BSTR | L"_cy_total_total"
CC_NAME | BSTR | L"cc_name"
CC_TYPE | BSTR | L"cc_type"
CC_NUMBER | BSTR | L"_cc_number"
CC_MONTH | BSTR | L"_cc_expmonth"
CC_YEAR | BSTR | L"_cc_expyear"
CREDIT_CARD_PAYMENT_METHOD | BSTR | L"credit_card"
PURCHASE_ORDER_PAYMENT_METHOD | BSTR | L"purchase_order"
INI file |  |
CONFIG_FILE | BSTR | L"CSApp.ini"
SITE_NAME | BSTR | L"SiteName"
APP_NAME | BSTR | L"AddressKeyName"
SiteConfig |  |
WEB_SERVER_MACHINE | BSTR | L"s_WebServerMachine"
WEB_SERVER_NAME | BSTR | L"s_WebServerName"
WEB_SERVER_COUNT | BSTR | L"s_NumberOfServers"
CURRENT_WEB_SERVER | BSTR | L"s_CurrentServer"
WEB_SERVER_INSTANCE | BSTR | L"s_WebServerInstance"
Table names |  |
ADDRESS_BOOK_TABLE | BSTR | L"AddressBook"
HRESULTs |  |
HRESULT_E_FAIL | LONG | -2147467259 (0x80004005)
HRESULT_E_NOTIMPL | LONG | -2147467263 (0x80004001)
Input field types |  |
TEXTBOX | LONG | 0
LISTBOX | LONG | 1
PASSWORD | LONG | 2
HIDDEN | LONG | 3
CHECKBOX | LONG | 4
COMBOBOX | LONG | 5
DATETIME | LONG | 7
FileSystemObject |  |
ForReading | LONG | 1
TristateUseDefault | LONG | -2

See Also

HTMLLib Constants

Miscellaneous Constants

Access Constants

Global Constants

Partner Service Constants


Routines Reference

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

Nearly all of the content displayed in the Commerce Server Solution Sites is constructed dynamically using Microsoft Visual Basic Scripting Edition, running within Active Server Pages (ASP). Numerous routines have been written that can be used as is for building new pages, or the routines can be modified as needed to alter existing pages and to support new pages.

It is crucial that you understand the existing Solution Sites routines in order to avoid rewriting code that has already been written and debugged. There are nearly 700 subroutines and functions in the Solution Sites files.

This reference contains one topic per routine. Each routine topic describes the purpose of the routine. A definition section shows the routine definition from the source file. For the most commonly used routines, the parameters are described in detail, return values are described where they exist, and additional remarks may be present. Each routine topic also contains a link to the topic for the file in which the routine is defined.

All routine topics are interlinked in the same fashion as their calling sequences, so that they can be traversed in the same way. This can be important when modifying existing code, and understanding the potential side effects of those changes. See the sections in each topic named "Routines Called" and "Called By".

To make the number of routines more manageable, the routine topics have been divided alphabetically as indicated.

This section contains:

  • A - D
  • E - G
  • H
  • I - O
  • P - R
  • S - V


A - D

このページに対するフィードバックを送信する Commerce Server 2002 SDK

A – D

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letters A through D.

Routine | File
AddDiscountMessages | include\std_ordergrp_lib.asp
AddDiscountMessages | services\include\logic_orders.asp
AddGroupAndPropertySchemas | include\global_profile_lib.asp
AddPartnerAndCustomerServicePages | services\include\global_service_lib.asp
AddPartnerAndCustomerServiceStyles | services\include\global_service_lib.asp
AddSetClauseAndUpdateUserAccountControl | services\include\save_all_profiles.asp
AddURLArguments | include\std_url_lib.asp
Analysis_ConstructKeyValueString | include\analysis.asp
Analysis_ConstructPRID | include\analysis.asp
Analysis_LogAddToBasket | include\analysis.asp
Analysis_LogEvent | include\analysis.asp
Analysis_LogRemoveFromBasket | include\analysis.asp
Analysis_LogSubmitOrder | include\analysis.asp
Application_OnStart | global.asa
ApplyVendorInfo | _additem.asp
arrPopulateOrderHeaderDetails | services\include\render_orders.asp
arrPopulateProfileDetails | services\include\render_list.asp
arrSearchDept | srchdept.asp
bAddUserToGroup | services\include\ad_routines.asp
bCheckIfProfileExists | services\include\check_profile.asp
bCheckIfThePropertyFeatureIsSupported | services\include\lib.asp
bClickedViewButton | stepsrch.asp
bClickedViewOrSearchButton | stepsrch.asp
bFullTextResultsAreCached | search.asp
bHandlePaintingACLsForUsersInAD | services\include\save_one_profile.asp
bInsertProfile | services\include\save_one_profile.asp
bInsertProfileDetails | services\include\save_one_profile.asp
bInsertProperty | services\include\save_one_profile.asp
bInvalidDate | services\include\lib.asp
bIsAddressNameUnique | newaddr.asp
bIsPropertyValueAdded | services\include\check_profile.asp
bIsSearchDeptPageCached | srchdept.asp
bIsShippingMethodSupported | _setship.asp
bIsSiteTerm | include\global_siteterms_lib.asp
bIsStepSearchPageCached | stepsrch.asp
bMatchesPattern | include\form_lib.asp
Bold | include\html_lib.asp
BooleanToString | include\std_string_lib.asp
bPaintACLForUser | services\include\ad_routines.asp
bProfileHasChanged | services\include\check_profile.asp
bRegistrationPageNotAvailable | login\newuser.asp
bRemoveUserFromGroup | services\include\ad_routines.asp
BRTag | include\html_lib.asp
bSaveProfileAndRedirect | services\include\save_one_profile.asp
bSaveProfileDetails | services\include\save_one_profile.asp
bSaveProperty | services\include\save_one_profile.asp
bSaveReadWriteProperty | services\include\save_one_profile.asp
bValidateLoginNameChars | services\include\lib.asp
bValidatePasswordChars | services\include\lib.asp
CacheFragment | include\std_cache_lib.asp
CacheObject | include\std_cache_lib.asp
CatchErrors | _setadrs.asp
CatchErrors | _setship.asp
CatchErrors | addrbook.asp
CatchErrors | addrform.asp
CatchErrors | newaddr.asp
CatchErrors | pickship.asp
CatchErrors | summary.asp
CatchErrorsForPaymentPages | include\payment.asp
cellRenderReadOnlyProperty | services\include\render_common.asp
ChangeActionHandler | services\include\password_handlers.asp
CheckBasket | basket.asp
CheckIfOrderExists | services\include\lib.asp
CheckIfProfilesExist | services\include\lib.asp
CheckOut | include\payment.asp
CheckPartnerServiceAccess | include\std_access_lib.asp
CloseOrderDetailsActionHandler | services\include\order_handlers.asp
CollectBasketItems | template\discount.asp
colRenderAdvancedSearchTab | services\include\render_common.asp
colRenderCountryNames | services\include\render_common.asp
colRenderForeignKeyProperty | services\include\render_edit_common.asp
colRenderPasswordProperty | services\include\render_edit_common.asp
colRenderPrimaryKeyProperty | services\include\render_edit_common.asp
colRenderProperty | services\include\render_edit_common.asp
colRenderPropertyTip | services\include\render_edit_common.asp
colRenderSimpleSearchTab | services\include\render_common.asp
colRenderUniqueKeyProperty | services\include\render_edit_common.asp
ConvertListToArray | include\std_util_lib.asp
CopyProductToItem | template\discount.asp
CorrectRequest | include\std_cookie_lib.asp
CreateOptOutList | opt-out.asp
CreatePOIndexes | basket.asp
CreateSet | include\std_util_lib.asp
DeleteAllActionHandler | services\include\edit_handlers.asp
DeleteAllProfiles | services\include\delete_profiles.asp
DeleteRegisteredUser | services\include\delete_profiles.asp
DeleteSelectedProfiles | services\include\delete_profiles.asp
DeleteSingleProfile | services\include\delete_profiles.asp
DeSelectAllActionHandler | services\include\edit_handlers.asp
dictAggregatePreviews | pickship.asp
dictGetCatalogAttributes | include\global_catalog_lib.asp
dictGetInitialFieldValues | newaddr.asp
dictGetProfileSchemaForAllProfileTypes | include\global_profile_lib.asp
dictGetpropertyFromList | services\include\lib.asp
dictGetPropertySchema | include\global_forms_lib.asp
dictGetRSFields | include\global_catalog_lib.asp
dictGetSearchDictionaryForPage | services\include\lib.asp
DoubleQuote | include\std_util_lib.asp


AddDiscountMessages (std_ordergrp_lib.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds a footnote symbol for each discount applied to each line item. The footnote symbol is a "D" plus the campaign ID.

Definition

Sub AddDiscountMessages(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

Main (basket.asp)

Main (summary.asp)


AddDiscountMessages (services\include\logic_orders.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds a footnote symbol for each discount applied to each line item. The footnote symbol is a "D" plus the campaign ID.

Definition

Sub AddDiscountMessages(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.

Defined in File

services\include\logic_orders.asp

Routines Called

None.

Called By

mscsGetOrderGroupWithDiscountsByID


AddGroupAndPropertySchemas - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub recursively adds all group and property definitions for a profile to a flat list of Dictionary objects contained in a SimpleList object.

Definition

Sub AddGroupAndPropertySchemas(
  byVal oGroup,
  byRef listProperties,
  byRef oProfileDefsCatalog,
  byRef oSiteTermsProfile
)

Defined in File

include\global_profile_lib.asp

Routines Called

dictGetPropertySchema

GetDictionary

Called By

listGetProfileSchema


AddPartnerAndCustomerServicePages - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub assigns friendly names to pages used by Customer and Partner Services.

Definition

Sub AddPartnerAndCustomerServicePages(
  byRef dictPage
)

Defined in File

services\include\global_service_lib.asp

Routines Called

None.

Called By

GetSitePages


AddPartnerAndCustomerServiceStyles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds styles used by Customer and Partner Services.

Definition

Sub AddPartnerAndCustomerServiceStyles(
  byRef objSiteStyle
)

Defined in File

services\include\global_service_lib.asp

Routines Called

None.

Called By

GetSiteStyles


AddSetClauseAndUpdateUserAccountControl - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function updates the PartnerDeskRole property in the profile of the user by creating the appropriate SQL statement.

Definition

Function AddSetClauseAndUpdateUserAccountControl(
  byRef bFieldUpdated,
  byRef bFieldSelected
  byVal dictSearchOptions
)

Return Value

A string containing a SQL statement.

Defined in File

services\include\save_all_profiles.asp

Routines Called

GetRequestString

GetUserAccountControl

sAddSetClause

sGetThisPageProperty

UpdateUserAccountControlProperty

Called By

SaveAllSelectedProfiles


AddURLArguments - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function appends property/value pairs to a URL string.

Definition

Function AddURLArguments(
  byVal url,
  byRef arrParams,
  byRef arrVals
)

Parameters

url
A string containing a URL.
arrParams
An array of strings containing the property names.
arrVals
An array of strings containing the values corresponding to the property names.

Return Value

A string containing the new URL string.

Defined in File

include\std_url_lib.asp

Routines Called

None.

Called By

IsPersistentCookieAllowed

Remarks

The format of the resulting URL string is:

   url?property1=value1&property2=value2


Analysis_ConstructKeyValueString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs a key/value pair for a Commerce event.

Definition

Function Analysis_ConstructKeyValueString(
  byVal sKey,
  byVal sValue
)

Parameters

sKey
A string containing the key.
sValue
A string containing the value corresponding to the key.

Return Value

A string containing the key/value pair.

Defined in File

include\analysis.asp

Routines Called

DoubleQuote

Called By

Analysis_ConstructPRID

Analysis_LogSubmitOrder

Remarks

The format of the string is:

   sKey="sValue"

See Also

About the Analysis Integration Feature for Solution Sites


Analysis_ConstructPRID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs the PRID property string for "add to basket" and "remove from basket" Commerce events.

Definition

Function Analysis_ConstructPRID(
  byVal sCatalogName,
  sCategoryName,
  byVal sProductID
  byVal sVariantID
)

Parameters

sCatalogName
A string containing the catalog name.
sCategoryName
A string containing the category name.
sProductID
A string containing the product ID.
sVariantID
A string containing the variant ID.

Return Value

A string containing the property.

Defined in File

include\analysis.asp

Routines Called

Analysis_ConstructKeyValueString

Called By

Analysis_LogAddToBasket

Analysis_LogRemoveFromBasket

Remarks

The sCategoryName parameter is not used.

The sVariantID parameter can be Null.

The format of the string is:

   sCatalogName;sProductID;sVariantID

See Also

About the Analysis Integration Feature for Solution Sites


Analysis_LogAddToBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub logs a Commerce event (CEVT) when an item is added to the basket.

Definition

Sub Analysis_LogAddToBasket(
  byVal sCatalogName,
  byVal sCategoryName,
  byVal sProductID,
  byVal sVariantID
)

Parameters

sCatalogName
A string containing the catalog name.
sCategoryName
A string containing the category name.
sProductID
A string containing the product ID.
sVariantID
A string containing the variant ID.

Defined in File

include\analysis.asp

Routines Called

Analysis_ConstructPRID

Analysis_LogEvent

Called By

Main (_additem.asp)

Remarks

The sCategoryName parameter is not used.

The sVariantID parameter can be Null.

The format of the logged event is:

   CEVT={T=BSK,EVT=AIBSK,sCatalogName;sProductID;sVariantID}

See Also

About the Analysis Integration Feature for Solution Sites


Analysis_LogEvent - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function logs a Commerce event (CEVT) to the Web server log file.

Definition

Sub Analysis_LogEvent(
  byVal sClass,
  byVal sEvent,
  byVal rgKeyValueStrings
)

Parameters

sClass
A string containing the class of the event.
sEvent
A string containing the name of the event.
rgKeyValueStrings
An array of strings containing the properties to log.

Defined in File

include\analysis.asp

Routines Called

None.

Called By

Analysis_LogAddToBasket

Analysis_LogRemoveFromBasket

Analysis_LogSubmitOrder

Remarks

The format of the logged event is:

   CEVT={T=sClass,EVT=sEvent,property1,property2,...}

See Also

About the Analysis Integration Feature for Solution Sites


Analysis_LogRemoveFromBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub logs a Commerce event (CEVT) when an item is removed from the basket.

Definition

Sub Analysis_LogRemoveFromBasket(
  byVal sCatalogName,
  sCategoryName,
  byVal sProductID,
  byVal sVariantID
)

Parameters

sCatalogName
A string containing the catalog name.
sCategoryName
A string containing the category name.
sProductID
A string containing the product ID.
sVariantID
A string containing the variant ID.

Defined in File

include\analysis.asp

Routines Called

Analysis_ConstructPRID

Analysis_LogEvent

Called By

Main (_delitem.asp)

Remarks

The sCategoryName parameter is not used.

The sVariantID parameter can be Null.

The format of the logged event is:

   CEVT={T=BSK,EVT=RIBSK,sCatalogName;sProductID;sVariantID}

See Also

About the Analysis Integration Feature for Solution Sites


Analysis_LogSubmitOrder - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub logs a Commerce event when an order is submitted.

Definition

Sub Analysis_LogSubmitOrder(
  byVal sOrderID
)

Parameters

sOrderID
A string containing the order ID.

Defined in File

include\analysis.asp

Routines Called

Analysis_ConstructKeyValueString

Analysis_LogEvent

Called By

SaveBasketAsOrder

Remarks

The format of the logged event is:

   CEVT={T=ORD,EVT=SUBOR,ORID=OrderID}

See Also

About the Analysis Integration Feature for Solution Sites


Application_OnStart - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub runs when the application starts.

Definition

Sub Application_OnStart()

Defined in File

global.asa

Routines Called

Main (include\global_main_lib.asp)

Remarks

The application starts when the first user requests a file in the application.


ApplyVendorInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves the vendor information for the specified catalog and adds that information to the dictionary containing the line item information if BizTalk Server integration is enabled (i_BizTalkOptions = 1).

Definition

Sub ApplyVendorInfo(
  dictItem,
  sCatalogName
)

Parameters

dictItem
A Dictionary object containing the product information.
sCatalogName
A string containing the catalog name.

Defined in File

_additem.asp

Routines Called

None.

Called By

Main (_additem.asp)


arrPopulateOrderHeaderDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function populates an array of table cells representing one order in a recordset of orders. The first cell is a radio button that is selected on the first order.

Definition

Function arrPopulateOrderHeaderDetails(
  byRef iCount,
  byRef rsOrder
)

Parameters

iCount
An integer that determines whether the rendered "RADIO" element contains the CHECKED attribute.
rsOrder
A Recordset object containing order information.

Return Value

The populated array.

Defined in File

services\include\render_orders.asp

Routines Called

htmRenderCurrency

RenderRadioButton

sGetOrderStatusDetails

Called By

tableRenderOrdersListContents

Remarks

The first member of the array specifies an HTML RADIO button INPUT element. The remaining members of the array contain order information.


arrPopulateProfileDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function populates an array with the properties of a profile.

Definition

Function arrPopulateProfileDetails(
  byVal sAction,
  byVal sSubAction,
  byVal Count
  byVal rsProfile
)

Defined in File

services\include\render_list.asp

Routines Called

htmRenderUniqueIDForProfile

listCloneProfileSchema

sGetDisplayValueForProperty

sGetThisPageProperty

Called By

tableRenderMultipleRecords


arrSearchDept - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves a list of searchable categories from a catalog.

Definition

Function arrSearchDept(
  byRef sItemSeparator
)

Parameters

sItemSeparator
A string containing the character sequence that separates the catalog and category names.

Return Value

A one-dimensional array of strings containing the catalog name, item separator, and category name.

Defined in File

srchdept.asp

Routines Called

GetCatalogForUser

mscsUserCatalogs

Called By

Main (srchdept.asp)

Remarks

The sItemSeparator parameter equals "::::". Thus the format of one of the strings is:

   catalog_name::::category_name


bAddUserToGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds a user to an existing Active Directory group.

Definition

Function bAddUserToGroup(
  byVal szGroupName,
  byVal sUserDN
)

Parameters

szGroupName
A string containing the name of the Active Directory group.
sUserDN
A string containing the distinguished name of the user.

Return Value

A Boolean that indicates whether the user was successfully added to the group. True indicates success. False indicates failure.

Defined in File

services\include\ad_routines.asp

Routines Called

rsGetProfile

Called By

bPaintACLForUser


bCheckIfProfileExists - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether a specific profile already exists.

Definition

Function bCheckIfProfileExists(
  byRef sStatusField,
  byRef iStatusID
)

Defined in File

services\include\check_profile.asp

Routines Called

EnsureUserProfile

GetRequestString

rsGetProfile

sGetThisPageProperty

Called By

PrepareInsertProfile

PrepareSaveProfiles


bCheckIfThePropertyFeatureIsSupported - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the featureID attribute for the specified property is set.

Definition

Function bCheckIfThePropertyFeatureIsSupported(
  byVal oProperty
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

bInsertProperty

bIsPropertyValueAdded

bProfileHasChanged

bSaveProfileDetails

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

SaveAllSelectedProfiles

tableRenderBlankProfile

tableRenderProfiles

ValidateFields


bClickedViewButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the user clicked the View button.

Definition

Function bClickedViewButton()

Return Value

A Boolean that indicates whether the View button was clicked. True indicates the button was clicked. False indicates the button was not clicked.

Defined in File

stepsrch.asp

Routines Called

GetRequestString

Called By

PerformSpecificationSearch


bClickedViewOrSearchButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the user clicked either the View or Search buttons.

Definition

Function bClickedViewOrSearchButton()

Return Value

A Boolean that indicates whether one of the buttons was clicked. True indicates one of the buttons was clicked. False indicates that neither of the buttons were clicked.

Defined in File

stepsrch.asp

Routines Called

GetRequestString

Called By

Main (stepsrch.asp)


bFullTextResultsAreCached - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the specified free-text search phrase is cached.

Definition

Function bFullTextResultsAreCached(
  sSearchPhrase,
  byRef htmCachedResult,
  byRef sCacheKey
)

Parameters

sSearchPhrase
A string containing the search phrase.
htmCachedResult
A string containing the HTML cached results.
sCacheKey
A string containing the cache key.

Return Value

A Boolean that indicates whether the phrase is cached. True indicates the phrase is cached. False indicates either the phrase is not cached or that free-text search is not installed.

Defined in File

search.asp

Routines Called

LookupCachedFragment

mscsUserCatalogsetID

RenderText

Called By

Main (search.asp)

Remarks

The cache key consists of the catalog ID concatenated with the search phrase.

If free-text search is not installed, the htmCachedResult parameter contains an error message and the sCacheKey parameter is an empty string.


bHandlePaintingACLsForUsersInAD - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function handles painting of appropriate access control lists (ACLs) for users in Active Directory (adding the users to/from the appropriate Active Directory groups, for example, ADMINGROUP or USERGROUP).

Definition

Function bHandlePaintingACLsForUsersInAD(
  byVal sSubAction,
  byVal sProfileIDs,
  ByVal arrPrevRole,
  ByVal arrCurrentRole
)

Parameters

sSubAction
A string containing the subaction (add or copy).
sProfileIDs
A string containing profile IDs separated by the constant PROFILE_ID_SEPARATOR.
arrPrevRole
An array of integers specifying the previous PartnerDesk roles of the users.
arrCurrentRole
An array of integers specifying the current PartnerDesk roles of the users.

Return Value

A Boolean indicating whether the users were successfully added. True indicates success. False indicates failure.

Defined in File

services\include\save_one_profile.asp

Routines Called

bPaintACLForUser

GetUserPropertyFromID

Called By

bInsertProfileDetails

bSaveProfileDetails


bInsertProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates the login name and password of a user and, if successful, creates a new profile.

Definition

Function bInsertProfile(
  byVal sSubAction,
  byRef sStatusField,
  byRef sStatusID,
  byRef sProfileIDs
)

Parameters

sSubAction
A string containing the subaction (add or copy).
sStatusField
A string containing the status field code.
sStatusID
A string containing the status ID code.
sProfileIDs
A string containing profile IDs separated by the constant PROFILE_ID_SEPARATOR.

Return Value

A Boolean indicating whether the credentials were valid and the profile was created. True indicates the credentials were valid and the profile was created. False indicates either the credentials were invalid or the profile could not be created.

Defined in File

services\include\save_one_profile.asp

Routines Called

bInsertProfileDetails

bValidateLoginNameChars

bValidatePasswordChars

EnsureUserProfile

GetQualifiedName

GetRequestString

sGetThisPageProperty

Called By

PrepareInsertProfile


bInsertProfileDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function inserts property values into an empty profile.

Definition

Function bInsertProfileDetails(
  byVal sSubAction,
  byRef sStatusField,
  byRef sStatusID,
  byVal rsProfiles,
  byVal sProfileIDs
)

Parameters

sSubAction
A string containing the subaction (add or copy).
sStatusField
A string containing the status field code.
sStatusID
A string containing the status ID code.
rsProfiles
A Recordset object containing a profile.
sProfileIDs
A string containing profile IDs separated by the constant PROFILE_ID_SEPARATOR.

Return Value

A Boolean indicating whether the property values were successfully added. True indicates success. False indicates failure.

Defined in File

services\include\save_one_profile.asp

Routines Called

bHandlePaintingACLsForUsersInAD

bInsertProperty

DeleteSingleProfile

listCloneProfileSchema

SaveSAMAccountNameProperty

SaveUserAccountControlProperty

SaveUserParentDNProperty

SaveUserPartnerDeskRoleProperty

sGetThisPageProperty

Called By

bInsertProfile


bInsertProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the specified property is supported for the user and, if so, adds it to the profile.

Definition

Function bInsertProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfiles,
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

bSaveReadWriteProperty

iGetCurrentUserPropertyAccessClass

InsertHiddenProperty

SaveReadOnlyProperty

sGetUserAccessForThisProperty

Called By

bInsertProfileDetails


bInvalidDate - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether a given date is not valid.

Definition

Function bInvalidDate(
  sDate,
  dtDate
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

PopulateOrderSearchCriteria

PopulateProfileSearchCriteria


bIsAddressNameUnique - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines if the specified address name is unique.

Definition

Function bIsAddressNameUnique(
  byVal sAddrName
)

Parameters

sAddrName
A string containing the address name.

Return Value

A Boolean indicating whether the address name is unique. True indicates the name is unique. False indicates the name already exists.

Defined in File

newaddr.asp

Routines Called

GetUserAddresses

Called By

iValidateSubmittedAddressForAddressBook


bIsPropertyValueAdded - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines if any property values were added in the edit page.

Definition

Function bIsPropertyValueAdded()

Defined in File

services\include\check_profile.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

GetRequestString

iGetCurrentUserPropertyAccessClass

listCloneProfileSchema

sGetUserAccessForThisProperty

Called By

PrepareCloseAction


bIsSearchDeptPageCached - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether this page has already been generated and cached.

Definition

Function bIsSearchDeptPageCached(
  byRef htmCachedPage,
  byRef iCatalogSetID
)

Parameters

htmCachedPage
A string containing the HTML cached page.
iCatalogSetID
An integer containing the catalog set ID.

Return Value

A Boolean that indicates whether the page is cached. True indicates the page is cached. False indicates the page is not cached.

Defined in File

srchdept.asp

Routines Called

LookupCachedFragment

mscsUserCatalogsetID

Called By

Main (srchdept.asp)


bIsShippingMethodSupported - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the specified shipping method is supported.

Definition

Function bIsShippingMethodSupported(
  byVal sSelectedMethodID
)

Defined in File

_setship.asp

Routines Called

None.

Called By

CatchErrors (_setship.asp)


bIsSiteTerm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the specified property is a site term.

Definition

Function bIsSiteTerm(
  byVal oXMLProperty,
  byRef sReferenceString
)

Defined in File

include\global_siteterms_lib.asp

Routines Called

None.

Called By

oGetSiteTermOptions


bIsStepSearchPageCached - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether this page has already been generated and cached.

Definition

Function bIsStepSearchPageCached(
  sCategoryName,
  sCatalogName,
  byRef htmPageContent,
  byRef sCacheKey
)

Parameters

sCategoryName
A string containing the category name.
sCatalogName
A string containing the category name.
htmPageContent
A string returning the cached page.
sCacheKey
A string returning the cache key.

Return Value

A Boolean that indicates whether the page is cached. True indicates the page is cached. False indicates the page is not cached.

Defined in File

stepsrch.asp

Routines Called

LookupCachedFragment

Called By

Main (stepsrch.asp)

Remarks

If the page is not cached, the htmPageContent parameter returns the empty string. However, the cache key, consisting of the category and catalog names, is still returned.


bMatchesPattern - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the value specified by the sValue parameter matches the expression specified by the sPattern parameter. If a match is found, this function returns True; otherwise it returns False.

Definition

Function bMatchesPattern(
  oRegEx,
  sValue,
  sPattern
)

Parameters

oRegEx
A reference to a Visual Basic Scripting Edition RegExp object.
sValue
A string containing text to be tested against the regular expression specified by the sPattern parameter.
sPattern
A string containing a regular expression pattern that is valid for the Visual Basic Scripting Edition RegExp object.

Return Value

A Boolean where True indicates that the sValue parameter was found to match the pattern specified by the sPattern parameter, and False otherwise.

Defined in File

include\form_lib.asp

Routines Called

None.

Called By

bValidateLoginNameChars

bValidatePasswordChars

GetFieldsErrorDictionary


Bold - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function surrounds the string specified by the s parameter with the tags "<B>" and "</B>", and then returns the resulting string.

Definition

Function Bold(
  byVal s
)

Parameters

s
A string that contains the text to be wrapped in bold tags (<B> and </B>).

Return Value

A string that contains the bold-wrapped text.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

colRenderAdvancedSearchTab

colRenderSimpleSearchTab

htmRenderDiscountMessageGroup

htmRenderDiscountsApplied

htmRenderDiscountsDescriptions

rowRenderPropertyGroup

tableRenderFooterInfo

tableRenderMessageBoxPage

tblRenderOrderDetailsContents


BooleanToString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts a Boolean value to a string value.

Definition

Function BooleanToString(
  sValue
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

ShowRefinedSearch


bPaintACLForUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function paints access control lists (ACLs) for a user in an Active Directory store. This is achieved by adding or removing the user to or from <COMPANY_NAME>_ADMINGROUP or <COMPANY_NAME>_USERGROUP.

Definition

Function bPaintACLForUser(
  byVal sUserCN,
  byVal sSubAction,
  byVal iUserPrevPartnerDeskRole,
  byVal iUserPartnerDeskRole
)

Parameters

sUserCN
A string containing the common name for the user.
sSubAction
A string containing the subaction.
iUserPrevPartnerDeskRole
An integer specifying the previous PartnerDesk role of the user.
iUserPartnerDeskRole
An integer specifying the current PartnerDesk role of the user.

Return Value

A Boolean indicating whether the user was successfully added or removed. True indicates success. False indicates failure.

Defined in File

services\include\ad_routines.asp

Routines Called

bAddUserToGroup

bRemoveUserFromGroup

EnsureUserProfile

GetOrgAttributeFromID

Called By

bHandlePaintingACLsForUsersInAD


bProfileHasChanged - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the posted values for a profile are different than the values for the profile in the Profile store.

Definition

Function bProfileHasChanged(
  byVal sProfileID
)

Defined in File

services\include\check_profile.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

GetRequestString

iGetCurrentUserPropertyAccessClass

listCloneProfileSchema

rsGetProfileDetails

sGetUserAccessForThisProperty

Called By

htmRenderMessageBoxPage

PrepareCloseAction


bRegistrationPageNotAvailable - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the registration page is unavailable.

Definition

Function bRegistrationPageNotAvailable()

Return Value

A Boolean indicating whether the registration page is unavailable. True indicates the page is not available. False indicates the page is available.

Defined in File

login\newuser.asp

Routines Called

None.

Called By

Main (login\newuser.asp)

Remarks

If any of the following App Default Config properties are set, the registration page is unavailable:

  • i_SiteRegistrationOptions = REGISTRATION_NOT_SUPPORTED
  • i_FormLoginOptions = FORM_LOGIN_NOT_SUPPORTED
  • i_FormLoginOptions = USE_IIS_AUTH


bRemoveUserFromGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function removes a user from an Active Directory group.

Definition

Function bRemoveUserFromGroup(
  byVal szGroupName,
  byVal sUserDN
)

Parameters

szGroupName
A string containing the name of the group to remove the user from.
sUserDN
A string containing the distinguished name of the user.

Return Value

A Boolean indicating whether the user was successfully removed. True indicates success. False indicates failure.

Defined in File

services\include\ad_routines.asp

Routines Called

rsGetProfile

Called By

bPaintACLForUser


BRTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function appends the <BR> tag to the end of the string specified by the s parameter, and then returns the resulting string.

Definition

Function BRTag(
  s
)

Parameters

s
A string that contains the text that will have a BR element appended.

Return Value

A string that contains the text passed in the s parameter, appended with the <BR> tag.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

InsertLineBreaks


bSaveProfileAndRedirect - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function updates the profile properties and redirects the delegated administrator to the services\partner\users.asp page.

Definition

Function bSaveProfileAndRedirect(
  byVal sSubAction,
  byRef sProfileIDs,
  byRef sStatusField,
  byRef iStatusID,
  byVal sActionPage
)

Return Value

A Boolean indicating whether the profile was successfully updated. True indicates success. False indicates failure.

Defined in File

services\include\save_one_profile.asp

Routines Called

bSaveProfileDetails

iGetCountOfProfiles

rsGetProfileDetails

Called By

htmSaveChangesConfirmationHandler


bSaveProfileDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function saves the value of each property in the profile. If this is a user profile and Active Directory is used, the access control lists (ACL) are updated.

Definition

Function bSaveProfileDetails(
  byVal sSubAction,
  byRef sProfileIDs,
  byRef sStatusField,
  byRef sStatusID,
  byVal rsProfiles
)

Defined in File

services\include\save_one_profile.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

bHandlePaintingACLsForUsersInAD

bSaveProperty

bValidateLoginNameChars

GetRequestString

iGetCountOfProfiles

iGetCurrentUserPropertyAccessClass

listCloneProfileSchema

SaveUserAccountControlProperty

SaveUserPartnerDeskRoleProperty

sGetThisPageProperty

sGetUserAccessForThisProperty

UpdateUserProfile

Called By

bSaveProfileAndRedirect

PrepareSaveProfiles


bSaveProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function saves the specified property.

Definition

Function bSaveProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfiles,
  byVal sProfileIDs,
  byVal sAccessType
)

Defined in File

services\include\save_one_profile.asp

Routines Called

bSaveReadWriteProperty

SaveReadOnlyProperty

Called By

bSaveProfileDetails


bSaveReadWriteProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function saves a read/write property.

Definition

Function bSaveReadWriteProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfiles,
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetRequestString

iGetCountOfProfiles

SaveCommonValueForAllSelectedRecords

Called By

bInsertProperty

bSaveProperty


bValidateLoginNameChars - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates the characters in a login name.

Definition

Function bValidateLoginNameChars(
  sLogon
)

Defined in File

services\include\lib.asp

Routines Called

bMatchesPattern

Called By

bInsertProfile

bSaveProfileDetails


bValidatePasswordChars - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates the characters in the string specified by the sPassword parameter.

Definition

Function bValidatePasswordChars(
  sPassword
)

Parameters

sPassword
A string containing the password.

Return Value

A Boolean indicating whether the characters in the password are valid. True indicates they are all valid. False indicates at least one is not valid.

Defined in File

services\include\lib.asp

Routines Called

bMatchesPattern

Called By

bInsertProfile

UpdatePasswordActionHandler


CacheFragment - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub caches an HTML fragment.

Definition

Sub CacheFragment(
  byVal sCacheName,
  byVal sCacheItemName,
  byVal htmlString
)

Parameters

sCacheName
A string containing the name of the cache.
sCacheItemName
A string used to identify the cached HTML fragment.
htmlString
A string containing the HTML fragment to cache.

Defined in File

include\std_cache_lib.asp

Routines Called

GetTicketInUrlArg

Called By

htmCategoryHTML

htmRenderDefaultPage

htmRenderFillOutForm

htmRenderFullTextSearchResults

htmRenderLoginSection

htmRenderMenu

Main (pickship.asp)

Main (product.asp)

Main (srchdept.asp)

Main (stepsrch.asp)

RenderNavbar

Remarks

If the HTML fragment contains a ticket, it is replaced with a token ("__TICKET__"). This token is replaced with the ticket of any user who subsequently calls LookupCachedFragment for the given cache item (sCacheItemName).

The key to the cached item consists of the item name, sCacheItemName, appended with the language used, and a constant identifying whether the ticket of the user is stored in a cookie or in the URL.


CacheObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub caches the specified object.

Definition

Sub CacheObject(
  byVal sCacheName,
  byVal sCacheItemName,
  byVal oObject
)

Parameters

sCacheName
A string containing the name of the cache.
sCacheItemName
A string used to identify the cached object.
oObject
The object to be cached.

Defined in File

include\std_cache_lib.asp

Routines Called

None.

Called By

oCachedDiscountProductInfo


CatchErrors (addrbook.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the addrform.asp page if the address book is disabled, or to the basket.asp page if the basket is empty.

Definition

Sub CatchErrors(
  byVal iAddrType
)

Parameters

iAddrType
An integer constant representing the address type (shipping or billing).

Defined in File

addrbook.asp

Routines Called

GenerateURL

LoadBasket

Called By

Main (addrbook.asp)


CatchErrors (addrform.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the basket.asp page if the basket is empty.

Definition

Sub CatchErrors(
  byVal mscsOrderGrp
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.

Defined in File

addrform.asp

Routines Called

GenerateURL

Called By

Main (addrform.asp)


CatchErrors (newaddr.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the addrform.asp page if the address book is disabled or set to read-only, to the basket.asp page if the basket is empty, or to the addrbook.asp page if trying to edit or delete a non-existent address.

Definition

Sub CatchErrors(
  byVal iAddrType,
  byVal sAction,
  byVal sAddrID,
  byVal rsAddr
)

Defined in File

newaddr.asp

Routines Called

GenerateURL

LoadBasket

Called By

SetupAddressForm


CatchErrors (pickship.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the basket.asp page if the basket is empty, or to the addrform.asp or addrbook.asp page if each item in the order does not have an associated shipping address.

Definition

Sub CatchErrors(
  byVal mscsOrderGrp
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.

Defined in File

pickship.asp

Routines Called

GenerateURL

GetAddressPage

RemoveEmptyOrderForms

Called By

PreparePickShipForm


CatchErrors (summary.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the appropriate page if an error is encountered.

Definition

Sub CatchErrors(
  byVal mscsOrderGrp,
  listMethods
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.
listMethods
A SimpleList object that contains payments methods for the user.

Defined in File

summary.asp

Routines Called

GenerateURL

GetAddressPage

RemoveEmptyOrderForms

Called By

InitializeSummaryPage

Remarks

This sub redirects the user to the basket.asp page if the basket is empty, to an error page if there are no applicable payment methods, to the pickship.asp page if each item in the order does not have an associated shipping method, or to the addrform.asp or addrbook.asp page if each item in the order does not have an associated shipping address or the order does not have a billing address.


CatchErrors (_setadrs.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the basket.asp page if the basket is empty, or to the addrbook.asp page if the address is not valid.

Definition

Sub CatchErrors(
  byVal mscsOrderGrp,
  byVal sAddrID,
  byVal rsAddr
)

Defined in File

_setadrs.asp

Routines Called

GenerateURL

Called By

Main (_setadrs.asp)


CatchErrors (_setship.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the basket.asp page if the basket is empty, or to the pickship.asp page if the shipping method is not valid.

Definition

Sub CatchErrors(
  mscsOrderGrp,
  byVal sSelectedMethodID
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.
sSelectedMethodID
A string containing the shipping method ID.

Defined in File

_setship.asp

Routines Called

bIsShippingMethodSupported

GenerateURL

Called By

Main (_setship.asp)


CatchErrorsForPaymentPages - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user to the appropriate page if an error is encountered when initializing the credit card or purchase order pages.

Definition

Sub CatchErrorsForPaymentPages(
  mscsOrderGrp,
  listMethods,
  sPaymentMethod,
  byRef sVerifyWithTotal
)

Defined in File

include\payment.asp

Routines Called

EnsureSupportForPaymentMethod

GenerateURL

GetAddressPage

GetRequestString

RemoveEmptyOrderForms

Called By

InitializeCreditcardPage

InitializePO


cellRenderReadOnlyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares a read-only property to be rendered.

Definition

Function cellRenderReadOnlyProperty(
  byVal sFieldName,
  byVal sDisplayName,
  byVal sFieldValue,
  byVal sDisplayValue
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderBlankSpaces

RenderHiddenField

TRTag

Called By

rowRenderReadOnlyProperty

tblRenderOrderDetailsContents


ChangeActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function handles the "change password" action.

Definition

Function ChangeActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\password_handlers.asp

Routines Called

htmRenderChangePasswordPage

Called By

PasswordActionHandlers


CheckBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub runs the basket pipeline to retrieve the latest basket information.

Definition

Sub CheckBasket(
  mscsOrderGrp,
  byRef bBasketIsEmpty,
  byRef iErrorCount,
  byRef bMustSaveBasket,
  byRef oOrderFormDisplayOrder
)

Defined in File

basket.asp

Routines Called

GetErrorCount

GetLineItemsCount

GetPipelineLogFile

RemoveEmptyOrderForms

RunMtsPipeline

SortDictionaryKeys

Called By

Main (basket.asp)


CheckIfOrderExists - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user or delegated administrator to the services\error\noorder.asp page if the specified order does not exist.

Definition

Sub CheckIfOrderExists(
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\lib.asp

Routines Called

GenerateURL

iGetCountOfProfiles

rsGetOrderDetails

Called By

Main (services\customer\view_order.asp)

Main (services\partner\view_order.asp)


CheckIfProfilesExist - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub determines whether the specified profiles exist.

Definition

Sub CheckIfProfilesExist(
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\lib.asp

Routines Called

GenerateURL

iGetCountOfProfiles

rsGetProfileDetails

Called By

Main (services\change_password.asp)

Main (services\customer\account.asp)

Main (services\partner\account.asp)

Main (services\partner\edit_user.asp)


CheckOut - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function runs the basket, total, and checkout pipelines.

Definition

Function CheckOut(
  mscsOrderGrp,
  byVal sVerifyWithTotal
)

Defined in File

include\payment.asp

Routines Called

GenerateURL

GetErrorCount

GetPipelineLogFile

RunMtsPipeline

Called By

InitSitePipelines

RunMtsPipeline

ValidateSubmittedCreditCardData

ValidateSubmittedPurchaseOrderData


CheckPartnerServiceAccess - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub implements page-level access control. It grants access to users who have their PartnerDeskRoleFlags set to ROLE_ADMIN. All others are redirected to an error page.

Definition

Sub CheckPartnerServiceAccess()

Defined in File

include\std_access_lib.asp

Routines Called

GenerateURL

GetCurrentUserProfile

Called By

Main (services\partner\account.asp)

Main (services\partner\edit_user.asp)

Main (services\partner\orders.asp)

Main (services\partner\users.asp)

Main (services\partner\view_order.asp)


CloseOrderDetailsActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub handles the "close order details" action.

Definition

Sub CloseOrderDetailsActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sSourcePage,
  byVal sProfileListPage
)

Parameters

sAction
A string containing the action.
sSubAction
A string containing the subaction.
sProfileIDs
A string containing profile IDs separated by a constant.
sSourcePage
A string containing the name of the page where this action occurred.
sProfileListPage
A string containing the name of the page that lists the profiles.

Defined in File

services\include\order_handlers.asp

Routines Called

GenerateURL

sGetThisPageProperty

Called By

Main (services\customer\view_order.asp)

Main (services\partner\view_order.asp)


CollectBasketItems - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves all the items in the specified OrderGroup object.

Definition

Function CollectBasketItems(
  oOrderGrp
)

Parameters

oOrderGrp
An OrderGroup object representing an order.

Return Value

A SimpleList object containing all the items in an order.

Defined in File

template\discount.asp

Routines Called

None.

Called By

GetBasketDetails

RenderBasketPage


colRenderAdvancedSearchTab - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds the advanced search option tab to list-type pages.

Definition

Function colRenderAdvancedSearchTab(
  sCriteria
)

Defined in File

services\include\render_common.asp

Routines Called

Bold

RenderLink

sReConstructPageURL

Called By

formRenderOrderSearchOptions

formRenderProfileSearchOptions


colRenderCountryNames - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the rendering of all country names.

Definition

Function colRenderCountryNames(
  byVal oProperty,
  byVal sPropertyValue
)

Defined in File

services\include\render_common.asp

Routines Called

ConvertListToArray

GetCountryNamesList

htmRenderCountries

Called By

None.


colRenderForeignKeyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders hidden fields that contain a variety of content, depending on whether a pre-existing profile exists, whether a new profile is being created, and so on. A button is rendered to allow the user to submit the selected information.

Definition

Function colRenderForeignKeyProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs,
  byVal varPropertyValue
)

Defined in File

services\include\render_edit_common.asp

Routines Called

iGetCountOfProfiles

RenderHiddenField

RenderSubmitButton

sGetSelectActionPropertyName

sGetUserLoginName

Called By

colRenderProperty


colRenderPasswordProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the rendering of the value for the user_security_password property.

Definition

Function colRenderPasswordProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal varPropertyValue
)

Defined in File

services\include\render_edit_common.asp

Routines Called

RenderPasswordBox

RenderSubmitButton

Called By

colRenderProperty


colRenderPrimaryKeyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the rendering of the value for the primary key property.

Definition

Function colRenderPrimaryKeyProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs,
  byVal varPropertyValue,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_edit_common.asp

Routines Called

iGetCountOfProfiles

RenderHiddenField

RenderTextBox

sGetThisPageProperty

Called By

rowRenderProperty


colRenderProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the rendering of a property.

Definition

Function colRenderProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs,
  byVal varPropertyValue
)

Defined in File

services\include\render_edit_common.asp

Routines Called

colRenderForeignKeyProperty

colRenderPasswordProperty

htmRenderBoolean

htmRenderPartnerDeskRoles

htmRenderSiteTerm

htmRenderUserStatusOptions

RenderTextBox

Called By

rowRenderBlankProperty

rowRenderProperty


colRenderPropertyTip - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares a warning message for a property that fails validation.

Definition

Function colRenderPropertyTip(
  byVal sTip
)

Parameters

sTip
A string that contains the message.

Return Value

A string that contains the HTML message.

Defined in File

services\include\render_edit_common.asp

Routines Called

FormatOutput

RenderText

Called By

rowRenderPropertyTip


colRenderSimpleSearchTab - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds the simple search option tab to list-type pages.

Definition

Function colRenderSimpleSearchTab(
  byVal sCriteria
)

Defined in File

services\include\render_common.asp

Routines Called

Bold

RenderLink

sReConstructPageURL

Called By

formRenderOrderSearchOptions

formRenderProfileSearchOptions


colRenderUniqueKeyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the rendering of the value for the unique key property.

Definition

Function colRenderUniqueKeyProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs,
  byVal varPropertyValue
)

Defined in File

services\include\render_edit_common.asp

Routines Called

iGetCountOfProfiles

RenderHiddenField

RenderTextBox

Called By

rowRenderProperty


ConvertListToArray - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts a SimpleList object to an array.

Definition

Function ConvertListToArray(
  byVal list
)

Parameters

list
A SimpleList object.

Return Value

The array.

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

colRenderCountryNames


CopyProductToItem - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function copies product information into a Dictionary object.

Definition

Function CopyProductToItem(
  rsProduct,
  item,
  arrParentCategories
)

Parameters

rsProduct
A Recordset object containing information on a product.
item
A Dictionary object to contain the product information.
arrParentCategories
An array containing the parent categories for the product.

Return Value

None.

Defined in File

template\discount.asp

Routines Called

None.

Called By

listGetShownProductsInfo


CorrectRequest - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub corrects a cookie for URL case-sensitivity. This correction is performed to ensure that cookies are always read/written from the exact same hostname and path (cookie paths are case sensitive).

Definition

Sub CorrectRequest()

Defined in File

include\std_cookie_lib.asp

Routines Called

GetCorrectedCookiePath

GetCorrectedHostName

Called By

SetupPage

Remarks

If the App Default Config i_CookiePathCorrectionOptions property is set to APP_BASED_CORRECTION (1), the case of the path property of the cookie is converted to match the IIS application name.

If the App Default Config i_HostNameCorrectionOptions property is set to HOSTNAME_CORRECTION_ENABLED (1), the case of the domain name property of the cookie is converted to match the true host name.

If either correction is applied, the user is redirected to the URL, which now has the correct case.


CreateOptOutList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates a new empty mailing list, which is used to opt-out of a direct mail campaign.

Definition

Function CreateOptOutList(
  listmanager,
  campitem_id
)

Parameters

listmanager
An initialized ListManager object.
campitem_id
A GUID representing the campaign item ID of the direct mail item.

Return Value

A GUID representing the new list ID.

Defined in File

opt-out.asp

Routines Called

None.

Called By

OptOut


CreatePOIndexes - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds temporary item indices to each item in the specified OrderGroup object.

Definition

Sub CreatePOIndexes(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
An initialized OrderGroup object.

Defined in File

basket.asp

Routines Called

None.

Called By

htmRenderBasket


CreateSet - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates a set from an array of items. A "set" in this context is a comma-separated string.

Definition

Function CreateSet(
  byVal arrItems
)

Parameters

arrItems
An array.

Return Value

A string containing the set.

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

InitPageSets

Remarks

This function is passed an array of strings.


DeleteAllActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub checks the user action on the DeleteAll message box page, and redirects to the profile list page with the appropriate parameters.

Definition

Sub DeleteAllActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

ReDirectToPage

Called By

htmEditPageActionHandlers


DeleteAllProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub deletes all the profiles returned by the search criteria in the corresponding list page.

Definition

Sub DeleteAllProfiles(
  byVal dictSearchOptions
)

Defined in File

services\include\delete_profiles.asp

Routines Called

GetTableNameAndWhereClause

sConstructWHEREclause

sGetWhereClauseForCurrentUser

Called By

PrepareDeleteAllAction

Remarks

This function uses ADO to access data directly.


DeleteRegisteredUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub deletes a specific registered user profile.

Definition

Sub DeleteRegisteredUser(
  byVal sID
)

Defined in File

services\include\delete_profiles.asp

Routines Called

None.

Called By

DeleteSingleProfile


DeleteSelectedProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub deletes all the selected profiles.

Definition

Sub DeleteSelectedProfiles(
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\delete_profiles.asp

Routines Called

DeleteSingleProfile

iGetCountOfProfiles

Called By

PrepareDeleteAction


DeleteSingleProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub deletes the specified profile.

Definition

Sub DeleteSingleProfile(
  byVal sProfileID
)

Parameters

sProfileID
A string containing the profile ID.

Defined in File

services\include\delete_profiles.asp

Routines Called

DeleteRegisteredUser

sGetThisPageProperty

Called By

bInsertProfileDetails

DeleteSelectedProfiles


DeSelectAllActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub redirects the user in a "Select All" action.

Definition

Sub DeSelectAllActionHandler(
  byVal sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

ReDirectToPage

Called By

htmEditPageActionHandlers


dictAggregatePreviews - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function aggregates shipping preview totals across the OrderGroup object.

Definition

Function dictAggregatePreviews(
  dictPreviewsPerOrderForm
)

Defined in File

pickship.asp

Routines Called

None.

Called By

PreparePickShipForm


dictGetCatalogAttributes - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves all the property definitions that exist in the Product Catalog System and places them in a Dictionary object for fast access.

Definition

Function dictGetCatalogAttributes(
  MSCSCatalogManager
)

Parameters

MSCSCatalogManager
An initialized CatalogManager object.

Return Value

A Dictionary object that contains all the property definitions that exist in the Product Catalog System.

Defined in File

include\global_catalog_lib.asp

Routines Called

dictGetRSFields

GetDictionary

Called By

Main (include\global_main_lib.asp)


dictGetInitialFieldValues - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object containing the default form field values for the address.

Definition

Function dictGetInitialFieldValues(
  byVal listFlds,
  byVal sAction,
  byVal rsAddr,
  byVal iAddrType
)

Defined in File

newaddr.asp

Routines Called

GetDictionary

RsToDict

Called By

SetupAddressForm


dictGetProfileSchemaForAllProfileTypes - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object representing the schema of all profile types.

Definition

Function dictGetProfileSchemaForAllProfileTypes(
  byVal oProfileService
)

Defined in File

include\global_profile_lib.asp

Routines Called

GetDictionary

listGetProfileSchema

oGetBizDataObject

oGetProfile

Called By

Main (include\global_main_lib.asp)

ProfileRefresh


dictGetpropertyFromList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the specified property from a list of properties.

Definition

Function dictGetpropertyFromList(
  byVal sPropertyName,
  byVal listValidProperties
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

listReConstructPropertiesSchema


dictGetPropertySchema - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object containing property attributes. These attributes are used in the application for standard form validations, rendering functions, and profile updates.

Definition

Function dictGetPropertySchema (
  byVal oGroup,
  byVal oProperty,
  byRef oProfileDefsCatalog,
  byRef oSiteTermsProfile
)

Defined in File

include\global_forms_lib.asp

Routines Called

GetDictionary

oGetSiteTermOptions

Called By

AddGroupAndPropertySchemas


dictGetRSFields - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object containing items whose values correspond to the field values of the Recordset object specified by the rs parameter.

Definition

Function dictGetRSFields(
  rs
)

Defined in File

include\global_catalog_lib.asp

Routines Called

GetDictionary

Called By

dictGetCatalogAttributes


dictGetSearchDictionaryForPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the filter criteria for the current user and page.

Definition

Function dictGetSearchDictionaryForPage(
  byVal sPageName
)

Defined in File

services\include\lib.asp

Routines Called

GetAttributeValueFromProfile

Called By

PrepareDeleteAllAction

PrepareSaveAllAction


DoubleQuote - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds escaped double quotes ("") to the beginning and end of the passed string and returns the resulting string.

Definition

Function DoubleQuote(
  byVal s
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

Analysis_ConstructKeyValueString

PredictedPropToHREF

TDTag

THTag


E - G

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letters E through G.

Routine | File
EnsureAccess | include\std_access_lib.asp
EnsureAuthAccess | include\std_access_lib.asp
EnsureSupportForPaymentMethod | include\payment.asp
EnsureUpToDateUserProfile | include\std_profile_lib.asp
EnsureUserHasRightsToCatalog | include\catalog.asp
EnsureUserProfile | include\std_profile_lib.asp
ErrorOut | opt-out.asp
FetchCategoryData | category.asp
FetchData | addrbook.asp
FetchData | newaddr.asp
FetchData | _setadrs.asp
FormatOutput | include\std_util_lib.asp
formRenderBlankEditPageBody | services\include\render_edit_blank.asp
formRenderChangePasswordPageContents | services\include\render_password.asp
formRenderEditPageBody | services\include\render_edit_common.asp
formRenderListPageContents | services\include\render_list.asp
formRenderOrderContents | services\include\render_orders.asp
formRenderOrderSearchOptions | services\include\render_orders.asp
formRenderOrdersListContents | services\include\render_orders.asp
formRenderPagingButtons | services\include\render_common.asp
formRenderProfileSearchOptions | services\include\render_list.asp
GenerateURL | include\std_url_lib.asp
GetActiveUsersOnly | services\include\save_one_profile.asp
GetAddressBookAddressFieldDefinitions | include\global_addressbook_lib.asp
GetAddresses | include\addr_lib.asp
GetAddressFieldDefinitions | include\global_addressbook_lib.asp
GetAddressPage | include\std_util_lib.asp
GetAddressType | include\addr_lib.asp
GetAncestorCategories | template\discount.asp
GetAnyLineItem | include\std_ordergrp_lib.asp
GetAnyOrderForm | include\std_ordergrp_lib.asp
GetAnySavedAddressID | addrform.asp
GetAppConfigObject | include\global_siteconfig_lib.asp
GetArrayFromList | include\std_util_lib.asp
GetAttributeValueFromProfile | services\include\get_profiles.asp
GetAuthManagerObject | include\std_access_lib.asp
GetBaseURL | include\global_siteconfig_lib.asp
GetBasketDetails | template\discount.asp
GetBillToCurrenciesListItems | include\global_internationalization_lib.asp
GetBillToCurrenciesListValues | include\global_internationalization_lib.asp
GetBillToCurrencyFieldDefinition | include\global_internationalization_lib.asp
GetCatalogForUser | include\catalog.asp
GetCommerceSiteInstallPoint | include\global_siteconfig_lib.asp
GetCommerceSiteName | include\global_siteconfig_lib.asp
GetComputerName | include\global_siteconfig_lib.asp
GetConfigDictionary | include\global_siteconfig_lib.asp
GetCorrectedCookiePath | include\std_cookie_lib.asp
GetCorrectedHostName | include\std_cookie_lib.asp
GetCountryCodesList | include\global_internationalization_lib.asp
GetCountryNamesList | include\global_internationalization_lib.asp
GetCreditCardCodesList | include\global_creditcards_lib.asp
GetCreditCardFieldDefinitions | include\global_creditcards_lib.asp
GetCreditCardNamesList | include\global_creditcards_lib.asp
GetCurrentUserProfile | include\std_profile_lib.asp
GetDefaultPaymentMethodForUser | include\payment.asp
GetDefaultValueForNameOnCard | crdtcard.asp
GetDefaultValuesForAddressFormFields | addrform.asp
GetDefaultValuesForCreditCardFields | crdtcard.asp
GetDefaultValuesForPurchaseOrderFields | po.asp
GetDictionary | include\std_util_lib.asp
GetDiscountDescription | include\std_util_lib.asp
GetDWConnectionString | include\global_data_lib.asp
GetErrorCount | include\std_ordergrp_lib.asp
GetErrorSource | include\std_util_lib.asp
GetFieldsErrorDictionary | include\form_lib.asp
GetFileSystemObject | include\std_util_lib.asp
GetFormDefinitions | include\global_forms_lib.asp
GetIISApplicationName | include\std_cookie_lib.asp
GetINIFileName | include\global_siteconfig_lib.asp
GetINIString | include\global_siteconfig_lib.asp
GetInputParameters | template\discount.asp
GetKeyValue | include\std_util_lib.asp
GetLineItemsCount | include\std_ordergrp_lib.asp
GetListItemIndex | include\std_util_lib.asp
GetLoginFieldDefinitions | include\global_forms_lib.asp
GetMachineBaseURL | include\global_siteconfig_lib.asp
GetMessageManagerObject | include\global_messagemanager_lib.asp
GetMonthCodesList | include\std_dates_lib.asp
GetMonthNamesList | include\std_dates_lib.asp
GetNewGuestUserProfile | include\std_profile_lib.asp
GetObjectInstanceDictionary | include\std_util_lib.asp
GetODBCTimeStamp | services\include\profiles_common.asp
GetOptOutList | opt-out.asp
GetOrderGroup | include\std_ordergrp_lib.asp
GetOrderGroupManager | include\std_ordergrp_lib.asp
GetOrganizationAddresses | include\addr_lib.asp
GetOrgAttributeFromID | services\include\get_profiles.asp
GetPartnerAndCustomerServicePageAttributes | services\include\global_service_lib.asp
GetPasswordFieldDefinition | include\global_forms_lib.asp
GetPaymentMethodDisplayName | include\payment.asp
GetPaymentMethodsForSite | include\global_siteconfig_lib.asp
GetPaymentMethodsForUser | include\payment.asp
GetPaymentPageFromPaymentMethod | include\payment.asp
GetPipelineLogFile | include\std_pipeline_lib.asp
GetPriceAndCurrency | include\catalog.asp
GetProductQuantity | _additem.asp
GetProfileFromDB | include\std_profile_lib.asp
GetProfileService | include\std_profile_lib.asp
GetPurchaseOrderFieldDefinitions | include\global_forms_lib.asp
GetQualifiedName | include\std_util_lib.asp
GetRecordCount | include\std_util_lib.asp
GetRegExp | include\std_util_lib.asp
GetRegistrationFieldDefinitions | include\global_forms_lib.asp
GetRepeatStyle | include\html_lib.asp
GetRequestString | include\std_url_lib.asp
GetRequestStringRange | include\std_url_lib.asp
GetRequestType | include\std_cookie_lib.asp
GetRootPath | include\global_siteconfig_lib.asp
GetSavedAddressID | addrform.asp
GetSearchDictionaryForThisPage | services\include\lib.asp
GetSecurePagesDictionary | include\global_siteconfig_lib.asp
GetShippingMethodNameFromID | _setship.asp
GetShipToAddressFieldDefinitions | include\global_addressbook_lib.asp
GetShownProductsDetails | template\discount.asp
GetSimpleList | include\std_util_lib.asp
GetSiteConfigObject | include\global_siteconfig_lib.asp
GetSitePages | include\global_siteconfig_lib.asp
GetSiteStyles | include\global_ui_lib.asp
GetSpecificationSearchClauses | stepsrch.asp
GetStatusFieldAndID | services\include\edit_handlers.asp
GetStyles | include\global_ui_lib.asp
GetSubmittedFieldValues | include\form_lib.asp
GetTableNameAndWhereClause | services\include\profiles_common.asp
GetTicketInUrlArg | include\std_url_lib.asp
GetTicketLocation | include\std_url_lib.asp
GetUserAccountControl | services\include\save_all_profiles.asp
GetUserAddresses | include\addr_lib.asp
GetUserInfo | include\std_access_lib.asp
GetUserProfileByLoginName | include\std_profile_lib.asp
GetUserPropertyFromID | services\include\get_profiles.asp
GetXMLForVendorItems | include\payment.asp
GetYearsListItems | include\std_dates_lib.asp
GetYearsListValues | include\std_dates_lib.asp


EnsureAccess - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub implements page-level access control. It grants access to users who are either authenticated to Internet Information Services (IIS), using Basic/Integrated Windows authentication, or have tickets. Call this sub from within the Main subroutine on every page that requires such access control. A call to this sub must appear before any other statement in the Main subroutine.

Definition

Sub EnsureAccess()

Defined in File

include\std_access_lib.asp

Routines Called

EnsureUserProfile

GenerateURL

GetCurrentUserProfile

GetNewGuestUserProfile

GetQualifiedName

IsFormLoginRequired

IsPersistentCookieAllowed

sGetUserIDForNewGuestUser

Called By

Main (_additem.asp)

Main (_delall.asp)

Main (_delitem.asp)

Main (_editqty.asp)

Main (_setship.asp)

Main (addrform.asp)

Main (basket.asp)

Main (category.asp)

Main (confirm.asp)

Main (crdtcard.asp)

Main (default.asp)

Main (dispatch.asp)

Main (pickship.asp)

Main (product.asp)

Main (search.asp)

Main (srchdept.asp)

Main (stepsrch.asp)

Main (summary.asp)

RecordClickToBasket


EnsureAuthAccess - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function implements page-level access control. It grants access to users who are either authenticated to Internet Information Services (IIS), using Basic/Integrated Windows authentication, or have an AUTH_TICKET. Call this function from within the Main subroutine on every page that requires such access control. A call to this function must appear before any other statement in the Main subroutine.

Definition

Function EnsureAuthAccess()

Return Value

Users who do not have a current profile are redirected to the "missing profile" error page (error\profile.asp). Otherwise, the function returns a Recordset object containing the current profile of the user.

Defined in File

include\std_access_lib.asp

Routines Called

EnsureUserProfile

GenerateURL

Called By

Main (_setadrs.asp)

Main (addrbook.asp)

Main (newaddr.asp)

Main (po.asp)

Main (services\change_password.asp)

Main (services\customer\account.asp)

Main (services\customer\orders.asp)

Main (services\customer\view_order.asp)

Main (services\partner\account.asp)

Main (services\partner\edit_user.asp)

Main (services\partner\orders.asp)

Main (services\partner\users.asp)

Main (services\partner\view_order.asp)


EnsureSupportForPaymentMethod - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub checks whether the selected payment method is supported for the user; if it is not, the user is redirected to the default payment method page for the user.

Definition

Sub EnsureSupportForPaymentMethod(
  listMethods,
  sPaymentMethod
)

Defined in File

include\payment.asp

Routines Called

GenerateURL

GetDefaultPaymentMethodForUser

GetPaymentPageFromPaymentMethod

IsEntityInList

Called By

CatchErrorsForPaymentPages


EnsureUpToDateUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves the profile of the user from the cache if it is up-to-date. Otherwise, the profile is retrieved from the Profiles store.

Definition

Sub EnsureUpToDateUserProfile(
  byRef rsUser
)

Defined in File

include\std_profile_lib.asp

Routines Called

GetProfileFromDB

Called By

GetCurrentUserProfile

GetUserProfileByLoginName

Remarks

For more information on profile caching and related Web farm issues, see About the Profiles Feature for Solution Sites.


EnsureUserHasRightsToCatalog - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub ensures that the user has access rights to the given catalog. If not, the user is redirected to the "bad catalog item" error page (error\baditem.asp).

Definition

Sub EnsureUserHasRightsToCatalog(
  byVal sCatalogName,
  byVal sUserID
)

Parameters

sCatalogName
A string containing the name of the catalog.
sUserID
A string containing the user ID.

Defined in File

include\catalog.asp

Routines Called

GenerateURL

mscsUserCatalogsetID

Called By

GetCatalogForUser

Main (category.asp)

Main (product.asp)


EnsureUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function ensures that the profile of the user exists. If not, the user is redirected to the "missing profile" error page (error\profile.asp).

Definition

Function EnsureUserProfile()

Return Value

Users who do not have a current profile are redirected to the "missing profile" error page. Otherwise, the function returns a Recordset object containing the current profile of the user.

Defined in File

include\std_profile_lib.asp

Routines Called

GenerateURL

GetCurrentUserProfile

Called By

bCheckIfProfileExists

bInsertProfile

bPaintACLForUser

EnsureAccess

EnsureAuthAccess

iGetCurrentUserPropertyAccessClass

PrepareLoginSection

PrepareOrderList

rsGetOrdersList

SaveReadOnlyProperty

sGetWhereClauseForCurrentUser

UpdateSelectActionPropertyName

UpdateUserPasswordProperty


ErrorOut - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub displays an error message, logs the error to the event log, and stops script execution.

Definition

Sub ErrorOut()

Defined in File

opt-out.asp

Routines Called

This routine does not call any other routines defined in the Solution Sites files.

Called By

Main (opt-out.asp)

OptOut

Remarks

This routine produces a different error message depending on whether the global variable MSCSENV is set to the constant PRODUCTION or the constant DEVELOPMENT.


FetchCategoryData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes the variables passed to it.

Definition

Sub FetchCategoryData(
  byRef sPageTitle,
  byRef sCatalogName,
  byRef sCategoryName,
  byRef iPageNumber
)

Parameters

sPageTitle
A string that this sub initializes to a constant string stored in the MessageManager object.
sCatalogName
A string that this sub initializes to the request variable CATALOG_NAME_URL_KEY.
sCategoryName
A string that this sub initializes to the request variable CATEGORY_NAME_URL_KEY.
iPageNumber
A number that this sub initializes to the request variable PAGENUMBER_URL_KEY.

Defined in File

category.asp

Routines Called

GetRequestString

Called By

Main (category.asp)


FetchData (addrbook.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves the address information for the current user, initializing the iAddrType and rsAddresses parameters. If the rsAddresses Recordset object is not empty, the sCheckedAddrID parameter is also initialized.

Definition

Sub FetchData(
  ByRef iAddrType,
  ByRef rsAddresses,
  ByRef sCheckedAddrID
)

Defined in File

addrbook.asp

Routines Called

GetAddressType

GetUserAddresses

Called By

Main (addrbook.asp)


FetchData (newaddr.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes the iAddrType and sAction parameters. If the sAction parameter is equal to "add", "edit", or "delete", the sAddrID parameter is initialized. If the sAddrID parameter is not Null, the rsAddr parameter is initialized to a Recordset object containing the address information for the current user.

Definition

Sub FetchData(
  ByRef iAddrType,
  ByRef sAction,
  ByRef sAddrID,
  ByRef rsAddr
)

Defined in File

newaddr.asp

Routines Called

GetAddressType

rsGetProfile

Called By

SetupAddressForm


FetchData (_setadrs.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function initializes its parameters. The sAddrID parameter is initialized to the request variable ADDRESS_ID. The mscsOrderGroup parameter is initialized to the contents of the basket for the current user. The rsAddr parameter is initialized to a Recordset object containing address information for the current user.

Definition

Function FetchData(
  ByRef mscsOrderGrp,
  ByRef sAddrID,
  ByRef rsAddr
)

Defined in File

_setadrs.asp

Routines Called

GetRequestString

LoadBasket

rsGetProfile

Called By

Main (_setadrs.asp)


FormatOutput - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function formats a string, replacing variables in the sTemplate parameter of the form %1, %2, and so on, with strings supplied in the arrArgs array parameter.

Definition

Function FormatOutput(
  byVal sTemplate,
  arrArgs
)

Parameters

sTemplate
A string containing replaceable substrings of the form %1, %2, and so on.
arrArgs
An array of strings to replace the substrings of the form %1, %2, and so on, in the sTemplate parameter. The first string in the array will replace the %1 substring, the second string in the array will replace the %2 substring, and so on.

Return Value

A string in which the specified replacements have been made.

Defined in File

include\std_util_lib.asp

Routines Called

This routine does not call any routines defined in the Solution Sites files.

Called By

colRenderPropertyTip

GetAddresses

GetDefaultValueForNameOnCard

GetErrorSource

GetLoginFieldDefinitions

GetPasswordFieldDefinition

htmRenderCategoryPage

htmRenderConfirmationPage

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

htmRenderUserDefinedProductProperties

JoinWebFarm

RenderSearchResultRow

rowRenderStatusInfo

tableRenderFooterInfo


formRenderBlankEditPageBody - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a blank profile editing form.

Definition

Function formRenderBlankEditPageBody(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_blank.asp

Routines Called

GenerateURL

RenderForm

RenderHiddenField

tableRenderBlankProfile

tableRenderEditPageTasks

Called By

htmRenderBlankEditPage


formRenderChangePasswordPageContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the change password form.

Definition

Function formRenderChangePasswordPageContents(
  sAction,
  sSubAction,
  sProfileIDs,
  rsUser,
  bValidPostedValues,
  bDisplayPostedValues
)

Defined in File

services\include\render_password.asp

Routines Called

GenerateURL

GetRequestString

RenderForm

RenderHiddenField

tableChangePasswordTasks

tableRenderChangePasswordContents

Called By

htmRenderChangePasswordPage


formRenderEditPageBody - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a profile editing form.

Definition

Function formRenderEditPageBody(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal rsProfiles,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_common.asp

Routines Called

GenerateURL

RenderForm

RenderHiddenField

tableRenderEditPageTasks

tableRenderProfiles

Called By

htmRenderEditPage


formRenderListPageContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a profile list form.

Definition

Function formRenderListPageContents(
  byVal sAction,
  byVal sSubAction,
  byVal rsProfiles,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages,
  byRef bIsEmpty
)

Defined in File

services\include\render_list.asp

Routines Called

GenerateURL

GetRequestString

RenderForm

RenderHiddenField

sGetSelectActionPropertyName

sGetThisPageProperty

tableRenderListPageTasks

tableRenderMultipleRecords

Called By

htmRenderProfilesList


formRenderOrderContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an order details form.

Definition

Function formRenderOrderContents(
  sAction,
  sSubAction,
  sProfileIDs,
  rsOrder
)

Defined in File

services\include\render_orders.asp

Routines Called

GenerateURL

GetRequestString

RenderForm

RenderHiddenField

tblOrderDetailsTasks

tblRenderOrderDetailsContents

Called By

htmRenderOrderDetails


formRenderOrderSearchOptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render either a simple or advanced order searching form, based on the value of the sCriteria parameter.

Definition

Function formRenderOrderSearchOptions(
  byVal dictSearchOptions,
  byVal mscsUserProfile,
  sCriteria
)

Defined in File

services\include\render_orders.asp

Routines Called

colRenderAdvancedSearchTab

colRenderSimpleSearchTab

RenderForm

RenderHiddenField

RenderSubmitButton

RenderTable

rowRenderAdvancedSearchOptionsForOrders

rowRenderSimpleSearchOptionsForOrders

sReConstructPageURL

TRTag

Called By

htmRenderOrderList


formRenderOrdersListContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an orders list form.

Definition

Function formRenderOrdersListContents(
  byVal sAction,
  byVal sSubAction,
  byVal rsOrders,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages,
  byVal sTargetPage
)

Defined in File

services\include\render_orders.asp

Routines Called

GenerateURL

RenderForm

tableRenderOrdersListContents

tableRenderOrdersListTasks

Called By

htmRenderOrderList


formRenderPagingButtons - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render paging buttons. These buttons are wrapped in a form that gets posted when a paging button is clicked.

Definition

Function formRenderPagingButtons(
  byVal sAction,
  byVal sSubAction,
  byVal iPageNumber,
  byVal iTotalPages,
  byVal bRequiresLastPageCtrl
)

Defined in File

services\include\render_common.asp

Routines Called

RenderForm

RenderHiddenField

RenderSubmitButton

RenderTextBox

sReConstructPageURL

Called By

tableRenderFooterInfo


formRenderProfileSearchOptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render either a simple or advanced profile searching form, based on the value of the request variable QUERY_STRING_CRITERIA.

Definition

Function formRenderProfileSearchOptions(
  byVal sAction,
  byVal sSubAction,
  byVal dictSearchOptions
)

Defined in File

services\include\render_list.asp

Routines Called

colRenderAdvancedSearchTab

colRenderSimpleSearchTab

GetRequestString

RenderForm

RenderHiddenField

RenderSubmitButton

RenderTable

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

sReConstructPageURL

TRTag

Called By

htmRenderProfilesList


GenerateURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks whether the page is defined as supporting the Secure Socket Layer (SSL) protocol, and whether the ticket is stored in a cookie or in the URL. This information, along with the parameters, is passed to the GetURL method of the AuthManager object.

Definition

Function GenerateURL(
  byVal sPageName,
  ByRef arrParams,
  ByRef arrVals
)

Defined in File

include\std_url_lib.asp

Routines Called

None.

Called By

CatchErrors (_setadrs.asp)

CatchErrors (_setship.asp)

CatchErrors (addrbook.asp)

CatchErrors (addrform.asp)

CatchErrors (newaddr.asp)

CatchErrors (pickship.asp)

CatchErrors (summary.asp)

CatchErrorsForPaymentPages

CheckIfOrderExists

CheckIfProfilesExist

CheckOut

CheckPartnerServiceAccess

CloseOrderDetailsActionHandler

EnsureAccess

EnsureAuthAccess

EnsureSupportForPaymentMethod

EnsureUserHasRightsToCatalog

EnsureUserProfile

formRenderBlankEditPageBody

formRenderChangePasswordPageContents

formRenderEditPageBody

formRenderListPageContents

formRenderOrderContents

formRenderOrdersListContents

GetCatalogForUser

GetTicketInUrlArg

htmChangePasswordActionHandler

htmEditPageActionHandlers

htmListPageActionHandlers

htmRenderAddressBook

htmRenderAddressBookPage

htmRenderAddressForm

htmRenderAddressRows

htmRenderBasket

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderCheckoutButton

htmRenderConfirmationPage

htmRenderCreditCardPage

htmRenderCustomerServiceSection

htmRenderEditPage

htmRenderLoginPage

htmRenderLoginSection

htmRenderMessageBoxForCancel

htmRenderMessageBoxForDelete

htmRenderMessageBoxForDeleteAll

htmRenderMessageBoxForSave

htmRenderMessageBoxForSelect

htmRenderOrderDetails

htmRenderOrderForm

htmRenderOrderList

htmRenderPartnerServiceSection

htmRenderPaymentOptionsForUser

htmRenderPickshipForm

htmRenderProfilesList

htmRenderSearchDeptPageContent

htmRenderSearchSection

htmRenderShippingMethods

htmRenderVerifyWithForm

InitializeConfirmationPage

InitializeCreditcardPage

InitializePO

InitializeSummaryPage

Main (_additem.asp)

Main (_delall.asp)

Main (_delitem.asp)

Main (_editqty.asp)

Main (_setadrs.asp)

Main (_setship.asp)

Main (addrform.asp)

Main (category.asp)

Main (dispatch.asp)

Main (error\badurl.asp)

Main (error\noauth.asp)

Main (login\_guest.asp)

Main (login\login.asp)

Main (login\newuser.asp)

Main (product.asp)

Main (services\change_password.asp)

Main (services\customer\account.asp)

Main (services\customer\view_order.asp)

Main (services\partner\account.asp)

Main (services\partner\view_order.asp)

Main (stepsrch.asp)

mscsGetCategoryObject

PasswordActionHandlers

PredictedPropToHREF

PrepareCloseAction

PrepareLoginPage

PrepareLogoffPage

PrepareNewUserPage

PreparePickShipForm

PrepareSelectActionHandlerForEdit

PrepareShippingMethods

RedirectOrderDetailsForIDs

ReDirectToPage

RedirectToPOConfirmation

RenderBasketPage

RenderCategoryURL

RenderNavbar

RenderProductURL

SelectedActionHandlerForList

SetupAddressForm

ShowRefinedSearch


GetActiveUsersOnly - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function examines the semicolon-separated list of user profile IDs, and returns a similar list containing only those user profile IDs that correspond to users that have an account status of ACCOUNT_ACTIVE.

Definition

Function GetActiveUsersOnly(
  byVal sProfileIDs
)

Parameters

sProfileIDs
A string containing a semicolon-separated list of user profile IDs.

Return Value

A string containing a semicolon-separated list of user profile IDs corresponding to users that are specified in the list provided by the sProfileIDs parameter, and that have an account status of ACCOUNT_ACTIVE.

Defined in File

services\include\save_one_profile.asp

Routines Called

GetUserPropertyFromID

Called By

SaveUserAccountControlProperty


GetAddressBookAddressFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function initializes the form field definitions for address book entries.

Definition

Function GetAddressBookAddressFieldDefinitions()

Return Value

A SimpleList object containing the form field definitions for address book entries.

Defined in File

include\global_addressbook_lib.asp

Routines Called

GetAddressFieldDefinitions

GetDictionary

GetSimpleList

Called By

GetFormDefinitions

Remarks

For more information about forms processing in the Solution Sites, see Forms Processing for Solution Sites.


GetAddresses - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Recordset object of address information for either a user or an organization, based on the value of the sAddrParentID parameter.

Definition

Function GetAddresses(
  byVal sAddrParentID
)

Defined in File

include\addr_lib.asp

Routines Called

FormatOutput

GetQualifiedName

Called By

GetOrganizationAddresses

GetUserAddresses

Remarks

This function uses ActiveX Data Objects (ADO) and the OLEDB Provider for Commerce Server for direct database access.


GetAddressFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function initializes the form field definitions for address fields used in address book entries and on shipping and billing address forms.

Definition

Function GetAddressFieldDefinitions()

Return Value

A SimpleList object containing the form field definitions for common address fields.

Defined in File

include\global_addressbook_lib.asp

Routines Called

GetCountryCodesList

GetCountryNamesList

GetDictionary

GetSimpleList

Called By

GetAddressBookAddressFieldDefinitions

GetFormDefinitions

GetShipToAddressFieldDefinitions

Remarks

For more information about forms processing in the Solution Sites, see Forms Processing for Solution Sites.


GetAddressPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the name of the page used to enter or select an address. If the user is an anonymous user or if address book functionality is disabled, the name of the address form page is returned. Otherwise, the name of the address book page is returned.

Definition

Function GetAddressPage()

Return Value

A string containing the name of either the address form page or the address book page.

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

CatchErrors (pickship.asp)

CatchErrors (summary.asp)

CatchErrorsForPaymentPages

Remarks

For more information about how addresses are managed in the Solution Sites, see About the Address Management Feature for Solution Sites.


GetAddressType - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the address type from the request variable ADDRESS_TYPE.

Definition

Function GetAddressType()

Return Value

One of the two constant values, BILLING_ADDRESS or SHIPPING_ADDRESS.

Defined in File

include\addr_lib.asp

Routines Called

None.

Called By

FetchData (addrbook.asp)

FetchData (newaddr.asp)

Main (_setadrs.asp)

Main (addrform.asp)

Remarks

This function defaults to SHIPPING_ADDRESS.


GetAncestorCategories - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an array containing the ancestor categories for the specified category.

Definition

Function GetAncestorCategories(
  byVal mscsCategory,
  byVal sCategoryName
)

Defined in File

template\discount.asp

Routines Called

None.

Called By

listGetShownProductsInfo


GetAnyLineItem - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an arbitrary line item from the specified OrderGroup object, which is useful when all line items contain similar information. This is accomplished by searching each OrderForm object in the specified OrderGroup object, and returning the first line item found.

Definition

Function GetAnyLineItem(
  mscsOrderGrp
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

GetAnySavedAddressID

GetSavedAddressID

InitializeSummaryPage

PrepareShippingMethods

sGetDefaultShippingMethod


GetAnyOrderForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the specified OrderGroup object, and returns the first OrderForm object it finds.

Definition

Function GetAnyOrderForm(
  mscsOrderGrp
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

GetAnySavedAddressID

GetDefaultValueForNameOnCard

GetDefaultValuesForCreditCardFields

GetDefaultValuesForPurchaseOrderFields

GetSavedAddressID

InitializeSummaryPage

tblRenderOrderDetailsContents

ValidateSubmittedCreditCardData

ValidateSubmittedPurchaseOrderData


GetAnySavedAddressID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves an Address ID from the OrderGroup object specified by the mscsOrderGroup parameter and tries to find a corresponding address of the specified type (shipping or billing). If one cannot be found, it searches for a corresponding address of the other type.

Definition

Function GetAnySavedAddressID(
  mscsOrderGrp,
  byVal iAddrType
)

Defined in File

addrform.asp

Routines Called

GetAnyLineItem

GetAnyOrderForm

Called By

GetDefaultValuesForAddressFormFields


GetAppConfigObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an initialized AppConfig object. It sets the global variable dictConfig to the Dictionary object returned by the GetOptionsDictionary method of the AppConfig object, and adds the s_SecureHostName and s_NonSecureHostName values from the SiteConfig object to the dictConfig dictionary.

Definition

Function GetAppConfigObject()

Return Value

An initialized AppConfig object.

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetSiteConfigObject

Called By

GetConfigDictionary

Main (include\global_main_lib.asp)


GetArrayFromList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns an array containing the items in the specified SimpleList object.

Definition

Function GetArrayFromList(
  byVal listFields
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

htmRenderOrderForm


GetAttributeValueFromProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves a property value from a profile.

Definition

Function GetAttributeValueFromProfile(
  byVal objProfile,
  byVal sPropertyName
)

Defined in File

services\include\get_profiles.asp

Routines Called

None.

Called By

dictGetSearchDictionaryForPage

GetOrgAttributeFromID

GetUserPropertyFromID


GetAuthManagerObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns an AuthManager object.

Definition

Function GetAuthManagerObject()

Defined in File

include\std_access_lib.asp

Routines Called

None.

Called By

SetupPage


GetBaseURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the base URL for this application.

Definition

Function GetBaseURL()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetCommerceSiteInstallPoint

Called By

InitCSF


GetBasketDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves basket details.

Definition

Function GetBasketDetails()

Return Value

A SimpleList object that contains one item for each item in all the OrderForm objects in the OrderGroup object for the current user. This process flattens the OrderGroup/OrderForm hierarchy.

Defined in File

template\discount.asp

Routines Called

CollectBasketItems

GetOrderGroup

GetPipelineLogFile

LoadBasket

RunMtsPipeline

Called By

None.

Remarks

This function loads the basket and runs the product pipeline. If the basket is already loaded, use the CollectBasketItems function.


GetBillToCurrenciesListItems - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object containing three items: the MessageManager "L_SelectOne_Text" message, the base currency symbol, and the alternate currency symbol.

Definition

Function GetBillToCurrenciesListItems()

Defined in File

include\global_internationalization_lib.asp

Routines Called

GetSimpleList

Called By

GetBillToCurrencyFieldDefinition


GetBillToCurrenciesListValues - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object containing three items: the integer –1, the base currency code, and the alternate currency code.

Definition

Function GetBillToCurrenciesListValues()

Defined in File

include\global_internationalization_lib.asp

Routines Called

GetSimpleList

Called By

GetBillToCurrencyFieldDefinition


GetBillToCurrencyFieldDefinition - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function initializes the form field definitions for the bill-to currency field.

Definition

Function GetBillToCurrencyFieldDefinition()

Return Value

A SimpleList object containing the form field definitions for the bill-to currency field.

Defined in File

include\global_internationalization_lib.asp

Routines Called

GetBillToCurrenciesListItems

GetBillToCurrenciesListValues

GetDictionary

Called By

GetCreditCardFieldDefinitions

GetPurchaseOrderFieldDefinitions

Remarks

For more information about forms processing in the Solution Sites, see Forms Processing for Solution Sites.


GetCatalogForUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the ProductCatalog object specified by the sCatalogName parameter. If the user does not have rights to this catalog, the user is redirected to the "bad catalog item" error page (error\baditem.asp).

Definition

Function GetCatalogForUser(
  byVal sCatalogName,
  byVal sUserID
)

Defined in File

include\catalog.asp

Routines Called

EnsureUserHasRightsToCatalog

GenerateURL

Called By

arrSearchDept

Main (_additem.asp)

Main (stepsrch.asp)


GetCommerceSiteInstallPoint - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns one of the constants HOME_DIRECTORY or VIRTUAL_DIRECTORY, depending on whether the application was installed at the root of the website or in a virtual directory, respectively.

Definition

Function GetCommerceSiteInstallPoint()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

GetBaseURL

GetMachineBaseURL


GetCommerceSiteName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the Commerce Server site name stored in the global page variable MSCSCommerceSiteName.

Definition

Function GetCommerceSiteName()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

GetErrorSource


GetComputerName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the name of the computer.

Definition

Function GetComputerName()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

GetMachineBaseURL

JoinWebFarm


GetConfigDictionary - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the Dictionary object returned by a call to the GetOptionsDictionary method of the AppConfig object.

Definition

Function GetConfigDictionary()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetAppConfigObject

Called By

Main (include\global_main_lib.asp)


GetCorrectedCookiePath - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts the case of a cookie path to match the Internet Information Services (IIS) application name, returning True if any character case was converted, and False otherwise.

Definition

Function GetCorrectedCookiePath(
  ByRef url
)

Defined in File

include\std_cookie_lib.asp

Routines Called

GetIISApplicationName

Called By

CorrectRequest

Remarks

The corrected cookie path, if correction was required, is returned in the url parameter.

Sites call this function to ensure that any cookies that are set match the case of subsequently generated URLs (because cookies are case-sensitive).


GetCorrectedHostName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function corrects the host name in the url parameter, if needed. It returns True if the host name was corrected, and False otherwise.

The purpose of this correction is so that cookies use the same host name as used in the generated URLs (so that the cookies will be preserved).

Definition

Function GetCorrectedHostName(
  ByRef url
)

Defined in File

include\std_cookie_lib.asp

Routines Called

None.

Called By

CorrectRequest

Remarks

The corrected hostname, if correction was required, is returned in the url parameter.


GetCountryCodesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a SimpleList object that has "-1" as the first item, and the codes corresponding to the countries returned by the GetCountryNamesList method of the AppConfig object as the subsequent items.

Definition

Function GetCountryCodesList()

Defined in File

include\global_internationalization_lib.asp

Routines Called

GetCountryNamesList

GetSimpleList

Called By

GetAddressFieldDefinitions


GetCountryNamesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a SimpleList object that has the string corresponding to the MessageManager constant L_SelectOne_Text as the first item, and the names of the countries returned by the GetCountryNamesList method of the AppConfig object as the subsequent items.

Definition

Function GetCountryNamesList()

Defined in File

include\global_internationalization_lib.asp

Routines Called

GetSimpleList

Called By

colRenderCountryNames

GetAddressFieldDefinitions

GetCountryCodesList


GetCreditCardCodesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the same SimpleList object as the GetCreditCardNamesList function, except that the first item is set to the string "-1".

Definition

Function GetCreditCardCodesList()

Defined in File

include\global_creditcards_lib.asp

Routines Called

GetCreditCardNamesList

Called By

GetCreditCardFieldDefinitions


GetCreditCardFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function initializes and returns the form field definitions for credit card fields.

Definition

Function GetCreditCardFieldDefinitions()

Return Value

A SimpleList object containing the form field definitions for credit card fields.

Defined in File

include\global_creditcards_lib.asp

Routines Called

GetBillToCurrencyFieldDefinition

GetCreditCardCodesList

GetCreditCardNamesList

GetDictionary

GetMonthCodesList

GetMonthNamesList

GetSimpleList

GetYearsListItems

GetYearsListValues

Called By

GetFormDefinitions

Remarks

For more information about forms processing in the Solution Sites, see Forms Processing for Solution Sites.


GetCreditCardNamesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a SimpleList object that has the string corresponding to the MessageManager constant L_SelectOne_Text as the first item, and the names of the accepted credit cards as the subsequent items.

The credit card names are also retrieved from the MessageManager object, using the constants L_AmericanExpress_Text, L_Discover_Text, L_MasterCard_Text, and L_VISA_Text.

Definition

Function GetCreditCardNamesList()

Defined in File

include\global_creditcards_lib.asp

Routines Called

GetSimpleList

Called By

GetCreditCardCodesList

GetCreditCardFieldDefinitions


GetCurrentUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the profile of the current user, if the user has one.

This function also ensures that the profile returned is the latest version available on the Web farm.

Definition

Function GetCurrentUserProfile()

Defined in File

include\std_profile_lib.asp

Routines Called

EnsureUpToDateUserProfile

GetProfileFromDB

Called By

CheckPartnerServiceAccess

EnsureAccess

EnsureUserProfile

GetUserProfileByLoginName

mscsTransferGuestUserProfile

mscsUserCatalogsetID

PrepareLoginPage

PrepareNewUserPage

PrepareRenderMenu

RenderDiscounts

rsGetUserDetails

RunMtsPipeline

Remarks

This function is optimized to return Nothing when the user is known to not have a profile, and to cache the user profile in the page variable Private_CurrentUserProfile in case this function is called again on the same page.

For more information about profiles and Web farm issues, see About the Profiles Feature for Solution Sites.


GetDefaultPaymentMethodForUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the first payment method in the passed SimpleList object.

Definition

Function GetDefaultPaymentMethodForUser(
  listMethods
)

Defined in File

include\payment.asp

Routines Called

None.

Called By

EnsureSupportForPaymentMethod

htmRenderVerifyWithForm

sLookUpPaymentMethod


GetDefaultValueForNameOnCard - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the specified OrderGroup object for the first and last name associated with the billing address, combines the names into a single string, and then returns that string.

Definition

Function GetDefaultValueForNameOnCard(
  mscsOrderGrp
)

Defined in File

crdtcard.asp

Routines Called

FormatOutput

GetAnyOrderForm

Called By

GetDefaultValuesForCreditCardFields


GetDefaultValuesForAddressFormFields - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object that contains default address values of the specified type, retrieved from the specified OrderGroup object. If these address values cannot be retrieved, a Dictionary object with the single key "ADDRESS_COUNTRY", set to a value of "–1", is returned.

Definition

Function GetDefaultValuesForAddressFormFields(
  mscsOrderGrp,
  listFlds,
  byVal iAddrType
)

Defined in File

addrform.asp

Routines Called

GetAnySavedAddressID

GetDictionary

Called By

Main (addrform.asp)

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetDefaultValuesForCreditCardFields - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object that contains default credit card values retrieved from the specified OrderGroup object. The values to retrieve are determined by the credit card fields schema specified by the listFlds parameter. If any of these values cannot be retrieved, a value of "–1" is set for that value.

Definition

Function GetDefaultValuesForCreditCardFields(
  mscsOrderGrp,
  listFlds
)

Defined in File

crdtcard.asp

Routines Called

GetAnyOrderForm

GetDefaultValueForNameOnCard

GetDictionary

Called By

InitializeCreditcardPage

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetDefaultValuesForPurchaseOrderFields - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object of default values copied from the first OrderForm object in the specified OrderGroup object. The values to retrieve are determined by the purchase order fields schema specified by the listFlds parameter.

Definition

Function GetDefaultValuesForPurchaseOrderFields(
  mscsOrderGrp,
  listFlds
)

Defined in File

po.asp

Routines Called

GetAnyOrderForm

GetDictionary

Called By

Main (po.asp)

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetDictionary - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object.

Definition

Function GetDictionary()

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

AddGroupAndPropertySchemas

dictGetCatalogAttributes

dictGetInitialFieldValues

dictGetProfileSchemaForAllProfileTypes

dictGetPropertySchema

dictGetRSFields

GetAddressBookAddressFieldDefinitions

GetAddressFieldDefinitions

GetBillToCurrencyFieldDefinition

GetCreditCardFieldDefinitions

GetDefaultValuesForAddressFormFields

GetDefaultValuesForCreditCardFields

GetDefaultValuesForPurchaseOrderFields

GetFieldsErrorDictionary

GetFormDefinitions

GetLoginFieldDefinitions

GetObjectInstanceDictionary

GetPartnerAndCustomerServicePageAttributes

GetPasswordFieldDefinition

GetPurchaseOrderFieldDefinitions

GetSecurePagesDictionary

GetShipToAddressFieldDefinitions

GetSitePages

GetSiteStyles

GetStyles

GetSubmittedFieldValues

htmRenderDiscountMessageGroup

htmRenderDiscountsApplied

htmRenderDiscountsDescriptions

htmRenderPredictions

InitCacheManager

InitSitePipelines

iValidateSubmittedRegistrationData

listGetShownProductsInfo

RsToDict

RunMtsPipeline

ValidateSubmittedLoginData


GetDiscountDescription - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the content list and returns the description of the discount that has been applied to the item.

Definition

Function GetDiscountDescription(
  byVal ciid,
  byVal oContentList
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

htmRenderDiscountMessageGroup

htmRenderDiscountsApplied

htmRenderDiscountsDescriptions


GetDWConnectionString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the SQL Server OLEDB connection string for the Data Warehouse that corresponds to the Web site.

Definition

Function GetDWConnectionString()

Defined in File

include\global_data_lib.asp

Routines Called

None.

Called By

InitPredictor


GetErrorCount - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the error count in each order form.

Definition

Function GetErrorCount(
  byVal mscsOrderGrp,
  byVal sCollectionName
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

CheckBasket

CheckOut

InitializeSummaryPage


GetErrorSource - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the site and function names of the error source.

Definition

Function GetErrorSource(
  byVal sFunctionName
)

Defined in File

include\std_util_lib.asp

Routines Called

FormatOutput

GetCommerceSiteName

Called By

JoinWebFarm


GetFieldsErrorDictionary - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object. The keys are the names of the form post fields and the values are the associated field validation error messages. Examples of errors include empty fields where input is required, incorrect password length, invalid characters, and so on.

Definition

Function GetFieldsErrorDictionary(
  listFields,
  dictFieldVals
)

Parameters

listFields
A SimpleList object that contains the field definitions for this form. The SimpleList object contains a collection of Dictionary objects, where each of the Dictionary objects contains information about a form field. This parameter is one of the form field Dictionary objects initialized within the function GetFormDefinitions.
dictFieldVals
A Dictionary object that contains the form post values corresponding to the fields specified by the listFields parameter. The keys for these values are the field names, as specified in the listFields parameter. This parameter is constructed using the function GetSubmittedFieldValues.

Return Value

A Dictionary object that contains error message strings corresponding to the fields specified by the listFields parameter. The keys for these messages are the field names, as specified in the listFields parameter.

Defined in File

include\form_lib.asp

Routines Called

bMatchesPattern

GetDictionary

IsEntityInList

Called By

iValidateSubmittedAddress

iValidateSubmittedAddressForAddressBook

iValidateSubmittedRegistrationData

ValidateSubmittedCreditCardData

ValidateSubmittedLoginData

ValidateSubmittedPurchaseOrderData

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetFileSystemObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Scripting.FileSystemObject object.

Definition

Function GetFileSystemObject()

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetINIString


GetFormDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object of field definitions (including variables such as maximum and minimum field lengths, whether the field is required, and so on) for the following fields: Login, Registration, BillToAddress, ShipToAddress, AddressBookAddress, CreditCard, and PurchaseOrder.

Definition

Function GetFormDefinitions()

Defined in File

include\global_forms_lib.asp

Routines Called

GetAddressBookAddressFieldDefinitions

GetAddressFieldDefinitions

GetCreditCardFieldDefinitions

GetDictionary

GetLoginFieldDefinitions

GetPurchaseOrderFieldDefinitions

GetRegistrationFieldDefinitions

GetShipToAddressFieldDefinitions

Called By

Main (include\global_main_lib.asp)

Remarks

The GetMessageManagerObject function must be called before this function is called.


GetIISApplicationName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the Internet Information Services (IIS) application name.

Definition

Function GetIISApplicationName()

Defined in File

include\std_cookie_lib.asp

Routines Called

None.

Called By

GetCorrectedCookiePath

SetTestCookie


GetINIFileName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the file name for the .ini file containing the site configuration information.

Definition

Function GetINIFileName()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetRootPath

Called By

Main (include\global_main_lib.asp)


GetINIString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the value of the specified key or "" (an empty string) if the key or its value cannot be found.

Definition

Function GetINIString(
  byVal sFileName,
  byVal sKey
)

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetFileSystemObject

GetKeyValue

Called By

Main (include\global_main_lib.asp)


GetInputParameters - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves the request parameters required by the GetShownProductsDetails function.

Definition

Sub GetInputParameters (
  ByRef sCatalogName,
  ByRef sCategoryName,
  ByRef nPageNumber,
  ByRef sProductID
)

Defined in File

template\discount.asp

Routines Called

GetRequestString

Called By

GetShownProductsDetails


GetKeyValue - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the value part of a key/value pair line in an INI file.

Definition

Function GetKeyValue(
  byVal sKeyValuePair,
  byVal sKey
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetINIString


GetLineItemsCount - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the number of items in the basket.

Definition

Function GetLineItemsCount(
  byVal mscsOrderGrp
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

CheckBasket


GetListItemIndex - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the index of the specified item in the list.

Definition

Function GetListItemIndex(
  byVal sItem,
  list
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

InitializeCreditcardPage

Main (po.asp)


GetLoginFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the login form field definitions.

Definition

Function GetLoginFieldDefinitions()

Defined in File

include\global_forms_lib.asp

Routines Called

FormatOutput

GetDictionary

GetPasswordFieldDefinition

GetSimpleList

Called By

GetFormDefinitions

GetRegistrationFieldDefinitions

Remarks

For best results, keep the RegExp object pattern specified in the Pattern entry of the form field schema dictionary the same as the one used in Business Desk and the Partner Services.

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetMachineBaseURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the base URL for this application, and specifically for this server.

Definition

Function GetMachineBaseURL()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetCommerceSiteInstallPoint

GetComputerName

iGetWebServerPort

Called By

InitCacheManager

Remarks

If you use Commerce Server Business Desk production refresh capabilities (present in BDRefresh.asp) from a browser outside the local area network (LAN), this function must be changed so that it returns a computer-specific URL that works outside the LAN.


GetMessageManagerObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function reads the MessageManager object entries from the file rc.xml.

Definition

Function GetMessageManagerObject()

Defined in File

include\global_messagemanager_lib.asp

Routines Called

GetRootPath

Called By

Main (include\global_main_lib.asp)


GetMonthCodesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a list of numeric month codes.

Definition

Function GetMonthCodesList()

Defined in File

include\std_dates_lib.asp

Routines Called

GetSimpleList

Called By

GetCreditCardFieldDefinitions


GetMonthNamesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a list of month names.

Definition

Function GetMonthNamesList()

Defined in File

include\std_dates_lib.asp

Routines Called

GetSimpleList

Called By

GetCreditCardFieldDefinitions


GetNewGuestUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

If the privacy options of the Site Configuration dictionary is set to PROFILE_GUEST_USER, this function creates a new user profile, sets the user_id_changed_by field to the newly generated user ID, sets the user_type field to GUEST_PROFILE, the account_status field to ACCOUNT_ACTIVE, the partner_desk_role field to ROLE_USER, and the date_created field to the current time. After the profile is created, the function passes it to the UpdateUserProfile routine to perform common functions the sites require when saving profiles.

Definition

Function GetNewGuestUserProfile()

Defined in File

include\std_profile_lib.asp

Routines Called

UpdateUserProfile

Called By

EnsureAccess

Main (login\_guest.asp)


GetObjectInstanceDictionary - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a Dictionary object. The Dictionary object contains an item called "Dictionary" that contains an empty Dictionary object. The Dictionary object also contains an item called "SimpleList" that contains an empty SimpleList object.

Definition

Function GetObjectInstanceDictionary()

Defined in File

include\std_util_lib.asp

Routines Called

GetDictionary

GetSimpleList

Called By

Main (include\global_main_lib.asp)


GetODBCTimeStamp - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts a date variant to an Open Database Connectivity (ODBC) timestamp format { ts 'yyyy-mm-dd hh:mm:ss' }.

Definition

Function GetODBCTimeStamp(
  varTime
)

Defined in File

services\include\profiles_common.asp

Routines Called

None.

Called By

sAddEndDate

sAddStartDate


GetOptOutList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the list ID of the opt-out list associated with the campaign item, or Null if there is no opt-out list associated with the campaign item.

Definition

Function GetOptOutList(
  conn_campaigns,
  listmanager,
  campitem_id
)

Defined in File

opt-out.asp

Routines Called

None.

Called By

OptOut


GetOrderGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an initialized OrderGroup object.

Definition

Function GetOrderGroup(
  byVal sOrderID
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

GetBasketDetails

InitializeConfirmationPage

LoadBasket

Main (_recvpo.asp)

mscsGetOrderGroupWithDiscountsByID


GetOrderGroupManager - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an OrderGroupManager object.

Definition

Function GetOrderGroupManager()

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

MoveBasketItems

SaveBasketAsOrder


GetOrganizationAddresses - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function serves as a wrapper function to the GetAddresses function, passing the sOrgID parameter to retrieve the corresponding address as a Recordset object.

Definition

Function GetOrganizationAddresses(
  byVal sOrgID
)

Defined in File

include\addr_lib.asp

Routines Called

GetAddresses

Called By

None.


GetOrgAttributeFromID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the value of the specified property for an Organization profile.

Definition

Function GetOrgAttributeFromID(
  byVal sAttributeName,
  byVal sID
)

Defined in File

services\include\get_profiles.asp

Routines Called

GetAttributeValueFromProfile

rsGetProfileByKey

Called By

bPaintACLForUser

SaveUserParentDNProperty

sGetParentDN


GetPartnerAndCustomerServicePageAttributes - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the properties for all Partner and Customer Services pages.

Definition

Function GetPartnerAndCustomerServicePageAttributes(
  MSCSSitePages
)

Defined in File

services\include\global_service_lib.asp

Routines Called

GetDictionary

Called By

Main (include\global_main_lib.asp)


GetPasswordFieldDefinition - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object of field definitions for the password field in the new user and login forms. The field definitions include size constraint settings, invalid characters, and so on.

Definition

Function GetPasswordFieldDefinition()

Defined in File

include\global_forms_lib.asp

Routines Called

FormatOutput

GetDictionary

Called By

GetLoginFieldDefinitions

GetRegistrationFieldDefinitions

Remarks

For best results, keep the RegExp object pattern specified in the Pattern entry of the form field schema dictionary the same as the one used in Business Desk and the Partner Services.


GetPaymentMethodDisplayName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the display name for the specified payment method.

Definition

Function GetPaymentMethodDisplayName(
  byVal sPaymentMethod
)

Defined in File

include\payment.asp

Routines Called

None.

Called By

htmRenderPaymentOptionsForUser


GetPaymentMethodsForSite - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the payment methods for the site. This function must run after the MessageManager object is assigned.

Definition

Function GetPaymentMethodsForSite()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetSimpleList

IsBitValueSet

Called By

Main (include\global_main_lib.asp)


GetPaymentMethodsForUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the payment methods for the user.

Definition

Function GetPaymentMethodsForUser()

Defined in File

include\payment.asp

Routines Called

GetSimpleList

IsEntityInList

Called By

InitializeCreditcardPage

InitializePO

InitializeSummaryPage

Main (dispatch.asp)


GetPaymentPageFromPaymentMethod - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the friendly name of either the crdtcard.asp or po.asp page, depending on the value of the sPaymentMethod parameter.

Definition

Function GetPaymentPageFromPaymentMethod(
  byVal sPaymentMethod
)

Defined in File

include\payment.asp

Routines Called

None.

Called By

EnsureSupportForPaymentMethod

htmRenderVerifyWithForm

Main (dispatch.asp)


GetPipelineLogFile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the log file path along with the user ID in the file name.

Definition

Function GetPipelineLogFile(
  byVal s
)

Defined in File

include\std_pipeline_lib.asp

Routines Called

None.

Called By

CheckBasket

CheckOut

GetBasketDetails

InitializeSummaryPage

PreparePickShipForm

RunOrderPipeline


GetPriceAndCurrency - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves both the price and a formatted price string for a product.

Definition

Sub GetPriceAndCurrency(
  ByRef rsProducts,
  ByRef cyProductPrice,
  ByRef cyCurrency
)

Parameters

rsProducts
A Recordset object containing product information.
cyProductPrice
A currency variant containing the price of the product.
cyCurrency
A currency variant containing the price of the product as a string formatted to the locale.

Defined in File

include\catalog.asp

Routines Called

htmRenderCurrency

Called By

htmRenderProductsTable


GetProductQuantity - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function uses the RequestNumber method of the AppFrameWork object to retrieve and return the value of the PRODUCT_QTY_URL_KEY. If this value is Null, or outside the range of 1 to 999, the value is reset to -1.

Definition

Function GetProductQuantity()

Defined in File

_additem.asp

Routines Called

IsNumberInRange

Called By

Main (_additem.asp)


GetProfileFromDB - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves the specified profile from the Profiles store.

Definition

Sub GetProfileFromDB(
  ByRef rsProfile
)

Defined in File

include\std_profile_lib.asp

Routines Called

None.

Called By

EnsureUpToDateUserProfile

GetCurrentUserProfile

GetUserProfileByLoginName

rsGetProfile

rsGetProfileByKey


GetProfileService - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and initializes a ProfileService object.

Definition

Function GetProfileService()

Defined in File

include\std_profile_lib.asp

Routines Called

None.

Called By

None.


GetPurchaseOrderFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object of form field definitions, including name, size constraint settings, and so on. A billing currency field is created if an alternate currency can be used on the site.

Definition

Function GetPurchaseOrderFieldDefinitions()

Defined in File

include\global_forms_lib.asp

Routines Called

GetBillToCurrencyFieldDefinition

GetDictionary

GetSimpleList

Called By

GetFormDefinitions

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetQualifiedName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs a qualified name from the group name and fieldname, resulting in a string of the form sGroupName.sFieldName.

Definition

Function GetQualifiedName(
  byVal sGroupName,
  byVal sFieldName
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

bInsertProfile

EnsureAccess

GetAddresses

GetUserInfo

htmRenderMenu

mscsNewRegisteredUserProfile

mscsTransferGuestUserProfile

PrepareLoginPage

PrepareLoginSection

PrepareNewUserPage

rsGetProfilesList

SaveReadOnlyProperty

sGetWhereClauseForCurrentUser

UpdateSelectActionPropertyName

UpdateUserPasswordProperty

ValidateSubmittedLoginData


GetRecordCount - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the number of records in the specified Recordset object.

Definition

Function GetRecordCount(
  ByRef rs
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

PrepareCatalogSection

PrepareDefaultPage


GetRegExp - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns the VBScript.RegExp object.

Definition

Function GetRegExp()

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

None.


GetRegistrationFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object of field definitions for the registration form.

Definition

Function GetRegistrationFieldDefinitions()

Defined in File

include\global_forms_lib.asp

Routines Called

GetLoginFieldDefinitions

GetPasswordFieldDefinition

Called By

GetFormDefinitions

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetRepeatStyle - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates an array with the number of array elements specified by the iCount parameter. Each array element is assigned the attribute string specified by the sAttList parameter. This is used to construct a table style array initialized to a common value.

Definition

Function GetRepeatStyle(
  byVal iCount,
  byVal sAttList
)

Parameters

iCount
A number indicating the size of the array to be created.
sAttList
A string to be assigned to each element of the array. The string is a list of space-separated attribute/value pairs to be associated with an HTML element.

Return Value

An array with the number of elements specified by the iCount parameter, where each element is assigned the value of the string contained in the sAttList parameter.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

htmRenderFillOutForm


GetRequestString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function removes double quotes, and opening and closing element characters (< and >) from strings obtained through the Request object.

Definition

Function GetRequestString(
  byVal sName,
  byVal vtDefault
)

Defined in File

include\std_url_lib.asp

Routines Called

None.

Called By

AddSetClauseAndUpdateUserAccountControl

bCheckIfProfileExists

bClickedViewButton

bClickedViewOrSearchButton

bInsertProfile

bIsPropertyValueAdded

bProfileHasChanged

bSaveProfileDetails

bSaveReadWriteProperty

CatchErrorsForPaymentPages

FetchCategoryData

FetchData (_setadrs.asp)

formRenderChangePasswordPageContents

formRenderListPageContents

formRenderOrderContents

formRenderProfileSearchOptions

GetInputParameters

GetSearchDictionaryForThisPage

GetSpecificationSearchClauses

GetSubmittedFieldValues

GetUserAccountControl

htmCancelUpdatePasswordAction

htmRenderMenu

htmRenderMessageBoxForCancel

htmRenderMessageBoxForSave

htmRenderMessageBoxForSelect

InitializeConfirmationPage

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

Main (_additem.asp)

Main (_delitem.asp)

Main (_setadrs.asp)

Main (_setship.asp)

Main (dispatch.asp)

Main (product.asp)

Main (search.asp)

Main (stepsrch.asp)

PopulateOrderSearchCriteria

PopulateProfileSearchCriteria

PrepareCloseAction

PrepareCloseOrderDetailsAction

PrepareOrderList

PrepareSaveChangesConfirmation

PrepareSaveProfiles

rowRenderAdvancedSearchOptionsForOrders

rowRenderStatusInfo

rsGetOrderDetails

SaveAllSelectedProfiles

SaveCommonValueForAllSelectedRecords

SaveSAMAccountNameProperty

SaveUserAccountControlProperty

SaveUserPartnerDeskRoleProperty

sGetAction

sGetIDFromForm

sGetSelectActionPropertyName

sGetSelectedIDs

sGetSubAction

ShowRefinedSearch

tableRenderChangePasswordContents

tableRenderMessageBoxPageButtons

UpdatePasswordActionHandler

UpdateSelectActionPropertyName

ValidateFields

varGetValueFromRequestObject

Remarks

For more information about security issues, see Security Issues for Solution Sites.


GetRequestStringRange - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function removes double quotes, and opening and closing element characters (< and >) from strings obtained through the Request object.

This function also ensures that the requested string is within the length range specified by the iMinLength and iMaxLength parameters.

Definition

Function GetRequestStringRange(
  byVal sName,
  byVal vtDefault,
  byVal iMinLength,
  byVal iMaxLength
)

Defined in File

include\std_url_lib.asp

Routines Called

None.

Called By

None.

Remarks

For more information about security issues, see Security Issues for Solution Sites.


GetRequestType - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the type of request (POST or GET).

Definition

Function GetRequestType()

Defined in File

include\std_cookie_lib.asp

Routines Called

None.

Called By

None.


GetRootPath - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the file path to the root of the application.

Definition

Function GetRootPath()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

GetINIFileName

GetMessageManagerObject

InitSitePipelines


GetSavedAddressID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a shipping or billing address ID, depending on the value of the iAddrType parameter.

Definition

Function GetSavedAddressID(
  mscsOrderGrp,
  byVal iAddrType
)

Defined in File

addrform.asp

Routines Called

GetAnyLineItem

GetAnyOrderForm

Called By

SaveAddressToOrderGroup


GetSearchDictionaryForThisPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function stores and retrieves the search criteria for the current user and current page.

Definition

Function GetSearchDictionaryForThisPage(
  byVal sAction,
  ByRef sStatusField,
  ByRef iStatusID
)

Defined in File

services\include\lib.asp

Routines Called

GetRequestString

PopulateOrderSearchCriteria

PopulateProfileSearchCriteria

sGetThisPageProperty

Called By

htmRenderProfilesList

PrepareOrderList


GetSecurePagesDictionary - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the Dictionary object containing the names of the secure site pages.

Definition

Function GetSecurePagesDictionary()

Parameters

None.

Return Value

A Dictionary object containing the names of the secure site pages.

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetDictionary

Called By

Main (include\global_main_lib.asp)

Remarks

This routine must be modified so that any page requiring secure access is included in the returned Dictionary object.

For more information about security issues, see Security Issues for Solution Sites.


GetShippingMethodNameFromID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the shipping method name corresponding to the specified shipping method ID.

Definition

Function GetShippingMethodNameFromID(
  byVal sSelectedMethodID
)

Defined in File

_setship.asp

Routines Called

None.

Called By

Main (_setship.asp)


GetShipToAddressFieldDefinitions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object containing field definitions for the ship-to-address field. Most of the SimpleList is populated by a call to the GetAddressFieldDefinitions function. A Dictionary object containing items such as Name, Label, InputType, and so on, is also included in the SimpleList.

Definition

Function GetShipToAddressFieldDefinitions()

Defined in File

include\global_addressbook_lib.asp

Routines Called

GetAddressFieldDefinitions

GetDictionary

Called By

GetFormDefinitions

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetShownProductsDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retreives the product details for the products shown on the page.

Definition

Function GetShownProductsDetails()

Defined in File

template\discount.asp

Routines Called

GetInputParameters

GetSimpleList

IsEntityInSet

oCachedDiscountProductInfo

Called By

Main (product.asp)


GetSimpleList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object.

Definition

Function GetSimpleList()

Parameters

None.

Return Value

An empty SimpleList object.

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetAddressBookAddressFieldDefinitions

GetAddressFieldDefinitions

GetBillToCurrenciesListItems

GetBillToCurrenciesListValues

GetCountryCodesList

GetCountryNamesList

GetCreditCardFieldDefinitions

GetCreditCardNamesList

GetLoginFieldDefinitions

GetMonthCodesList

GetMonthNamesList

GetObjectInstanceDictionary

GetPaymentMethodsForSite

GetPaymentMethodsForUser

GetPurchaseOrderFieldDefinitions

GetShownProductsDetails

GetYearsListItems

htmRenderDiscountsApplied

htmRenderPaymentOptionsForUser

htmRenderPredictions

listGetShownProductsInfo

listGetVariantPropertiesToShow

ValidateSubmittedLoginData


GetSiteConfigObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a SiteConfig object.

Definition

Function GetSiteConfigObject()

Parameters

None.

Return Value

An initialized SiteConfig object.

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

GetAppConfigObject

iGetWebServerPort

JoinWebFarm


GetSitePages - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function assigns friendly names to pages in the site. Friendly names are also used by PageSets and the GetSecurePagesDictionary function.

Definition

Function GetSitePages()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

AddPartnerAndCustomerServicePages

GetDictionary

Called By

Main (include\global_main_lib.asp)


GetSiteStyles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the site styles, which are used by HTML library functions.

Definition

Function GetSiteStyles()

Defined in File

include\global_ui_lib.asp

Routines Called

AddPartnerAndCustomerServiceStyles

GetDictionary

Called By

Main (include\global_main_lib.asp)

Remarks

For more information about how styles are used in the Solution Sites, see Customizing Styles.


GetSpecificationSearchClauses - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub generates search clauses.

Definition

Sub GetSpecificationSearchClauses(
  byRef sSearchHandle,
  byRef rsFields,
  byRef oCatalog,
  byRef arr1,
  byref arr2,
  byRef iConstraintFieldsCount,
  byRef iNonConstraintFieldsCount
)

Defined in File

stepsrch.asp

Routines Called

GetRequestString

Called By

PrepareSpecificationSearch


GetStatusFieldAndID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub updates the status message for the "Save" action.

Definition

Sub GetStatusFieldAndID(
  byVal sSubAction,
  byVal bValidPostedValues,
  byVal bUpdated,
  byVal bProfileExists,
  byRef sStatusField,
  byRef sStatusID
)

Defined in File

services\include\edit_handlers.asp

Routines Called

None.

Called By

None.


GetStyles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Dictionary object containing the size attribute for standard text and password boxes.

Definition

Function GetStyles()

Return Value

A Dictionary object containing the size attribute for standard text and password boxes.

Defined in File

include\global_ui_lib.asp

Routines Called

GetDictionary

Called By

None.


GetSubmittedFieldValues - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves form post values from the request, based on the expected fields specified by the listFlds parameter, placing them in a Dictionary object where the corresponding keys are the names of the fields.

Definition

Function GetSubmittedFieldValues(
  listFlds
)

Parameters

listFlds
A SimpleList object that contains a collection of Dictionary objects. Each of the Dictionary objects contains information about a form field. This parameter is one of the form field Dictionary objects initialized within the function GetFormDefinitions.

Return Value

A Dictionary object that contains form post value strings corresponding to the fields specified by the listFlds parameter. The keys for these value strings are the field names, as specified in the listFlds parameter.

Defined in File

include\form_lib.asp

Routines Called

GetDictionary

GetRequestString

Called By

InitializeCreditcardPage

Main (addrform.asp)

Main (po.asp)

PrepareLoginPage

PrepareNewUserPage

SetupAddressForm

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


GetTableNameAndWhereClause - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub gets the database table name and uses a WHERE clause to search for a given organization ID.

Definition

Sub GetTableNameAndWhereClause(
  ByRef sTableName,
  ByRef sOrgIDWhereClause
)

Parameters

sTableName
A string containing the name of the database table storing a given profile type.
sOrgIDWhereClause
A string containing a WHERE clause to search for a given organization ID.

Defined in File

services\include\profiles_common.asp

Routines Called

sGetThisPageProperty

Called By

DeleteAllProfiles

rsGetProfilesList

SaveAllSelectedProfiles

UpdateUserAccountControlProperty


GetTicketInUrlArg - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the ticket from a URL string.

Definition

Function GetTicketInUrlArg()

Defined in File

include\std_url_lib.asp

Routines Called

GenerateURL

Called By

CacheFragment

LookupCachedFragment


GetTicketLocation - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the location of a ticket.

Definition

Function GetTicketLocation()

Parameters

None.

Return Value

An integer equal to one of the following values:

  • 0 - no ticket available (anonymous users or users authenticated to IIS)
  • 1 - the ticket is stored in the URL
  • 2 - the ticket is stored in a cookie

Defined in File

include\std_url_lib.asp

Routines Called

None.

Called By

SetupPage


GetUserAccountControl - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether to update the User Account Status and User Partner Desk Role properties.

Definition

Function GetUserAccountControl(
  ByRef sSQLStmt,
  ByRef bFieldSelected
)

Defined in File

services\include\save_all_profiles.asp

Routines Called

GetRequestString

sAddWhereClauseForActiveUsers

Called By

AddSetClauseAndUpdateUserAccountControl


GetUserAddresses - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the address for a user. It calls the more generic GetAddresses function to retrieve and return the required address as a Recordset object.

Definition

Function GetUserAddresses(
  byVal sUserID
)

Defined in File

include\addr_lib.asp

Routines Called

GetAddresses

Called By

bIsAddressNameUnique

FetchData (addrbook.asp)


GetUserInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub, called from the include\setupenv.asp file, assigns the user ID, user type and user access type into the following global variables:

m_userID (user ID)

m_UserType (AUTH_USER, GUEST_USER, or ANON_USER)

m_UserAccessType (IIS_AUTH, TICKET_AUTH, GUEST_VISIT, or ANON_VISIT)

Definition

Sub GetUserInfo()

Defined in File

include\std_access_lib.asp

Routines Called

GetQualifiedName

GetUserProfileByLoginName

Called By

SetupPage

Remarks

For more information about users, see About the User Tracking Feature for Solution Sites.


GetUserProfileByLoginName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the profile for the given login name.

Definition

Function GetUserProfileByLoginName(
  byVal sLogonName
)

Defined in File

include\std_profile_lib.asp

Routines Called

EnsureUpToDateUserProfile

GetCurrentUserProfile

GetProfileFromDB

Called By

GetUserInfo


GetUserPropertyFromID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the value of a property from the profile of a user.

Definition

Function GetUserPropertyFromID(
  byVal sPropertyName,
  byVal sID
)

Parameters

Defined in File

services\include\get_profiles.asp

Routines Called

GetAttributeValueFromProfile

rsGetUserDetails

Called By

bHandlePaintingACLsForUsersInAD

GetActiveUsersOnly

SaveUserPartnerDeskRoleProperty

sGetAdminsOnly

sGetUserFullName

sGetUserLoginName

sGetUsersOnly


GetXMLForVendorItems - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns an XML document containing the line items corresponding to the specified order form and vendor. The oVendor parameter is a list of line items to be associated with a vendor, and is generated in the Splitter component of the checkout pipeline.

Definition

Function GetXMLForVendorItems(
  byVal mscsOrderForm,
  byVal oVendor
)

Defined in File

include\payment.asp

Routines Called

None.

Called By

InvokeBizTalk


GetYearsListItems - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object of items. The first item contains the MessageManager object "L_SelectOne_Text" message; the next item contains the current year; the following four items contain the next four year values (for example, if the current year is 2002, then the four items would contain 2003 through 2006).

Definition

Function GetYearsListItems()

Defined in File

include\std_dates_lib.asp

Routines Called

GetSimpleList

Called By

GetCreditCardFieldDefinitions

GetYearsListValues


GetYearsListValues - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object of items. The first item contains the integer "-1"; the next item contains the current year; the next four items contain the next four year values (for example, if the current year is 2002, then the four items would contain 2003 through 2006).

Definition

Function GetYearsListValues()

Defined in File

include\std_dates_lib.asp

Routines Called

GetYearsListItems

Called By

GetCreditCardFieldDefinitions


H

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letter H.

Routine | File
HandleSingleQuote | services\include\profiles_common.asp
htmAddActionHandler | services\include\edit_handlers.asp
htmCachedProductList | category.asp
htmCachedShippingMethods | pickship.asp
htmCancelUpdatePasswordAction | services\include\password_handlers.asp
htmCategoryHTML | category.asp
htmChangePasswordActionHandler | services\include\edit_handlers.asp
htmCloseActionHandler | services\include\edit_handlers.asp
htmCopyActionHandler | services\include\edit_handlers.asp
htmDeleteActionHandler | services\include\edit_handlers.asp
htmEditAction | services\include\edit_handlers.asp
htmEditAllProfiles | services\include\edit_handlers.asp
htmEditPageActionHandlers | services\partner\edit_user.asp
htmInsertProfile | services\include\edit_handlers.asp
htmListPageActionHandlers | services\partner\users.asp
htmOrderDetailsActionHandler | services\include\order_handlers.asp
htmOrderListActionHandler | services\partner\orders.asp
htmRenderAddressBook | addrbook.asp
htmRenderAddressBookPage | addrbook.asp
htmRenderAddress | summary.asp
htmRenderAddressForm | newaddr.asp
htmRenderAddressRows | addrbook.asp
htmRenderBasket | basket.asp
htmRenderBasketWarnings | basket.asp
htmRenderBlankEditPage | services\include\render_edit_blank.asp
htmRenderBlankSpaces | services\include\render_common.asp
htmRenderBoolean | services\include\render_common.asp
htmRenderBuiltInProperties | product.asp
htmRenderCatalogList | include\catalog.asp
htmRenderCatalogSection | template\menu.asp
htmRenderCategoriesList | include\catalog.asp
htmRenderCategoryPage | include\catalog.asp
htmRenderChangePasswordPage | services\include\render_password.asp
htmRenderCheckoutButton | basket.asp
htmRenderConfirmationPage | confirm.asp
htmRenderCountries | services\include\render_common.asp
htmRenderCreditCardPage | crdtcard.asp
htmRenderCurrency | include\std_util_lib.asp
htmRenderCustomerServiceSection | template\menu.asp
htmRenderDefaultPage | default.asp
htmRenderDiscountMessageGroup | basket.asp
htmRenderDiscountMessages | basket.asp
htmRenderDiscountsApplied | basket.asp
htmRenderDiscountsDescriptions | summary.asp
htmRenderEditPage | services\include\render_edit_common.asp
htmRenderEmptyRecordSet | services\include\render_common.asp
htmRenderFillOutForm | include\form_lib.asp
htmRenderFullTextSearchResults | search.asp
htmRenderGrandTotals | summary.asp
htmRenderLoginPage | login\login.asp
htmRenderLoginSection | template\menu.asp
htmRenderLogoffPage | login\logoff.asp
htmRenderMenu | template\menu.asp
htmRenderMessageBoxForCancel | services\include\render_messagebox.asp
htmRenderMessageBoxForDelete | services\include\render_messagebox.asp
htmRenderMessageBoxForDeleteAll | services\include\render_messagebox.asp
htmRenderMessageBoxForSave | services\include\render_messagebox.asp
htmRenderMessageBoxForSelect | services\include\render_messagebox.asp
htmRenderMessageBoxPage | services\include\render_messagebox.asp
htmRenderNewUserPage | login\newuser.asp
htmRenderOrderDateTypes | services\include\render_common.asp
htmRenderOrderDetails | services\include\render_orders.asp
htmRenderOrderDetailsForIDs | services\include\order_handlers.asp
htmRenderOrderForm | summary.asp
htmRenderOrderList | services\include\render_orders.asp
htmRenderOrderStatusOptions | services\include\render_common.asp
htmRenderPartnerDeskRoles | services\include\render_common.asp
htmRenderPartnerServiceSection | template\menu.asp
htmRenderPaymentOptionsForUser | include\payment.asp
htmRenderPaymentOptionsPage | po.asp
htmRenderPickshipForm | pickship.asp
htmRenderPredictions | basket.asp
htmRenderProductsTable | include\catalog.asp
htmRenderProfilesList | services\include\render_list.asp
htmRenderSearchDeptPageContent | srchdept.asp
htmRenderSearchSection | template\menu.asp
htmRenderSelectEndTag | services\include\render_common.asp
htmRenderSelectTag | services\include\render_common.asp
htmRenderShippingMethods | pickship.asp
htmRenderShippingOptionsEx | pickship.asp
htmRenderSiteTerm | services\include\render_common.asp
htmRenderStepSearchPageContent | stepsrch.asp
htmRenderSummaryPage | summary.asp
htmRenderUniqueIDForProfile | services\include\render_list.asp
htmRenderUserDefinedProductProperties | product.asp
htmRenderUserStatusOptions | services\include\render_common.asp
htmRenderVariantsList | product.asp
htmRenderVerifyWithForm | summary.asp
htmSaveActionHandler | services\include\edit_handlers.asp
htmSaveAllActionHandler | services\include\edit_handlers.asp
htmSaveChangesConfirmationHandler | services\include\messagebox_handlers.asp
htmSaveProfiles | services\include\edit_handlers.asp
htmSelectActionHandlerForEdit | services\include\edit_handlers.asp
htmSelectedActionHandlerForEdit | services\include\edit_handlers.asp


HandleSingleQuote - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function replaces a single quote with a double quote for processing profiles.

Definition

Function HandleSingleQuote(
  byVal sSQLValue
)

Defined in File

services\include\profiles_common.asp

Routines Called

None.

Called By

sAddSQLString


htmAddActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a blank edit page for any profile, and serves as a wrapper function to the htmRenderBlankEditPage function.

Definition

Function htmAddActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderBlankEditPage

Called By

htmEditPageActionHandlers


htmCachedProductList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function attempts to find a specific HTML fragment in the cache ProductListCache. The fragment is specified by the passed catalog and category names, and a page number. The cache key is constructed by concatenating these three values together. If found, the HTML fragment is returned; otherwise, Null is returned.

Definition

Function htmCachedProductList(
  sCatalogName,
  sCategoryName,
  iPageNumber,
  byRef sCacheKey
)

Parameters

sCatalogName
A string containing the name of a catalog, used as the first component of the cache key constructed by this function.
sCategoryName
A string containing the name of a category, used as the second component of the cache key constructed by this function.
iPageNumber
An integer containing a page number, used as the third component of the cache key constructed by this function.
sCacheKey
A string used to return the constructed cache key.

Return Value

If found in the cache, a string containing the HTML representation of the products in the requested catalog, category, and page number.

Defined in File

category.asp.

Routines Called

LookupCachedFragment

Called By

Main (category.asp)


htmCachedShippingMethods - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the cache StaticSectionsCache for the shipping methods HTML fragment. If the fragment is found, this function returns that fragment; otherwise, Null is returned.

Definition

Function htmCachedShippingMethods()

Return Value

If the fragment is found, this function returns that fragment; otherwise, Null is returned.

Defined in File

pickship.asp

Routines Called

LookupCachedFragment

Called By

Main (pickship.asp)


htmCancelUpdatePasswordAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function cancels the update of the user_security_password property of the user.

Definition

Function htmCancelUpdatePasswordAction(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\password_handlers.asp

Routines Called

GetRequestString

Called By

PasswordActionHandlers


htmCategoryHTML - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs an HTML representation of a particular set of products as specified by several parameters. The constructed HTML fragment is also cached for future use using the specified cache key.

Definition

Function htmCategoryHTML(
  oCatalog,
  sCatalogName,
  sCategoryName,
  oCategory,
  rsProducts,
  iPageNumber,
  nOutPagesTotal,
  sCacheKey
)

Parameters

oCatalog
A reference to a ProductCatalog object, passed through to the function htmRenderCategoryPage.
sCatalogName
A string containing the name of the catalog, used as the page title when the category string is Null, and passed through to the function htmRenderCategoryPage.
sCategoryName
A string containing the name of the category, used as the page title when not Null, and passed through to the function htmRenderCategoryPage.
oCategory
A reference to a Category object, passed through to the function htmRenderCategoryPage.
rsProducts
A reference to a Recordset object containing products to be represented in HTML, passed through to the function htmRenderCategoryPage.
iPageNumber
An integer that specifies a particular page of products to be represented in HTML, passed through to the function htmRenderCategoryPage.
nOutPagesTotal
An integer that specifies the total number of pages of products represented in the rsProducts parameter Recordset object, passed through to the function htmRenderCategoryPage.
sCacheKey
A string containing a key under which the constructed HTML will be cached in the cache ProductListCache.

Return Value

A string containing the HTML representation of the products in the requested catalog, category, and page number.

Defined in File

category.asp.

Routines Called

CacheFragment

htmRenderCategoryPage

RenderText

Called By

Main (category.asp)

Remarks

This function uses the function htmRenderCategoryPage to perform the bulk of the work of creating the HTML representation of the requested product list. Many of the parameters are passed straight through to this function.

The constructed HTML string is cached for future use in the cache ProductListCache under the key specified by the sCacheKey parameter.


htmChangePasswordActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function is called by EDIT-type pages for changing the user_security_password property. It is called before the execution is passed to the change_password.asp page.

Definition

Function htmChangePasswordActionHandler(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byRef sPreviousAction,
  byRef listProfileSchema,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues
)

Defined in File

services\include\edit_handlers.asp

Routines Called

GenerateURL

htmSaveChangesConfirmationHandler

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)


htmCloseActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "Close" action handler.

Definition

Function htmCloseActionHandler(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  ByVal sActionPage,
  byVal sPreviousAction,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema,
  byVal sSourcePage,
  byVal bDirty
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderBlankEditPage

htmRenderEditPage

htmRenderMessageBoxForCancel

Called By

htmEditPageActionHandlers


htmCopyActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "Copy" action handler.

Definition

Function htmCopyActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal iProfileCount,
  byVal iStatusID,
  byVal sStatusField,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal sProfileListPage,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

ReDirectToPage

Called By

htmEditPageActionHandlers


htmDeleteActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "Delete" action handler.

Definition

Function htmDeleteActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sProfileListPage,
  byVal iProfileCount
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderMessageBoxForDelete

htmRenderMessageBoxForDeleteAll

ReDirectToPage

Called By

htmEditPageActionHandlers


htmEditAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides the "Edit" action handler. It supports single-edit, multi-edit, and SelectAll+Edit scenarios. Business logic to prepare for this display is in the PrepareEditAction sub.

Definition

Function htmEditAction(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal iProfileCount,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

ReDirectToPage

sGetThisPageProperty

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)

Main (services\partner\account.asp)


htmEditAllProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function serves as a wrapper function for the htmRenderEditPage function, and renders the edit page contents.

Definition

Function htmEditAllProfiles(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal iStatusID,
  byVal sStatusField,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

Called By

None.


htmEditPageActionHandlers - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function calls appropriate handlers for all the EDIT-type pages. It can be used for all the profiles.

Definition

Function htmEditPageActionHandlers(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\partner\edit_user.asp

Routines Called

DeleteAllActionHandler

DeSelectAllActionHandler

GenerateURL

htmAddActionHandler

htmChangePasswordActionHandler

htmCloseActionHandler

htmCopyActionHandler

htmDeleteActionHandler

htmEditAction

htmSaveActionHandler

PrepareAddAction

PrepareCloseAction

PrepareCopyAction

PrepareDeleteAction

PrepareDeleteAllAction

PrepareDeselectAllAction

PrepareEditAction

PrepareSaveAction

PrepareSaveChangesConfirmation

PrepareSelectAllAction

SelectAllActionHandler

Called By

Main (services\partner\edit_user.asp)


htmInsertProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the edit page by calling the htmRenderEditPage function if the profile has been successfully inserted during the profile save operation that calls this function; otherwise, it renders the edit page by calling the htmRenderBlankEditPage function.

Definition

Function htmInsertProfile(
  byVal sAction,
  byVal sSubAction,
  byVal bInserted,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

Called By

htmSaveActionHandler


htmListPageActionHandlers - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "List" page action handler.

Definition

Function htmListPageActionHandlers(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\partner\users.asp

Routines Called

GenerateURL

htmRenderProfilesList

InitializePagingVariables

SelectedActionHandlerForList

Called By

Main (services\partner\users.asp)


htmOrderDetailsActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "Order details" action handler.

Definition

Function htmOrderDetailsActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal iProfileCount
)

Defined in File

services\include\order_handlers.asp

Routines Called

htmRenderOrderDetailsForIDs

RedirectOrderDetailsForIDs

Called By

Main (services\customer\view_order.asp)

Main (services\partner\view_order.asp)


htmOrderListActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function provides rendering for the "Order List" action handler.

Definition

Function htmOrderListActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\partner\orders.asp

Routines Called

htmRenderOrderList

InitializePagingVariables

Called By

Main (services\partner\orders.asp)


htmRenderAddress - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders an address.

Definition

Function htmRenderAddress(
  addr_dict
)

Defined in File

summary.asp

Routines Called

None.

Called By

htmRenderSummaryPage

Remarks

The source code also illustrates how to use an alternative address format, based on the site configuration default locale.


htmRenderAddressBook - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the address book.

Definition

Function htmRenderAddressBook(
  byVal iAddrType,
  byRef rsAddresses,
  byVal sCheckedAddrID
)

Defined in File

addrbook.asp

Routines Called

GenerateURL

htmRenderAddressRows

RenderCheckBox

RenderForm

RenderSubmitButton

RenderText

Called By

htmRenderAddressBookPage


htmRenderAddressBookPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the address book page.

Definition

Function htmRenderAddressBookPage(
  byVal iAddrType,
  rsAddresses,
  byVal sCheckedAddrID
)

Defined in File

addrbook.asp

Routines Called

GenerateURL

RenderLink

htmRenderAddressBook

RenderText

Called By

Main (addrbook.asp)


htmRenderAddressForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the address form page.

Definition

Function htmRenderAddressForm(
  byRef dictFldVals,
  byRef dictFldErrs,
  byVal iAddrType,
  byVal sAction,
  byVal sAddrID
)

Defined in File

newaddr.asp

Routines Called

GenerateURL

htmRenderFillOutForm

RenderText

Called By

Main (newaddr.asp)


htmRenderAddressRows - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the address rows on the address book page.

Definition

Function htmRenderAddressRows(
  byVal iAddrType,
  byVal rsAddresses,
  byVal sCheckedAddrID
)

Defined in File

addrbook.asp

Routines Called

GenerateURL

RenderLink

RenderRadioButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderText

Called By

htmRenderAddressBook


htmRenderBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function is called by the subroutine RenderBasketPage to construct the table (embedded within a form) that displays the current contents of the basket.

Definition

Function htmRenderBasket(
  mscsOrderGrp,
  oOrderFormDisplayOrder
)

Parameters

mscsOrderGrp
A reference to an OrderGroup object containing the basket contents to be displayed.
oOrderFormDisplayOrder
A reference to a SimpleList object that contains an alphabetically sorted list of keys corresponding to the OrderForm objects within the OrderGroup object. This allows the OrderForm objects to be processed in alphabetical order regardless of their relative positions with the OrderGroup object.

Return Value

A string containing the HTML representation of the contents of the basket, formatted as a table within a form.

Defined in File

basket.asp.

Routines Called

CreatePOIndexes

GenerateURL

htmRenderCurrency

RenderForm

RenderLink

RenderSubmitButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderText

RenderTextBox

Called By

RenderBasketPage


htmRenderBasketWarnings - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the basket warnings.

Definition

Function htmRenderBasketWarnings(
  mscsOrderGrp,
  oOrderFormDisplayOrder,
  sErrCollectionName
)

Defined in File

basket.asp

Routines Called

RenderText

Called By

RenderBasketPage


htmRenderBlankEditPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a blank edit page for any profile.

Definition

Function htmRenderBlankEditPage(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_blank.asp

Routines Called

formRenderBlankEditPageBody

GenerateURL

RenderForm

RenderTable

RenderText

rowRenderHeader

rowRenderStatusInfo

sGetPageHeading

Called By

htmAddActionHandler

htmCloseActionHandler

htmInsertProfile


htmRenderBlankSpaces - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders HTML blank spaces (&nbsp).

Definition

Function htmRenderBlankSpaces(
  byVal nSpaces
)

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

cellRenderReadOnlyProperty

rowRenderAdvancedSearchOptionsForOrders

rowRenderEditSheetBlankLine

rowRenderLineItemHeader

rowRenderListHeading

rowRenderListHeadingForOrders

rowRenderMessageBoxPageContents

rowRenderPropertyGroup

rowRenderPropertyTip

rowRenderSearchOptionForDate

rowRenderStatusInfo

sRenderHTMLPreFixForProperty

tableChangePasswordTasks

tableRenderEditPageTasks

tableRenderFooterInfo

tableRenderListPageTasks

tblRenderOrderDetailsContents


htmRenderBoolean - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a check box corresponding to a Boolean property.

Definition

Function htmRenderBoolean(
  byVal sPropertyName,
  byVal varPropertyValue
)

Defined in File

services\include\render_common.asp

Routines Called

RenderCheckBox

Called By

colRenderProperty


htmRenderBuiltInProperties - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs an HTML representation of the built-in product price property, formatted with a string retrieved from the global MessageManager object.

Definition

Function htmRenderBuiltInProperties(
  byVal rsProperties,
  byVal sPropertyName,
  byVal style
)

Parameters

rsProperties
A Recordset object containing the values of the properties of a product.
sPropertyName
A string containing the name of a built-in currency property, typically the product price. In the single instance where this function is called (in the file product.asp), the constant PRODUCT_PRICE_PROPERTY_NAME is passed as the value of this parameter.
style
A string containing a list of attributes to be associated with the text rendered within a FONT element. In the single instance where this function is called (in the file product.asp), the value of MSCSSiteStyle.Body is passed as the value of this parameter.

Return Value

A string containing the HTML representation of a built-in currency property value, presented in the format "S: X", where "S" is the language-specific string associated with "L_Product_Price_DisplayName_HTMLText" in the current language, and "X" is the HTML produced by the htmRenderCurrency function.

Defined in File

product.asp.

Routines Called

htmRenderCurrency

RenderText

Called By

Main (product.asp)

Remarks

The fact that this function renders the specified property value as a currency value and formatted with a display string designed for product prices means that it actually has a much narrower purpose than implied by its name and the presence of the sPropertyName parameter.


htmRenderCatalogList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates a string that contains a series of links to different catalogs, separated by carriage returns.

Definition

Function htmRenderCatalogList(
  byVal rsCatalogs,
  byVal style
)

Parameters

rsCatalogs
A Recordset object that contains a number of catalog records. There must be a Fields entry corresponding to the constant "CATALOG_NAME_PROPERTY_NAME".
style
A set of attributes corresponding to the FONT element, used when creating the HTML representation of the catalog name.

Return Value

A string containing the HTML representation of a series of links to different catalogs, where the link text is the name of the catalog, and where each link is separated by a carriage return.

Defined in File

include\catalog.asp

Routines Called

RenderCatalogLink

Called By

htmRenderCatalogSection

htmRenderDefaultPage


htmRenderCatalogSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates the HTML representation of the catalog section of the menu, including an appropriate header, and an indication of no catalogs being available, a list of categories in a single catalog, or a list of multiple catalogs.

Definition

Function htmRenderCatalogSection(
  byVal style,
  byVal rsCatalogs,
  byVal iCatalogCount,
  byVal oCatalog,
  byVal sCatalogName,
  byVal rsCategories
)

Parameters

style
A set of attributes corresponding to the FONT element, used when creating the HTML representation of the catalog name.
rsCatalogs
A reference to a copy of a Recordset object that contains a number of catalog records. There must be a Fields entry corresponding to the constant "CATALOG_NAME_PROPERTY_NAME".
iCatalogCount
An integer that indicates the number of catalogs in the rsCatalogs parameter.
oCatalog
A reference to a copy of a ProductCatalog object.
sCatalogName
A string containing the name of a category.
rsCategories
A reference to a copy of a Recordset object that contains a number of category records/

Return Value

A string containing the HTML representation of the catalog section of the menu area. This string contains one of the following:

  • When no catalogs are found, a catalog header and a string indicating that no catalogs were found.
  • When more than one catalog is found, a catalog header and a list of links to the multiple catalogs.
  • When one catalog is found, a list of links to the categories in the single catalog.

Defined in File

template\menu.asp

Routines Called

htmRenderCatalogList

htmRenderCategoriesList

RenderText

Called By

htmRenderMenu

Remarks

This function depends on a preceding call to the PrepareCatalogSection function to establish its parameters.


htmRenderCategoriesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates the HTML representation of a list of links to the categories within the passed Recordset object.

Definition

Function htmRenderCategoriesList(
  byVal oCatalog,
  byVal rsCategories,
  byVal style
)

Parameters

oCatalog
A reference to a copy of a ProductCatalog object. Not used in this function.
rsCategories
A reference to a copy of a Recordset object that contains a number of category records. There must be Fields entries corresponding to the constants "CATALOG_NAME_PROPERTY_NAME" and "CATEGORY_NAME_PROPERTY_NAME".
style
A set of attributes corresponding to the FONT element, used when creating the HTML representation of the category name.

Return Value

A string containing the HTML representation of a list of links to the categories in the passed Recordset object, separated by carriage returns.

Defined in File

include\catalog.asp

Routines Called

RenderCategoryLink

Called By

htmRenderCatalogSection

htmRenderCategoryPage


htmRenderCategoryPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a category page, which lists subcategories and products within a category.

Definition

Function htmRenderCategoryPage(
  byVal oCatalog,
  byVal sCatalogName,
  byVal sCategoryName,
  byVal oCategory,
  byVal rsProducts,
  byVal nPageNumber,
  byVal nOutPagesTotal
)

Parameters

oCatalog
A reference to a copy of a ProductCatalog object.
sCatalogName
A string containing the name of a catalog.
sCategoryName
A string containing the name of a category.
oCategory
A reference to a copy of a Category object.
rsProducts
A reference to a copy of a Recordset object that contains a number of product records corresponding to the current catalog and category. This parameter is passed through to the function htmRenderProductsTable.
nPageNumber
A number indicating the page to be displayed.
nOutPagesTotal
A number indicating the total number of pages available for display.

Return Value

A string containing the HTML representation of a category page, which consists of the following sections:

  • If there are more than one pages that can be displayed, a line of numbered links to different pages within the category.
  • If displaying the first page of category information, a list of links to sub-categories.
  • A list of associated products, as created by the function htmRenderProductsTable.

If there are no sub-categories or products, a string indicating that is displayed in place of the second two sections.

Defined in File

include\catalog.asp

Routines Called

FormatOutput

htmRenderCategoriesList

htmRenderProductsTable

mscsGetSubCategoriesList

RenderCategoryURL

RenderLink

RenderText

Called By

htmCategoryHTML

htmRenderDefaultPage


htmRenderChangePasswordPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the change password page.

Definition

Function htmRenderChangePasswordPage(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_password.asp

Routines Called

formRenderChangePasswordPageContents

GenerateURL

iGetCountOfProfiles

RenderForm

RenderTable

RenderText

rowRenderHeader

rowRenderStatusInfo

rsGetProfileDetails

sGetPageHeading

Called By

ChangeActionHandler

UpdatePasswordActionHandler


htmRenderCheckoutButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the checkout button.

Definition

Function htmRenderCheckoutButton()

Defined in File

basket.asp

Routines Called

GenerateURL

RenderForm

RenderSubmitButton

Called By

RenderBasketPage


htmRenderConfirmationPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function, called by Main, renders the confirmation page.

Definition

Function htmRenderConfirmationPage(
  sOrderID,
  mscsOrderGrp,
  sOrderNumber
)

Defined in File

confirm.asp

Routines Called

FormatOutput

GenerateURL

RenderLink

RenderText

Called By

Main (confirm.asp)


htmRenderCountries - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders all the country/region names in an HTML combo box.

Definition

Function htmRenderCountries(
  byVal oProperty,
  byVal sPropertyValue,
  byVal arrCountryNames
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

colRenderCountryNames


htmRenderCreditCardPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the credit card page.

Definition

Function htmRenderCreditCardPage(
  byVal iOrderGroupID,
  byVal bSuccess,
  byVal listMethods,
  byVal listFrmErrs,
  byVal dictFldVals,
  byVal dictFldErrs,
  byVal sVerifyWithTotal,
  byVal urlAction,
  byVal iErrorLevel
)

Defined in File

crdtcard.asp

Routines Called

GenerateURL

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

RenderText

Called By

Main (crdtcard.asp)


htmRenderCurrency - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a monetary value, using the base currency setting. It will also render the monetary value and the alternate currency for the site (for example, the Euro) depending on the settings of the site.

Definition

Function htmRenderCurrency(
  byVal cyCurrency
)

Parameters

cyCurrency
The currency value to be represented in HTML.

Return Value

A string containing the HTML representation of the passed currency value. Depending on the App Default Config settings for the i_AltCurrencyOptions and i_CurrencyDisplayOrderOptions parameters, the currency is displayed as the base currency only, as the base currency followed by the alternate currency, or as the alternate currency followed by the alternate currency.

Defined in File

include\std_util_lib.asp

Routines Called

RenderText

Called By

arrPopulateOrderHeaderDetails

GetPriceAndCurrency

htmRenderBasket

htmRenderBuiltInProperties

htmRenderGrandTotals

htmRenderOrderForm

htmRenderShippingOptionsEx

htmRenderVariantsList

tblRenderOrderDetailsContents


htmRenderCustomerServiceSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the HTML representation of the Customer Service section of the menu area.

Definition

Function htmRenderCustomerServiceSection(
  byVal style
)

Parameters

style
A set of attributes corresponding to the FONT element, used when creating the HTML representation of the link text for both user and order management.

Return Value

A string containing the HTML representation of the Customer Service entries in the menu area. These entries include a string indentifying the Customer Service section, and two links: one to the edit the user's profile, and one to list the user's orders.

Defined in File

template\menu.asp

Routines Called

GenerateURL

RenderLink

RenderText

Called By

htmRenderMenu


htmRenderDefaultPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the HTML for the home page.

Definition

Function htmRenderDefaultPage(
  byVal CatalogSetID,
  byVal rsCatalogs,
  byVal iCatalogCount,
  byVal sCatalogName,
  byVal oCatalog,
  byVal oCategory,
  byVal rsProducts,
  byVal nPageNumber
)

Defined in File

default.asp

Routines Called

CacheFragment

htmRenderCatalogList

htmRenderCategoryPage

RenderText

Called By

Main (default.asp)


htmRenderDiscountMessageGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the discount messages on the basket.asp page.

Definition

Function htmRenderDiscountMessageGroup(
  mscsOrderGrp,
  sCiidCollection,
  sMessageGroupDescription
)

Defined in File

basket.asp

Routines Called

Bold

GetDictionary

GetDiscountDescription

RenderPreFormattedText

Called By

htmRenderDiscountMessages


htmRenderDiscountMessages - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the discount messages and the discounts applied to the basket by calling the htmRenderDiscountMessageGroup and htmRenderDiscountsApplied functions.

Definition

Function htmRenderDiscountMessages(
  mscsOrderGrp
)

Defined in File

basket.asp

Routines Called

htmRenderDiscountMessageGroup

htmRenderDiscountsApplied

Called By

RenderBasketPage


htmRenderDiscountsApplied - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the discounts applied to the basket.

Definition

htmRenderDiscountsApplied(
  mscsOrderGrp
)

Defined in File

basket.asp

Routines Called

Bold

GetDictionary

GetDiscountDescription

GetSimpleList

RenderPreFormattedText

Called By

htmRenderDiscountMessages


htmRenderDiscountsDescriptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the discount descriptions on the summary.asp page.

Definition

Function htmRenderDiscountsDescriptions(
  mscsOrderGrp
)

Defined in File

summary.asp

Routines Called

Bold

GetDictionary

GetDiscountDescription

RenderPreFormattedText

Called By

htmRenderSummaryPage


htmRenderEditPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the contents of any EDIT-type page.

Definition

Function htmRenderEditPage(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_common.asp

Routines Called

formRenderEditPageBody

GenerateURL

iGetCountOfProfiles

RenderForm

RenderTable

RenderText

rowRenderHeader

rowRenderStatusInfo

rsGetProfileDetails

sGetPageHeading

Called By

htmCloseActionHandler

htmCopyActionHandler

htmEditAction

htmEditAllProfiles

htmInsertProfile

htmSaveAllActionHandler

htmSaveChangesConfirmationHandler

htmSaveProfiles

htmSelectedActionHandlerForEdit


htmRenderEmptyRecordSet - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the HTML table for an empty recordset.

Definition

Function htmRenderEmptyRecordSet(
  byRef sMsg
)

Defined in File

services\include\render_common.asp

Routines Called

RenderTable

TRTag

Called By

htmRenderOrderList

htmRenderProfilesList

tableRenderMultipleRecords

tableRenderOrdersListContents


htmRenderFillOutForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that renders the form specified by the sFormName parameter in the forms Dictionary object stored in the intrinsic Application object, which is under the name "MSCSForms".

Definition

Function htmRenderFillOutForm(
  byVal urlAction,
  byVal sFormName,
  dictFieldVals,
  dictMessages
)

Parameters

urlAction
A string containing the URL to which the form will be posted when it is submitted.
sFormName
A string containing the name of the form specification Dictionary object within the forms Dictionary object stored in the intrinsic Application object, which is under the name "MSCSForms".
dictFieldVals
A Dictionary object of the posted form values, if any. The dictionary keys are the field names, and the corresponding values are the posted form values. If this parameter is set to Nothing, a blank form is rendered. If values are provided, the form is rendered with one or more values filled in.
dictMessages
A Dictionary object containing error messages for each of the posted form values, if any. The dictionary keys are the field names, and the corresponding values are the error message strings. If a field name is found to be a key in this Dictionary object, the corresponding error message is rendered below the field that produced the error.

Return Value

A string containing the HTML that results in the rendering of the specified form.

Defined in File

include\form_lib.asp

Routines Called

CacheFragment

FormatOutput

GetRepeatStyle

LookupCachedFragment

RenderCheckBox

RenderForm

RenderHiddenField

RenderListBoxFromSimpleList

RenderPasswordBox

RenderResetButton

RenderSubmitButton

RenderTable

RenderTableDataRow

RenderText

RenderTextBox

Called By

htmRenderAddressForm

htmRenderCreditCardPage

htmRenderLoginPage

htmRenderNewUserPage

htmRenderPaymentOptionsPage

Main (addrform.asp)

Remarks

If the form is blank, this function attempts to retrieve it from the cache StaticSectionsCache using the value of the sFormName parameter as the cache key.

If this function has constructed the HTML for a blank form, the HTML string containing the form is stored in the cache StaticSectionsCache using the value of the sFormName parameter as the cache key.

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


htmRenderFullTextSearchResults - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the results of a full text search.

Definition

Function htmRenderFullTextSearchResults(
  byRef sPhrase,
  byRef rsResultSet,
  sCacheKey,
  iRecordCount
)

Parameters

sPhrase
A string containing the free text string for which to search.
rsResultSet
A reference to a Recordset object containing the search results, passed through to the function RenderSearchResults.
sCacheKey
A string containing a key under which the constructed HTML will be cached in the FTSearchPageCache cache.
iRecordCount
An integer that specifies the number of search results found.

Return Value

A string containing the HTML representation of the search results title and search results content.

Defined in File

search.asp

Routines Called

CacheFragment

RenderSearchResults

RenderText

Called By

Main (search.asp)


htmRenderGrandTotals - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the grand total of the order.

Definition

Function htmRenderGrandTotals(
  mscsOrderGrp
)

Defined in File

summary.asp

Routines Called

htmRenderCurrency

RenderTableDataRow

Called By

htmRenderSummaryPage


htmRenderLoginPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the login page.

Definition

Function htmRenderLoginPage(
  bSuccess,
  bMustTransferBasket,
  bDisplayGuestOption,
  bDisplayNewUserRegistrationOption,
  sUserID,
  iErrorLevel,
  rsLoginUser,
  mscsGuestUser,
  dictFldVals,
  dictFldErrs,
  listFlds,
  listFrmErrs,
  urlAction
)

Defined in File

login\login.asp

Routines Called

GenerateURL

htmRenderFillOutForm

RenderLink

RenderText

Called By

Main (login\login.asp)


htmRenderLoginSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the login section of the menu.asp page.

Definition

Function htmRenderLoginSection(
  byVal sAuthUser,
  byVal bFormLoginSupported,
  byVal mscsUser,
  byVal sLoginName
)

Parameters

sAuthUser
A string containing the login name of the authorized user, passed through to the function RenderText.
bFormLoginSupported
A Boolean value indicating whether login is supported.
mscsUser
A reference to a User object.
sLoginName
A string containing the login name of the user, passed through to the function RenderText.

Return Value

A string containing the HTML representation of the login section of the menu.asp page.

Defined in File

template\menu.asp

Routines Called

CacheFragment

GenerateURL

LookupCachedFragment

RenderLink

RenderText

Called By

htmRenderMenu


htmRenderLogoffPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the logoff page.

Definition

Function htmRenderLogoffPage(
  byVal bReEnterWithFormLogin,
  byVal bReEnterAsGuestOption
)

Defined in File

login\logoff.asp

Routines Called

RenderLink

RenderText

Called By

Main (login\logoff.asp)


htmRenderMenu - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the HTML for a menu, and contains calls to business logic functions as necessary.

Definition

Function htmRenderMenu(
  byVal mscsUser,
  byVal CatalogSetID
)

Parameters

mscsUser
A reference to a User object, passed through to the functions PrepareLoginSection and htmRenderLoginSection.
CatalogSetID
The ID of the catalog set, passed through to the functions CacheFragment and LookupCachedFragment.

Return Value

A string containing the HTML representation of the menu.

Defined in File

template\menu.asp

Routines Called

CacheFragment

GetQualifiedName

GetRequestString

htmRenderCatalogSection

htmRenderCustomerServiceSection

htmRenderLoginSection

htmRenderPartnerServiceSection

htmRenderSearchSection

LookupCachedFragment

PrepareCatalogSection

PrepareLoginSection

RenderTable

Called By

This routine is called by code outside of any routine (sub or function) in the file template\menu.asp.


htmRenderMessageBoxForCancel - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page for a cancel action.

Definition

Function htmRenderMessageBoxForCancel(
  byVal sAction,
  byVal sProfileIDs
)

Defined in File

services\include\render_messagebox.asp

Routines Called

GenerateURL

GetRequestString

tableRenderMessageBoxPage

Called By

htmCloseActionHandler


htmRenderMessageBoxForDelete - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page while deleting entity records.

Definition

Function htmRenderMessageBoxForDelete

Defined in File

services\include\render_messagebox.asp

Routines Called

GenerateURL

tableRenderMessageBoxPage

Called By

htmDeleteActionHandler


htmRenderMessageBoxForDeleteAll - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page for a "DeleteAll" action.

Definition

Function htmRenderMessageBoxForDeleteAll

Parameters

None.

Defined in File

services\include\render_messagebox.asp

Routines Called

GenerateURL

tableRenderMessageBoxPage

Called By

htmDeleteActionHandler


htmRenderMessageBoxForSave - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page with save options.

Definition

Function htmRenderMessageBoxForSave(
  byVal sAction,
  byVal sProfileIDs
)

Defined in File

services\include\render_messagebox.asp

Routines Called

GenerateURL

GetRequestString

tableRenderMessageBoxPage

Called By

None.


htmRenderMessageBoxForSelect - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page for a "Select" action.

Definition

Function htmRenderMessageBoxForSelect(
  byVal sAction,
  byVal sSelectFieldName,
  byVal sProfileIDs
)

Defined in File

services\include\render_messagebox.asp

Routines Called

GenerateURL

GetRequestString

tableRenderMessageBoxPage

Called By

htmRenderMessageBoxPage


htmRenderMessageBoxPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page.

Definition

Function htmRenderMessageBoxPage(
  byVal sAction,
  byVal sSubAction,
  byVal sActionPage,
  byVal sProfileIDs
)

Defined in File

services\include\render_messagebox.asp

Routines Called

bProfileHasChanged

htmRenderMessageBoxForSelect

iGetCountOfProfiles

sGetSelectActionPropertyName

Called By

htmSaveChangesConfirmationHandler


htmRenderNewUserPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the new user page.

Definition

Function htmRenderNewUserPage(
  urlAction,
  dictFldVals,
  dictFldErrs,
  sLanguage
)

Defined in File

login\newuser.asp

Routines Called

htmRenderFillOutForm

RenderText

Called By

Main (login\newuser.asp)


htmRenderOrderDateTypes - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the order date type for both user and organization orders.

Definition

Function htmRenderOrderDateTypes(
  byVal sFieldValue
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

rowRenderSearchOptionForInteger


htmRenderOrderDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the order details.

Definition

Function htmRenderOrderDetails(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal rsOrder
)

Defined in File

services\include\render_orders.asp

Routines Called

formRenderOrderContents

GenerateURL

RenderForm

RenderTable

RenderText

rowRenderHeader

sGetPageHeading

Called By

htmRenderOrderDetailsForIDs


htmRenderOrderDetailsForIDs - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function redirects the user back to the order list page, because multiple orders cannot be viewed at once.

Definition

Function htmRenderOrderDetailsForIDs(
  sAction,
  sSubAction,
  sProfileIDs
)

Defined in File

services\include\order_handlers.asp

Routines Called

htmRenderOrderDetails

rsGetOrderDetails

Called By

htmOrderDetailsActionHandler


htmRenderOrderForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the order form.

Definition

Function htmRenderOrderForm(
  mscsOrderForm
)

Defined in File

summary.asp

Routines Called

GenerateURL

GetArrayFromList

htmRenderCurrency

RenderLink

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderText

RenderUnorderedList

Called By

htmRenderSummaryPage


htmRenderOrderList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the order list.

Definition

Function htmRenderOrderList(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages
)

Defined in File

services\include\render_orders.asp

Routines Called

formRenderOrderSearchOptions

formRenderOrdersListContents

GenerateURL

htmRenderEmptyRecordSet

PrepareOrderList

RenderForm

RenderTable

RenderText

rowRenderHeader

rowRenderStatusInfo

sGetPageHeading

tableRenderFooterInfo

Called By

htmOrderListActionHandler

Main (services\customer\orders.asp)


htmRenderOrderStatusOptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the order status options.

Definition

Function htmRenderOrderStatusOptions(
  byVal sFieldValue
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

rowRenderSearchOptionForInteger


htmRenderPartnerDeskRoles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the user i_PartnerDeskRoleFlags options.

Definition

Function htmRenderPartnerDeskRoles(
  byVal sFieldValue,
  byVal bIsRequired
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

colRenderProperty

rowRenderSearchOptionForInteger


htmRenderPartnerServiceSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the Partner Service section.

Definition

Function htmRenderPartnerServiceSection(
  byVal style
)

Parameters

style
A set of attributes corresponding to the FONT element, passed through to the fuction RenderText.

Return Value

A string containing the HTML representation of the Partner Services section of the menu.asp page.

Defined in File

template\menu.asp

Routines Called

GenerateURL

RenderLink

RenderText

Called By

htmRenderMenu


htmRenderPaymentOptionsForUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the payment options for the user.

Definition

Function htmRenderPaymentOptionsForUser(
  listMethods,
  byVal sVerifyWithTotal
)

Defined in File

include\payment.asp

Routines Called

FormatOutput

GenerateURL

GetPaymentMethodDisplayName

GetSimpleList

RenderForm

RenderHiddenField

RenderListBoxFromSimpleList

RenderSubmitButton

RenderText

Called By

htmRenderCreditCardPage

htmRenderPaymentOptionsPage


htmRenderPaymentOptionsPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the payment options page.

Definition

Function htmRenderPaymentOptionsPage(
  iPaymentMethodsCount,
  urlAction,
  dictFldVals,
  dictFldErrs
)

Defined in File

po.asp

Routines Called

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

RenderText

Called By

Main (po.asp)


htmRenderPickshipForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the page for selecting the shipment method.

Definition

Function htmRenderPickshipForm(
  byVal mscsOrderGrp,
  byVal objContext,
  byVal dictAggregate,
  bNoMethodsAvailable
)

Defined in File

pickship.asp

Routines Called

GenerateURL

htmRenderShippingOptionsEx

RenderForm

RenderLink

RenderSubmitButton

RenderText

Called By

Main (pickship.asp)


htmRenderPredictions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders predictions.

Definition

Function htmRenderPredictions(
  mscsOrderGrp,
  oOrderFormDisplayOrder
)

Parameters

mscsOrderGrp
A reference to an OrderGroup object containing the basket contents.
oOrderFormDisplayOrder
A reference to a SimpleList object that contains an alphabetically sorted list of keys corresponding to the OrderForm objects within the OrderGroup object. This allows the OrderForm objects to be processed in alphabetical order regardless of their relative positions with the OrderGroup object.

Return Value

A string containing the HTML representation of the predictions.

Defined in File

basket.asp

Routines Called

GetDictionary

GetSimpleList

PredictedPropToHREF

Called By

RenderBasketPage


htmRenderProductsTable - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a Recordset object containing products in a table format. The table has the following four columns: identifying property (for example SKU), name, description, and price. If the identifying property and name are the same, only three columns are shown.

Definition

Function htmRenderProductsTable(
  byVal oCatalog,
  byVal rsProducts,
  byVal sCategoryName
)

Parameters

oCatalog
A reference to a ProductCatalog object.
rsProducts
A reference to a Recordset object containing products to be represented in HTML, passed through to the function rsPriceAndCurrency.
sCategoryName
A string containing the name of a category, passed through to RenderProductLink.

Return Value

A string containing the HTML representation of the products in a table format.

Defined in File

include\catalog.asp

Routines Called

GetPriceAndCurrency

RenderProductLink

RenderTable

RenderTableDataRow

RenderTableHeaderRow

Called By

htmRenderCategoryPage


htmRenderProfilesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the contents for any LIST-type page.

Definition

Function htmRenderProfilesList(
  byRef sAction,
  byVal sSubAction,
  byRef iPageNumber,
  byRef iTotalPages
)

Defined in File

services\include\render_list.asp

Routines Called

formRenderListPageContents

formRenderProfileSearchOptions

GenerateURL

GetSearchDictionaryForThisPage

htmRenderEmptyRecordSet

RenderForm

RenderTable

RenderText

rowRenderHeader

rowRenderStatusInfo

rsGetProfilesList

sGetPageHeading

tableRenderFooterInfo

Called By

htmListPageActionHandlers


htmRenderSearchDeptPageContent - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the content from the array generated by the arrSearchDept function.

Definition

Function htmRenderSearchDeptPageContent(
  arrData,
  sItemSeparator
)

Parameters

arrData
An array that contains the items.
sItemSeparator
A separator string that separates the catalog name from the category name in every element of the arrData parameter.

Return Value

A string containing the HTML representation of the content in the array generated by the arrSearchDept function.

Defined in File

srchdept.asp

Routines Called

GenerateURL

RenderLink

RenderText

Called By

Main (srchdept.asp)


htmRenderSearchSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the search section on the navigation pane.

Definition

Function htmRenderSearchSection(
  byVal dictSectionTitleStyle,
  byVal dictSectionBodyStyle,
  sSearchValue
)

Parameters

dictSectionTitleStyle
A dictionary variable that defines the font style of the title for the search section, passed through to the function RenderText
dictSectionBodyStyle
A dictionary variable that defines the font style of the body text in the search section.
sSearchValue
A string containing the search value, passed through to the function RenderTextBox.

Return Value

A string containing the HTML representation search section on the navigation pane.

Defined in File

template\menu.asp

Routines Called

GenerateURL

RenderForm

RenderLink

RenderSubmitButton

RenderText

RenderTextBox

Called By

htmRenderMenu


htmRenderSelectEndTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the HTML end select tag, </SELECT>.

Definition

Function htmRenderSelectEndTag

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

htmRenderCountries

htmRenderOrderDateTypes

htmRenderOrderStatusOptions

htmRenderPartnerDeskRoles

htmRenderSiteTerm

htmRenderUserStatusOptions


htmRenderSelectTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the select tag.

Definition

Function htmRenderSelectTag(
  byVal sSelectName
)

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

htmRenderCountries

htmRenderOrderDateTypes

htmRenderOrderStatusOptions

htmRenderPartnerDeskRoles

htmRenderSiteTerm

htmRenderUserStatusOptions


htmRenderShippingMethods - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the shipping methods.

Definition

Function htmRenderShippingMethods(
  mscsOrderGrp,
  rs
)

Defined in File

pickship.asp

Routines Called

GenerateURL

RenderForm

RenderLink

RenderRadioButton

RenderSubmitButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderText

Called By

Main (pickship.asp)


htmRenderShippingOptionsEx - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the shipping options, along with a preview of the cost for each shipping method.

Definition

Function htmRenderShippingOptionsEx(
  byVal mscsOrderGrp,
  byVal dictAggregate
)

Defined in File

pickship.asp

Routines Called

htmRenderCurrency

RenderRadioButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

sGetDefaultShippingMethod

Called By

htmRenderPickshipForm


htmRenderSiteTerm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a list box corresponding to a SiteTerm property.

Definition

Function htmRenderSiteTerm(
  byVal oProperty,
  byVal varPropertyValue
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

colRenderProperty


htmRenderStepSearchPageContent - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the results of a step search.

Definition

Function htmRenderStepSearchPageContent (
  sCategoryName,
  sCatalogName,
  byRef oCatalog,
  bViewResults,
  byRef rsFields,
  byRef rsResults,
  sSearchHandle,
  iMatchesFound,
  iConstraintFieldsCount,
  iNonConstraintFieldsCount,
  arr1,
  arr2,
  bNoValues,
  bClosestMatches
)

Parameters

sCategoryName
A string containing the category name, passed through to the functions RenderText and ShowRefinedSearch.
sCatalogName
A string containing the catalog name, passed through to the function ShowRefinedSearch.
oCatalog
A reference to a ProductCatalog object, passed through to the function ShowSearchMatches.
bViewResults
A Boolean indicating whether to view the search matches (True) or the refined search (False).
rsFields
A reference to a Recordset object containing the searchable fields, passed through to the function ShowRefinedSearch.
rsResults
A reference to a Recordset object containing the search results, passed through to the function ShowSearchMatches.
sSearchHandle
A string containing the search handle.
iMatchesFound
An integer that specifies the number of matches found, passed through to the functions ShowRefinedSearch and ShowSearchMatches.
iConstraintFieldsCount
An integer that specifies the number of constraint fields, passed through to the function ShowRefinedSearch.
iNonConstraintFieldsCount
An integer that specifies the number of non-constraint fields, passed through to the function ShowRefinedSearch.
arr1
An array of non-constraining searchable properties, passed through to the function ShowRefinedSearch.
arr2
An array of constraining searchable properties, passed through to the function ShowRefinedSearch.
bNoValues
A boolean indicating whether there are no values, passed through to the function ShowRefinedSearch.
bClosestMatches
A boolean indicating whether to search for closest matches.

Return Value

A string containing the HTML representation of the step search.

Defined in File

stepsrch.asp

Routines Called

RenderText

ShowRefinedSearch

ShowSearchMatches

Called By

Main (stepsrch.asp)


htmRenderSummaryPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the summary.asp page.

Definition

Function htmRenderSummaryPage(
  mscsOrderGrp,
  mscsAnyOrderform,
  dictAnyItem,
  listMethods,
  bBadVerify
)

Defined in File

summary.asp

Routines Called

htmRenderAddress

htmRenderDiscountsDescriptions

htmRenderGrandTotals

htmRenderOrderForm

htmRenderVerifyWithForm

RenderTable

RenderTableDataRow

RenderTableHeaderRow

RenderText

SortDictionaryKeys

Called By

Main (summary.asp)


htmRenderUniqueIDForProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds a globally unique profile identifier to the LIST page.

Definition

Function htmRenderUniqueIDForProfile(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal Count,
  byVal rsProfile
)

Defined in File

services\include\render_list.asp

Routines Called

RenderCheckBox

RenderHiddenField

RenderRadioButton

Called By

arrPopulateProfileDetails


htmRenderUserDefinedProductProperties - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the user-defined properties of the product. Certain properties are treated specially, such as IMAGE_FILENAME_PROPERTY_NAME.

Definition

Function htmRenderUserDefinedProductProperties(
  byVal rsProperties,
  byVal style
)

Parameters

rsProperties
A Recordset object containing the values of the properties of a product.
style
A set of attributes corresponding to the FONT element.

Return Value

A string containing the HTML representation of the user-defined properties of the product.

Defined in File

product.asp

Routines Called

FormatOutput

PeekField

RenderImage

RenderText

sGetPropertyDisplayName

Called By

Main (product.asp)


htmRenderUserStatusOptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the user status options.

Definition

Function htmRenderUserStatusOptions(
  byVal sFieldValue,
  byVal bIsRequired
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderSelectEndTag

htmRenderSelectTag

Called By

colRenderProperty

rowRenderSearchOptionForInteger


htmRenderVariantsList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders all variants of the given product with a radio button in front of the product so the user can select which product variant they want to purchase.

Definition

Function htmRenderVariantsList(
  byVal sIdentifyingVariantProperty,
  byVal rsVariants,
  byVal sSelectedVariantID
)

Parameters

sIdentifyingVariantProperty
A string containing the variant name, passed through to the function RenderRadioButton.
rsVariants
A reference to a Recordset object containing the variants for the given product, passed through to the function listGetVariantPropertiesToShow.
sSelectedVariantID
A string containing the variant ID.

Return Value

A string containing the HTML representation of all the variants of the given product.

Defined in File

product.asp

Routines Called

htmRenderCurrency

listGetVariantPropertiesToShow

RenderRadioButton

RenderTable

RenderTableDataRow

RenderTableHeaderRow

sGetPropertyDisplayName

Called By

Main (product.asp)


htmRenderVerifyWithForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a hidden field containing the "verify_with_total" value. To verify that an order has not been altered between the time it was last shown to the user and the time the user completes the purchase, the order total shown to the user is stored in a hidden field; during the purchase, this value is verified to determine whether it matches the order total recalculated after running the total pipeline. If there is a discrepancy, the user is redirected to the order summary with an error.

Definition

Function htmRenderVerifyWithForm(
  mscsOrderGrp,
  listMethods
)

Defined in File

summary.asp

Routines Called

GenerateURL

GetDefaultPaymentMethodForUser

GetPaymentPageFromPaymentMethod

IsEntityInList

RenderForm

RenderHiddenField

RenderSubmitButton

Called By

htmRenderSummaryPage


htmSaveActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks if the user is saving profiles returned by the search criteria in the corresponding list page, then calls an appropriate handler to handle the following cases: SELECTALL_ACTION; ADD_ACTION; COPY_ACTION; EDIT_ACTION.

Definition

Function htmSaveActionHandler(
  byRef sAction,
  byVal sSubAction,
  byRef sProfileIDs
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmInsertProfile

htmSaveAllActionHandler

htmSaveProfiles

PrepareInsertProfile

PrepareSaveAllAction

PrepareSaveProfiles

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)

Main (services\partner\account.asp)


htmSaveAllActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Save All" action output.

Definition

Function htmSaveAllActionHandler(
  byVal sAction,
  byRef sSubAction,
  byRef sProfileIDs,
  byVal StatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

Called By

htmSaveActionHandler


htmSaveChangesConfirmationHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Save Changes Confirmation" action.

Definition

Function htmSaveChangesConfirmationHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sActionPage,
  byRef sPreviousAction,
  byRef listProfileSchema,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues
)

Defined in File

services\include\messagebox_handlers.asp

Routines Called

bSaveProfileAndRedirect

htmRenderEditPage

htmRenderMessageBoxPage

Called By

htmChangePasswordActionHandler

htmSelectActionHandlerForEdit


htmSaveProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Save Profiles" action output.

Definition

Function htmSaveProfiles(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal bUpdated,
  byVal sSourcePage,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

Called By

htmSaveActionHandler


htmSelectActionHandlerForEdit - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Select" action.

Definition

Function htmSelectActionHandlerForEdit(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sActionPage,
  byVal sPreviousAction,
  byVal listProfileSchema,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmSaveChangesConfirmationHandler

Called By

Main (services\partner\account.asp)


htmSelectedActionHandlerForEdit - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Selected" action.

Definition

Function htmSelectedActionHandlerForEdit(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sStatusField,
  byVal iStatusID,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

htmRenderEditPage

Called By

Main (services\partner\account.asp)


I - O

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letters I through O.

Routine | File
iGetCountOfProfiles | services\include\lib.asp
iGetCurrentUserPropertyAccessClass | services\include\lib.asp
iGetWebServerPort | include\global_siteconfig_lib.asp
InitAltCurrencyDisp | include\global_internationalization_lib.asp
InitAuthManager | include\global_profile_lib.asp
InitCacheManager | include\global_cache_lib.asp
InitCatalogManager | include\global_catalog_lib.asp
InitCatalogSets | include\global_catalog_lib.asp
InitCSF | include\global_csf_lib.asp
InitDataFunctions | include\global_data_lib.asp
InitializeBasketPage | basket.asp
InitializeConfirmationPage | confirm.asp
InitializeCreditcardPage | crdtcard.asp
InitializePagingVariables | services\include\lib.asp
InitializePartnerDesk | services\include\initialize.asp
InitializePO | po.asp
InitializeSummaryPage | summary.asp
InitPageSets | include\global_siteconfig_lib.asp
InitPredictor | include\global_predictor_lib.asp
InitProfileService | include\global_profile_lib.asp
InitSitePipelines | include\global_siteconfig_lib.asp
InsertBlankSpace | include\html_lib.asp
InsertHiddenProperty | services\include\save_one_profile.asp
InsertLineBreaks | include\html_lib.asp
InsertParagraphBreaks | include\html_lib.asp
InvokeBizTalk | include\payment.asp
IsActiveDirectoryPresent | include\global_siteconfig_lib.asp
IsBitValueSet | include\std_util_lib.asp
IsEntityInArray | include\std_util_lib.asp
IsEntityInList | include\std_util_lib.asp
IsEntityInSet | include\std_util_lib.asp
IsFormLoginRequired | include\std_access_lib.asp
IsFormSubmitted | include\form_lib.asp
IsNumberInRange | include\std_util_lib.asp
IsPersistentCookieAllowed | include\std_access_lib.asp
IsZipCodeValid | include\addr_lib.asp
Italic | include\html_lib.asp
iValidateSubmittedAddress | addrform.asp
iValidateSubmittedAddressForAddressBook | newaddr.asp
iValidateSubmittedRegistrationData | login\newuser.asp
JoinWebFarm | include\global_siteconfig_lib.asp
listCloneProfileSchema | services\include\lib.asp
listGetProfileSchema | include\global_profile_lib.asp
listGetShownProductsInfo | template\discount.asp
listGetValidPropertiesForMultiEdit | services\include\lib.asp
listGetVariantPropertiesToShow | product.asp
listReConstructPropertiesSchema | services\include\lib.asp
LoadBasket | include\std_ordergrp_lib.asp
LookupCachedFragment | include\std_cache_lib.asp
LookupCachedObject | include\std_cache_lib.asp
LookupRegion | include\addr_lib.asp
Main | _additem.asp
Main | _delall.asp
Main | _delitem.asp
Main | _editqty.asp
Main | _recvpo.asp
Main | _setadrs.asp
Main | _setship.asp
Main | addrbook.asp
Main | addrform.asp
Main | basket.asp
Main | category.asp
Main | confirm.asp
Main | crdtcard.asp
Main | default.asp
Main | dispatch.asp
Main | newaddr.asp
Main | opt-out.asp
Main | pickship.asp
Main | po.asp
Main | product.asp
Main | redir.asp
Main | search.asp
Main | srchdept.asp
Main | stepsrch.asp
Main | summary.asp
Main | welcome.asp
Main | error\baditem.asp
Main | error\badurl.asp
Main | error\closed.asp
Main | error\construc.asp
Main | error\noauth.asp
Main | error\profile.asp
Main | include\global_main_lib.asp
Main | login\_guest.asp
Main | login\login.asp
Main | login\logoff.asp
Main | login\newuser.asp
Main | services\change_password.asp
Main | services\customer\account.asp
Main | services\customer\orders.asp
Main | services\customer\view_order.asp
Main | services\error\badaction.asp
Main | services\error\noaccess.asp
Main | services\error\noorder.asp
Main | services\error\noorgprofile.asp
Main | services\error\noprofile.asp
Main | services\partner\account.asp
Main | services\partner\edit_user.asp
Main | services\partner\orders.asp
Main | services\partner\users.asp
Main | services\partner\view_order.asp
MoveBasketItems | login\login.asp
mscsGetCategoryObject | include\catalog.asp
mscsGetOrderGroupWithDiscountsByID | services\include\logic_orders.asp
mscsGetProductList | include\catalog.asp
mscsGetSubCategoriesList | include\catalog.asp
mscsNewRegisteredUserProfile | login\newuser.asp
mscsTransferGuestUserProfile | login\newuser.asp
mscsUserCatalogs | include\catalog.asp
mscsUserCatalogsetID | include\catalog.asp
mscsUserCatalogsFromID | include\catalog.asp
oCachedDiscountProductInfo | template\discount.asp
oGetBizDataObject | include\global_data_lib.asp
oGetGenIDObject | include\global_data_lib.asp
oGetOpenConnectionObject | include\global_profile_lib.asp
oGetProfile | include\global_profile_lib.asp
oGetSiteTermOptions | include\global_siteterms_lib.asp
OptOut | opt-out.asp
OrderListActionHandler | services\customer\orders.asp


iGetCountOfProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns –1 if the sSubAction parameter is equal to the constant SELECTALL_ACTION. Otherwise, it returns the number of profiles in the string specified by the sProfileIDs parameter.

Definition

Function iGetCountOfProfiles(
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

bSaveProfileAndRedirect

bSaveProfileDetails

bSaveReadWriteProperty

CheckIfOrderExists

CheckIfProfilesExist

colRenderForeignKeyProperty

colRenderPrimaryKeyProperty

colRenderUniqueKeyProperty

DeleteSelectedProfiles

htmRenderChangePasswordPage

htmRenderEditPage

htmRenderMessageBoxPage

PrepareCloseAction

PrepareCopyAction

PrepareDeleteAction

PrepareEditAction

PrepareOrderDetailsAction

PrepareSaveProfiles

rowRenderHiddenProperty

rowRenderReadOnlyProperty

SaveReadOnlyProperty

SaveUserAccountControlProperty

SaveUserPartnerDeskRoleProperty

SelectedActionHandlerForList

sRenderHTMLPreFixForProperty

tableChangePasswordTasks

tableRenderEditPageTasks

tableRenderProfiles

UpdateSelectActionPropertyName

UpdateUserPasswordProperty

varUpdateValueForCurrentAction


iGetCurrentUserPropertyAccessClass - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function is used in Partner Services to determine whether the current user is a guest, a registered user, or a delegated administrator.

Definition

Function iGetCurrentUserPropertyAccessClass()

Defined in File

services\include\lib.asp

Routines Called

EnsureUserProfile

Called By

bInsertProperty

bIsPropertyValueAdded

bProfileHasChanged

bSaveProfileDetails

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

SaveAllSelectedProfiles

tableRenderBlankProfile

tableRenderProfiles

ValidateFields


iGetWebServerPort - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the Web server port number being used for the site. For Web farms, it is assumed that the sites on all servers are using the same port number.

Definition

Function iGetWebServerPort()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

GetSiteConfigObject

Called By

GetMachineBaseURL


InitAltCurrencyDisp - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a EuroDisplay object. This enables the display of the Euro as an alternate currency.

Definition

InitAltCurrencyDisp()

Defined in File

include\global_internationalization_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


InitAuthManager - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates an AuthManager object and returns a reference to it.

Definition

Function InitAuthManager()

Defined in File

include\global_profile_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


InitCacheManager - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a CacheManager object. For more information about the individual caches created, see Remarks.

Definition

Function InitCacheManager(
  oEvaluator
)

Defined in File

include\global_cache_lib.asp

Routines Called

GetDictionary

GetMachineBaseURL

Called By

Main (include\global_main_lib.asp)

Remarks

Individual caches are created with the following names:

advertising, DefaultPageCache, DiscountProductInfo, discounts, FTSearchPageCache, ProductListCache, ProductPageCache, QueryCatalogInfoCache, SampleRegionalTaxCache, SearchDeptPageCache, ShippingManagerCache, StaticSectionsCache, StepSearchPageCache

For more information about caching in the Solution Sites, see Caching Solution Sites.


InitCatalogManager - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a CatalogManager object.

Definition

Function InitCatalogManager()

Defined in File

include\global_catalog_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


InitCatalogSets - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and initializes a CatalogSets object. Then it creates, initializes, and returns a reference to a Dictionary object of Dictionary objects, where each subordinate dictionary represents a CatalogSets object, and each entry in the subordinate dictionaries represents a catalog in the corresponding CatalogSets object.

Definition

Function InitCatalogSets()

Defined in File

include\global_catalog_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


InitCSF - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub creates and initializes the global context Dictionary objects and the event recording pipeline for the Content Selection Framework (CSF).

Definition

Sub InitCSF(
  oPipelineMap,
  oCacheManager,
  oExpressionEvaluator
)

Defined in File

include\global_csf_lib.asp

Routines Called

GetBaseURL

Called By

Main (include\global_main_lib.asp)

Remarks

The following three entries are assigned to the intrinsic Application object:

CSFAdvertisingContext

CSFDiscountContext

CampaignsCSFEventPipe


InitDataFunctions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates a DataFunctions object and returns a reference to it, setting the default locale before returning.

Definition

Function InitDataFunctions()

Defined in File

include\global_data_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


InitializeBasketPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters in preparation for displaying the basket.asp page.

Definition

Sub InitializeBasketPage(
  byRef objOrderGroup,
  byRef bBasketIsEmpty,
  byRef bMustSaveBasket,
  byRef oOrderFormDisplayOrder
)

Defined in File

basket.asp

Routines Called

LoadBasket

Called By

Main (basket.asp)


InitializeConfirmationPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters in preparation for displaying the order confirmation page.

Definition

Sub InitializeConfirmationPage(
  byRef sOrderID,
  byRef mscsOrderGrp,
  byRef sOrderNumber
)

Defined in File

confirm.asp

Routines Called

GenerateURL

GetOrderGroup

GetRequestString

Called By

Main (confirm.asp)


InitializeCreditcardPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters in preparation for displaying the crdtcard.asp page.

Definition

Sub InitializeCreditcardPage(
  byRef iOrderGroupID,
  byRef bSuccess,
  byRef listMethods,
  byRef listFrmErrs,
  byRef dictFldVals,
  byRef dictFldErrs,
  byRef sVerifyWithTotal,
  byRef urlAction,
  byRef iErrorLevel
)

Defined in File

crdtcard.asp

Routines Called

CatchErrorsForPaymentPages

GenerateURL

GetDefaultValuesForCreditCardFields

GetListItemIndex

GetPaymentMethodsForUser

GetSubmittedFieldValues

IsFormSubmitted

LoadBasket

SaveBasketAsOrder

ValidateSubmittedCreditCardData

Called By

Main (crdtcard.asp)


InitializePagingVariables - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes paging variables for Customer and Partner Services. The iPageNumber and iTotalPages parameters are initialized based on the values of the sAction and bIsProfilePage parameters.

Definition

Sub InitializePagingVariables(
  byRef sAction,
  byRef iPageNumber,
  byRef iTotalPages,
  byVal bIsProfilePage
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

htmListPageActionHandlers

htmOrderListActionHandler

OrderListActionHandler


InitializePartnerDesk - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters for use in all Customer and Partner Services pages.

Definition

Sub InitializePartnerDesk(
  byRef sAction,
  byRef sSubAction,
  byRef sProfileIDs
)

Defined in File

services\include\initialize.asp

Routines Called

sGetAction

sGetSelectedIDs

sGetSubAction

Called By

Main (services\change_password.asp)

Main (services\customer\account.asp)

Main (services\customer\orders.asp)

Main (services\customer\view_order.asp)

Main (services\partner\account.asp)

Main (services\partner\edit_user.asp)

Main (services\partner\orders.asp)

Main (services\partner\users.asp)

Main (services\partner\view_order.asp)


InitializePO - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters in preparation for displaying the po.asp page.

Definition

Sub InitializePO(
  byRef mscsOrderGrp,
  byRef listMethods,
  byRef sVerifyWithTotal,
  byRef bSuccess,
  byRef dictFldVals,
  byRef dictFldErrs,
  byRef listFlds,
  byRef urlAction
)

Defined in File

po.asp

Routines Called

CatchErrorsForPaymentPages

GenerateURL

GetPaymentMethodsForUser

LoadBasket

Called By

Main (po.asp)


InitializeSummaryPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its parameters in preparation for displaying the summary.asp page. It also runs the basket and total pipelines.

Definition

Sub InitializeSummaryPage(
  byRef mscsOrderGrp,
  byRef listMethods,
  byRef mscsAnyOrderForm,
  byRef dictAnyItem
)

Defined in File

summary.asp

Routines Called

CatchErrors (summary.asp)

GenerateURL

GetAnyLineItem

GetAnyOrderForm

GetErrorCount

GetPaymentMethodsForUser

GetPipelineLogFile

LoadBasket

RunMtsPipeline

Called By

Main (summary.asp)


InitPageSets - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates sets of related pages, which are returned in a Dictionary object, where each entry in the dictionary is a string of comma-separated page names.

Definition

Function InitPageSets(
  MSCSSitePages
)

Defined in File

include\global_siteconfig_lib.asp

Routines Called

CreateSet

Called By

Main (include\global_main_lib.asp)

Remarks

Page sets are useful, for example, when you have a set of pages on which you want to show a particular advertisement. The IsEntityInSet function is used to test whether an item is in a given set.

The following three dictionary entries (page sets) are created:

PurchasePageSet

ProductPageSet

AdvertisementPageSet


InitPredictor - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a PredictorClient object. Before returning, it also loads the Transaction prediction model from the Data Warehouse, and sets prediction properties.

Definition

Function InitPredictor()

Defined in File

include\global_predictor_lib.asp

Routines Called

GetDWConnectionString

Called By

Main (include\global_main_lib.asp)


InitProfileService - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and initializes a ProfileService object, and returns a reference to it.

Definition

Function InitProfileService()

Defined in File

include\global_profile_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)

ProfileRefresh


InitSitePipelines - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and initializes a Dictionary object with an entry for each pipeline configuration file (PCF) used in the site. It also establishes pipeline logging settings.

Definition

Function InitSitePipelines()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

CheckOut

GetDictionary

GetRootPath

Called By

Main (include\global_main_lib.asp)

Remarks

The returned Dictionary object contains an entry for each pipeline PCF file, stored using the following keys:

Advertising, Basket, Checkout, Discounts, Fragment, Product, ReceivePO, RecordEvent, Total


InsertBlankSpace - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a string containing space characters, where the number of space characters is equal to the number of items in the passed array.

Definition

Function InsertBlankSpace(
  byVal arrLines
)

Parameters

arrLines
An array in which the number of items in the array determines the number of space characters in the returned string.

Return Value

A string containing zero or more space characters, based on the number of items in the array specified by the arrLines parameter.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

None.


InsertHiddenProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub copies particular, hidden properties from the current user profile to the specified profile Recordset object. Currently, only the organization ID of the user can be copied.

Definition

Sub InsertHiddenProperty(
  byVal oProperty,
  byVal rsProfile
)

Defined in File

services\include\save_one_profile.asp

Routines Called

None.

Called By

bInsertProperty


InsertLineBreaks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a string containing a concatenation of each of the strings in the passed array, separated by BR elements, and ending with a BR element. In other words, it concatenates the strings in the array, appending a <BR> tag to each string in the process.

Definition

Function InsertLineBreaks(
  byVal arrLines
)

Parameters

arrLines
An array of strings that are concatenated together and returned as a single string, with a <BR> tag appended to each string in the process.

Return Value

A string containing a concatenation of each string in the array specified by the arrLines parameter, with a <BR> tag appended to each string in the process.

Defined in File

include\html_lib.asp

Routines Called

BRTag

Called By

None.


InsertParagraphBreaks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a string containing a concatenation of each of the strings in the passed array, where each source string is wrapped in a P element. In other words, it concatenates the strings in the array, prepending a <P> tag to the beginning of each source string and appending a </P> tag to the end of each source string.

Definition

Function InsertParagraphBreaks(
  byVal arrLines
)

Parameters

arrLines
An array of strings that are concatenated together and returned as a single string, where each source string in the array is wrapped in a P element in the process.

Return Value

A string containing a concatenation of each string in the array specified by the arrLines parameter, where each source string in the array is wrapped in a P element in the process.

Defined in File

include\html_lib.asp

Routines Called

PTag

Called By

None.


InvokeBizTalk - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub submits purchase orders to the appropriate vendors using BizTalk Server when BizTalk Server integration is enabled.

Definition

Sub InvokeBizTalk(
  byVal mscsOrderGrp
)

Defined in File

include\payment.asp

Routines Called

GetXMLForVendorItems

SubmitUsingBizTalk

Called By

SaveBasketAsOrder

Remarks

For more information about how this routine is used to enable integration with Biztalk Server, see About the BizTalk Server Integration Feature.


IsActiveDirectoryPresent - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether Active Directory is being used by the Profile Service, returning True if it is being used, and False otherwise.

Definition

Function IsActiveDirectoryPresent()

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)

ProfileRefresh


IsBitValueSet - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether every bit in the iBitValue parameter is also set in the iValue parameter, returning True if so, and False otherwise.

Definition

Function IsBitValueSet(
  byVal iValue,
  byVal iBitValue
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetPaymentMethodsForSite

Remarks

Examples:

If iBitValue=5 (0x00000101) and iValue=7 (0x00000111), this function returns True.
If iBitValue=5 (0x00000101) and iValue=6 (0x00000110), this function returns False.


IsEntityInArray - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the string specified by the sEntity parameter is equal to one of the strings in the array specified by the arrItems parameter, returning True if so, and False otherwise.

Definition

Function IsEntityInArray(
  byVal sEntity,
  byVal arrItems
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

JoinWebFarm


IsEntityInList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the string specified by the sEntity parameter is equal to one of the strings in the SimpleList object specified by the list parameter, returning True if so, and False otherwise.

Definition

Function IsEntityInList(
  byVal sEntity,
  list
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

EnsureSupportForPaymentMethod

GetFieldsErrorDictionary

GetPaymentMethodsForUser

htmRenderVerifyWithForm

Main (dispatch.asp)

sLookUpPaymentMethod


IsEntityInSet - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the string specified by the sEntity parameter is equal to one of the substrings in the comma-separated string specified by the sSet parameter, returning True if so, and False otherwise.

Definition

Function IsEntityInSet(
  byVal sEntity,
  byVal sSet
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetShownProductsDetails

IsFormLoginRequired


IsFormLoginRequired - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether login is required on the current page. It returns True if logging in is always required, or if logging in is required for a purchase and the current page is in the purchase page set. Otherwise, it returns False.

Definition

Function IsFormLoginRequired()

Defined in File

include\std_access_lib.asp

Routines Called

IsEntityInSet

Called By

EnsureAccess


IsFormSubmitted - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function is used to test whether the current request contains a query string or form post variable with the name "mode" that has a value that can be successfully converted to a number.

Definition

Function IsFormSubmitted()

Return Value

A Boolean, where True indicates that the current request contains a query string or form post variable with the name "mode", and for which the value can be successfully converted to a number; otherwise it returns False.

Defined in File

include\form_lib.asp

Routines Called

None.

Called By

InitializeCreditcardPage

Main (addrform.asp)

Main (po.asp)

PrepareLoginPage

PrepareNewUserPage

SetupAddressForm

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


IsNumberInRange - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the number specified by the iNumber parameter is in the range specified by the iMin and iMax parameters (inclusive), returning True if so, and False otherwise.

Definition

Function IsNumberInRange(
  iNumber,
  iMin,
  iMax
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

GetProductQuantity


IsPersistentCookieAllowed - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether persistent cookies are enabled in the current user's browser, returning True if so, and False otherwise. A test cookie and page redirection are used to make the determination.

Definition

Function IsPersistentCookieAllowed()

Defined in File

include\std_access_lib.asp

Routines Called

AddURLArguments

SetTestCookie

Called By

EnsureAccess

Main (login\_guest.asp)


IsZipCodeValid - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether the basic format of the zip code specified by the sZipCode parameter is correct, returning True if so, and False otherwise. For additional information, see the Remarks.

Definition

Function IsZipCodeValid(
  sZipCode
)

Defined in File

include\addr_lib.asp

Routines Called

None.

Called By

iValidateSubmittedAddress

iValidateSubmittedAddressForAddressBook

Remarks

The following formats are considered valid:

Format, where "d" is a digit | Example
ddddd-dddd | 98052-0000
ddddddddd | 980520000
ddddd dddd | 98052 0000
ddddd- | 98052-
ddddd | 98052

You may add further validation logic to this function to ensure zip code entered is in existence or that it matches the state/province entered by the user.


Italic - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function surrounds the string specified by the s parameter with the tags <I> and </I> and then returns the resulting string.

Definition

Function Italic(
  byVal s
)

Parameters

s
A string that contains the text to be wrapped in an I element, and then returned.

Return Value

A string that contains the text passed in the s parameter, surrounded by <I> and </I> tags.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

None.


iValidateSubmittedAddress - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether an address supplied during a purchase is valid, returning zero (0) if so, and one (1) otherwise.

Definition

Function iValidateSubmittedAddress(
  listFlds,
  dictFldVals,
  dictFldErrs
)

Defined in File

addrform.asp

Routines Called

GetFieldsErrorDictionary

IsZipCodeValid

LookupRegion

Called By

Main (addrform.asp)

Remarks

Insert your specific address validation logic inside this function.

The default implementation supports basic validation for international addresses:

  • Ensures that all required fields contain data.
  • Ensures that the country/region field is a required field for countries/regions that have countries/regions defined.
  • Accepts country/region name or country/region code as input; validates them against the country/region table.
  • Expands country/region code to country/region name on subsequent renderings of address form.
  • Performs zip code validation for US addresses.

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


iValidateSubmittedAddressForAddressBook - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines whether an address supplied while working in the address book is valid, returning zero (0) if so, and one (1) otherwise.

Definition

Function iValidateSubmittedAddressForAddressBook(
  listFlds,
  dictFldVals,
  dictFldErrs,
  byVal sAction,
  byRef sAddrID,
  rsAddr
)

Defined in File

newaddr.asp

Routines Called

bIsAddressNameUnique

GetFieldsErrorDictionary

IsZipCodeValid

LookupRegion

Called By

SetupAddressForm

Remarks

Insert your specific address validation logic inside this function.

The default implementation supports basic validation for international addresses:

  • Ensures that all required fields contain data.
  • Ensures that the country/region field is a required field for countries/regions that have countries/regions defined.
  • Accepts country/region name or country/region code as input; validates them against the country/region table.
  • Expands country/region code to country/region name on subsequent renderings of address form.
  • Performs zip code validation for US addresses.

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


iValidateSubmittedRegistrationData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function checks that the user name submitted on the registration page (login\newuser.asp) is unique, verifies that the submitted password is syntactically valid, and that the password matches the confirm password entry.

Definition

Function iValidateSubmittedRegistrationData(
  listFlds,
  dictFldVals,
  dictFldErrs,
  listFrmErrs
)

Parameters

listFlds
A SimpleList object containing the information about the form fields.
dictFldVals
A Dictionary object containing the form field values.
dictFldErrs
A Dictionary object that is initialized with field error messages by calling the function GetFieldsErrorDictionary.
listFrmErrs
A SimpleList object that is not used.

Return Value

A number indicating whether the submitted registration data is valid, where zero (0) indicates valid data and one (1) indicates data that is not valid.

Defined in File

login\newuser.asp

Routines Called

GetDictionary

GetFieldsErrorDictionary

rsGetProfile

Called By

PrepareNewUserPage

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


JoinWebFarm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds the current Web server to the Web farm, if the computer is not already recognized as being so. This routine will run in the case where a site was replicated using Microsoft Application Center 2000, or other cases where the site was not installed using Commerce Site Packager.

This routine updates the Commerce Server Administration database and Data Warehouse as necessary.

To use this routine, the accounts must have access to the Web Users role. This role is designed to support the automatic additions of Web servers, for example, in a Web farm scenario: when the Commerce Server application first starts on the new Web server (for example, a user connects to the Web server or gets load-balanced to it), and global.asa starts, the Web server is added automatically to the Administration database.

By default, Everyone is added to the Web Users role. You must change this as follows:

  1. Remove Everyone.
  2. Add the Anonymous account (IUSR_<computername> is the default).
  3. Add the Launch IIS Process account (IWAM_<computername> is the default).
  4. Add the accounts of other users who will be allowed to connect to the site.

For more information about how JoinWebFarm is used, see Adding Web Server without Site Packager. For security information about the Config COM+ application, see Important Security Notes.

Definition

Sub JoinWebFarm(
  byRef iWebServerCount
)

Defined in File

include\global_siteconfig_lib.asp

Routines Called

FormatOutput

GetComputerName

GetErrorSource

GetSiteConfigObject

IsEntityInArray

Called By

Main (include\global_main_lib.asp)


listCloneProfileSchema - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object that contains a copy of the profile schema associated with the page specified by the sPageName parameter.

Definition

Function listCloneProfileSchema(
  byVal sPageName
)

Defined in File

services\include\lib.asp

Routines Called

sGetThisPageProperty

Called By

arrPopulateProfileDetails

bInsertProfileDetails

bIsPropertyValueAdded

bProfileHasChanged

bSaveProfileDetails

listReConstructPropertiesSchema

PopulateProfileSearchCriteria

PrepareAddAction

PrepareCloseAction

PrepareCopyAction

PrepareEditAction

PrepareEditAllAction

PrepareInsertProfile

PrepareSaveAllAction

PrepareSaveChangesConfirmation

PrepareSaveProfiles

PrepareSelectedAction

rowRenderListHeading

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

rsGetProfilesList

SaveAllSelectedProfiles

sConstructWHEREclause


listGetProfileSchema - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object of Dictionary objects that represent the schema specified by the parameters.

Definition

Function listGetProfileSchema (
  byVal oProfile,
  byVal oProfileDefsCatalog,
  byVal oSiteTermsProfile
)

Defined in File

include\global_profile_lib.asp

Routines Called

AddGroupAndPropertySchemas

Called By

dictGetProfileSchemaForAllProfileTypes


listGetShownProductsInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates and returns a SimpleList object of Dictionary objects, where each Dictionary object contains information about a single product in the catalog, category, and so on, specified by the parameters.

Definition

Function listGetShownProductsInfo(
  byVal sCatalogName,
  byVal sCategoryName,
  byVal sProductID,
  byVal nPageNumber
)

Defined in File

template\discount.asp

Routines Called

CopyProductToItem

GetAncestorCategories

GetDictionary

GetSimpleList

mscsGetCategoryObject

mscsGetProductList

Called By

oCachedDiscountProductInfo


listGetValidPropertiesForMultiEdit - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a SimpleList object that contains those profile properties from the SimpleList object specified by the listProfileSchema parameter that are valid participants in the current multi-edit operation.

Definition

Function listGetValidPropertiesForMultiEdit(
  byVal listProfileSchema
)

Defined in File

services\include\lib.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

GetRequestString

iGetCurrentUserPropertyAccessClass

sGetUserAccessForThisProperty

Called By

PrepareSaveAllAction

PrepareSaveProfiles


listGetVariantPropertiesToShow - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and returns a SimpleList object that contains an entry for each property specified by the fldsProps parameter that is configured as displayable. The SimpleList object entries are strings containing the name of the corresponding property, and the built-in property TimeStamp is excluded regardless of its displayable setting.

Definition

Function listGetVariantPropertiesToShow(
  byVal fldsProps
)

Defined in File

product.asp

Routines Called

GetSimpleList

Called By

htmRenderVariantsList


listReConstructPropertiesSchema - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function reconstructs the profile schema to include the properties that have failed validation.

Definition

Function listReConstructPropertiesSchema(
  byVal listValidProperties
)

Defined in File

services\include\lib.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

dictGetpropertyFromList

GetRequestString

iGetCurrentUserPropertyAccessClass

listCloneProfileSchema

sGetUserAccessForThisProperty

Called By

PrepareSaveAllAction

PrepareSaveProfiles


LoadBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves and returns the OrderGroup object associated with the current user, calling its LoadBasket method before returning.

Definition

Function LoadBasket(
  byVal sUserID
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

GetOrderGroup

Called By

CatchErrors (addrbook.asp)

CatchErrors (newaddr.asp)

FetchData (_setadrs.asp)

GetBasketDetails

InitializeBasketPage

InitializeCreditcardPage

InitializePO

InitializeSummaryPage

Main (_additem.asp)

Main (_delall.asp)

Main (_delitem.asp)

Main (_editqty.asp)

Main (_setship.asp)

Main (addrform.asp)

Main (dispatch.asp)

MoveBasketItems

PreparePickShipForm

PrepareShippingMethods

RecordClickToBasket


LookupCachedFragment - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the LRUCache object specified by the sCacheName parameter for the fragment (a string) associated with name specified by the sCacheItemName parameter, returning the fragment if it is found, and Null otherwise.

Definition

Function LookupCachedFragment(
  byVal sCacheName,
  byVal sCacheItemName
)

Defined in File

include\std_cache_lib.asp

Routines Called

GetTicketInUrlArg

Called By

bFullTextResultsAreCached

bIsSearchDeptPageCached

bIsStepSearchPageCached

htmCachedProductList

htmCachedShippingMethods

htmRenderFillOutForm

htmRenderLoginSection

htmRenderMenu

Main (default.asp)

Main (product.asp)

RenderNavbar

Remarks

The source code includes sample debug code that will show if a fragment was cached.


LookupCachedObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function searches the LRUCache object specified by the sCacheName parameter for the object associated with name specified by the sCacheItemName parameter, returning the object if it is found, and Nothing otherwise.

Definition

Function LookupCachedObject(
  byVal sCacheName,
  byVal sCacheItemName
)

Defined in File

include\std_cache_lib.asp

Routines Called

None.

Called By

oCachedDiscountProductInfo


LookupRegion - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the country/region name associated with the passed parameters. The sRegion parameter might specify a country/region name, in which case that name is returned, or it might specify a country/region code, in which case the corresponding country/region name is returned. If the country/region name cannot be determined, Null is returned.

Definition

Function LookupRegion(
  byVal sRegion,
  sCountryCode
)

Defined in File

include\addr_lib.asp

Routines Called

None.

Called By

iValidateSubmittedAddress

iValidateSubmittedAddressForAddressBook


Main (_additem.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _additem.asp, which adds an item to the user's basket.

Definition

Sub Main()

Defined in File

_additem.asp

Routines Called

Analysis_LogAddToBasket

ApplyVendorInfo

EnsureAccess

GenerateURL

GetCatalogForUser

GetProductQuantity

GetRequestString

LoadBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub gets the catalog, loads the basket, adds the item to the appropriate order form, saves the basket, logs the AddToBasket action, and depending on configuration settings, redirects to either the product.asp or basket.asp page.


Main (_delall.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _delall.asp, which deletes all items from the user's basket.

Definition

Sub Main()

Defined in File

_delall.asp

Routines Called

EnsureAccess

GenerateURL

LoadBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub loads the basket, clears all items from the basket, saves the basket, and redirects to the basket.asp page.


Main (_delitem.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _delitem.asp, which deletes an item from the user's basket.

Definition

Sub Main()

Defined in File

_delitem.asp

Routines Called

Analysis_LogRemoveFromBasket

EnsureAccess

GenerateURL

GetRequestString

LoadBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub loads the basket, checks the Request object for the item index, removes the item, saves the basket, logs the removal, and redirects to the basket.asp page.


Main (_editqty.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _editqty.asp, which changes the quantity of an item in the user's basket.

Definition

Sub Main()

Defined in File

_editqty.asp

Routines Called

EnsureAccess

GenerateURL

LoadBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub loads the basket, gets the PRODUCTQTY_URL_KEY from the Request string, sets the current quantity or removes the item if the quantity is zero (0), saves the basket, and redirects to the basket page.


Main (_recvpo.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _recvpo.asp, which receives a purchase order form in XML format, transforms the data into a Dictionary object, adds it to the OrderGroup object, and runs the OPP for Receiving Purchase Orders.

Definition

Sub Main()

Defined in File

_recvpo.asp

Routines Called

GetOrderGroup

ParseRequestForm

RunOrderPipeline

Called By

This routine is called by code outside of any routine (sub or function) in the file _recvpo.asp.

Remarks

For more information about how this routine is used to enable integration with Biztalk Server, see About the BizTalk Server Integration Feature.


Main (_setadrs.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _setadrs.asp, which sets a shipping or billing address in the user's basket.

Definition

Sub Main()

Defined in File

_setadrs.asp

Routines Called

CatchErrors (_setadrs.asp)

EnsureAuthAccess

FetchData

GenerateURL

GetAddressType

GetRequestString

RsToDict

SetKeyOnOrderForms

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (_setship.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file _setship.asp, which sets shipping method information in the OrderGroup object.

Definition

Sub Main()

Defined in File

_setship.asp

Routines Called

CatchErrors (_setship.asp)

EnsureAccess

GenerateURL

GetRequestString

GetShippingMethodNameFromID

LoadBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub loads the basket, sets shipping information in the OrderGroup object, saves the basket, and redirects to the order summary.asp page.


Main (addrbook.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file addrbook.asp, which retrieves and displays the address book for editing.

Definition

Sub Main()

Defined in File

addrbook.asp

Routines Called

CatchErrors (addrbook.asp)

EnsureAuthAccess

FetchData

htmRenderAddressBookPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (addrform.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file addrform.asp, which displays a page for editing the billing or shipping address.

Definition

Sub Main()

Defined in File

addrform.asp

Routines Called

CatchErrors (addrform.asp)

EnsureAccess

GenerateURL

GetAddressType

GetDefaultValuesForAddressFormFields

GetSubmittedFieldValues

htmRenderFillOutForm

IsFormSubmitted

iValidateSubmittedAddress

LoadBasket

RenderText

SaveAddressToOrderGroup

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (basket.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file basket.asp, which displays the user's basket.

Definition

Sub Main()

Defined in File

basket.asp

Routines Called

AddDiscountMessages (std_ordergrp_lib.asp)

CheckBasket

EnsureAccess

InitializeBasketPage

RenderBasketPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub runs the basket pipeline, adds discount messages to each line item, saves the basket, and prepares the HTML that will render the basket.asp page.

This sub will also display predictions, where available.


Main (category.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file category.asp, which displays the product list and sub-categories of the specified catalog, category, and page number.

Definition

Sub Main()

Defined in File

category.asp

Routines Called

EnsureAccess

EnsureUserHasRightsToCatalog

FetchCategoryData

GenerateURL

htmCachedProductList

htmCategoryHTML

mscsGetCategoryObject

mscsGetProductList

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (confirm.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file confirm.asp, which displays the confirmation page for a basket order.

Definition

Sub Main()

Defined in File

confirm.asp

Routines Called

EnsureAccess

htmRenderConfirmationPage

InitializeConfirmationPage

TerminateConfirmationPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (crdtcard.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file crdtcard.asp, which displays an input screen for credit card information when checking out.

Definition

Sub Main()

Defined in File

crdtcard.asp

Routines Called

EnsureAccess

htmRenderCreditCardPage

InitializeCreditcardPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (default.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file default.asp, which prepares the HTML from which the home page is rendered.

Definition

Sub Main()

Defined in File

default.asp

Routines Called

EnsureAccess

htmRenderDefaultPage

LookupCachedFragment

mscsUserCatalogsetID

PrepareDefaultPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (dispatch.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file dispatch.asp, which dispatches the user to the payment method page (crdtcard.asp or po.asp) when checking out.

Definition

Sub Main()

Defined in File

dispatch.asp

Routines Called

EnsureAccess

GenerateURL

GetPaymentMethodsForUser

GetPaymentPageFromPaymentMethod

GetRequestString

IsEntityInList

LoadBasket

sLookUpPaymentMethod

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (newaddr.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file newaddr.asp, from which the user can add, edit, or delete addressbook addresses.

Definition

Sub Main()

Defined in File

newaddr.asp

Routines Called

EnsureAuthAccess

htmRenderAddressForm

SetupAddressForm

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (opt-out.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file opt-out.asp, which adds the user to the opt-out list of a direct mail campaign.

Definition

Sub Main()

Defined in File

opt-out.asp

Routines Called

ErrorOut

OptOut

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

If a campaign item is not specified, then the user is added to the global opt-out list for the site.


Main (pickship.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file pickship.asp, from which displays a page for selecting the shipping method.

Definition

Sub Main()

Defined in File

pickship.asp

Routines Called

CacheFragment

EnsureAccess

htmCachedShippingMethods

htmRenderPickshipForm

htmRenderShippingMethods

PreparePickShipForm

PrepareShippingMethods

rsGetShippingMethods

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

The source code shows two ways of showing the shipping options: one calculates shipping cost previews, the other does not (the latter exhibits better performance).


Main (po.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file po.asp, from which displays an input screen for purchase order information when the user is checking out.

Definition

Sub Main()

Defined in File

po.asp

Routines Called

EnsureAuthAccess

GetDefaultValuesForPurchaseOrderFields

GetListItemIndex

GetSubmittedFieldValues

htmRenderPaymentOptionsPage

InitializePO

IsFormSubmitted

RedirectToPOConfirmation

TerminatePO

ValidateSubmittedPurchaseOrderData

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub validates submitted purchase order data, and constructs the HTML that will render the payment options.


Main (product.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file product.asp, which displays a page of product details.

Definition

Sub Main()

Defined in File

product.asp

Routines Called

CacheFragment

EnsureAccess

EnsureUserHasRightsToCatalog

GenerateURL

GetRequestString

GetShownProductsDetails

htmRenderBuiltInProperties

htmRenderUserDefinedProductProperties

htmRenderVariantsList

LookupCachedFragment

RenderDiscounts

RenderForm

RenderHiddenField

RenderSubmitButton

RenderText

RenderTextBox

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub attempts to use a cached catalog fragment. If the fragment is not cached, it is constructed and cached for future use. This sub also generates the AddToBasket form, and populates the discount banner slot.


Main (redir.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file redir.asp, which handles click-throughs and other events on marketing campaign items, invoking a pipeline that records the events in memory and to the Internet Information Services (IIS) log file.

Definition

Sub Main()

Defined in File

redir.asp

Routines Called

RecordClickToBasket

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (search.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file search.asp, which performs a free text search and displays the result.

Definition

Sub Main()

Defined in File

search.asp

Routines Called

bFullTextResultsAreCached

EnsureAccess

GetRequestString

htmRenderFullTextSearchResults

rsFreeTextSearch

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub gets the search phrase, checks the cache for the results, runs the query, and displays the results.


Main (srchdept.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file srchdept.asp, which displays a list of searchable categories from a catalog.

Definition

Sub Main()

Defined in File

srchdept.asp

Routines Called

arrSearchDept

bIsSearchDeptPageCached

CacheFragment

EnsureAccess

htmRenderSearchDeptPageContent

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub checks whether the page has already been generated and is cached, generates the HTML that will render a list of catalog names and category names, and caches the page.


Main (stepsrch.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file stepsrch.asp, which performs a product specification search and displays the results.

Definition

Sub Main()

Defined in File

stepsrch.asp

Routines Called

bClickedViewOrSearchButton

bIsStepSearchPageCached

CacheFragment

EnsureAccess

GenerateURL

GetCatalogForUser

GetRequestString

htmRenderStepSearchPageContent

PrepareSpecificationSearch

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub gets the catalog name and instantiates the catalog object, gets the category name, checks for cached pages, prepares for and performs the search, and prepares the HTML that will render the results or the search options.


Main (summary.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file summary.asp, which displays an order summary that includes the grand total.

Definition

Sub Main()

Defined in File

summary.asp

Routines Called

AddDiscountMessages (std_ordergrp_lib.asp)

EnsureAccess

htmRenderSummaryPage

InitializeSummaryPage

TerminateSummaryPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

This sub removes unreferenced addresses from the order form, adds discount messages to each line item, checks for VerifyWith errors, saves the basket, and prepares the HTML that will render the page.


Main (welcome.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file welcome.asp, which displays a welcome page.

Definition

Sub Main()

Defined in File

welcome.asp

Routines Called

RenderLink

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

A user is redirected to this page by the routine EnsureAccess when a user with a registered profile only has a profile ticket (as is the case when they return to the site after closing their browser). For more information about logging in, see About the Login Feature for Solution Sites.


Main (error\baditem.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\baditem.asp, which displays the message that a catalog item is unavailable.

Definition

Sub Main()

Defined in File

error\baditem.asp

Routines Called

RenderText

RenderUnorderedList

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (error\badurl.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\badurl.asp, which displays the message that the URL is not valid.

Definition

Sub Main()

Defined in File

error\badurl.asp

Routines Called

GenerateURL

RenderLink

RenderText

RenderUnorderedList

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (error\closed.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\closed.asp, which displays the message that the site is closed.

Definition

Sub Main()

Defined in File

error\closed.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (error\construc.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\construc.asp, which displays the message that the site is under construction.

Definition

Sub Main()

Defined in File

error\construc.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (error\noauth.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\noauth.asp, which displays the message that the user is not authorized to access the page.

Definition

Sub Main()

Defined in File

error\noauth.asp

Routines Called

GenerateURL

RenderLink

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (error\profile.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file error\profile.asp, which displays the message that the user's account (profile) could not be found.

Definition

Sub Main()

Defined in File

error\profile.asp

Routines Called

RenderLink

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (include\global_main_lib.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file global.asa, which creates and initializes many of the objects supplied by Commerce Server 2002. References to these objects are stored in the intrinsic Application object so that they can be retrieved and used from Web site pages.

Definition

Sub Main()

Defined in File

include\global_main_lib.asp

Routines Called

dictGetCatalogAttributes

dictGetProfileSchemaForAllProfileTypes

GetAppConfigObject

GetConfigDictionary

GetFormDefinitions

GetINIFileName

GetINIString

GetMessageManagerObject

GetObjectInstanceDictionary

GetPartnerAndCustomerServicePageAttributes

GetPaymentMethodsForSite

GetSecurePagesDictionary

GetSitePages

GetSiteStyles

InitAltCurrencyDisp

InitAuthManager

InitCacheManager

InitCatalogManager

InitCatalogSets

InitCSF

InitDataFunctions

InitPageSets

InitPredictor

InitProfileService

InitSitePipelines

IsActiveDirectoryPresent

JoinWebFarm

oGetGenIDObject

oGetOpenConnectionObject

sGetActiveDirectoryDefaultNamingContext

Called By

Application_OnStart

Remarks

This sub creates instances of the following Commerce Server objects: AppConfig, ProfileService, CacheManager, AuthManager, Pipeline, MessageManager, DataFunctions, CatalogManager, ExpressionEvaluator, and Predictor.

This sub gets the Commerce Server site application names from the configuration file, gets the Active Directory domain name (if the Active Directory data store is used), gets the Dictionary object for all the profiles and profile properties, and gets the Dictionary object of Dictionary objects containing properties for all pages.


Main (login\_guest.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file login\_guest.asp, which generally redirects the user to the home page (default.asp) as a guest user.

Definition

Sub Main()

Defined in File

login\_guest.asp

Routines Called

GenerateURL

GetNewGuestUserProfile

IsPersistentCookieAllowed

sGetUserIDForNewGuestUser

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

For more detailed information about logging in, see About the Login Feature for Solution Sites.


Main (login\login.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file login\login.asp, which displays the login page.

Definition

Sub Main()

Defined in File

login\login.asp

Routines Called

GenerateURL

htmRenderLoginPage

PrepareLoginPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

For more detailed information about logging in, see About the Login Feature for Solution Sites.


Main (login\logoff.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file login\logoff.asp, which displays the logoff page.

Definition

Sub Main()

Defined in File

login\logoff.asp

Routines Called

htmRenderLogoffPage

PrepareLogoffPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.

Remarks

For more detailed information about logging in, see About the Login Feature for Solution Sites.


Main (login\newuser.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file login\newuser.asp, which allows a new user to register and checks the user name and password for validity.

Definition

Sub Main()

Defined in File

login\newuser.asp

Routines Called

bRegistrationPageNotAvailable

GenerateURL

htmRenderNewUserPage

PrepareNewUserPage

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\change_password.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\change_password.asp, which allows Partner Services passwords to be changed.

Definition

Sub Main()

Defined in File

services\change_password.asp

Routines Called

CheckIfProfilesExist

EnsureAuthAccess

GenerateURL

InitializePartnerDesk

PasswordActionHandlers

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\customer\account.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\customer\account.asp, which allows users to view and modify their own profile.

Definition

Sub Main()

Defined in File

services\customer\account.asp

Routines Called

CheckIfProfilesExist

EnsureAuthAccess

GenerateURL

htmChangePasswordActionHandler

htmEditAction

htmSaveActionHandler

InitializePartnerDesk

PrepareEditAction

PrepareSaveAction

PrepareSaveChangesConfirmation

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\customer\orders.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\customer\orders.asp, which allows users to search for their orders.

Definition

Sub Main()

Defined in File

services\customer\orders.asp

Routines Called

EnsureAuthAccess

htmRenderOrderList

InitializePartnerDesk

OrderListActionHandler

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\customer\view_order.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\customer\view_order.asp, which allows users to view their orders.

Definition

Sub Main()

Defined in File

services\customer\view_order.asp

Routines Called

CheckIfOrderExists

CloseOrderDetailsActionHandler

EnsureAuthAccess

GenerateURL

htmOrderDetailsActionHandler

InitializePartnerDesk

PrepareCloseOrderDetailsAction

PrepareOrderDetailsAction

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\error\badaction.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\error\badaction.asp, which displays the message that an invalid action was requested.

Definition

Sub Main()

Defined in File

services\error\badaction.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\error\noaccess.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\error\noaccess.asp, which displays the message that the user does not have the necessary privileges to access the page.

Definition

Sub Main()

Defined in File

services\error\noaccess.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\error\noorder.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\error\noorder.asp, which displays the message that the requested order is not available.

Definition

Sub Main()

Defined in File

services\error\noorder.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\error\noorgprofile.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\error\noorgprofile.asp, which displays the message that the user does not belong to an organization.

Definition

Sub Main()

Defined in File

services\error\noorgprofile.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\error\noprofile.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\error\noprofile.asp, which displays the message that posted profiles are invalid.

Definition

Sub Main()

Defined in File

services\error\noprofile.asp

Routines Called

RenderText

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\partner\account.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\partner\account.asp, which allows administrators to view and modify the profile for their organization.

Definition

Sub Main()

Defined in File

services\partner\account.asp

Routines Called

CheckIfProfilesExist

CheckPartnerServiceAccess

EnsureAuthAccess

GenerateURL

htmEditAction

htmSaveActionHandler

htmSelectActionHandlerForEdit

htmSelectedActionHandlerForEdit

InitializePartnerDesk

PrepareEditAction

PrepareSaveAction

PrepareSelectActionHandlerForEdit

PrepareSelectedAction

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\partner\edit_user.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\partner\edit_user.asp, which allows administrators to add, delete, or modify profiles that belong to members of their organization.

Definition

Sub Main()

Defined in File

services\partner\edit_user.asp

Routines Called

CheckIfProfilesExist

CheckPartnerServiceAccess

EnsureAuthAccess

htmEditPageActionHandlers

InitializePartnerDesk

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\partner\orders.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\partner\orders.asp, which allows administrators to search for orders made by members of their organization.

Definition

Sub Main()

Defined in File

services\partner\orders.asp

Routines Called

CheckPartnerServiceAccess

EnsureAuthAccess

htmOrderListActionHandler

InitializePartnerDesk

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\partner\users.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\partner\users.asp, which allows administrators to search for and manage the user profiles associated with their organization.

Definition

Sub Main()

Defined in File

services\partner\users.asp

Routines Called

CheckPartnerServiceAccess

EnsureAuthAccess

htmListPageActionHandlers

InitializePartnerDesk

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


Main (services\partner\view_order.asp) - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as the entry point into the file services\partner\view_order.asp, which allows administrators to view orders made by members of their organization.

Definition

Sub Main()

Defined in File

services\partner\view_order.asp

Routines Called

CheckIfOrderExists

CheckPartnerServiceAccess

CloseOrderDetailsActionHandler

EnsureAuthAccess

GenerateURL

htmOrderDetailsActionHandler

InitializePartnerDesk

PrepareCloseOrderDetailsAction

PrepareOrderDetailsAction

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


MoveBasketItems - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function moves the items in the source basket to the destination basket. The source basket must exist and contain at least one item; the destination basket may or may not exist.

Definition

Function MoveBasketItems(
  byVal sSourceBasketID,
  byVal sDestinationBasketID
)

Defined in File

login\login.asp

Routines Called

GetOrderGroupManager

LoadBasket

Called By

PrepareLoginPage


mscsGetCategoryObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the Category object for the given category name. If the category name is "" (meaning the root category), this function returns Nothing, as the catalog does not have a Category object for the root category.

Definition

Function mscsGetCategoryObject(
  byVal oCatalog,
  byVal sCategoryName
)

Defined in File

include\catalog.asp

Routines Called

GenerateURL

Called By

listGetShownProductsInfo

Main (category.asp)

PrepareDefaultPage


mscsGetOrderGroupWithDiscountsByID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the OrderGroup object associated with the current user, loads the order specified by the iID parameter, adds discount messages, and then returns a reference to the OrderGroup object.

Definition

Function mscsGetOrderGroupWithDiscountsByID(
  iID
)

Defined in File

services\include\logic_orders.asp

Routines Called

AddDiscountMessages (services\include\logic_orders.asp)

GetOrderGroup

Called By

tblRenderOrderDetailsContents


mscsGetProductList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the product Recordset object for a specified category, using the specified paging information.

Definition

Function mscsGetProductList(
  oCatalog,
  oCategory,
  nPageNumber,
  nOutRecordsTotal,
  nOutPagesTotal
)

Defined in File

include\catalog.asp

Routines Called

None.

Called By

listGetShownProductsInfo

Main (category.asp)

PrepareDefaultPage

Remarks

The nOutRecordsTotal and nOutPagesTotal parameters are used to return data to the caller.

If the oCategory parameter is Nothing, this function returns the Recordset object returned by the RootProducts property of the catalog.


mscsGetSubCategoriesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the child categories Recordset object for the Category object specified by the oCategory parameter.

Definition

Function mscsGetSubCategoriesList(
  byVal oCatalog,
  byVal oCategory
)

Defined in File

include\catalog.asp

Routines Called

None.

Called By

htmRenderCategoryPage

PrepareCatalogSection

Remarks

If the oCategory parameter is Nothing, this function returns the Recordset object returned by the RootCategories property of the catalog.


mscsNewRegisteredUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates, initializes, and then returns a reference to a ProfileObject object for a new user.

Definition

Function mscsNewRegisteredUserProfile(
  byVal sLoginName,
  byVal sLoginPassword
)

Defined in File

login\newuser.asp

Routines Called

GetQualifiedName

UpdateUserProfile

Called By

mscsTransferGuestUserProfile

PrepareNewUserPage


mscsTransferGuestUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function attempts to retrieve a profile for the current user. If found, this function updates the profile to reflect the fact that the user is now registered. If not found, this function creates and initializes a profile for the new user. In both cases, the resulting ProfileObject object is returned.

Definition

Function mscsTransferGuestUserProfile(
  byVal sLoginName,
  byVal sLoginPassword
)

Defined in File

login\newuser.asp

Routines Called

GetCurrentUserProfile

GetQualifiedName

mscsNewRegisteredUserProfile

UpdateUserProfile

Called By

PrepareNewUserPage


mscsUserCatalogs - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Recordset object that contains the catalogs associated with the current user.

Definition

Function mscsUserCatalogs()

Defined in File

include\catalog.asp

Routines Called

None.

Called By

arrSearchDept

PrepareCatalogSection

sUserCatalogsAsString


mscsUserCatalogsetID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the ID of the catalog set associated with the current user. If it is not found, the ID of the catalog set associated with the user's organization is returned. If it is not found, the ID of the default catalog set for the type of the current user is returned.

Definition

Function mscsUserCatalogsetID()

Defined in File

include\catalog.asp

Routines Called

GetCurrentUserProfile

rsGetProfileByKey

Called By

bFullTextResultsAreCached

bIsSearchDeptPageCached

EnsureUserHasRightsToCatalog

Main (default.asp)

PrepareRenderMenu


mscsUserCatalogsFromID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a Recordset object containing the catalogs associated catalog set ID specified by the CatalogSetID parameter.

Definition

Function mscsUserCatalogsFromID(
  byVal CatalogSetID
)

Defined in File

include\catalog.asp

Routines Called

None.

Called By

PrepareDefaultPage


oCachedDiscountProductInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function serves as a caching wrapper for function listGetShownProductsInfo. It attempts to retrieve the requested information from the "DiscountProductInfo" cache, and if not found, generates it, caches it, and returns it.

Definition

Function oCachedDiscountProductInfo(
  sCatalogName,
  sCategoryName,
  nPageNumber,
  sProductID
)

Defined in File

template\discount.asp

Routines Called

CacheObject

listGetShownProductsInfo

LookupCachedObject

Called By

GetShownProductsDetails


oGetBizDataObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates an instance of the BusinessDataAdmin object and returns a reference to it, calling its Connect method before returning.

Definition

Function oGetBizDataObject()

Defined in File

include\global_data_lib.asp

Routines Called

None.

Called By

dictGetProfileSchemaForAllProfileTypes


oGetGenIDObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates an instance of the GenID object and returns a reference to it.

Definition

Function oGetGenIDObject()

Defined in File

include\global_data_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)


oGetOpenConnectionObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates an ADO Connection object and returns a reference to it, opening a connection to the Commercer Server OLEDB Provider before returning.

Definition

Function oGetOpenConnectionObject()

Defined in File

include\global_profile_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)

Remarks

The performance characterstics of the Commerce Provider dictate that the Solution Sites use a global connection. Most other providers recommend the creation of connections on a per-page basis.


oGetProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an XML DOMDocument object that contains the profile specified by the sProfileName parameter.

Definition

Function oGetProfile(
  byVal oBizData,
  byVal sProfileName
)

Defined in File

include\global_profile_lib.asp

Routines Called

None.

Called By

dictGetProfileSchemaForAllProfileTypes


oGetSiteTermOptions - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns a SimpleList object of Dictionary objects, where each dictionary contains a single key/value pair. Each key/value pair represents the display name and value of one site term choice associated with the property specified by the sPropertyName parameter.

Definition

Function oGetSiteTermOptions (
  byVal sPropertyName,
  byRef oProfileDefsCatalog,
  byRef oSiteTermsProfile
)

Defined in File

include\global_siteterms_lib.asp

Routines Called

bIsSiteTerm

sGetReferenceString

Called By

dictGetPropertySchema


OptOut - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub adds the e-mail recipient specified by the rcp_email parameter to the opt-out list specified by the campitem_id parameter. If the campitem_id parameter is Null, a site-wide optout is performed.

Definition

Sub OptOut(
  rcp_email,
  campitem_id
)

Defined in File

opt-out.asp

Routines Called

CreateOptOutList

ErrorOut

GetOptOutList

SetOptOutList

Called By

Main (opt-out.asp)


OrderListActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub serves as a wrapper for the sub InitializePagingVariables, passing its parameters through as is, and passing False for the bIsProfilePage parameter of sub InitializePagingVariables.

Definition

Sub OrderListActionHandler(
  byVal sAction,
  byRef iPageNumber,
  byRef iTotalPages
)

Defined in File

services\customer\orders.asp

Routines Called

InitializePagingVariables

Called By

Main (services\customer\orders.asp)


P - R

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letters P through R.

Routine | File
ParseRequestForm | _recvpo.asp
PasswordActionHandlers | services\change_password.asp
PeekField | product.asp
PerformSpecificationSearch | stepsrch.asp
PopulateOrderSearchCriteria | services\include\lib.asp
PopulateProfileSearchCriteria | services\include\lib.asp
PredictedPropToHREF | basket.asp
PrepareAddAction | services\include\edit_handlers.asp
PrepareCatalogSection | template\menu.asp
PrepareCloseAction | services\include\edit_handlers.asp
PrepareCloseOrderDetailsAction | services\include\order_handlers.asp
PrepareCopyAction | services\include\edit_handlers.asp
PrepareDefaultPage | default.asp
PrepareDeleteAction | services\include\edit_handlers.asp
PrepareDeleteAllAction | services\include\edit_handlers.asp
PrepareDeselectAllAction | services\include\edit_handlers.asp
PrepareEditAction | services\include\edit_handlers.asp
PrepareEditAllAction | services\include\edit_handlers.asp
PrepareInsertProfile | services\include\edit_handlers.asp
PrepareLoginPage | login\login.asp
PrepareLoginSection | template\menu.asp
PrepareLogoffPage | login\logoff.asp
PrepareNewUserPage | login\newuser.asp
PrepareOrderDetailsAction | services\include\order_handlers.asp
PrepareOrderList | services\include\logic_orders.asp
PreparePickShipForm | pickship.asp
PrepareRenderMenu | template\menu.asp
PrepareSaveAction | services\include\edit_handlers.asp
PrepareSaveAllAction | services\include\edit_handlers.asp
PrepareSaveChangesConfirmation | services\include\messagebox_handlers.asp
PrepareSaveProfiles | services\include\edit_handlers.asp
PrepareSelectActionHandlerForEdit | services\include\edit_handlers.asp
PrepareSelectAllAction | services\include\edit_handlers.asp
PrepareSelectedAction | services\include\edit_handlers.asp
PrepareShippingMethods | pickship.asp
PrepareSpecificationSearch | stepsrch.asp
ProfileRefresh | RefreshApp.asp
PTag | include\html_lib.asp
RecordClickToBasket | redir.asp
RedirectOrderDetailsForIDs | services\include\order_handlers.asp
ReDirectToPage | services\include\lib.asp
RedirectToPOConfirmation | po.asp
RelocateRecordPointer2 | services\include\render_list.asp
RelocateRecordPointer | services\include\lib.asp
RemoveBlankItemsFromArray | include\std_string_lib.asp
RemoveCreditCardInfo | po.asp
RemoveEmptyOrderForms | include\std_ordergrp_lib.asp
RemovePurchaseOrderInfo | crdtcard.asp
RenderBasketPage | basket.asp
RenderCatalogLink | include\catalog.asp
RenderCatalogURL | include\catalog.asp
RenderCategoryLink | include\catalog.asp
RenderCategoryURL | include\catalog.asp
RenderCheckBox | include\html_lib.asp
RenderDetailedInfoList | error\500error.asp
RenderDiscounts | template\discount.asp
RenderElement | include\html_lib.asp
RenderErrorType | error\500error.asp
RenderForm | include\html_lib.asp
RenderHiddenField | include\html_lib.asp
RenderImageButton | include\html_lib.asp
RenderImage | include\html_lib.asp
RenderLink | include\html_lib.asp
RenderListBox | include\html_lib.asp
RenderListBoxFromArray | include\html_lib.asp
RenderListBoxFromSimpleList | include\html_lib.asp
RenderListFromSimpleList | include\html_lib.asp
RenderNavbar | template\navbar.inc
RenderPageInfo | error\500error.asp
RenderPasswordBox | include\html_lib.asp
RenderPostData | error\500error.asp
RenderPreFormattedText | include\html_lib.asp
RenderProductLink | include\catalog.asp
RenderProductURL | include\catalog.asp
RenderRadioButton | include\html_lib.asp
RenderResetButton | include\html_lib.asp
RenderSearchResultRow | include\catalog.asp
RenderSearchResults | include\catalog.asp
RenderSubmitButton | include\html_lib.asp
RenderTable | include\html_lib.asp
RenderTableDataRow | include\html_lib.asp
RenderTableHeaderRow | include\html_lib.asp
RenderTableRow | include\html_lib.asp
RenderTextBox | include\html_lib.asp
RenderText | include\html_lib.asp
RenderTime | error\500error.asp
RenderUnorderedList | include\html_lib.asp
RenderUnorderedListFromSimpleList | include\html_lib.asp
rowRenderAdvancedSearchOptionsForOrders | services\include\render_orders.asp
rowRenderBlankProperty | services\include\render_edit_blank.asp
rowRenderEditSheetBlankLine | services\include\render_common.asp
rowRenderHeader | services\include\render_common.asp
rowRenderHiddenProperty | services\include\render_edit_common.asp
rowRenderLineItemHeader | services\include\render_orders.asp
rowRenderListHeading | services\include\render_list.asp
rowRenderListHeadingForOrders | services\include\render_orders.asp
rowRenderMessageBoxPageContents | services\include\render_messagebox.asp
rowRenderProperty | services\include\render_edit_common.asp
rowRenderPropertyGroup | services\include\render_edit_common.asp
rowRenderPropertyTip | services\include\render_edit_common.asp
rowRenderReadOnlyProperty | services\include\render_edit_common.asp
rowRenderSearchOptionForDate | services\include\render_common.asp
rowRenderSearchOptionForInteger | services\include\render_common.asp
rowRenderSearchOptionForString | services\include\render_common.asp
rowRenderSimpleSearchOptionsForOrders | services\include\render_orders.asp
rowRenderStatusInfo | services\include\render_common.asp
rowsRenderAdvanceSearchOptionsForProfiles | services\include\render_list.asp
rowsRenderSimpleSearchOptionsForProfiles | services\include\render_list.asp
rsFreeTextSearch | include\catalog.asp
rsGetOrderDetails | services\include\requisition.asp
rsGetOrdersList | services\include\requisition.asp
rsGetOrgDetails | services\include\get_profiles.asp
rsGetProfileByKey | include\std_profile_lib.asp
rsGetProfile | include\std_profile_lib.asp
rsGetProfileDetails | services\include\get_profiles.asp
rsGetProfilesList | services\include\get_profiles.asp
rsGetShippingMethods | pickship.asp
rsGetUserDetails | services\include\get_profiles.asp
RsToDict | include\std_util_lib.asp
RunMtsPipeline | include\std_pipeline_lib.asp
RunOrderPipeline | _recvpo.asp


ParseRequestForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts a posted form to UNICODE characters and returns it as a string.

Definition

Function ParseRequestForm()

Return Value

A string containing the posted form, converted to UNICODE characters.

Defined in File

_recvpo.asp

Routines Called

None.

Called By

Main (_recvpo.asp)


PasswordActionHandlers - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function distributes the actual work to one of three other functions based on the value of the sAction parameter, and the return value of those functions is returned as the return value of this function.

Definition

Function PasswordActionHandlers(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Return Value

This function returns the value returned by one of the three functions ChangeActionHandler, UpdatePasswordActionHandler, or htmCancelUpdatePasswordAction.

Defined in File

services\change_password.asp

Routines Called

ChangeActionHandler

GenerateURL

htmCancelUpdatePasswordAction

UpdatePasswordActionHandler

Called By

Main (services\change_password.asp)

Remarks

If the sAction parameter is not equal to CHANGE_ACTION, SAVE_ACTION, or CANCEL_ACTION, the user is redirected to an error page.


PeekField - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function attempts to read a field from a Recordset object. If the field does not exist, it returns Null.

Definition

Function PeekField(
  byVal rs,
  byVal sFieldName
)

Defined in File

product.asp

Routines Called

None.

Called By

htmRenderUserDefinedProductProperties


PerformSpecificationSearch - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub provides business logic to help perform a specification search.

Definition

Sub PerformSpecificationSearch(
  byRef bViewResults,
  byRef oCatalog,
  byRef rsResults,
  byRef rsFields,
  byRef iMatchesFound,
  byVal sSearchHandle,
  byRef bClosestMatches
)

Defined in File

stepsrch.asp

Routines Called

bClickedViewButton

Called By

PrepareSpecificationSearch


PopulateOrderSearchCriteria - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves search criteria related to an order from the HTTP request and places it into the passed Dictionary object. It also performs validation for some date-related criteria.

Definition

Sub PopulateOrderSearchCriteria(
  byRef oSearchDictionary
)

Defined in File

services\include\lib.asp

Routines Called

bInvalidDate

GetRequestString

Called By

GetSearchDictionaryForThisPage


PopulateProfileSearchCriteria - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub retrieves search criteria related to a profile from the HTTP request and places it into the passed Dictionary object. It also performs validation for some date-related criteria.

Definition

Sub PopulateProfileSearchCriteria(
  byRef oSearchDictionary
)

Defined in File

services\include\lib.asp

Routines Called

bInvalidDate

GetRequestString

listCloneProfileSchema

Called By

GetSearchDictionaryForThisPage


PredictedPropToHREF - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs a hyperlink into the catalog from the products recommended by the Predictor resource.

Definition

Function PredictedPropToHREF(
  strProp
)

Defined in File

basket.asp

Routines Called

DoubleQuote

GenerateURL

Called By

htmRenderPredictions


PrepareAddAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes its five parameters in preparation for adding a user in Partner Services.

Definition

Sub PrepareAddAction(
  byRef sStatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

listCloneProfileSchema

Called By

htmEditPageActionHandlers


PrepareCatalogSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderCatalogSection by initializing the values of the passed parameters.

Definition

Sub PrepareCatalogSection(
  byRef rsCatalogs,
  byRef iCatalogCount,
  byRef oCatalog,
  byRef sCatalogName,
  byRef rsCategories
)

Defined in File

template\menu.asp

Routines Called

GetRecordCount

mscsGetSubCategoriesList

mscsUserCatalogs

Called By

htmRenderMenu

Remarks

This sub is called to prepare for creating the catalog section of the menu area.

The rsCatalogs parameter is initialized to a Recordset object of the catalogs associated with the user, and the iCatalogCount parameter is initialized to the number of catalogs in that Recordset object.

If the number of catalogs is one (1), then the remaining three parameters are set to reference the corresponding Catalog object, the name of the catalog, and a Recordset object of the categories in that catalog, respectively.


PrepareCloseAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmCloseActionHandler by initializing the values of all of the passed parameters other than the first two.

Definition

Sub PrepareCloseAction(
  byVal sSubAction,
  byVal sProfileIDs,
  byRef sActionPage,
  byRef sPreviousAction,
  byRef sStatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema,
  byRef sSourcePage,
  byRef bDirty
)

Defined in File

services\include\edit_handlers.asp

Routines Called

bIsPropertyValueAdded

bProfileHasChanged

GenerateURL

GetRequestString

iGetCountOfProfiles

listCloneProfileSchema

sGetThisPageProperty

Called By

htmEditPageActionHandlers


PrepareCloseOrderDetailsAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the sub CloseOrderDetailsActionHandler by initializing the values of the passed parameters.

Definition

Sub PrepareCloseOrderDetailsAction(
  byRef sProfileListPage,
  byRef sSourcePage
)

Defined in File

services\include\order_handlers.asp

Routines Called

GetRequestString

sGetThisPageProperty

Called By

Main (services\customer\view_order.asp)

Main (services\partner\view_order.asp)


PrepareCopyAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmCopyActionHandler by initializing the values of all of the passed parameters other than the first two.

Definition

Sub PrepareCopyAction(
  byVal sSubAction,
  byVal sProfileIDs,
  byRef iProfileCount,
  byRef iStatusID,
  byRef sStatusField,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef sProfileListPage,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

iGetCountOfProfiles

listCloneProfileSchema

sGetThisPageProperty

Called By

htmEditPageActionHandlers


PrepareDefaultPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderDefaultPage by initializing the values of all of the passed parameters other than the first one.

Definition

Sub PrepareDefaultPage(
  byVal CatalogSetID,
  byRef rsCatalogs,
  byRef iCatalogCount,
  byRef sCatalogName,
  byRef oCatalog,
  byRef oCategory,
  byRef rsProducts,
  byRef nPageNumber
)

Defined in File

default.asp

Routines Called

GetRecordCount

mscsGetCategoryObject

mscsGetProductList

mscsUserCatalogsFromID

Called By

Main (default.asp)


PrepareDeleteAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmDeleteActionHandler by initializing the values of the last two parameters.

Definition

Sub PrepareDeleteAction(
  byVal sSubAction,
  byVal sProfileIDs,
  byRef sProfileListPage,
  byRef iProfileCount
)

Defined in File

services\include\edit_handlers.asp

Routines Called

DeleteSelectedProfiles

iGetCountOfProfiles

sGetThisPageProperty

Called By

htmEditPageActionHandlers

Remarks

If the sSubAction parameter is set to MSGBOX_ACTION_YES, the sub DeleteSelectedProfiles is called to delete the profiles specified by the sProfileIDs parameter.


PrepareDeleteAllAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the sub DeleteAllActionHandler by initializing the value of its one parameter.

Definition

Sub PrepareDeleteAllAction(
  byRef sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

DeleteAllProfiles

dictGetSearchDictionaryForPage

sGetThisPageProperty

Called By

htmEditPageActionHandlers

Remarks

If the user chose "yes" in the associated message box, the sub DeleteAllProfiles is called to delete all profiles matching the search criteria.


PrepareDeselectAllAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the sub DeSelectAllActionHandler by initializing the value of its one parameter.

Definition

Sub PrepareDeselectAllAction(
  byRef sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

sGetThisPageProperty

Called By

htmEditPageActionHandlers


PrepareEditAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmEditAction by initializing the values of the last two parameters.

Definition

Sub PrepareEditAction(
  byVal sSubAction,
  byVal sProfileIDs,
  byRef iProfileCount,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

iGetCountOfProfiles

listCloneProfileSchema

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)

Main (services\partner\account.asp)

Remarks

The listProfileSchema parameter is only initialized if the iProfileCount parameter is initialized to a value greater than zero (0).


PrepareEditAllAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes the parameters passed to it.

Definition

Sub PrepareEditAllAction(
  byRef iStatusID,
  byRef sStatusField,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

listCloneProfileSchema

Called By

None.


PrepareInsertProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmInsertProfile by initializing the values of all parameters other than sSubAction and sProfileIDs.

Definition

Sub PrepareInsertProfile(
  byVal sSubAction,
  byRef bInserted,
  byRef sProfileIDs,
  byRef sStatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

bCheckIfProfileExists

bInsertProfile

listCloneProfileSchema

ValidateFields

Called By

htmSaveActionHandler

Remarks

This sub checks whether the specified profile exists before attempting to add it.

The sStatusField and iStatusID parameters are used to indicate errors.


PrepareLoginPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderLoginPage by initializing the values of all parameters passed to it.

Definition

Sub PrepareLoginPage(
  byRef bSuccess,
  byRef bMustTransferBasket,
  byRef bDisplayGuestOption,
  byRef bDisplayNewUserRegistrationOption,
  byRef sUserID,
  byRef iErrorLevel,
  byRef rsLoginUser,
  byRef mscsGuestUser,
  byRef dictFldVals,
  byRef dictFldErrs,
  byRef listFlds,
  byRef listFrmErrs,
  byRef urlAction
)

Defined in File

login\login.asp

Routines Called

GenerateURL

GetCurrentUserProfile

GetQualifiedName

GetSubmittedFieldValues

IsFormSubmitted

MoveBasketItems

SetTestCookie

ValidateSubmittedLoginData

Called By

Main (login\login.asp)

Remarks

This sub performs a lot of processing, including retrieving data from a login form, if present, basket transfer where appropriate, and cookie and ticket processing.


PrepareLoginSection - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderLoginSection by initializing the values of the passed parameters.

This function gets the current user profile and sets the sLoginName parameter to the current user name.

Definition

Sub PrepareLoginSection(
  byRef sAuthUser,
  byRef bFormLoginSupported,
  byRef mscsUser,
  byRef sLoginName
)

Defined in File

template\menu.asp

Routines Called

EnsureUserProfile

GetQualifiedName

Called By

htmRenderMenu

Remarks

This sub is called to prepare for the creation of the login section of the menu area.

The mscsUser and sLoginName parameters are not initialized in all cases.


PrepareLogoffPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderLogoffPage by initializing the values of the parameters passed to it.

Definition

Sub PrepareLogoffPage(
  byRef bReEnterWithFormLogin,
  byRef bReEnterAsGuestOption
)

Defined in File

login\logoff.asp

Routines Called

GenerateURL

Called By

Main (login\logoff.asp)

Remarks

This function logs off the current user by causing the associated cookies to expire.


PrepareNewUserPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderNewUserPage by initializing the values of the parameters passed to it. It also validates submitted form data and registers the user.

Definition

Sub PrepareNewUserPage(
  byRef urlAction,
  byRef dictFldVals,
  byRef dictFldErrs
)

Defined in File

login\newuser.asp

Routines Called

GenerateURL

GetCurrentUserProfile

GetQualifiedName

GetSubmittedFieldValues

IsFormSubmitted

iValidateSubmittedRegistrationData

mscsNewRegisteredUserProfile

mscsTransferGuestUserProfile

SetTestCookie

Called By

Main (login\newuser.asp)

Remarks

If the submitted form data is invalid or no form was submitted, this sub prepares to render the new user form.


PrepareOrderDetailsAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmOrderDetailsActionHandler by initializing the value of the iProfileCount parameter.

Definition

Sub PrepareOrderDetailsAction(
  byVal sSubAction,
  byVal sProfileIDs,
  byRef iProfileCount
)

Defined in File

services\include\order_handlers.asp

Routines Called

iGetCountOfProfiles

Called By

Main (services\customer\view_order.asp)

Main (services\partner\view_order.asp)


PrepareOrderList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the calls to the routines formRenderOrderSearchOptions, formRenderOrdersListContents, rowRenderStatusInfo, and tableRenderFooterInfo by initializing the values of all parameters other than the first.

Definition

Sub PrepareOrderList(
  byVal sAction,
  byRef dictSearchOptions,
  byRef mscsUserProfile,
  byRef sStatusField,
  byRef iStatusID,
  byRef rsOrders,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages,
  byRef sCriteria,
  byRef sTargetPage
)

Defined in File

services\include\logic_orders.asp

Routines Called

EnsureUserProfile

GetRequestString

GetSearchDictionaryForThisPage

rsGetOrdersList

sGetThisPageProperty

Called By

htmRenderOrderList


PreparePickShipForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderPickshipForm by initializing the values of the parameters passed to it.

Definition

Sub PreparePickShipForm(
  byRef mscsOrderGrp,
  byRef objContext,
  byRef dictAggregate,
  byRef bNoMethodsAvailable
)

Defined in File

pickship.asp

Routines Called

CatchErrors (pickship.asp)

dictAggregatePreviews

GenerateURL

GetPipelineLogFile

LoadBasket

rsGetShippingMethods

RunMtsPipeline

Called By

Main (pickship.asp)

Remarks

This sub performs a lot of processing in preparation for rendering the shipping method form, including loading the basket, running the basket pipeline, and creating and populating a Shipping object.


PrepareRenderMenu - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderMenu by initializing the values of the parameters passed to it.

Definition

Sub PrepareRenderMenu(
  byRef mscsUser,
  byRef CatalogSetID
)

Defined in File

template\menu.asp

Routines Called

GetCurrentUserProfile

mscsUserCatalogsetID

Called By

This routine is called by code outside of any routine (sub or function) in the file template\menu.asp.


PrepareSaveAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub currently performs no processing at all, but is called before calls to the function htmSaveActionHandler. If you modify the latter function and need to perform special preparation before calling it, consider adding the preparation code to this function.

Definition

Sub PrepareSaveAction()

Defined in File

services\include\edit_handlers.asp

Routines Called

None.

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)

Main (services\partner\account.asp)


PrepareSaveAllAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmSaveAllActionHandler by initializing the values of the parameters passed to it. When the profile changes are found to be valid, the sub SaveAllSelectedProfiles is called to save the changes.

Definition

Sub PrepareSaveAllAction(
  byRef StatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

dictGetSearchDictionaryForPage

listCloneProfileSchema

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

SaveAllSelectedProfiles

sGetThisPageProperty

ValidateFields

Called By

htmSaveActionHandler

Remarks

When found to be valid, this sub saves the new property values entered by the user in all profiles returned from the search criteria in the corresponding list page.


PrepareSaveChangesConfirmation - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmChangePasswordActionHandler by initializing the values of all parameters passed to it other than the first. This sub is also called by PrepareSelectActionHandlerForEdit to help initialize its parameters.

Definition

Sub PrepareSaveChangesConfirmation(
  byVal sSubAction,
  byRef sPreviousAction,
  byRef listProfileSchema,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues
)

Defined in File

services\include\messagebox_handlers.asp

Routines Called

GetRequestString

listCloneProfileSchema

ValidateFields

Called By

htmEditPageActionHandlers

Main (services\customer\account.asp)

PrepareSelectActionHandlerForEdit


PrepareSaveProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmSaveProfiles by initializing the values of all parameters passed to it other than the first three.

Definition

Sub PrepareSaveProfiles(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byRef bUpdated,
  byRef sSourcePage,
  byRef sStatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

bCheckIfProfileExists

bSaveProfileDetails

GetRequestString

iGetCountOfProfiles

listCloneProfileSchema

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

rsGetProfileDetails

ValidateFields

Called By

htmSaveActionHandler


PrepareSelectActionHandlerForEdit - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmSelectActionHandlerForEdit by initializing the values of all parameters passed to it other than the first three.

Definition

Sub PrepareSelectActionHandlerForEdit(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byRef sActionPage,
  byRef sPreviousAction,
  byRef listProfileSchema,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues
)

Defined in File

services\include\edit_handlers.asp

Routines Called

GenerateURL

PrepareSaveChangesConfirmation

sGetSelectActionPropertyName

Called By

Main (services\partner\account.asp)


PrepareSelectAllAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the sub SelectAllActionHandler by initializing the value of the sProfileListPage parameter.

Definition

Sub PrepareSelectAllAction(
  byRef sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

sGetThisPageProperty

Called By

htmEditPageActionHandlers


PrepareSelectedAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmSelectedActionHandlerForEdit by initializing the values of the last three parameters.

Definition

Sub PrepareSelectedAction(
  byRef sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byRef sStatusField,
  byRef iStatusID,
  byRef bValidPostedValues,
  byRef bDisplayPostedValues,
  byRef listProfileSchema
)

Defined in File

services\include\edit_handlers.asp

Routines Called

listCloneProfileSchema

UpdateSelectActionPropertyName

Called By

Main (services\partner\account.asp)

Remarks

This sub is called when the user has returned from a list page.


PrepareShippingMethods - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderShippingMethods by initializing the value of the first parameter. The sSelectedMethodID parameter is initialized to the last shipping method chosen by the user, if any.

Definition

Sub PrepareShippingMethods(
  byRef mscsOrderGrp,
  byRef sSelectedMethodID
)

Defined in File

pickship.asp

Routines Called

GenerateURL

GetAnyLineItem

LoadBasket

Called By

Main (pickship.asp)

Remarks

This sub loads the basket and if found to be empty, redirects the user to the basket page.


PrepareSpecificationSearch - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares for the call to the function htmRenderStepSearchPageContent by initializing the values of the parameters passed to it. It does this by actually performing the indicated specification search.

Definition

Sub PrepareSpecificationSearch(
  byRef sCategoryName,
  byRef sCatalogName,
  byRef oCatalog,
  byRef bViewResults,
  byRef rsFields,
  byRef rsResults,
  byRef sSearchHandle,
  byRef iMatchesFound,
  byRef iConstraintFieldsCount,
  byRef iNonConstraintFieldsCount,
  byRef arr1,
  byRef arr2,
  byRef bNoValues,
  byRef bClosestMatches
)

Defined in File

stepsrch.asp

Routines Called

GetSpecificationSearchClauses

PerformSpecificationSearch

Called By

Main (stepsrch.asp)


ProfileRefresh - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub refreshes the Profile Service.

Definition

Sub ProfileRefresh()

Defined in File

RefreshApp.asp

Routines Called

dictGetProfileSchemaForAllProfileTypes

InitProfileService

IsActiveDirectoryPresent

sGetActiveDirectoryDefaultNamingContext

Called By

This routine is called by code outside of any routine (sub or function) in the file RefreshApp.asp.


Ptag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function surrounds the string specified by the s parameter with the tags <P> and </P>, and then returns the resulting string.

Definition

Function PTag(
  s
)

Parameters

s
A string that contains the text to be wrapped in a P element, and then returned.

Return Value

A string that contains the text passed in the s parameter, surrounded by <P> and </P> tags.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

InsertParagraphBreaks


RecordClickToBasket - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub records clicks associated with click-required discounts into the OrderGroup object for later use by the OrderDiscount component.

Definition

Sub RecordClickToBasket(
  ciid
)

Defined in File

redir.asp

Routines Called

EnsureAccess

LoadBasket

Called By

Main (redir.asp)


RedirectOrderDetailsForIDs - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub is used to redirect the user to a page from which they can choose which order to retrieve details for.

Definition

Sub RedirectOrderDetailsForIDs()

Defined in File

services\include\order_handlers.asp

Routines Called

GenerateURL

sGetThisPageProperty

Called By

htmOrderDetailsActionHandler


ReDirectToPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub generates a URL for the specified page and appends name/value argument pairs based on the corresponding values in the arrKeys and arrValues array parameters. It then redirects the user using the constructed URL.

Definition

Sub ReDirectToPage(
  byVal sPageName,
  byVal arrKeys,
  byVal arrValues
)

Defined in File

services\include\lib.asp

Routines Called

GenerateURL

Called By

DeleteAllActionHandler

DeSelectAllActionHandler

htmCopyActionHandler

htmDeleteActionHandler

htmEditAction

SelectAllActionHandler


RedirectToPOConfirmation - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the basket as an order and then redirects the user to the purchase order confirmation page.

Definition

Sub RedirectToPOConfirmation(
  mscsOrderGrp
)

Defined in File

po.asp

Routines Called

GenerateURL

SaveBasketAsOrder

Called By

Main (po.asp)


RelocateRecordPointer - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes local variables used in the paging mechanism of the page that lists orders. It also sets the current record in the Recordset object specified by the rs parameter to the beginning of the specified page number.

Definition

Sub RelocateRecordPointer(
  byRef Count,
  byRef nPage,
  byRef nCountTemp,
  byRef bRecordCountPresent,
  byVal rs,
  byRef iPageNumber,
  byRef iTotalRecords
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

tableRenderOrdersListContents


RelocateRecordPointer2 - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub initializes local variables used in the paging mechanism of the page that lists profiles. It also sets the current record in the Recordset object specified by the rs parameter to the beginning of the specified page number.

Definition

Sub RelocateRecordPointer2(
  byRef Count,
  byRef nPage,
  byRef nCountTemp,
  byRef bRecordCountPresent,
  byVal rs,
  byRef iPageNumber,
  byRef iTotalRecords
)

Defined in File

services\include\render_list.asp

Routines Called

None.

Called By

tableRenderMultipleRecords


RemoveBlankItemsFromArray - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub copies all non-empty strings from the array specified by the arrItems parameter into the array specified by the arrNew parameter, discarding any previous contents of the latter.

Definition

Sub RemoveBlankItemsFromArray(
  byRef arrItems,
  byRef arrNew
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

ShowRefinedSearch


RemoveCreditCardInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function removes credit card information from the specified OrderGroup object. It is used when a user wants to change from using a credit card order to using a purchase order.

Definition

Function RemoveCreditCardInfo(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
A reference to the OrderGroup object from which all credit card information should be removed.

Return Value

Even though it is a function, this routine does not return any value.

Defined in File

po.asp

Routines Called

None.

Called By

SetPurchaseOrderInfo


RemoveEmptyOrderForms - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub removes empty OrderForm objects from the specified OrderGroup object.

Definition

Sub RemoveEmptyOrderForms(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
A reference to the OrderGroup object from which all empty OrderForm objects should be removed.

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

CatchErrors (pickship.asp)

CatchErrors (summary.asp)

CatchErrorsForPaymentPages

CheckBasket


RemovePurchaseOrderInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function removes purchase order information from the passed OrderGroup object. It is used when a user wants to change from using a purcahse order to using a credit card.

Definition

Function RemovePurchaseOrderInfo(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
A reference to the OrderGroup object from which the all purchase order information should be removed.

Return Value

Even though it is a function, this routine does not return any value.

Defined in File

crdtcard.asp

Routines Called

None.

Called By

SetCreditCardInfo


RenderBasketPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub renders the basket page, including the basket contents, discounts, and errors. It establishes the appropriate content in the two content variables htmPageContent and htmDiscountBannerSlot.

Definition

Sub RenderBasketPage(
  mscsOrderGrp,
  oOrderFormDisplayOrder,
  bBasketIsEmpty,
  iErrorCount
)

Defined in File

basket.asp

Routines Called

CollectBasketItems

GenerateURL

htmRenderBasket

htmRenderBasketWarnings

htmRenderCheckoutButton

htmRenderDiscountMessages

htmRenderPredictions

RenderDiscounts

RenderLink

RenderText

Called By

Main (basket.asp)


RenderCatalogLink - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a link to the specified catalog, using the specified FONT element attributes for the link text style.

Definition

Function RenderCatalogLink(
  sCatalogName,
  style
)

Parameters

sCatalogName
A string that specifies the name of the catalog for which the link will be constructed.
style
A string that contains attributes appropriate for the FONT element, used when rendering the catalog link text.

Return Value

A string containing the HTML that will render the constructed catalog link.

Defined in File

include\catalog.asp

Routines Called

RenderCatalogURL

RenderLink

RenderText

Called By

htmRenderCatalogList


RenderCatalogURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs the URL for a catalog. This produces the same result as calling the RenderCategoryURL function with an empty string for the sCategory parameter and the number one (1) for the nPage parameter.

Definition

Function RenderCatalogURL(
  sCatalogName
)

Parameters

sCatalogName
A string containing the name of the catalog for which the URL will be constructed.

Return Value

A string containing the constructed catalog URL.

Defined in File

include\catalog.asp

Routines Called

RenderCategoryURL

Called By

RenderCatalogLink


RenderCategoryLink - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a link to the specified catalog, category, and page number, using the specified FONT element attributes for the link text style.

Definition

Function RenderCategoryLink(
  sCatalogName,
  sCategory,
  nPage,
  style
)

Parameters

sCatalogName
A string containing the name of the catalog for which the link will be constructed.
sCategory
A string containing the name of the category for which the link will be constructed.
nPage
A number corresponding to the page within the category for which the link will be constructed.
style
A string that contains attributes appropriate for the FONT element, which will be used when rendering the category link text.

Return Value

A string containing the HTML that will render the constructed category link.

Defined in File

include\catalog.asp

Routines Called

RenderCategoryURL

RenderLink

RenderText

Called By

htmRenderCategoriesList

RenderSearchResultRow

ShowSearchMatches


RenderCategoryURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs the URL for a category by appending the specified catalog, category, and page number as arguments to the category page URL stored in the MSCSSitePages Dictionary object.

Definition

Function RenderCategoryURL(
  sCatalogName,
  sCategory,
  nPage
)

Parameters

sCatalogName
A string containing the name of the catalog for which the URL will be constructed.
sCategory
A string containing the name of the category for which the URL will be constructed.
nPage
A number corresponding to the page within the category for which the URL will be constructed.

Return Value

A string containing the constructed category URL.

Defined in File

include\catalog.asp

Routines Called

GenerateURL

Called By

htmRenderCategoryPage

RenderCatalogURL

RenderCategoryLink


RenderCheckBox - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "CHECKBOX", and for which other attribute values are supplied by the parameters.

Definition

Function RenderCheckBox(
  byVal sName,
  byVal sValue,
  byVal bChecked,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
sValue
A string containing a value to be assigned to the VALUE attribute.
bChecked
A Boolean, which if set to True, results in the CHECKED attribute being present in the resulting HTML.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified checkbox.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

htmRenderAddressBook

htmRenderBoolean

htmRenderFillOutForm

htmRenderUniqueIDForProfile

sRenderHTMLPreFixForProperty

tableRenderEditPageTasks


RenderDetailedInfoList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an unordered list containing detailed error information.

Definition

Function RenderDetailedInfoList()

Return Value

A string containing the detailed error information, formatted as an unordered list (UL element).

Defined in File

error\500error.asp

Routines Called

RenderErrorType

RenderPageInfo

RenderPostData

RenderTime

Called By

This routine is called by code outside of any routine (sub or function) in the file error\500error.asp.


RenderDiscounts - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render discount banners, typically in the content area associated with the content variable htmDiscountBannerSlot. The content is produced by calling the GetContent method of a ContentSelector object created within the function.

This function uses the two passed SimpleList objects, BasketDetails and ProductDetails, to give affinity to discounts that are completed by items in the basket, or to items that are shown on the page, respectively.

Definition

Function RenderDiscounts(
  ProductDetails,
  BasketDetails,
  nDiscountsToShow
)

Parameters

ProductDetails
When present, a SimpleList object assigned to a property of the ContentSelector object named "Products".
BasketDetails
When present, a SimpleList object assigned to a property of the ContentSelector object named "Items".
nDiscountsToShow
A number specifying the number of discounts to show, assigned to a property of the ContentSelector object named "NumRequested".

Return Value

A string containing the HTML that will result in the rendering of the appropriate discounts, typically within the content area associated with the content variable htmDiscountBannerSlot.

Defined in File

template\discount.asp

Routines Called

GetCurrentUserProfile

Called By

Main (product.asp)

RenderBasketPage

Remarks

The parameters ProductDetails and BasketDetails, when present, provide information to the associated Content Selection pipeline. This pipeline uses this information to propose discounts related to products being shown on the current page, or items currently in the basket, respectively.


RenderElement - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an arbitrary HTML element and its associated attributes and content, as specified by the parameters.

Definition

Function RenderElement(
  byVal sElement,
  byVal sContent,
  byVal sAttList
)

Parameters

sElement
A string containing the name of the HTML element to be constructed for rendering.
sContent
A string containing the content to appear between the element starting and ending tags.
sAttList
A string containing any space-separated "attribute=value" pairs to be included in the starting element tag. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the arbitrary HTML element.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

None.


RenderErrorType - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render detailed error information based on the contents of the object returned by a call to the GetLastError method of the intrinsic Server object.

Definition

Function RenderErrorType()

Return Value

A string containing the HTML that will render the detailed error information, formatted to make it more readable.

Defined in File

error\500error.asp

Routines Called

None.

Called By

RenderDetailedInfoList


RenderForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the specified HTML form.

Definition

Function RenderForm(
  byVal urlAction,
  byVal htmBody,
  byVal iHTTPMethod
)

Parameters

urlAction
A string that contains the URL to be assigned to the ACTION attribute.
htmBody
A string containing the content for the body of the HTML FORM element being constructed. In other words, the content to appear between the <FORM> tag and the </FORM> tag.
iHTTPMethod
A number that specifies the value to be assigned to the METHOD attribute. If this parameter is equal to one (1), the METHOD attribute will be assigned the string "POST"; otherwise it will be assigned the string "GET".

Return Value

A string containing the HTML that will render the specified HTML form.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

formRenderBlankEditPageBody

formRenderChangePasswordPageContents

formRenderEditPageBody

formRenderListPageContents

formRenderOrderContents

formRenderOrderSearchOptions

formRenderOrdersListContents

formRenderPagingButtons

formRenderProfileSearchOptions

htmRenderAddressBook

htmRenderBasket

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderCheckoutButton

htmRenderEditPage

htmRenderFillOutForm

htmRenderOrderDetails

htmRenderOrderList

htmRenderPaymentOptionsForUser

htmRenderPickshipForm

htmRenderProfilesList

htmRenderSearchSection

htmRenderShippingMethods

htmRenderVerifyWithForm

Main (product.asp)

ShowRefinedSearch

tableRenderMessageBoxPageButtons


RenderHiddenField - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "HIDDEN", and for which other attribute values are supplied by the parameters.

Definition

Function RenderHiddenField(
  byVal sName,
  byVal sValue
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
sValue
A string containing a value to be assigned to the VALUE attribute.

Return Value

A string containing the HTML that represents the specified hidden INPUT element.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

cellRenderReadOnlyProperty

colRenderForeignKeyProperty

colRenderPrimaryKeyProperty

colRenderUniqueKeyProperty

formRenderBlankEditPageBody

formRenderChangePasswordPageContents

formRenderEditPageBody

formRenderListPageContents

formRenderOrderContents

formRenderOrderSearchOptions

formRenderPagingButtons

formRenderProfileSearchOptions

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

htmRenderUniqueIDForProfile

htmRenderVerifyWithForm

Main (product.asp)

rowRenderHiddenProperty

ShowRefinedSearch

tableRenderMessageBoxPageButtons

tableRenderOrdersListContents


RenderImage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an IMG element for which other attribute values are supplied by the parameters.

Definition

Function RenderImage(
  byVal urlSource,
  byVal iWidth,
  byVal iHeight,
  byVal sDesc,
  byVal sAttList
)

Parameters

urlSource
A string containing a URL to be assigned to the SRC attribute.
iWidth
A string containing a value to be assigned to the WIDTH attribute.
iHeight
A string containing a value to be assigned to the HEIGHT attribute.
sDesc
A string containing text to be assigned to the ALT attribute.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the IMG element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified image.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

htmRenderUserDefinedProductProperties


RenderImageButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "IMAGE", and for which other attribute values are supplied by the parameters.

Definition

Function RenderImageButton(
  byVal sImageName,
  byVal sImageSource,
  byVal sAttList
)

Parameters

sImageName
A string containing text to be assigned to the NAME attribute.
sImageSource
A string containing a URL to be assigned to the SRC attribute.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified image button.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

None.


RenderLink - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a link (an HTML A element) for which the attribute values and hot text are supplied by the parameters.

Definition

Function RenderLink(
  byVal url,
  byVal htmText,
  byVal sAttList
)

Parameters

url
A string containing a URL to be assigned to the HREF attribute.
htmText
A string containing the hot text of the link. In other words, the text to appear between the <A> tag and the </A> tag.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the starting A element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified link.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

colRenderAdvancedSearchTab

colRenderSimpleSearchTab

htmRenderAddressBookPage

htmRenderAddressRows

htmRenderBasket

htmRenderCategoryPage

htmRenderConfirmationPage

htmRenderCustomerServiceSection

htmRenderLoginPage

htmRenderLoginSection

htmRenderLogoffPage

htmRenderOrderForm

htmRenderPartnerServiceSection

htmRenderPickshipForm

htmRenderSearchDeptPageContent

htmRenderSearchSection

htmRenderShippingMethods

Main (error\badurl.asp)

Main (error\noauth.asp)

Main (error\profile.asp)

Main (welcome.asp)

RenderBasketPage

RenderCatalogLink

RenderCategoryLink

RenderNavbar

RenderProductLink


RenderListBox - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters.

Definition

Function RenderListBox(
  byVal iSource,
  byVal sName,
  colItemNames,
  colItemValues,
  byVal sSelectedOption,
  byVal iSize,
  byVal bMultiple,
  byVal sAttList
)

Parameters

iSource
A number that specifies the type of the colItemNames and colItemValues parameters. Legal values are the constants SIMPLELIST_COLLECTION, DICTIONARY_COLLECTION, and ARRAY_COLLECTION, each specifying the indicated type of collection.
sName
A string containing a value to be assigned to the NAME attribute.
colItemNames
A SimpleList object, a Dictionary object, or an array that contains the names of the selection choices that the user will see in the listbox, specified as content of the corresponding OPTION elements. The iSource parameter specifies the type of this parameter.
colItemValues
A SimpleList object, a Dictionary object, or an array that contains the values of the selection choices, used as the values assigned to the VALUE attributes of the corresponding OPTION elements. The iSource parameter specifies the type of this parameter.
sSelectedOption
A string that, if found to match one of the values supplied in the colItemValues parameter, results in the SELECTED attribute being present in the corresponding OPTION element.
iSize
A number containing a value to be assigned to the SIZE attribute.
bMultiple
A Boolean, which if set to True, results in the MULTIPLE attribute being present in the SELECT element.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the SELECT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified listbox.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

RenderListBoxFromArray

RenderListBoxFromSimpleList

Remarks

The pair of SimpleList objects, Dictionary objects, or arrays specified by the colItemNames and colItemValues parameters must each have the same number items.


RenderListBoxFromArray - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters. It serves as a wrapper for the function RenderListBox, hardcoding the iSource parameter to the constant ARRAY_COLLECTION, and passing through all other parameters as is.

Definition

Function RenderListBoxFromArray(
  byVal sName,
  arrItemNames,
  arrItemValues,
  byVal sSelectedOption,
  byVal iSize,
  byVal bMultiple,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
arrItemNames
An array that contains the names of the selection choices that the user will see in the listbox, specified as content of the corresponding OPTION elements.
arrItemValues
An array that contains the values of the selection choices, used as the values assigned to the VALUE attributes of the corresponding OPTION elements.
sSelectedOption
A string that, if found to match one of the values supplied in the colItemValues parameter, results in the SELECTED attribute being present in the corresponding OPTION element.
iSize
A number containing a value to be assigned to the SIZE attribute.
bMultiple
A Boolean, which if set to True, results in the MULTIPLE attribute being present in the SELECT element.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the SELECT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified listbox.

Defined in File

include\html_lib.asp

Routines Called

RenderListBox

Called By

ShowRefinedSearch

Remarks

The pair of arrays specified by the colItemNames and colItemValues parameters must each have the same number items.


RenderListBoxFromSimpleList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a SELECT element and its subordinate OPTION elements, populating the values for the various attributes and content based on the values supplied by the parameters. It serves as a wrapper for the function RenderListBox, hardcoding the iSource parameter to the constant SIMPLELIST_COLLECTION, and passing through all other parameters as is.

Definition

Function RenderListBoxFromSimpleList(
  byVal sName,
  listItemNames,
  listItemValues,
  byVal sSelectedOption,
  byVal iSize,
  byVal bMultiple,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
listItemNames
A SimpleList object that contains the names of the selection choices that the user will see in the listbox, specified as content of the corresponding OPTION elements.
listItemValues
A SimpleList object that contains the values of the selection choices, used as the values assigned to the VALUE attributes of the corresponding OPTION elements.
sSelectedOption
A string that, if found to match one of the values supplied in the colItemValues parameter, results in the SELECTED attribute being present in the corresponding OPTION element.
iSize
A number containing a value to be assigned to the SIZE attribute.
bMultiple
A Boolean, which if set to True, results in the MULTIPLE attribute being present in the SELECT element.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the SELECT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified listbox.

Defined in File

include\html_lib.asp

Routines Called

RenderListBox

Called By

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

Remarks

The pair of SimpleList objects specified by the colItemNames and colItemValues parameters must each have the same number items.


RenderListFromSimpleList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a sequence of formatted text items, each followed by the BR element.

Definition

Function RenderListFromSimpleList(
  listItems,
  style
)

Parameters

listItems
A SimpleList object containing strings to be rendered using the FONT element attributes specified by the style parameter, and each followed by a BR element.
style
A string containing a space-separated list of "attribute=value" pairs to be passed to the RenderText function as its sAttList parameter, and used as attributes to the FONT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified list of formatted text items, where each item is followed by a BR element so that it will render on its own line.

Defined in File

include\html_lib.asp

Routines Called

RenderText

Called By

None.


RenderNavbar - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the navigation bar, which includes links to the home page, the catalog, and the basket, surrounded by square brackets.

Definition

Function RenderNavbar(
  byVal style
)

Parameters

style
This parameter is not used.

Return Value

A string containing the HTML that will render the navigation bar.

Defined in File

template\navbar.inc

Routines Called

CacheFragment

GenerateURL

LookupCachedFragment

RenderLink

RenderText

Tag

Called By

This routine is called by code outside of any routine (sub or function) in the file template\navbar.inc.


RenderPageInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the contents of the server request variables REQUEST_METHOD and SCRIPT_NAME, and is called as part of the error information formatted by the function RenderDetailedInfoList.

Definition

Function RenderPageInfo()

Return Value

A string containing the HTML that will render the contents of the server request variables REQUEST_METHOD and SCRIPT_NAME.

Defined in File

error\500error.asp

Routines Called

None.

Called By

RenderDetailedInfoList


RenderPasswordBox - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "PASSWORD", and for which other attribute values are supplied by the parameters.

Definition

Function RenderPasswordBox(
  byVal sName,
  byVal sValue,
  byVal iSize,
  byVal iMaxLength,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
sValue
A string containing a value to be assigned to the VALUE attribute.
iSize
A number containing a value to be assigned to the SIZE attribute.
iMaxLength
A number containing a value to be assigned to the MAXLENGTH attribute.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified password box.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

colRenderPasswordProperty

htmRenderFillOutForm

tableRenderChangePasswordContents


RenderPostData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the contents of a posted form, and is called as part of the error information formatted by the function RenderDetailedInfoList. Only the first lngMaxFormBytes will be included, and the contents will be HTML encoded.

Definition

Function RenderPostData()

Return Value

A string containing the HTML that will render the first lngMaxFormBytes bytes of the posted form.

Defined in File

error\500error.asp

Routines Called

None.

Called By

RenderDetailedInfoList


RenderPreFormattedText - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the passed string as pre-formatted text.

Definition

Function RenderPreFormattedText(
  byVal s,
  byVal style
)

Parameters

s
A string containing the text to be placed within PRE tags.
style
This parameter is not used.

Return Value

A string containing the contents of the s parameters, surrounded with <PRE> and </PRE> tags.

Defined in File

include\html_lib.asp

Routines Called

Tag

Called By

htmRenderDiscountMessageGroup

htmRenderDiscountsApplied

htmRenderDiscountsDescriptions


RenderProductLink - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a link to the product specified by the parameters, using the specified FONT element attributes for the link text style.

Definition

Function RenderProductLink(
  sCatalogName,
  sProductCategory,
  sProductName,
  sProductID,
  style
)

Parameters

sCatalogName
A string that specifies the name of the catalog in which the product appears, used to construct the URL for the link.
sProductCategory
A string that specifies the name of the category in which the product appears, used to construct the URL for the link.
sProductName
A string that specifies the name of the product, used for the hot text of the link.
sProductID
A string that specifies the product ID, used to construct the URL for the link.
style
A string that contains attributes appropriate for the FONT element, used when rendering the hot text of the link.

Return Value

A string containing the HTML that will render the constructed product link.

Defined in File

include\catalog.asp

Routines Called

RenderLink

RenderProductURL

RenderText

Called By

htmRenderProductsTable

RenderSearchResultRow

ShowSearchMatches


RenderProductURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs the URL for the specified product.

Definition

Function RenderProductURL(
  sCatalogName,
  sProductCategory,
  sProductID
)

Parameters

sCatalogName
A string that specifies the name of the catalog in which the product appears, used to construct the URL for the product.
sProductCategory
A string that specifies the name of the category in which the product appears, used to construct the URL for the product.
sProductID
A string that specifies the product ID, used to construct the URL for the product.

Return Value

A string containing the URL for the product.

Defined in File

include\catalog.asp

Routines Called

GenerateURL

Called By

RenderProductLink


RenderRadioButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "RADIO", and for which other attribute values are supplied by the parameters.

Definition

Function RenderRadioButton(
  byVal sName,
  byVal sValue,
  byVal bChecked,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
sValue
A string containing a value to be assigned to the VALUE attribute.
bChecked
A Boolean, which if set to True, results in the CHECKED attribute being present in the resulting HTML.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified radio button.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

arrPopulateOrderHeaderDetails

htmRenderAddressRows

htmRenderShippingMethods

htmRenderShippingOptionsEx

htmRenderUniqueIDForProfile

htmRenderVariantsList


RenderResetButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "RESET", and for which other attribute values are supplied by the parameters.

Definition

Function RenderResetButton(
  byVal sBtnName,
  byVal sBtnText,
  byVal sAttList
)

Parameters

sBtnName
A string containing a value to be assigned to the NAME attribute.
sBtnText
A string containing a value to be assigned to the VALUE attribute, which will appear as the text of the Reset button.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified Reset button.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

htmRenderFillOutForm


RenderSearchResultRow - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the current record from a Recordset object containing search results.

Definition

Function RenderSearchResultRow(
  rsResult,
  style
)

Parameters

rsResult
A Recordset object from which the current record will be used to provide data for the HTML to be constructed.
style
A string containing a space-separated list of "attribute=value" pairs to be passed to the RenderText function as its sAttList parameter, and used as attributes to the FONT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the current record from the passed search results Recordset object.

Defined in File

include\catalog.asp

Routines Called

FormatOutput

RenderCategoryLink

RenderProductLink

RenderText

Called By

RenderSearchResults


RenderSearchResults - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the search results contained in the passed Recordset object.

Definition

Function RenderSearchResults(
  byVal sPhrase,
  byVal rsResult,
  byVal iRecordCount,
  byVal style
)

Parameters

sPhrase
A string containing the search criteria, to be included in the resulting HTML.
rsResult
A Recordset object containing the search results to include in the resulting HTML.
iRecordCount
A number specifying the number of records in the Recordset object specified by the rsResult parameter, to be included in the resulting HTML.
style
A string containing a space-separated list of "attribute=value" pairs to be passed to the RenderText function as its sAttList parameter, and used as attributes to the FONT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the search results contained in the passed Recordset object.

Defined in File

include\catalog.asp

Routines Called

RenderSearchResultRow

RenderText

Called By

htmRenderFullTextSearchResults


RenderSubmitButton - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "SUBMIT", and for which other attribute values are supplied by the parameters.

Definition

Function RenderSubmitButton(
  byVal sBtnName,
  byVal sBtnText,
  byVal sAttList
)

Parameters

sBtnName
A string containing a value to be assigned to the NAME attribute.
sBtnText
A string containing a value to be assigned to the VALUE attribute, which will appear as the text of the Submit button.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified Submit button.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

colRenderForeignKeyProperty

colRenderPasswordProperty

formRenderOrderSearchOptions

formRenderPagingButtons

formRenderProfileSearchOptions

htmRenderAddressBook

htmRenderBasket

htmRenderCheckoutButton

htmRenderFillOutForm

htmRenderPaymentOptionsForUser

htmRenderPickshipForm

htmRenderSearchSection

htmRenderShippingMethods

htmRenderVerifyWithForm

Main (product.asp)

ShowRefinedSearch

tableChangePasswordTasks

tableRenderEditPageTasks

tableRenderListPageTasks

tableRenderMessageBoxPageButtons

tableRenderOrdersListTasks

tblOrderDetailsTasks


RenderTable - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a TABLE element for which the attributes and content are supplied by the parameters.

Definition

Function RenderTable(
  byVal htmRows,
  byVal sAttList
)

Parameters

htmRows
A string containing the contents of the table, presumably a series of TR elements.
sAttList
A string containing any space-separated "attribute=value" pairs to be included in the starting TABLE tag. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified table.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

formRenderOrderSearchOptions

formRenderProfileSearchOptions

htmRenderAddressRows

htmRenderBasket

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderEditPage

htmRenderEmptyRecordSet

htmRenderFillOutForm

htmRenderMenu

htmRenderOrderDetails

htmRenderOrderForm

htmRenderOrderList

htmRenderProductsTable

htmRenderProfilesList

htmRenderShippingMethods

htmRenderShippingOptionsEx

htmRenderSummaryPage

htmRenderVariantsList

tableChangePasswordTasks

tableRenderBlankProfile

tableRenderChangePasswordContents

tableRenderEditPageTasks

tableRenderFooterInfo

tableRenderListPageTasks

tableRenderMessageBoxPage

tableRenderMessageBoxPageButtons

tableRenderMultipleRecords

tableRenderOrdersListContents

tableRenderOrdersListTasks

tableRenderProfiles

tblOrderDetailsTasks

tblRenderOrderDetailsContents


RenderTableDataRow - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row of data within a table. In other words, a series of TD elements wrapped in a TR element. It serves as a wrapper for the function RenderTableRow, hardcoding the iRowType parameter to the constant DATA_ROW, and passing through all other parameters as is.

Definition

Function RenderTableDataRow(
  arrData,
  arrDataAttLists,
  byVal sRowAttList
)

Parameters

arrData
An array of data to be displayed in the row, one array element per table column (TD element). The value Null and an empty string ("") are acceptable values for elements in this array.
arrDataAttLists
An array of strings, where each string contains a space-separated list of "attribute=value" pairs to be included in the corresponding TD element. These strings, if non-empty, must begin with a space character. If the array is not empty, it must have the same number of elements as the array specified by the arrData parameter. If the array is empty, the series of TD elements produced will not have any attributes associated with them.
sRowAttList
A string containing a space-separated list of "attribute=value" pairs to be included in the TR element, thereby affecting the entire row.

Return Value

A string containing the HTML that will render the specified row of data in the table.

Defined in File

include\html_lib.asp

Routines Called

RenderTableRow

Called By

htmRenderAddressRows

htmRenderBasket

htmRenderFillOutForm

htmRenderGrandTotals

htmRenderOrderForm

htmRenderProductsTable

htmRenderShippingMethods

htmRenderShippingOptionsEx

htmRenderSummaryPage

htmRenderVariantsList

Remarks

If table cells have identical alignment (for example, center-aligned), there is no need to align cells individually. Simply specify the alignment for the row in the sRowAttList parameter and set the arrDataAttLists parameter to an empty array.


RenderTableHeaderRow - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a header row within a table. In other words, a series of TH elements wrapped in a TR element. It serves as a wrapper for the function RenderTableRow, hardcoding the iRowType parameter to the constant HEADER_ROW, and passing through all other parameters as is.

Definition

Function RenderTableHeaderRow(
  arrData,
  arrDataAttLists,
  byVal sRowAttList
)

Parameters

arrData
An array of header strings to be displayed in the row, one array element per table column (TH element). The value Null and an empty string ("") are acceptable values for elements in this array.
arrDataAttLists
An array of strings, where each string contains a space-separated list of "attribute=value" pairs to be included in the corresponding TH element. These strings, if non-empty, must begin with a space character. If the array is not empty, it must have the same number of elements as the array specified by the arrData parameter. If the array is empty, the series of TH elements produced will not have any attributes associated with them.
sRowAttList
A string containing a space-separated list of "attribute=value" pairs to be included in the TR element, thereby affecting the entire row.

Return Value

A string containing the HTML that will render the specified header row in the table.

Defined in File

include\html_lib.asp

Routines Called

RenderTableRow

Called By

htmRenderAddressRows

htmRenderBasket

htmRenderOrderForm

htmRenderProductsTable

htmRenderShippingMethods

htmRenderShippingOptionsEx

htmRenderSummaryPage

htmRenderVariantsList

Remarks

If table cells have identical alignment (for example, center-aligned), there is no need to align cells individually. Simply specify the alignment for the row in the sRowAttList parameter and set the arrDataAttLists parameter to an empty array.


RenderTableRow - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a header or data row within a table. In other words, a series of either TH or TD elements wrapped in a TR element. It performs the real work for the functions RenderTableHeaderRow and RenderTableDataRow, which hardcode the iRowType parameter to the constants HEADER_ROW and DATA_ROW, respectively, and passing through all other parameters as is.

Definition

Function RenderTableRow(
  arrData,
  arrDataAttLists,
  byVal sRowAttList,
  byVal iRowType
)

Parameters

arrData
An array of header strings or data to be displayed in the row, one array element per table column (either TH or TD elements, depending on the value of the iRowType parameter). The value Null and an empty string ("") are acceptable values for elements in this array.
arrDataAttLists
An array of strings, where each string contains a space-separated list of "attribute=value" pairs to be included in the corresponding TH or TD element. These strings, if non-empty, must begin with a space character. If the array is not empty, it must have the same number of elements as the array specified by the arrData parameter. If the array is empty, the series of TH or TD elements produced will not have any attributes associated with them.
sRowAttList
A string containing a space-separated list of "attribute=value" pairs to be included in the TR element, thereby affecting the entire row.
iRowType
A number which must be set to one of the two constants HEADER_ROW or DATA_ROW, specifying the use of TH or TD tags, respectively.

Return Value

A string containing the HTML that will render the specified header or data row in the table.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

RenderTableDataRow

RenderTableHeaderRow

Remarks

If table cells have identical alignment (for example, center-aligned), there is no need to align cells individually. Simply specify the alignment for the row in the sRowAttList parameter and set the arrDataAttLists parameter to an empty array.


RenderText - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the specified string wrapped in FONT tags, and assigned the specified FONT-specific attributes.

Definition

Function RenderText(
  byVal str,
  byVal sAttList
)

Parameters

str
A string containing the text to be wrapped in FONT tags.
sAttList
A string containing a space-separated list of "attribute=value" pairs to be associated with the FONT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the passed string as specified by the FONT-specific attributes in the sAttList parameter.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

bFullTextResultsAreCached

colRenderPropertyTip

htmCategoryHTML

htmRenderAddressBook

htmRenderAddressBookPage

htmRenderAddressForm

htmRenderAddressRows

htmRenderBasket

htmRenderBasketWarnings

htmRenderBlankEditPage

htmRenderBuiltInProperties

htmRenderCatalogSection

htmRenderCategoryPage

htmRenderChangePasswordPage

htmRenderConfirmationPage

htmRenderCreditCardPage

htmRenderCurrency

htmRenderCustomerServiceSection

htmRenderDefaultPage

htmRenderEditPage

htmRenderFillOutForm

htmRenderFullTextSearchResults

htmRenderLoginPage

htmRenderLoginSection

htmRenderLogoffPage

htmRenderNewUserPage

htmRenderOrderDetails

htmRenderOrderForm

htmRenderOrderList

htmRenderPartnerServiceSection

htmRenderPaymentOptionsForUser

htmRenderPaymentOptionsPage

htmRenderPickshipForm

htmRenderProfilesList

htmRenderSearchDeptPageContent

htmRenderSearchSection

htmRenderShippingMethods

htmRenderStepSearchPageContent

htmRenderSummaryPage

htmRenderUserDefinedProductProperties

Main (addrform.asp)

Main (error\baditem.asp)

Main (error\badurl.asp)

Main (error\closed.asp)

Main (error\construc.asp)

Main (error\noauth.asp)

Main (error\profile.asp)

Main (product.asp)

Main (services\error\badaction.asp)

Main (services\error\noaccess.asp)

Main (services\error\noorder.asp)

Main (services\error\noorgprofile.asp)

Main (services\error\noprofile.asp)

Main (welcome.asp)

RenderBasketPage

RenderCatalogLink

RenderCategoryLink

RenderListFromSimpleList

RenderNavbar

RenderProductLink

RenderSearchResultRow

RenderSearchResults

RenderUnorderedList

rowRenderStatusInfo

ShowRefinedSearch

ShowSearchMatches

tableRenderFooterInfo


RenderTextBox - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an INPUT element for which the TYPE attribute has been given a value of "TEXT", and for which other attribute values are supplied by the parameters.

Definition

Function RenderTextBox(
  byVal sName,
  byVal sValue,
  byVal iSize,
  byVal iMaxLength,
  byVal sAttList
)

Parameters

sName
A string containing a value to be assigned to the NAME attribute.
sValue
A string containing a value to be assigned to the VALUE attribute.
iSize
A number containing a value to be assigned to the SIZE attribute.
iMaxLength
A number containing a value to be assigned to the MAXLENGTH attribute.
sAttList
A string containing any additional, space-separated "attribute=value" pairs to be included in the INPUT element. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the specified text box.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

colRenderPrimaryKeyProperty

colRenderProperty

colRenderUniqueKeyProperty

formRenderPagingButtons

htmRenderBasket

htmRenderFillOutForm

htmRenderSearchSection

Main (product.asp)

rowRenderAdvancedSearchOptionsForOrders

rowRenderSearchOptionForDate

rowRenderSearchOptionForString


RenderTime - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the current time, appropriately formatted, and is called as part of the error information formatted by the function RenderDetailedInfoList.

Definition

Function RenderTime()

Return Value

A string containing the HTML that will render the current time, appropriately formatted.

Defined in File

error\500error.asp

Routines Called

None.

Called By

RenderDetailedInfoList


RenderUnorderedList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render an unordered list from the data in the passed array. In other words, a series of LI elements wrapped in a UL element.

Definition

Function RenderUnorderedList(
  byVal arrItem,
  byVal sty
)

Parameters

arrItem
An array of data for which each contained element will be wrapped in an LI element.
sty
A string containing a space-separated list of "attribute=value" pairs appropriate for the FONT element, within which each item within the array specified by the arrItem parameter will be wrapped. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the data specified by the arrItem parameter as an unordered list, where the font of each list item is styled as specified by the sty parameter.

Defined in File

include\html_lib.asp

Routines Called

RenderText

Called By

htmRenderOrderForm

Main (error\baditem.asp)

Main (error\badurl.asp)


RenderUnorderedListFromSimpleList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a series of list elements from the data in the passed SimpleList object. In other words, a series of LI elements.

Definition

Function RenderUnorderedListFromSimpleList(
  listItems,
  byVal sAttList
)

Parameters

listItems
A SimpleList object containing the strings to be displayed in the list, one string per list item.
sAttList
A string containing a space-separated list of "attribute=value" pairs appropriate for the LI element, to be associated with each LI element in the resulting string. This string, if non-empty, must begin with a space character.

Return Value

A string containing the HTML that will render the data specified by the listItems parameter as a series of LI elements, which must then be appropriately wrapped outside this function (for example, in an OL or UL element).

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

None.

Remarks

Despite its name, this function only produces a series of LI elements, and does not wrap them in an UL element. Since the caller must provide this functionality, you could wrap the list in either an OL or an UL element.


rowRenderAdvancedSearchOptionsForOrders - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render advanced search options within the orders form in Partner Services.

Definition

Function rowRenderAdvancedSearchOptionsForOrders(
  byVal dictSearchOptions,
  byVal mscsUserProfile
)

Defined in File

services\include\render_orders.asp

Routines Called

GetRequestString

htmRenderBlankSpaces

RenderTextBox

rowRenderSearchOptionForInteger

rowRenderSearchOptionForString

TRTag

Called By

formRenderOrderSearchOptions

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderBlankProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that corresponds to a blank property. This row contains three cells: either an image or a checkbox, the display name, and the value, respectively.

An additional row is added if there is an error associated with the property. This second row contains three cells: two blank cells followed by a cell in which a validation failure message can be displayed.

Definition

Function rowRenderBlankProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal listProfileSchema,
  byVal bValidPostedValues,
  byVal sProfileIDs,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_edit_blank.asp

Routines Called

colRenderProperty

rowRenderPropertyTip

sRenderHTMLPreFixForProperty

TRTag

varGetValueFromPropertyDictionaries

varGetValueFromRequestObject

Called By

tableRenderBlankProfile

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderEditSheetBlankLine - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a blank line in an edit sheet table.

Definition

Function rowRenderEditSheetBlankLine()

Defined in File

services\include\render_common.asp

Routines Called

htmRenderBlankSpaces

TRTag

Called By

tableRenderBlankProfile

tableRenderProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderHeader - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function allows you to put a common toolbar (containing, for example, a Help button) at the top of every page. It currently does nothing.

Definition

Function rowRenderHeader()

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderEditPage

htmRenderOrderDetails

htmRenderOrderList

htmRenderProfilesList

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderHiddenProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will include hidden properties as INPUT elements with their TYPE attribute set to "HIDDEN".

Definition

Function rowRenderHiddenProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfile,
  byVal sProfileIDs
)

Defined in File

services\include\render_edit_common.asp

Routines Called

iGetCountOfProfiles

RenderHiddenField

Called By

tableRenderProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderLineItemHeader - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the header row for a table of line items in an order.

Definition

Function rowRenderLineItemHeader()

Defined in File

services\include\render_orders.asp

Routines Called

htmRenderBlankSpaces

TRTag

Called By

tblRenderOrderDetailsContents

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderListHeading - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the header row for a table of profile properties, skipping properties that are designated as not to be shown.

Definition

Function rowRenderListHeading()

Defined in File

services\include\render_list.asp

Routines Called

htmRenderBlankSpaces

listCloneProfileSchema

TRTag

Called By

tableRenderMultipleRecords

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderListHeadingForOrders - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the header row for a table of orders.

Definition

Function rowRenderListHeadingForOrders()

Defined in File

services\include\render_orders.asp

Routines Called

htmRenderBlankSpaces

TRTag

Called By

tableRenderOrdersListContents

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderMessageBoxPageContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render the contents for the message box page.

Definition

Function rowRenderMessageBoxPageContents(
  byVal arrBody,
  byVal bNumberList
)

Defined in File

services\include\render_messagebox.asp

Routines Called

htmRenderBlankSpaces

TRTag

Called By

tableRenderMessageBoxPage

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that corresponds to a property that is accessible to the current user. This row contains three cells: either an image or a checkbox, the display name, and the value, respectively.

An additional row is added if there is an error associated with the property. This second row contains three cells: two blank cells followed by a cell in which a validation failure message can be displayed.

Definition

Function rowRenderProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal listProfileSchema,
  byVal bValidPostedValues,
  byVal rsProfile,
  byVal sProfileIDs,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_edit_common.asp

Routines Called

colRenderPrimaryKeyProperty

colRenderProperty

colRenderUniqueKeyProperty

rowRenderPropertyTip

sRenderHTMLPreFixForProperty

TRTag

varGetPropertyValue

Called By

tableRenderProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderPropertyGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row containing a property group heading.

Definition

Function rowRenderPropertyGroup(
  byVal oProperty
)

Defined in File

services\include\render_edit_common.asp

Routines Called

Bold

htmRenderBlankSpaces

TRTag

Called By

tableRenderBlankProfile

tableRenderProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderPropertyTip - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function examines the specified property, and if found to have an error associated with it, adds a table row that displays an error message in the third of three cells.

Definition

Function rowRenderPropertyTip(
  byVal oProperty,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_common.asp

Routines Called

colRenderPropertyTip

htmRenderBlankSpaces

TRTag

Called By

rowRenderBlankProperty

rowRenderProperty

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderReadOnlyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that corresponds to a read-only property. This row contains three cells: blank, the display name, and the value, respectively.

An INPUT element of with TYPE attribute set to "HIDDEN" is also added, which also includes the field name and value as the values of the NAME and VALUE attributes, respectively.

Definition

Function rowRenderReadOnlyProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal bValidPostedValues,
  byVal sProfileIDs,
  byVal rsProfile
)

Defined in File

services\include\render_edit_common.asp

Routines Called

cellRenderReadOnlyProperty

iGetCountOfProfiles

varGetValueFromRequestObject

Called By

tableRenderBlankProfile

tableRenderProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderSearchOptionForDate - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a pair of text boxes that correspond to a starting and ending date.

Definition

Function rowRenderSearchOptionForDate(
  byVal oProperty,
  byVal dictSearchOptions
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderBlankSpaces

RenderTextBox

TRTag

Called By

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

Remarks

This function allows searching on properties of type DATETIME.

This function is used only by Partner and/or Customer Services.


rowRenderSearchOptionForInteger - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a list box displaying options appropriate for one of four possible properties: user status, partner services role, order status, and types of dates associated with the order.

Definition

Function rowRenderSearchOptionForInteger(
  byVal sFieldName,
  byVal sDisplayName,
  byVal iFieldValue
)

Defined in File

services\include\render_common.asp

Routines Called

htmRenderOrderDateTypes

htmRenderOrderStatusOptions

htmRenderPartnerDeskRoles

htmRenderUserStatusOptions

TRTag

Called By

rowRenderAdvancedSearchOptionsForOrders

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderSearchOptionForString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that contains two columns: the property display name, and a text box for entering a string value for which to search.

Definition

Function rowRenderSearchOptionForString(
  byVal sFieldDisplayText,
  byVal sFieldName,
  byVal bFieldMessage,
  byVal iMaxSize,
  byVal varFieldValue
)

Defined in File

services\include\render_common.asp

Routines Called

RenderTextBox

TRTag

Called By

rowRenderAdvancedSearchOptionsForOrders

rowRenderSimpleSearchOptionsForOrders

rowsRenderAdvanceSearchOptionsForProfiles

rowsRenderSimpleSearchOptionsForProfiles

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderSimpleSearchOptionsForOrders - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render simple search options within the orders form in Partner Services.

Definition

Function rowRenderSimpleSearchOptionsForOrders(
  byVal dictSearchOptions,
  byVal mscsUserProfile
)

Defined in File

services\include\render_orders.asp

Routines Called

rowRenderSearchOptionForString

Called By

formRenderOrderSearchOptions

Remarks

This function is used only by Partner and/or Customer Services.


rowRenderStatusInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a row in a table that contains one column in which status information is placed based on the values of the parameters.

Definition

Function rowRenderStatusInfo(
  byVal sStatusField,
  byVal iStatusID,
  byVal iProfileCount,
  byVal bDisplayCount
)

Defined in File

services\include\render_common.asp

Routines Called

FormatOutput

GetRequestString

htmRenderBlankSpaces

RenderText

TRTag

Called By

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderEditPage

htmRenderOrderList

htmRenderProfilesList

Remarks

This function is used only by Partner and/or Customer Services.


rowsRenderAdvanceSearchOptionsForProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a series of rows in a table where each row allows advanced search criterion for profiles to be specified.

Definition

Function rowsRenderAdvanceSearchOptionsForProfiles(
  byVal dictSearchOptions
)

Defined in File

services\include\render_list.asp

Routines Called

listCloneProfileSchema

rowRenderSearchOptionForDate

rowRenderSearchOptionForInteger

rowRenderSearchOptionForString

Called By

formRenderProfileSearchOptions

Remarks

This function is used only by Partner and/or Customer Services.


rowsRenderSimpleSearchOptionsForProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a series of rows in a table where each row allows simple search criterion for profiles to be specified.

Definition

Function rowsRenderSimpleSearchOptionsForProfiles(
  byVal dictSearchOptions
)

Defined in File

services\include\render_list.asp

Routines Called

listCloneProfileSchema

rowRenderSearchOptionForDate

rowRenderSearchOptionForInteger

rowRenderSearchOptionForString

Called By

formRenderProfileSearchOptions

Remarks

This function is used only by Partner and/or Customer Services.


rsFreeTextSearch - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function performs a free text search and returns the results as a Recordset object. The number of records retrieved is set in the iRecordCount parameter.

Definition

Function rsFreeTextSearch(
  byVal sPhrase,
  byVal iStartingRecord,
  byVal iRecordsToRetrieve,
  byRef iRecordCount
)

Defined in File

include\catalog.asp

Routines Called

sUserCatalogsAsString

Called By

Main (search.asp)


rsGetOrderDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the detailed information for the specified order and returns the result as a Recordset object.

Definition

Function rsGetOrderDetails(
  byVal sID
)

Defined in File

services\include\requisition.asp

Routines Called

GetRequestString

Called By

CheckIfOrderExists

htmRenderOrderDetailsForIDs

Remarks

This function is used only by Partner and/or Customer Services.


rsGetOrdersList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves orders based on the specified filter criteria and returns the result as a Recordset object.

Definition

Function rsGetOrdersList(
  byVal dictSearchOptions,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages
)

Defined in File

services\include\requisition.asp

Routines Called

EnsureUserProfile

Called By

PrepareOrderList

Remarks

This function is used only by Partner and/or Customer Services.


rsGetOrgDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves detailed information about the specified organization and returns the result as a Recordset object.

Definition

Function rsGetOrgDetails(
  byVal sID
)

Defined in File

services\include\get_profiles.asp

Routines Called

rsGetProfileByKey

Called By

rsGetProfileDetails

Remarks

This function is used only by Partner and/or Customer Services.


rsGetProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the specified profile and returns it in a Recordset object.

Definition

Function rsGetProfile(
  byVal sProfileID,
  byVal sProfileType,
  byVal bForceDBLookUp
)

Defined in File

include\std_profile_lib.asp

Routines Called

GetProfileFromDB

Called By

bAddUserToGroup

bCheckIfProfileExists

bRemoveUserFromGroup

FetchData (_setadrs.asp)

FetchData (newaddr.asp)

iValidateSubmittedRegistrationData

ValidateSubmittedLoginData

Remarks

The bForceDBLookUp parameter is used to force a database lookup, overruling the value in the variable m_iGlobalProfileLookUpOption.


rsGetProfileByKey - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the profile specified by the passed key name/value pair, and returns it in a Recordset object.

Definition

Function rsGetProfileByKey(
  byVal sKeyName,
  byVal sKeyValue,
  byVal sProfileType,
  byVal bForceDBLookUp
)

Defined in File

include\std_profile_lib.asp

Routines Called

GetProfileFromDB

Called By

GetOrgAttributeFromID

mscsUserCatalogsetID

rsGetOrgDetails

rsGetUserDetails

SaveUserPropertyForID

Remarks

The bForceDBLookUp parameter is used to force a database lookup, overruling the value in the variable m_iGlobalProfileLookUpOption.


rsGetProfileDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves detailed information about the specified user or organization profile and returns the result as a Recordset object. It serves as a dispatch function for the functions rsGetOrgDetails and rsGetUserDetails, which do the real work.

Definition

Function rsGetProfileDetails(
  byVal sProfileIDs
)

Defined in File

services\include\get_profiles.asp

Routines Called

rsGetOrgDetails

rsGetUserDetails

sGetThisPageProperty

Called By

bProfileHasChanged

bSaveProfileAndRedirect

CheckIfProfilesExist

htmRenderChangePasswordPage

htmRenderEditPage

PrepareSaveProfiles

UpdateSelectActionPropertyName

Remarks

This function is used only by Partner and/or Customer Services.


rsGetProfilesList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves a set of user profiles based on the specified filter criteria, returning the result as a Recordset object.

Definition

Function rsGetProfilesList(
  byVal dictSearchOptions,
  byRef iTotalRecords
)

Defined in File

services\include\get_profiles.asp

Routines Called

GetQualifiedName

GetTableNameAndWhereClause

listCloneProfileSchema

sConstructWHEREclause

Called By

htmRenderProfilesList

Remarks

This function uses ADO to execute a SQL command directly.

This function is used only by Partner and/or Customer Services.


rsGetShippingMethods - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the available shipping methods using the ShippingMethodManager object, and returning the result in a Recordset object containing columns for the shipping method ID, name, and description, respectively.

Definition

Function rsGetShippingMethods()

Defined in File

pickship.asp

Routines Called

None.

Called By

Main (pickship.asp)

PreparePickShipForm


rsGetUserDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the profile for the specified user, and returns the results in a Recordset object.

Definition

Function rsGetUserDetails(
  byVal sID
)

Defined in File

services\include\get_profiles.asp

Routines Called

GetCurrentUserProfile

rsGetProfileByKey

Called By

GetUserPropertyFromID

rsGetProfileDetails

UpdateUserPasswordProperty

Remarks

This function is used only by Partner and/or Customer Services.


RsToDict - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function creates a new Dictionary object and populates it with the fields of the current record in the passed Recordset object. The field names are used as the dictionary keys, and the field values are assigned to the corresponding keys.

Definition

Function RsToDict(
  rs
)

Defined in File

include\std_util_lib.asp

Routines Called

GetDictionary

Called By

dictGetInitialFieldValues

Main (_setadrs.asp)


RunMtsPipeline - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function runs one of four pipelines on the passed OrderGroup object: Product, Basket, Total, or Checkout. It establishes the appropriate context dictionary and logging support prior to running the pipeline.

Definition

Function RunMtsPipeline(
  byVal sPipeName,
  byVal sPipeLogName,
  byVal mscsOrderGrp
)

Parameters

sPipeName
A string specifying the type of pipeline to run: Product, Basket, Total, or Checkout.
sPipeLogName
A string specifying the name of the pipeline log file to create, if any.
mscsOrderGrp
A reference to the OrderGroup object for which the pipeline will be run.

Return Value

The number returned by the RunPipe method of the OrderGroup object, indicating whether the pipeline succeeded or failed.

Defined in File

include\std_pipeline_lib.asp

Routines Called

CheckOut

GetCurrentUserProfile

GetDictionary

Called By

CheckBasket

CheckOut

GetBasketDetails

InitializeSummaryPage

PreparePickShipForm

RunOrderPipeline

Remarks

The pipeline is run with or without transaction support based on the value of the variable g_sPipelineProgID, as established in the files include\header.asp and include\txheader.asp.

For moreinformation about the use of pipelines in the Solution Sites, see Pipelines.


RunOrderPipeline - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub runs the Order Processing pipeline and processes any errors it returns.

Definition

Sub RunOrderPipeline(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
A reference to the OrderGroup object for which the pipeline will be run.

Defined in File

_recvpo.asp

Routines Called

GetPipelineLogFile

RunMtsPipeline

Called By

Main (_recvpo.asp)

Remarks

For more information about the use of pipelines in the Solution Sites, see Pipelines for Solution Sites.


S - V

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This section contains topics for the following routines, beginning with the letters S through V.

Routine | File
sAddCriteriaToQuery | services\include\profiles_common.asp
sAddEndDate | services\include\profiles_common.asp
sAddSetClause | services\include\profiles_common.asp
sAddSQLNumber | services\include\profiles_common.asp
sAddSQLString | services\include\profiles_common.asp
sAddStartDate | services\include\profiles_common.asp
sAddWhereClauseForActiveUsers | services\include\save_all_profiles.asp
sAddWhereClauseForPartnerRole | services\include\save_all_profiles.asp
SaveAddressToOrderGroup | addrform.asp
SaveAllSelectedProfiles | services\include\save_all_profiles.asp
SaveBasketAsOrder | include\payment.asp
SaveCommonValueForAllSelectedRecords | services\include\save_one_profile.asp
SaveProfileProperty | services\include\save_one_profile.asp
SaveReadOnlyProperty | services\include\save_one_profile.asp
SaveSAMAccountNameProperty | services\include\save_one_profile.asp
SaveUserAccountControlProperty | services\include\save_one_profile.asp
SaveUserParentDNProperty | services\include\save_one_profile.asp
SaveUserPartnerDeskRoleProperty | services\include\save_one_profile.asp
SaveUserPropertyForID | services\include\save_one_profile.asp
sChopOffLeft | include\std_string_lib.asp
sChopOffRight | include\std_string_lib.asp
sConstructWHEREclause | services\include\profiles_common.asp
SelectAllActionHandler | services\include\edit_handlers.asp
SelectedActionHandlerForList | services\include\list_handlers.asp
SetCreditCardInfo | crdtcard.asp
SetGlobalPagingVariables | services\include\lib.asp
SetKeyOnOrderForms | include\std_ordergrp_lib.asp
SetOptOutList | opt-out.asp
SetPurchaseOrderInfo | po.asp
SetTestCookie | include\std_cookie_lib.asp
SetupAddressForm | newaddr.asp
SetupPage | include\setupenv.asp
sGetAction | services\include\initialize.asp
sGetActiveDirectoryDefaultNamingContext | include\global_siteconfig_lib.asp
sGetAddressName | services\include\logic_orders.asp
sGetAdminsOnly | services\include\save_one_profile.asp
sGetDefaultShippingMethod | pickship.asp
sGetDisplayValueForProperty | services\include\lib.asp
sGetIDFromForm | services\include\initialize.asp
sGetOrderStatusDetails | services\include\lib.asp
sGetPageHeading | services\include\render_common.asp
sGetParentDN | services\include\lib.asp
sGetPaymentMethodString | services\include\logic_orders.asp
sGetPropertyDisplayName | product.asp
sGetReferenceString | include\global_siteterms_lib.asp
sGetScriptError | BDRefresh.asp
sGetSelectActionPropertyName | services\include\lib.asp
sGetSelectedIDs | services\include\initialize.asp
sGetSubAction | services\include\initialize.asp
sGetThisPageProperty | services\include\lib.asp
sGetUserAccessForThisProperty | services\include\lib.asp
sGetUserFullName | services\include\get_profiles.asp
sGetUserIDForNewGuestUser | include\std_access_lib.asp
sGetUserLoginName | services\include\get_profiles.asp
sGetUserPartnerDeskRole | services\include\lib.asp
sGetUsersOnly | services\include\save_one_profile.asp
sGetUserStatus | services\include\lib.asp
sGetWhereClauseForCurrentUser | services\include\delete_profiles.asp
ShowRefinedSearch | stepsrch.asp
ShowSearchMatches | stepsrch.asp
sLookUpPaymentMethod | dispatch.asp
SortDictionaryKeys | include\std_util_lib.asp
Space | include\std_string_lib.asp
sReConstructPageURL | services\include\render_common.asp
sRenderAddress | services\include\render_orders.asp
sRenderHTMLPreFixForProperty | services\include\render_edit_common.asp
sReplaceString | services\include\render_common.asp
StringToBoolean | include\std_string_lib.asp
SubmitUsingBizTalk | include\payment.asp
sUserCatalogsAsString | include\catalog.asp
tableChangePasswordTasks | services\include\render_password.asp
tableRenderBlankProfile | services\include\render_edit_blank.asp
tableRenderChangePasswordContents | services\include\render_password.asp
tableRenderEditPageTasks | services\include\render_edit_common.asp
tableRenderFooterInfo | services\include\render_common.asp
tableRenderListPageTasks | services\include\render_list.asp
tableRenderMessageBoxPageButtons | services\include\render_messagebox.asp
tableRenderMessageBoxPage | services\include\render_messagebox.asp
tableRenderMultipleRecords | services\include\render_list.asp
tableRenderOrdersListContents | services\include\render_orders.asp
tableRenderOrdersListTasks | services\include\render_orders.asp
tableRenderProfiles | services\include\render_edit_common.asp
Tag | include\html_lib.asp
tblOrderDetailsTasks | services\include\render_orders.asp
tblRenderOrderDetailsContents | services\include\render_orders.asp
TDTag | services\include\lib.asp
TerminateConfirmationPage | confirm.asp
TerminatePO | po.asp
TerminateSummaryPage | summary.asp
THTag | services\include\lib.asp
TRTag | services\include\lib.asp
UpdateAddressBook | newaddr.asp
UpdatePasswordActionHandler | services\include\password_handlers.asp
UpdateSelectActionPropertyName | services\include\save_one_profile.asp
UpdateUserAccountControlProperty | services\include\save_all_profiles.asp
UpdateUserPasswordProperty | services\include\save_one_profile.asp
UpdateUserProfile | include\std_profile_lib.asp
ValidateFields | services\include\lib.asp
ValidateSubmittedCreditCardData | crdtcard.asp
ValidateSubmittedLoginData | login\login.asp
ValidateSubmittedPurchaseOrderData | po.asp
varGetPropertyValue | services\include\render_edit_common.asp
varGetValueFromPropertyDictionaries | services\include\render_edit_common.asp
varGetValueFromRequestObject | services\include\render_edit_common.asp
varUpdateValueForCurrentAction | services\include\render_edit_common.asp


sAddCriteriaToQuery - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function builds a Transact-SQL statement.

Definition

Function sAddCriteriaToQuery(
  byRef bFieldSelected,
  byVal oProperty,
  byVal dictSearchOptions
)

Defined in File

services\include\profiles_common.asp

Routines Called

sAddEndDate

sAddSQLNumber

sAddSQLString

sAddStartDate

Called By

sConstructWHEREclause


sAddEndDate - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds an End Date clause.

Definition

Function sAddEndDate(
  byVal sClause,
  byVal sPropertName,
  byVal sPropertyValue
)

Defined in File

services\include\profiles_common.asp

Routines Called

GetODBCTimeStamp

Called By

sAddCriteriaToQuery


sAddSetClause - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds a Set clause.

Definition

Function sAddSetClause(
  byVal sPropertyName,
  byVal iPropertyType,
  byVal varPropertyValue,
  byRef bFieldUpdated
)

Defined in File

services\include\profiles_common.asp

Routines Called

None.

Called By

AddSetClauseAndUpdateUserAccountControl

SaveAllSelectedProfiles

UpdateUserAccountControlProperty


sAddSQLNumber - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds an AND clause for a property of type number.

Definition

Function sAddSQLNumber(
  byVal sClause,
  byVal sPropertyName,
  byVal sPropertyValue
)

Defined in File

services\include\profiles_common.asp

Routines Called

None.

Called By

sAddCriteriaToQuery

sAddWhereClauseForActiveUsers

sAddWhereClauseForPartnerRole


sAddSQLString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds an "AND property LIKE value" clause for a property of type string.

Definition

Function sAddSQLString(
  byVal sClause,
  byVal sPropertyName,
  byVal sPropertyValue
)

Defined in File

services\include\profiles_common.asp

Routines Called

HandleSingleQuote

Called By

sAddCriteriaToQuery


sAddStartDate - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds a Start Date clause.

Definition

Function sAddStartDate(
  byVal sClause,
  byVal sPropertName,
  byVal sPropertyValue
)

Defined in File

services\include\profiles_common.asp

Routines Called

GetODBCTimeStamp

Called By

sAddCriteriaToQuery


sAddWhereClauseForActiveUsers - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds an AND or WHERE "USER_STATUS = ACCOUNT_ACTIVE" clause.

Definition

Function sAddWhereClauseForActiveUsers(
  byRef bFieldSelected
)

Defined in File

services\include\save_all_profiles.asp

Routines Called

sAddSQLNumber

Called By

GetUserAccountControl


sAddWhereClauseForPartnerRole - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds an AND or WHERE "FIELD_USER_PARTNERDESK_ROLE = iPartnerDeskRole" clause.

Definition

Function sAddWhereClauseForPartnerRole(
  byRef bFieldSelected,
  byVal iPartnerDeskRole
)

Defined in File

services\include\save_all_profiles.asp

Routines Called

sAddSQLNumber

Called By

UpdateUserAccountControlProperty


SaveAddressToOrderGroup - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves an address to an order group.

Definition

Sub SaveAddressToOrderGroup(
  mscsOrderGrp,
  dictFldVals,
  byVal iAddrType
)

Defined in File

addrform.asp

Routines Called

GetSavedAddressID

SetKeyOnOrderForms

Called By

Main (addrform.asp)


SaveAllSelectedProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves all selected profiles.

Definition

Sub SaveAllSelectedProfiles(
  byRef sStatusField,
  byRef iStatusID,
  byVal dictSearchOptions
)

Defined in File

services\include\save_all_profiles.asp

Routines Called

AddSetClauseAndUpdateUserAccountControl

bCheckIfThePropertyFeatureIsSupported

GetRequestString

GetTableNameAndWhereClause

iGetCurrentUserPropertyAccessClass

listCloneProfileSchema

sAddSetClause

sConstructWHEREclause

sGetUserAccessForThisProperty

Called By

PrepareSaveAllAction


SaveBasketAsOrder - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the basket as an order and deletes old baskets. It also invokes the BizTalk Server as appropriate, and calls the routine Analysis_LogSubmitOrder for analysis purposes.

Definition

Sub SaveBasketAsOrder(
  mscsOrderGrp
)

Parameters

mscsOrderGrp
A reference to an OrderGroup object containing the contents of the basket.

Defined in File

include\payment.asp

Routines Called

Analysis_LogSubmitOrder

GetOrderGroupManager

InvokeBizTalk

Called By

InitializeCreditcardPage

RedirectToPOConfirmation


SaveCommonValueForAllSelectedRecords - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves a common value to all the selected records.

Definition

Sub SaveCommonValueForAllSelectedRecords(
  byVal sSubAction,
  byVal sPropertyName,
  byVal varValue,
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetRequestString

SaveUserPropertyForID

sGetThisPageProperty

Called By

bSaveReadWriteProperty

SaveReadOnlyProperty

SaveUserAccountControlProperty

SaveUserPartnerDeskRoleProperty

UpdateSelectActionPropertyName


SaveProfileProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves a property value in a profile.

Definition

Sub SaveProfileProperty(
  byRef rsProfile,
  byVal sPropertyName,
  byVal sValue
)

Defined in File

services\include\save_one_profile.asp

Routines Called

None.

Called By

SaveUserPropertyForID

UpdateSelectActionPropertyName


SaveReadOnlyProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves any read-only property.

Definition

Sub SaveReadOnlyProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfiles,
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

EnsureUserProfile

GetQualifiedName

iGetCountOfProfiles

SaveCommonValueForAllSelectedRecords

Called By

bInsertProperty

bSaveProperty

Remarks

Generally, this function only handles cases where the property changed is a ChangedBy or ChangedDate field.


SaveSAMAccountNameProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the SAMAccountName property.

Definition

Sub SaveSAMAccountNameProperty(
  byVal sSubAction,
  byRef oProperty,
  byRef rsProfiles
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetRequestString

Called By

bInsertProfileDetails


SaveUserAccountControlProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the User Account Control property (Active Directory specific).

Definition

Sub SaveUserAccountControlProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs,
  byVal rsProfiles
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetActiveUsersOnly

GetRequestString

iGetCountOfProfiles

SaveCommonValueForAllSelectedRecords

sGetAdminsOnly

sGetUsersOnly

Called By

bInsertProfileDetails

bSaveProfileDetails


SaveUserParentDNProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the User ParentDN property (Active Directory specific).

Definition

Sub SaveUserParentDNProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfiles
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetOrgAttributeFromID

Called By

bInsertProfileDetails


SaveUserPartnerDeskRoleProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the User Partner Desk Role property.

Definition

Sub SaveUserPartnerDeskRoleProperty(
  byVal sSubAction,
  byVal oProperty,
  byVal rsProfile,
  byVal sProfileIDs,
  byRef arrPrevRole,
  byRef arrCurrentRole
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetRequestString

GetUserPropertyFromID

iGetCountOfProfiles

SaveCommonValueForAllSelectedRecords

Called By

bInsertProfileDetails

bSaveProfileDetails


SaveUserPropertyForID - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub saves the User property for a user ID.

Definition

Sub SaveUserPropertyForID(
  byVal sAttributeName,
  byVal sID,
  byVal sValue
)

Defined in File

services\include\save_one_profile.asp

Routines Called

rsGetProfileByKey

SaveProfileProperty

Called By

SaveCommonValueForAllSelectedRecords


sChopOffLeft - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function deletes the left section of the sValue parameter string corresponding to the sToChopOffLeft parameter string, providing that the sValue parameter string begins with the sToChopOffLeft parameter string.

Definition

Function sChopOffLeft(
  sValue,
  sToChopOffLeft
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

None.


sChopOffRight - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function deletes the right section of the sValue parameter string corresponding to the sToChopOffRight parameter string, providing the sValue parameter string ends with the sToChopOffRight parameter string.

Definition

Function sChopOffRight(
  sValue,
  sToChopOffRight
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

None.


sConstructWHEREclause - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function constructs a WHERE clause.

Definition

Function sConstructWHEREclause(
  byRef bFieldSelected,
  byRef dictSearchOptions
)

Defined in File

services\include\profiles_common.asp

Routines Called

listCloneProfileSchema

sAddCriteriaToQuery

Called By

DeleteAllProfiles

rsGetProfilesList

SaveAllSelectedProfiles

UpdateUserAccountControlProperty


SelectAllActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub provides the "Select All" action handler.

Definition

Sub SelectAllActionHandler(
  byVal sProfileListPage
)

Defined in File

services\include\edit_handlers.asp

Routines Called

ReDirectToPage

Called By

htmEditPageActionHandlers


SelectedActionHandlerForList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub provides the "Selected" action handler for a LIST-type page.

Definition

Sub SelectedActionHandlerForList(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\list_handlers.asp

Routines Called

GenerateURL

iGetCountOfProfiles

sGetSelectActionPropertyName

sGetThisPageProperty

Called By

htmListPageActionHandlers


SetCreditCardInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets the credit card information on all order forms.

Definition

Sub SetCreditCardInfo(
  mscsOrderGrp,
  dictKeys
)

Defined in File

crdtcard.asp

Routines Called

RemovePurchaseOrderInfo

SetKeyOnOrderForms

Called By

ValidateSubmittedCreditCardData


SetGlobalPagingVariables - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets the global paging variables depending on the local variables passed to the sub.

Definition

Sub SetGlobalPagingVariables(
  byVal bRecordCountPresent,
  byVal nCountTemp,
  byRef iTotalRecords,
  byRef iPageNumber,
  byRef iTotalPages,
  byVal bIsProfilePage
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

tableRenderMultipleRecords

tableRenderOrdersListContents


SetKeyOnOrderForms - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets the key on order forms.

Definition

Sub SetKeyOnOrderForms(
  byVal mscsOrderGrp,
  byVal sKey,
  byVal sValue
)

Defined in File

include\std_ordergrp_lib.asp

Routines Called

None.

Called By

Main (_setadrs.asp)

SaveAddressToOrderGroup

SetCreditCardInfo

SetPurchaseOrderInfo


SetOptOutList - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets the opt-out list ID for the campaign item.

Definition

Sub SetOptOutList(
  conn_campaigns,
  campitem_id,
  list_id
)

Defined in File

opt-out.asp

Routines Called

None.

Called By

OptOut


SetPurchaseOrderInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets the purchase order payment information on all order forms.

Definition

Sub SetPurchaseOrderInfo(
  mscsOrderGrp,
  dictKeys
)

Defined in File

po.asp

Routines Called

RemoveCreditCardInfo

SetKeyOnOrderForms

Called By

ValidateSubmittedPurchaseOrderData


SetTestCookie - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets a test cookie to learn if a browser allows cookies.

Definition

Sub SetTestCookie(
  byVal sCookieType
)

Parameters

sCookieType
A string containing the name of the cookie type. Legal values for this string are persistent_cookie and session_cookie.

Defined in File

include\std_cookie_lib.asp

Routines Called

GetIISApplicationName

Called By

IsPersistentCookieAllowed

PrepareLoginPage

PrepareNewUserPage


SetupAddressForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub prepares the address form for display.

Definition

Sub SetupAddressForm(
  byRef dictFldVals,
  byRef dictFldErrs,
  byRef iAddrType,
  byRef sAction,
  byRef sAddrID
)

Defined in File

newaddr.asp

Routines Called

CatchErrors (newaddr.asp)

dictGetInitialFieldValues

FetchData

GenerateURL

GetSubmittedFieldValues

IsFormSubmitted

iValidateSubmittedAddressForAddressBook

UpdateAddressBook

Called By

Main (newaddr.asp)


SetupPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub sets page variables, trims off the leading characters associated with the virtual directory, gathers user information, determines the cookie type, sets the language and calls the Main subroutine.

Definition

Sub SetupPage()

Parameters

None.

Defined in File

include\setupenv.asp

Routines Called

CorrectRequest

GetAuthManagerObject

GetTicketLocation

GetUserInfo

Main (in whichever file has included the file include\setupenv.asp)

Called By

This routine is called by code outside of any routine (sub or function) in the file include\setupenv.asp.


sGetAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines the action to be taken for the current page.

Definition

Function sGetAction()

Parameters

None.

Defined in File

services\include\initialize.asp

Routines Called

GetRequestString

Called By

InitializePartnerDesk


sGetActiveDirectoryDefaultNamingContext - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the Active Directory domain name.

Definition

Function sGetActiveDirectoryDefaultNamingContext()

Parameters

None.

Defined in File

include\global_siteconfig_lib.asp

Routines Called

None.

Called By

Main (include\global_main_lib.asp)

ProfileRefresh


sGetAddressName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the address name field of the specified address ID in the specified order group.

Definition

Function sGetAddressName(
  mscsOrderGrp,
  addr_id
)

Defined in File

services\include\logic_orders.asp

Routines Called

None.

Called By

tblRenderOrderDetailsContents


sGetAdminsOnly - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines which users specified by the input parameter sProfileIDs are administrators (for example, the FIELD_USER_PARTNERDESK_ROLE is specified as ROLE_ADMIN) and returns a string that contains the profile IDs of those administrators.

Definition

Function sGetAdminsOnly(
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetUserPropertyFromID

Called By

SaveUserAccountControlProperty


sGetDefaultShippingMethod - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the default shipping method as a string.

Definition

Function sGetDefaultShippingMethod(
  mscsOrderGrp,
  dictAggregate
)

Defined in File

pickship.asp

Routines Called

GetAnyLineItem

Called By

htmRenderShippingOptionsEx


sGetDisplayValueForProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the display text for properties of type Number.

Definition

Function sGetDisplayValueForProperty(
  byVal sPropertyName,
  byVal sPropertyValue
)

Defined in File

services\include\lib.asp

Routines Called

sGetOrderStatusDetails

sGetUserPartnerDeskRole

sGetUserStatus

Called By

arrPopulateProfileDetails


sGetIDFromForm - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function loops through the FORM collection to determine the selected profiles.

Definition

Function sGetIDFromForm()

Parameters

None.

Defined in File

services\include\initialize.asp

Routines Called

GetRequestString

Called By

sGetSelectedIDs


sGetOrderStatusDetails - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the description for the order status code.

Definition

Function sGetOrderStatusDetails(
  byVal iOrderStatus
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

arrPopulateOrderHeaderDetails

sGetDisplayValueForProperty

tblRenderOrderDetailsContents


sGetPageHeading - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the page heading.

Definition

Function sGetPageHeading(
  byVal sPageName
)

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

htmRenderBlankEditPage

htmRenderChangePasswordPage

htmRenderEditPage

htmRenderOrderDetails

htmRenderOrderList

htmRenderProfilesList


sGetParentDN - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the ParentDN property related to an organization.

Definition

Function sGetParentDN()

Parameters

None.

Defined in File

services\include\lib.asp

Routines Called

GetOrgAttributeFromID

Called By

None.


sGetPaymentMethodString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the friendly, localizable version of the payment method identifier as a string.

Definition

Function sGetPaymentMethodString(
  sMethodID
)

Defined in File

services\include\logic_orders.asp

Routines Called

None.

Called By

tblRenderOrderDetailsContents


sGetPropertyDisplayName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the display name for a catalog property when available. Otherwise it returns the property column name.

Definition

Function sGetPropertyDisplayName(
  byVal sPropName
)

Parameters

sPropName
A string containing the name of the property.

Return Value

A string containing either the property's display name attribute, if it was set, or the name of the property.

Defined in File

product.asp

Routines Called

None.

Called By

htmRenderUserDefinedProductProperties

htmRenderVariantsList


sGetReferenceString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the reference string attribute value for a given property element.

Definition

Function sGetReferenceString(
  byRef oXMLProperty
)

Defined in File

include\global_siteterms_lib.asp

Routines Called

None.

Called By

oGetSiteTermOptions


sGetScriptError - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns an error string populated from the Error object.

Definition

Function sGetScriptError(
  oErr
)

Parameters

oErr
A reference to the Error object.

Return Value

A string containing the HTML representation of the Error object properties displayed in a table.

Defined in File

BDRefresh.asp

Routines Called

None.

Called By

This routine is called by code outside of any routine (sub or function) in the file BDRefresh.asp.


sGetSelectActionPropertyName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the property name for the Select Action button that was clicked.

Definition

Function sGetSelectActionPropertyName(
  byVal sAction
)

Defined in File

services\include\lib.asp

Routines Called

GetRequestString

Called By

colRenderForeignKeyProperty

formRenderListPageContents

htmRenderMessageBoxPage

PrepareSelectActionHandlerForEdit

SelectedActionHandlerForList

UpdateSelectActionPropertyName


sGetSelectedIDs - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the profile IDs.

Definition

Function sGetSelectedIDs(
  byVal sAction
)

Defined in File

services\include\initialize.asp

Routines Called

GetRequestString

sGetIDFromForm

Called By

InitializePartnerDesk


sGetSubAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the sub action.

Definition

Function sGetSubAction

Defined in File

services\include\initialize.asp

Routines Called

GetRequestString

Called By

InitializePartnerDesk


sGetThisPageProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the page properties.

Definition

Function sGetThisPageProperty(
  byVal sPageName,
  byVal sPropertyName
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

AddSetClauseAndUpdateUserAccountControl

arrPopulateProfileDetails

bCheckIfProfileExists

bInsertProfile

bInsertProfileDetails

bSaveProfileDetails

CloseOrderDetailsActionHandler

colRenderPrimaryKeyProperty

DeleteSingleProfile

formRenderListPageContents

GetSearchDictionaryForThisPage

GetTableNameAndWhereClause

htmEditAction

listCloneProfileSchema

PrepareCloseAction

PrepareCloseOrderDetailsAction

PrepareCopyAction

PrepareDeleteAction

PrepareDeleteAllAction

PrepareDeselectAllAction

PrepareOrderList

PrepareSaveAllAction

PrepareSelectAllAction

RedirectOrderDetailsForIDs

rsGetProfileDetails

SaveCommonValueForAllSelectedRecords

SelectedActionHandlerForList

tableRenderFooterInfo


sGetUserAccessForThisProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function returns the current user access privileges for this property.

Definition

Function sGetUserAccessForThisProperty(
  byVal iUserClass,
  byVal oProperty
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

bInsertProperty

bIsPropertyValueAdded

bProfileHasChanged

bSaveProfileDetails

listGetValidPropertiesForMultiEdit

listReConstructPropertiesSchema

SaveAllSelectedProfiles

tableRenderBlankProfile

tableRenderProfiles

ValidateFields


sGetUserFullName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the full name (last name + first name) of the user.

Definition

Function sGetUserFullName(
  byVal sID
)

Defined in File

services\include\get_profiles.asp

Routines Called

GetUserPropertyFromID

Called By

None.


sGetUserIDForNewGuestUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the user ID for a new guest user.

Definition

Function sGetUserIDForNewGuestUser(
  byVal rsUser
)

Defined in File

include\std_access_lib.asp

Routines Called

None.

Called By

EnsureAccess

Main (login\_guest.asp)


sGetUserLoginName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the login name of a user.

Definition

Function sGetUserLoginName(
  byVal sID
)

Defined in File

services\include\get_profiles.asp

Routines Called

GetUserPropertyFromID

Called By

colRenderForeignKeyProperty


sGetUserPartnerDeskRole - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the i_partnerdeskroleflags description for the user.

Definition

Function sGetUserPartnerDeskRole(
  byVal iPartnerDeskRole
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

sGetDisplayValueForProperty


sGetUsersOnly - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines which users specified by the input parameter sProfileIDs are users (for example, do not have an admin profile) and returns a string that contains the profile IDs of those users.

Definition

Function sGetUsersOnly(
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

GetUserPropertyFromID

Called By

SaveUserAccountControlProperty


sGetUserStatus - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the status code description for the user.

Definition

Function sGetUserStatus(
  byVal iUserStatus
)

Defined in File

services\include\lib.asp

Routines Called

None.

Called By

sGetDisplayValueForProperty


sGetWhereClauseForCurrentUser - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the WHERE clause for the current user.

Definition

Function sGetWhereClauseForCurrentUser(
  bFieldSelected
)

Defined in File

services\include\delete_profiles.asp

Routines Called

EnsureUserProfile

GetQualifiedName

Called By

DeleteAllProfiles


ShowRefinedSearch - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub shows the refined search.

Definition

Sub ShowRefinedSearch(
  byRef sCatalogName,
  byRef sCategoryName,
  byRef rsFields,
  byRef arr1,
  byRef arr2,
  byVal iMatchesFound,
  byVal iConstraintFieldsCount,
  byVal iNonConstraintFieldsCount,
  byRef bNoValues,
  byRef htmContent
)

Parameters

sCatalogName
A string containing the name of the catalog, passed through to the function RenderHiddenField.
sCategoryName
A string containing the name of the category, passed through to the function RenderHiddenField.
rsFields
A reference to a Recordset object containing the searchable fields, passed through to the function RemoveBlankItemsFromArray.
arr1
An array of non-constraining searchable properties.
arr2
An array of constraining searchable properties, passed through to the functions RenderText, GetRequestString, and RenderHiddenField.
iMatchesFound
An integer that specifies the number of matches found, passed through to the function RenderText.
iConstraintFieldsCount
An integer that specifies the number of constraint fields.
iNonConstraintFieldsCount
An integer that specifies the number of non-constraint fields.
bNoValues
A Boolean indicating whether there are no values.
htmContent
An HTML string containing the HTML representation of the refined search results.

Defined in File

stepsrch.asp

Routines Called

BooleanToString

GenerateURL

GetRequestString

RemoveBlankItemsFromArray

RenderForm

RenderHiddenField

RenderListBoxFromArray

RenderSubmitButton

RenderText

Space

Called By

htmRenderStepSearchPageContent


ShowSearchMatches - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub shows search matches.

Definition

Sub ShowSearchMatches(
  byRef oCatalog,
  byRef rsResults,
  byVal iMatchesFound,
  byRef htmContent
)

Parameters

oCatalog
A reference to a ProductCatalog object.
rsResults
A reference to a Recordset object containing the search results, passed through to the functions RenderCategoryLink and RenderProductLink.
iMatchesFound
An integer that specifies the number of matches found, passed through to the function RenderText.
htmContent
An HTML string containing the HTML representation of the refined search results.

Defined in File

stepsrch.asp

Routines Called

RenderCategoryLink

RenderProductLink

RenderText

Called By

htmRenderStepSearchPageContent


sLookUpPaymentMethod - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function looks up the payment method.

Definition

Function sLookUpPaymentMethod(
  mscsOrderGrp,
  listMethods
)

Defined in File

dispatch.asp

Routines Called

GetDefaultPaymentMethodForUser

IsEntityInList

Called By

Main (dispatch.asp)


SortDictionaryKeys - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function sorts the keys for a Dictionary object and puts the result into a SimpleList object.

Definition

Function SortDictionaryKeys(
  Dictionary
)

Defined in File

include\std_util_lib.asp

Routines Called

None.

Called By

CheckBasket

htmRenderSummaryPage


Space - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function counts spaces and renders the appropriate number of HTML spaces (&nbsp).

Definition

Function Space(
  byVal iSize
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

ShowRefinedSearch


sReConstructPageURL - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function re-constructs the page URL and replaces the key values.

Definition

Function sReConstructPageURL(
  byVal arrQSKeyName,
  byVal arrQSKeyValue
)

Defined in File

services\include\render_common.asp

Routines Called

sReplaceString

Called By

colRenderAdvancedSearchTab

colRenderSimpleSearchTab

formRenderOrderSearchOptions

formRenderPagingButtons

formRenderProfileSearchOptions


sRenderAddress - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders an address dictionary.

Definition

Function sRenderAddress(
  dictAddress
)

Defined in File

services\include\render_orders.asp

Routines Called

None.

Called By

tblRenderOrderDetailsContents

Remarks

The source code also illustrates how to render an alternative address format.


sRenderHTMLPreFixForProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the "Required" icon or check box (for multi-edits) before each property in an EDIT-type page.

Definition

Function sRenderHTMLPreFixForProperty(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal sProfileIDs
)

Defined in File

services\include\render_edit_common.asp

Routines Called

htmRenderBlankSpaces

iGetCountOfProfiles

RenderCheckBox

Called By

rowRenderBlankProperty

rowRenderProperty


sReplaceString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function replaces or adds the value for a key in a query string with a new value.

Definition

Function sReplaceString(
  byVal sQueryString,
  byVal sEncodedKey,
  byVal sEncodedNewValue
)

Defined in File

services\include\render_common.asp

Routines Called

None.

Called By

sReConstructPageURL


StringToBoolean - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function converts a String to a Boolean.

Definition

Function StringToBoolean(
  sValue
)

Defined in File

include\std_string_lib.asp

Routines Called

None.

Called By

None.


SubmitUsingBizTalk - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function submits an order using the Submit method of the BizTalk Server Interchange object.

Definition

Function SubmitUsingBizTalk(
  byVal sXML,
  byVal sVendorName,
  byVal sDestQual,
  byVal sDestQualValue
) (
  changing
)

Defined in File

include\payment.asp

Routines Called

None.

Called By

InvokeBizTalk


sUserCatalogsAsString - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function retrieves the catalogs associated with a user as a comma-separated list, suitable for passing to various catalog methods that accept a list of catalogs as a parameter.

Definition

Function sUserCatalogsAsString()

Parameters

None.

Return Value

A string containing the catalogs associated with the user, as a comma-separated list.

Defined in File

include\catalog.asp

Routines Called

mscsUserCatalogs

Called By

rsFreeTextSearch


tableChangePasswordTasks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders Save and Close buttons with their appropriate text messages wrapped in a table.

Definition

Function tableChangePasswordTasks(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\render_password.asp

Routines Called

htmRenderBlankSpaces

iGetCountOfProfiles

RenderSubmitButton

RenderTable

TRTag

Called By

formRenderChangePasswordPageContents


tableRenderBlankProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render tables for blank editing pages.

Definition

Function tableRenderBlankProfile(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_blank.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

iGetCurrentUserPropertyAccessClass

RenderTable

rowRenderBlankProperty

rowRenderEditSheetBlankLine

rowRenderPropertyGroup

rowRenderReadOnlyProperty

sGetUserAccessForThisProperty

Called By

formRenderBlankEditPageBody


tableRenderChangePasswordContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the Password Change edit page.

Definition

Function tableRenderChangePasswordContents(
  byVal rsUser,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_password.asp

Routines Called

GetRequestString

RenderPasswordBox

RenderTable

TRTag

Called By

formRenderChangePasswordPageContents


tableRenderEditPageTasks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders tasks buttons for the current page.

Definition

Function tableRenderEditPageTasks(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\render_edit_common.asp

Routines Called

htmRenderBlankSpaces

iGetCountOfProfiles

RenderCheckBox

RenderSubmitButton

RenderTable

TRTag

Called By

formRenderBlankEditPageBody

formRenderEditPageBody


tableRenderFooterInfo - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders footer information for the current page.

Definition

Function tableRenderFooterInfo(
  byVal sAction,
  byVal sSubAction,
  byVal iPageNumber,
  byVal iTotalRecords,
  byVal iTotalPages,
  byVal bRequiresPagingCtrls,
  byVal bRequiresLastPageCtrl
)

Defined in File

services\include\render_common.asp

Routines Called

Bold

FormatOutput

formRenderPagingButtons

htmRenderBlankSpaces

RenderTable

RenderText

sGetThisPageProperty

TRTag

Called By

htmRenderOrderList

htmRenderProfilesList


tableRenderListPageTasks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders tasks specific to LIST-type pages.

Definition

Function tableRenderListPageTasks(
  byVal sAction,
  byVal sSubAction
)

Defined in File

services\include\render_list.asp

Routines Called

htmRenderBlankSpaces

RenderSubmitButton

RenderTable

TRTag

Called By

formRenderListPageContents


tableRenderMessageBoxPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a message box page.

Definition

Function tableRenderMessageBoxPage(
  byVal sTitle,
  byVal sHeading,
  byVal bNumberList,
  byVal arrBody,
  byVal sFooter,
  byVal arrButtons,
  byVal arrDestination,
  byVal arrSaveFormPosted
)

Defined in File

services\include\render_messagebox.asp

Routines Called

Bold

RenderTable

rowRenderMessageBoxPageContents

tableRenderMessageBoxPageButtons

TRTag

Called By

htmRenderMessageBoxForCancel

htmRenderMessageBoxForDelete

htmRenderMessageBoxForDeleteAll

htmRenderMessageBoxForSave

htmRenderMessageBoxForSelect


tableRenderMessageBoxPageButtons - Solution Sites Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders the message box page submit buttons.

Definition

Function tableRenderMessageBoxPageButtons(
  byVal arrButtons,
  byVal arrDestination,
  byVal arrSaveFormPosted
)

Defined in File

services\include\render_messagebox.asp

Routines Called

GetRequestString

RenderForm

RenderHiddenField

RenderSubmitButton

RenderTable

TRTag

Called By

tableRenderMessageBoxPage


tableRenderMultipleRecords - Solution Sites Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function adds list contents to the current page.

Definition

Function tableRenderMultipleRecords(
  byVal sAction,
  byVal sSubAction,
  byVal rsProfiles,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages,
  byRef bIsEmpty
)

Defined in File

services\include\render_list.asp

Routines Called

arrPopulateProfileDetails

htmRenderEmptyRecordSet

RelocateRecordPointer2

RenderTable

rowRenderListHeading

SetGlobalPagingVariables

TRTag

Called By

formRenderListPageContents


tableRenderOrdersListContents - Solution Sites Routines

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a table of orders, including hidden fields containing the order number for each record.

Definition

Function tableRenderOrdersListContents(
  byVal sAction,
  byVal sSubAction,
  byVal rsOrders,
  byRef iPageNumber,
  byRef iTotalRecords,
  byRef iTotalPages
)

Defined in File

services\include\render_orders.asp

Routines Called

arrPopulateOrderHeaderDetails

htmRenderEmptyRecordSet

RelocateRecordPointer

RenderHiddenField

RenderTable

rowRenderListHeadingForOrders

SetGlobalPagingVariables

TRTag

Called By

formRenderOrdersListContents

Remarks

A paging mechanism ensures that the records are displayed up to the maximum specified by the RECORDS_PER_PAGE constant value.


tableRenderOrdersListTasks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a toolbar containing tasks that can be performed on an order in the list. By default, this will show a button displaying the text stored in the MessageManager L_ORDERDETAILS_ACTION_BUTTON message and allows the user to see order details.

Definition

Function tableRenderOrdersListTasks(
  sAction
)

Defined in File

services\include\render_orders.asp

Routines Called

RenderSubmitButton

RenderTable

TRTag

Called By

formRenderOrdersListContents


tableRenderProfiles - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders an edit page for a profile.

Definition

Function tableRenderProfiles(
  byVal sAction,
  byVal sSubAction,
  byVal rsProfile,
  byVal sProfileIDs,
  byVal bValidPostedValues,
  byVal bDisplayPostedValues,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_common.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

iGetCountOfProfiles

iGetCurrentUserPropertyAccessClass

RenderTable

rowRenderEditSheetBlankLine

rowRenderHiddenProperty

rowRenderProperty

rowRenderPropertyGroup

rowRenderReadOnlyProperty

sGetUserAccessForThisProperty

Called By

formRenderEditPageBody


Tag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function encloses the text segment between a beginning and an ending HTML tag.

Definition

Function Tag(
  byVal sTagName,
  byVal htmText
)

Parameters

sTagName
A string containing the tag.
htmText
An HTML string containing the text to be displayed.

Return Value

A string containing the HTML representation of the starting tag, the text to be displayed, and the ending tag.

Defined in File

include\html_lib.asp

Routines Called

None.

Called By

RenderNavbar

RenderPreFormattedText


tblOrderDetailsTasks - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a CANCEL_ACTION button for use in rendering the order details, and is used when the user wants to close the displayed page.

Definition

Function tblOrderDetailsTasks(
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\render_orders.asp

Routines Called

RenderSubmitButton

RenderTable

TRTag

Called By

formRenderOrderContents


tblRenderOrderDetailsContents - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function displays order header and line items in an table format.

Definition

Function tblRenderOrderDetailsContents(
  byVal rsOrder
)

Defined in File

services\include\render_orders.asp

Routines Called

Bold

cellRenderReadOnlyProperty

GetAnyOrderForm

htmRenderBlankSpaces

htmRenderCurrency

mscsGetOrderGroupWithDiscountsByID

RenderTable

rowRenderLineItemHeader

sGetAddressName

sGetOrderStatusDetails

sGetPaymentMethodString

sRenderAddress

TRTag

Called By

formRenderOrderContents


TDTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a data cell in an HTML table.

Definition

Function TDTag(
  byVal sDataCell,
  byVal sAlignment,
  byVal sAttrib
)

Defined in File

services\include\lib.asp

Routines Called

DoubleQuote

Called By

TRTag

Remarks

The routine RenderTableDataRow provides an alternative, preferred method for constructing HTML table data cells.


TerminateConfirmationPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub, called by Main, sets the objects on the confirmation page to Nothing.

Definition

Sub TerminateConfirmationPage(
  byRef mscsOrderGrp
)

Defined in File

confirm.asp

Routines Called

None.

Called By

Main (confirm.asp)


TerminatePO - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub, called by Main, sets purchase order objects to Nothing.

Definition

Sub TerminatePO(
  byRef mscsOrderGrp,
  byRef listMethods,
  byRef dictFldVals,
  byRef dictFldErrs,
  byRef listFlds
)

Defined in File

po.asp

Routines Called

None.

Called By

Main (po.asp)


TerminateSummaryPage - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub, called by Main, sets the objects on the summary page to Nothing.

Definition

Sub TerminateSummaryPage(
  byRef mscsOrderGrp,
  byRef mscsAnyOrderForm,
  byRef dictAnyItem,
  byRef listMethods
)

Defined in File

summary.asp

Routines Called

None.

Called By

Main (summary.asp)


THTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function prepares the HTML that will render a header cell in an HTML table.

Definition

Function THTag(
  byVal sHeaderCell,
  byVal sAlignment,
  byVal sAttrib
)

Defined in File

services\include\lib.asp

Routines Called

DoubleQuote

Called By

TRTag

Remarks

The routine RenderTableHeaderRow provides an alternative, preferred method for constructing HTML table header cells.


TRTag - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function renders a table row.

Definition

Function TRTag(
  byVal arrCell,
  byVal arrCellAlignment,
  byVal sAttList,
  byVal bHeaderRow,
  byVal sAttrib
)

Defined in File

services\include\lib.asp

Routines Called

TDTag

THTag

Called By

cellRenderReadOnlyProperty

formRenderOrderSearchOptions

formRenderProfileSearchOptions

htmRenderEmptyRecordSet

rowRenderAdvancedSearchOptionsForOrders

rowRenderBlankProperty

rowRenderEditSheetBlankLine

rowRenderLineItemHeader

rowRenderListHeading

rowRenderListHeadingForOrders

rowRenderMessageBoxPageContents

rowRenderProperty

rowRenderPropertyGroup

rowRenderPropertyTip

rowRenderSearchOptionForDate

rowRenderSearchOptionForInteger

rowRenderSearchOptionForString

rowRenderStatusInfo

tableChangePasswordTasks

tableRenderChangePasswordContents

tableRenderEditPageTasks

tableRenderFooterInfo

tableRenderListPageTasks

tableRenderMessageBoxPage

tableRenderMessageBoxPageButtons

tableRenderMultipleRecords

tableRenderOrdersListContents

tableRenderOrdersListTasks

tblOrderDetailsTasks

tblRenderOrderDetailsContents


UpdateAddressBook - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub creates a profile for the specified address.

Definition

Sub UpdateAddressBook(
  byVal dictAddr,
  byVal sAction,
  byRef sAddrID,
  byVal rsAddr
)

Defined in File

newaddr.asp

Routines Called

None.

Called By

SetupAddressForm


UpdatePasswordActionHandler - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function saves the user_security_password property for the user.

Definition

Function UpdatePasswordActionHandler(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\password_handlers.asp

Routines Called

bValidatePasswordChars

GetRequestString

htmRenderChangePasswordPage

UpdateUserPasswordProperty

Called By

PasswordActionHandlers


UpdateSelectActionPropertyName - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function updates properties changed by the user. The fields associated with the selected properties are updated, as well as the "changed by" and "date updated" values.

Definition

Sub UpdateSelectActionPropertyName(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs
)

Defined in File

services\include\save_one_profile.asp

Routines Called

EnsureUserProfile

GetQualifiedName

GetRequestString

iGetCountOfProfiles

rsGetProfileDetails

SaveCommonValueForAllSelectedRecords

SaveProfileProperty

sGetSelectActionPropertyName

Called By

PrepareSelectedAction


UpdateUserAccountControlProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function updates the user_account_control property of the profile based on the iPartnerDeskRole and dictSearchOptions parameters.

Definition

Sub UpdateUserAccountControlProperty(
  byVal iPartnerDeskRole,
  byVal dictSearchOptions
)

Defined in File

services\include\save_all_profiles.asp

Routines Called

GetTableNameAndWhereClause

sAddSetClause

sAddWhereClauseForPartnerRole

sConstructWHEREclause

Called By

AddSetClauseAndUpdateUserAccountControl


UpdateUserPasswordProperty - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub updates the user password property depending on the current user type (DELEGATED_ADMIN or USER).

Definition

Sub UpdateUserPasswordProperty(
  byVal sAction,
  byVal sSubAction,
  byVal sProfileIDs,
  byVal sUserOldPassword,
  byVal sUserNewPassword
)

Defined in File

services\include\save_one_profile.asp

Routines Called

EnsureUserProfile

GetQualifiedName

iGetCountOfProfiles

rsGetUserDetails

Called By

UpdatePasswordActionHandler


UpdateUserProfile - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This sub updates the profile for the current user.

Definition

Sub UpdateUserProfile(
  byRef rsUser
)

Defined in File

include\std_profile_lib.asp

Routines Called

None.

Called By

bSaveProfileDetails

GetNewGuestUserProfile

mscsNewRegisteredUserProfile

mscsTransferGuestUserProfile

Remarks

This is a wrapper subroutine for the Update method of the ProfileObject object. Call this subroutine whenever you update the current profile for the current user or when you create a new profile for the current user. This subroutine automatically sets the date_last_changed property and writes this information to a cookie (where supported) to handle host switching in a Web farm.


ValidateFields - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates submitted profile form fields retrieved from the HTTP request using the profile schema specified by the listCtrls parameter.

Definition

Function ValidateFields(
  byVal listCtrls
)

Defined in File

services\include\lib.asp

Routines Called

bCheckIfThePropertyFeatureIsSupported

GetRequestString

iGetCurrentUserPropertyAccessClass

sGetUserAccessForThisProperty

Called By

PrepareInsertProfile

PrepareSaveAllAction

PrepareSaveChangesConfirmation

PrepareSaveProfiles


ValidateSubmittedCreditCardData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates credit card data.

Definition

Function ValidateSubmittedCreditCardData(
  mscsOrderGrp,
  listFlds,
  dictFldVals,
  dictFldErrs,
  listFrmErrs,
  sVerifyWithTotal
)

Defined in File

crdtcard.asp

Routines Called

CheckOut

GetAnyOrderForm

GetFieldsErrorDictionary

SetCreditCardInfo

Called By

InitializeCreditcardPage

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


ValidateSubmittedLoginData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates login data.

Definition

Function ValidateSubmittedLoginData(
  rsLoginUser,
  listFlds,
  dictFldVals,
  dictFldErrs,
  listFrmErrs
)

Defined in File

login\login.asp

Routines Called

GetDictionary

GetFieldsErrorDictionary

GetQualifiedName

GetSimpleList

rsGetProfile

Called By

PrepareLoginPage

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


ValidateSubmittedPurchaseOrderData - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function validates submitted purchase order data.

Definition

Function ValidateSubmittedPurchaseOrderData(
  mscsOrderGrp,
  listFlds,
  dictFldVals,
  dictFldErrs,
  listFrmErrs,
  byVal sVerifyWithTotal
)

Defined in File

po.asp

Routines Called

CheckOut

GetAnyOrderForm

GetFieldsErrorDictionary

SetPurchaseOrderInfo

Called By

Main (po.asp)

Remarks

For more conceptual information about forms processing, see Forms Processing for Solution Sites.


varGetPropertyValue - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function determines the profile property value to display.

Definition

Function varGetPropertyValue(
  byVal sAction,
  byVal sSubAction,
  byVal oProperty,
  byVal listProfileSchema,
  byVal bValidPostedValues,
  byVal rsProfile,
  byVal sProfileIDs,
  byVal bDisplayPostedValues
)

Defined in File

services\include\render_edit_common.asp

Routines Called

varGetValueFromPropertyDictionaries

varGetValueFromRequestObject

varUpdateValueForCurrentAction

Called By

rowRenderProperty


varGetValueFromPropertyDictionaries - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the property value from a list of property dictionaries.

Definition

Function varGetValueFromPropertyDictionaries(
  byVal oProperty,
  byVal listProfileSchema
)

Defined in File

services\include\render_edit_common.asp

Routines Called

None.

Called By

rowRenderBlankProperty

varGetPropertyValue


varGetValueFromRequestObject - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the property value from the underlying Request object (URL or HTML FORM).

Definition

Function varGetValueFromRequestObject(
  byVal oProperty
)

Defined in File

services\include\render_edit_common.asp

Routines Called

GetRequestString

Called By

rowRenderBlankProperty

rowRenderReadOnlyProperty

varGetPropertyValue


varUpdateValueForCurrentAction - Solution Sites Routine

Download Solution Sites from http://go.microsoft.com/fwlink/?linkid=6491.

This function gets the property value based on the current action type as stored in the global variable sAction.

Definition

Function varUpdateValueForCurrentAction(
  byVal sAction,
  byVal sSubAction,
  byVal rsProfile,
  byVal oProperty,
  byVal sProfileIDs
)

Defined in File

services\include\render_edit_common.asp

Routines Called

iGetCountOfProfiles

Called By

varGetPropertyValue


Programmer's Reference

This section provides reference documentation about programming with the Microsoft Commerce Server 2002 platform. This includes information about the Commerce Server .NET Application Framework namespaces and classes, the configuration settings for the web.config file, Component Object Model (COM) objects, the COM interfaces you can implement, the supplied pipeline components, XML structures, database schemas, Commerce Server Business Desk utilities, and so on.

This section contains:

  • .NET Class Reference. Provides reference documentation for the Commerce Server .NET Application Framework classes.
  • .NET Configuration Settings. Provides reference documentation for the configuration settings used in the web.config file in Commerce Server .NET Application Framework applications.
  • COM Object Reference. Provides reference documentation for the COM objects supplied with Commerce Server, and for each of their properties and methods. These are the objects that you will explicitly create and invoke. This section contains parallel reference pages that describe the objects from the perspective of two different programming languages:
    • Microsoft Visual Basic/Microsoft Visual Basic Scripting Edition (VBScript)
    • C++
  • Interface Reference. Provides reference documentation for the COM interfaces that you can implement so that your objects can be invoked by Commerce Server. These include the pipeline interfaces that you implement to create your own pipeline components, and the Site Packager interface that allows you to build objects that can be invoked by Site Packager and Commerce Server Manager.
  • Pipeline Component Reference. Provides reference documentation for the pipeline components supplied with Commerce Server.
  • OLE DB Provider for Commerce Server. Provides reference documentation for the OLE DB Provider that provides access to the Profiles service and the Data Warehouse within Commerce Server.
  • Business Desk Reference. Provides reference documentation for Business Desk, including details of the events, properties, and methods of the HTML Components (HTCs), as well as details about the constants, global variables, and utility routines provided by Business Desk.
  • XML Reference. Provides reference documentation for the structure of various XML documents used within Commerce Server.
  • Schema Reference. Provides reference documentation about various database schemas used in key areas of Commerce Server where detailed knowledge of the schema is important.
  • Style Sheet Reference. Provides information about the Cascading Style Sheets (CSS) used by the Business Desk.


.NET Class Reference

This section contains reference pages for objects and services used in .NET-based Commerce Server applications.

This section contains:

  • Microsoft.CommerceServer.Runtime. Describes the classes contained in the Microsoft.CommerceServer.Runtime namespace.
  • Microsoft.CommerceServer.Runtime.Caching Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Caching namespace.
  • Microsoft.CommerceServer.Runtime.Catalog Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Catalog namespace.
  • Microsoft.CommerceServer.Runtime.Configuration Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Configuration namespace.
  • Microsoft.CommerceServer.Runtime.Diagnostics Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Diagnostics namespace.
  • Microsoft.CommerceServer.Runtime.Orders Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Orders namespace.
  • Microsoft.CommerceServer.Runtime.Pipelines Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Pipelines namespace.
  • Microsoft.CommerceServer.Runtime.Profiles Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Profiles namespace.
  • Microsoft.CommerceServer.Runtime.Targeting Describes the Base Class Library classes contained in the Microsoft.CommerceServer.Runtime.Targeting namespace.
  • Microsoft.CommerceServer.Interop Describes the Primary Interop classes contained in the Microsoft.CommerceServer.Interop namespace.

See Also

Commerce Server .NET Application Framework


Microsoft.CommerceServer.Runtime

The classes in the Microsoft.CommerceServer.Runtime namespace contain the functionality needed for authentication, event logging, and other core runtime services.

Microsoft.CommerceServer.Runtime Namespace Object Model

Depicts the object model of the Microsoft.CommerceServer.Runtime namespace.

Classes

Class | Description
AuthenticationInfo | Abstracts the authentication components.
AuthManager | Performs user identification and authentication and is used to manage user security information.
AuthTicket | Contains the authentication ticket for the user.
CommerceApplicationModule | The primary CommerceModule responsible for initialization of the site framework. This module must be listed before all other CommerceModules in the httpModules section.
CommerceAuthenticationException | Base class for exceptions thrown from Authentication sub-system.
CommerceAuthenticationFailedDecryptionException | Base class for exceptions thrown from the Authentication sub-system.
CommerceAuthenticationModule | Provides a framework context for managing the authentication of site visitors, client side cookie detection, and creation of an instance of the AuthManagerInfo class at page scope.
CommerceContext | The primary class used to interface with Commerce Server. Provides access to request-level Commerce Server context such as the current UserObject.
CommerceCreateObjectException | Exception raised when a COM object could not be created.
CommerceDebugException | A special exception raised by components of a Commerce Server application when they encounter an error during the Debug or Checked mode of operation.
CommerceEventMemberAttribute | Marks properties as Commerce event properties.
CommerceException | Base type for all .NET-based Commerce Server exceptions.
CommerceModule | All Commerce Server modules inherit from CommerceModule. CommerceModule is an IHttpModule.
CommerceModuleDependencyException | Exception raised when a module depends on another module that has not been configured.
CommerceResourceDependencyException | Exception raised when a resource does not exist in the Commerce Server Administration database.
CommerceServerInfo | Gets the installed culture for Commerce Server 2002.
Dictionary | Supports the creation, storage, and retrieval of name/value pairs in memory.
ProfileTicket | Contains the profile ticket for the user.
QueryStringBuilder | Builds encrypted query strings for cookie and cookieless browsers.
ReadOnlyStringCollection | Provides a read-only string collection. Inherits from the ReadOnlyCollectionBase class.
SimpleList | Allows creation of an array of Variants that support enumeration.
TicketBase | Provides the base functionality for ticket handling operations in the Commerce Server 2002 Application Runtime.

Enumerations

Enumeration | Description
LogStatus | Enumerator listing the return type values for the LogCommerceEvent method.

Examples

Example | Description
Code to Build a Login Page | Describes how to check for authenticated users, to set tickets to identify users, and to add and modify ticket properties.

See Also

Commerce Server .NET Application Framework Tutorial


AddItemToBasketEvent Class (BCL)

Event used whenever items are added to the shopping basket.

Public Instance Constructor

Constructor | Description
AddItemToBasketEvent Constructor | Creates a new instance of the AddItemToBasketEvent class.

Public Instance Methods

Method | Description
Validate (Inherited from BasketEvent) | Validates the CatalogName and ProductID property for the basket event.

Public Instance Properties

Property | Description
CatalogName (Inherited from BasketEvent) | The name of the catalog to which the product belongs.
EventType | Returns the event type for the class.
ProductID (Inherited from BasketEvent) | The product identifier for the product associated with the basket.
ReadOnlyPrID (Inherited from BasketEvent) | This commerce property is calculated internally and is read only.
VariantID (Inherited from BasketEvent) | The variant ID for the product associated with the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AddItemToBasketEvent Constructor (BCL)

Public Instance Constructor

Constructor | Description
AddItemToBasketEvent Constructor | Creates a new instance of the AddItemToBasketEvent class.


AddItemToBasketEvent Constructor (BCL)

Use this method to create a new instance of the AddItemToBasketEvent class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public AddItemToBasketEvent(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AddItemToBasketEvent Methods (BCL)

Public Instance Methods

Method | Description
Validate (Inherited from BasketEvent) | Validates the CatalogName and ProductID properties for the basket event.


AddItemToBasketEvent Properties (BCL)

Public Instance Properties

Property | Description
CatalogName (Inherited from BasketEvent) | The name of the catalog to which the product belongs.
EventType | Returns the event type for the class.
ProductID (Inherited from BasketEvent) | The product identifier for the product associated with the basket.
ReadOnlyPrID (Inherited from BasketEvent) | This commerce property is calculated internally and is read only.
VariantID (Inherited from BasketEvent) | The variant ID for the product associated with the basket.


AddItemToBasketEvent.EventType Property (BCL)

The EventType property is a read-only string that returns the event type for the class.

Definition

[Visual Basic .NET]
Public ReadOnly Property EventType As System.String
[C#]
public System.String EventType {get;}

Property Value

A string containing the event type for the class.

Remarks

For additions to basket events, the string "AIBSK" is returned.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthenticationInfo Class (BCL)

Abstracts the authentication components.

Public Instance Methods

Method | Description
Dispose (Inherited from AuthManager) | Releases resources used by this object.
GenerateEncryptionKey (Inherited from AuthManager) | Generates an encryption key for encrypting/decrypting cookie and query string data for tickets.
GetUserIDFromCookie(String) (Inherited from AuthManager) | Retrieves the user ID from a specified cookie.
GetUserIDFromCookieAndKey(String, String) (Inherited from AuthManager) | Retrieves the user ID from a specified cookie using an encryption key.
IsAuthenticated (Inherited from AuthManager) | Determines whether the current user has a valid MSCSAuth ticket. Checks to see if the user was authenticated within the given time window.
IsAuthenticated(Int32) (Inherited from AuthManager) | Determines whether the current user has a valid MSCSAuth ticket. Allows the determination of whether the user has been authenticated within the default time window of 90 minutes.
Refresh(String) (Inherited from AuthManager) | Refreshes the siteconfig cache in the AuthManager object.
SetAuthTicket(String, Boolean) (Inherited from AuthManager) | Sets an encrypted MSCSAuth ticket for a registered user with the default time window of 90 minutes.
SetAuthTicket(String, Boolean, Int32) (Inherited from AuthManager) | Sets an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket(String, Boolean) (Inherited from AuthManager) | Sets an MSCSProfile ticket for an anonymous user.

Public Instance Properties

Property | Description
AuthTicket (Inherited from AuthManager) | Retrieves the AuthTicket property.
ProfileTicket (Inherited from AuthManager) | Retrieves the ProfileTicket property.
SupportsPersistentCookies | Indicates if the user supports persistent cookies.
SupportsSessionCookies | Indicates if the user supports session cookies.

Protected Instance Methods

Method | Description
CheckState (Inherited from AuthManager) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from AuthManager) | Releases the unmanaged resources used by this class and optionally releases the managed the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthenticationInfo Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from AuthManager) | Releases resources used by this object.
GenerateEncryptionKey (Inherited from AuthManager) | Generates an encryption key for encrypting/decrypting cookie and query string data for tickets.
GetUserIDFromCookie(String) (Inherited from AuthManager) | Retrieves the user ID from a specified cookie.
GetUserIDFromCookieAndKey(String, String) (Inherited from AuthManager) | Retrieves the user ID from a specified cookie using an encryption key.
IsAuthenticated (Inherited from AuthManager) | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the default time window of 90 minutes.
IsAuthenticated(Int32) (Inherited from AuthManager) | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the given time window.
Refresh(String) (Inherited from AuthManager) | Refreshes the siteconfig cache in the AuthManager object.
SetAuthTicket(String, Boolean) (Inherited from AuthManager) | Sets an encrypted MSCSAuth ticket for a registered user with the default time window of 90 minutes.
SetAuthTicket(String, Boolean, Int32) (Inherited from AuthManager) | Sets an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket(String, Boolean) (Inherited from AuthManager) | Sets an MSCSProfile ticket for an anonymous user.

Protected Instance Methods

Method | Description
CheckState (Inherited from AuthManager) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from AuthManager) | Releases the unmanaged resources used by this class and optionally releases the managed the resources.


AuthenticationInfo Properties (BCL)

Public Instance Properties

Property | Description
AuthTicket (Inherited from AuthManager) | Retrieves the AuthTicket property.
ProfileTicket (Inherited from AuthManager) | Retrieves the ProfileTicket property.
SupportsPersistentCookies | Indicates if the user supports persistent cookies.
SupportsSessionCookies | Indicates if the user supports session cookies.


AuthenticationInfo.SupportsPersistentCookies Property (BCL)

The SupportsPersistentCookies property is a read-only bool that indicates if the user supports persistent cookies.

Definition

[Visual Basic .NET]
Public ReadOnly Property SupportsPersistentCookies As System.Boolean
[C#]
public System.Boolean SupportsPersistentCookies {get;}

Property Value

Set to True if the user supports persistent cookies, False if the user does not support persistent cookies.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthenticationInfo.SupportsSessionCookies Property (BCL)

The SupportsSessionCookies property is a read-only bool that indicates if the user supports session cookies.

Definition

[Visual Basic .NET]
Public ReadOnly Property SupportsSessionCookies As System.Boolean
[C#]
public System.Boolean SupportsSessionCookies {get;}

Property Value

Set to True if the user supports session cookies, False if the user does not support session cookies.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager Class (BCL)

Use this object to perform user identification and authentication and to manage user security information.

Public Instance Constructor

Constructor | Description
AuthManager Constructor(String, DebugContext) | Creates a new instance of the AuthManager class.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GenerateEncryptionKey | Generates an encryption key for encrypting/decrypting cookie and query string data for tickets.
GetUserIDFromCookie(String) | Retrieves the user ID from a specified cookie.
GetUserIDFromCookieAndKey(String, String) | Retrieves the user ID from a specified cookie using an encryption key.
IsAuthenticated | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the default time window of 90 minutes.
IsAuthenticated(Int32) | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the given time window.
Refresh(String) | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket(String, Boolean) | Sets an encrypted MSCSAuth ticket for a registered user with the default time window of 90 minutes.
SetAuthTicket(String, Boolean, Int32) | Sets an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket(String, Boolean) | Sets an MSCSProfile ticket for an anonymous user.

Public Instance Properties

Property | Description
AuthTicket | Retrieves the AuthTicket property.
ProfileTicket | Retrieves the ProfileTicket property.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Remarks

The methods GetUserIDFromCookie(String), GetUserIDFromCookieAndKey(String, String) and GenerateEncryptionKey, facilitate rolling key encryption functionality. For more information about this feature, see Rolling Key Encryption.

Any operation that requires decryption of the ticket will fail if you change the encryption key. One important instance of this behavior is with profile tickets, because they are persisted on the client computer. Hence when a user with a persisted profile ticket that was encrypted with the old key comes back to the site, the AuthManager is not be able to decrypt this ticket. For more information about this issue, see Rolling Key Encryption.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager Constructor (BCL)

Public Instance Constructor

Constructor | Description
AuthManager Constructor(String, DebugContext) | Creates a new instance of the AuthManager class.


AuthManager Constructor (String, DebugContext) (BCL)

Use this method to create a new instance of the AuthManager class.

[Visual Basic .NET]
Public Sub New( _
  ByVal siteName As System.String, _
  ByVal debugContext As DebugContext _
)
[C#]
public AuthManager(
  System.String siteName,
  DebugContext debugContext
);

Parameters

[Visual Basic .NET]
siteName
A String that contains the Commerce Server site name.
debugContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user.
[C#]
siteName
A String that contains the Commerce Server site name.
debugContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user.

Remarks

After any AuthManager instance has been initialized within an ASP.NET-based site, any new instances of the AuthManager class initialized within that site use the cached resources as loaded by the first constructor. Therefore, even if a different value is used for the siteName parameter, the AuthManager object will still be configured to run using the site configuration specified in the first instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GenerateEncryptionKey | Generates an encryption key for encrypting/decrypting cookie and query string data for tickets.
GetUserIDFromCookie(String) | Retrieves the user ID from a specified cookie.
GetUserIDFromCookieAndKey(String, String) | Retrieves the user ID from a specified cookie using an encryption key.
IsAuthenticated | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the default time window of 90 minutes.
IsAuthenticated(Int32) | Determines whether the current user has a valid MSCSAuth ticket. Determines if the user was authenticated within the given time window.
Refresh(String) | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket(String, Boolean) | Sets an encrypted MSCSAuth ticket for a registered user with the default time window of 90 minutes.
SetAuthTicket(String, Boolean, Int32) | Sets an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket(String, Boolean) | Sets an MSCSProfile ticket for an anonymous user.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


AuthManager.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.Dispose Method (BCL)

Use this method to release resources used by this object.

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the AuthManger.Dispose(Boolean) method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.GenerateEncryptionKey Method (BCL)

Use this method to generate an encryption key for encrypting/decrypting cookie and query string data for tickets.

[Visual Basic .NET]
Public Function GenerateEncryptionKey( _
) As System.String
[C#]
public System.String GenerateEncryptionKey(
);

Return Value

This method returns a String containing an encryption key used for cookie encryption.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.GetUserIDFromCookie (String) Method (BCL)

Use this method to retrieve the user ID from a specified cookie.

[Visual Basic .NET]
Public Function GetUserIDFromCookie( _
  ByVal cookie As System.String _
) As System.String
[C#]
public System.String GetUserIDFromCookie(
  System.String cookie
);

Parameters

[Visual Basic .NET]
cookie
A String containing the cookie.
[C#]
cookie
A String containing the cookie.

Return Value

This method returns a String containing the user ID from the specified cookie.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.GetUserIDFromCookieAndKey (String, String) Method (BCL)

Use this method to retrieve the user ID from a specified cookie using an encryption key.

[Visual Basic .NET]
Public Function GetUserIDFromCookieAndKey( _
  ByVal cookie As System.String, _
  ByVal encryptionKey As System.String _
) As System.String
[C#]
public System.String GetUserIDFromCookieAndKey(
  System.String cookie,
  System.String encryptionKey
);

Parameters

[Visual Basic .NET]
cookie
A String containing the cookie.
encryptionKey
A String containing the encryption key.
[C#]
cookie
A String containing the cookie.
encryptionKey
A String containing the encryption key.

Return Value

This method returns a String containing the user ID from the specified cookie and key.

Requirements

Platforms: Windows 2000, Windows .NET Server family


AuthManager.IsAuthenticated Method (BCL)

Use this method to determine whether the current user has a valid MSCSAuth ticket, authenticated within the default time window of 90 minutes.

[Visual Basic .NET]
Public Function IsAuthenticated( _
) As System.Boolean
[C#]
public System.Boolean IsAuthenticated(
);

Return Value

This method returns a Boolean indicating whether or not the current user is authenticated.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.IsAuthenticated (Int32) Method (BCL)

Use this method to determine whether the current user has a valid MSCSAuth ticket. Determines if the user has been authenticated within a specified period of time.

[Visual Basic .NET]
Public Function IsAuthenticated( _
  ByVal timeWindow As System.Int32 _
) As System.Boolean
[C#]
public System.Boolean IsAuthenticated(
  System.Int32 timeWindow
);

Parameters

[Visual Basic .NET]
timeWindow
An Integer that contains the time period in minutes.
[C#]
timeWindow
An Integer that contains the time period in minutes.

Return Value

This method returns a Boolean indicating whether or not the current user is authenticated with the given time window.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.Refresh (String) Method (BCL)

Use this method to update the cached site configuration resource properties after any of the properties have been changed.

[Visual Basic .NET]
Public Sub Refresh( _
  ByVal siteName As System.String _
)
[C#]
public void Refresh(
  System.String siteName
);

Parameters

[Visual Basic .NET]
siteName
A String that contains the Commerce Server site name.
[C#]
siteName
A String that contains the Commerce Server site name.

Remarks

The siteName parameter must be the same as the sitename that was used to initialize the authmanager class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.SetAuthTicket (String, Boolean) Method (BCL)

Use this method to set an encrypted MSCSAuth ticket for a registered user with the default time window of 90 minutes.

[Visual Basic .NET]
Public Sub SetAuthTicket( _
  ByVal userID As System.String, _
  ByVal cookieSupport As System.Boolean, _
)
[C#]
public void SetAuthTicket(
  System.String userID,
  System.Boolean cookieSupport,
);

Parameters

[Visual Basic .NET]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.
[C#]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.SetAuthTicket (String, Boolean, Int32) Method (BCL)

Use this method to set an encrypted MSCSAuth ticket for a registered user.

[Visual Basic .NET]
Public Sub SetAuthTicket( _
  ByVal userID As System.String, _
  ByVal cookieSupport As System.Boolean, _
  ByVal timeWindow As System.Int32 _
)
[C#]
public void SetAuthTicket(
  System.String userID,
  System.Boolean cookieSupport,
  System.Int32 timeWindow
);

Parameters

[Visual Basic .NET]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.
timeWindow
An Integer that contains the time period in minutes.
[C#]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.
timeWindow
An Integer that contains the time period in minutes.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.SetProfileTicket (String, Boolean) Method (BCL)

Use this method to set an MSCSProfile ticket for an anonymous user.

[Visual Basic .NET]
Public Sub SetProfileTicket( _
  ByVal userID As System.String, _
  ByVal cookieSupport As System.Boolean _
)
[C#]
public void SetProfileTicket(
  System.String userID,
  System.Boolean cookieSupport
);

Parameters

[Visual Basic .NET]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.
[C#]
userID
A String that contains the user ID.
cookieSupport
A Boolean that indicates whether or not the client supports cookies.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager Properties (BCL)

Public Instance Properties

Property | Description
AuthTicket | Retrieves the AuthTicket property.
ProfileTicket | Retrieves the ProfileTicket property.


AuthManager.AuthTicket Property (BCL)

The AuthTicket property contains the read-only AuthTicket for the user.

Definition

[Visual Basic .NET]
Public ReadOnly Property AuthTicket As AuthTicket
[C#]
public AuthTicket AuthTicket {get;}

Property Value

The AuthTicket for the user. This value is null if there is no AuthTicket present for the current request.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthManager.ProfileTicket Property (BCL)

The ProfileTicket property contains the read-only ProfileTicket for the user.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProfileTicket As ProfileTicket
[C#]
public ProfileTicket ProfileTicket {get;}

Property Value

The ProfileTicket for the user. This value is null if there is no ProfileTicket for the current request.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthTicket Class (BCL)

Contains the authentication ticket for the user.

Public Instance Methods

Method | Description
Dispose (Inherited from TicketBase) | Releases resources used by this object.
SignOut | Deletes the AuthTicket if one exists.

Public Instance Properties

Property | Description
Item(String) | Retrieves properties set in the ticket by name.
UserID | Sets and retrieves the user ID property on the AuthTicket class.
Value (Inherited from TicketBase) | Retrieves the ticket in string form.

Protected Instance Methods

Method | Description
CheckState (Inherited from TicketBase) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from TicketBase) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthTicket Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from TicketBase) | Releases resources used by this object.
SignOut | Deletes the AuthTicket if one exists.

Protected Instance Methods

Method | Description
CheckState (Inherited from TicketBase) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from TicketBase) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


AuthTicket.SignOut Method (BCL)

Use this method to delete the AuthTicket if one exists.

Definition

[Visual Basic .NET]
Public Sub SignOut( _
)
[C#]
public void SignOut(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthTicket Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Retrieves properties set in the ticket by name.
UserID | Sets and retrieves the user ID property on the AuthTicket class.
Value (Inherited from TicketBase) | Retrieves the ticket in string form.


AuthTicket.Item(String) Property (BCL)

The Item property is a read/write indexer that sets and retrieves the properties on an authentication ticket.

Definition

[Visual Basic .NET]
Overrides Public Property Item( _
  ByVal propertyName As System.String _
) As System.String
[C#]
public override System.String Item(
  System.String propertyName
) {get; set;}

Parameters

[Visual Basic .NET]
propertyName
A string that contains the name of the property.
[C#]
propertyName
A string that contains the name of the property.

Property Value

The name of the property on the authentication ticket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


AuthTicket.UserID Property (BCL)

The UserID property is a read-only string that contains the user ID on the authentication ticket.

Definition

[Visual Basic .NET]
Overrides Public Property UserID As System.String
[C#]
public override System.String UserID {get; set;}

Property Value

The user ID on the authentication ticket.

Remarks

The UserId property populates the CommerceContext.UserId property when the get method first tries to retrieve it from the AuthTicket of the AuthenticationInfo object, assuming the CommerceAuthenticationModule object is enabled for the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BaseCommerceEvent Class (BCL)

Abstract base class from which all Commerce event classes derive.

Protected Instance Constructor

Constructor | Description
BaseCommerceEvent Constructor | Creates a new instance of the BaseCommerceEvent class.

Public Instance Methods

Method | Description
Validate | Validates property values for specific event objects.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BaseCommerceEvent Constructor (BCL)

Public Instance Constructor

Constructor | Description
BaseCommerceEvent Constructor | Creates a new instance ofthe BaseCommerceEvent class.


BaseCommerceEvent Constructor (BCL)

Use this method to create a new instance of the BaseCommerceEvent class.

[Visual Basic .NET]
Protected Sub New( _
)
[C#]
public BaseCommerceEvent(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BaseCommerceEvent Methods (BCL)

Public Instance Methods

Method | Description
Validate | Validates property values for specific event objects.


BaseCommerceEvent.Validate Method (BCL)

Use this method to validate property values for specific event objects.

[Visual Basic .NET]
Overridable Public Function Validate( _
) As System.Boolean
[C#]
public virtual System.Boolean Validate(
);

Return Value

A Boolean indicating whether the property value is valid.

Remarks

This method checks the validity of the objects before logging the event object contents. This is good for checking cross-property validation and validating that all the mandatory fields were set correctly. Derived classes should override this method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent Class (BCL)

Provides base functionality for all the basket related events. This class cannot be used as a Commerce event. Use the AddItemToBasket class or the RemoveItemFromBasket class as a Commerce event instead.

Public Instance Constructor

Constructor | Description
BasketEvent Constructor | Creates a new instance of the BasketEvent class.

Public Instance Methods

Method | Description
Validate | Validates the CatalogName and ProductID properties for the basket event.

Public Instance Properties

Property | Description
CatalogName | The name of the catalog to which the product belongs.
ProductID | The product identifier for the product associated with the basket.
ReadOnlyPrID | This property is calculated internally and is read only.
VariantID | The variant ID for the product associated with the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent Constructor (BCL)

Public Instance Constructor

Constructor | Description
BasketEvent Constructor | Creates a new instance of the BasketEvent class.


BasketEvent Constructor (BCL)

Use this method to create a new instance of the BasketEvent class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public BasketEvent(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent Methods (BCL)

Public Instance Methods

Method | Description
Validate | Validates the CatalogName and ProductID properties for the basket event.


BasketEvent.Validate Method (BCL)

Use this method to validate the CatalogName and ProductID properties for the basket event.

Definition

[Visual Basic .NET]
Overrides Public Function Validate( _
) As System.Boolean
[C#]
public override System.Boolean Validate(
);

Return Value

A System.Boolean that returns True if the CatalogName property and the ProductID property are not NULL.

Remarks

Overrides the default Validate function provided by the BaseCommerceEvent class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent Properties (BCL)

Public Instance Properties

Property | Description
CatalogName | The name of the catalog to which the product belongs.
ProductID | The product identifier for the product associated with the basket.
ReadOnlyPrID | This property is calculated internally and is read only.
VariantID | The variant ID for the product associated with the basket.


BasketEvent.CatalogName Property (BCL)

The CatalogName property is a read/write string that identifies the catalog to which the product belongs.

Definition

[Visual Basic .NET]
Public Property CatalogName As System.String
[C#]
public System.String CatalogName {get; set;}

Property Value

The name of the catalog to which the product belongs.

Remarks

This property must be set for a valid event.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent.ProductID Property (BCL)

The ProductID property is a read/write string that identfies the product ID for the product.

Definition

[Visual Basic .NET]
Public Property ProductID As System.String
[C#]
public System.String ProductID {get; set;}

Property Value

The name of the product ID for the product.

Remarks

This property must be set for a valid event.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent.ReadOnlyPrID Property (BCL)

The ReadOnlyPrID property is a read-only string that contains an internally generated string based on the values of the CatalogName property, the ProductID property, and the VariantID property.

Definition

[Visual Basic .NET]
Public ReadOnly Property ReadOnlyPrID As System.String
[C#]
public System.String ReadOnlyPrID {get;}

Property Value

An internally generated string.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


BasketEvent.VariantID Property (BCL)

The VariantID property is a read-only string that contains the variant ID for the product.

Definition

[Visual Basic .NET]
Public Property VariantID As System.String
[C#]
public System.String VariantID {get; set;}

Property Value

The variant ID for the product.

Remarks

Setting this property is optional.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule Class (BCL)

The primary CommerceModule class responsible for initialization of the site framework. The CommerceApplicationModule class must be the first CommerceModule class listed in the httpModules section of the web.config file.

Public Instance Constructor

Constructor | Description
CommerceApplicationModule Constructor | Creates a new instance of the CommerceApplicationModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Creates a CommerceContext class and stores it in the HttpContext Items collection.
OnEndRequest(Object, EventArgs) | Releases the current CommerceContext object from the HttpContext Items collection and calls the Dispose method to clean up resources.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance is initialized.

Public Static (Shared) Properties

Property | Description
DebugContext | Gets or sets the debug mode for the DebugContext class.
Pipelines | Gets the site pipelines collection.
Resources | Gets the collection of Commerce Server resources configured for the site.
SiteName | Gets the Commerce Server site name.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceApplicationModule Constructor | Creates a new instance of the CommerceApplicationModule class.


CommerceApplicationModule Constructor (BCL)

Use this method to create a new instance of the CommerceApplicationModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceApplicationModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Creates a CommerceContext class and stores it in the HttpContext Items collection.
OnEndRequest(Object, EventArgs) | Releases the current CommerceContext object from the HttpContext Items collection and calls the Dispose method to clean up resources.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceApplicationModule.Init (HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The current HttpApplication instance.
[C#]
appInstance
The current HttpApplication instance.

Remarks

The SiteName, Resources, Pipelines, and DebugContext properties are initialized after reading the <application> section of the Commerce Server config section.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule.OnBeginRequest (Object, EventArgs) Method (BCL)

Internal handler used for handling events raised by the application.

Definition

[Visual Basic .NET]
Public Sub OnBeginRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnBeginRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.
[C#]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.

Remarks

This method creates a CommerceContext object and stores it in the HttpContext Items collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule.OnEndRequest (Object, EventArgs) Method (BCL)

Use this method to handle HttpApplication EndRequest events.

Definition

[Visual Basic .NET]
Public Sub OnEndRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnEndRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.
[C#]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.

Remarks

Releases the current CommerceContext object from the HttpContext Items collection and calls its Dispose method to clean up resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance is initialized.

Public Static (Shared) Properties

Property | Description
DebugContext | Gets or sets the debug mode for the DebugContext class.
Pipelines | Gets the site pipelines collection.
Resources | Gets the collection of Commerce Server resources configured for the site.
SiteName | Gets the Commerce Server site name.


CommerceApplicationModule.DebugContext Property (BCL)

The DebugContext property is a read/write DebugContext that gets and sets the debug mode used throughout the site.

Definition

[Visual Basic .NET]
Public Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get; set;}

Property Value

The debug mode for the DebugContext class.

Implements

Diagnostics.DebugContext

Remarks

Throws an ArgumentNullException if the value is set to null. The application can set the DebugContext property to a custom instance of the DebugContext class or a derived class if it chooses. The custom instance should be set in Application_OnStart event before the CommerceApplicationModule class is initialized.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule.Pipelines Property (BCL)

The Pipelines property is a read-only version of the current PipelineCollection instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property Pipelines As PipelineCollection
[C#]
public PipelineCollection Pipelines {get;}

Property Value

Contains the current PipelineCollection instance for the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule.Resources Property (BCL)

The Resources property is a read-only version of the current CommerceResourceCollection class.

Definition

[Visual Basic .NET]
Public ReadOnly Property Resources As CommerceResourceCollection
[C#]
public CommerceResourceCollection Resources {get;}

Property Value

Contains the current collection of Commerce Server resources configured for the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceApplicationModule.SiteName Property (BCL)

The SiteName property is a read-only String containing the name of the Commerce Server site.

Definition

[Visual Basic .NET]
Public ReadOnly Property SiteName As System.String
[C#]
public System.String SiteName {get;}

Property Value

Contains the name of the Commerce Server site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Class (BCL)

The base class for exceptions thrown from the Authentication sub-system.

Public Instance Constructor

Constructor | Description
CommerceAuthenticationException Constructor | Creates a new instance of the CommerceAuthenticationException class.
CommerceAuthenticationException Constructor(String) | Creates a new instance of the CommerceAuthenticationException class with the specified string message.
CommerceAuthenticationException Constructor(String, Exception) | Creates a new instance of the CommerceAuthenticationException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceAuthenticationException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceAuthenticationException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
GetObjectData(SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Method | Description
HelpLink (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceAuthenticationException Constructor | Creates a new instance of the CommerceAuthenticationException class.
CommerceAuthenticationException Constructor(String) | Creates a new instance of the CommerceAuthenticationException class with the specified string message.
CommerceAuthenticationException Constructor(String, Exception) | Creates a new instance of the CommerceAuthenticationException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceAuthenticationException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceAuthenticationException class with the specified serialization information and streaming context


CommerceAuthenticationException Constructor (BCL)

Use this method to create a new instance of the CommerceAuthenticationException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceAuthenticationException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceAuthenticationException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceAuthenticationException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceAuthenticationException instance with the specified string message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceAuthenticationException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The exception message.
[C#]
message
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceAuthenticationException instance with the specified string message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceAuthenticationSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The exception message.
inner
The inner exception.
[C#]
message
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
GetObjectData(SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.


CommerceAuthenticationException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationException Properties (BCL)

Public Instance Properties

Method | Description
HelpLink (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.


CommerceAuthenticationFailedDecryptionException Class (BCL)

Exception raised whenever a decryption error occurs, most notably when an invalid encryption key or a invalid ticket is used

Public Instance Constructor

Constructor | Description
CommerceAuthenticationFailedDecryptionException Constructor | Creates a new instance of the CommerceAuthentication FailedDecryptionException class.
CommerceAuthenticationFailedDecryptionException Constructor(String) | Creates a new instance of the CommerceAuthentication FailedDecryptionException class with the specified string message.
CommerceAuthenticationFailedDecryptionException Constructor(String, Exception) | Creates a new instance of the CommerceAuthentication FailedDecryptionException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceAuthenticationFailedDecryptionException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceAuthentication FailedDecryptionException object with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceAuthenticationFailedDecryptionException Constructor | Creates a new instance of the CommerceAuthentication FailedDecryptionException class.
CommerceAuthenticationFailedDecryptionException Constructor(String) | Creates a new instance of the CommerceAuthentication FailedDecryptionException class with the specified string message.
CommerceAuthenticationFailedDecryptionException Constructor(String, Exception) | Creates a new instance of the CommerceAuthentication FailedDecryptionException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceAuthenticationFailedDecryptionException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceAuthentication FailedDecryptionException class with the specified serialization information and streaming context.


CommerceAuthenticationFailedDecryptionException Constructor (BCL)

Use this method to create a new instance of the CommerceAuthenticationFailedDecryptionException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceAuthenticationFailedDecryptionException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceAuthenticationFailedDecryptionException class with the specified string message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceAuthenticationFailedDecryptionException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceAuthenticationFailedDecryptionException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
public CommerceAuthenticationFailedDecryptionException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceAuthenticationFailedDecryptionException class with the specified string message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceAuthenticationFailedDecryptionException(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The exception message.
inner
The inner exception.
[C#]
message
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceAuthenticationFailedDecryptionException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationFailedDecryptionException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | See the .NET Framework SDK documentation for the System.Exception class.


CommerceAuthenticationModule Class (BCL)

Provides a framework context for managing the authentication of site visitors, client side cookie detection, and creation of an instance of the AuthManagerInfo class at page scope.

Public Instance Constructor

Constructor | Description
CommerceAuthenticationModule Constructor | Creates a new instance of the CommerceAuthenticationModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Release resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Sets the AuthenticationInfo member of the current CommerceContext object.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceAuthenticationModule Constructor | Creates a new instance of the CommerceAuthenticationModule class.


CommerceAuthenticationModule Constructor (BCL)

Use this method to create a new instance of the CommerceAuthenticationModule class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceAuthenticationModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Release resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Sets the AuthenticationInfo member of the current CommerceContext object.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceAuthenticationModule.Init (HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The HttpApplication instance that created this module.
[C#]
appInstance
The HttpApplication instance that created this module.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationModule.OnBeginRequest (Object, EventArgs) Method (BCL)

Use this method as the event handler for HttpApplication BeginRequest events.

[Visual Basic .NET]
Public Sub OnBeginRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnBeginRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
HttpApplication instance that sent the event.
e
The current EventArgs instance.
[C#]
sender
HttpApplication instance that sent the event.
e
The current EventArgs instance.

Remarks

Sets the AuthenticationInfo member of the current CommerceContext object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceAuthenticationModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.


CommerceContext Class (BCL)

The primary class used to interface with Commerce Server.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetCatalogsForUser | Gets the list of catalogs for the current user.
LogCommerceEvent(BaseCommerceEvent) | Logs a Commerce event.
RegisterDisposable(Object) | Registers objects that can be disposed of early using the Dispose method. Only page-scoped objects should be registered, these objects will become invalid after the request is done processing and the instance of the CommerceContext class is disposed.

Public Instance Properties

Property | Description
AuthenticationInfo | Gets the AuthenticationInfo class instance that was created by the CommerceAuthenticationModule class.
Caches | Gets the collection of caches configured for the site.
CatalogSystem | Gets or sets the default CatalogContext class for use on the site.
DebugContext | Gets the debug mode for the DebugContext class.
OrderSystem | Gets or sets the default OrderContext class for use on the site.
OrganizationProfile | Gets or sets the organization profile for the current user.
Pipelines | Gets the available pipelines collection.
ProfileSystem | Gets or sets the default ProfileContext object for use on the site.
QueryStringBuilder | Gets the default QueryStringBuilder object for use on the site.
Resources | Gets the collection of Commerce Server resources configured for the site.
SiteName | Gets the Commerce Server site name.
TargetingSystem | Gets the TargetingSytemInfo object for this CommerceContext class instance.
UserId | Gets or sets the user ID (user profile primary key) for the current user.
UserProfile | Gets or sets the UserObject profile for the current user.

Public Static (Shared) Properties

Property | Description
Current | Retrieves the CommerceContext object for the current request.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Pipelines Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Profiles Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


CommerceContext Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetCatalogsForUser | Gets the list of catalogs for the current user.
LogCommerceEvent(BaseCommerceEvent) | Logs a commerce event.
RegisterDisposable(Object) | Registers objects that can be disposed of early using the Dispose method. Only page-scoped objects should be registered, these objects will become invalid after the request is done processing and the instance of the CommerceContext class is disposed.

See Also

Example Code for the Microsoft.CommerceServer.Runtime Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Pipelines Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Profiles Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


CommerceContext.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Module Design Patterns


CommerceContext.GetCatalogsForUser Method (BCL)

Use this method to get the list of catalogs for the current user.

Definition

[Visual Basic .NET]
Public Function GetCatalogsForUser( _
) As ReadOnlyStringCollection
[C#]
public ReadOnlyStringCollection GetCatalogsForUser(
);

Return Value

The list of catalogs that should be shown to the given user.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace


CommerceContext.LogCommerceEvent (BaseCommerceEvent) Method (BCL)

Use this method to log a commerce event.

Definition

[Visual Basic .NET]
Public Shared LogCommerceEvent( _
  ByVal evt As Microsoft.CommerceServer.Runtime.BaseCommerceEvent _
)
[C#]
public static LogCommerceEvent(
  Microsoft.CommerceServer.Runtime.BaseCommerceEvent evt
);

Parameters

[Visual Basic .NET]
evt
A commerce event object that derives from the base commerce event class.
[C#]
evt
A commerce event object that derives from the base commerce event class.

Return Value

Status of the logging function. Return values are defined in the LogStatus Enumeration.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.RegisterDisposable (Object) Method (BCL)

Use this method to register page-scoped objects for disposal. These objects will become invalid after the request is done processing and the instance of the CommerceContext class is disposed.

Definition

[Visual Basic .NET]
Public Sub RegisterDisposable( _
  ByVal disposableObject As System.Object _
)
[C#]
public void RegisterDisposable(
  System.Object disposableObject
);

Parameters

[Visual Basic .NET]
disposableObject
The object that implements the IDisposable interface or a __COMObject type.
[C#]
disposableObject
The object that implements the IDisposable interface or a __COMObject type.

Remarks

In checked mode, this method will ensure that the object implements either the IDisposable interface or is a type of __COMObject. If it is not, then it will raise an error with the DebugContext object for the application.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Resource Disposal


CommerceContext Properties (BCL)

Public Instance Properties

Property | Description
AuthenticationInfo | Gets the AuthenticationInfo class instance that was created by the CommerceAuthenticationModule class.
Caches | Gets the collection of caches configured for the site.
CatalogSystem | Gets or sets the default CatalogContext class for use on the site.
DebugContext | Gets the debug mode for the DebugContext class.
OrderSystem | Gets or sets the default OrderContext class for use on the site.
OrganizationProfile | Gets or sets the organization profile for the current user.
Pipelines | Gets the available pipelines collection.
ProfileSystem | Gets or sets the default ProfileContext object for use on the site.
QueryStringBuilder | Gets the default QueryStringBuilder object for use on the site.
Resources | Gets the collection of Commerce Server resources configured for the site.
SiteName | Gets the Commerce Server site name.
TargetingSystem | Gets the TargetingSytemInfo object for this CommerceContext class instance.
UserId | Gets or sets the user ID (user profile primary key) for the current user.
UserProfile | Gets or sets the UserObject profile for the current user.

Public Static (Shared) Properties

Property | Description
Current | Retrieves the CommerceContext object for the current request.

See Also

Example Code for the Microsoft.CommerceServer.Runtime Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Pipelines Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Profiles Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


CommerceContext.AuthenticationInfo Property (BCL)

The AuthenticationInfo property is a read-only object that retrieves the AuthenticationInfo class instance that was created by the CommerceAuthenticationModule class.

Definition

[Visual Basic .NET]
Public ReadOnly Property AuthenticationInfo As AuthenticationInfo
[C#]
public AuthenticationInfo AuthenticationInfo {get;}

Property Value

The AuthenticationInfo class instance created by the CommerceAuthenticationModule class.

Remarks

Will be null if the CommerceAuthenticationModule class is not enabled in the web.config file.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.Caches Property (BCL)

The Caches property is a read-only CommerceCacheCollection object containing the collection of caches configured for the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property Caches As CommerceCacheCollection
[C#]
public CommerceCacheCollection Caches {get;}

Property Value

The collection of caches configured for the site.

Remarks

The value will be null if the CommerceCacheModule class is not configured in the web.config file. Always check this property for a non-null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.CatalogSystem Property (BCL)

The CatalogSystem property is a read/write CatalogContext object for use on the site.

Definition

[Visual Basic .NET]
Public Property CatalogSystem As CatalogContext
[C#]
public CatalogContext CatalogSystem {get; set;}

Property Value

The CatalogContext class used on the site.

Remarks

A default CatalogContext class is available only if the CommerceCatalogModule class is configured in the web.config file. Always check this property for a non-null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace


CommerceContext.Current Property (BCL)

The Current property is a read-only CommerceContext object containing the current request.

Definition

[Visual Basic .NET]
Public ReadOnly Property Current As CommerceContext
[C#]
public CommerceContext Current {get;}

Property Value

The CommerceContext object containing the current request.

Remarks

CommerceContext objects are created by the Commerce Server .NET Application Framework as part of the processing for every ASPX page in the Commerce Server site. The CommerceApplicationModule class must be configured in the httpModules section in the web.config file.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Catalog Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Pipelines Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Profiles Namespace

Example Code for the Microsoft.CommerceServer.Runtime.Targeting Namespace


CommerceContext.DebugContext Property (BCL)

The DebugContext property is a read-only DebugContext object that gets the debug mode used throughout the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

The DebugContext object that gets the debug mode used throughout the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to display targeted advertisements on an ASP.NET Web form


CommerceContext.OrderSystem Property (BCL)

The OrderSystem property is a read/write OrderContext object.

Definition

[Visual Basic .NET]
Public Property OrderSystem As OrderContext
[C#]
public OrderContext OrderSystem {get; set;}

Property Value

The read/write OrderContext object used on the site.

Remarks

A default OrderContext object is available only if the CommerceOrderModule class is configured in the web.config file. Always check this property for a non-null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


CommerceContext.OrganizationProfile Property (BCL)

The OrganizationProfile property is a read/write Profile object containing the organization profile for the current user.

Definition

[Visual Basic .NET]
Public Property OrganizationProfile As Profile
[C#]
public Profile OrganizationProfile {get; set;}

Property Value

The Profile object containing the profile for the current user.

Remarks

The OrganizationProfile property is dependent on being set by the UserProfile profile property or set explicitly. The UserProfile property is dependent on being set by UserId property or set explicitly, and the UserId property is dependent upon being set explicitly or obtaining the Id from the AuthTicket object, if it exists.

If this property is accessed before it has been explicitly set, the profile will be automatically retrieved from the Profile System using the UserProfile property and the settings in the profiles section in the web.config file. This property will return null if the organization profile does not exist.

This property throws a CommerceException if the OrganizationProfile property has not been previously set and either the UserProfile or ProfileSystem property is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.Pipelines Property (BCL)

The Pipelines property is the read-only PipelineCollection object used on the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property Pipelines As PipelineCollection
[C#]
public PipelineCollection Pipelines {get;}

Property Value

The pipeline collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to read a pipeline collection and display its properties


CommerceContext.ProfileSystem Property (BCL)

The ProfileSystem property is the read/write ProfileContext object used on the site.

Definition

[Visual Basic .NET]
Public Property ProfileSystem As ProfileContext
[C#]
public ProfileContext ProfileSystem {get; set;}

Property Value

The ProfileContext object used on the site.

Remarks

A default ProfileContext object is available only if the CommerceProfileModule class is configured in the web.config file. Always check this property for a non-null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to use the SiteTerm class

Code to display targeted advertisements on an ASP.NET Web form


CommerceContext.QueryStringBuilder Property (BCL)

The QueryStringBuilder property is the read-only QueryStringBuilder object used on the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property QueryStringBuilder As QueryStringBuilder
[C#]
public QueryStringBuilder QueryStringBuilder {get;}

Property Value

The QueryStringBuilder object used on the site.

Remarks

A default QueryStringBuilder object is always available.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.Resources Property (BCL)

The Resources property is the read-only CommerceResourceCollection object configured for the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property Resources As CommerceResourceCollection
[C#]
public CommerceResourceCollection Resources {get;}

Property Value

The CommerceResourceCollection object configured for the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to read a resource collection and display its contents


CommerceContext.SiteName Property (BCL)

The SiteName property is a read-only String containing the name of the Commerce Server site.

Definition

[Visual Basic .NET]
Public ReadOnly Property SiteName As System.String
[C#]
public System.String SiteName {get;}

Property Value

A String containing the name of the Commerce Server site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContext.TargetingSystem Property (BCL)

The TargetingSystem property is the read-only TargetingSytemInfo object for use on the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property TargetingSystem As TargetingSystemInfo
[C#]
public TargetingSystemInfo TargetingSystem {get;}

Property Value

The TargetingSystemInfo object for use on the site.

Remarks

Creates the instance of the TargetingSystemInfo object on first access.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to display targeted advertisements on an ASP.NET Web form


CommerceContext.UserId Property (BCL)

The UserId property is a read/write String containing the user ID for the current user.

Definition

[Visual Basic .NET]
Public Property UserId As System.String
[C#]
public System.String UserId {get; set;}

Property Value

A String containing the user ID for the current user.

Remarks

The OrganizationProfile property is dependent on being set by the UserProfile profile property or set explicitly. The UserProfile property is dependent on being set by UserId property or set explicitly, and the UserId property is dependent upon being set explicitly or obtaining the Id from the AuthTicket object, if it exists.

If the UserId property has not been previously set, then the get method tries to retrieve it from the current AuthTicket of the AuthenticationInfo object, assuming the CommerceAuthenticationModule object is enabled for the site.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Set Shipping Methods on a Basket on an ASP.NET Web Form

Code to Manipulate a Basket on an ASP.NET Web Form


CommerceContext.UserProfile Property (BCL)

The UserProfile property is a read/write Profile object containing the profile for the current user.

Definition

[Visual Basic .NET]
Public Property UserProfile As Profile
[C#]
public Profile UserProfile {get; set;}

Property Value

The Profile object containing the profile for the current user.

Remarks

The OrganizationProfile property is dependent on being set by the UserProfile profile property or set explicitly. The UserProfile property is dependent on being set by UserId property or set explicitly, and the UserId property is dependent upon being set explicitly or obtaining the Id from the AuthTicket object, if it exists.

If this property is accessed before it has been explicitly set, the profile will be automatically retrieved from the Profile System using the UserId property and the settings in the profiles section in the web.config file. The property returns null if the user profile does not exist. This property throws a CommerceException if the UserProfile property has not been previously set and either the UserId or ProfileSystem property is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to display targeted advertisements on an ASP.NET Web form

Code to retrieve and display profile properties

Code to create and set profile properties


CommerceCreateObjectException Class (BCL)

Exception raised when a COM object cannot be created.

Public Instance Constructor

Constructor | Description
CommerceCreateObjectException Constructor | Creates a new instance of the CommerceCreateObjectException class.
CommerceCreateObjectException Constructor(String) | Creates a new instance of the CommerceCreateObjectException class with a specified error message.
CommerceCreateObjectException Constructor(String, COMException) | Creates a new instance of the CommerceCreateObjectException class with a specified error message and a reference to the inner COM exception that is the cause of this exception.
CommerceCreateObjectException Constructor(String, Exception) | Creates a new instance of the CommerceCreateObjectException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Protected Instance Constructor

Constructor | Description
CommerceCreateObjectException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceCreateObjectException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCreateObjectException Constructor | Creates a new instance of the CommerceCreateObjectException class.
CommerceCreateObjectException Constructor(String) | Creates a new instance of the CommerceCreateObjectException class with a specified error message.
CommerceCreateObjectException Constructor(String, COMException) | Creates a new instance of the CommerceCreateObjectException class with a specified error message and a reference to the inner COM exception that is the cause of this exception.
CommerceCreateObjectException Constructor(String, Exception) | Creates a new instance of the CommerceCreateObjectException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Protected Instance Constructor

Constructor | Description
CommerceCreateObjectException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceCreateObjectException class with the specified serialization information and streaming context.


CommerceCreateObjectException Constructor (BCL)

Use this method to create a new instance of the CommerceCreateObjectException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceCreateObjectException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceCreateObjectException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceCreateObjectException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceCreateObjectException class with the specified exception message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceCreateObjectException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The exception message.
[C#]
message
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Constructor (String, COMException) (BCL)

Use this method to create a new instance of the CommerceCreateObjectException class with the specified exception string and the inner COM exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal progId As System.String, _
  ByVal inner As System.Runtime.InteropServices.COMException _
)
[C#]
public CommerceCreateObjectException(
  System.String progId,
  System.Runtime.InteropServices.COMException inner
);

Parameters

[Visual Basic .NET]
progId
The programmatic identifier.
inner
The inner exception.
[C#]
progId
The programmatic identifier.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceCreateObjectException class with the specified exception string and the inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceCreateObjectSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The exception message.
inner
The inner exception.
[C#]
message
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceCreateObjectException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceCreateObjectException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceDebugException Class (BCL)

A special exception raised by components of a Commerce Server application when they encounter an error during the Debug or Checked mode of operation.

Public Instance Constructor

Constructor | Description
CommerceDebugException Constructor | Creates a new instance of the CommerceDebugException class.
CommerceDebugException Constructor(String) | Creates a new instance of the CommerceDebugException class with the specified error message.
CommerceDebugException Constructor(String, Exception) | Creates a new instance of the CommerceDebugException class with the specified error message and inner exception.
CommerceDebugException Constructor(String, String) | Creates a new instance of the CommerceDebugException class with the specified category and message.
CommerceDebugException Constructor(String, String, Exception) | Creates a new instance of the CommerceDebugException class with the specified category, message, and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceDebugException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceDebugException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceDebugException Constructor | Creates a new instance of the CommerceDebugException class.
CommerceDebugException Constructor(String) | Creates a new instance of the CommerceDebugException class with the specified error message.
CommerceDebugException Constructor(String, Exception) | Creates a new instance of the CommerceDebugException class with the specified error message and inner exception.
CommerceDebugException Constructor(String, String) | Creates a new instance of the CommerceDebugException class with the specified category and message.
CommerceDebugException Constructor(String, String, Exception) | Creates a new instance of the CommerceDebugException class with the specified category, message, and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceDebugException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceDebugException class with the specified serialization information and streaming context.


CommerceDebugException Constructor (BCL)

Use this method to create a new instance of the CommerceDebugException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceDebugException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceDebugException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceDebugException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceDebugException class with the specified error message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceDebugException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The exception message.
[C#]
message
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceDebugException class with the specified error message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceDebugSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The exception message.
inner
The inner exception.
[C#]
message
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (String, String) (BCL)

Use this method to create a new instance of the CommerceDebugException class with the specified cagegory and message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public CommerceDebugException(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The category string. The category is a string such as "CommerceCatalog" or "CommerceOrders."
message
The exception message.
[C#]
category
The category string. The category is a string such as "CommerceCatalog" or "CommerceOrders."
message
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Constructor (String, String, Exception) (BCL)

Use this method to create a new instance of the CommerceDebugException class with the specified category, message, and inner exception

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceDebugSystem.Exception(
  System.String category,
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
category
The category string. The category is a string such as "CommerceCatalog" or "CommerceOrders."
message
The exception message.
inner
The inner exception.
[C#]
category
The category string. The category is a string such as "CommerceCatalog" or "CommerceOrders."
message
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceDebugException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceDebugException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceEventAttribute Class (BCL)

These attributes identify the class as being a Commerce event and also associate a commerce specific short name with to the Commerce event.

Public Instance Constructor

Constructor | Description
CommerceEventAttribute Constructor(String) | Creates a new instance of the CommerceEventAttribute class.

Public Instance Methods

Method | Description
Equals(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetCustomAttributes (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetHashCode (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefaultAttribute (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefined (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
Match(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.

Public Instance Properties

Property | Description
ClassName | Gets the Commerce Server–specific short name of the class that this instance of the attribute is associated with.
TypeId (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.

Remarks

The CommerceEventAttribute class marks Commerce event classes and associates a Commerce Server–specific short name with the particular event class.

For example:

[CommerceEvent("BSK")]
            public class AddToBasketEvent : BaseCommerceEvent

In the previous example, the attribute is used to mark the AddToBasketEvent class as a Commerce event class and associate the Commerce Server–specific short name BSK with the class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceEventAttribute Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceEventAttribute Constructor(String) | Creates a new instance of the CommerceEventAttribute class.


CommerceEventAttribute Constructor (String) (BCL)

Use this method to create a new instance of the CommerceEventAttribute class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal className As System.String _
)
[C#]
public CommerceEventAttribute(
  System.String className
);

Parameters

[Visual Basic .NET]
className
Name of the class to which this attribute is associated.
[C#]
className
Name of the class to which this attribute is associated.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceEventAttribute Methods (BCL)

Public Instance Methods

Method | Description
Equals(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetCustomAttributes (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetHashCode (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefaultAttribute (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefined (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
Match(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.


CommerceEventAttribute Properties (BCL)

Public Instance Properties

Property | Description
ClassName | Gets the Commerce Server–specific short name of the class that this instance of the attribute is associated with.
TypeId (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.


CommerceEventAttribute.ClassName Property (BCL)

The ClassName property is a read-only String containing the Commerce Server–specific short name of the class that this instance of the attribute is associated with.

Definition

[Visual Basic .NET]
Public ReadOnly Property ClassName As System.String
[C#]
public System.String ClassName {get;}

Property Value

A String containing the short name of the class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceEventMemberAttribute Class (BCL)

Associates a Commerce-specific short name with the Commerce property.

Public Instance Constructor

Constructor | Description
CommerceEventMemberAttribute Constructor(String) | Creates a new instance of the CommerceEventMemberAttribute class.

Public Instance Methods

Method | Description
Equals(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetCustomAttributes (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetHashCode (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefaultAttribute (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefined (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
Match(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.

Public Instance Properties

Property | Description
MemberName | Gets the Commerce-specific short name of the Commerce property that the instance of this attribute is associated with.
TypeId (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.

Remarks

The CommerceEventMemberAttribute class marks Commerce event class properties as Commerce properties and also associate a Commerce-specific short name with the particular event class.

For example:

[CommerceEvent("BSK")]
   public class AddToBasketEvent : BaseCommerceEvent
   {
       [CommerceEventMember("PRID")]
       public string ProductID
       {
           get
           {
               ...
           }
           set
           {
               ...
           }
       }
   }

In the above example, the attribute is used to mark the ProductID property of the AddToBasketEvent class as a Commerce event property and also associates the Commerce-specific short name PRID with the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceEventMemberAttribute Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceEventMemberAttribute Constructor(String) | Creates a new instance of the CommerceEventMemberAttribute class.


CommerceEventMemberAttribute Constructor (String) (BCL)

Use this method to create a new instance of the CommerceEventMemberAttribute class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal memberName As System.String _
)
[C#]
public CommerceEventMemberAttribute(
  System.String memberName
);

Parameters

[Visual Basic .NET]
memberName
The name of the property with which the attribute is associated.
[C#]
memberName
The name of the property with which the attribute is associated.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceEventMemberAttribute Methods (BCL)

Public Instance Methods

Method | Description
Equals(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetCustomAttributes (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
GetHashCode (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefaultAttribute (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
IsDefined (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.
Match(Object) (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.


CommerceEventMemberAttribute Properties (BCL)

Public Instance Properties

Property | Description
MemberName | Gets the Commerce-specific short name of the Commerce property that the instance of this attribute is associated with.
TypeId (Inherited from System.Attribute) | Refer to the .NET Framework SDK documentation for the System.Attribute class.


CommerceEventMemberAttribute.MemberName Property (BCL)

The MemberName property is a read-only String that gets the Commerce-specific short name of the Commerce property that the instance of this attribute is associated with.

Definition

[Visual Basic .NET]
Public ReadOnly Property MemberName As System.String
[C#]
public System.String MemberName {get;}

Property Value

A string containing the name of the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceException Class (BCL)

Base type for all .NET-based Commerce Server exceptions.

Public Instance Constructor

Constructor | Description
CommerceException Constructor | Creates a new instance of the CommerceException class.
CommerceException Constructor(String) | Creates a new instance of the CommerceException class with a specified error message.
CommerceException Constructor(String, COMException) | Creates a new instance of the CommerceException class with a specified error message and a reference to the inner COM exception that is the cause of this exception.
CommerceException Constructor(String, Exception) | Creates a new instance of the CommerceException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Protected Instance Constructor

Constructor | Description
CommerceException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData(SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceException Constructor | Creates a new instance of the CommerceException class.
CommerceException Constructor(String) | Creates a new instance of the CommerceException class with a specified error message.
CommerceException Constructor(String, COMException) | Creates a new instance of the CommerceException class with a specified error message and a reference to the inner COM exception that is the cause of this exception.
CommerceException Constructor(String, Exception) | Creates a new instance of the CommerceException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Protected Instance Constructor

Constructor | Description
CommerceException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceException class with the specified serialization information and streaming context.


CommerceException Constructor (BCL)

Use this method to create a new instance of the CommerceException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceException class with a specified error message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String _
)
[C#]
public CommerceException(
  System.String msg
);

Parameters

[Visual Basic .NET]
msg
The error message.
[C#]
msg
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Constructor (String, COMException) (BCL)

Use this method to create a new instance of the CommerceException class with a specified error message and inner COM exception that is the cause for this exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String, _
  ByVal comException As System.Runtime.InteropServices.COMException _
)
[C#]
public CommerceException(
  System.String msg,
  System.Runtime.InteropServices.COMException comException
);

Parameters

[Visual Basic .NET]
msg
The error message.
comException
The COM exception.
[C#]
msg
The error message.
comException
The COM exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceSystem.Exception(
  System.String msg,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
msg
The error message.
inner
The inner exception.
[C#]
msg
The error message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData(SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceModule Class (BCL)

All Commerce Server modules inherit from the CommerceModule class. The CommerceModule class inherits from IHttpModule.

Protected Instance Constructor

Constructor | Description
CommerceModule | Creates a new instance of the CommerceModule class.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.

Public Instance Properties

Property | Description
IsInitialized | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Protected Instance Methods

Property | Description
DeclareModuleDependency(Type, Type) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule Constructor (BCL)

Protected Instance Constructor

Constructor | Description
CommerceModule | Creates a new instance of the CommerceModule class.


CommerceModule Constructor (BCL)

Use this method to create a new instance of the CommerceModule class.

Definition

[Visual Basic .NET]
Protected Sub New( _
)
[C#]
protected CommerceModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.

Protected Instance Methods

Property | Description
DeclareModuleDependency(Type, Type) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceModule.DeclareModuleDependency (Type, Type) Method (BCL)

Use this method to declare a dependency on another CommerceModule class, by type.

Definition

[Visual Basic .NET]
Protected Shared Sub DeclareModuleDependency( _
  ByVal moduleType As System.Type, _
  ByVal dependentType As System.Type _
)
[C#]
protected static void DeclareModuleDependency(
  System.Type moduleType,
  System.Type dependentType
);

Parameters

[Visual Basic .NET]
moduleType
The System.Type that represents the type of module this module is dependent upon. May not be null.
dependentType
The System.Type of the dependent module.
[C#]
moduleType
The System.Type that represents the type of module this module is dependent upon. May not be null.
dependentType
The System.Type of the dependent module.

Remarks

Throws the CommerceModuleDependencyException when the module that this module is dependent upon does not exist. Throws the ArgumentNullException when one of the required arguments was passed as a null value.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule.DeclareResourceDependency (String, Type) Method (BCL)

Use this method to declare a dependency on a Commerce Server site resource.

Definition

[Visual Basic .NET]
Protected Shared Sub DeclareResourceDependency( _
  ByVal resourceName As System.String, _
  ByVal dependentType As System.Type _
)
[C#]
protected static void DeclareResourceDependency(
  System.String resourceName,
  System.Type dependentType
);

Parameters

[Visual Basic .NET]
resourceName
Name of the Commerce Server resource that the module depends on. May not be null.
dependentType
The System.Type of the dependent module.
[C#]
resourceName
Name of the Commerce Server resource that the module depends on. May not be null.
dependentType
The System.Type of the dependent module.

Remarks

Throws the CommerceResourceDependencyException when the resource that the module is dependent upon does not exist. Throws the ArgumentNullException when one of the required arguments was passed as a null value.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overrides Public Sub Dispose( _
)
[C#]
public override void Dispose(
);

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule.Dispose(Boolean) Method

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule.Init(HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The current HttpApplication instance.
[C#]
appInstance
The current HttpApplication instance.

Implements

System.Web.IHttpModule

Remarks

This method sets the IsInitialized property to true when complete.

The method throws a CommerceResourceDependencyException when the associated Commerce Server resource of a known cache type is not found.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.


CommerceModule.IsInitialized Property (BCL)

The IsInitialized property is a read-only Boolean that is set to True when the CommerceModule class instance has been initialized.

Definition

[Visual Basic .NET]
Public ReadOnly Property IsInitialized As System.Boolean
[C#]
public System.Boolean IsInitialized {get;}

Property Value

Set to true when the CommerceModule class instance has been initialized, false otherwise.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Class (BCL)

Exception raised when a module depends on another module that has not been configured.

Public Instance Constructor

Constructor | Description
CommerceModuleDependencyException Constructor | Creates a new instance of the CommerceModuleDependencyException class.
CommerceModuleDependencyException Constructor(String) | Creates a new instance of the CommerceModuleDependencyException class with the specified message.
CommerceModuleDependencyException Constructor(String, Exception) | Creates a new instance of the CommerceModuleDependencyException class with the specified message and inner exception.
CommerceModuleDependencyException Constructor(String, String) | Creates a new instance of the CommerceModuleDependencyException class with the specified module names.

Protected Instance Constructor

Constructor | Description
CommerceModuleDependencyException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceModuleDependencyException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceModuleDependencyException Constructor | Creates a new instance of the CommerceModuleDependencyException class.
CommerceModuleDependencyException Constructor(String) | Creates a new instance of the CommerceModuleDependencyException class with the specified message.
CommerceModuleDependencyException Constructor(String, Exception) | Creates a new instance of the CommerceModuleDependencyException class with the specified message and inner exception.
CommerceModuleDependencyException Constructor(String, String) | Creates a new instance of the CommerceModuleDependencyException class with the specified module names.

Protected Instance Constructor

Constructor | Description
CommerceModuleDependencyException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceModuleDependencyException class with the specified serialization information and streaming context.


CommerceModuleDependencyException Constructor (BCL)

Use this method to create a new instance of the CommerceModuleDependencyException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceModuleDependencyException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceModuleDependencyException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceModuleDependencyException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceModuleDependencyException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String _
)
[C#]
public CommerceModuleDependencyException(
  System.String msg
);

Parameters

[Visual Basic .NET]
msg
The exception message.
[C#]
msg
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceModuleDependencyException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceModuleDependencySystem.Exception(
  System.String msg,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
msg
The exception message.
inner
The inner exception.
[C#]
msg
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Constructor (String, String) (BCL)

Use this method to create a new instance of the CommerceModuleDependencyException class with the specified module names.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal missingModule As System.String, _
  ByVal dependentModule As System.String _
)
[C#]
public CommerceModuleDependencyException(
  System.String missingModule,
  System.String dependentModule
);

Parameters

[Visual Basic .NET]
missingModule
The name of the missing module.
dependentModule
The name of the dependent module.
[C#]
missingModule
The name of the missing module.
dependentModule
The name of the dependent module.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceModuleDependencyException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceModuleDependencyException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceResourceDependencyException Class (BCL)

Exception raised when a resource does not exist in the Commerce Server Administration database.

Public Instance Constructor

Constructor | Description
CommerceResourceDependencyException Constructor | Creates a new instance of the CommerceResourceDependencyException class.
CommerceResourceDependencyException Constructor(String) | Creates a new instance of the CommerceResourceDependencyException class with the specified message.
CommerceResourceDependencyException Constructor(String, Exception) | Creates a new instance of the CommerceResourceDependencyException class with the specified message and inner exception.
CommerceResourceDependencyException Constructor(String, String) | Creates a new instance of the CommerceResourceDependencyException class with the specified resource and module.

Protected Instance Constructor

Constructor | Description
CommerceResourceDependencyException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceResourceDependencyException class with the specified serialization information and streaming context

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceResourceDependencyException Constructor | Creates a new instance of the CommerceResourceDependencyException class.
CommerceResourceDependencyException Constructor(String) | Creates a new instance of the CommerceResourceDependencyException class with the specified message.
CommerceResourceDependencyException Constructor(String, Exception) | Creates a new instance of the CommerceResourceDependencyException class with the specified message and inner exception.
CommerceResourceDependencyException Constructor(String, String) | Creates a new instance of the CommerceResourceDependencyException class with the specified resource and module.

Protected Instance Constructor

Constructor | Description
CommerceResourceDependencyException(SerializationInfo, StreamingContext) | Creates a new instance of the CommerceResourceDependencyException class with the specified serialization information and streaming context


CommerceResourceDependencyException Constructor (BCL)

Use this method to create a new instance of the CommerceResourceDependencyException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceResourceDependencyException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceResourceDependencyException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceResourceDependencyException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceResourceDependencyException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String _
)
[C#]
public CommerceResourceDependencyException(
  System.String msg
);

Parameters

[Visual Basic .NET]
msg
The exception message.
[C#]
msg
The exception message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceResourceDependencyException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal msg As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceResourceDependencySystem.Exception(
  System.String msg,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
msg
The exception message.
inner
The inner exception.
[C#]
msg
The exception message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Constructor (String, String) (BCL)

Use this method to create a new instance of the CommerceResourceDependencyException class with the specified resource and module.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal resourceName As System.String, _
  ByVal moduleName As System.String _
)
[C#]
public CommerceResourceDependencyException(
  System.String resourceName,
  System.String moduleName
);

Parameters

[Visual Basic .NET]
resourceName
A String specifying the name of the resource.
moduleName
A String specifying the name of the module.
[C#]
resourceName
A String specifying the name of the resource.
moduleName
A String specifying the name of the module.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceResourceDependencyException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceDependencyException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceServerInfo Class (BCL)

Gets the installed culture for Commerce Server 2002.

Public Static (Shared) Properties

Property | Description
InstalledProductCulture | Returns the installed culture for Commerce Server.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


CommerceServerInfo Properties (BCL)

Public Static (Shared) Properties

Property | Description
InstalledProductCulture | Returns the installed culture for Commerce Server.


CommerceServerInfo.InstalledProductCulture Property (BCL)

The InstalledProductCulture property is a read-only String that returns the installed culture for Commerce Server.

Definition

[Visual Basic .NET]
Public ReadOnly Property InstalledProductCulture As System.String
[C#]
public System.String InstalledProductCulture {get;}

Property Value

The installed culture for Commerce Server.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Shared.dll


Dictionary Class (BCL)

Use this object to support the creation, storage, and retrieval of name/value pairs in memory. Every value in a Dictionary object is an Object, which means you can create a Dictionary object that consists of almost any kind of value (including other Dictionary objects), and that you can store any combination of Object types in the same Dictionary object.

Public Instance Methods

Method | Description
GetEnumerator | Returns an enumerator for Dictionary objects

Public Instance Properties

Property | Type | Description
Count | Integer | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | String | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | Object | Stores the value of a given Dictionary key. This property is read/write.

Remarks

[Visual Basic .NET]

Because a Dictionary object is designed to be a general-purpose collection, you can use it for almost anything that its internal structure supports.

Dim dictUser As Dictionary

After instantiating the object, you can add elements to it, as follows:

dictUser.Value( �gfirstName�h ) = "Steve"

In this example, first_name is a Dictionary key, and Steve becomes the assigned value of this key. Each statement actually accomplishes three functions: declaring the Dictionary key, adding that key to the Dictionary object, and setting the key to a value.

You can use the Value method to get the value of a given key:

my_first_name = dictUser.Value("first_name")

You can also use the For Each statement in Microsoft Visual Basic Scripting Edition (VBScript) to enumerate through the keys or the values of a Dictionary object as follows (this example assumes that every value in the dictionary contains text):

' // Get the key names and values

For Each element In dictUser

Console.WriteLine(�name = {0}; value = {1}�, element, dictUser[element]);

        Next

The data in a Dictionary object can be saved in a database table by using the DBStorage object.

Commerce Server 2002 sites use implementations of the Dictionary object to store sets of data that are required by various other objects and pipeline components.

Unlike previous versions of the dictionary, the dictionary in Commerce Server 2002 is implemented as a hash of name value pairs. This enables the dictionary to perform fast lookups even when a large number of key/value pairs are stored. It also has the side effect that enumerations of dictionary keys may not be returned in the same order they are stored.

The Dictionary object supports the ICloneable and IPersistXML interfaces. Use the ICloneable interface to deep copy all name/value pairs into a new dictionary. Use the IPersistXML interface to convert the Dictionary entries into an XML string and back again.

[C#]

Because a Dictionary object is designed to be a general-purpose collection, you can use it for almost anything that its internal structure supports.

When you need to create a Dictionary object explicitly (that is, when the object is not created for you by some other Commerce Server 2002 object), use the standard creation with new as follows:

using Microsoft.CommerceServer.Interop;
�c
Dictionary dictUser = new Dictionary();

After creating the object, you can add elements to it, as follows:

dictUser[�gfirstName�h] = "Steve";

In this example, �firstName� is a Dictionary key, and �Steve� becomes the assigned value of this key. Each statement actually accomplishes three functions: declaring the Dictionary key, adding that key to the Dictionary object, and setting the key to a value.

You can extract values from a Dictionary object in several ways. You can simply place the object.key identifier on the right side of the assignment statement. Such an assignment returns the value of the referenced key:

using Microsoft.CommerceServer.Interop;
Commerce.IDictionary dictUser = new Dictionary();
dictUser["key1"] = "value1";
string s = dictUser["key1"].ToString();

You can also use the foreach statement in Microsoft C# to enumerate through the keys or the values of a Dictionary object as follows (this example assumes that every value in the dictionary contains text):

// Get the key names and values
foreach ( string name in dictUser )
    Console.WriteLine(�gname = {0}; value = {1}�h, name, dictUser[name]);

The data in a Dictionary object can be saved in a database table by using the Microsoft.CommerceServer.Interop.Orders.DBStorage object.

Commerce Server 2002 sites use implementations of the Dictionary object to store sets of data that are required by various other objects and pipeline components.

Unlike previous versions of the dictionary, the dictionary in Commerce Server 2002 is implemented as a hash of name value pairs. This enables the dictionary to perform fast lookups even when a large number of key/value pairs are stored. It also has the side effect that enumerations of dictionary keys may not be returned in the same order they are stored.

The Dictionary object supports the ICloneable and IPersistXML interfaces. Use the ICloneable interface to deep copy all name/value pairs into a new dictionary. Use the IPersistXML interface to convert the Dictionary entries into an XML string and back again.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Core Objects

IPersistXML Interface

SimpleList Class


Dictionary Methods (BCL)

Methods

Method | Description
GetEnumerator | Returns an enumerator for Dictionary objects


Dictionary.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator for the Dictionary object.

Definition

[Visual Basic .NET]
Public Function GetEnumerator(
) As IEnumerator
[C#]
public IEnumerator GetEnumerator();

Return Values

If successful, GetEnumerator returns an IEnumerator objects describing a set of Dictionary objects.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Dictionary Class


Dictionary Properties (BCL)

Properties

Property | Type | Description
Count | Integer | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | String | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | Object | Stores the value of a given Dictionary key. This property is read/write.


Dictionary.Count Property (BCL)

The Count property is a read-only Integer that contains the number of elements in the Dictionary object instance.

Definition

[Visual Basic .NET]
Public Property Count As Integer
[C#]
public int Count {get; }

Property Value

This property returns the number of elements in the Dictionary object instance.

Remarks

The Count parameter points to valid data only if the property is accessed successfully.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Dictionary Class


Dictionary.Prefix Property (BCL)

The Prefix property is a read/write String that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. By default, the prefix is "_", so that any keywords beginning with an underscore character are excluded.

Definition

[Visual Basic .NET]
Public Property Prefix As String
[C#]
public string Prefix ( get; set; );

Property Value

The accessor version of the property returns a String value.

Remarks

By default, the prefix is "_", so that any keywords beginning with an underscore character are excluded.

The pipeline component that saves receipts usually sets the prefix to "_cc_", so that all credit-card information is not saved in the database. The actual string used by the pipeline component is configurable.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Dictionary Class


Dictionary.Value Property (BCL)

The Value property allows you to get or set a name/value pair in the Dictionary.

Definition

[Visual Basic .NET]
Public Property Value(
 bstrName As String
) As Object
[C#]
public object this[ string aKey ] [get; set;]

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of the Dictionary key for which to retrieve a value or put a value.
[C#]
aKey
A String that contains the name of the Dictionary key for which to retrieve a value or put a value.
Value
When setting the value, an Object that contains the value to which the element specified by the key aKey should be initialized.
When getting the value, an Object containing the value of the key specified by the aKey index. If you stored something less general than an Object, you will have to cast the returned Object to get your saved type.

Dictionary userDict = new Dictionary();

userDict[田reditCard脳 = 鄭mex�; //set
string currentCard = (string) userDict[田reditCard脳; //get

Return Values

The get version of the indexer returns an Object.

Remarks

When using the get version of the indexer, if the key being accessed in the dictionary does not exist, an Object set to null is returned. Therefore, to logically delete a key from the dictionary, you can set the value for the key to DBNull.Value and then to a client of the dictionary. It is indistinguishable from a key/value pair that does not exist. The Value parameter contains valid data only if the property is accessed successfully.

[Visual Basic .NET]

Example

' dDict is a Dictionary object
' first_name is a Dictionary key
' o_first_name is an Object
o_first_name = dDict.Value("first_name")
o_first_name = dDict("first_name")

' use this form if the value contains an object reference:
oSubObject = dDict("myObjectKey")

' Property syntax
o_first_name = dDict.first_name
' If the key begins with an underscore then use braces around the key name
o_first_name = dDict.[_first_name]

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Dictionary Class


LogStatus Enumeration (BCL)

Enumerator listing the return type values for the CommerceContext.LogCommerceEvent method.

Members

Member Name | Description
InvalidEvent | Event object is invalid; certain property values may be breaking validity constraints.
NoTypeInfo | Type information for this object was not obtained.
Ok | Type information for this object is valid.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileTicket Class (BCL)

Contains the profile ticket for the user.

Public Instance Methods

Method | Description
Dispose (Inherited from TicketBase) | Releases resources used by this object.

Public Instance Properties

Property | Description
Item(String) | Retrieves and sets properties on the profile ticket.
UserID | Retrieves and sets the UserID property on the profile ticket.
Value (Inherited from TicketBase) | Retrieves a ticket in string form.

Protected Instance Methods

Method | Description
CheckState (Inherited from TicketBase) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from TicketBase) | Releases the unmanaged resources used by this class and optionally releases managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileTicket Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from TicketBase) | Releases resources used by this object.

Protected Instance Methods

Method | Description
CheckState (Inherited from TicketBase) | Verifies that the object has not already been disposed.
Dispose(Boolean) (Inherited from TicketBase) | Releases the unmanaged resources used by this class and optionally releases managed resources.


ProfileTicket Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Retrieves and sets properties on the profile ticket.
UserID | Retrieves and sets the UserID property on the profile ticket.
Value (Inherited from TicketBase) | Retrieves a ticket in string form.


ProfileTicket.Item(String) Property (BCL)

The Item property is a read/write String that retrieves and sets properties on the profile ticket.

Definition

[Visual Basic .NET]
Overrides Public Property Item( _
  ByVal propertyName As System.String _
) As System.String
[C#]
public override System.String Item(
  System.String propertyName
) {get; set;}

Parameters

[Visual Basic .NET]
propertyName
The name of the property to set or retrieve.
[C#]
propertyName
The name of the property to set or retrieve.

Property Value

A String containing the value of the propertyName property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileTicket.UserID Property (BCL)

The UserID property is a read/write String containing the user ID for the profile ticket.

Definition

[Visual Basic .NET]
Overrides Public Property UserID As System.String
[C#]
public override System.String UserID {get; set;}

Property Value

The user ID for the profile ticket.

Remarks

If there is no user ID, null is returned.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder Class (BCL)

Use this class to build encrypted query strings for cookie and cookieless browsers.

Public Instance Methods

Method | Description
BuildUrl(String, Boolean) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String[], String[]) | Generates an encoded URL string based on the parameter values.

Public Instance Properties

Property | Description
CookieSupport | Gets and sets the cookie support level.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder Methods (BCL)

Public Instance Methods

Method | Description
BuildUrl(String, Boolean) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String, String, String, String, String, String, String, String) | Generates an encoded URL string based on the parameter values.
BuildUrl(String, Boolean, String[], String[]) | Generates an encoded URL string based on the parameter values.


QueryStringBuilder.BuildUrl (String, Boolean) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag, set to True for https, set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, set to True for https, set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder.BuildUrl (String, Boolean, String, String) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean, _
  ByVal urlParameterName As System.String, _
  ByVal urlParameterValue As System.String _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure,
  System.String urlParameterName,
  System.String urlParameterValue
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
A string containing the parameter name.
urlParameterValue
A string of containing the parameter value.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
A string containing the parameter name.
urlParameterValue
A string of containing the parameter value.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder.BuildUrl (String, Boolean, String, String, String, String) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean, _
  ByVal urlParameterName As System.String, _
  ByVal urlParameterValue As System.String, _
  ByVal urlParameterName2 As System.String, _
  ByVal urlParameterValue2 As System.String _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure,
  System.String urlParameterName,
  System.String urlParameterValue,
  System.String urlParameterName2,
  System.String urlParameterValue2
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder.BuildUrl (String, Boolean, String, String, String, String, String, String) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean, _
  ByVal urlParameterName As System.String, _
  ByVal urlParameterValue As System.String, _
  ByVal urlParameterName2 As System.String, _
  ByVal urlParameterValue2 As System.String, _
  ByVal urlParameterName3 As System.String, _
  ByVal urlParameterValue3 As System.String _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure,
  System.String urlParameterName,
  System.String urlParameterValue,
  System.String urlParameterName2,
  System.String urlParameterValue2,
  System.String urlParameterName3,
  System.String urlParameterValue3
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.
urlParameterName3
Name of the third property.
urlParameterValue3
Value of the third property.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.
urlParameterName3
Name of the third property.
urlParameterValue3
Value of the third property.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder.BuildUrl (String, Boolean, String, String, String, String, String, String, String, String) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean, _
  ByVal urlParameterName As System.String, _
  ByVal urlParameterValue As System.String, _
  ByVal urlParameterName2 As System.String, _
  ByVal urlParameterValue2 As System.String, _
  ByVal urlParameterName3 As System.String, _
  ByVal urlParameterValue3 As System.String, _
  ByVal urlParameterName4 As System.String, _
  ByVal urlParameterValue4 As System.String _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure,
  System.String urlParameterName,
  System.String urlParameterValue,
  System.String urlParameterName2,
  System.String urlParameterValue2,
  System.String urlParameterName3,
  System.String urlParameterValue3,
  System.String urlParameterName4,
  System.String urlParameterValue4
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.
urlParameterName3
Name of the third property.
urlParameterValue3
Value of the third property.
urlParameterName4
Name of the fourth property.
urlParameterValue4
Value of the fourth property.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
Name of the first property.
urlParameterValue
Value of the first property.
urlParameterName2
Name of the second property.
urlParameterValue2
Value of the second property.
urlParameterName3
Name of the third property.
urlParameterValue3
Value of the third property.
urlParameterName4
Name of the fourth property.
urlParameterValue4
Value of the fourth property.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder.BuildUrl (String, Boolean, String[], String[]) Method (BCL)

Use this method to generate an encoded URL string.

Definition

[Visual Basic .NET]
Public Function BuildUrl( _
  ByVal filename As System.String, _
  ByVal secure As System.Boolean, _
  ByVal urlParameterName As System.String(), _
  ByVal urlParameterValue As System.String() _
) As System.String
[C#]
public System.String BuildUrl(
  System.String filename,
  System.Boolean secure,
  System.String() urlParameterName,
  System.String() urlParameterValue
);

Parameters

[Visual Basic .NET]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
An array of strings containing parameter names. The array must be the same size as the urlParameterValue parameter value.
urlParameterValue
An array of strings containing parameter values. The array must be the same size as the urlParameterName parameter value.
[C#]
filename
The name of the file.
secure
The Boolean secure flag, which is set to True for https and set to False for http. Https will only be used for the URL if this flag is True and if the site is enabled for https.
urlParameterName
An array of strings containing parameter names. The array must be the same size as the urlParameterValue parameter value.
urlParameterValue
An array of strings containing parameter values. The array must be the same size as the urlParameterName parameter value.

Return Value

The encoded URL string.

Remarks

You have to use the QueryStringBuilder.BuildUrl method every time you want to append the ticket to the URL in a cookieless scenario. If this is not done, the ticket will not be passed on to the next request.

If the filename parameter is not null, the COM method AuthManager.GetURL is called. If the filename parameter is null, and if the CookieSupport property is set to True, then the AuthManager.UrlShopperArgs COM method is called. If the filename parameter is null and the CookieSupport property is set to False, then the AuthManager.UrlArgs COM method is called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


QueryStringBuilder Properties (BCL)

Public Instance Properties

Property | Description
CookieSupport | Gets and sets the cookie support level.


QueryStringBuilder.CookieSupport Property (BCL)

The CookieSupport property is a read/write Boolean that indicates whether cookies are supported. If supported, tickets are appended to the URL.

Definition

[Visual Basic .NET]
Public Property CookieSupport As System.Boolean
[C#]
public System.Boolean CookieSupport {get;set;}

Property Value

A Boolean indicating whether cookies are supported.

Remarks

The ticket will be appended to the URL if one exists, with the AuthTicket having preference.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection Class (BCL)

Provides a read-only string collection.

Public Instance Constructor

Constructor | Description
ReadOnlyStringCollection Constructor(String[]) | Creates a new instance of the ReadOnlyStringCollection class from a given string array.
ReadOnlyStringCollection Constructor(ArrayList) | Creates a new instance of the ReadOnlyStringCollection class from a given ArrayList.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the strings in the collection to an array, starting at a particular array index.
GetEnumerator (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.
IndexOf(String) | Searches for the specified string and returns the zero-based index of the first occurrence within the entire ReadOnlyStringCollection class.

Public Instance Properties

Property | Description
Count (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(Int32) | Indexer that enables getting a string in the collection by index.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Protected Instance Properties

Property | Description
InnerList (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
ReadOnlyStringCollection Constructor(String[]) | Creates a new instance of the ReadOnlyStringCollection class from a given string array.
ReadOnlyStringCollection Constructor(ArrayList) | Creates a new instance of the ReadOnlyStringCollection class from a given ArrayList.


ReadOnlyStringCollection Constructor (ArrayList) (BCL)

Use this method to create a new instance of the ReadOnlyStringCollection class from a given string.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal stringList As System.Collections.ArrayList _
)
[C#]
public ReadOnlyStringCollection(
  System.Collections.ArrayList stringList
);

Parameters

[Visual Basic .NET]
stringList
An array of strings. May be null.
[C#]
stringList
An array of strings. May be null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection Constructor (String[]) (BCL)

Use this method to create a new instance of the ReadOnlyStringCollection class from a given string array.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal stringArray As System.String[] _
)
[C#]
public ReadOnlyStringCollection(
  System.String[] stringArray
);

Parameters

[Visual Basic .NET]
stringArray
An array of strings. May be null.
[C#]
stringArray
An array of strings. May be null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the strings in the collection to an array, starting at a particular array index.
GetEnumerator (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.
IndexOf(String) | Searches for the specified string and returns the zero-based index of the first occurrence within the entire ReadOnlyStringCollection class.


ReadOnlyStringCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the strings in the collection to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
An array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
An array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection.IndexOf (String) Method (BCL)

Use this method to return the zero based index of the first occurrence within the entire ReadOnlyStringCollection class.

Definition

[Visual Basic .NET]
Public Function IndexOf( _
  ByVal str As System.String _
) As System.Int32
[C#]
public System.Int32 IndexOf(
  System.String str
);

Parameters

[Visual Basic .NET]
str
The string to search for.
[C#]
str
The string to search for.

Return Value

The zero-based index of the first occurrence within the ReadOnlyStringCollection class.

Remarks

Searches for the specified string and returns the zero-based index of the first occurrence within the entire ReadOnlyStringCollection. Returns -1 if the specified string is not found.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection Properties (BCL)

Public Instance Properties

Property | Description
Count (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(Int32) | Indexer that enables getting a string in the collection by index.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Protected Instance Properties

Property | Description
InnerList (Inherited from System.ReadOnlyCollectionBase) | Refer to the .NET Framework SDK documentation for the System.ReadOnlyCollectionBase class.


ReadOnlyStringCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that gets a value indicating whether access to the collection is synchronized.

Definition

[Visual Basic .NET]
Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection.Item Property (BCL)

The Item property is a read-only indexer that enables getting a string in the collection by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As System.String
[C#]
public System.String Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
An index number.
[C#]
index
An index number.

Property Value

The string collection for the given index.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ReadOnlyStringCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used for synchronized access to the collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property SyncRoot As System.Object
[C#]
public System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


RemoveItemFromBasketEvent Class (BCL)

An event used whenever items are removed from the shopping basket.

Public Instance Constructor

Constructor | Description
RemoveItemFromBasketEvent Constructor | Creates a new instance of the RemoveItemFromBasketEvent class.

Public Instance Methods

Method | Description
Validate (Inherited from BasketEvent) | Validates the CatalogName and ProductID property for the basket event.

Public Instance Properties

Property | Description
CatalogName (Inherited from BasketEvent) | The name of the catalog to which the product belongs.
EventType | Returns the event type for the class.
ProductID (Inherited from BasketEvent) | The product identifier for the product associated with the basket.
ReadOnlyPrID (Inherited from BasketEvent) | This commerce property is calculated internally and is read only.
VariantID (Inherited from BasketEvent) | The variant ID for the product associated with the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


RemoveItemFromBasketEvent Constructor (BCL)

Public Instance Constructor

Constructor | Description
RemoveItemFromBasketEvent Constructor | Creates a new instance of the RemoveItemFromBasketEvent class.


RemoveItemFromBasketEvent Constructor (BCL)

Use this method to create a new instance of the RemoveItemFromBasketEvent class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public RemoveItemFromBasketEvent(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


RemoveItemFromBasketEvent Methods (BCL)

Public Instance Methods

Method | Description
Validate (Inherited from BasketEvent) | Validates the CatalogName and ProductID property for the basket event.


RemoveItemFromBasketEvent Properties (BCL)

Public Instance Properties

Property | Description
CatalogName (Inherited from BasketEvent) | The name of the catalog to which the product belongs.
EventType | Returns the event type for the class.
ProductID (Inherited from BasketEvent) | The product identifier for the product associated with the basket.
ReadOnlyPrID (Inherited from BasketEvent) | This commerce property is calculated internally and is read only.
VariantID (Inherited from BasketEvent) | The variant ID for the product associated with the basket.


RemoveItemFromBasketEvent.EventType Property (BCL)

The EventType property is a read-only string that returns the event type for the class.

Definition

[Visual Basic .NET]
Public ReadOnly Property EventType As System.String
[C#]
public System.String EventType {get;}

Property Value

A string containing the event type for the class.

Remarks

For removals from the basket, the string RIBSK is returned.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SimpleList Class (BCL)

Use this object to create an array of objects that supports enumeration.

This object supports the ICloneable and IPersistXML interfaces. Use the ICloneable interface to deep copy all name/value pairs into a new dictionary. Use the IPersistXML interface to convert the Dictionary entries into an XML string and back again.

Public Instance Methods

Method | Description
Add | Adds the specified item to the SimpleList object.
Delete | Deletes the specified item from the SimpleList object.
GetEnumerator | Retrieves an IEnumerator object for enumerating the contents of the SimpleList object.

Public Instance Properties

Property | Type | Description
Count | Integer | Stores the number of elements in the SimpleList object. This property is read-only.
Item | Object | Stores an element of the SimpleList object. This property is read/write.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

Core Objects

Dictionary Class


SimpleList Methods (BCL)

Public Instance Methods

Method | Description
Add | Adds the specified item to the SimpleList object.
Delete | Deletes the specified item from the SimpleList object.
GetEnumerator | Retrieves an IEnumerator object for enumerating the contents of the SimpleList object.


SimpleList.Add Method (BCL)

Use this method to add the specified item to the SimpleList object.

Definition

[Visual Basic .NET]
Public Sub Add(
  ByRef pVar As Object
)
[C#]
public void Add(
  ref object pVar
);

Parameters

[Visual Basic .NET]
pVar
A reference to the Object to add to the SimpleList object.
[C#]
pVar
A reference to the object to add to the SimpleList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' The following example adds the string "Hello World" to the oSimpleList
' object instance
' oSimpleList is a Commerce SimpleList object
oSimpleList.Add("Hello World")

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

SimpleList Class

SimpleList.Delete


SimpleList.Delete Method (BCL)

Use this method to delete the specified item from the SimpleList object.

Definition

[Visual Basic .NET]
Public Sub Delete(
  Index As Integer
)
[C#]
public void Delete(
  int Index
);

Parameters

[Visual Basic .NET]
Index
An Integer value that contains the index value of the item to delete.
[C#]
Index
An Integer value that contains the index value of the item to delete.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM error codes that may be present in any exception thrown.

Constant | Description
DISP_E_BADINDEX | The Index parameter references an out-of-range value. This means that Index contains a value either larger than the SimpleList object or less than zero.
[Visual Basic .NET]

Example

' The following example deletes the SimpleList item at index 1008
' oSimpleList is a Commerce SimpleList object
oSimpleList.Delete(1008)

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

SimpleList Class

SimpleList.Add

SimpleList.Count


SimpleList.GetEnumerator Method (BCL)

Use this method to retrieve an IEnumerator object for enumerating the contents of the SimpleList object.

Definition

[Visual Basic .NET]
Public Function GetEnumerator(
) as IEnumerator
[C#]
public IEnumerator GetEnumerator(
);

Return Values

Handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

SimpleList Class


SimpleList Properties (BCL)

Public Instance Properties

Property | Type | Description
Count | Integer | Stores the number of elements in the SimpleList object. This property is read-only.
Item | Object | Stores an element of the SimpleList object. This property is read/write.


SimpleList.Count Property (BCL)

The Count property is a read-only Integer that returns the number of elements in the SimpleList object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Count As Integer
[C#]
public int Count {get; }

Property Value

An Integer value containing the number of elements in the SimpleList object instance.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The caller should always check this property before calling a SimpleList method or property that requires an array index in-value as a parameter (such as the Delete method).

See Also

SimpleList Class


SimpleList.Item Property (BCL)

[Visual Basic .NET] The Item property is a read/write Object that contains an element of the SimpleList object. An initialized Object is stored at a specified array index. If an item is already stored at the specified index, then that item is overwritten by an assignment.

[C#] The Item indexer provides get or set access to an element of the SimpleList object. If an item is already stored at the specified index, that item is overwritten when setting a value.

Definition

[Visual Basic .NET]
Public Property Item(
  Index As Integer
) As Object
[C#]

Get method:

public object this[ int Index ] [get; set;]

Parameters

[Visual Basic .NET]
Index
An Integer value that contains the index of the item.
[C#]
Index
An Integer that contains the index of the item.

Return Values

[C#]

The get version of the indexer returns an object containing the value present at the location specified by the Index parameter.

Exceptions

This indexer may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM error codes that may be present in any exception thrown.

Constant | Description
DISP_E_BADINDEX | The Index parameter references an out-of-range value. This means that Index contains a value either larger than the SimpleList object or less than zero.
[Visual Basic .NET]

Example

' using Item property as a property...
oSimpleList.Item(5) = "Winnie The Pooh"
' using Item property as an indexer...
oSimpleList(5) = "Winnie The Pooh"

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscscorelib (in mscscorelib.dll)

See Also

SimpleList Class


SubmitOrderEvent Class (BCL)

Event used whenever orders are submitted for processing.

Public Instance Constructor

Constructor | Description
SubmitOrderEvent Constructor | Creates a new instance of the SubmitOrderEvent class.

Public Instance Methods

Method | Description
Validate | Validates the order group ID and returns false if the property is null.

Public Instance Properties

Property | Description
EventType | Returns the event type for the class.
OrderGroupID | Order group ID for the order being submitted.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SubmitOrderEvent Constructor (BCL)

Public Instance Constructor

Constructor | Description
SubmitOrderEvent Constructor | Creates a new instance of the SubmitOrderEvent class.


SubmitOrderEvent Constructor (BCL)

Use this method to create a new instance of the SubmitOrderEvent class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public SubmitOrderEvent(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SubmitOrderEvent Methods (BCL)

Public Instance Methods

Method | Description
Validate | Validates the order group ID and returns false if the property is null.


SubmitOrderEvent.Validate Method (BCL)

Use this method to validate the Order Group ID for the event.

[Visual Basic .NET]
Overridable Public Function Validate( _
) As System.Boolean
[C#]
public virtual System.Boolean Validate(
);

Return Value

A Boolean indicating whether the order group ID is valid. If the order group ID is null, the return value is False.

Remarks

Overrides the default Validate function provided by the BaseCommerceEvent class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SubmitOrderEvent Properties (BCL)

Public Instance Properties

Property | Description
EventType | Returns the event type for the class.
OrderGroupID | Order group ID for the order being submitted.


SubmitOrderEvent.EventType Property (BCL)

The EventType property is a read-only String that returns the event type for the class.

Definition

[Visual Basic .NET]
Public ReadOnly Property EventType As System.String
[C#]
public System.String EventType {get;}

Property Value

A String containing the event type for the class.

Remarks

For submit order events, the string "SUBOR" is returned.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SubmitOrderEvent.OrderGroupID Property (BCL)

The OrderGroupID property is a read/write String that contains the order group ID for the event.

Definition

[Visual Basic .NET]
Public Property OrderGroupID As System.String
[C#]
public System.String OrderGroupID {get; set;}

Property Value

A String containing the order group ID for the event.

Remarks

This property must be set for a valid event.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase Class (BCL)

Provides the base functionality for ticket handling operations in the Commerce Server 2002 Application Runtime.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.

Public Instance Properties

Property | Description
Item(String) | Retrieves and sets properties in the ticket by name.
UserID | Retrieves and sets the user ID for the ticket.
Value | Retrieves a ticket in string form.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this class.

Protected Instance Methods

Method | Description
CheckState | Verifies that the class has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


TicketBase.CheckState Method (BCL)

Use this method to verify that the class has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object was already disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Public Sub Dispose( _
)
[C#]
public void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the TicketBase.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketManager.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
A value of True if this was called from the Dispose method, false if called from the finalizer.
[C#]
disposing
A value of True if this was called from the Dispose method, false if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Retrieves and sets properties in the ticket by name.
UserID | Retrieves and sets the user ID for the ticket.
Value | Retrieves a ticket in String form.


TicketBase.Item Property (BCL)

The Item property is a read/write String that gets and sets properties in the ticket.

Definition

[Visual Basic .NET]
Overridable Public Property Item( _
  ByVal propertyName As System.String _
) As System.String
[C#]
public virtual System.String Item(
  System.String propertyName
) {get; set;}

Parameters

[Visual Basic .NET]
propertyName
The name of the property to set or retrieve.
[C#]
propertyName
The name of the property to set or retrieve.

Property Value

The value of the propertyName parameter.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase.UserID Property (BCL)

The UserID property is a read/write String that retrieves and sets the user ID for the ticket.

Definition

[Visual Basic .NET]
Overridable Public Property UserID As System.String
[C#]
public virtual System.String UserID {get; set;}

Property Value

The user ID for the ticket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TicketBase.Value Property (BCL)

The Value property is a read-only String that retrieves a ticket.

Definition

[Visual Basic .NET]
Public ReadOnly Property Value As System.String
[C#]
public System.String Value {get;}

Property Value

The ticket in String form.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Runtime Namespace

Examples

Example | Description
Code to Build a Login Page | Describes how to check for authenticated users, set tickets to identify users, and add and modify ticket properties.


Code to Build a Login Page

Use the following code to check for authenticated users, to set tickets to identify users, and to add and modify ticket properties. This code sample requires that the CommerceAuthenticationModule object is configured in the web.config file. For more information about the CommerceAuthenticationModule class, see Commerce Modules and CommerceAuthenticationModule Class.

<%@ Page language="c#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Profiles" %>

<script language="C#" runat="server">
   private void Page_Load(object sender, System.EventArgs e)
      {
         ProfileContext pc;
         SiteTerm st;
         SiteTermElementCollection stc;
         SiteTermElement ste, ste2;
         ArrayList stNames;
         SiteTermElement [] stElementArray;
         Profile profile;

      try
      {
         if (CommerceContext.Current != null)
         {
            pc = CommerceContext.Current.ProfileSystem;

            // Retrieve all the siteterms in the catalog.
            stNames = pc.SiteTermNames;

            if (stNames.Count > 0)
            {
               // Retrieve all the elements contained in a particular siteterm
               // encapsulated within a SiteTerm class.
               st = pc.GetSiteTerm((string)stNames[0]);

               // Retrieve ths siteterms in a collection and iterate
               // through them.
               stc = st.Elements;
               Response.Write("SiteTerm:  " + stNames[0] + " has " + stc.Count + " elements.<br>");
               foreach (SiteTermElement steTemp in stc)
               {
                  Response.Write("Name:  " + steTemp.Name + "        Value:  " + steTemp.Value + "<br>");
               }
               Response.Write("<br><br>");

               // Sort days of the week siteterm and display them.
               stElementArray = new SiteTermElement[stc.Count];
               stc.CopyTo(stElementArray, 0);
               Array.Sort(stElementArray);
               Response.Write("SiteTerm:  " + stNames[0] + " in sorted order.<br>");
               foreach (SiteTermElement steTemp in stElementArray)
               {
                  Response.Write("Name:  " + steTemp.Name + "        Value:  " + steTemp.Value + "<br>");
               }
               Response.Write("<br><br>");

               // Reference the siteterm within the collection by name.
               ste = stc["Guest User"];
               Response.Write("Reference a siteterm element from a collection by name.<br>");
               Response.Write("Name:  " + ste.Name + "        Value:  " + ste.Value + "<br>");
               Response.Write("<br><br>");

               // Compare siteterm elements.
               ste2 = stc["Registered User"];
               if (ste.Equals(ste2))
                  Response.Write("The two SiteTermElement objects are equal.<br>");
               else
                  Response.Write("The two SiteTermElement objects are not equal.<br>");
               Response.Write("<br><br>");

               // Validate a profile property through the siteterm class.
               profile = pc.GetProfile("logon_name", "username", "UserObject");
               if (profile != null)
               {
                  ' if there really is a profile in the profile store
                  if (st.Validate(profile.Properties[0]))
                     Response.Write("The profile property is validated.<br>");
                  else
                     Response.Write("The profile property is not valid.<br>");
               }
               else
                  Response.Write("The profile does not exist.<br>");
               Response.Write("<br><br>");
            }
         }

      }
      catch(Exception ex)
      {
         Response.Write(ex.Message);
      }
   }
</script>

<HTML>
   <HEAD>
      <title ID=L_Login_HTMLTitle>Login</title>
      <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">

   </body>
</HTML>

See Also

CommerceContext Class (BCL)

Profile Class (BCL)

ProfileContext Class (BCL)

SiteTerm Class (BCL)

SiteTermElement Class (BCL)

SiteTermElementCollection Class (BCL)


Microsoft.CommerceServer.Runtime.Caching

The classes in the Microsoft.CommerceServer.Runtime.Caching namespace contains the caching functionality for the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Caching Namespace Object Model

Depicts the object model for the Microsoft.CommerceServer.Runtime.Caching namespace.

Classes

Class | Description
CommerceCache | Represents a cache in the CommerceCacheCollection class.
CommerceCacheCollection | Represents a collection of caches for the current site.
CommerceCacheException | Describes Commerce Server cache exceptions.
CommerceCacheModule | Creates the site cache collection.

See Also

Commerce Server .NET Application Framework Tutorial


CommerceCache Class (BCL)

Represents a cache in the CommerceCacheCollection.

Public Instance Constructor

Constructor | Description
CommerceCache Constructor(String, Int32, Int32, String, String, String, Object, Object, DebugContext) | Creates a new instance of the CommerceCache class.

Public Instance Methods

Method | Description
GetCache | Gets the cache object (Commerce.Dictionary or LRUCache object).
Refresh | Refreshes the cache.

Public Instance Properties

Property | Description
CacheObjectProgId | Gets or sets the ProgId of the component that is the cache container object. Generally, this is either Commerce.Dictionary or Commerce.LRUCache.
LoaderConfigDictionary | Gets or sets the LoaderConfig dictionary for the cache. This is the set of name/value pairs that will be passed to the cache loader component during a refresh operation.
LoaderProgId | Gets or sets the ProgId of the component that should be created and invoked to populate the cache object during refresh operations.
RefreshInterval | Gets or sets the refresh interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep before automatically refreshing the cache.
RetryInterval | Gets or sets the retry interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep after a previous failure before retrying the cache refresh operation.
ServerSpecificSiteUrl | String that contains the full URL of the application.
WriterConfigDictionary | Gets or sets the WriterConfig dictionary for the cache. This is the set of name/value pairs that will be passed to the cache loader component during a refresh operation.
WriterProgId | Gets or sets the ProgId of the component that should be created and invoked to write out data from the cache object during refresh cycles.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCache Constructor(String, Int32, Int32, String, String, String, Object, Object, DebugContext) | Creates a new instance of the CommerceCache class.


CommerceCache Constructor (String, Int32, Int32, String, String, String, Object, Object, DebugContext) (BCL)

Use this method to create a new instance of the CommerceCache class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal name As System.String, _
  ByVal refreshInterval As System.Int32, _
  ByVal retryInterval As System.Int32, _
  ByVal loaderProgId As System.String, _
  ByVal writerProgId As System.String, _
  ByVal cacheObjectProgId As System.String, _
  ByVal loaderConfigDictionary As System.Object, _
  ByVal writerConfigDictionary As System.Object, _
  ByVal dbgContext As DebugContext _
)
[C#]
public CommerceCache(
  System.String name,
  System.Int32 refreshInterval,
  System.Int32 retryInterval,
  System.String loaderProgId,
  System.String writerProgId,
  System.String cacheObjectProgId,
  System.Object loaderConfigDictionary,
  System.Object writerConfigDictionary,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
name
The cache name. May not be null.
refreshInterval
The refresh interval in seconds. A value of zero means to never refresh.
retryInterval
The retry interval in seconds. A value of zero means to use the default (60 seconds).
loaderProgId
The ProgId of the component that should be created and invoked to populate this cache during refresh cycles. May not be null.
writerProgId
The ProgId of the component that should be created and invoked to write out cache data during refresh cycles. Optional. May be null.
cacheObjectProgId
The ProgId of the component that is to serve as the cache container object, usually Commerce.Dictionary or Commerce.LRUCache. May be null.
loaderConfigDictionary
The Commerce.IDictionary object containing name value pairs to pass to the loader component when it is invoked. This parameter is optional. May be null.
writerConfigDictionary
The Commerce.IDictionary object containing name value pairs to pass to the writer component when it is invoked. This parameter is optional. May be null.
dbgContext
The DebugContext object. May not be null.
[C#]
name
The cache name. May not be null.
refreshInterval
The refresh interval in seconds. A value of zero means to never refresh.
retryInterval
The retry interval in seconds. A value of zero means to use the default (60 seconds).
loaderProgId
The ProgId of the component that should be created and invoked to populate this cache during refresh cycles. May not be null.
writerProgId
The ProgId of the component that should be created and invoked to write out cache data during refresh cycles. This parameter is optional. May be null.
cacheObjectProgId
The ProgId of the component that is to serve as the cache container object, usually Commerce.Dictionary or Commerce.LRUCache. May be null.
loaderConfigDictionary
The Commerce.IDictionary object containing name value pairs to pass to the loader component when it is invoked. This parameter is optional. May be null.
writerConfigDictionary
The Commerce.IDictionary object containing name value pairs to pass to the writer component when it is invoked. This parameter is optional. May be null.
dbgContext
The DebugContext object. May not be null.

Remarks

Throws an ArgumentNullException if the name, loaderProgId or dbgContext parameters are null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache Methods (BCL)

Public Instance Methods

Method | Description
GetCache | Gets the cache object (Commerce.Dictionary or LRUCache).
Refresh | Refreshes the cache.


CommerceCache.GetCache Method (BCL)

Use this method to get the cache object (Commerce.Dictionary or LRUCache).

Definition

[Visual Basic .NET]
Public Function GetCache( _
) As System.Object
[C#]
public System.Object GetCache(
);

Return Value

Returns the cache object, either a Dictionary object or an LRUCache object.

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.Refresh Method (BCL)

Use this method to refresh the cache.

Definition

[Visual Basic .NET]
Public Sub Refresh( _
)
[C#]
public void Refresh(
);

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache Properties (BCL)

Public Instance Properties

Property | Description
CacheObjectProgId | Gets or sets the ProgId of the component that is the cache container object. Generally this is either Commerce.Dictionary or Commerce.LRUCache object.
LoaderConfigDictionary | Gets or sets the LoaderConfig dictionary for the cache. This is the set of name/-value pairs that will be passed to the cache loader component during a refresh operation.
LoaderProgId | Gets or sets the ProgId of the component that should be created and invoked to populate the cache object during refresh cycles.
RefreshInterval | Gets or sets the refresh interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep before automatically refreshing the cache.
RetryInterval | Gets or sets the retry interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep after a previous failure before retrying the cache refresh.
ServerSpecificSiteUrl | String that contains the full URL of the application.
WriterConfigDictionary | Gets or sets the WriterConfig dictionary for the cache. This is the set of name/value pairs that will be passed to the cache loader component during a refresh operation.
WriterProgId | Gets or sets the ProgId of the component that should be created and invoked to write out data from the cache object during refresh cycles.


CommerceCache.CacheObjectProgId Property (BCL)

The CacheObjectProgId property gets the ProgId of the component that is the cache container object. Generally this is either Commerce.Dictionary or Commerce.LRUCache object.

Definition

[Visual Basic .NET]
Public Property CacheObjectProgId As System.String
[C#]
public System.String CacheObjectProgId {get;}

Property Value

The ProgId of the cache container object.

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.LoaderConfigDictionary Property (BCL)

The LoaderConfigDictionary property gets or sets the LoaderConfig dictionary for the cache. This is the set of name/value pairs that will be passed to the cache loader component during a refresh operation.

Definition

[Visual Basic .NET]
Public Property LoaderConfigDictionary As System.Object
[C#]
public System.Object LoaderConfigDictionary {get; set;}

Property Value

The Dictionary object that contains the cache configuration values.

Remarks

A configured cache must have a loader component configured, but a writer component is optional. When a cache refresh occurs, the writer component is fired against the contents of the "old" copy of the cache (if one exists) and then the loader component is fired to populate a new cache object.

Throws an ArgumentException if the provided value is not of type Commerce.IDictionary.

Throws an ArgumentNullException if the provided value is null.

Throws an CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.LoaderProgId Property (BCL)

The LoaderProgId property gets or sets the ProgId of the component that should be created and invoked to populate the cache object during refresh cycles.

Definition

[Visual Basic .NET]
Public Property LoaderProgId As System.String
[C#]
public System.String LoaderProgId {get; set;}

Property Value

The ProgId of the cache loader component.

Remarks

Exceptions | Description
ArgumentNullException | A null value was provided when setting the property. A loader component is required for all configured caches.
CommerceCacheException | General failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.RefreshInterval Property (BCL)

The RefreshInterval property gets or sets the refresh interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep before automatically refreshing the cache.

Definition

[Visual Basic .NET]
Public Property RefreshInterval As System.Int32
[C#]
public System.Int32 RefreshInterval {get; set;}

Property Value

An Int32 containing the refresh interval in seconds.

Remarks

A value of zero means that the cache should never be automatically refreshed.

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.RetryInterval Property (BCL)

The RetryInterval property gets or sets the retry interval for the cache. This is the approximate amount of time in seconds that the CacheMangager object will sleep after a previous failure before retrying the cache refresh.

Definition

[Visual Basic .NET]
Public Property RetryInterval As System.Int32
[C#]
public System.Int32 RetryInterval {get; set;}

Property Value

An Int32 containing the retry interval in seconds.

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.ServerSpecificSiteUrl Property (BCL)

The ServerSpecificSiteUrl property is a string that contains the full URL of the application. If the cache object is a Dictionary object, then this value is passed to the CacheLoader and CacheWriter objects during each cache refresh.

Definition

[Visual Basic .NET]
Public Property ServerSpecificSiteUrl As System.String
[C#]
public System.String ServerSpecificSiteUrl {get; set;}

Property Value

The full URL of the application.

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.WriterConfigDictionary Property (BCL)

The WriterConfigDictionary property gets or sets the WriterConfig dictionary for the cache. This is the set of name/value pairs that will be passed to the cache loader component during a refresh operation.

Definition

[Visual Basic .NET]
Public Property WriterConfigDictionary As System.Object
[C#]
public System.Object WriterConfigDictionary {get; set;}

Property Value

A Dictionary object containing configuration values for the cache writer component.

Remarks

A configured cache must have a loader component configured, but a writer component is optional. When a cache refresh occurs, the writer component is fired against the contents of the "old" copy of the cache (if one exists) and then the loader component is fired to populate a new cache object.

Throws an ArgumentException if the provided value is not of type Commerce.IDictionary.

Throws an ArgumentNullException if the provided value is null.

Throws an CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCache.WriterProgId Property (BCL)

The WriterProgId property gets or sets the ProgId of the component that should be created and invoked to write out data from the cache object during refresh cycles.

Definition

[Visual Basic .NET]
Public Property WriterProgId As System.String
[C#]
public System.String WriterProgId {get; set;}

Property Value

The ProgID of the cache writer component.

Remarks

Throws a CommerceCacheException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection Class (BCL)

Represents a collection of caches for the current site.

Public Instance Constructor

Constructor | Description
CommerceCacheCollection Constructor | Creates a new instance of the CommerceCacheCollection class for the site.

Public Instance Methods

Method | Description
Add(String, CommerceCache) | Add a cache to the collection.
CopyTo(Array, Int32) | Copies the cache objects to an array, starting at a particular array index.
GetEnumerator | Enumerates through the caches in the CommerceCacheCollection collection.

Public Instance Properties

Property | Description
Count | Gets the number of caches contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to allow for accessing a cache based on the cache name.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCacheCollection Constructor | Creates a new instance of the CommerceCacheCollection class for the site.


CommerceCacheCollection Constructor (BCL)

Use this method to create a new instance of the CommerceCacheCollection class for the specified site.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceCacheCollection(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(String, CommerceCache) | Adds a cache to the collection.
CopyTo(Array, Int32) | Copies the cache objects to an array, starting at a particular array index.
GetEnumerator | Enumerates through the caches in the CommerceCacheCollection collection.


CommerceCacheCollection.Add (String, CommerceCache) Method (BCL)

Use this method to add a cache to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal cacheName As System.String, _
  ByVal cache As CommerceCache _
)
[C#]
public void Add(
  System.String cacheName,
  CommerceCache cache
);

Parameters

[Visual Basic .NET]
cacheName
The cache name. May not be null.
cache
The cache object. May not be null.
[C#]
cacheName
The cache name. May not be null.
cache
The cache object. May not be null.

Remarks

Throws an ArgumentNullException if either required parameter is passed as null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection.CopyTo (CommerceCache[], Int32) Method (BCL)

Use this method to copy the cache objects to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As CommerceCache[], _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  CommerceCache[] array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection.GetEnumerator Method (BCL)

Use this method to enumerate through the caches in the collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

IEnumerator interface for enumerating the caches in the collection.

Implements

System.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of caches contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to allow for accessing a cache based on the cache name.
SyncRoot | Gets an object that can be used for synchronized access to the collection.


CommerceCacheCollection.Count Property (BCL)

The Count property gets the number of caches contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

An System.Int32 integer indicating the number of caches.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection.IsSynchronized Property (BCL)

The IsSynchronized property gets a value indicating whether access to the collection is synchronized.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection.Item(String) Property (BCL)

The Item property contains a CommerceCache object selected by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal cacheName As System.String _
) As CommerceCache
[C#]
public CommerceCache Item(
  System.String cacheName
) {get;}

Parameters

[Visual Basic .NET]
cacheName
The name of the cache.
[C#]
cacheName
The name of the cache.

Property Value

The CommerceCache object specified by the cacheName parameter.

Remarks

Throws an ArgumentNullException if the parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheCollection.SyncRoot Property (BCL)

The SyncRoot property gets an object that can be used for synchronized access to the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Class (BCL)

Describes Commerce cache exceptions.

Public Instance Constructor

Constructor | Description
CommerceCacheException Constructor | Creates a new instance of the CommerceCacheException class.
CommerceCacheException Constructor(String) | Creates a new instance of the CommerceCacheException class with the specified message.
CommerceCacheException Constructor(String, Exception) | Creates a new instance of the CommerceCacheException class with the specified message and inner exception.
CommerceCacheException Constructor(String, String, Exception) | Creates a new instance of the CommerceCacheException class with the specified name, operation, and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceCacheException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceCacheException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCacheException Constructor | Creates a new instance of the CommerceCacheException class.
CommerceCacheException Constructor(String) | Creates a new instance of the CommerceCacheException class with the specified message.
CommerceCacheException Constructor(String, Exception) | Creates a new instance of the CommerceCacheException class with the specified message and inner exception.
CommerceCacheException Constructor(String, String, Exception) | Creates a new instance of the CommerceCacheException class with the specified name, operation, and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceCacheException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceCacheException class with the specified serialization information and streaming context.


CommerceCacheException Constructor (BCL)

Use this method to create a new instance of the CommerceCacheException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceCacheException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceCacheException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceCacheException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceCacheException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceCacheException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The message to include in the exception.
[C#]
message
The message to include in the exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceCacheException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceCacheSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The message to include in the exception.
inner
The inner exception.
[C#]
message
The message to include in the exception.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Constructor (String, String, Exception) (BCL)

Use this method to create a new instance of the CommerceCacheException class with the specified name, operation, and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal name As System.String, _
  ByVal operation As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceCacheSystem.Exception(
  System.String name,
  System.String operation,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
name
The cache name.
operation
The operation that failed.
inner
The inner exception.
[C#]
name
The cache name.
operation
The operation that failed.
inner
The operation that failed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.


CommerceCacheException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceCacheModule Class (BCL)

Creates the site caches collection.

Public Instance Constructor

Constructor | Description
CommerceCacheModule Constructor | Creates a new instance of the CommerceCacheModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceCacheModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
CacheCollection | Contains the site cache collection.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherits from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherits from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCacheModule Constructor | Creates a new instance of the CommerceCacheModule class.


CommerceCacheModule Constructor (BCL)

Use this method to create a new instance of the CommerceCacheModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceCacheModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherits from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherits from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceCacheModule.Init (HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The current HttpApplication instance.
[C#]
appInstance
The current HttpApplication instance.

Remarks

This module does not subscribe to any application events.

Throws a CommerceResourceDependencyException if the associated Commerce Server resource of a known cache type could not be found.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCacheModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceCacheModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
CacheCollection | Contains the site cache collection.


CommerceCacheModule.CacheCollection Property (BCL)

The CacheCollection property gets the site cache collection.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property CacheCollection As CommerceCacheCollection
[C#]
public static CommerceCacheCollection CacheCollection {get;}

Property Value

A CommerceCacheCollection object containing the caches in the site.

Remarks

The value will be null if the CommerceCacheModule object was not configured in the web.config file.

This property is static and shared.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Microsoft.CommerceServer.Runtime.Catalog

The Microsoft.CommerceServer.Runtime.Catalog namespace contains the catalog functionality for the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Catalog Namespace Object Model

Depicts the object model of the Microsoft.CommerceServer.Runtime.Catalog namespace.

Classes

Class | Description
CatalogContext | Provides a context for interacting with the Commerce Server Product Catalog System. Wraps the CatalogManager COM object.
CatalogException | Base type for all exceptions raised by the Product Catalog System.
CatalogInitializationException | Exception thrown when there is a failure initializing the CatalogManager object.
CatalogNotFoundException | Exception thrown when the catalog is not found.
CatalogSearch | Controls the type of search performed on catalog data.
CatalogSearchOptions | Used by database searches for catalog methods to specify which records to return and how to sort the result set. Can also specify paging and class types to return.
CatalogSetCollection | Retrieves and caches information about all catalog sets in the Commerce Server Catalog System. Provides an enumerator and two indexers to retrieve the CatalogSet object information.
Category | Represents a category in the ProductCatalog object. A Category object should be referenced only on the page in which it was created.
CategoryNotFoundException | Exception thrown when the category is not found.
CommerceCatalogModule | Responsible for creating the default CatalogContext object for the site.
Product | Represents a product in the ProductCatalog object. A Product object should be referenced only on the page in which it was created.
ProductCatalog | Represents a catalog in the Commerce Server Catalog System. A ProductCatalog object should be referenced only on the page in which it was created.
ProductNotFoundException | Exception thrown when the product is not found.
SpecificationSearchPropertyResult | Represents the result for a property in a specification search. The specification search APIs return arrays of these as part of the specification search process. Each result object represents a property and all of the distinct values for that property.

Enumerations

Enumeration | Description
CatalogAttributesType | Used with the CatalogContext.GetAttributes method. Specifies whether to return catalog attributes or property attributes.
CatalogClassTypes | Used to specify which types of catalog objects to return from a search.
CatalogDataType | Enumeration of the valid data types for catalog properties.
CatalogJoinType | Used with the SetJoinTable method of the CatalogContext to specify the type of join to use across the Product Catalog System.

Examples

Example | Description
Code to list catalogs on an ASP.NET Web form | Describes how to list catalogs on an ASP.NET Web form.
Code to navigate Catalog categories on an ASP.NET Web form | Describes how to navigate through catalog categories on an ASP.NET Web form.
Code to navigate Catalog products on an ASP.NET Web form | Describes how to navigate through catalog products on an ASP.NET Web form.

See Also

Commerce Server .NET Application Framework Tutorial


CatalogAttributesType Enumeration (BCL)

Enumeration for use with the CatalogContext.GetAttributes method. Specifies whether to return catalog attributes or property attributes.

Members

Member name | Description
CatalogAttributes | Indicates that the GetAttribures method returns catalog attributes.
PropertyAttributes | Indicates that the GetAttribures method returns property attributes.

Remarks

Inherits from the System.Enum method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: MS.CS.Runtime.dll


CatalogClassTypes Enumeration (BCL)

Enumeration used to specify which types of catalog objects to return from a search.

Members

Member Name | Description
CategoryClass | Categories
ProductClass | Products
ProductFamilyClass | Product families (products with variants)
ProductFamilyForVariantsClass | When a variant matches, return the product family that includes the variant.
ProductVariantClass | Product variants
ProductVariantsForFamilyClass | When a product with variants matches, return the product variants.

Remarks

Class types can be combined by using the logical OR operator.

The following example specifies to return both ProductFamilyClass and ProductFamilyForVariantsClass objects:

ClassTypes = CatalogClassTypes.ProductFamilyClass | CatalogClassType.ProductFamilyForVariantsClass

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: MS.CS.Runtime.dll


CatalogContext Class (BCL)

The CatalogContext class provides a context for interacting with the Commerce Server 2002 Product Catalog System. In the Commerce Server 2002 .NET Application Framework implementation, this wraps a CatalogManager object.

Protected Instance Constructor

Constructor | Description
Constructor(DebugContext) | Creates a new instance of the CatalogContext class with the specified DebugContext object.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetCatalog(String) | Gets the ProductCatalog object for the catalog with the specified name.
GetCatalogs(String, String, CatalogSearchOptions, Int32) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String, String, CatalogSearchOptions) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String, String) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetDefinitionProperties(String) | Gets the properties for a specific catalog definition.
GetEnumerationPropertyValues(String) | Returns all possible values for a catalog property of type CatalogDataType.Enumeration.
GetPropertyAttributes(String) | Gets the attributes for a specific catalog property.
Refresh | Refreshes the Product Catalog System. Ensures that the property caches are coherent with the current design-time view of the catalog.
SetJoinTable(String, String, String, CatalogJoinType) | Sets the join table information. The join table information is in effect for the lifetime of the CatalogContext object.

Public Instance Properties

Property | Description
CachingEnabled | True if caching is enabled, otherwise False.
CatalogNames | Gets the complete list of catalogs known to the Product Catalog System as an array of catalog names.
CatalogSets | Returns the (cached) CatalogSetCollection object that contains information about all the catalog sets in the Commerce Server Product Catalog System.
CategoryDefinitionNames | Gets the names of all category definitions defined in the Product Catalog System.
DebugContext | Gets the DebugContext object that this object is using to log trace messages, and so forth.
DefaultAnonymousCatalogSet | Returns the catalog collection for the configured default anonymous catalog set.
DefaultAuthenticatedCatalogSet | Returns the catalog collection for the configured default authenticated catalog set.
ProductDefinitionNames | Gets the names of all product definitions defined in the Product Catalog System.
PropertyNames | Gets the names of all properties defined in the Product Catalog System.

Public Static (Shared) Methods

Method | Description
CreateFromConnectionString(String, DebugContext) | Creates a CatalogContext object that will run against the catalog database specified in the ADO connection string.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class. If this class is not sealed, derived classes can override this method to dispose of its own resources.

Remarks

The CatalogContext, ProductCatalog, Product, and Category objects implement most of their functionality as virtual methods that may be overridden in a subclass (or an entirely new implementation may be provided). Subclassing also allows for adding information to the data sets before they are returned (for example, inventory levels).

The pattern to implement this is to subclass the CatalogContext object, and provide a static factory method similar to CreateFromConnectionString and CreateFromCommerceSiteName that initializes and returns a new CatalogContext subclass instance. This instance can then be placed into the CommerceContext.CatalogSystem property for use on the site. The subclass must provide an implementation for the GetCatalog methods. However, you can no longer use:

ProductCatalog catalog = new Catalog(string name)

But you can use:

ProductCatalog catalog = CommerceContext.Current.CatalogContext.GetCatalog(string name);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext Constructor (BCL)

Protected Instance Constructor

Constructor | Description
Constructor(DebugContext) | Creates a new instance of the CatalogContext class with the specified DebugContext object.


CatalogContext Constructor (DebugContext) (BCL)

Use this method to create a new instance of the CatalogContext object with the specified DebugContext object.

[Visual Basic .NET]
Protected Sub New( _
  ByVal dbgContext As DebugContext _
)
[C#]
protected CatalogContext(
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.
[C#]
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.

Remarks

Throws an ArgumentNullException if the dbgContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases the unmanaged resources used by this class and optionally releases the managed resources.
GetCatalog(String) | Gets the ProductCatalog object for the catalog with the specified name.
GetCatalogs(String, String, CatalogSearchOptions, Int32) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String, String, CatalogSearchOptions) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String, String) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetCatalogs(String) | Searches for catalogs using a TSQL query. All properties of all matching records are returned.
GetDefinitionProperties(String) | Gets the properties for a specific catalog definition.
GetEnumerationPropertyValues(String) | Returns all possible values for a catalog property of type CatalogDataType.Enumeration.
GetPropertyAttributes(String) | Gets the attributes for a specific catalog property.
Refresh | Refreshes the Product Catalog System. Ensures that the property caches are coherent with the current design-time view of the catalog.
SetJoinTable(String, String, String, CatalogJoinType) | Sets the join table information. The join table information is in effect for the lifetime of the CatalogContext object.

Public Static (Shared) Methods

Method | Description
CreateFromConnectionString(String, DebugContext) | Creates a CatalogContext object that will run against the catalog database specified in the ADO connection string.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class. If this class is not sealed, derived classes can override this method to dispose of its own resources.


CatalogContext.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.CreateFromConnectionString (String, DebugContext) Method (BCL)

Use this method to create a CatalogContext object that will run against the catalog database specified in the ADO connection string.

[Visual Basic .NET]
Public Shared Function CreateFromConnectionString( _
  ByVal connectionString As System.String, _
  ByVal dbgContext As DebugContext _
) As CatalogContext
[C#]
public static CatalogContext CreateFromConnectionString(
  System.String connectionString,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
connectionString
The ADO connection string. May not be null.
dbgContext
The DebugContext object. May not be null.
[C#]
connectionString
The ADO connection string. May not be null.
dbgContext
The DebugContext object. May not be null.

Remarks

Throws an ArgumentNullException if either the connectionString or the dbgContext parameter is null. Throws a CatalogInitializationException if initialization of the CatalogManager object fails.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.Dispose Method (BCL)

Use this method to release resources used by this object.

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

Releases the underlying CatalogManager interop object. This method calls the CatalogContext.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally to release the managed resources.

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Implements

System.IDisposable

Parameters

[Visual Basic .NET]
disposing
A value of True if this method was called from the Dispose method, False if this method was called from the finalizer.
[C#]
disposing
A value of True if this method was called from the Dispose method, False if this method was called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the Microsoft.NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetCatalog (String) Method (BCL)

Use this method to get the ProductCatalog object for the catalog with the specified name.

[Visual Basic .NET]
Overridable Public Function GetCatalog( _
  ByVal catalogName As System.String _
) As ProductCatalog
[C#]
public virtual ProductCatalog GetCatalog(
  System.String catalogName
);

Parameters

[Visual Basic .NET]
catalogName
The name of the catalog. May not be null.
[C#]
catalogName
The name of the catalog. May not be null.

Return Value

The specified ProductCatalog object.

Remarks

When used in the context of the Commerce Server 2002 .NET Framework, a ProductCatalog object is valid only for the request on which it was created. It will be automatically disposed in the OnEndRequest handler. Throws an ArgumentNullException if the catalogName parameter is null. Throws a CatalogNotFoundException if the catalog does not exist. Sets the ActiveLanguage of the ProductCatalog object to the CultureInfo.CurrentUICulture. If the catalog does not support this language, then the ProductCatalog.ActiveLanguage defaults to the default language of the catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetCatalogs (String) Method (BCL)

Use this method to search for catalogs using a TSQL query. All properties of all matching records are returned.

[Visual Basic .NET]
Overridable Public Function GetCatalogs( _
  ByVal searchClause As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCatalogs(
  System.String searchClause
);

Parameters

[Visual Basic .NET]
searchClause
The search clause.
[C#]
searchClause
The search clause.

Return Value

A DataSet with a single DataTable containing the properties of catalogs that matched the query.

Remarks

Throws a CatalogException on failure. The results are returned in the current user interface culture.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetCatalogs (String, String) Method (BCL)

Use this method to search for catalogs using a TSQL query. All properties of all matching records are returned.

[Visual Basic .NET]
Overridable Public Function GetCatalogs( _
  ByVal searchClause As System.String, _
  ByVal language As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCatalogs(
  System.String searchClause,
  System.String language
);

Parameters

[Visual Basic .NET]
searchClause
The search clause.
language
The language, specified as a RFC 1766 CultureInfo class name. If null, it defaults to the current user interface culture.
[C#]
searchClause
The search clause.
language
The language, specified as a RFC 1766 CultureInfo class name. If null, it defaults to the current user interface culture.

Return Value

A DataSet with a single DataTable containing the properties of catalogs that matched the query.

Remarks

Throws a CatalogException on failure.

See the Microsoft .NET Framework SDK documentation for more information about the CultureInfo class.

If the language parameter is not specified, the CultureInfo.CurrentUICulture value is used.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetCatalogs (String, String, CatalogSearchOptions) Method (BCL)

Use this method to search for catalogs using a TSQL query, which returns results as specified by the searchOptions parameter.

[Visual Basic .NET]
Overridable Public Function GetCatalogs( _
  ByVal searchClause As System.String, _
  ByVal language As System.String, _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCatalogs(
  System.String searchClause,
  System.String language,
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchClause
The search clause. May not be null.
language
The language, specified as a .NET RFC 1766 culture code. If null, it defaults to the current user interface culture.
searchOptions
The CatalogSearchOptions object. May be null.
[C#]
searchClause
The search clause. May not be null.
language
The language, specified as a .NET RFC 1766 culture code. If null, it defaults to the current user interface culture.
searchOptions
The CatalogSearchOptions object. May be null.

Return Value

A DataSet with a single DataTable containing the properties of catalogs that matched the query.

Remarks

The following properties of the searchOptions parameter are used; any others are ignored:

  • StartingRecord
  • RecordsToRetrieve
  • Language

Throws a ArgumentNullException if the searchOptions parameter is null. Throws a CatalogException on failure.

If the language parameter is not specified, the CultureInfo.CurrentUICulture value is used.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetCatalogs (String, String, CatalogSearchOptions, Int32) Method (BCL)

Use this method to search for catalogs using a TSQL query, which returns results as specified by the CatalogSearchOptions parameter, and returns the total number of matching catalog records in the totalRecords parameter.

[Visual Basic .NET]
Overridable Public Function GetCatalogs( _
  ByVal searchClause As System.String, _
  ByVal language As System.String, _
  ByVal searchOptions As CatalogSearchOptions, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCatalogs(
  System.String searchClause,
  System.String language,
  CatalogSearchOptions searchOptions,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchClause
The search clause.
language
The language, specified as a .NET RFC 1766 culture code. If null, it defaults to the current user interface culture.
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
(out) The total number of records matching the query.
[C#]
searchClause
The search clause. May not be null.
language
The language, specified as a .NET RFC 1766 culture code. If null, it defaults to the CultureInfo.CurrentUICulture value.
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
(out) The total number of records matching the query.

Return Value

A DataSet with a single DataTable containing the properties of catalogs that matched the query.

Remarks

The following properties of the searchOptions parameter are used; any others are ignored:

  • StartingRecord
  • RecordsToRetrieve
  • Language

Throws a CatalogException on failure.

If the language parameter is not specified, the CultureInfo.CurrentUICulture value is used.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetDefinitionProperties (String) Method (BCL)

Use this method to get the properties for a specific catalog definition.

[Visual Basic .NET]
Overridable Public Function GetDefinitionProperties( _
  ByVal definitionName As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetDefinitionProperties(
  System.String definitionName
);

Parameters

[Visual Basic .NET]
definitionName
The name of the definition. May not be null.
[C#]
definitionName
The name of the definition. May not be null.

Return Value

A DataSet containing definition properties.

Remarks

The GetDefinitionProperties method can be used to retrieve properties of either category or product definitions. Gets the names of the definitions using the CategoryDefinitionNames or ProductDefinitionNames properties. Throws an ArgumentNullException if the definitionName parameter is null. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetEnumerationPropertyValues (String) Method (BCL)

Use this method to return all possible values for a catalog property of type CatalogDataType.Enumeration.

[Visual Basic .NET]
Overridable Public Function GetEnumerationPropertyValues( _
  ByVal propertyName As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetEnumerationPropertyValues(
  System.String propertyName
);

Parameters

[Visual Basic .NET]
propertyName
The name of the property to return enumerations for. May not be null.
[C#]
propertyName
The name of the property to return enumerations for. May not be null.

Return Value

A DataSet with a single DataTable containing enumeration property values.

Remarks

Throws an ArgumentNullException if the propertyName parameter is null. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.GetPropertyAttributes (String) Method (BCL)

Use this method to get the attributes for a specific catalog property.

[Visual Basic .NET]
Overridable Public Function GetPropertyAttributes( _
  ByVal propertyName As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetPropertyAttributes(
  System.String propertyName
);

Parameters

[Visual Basic .NET]
propertyName
The name of the property to retrieve attributes for. May not be null.
[C#]
propertyName
The name of the property to retrieve attributes for. May not be null.

Return Value

A DataSet with a single DataTable and containing a single DataRow with the property attributes.

Remarks

Throws an ArgumentNullException if the propertyName parameter is null. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.Refresh Method (BCL)

Use this method to flush the cached data. The next time that data is queried, it will be retrieved from the Catalog COM API, and thereby the cache will gradually be filled with the coherent design-time view of the data.

[Visual Basic .NET]
Overridable Public Sub Refresh( _
)
[C#]
public virtual void Refresh(
);

Remarks

The following properties on the catalog are refreshed:

  • CatalogNames
  • PropertyNames
  • CategoryDefinitions
  • ProductDefinitionNames
  • CatalogSetCollection
  • ProductCatalog, Product, Category cached data

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.SetJoinTable (String, String, String, CatalogJoinType) Method (BCL)

Use this method to set the join table information. The join information is in effect for the lifetime of the CatalogContext object.

For a list of the methods that support the JoinTable feature, see Code to Join an External Table to Product Recordsets.

[Visual Basic .NET]
Public Sub SetJoinTable( _
  ByVal targetTableName As System.String, _
  ByVal sourceJoinKey As System.String, _
  ByVal targetJoinKey As System.String, _
  ByVal joinType As CatalogJoinType _
)
[C#]
public void SetJoinTable(
  System.String targetTableName,
  System.String sourceJoinKey,
  System.String targetJoinKey,
  CatalogJoinType joinType
);

Parameters

[Visual Basic .NET]
targetTableName
The target table. May not be null.
sourceJoinKey
The source join key name. May not be null.
targetJoinKey
The target join key name. May not be null.
joinType
The CatalogJoinType enumeration value. See the Remarks section for possible values.
[C#]
targetTableName
The target table. May not be null.
sourceJoinKey
The source join key name. May not be null.
targetJoinKey
The target join key name. May not be null.
joinType
The CatalogJoinType enumeration value. See the Remarks section for possible values.

Return Value

This method returns void.

Remarks

If you pass a parameter containing spaces to the SetJoinTable method, that parameter must be enclosed by square brackets([]).

The following table lists the possible values for the CatalogJoinType enumeration.

Type | Description
InnerJoin | Returns rows only where the keys are equal.
OuterJoinLeft | Returns all rows in the Product Catalog System and matching rows in the target table.
OuterJoinRight | Returns matching rows in the Product Catalog System and all rows in the target table.
OuterJoinFull | Returns all rows in both tables.
NoJoin | Reserved for future use.

Throws an ArgumentNullException if any of the three string parameters are null. Throws a CommerceException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext Properties (BCL)

Public Instance Properties

Property | Description
CachingEnabled | True if caching is enabled, otherwise False.
CatalogNames | Gets the complete list of catalogs known to the Product Catalog System as an array of catalog names.
CatalogSets | Returns the (cached) CatalogSetCollection object that contains information about all the catalog sets in the Commerce Server Product Catalog System.
CategoryDefinitionNames | Gets the names of all category definitions defined in the Product Catalog System.
DebugContext | Gets the DebugContext object that this object is using to log trace messages, and so forth.
DefaultAnonymousCatalogSet | Returns the catalog collection for the configured DefaultAnonymous catalog set.
DefaultAuthenticatedCatalogSet | Returns the catalog collection for the configured DefaultAuthenticated catalog set.
ProductDefinitionNames | Gets the names of all product definitions defined in the Product Catalog System.
PropertyNames | Gets the names of all properties defined in the Product Catalog System.


CatalogContext.DefaultAnonymousCatalogSet Property (BCL)

The DefaultAnonymousCatalogSet property returns the catalog collection for the configured DefaultAnonymous catalog set.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property DefaultAnonymousCatalogSet As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection DefaultAnonymousCatalogSet {get;}

Property Value

A ReadOnlyStringCollection containing the catalog collection for the configured DefaultAnonymous catalog set.

Remarks

Returns the catalog collection for the configured DefaultAnonymous catalog set.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.DefaultAuthenticatedCatalogSet Property (BCL)

The DefaultAuthenticatedCatalogSet property returns the catalog collection for the configured default authenticated catalog set.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property DefaultAuthenticatedCatalogSet As ReadOnlyStringCollection
[C#]
public ReadOnlyStringCollection DefaultAuthenticatedCatalogSet {get;}

Property Value

A ReadOnlyStringCollection containing the catalog collection for the configured DefaultAuthenticated catalog set.

Remarks

Returns the catalog collection for the configured DefaultAuthenticated catalog set.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.CachingEnabled Property (BCL)

Use the CachingEnabled property to determine whether caching is enabled.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CachingEnabled As System.Boolean
[C#]
public virtual System.Boolean CachingEnabled {get;}

Property Value

A Boolean value indicating whether caching is enabled. If True, caching is enabled, otherwise, caching is not enabled.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.CatalogNames Property (BCL)

Use the CatalogNames property to get the complete list of catalogs known to the Product Catalog System.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CatalogNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection CatalogNames {get;}

Property Value

A ReadOnlyStringCollection object containing all the catalogs in the Product Catalog System.

Remarks

The CatalogContext object caches this list since it is frequently used in Commerce Server sites. To refresh the list, call the Refresh method explicitly. Throws a CatalogException on failure

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.CatalogSets Property (BCL)

The CatalogSets property contains information about all the catalog sets in the Product Catalog System.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CatalogSets As CatalogSetCollection
[C#]
public virtual CatalogSetCollection CatalogSets {get;}

Property Value

A cached CatalogSetCollection object that contains the properties of the catalog sets.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.CategoryDefinitionNames Property (BCL)

The CategoryDefinitionNames property contains the names of all category definitions in the Product Catalog System.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CategoryDefinitionNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection CategoryDefinitionNames {get;}

Property Value

A string collection that contains the names of all category definitions in the Product Catalog System.

Remarks

The CatalogContext object caches this list since it is frequently used in Commerce Server sites. To refresh the list, call the Refresh method explicitly. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.DebugContext Property (BCL)

The DebugContext property contains the DebugContext object that is associated with this object.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

A DebugContext object that this object is using to log trace messages, and so forth.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.DefaultAnonymousCatalogSet Property (BCL)

The DefaultAnonymousCatalogSet property returns the catalog collection for the configured DefaultAnonymous catalog set.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property DefaultAnonymousCatalogSet As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection DefaultAnonymousCatalogSet {get;}

Property Value

A ReadOnlyStringCollection containing the catalog collection for the configured DefaultAnonymous catalog set.

Reviewers: Need type.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.DefaultAuthenticatedCatalogSet Property (BCL)

The DefaultAuthenticatedCatalogSet property returns the catalog collection for the configured DefaultAuthenticated catalog set.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property DefaultAuthenticatedCatalogSet As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection DefaultAuthenticatedCatalogSet {get;}

Property Value

A ReadOnlyStringCollection containing the catalog collection for the configured DefaultAuthenticated catalog set.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.ProductDefinitionNames Property (BCL)

The ProductDefinitionNames property contains the names of all product definitions defined in the Product Catalog System.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ProductDefinitionNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection ProductDefinitionNames {get;}

Property Value

A ReadOnlyStringCollection object containing the names of all product definitions defined in the Product Catalog System.

Remarks

The CatalogContext object caches this list since it is frequently used in Commerce Server sites. To refresh the list, call the Refresh method explicitly. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogContext.PropertyNames Property (BCL)

The PropertyNames property contains the names of all properties defined in the Product Catalog System.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PropertyNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection PropertyNames {get;}

Property Value

A ReadOnlyStringCollection containing the names of the properties.

Remarks

The CatalogContext object caches this list since it is frequently used in Commerce Server sites. To refresh the list, call the Refresh method explicitly. Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogDataType Enumeration (BCL)

Enumeration of the valid data types for catalog properties.

Members

Member Name | Description
BigInteger | Indicates a BigInteger DataType.
Boolean | Indicates a Boolean DataType.
Currency | Indicates a Currency DataType.
DateTime | Indicates a DateTime DataType.
Double | Indicates a Double DataType.
Enumeration | Indicates an Enumeration DataType.
FilePath | Indicates a FilePath DataType.
Float | Indicates a Float DataType.
Integer | Indicates an Integer DataType.
Invalid | Indicates an Invalid DataType.
String | Indicates a String DataType.
Text | Indicates a Text DataType.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Class (BCL)

Base type for all exceptions raised by the Product Catalog System. This class inherits from the CommerceException and ISerilaizable classes.

Public Instance Constructor

Constructor | Description
CatalogException Constructor | Creates a new instance of the CatalogException class with the specified string message.
CatalogException Constructor(String) | Creates a new instance of the CatalogException class with the specified string message.
CatalogException Constructor(String, Exception) | Creates a new instance of the CatalogException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CatalogException(SerializationInfo, StreamingContext) | Creates a new instance of the CatalogException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: MS.CS.Runtime.dll


CatalogException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogException Constructor | Creates a new instance of the CatalogException class.
CatalogException Constructor(String) | Creates a new instance of the CatalogException class with the specified string message.
CatalogException Constructor(String, Exception) | Creates a new instance of the CatalogException class with the specified string message.

Protected Instance Constructor

Constructor | Description
CatalogException(SerializationInfo, StreamingContext) | Creates a new instance of the CatalogException class with the specified serialization information and streaming context.


CatalogException Constructor (BCL)

Use this method to create a new instance of the CatalogException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CatalogException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CatalogException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CatalogException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Constructor (String) (BCL)

Use this method to create a new instance of the CatalogException class with the specified string message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CatalogException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The message string. May be null.
[C#]
message
The message string. May be null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CatalogException class with the specified string message This CatalogException instance wraps the System.exception instance inner.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CatalogSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The message string. May be null.
inner
The inner exception. May be null.
[C#]
message
The message string. May be null.
inner
The inner exception. May be null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.


CatalogException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CatalogInitializationException Class (BCL)

This exception class is of the CatalogInitializationException type; it is thrown when there is a failure initializing the CatalogManager object.

This class inherits from the CatalogException class.

Public Instance Constructor

Constructor | Description
CatalogInitializationException Constructor | Creates a new instance of the CatalogInitialzationException class.
CatalogInitializationException Constructor(String) | Creates a new instance of the CatalogInitializationException class with the specified message.
CatalogInitializationException Constructor(String, Exception) | Creates a new instance of the CatalogInitializationException class with the specified connection string and inner exception.

Protected Instance Constructor

Constructor | Description
CatalogInitializationException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CatalogInitializationException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
ConnectionString | Gets the connection string that was used to initialize the Product Catalog System.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogInitializationException Constructor | Creates a new instance of the CatalogInitialzationException class.
CatalogInitializationException Constructor(String) | Creates a new instance of the CatalogInitializationException class with the specified message.
CatalogInitializationException Constructor(String, Exception) | Creates a new instance of the CatalogInitializationException class with the specified connection string and inner exception.

Protected Instance Constructor

Constructor | Description
CatalogInitializationException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CatalogInitializationException class with the specified serialization information and streaming context.


CatalogInitializationException Constructor (BCL)

Use this method to create a new instance of the CatalogInitializationException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CatalogInitializationException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CatalogInitializationException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CatalogInitializationException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Constructor (String) (BCL)

Use this method to create a new instance of the CatalogInitializationException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CatalogInitializationException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CatalogInitializationException object.
[C#]
message
A System.String containing the message to include in the CatalogInitializationException object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CatalogInitializationException class with the specified connection string and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal connectionString As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CatalogInitializationSystem.Exception(
  System.String connectionString,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
connectionString
A System.String that contains the connection string used to initialize the CatalogManager object. May be null.
inner
The inner System.Exception object.
[C#]
connectionString
A System.String that contains the connection string used to initialize the CatalogManager object. May be null.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CatalogInitializationException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogInitializationException Properties (BCL)

Public Instance Properties

Property | Description
ConnectionString | Gets the connection string that was used to initialize the Product Catalog System.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CatalogInitializationException.ConnectionString Property (BCL)

The ConnectionString property gets the connection string that was used to initialize the Product Catalog System.

Definition

[Visual Basic .NET]
Public ReadOnly Property ConnectionString As System.String
[C#]
public System.String ConnectionString {get;}

Property Value

A System.String that contains the connection string.

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogJoinType Enumeration (BCL)

Enumeration used with the SetJoinTable method of the CatalogContext class to specify the type of join to use across the Product Catalog System.

Members

Member name | Description
InnerJoin | Indicates return only rows where the keys are equal.
NoJoin | Indicates do not perform a join. Using this field with the SetJoinTable method will disable an existing join established by a previous call to the SetJoinTable method.
OuterJoinFull | Indicates return all rows in both tables.
OuterJoinLeft | Indicates return all rows in the Product Catalog System and matching rows in the target table.
OuterJoinRight | Indicates return matching rows in the Product Catalog System and all rows in the target table.

Remarks

Inherits from System.Enum.

For more information, see SetJoinTable.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Class (BCL)

Exception thrown when the catalog is not found. This class inherits from the CatalogException class.

Public Instance Constructor

Constructor | Description
CatalogNotFoundException Constructor | Creates a new instance of the CatalogNotFoundException class.
CatalogNotFoundException Constructor(String) | Creates a new instance of the CatalogNotFoundException class with the specified catalog name.
CatalogNotFoundException Constructor(String, Exception) | Creates a new instance of the CatalogNotFoundException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CatalogNotFoundException(SerializationInfo, StreamingContext) | Creates a new instance of the CatalogNotFoundException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
CatalogName | Gets the catalog name.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogNotFoundException Constructor | Creates a new instance of the CatalogNotFoundException class.
CatalogNotFoundException Constructor(String) | Creates a new instance of the CatalogNotFoundException class with the specified catalog name.
CatalogNotFoundException Constructor(String, Exception) | Creates a new instance of the CatalogNotFoundException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CatalogNotFoundException(SerializationInfo, StreamingContext) | Creates a new instance of the CatalogNotFoundException class with the specified serialization information and streaming context.


CatalogNotFoundException Constructor (BCL)

Use this method to create a new instance of the CatalogNotFoundException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CatalogNotFoundException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CatalogNotFoundException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CatalogNotFoundException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Constructor (String) (BCL)

Use this constructor to create a new instance of the CatalogNotFoundException class with the specified catalog name.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogName As System.String _
)
[C#]
public CatalogNotFoundException(
  System.String catalogName
);

Parameters

[Visual Basic .NET]
catalogName
A System.String that contains the catalog name.
[C#]
catalogName
A System.String that contains the catalog name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Constructor (String, Exception) (BCL)

Use this constructor to create a new instance of the CatalogNotFoundException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CatalogNotFoundSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CatalogNotFoundException object.
inner
The inner System.Exception object.
[C#]
message
A System.String containing the message to include in the CatalogNotFoundException object.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CatalogNotFoundException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogNotFoundException Properties (BCL)

Public Instance Properties

Property | Description
CatalogName | Gets the catalog name.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CatalogNotFoundException.CatalogName Property (BCL)

The CatalogName property gets the catalog name.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogName As System.String
[C#]
public System.String CatalogName {get;}

Property Value

A System.String that contains the name of the catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch Class (BCL)

Use this class to perform searches against product, variant, and category data in one or more catalogs.

Public Instance Constructor

Constructor | Description
CatalogSearch Constructor | Creates a new instance of the CatalogSearch class.
CatalogSearch Constructor(CatalogContext) | Creates a new instance of the CatalogSearch class using the given CatalogContext parameter.

Public Instance Methods

Method | Description
Search(Int32) | Performs a search with the current properties and returns a limited number of records.
Search | Performs a search with the current properties.

Public Instance Properties

Property | Description
CatalogContext | Contains the CatalogContext object used for the search.
CatalogNames | Contains the catalog names used for the search.
CatalogNamesCollection | Contains a ReadOnlyCollection object containing catalog names used for the search.
CategoryName | Contains the category name used for the search.
FreeTextSearchPhrase | Contains the free-text search phrase used for the search.
Language | Contains the language used for the search.
Recursive | Indicates whether the search will be recursive.
SearchOptions | Contains the search options used for the search.
SQLWhereClause | Contains the SQL Where clause used for the search.

Remarks

A CatalogSearch object can be used to perform different kinds of searches on different catalog entities such as:

  • Search across multiple catalogs
  • Search within a single catalog
  • Search within a category in a catalog

It can also be used to perform various types of searches such as:

  • Property search
  • Free-text search
  • Both property and free-text search

The different properties of the CatalogSearch object can be used to control the search domain, the type of search, language, sorting, paging, classTypes, and so forth.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogSearch Constructor | Creates a new instance of the CatalogSearch class.
CatalogSearch Constructor(CatalogContext) | Creates a new instance of the CatalogSearch class using the given CatalogContext parameter.


CatalogSearch Constructor (BCL)

Use this method to create a new instance of the CatalogSearch class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CatalogSearch(
);

Remarks

Constructs a CatalogSearch object using the CommerceContext.Current.CatalogSystem object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch Constructor (CatalogContext) (BCL)

Use this method to create a new instance of the CatalogSearch class using the specified CatalogContext object.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogContext As CatalogContext _
)
[C#]
public CatalogSearch(
  CatalogContext catalogContext
);

Parameters

[Visual Basic .NET]
catalogContext
The CatalogContext object for the search.
[C#]
catalogContext
The CatalogContext object for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch Methods (BCL)

Public Instance Methods

Method | Description
Search(Int32) | Performs a search with the current properties that returns a limited number of records.
Search | Performs a search with the current properties.


CatalogSearch.Search Method (BCL)

Use this method to perform a search with the current properties.

[Visual Basic .NET]
Overridable Public Function Search( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet Search(
);

Return Value

A DataSet containing a single DataTable with the search results.

Remarks

Throws an ArgumentNullException if the CatalogContext property is null.

Throws a CatalogException on failure.

If the CatalogNames property is not specified, then all catalogs in the catalog system are searched.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.Search (Int32) Method (BCL)

Use this constructor to perform a search with the current properties that returns a limited number of records.

Definition

[Visual Basic .NET]
Overridable Public Function Search( _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet Search(
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
totalRecords
The total number of records to return.
[C#]
totalRecords
The total number of records to return.

Return Value

A DataSet containing a single DataTable with the search results

Remarks

Throws an ArgumentNullException if the CatalogContext property is null.

Throws an ArgumentNullException if the CatalogNames property is null.

Throws an ArgumentNullException if both the SQLWhereClause and FreeTextSearchPhrase property are null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch Properties (BCL)

Public Instance Properties

Property | Description
CatalogContext | Contains the CatalogContext object used for the search.
CatalogNames | Contains the catalog names used for the search.
CatalogNamesCollection | Contains a ReadOnlyCollection object of catalog names used for the search.
CategoryName | Contains the category name used for the search.
FreeTextSearchPhrase | Contains the free-text search phrase used for the search.
Language | Contains the language used for the search.
Recursive | Indicates whether the search will be recursive.
SearchOptions | Contains the search options used for the search.
SQLWhereClause | Contains the SQL Where clause used for the search.


CatalogSearch.CatalogContext Property (BCL)

The CatalogContext property contains the CatalogContext object used for the search.

Definition

[Visual Basic .NET]
Public Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get; set;}

Property Value

The CatalogContext object used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.CatalogNames Property (BCL)

The CatalogNames property contains the catalog names used for the search.

Definition

[Visual Basic .NET]
Public Property CatalogNames As System.String
[C#]
public System.String CatalogNames {get; set;}

Property Value

A System.String object containing a comma-delimited list of the catalog names used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.CatalogNamesCollection Property (BCL)

The CatalogNamesCollection property contains a ReadOnlyCollection of catalog names used for the search.

Definition

[Visual Basic .NET]
Public Property CatalogNamesCollection As ReadOnlyStringCollection
[C#]
public ReadOnlyStringCollection CatalogNamesCollection {get; set;}

Property Value

A ReadOnlyStringCollection of catalog names used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.CategoryName Property (BCL)

The CategoryName property contains the category name used for the search.

Definition

[Visual Basic .NET]
Public Property CategoryName As System.String
[C#]
public System.String CategoryName {get; set;}

Property Value

A System.String that contains the category name used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.FreeTextSearchPhrase Property (BCL)

The FreeTextSearchPhrase property contains the free-text search phrase used for the search.

Definition

[Visual Basic .NET]
Public Property FreeTextSearchPhrase As System.String
[C#]
public System.String FreeTextSearchPhrase {get; set;}

Property Value

A System.String that contains the free-text search phrase used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.Language Property (BCL)

The Language property contains the language used for the search.

Definition

[Visual Basic .NET]
Public Property Language As System.String
[C#]
public System.String Language {get; set;}

Property Value

A System.String that contains the language used for the search.

Remarks

If not specified for a single/multiple catalog search, this defaults to the CultureInfo.CurrentUICulture object. If not specified for a category search, this defaults to either the CultureInfo.CurrentUICulture object (if the catalog supports it) OR to the default language of the ProductCatalog object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.Recursive Property (BCL)

The Recursive property indicates whether the search will be recursive.

Definition

[Visual Basic .NET]
Public Property Recursive As System.Boolean
[C#]
public System.Boolean Recursive {get; set;}

Property Value

A System.Boolean that indicates whether the search will be recursive.

Remarks

This property only applies to a category search.

A value of True indicates that the search will be recursive.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.SearchOptions Property (BCL)

The SearchOptions property contains the search options used for the search.

Definition

[Visual Basic .NET]
Public Property SearchOptions As CatalogSearchOptions
[C#]
public CatalogSearchOptions SearchOptions {get; set;}

Property Value

A SearchOptions object that contains the search options.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearch.SQLWhereClause Property (BCL)

The SQLWhereClause property contains the SQL Where clause used for the search.

Definition

[Visual Basic .NET]
Public Property SQLWhereClause As System.String
[C#]
public System.String SQLWhereClause {get; set;}

Property Value

A System.String that contains the SQL Where clause used for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions Class (BCL)

A CatalogSearchOptions object can be provided to catalog methods that perform a database search to specify which records to return, how to sort the result set, and so on. Note that not all methods respect all of the settings. When the site is run in Debug mode or Checked mode, a warning message will be logged to the active DebugContext object whenever a setting has been made that cannot be respected.

Public Instance Constructor

Constructor | Description
CatalogSearchOptions Constructor | Creates a new instance of the CatalogSearchOptions class.
CatalogSearchOptions Constructor(CatalogSearchOptions) | Creates a new instance of the CatalogSearchOptions class with the data in the searchOptions parameter.

Public Instance Methods

Method | Description
SetPaging(Int32, Int32) | Sets the StartingRecord and RecordsToRetrieve properties based on the supplied page number and page size.

Public Instance Properties

Property | Description
CacheKey | Gets a cache key string that can be used as a part of a cache key when caching query results.
ClassTypes | Gets or sets a CatalogClassType value that specifies the class type(s) to return from a query.
PropertiesToReturn | Gets or sets the comma-delimited list of property names that should be returned in a query result set.
PropertiesToReturnArray | Gets or sets the array of properties that should be returned in a query result set.
RecordsToRetrieve | Gets or sets the number of records to retrieve.
SortAscending | Gets or sets a Boolean value that specifies whether to sort in ascending or descending order.
SortProperty | Gets the sort property.
StartingRecord | Gets the starting record property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogSearchOptions Constructor | Creates a new instance of the CatalogSearchOptions class.
CatalogSearchOptions Constructor(CatalogSearchOptions) | Creates a new instance of the CatalogSearchOptions class with the data in the searchOptions parameter.


CatalogSearchOptions Constructor (BCL)

Use this method to create a new CatalogSearchOptions class with the default settings.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CatalogSearchOptions(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions Constructor (CatalogSearchOptions) (BCL)

Use this method to create a new instance of the CatalogSearchOptions class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal searchOptionsOriginal As CatalogSearchOptions _
)
[C#]
public Microsoft.CommerceServer.Runtime.Catalog.CatalogSearchOptions(
  CatalogSearchOptions searchOptionsOriginal
);

Parameters

[Visual Basic .NET]
searchOptionsOriginal
A CatalogSearchOptions object containing the parameters to be copied into the new CatalogSearchOptions object.
[C#]
searchOptionsOriginal
A CatalogSearchOptions object containing the parameters to be copied into the new CatalogSearchOptions object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions Methods (BCL)

Public Instance Methods

Method | Description
SetPaging(Int32, Int32) | Sets the StartingRecord and RecordsToRetrieve properties based on the supplied page number and page size.


CatalogSearchOptions.SetPaging (Int32, Int32) Method (BCL)

Use this method to set the StartingRecord and RecordsToRetrieve properties based on the supplied page number and page size.

Definition

[Visual Basic .NET]
Public Sub SetPaging( _
  ByVal pageNumber As System.Int32, _
  ByVal pageSize As System.Int32 _
)
[C#]
public void SetPaging(
  System.Int32 pageNumber,
  System.Int32 pageSize
);

Parameters

[Visual Basic .NET]
pageNumber
The page number. Must be greater than or equal to one.
pageSize
The page size. Must be greater than or equal to one.
[C#]
pageNumber
The page number. Must be greater than or equal to one.
pageSize
The page size. Must be greater than or equal to one.

Remarks

Throws an ArgumentOutOfRangeException if the supplied parameters are out of the valid range.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions Properties (BCL)

Public Instance Properties

Property |  | Description
CacheKey |  | Gets a cache key string that can be used as a part of a cache key when caching query results.
ClassTypes |  | Gets or sets a CatalogClassType value that specifies the class type(s) to return from a query.
PropertiesToReturn |  | Gets or sets the comma-delimited list of property names that should be returned in a query result set.
PropertiesToReturnArray |  | Gets or sets the array of properties that should be returned in a query result set.
RecordsToRetrieve | Gets or sets the number of records to retrieve.
SortAscending | Gets or sets a Boolean value that specifies whether to sort in ascending or descending order.
SortProperty | Gets the SortProperty property.
StartingRecord | Gets the StartingRecord property.


CatalogSearchOptions.CacheKey Property (BCL)

The CacheKey property is a string that gets a cache key string that can be used as a part of a cache key when caching query results.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CacheKey As System.String
[C#]
public virtual System.String CacheKey {get;}

Property Value

A CacheKey object that represents the current search options.

Remarks

Given the same settings for all properties, it is guaranteed that the cache key will be the same.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.ClassTypes Property (BCL)

The ClassTypes property gets or sets a CatalogClassType value that specifies the class type(s) to return from a query.

Definition

[Visual Basic .NET]
Public Property ClassTypes As CatalogClassTypes
[C#]
public CatalogClassTypes ClassTypes {get; set;}

Property Value

A CatalogClassType object that specifies the class type(s) to return from a query.

Remarks

Some methods have restrictions on the valid values for the ClassTypes property.

The default value is the empty set (0). Class types can be combined by using the logical Or operator. For example:

ClassTypes = CatalogClassType.ProductFamilyClass | CatalogClassType.ProductFamilyForVariantsClass

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.PropertiesToReturn Property (BCL)

The PropertiesToReturn property is a string that gets or sets property names that should be returned in a query result set.

Definition

[Visual Basic .NET]
Public Property PropertiesToReturn As System.String
[C#]
public System.String PropertiesToReturn {get; set;}

Property Value

A String object containing a comma-delimited list of property names.

Remarks

The default value is null, indicating to return all properties.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.PropertiesToReturnArray Property (BCL)

The PropertiesToReturnArray property is a string that gets or sets the array of properties that should be returned in a query result set.

Definition

[Visual Basic .NET]
Public Property PropertiesToReturnArray As System.String[]
[C#]
public System.String[] PropertiesToReturnArray {get; set;}

Property Value

A String array containing the properties to be returned.

Remarks

The default value is null, indicating to return all properties.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.RecordsToRetrieve Property (BCL)

The RecordsToRetrieve property gets or sets the number of records to retrieve.

Definition

[Visual Basic .NET]
Public Property RecordsToRetrieve As System.Int32
[C#]
public System.Int32 RecordsToRetrieve {get; set;}

Property Value

The number of records to retrieve.

Remarks

The default value is -1, indicating all records.

Throws an ArgumentOutOfRangeException if the supplied value is less than -1.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.SortAscending Property (BCL)

The SortAscending property gets or sets a Boolean value that specifies whether to sort in ascending or descending order.

Definition

[Visual Basic .NET]
Public Property SortAscending As Boolean
[C#]
public Boolean SortAscending {get; set;}

Property Value

A Boolean value that specifies whether to sort in ascending or descending order.

Remarks

The default value is true (ascending).

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.SortProperty Property (BCL)

The SortProperty property gets or sets the property name of the property on which to sort results datasets.

Definition

[Visual Basic .NET]
Public Property SortProperty As System.String
[C#]
public System.String SortProperty {get; set;}

Property Value

The name of the property on which to sort results datasets.

Remarks

The default value is null, indicating results will not be sorted.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSearchOptions.StartingRecord Property (BCL)

The StartingRecord property gets the starting record property.

Definition

[Visual Basic .NET]
Public Property StartingRecord As System.Int32
[C#]
public System.Int32 StartingRecord {get; set;}

Property Value

The record number of the first record to return.

Remarks

The default value is 1, indicating to start with the first record.

Throws an ArgumentOutOfRangeException if the supplied value is less than 1.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection Class (BCL)

The CatalogSetCollection object retrieves information about all the CatalogSets objects in the Commerce Server Product Catalog System and caches it. It provides an enumerator and two indexors that can be used to retrieve the catalog set information.

Public Instance Constructor

Constructor | Description
CatalogSetCollection Constructor(CatalogContext, String) | Creates a new instance of the CatalogSetCollection class with the specified CatalogContext object.

Public Instance Methods

Method | Description
CopyTo(ReadOnlyStringCollection[], Int32) | Copies the CatalogSets objects to an array, starting at a particular array index.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
CatalogContext | Gets the CatalogContext object that was used to create this CatalogSetCollection object.
Count | Returns the count of this collection.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create this CatalogSetCollection object.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(String) | String that allows the indexer to access the list of catalogs for a given CatalogSetName value.
Item(Guid) | GUID that allows the indexer to access the list of catalogs by a given CatalogSetId value.
SyncRoot | Retrieves the object for synchronizing operations on this collection.

Protected Instance Methods

Method | Description
InitCatalogSetsData | Gets the CatalogSetID.Catalogs object and CatalogSetName.Catalogs object mapping information.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
CatalogSetCollection Constructor(CatalogContext, String) | Creates a new instance of the CatalogSetCollection class with the specified CatalogContext object.


CatalogSetCollection Constructor (CatalogContext, String) (BCL)

Use this method to create a new instance of the CatalogSetCollection class with the specified CatalogContext object.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogContext As CatalogContext, _
  ByVal connectionString As System.String _
)
[C#]
public CatalogSetCollection(
  CatalogContext catalogContext,
  System.String connectionString
);

Parameters

[Visual Basic .NET]
catalogContext
A CatalogContext object. This value may not be null.
connectionString
Defines the connection string to use. This value may not be null.
[C#]
catalogContext
A CatalogContext object. This value may not be null.
connectionString
Defines the connection string to use. This value may not be null.

Remarks

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(ReadOnlyStringCollection[], Int32) | Copies the CatalogSets objects to an array, starting at a particular array index.
GetEnumerator | Retrieves the enumerator on this collection.

Protected Instance Methods

Method | Description
InitCatalogSetsData | Gets the CatalogSetID.Catalogs and CatalogSetName.Catalogs object mapping information.


CatalogSetCollection.CopyTo (ReadOnlyStringCollection[], Int32) Method (BCL)

Use this method to copy the CatalogSets objects to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Public NotOverridable Public Sub CopyTo( _
  ByVal array As ReadOnlyStringCollection[], _
  ByVal index As System.Int32 _
)
[C#]
public sealed void CopyTo(
  ReadOnlyStringCollection[] array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Sets the array where elements are copied.
index
Starting element for the array where elements are copied.
[C#]
array
Sets the array where elements are copied.
index
Starting element for the array where elements are copied.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.GetEnumerator Method (BCL)

Use this method to retrieve the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

Handle to an IEnumerator interface implementation for this collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.InitCatalogSetsData Method (BCL)

Use this method to get the CatalogSetID.Catalogs and CatalogSetName.Catalogs object mapping information.

This method retrieves and caches the CatalogSetID To Catalogs mapping information and the CatalogSetName To Catalogs mapping information.

Definition

[Visual Basic .NET]
Protected Sub InitCatalogSetsData( _
)
[C#]
protected void InitCatalogSetsData(
);

Remarks

The CatalogContext object caches this information since it is frequently used in e-commerce sites. To refresh the list, call the Refresh method explicitly.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection Properties (BCL)

Public Instance Properties

Property | Description
CatalogContext | Gets the CatalogContext object that was used to create this CatalogSetCollection object.
Count | Returns the count of this collection.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create this CatalogSetCollection object.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(String) | Allows the indexer to access the list of catalogs for a given CatalogSetId name.
Item(Guid) | Allows the indexer to access the list of catalogs for a given CatalogSetId GUID identifier.
SyncRoot | Retrieves the object for synchronizing operations on this collection.


CatalogSetCollection.Count Property (BCL)

The Count property, which is read-only, returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of items contained in the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.CatalogContext Property (BCL)

The CatalogContext property is a read-only String that the CatalogContext object uses to create this CatalogSetCollection object.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get;}

Property Value

The CatalogContext object that was used to create this CatalogSetCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.DebugContext Property (BCL)

The DebugContext property is a read-only String that the DebugContext object for the CatalogContext object uses to create this CatalogSetCollection object.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

The DebugContext object for the CatalogContext object that was used to create this CatalogSetCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only String that indicates whether this collection supports synchronization.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean value indicating whether the collection supports synchronization.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.Item(String) Property (BCL)

The Item property is a read-only String that allows the indexer to access an item in the ReadOnlyStringCollection collection of catalogs for a given catalogSetName parameter.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Item( _
  ByVal catalogSetName As System.String _
) As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection Item(
  System.String catalogSetName
) {get;}

Parameters

[Visual Basic .NET]
catalogSetName
The name that identifies the catalog set.
[C#]
catalogSetName
The name that identifies the catalog set.

Property Value

A ReadOnlyStringCollection object containing the catalogs in the catalog set.

Remarks

The dictionary containing the CatalogSetName-to-Catalogs mapping is cached. To refresh this information, call the CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.Item(Guid) Property (BCL)

The Item property is a read-only String that allows the indexer to access the ReadOnlyStringCollection collection of catalogs for a given catalogSetID parameter.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Item( _
  ByVal catalogSetId As System.Guid _
) As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection Item(
  System.Guid catalogSetId
) {get;}

Parameters

[Visual Basic .NET]
catalogSetId
The System.Guid GUID that identifies the CatalogSet object.
[C#]
catalogSetId
The System.Guid GUID that identifies the CatalogSet object.

Property Value

A ReadOnlyStringCollection object containing the catalogs in the catalog set.

Remarks

The dictionary containing the CatalogSetName-to-Catalogs mapping is cached. To refresh this information, call CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CatalogSetCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only String that retrieves the object for synchronizing operations on this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

String that retrieves the object for synchronizing operations on this collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category Class (BCL)

Represents a category in a ProductCatalog object.

Protected Instance Constructor

Constructor | Description
Constructor(ProductCatalog, String) | Creates a new instance of the Category class representing a category of the specified ProductCatalog object.

Public Instance Methods

Method | Description
Dispose | Disposes of resources early.
GetCategoryProperties | Returns properties for this category. Both the properties that are present in the definition of this category, and the built-in properties are returned.
GetChildCategories(CatalogSearchOptions, Boolean, Int32) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories(CatalogSearchOptions, Boolean) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories(CatalogSearchOptions) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions, Boolean, Int32) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions, Boolean) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts | Gets the properties for the products in this category.
GetRelatedCategories | Gets the category relationships for this category.
GetRelatedProducts | Gets the product relationships for this category.

Public Instance Properties

Property | Description
AncestorCategoryNames | Gets the names of all categories that are above this category in the category hierarchy.
CanonicalCategoryPath | Gets the names of the categories that form a canonical path to this category. The first element in the array is a child of the root category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached. If a category does not have a primary parent category, then an arbitrary parent is chosen as the parent.
CatalogContext | Gets the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.
ChildCategoriesCount | Gets the number of categories that are immediate children of this category.
ChildCategoryNames | Gets the names of the categories that are immediate children of this category.
ChildProductsCount | Gets the number of products that are immediate children of this category.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.
Name | Gets the name of the category.
ParentCategoryNames | Gets the names of the categories that are immediate parents of this category in the category hierarchy.
PrimaryParentCategoryName | Gets the name of the primary parent category of this category.
ProductCatalog | Gets the ProductCatalog object for the catalog that contains this category.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Remarks

There is no public constructor of Category objects.

A Category object should be referenced only on the page in which it was created.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category Constructor (BCL)

Protected Instance Constructor

Constructor | Description
Constructor(ProductCatalog, String) | Creates a new instance of the Category class representing a category of the specified ProductCatalog object.


Category Constructor (ProductCatalog, String) (BCL)

Use this method to create a new instance of the Category class representing a category of the specified ProductCatalog object.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal catalog As ProductCatalog, _
  ByVal categoryName As System.String _
)
[C#]
protected Category(
  ProductCatalog catalog,
  System.String categoryName
);

Parameters

[Visual Basic .NET]
catalog
The ProductCatalog object that contains the Category object. This value may not be NULL.
categoryName
The name of the category. This may be NULL or String.Empty to indicate the root category.
[C#]
catalog
The ProductCatalog object that contains the Category object. This value may not be NULL.
categoryName
The name of the category. This may be NULL or String.Empty to indicate the root category.

Remarks

This constructor is provided so that the Category object can be subclassed.

Throws an ArgumentNullException if the catalog parameter is NULL.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Disposes of resources early.
GetCategoryProperties | Returns properties for this category. Both the properties that are present in the definition of this category, and the built-in properties are returned.
GetChildCategories(CatalogSearchOptions, Boolean, Int32) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories(CatalogSearchOptions, Boolean) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories(CatalogSearchOptions) | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetChildCategories | Gets property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions, Boolean, Int32) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions, Boolean) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts(CatalogSearchOptions) | Gets the properties for the products in this category using the searchOptions parameter to determine how the results are returned.
GetProducts | Gets the properties for the products in this category.
GetRelatedCategories | Gets the category relationships for this category.
GetRelatedProducts | Gets the product relationships for this category.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


Category.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
public protected virtual void CheckState(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.Dispose Method (BCL)

Releases resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the Object.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetCategoryProperties Method (BCL)

Use this method to return properties for this category. Both the properties that are present in the definition of this category, and the built-in properties are returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetCategoryProperties( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCategoryProperties(
);

Return Value

Returns a DataSet with a single DataTable. The DataTable contains a single DataRow containing the property information.

Remarks

Throws a CatalogException on failure.

If this category has been deleted from the database, this property throws an exception. For categories created in virtual catalogs, the category name returned in the DataSet will not contain the appended catalog name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetChildCategories Method (BCL)

Use this method to get the CategoryName, CatalogName, DefinitionName and DisplayName properties for the immediate child categories of this category.

Definition

[Visual Basic .NET]
Overridable Public Function GetChildCategories( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetChildCategories(
);

Return Value

The DataSet contains a single DataTable with the child category property data.

Remarks

Calling the GetChildCategories method is more efficient than calling any of the GetChildCategories methods with parameters.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetChildCategories (CatalogSearchOptions) Method (BCL)

Use this method to get property data for the immediate child categories of this category using the searchOptions parameter to determine how the results are returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetChildCategories( _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetChildCategories(
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifying how the data is to be returned. This value may be NULL.
[C#]
searchOptions
A CatalogSearchOptions object specifying how the data is to be returned. This value may be NULL.

Return Value

The DataSet contains a single DataTable with the child category property data.

Remarks

Calling the GetChildCategories method is more efficient than calling any of the GetChildCategories methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetChildCategories (CatalogSearchOptions, Boolean) Method (BCL)

Use this method to get property data for the child categories of this category using the parameter to determine how the results are returned. . If the recursive value is true, the child categories of child categories of this category are also returned, as are the grandchild categories, the great-grandchild categories, and so on. In fact, all underlying recursive categories are returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetChildCategories( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByVal recursive As System.Boolean _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetChildCategories(
  CatalogSearchOptions searchOptions,
  System.Boolean recursive
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
[C#]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.

Return Value

The DataSet contains a single DataTable with the child category property data.

Remarks

Calling the GetChildCategories method is more efficient than calling any of the GetChildCategories methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetChildCategories (CatalogSearchOptions, Boolean, Int32) Method (BCL)

Use this method to get the property data for child categories of this category using the CatalogSearchOptions parameter to determine how the results are returned. If the recursive value is true, the child categories of child categories of this category are also returned, as are the grandchild categories, the great-grandchild categories, and so on. In fact, all underlying recursive categories are returned.

The total number of categories meeting the criteria are returned in the totalRecords parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetChildCategories( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByVal recursive As System.Boolean, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetChildCategories(
  CatalogSearchOptions searchOptions,
  System.Boolean recursive,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
totalRecords
(out) A System.Int32 object that contains the total number of categories returned.
[C#]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
totalRecords
(out) A System.Int32 object that contains the total number of categories returned.

Return Value

The DataSet contains a single DataTable with the child category property data.

Remarks

Calling the GetChildCategories method is more efficient than calling any of the GetChildCategories methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetProducts Method (BCL)

Use this method to get all properties for all of the products in this category object.

Definition

[Visual Basic .NET]
Overridable Public Function GetProducts( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProducts(
);

Return Value

The DataSet with a single DataTable that contains the product properties.

Remarks

Calling the GetProducts method is more efficient than calling any of the GetProducts methods with parameters.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetProducts (CatalogSearchOptions) Method (BCL)

Use this method to get properties for the products in this category using the searchOptions parameter to determine how the results are returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetProducts( _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProducts(
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
[C#]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.

Return Value

A DataSet with a single DataTable that contains the product properties.

Remarks

Calling the GetProducts method is more efficient than calling any of the GetProducts methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetProducts (CatalogSearchOptions, Boolean) Method (BCL)

Use this method to get the properties for the products in this category using the searchOptions parameter to determine how the results are returned. If the recursive value is true, the products in child categories of this product are also returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetProducts( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByVal recursive As System.Boolean _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProducts(
  CatalogSearchOptions searchOptions,
  System.Boolean recursive
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
[C#]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.

Return Value

A DataSet with a single DataTable that contains the product properties.

Remarks

Calling the GetProducts method is more efficient than calling any of the GetProducts methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetProducts (CatalogSearchOptions, Boolean, Int32) Method (BCL)

Use this method to get the properties for the products in this category using the searchOptions parameter to determine how the results are returned. If the recursive value is true, the products in child categories of this product are also returned. As well, the products in grandchild categories, in great-grandchild categories, and so on, are all returned.

Definition

[Visual Basic .NET]
Overridable Public Function GetProducts( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByVal recursive As System.Boolean, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProducts(
  CatalogSearchOptions searchOptions,
  System.Boolean recursive,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
totalRecords
An integer containing the total number of products returned by the query.
[C#]
searchOptions
A CatalogSearchOptions object specifies how the data is to be returned. This value may be NULL.
recursive
A System.Boolean that indicates whether the search is recursive. A value of true indicates that the search is recursive.
totalRecords
An integer containing the total number of products returned by the query.

Return Value

A DataSet with a single DataTable that contains the product properties.

Remarks

Calling the GetProducts method is more efficient than calling any of the GetProducts methods with parameters.

Throws a CatalogException on failure.

Because this method internally calls the Category.Search method, some error messages will report that the Search method has failed even though the Search method was not explicitly called.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetRelatedCategories Method (BCL)

Use this method to get the category relationships for this category.

Definition

[Visual Basic .NET]
Overridable Public Function GetRelatedCategories( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRelatedCategories(
);

Return Value

A DataSet that contains a single DataTable with the following columns: CategoryName, RelationshipName, RelationshipDescription, and TargetCatalog. All of these columns are of the type String.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.GetRelatedProducts Method (BCL)

Use this method to get the product relationships for this category.

Definition

[Visual Basic .NET]
Overridable Public Function GetRelatedProducts( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRelatedProducts(
);

Return Value

A DataSet that contains a single DataTable with the following columns: ProductId , RelationshipName , RelationshipDescription , and TargetCatalog. All of these columns are of type String.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category Properties (BCL)

Public Instance Properties

Property | Description
AncestorCategoryNames | Gets the names of all the categories that are above this category in the category hierarchy.
CanonicalCategoryPath | Gets the names of the categories that form a canonical path to this category. The first element in the array is a child of the root category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached. If a category does not have a primary parent category, then an arbitrary parent is chosen as the parent.
CatalogContext | Gets the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.
ChildCategoriesCount | Gets the number of categories that are immediate children of this category.
ChildCategoryNames | Gets the names of the categories that are immediate children of this category.
ChildProductsCount | Gets the number of products that are immediate children of this category.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.
Name | Gets the name of the category.
ParentCategoryNames | Gets the names of the categories that are immediate parents of this category in the category hierarchy.
PrimaryParentCategoryName | Gets the name of the primary parent category of this category.
ProductCatalog | Gets the ProductCatalog object for the catalog that contains this category.


Category.AncestorCategoryNames Property (BCL)

The AncestorCategoryNames property is a read-only String that gets the names of all categories that are above this category in the category hierarchy.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property AncestorCategoryNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection AncestorCategoryNames {get;}

Property Value

A ReadOnlyStringCollection that contains the categories.

Remarks

If this category is a root category, the returned array is empty.

Throws a CatalogException on failure.

The list of ancestor category names is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.CanonicalCategoryPath Property (BCL)

The CanonicalCategoryPath property is a read-only String that gets the names of the categories that form a canonical path to this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CanonicalCategoryPath As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection CanonicalCategoryPath {get;}

Property Value

A ReadOnlyStringCollection that contains the categories.

Remarks

The first element in the array is a child of the root category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached. If a category does not have a primary parent category, then an arbitrary parent is chosen as the parent. If this category is a root category, the returned array is empty.

In case of parent ambiguity, it chooses an arbitrary parent to be the canonical parent.

This list is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.CatalogContext Property (BCL)

The CatalogContext property is a read-only String that gets the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get;}

Property Value

The CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.ChildCategoriesCount Property (BCL)

The ChildCategoriesCount property is a read-only String that gets the number of categories that are immediate children of this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ChildCategoriesCount As System.Int32
[C#]
public virtual System.Int32 ChildCategoriesCount {get;}

Property Value

A System.Int32 that contains the count.

Remarks

Throws a CatalogException on failure.

This information is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.ChildCategoryNames Property (BCL)

The ChildCategoryNames property is a read-only String that gets the names of the categories that are immediate children of this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ChildCategoryNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection ChildCategoryNames {get;}

Property Value

A ReadOnlyStringCollection object that contains the child category names.

Remarks

Throws a CatalogException on failure. The list of child category names is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.ChildProductsCount Property (BCL)

The ChildProductsCount property is a read-only String that gets the number of products that are immediate children of this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ChildProductsCount As System.Int32
[C#]
public virtual System.Int32 ChildProductsCount {get;}

Property Value

A System.Int32 that contains the count.

Remarks

Throws a CatalogException on failure.

This information is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.DebugContext Property (BCL)

The DebugContext property is a read-only String that gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

The DebugContext object that gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this category.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.Name Property (BCL)

The Name property is a read-only String that gets the name of the category.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

A System.String object that contains the name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.ParentCategoryNames Property (BCL)

The ParentCategoryNames property is a read-only String that gets the names of the categories that are immediate parents of this category in the category hierarchy.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ParentCategoryNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection ParentCategoryNames {get;}

Property Value

A ReadOnlyStringCollection object that contains the parent category names.

Remarks

If this category is a root category, the returned array is empty. The list of parent category names is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.PrimaryParentCategoryName Property (BCL)

The PrimaryParentCategoryName property is a read-only String that gets the name of the primary parent category of this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PrimaryParentCategoryName As System.String
[C#]
public virtual System.String PrimaryParentCategoryName {get;}

Property Value

A System.String object that contains the name of the primary parent.

Remarks

The primary parent category name is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Category.ProductCatalog Property (BCL)

The ProductCatalog property is a read-only String that gets the ProductCatalog object for the catalog that contains this category.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProductCatalog As ProductCatalog
[C#]
public ProductCatalog ProductCatalog {get;}

Property Value

The ProductCatalog object that gets the ProductCatalog object for the catalog that contains this category.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Class (BCL)

Exception thrown when the category is not found.

Public Instance Constructor

Constructor | Description
CategoryNotFoundException Constructor | Creates a new instance of the Microsoft.CommerceServer.Runtime.dll class.
CategoryNotFoundException Constructor (String) | Creates a new instance of the CategoryNotFoundException class with the specified message.
CategoryNotFoundException Constructor (String, String) | Creates a new instance of the CategoryNotFoundException class with the specified catalog name and category name.
CategoryNotFoundException Constructor (String, Exception) | Creates a new instance of the CategoryNotFoundException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CategoryNotFoundException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CategoryNotFoundException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
CatalogName | Gets the CatalogName.
CategoryName | Gets the CategoryName.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CategoryNotFoundException Constructor | Creates a new instance of the Microsoft.CommerceServer.Runtime.dll class.
CategoryNotFoundException Constructor (String) | Creates a new instance of the CategoryNotFoundException class with the specified message.
CategoryNotFoundException Constructor (String, String) | Creates a new instance of the CategoryNotFoundException class with the specified catalog name and category name.
CategoryNotFoundException Constructor (String, Exception) | Creates a new instance of the CategoryNotFoundException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CategoryNotFoundException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CategoryNotFoundException class with the specified serialization information and streaming context.


CategoryNotFoundException Constructor (BCL)

Use this method to create a new instance of the CategoryNotFoundException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CategoryNotFoundException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CategoryNotFoundException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CategoryNotFoundException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Constructor (String) (BCL)

Use this method to create a new instance of the CategoryNotFoundException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CategoryNotFoundException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CategoryNotFoundException object.
[C#]
message
A System.String containing the message to include in the CategoryNotFoundException object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Constructor (String, String) (BCL)

Use this method to create a new instance of the CategoryNotFoundException class with the specified catalog name and category name.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogName As System.String, _
  ByVal categoryName As System.String _
)
[C#]
public CategoryNotFoundException(
  System.String catalogName,
  System.String categoryName
);

Parameters

[Visual Basic .NET]
catalogName
A System.String containing the catalog name.
categoryName
A System.String containing the category name.
[C#]
catalogName
A System.String containing the catalog name.
categoryName
A System.String containing the category name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CategoryNotFoundException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CategoryNotFoundSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CategoryNotFoundException object.
inner
The inner System.Exception object.
[C#]
message
A System.String containing the message to include in the CategoryNotFoundException object.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CategoryNotFoundException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException Properties (BCL)

Public Instance Properties

Property | Description
CatalogName | Gets the CatalogName.
CategoryName | Gets the CategoryName.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CategoryNotFoundException.CatalogName Property (BCL)

The CatalogName property gets the name of the catalog.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogName As System.Object
[C#]
public System.Object CatalogName {get;}

Property Value

A System.String that contains the name of the catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CategoryNotFoundException.CategoryName Property (BCL)

The CategoryName property gets the name of the category.

Definition

[Visual Basic .NET]
Public ReadOnly Property CategoryName As System.Object
[C#]
public System.Object CategoryName {get;}

Property Value

A System.String that contains the name of the category.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCatalogModule Class (BCL)

The CommerceCatalogModule class is responsible for creating the default CatalogContext object for the site.

Public Instance Constructor

Constructor | Description
CommerceCatalogModule Constructor | Creates a new instance of the CommerceCatalogModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Event handler for HttpApplication BeginRequest events.

Public Instance Properties

Property | Description
IsInitialized(Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initalialized.

Public Static (Shared) Properties

Property | Description
CatalogContext | Gets the default CatalogContext instance created by the module.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCatalogModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceCatalogModule Constructor | Creates a new instance of the CommerceCatalogModule class.


CommerceCatalogModule Constructor (BCL)

Use this method to create a new instance of the CommerceCatalogModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceCatalogModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCatalogModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Event handler for HttpApplication BeginRequest events.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceCatalogModule.Init (HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The current HttpApplication instance.
[C#]
appInstance
The current HttpApplication instance.

Remarks

Subscribes to BeginRequest events.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCatalogModule.OnBeginRequest (Object, EventArgs) Method (BCL)

Use this method to handle HttpApplication BeginRequest events.

Definition

[Visual Basic .NET]
Public Sub OnBeginRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnBeginRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
The HttpApplication instance that sent the event.
e
EventArgs containing events.
[C#]
sender
The HttpApplication instance that sent the event.
e
EventArgs containing events.

Return Value

This method sets the CatalogContext member of the current CommerceContext object.

Remarks

Sets the CatalogContext member of the current CommerceContext object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceCatalogModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized(Inherited from CommerceModule) | Gets a Boolean that is set to true when the CommerceModule class instance has been initalialized.

Public Static (Shared) Properties

Property | Description
CatalogContext | Gets the default CatalogContext instance created by the module.


CommerceCatalogModule.CatalogContext Property (BCL)

The CatalogContext property gets the default CatalogContext instance created by the module.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get;}

Property Value

The default CatalogContext instance created by the module.

Remarks

The value will be null if the CommerceCatalogModule object was not configured in the web.config file. ASP.NET pages should reference this through the CommerceContext.Current.CatalogSystem property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product Class (BCL)

Represents a product in a product catalog. A Product object should be referenced only on the page in which it was created.

Protected Instance Constructor

Constructor | Description
Product Constructor(ProductCatalog, String) | Creates a new instance of the Product class.

Public Instance Methods

Method | Description
Dispose | Releases the resources used by this object.
GetProductProperties | Gets the properties for the product.
GetRelatedCategories | Gets the category relationships for this product.
GetRelatedProducts | Gets the product relationships for this product.
GetVariantProperties(Object) | Returns the properties for a specific product variant of this product.
GetVariants(CatalogSearchOptions) | Returns the properties for all product variants of this product in the sort order specified in the searchOptions parameter.
GetVariants | Returns the properties for all product variants of this product in the sort order specified in the searchOptions parameter.

Public Instance Properties

Property | Description
AncestorCategoryNames | Gets the names of all categories that are above this product in the category hierarchy.
CanonicalCategoryPath | Gets the names of the categories that form a canonical path to this product. The first element in the array is a child of the "root" category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached.
CatalogContext | Gets the CatalogContext object that was used to create the ProductCatalog object to which this Product object belongs.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this product.
ParentCategoryNames | Gets the names of the categories that are immediate parents of this product in the category hierarchy.
PrimaryParentCategoryName | The primary parent category name is cached. Call the CatalogContextRefresh method to explicitly refresh this cached data.
ProductCatalog | Gets the ProductCatalog object that contains this product.
ProductId | Gets the product ID of this product.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases the managed resources.

Remarks

There is no public constructor for the Product object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product Constructor (BCL)

Protected Instance Constructor

Constructor | Description
Product Constructor(ProductCatalog, String) | Creates a new instance of the Product class.


Product Constructor (ProductCatalog, String) (BCL)

Use this method to create a new instance of the Product class.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal catalog As ProductCatalog, _
  ByVal productId As System.String _
)
[C#]
rotected Product(
  ProductCatalog catalog,
  System.String productId
);

Parameters

[Visual Basic .NET]
catalog
The product catalog. May not be null.
productId
The product ID field. May not be null.
[C#]
catalog
The product catalog. May not be null.
productId
The product ID field. May not be null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases the resources used by this object.
GetProductProperties | Gets the properties for the product.
GetRelatedCategories | Gets the category relationships for this product.
GetRelatedProducts | Gets the product relationships for this product.
GetVariantProperties(Object) | Returns the properties for a specific product variant of this product.
GetVariants(CatalogSearchOptions) | Returns the properties for all product variants of this product in the sort order specified in the searchOptions parameter.
GetVariants | Returns the properties for all product variants of this product in the sort order specified in the searchOptions parameter.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases the managed resources.


Product.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the Product.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and optionally to release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this method was called from the Dispose method, false if this method was called from the finalizer.
[C#]
disposing
True if this method was called from the Dispose method, false if this method was called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetProductProperties Method (BCL)

Use this method to get the properties for the product.

Definition

[Visual Basic .NET]
Overridable Public Function GetProductProperties( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProductProperties(
);

Return Value

A DataSet containing a single DataTable with the product properties in it.

Remarks

Throws a CatalogException on error.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetRelatedCategories Method (BCL)

Use this method to get the category relationships for this product.

Definition

[Visual Basic .NET]
Overridable Public Function GetRelatedCategories( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRelatedCategories(
);

Return Value

A DataSet containing a single DataTable with the following columns: CategoryName, RelationshipName, RelationshipDescription, TargetCatalog.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetRelatedProducts Method (BCL)

Use this method to get the product relationships for this product.

Definition

[Visual Basic .NET]
Overridable Public Function GetRelatedProducts( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRelatedProducts(
);

Return Value

A DataSet containing a single DataTable with the following columns: ProductId, RelationshipName, RelationshipDescription, TargetCatalog.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetVariantProperties (Object) Method (BCL)

Use this method to return the properties for a specific product variant of this product.

Definition

[Visual Basic .NET]
Overridable Public Function GetVariantProperties( _
  ByVal variantId As System.Object _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetVariantProperties(
  System.Object variantId
);

Parameters

[Visual Basic .NET]
variantId
The ID of the variant. May not be null.
[C#]
variantId
The ID of the variant. May not be null.

Return Value

A DataSet containing a single DataTable with the variant properties.

Remarks

Throws an ArgumentNullException if the variantId parameter is null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetVariants Method (BCL)

Use this method to return the properties for all product variants of this product.

Definition

[Visual Basic .NET]
Overridable Public Function GetVariants( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetVariants(
);

Return Value

A DataSet containing a single DataTable with the variant properties.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.GetVariants (CatalogSearchOptions) Method (BCL)

Use this method to return the properties for all product variants of this product in the sort order specified in the searchOptions parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetVariants( _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetVariants(
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchOptions
SearchOptions object specifying sort order.
[C#]
searchOptions
SearchOptions object specifying sort order.

Return Value

A DataSet containing a single DataTable with the variant properties in the sort order specified by searchOptions.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product Properties (BCL)

Public Instance Properties

Property | Description
AncestorCategoryNames | Gets the names of all categories that are above this product in the category hierarchy.
CanonicalCategoryPath | Gets the names of the categories that form a canonical path to this product. The first element in the array is a child of the "root" category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached.
CatalogContext | Gets the CatalogContext object that was used to create the ProductCatalog object to which this Product object belongs.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this product.
ParentCategoryNames | Gets the names of the categories that are immediate parents of this product in the category hierarchy.
PrimaryParentCategoryName | Gets the name of the primary parent category of this product.
ProductCatalog | Gets the ProductCatalog object that contains this product.
ProductId | Gets the product ID of this product.


Product.AncestorCategoryNames Property (BCL)

The AncestorCategoryNames property gets the names of all categories that are above this product in the category hierarchy.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property AncestorCategoryNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection AncestorCategoryNames {get;}

Property Value

ReadOnlyStringCollection object that contains the names of all categories that are above this product in the category hierarchy.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

If this product is a root product, the returned array is empty.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.CanonicalCategoryPath Property (BCL)

The CanonicalCategoryPath property gets the names of the categories that form a canonical path to this product. The first element in the array is a child of the "root" category. The canonical path of any category is formed by looking up the primary parent of this category, the primary parent of that category, and so on until the root of the hierarchy is reached.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property CanonicalCategoryPath As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection CanonicalCategoryPath {get;}

Property Value

ReadOnlyStringCollection object that contains the names of the categories that form a canonical path to this product.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

If this product is a root product, the returned array is empty.

Throws a CatalogException on failure.

In case of parent ambiguity, it arbitrarily chooses a random parent to be the canonical parent. This iterates through the parent chain and hence it can be a costly method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.CatalogContext Property (BCL)

The CatalogContext property gets the CatalogContext object that was used to create the ProductCatalog object to which this Product object belongs.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get;}

Property Value

CatalogContext object that was used to create the ProductCatalog object to which this Product object now belongs.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.DebugContext Property (BCL)

The DebugContext property gets the DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this product.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

DebugContext object for the CatalogContext object that was used to create the ProductCatalog object for the catalog that contains this product.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.ParentCategoryNames Property (BCL)

The ParentCategoryNames property gets the names of the categories that are immediate parents of this product in the category hierarchy.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property ParentCategoryNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection ParentCategoryNames {get;}

Property Value

ReadOnlyStringCollection that contains the names of the categories that are immediate parents of this product in the category hierarchy.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

If this product is a root product, the returned array is empty.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.PrimaryParentCategoryName Property (BCL)

The PrimaryParentCategoryName property is a read-only string that gets the name of the primary parent category of this category.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PrimaryParentCategoryName As System.String
[C#]
public virtual System.String PrimaryParentCategoryName {get;}

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.ProductCatalog Property (BCL)

The ProductCatalog property gets the ProductCatalog object that contains this product.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProductCatalog As ProductCatalog
[C#]
public ProductCatalog ProductCatalog {get;}

Property Value

ProductCatalog object that contains this product.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Product.ProductId Property (BCL)

The ProductId property gets the product ID of this product.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProductId As System.String
[C#]
public System.String ProductId {get;}

Property Value

String that contains the product ID of the Product object.

Remarks

The value of this property is a copy of the value of the IdentifyingProductProperty property of the catalog containing this product.

The value of this property will always be "ProductID" for a virtual catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog Class (BCL)

Represents a catalog in the Commerce Server 2002 Product Catalog System. A ProductCatalog object should be referenced only on the page in which it was created.

Protected Instance Constructor

Constructor | Description
ProductCatalog Constructor(String, CatalogContext) | Creates a new instance of the ProductCatalog class.

Public Instance Methods

Method | Description
AddSpecificationSearchClause(String, String) | Adds a clause to a specification search handle and returns the updated handle.
BeginSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Begins a specification search of the catalog and get the property values available for specification.
Dispose | Releases the resources used by this object.
GetCatalogAttributes | Gets all the attributes of the catalog.
GetCategory(String) | Retrieves a Category object from the catalog.
GetProduct(String) | Retrieves a Product object from the catalog.
GetProductVariant(String, String) | Retrieves the information for a product variant.
GetRootCategories(CatalogSearchOptions, Int32) | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootCategories(CatalogSearchOptions) | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootCategories | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts(CatalogSearchOptions, Int32) | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts(CatalogSearchOptions) | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetSpecificationSearchClauses(String) | Gets the array of specification search clauses represented by the specification search handle.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
RemoveSpecificationSearchClause(String) | Removes the last specification search clause from the search handle.

Public Instance Properties

Property | Description
ActiveLanguage | Gets language in which data returned by this catalog object should be returned.
CatalogContext | Gets the CatalogContext object that was used to create this ProductCatalog object.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create this ProductCatalog object.
DefaultLanguage | Gets the default language for this catalog.
IdentifyingProductProperty | Gets the name of the property that identifies products in this catalog.
IdentifyingVariantProperty | Gets the name of the property that identifies variants in this catalog .
Languages | Gets all of the available languages for this catalog as an array of strings.
Name | Gets the name of the catalog.
PropertyNames | Gets the names of all properties defined for the catalog
SpecificationSearchableCategories | Gets a list of property names for properties that are searchable by the SpecificationSearch objects.

Protected Instance Constructor

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases the managed resources.

Remarks

There are no public constructors for the ProductCatalog object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog Constructor (BCL)

Protected Instance Constructor

Constructor | Description
ProductCatalog Constructor(String, CatalogContext) | Creates a new instance of the ProductCatalog class.


ProductCatalog Constructor (String, CatalogContext) (BCL)

Use this method to create a new instance of the ProductCatalog class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogName As System.String, _
  ByVal catalogContext As CatalogContext _
)
[C#]
public ProductCatalog(
  System.String catalogName,
  CatalogContext catalogContext
);

Parameters

[Visual Basic .NET]
catalogName
The name of the product catalog. May not be null.
catalogContext
The CatalogContext instance that is creating this ProductCatalog object. May not be null.
[C#]
catalogName
The name of the product catalog. May not be null.
catalogContext
The CatalogContext instance that is creating this ProductCatalog object. May not be null.

Remarks

Throws an ArgumentNullException if either parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog Methods (BCL)

Public Instance Methods

Method | Description
AddSpecificationSearchClause(String, String) | Adds a clause to a specification search handle and returns the updated handle.
BeginSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Begins a specification search of the catalog and gets the property values available for specification.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases the managed resources.
GetCatalogAttributes | Gets all attributes of the catalog.
GetCategory(String) | Retrieves a Category object from the catalog.
GetProduct(String) | Retrieves a Product object from the catalog.
GetProductVariant(String, String) | Retrieves the information for a product variant.
GetRootCategories(CatalogSearchOptions, Int32) | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootCategories(CatalogSearchOptions) | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootCategories | Gets the root categories in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts(CatalogSearchOptions, Int32) | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts(CatalogSearchOptions) | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetRootProducts | Gets the root products in the catalog and returns the results according to the searchOptions parameter.
GetSpecificationSearchClauses(String) | Gets the array of specification search clauses represented by the specification search handle.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
GuaranteedSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Performs a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[], CatalogSearchOptions) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
PerformSpecificationSearch(String, SpecificationSearchPropertyResult[]) | Performs a specification search and returns the matching results. The updated property values are returned through the propertyValues parameter.
RemoveSpecificationSearchClause(String) | Removes the last specification search clause from the search handle.

Protected Instance Constructor

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this object and optionally releases the managed resources.


ProductCatalog.AddSpecificationSearchClause (String, String) Method (BCL)

Use this method to add a clause to a specification search handle and return the updated handle.

Definition

[Visual Basic .NET]
Overridable Public Function AddSpecificationSearchClause( _
  ByVal clauseToAdd As System.String, _
  ByVal searchHandle As System.String _
) As System.String
[C#]
public virtual System.String AddSpecificationSearchClause(
  System.String clauseToAdd,
  System.String searchHandle
);

Parameters

[Visual Basic .NET]
clauseToAdd
The TSQL Where clause to add. May not be null.
searchHandle
The existing specification search handle. May not be null.
[C#]
clauseToAdd
The TSQL Where clause to add. May not be null.
searchHandle
The existing specification search handle. May not be null.

Return Value

The updated specification search handle.

Remarks

Throws an ArgumentNullException if either argument is null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.BeginSpecificationSearch (String, SpecificationSearchPropertyResult[]) Method (BCL)

Use this method to begin a specification search of the catalog and get the property values available for specification.

Definition

[Visual Basic .NET]
Overridable Public Function BeginSpecificationSearch( _
  ByVal categoryName As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] _
) As System.String
[C#]
public virtual System.String BeginSpecificationSearch(
  System.String categoryName,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues
);

Parameters

[Visual Basic .NET]
categoryName
The category to search. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
[C#]
categoryName
The category to search. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.

Return Value

The specification search handle.

Remarks

Throws an ArgumentNullException if the catalogContext parameter is null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.Dispose Method (BCL)

Use this method to release the resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the ProductCatalog.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally to release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this method was called from the Dispose method, false if this method was called from the finalizer.
[C#]
disposing
True if this method was called from the Dispose method, false if this method was called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetCatalogAttributes Method (BCL)

Use this method to get all attributes of the catalog.

Definition

[Visual Basic .NET]
Overridable Public Function GetCatalogAttributes( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetCatalogAttributes(
);

Return Value

A DataSet containing a single DataTable with the catalog attribute data.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetCategory (String) Method (BCL)

Use this method to retrieve a Category object from the catalog.

Definition

[Visual Basic .NET]
Overridable Public Function GetCategory( _
  ByVal categoryName As System.String _
) As Category
[C#]
public virtual Category GetCategory(
  System.String categoryName
);

Parameters

[Visual Basic .NET]
categoryName
The identifier of the category to return. A null value indicates to return the root category.
[C#]
categoryName
The identifier of the category to return. A null value indicates to return the root category.

Return Value

The Category object.

Remarks

When used in the context of the Commerce Server 2002 .NET Application Framework, a Category object is valid only for the request on which it was created. It will be automatically disposed in the OnEndRequest handler.

Throws a CategoryNotFoundException if the category does not exist in the catalog.

Throws a CatalogException if there is a failure in the COM layer.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetProduct (String) Method (BCL)

Use this method to retrieve a Product object from the catalog.

Definition

[Visual Basic .NET]
Overridable Public Function GetProduct( _
  ByVal productId As System.String _
) As Product
[C#]
public virtual Product GetProduct(
  System.String productId
);

Parameters

[Visual Basic .NET]
productId

The identifier of the product to return. May not be null.
[C#]
productId

The identifier of the product to return. May not be null.

Return Value

The Product object.

Remarks

When used in the context of the Commerce Server 2002 .NET Application Framework, a Product object is valid only for the request on which it was created. It will be automatically disposed in the OnEndRequest handler.

Throws an ArgumentNullException if the catalogContext parameter is null.

Throws a ProductNotFoundException if the product does not exist in the catalog.

Throws a CatalogException if there is a failure in the COM layer.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetProductVariant (String, String) Method (BCL)

Use this method to retrieve the information for a product variant.

Definition

[Visual Basic .NET]
Overridable Public Function GetProductVariant( _
  ByVal productId As System.String, _
  ByVal variantId As System.String _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetProductVariant(
  System.String productId,
  System.String variantId
);

Parameters

[Visual Basic .NET]
productId
The product ID. May not be null.
variantId
The variant ID. May not be null.
[C#]
productId
The product ID. May not be null.
variantId
The variant ID. May not be null.

Return Value

A DataSet containing a single DataTable with the product variant properties.

Remarks

Throws a CatalogException on failure.

Throws an ArgumentNullException if either parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootCategories Method (BCL)

Use this method to return all properties for the root categories in this catalog.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootCategories( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootCategories(
);

Return Value

A DataSet with a single DataTable containing the category information.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootCategories (CatalogSearchOptions) Method (BCL)

Use this method to get the root categories in the catalog and return the results according to the searchOptions parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootCategories( _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootCategories(
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchOptions
The CatalogSearchOptions object. May be null.
[C#]
searchOptions
The CatalogSearchOptions object. May be null.

Return Value

A DataSet with a single DataTable containing the root products.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootCategories (CatalogSearchOptions, Int32) Method (BCL)

Use this method to return the properties of the root categories of this catalog and return results according to the searchOptions parameter, and to return the total number of root products in the catalog in the totalRecords parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootCategories( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootCategories(
  CatalogSearchOptions searchOptions,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
The total number of root products.
[C#]
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
The total number of root products.

Return Value

A DataSet with a single DataTable containing the root categories.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootProducts Method (BCL)

Use this method to get all the root products in the catalog and return all of the properties for those products.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootProducts( _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootProducts(
);

Return Value

A DataSet with a single DataTable containing the root products.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootProducts (CatalogSearchOptions) Method (BCL)

Use this method to get the root products in the catalog and return the results according to the searchOptions parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootProducts( _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootProducts(
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchOptions
The CatalogSearchOptions object. May be null.
[C#]
searchOptions
The CatalogSearchOptions object. May be null.

Return Value

A DataSet with a single DataTable containing the root products.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetRootProducts (CatalogSearchOptions, Int32) Method (BCL)

Use this method to get the root products in the catalog and return the results according to the searchOptions parameter, and to return the total number of root products in the catalog in the totalRecords parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GetRootProducts( _
  ByVal searchOptions As CatalogSearchOptions, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GetRootProducts(
  CatalogSearchOptions searchOptions,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
The total number of root products.
[C#]
searchOptions
The CatalogSearchOptions object. May be null.
totalRecords
The total number of root products.

Return Value

A DataSet with a single DataTable containing the root products.

Remarks

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GetSpecificationSearchClauses (String) Method (BCL)

Use this method to get the array of specification search clauses represented by the specification search handle.

Definition

[Visual Basic .NET]
Overridable Public Function GetSpecificationSearchClauses( _
  ByVal searchHandle As System.String _
) As System.String[]
[C#]
public virtual System.String[] GetSpecificationSearchClauses(
  System.String searchHandle
);

Parameters

[Visual Basic .NET]
searchHandle
The specification search handle. May not be null.
[C#]
searchHandle
The specification search handle. May not be null.

Return Value

An array of strings containing the specification search clauses.

Remarks

Throws an ArgumentNullException if the catalogContext parameter is null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GuaranteedSpecificationSearch (String, SpecificationSearchPropertyResult[]) Method (BCL)

Use this method to perform a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GuaranteedSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] _
) As System.Data.DataSet
[C#]
public virtual DataSet GuaranteedSpecificationSearch(ref
  String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
[C#]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.

Return Value

A DataSet with a single DataTable containing the search results.

Remarks

Tje GuaranteedSpecificationSearch method removes search clauses from the handle one at a time until some results are returned.

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GuaranteedSpecificationSearch (String, SpecificationSearchPropertyResult[], CatalogSearchOptions) Method (BCL)

Use this method to perform a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter. The searchOptions parameter can be used to determine which class of catalog objects to return, the list of properties to return, and the number of records wanted.

Definition

[Visual Basic .NET]
Overridable Public Function GuaranteedSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[], _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GuaranteedSpecificationSearch(
  System.String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues,
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.
[C#]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.

Return Value

A DataSet with a single DataTable containing the search results.

Remarks

The GuaranteedSpecificationSearch method removes search clauses from the handle one at a time until some results are returned.

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.GuaranteedSpecificationSearch (String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) Method (BCL)

Use this method to perform a specification search guaranteed to return results if any products exist in the category being searched. The updated property values are returned through the propertyValues parameter. The searchOptions parameter can be used to determine which class of catalog objects to return, the list of properties to return, and the number of records wanted. The total number of matching records is returned through the totalRecords parameter.

Definition

[Visual Basic .NET]
Overridable Public Function GuaranteedSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[], _
  ByVal searchOptions As CatalogSearchOptions, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet GuaranteedSpecificationSearch(
  System.String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues,
  CatalogSearchOptions searchOptions,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions objectspecifying how results should be returned. May be null.
totalRecords
The total number of matching records.
[C#]
searchHandle
The search handle, updated on output. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.
totalRecords
The total number of matching records.

Return Value

A DataSet with a single DataTable containing the search results.

Remarks

The GuaranteedSpecificationSearch method removes search clauses from the handle one at a time until some results are returned.

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.PerformSpecificationSearch (String, SpecificationSearchPropertyResult[]) Method (BCL)

Use this method to perform a specification search and return the matching results. The updated property values are returned via the propertyValues parameter.

Definition

[Visual Basic .NET]
Overridable Public Function PerformSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet PerformSpecificationSearch(
  System.String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
[C#]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.

Return Value

A DataSet with a single DataTable containing the search results.

Remarks

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.PerformSpecificationSearch (String, SpecificationSearchPropertyResult[], CatalogSearchOptions) Method (BCL)

Use this method to perform a specification search and return the matching results. The updated property values are returned through the propertyValues parameter. The searchOptions parameter can be used to determine which class of catalog objects to return, the list of properties to return, and the number of records required.

Definition

[Visual Basic .NET]
Overridable Public Function PerformSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[], _
  ByVal searchOptions As CatalogSearchOptions _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet PerformSpecificationSearch(
  System.String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues,
  CatalogSearchOptions searchOptions
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.
[C#]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.

Return Value

A DataSet with a single DataTable containing the search results.

Remarks

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.PerformSpecificationSearch (String, SpecificationSearchPropertyResult[], CatalogSearchOptions, Int32) Method (BCL)

Use this method to perform a specification search and return the matching results. The updated property values are returned through the totalRecords parameter. The searchOptions parameter can be used to determine which class of catalog objects to return, the list of properties to return, and the number of records wanted. The total number of matching records is returned through the totalRecords parameter.

Definition

[Visual Basic .NET]
Overridable Public Function PerformSpecificationSearch( _
  ByVal searchHandle As System.String, _
  ByRef propertyValues As Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[], _
  ByVal searchOptions As CatalogSearchOptions, _
  ByRef totalRecords As System.Int32 _
) As System.Data.DataSet
[C#]
public virtual System.Data.DataSet PerformSpecificationSearch(
  System.String searchHandle,
  out Microsoft.CommerceServer.Runtime.Catalog.SpecificationSearchPropertyResult[] propertyValues,
  CatalogSearchOptions searchOptions,
  out System.Int32 totalRecords
);

Parameters

[Visual Basic .NET]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.
totalRecords
The total number of matching records.
[C#]
searchHandle
The search handle. May not be null.
propertyValues
An array of SpecificationSearchPropertyResult objects.
searchOptions
The CatalogSearchOptions object specifying how results should be returned. May be null.
totalRecords
The total number of matching records.

Return Value

A DataSet with a single DataTable containing the search results

Remarks

Throws a CatalogException on failure.

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.RemoveSpecificationSearchClause (String) Method (BCL)

Use this method to remove the last specification search clause from the search handle.

Definition

[Visual Basic .NET]
Overridable Public Function RemoveSpecificationSearchClause( _
  ByVal searchHandle As System.String _
) As System.String
[C#]
public virtual System.String RemoveSpecificationSearchClause(
  System.String searchHandle
);

Parameters

[Visual Basic .NET]
searchHandle
The specification search handle. Updated on output. May not be null.
[C#]
searchHandle
The specification search handle. Updated on output. May not be null.

Return Value

A string containing the clause that was removed.

Remarks

Throws an ArgumentNullException if the catalogContext parameter is null.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog Properties (BCL)

Public Instance Properties

Property | Description
ActiveLanguage | Gets the language in which data returned by this catalog object should be returned.
CatalogContext | Gets the CatalogContext object that was used to create this ProductCatalog object.
DebugContext | Gets the DebugContext object for the CatalogContext object that was used to create this ProductCatalog object.
DefaultLanguage | Gets the default language for this catalog.
IdentifyingProductProperty | Gets the name of the property that identifies products in this catalog.
IdentifyingVariantProperty | Gets the name of the property that identifies variants in this catalog.
Languages | Gets all of the available languages for this catalog as an array of strings.
Name | Gets the name of the catalog.
PropertyNames | Gets the names of all properties defined for the catalog.
SpecificationSearchableCategories | Gets the list of property names for properties that are searchable by the SpecificationSearch objects.


ProductCatalog.ActiveLanguage Property (BCL)

The ActiveLanguage property gets the language in which the data returned by this catalog object should be returned.

Definition

[Visual Basic .NET]
Overridable Public Property ActiveLanguage As System.String
[C#]
public virtual System.String ActiveLanguage {get; set;}

Property Value

Language in which in which data returned by this catalog object should be returned.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.CatalogContext Property (BCL)

The CatalogContext property gets the CatalogContext object that was used to create this ProductCatalog object.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get;}

Property Value

CatalogContext object that was used to create this ProductCatalog object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.DebugContext Property (BCL)

The DebugContext property gets the DebugContext object for the CatalogContext object that was used to create this ProductCatalog object.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

The DebugContext object for the CatalogContext object that was used to create this ProductCatalog object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.DefaultLanguage Property (BCL)

The DefaultLanguage property gets the default language for this catalog.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property DefaultLanguage As System.String
[C#]
public virtual System.String DefaultLanguage {get;}

Property Value

The default language for this catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.IdentifyingProductProperty Property (BCL)

The IdentifyingProductProperty property gets the name of the property that identifies products in this catalog.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IdentifyingProductProperty As System.String
[C#]
public virtual System.String IdentifyingProductProperty {get;}

Property Value

The name of the property that identifies products in this catalog.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure. This method caches the retrieved property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.IdentifyingVariantProperty Property (BCL)

The IdentifyingVariantProperty property gets the name of the property that identifies variants in this catalog .

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IdentifyingVariantProperty As System.String
[C#]
public virtual System.String IdentifyingVariantProperty {get;}

Property Value

The name of the property that identifies variants in this catalog .

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure. Internally this uses the IProductCatalog3::IdentifyingVariantProperty method. This method caches the retrieved property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.Languages Property (BCL)

The Languages property gets all of the available languages for this catalog as an array of strings.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Languages As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection Languages {get;}

Property Value

Contains all of the available languages for this catalog as an array of strings.

Remarks

The list of languages is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.Name Property (BCL)

The Name property gets the name of the catalog.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

String containing name of the catalog.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.PropertyNames Property (BCL)

The PropertyNames property gets the names of all properties defined for the catalog.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PropertyNames As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection PropertyNames {get;}

Property Value

ReadOnlyStringCollection containing all the names of all properties defined for the catalog.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

Throws a CatalogException on failure. This method caches the retrieved property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductCatalog.SpecificationSearchableCategories Property (BCL)

The SpecificationSearchableCategories property gets the list of property names for properties that are searchable by the SpecificationSearch objects.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SpecificationSearchableCategories As ReadOnlyStringCollection
[C#]
public virtual ReadOnlyStringCollection SpecificationSearchableCategories {get;}

Property Value

ReadOnlyStringCollection containing the list of property names for properties that are searchable by the SpecificationSearch objects.

Remarks

This data is cached. To refresh it, call the CatalogContext.Refresh method explicitly.

This method caches the list of specification searchable categories.

Throws a CatalogException on failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Class (BCL)

Exception of type ProductNotFoundException.

Public Instance Constructor

Constructor | Description
ProductNotFoundException Constructor | Creates a new instance of the ProductNotFoundException class.
ProductNotFoundException Constructor(String) | Creates a new instance of the ProductNotFoundException class with the specified message.
ProductNotFoundException Constructor(String, Exception) | Creates a new instance of the ProductNotFoundException class with the specified message and inner exception.
ProductNotFoundException Constructor(String, Object) | Creates a new instance of the ProductNotFoundException class with the specified catalog name and product ID.

Protected Instance Constructor

Constructor | Description
ProductNotFoundException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the ProductNotFoundException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
CatalogName | Gets the CatalogName.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
ProductId | Gets the ProductId.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Constructor (BCL)

Public Instance Constructor

Constructor | Description
ProductNotFoundException Constructor | Creates a new instance of the ProductNotFoundException class.
ProductNotFoundException Constructor(String) | Creates a new instance of the ProductNotFoundException class with the specified message.
ProductNotFoundException Constructor(String, Exception) | Creates a new instance of the ProductNotFoundException class with the specified message and inner exception.
ProductNotFoundException Constructor(String, Object) | Creates a new instance of the ProductNotFoundException class with the specified catalog name and product ID.

Protected Instance Constructor

Constructor | Description
ProductNotFoundException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the ProductNotFoundException class with the specified serialization information and streaming context.


ProductNotFoundException Constructor (BCL)

Use this method to create a new instance of the ProductNotFoundException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public ProductNotFoundException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the ProductNotFoundException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected ProductNotFoundException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Constructor (String) (BCL)

Use this method to create a new instance of the ProductNotFoundException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public ProductNotFoundException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the ProductNotFoundException object.
[C#]
message
A System.String containing the message to include in the ProductNotFoundException object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the ProductNotFoundException object with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public ProductNotFoundSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the ProductNotFoundException object.
inner
The inner System.Exception object.
[C#]
message
A System.String containing the message to include in the ProductNotFoundException object.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Constructor (String, Object) (BCL)

Use this method to create a new instance of the ProductNotFoundException class with the specified catalog name and product ID.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal catalogName As System.String, _
  ByVal productId As System.Object _
)
[C#]
public ProductNotFoundException(
  System.String catalogName,
  System.Object productId
);

Parameters

[Visual Basic .NET]
catalogName
A System.String that contains the catalog name.
productId
The ProductId object.
[C#]
catalogName
A System.String that contains the catalog name.
productId
The ProductId object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


ProductNotFoundException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException Properties (BCL)

Public Instance Properties

Property | Description
CatalogName | Gets the CatalogName.
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
ProductId | Gets the ProductId.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


ProductNotFoundException.CatalogName Property (BCL)

The CatalogName property gets the name of the catalog.

Definition

[Visual Basic .NET]
Public ReadOnly Property CatalogName As System.Object
[C#]
public System.Object CatalogName {get;}

Property Value

The CatalogName object.

Remarks

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProductNotFoundException.ProductId Property (BCL)

The ProductId property gets the product ID.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProductId As System.Object
[C#]
public System.Object ProductId {get;}

Property Value

The ProductId object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SpecificationSearchPropertyResult Class (BCL)

The this class represents the result for a property in a specification search. The specification search API's return arrays of these results as part of the specification search process. Each result object represents a property and all of the distinct values for that property.

Public Instance Constructor

Constructor | Description
SpecificationSearchPropertyResult Constructor(String, Object[]) | Creates a new instance of the SpecificationSearchPropertyResult class with the specified property name and values.

Public Instance Properties

Property | Description
Property | Gets the name of the property.
Values | Gets the possible values for the property as an array of objects.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SpecificationSearchPropertyResult Constructor (BCL)

Public Instance Constructor

Constructor | Description
SpecificationSearchPropertyResult Constructor(String, Object[]) | Creates a new instance of the SpecificationSearchPropertyResult class with the specified property name and values.


SpecificationSearchPropertyResult Constructor (String, Object[]) (BCL)

Use this method to create a new instance of the SpecificationSearchPropertyResult class with the specified property name and values.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal property As System.String, _
  ByVal values As System.Object[] _
)
[C#]
public SpecificationSearchPropertyResult(
  System.String property,
  System.Object[] values
);

Parameters

[Visual Basic .NET]
property
A String containing the name of the property. May not be null.
values
An Object array containing the list of possible values. May not be null.
[C#]
property
A String containing the name of the property. May not be null.
values
An Object array containing the list of possible values. May not be null.

Remarks

Throws a new ArgumentNullException if either argument value is null

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SpecificationSearchPropertyResult Properties (BCL)

Public Instance Properties

Property | Description
Property | Gets the name of the property.
Values | Gets the possible values for the property as an array of objects.


SpecificationSearchPropertyResult.Property Property (BCL)

The SpecificationSearchPropertyResult.Property property gets the name of the property.

Definition

[Visual Basic .NET]
Public ReadOnly Property Property As System.String
[C#]
public System.String Property {get;}

Property Value

A System.String containing the name of the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SpecificationSearchPropertyResult.Values Property (BCL)

The SpecificationSearchPropertyResult.Values property gets the possible values for the property as an array of objects.

Definition

[Visual Basic .NET]
Public ReadOnly Property Values As System.Object[]
[C#]
public System.Object[] Values {get;}

Property Value

A System.Object containing the possible values for the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Catalog Namespace

Examples

Example | Description
Code to List Catalogs on an ASP.NET Web Form | Describes how to list catalogs on an ASP.NET Web form.
Code to Navigate Catalog Categories on an ASP.NET Web Form | Describes how to navigate through catalog categories on an ASP.NET Web form.
Code to Navigate Catalog Products on an ASP.NET Web Form | Describes how to navigate through catalog products on an ASP.NET Web form.

See Also

Microsoft.CommerceServer.Runtime.Catalog


Code to list catalogs on an ASP.NET Web form

Use the following code to list catalogs on an ASP.NET Web form.

<%@ Page Language="C#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Catalog" %>
<%@ Import Namespace="System.Data" %>

<script language="C#" runat="server">
    CatalogContext catalogCtx = CommerceContext.Current.CatalogSystem;

    void Page_Load(object source, EventArgs args) {
        if (!IsPostBack) {
            UpdateCatalogs();
        }
    }

    void ChangeCatalogBtn_Click(object source, EventArgs args) {
        SelectedCatalog.Text = @"You selected <b>" + CatalogListing.SelectedItem.Text + "</b>";
    }

    void UpdateCatalogs() {
        CatalogListing.DataSource = catalogCtx.CatalogNames;
        CatalogListing.DataBind();
    }

</script>

<html>
<head>
    <title>List Catalogs</title>
</head>
<body>

    <form runat="server">

        <asp:Label
            id="SelectedCatalog"
            Text="No catalog selected"
            runat="server"/><br/>

        <asp:DropDownList
            id="CatalogListing"
            runat="server"/>

        <asp:Button
            id="ChangeCatalogBtn"
            OnClick="ChangeCatalogBtn_Click"
            Text="OK"
            runat="server"/>

    </form>

</body>
</html>

See Also

CommerceContext Class (BCL)

Microsoft.CommerceServer.Runtime.Catalog


Code to navigate Catalog categories on an ASP.NET Web form

Use the following code to navigate through catalog categories on an ASP.NET Web form.

<%@ Page Language="C#" Trace="False" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Catalog" %>
<%@ Import Namespace="System.Data" %>

<script language="C#" runat="server">
    CatalogContext catalogCtx = CommerceContext.Current.CatalogSystem;
    string catalogName = @"Adventure Works Catalog";

    void Page_Load(object source, EventArgs args) {
        if (!IsPostBack) {
            UpdateCategories();
        }
    }

    void RootCategoryListing_ItemCommand(object source, RepeaterCommandEventArgs args) {
        SelectedCategory.Text = @"You selected <b>" + args.CommandArgument + "</b>";
    }

    void UpdateCategories() {
        RootCategoryListing.DataSource = catalogCtx.GetCatalog(catalogName).GetRootCategories();
        RootCategoryListing.DataBind();
    }

</script>

<html>
<head>
    <title>List Categories</title>
</head>
<body>

    <form runat="server">

        <asp:Label
            id="SelectedCategory"
            Text="No category selected"
            runat="server"/><br/><br/>

        <asp:Repeater
            id="RootCategoryListing"
            OnItemCommand="RootCategoryListing_ItemCommand"
            runat="server">

            <HeaderTemplate>
                <h2>Categories:</h2>
            </HeaderTemplate>

            <ItemTemplate>

                <asp:LinkButton
                    id="SelectCategoryBtn"
                    CommandName="Select"
                    CommandArgument='<%# ((DataRowView)Container.DataItem)["CategoryName"] %>'
                    runat="server">

                    <%# DataBinder.Eval(Container.DataItem, "CategoryName") %>

                </asp:LinkButton>

            </ItemTemplate>

            <SeparatorTemplate>
                <p/>
            </SeparatorTemplate>

        </asp:Repeater>

    </form>

</body>
</html>

See Also

CommerceContext Class (BCL)

Microsoft.CommerceServer.Runtime.Catalog


Code to navigate Catalog products on an ASP.NET Web form

Use the following code to navigate through catalog products on an ASP.NET Web form.

<%@ Page Language="C#" Trace="False" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Catalog" %>
<%@ Import Namespace="System.Data" %>

<script language="C#" runat="server">
    CatalogContext catalogCtx = CommerceContext.Current.CatalogSystem;
    string catalogName = @"Adventure Works Catalog";

    void Page_Load(object source, EventArgs args) {
        if (!IsPostBack) {
            UpdateCategories();
        }
    }

    void UpdateCategories() {
        RootCategoryListing.DataSource = catalogCtx.GetCatalog(catalogName).GetRootCategories();
        RootCategoryListing.DataBind();
    }

    void ProductListing_ItemCommand(object source, RepeaterCommandEventArgs args) {

        // The product id is set as part of the LinkButtons dynamically created
        // by the Repeater control.
        string productId = (string)args.CommandArgument;

        // Retrieve the details for the selected product from the Catalog
        // System.
        DataSet details =
            catalogCtx.GetCatalog(catalogName).GetProduct(productId).GetProductProperties();

        // The default row of the returned DataSet contains the product
        // details.
        DataRow product      = details.Tables[0].Rows[0];
        SelectedProduct.Text = @"You selected <b>" + (string)product["Name"] + "</b>";
        ProductID.Text       = @"Product ID: <b>" + (string)product["ProductID"] + "</b>" ;
        Desc.Text            = @"Description: <b>" + (string)product["Description"] + "</b>";
    }

    // This method is used by the nested Repeater controls used for iterating
    // through the available products in a particular category.
    DataSet GetProductListing(string category) {
        return catalogCtx.GetCatalog(catalogName).GetCategory(category).GetProducts();
    }

</script>

<html>
<head>
    <link rel="stylesheet" href="../util/style.css">
    <title>List Products</title>
</head>
<body>

    <form runat="server">

        <asp:Label
            id="SelectedProduct"
            Text="No product selected"
            runat="server"/><br/>

        <asp:Label
            id="ProductID"
            runat="server"/><br/>

        <asp:Label
            id="Desc"
            runat="server"/><br/>

        <asp:Repeater
            id="RootCategoryListing"
            runat="server">

            <HeaderTemplate>
                <h2>Categories:</h2>
            </HeaderTemplate>

            <ItemTemplate>
                <p>
                <b><%# (string)((DataRowView)Container.DataItem)["CategoryName"] %></b><br/>

                    <asp:Repeater
                        id="ProductListing"
                        OnItemCommand="ProductListing_ItemCommand"
                        DataSource='<%# GetProductListing((string)((DataRowView)Container.DataItem)["CategoryName"]) %>'
                        runat="server">

                        <ItemTemplate>

                            <asp:LinkButton
                                id="SelectProductBtn"
                                CommandName="Select"
                                CommandArgument='<%# ((DataRowView)Container.DataItem)["ProductID"] %>'
                                runat="server">

                                <%# (string)((DataRowView)Container.DataItem)["Name"] %>

                            </asp:LinkButton>

                        </ItemTemplate>

                        <SeparatorTemplate>
                            ,&nbsp;
                        </SeparatorTemplate>

                    </asp:Repeater>
                </p>
            </ItemTemplate>

            <SeparatorTemplate>
                <p/>
            </SeparatorTemplate>

        </asp:Repeater>

    </form>

</body>
</html>

See Also

CommerceContext Class (BCL)

Microsoft.CommerceServer.Runtime.Catalog


Microsoft.CommerceServer.Runtime.Configuration

The Microsoft.CommerceServer.Runtime.Configuration namespace contains the configuration section handlers for the Commerce Server .NET Application Framework.

Classes

Class | Description
CommerceResource | Represents the collection of configuration properties for a site resource.
CommerceResourceCollection | Represents the collection of site resources for a given site.

Examples

Example | Description
Code to Read a Resource Collection and Display Its Contents | Describes how to read a Commerce resource collection and display the contents.

See Also

Commerce Server .NET Application Framework Tutorial


CommerceResource Class (BCL)

Represents the collection of configuration properties for a site resource.

Public Instance Methods

Method | Description
GetEnumerator | Gets an enumerator for enumerating the property names of all the resource properties in the resource.

Public Instance Properties

Property | Description
Item(String) | Indexer to retrieve a resource property given the property name.
MajorVersion | Gets an Int32 representing the major version number of the resource. If the version number of the resource is 1.2.3, the MajorVersion property is 1.
MinorVersion | Gets an Int32 representing the minor version number of the resource. If the version number of the resource is 1.2.3, the MinorVersion property is 2.
Name | Gets the name of the resource.
Revision | Gets an Int32 representing the revision number of the resource. If the version number of the resource is 1.2.3, the Revision property is 3.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource Methods (BCL)

Public Instance Methods

Method | Description
GetEnumerator | Gets an enumerator for enumerating the property names of all the resource properties in the resource.


CommerceResource.GetEnumerator Method (BCL)

Use this method to get an enumerator for enumerating the property names of all the resource properties in the resource.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

An enumerator for enumerating the property names of all the resource properties in the resource.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Indexer to retrieve a resource property given the property name.
MajorVersion | Gets an Int32 representing the major version number of the resource. If the version number of the resource is 1.2.3, the MajorVersion property is 1.
MinorVersion | Gets an Int32 representing the minor version number of the resource. If the version number of the resource is 1.2.3, the MinorVersion property is 2.
Name | Gets the name of the resource.
Revision | Gets an Int32 representing the revision number of the resource. If the version number of the resource is 1.2.3, the Revision is property 3.


CommerceResource.Item Property (BCL)

The Item property is a read-only object that retrieves a resource property for the given property name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal propertyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String propertyName
) {get;}

Parameters

[Visual Basic .NET]
propertyName
The name of the property whose value is retrieved.
[C#]
propertyName
The name of the property whose value is retrieved.

Property Value

The value of the propertyName parameter.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource.MajorVersion Property (BCL)

The MajorVersion property is a read-only Int32 that represents the major version number of the resource. If the version number of the resource is 1.2.3, the MajorVersion property is 1.

Definition

[Visual Basic .NET]
Public ReadOnly Property MajorVersion( _
  ) As System.Int32
[C#]
public System.Int32 MajorVersion(
  ) {get;}

Property Value

An Int32 that represents the version number of the resource.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource.MinorVersion Property (BCL)

The MinorVersion property is a read-only Int32 that represents the minor version number of the resource. If the version number of the resource is 1.2.3, the MinorVersion property is 2.

Definition

[Visual Basic .NET]
Public ReadOnly Property MinorVersion( _
  ) As System.Int32
[C#]
public System.Int32 MinorVersion(
  ) {get;}

Property Value

The Int32 that represents the minor version number of the resource.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource.Name Property (BCL)

The Name property is a read-only String that contains the name of the resource.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

The name of the resource.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResource.Revision Property (BCL)

The Revision property is a read-only Int32 that represents the revision number of the resource. If the revision number of the resource is 1.2.3, the Revision property is 3.

Definition

[Visual Basic .NET]
Public ReadOnly Property Revision( _
  ) As System.Int32
[C#]
public System.Int32 Revision(
  ) {get;}

Property Value

An Int32 that represents the revision number of the resource.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection Class (BCL)

Represents the collection of site resources for a given site.

Public Instance Constructor

Constructor | Descriptions
CommerceResourceCollection Constructor(String) | Creates a new instance of the CommerceResourceCollection class for the specified site.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the resources to an array, starting at a particular array index.
GetEnumerator | Supports an iteration over the collection of resources.

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns False.
Item(String) | Indexer to allow for accessing a resource based on the resource name.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the CommerceResourceCollection class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection Constructor (BCL)

Public Instance Constructor

Constructor | Descriptions
CommerceResourceCollection Constructor(String) | Creates a new instance of the CommerceResourceCollection class for the specified site.


CommerceResourceCollection Constructor (String) (BCL)

Use this method to create a new instance of the CommerceResourceCollection class for the specified site.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal siteName As System.String _
)
[C#]
public CommerceResourceCollection(
  System.String siteName
);

Parameters

[Visual Basic .NET]
siteName
The name of the site for which to read resource configuration information. May not be null.
[C#]
siteName
The name of the site for which to read resource configuration information. May not be null.

Return Value

Throws an ArgumentNullException if the siteName parameter is null.

Remarks

Throws an ArgumentNullException if the catalogContext parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the resources to an array, starting at a particular array index.
GetEnumerator | Supports an iteration over the collection of resources.


CommerceResourceCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy resources to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection.GetEnumerator Method (BCL)

Use this method to support an iteration over the collection of resources.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

Enumerator for the values in the collection.

Implements

System.Collection.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns False.
Item(String) | Indexer to allow for accessing a resource based on resource name.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the CommerceResourceCollection class.


CommerceResourceCollection.Count Property (BCL)

The Count property is a read-only integer indicating the number of elements contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of elements contained in the collection.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized. This implementation always returns False.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized. This implementation always returns False.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection.Item Property (BCL)

The Item property is a read-only indexer that allows for accessing a resource based on the resource name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal resourceName As System.String _
) As CommerceResource
[C#]
public CommerceResource Item(
  System.String resourceName
) {get;}

Parameters

[Visual Basic .NET]
resourceName
The name of the resource.
[C#]
resourceName
The name of the resource.

Property Value

An indexer allowing for access to a resource.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceResourceCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used to synchronize access to the collection. This implementation always returns the current instance of the CommerceResourceCollection class.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used to synchronize access to the collection.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Configuration Namespace

Examples

Example | Description
Code to Read a Resource Collection and Display Its Contents | Describes how to read a Commerce resource collection and display the contents.


Code to Read a Resource Collection and Display Its Contents

Use the following code to read a Commerce resource collection and display its contents:

<%@ Import Namespace="System.Collections" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Configuration" %>
<%@ Page Language="C#" Debug=true%>
<HTML>
   <HEAD>
      <title>Resource Collection</title>
      <script language="C#" runat="server">
void Page_Load(object source, EventArgs args)
{
   if (!IsPostBack)
   {
      DisplayResources();
      btnProperties.Text = "Display Properties";
   }
}
///
/// This function gets the resource collection and binds it
/// to the drop-down list.
///
void DisplayResources()
{
   try
   {
      CommerceResourceCollection resCollection = null;
      // Check that the CommerceContext object for this request is
      // not null.
      if (CommerceContext.Current == null)
      {
         throw new Exception("CommerceContext object is null.Please check settings in web.config");
      }
      // Get the resource collection.
      resCollection = CommerceContext.Current.Resources;
      // resCollection.Count contains the number of resources.
      string[] resArray = new string[resCollection.Count];
      int resIndex =0;
      // Iterate through the resource collection and build the
      // string array.
      foreach (CommerceResource resource in resCollection)
      {
         resArray[resIndex++] = resource.Name;
      }
      // Bind the array to the drop-down list.
      lbResources.DataSource = resArray;
      lbResources.DataBind();
   }
   catch(Exception ex)
   {
      // Exception handling.
      throw new Exception("An error occurred", ex);
   }
}
///
/// Displays the properties for the selected resource.
///
void DisplayPropertiesBtn_Click(object source, EventArgs args)
{
   string resourceName;
   CommerceResource resource ;
   try
   {
      CommerceResourceCollection resCollection = null;
      // Check that the CommerceContext object for this request is
      // not null.
      if (CommerceContext.Current == null)
      {
         throw new Exception("CommerceContext object is null.");
      }
      // Get the resource collection.
      resCollection = CommerceContext.Current.Resources;
      // Get the resource name whose properties are to be displayed.
      resourceName = lbResources.SelectedItem.Text.Trim();
      // Index the resource collection using the resource name to get the
      // configuration properties for this resource.
      resource = resCollection[resourceName];

      // Display the Name, MajorVersion, MinorVersion, and Revision
      // properties of the resource.
      lblResourceName.Text = String.Format("Resource Name = {0}", resource.Name);
      lblMajorVersion.Text = String.Format("Major Version = {0}", resource.MajorVerion);
      lblMinorVersion.Text = String.Format("Minor Version = {0}", resource.MinorVersion);
      lblRevision.Text    = String.Format("Revision = {0}", resource.Revision);

      // Build a hash table containing each property and its value.
      Hashtable hashTable = new Hashtable();
      // The value of a property can be accessed by indexing the
      // resource using property name.
      foreach (string propName in resource)
      {
         hashTable.Add(propName, resource[propName]);
      }
      // Bind the properites to the repeater
      LineItemRepeater.DataSource = hashTable;
      LineItemRepeater.DataBind();
   }
   catch(Exception ex)
   {
      throw new Exception("An error occurred", ex);
   }
}
      </script>
   </HEAD>
   <body>
      <form runat="server">
         <asp:DropDownList id="lbResources" runat="server" />
         <asp:Button id="btnProperties" OnClick="DisplayPropertiesBtn_Click" runat="server" />
         <asp:table width="500" Runat="server">
            <asp:tablerow>
               <asp:tablecell>
                  <asp:Label width="100%" id="lblResourceName" runat="server" />
               </asp:tablecell>
            </asp:tablerow>
            <asp:tablerow>
               <asp:tablecell>
                  <asp:Label width="100%" id="lblMajorVersion" runat="server" />
               </asp:tablecell>
            </asp:tablerow>
            <asp:tablerow>
               <asp:tablecell>
                  <asp:Label width="100%" id="lblMinorVersion" runat="server" />
               </asp:tablecell>
            </asp:tablerow>
            <asp:tablerow>
               <asp:tablecell>
                  <asp:Label width="100%" id="lblRevision" runat="server" />
               </asp:tablecell>
            </asp:tablerow>
         </asp:table>
         <asp:repeater id="LineItemRepeater" runat="server">
            <ItemTemplate>
               <asp:Table runat="server" GridLines="both" BorderWidth="1px">
                  <asp:TableRow>
                     <asp:TableCell id="label1" width="50%">
                        <%# DataBinder.Eval(Container.DataItem ,"Key")%>
                     </asp:TableCell>
                     <asp:TableCell font-bold="true" id="label2" width="50%">
                        <%# DataBinder.Eval(Container.DataItem ,"Value")%>
                     </asp:TableCell>
                  </asp:TableRow>
               </asp:Table>
            </ItemTemplate>
         </asp:repeater>
      </form>
   </body>
</HTML>


Microsoft.CommerceServer.Runtime.Diagnostics

The classes in the Microsoft.CommerceServer.Runtime.Diagnostics namespace contain the debugging functionality needed for the Commerce Server .NET Application Framework.

Classes

Class | Description
ConsoleDebugContext | Represents the current debugging level for a non-Web based application. Contains methods for handling debug warnings, errors, and informational trace messages. This class may be derived, as the Trace, Warn, and Error methods are declared virtual.
DebugContext | Represents the current debugging level for the application. This object sets the debug mode and contains methods for handling debug warnings, errors, and informational trace messages. This class may be derived, as the Trace, Warn, and Error methods are declared virtual.
DumpUtils | Contains utility methods useful for dumping out the data in various Commerce Server and Interop objects.
WebDebugContext | Represents the current debugging level for the application and has methods for handling debug warnings, errors, and informational trace messages. This class may be derived, as the Trace, Warn, and Error methods are declared virtual.

Enumerations

Enumeration | Description
DebugMode | Enumerates the possible debug mode settings.
DumpUtils_ContainerType | Protected enumeration of the different container object types supported.

See Also

Commerce Server .NET Application Framework Tutorial


ConsoleDebugContext Class (BCL)

The ConsoleDebugContext class represents the current debugging level for a non-Web based application. The class contains methods for handling debug warnings, errors, and informational trace messages. This class may be derived, as the Trace, Warn, and Error methods are declared virtual.

Public Instance Constructor

Constructor | Description
ConsoleDebugContext(DebugContext) Constructor | Creates a new instance of the ConsoleDebugContext class.

Public Instance Methods

Method | Description
Error(String, String) | Records an error.
Error(String, String, Exception) | Records an error and an exception.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message.
Warn(String, String, Exception) | Records a warning message and an exception.

Public Instance Properties

Property | Description
DebugMode (Inherited from DebugContext) | Gets and sets the current debug mode.
IsDebugMode (Inherited from DebugContext) | Gets a Boolean that is set to True if the current DebugMode property is set to either Debug or the superset Checked mode.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext Constructor (BCL)

Public Instance Constructor

Constructor | Description
ConsoleDebugContext(DebugContext) Constructor | Creates a new instance of the ConsoleDebugContext class.


ConsoleDebugContext(DebugContext) Constructor (BCL)

Use this method to create a new instance of the ConsoleDebugContext class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal dbgMode As DebugMode
)
[C#]
public DebugContext(
 DebugMode dbgMode
);

Parameters

[Visual Basic .NET]
dbgMode
Debug mode enumerator.
[C#]
dbgMode
Debug mode enumerator.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext Methods (BCL)

Public Instance Methods

Method | Description
Error(String, String) | Records an error.
Error(String, String, Exception) | Records an error and an exception.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message.
Warn(String, String, Exception) | Records a warning message and an exception.


ConsoleDebugContext.Error (String, String) Method (BCL)

Use this method to record an error.

Definition

[Visual Basic .NET]
Overrides Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Error(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

If the Commerce Server site is running in Checked mode, then this method throws a CommerceDebugException. Otherwise this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string Error:.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext.Error (String, String, Exception) Method (BCL)

Use this method to record an error and an exception.

Definition

[Visual Basic .NET]
Overrides Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public override void Error(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The inner exception.
[C#]
category
The debug category.
message
The debug message.
ex
The inner exception.

Remarks

If the Commerce Server site is running in Checked mode, then this method throws a CommerceDebugException. Otherwise this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string Error:.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext.Trace (String, String) Method (BCL)

Use this method to record an informational trace message.

Definition

[Visual Basic .NET]
Overrides Public Sub Trace( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Trace(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext.Warn (String, String) Method (BCL)

Use this method to record a warning message.

Definition

[Visual Basic .NET]
Overrides Public Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Warn(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string Warning:.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext.Warn (String, String, Exception) Method (BCL)

Use this method to record a warning message and an exception.

Definition

[Visual Basic .NET]
Overrides Public Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public override void Warn(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The exception.
[C#]
category
The debug category.
message
The debug message.
ex
The exception.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string Warning:.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ConsoleDebugContext Properties (BCL)

Public Instance Properties

Property | Description
DebugMode (Inherited from DebugContext) | Gets and sets the current debug mode.
IsDebugMode (Inherited from DebugContext) | Gets a Boolean that is set to True if the current DebugMode property is set to either Debug or the superset Checked mode.


DebugContext Class (BCL)

Represents the current debugging level for the application. This class sets the debug mode and contains methods for handling debug warnings, errors, and informational trace messages. The Trace, Warn, and Error methods are virtual so this method may be derived.

Protected Instance Constructor

Constructor | Description
DebugContext Constructor | Creates a new instance of the DebugContext class.

Public Instance Methods

Method | Description
Error(String, String) | Records an error.
Error(String, String, Exception) | Records an error and an exception.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message.
Warn(String, String, Exception) | Records a warning message and an exception.

Public Instance Properties

Property | Description
DebugMode | Gets the current debug mode.
IsDebugMode | Gets a Boolean that is set to True if the current debug mode is set to either Debug or the superset Checked mode.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext Constructor (BCL)

Protected Instance Constructor

Constructor | Description
DebugContext Constructor | Creates a new instance of the DebugContext class.


DebugContext Constructor (BCL)

Use this method to create a new instance DebugContext class.

Definition

[Visual Basic .NET]
Protected Sub New( _
)
[C#]
protected DebugContext(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext Methods (BCL)

Public Instance Methods

Method | Description
Error(String, String) | Records an error.
Error(String, String, Exception) | Records an error and an exception.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message.
Warn(String, String, Exception) | Records a warning message and an exception.


DebugContext.Error (String, String) Method (BCL)

Use this method to record an error.

Definition

[Visual Basic .NET]
Overridable Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public virtual void Error(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

If the Commerce Server site is running in Checked mode, this method throws a CommerceDebugException. Otherwise, this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Error:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext.Error (String, String, Exception) Method (BCL)

Use this method to record an error and an exception.

Definition

[Visual Basic .NET]
Overridable Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public virtual void Error(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The inner exception.
[C#]
category
The debug category.
message
The debug message.
ex
The inner exception.

Remarks

If the Commerce Server site is running in Checked mode, this method throws a CommerceDebugException. Otherwise, this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Error:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext.Trace (String, String) Method (BCL)

Use this method to record an informational trace message.

Definition

[Visual Basic .NET]
Overridable Public Sub Trace( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public virtual void Trace(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext.Warn (String, String) Method (BCL)

Use this method to record a warning message.

Definition

[Visual Basic .NET]
Overridable Public Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public virtual void Warn(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Warning:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext.Warn (String, String, Exception) Method (BCL)

Use this method to record a warning message along with an exception.

Definition

[Visual Basic .NET]
Overridable Public Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public virtual void Warn(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The exception.
[C#]
category
The debug category.
message
The debug message.
ex
The exception.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Warning:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext Properties (BCL)

Public Instance Properties

Property | Description
DebugMode | Gets the current debug mode.
IsDebugMode | Gets a Boolean that is set to True if the current debug mode is set to either Debug or the superset Checked mode.


DebugContext.DebugMode Property (BCL)

The DebugMode property is a read/write DebugMode that retrieves the current debug mode.

Definition

[Visual Basic .NET]
Overridable Public Property DebugMode As DebugMode
[C#]
public virtual DebugMode DebugMode {get; set;}

Property Value

The current debug mode.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugContext.IsDebugMode Property (BCL)

The IsDebugMode property is a Boolean that indicates whether the DebugMode property is set to Debug or Checked.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsDebugMode As System.Boolean
[C#]
public virtual System.Boolean IsDebugMode {get;}

Property Value

A Boolean that is True if the DebugMode property is set to Debug, and False if the DebugMode property is set to Checked.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DebugMode Enumeration (BCL)

Enumerates the possible DebugMode settings.

Members

Member Name | Description
Checked | Checked mode is a superset of debug mode and indicates that special time- or resource-intensive checks should be made.
Debug | In debug mode, some special checks are made, but not those that are resource or time intensive.
Production | In production mode, no special checks are made, only some level of tracing is provided.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils Class (BCL)

Contains utility methods useful for dumping out the data in various CommerceServer and Interop objects as HTML.

Protected Instance Constructor

Constructor | Description
DumpUtils Constructor | Creates a new instance of the DumpUtils class.

Public Static (Shared) Methods

Method | Description
DumpDataContainer(IDataContainer, HtmlTextWriter, String) | Dumps a ContentList or ContentListFactory object to the output stream as HTML with no indentation.
DumpDataSet(DataSet, HtmlTextWriter, String) | Dumps the tables in the DataSet object to the output stream as HTML with no indentation.
DumpDataTable(DataTable, HtmlTextWriter) | Dumps a DataTable object to the output stream as HTML with no indentation.
DumpDictionary(IDictionary, HtmlTextWriter, String) | Dumps a Commerce.Dictionary object to the output stream with no indentation.
DumpFields(Fields, HtmlTextWriter, String) | Dumps a Fields collection to the output stream with no indentation.
DumpObject(Object, HtmlTextWriter, String) | Dumps an object of unknown type.
DumpObject(Object, HtmlTextWriter, String, Int32) | Dumps an object of unknown type.
DumpRecordset(Recordset, HtmlTextWriter, String) | Dumps a Recordset object to the HtmlTextWriter object using no indentation.
DumpSimpleList(ISimpleList, HtmlTextWriter, String) | Dumps a Commerce.SimpleList object to the output stream with no indentation.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils Constructor (BCL)

Protected Instance Constructor

Constructor | Description
DumpUtils Constructor | Creates a new instance of the DumpUtils class.


DumpUtils Constructor (BCL)

Use this method to create a new instance of the DumpUtils class.

Definition

[Visual Basic .NET]
Protected Sub New( _
)
[C#]
protected DumpUtils(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils Methods (BCL)

Public Static (Shared) Methods

Method | Description
DumpDataContainer(IDataContainer, HtmlTextWriter, String) | Dumps a ContentList or ContentListFactory object to the output stream as HTML with no indentation.
DumpDataSet(DataSet, HtmlTextWriter, String) | Dumps the tables in the DataSet object to the output stream as HTML with no indentation.
DumpDataTable(DataTable, HtmlTextWriter) | Dumps a DataTable object to the output stream as HTML with no indentation.
DumpDictionary(IDictionary, HtmlTextWriter, String) | Dumps a Commerce.Dictionary object to the output stream with no indentation.
DumpFields(Fields, HtmlTextWriter, String) | Dumps a Fields collection to the output stream with no indentation.
DumpObject(Object, HtmlTextWriter, String) | Dumps an object of unknown type.
DumpObject(Object, HtmlTextWriter, String, Int32) | Dumps an object of unknown type.
DumpRecordset(_Recordset, HtmlTextWriter, String) | Dumps a Recordset object to the HtmlTextWriter object with no indentation.
DumpSimpleList(ISimpleList, HtmlTextWriter, String) | Dumps a Commerce.SimpleList object to the output stream with no indentation.


DumpUtils.DumpDataContainer (IDataContainer, HtmlTextWriter, String) Method (BCL)

Use this method to dump a ContentList or ContentListFactory object to the output stream as HTML with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpDataContainer( _
  ByVal dc As Microsoft.CommerceServer.Interop.Caching.IDataContainer, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpDataContainer(
  Microsoft.CommerceServer.Interop.Caching.IDataContainer dc,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
dc
The IDataContainer object.
output
The output stream.
name
The name of object for display.
[C#]
dc
The IDataContainer object.
output
The output stream.
name
The name of object for display.

Example

To supply the DumpDataContainer method with an HtmlTextWriter object that wraps the ASP .NET Response object, you must supply an output parameter.

[C#]
// This sample requires a CommerceServer cache of type "Discounts"
// to be configured in the web.config file.
// A reference must be added to the CacheCompLib interop assembly.
using Commerce = Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Diagnostics;
using Microsoft.CommerceServer.Interop.Caching;

Commerce.IDictionary dictCache = (Commerce.IDictionary)CommerceContext.Current.Caches["Discounts"].GetCache();
IDataContainer dataContainer = (IDataContainer)dictCache["Factory"];
DumpUtils.DumpDataContainer(dataContainer, new HtmlTextWriter(Response.Output), "Discounts cache");
[Visual Basic .NET]
' This sample requires a CommerceServer cache of type "Discounts"
' to be configured in the web.config file.
' A reference must be added to the CacheCompLib interop assembly.

Imports Microsoft.CommerceServer.Runtime
Imports Microsoft.CommerceServer.Runtime.Diagnostics
Imports Microsoft.CommerceServer.Interop.Caching

Dim dictCache As Microsoft.CommerceServer.Runtime.IDictionary
dictCache = CType(CommerceContext.Current.Caches("Discounts").GetCache(), Microsoft.CommerceServer.Runtime.IDictionary)
Dim dataContainer As IDataContainer = CType(dictCache.Value("Factory"), IDataContainer)
DumpUtils.DumpDataContainer(dataContainer, New HtmlTextWriter(Response.Output), "Discounts cache")

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpDataSet (DataSet, HtmlTextWriter, String) Method (BCL)

Use this method to dump the tables in the DataSet object to the output stream as HTML with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpDataSet( _
  ByVal ds As System.Data.DataSet, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpDataSet(
  System.Data.DataSet ds,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
ds
The DataSet object.
output
The HtmlTextWriter object output stream.
name
The name of the object for display.
[C#]
ds
The DataSet object.
output
The HtmlTextWriter object output stream.
name
The name of the object for display.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpDataTable (DataTable, HtmlTextWriter) Method (BCL)

Use this method to dump a DataTable object to the output stream as HTML with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpDataTable( _
  ByVal dt As System.Data.DataTable, _
  ByVal output As System.Web.UI.HtmlTextWriter _
)
[C#]
public static void DumpDataTable(
  System.Data.DataTable dt,
  System.Web.UI.HtmlTextWriter output
);

Parameters

[Visual Basic .NET]
dt
The DataTable object.
output
The HtmlTextWriter object output stream.
[C#]
dt
The DataTable object.
output
The HtmlTextWriter object output stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpDictionary (IDictionary, HtmlTextWriter, String) Method (BCL)

Use this method to dump a Commerce.Dictionary object to the output stream with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpDictionary( _
  ByVal d As Microsoft.CommerceServer.Runtime.IDictionary, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpDictionary(
  Microsoft.CommerceServer.Runtime.IDictionary d,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
d
Dictionary to be dumped.
output
The HtmlTextWriter object output stream.
name
The dictionary name for display.
[C#]
d
Dictionary to be dumped.
output
The HtmlTextWriter object output stream.
name
The dictionary name for display.

Example

To supply the DumpDataDictionary method with an HtmlTextWriter object that wraps the ASP .NET Response object, you must supply an output parameter.

[C#]
using Commerce = Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Diagnostics;

Commerce.Dictionary dict = new Commerce.DictionaryClass();
dict["testKey"] = "testValue";
DumpUtils.DumpDictionary(dict, new HtmlTextWriter(Response.Output), "My Dictionary Object");
[Visual Basic .NET]
Imports Microsoft.CommerceServer.Runtime.Diagnostics

Dim dict As New Microsoft.CommerceServer.Runtime.DictionaryClass()
dict.Value("testKey") = "testValue"
Call DumpUtils.DumpDictionary(dict, New HtmlTextWriter(Response.Output), "My Dictionary Object")

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Dump an Order Form


DumpUtils.DumpFields (Fields, HtmlTextWriter, String) Method (BCL)

Use this method to dump a Fields collection to the output stream with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpFields( _
  ByVal flds As ADODB.Fields, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpFields(
  ADODB.Fields flds,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
flds
The fields object to dump.
output
The output stream to dump to.
name
The name of the object for display purposes.
[C#]
flds
The fields object to dump.
output
The output stream to dump to.
name
The name of the object for display purposes.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpObject (Object, HtmlTextWriter, String) Method (BCL)

Use this method to dump an object of unknown type.

Definition

[Visual Basic .NET]
Public Shared Sub DumpObject( _
  ByVal obj As System.Object, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpObject(
  System.Object obj,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
obj
The object to dump.
output
The output stream.
name
The name of the object for display purposes.
[C#]
obj
The object to dump.
output
The output stream.
name
The name of the object for display purposes.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpObject (Object, HtmlTextWriter, String, Int32) Method (BCL)

Use this method to dump an object to the HtmlTextWriter object.

Definition

[Visual Basic .NET]
Public Shared Sub DumpObject( _
  ByVal obj As System.Object, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String, _
  ByVal level As System.Int32 _
)
[C#]
public static void DumpObject(
  System.Object obj,
  System.Web.UI.HtmlTextWriter output,
  System.String name,
  System.Int32 level
);

Parameters

[Visual Basic .NET]
obj
The object to be dumped.
output
The output stream to dump to.
name
The name of the object to output.
level
The indentation level.
[C#]
obj
The object to be dumped.
output
The output stream to dump to.
name
The name of the object to output.
level
The indentation level.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpRecordset (_Recordset, HtmlTextWriter, String) Method (BCL)

Use this method to dump a Recordset object to the HtmlTextWriter object with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpRecordset( _
  ByVal rs As ADODB._Recordset, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpRecordset(
  ADODB._Recordset rs,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
rs
The Recordset object to dump.
output
The output stream.
name
The name of object for display purposes.
[C#]
rs
The Recordset object to dump.
output
The output stream.
name
The name of object for display purposes.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.DumpSimpleList (ISimpleList, HtmlTextWriter, String) Method (BCL)

Use this method to dump a Commerce.SimpleList object to the output stream with no indentation.

Definition

[Visual Basic .NET]
Public Shared Sub DumpSimpleList( _
  ByVal list As Microsoft.CommerceServer.Runtime.ISimpleList, _
  ByVal output As System.Web.UI.HtmlTextWriter, _
  ByVal name As System.String _
)
[C#]
public static void DumpSimpleList(
  Microsoft.CommerceServer.Runtime.ISimpleList list,
  System.Web.UI.HtmlTextWriter output,
  System.String name
);

Parameters

[Visual Basic .NET]
list
The SimpleList to be dumped.
output
The output stream.
name
The name for display.
[C#]
list
The SimpleList to be dumped.
output
The output stream.
name
The name for display.

Example

To supply the DumpSimpleList method with an HtmlTextWriter object that wraps the ASP .NET Response object, you must supply an output parameter.

[C#]
using Microsoft.CommerceServer.Runtime.Diagnostics;

SimpleList list = new SimpleListClass();
object objTemp = "New Value Number One";
list.Add(ref objTemp);
DumpUtils.DumpSimpleList(list, new HtmlTextWriter(Response.Output), "Product");
[Visual Basic .NET]
Imports Microsoft.CommerceServer.Runtime
Imports Microsoft.CommerceServer.Runtime.Diagnostics

Dim list As New SimpleList()
list.Add("New Value Number one")
Call DumpUtils.DumpSimpleList(list, New HtmlTextWriter(Response.Output), "My SimpleList")

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


DumpUtils.ContainerType Enumeration (BCL)

Enumeration of the different container object types supported.

Members

Member name | Description
Array | Safe array
DataContainer | IDataContainer (ContentList or ContentListFactory)
Dictionary | Commerce.Dictionary
Fields | Fields collection
ReadOnlyStringCollection | ReadOnlyStringCollection
Recordset | Recordset
SimpleList | Commerce.Simplelist
Unknown | Unknown object type

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext Class (BCL)

The WebDebugContext class represents the current debugging level for the application. It represents the debug mode and has methods for handling debug warnings, errors, and informational trace messages. This class may be derived, as the Trace, Warn, and Error methods are declared virtual.

Public Instance Constructor

Constructor | Description
WebDebugContext Constructor(DebugMode) | Creates a new instance of the WebDebugContext class.

Public Instance Methods

Method | Description
Error(String, String) | Records an error and an exception.
Error(String, String, Exception) | Records an error.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message and an exception.
Warn(String, String, Exception) | Records a warning message.

Public Instance Properties

Property | Description
DebugMode (Inherited from DebugContext) | Gets and sets the current debug mode.
IsDebugMode (Inherited from DebugContext) | Gets a Boolean that is set to true if the current DebugMode property is set to either Debug or the superset Checked mode.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext Constructor (BCL)

Public Instance Constructor

Constructor | Description
WebDebugContext Constructor(DebugMode) | Creates a new instance of the WebDebugContext class.


WebDebugContext Constructor (DebugMode) (BCL)

Use this method to create a new instance of the WebDebugContext class.

[Visual Basic .NET]
Public Sub New( _
  ByVal dbgMode As DebugMode _
)
[C#]
public WebDebugContext(
  DebugMode dbgMode
);

Parameters

[Visual Basic .NET]
dbgMode
The debug mode enumerator.
[C#]
dbgMode
The debug mode enumerator.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext Methods (BCL)

Public Instance Methods

Method | Description
Error(String, String) | Records an error and an exception.
Error(String, String, Exception) | Records an error.
Trace(String, String) | Records an informational trace message.
Warn(String, String) | Records a warning message and an exception.
Warn(String, String, Exception) | Records a warning message.


WebDebugContext.Error (String, String) Method (BCL)

Use this method to record an error.

[Visual Basic .NET]
Overrides Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Error(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

If the Commerce Server site is running in Checked mode, then this method throws a CommerceDebugException. Otherwise this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Error:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext.Error (String, String, Exception) Method (BCL)

Use this method to record an error and an exception.

[Visual Basic .NET]
Overrides Public Sub Error( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public override void Error(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The inner exception.
[C#]
category
The debug category.
message
The debug message.
ex
The inner exception.

Remarks

If the Commerce Server site is running in Checked mode, then this method throws a CommerceDebugException. Otherwise this class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Error:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext.Trace (String, String) Method (BCL)

Use this method to record an informational trace message.

[Visual Basic .NET]
Overrides Public Sub Trace( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Trace(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext.Warn (String, String) Method (BCL)

Use this method to record a warning message.

[Visual Basic .NET]
Overrides Public Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String _
)
[C#]
public override void Warn(
  System.String category,
  System.String message
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
[C#]
category
The debug category.
message
The debug message.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Warning:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext.Warn (String, String, Exception) Method (BCL)

Use this method to record an error message and an exception.

[Visual Basic .NET]
Overrides Pubic Sub Warn( _
  ByVal category As System.String, _
  ByVal message As System.String, _
  ByVal ex As System.Exception _
)
[C#]
public override void Warn(
  System.String category,
  System.String message,
  System.Exception ex
);

Parameters

[Visual Basic .NET]
category
The debug category.
message
The debug message.
ex
The exception.
[C#]
category
The debug category.
message
The debug message.
ex
The exception.

Remarks

This class uses the Warn method of the System.Web.TraceContext class to log the message prefixed with the string "Warning:".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Diagnostics

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


WebDebugContext Properties (BCL)

Public Instance Properties

Property | Description
DebugMode (Inherited from DebugContext) | Gets and sets the current debug mode.
IsDebugMode (Inherited from DebugContext) | Gets a Boolean that is set to true if the current DebugMode property is set to either Debug or the superset Checked mode.


Microsoft.CommerceServer.Runtime.Orders

The classes in the Microsoft.CommerceServer.Runtime.Orders namespace contain the order processing functionality for the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Orders Namespace Object Model

Depicts the object model for the Microsoft.CommerceServer.Runtime.Orders namespace.

Classes

Class | Description
Basket | Encapsulates a basket in the Commerce Server order system. The user ID must be specified to create an instance of this class.
CommerceOrderModule | Creates the default OrderContext object for the site.
CommerceOrderSystemException | Base class for exceptions thrown from order system subsystem.
LineItem | Abstracts a line item on an order form.
LineItemCollection | Encapsulates the collection of line items associated with the order form.
OrderAddress | Abstracts an element of the order address collection.
OrderAddressCollection | Collection of addresses associated with an order form.
OrderContext | Represents a connection to a transactions database. The construction of an OrderGroup object requires an OrderContext object.
OrderForm | Encapsulates an order form instance.
OrderFormCollection | Encapsulates the collection of order forms on an OrderGroup object.
OrderGroup | Abstract base class for all OrderGroup object types in the Commerce Server order system.
OrderGroupSearch | Abstracts the criteria for order group searches.
OrderGroupSearchOptions | Abstracts OrderGroup object search results specification.
OrderTemplate | Encapsulates an order template in the Commerce Server order system. The user ID and template ID must be specified to create an instance of this class.
PipelineInfo | Encapsulates the context dictionary passed down to run a pipeline.
PurchaseOrder | Encapsulates a saved order in the Commerce Server order system. The user ID and the order ID must both be specified to create an instance of this class.

Structures

Structure | Description
EuroConversionTable | Specifies conversion rates from all 12 European currencies to EURO.

Examples

Example | Description
Code to Manipulate a Basket on an ASP.NET Web Form | Describes how to manipulate a basket on an ASP.NET Web form.
Code to Set Shipping Methods on a Basket on an ASP.NET Web Form | Describes how to set shipping methods on a basket.
Code to Dump an Order Form | Describes how to dump the contents of an order form.

See Also

Commerce Server .NET Application Framework Tutorial


Basket Class (BCL)

Encapsulates a basket in the Commerce Server order system. The user ID must be specified to create an instance of this class.

Public Instance Methods

Method | Description
Add(OrderTemplate) | Adds the items from the specified order template to the basket instance.
Add(PurchaseOrder) | Adds the items from the specified purchase order to the basket instance.
Clear | Clears all the order forms and the addresses associated with the basket instance.
Delete | Purges the basket instance from the underlying stores.
Dispose (Inherited from OrderGroup) | Releases resources used by this object.
GetEnumerator (Inherited from OrderGroup) | Retrieves the enumerator on this OrderGroup instance.
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
Save | Persists the basket instance to the underlying stores.
SaveAsOrder | Persists the basket instance as a purchase order to the underlying stores.
SetBillingAddress(String) | Sets the billing address property on every order form in the basket.
SetPropertyOnOrderForms(String, Object) | Sets the specified property on every order form in the basket.
SetShippingAddress(String) | Sets the shipping address property on every line item of every order form in the basket.

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the addresses collection associated with the OrderGroup instance.
BasketID | Accesses the BasketID field.
HandlingTotal (Inherited from OrderGroup) | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the OrderFormCollection associated with this OrderGroup object.
OrderGroupID (Inherited from OrderGroup) | Retrieves the ID associated with the OrderGroup instance.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the ShippingTotal property for the OrderForm objects in the OrderGroup instance.
StatusCode | Accesses the order group status code on this basket instance.
SubTotal (Inherited from OrderGroup) | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal property in this OrderGroup instance.
TaxIncluded (Inherited from OrderGroup) | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal (Inherited from OrderGroup) | Retrieves the total amount of tax from the OrderForm.TaxTotal property in this OrderGroup instance.
Total (Inherited from OrderGroup) | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling and tax.
Xml (Inherited from OrderGroup) | Accesses the XML format of the order group instance.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket Methods (BCL)

Public Instance Methods

Method | Description
Add(OrderTemplate) | Adds the items from the specified order template to the basket instance.
Add(PurchaseOrder) | Adds the items from the specified purchase order to the basket instance.
Clear | Clears all the order forms and the addresses associated with the basket instance.
Delete | Purges the basket instance from the underlying stores.
Dispose (Inherited from OrderGroup) | Releases resources used by this object.
GetEnumerator (Inherited from OrderGroup) | Retrieves the enumerator on this OrderGroup instance
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
Save | Persists the basket instance to the underlying stores.
SaveAsOrder | Persists the basket instance as a purchase order to the underlying stores.
SetBillingAddress(String) | Sets the billing address property on every order form in the basket.
SetPropertyOnOrderForms(String, Object) | Sets the specified property on every order form in the basket.
SetShippingAddress(String) | Sets the shipping address property on every line item of every order form in the basket.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Add (OrderTemplate) Method (BCL)

Use this method to add items from the specified order template to this basket instance.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal orderTemplate As OrderTemplate _
)
[C#]
public void Add(
  OrderTemplate orderTemplate
);

Parameters

[Visual Basic .NET]
orderTemplate
The order template instance to add to the basket.
[C#]
orderTemplate
The order template instance to add to the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroup Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Add (PurchaseOrder) Method (BCL)

Use this method to add items from the specified purchase order to this basket instance.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal purchaseOrder As PurchaseOrder _
)
[C#]
public void Add(
  PurchaseOrder purchaseOrder
);

Parameters

[Visual Basic .NET]
purchaseOrder
The purchase order instance to add to the basket.
[C#]
purchaseOrder
The purchase order instance to add to the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroup Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Clear Method (BCL)

Use this method to clear all the order forms and the addresses associated with this basket instance.

Definition

[Visual Basic .NET]
Public Sub Clear( _
)
[C#]
public void Clear(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroup Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Delete Method (BCL)

Use this method to purge the basket instance from the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Delete( _
)
[C#]
public void Delete(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroupManager Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and to optionally release the managed resources.

Definition

[Visual Basic .NET]
Overrides Protected Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected override void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
A Boolean indicating if the object can be disposed.
[C#]
disposing
A Boolean indicating if the object can be disposed.

Remarks

This method releases the resources held by this object, and marks the object as disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.Save Method (BCL)

Use this method to persist the basket to the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Save( _
)
[C#]
public void Save(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroup Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.SaveAsOrder Method (BCL)

Use this method to persist the basket as a purchase order to the underlying stores.

Definition

[Visual Basic .NET]
Public Function SaveAsOrder( _
) As PurchaseOrder
[C#]
public PurchaseOrder SaveAsOrder(
);

Return Value

The saved purchase order instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

OrderGroup Object

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.SetBillingAddress (String) Method (BCL)

Use this method to set the billing address property on every order form in the basket.

Definition

[Visual Basic .NET]
Public Sub SetBillingAddress( _
  ByVal billingAddress As System.String _
)
[C#]
public void SetBillingAddress(
  System.String billingAddress
);

Parameters

[Visual Basic .NET]
billingAddress
The billing address ID.
[C#]
billingAddress
The billing address ID.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.SetPropertyOnOrderForms (String, Object) Method (BCL)

Use this method to set the specified property on every order form in the basket.

Definition

[Visual Basic .NET]
Public Sub SetPropertyOnOrderForms( _
  ByVal keyName As System.String, _
  ByVal keyValue As System.Object _
)
[C#]
public void SetPropertyOnOrderForms(
  System.String keyName,
  System.Object keyValue
);

Parameters

[Visual Basic .NET]
keyName
The name of the property.
keyValue
The value of the property.
[C#]
keyName
The name of the property.
keyValue
The value of the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.SetShippingAddress (String) Method (BCL)

Use this method to set the shipping address property on every line item of every order form in the basket.

Definition

[Visual Basic .NET]
Public Sub SetShippingAddress( _
  ByVal shippingAddress As System.String _
)
[C#]
public void SetShippingAddress(
  System.String shippingAddress
);

Parameters

[Visual Basic .NET]
shippingAddress
The shipping address ID.
[C#]
shippingAddress
The shipping address ID.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket Properties (BCL)

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the addresses collection associated with the OrderGroup instance.
BasketID | Accesses the BasketID field.
HandlingTotal (Inherited from OrderGroup) | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the OrderFormCollection associated with this OrderGroup object.
OrderGroupID (Inherited from OrderGroup) | Retrieves the ID associated with the OrderGroup instance.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the ShippingTotal property for the OrderForm objects in the OrderGroup instance.
StatusCode | Accesses the order group status code on this basket instance.
SubTotal (Inherited from OrderGroup) | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal property in this OrderGroup instance.
TaxIncluded (Inherited from OrderGroup) | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal (Inherited from OrderGroup) | Retrieves the total amount of tax from the OrderForm.TaxTotal property in this OrderGroup instance.
Total (Inherited from OrderGroup) | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling and tax.
Xml (Inherited from OrderGroup) | Accesses the XML format of the order group instance.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.BasketID Property (BCL)

The BasketId property is a read-only Guid that returns the GUID for this basket instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property BasketId As System.Guid
[C#]
public System.Guid BasketId {get;}

Property Value

The GUID for the basket.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


Basket.StatusCode Property (BCL)

The StatusCode property is a read-only integer that contains the order group status code for the basket instance.

Definition

[Visual Basic .NET]
Public Overridable ReadOnly Property StatusCode As System.Int32
[C#]
public virtual System.Int32 StatusCode {get;}

Property Value

The status code for the basket instance.

Remarks

If this property is not set (as is the case for newly created in-memory basket instances), this property returns 1.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


CommerceOrderModule Class (BCL)

Creates the default OrderContext object for the Commerce Server site.

Public Instance Constructor

Constructor | Description
CommerceOrderModule Constructor | Creates a new instance of the CommerceOrderModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.
OnBeginRequest(Object, EventArgs) | Handles events for the HttpApplication object BeginRequest events.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
OrderContext | Gets the OrderContext instance created by the module.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceOrderModule Constructor | Creates a new instance of the CommerceOrderModule class.


CommerceOrderModule Constructor (BCL)

Use this method to create a new CommerceOrderModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceOrderModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.
OnBeginRequest(Object, EventArgs) | Handles events for the HttpApplication object BeginRequest events.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceOrderModule.Init(HttpApplication) Method (BCL)

Use this method to subscribe the class to application BeginRequest events.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The HttpApplication instance that created this module.
[C#]
appInstance
The HttpApplication instance that created this module.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderModule.OnBeginRequest (Object, EventArgs) Method (BCL)

Use this method to handle the HttpApplication object BeginRequest events.

Definition

[Visual Basic .NET]
Public Sub OnBeginRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnBeginRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
The HttpApplication instance that sent the event.
e
The event arguments.
[C#]
sender
The HttpApplication instance that sent the event.
e
The event arguments.

Remarks

Sets the OrderContext member of the current CommerceContext object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
OrderContext | Gets the OrderContext instance created by the module.


CommerceOrderModule.OrderContext Property (BCL)

The OrderContext property is a read-only property that gets the OrderContext instance created by the module.

Definition

[Visual Basic .NET]
Public ReadOnly Property OrderContext As OrderContext
[C#]
public OrderContext OrderContext {get;}

Property Value

The OrderContext instance created by the module.

Remarks

The value will be null if the CommerceOrderModule class was not configured in the web.config file. ASP.NET pages should reference this through the CommerceContext.Current.OrderSystem property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Class (BCL)

Base class for exceptions thrown from the Order System sub system.

Public Instance Constructor

Constructor | Description
CommerceOrderSystemException Constructor | Creates a new instance of the CommerceOrderSystemException class.
CommerceOrderSystemException Constructor(String) | Creates a new instance of the CommerceOrderSystemException class with the specified message string.
CommerceOrderSystemException Constructor(String, Exception) | Creates a new instance of the CommerceOrderSystemException class with the specified message string and specified inner exception.

Protected Instance Constructor

Constructor | Description
CommerceOrderSystemException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceOrderSystemException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceOrderSystemException Constructor | Creates a new instance of the CommerceOrderSystemException class.
CommerceOrderSystemException Constructor(String) | Creates a new instance of the CommerceOrderSystemException class with the specified message string.
CommerceOrderSystemException Constructor(String, Exception) | Creates a new instance of the CommerceOrderSystemException class with the specified message string and specified inner exception.

Protected Instance Constructor

Constructor | Description
CommerceOrderSystemException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceOrderSystemException class with the specified serialization information and streaming context.


CommerceOrderSystemException Constructor (BCL)

Use this method to create a new instance of the CommerceOrderSystemException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceOrderSystemException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceOrderSystemException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceOrderSystemException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization information.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization information.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceOrderSystemException class with the specified message string.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceOrderSystemException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceOrderSystemException class with the specified message string and specified inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceOrderSystemSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The error message.
inner
The exception.
[C#]
message
The error message.
inner
The exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceOrderSystemException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceOrderSystemException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


EuroConversionTable Structure (BCL)

Specifies conversion rates from all 12 European currencies to euros.

Public Static (Shared) Fields

Field | Description
ATS | Austrian schilling to euro conversion rate.
BEF | Belgian franc to euro conversion rate.
DEM | Deutsche mark to euro conversion rate.
ESP | Spanish peseta to euro conversion rate.
FIM | Finnish markka to euro conversion rate.
FRF | French franc to euro conversion rate.
GRD | Greek drachma to euro conversion rate.
IEP | Irish pound to euro conversion rate.
ITL | Italian lira to euro conversion rate.
LUF | Luxembourg franc to euro conversion rate.
NGL | Dutch guilder to euro conversion rate.
PTE | Portuguese escudo to euro conversion rate.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.ATS Property (BCL)

The ATS property is a read only Decimal that converts the Austrian schilling to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property ATS As System.Decimal
[C#]
public static readonly System.Decimal ATS;

Remarks

The default conversion rate is 13.7603M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.BEF Property (BCL)

The BEF property is a read only Decimal that converts the Belgian franc to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property BEF As System.Decimal
[C#]
public static readonly System.Decimal BEF;

Remarks

The default conversion rate is 40.3399M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.DEM Property (BCL)

The DEM property is a read only Decimal that converts the Deutsche mark to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property DEM As System.Decimal
[C#]
public static readonly System.Decimal DEM;

Remarks

The default conversion rate is 1.95583M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.ESP Property (BCL)

The ESP property is a read only Decimal that converts the Spanish peseta to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property ESP As System.Decimal
[C#]
public static readonly System.Decimal ESP;

Remarks

The default conversion rate is 166.386M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.FIM Property (BCL)

The FIM property is a read only Decimal that converts the Finnish markka to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property FIM As System.Decimal
[C#]
public static readonly System.Decimal FIM;

Remarks

The default conversion rate is 5.94573M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.FRF Property (BCL)

The FRF property is a read only Decimal that converts the French franc to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property FRF As System.Decimal
[C#]
public static readonly System.Decimal FRF;

Remarks

The default conversion rate is 6.55957M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.GRD Property (BCL)

The GRD property is a read only Decimal that converts the Greek drachma to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property GRD As System.Decimal
[C#]
public static readonly System.Decimal GRD;

Remarks

The default conversion rate is 340.750M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.IEP Property (BCL)

The IEP property is a read only Decimal that converts the Irish pound to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property IEP As System.Decimal
[C#]
public static readonly System.Decimal IEP;

Remarks

The default conversion rate is 0.787564M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.ITL Property (BCL)

The ITL property is a read only Decimal that converts the Italian lira to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property ITL As System.Decimal
[C#]
public static readonly System.Decimal ITL;

Remarks

The default conversion rate is 1936.27M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.LUF Property (BCL)

The LUF property is a read only Decimal that converts the Luxembourg franc to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property LUF As System.Decimal
[C#]
public static readonly System.Decimal LUF;

Remarks

The default conversion rate is 40.3399M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.NLG Property (BCL)

The NLG property is a read only Decimal that converts the Dutch guilder to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property NLG As System.Decimal
[C#]
public static readonly System.Decimal NLG;

Remarks

The default conversion rate is 2.20371M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


EuroConversionTable.PTE Property (BCL)

The PTE property is a read only Decimal that converts the Portuguese escudo to the euro conversion rate.

Definition

[Visual Basic .NET]
Public Shared ReadOnly Property PTE As System.Decimal
[C#]
public static readonly System.Decimal PTE;

Remarks

The default conversion rate is 200.482M.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem Class (BCL)

Abstracts a line item on an order form. A valid line item must have valid values for the ProductCatalog, ProductID, and Quantity properties.

Public Instance Constructor

Constructor | Description
LineItem Constructor | Creates a new instance of the LineItem class.
LineItem Constructor(String, String, String, Int32) | Creates a new instance of the LineItem class with the specified parameters.

Public Instance Methods

Method | Description
Dispose | Release resources used by this object.
GetEnumerator | Retrieves an enumerator on this collection.
GetHashCode | Overrides the Object.GetHashCode implementation.

Public Instance Properties

Property | Description
Index | Retrieves the index of this item in the owning LineItemCollection collection.
Item(String) | Accesses the specified property on the line item.
ParentOrderForm | Retrieves the order form owning this line item.
ProductCatalog | Accesses the value of the product_catalog field on the line item.
ProductCategory | Accesses the value of the product_category field on the line item.
ProductID | Accesses the value of the product_id field on the line item.
ProductVariantID | Accesses the value of the product_variant_id field on the line item.
Quantity | Accesses the value of the quantity field on the line item.
ShippingAddress | Accesses the value of the shipping_address_id field on the line item.
ShippingMethodID | Accesses the value of the shipping_method_id field on the line item.
ShippingMethodName | Accesses the value of the shipping_method_name field on the line item.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem Constructor (BCL)

Public Instance Constructor

Constructor | Description
LineItem Constructor | Creates a new instance of the LineItem class.
LineItem Constructor(String, String, String, Int32) | Creates a new instance of the LineItem class with the specified parameters.


LineItem Constructor (BCL)

Use this method to create a new instance of the LineItem class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public LineItem(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem Constructor (String, String, String, Int32) (BCL)

Use this method to create a new instance of the LineItem class with the specified parameters.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal productCatalog As System.String, _
  ByVal productID As System.String, _
  ByVal productVariantID As System.String, _
  ByVal quantity As System.Int32 _
)
[C#]
public LineItem(
  System.String productCatalog,
  System.String productID,
  System.String productVariantID,
  System.Int32 quantity
);

Parameters

[Visual Basic .NET]
productCatalog
The product catalog to which this line item belongs.
productID
Product ID for the line item.
productVariantID
Product Variant ID for the line item.
quantity
The number of items being added to the basket.
[C#]
productCatalog
The product catalog to which this line item belongs.
productID
Product ID for the line item.
productVariantID
Product Variant ID for the line item.
quantity
The number of items being added to the basket.

Remarks

Throws ArgumentNullException if the productCatalog or productID parameters are null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Release resources used by this object.
GetEnumerator | Retrieves an enumerator on this collection.
GetHashCode | Overrides the Object.GetHashCode implementation.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


LineItem.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the LineItem.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and optionally to release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

Handle to a LineItemEnumerator instance.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.GetHashCode Method (BCL)

Use this method to override the Object.GetHashCode implementation.

Definition

[Visual Basic .NET]
Overridable Public Function GetHashCode( _
) As System.Int32
[C#]
public virtual System.Int32 GetHashCode(
);

Return Value

An Int32 hash code value.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem Properties (BCL)

Public Instance Properties

Property | Description
Index | Retrieves the index of this item in the owning LineItemCollection collection.
Item(String) | Accesses the specified property on the line item.
ParentOrderForm | Retrieves the order form owning this line item.
ProductCatalog | Accesses the value of the product_catalog field on the line item.
ProductCategory | Accesses the value of the product_category field on the line item.
ProductID | Accesses the value of the product_id field on the line item.
ProductVariantID | Accesses the value of the product_variant_id field on the line item.
Quantity | Accesses the value of the quantity field on the line item.
ShippingAddress | Accesses the value of the shipping_address_id field on the line item.
ShippingMethodID | Accesses the value of the shipping_method_id field on the line item.
ShippingMethodName | Accesses the value of the shipping_method_name field on the line item.


LineItem.Index Property (BCL)

The Index property retrieves the index of this item in the owning LineItemCollection collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property Index As System.Int32
[C#]
public System.Int32 Index {get;}

Property Value

The index of the item in the collection.

Remarks

For newly created line items, this returns -1.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.Item Property (BCL)

The Item property sets or retrieves the specified property on the line item.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal keyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String keyName
) {get; set;}

Parameters

[Visual Basic .NET]
keyName
The name of the property to set.
[C#]
keyName
The name of the property to set.

Property Value

The value of the specified property on the line item.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ParentOrderForm Property (BCL)

The ParentOrderForm property is a read-only property that retrieves the order form owning this line item.

Definition

[Visual Basic .NET]
Public Readonly Property ParentOrderForm As OrderForm
[C#]
public OrderForm ParentOrderForm {get;}

Property Value

The order form that owns the line item.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ProductCatalog Property (BCL)

The ProductCatalog property is a read/write String that accesses the value of the product_catalog field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ProductCatalog As System.String
[C#]
public System.String ProductCatalog {get; set;}

Property Value

The value of the product_catalog field on the underlying Dictionary COM Interop object.

Remarks

If no value has been set, then this method returns null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ProductCategory Property (BCL)

The ProductCategory property is a read/write String that accesses the value of the product_category field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ProductCategory As System.String
[C#]
public System.String ProductCategory {get; set;}

Property Value

The value of the product_category field on the underlying Dictionary COM Interop object.

Remarks

If no value has been set, then this method returns null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ProductID Property (BCL)

The ProductID property is a read/write String that accesses the value of the product_id field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ProductID As System.String
[C#]
public System.String ProductID {get; set;}

Property Value

The value of the product_id field on the underlying Dictionary COM Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ProductVariantID Property (BCL)

The ProductVariantID property is a read/write String that accesses the value of the product_variant_id field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ProductVariantID As System.String
[C#]
public System.String ProductVariantID {get; set;}

Property Value

The product_variant_id field on the underlying Dictionary COM Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.Quantity Property (BCL)

The Quantity property is a read/write Int32 that accesses the value of the quantity field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property Quantity As System.Int32
[C#]
public System.Int32 Quantity {get; set;}

Property Value

The value of the quantity field on the underlying Dictionary COM Interop object.

Remarks

If no quantity field value has been set, then this method returns 0.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ShippingAddress Property (BCL)

The ShippingAddress property is a read/write String that accesses the value of the shipping_address_id field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ShippingAddress As System.String
[C#]
public System.String ShippingAddress {get; set;}

Property Value

The value of the shipping_address_id field on the underlying Dictionary COM Interop object.

Remarks

If no value has been set, then this method returns null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ShippingMethodID Property (BCL)

The ShippingMethodID property is a read/write String that accesses the value of the shipping_method_id field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ShippingMethodID As System.String
[C#]
public System.String ShippingMethodID {get; set;}

Property Value

The value of the shipping_method_id field on the underlying Dictionary COM Interop object.

Remarks

If no value has been set, then this method returns null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItem.ShippingMethodName Property (BCL)

The ShippingMethodName property is a read/write String that accesses the value of the shipping_method_name field on the underlying Dictionary COM Interop object.

Definition

[Visual Basic .NET]
Public Property ShippingMethodName As System.String
[C#]
public System.String ShippingMethodName {get; set;}

Property Value

The value of the shipping_method_name field on the underlying Dictionary COM Interop object.

Remarks

If no value has been set, then this method returns null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection Class (BCL)

Encapsulates the collection of line items associated with the order form.

Public Instance Methods

Method | Description
Add(LineItem) | Adds the specified line item to the collection.
CopyTo(Array, Int32) | Copies the line items to an array, starting at a particular array index.
GetEnumerator | Retrieves an enumerator on this collection.
IndexOf(String, String, String) | Returns the index of the specified item in the line item collection.
Remove(Int32) | Removes the specified line item from the collection, based on index the line item.
Remove(LineItem) | Removes the specified line item from the collection.

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns False.
Item(Int32) | Retrieves a LineItemCollection instance by index.
ParentOrderForm | Retrieves the order form owning this line item.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the LineItemCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(LineItem) | Adds the specified line item to the collection.
CopyTo(Array, Int32) | Copies the line items to an array, starting at a particular array index.
GetEnumerator | Retrieves an enumerator on this collection.
IndexOf(String, String, String) | Returns the index of the specified item in the line item collection.
Remove(Int32) | Removes the specified line item from the collection, based on index the line item
Remove(LineItem) | Removes the specified line item from the collection.


LineItemCollection.Add (LineItem) Method (BCL)

Use this method to add the specified line item to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal lineItem As LineItem _
)
[C#]
public void Add(
  LineItem lineItem
);

Parameters

[Visual Basic .NET]
lineItem
Line item to be added to the collection.
[C#]
lineItem
Line item to be added to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.CopyTo (Array, Int32) Method (BCL)

Use this method copy the LineItems to an Array, starting at a particular Array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

Handle to a LineItemEnumerator instance.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.IndexOf (String, String, String) Method (BCL)

Use this method to retrieve the index of the specified line item in the line item collection.

Definition

[Visual Basic .NET]
Public Function IndexOf( _
  ByVal productCatalogName As System.String, _
  ByVal productId As System.String, _
  ByVal productVariantId As System.String _
) As System.Int32
[C#]
public System.Int32 IndexOf(
  System.String productCatalogName,
  System.String productId,
  System.String productVariantId
);

Parameters

[Visual Basic .NET]
productCatalogName
The name of the catalog.
productId
The ID of product.
productVariantId
The variant ID of the product.
[C#]
productCatalogName
The name of the catalog.
productId
The ID of product.
productVariantId
The variant ID of the product.

Return Value

If a line item with the specified match is found, then this method returns the 0-based index of this line item. Otherwise, it returns Int32.MinValue.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.Remove (LineItem) Method (BCL)

Use this method to remove the specified line item from the collection.

Definition

[Visual Basic .NET]
Public Sub Remove( _
  ByVal lineItem As LineItem _
)
[C#]
public void Remove(
  LineItem lineItem
);

Parameters

[Visual Basic .NET]
lineItem
The line item to be removed from the collection.
[C#]
lineItem
The line item to be removed from the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.Remove (Int32) Method (BCL)

Use this method to remove the specified line item from the collection, based on index the line item

Definition

[Visual Basic .NET]
Public Sub Remove( _
  ByVal itemIndex As System.Int32 _
)
[C#]
public void Remove(
  System.Int32 itemIndex
);

Parameters

[Visual Basic .NET]
itemIndex
The index of the line item to be removed from the collection.
[C#]
itemIndex
The index of the line item to be removed from the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns False.
Item(Int32) | Retrieves a LineItemCollection instance by index.
ParentOrderForm | Retrieves the order form owning this line item.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the LineItemCollection object.


LineItemCollection.Count Property (BCL)

The Count property is a read-only integer indicating the number of elements contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of elements contained in the collection.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized. This implementation always returns False.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized. This implementation always returns False.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.Item Property (BCL)

The Item property is a read-only indexer that allows for accessing a collection indexer by integer index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal itemIndex As System.Int32 _
) As LineItem
[C#]
public LineItem Item(
  System.Int32 itemIndex
) {get;}

Parameters

[Visual Basic .NET]
itemIndex
The index of the item.
[C#]
itemIndex
The index of the item.

Property Value

An indexer for the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.ParentOrderForm Property (BCL)

The ParentOrderForm property is a read-only OrderForm that retrieves the order form owning this line item.

Definition

[Visual Basic .NET]
Public ReadOnly Property ParentOrderForm As OrderForm
[C#]
public virtual OrderForm ParentOrderForm {get;}

Property Value

The order form that owns the line item.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


LineItemCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used to synchronize access to the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used to synchronize access to the collection.

Implements

System.Collection.ICollection

Remarks

This implementation always returns the current instance of the LineItemCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress Class (BCL)

Abstracts an element of the order addresses collection.

Public Instance Constructor

Constructor | Description
OrderAddress Constructor(String, Profile) | Creates a new instance of the OrderAddress class with the specified address name and profile object instance containing address information.
OrderAddress Constructor(String, String) | Creates a new instance of the OrderAddress class with a specified address name and address ID.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.

Public Instance Properties

Property | Description
City | Accesses the value of the city field on the underlying Dictionary COM interop object.
Country | Accesses the value of the ship_to_country field on the underlying Dictionary COM interop object.
CountryName | Accesses the value of the country_code field on the underlying Dictionary COM interop object.
FirstName | Accesses the value of the first_name field on the underlying Dictionary COM interop object.
ID | Accesses the value of the address_id field on the underlying Dictionary COM interop object.
Item(String) | Accesses the value of the specified order address property on the underlying Dictionary COM interop object.
LastName | Accesses the value of the last_name field on the underlying Dictionary COM interop object.
Line1 | Accesses the value of the address_line_1 field on the underlying Dictionary COM interop object.
Line2 | Accesses the value of the address_line_2 field on the underlying Dictionary COM interop object.
Name | Accesses the value of the address_name field on the underlying Dictionary COM interop object.
PostalCode | Accesses the value of the postal_code field on the underlying Dictionary COM interop object.
RegionCode | Accesses the value of the region_code field on the underlying Dictionary COM interop object.
RegionName | Accesses the value of the region_name field on the underlying Dictionary COM interop object.
ShippingAddressID | Accesses the value of the shipping_address_id field on the underlying Dictionary COM interop object.
State | Accesses the value of the ship_to_state field on the underlying Dictionary COM interop object.
TelephoneNumber | Accesses the value of the telephone_number field on the underlying Dictionary COM interop object.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderAddress Constructor(String, Profile) | Creates a new instance of the OrderAddress class with the specified address name and profile object instance containing address information.
OrderAddress Constructor(String, String) | Creates a new instance of the OrderAddress class with a specified address name and address ID.


OrderAddress Constructor (String, Profile) (BCL)

Use this method to create a new instance of the OrderAddress class with the specified address name and profile object instance containing address information.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal addressName As System.String, _
  ByVal address As Profile _
)
[C#]
public OrderAddress(
  System.String addressName,
  Profile address
);

Parameters

[Visual Basic .NET]
addressName
Name of this address object.
address
Profile object to copy address information from.
[C#]
addressName
Name of this address object.
address
Profile object to copy address information from.

Remarks

This method copies property values from the specified profile object into the order address dictionary using the addressMap tag defined in the web.config file for the application. If no addressMap tag is specified, then the default addressMap tag is used.

Throws ArgumentNullException if the addressName or address parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress Constructor (String, String) (BCL)

Use this method to create a new instance of the OrderAddress class with the specified address name and address ID.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal addressName As System.String, _
  ByVal addressID As System.String _
)
[C#]
public OrderAddress(
  System.String addressName,
  System.String addressID
);

Parameters

[Visual Basic .NET]
addressName
Name of this address object.
addressID
The address ID.
[C#]
addressName
Name of this address object.
addressID
The address ID.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases managed resources.


OrderAddress.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the OrderAddress.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress Properties (BCL)

Public Instance Properties

Property | Description
City | Accesses the value of the city field on the underlying Dictionary COM interop object.
Country | Accesses the value of the ship_to_country field on the underlying Dictionary COM interop object.
CountryName | Accesses the value of the country_code field on the underlying Dictionary COM interop object.
FirstName | Accesses the value of the first_name field on the underlying Dictionary COM interop object.
ID | Accesses the value of the address_id field on the underlying Dictionary COM interop object.
Item(String) | Accesses the value of the specified order address property on the underlying Dictionary COM interop object.
LastName | Accesses the value of the last_name field on the underlying Dictionary COM interop object.
Line1 | Accesses the value of the address_line_1 field on the underlying Dictionary COM interop object.
Line2 | Accesses the value of the address_line_2 field on the underlying Dictionary COM interop object.
Name | Accesses the value of the address_name field on the underlying Dictionary COM interop object.
PostalCode | Accesses the value of the postal_code field on the underlying Dictionary COM interop object.
RegionCode | Accesses the value of the region_code field on the underlying Dictionary COM interop object.
RegionName | Accesses the value of the region_name field on the underlying Dictionary COM interop object.
ShippingAddressID | Accesses the value of the shipping_address_id field on the underlying Dictionary COM interop object.
State | Accesses the value of the ship_to_state field on the underlying Dictionary COM interop object.
TelephoneNumber | Accesses the value of the telephone_number field on the underlying Dictionary COM interop object.


OrderAddress.City Property (BCL)

The City property is a read/write String that accesses the value of the city field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property City As System.String
[C#]
public System.String City {get; set;}

Property Value

This property accesses the city field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Country Property (BCL)

The Country property is a read/write String that accesses the value of the ship_to_country field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property Country As System.String
[C#]
public System.String Country {get; set;}

Property Value

This property accesses the ship_to_country field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.CountryName Property (BCL)

The CountryName property is a read/write String that accesses the value of the country_code field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property CountryName As System.String
[C#]
public System.String CountryName {get; set;}

Property Value

This property accesses the country_code field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.FirstName Property (BCL)

The FirstName property is a read/write String that accesses the value of the first_name field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property FirstName As System.String
[C#]
public System.String FirstName {get; set;}

Property Value

This property accesses the first_name field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.ID Property (BCL)

The AddressID property is a read/write String that accesses the value of the address_id field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property ID As System.String
[C#]
public System.String ID {get; set;}

Property Value

This property accesses the address_id field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Item Property (BCL)

The Item property is a read/write Object that accesses the value of the specified order address property on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal keyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String keyName
) {get; set;}

Parameters

[Visual Basic .NET]
keyName
Name of the property.
[C#]
keyName
Name of the property.

Property Value

This property accesses the specified order address property on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.LastName Property (BCL)

The LastName property is a read/write String that accesses the value of the last_name field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property LastName As System.String
[C#]
public System.String LastName {get; set;}

Property Value

This property accesses the last_name field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Line1 Property (BCL)

The Line1 property is a read/write String that accesses the value of the address_line_1 field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property Line1 As System.String
[C#]
public System.String Line1 {get; set;}

Property Value

This property accesses the address_line_1 field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Line2 Property (BCL)

The Line2 property is a read/write String that accesses the value of the address_line_2 field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property Line2 As System.String
[C#]
public System.String Line2 {get; set;}

Property Value

This property accesses the address_line_2 field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.Name Property (BCL)

The Name property is a read/write String that accesses the value of the address_name field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property Name As System.String
[C#]
public System.String Name {get; set;}

Property Value

This property accesses the address_name field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.PostalCode Property (BCL)

The PostalCode property is a read/write String that accesses the value of the postal_code field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property PostalCode As System.String
[C#]
public System.String PostalCode {get; set;}

Property Value

This property accesses the postal_code field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.RegionCode Property (BCL)

The RegionCode property is a read/write String that accesses the value of the region_code field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property RegionCode As System.String
[C#]
public System.String RegionCode {get; set;}

Property Value

This property accesses the region_code field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.RegionName Property (BCL)

The RegionName property is a read/write String that accesses the value of the region_name field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property RegionName As System.String
[C#]
public System.String RegionName {get; set;}

Property Value

This property accesses the region_name field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.ShippingAddressID Property (BCL)

The ShippingAddressID property is a read/write String that accesses the value of the shipping_address_id field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property ShippingAddressID As System.String
[C#]
public System.String ShippingAddressID {get; set;}

Property Value

This property accesses the shipping_address_id field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.State Property (BCL)

The State/Province property is a read/write String that accesses the value of the ship_to_state field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property State As System.String
[C#]
public System.String State {get; set;}

Property Value

This property accesses the ship_to_state field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddress.TelephoneNumber Property (BCL)

The TelephoneNumber property is a read/write String that accesses the value of the telephone_number field on the underlying Dictionary COM interop object.

Definition

[Visual Basic .NET]
Public Property TelephoneNumber As System.String
[C#]
public System.String TelephoneNumber {get; set;}

Property Value

This property accesses the telephone_number field on the underlying Dictionary COM interop object.

Remarks

If the specified key is not set, then the value returned is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection Class (BCL)

Collection of addresses associated with an order form.

Public Instance Methods

Method | Description
Add(OrderAddress) | Adds the specified order address to the collection.
CopyTo(Array, Int32) | Copies the elements of this collection into the specified array.
GetEnumerator | Retrieves an enumerator on this collection.

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns a value of False.
Item(String) | Retrieves an order address by address ID.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of OrderAddressCollection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(OrderAddress) | Adds the specified order address to the collection.
CopyTo(Array, Int32) | Copies the elements of this collection in to the specified array.
GetEnumerator | Retrieves an enumerator on this collection.


OrderAddressCollection.Add (OrderAddress) Method (BCL)

Use this method to add the specified order address to the OrderAddressCollection collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal orderAddress As OrderAddress _
)
[C#]
public void Add(
  OrderAddress orderAddress
);

Parameters

[Visual Basic .NET]
orderAddress
The order address to add to the collection.
[C#]
orderAddress
The order address to add to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the elements of this collection in to the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Target buffer to copy data to.
index
The zero-based index of array at which copying starts.
[C#]
array
Target buffer to copy data to.
index
The zero-based index of array at which copying starts.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on the collection.

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

The handle to an OrderAddressEnumerator object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns a value of False.
Item(String) | Retrieves an order address by address ID.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the OrderAddressCollection class.


OrderAddressCollection.Count Property (BCL)

The Count property is a read-only Int32 indicating the number of elements contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of elements contained in the collection.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: W indows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized. This implementation always returns a value of False.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized. This implementation always returns a value of False.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection.Item Property (BCL)

The Item property is a read-only indexer that allows for accessing a collection indexer by address ID.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal addressID As System.String _
) As OrderAddress
[C#]
public OrderAddress Item(
  System.String addressID
) {get;}

Parameters

[Visual Basic .NET]
addressID
The address ID.
[C#]
addressID
The address ID.

Property Value

An indexer for the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderAddressCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only Object that can be used to synchronize access to the ICollection. This implementation always returns the current instance of OrderAddressCollection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The Object used to synchronize access to the collection.

Implements

System.Collection.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderContext Class (BCL)

Represents a connection to a transactions database. The construction of an OrderGroup object requires an OrderContext object. A default OrderContext object is created by the Commerce Server .NET Application Framework if the CommerceOrderModule is configured in the web.config file and if a transactions resource exists for the site.

Public Instance Constructor

Constructor | Description
OrderContext Constructor(String, DebugContext) | Creates a new instance of the OrderContext class with the specified connection string and DebugContext object.

Public Instance Methods

Method | Description
CreateOrderTemplate(Guid) | Creates a new order template instance.
GetBasket(Guid) | Retrieves an existing basket instance, or creates a new one if it does not exist.
GetOrderTemplate(Guid, Guid) | Retrieves an existing order template instance.
GetPurchaseOrder(Guid, Guid) | Retrieves an existing purchase order instance.
GetShippingMethods(String, String, String[]) | Returns the list of configured shipping methods as specified by the input parameters.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderContext Constructor(String, DebugContext) | Creates a new instance of the OrderContext class with the specified connection string and DebugContext object.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext Constructor (String, DebugContext) (BCL)

Use this method to create a new instance of the OrderContext class with the specified connection string and DebugContext object.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal connectionString As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public OrderContext(
  System.String connectionString,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
connectionString
The connection string. May not be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will appear to the user. May not be null.
[C#]
connectionString
The connection string. May not be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will appear to the user. May not be null.

Remarks

Throws ArgumentNullException if either required parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext Methods (BCL)

Public Instance Methods

Method | Description
CreateOrderTemplate(Guid) | Creates a new order template instance.
GetBasket(Guid) | Retrieves an existing basket instance, or creates a new one if it does not exist.
GetOrderTemplate(Guid, Guid) | Retrieves an existing order template instance.
GetPurchaseOrder(Guid, Guid) | Retrieves an existing purchase order instance.
GetShippingMethods(String, String, String[]) | Returns the list of configured shipping methods as specified by the input parameters.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext.CreateOrderTemplate (Guid) Method (BCL)

Use this method to create a new order template instance.

Definition

[Visual Basic .NET]
Public Function CreateOrderTemplate( _
  ByVal userID As System.Guid _
) As OrderTemplate
[C#]
public OrderTemplate CreateOrderTemplate(
  System.Guid userID
);

Parameters

[Visual Basic .NET]
userID
The ID of the user owning this template (Guid structure).
[C#]
userID
The ID of the user owning this template (Guid structure).

Return Value

A new OrderTemplate class instance.

Remarks

When a template is created, a unique template ID is automatically assigned. The order group ID for a template is the same as the template ID.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext.GetBasket (Guid) Method (BCL)

Use this method to retrieve an existing basket instance, or create a new one if it does not exist.

Definition

[Visual Basic .NET]
Public Function GetBasket( _
  ByVal basketID As System.Guid _
) As Basket
[C#]
public Basket GetBasket(
  System.Guid basketID
);

Parameters

[Visual Basic .NET]
basketID
The OrderGroupID property for baskets is set equal to the basketID. The user ID for the current user is most commonly used as the basketID.
[C#]
basketID
The OrderGroupID property of a basket is set to the basket ID. The userID for the current user is most commonly used as the basketID.

Return Value

The existing populated basket instance, or a new empty basket instance, if one is not found.

Example

using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Orders;

private OrderGroup CreateBasket()
{
   CommerceContext csContext = CommerceContext.Current;

   // Get the user's user Id
   //Guid userID = new Guid(csContext.UserID);
   // For this sample, we'll generate a new Unique UserID:
   Guid userID = Guid.NewGuid();

   // GetBasket() will load a user's existing basket, if it exists,
   // otherwise it will create a new, empty basket
   Basket basket = csContext.OrderSystem.GetBasket(userID);

   // If this is a new basket, then create a default OrderForm
   if (basket.OrderForms.Count < 1)
      basket.OrderForms.Add(new OrderForm("default"));

   return basket;
}

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext.GetOrderTemplate (Guid, Guid) Method (BCL)

Use this method to retrieve an existing order template instance.

Definition

[Visual Basic .NET]
Public Function GetOrderTemplate( _
  ByVal userID As System.Guid, _
  ByVal orderTemplateID As System.Guid _
) As OrderTemplate
[C#]
public OrderTemplate GetOrderTemplate(
  System.Guid userID,
  System.Guid orderTemplateID
);

Parameters

[Visual Basic .NET]
userID
The ID of the user owning this template.
orderTemplateID
The template ID of the order template instance.
[C#]
userID
The ID of the user owning this template.
orderTemplateID
The template ID of the order template instance.

Return Value

An OrderTemplate class instance, if one is found. Null, otherwise.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext.GetPurchaseOrder (Guid, Guid) Method (BCL)

Use this method to retrieve an existing purchase order instance.

Definition

[Visual Basic .NET]
Public Function GetPurchaseOrder( _
  ByVal userID As System.Guid, _
  ByVal orderID As System.Guid _
) As PurchaseOrder
[C#]
public PurchaseOrder GetPurchaseOrder(
  System.Guid userID,
  System.Guid orderID
);

Parameters

[Visual Basic .NET]
userID
The ID of the user owning the basket.
orderID
The order ID of the purchase order.
[C#]
userID
The ID of the user owning the basket.
orderID
The order ID of the purchase order.

Return Value

The purchase order instance, if one is found. Null, otherwise.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderContext.GetShippingMethods (String, String, String[]) Method (BCL)

Use this method to get the list of configured shipping methods as specified by the input parameters.

Definition

[Visual Basic .NET]
Public Function GetShippingMethods( _
  ByVal sqlFilter As System.String, _
  ByVal orderBy As System.String _
  ByVal columnsToReturn As System.String[] _
) As System.Data.Dataset
[C#]
public System.Data.Dataset GetShippingMethods(
  System.String sqlFilter,
  System.String orderBy
  System.String[] columnsToReturn
);

Parameters

[Visual Basic .NET]
sqlFilter
The SQL WHERE clause to apply. Can be null.
orderBy
The SQL ORDER BY clause to apply. Can be null.
columnsToReturn
The list of columns to return. Can be an empty array but cannot be null.
[C#]
sqlFilter
The SQL WHERE clause to apply. Can be null.
orderBy
The SQL ORDER BY clause to apply. Can be null.
columnsToReturn
The list of columns to return. Can be an empty array but cannot be null.

Return Value

The data set containing a data table containing the requested information about the required shipping methods.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Class (BCL)

Encapsulates an order form instance.

Public Instance Constructor

Constructor | Description
OrderForm Constructor | Creates a new instance of the OrderForm class.
OrderForm Constructor(String) | Creates a new instance of the OrderForm class with the specified attributes.
OrderForm Constructor (IOrderForm) | Creates a new instance of the OrderForm class with the specified attributes.
OrderForm Constructor (IOrderForm, String) | Creates a new instance of the OrderForm class with the specified attributes.

Public Instance Methods

Method | Description
Clear | Clears all the line items associated with the order form.
Dispose | Releases resources used by this object.
GetEnumerator | Retrieves an enumerator on this collection from the underlying OrderForm COM Interop object.
SetShippingAddress(String) | Sets the specified shipping address on the order form.

Public Instance Properties

Property | Description
BillingAddress | Retrieves or set the billing_address_id on the order form.
Dictionary | Retrieves the underlying IDictionary interop object.
DiscountsApplied | Gets a collection of the discounts applied for this order form.
HandlingTotal | Retrieves the value of the _cy_handling_total key on the order group instance.
Item(String) | Retrieves or set the value of the specified order form property.
LineItems | Retrieves the line items collection associated with the order form.
Name | Retrieves the order form name.
ParentOrderGroup | Retrieves the order group owning this order form.
ShippingTotal | Retrieves the value of the _cy_shipping_total key from the underlying OrderForm COM interop object.
SubTotal | Retrieves the value of the _cy_oadjust_subtotal key on the order group instance.
TaxIncluded | Retrieves the value of the _cy_tax_included key on the order group instance.
TaxTotal | Retrieves the value of the _cy_tax_total key on the order group instance.
Total | Retrieves the value of the _cy_total_total key on the order group instance.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderForm Constructor | Creates a new instance of the OrderForm class.
OrderForm Constructor(String) | Creates a new instance of the OrderForm class with the specified attributes.
OrderForm Constructor(IOrderForm) | Creates a new instance of the OrderForm class with the specified attributes.
OrderForm Constructor(IOrderForm, String) | Creates a new instance of the OrderForm class with the specified attributes.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Constructor (BCL)

Use this method to create a new instance of the OrderForm class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public OrderForm(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Constructor (String) (BCL)

Use this method to create a new instance of the OrderForm class with the specified attributes.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal orderFormName As System.String _
)
[C#]
public OrderForm(
  System.String orderFormName
);

Parameters

[Visual Basic .NET]
orderFormName
The order form name.
[C#]
orderFormName
The order form name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Constructor (IOrderForm) (BCL)

Use this method to create a new instance of the OrderForm class with the specified attributes.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal orderForm As Microsoft.CommerceServer.Interop.Orders.IOrderForm _
)
[C#]
public OrderForm(
  Microsoft.CommerceServer.Interop.Orders.IOrderForm orderForm
);

Parameters

[Visual Basic .NET]
orderForm
The OrderForm object.
[C#]
orderForm
The OrderForm object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Constructor (IOrderForm, String) (BCL)

Use this method to create a new instance of the OrderForm class with the specified attributes.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal orderForm As Microsoft.CommerceServer.Interop.Orders.IOrderForm _
  ByVal orderFormName As System.String _
)
[C#]
public OrderForm(
  ByVal orderForm As Microsoft.CommerceServer.Interop.Orders.IOrderForm _
  System.String orderFormName
);

Parameters

[Visual Basic .NET]
orderForm
The OrderForm object.
orderFormName
The OrderForm object name.
[C#]
orderForm
The OrderForm object.
orderFormName
The OrderForm object name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Methods (BCL)

Public Instance Methods

Method | Description
Clear | Clears all the line items associated with the order form.
Dispose | Releases resources used by this object.
Dictionary | Retrieves the underlying IDictionary Interop object.
GetEnumerator | Retrieves an enumerator on this collection from the underlying OrderForm COM interop object.
SetShippingAddress(String) | Sets the specified shipping address on the order form.

Protected Instance Methods

Method | Description
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Clear Method (BCL)

Use this method to clear all the line items associated with the order form.

Definition

[Visual Basic .NET]
Public Sub Clear( _
)
[C#]
public void Clear(
);

Remarks

This method delegates to the ClearItems method on the underlying order form object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and optionally to release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the Microsoft .NET Framework Software Development Kit (SDK) documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on this collection from the underlying OrderForm COM Interop object.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

Th handle to a LineItemEnumerator instance.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.SetShippingAddress (String) Method (BCL)

Use this method to set the specified shipping address on the order form.

Definition

[Visual Basic .NET]
Public Sub SetShippingAddress( _
  ByVal shippingAddress As System.String _
)
[C#]
public void SetShippingAddress(
  System.String shippingAddress
);

Parameters

[Visual Basic .NET]
shippingAddress
The shipping address ID.
[C#]
shippingAddress
The shipping address ID.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm Properties (BCL)

Public Instance Properties

Property | Description
BillingAddress | Retrieve or set the billing_address_id key on the order form.
Dictionary | Retrieves the underlying IDictionary interop object.
DiscountsApplied | Gets a collection of the discounts applied for this order form.
HandlingTotal | Retrieves the value of the _cy_handling_total key on the order group instance.
Item(String) | Retrieves or sets the value of the specified order form property.
LineItems | Retrieves the line items collection associated with the order form.
Name | Retrieves the order form name.
ParentOrderGroup | Retrieves the order group owning this order form.
ShippingTotal | Retrieves the value of the _cy_shipping_total key from the underlying OrderForm COM Interop object.
SubTotal | Retrieves the value of the _cy_oadjust_subtotal key on the order group instance.
TaxIncluded | Retrieves the value of the _cy_tax_included key on the order group instance.
TaxTotal | Retrieves the value of the _cy_tax_total key on the order group instance.
Total | Retrieves the value of the _cy_total_total key on the order group instance.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.BillingAddress Property (BCL)

The BillingAddress property is a read/write string that retrieves or sets the billing_address_id key on the order form.

Definition

[Visual Basic .NET]
Public Property BillingAddress As System.String
[C#]
public System.String BillingAddress {get; set;}

Property Value

The billing_address_id key on the order form.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Dictionary Property (BCL)

The Dictionary property is a read-only IDictionary that gets the underlying IDictionary Interop object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Dictionary As IDictionary
[C#]
public IDictionary Dictionary {get;}

Property Value

The underlying IDictionary Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.DiscountsApplied Property (BCL)

The DiscountsApplied property is a read-only ContentItemCollection that gets a collection of the discounts applied for this order form.

Definition

[Visual Basic .NET]
Public ReadOnly Property DiscountsApplied As ContentItemCollection
[C#]
public ContentItemCollection DiscountsApplied {get;}

Property Value

The discounts applied for this order form.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.HandlingTotal Property (BCL)

The HandlingTotal property is a read-only decimal that retrieves the value of the _cy_handling_total key on the order group instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property HandlingTotal As System.Decimal
[C#]
public System.Decimal HandlingTotal {get;}

Property Value

The value of the _cy_handling_total key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Item Property (BCL)

The Item property is a read/write object that retrieves or sets the value of the specified order form property.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal keyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String keyName
) {get; set;}

Parameters

[Visual Basic .NET]
keyName
The name of the property.
[C#]
keyName
The name of the property.

Property Value

The value of the specified order form property

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.LineItems Property (BCL)

The LineItems property is a read-only LineItemsCollection that retrieves the line items collection associated with the order form.

Definition

[Visual Basic .NET]
Public ReadOnly Property LineItems As LineItemCollection
[C#]
public LineItemCollection LineItems {get;}

Property Value

The line items collection associated with the order form.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Name Property (BCL)

The Name property is a read-only string that retrieves the order form name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

The order form name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.ParentOrderGroup Property (BCL)

The ParentOrderGroup property is a read-only OrderGroup that retrieves the order group owning this line item.

Definition

[Visual Basic .NET]
Public ReadOnly Property ParentOrderGroup As OrderGroup
[C#]
public virtual OrderGroup ParentOrderGroup {get;}

Property Value

The order group that owns the line item.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.ShippingTotal Property (BCL)

The ShippingTotal property is a read-only decimal that retrieves the value of the _cy_shipping_total key from the underlying OrderForm COM interop object.

Definition

[Visual Basic .NET]
Public ReadOnly Property ShippingTotal As System.Decimal
[C#]
public System.Decimal ShippingTotal {get;}

Property Value

The _cy_shipping_total key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.SubTotal Property (BCL)

The SubTotal property is a read-only decimal that retrieves the value of the _cy_oadjust_subtotal key on the order group instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property SubTotal As System.Decimal
[C#]
public Decimal SubTotal {get;}

Property Value

The value of the _cy_oadjust_subtotal key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.TaxIncluded Property (BCL)

The TaxIncluded property is a read-only decimal that retrieves the value of the _cy_tax_included key on the order group instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property TaxIncluded As System.Decimal
[C#]
public System.Decimal TaxIncluded {get;}

Property Value

The value of the _cy_tax_included key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.TaxTotal Property (BCL)

The TaxTotal property is a read-only decimal that retrieves the value of the _cy_tax_total key on the order group instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property TaxTotal As System.Decimal
[C#]
public System.Decimal TaxTotal {get;}

Property Value

The value of the _cy_tax_total key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderForm.Total Property (BCL)

The Total property is a read-only decimal that retrieves the value of the _cy_total_total key on the order group instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property Total As System.Decimal
[C#]
public System.Decimal Total {get;}

Property Value

The value of the _cy_total_total key on the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderFormCollection Class (BCL)

Encapsulates the collection of order forms on an order group object.

Public Instance Methods

Method | Description
Add(OrderForm) | Adds the specified order form to the collection.
Clear | Purges all the order forms from the collection.
CopyTo(Array, Int32) | Copies the elements of this collection into the specified array.
GetEnumerator | Retrieves an enumerator on this collection.
Remove(OrderForm) | Removes the specified order form from the collection.
Remove(String) | Removes the specified order form from the collection.

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns a value of False.
Item(Int32) | Retrieves the specified order form from the collection.
Item(String) | Retrieves the specified order form from the collection.
ParentOrderGroup | Retrieves the order group owning this order form.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the OrderFormCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(OrderForm) | Adds the specified order form to the collection.
Clear | Purges all the order forms from the collection.
CopyTo(Array, Int32) | Copies the elements of this collection in to the specified array.
GetEnumerator | Retrieves an enumerator on this collection.
Remove(OrderForm) | Removes the specified order form from the collection.
Remove(String) | Removes the specified order form from the collection.


OrderFormCollection.Add (OrderForm) Method (BCL)

Use this method to add the specified order form to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal orderForm As OrderForm _
)
[C#]
public void Add(
  OrderForm orderForm
);

Parameters

[Visual Basic .NET]
orderForm
The OrderForm class instance to add to the collection.
[C#]
orderForm
The OrderForm class instance to add to the collection.

Remarks

This method internally invokes the AddItem method on the underlying OrderGroup COM interop object.

If you have two OrderGroup objects, OrderGroup1 and OrderGroup2, then you retrieve OrderForm1 from OrderGroup1. Then you call OrderGroup2.OrderForms.Add(OrderForm1), then OrderForm1 is cloned and copied to OrderGroup2. OrderForm1 is now modified to point to the copied instance in OrderGroup2.

Example

using Microsoft.CommerceServer.Runtime;
using Microsoft.CommerceServer.Runtime.Orders;

private OrderGroup CreateBasket()
{
   CommerceContext csContext = CommerceContext.Current;

   // Get the user's user Id
   //Guid userID = new Guid(csContext.UserID);
   // For this sample, we'll generate a new Unique UserID:
   Guid userID = Guid.NewGuid();

   // GetBasket() will load a user's existing basket, if it exists,
   // otherwise it will create a new, empty basket
   Basket basket = csContext.OrderSystem.GetBasket(userID);

   // If this is a new basket, then create a default OrderForm
   if (basket.OrderForms.Count < 1)
      basket.OrderForms.Add(new OrderForm("default"));

   return basket;
}

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.Clear Method (BCL)

Use this method to purge all the order forms from the collection.

Definition

[Visual Basic .NET]
Public Sub Clear( _
)
[C#]
public void Clear(
);

Remarks

This method wraps the Clear method on the underlying OrderGroup COM Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the elements of this collection in to the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Target buffer to copy data to.
index
The zero-based index of array at which copying starts.
[C#]
array
The target buffer to copy data to.
index
The zero-based index of array at which copying starts.

Implements

System.Collection.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

The handle to an OrderFormEnumerator class instance.

Implements

System.Collection.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.Remove (String) Method (BCL)

Use this method to remove the specified order form from the collection.

Definition

[Visual Basic .NET]
Public Sub Remove( _
  ByVal orderFormName As System.String _
)
[C#]
public void Remove(
  System.String orderFormName
);

Parameters

[Visual Basic .NET]
orderFormName
The name of the OrderForm object to remove from the collection.
[C#]
orderFormName
The name of the OrderForm object to remove from the collection.

Remarks

This method internally invokes the RemoveOrderForm method on the underlying OrderGroup COM Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.Remove (OrderForm) Method (BCL)

Use this method to remove the specified order form from the collection.

Definition

[Visual Basic .NET]
Public Sub Remove( _
  ByVal orderForm As OrderForm _
)
[C#]
public void Remove(
  OrderForm orderForm
);

Parameters

[Visual Basic .NET]
orderForm
The OrderForm object to remove from the collection.
[C#]
orderForm
The OrderForm object to remove from the collection.

Remarks

This method internally invokes the RemoveOrderForm method on the underlying OrderGroup COM Interop object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns a value of False.
Item(Int32) | Retrieves the specified order form from the collection.
Item(String) | Retrieves the specified order form from the collection.
ParentOrderGroup | Retrieves the order group owning this order form.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns the current instance of the OrderFormCollection object.


OrderFormCollection.Count Property (BCL)

The Count property is a read-only integer indicating the number of elements contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of elements contained in the collection.

Implements

System.Collection.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized. This implementation always returns False.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collection.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.Item(Int32) Property (BCL)

The Item property is a read-only indexer that allows for accessing a collection indexer by integer index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As OrderForm
[C#]
public OrderForm Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
The index of the order form.
[C#]
index
The index of the order form.

Property Value

The OrderForm object for the specified index.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.Item (String) Property (BCL)

The Item property is a read-only property that allows for accessing a collection indexer by the OrderForm object name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal name As System.String _
) As OrderForm
[C#]
public OrderForm Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
The name of the OrderForm object.
[C#]
name
The name of the OrderForm object.

Property Value

The OrderForm object for the specified index.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.ParentOrderGroup Property (BCL)

The ParentOrderGroup property is a read-only OrderGroup that retrieves the order group owning this line item.

Definition

[Visual Basic .NET]
Public ReadOnly Property ParentOrderGroup As OrderGroup
[C#]
public virtual OrderGroup ParentOrderGroup {get;}

Property Value

The OrderGroup object that owns the line item.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderFormCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used to synchronize access to ICollection. This implementation always returns the current instance of OrderFormCollection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The Object used to synchronize access to the collection.

Implements

System.Collection.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroup Class (BCL)

The OrderGroup class is the abstract base class for all OrderGroup types in the Commerce Server order system.

The OrderGroup class represents a purchasing unit, such as a basket, purchase order, order template, or any other user-defined type. The only way to programmatically differentiate these is by using the order_status_code top-level OrderGroup property. The Commerce Server.NET-based order system refines this approach by exposing the three fundamental OrderGroup object types, Basket, PurchaseOrder and OrderTemplate, as first-class entities derived from the OrderGroup abstract class.

Protected Instance Constructor

Constructor | Description
OrderGroup Constructor | Creates a new instance of the OrderGroup class.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetEnumerator | Retrieves the enumerator on this OrderGroup instance.
RunPipeline(PipelineInfo) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) | Runs the stages of the specified pipeline.

Public Instance Properties

Property | Description
Addresses | Retrieves the collection of addresses associated with the OrderGroup instance.
HandlingTotal | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name | Accesses the order group name.
OrderForms | Retrieves the OrderFormCollection associated with this OrderGroup object.
OrderGroupID | Retrieves the ID associated with the OrderGroup instance.
ShippingTotal | Retrieves the value of the ShippingTotal properties for the OrderForm objects in the OrderGroup instance.
StatusCode | Accesses the order group status code on this OrderGroup instance.
SubTotal | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal properties in this OrderGroup instance.
TaxIncluded | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal | Retrieves the total amount of tax from the OrderForm.TaxTotal properties in this OrderGroup instance.
Total | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling and tax.
Xml | Accesses the XML persistence format of the OrderGroup instance.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup Constructor (BCL)

Protected Instance Constructor

Constructor | Description
OrderGroup Constructor | Creates a new instance of the OrderGroup class.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup Constructor (BCL)

Use this method to create a new instance of the OrderGroup class.

Definition

[Visual Basic .NET]
Protected Sub New( _
)
[C#]
protected OrderGroup(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetEnumerator | Retrieves the enumerator on this OrderGroup instance.
RunPipeline(PipelineInfo) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) | Runs the stages of the specified pipeline.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Dispose Method (BCL)

Use this method to release resources used by the object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Remarks

This method calls the OrderGroup.Dispose(True) method to dispose of the resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Dispose (Boolean) Method (BCL)

Use this method release the unmanaged resources used by this class and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this is called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this is called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see Microsoft .NET Framework Software Development Kit (SDK) documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.GetEnumerator Method (BCL)

Use this method to retrieve an enumerator on this OrderGroup instance.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

The handle to the to the LineItemEnumerator instance.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.RunPipeline (PipelineInfo) Method (BCL)

Use this method to execute the stages of a specified pipeline.

Definition

[Visual Basic .NET]
Public Sub RunPipeline( _
  ByVal pipelineInfo As PipelineInfo _
)
[C#]
public void RunPipeline(
  PipelineInfo pipelineInfo
);

Parameters

[Visual Basic .NET]
pipelineInfo
The prespecified information used during pipeline processing.
[C#]
pipelineInfo
The prespecified information used during pipeline processing.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.RunPipeline (PipelineInfo, PipelineBase) Method (BCL)

Use this method to execute the stages of a specified pipeline.

Definition

[Visual Basic .NET]
Public Sub RunPipeline( _
  ByVal pipelineInfo As PipelineInfo, _
  ByVal pipeline As PipelineBase _
)
[C#]
public void RunPipeline(
  PipelineInfo pipelineInfo,
  PipelineBase pipeline
);

Parameters

[Visual Basic .NET]
pipelineInfo
The prespecified information used during pipeline processing.
pipeline
The pipeline to run on the OrderGroup object. Cannot be null.
[C#]
pipelineInfo
The prespecified information used during pipeline processing.
pipeline
The pipeline to run on the OrderGroup object. Cannot be null.

Remarks

Throws an ArgumentNullException if the pipeline parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup Properties (BCL)

Public Instance Properties

Property | Description
Addresses | Retrieves the collection of addresses associated with the OrderGroup instance.
HandlingTotal | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name | Accesses the order group name.
OrderForms | Retrieves the OrderFormCollection associated with this OrderGroup object.
OrderGroupID | Retrieves the ID associated with the OrderGroup instance.
ShippingTotal | Retrieves the value of the ShippingTotal properties for the OrderForm objects in the OrderGroup instance.
StatusCode | Accesses the order group status code on this OrderGroup instance.
SubTotal | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal properties in this OrderGroup instance.
TaxIncluded | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal | Retrieves the total amount of tax from the OrderForm.TaxTotal properties in this OrderGroup instance.
Total | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling, and tax.
Xml | Accesses the XML persistence format of the OrderGroup instance.

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Addresses Property (BCL)

The Address property is a read-only OrderAddressCollection that retrieves the collection of addresses associated with the OrderGroup object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Addresses As OrderAddressCollection
[C#]
public OrderAddressCollection Addresses {get;}

Property Value

The Address property retrieves the collection of addresses associated with the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.HandlingTotal Property (BCL)

The HandlingTotal property is a read-only decimal that retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property HandlingTotal As System.Decimal
[C#]
public System.Decimal HandlingTotal {get;}

Property Value

The HandlingTotal property retrieves the OrderForm.HandlingTotal property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Item Property (BCL)

The Item property is a read/write object that retrieves and sets the value of a top-level property on the OrderGroup object.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal keyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String keyName
) {get; set;}

Parameters

[Visual Basic .NET]
keyName
The name of the property to set or retrieve.
[C#]
keyName
The name of the property to set or retrieve.

Property Value

The value of the property to set or retrieve on the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.LineItemCount Property (BCL)

The LineItemCount property is a read-only Int32 that retrieves the count of all the line items on all the OrderForm objects in the OrderGroup object.

Definition

[Visual Basic .NET]
Public ReadOnly Property LineItemCount As System.Int32
[C#]
public System.Int32 LineItemCount {get;}

Property Value

The count of all the line items on all the OrderForm objects in the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Name Property (BCL)

The Name property is a read/write String that accesses the OrderGroup name.

Definition

[Visual Basic .NET]
Public Property Name As System.String
[C#]
public System.String Name {get; set;}

Property Value

The OrderGroup name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.OrderForms Property (BCL)

The OrderForms property is a read-only OrderFormCollection that retrieves the OrderForm collection associated with the OrderGroup object.

Definition

[Visual Basic .NET]
Public ReadOnly Property OrderForms As OrderFormCollection
[C#]
public OrderFormCollection OrderForms {get;}

Property Value

The OrderFormCollection object associated with the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.OrderGroupID Property (BCL)

The OrderGroupID property is a read-only Guid containing the GUID for the OrderGroup object.

Definition

[Visual Basic .NET]
Public ReadOnly Property OrderGroupID As System.Guid
[C#]
public System.Guid OrderGroupID {get;}

Property Value

The OrderGroupID property for the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroup.ShippingTotal Property (BCL)

The ShippingTotal property is a read-only decimal that retrieves the shipping total from the OrderForm.ShippingTotal properties in this OrderGroup instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property ShippingTotal As System.Decimal
[C#]
public System.Decimal ShippingTotal {get;}

Property Value

The shipping total for the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.StatusCode Property (BCL)

The StatusCode property is a read-only Int32 that retrieves the order group status code on this OrderGroup instance.

Definition

[Visual Basic .NET]
Public Overridable ReadOnly Property StatusCode As System.Int32
[C#]
public virtual System.Int32 StatusCode {get;}

Property Value

The status code for the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.SubTotal Property (BCL)

The SubTotal property is a read-only decimal that retrieves the subtotal for the OrderGroup object from the OrderForm.Subtotal properties in this OrderGroup instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property SubTotal As System.Decimal
[C#]
public Decimal SubTotal {get;}

Property Value

The subtotal for the OrderGroup object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.TaxIncluded Property (BCL)

The TaxIncluded property is a read-only Decimal that retrieves the OrderGroup instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property TaxIncluded As System.Decimal
[C#]
public System.Decimal TaxIncluded {get;}

Property Value

The OrderGroup instance total including tax.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.TaxTotal Property (BCL)

The TaxTotal property is a read-only decimal that retrieves the total amount of tax from the OrderForm.TaxTotal properties in this OrderGroup instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property TaxTotal As System.Decimal
[C#]
public System.Decimal TaxTotal {get;}

Property Value

The tax totals from the associated OrderForm objects.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Total Property (BCL)

The Total property is a read-only decimal that retrieves the total amount for the order group instance. This amount includes shipping, handling, and tax.

Definition

[Visual Basic .NET]
Public ReadOnly Property Total As System.Decimal
[C#]
public System.Decimal Total {get;}

Property Value

The totals from the associated OrderForm objects.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroup.Xml Property (BCL)

The Xml property is a read/write String that retrieves and sets the XML persistence format of the order group instance.

Definition

[Visual Basic .NET]
Public Property Xml As System.String
[C#]
public System.String Xml {get; set;}

Property Value

The XML persistence format of the order group instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Example Code for the Microsoft.CommerceServer.Runtime.Orders Namespace


OrderGroupSearch Class (BCL)

Abstraction of specifying criteria for order group searches.

Public Instance Constructors

Constructor | Description
OrderGroupSearch Constructor | Creates a new instance of the OrderGroupSearch class.
OrderGroupSearch (OrderContext) Constructor | Creates a new instance of the OrderGroupSearch class using the given order context.

Public Instance Methods

Method | Description
Search(OrderGroupSearchOptions) | Performs the specified search for order group information, and returns it as a DataSet.

Public Instance Properties

Property | Description
DateTimeColumnName | DateTime column name of interest for this search.
Description | Product description.
EndDateTime | DateTime search end value.
FirstName | First name of the user of interest.
LastName | Last name of the user of interest.
OrderContext | Gets or sets the OrderContext object to use for search.
OrderGroupID | Order group ID to search for.
OrderNumber | Order number to search for.
OrderStatusFilter | Specifies order group status codes to search for.
ProductID | Product ID to search for.
StartDateTime | DateTime search start value.
UserID | User ID to search for.
UserOrganizationID | User organization ID to search for.
UserOrganizationName | User organization name to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderGroupSearch Constructor | Creates a new instance of the OrderGroupSearch class.
OrderGroupSearch (OrderContext) Constructor | Creates a new instance of the OrderGroupSearch class using the given order context.


OrderGroupSearch Constructor (BCL)

Use this method to create a new instance of the OrderGroupSearch class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public OrderGroupSearch(
);

Remarks

Constructs the OrderGroupSearch object using the CommerceContext.Current.OrderSystem object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch (OrderContext) Constructor (BCL)

Use this method to create a new instance of the OrderGroupSearch class using the given order context.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal ordercontext As OrderContext _
)
[C#]
public OrderGroupSearch(
  OrderContext ordercontext,
);

Parameters

[Visual Basic .NET]
ordercontext
The OrderContext object to use.
[C#]
ordercontext
The OrderContext object to use.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch Method (BCL)

Public Instance Methods

Method | Description
Search(OrderGroupSearchOptions) | Performs the specified search for order group information, and returns it as a DataSet.


OrderGroupSearch.Search (OrderGroupSearchOptions) Method (BCL)

Use this method to perform the specified search for order group information, and return it as a DataSet.

Definition

[Visual Basic .NET]
Public Function Search( _
  ByVal OrderGroupSearchOptions As OrderGroupSearchOptions _
) As System.Data.DataSet
[C#]
public System.Data.DataSet Search(
  OrderGroupSearchOptions OrderGroupSearchOptions
);

Parameters

[Visual Basic .NET]
orderGroupSearchOptions
OrderGroupSearchOptions instance to use.
[C#]
orderGroupSearchOptions
OrderGroupSearchOptions instance to use.

Return Value

DataSet containing the search results.

Remarks

This method wraps the SimpleFind method on the OrderGroupManager PIA object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch Properties (BCL)

Public Instance Properties

Property | Description
DateTimeColumnName | DateTime column name of interest for this search.
Description | Product description.
EndDateTime | DateTime search end value.
FirstName | First name of the user of interest.
LastName | Last name of the user of interest.
OrderContext | Gets or sets the OrderContext object to use for search.
OrderGroupID | Order group ID to search for.
OrderNumber | Order number to search for.
OrderStatusFilter | Specifies order group status codes to search for.
ProductID | Product ID to search for.
StartDateTime | DateTime search start value.
UserID | User ID to search for.
UserOrganizationID | User organization ID to search for.
UserOrganizationName | User organization name to search for.


OrderGroupSearch.DateTimeColumnName Property (BCL)

The DateTimeColumnName property is a read/write String that contains the name of the DateTime column.

Definition

[Visual Basic .NET]
Public Property DateTimeColumnName As System.String
[C#]
public System.String DateTimeColumnName {get; set;}

Property Value

The name of the DateTime column.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.Description Property (BCL)

The Description property is a read/write String containing the product description.

Definition

[Visual Basic .NET]
Public Property Description As System.String
[C#]
public System.String Description {get; set;}

Property Value

The product description.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.EndDateTime Property (BCL)

The EndDateTime property is a read/write Datetime that contains the search DateTime end value.

Definition

[Visual Basic .NET]
Public Property EndDateTime As System.DateTime
[C#]
public System.DateTime EndDateTime {get; set;}

Property Value

The search DateTime end value.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.FirstName Property (BCL)

The FirstName property is a read/write String that contains the first name of the user of interest.

Definition

[Visual Basic .NET]
Public Property FirstName As System.String
[C#]
public System.String FirstName {get; set;}

Property Value

The first name of the user of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.LastName Property (BCL)

The LastName property is a read/write String that contains the last name of the user of interest.

Definition

[Visual Basic .NET]
Public Property LastName As System.String
[C#]
public System.String LastName {get; set;}

Property Value

The last name of the user of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.OrderContext Property (BCL)

The OrderContext property is a read/write OrderContext that gets or sets the OrderContext object for the search.

Definition

[Visual Basic .NET]
Public Property OrderContext As OrderContext
[C#]
public OrderContext OrderContext {get; set;}

Property Value

The OrderContext object for the search.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.OrderGroupID Property (BCL)

The OrderGroupSearchID is a read/write Guid that contains the order group ID to search for.

Definition

[Visual Basic .NET]
Public Property OrderGroupID As System.Guid
[C#]
public System.Guid OrderGroupID {get; set;}

Property Value

The order group ID to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.OrderNumber Property (BCL)

The OrderNumber property is a read/write String that contains the order number to search for.

Definition

[Visual Basic .NET]
Public Property OrderNumber As System.String
[C#]
public System.String OrderNumber {get; set;}

Property Value

The order number to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.OrderStatusFilter Property (BCL)

The OrderStatusFilter property is a read/write Int that specifies the order group status codes to search for.

Definition

[Visual Basic .NET]
Public Property OrderStatusFilter As System.Int32
[C#]
public System.Int32 OrderStatusFilter {get; set;}

Property Value

The order group status codes to search for. For more information, see OrderGroup.StatusCode.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.ProductID Property (BCL)

The ProductID property is a read/write String that contains the product ID to search for.

Definition

[Visual Basic .NET]
Public Property ProductID As System.String
[C#]
public System.String ProductID {get; set;}

Property Value

The product ID to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.StartDateTime Property (BCL)

The StartDateTime property is a read/write Datetime that specifies the DateTime search start value.

Definition

[Visual Basic .NET]
Public Property StartDateTime As System.DateTime
[C#]
public System.DateTime StartDateTime {get; set;}

Property Value

The DateTime search start value.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.UserID Property (BCL)

The UserID property is a read/write Guid containing the user ID to search for.

Definition

[Visual Basic .NET]
Public Property UserID As System.Guid
[C#]
public System.Guid UserID {get; set;}

Property Value

The user ID to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.UserOrganizationID Property (BCL)

The UserOrganizationID property is a read/write Guid that contains the user organization ID to search for.

Definition

[Visual Basic .NET]
Public Property UserOrganizationID As System.Guid
[C#]
public System.Guid UserOrganizationID {get; set;}

Property Value

The user organization ID to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearch.UserOrganizationName Property (BCL)

The UserOrganizationName property is a read/write String that contains the user organization name to search for.

Definition

[Visual Basic .NET]
Public Property UserOrganizationName As System.String
[C#]
public System.String UserOrganizationName {get; set;}

Property Value

The user organization name to search for.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions Class (BCL)

Absracts order group search results specification.

Public Instance Constructor

Constructor | Description
OrderGroupSearchOptions Constructor | Creates a new instance of the OrderGroupSearchOptions class.

Public Instance Properties

Property | Description
Columns | Columns of interest.
FetchLineItemInformation | Indicates whether line item information should be retrieved from the database or not.
FetchOrderFormInformation | Specifies whether order form information should be retrieved as part of the search operation, or not.
PageNumber | Sets the page number of interest.
PageSize | Sets the page size.
SortColumnName | Column to sort by.
SortResultsInAscendingOrder | Specifies whether results should be retrieved sorted by ascending order on the sort column name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderGroupSearchOptions Constructor | Creates a new instance of the OrderGroupSearchOptions class.


OrderGroupSearchOptions Constructor (BCL)

Use this method to create a new instance of the OrderGroupSearchOptions class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public OrderGroupSearchOptions(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions Properties (BCL)

Public Instance Properties

Property | Description
Columns | Columns of interest.
FetchLineItemInformation | Indicates whether line item information should be retrieved from the database or not.
FetchOrderFormInformation | Specifies whether order form information should be retrieved as part of the search operation, or not.
PageNumber | Sets the page number of interest.
PageSize | Sets the page size.
SortColumnName | Column to sort by.
SortResultsInAscendingOrder | Specifies whether results should be retrieved sorted by ascending order on the sort column name.


OrderGroupSearchOptions.Columns Property (BCL)

The Columns property is a read-only StringCollection containing a the columns of interest.

Definition

[Visual Basic .NET]
Public ReadOnly Property Columns As System.Collections.Specialized.StringCollection
[C#]
public System.Collections.Specialized.StringCollection Columns {get;}

Property Value

The column name of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.FetchLineItemInformation Property (BCL)

The FetchLineItemInformation property is a read/write Boolean indicating whether line item information should be retrieved from the database or not.

Definition

[Visual Basic .NET]
Public Property FetchLineItemInformation As System.Boolean
[C#]
public System.Boolean FetchLineItemInformation {get; set;}

Property Value

Retrieves the line item information.

Remarks

The default value is False.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.FetchOrderFormInformation Property (BCL)

The FetchOrderFormInformation property is a read/write Boolean that specifies whether order form information should be retrieved as part of the search operation, or not.

Definition

[Visual Basic .NET]
Public Property FetchOrderFormInformation As System.Boolean
[C#]
public System.Boolean FetchOrderFormInformation {get; set;}

Property Value

The order form information.

Remarks

The default value for this property is False.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.PageNumber Property (BCL)

The PageNumber property is a read/write Int32 that sets page number of interest.

Definition

[Visual Basic .NET]
Public Property PageNumber As System.Int32
[C#]
public System.Int32 PageNumber {get; set;}

Property Value

The page number.

Remarks

The default value is 1.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.PageSize Property (BCL)

The PageSize property is a read/write Int32 that sets page size.

Definition

[Visual Basic .NET]
Public Property PageSize As System.Int32
[C#]
public System.Int32 PageSize {get; set;}

Property Value

The size of the page.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.SortColumnName Property (BCL)

The SortColumnName property is a read/write String that contains the column to sort by.

Definition

[Visual Basic .NET]
Public Property SortColumnName As System.String
[C#]
public System.String SortColumnName {get; set;}

Property Value

The column name to sort by.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderGroupSearchOptions.SortResultsInAscendingOrder Property (BCL)

The SortResultsInAscendingOrder property is a read/write Boolean that specifies whether results should be retrieved sorted by ascending order on the sort column name.

Definition

[Visual Basic .NET]
Public Property SortResultsInAscendingOrder As System.Boolean
[C#]
public System.Boolean SortResultsInAscendingOrder {get; set;}

Property Value

The search results in ascending order.

Remarks

If the sort column is not specified, then this property is ignored.

The default value is True.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate Class (BCL)

Encapsulates an order template in the Commerce order system. To create an OrderTemplate instance use the OrderContext.CreateOrderTemplate method.

Public Instance Methods

Method | Description
Clear | Clears all the order forms and the addresses associated with the OrderTemplate object.
Delete | Purges the OrderTemplate object from the underlying stores.
Dispose (Inherited from OrderGroup) | Releases resources used by this object.
GetEnumerator (Inherited from OrderGroup) | Retrieves an enumerator on this collection.
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
Save | Persists the state of the OrderTemplate object with the specified template name to the underlying stores.
Save(String) | Persists the state of the OrderTemplate object with the specified template name to the underlying stores.

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the collection of addresses associated with the OrderTemplate object.
HandlingTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_handling_total key on the OrderGroup object.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderTemplate object.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the order forms collection associated with this order group object.
OrderGroupID (Inherited from OrderGroup) | Accesses the order_group_id key on the OrderGroup.Value dictionary.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_shipping_total key on the OrderTemplate object.
StatusCode | Accesses the order group status code on the OrderTemplate object.
SubTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_oadjust_subtotal key on the OrderTemplate object.
TaxIncluded (Inherited from OrderGroup) | Retrieves the value of the saved_cy_tax_included key on the OrderTemplate object.
TaxTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_tax_total key on the OrderTemplate object.
TemplateId | Retrieves the template ID of the OrderTemplate object.
Total (Inherited from OrderGroup) | Retrieves the value of the saved_cy_total_total key on the OrderTemplate object.
UserId | Retrieves the ID of the user associated with the OrderTemplate object.
Xml (Inherited from OrderGroup) | Accesses the XML format of the OrderTemplate object.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases managed resources.

Remarks

An OrderTemplate object can be used to represent wish lists, recurring orders, shopping lists, or any other form of saved shopping basket. Multiple templates can exist for each user.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate Methods (BCL)

Public Instance Methods

Method | Description
Clear | Clears all the order forms and the addresses associated with the OrderTemplate object.
Delete | Purges the OrderTemplate object from the underlying stores.
Dispose (Inherited from OrderGroup) | Releases the unmanaged resources used by this class and optionally releases managed resources.
GetEnumerator (Inherited from OrderGroup) | Retrieves an enumerator on the collection.
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Runs the stages of the specified pipeline.
Save | Persists the state of the OrderTemplate object with the specified template name to the underlying stores.
Save(String) | Persists the state of the OrderTemplate object with the specified template name to the underlying stores.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


OrderTemplate.Clear Method (BCL)

Use this method to clear all the order forms and the addresses associated with the OrderGroup object.

Definition

[Visual Basic .NET]
Public Sub Clear( _
)
[C#]
public void Clear(
);

Remarks

This method wraps the Clear method of the OrderGroup class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.Delete Method (BCL)

Use this method to purge the OrderTemplate object from the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Delete( _
)
[C#]
public void Delete(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this class and optionally release managed resources.

Definition

[Visual Basic .NET]
Overrides Protected Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected override void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the Microsoft .NET Framework Software Development Kit (SDK) documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.Save Method (BCL)

Use this method to persist the state of the OrderTemplate object to the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Save( _
)
[C#]
public void Save(
);

Remarks

The name of the template defaults to null.

This method wraps the SaveAsTemplate method on the Microsoft.CommerceServer.Interop.Orders.OrderGroupFreeThreaded type.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.Save (String) Method (BCL)

Use this method to persist the state of the OrderTemplate object with the specified template name to the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Save( _
  ByVal orderTemplateName As System.String _
)
[C#]
public void Save(
  System.String orderTemplateName
);

Parameters

[Visual Basic .NET]
orderTemplateName
Name of the OrderTemplate.
[C#]
orderTemplateName
Name of the OrderTemplate.

Remarks

This method wraps the SaveAsTemplate method on the Microsoft.CommerceServer.Interop.OrderGroup type.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate Properties (BCL)

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the collection of addresses associated with the OrderTemplate object.
HandlingTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_handling_total key on the OrderGroup object.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderTemplate object.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the order forms collection associated with this OrderGroup object.
OrderGroupID (Inherited from OrderGroup) | Accesses the order_group_id key on the OrderGroup.Value dictionary.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_shipping_total key on the OrderTemplate object.
StatusCode | Accesses the order group status code on the OrderTemplate object.
SubTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_oadjust_subtotal key on the OrderTemplate object.
TaxIncluded (Inherited from OrderGroup) | Retrieves the value of the saved_cy_tax_included key on the OrderTemplate object.
TaxTotal (Inherited from OrderGroup) | Retrieves the value of the saved_cy_tax_total key on the OrderTemplate object.
TemplateId | Retrieves the template ID of this OrderTemplate object.
Total (Inherited from OrderGroup) | Retrieves the value of the saved_cy_total_total key on the OrderTemplate object.
UserId | Retrieves the ID of the user associated with this OrderTemplate object .
Xml (Inherited from OrderGroup) | Accesses the XML format of the OrderTemplate object.


OrderTemplate.StatusCode Property (BCL)

The StatusCode property is a read-only Int32 that retrieves the order group status code on the OrderTemplate class. This property overrides the StatusCode property from the parent OrderGroup abstract class.

Definition

[Visual Basic .NET]
Overrides Public ReadOnly Property StatusCode As System.Int32
[C#]
public override System.Int32 StatusCode {get;}

Property Value

The order group status code on this OrderTemplate object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.TemplateId Property (BCL)

The TemplateId property is a read-only Guid that retrieves the template ID of this OrderTemplate object.

Definition

[Visual Basic .NET]
Public ReadOnly Property TemplateId As System.Guid
[C#]
public System.Guid TemplateId {get;}

Property Value

The template ID of this OrderTemplate object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


OrderTemplate.UserId Property (BCL)

The UserId property is a read-only Guid that retrieves the ID of the user associated with this OrderTemplate class.

Definition

[Visual Basic .NET]
Public ReadOnly Property UserId As System.Guid
[C#]
public System.Guid UserId {get;}

Property Value

A Guid containing the ID of the user associated with this OrderTemplate class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo Class (BCL)

Encapsulates the context dictionary passed down to execute a pipeline.

Public Instance Constructor

Constructor | Description
PipelineInfo Constructor(String) | Creates a new instance of the PipelineInfo class with the specified pipeline name.

Public Instance Properties

Property | Description
CacheManager | Accesses the CacheManager member.
CatalogContext | Accesses the CatalogContext member.
Item(String) | Accesses the indexer by name.
Language | Accesses the language member.
ProfileContext | Accesses the ProfileContext member.
Profiles | Gets the collection of profiles to use for targeting during the execution of the pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo Constructor (BCL)

Public Instance Constructor

Constructor | Description
PipelineInfo Constructor(String) | Creates a new instance of the PipelineInfo class with the specified pipeline name.


PipelineInfo Constructor (String) (BCL)

Use this method to create a new instance of the PipelineInfo class with the specified pipeline name.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal pipelineName As System.String _
)
[C#]
public PipelineInfo(
  System.String pipelineName
);

Parameters

[Visual Basic .NET]
pipelineName
The name of the pipeline of interest.
[C#]
pipelineName
The name of the pipeline of interest.

Remarks

This method initializes the language property to CultureInfo.CurrentUICulture.

This method sets CacheManager, CatalogManager, ProfileService, and MessageManager keys.

For the Basket pipeline, this method also stores the CatalogConnectionString, Evaluator, and CacheName keys.

For the Total pipeline, this method also stores the TransactionConfig and ConnectionString keys.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo Properties (BCL)

Public Instance Properties

Property | Description
CacheManager | Accesses the CacheManager member.
CatalogContext | Accesses the CatalogContext member.
Item(String) | Accesses the indexer by name.
Language | Accesses the language member.
ProfileContext | Accesses the ProfileContext member.
Profiles | Gets the collection of profiles to use for targeting during the execution of the pipeline.


PipelineInfo.CacheManager Property (BCL)

The CacheManager property is a read/write CacheManager object that gets and sets the current CacheManager object.

Definition

[Visual Basic .NET]
Public Property CacheManager As Microsoft.CommerceServer.Interop.Caching.CacheManager
[C#]
public Microsoft.CommerceServer.Interop.Caching.CacheManager CacheManager {get; set;}

Property Value

The current CacheManager class instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo.CatalogContext Property (BCL)

The CatalogContext property is a read/write CatalogContext object that gets or sets the current CatalogContext class instance.

Definition

[Visual Basic .NET]
Public Property CatalogContext As CatalogContext
[C#]
public CatalogContext CatalogContext {get; set;}

Property Value

The current CatalogContext class instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo.Item Property (BCL)

The Item property is a read/write Object that sets and retrieves the item at the specified index.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal keyName As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String keyName
) {get; set;}

Parameters

[Visual Basic .NET]
keyName
The name of the key to get or set.
[C#]
keyName
The name of the key to get or set.

Property Value

The name of the specified key.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo.Language Property (BCL)

The Language property is a read/write String that sets the language in which the pipeline runs.

Definition

[Visual Basic .NET]
Public Property Language As System.String
[C#]
public System.String Language {get; set;}

Property Value

The language setting. The default value is CultureInfo.CurrentUICulture.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo.ProfileContext Property (BCL)

The ProfileContext property is a write-only ProfileContext object that sets the ProfileContext to use for targeting during the execution of the pipeline.

Definition

[Visual Basic .NET]
Public WriteOnly Property ProfileContext As ProfileContext
[C#]
public ProfileContext ProfileContext {set;}

Property Value

The current ProfileContext object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineInfo.Profiles Property (BCL)

The Profiles property is a read-only TargetingProfileCollection object that sets the collection of profiles to use for targeting during the execution of the pipeline.

Definition

[Visual Basic .NET]
Public ReadOnly Property Profiles As TargetingProfileCollection
[C#]
public TargetingProfileCollection Profiles {get;}

Property Value

The TargetingProfileCollection that sets the collection of profiles to use for targeting during the execution of the pipeline.

Example

The following example shows how to target both the User profile and TargetingContext profile:
 CommerceContext ctx = CommerceContext.Current;
             pipeInfo = new PipelineInfo("basket")
             pipeInfo.Profiles.Add("User", ctx.UserProfile);
             pipeInfo.Profiles.Add("TargetingContext", ctx.TargetingSystem.TargetingContextProfile);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PurchaseOrder Class (BCL)

This class encapsulates a saved order in the Commerce Server order system. The user and the order ID must both be specified to create an instance of this class.

Public Instance Methods

Method | Description
Dispose (Inherited from OrderGroup) | Releases resources used by this object.
GetEnumerator (Inherited from OrderGroup) | Retrieves an enumerator on this collection.
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Executes the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Executes the stages of the specified pipeline.
Save | Saves the modifications to the purchase order to the underlying stores.

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the collection of addresses associated with the OrderGroup instance.
HandlingTotal (Inherited from OrderGroup) | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the order form collection associated with this OrderGroup object.
OrderGroupID (Inherited from OrderGroup) | Retrieves the ID associated with the OrderGroup instance.
PurchaseOrderID | Retrieves the order group ID associated with this purchase order instance. The value is returned as a GUID structure.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the ShippingTotal properties for the OrderForm objects in the OrderGroup instance.
StatusCode (Inherited from OrderGroup) | Accesses the order group status code on this OrderGroup instance.
SubTotal (Inherited from OrderGroup) | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal properties in this OrderGroup instance.
TaxIncluded (Inherited from OrderGroup) | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal (Inherited from OrderGroup) | Retrieves the total amount of tax from the OrderForm.TaxTotal properties in this OrderGroup instance.
Total (Inherited from OrderGroup) | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling, and tax.
TrackingNumber | Accesses the tracking number associated with this purchase order instance.
Xml (Inherited from OrderGroup) | Accesses the XML format of the order group instance.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PurchaseOrder Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from OrderGroup) | Releases resources used by this object.
GetEnumerator (Inherited from OrderGroup) | Retrieves an enumerator on this collection.
RunPipeline(PipelineInfo) (Inherited from OrderGroup) | Executes the stages of the specified pipeline.
RunPipeline(PipelineInfo, PipelineBase) (Inherited from OrderGroup) | Executes the stages of the specified pipeline.
Save | Saves the modifications to the purchase order to the underlying stores.

Protected Instance Methods

Method | Description
CheckState (Inherited from OrderGroup) | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the the unmanaged resources used by this class and optionally releases the managed resources.


PurchaseOrder.Dispose (Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and to optionally release the managed resources.

Definition

[Visual Basic .NET]
Overrides Protected Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected override void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
A value of True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
A value of True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the Microsoft .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PurchaseOrder.Save Method (BCL)

Use this method to save the modifications to the purchase order to the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Save( _
)
[C#]
public void Save(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PurchaseOrder Properties (BCL)

Public Instance Properties

Property | Description
Addresses (Inherited from OrderGroup) | Retrieves the collection of addresses associated with the OrderGroup instance.
HandlingTotal (Inherited from OrderGroup) | Retrieves OrderForm.HandlingTotal properties in the OrderGroup instance.
Item(String) (Inherited from OrderGroup) | Retrieves and sets the value of a top-level property on the OrderGroup object.
LineItemCount (Inherited from OrderGroup) | Retrieves the count of all the line items on all the forms in the OrderGroup instance.
Name (Inherited from OrderGroup) | Accesses the order group name.
OrderForms (Inherited from OrderGroup) | Retrieves the order form collection associated with this OrderGroup object.
OrderGroupID (Inherited from OrderGroup) | Retrieves the ID associated with the OrderGroup instance.
PurchaseOrderID | Retrieves the order group ID associated with this ourchase order instance. The value is returned as a Guid structure.
ShippingTotal (Inherited from OrderGroup) | Retrieves the value of the ShippingTotal properties for the OrderForm objects in the OrderGroup instance.
StatusCode (Inherited from OrderGroup) | Accesses the order group status code on this OrderGroup instance.
SubTotal (Inherited from OrderGroup) | Retrieves the subtotal for the order group instance from the OrderForm.Subtotal properties in this OrderGroup instance.
TaxIncluded (Inherited from OrderGroup) | Retrieves the order group instance total, including tax from the OrderForm.TaxIncluded properties in this OrderGroup instance.
TaxTotal (Inherited from OrderGroup) | Retrieves the total amount of tax from the OrderForm.TaxTotal properties in this OrderGroup instance.
Total (Inherited from OrderGroup) | Retrieves the total amount for the OrderGroup instance. This amount includes shipping, handling, and tax.
TrackingNumber | Accesses the tracking number associated with this purchase order instance.
Xml (Inherited from OrderGroup) | Accesses the XML format of the order group instance.


PurchaseOrder.PurchaseOrderID Property (BCL)

The PurchaseOrderID property is a read-only Guid that retrieves the order group ID associated with this purchase order instance.

Definition

[Visual Basic .NET]
Public ReadOnly Property PurchaseOrderID As System.Guid
[C#]
public System.Guid PurchaseOrderID {get;}

Property Value

The order group ID associated with this purchase order instance

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PurchaseOrder.TrackingNumber Property (BCL)

The TrackingNumber property is a read/write String that accesses the tracking number associated with this purchase order instance.

Definition

[Visual Basic .NET]
Public Property TrackingNumber As System.String
[C#]
public System.String TrackingNumber {get; set;}

Property Value

The tracking number associated with this purchase order instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Orders Namespace

Examples

Example | Description
Code to Manipulate a Basket on an ASP.NET Web Form | Describes how to manipulate a basket on an ASP.NET Web form.
Code to Set Shipping Methods on a Basket on an ASP.NET Web Form | Describes how to set shipping methods on a basket.
Code to Dump an Order Form | Describes how to dump the contents of an order form.


Code to Manipulate a Basket on an ASP.NET Web Form

Use the following code to manipulate a basket on an ASP.NET Web form.

<%@ Page Language="C#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Orders" %>

<script language="C#" runat="server">

    void Page_Load(object source, EventArgs args) {
        if (!IsPostBack) {
            UpdateBasket();
        }
    }

    void UpdateBasket() {

        OrderContext orders = CommerceContext.Current.OrderSystem;

        // This requires that the CommerceContext.UserID property already
        // be set.  It can either be set dynamically if using Commerce Server
        // authentication, or manually.
        Basket shoppingCart =
            orders.GetBasket(new System.Guid(CommerceContext.Current.UserID));

        // If the shopping cart has just been created, no order forms
        // will exist and thus, it is unusable.  So a new, default
        // order form must be added.
        if (shoppingCart.OrderForms.Count == 0) {
            shoppingCart.OrderForms.Add(new OrderForm("default"));
        }

        // Execute the product pipeline to ensure we have the latest product
        // information in the basket.
        shoppingCart.RunPipeline(new PipelineInfo("basket"));

        // Bind the default order form to the Repeater control used for
        // displaying its contents.
        BasketListing.DataSource = shoppingCart.OrderForms["default"].LineItems;
        BasketListing.DataBind();

        // Update information about the order.
        SubTotal.Text = String.Format("{0:C}", shoppingCart.SubTotal);

        // This data will not be available after running the basket pipeline
        // alone.
        Tax.Text = String.Format("{0:C}", shoppingCart.TaxTotal);
        Total.Text = String.Format("{0:C}", shoppingCart.Total);

        shoppingCart.Save();
    }

    void AddBtn_Click(object source, EventArgs args) {

        OrderContext orders = CommerceContext.Current.OrderSystem;

        // Create and populate an instance of the LineItem class
        // that will be added to the order.  If a product variation
        // was being added, the VariantID would need to be specified
        // for the LineItem instance.
        LineItem item = new LineItem();
        item.ProductCatalog = "Adventure Works Catalog";
        item.ProductID = "AW013-08";
        item.Quantity = 1;

        try {

            // This requires that the CommerceContext.UserID property already
            // be set.  It can either be set dynamically if using Commerce Server
            // authentication, or manually.
            Basket shoppingCart =
                orders.GetBasket(new System.Guid(CommerceContext.Current.UserID));

            // Try to add the new line item.  If it fails, we will
            // present the user with a friendly error message.
            shoppingCart.OrderForms["default"].LineItems.Add(item);

            // Execute the product pipeline to ensure we have the latest product
            // information in the basket.
            shoppingCart.RunPipeline(new PipelineInfo("basket"));

            shoppingCart.Save();

        } catch (Exception exc) {

            Status.Text = "Basket unavailable.";
            BasketListing.Visible = false;
            AddBtn.Visible = false;
            return;

        }

        UpdateBasket();
    }

</script>

<html>
<head>
<title>Modify a basket</title>
</head>

<body>

<form runat="server">

    <asp:Label
        id="Status"
        runat="server"/>
    <br/>

    <asp:Button
        id="AddBtn"
        text="Add Item"
        OnClick="AddBtn_Click"
        runat="server"/>
    &nbsp;
    <br/>

    <asp:Repeater
        id="BasketListing"
        runat="server">

        <HeaderTemplate>
            <table width="100%">
                <tr>
                    <td width="35">
                        <b>Qty</b>
                    </td>
                    <td width="175">
                        <b>Product</b>
                    </td>
                    <td width="50">
                        <b>Price</b>
                    </td>
                </tr>
        </HeaderTemplate>

        <ItemTemplate>
                <tr>
                    <td width="35">
                        <%# DataBinder.Eval(Container.DataItem, "Quantity") %>
                    </td>
                    <td width="175">
                        <%# DataBinder.Eval(Container.DataItem, "[_product_name]") %>
                    </td>
                    <td width="50">
                        <%# DataBinder.Eval(Container.DataItem, "[_product_cy_list_price]", "{0:C}") %>
                    </td>
                </tr>
        </ItemTemplate>

        <FooterTemplate>
            </table>
        </FooterTemplate>

    </asp:Repeater>

    <table border="0" width="100%">
        <tr>
            <td colspan="4">
                <hr>
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Subtotal</b>
            </td>
            <td align="right">
                <asp:label id="SubTotal" runat="server" />
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Tax</b>
            </td>
            <td align="right">
                <asp:label id="Tax" runat="server" />
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Grand Total</b>
            </td>
            <td align="right">
                <b><asp:label id="Total" runat="server" /></b>
            </td>
        </tr>
    </table>

</form>

</body>
</html>

See Also

Basket Class (BCL)

CommerceContext Class (BCL)

OrderContext Class (BCL)

OrderForm Class (BCL)

OrderGroup Class (BCL)


Code to Set Shipping Methods on a Basket on an ASP.NET Web Form

Use the following code to set shipping methods on a basket.

<%@ Page Language="C#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Orders" %>
<%@ Import Namespace="System.Data" %>

<script language="C#" runat="server">

    DataSet shippingMethods;

    void Page_Load(object source, EventArgs args) {
        if (!IsPostBack) {
            UpdateBasket();
            shippingMethods = GetShippingMethods();
            Page.DataBind();
        }
    }

    void UpdateBasket() {

        OrderContext orders = CommerceContext.Current.OrderSystem;

        // This requires that the CommerceContext.UserID property already
        // be set.  It can either be set dynamically if using Commerce Server
        // authentication, or manually.
        Basket shoppingCart =
            orders.GetBasket(new System.Guid(CommerceContext.Current.UserID));

        // If the shopping cart has just been created, no order forms
        // will exist and thus, it is unusable.  So a new, default
        // order form must be added.
        if (shoppingCart.OrderForms.Count == 0) {
            shoppingCart.OrderForms.Add(new OrderForm("default"));
        }

        // execute the product pipeline to ensure we have the latest product
        // information in the basket
        shoppingCart.RunPipeline(new PipelineInfo("basket"));

        // Bind the default order form to the Repeater control used for
        // displaying its contents.
        BasketListing.DataSource = shoppingCart.OrderForms["default"].LineItems;
        BasketListing.DataBind();

        // Update information about the order.
        SubTotal.Text = String.Format("{0:C}", shoppingCart.SubTotal);

        // This data will not be available after running the basket pipeline
        // alone.
        Tax.Text = String.Format("{0:C}", shoppingCart.TaxTotal);
        Total.Text = String.Format("{0:C}", shoppingCart.Total);

        shoppingCart.Save();

    }

    DataSet GetShippingMethods() {

        // The filter used in looking up the shipping methods.
        string filter = "enabled=1 and language_id='en-US'";

        // Create an array that lists the columns we want to return.
        string[] columns = {"shipping_method_id", "shipping_method_name"};

        // Get a reference to the current instance of the OrderContext.
        OrderContext orders = CommerceContext.Current.OrderSystem;

        // Retrieve the available shipping methods, returning only the columns
        // specified previously.  Note that if there are no available shipping
        // methods, an empty DataSet will be returned.
        return orders.GetShippingMethods(filter, "shipping_method_name", columns);

    }

    void ReCalcBtn_Click(object source, EventArgs args) {

        OrderContext orders = CommerceContext.Current.OrderSystem;

        // This requires that the CommerceContext.UserID property already
        // be set.  It can either be set dynamically if using Commerce Server
        // authentication, or manually.
        Basket shoppingCart =
            orders.GetBasket(new System.Guid(CommerceContext.Current.UserID));

        // Iterate through the line items and the selected values, and then
        // associate each selected shipping method with the appropriate
        // line item.
        for (int i=0; i< BasketListing.Items.Count; i++) {
            DropDownList ShippingMethods =
                BasketListing.Items[i].FindControl("ShippingMethodList") as DropDownList;

            // Retrieve the current line item based on its position in the Repeater.
            LineItem item = shoppingCart.OrderForms["default"].LineItems[i];

            // Associate the selected shipping method with the line item.
            item.ShippingMethodID = "{" + ShippingMethods.SelectedItem.Value + "}";
            item.ShippingMethodName = ShippingMethods.SelectedItem.Text;
        }

        shoppingCart.Save();
    }

</script>

<html>
<head>
<title>Set Shipping Methods</title>
</head>

<body>

<form runat="server">

    <asp:Label
        id="Status"
        runat="server"/>
    <br/>

    <asp:Button
        id="ReCalcBtn"
        text="Recalculate"
        OnClick="ReCalcBtn_Click"
        runat="server"/>
    &nbsp;
    <br/>

    <asp:Repeater
        id="BasketListing"
        runat="server">

        <HeaderTemplate>
            <table width="100%">
                <tr>
                    <td width="35">
                        <b>Qty</b>
                    </td>
                    <td width="175">
                        <b>Product</b>
                    </td>
                    <td width="50">
                        <b>Price</b>
                    </td>
                    <td>
                        <b>Shipping Option</b>
                    </td>
                </tr>
        </HeaderTemplate>

        <ItemTemplate>
                <tr>
                    <td width="35">
                        <%# DataBinder.Eval(Container.DataItem, "Quantity") %>
                    </td>
                    <td width="175">
                        <%# DataBinder.Eval(Container.DataItem, "[_product_name]") %>
                    </td>
                    <td width="50">
                        <%# DataBinder.Eval(Container.DataItem, "[_product_cy_list_price]", "{0:C}") %>
                    </td>
                    <td>
                    <asp:DropDownList
                        id="ShippingMethodList"
                        DataSource='<%# shippingMethods %>'
                        DataTextField="shipping_method_name"
                        DataValueField="shipping_method_id"
                        runat="server"/>
                </tr>
        </ItemTemplate>

        <FooterTemplate>
            </table>
        </FooterTemplate>

    </asp:Repeater>

    <table border="0" width="100%">
        <tr>
            <td colspan="4">
                <hr>
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Subtotal</b>
            </td>
            <td align="right">
                <asp:label id="SubTotal" runat="server" />
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Tax</b>
            </td>
            <td align="right">
                <asp:label id="Tax" runat="server" />
            </td>
        </tr>
        <tr>
            <td width="52">
                &nbsp;<br/>
            </td>
            <td width="225" colspan="2" align="left">
                <b>Grand Total</b>
            </td>
            <td align="right">
                <b><asp:label id="Total" runat="server" /></b>
            </td>
        </tr>
    </table>

</form>

</body>
</html>

See Also

Basket Class (BCL)

CommerceContext Class (BCL)

OrderContext Class (BCL)

OrderForm Class (BCL)

OrderGroup Class (BCL)


Code to Dump an Order Form

Use the following code to dump the contents of an order form.

using Microsoft.CommerceServer.Runtime;
// For Idictionary.
using Microsoft.CommerceServer.Runtime.Orders;
// For OrderForm.
using Microsoft.CommerceServer.Runtime.Diagnostics;
   // For DumpUtils.

   OrderForm orderForm = basket.OrderForms[0];
   DumpUtils.DumpDictionary(orderForm.Dictionary, new HtmlTextWriter(Response.Output), "OrderForm: " + orderForm.Name);

See Also

Dictionary Class (BCL)

DumpUtils Class (BCL)

OrderForm Class (BCL)


Microsoft.CommerceServer.Runtime.Pipelines

The classes in the Microsoft.CommerceServer.Runtime.Pipelines namespace contain the functionality needed to run pipelines in the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Pipelines Namespace Object Model

Depicts the object model of the Microsoft.CommerceServer.Runtime.Pipelines namespace.

Classes

Class | Description
ContentSelectionPipeline | Creates and runs a Content Selection Framework (CSF) pipeline.
OrderPipeline | Creates and runs an Order Processing pipeline (OPP).
PipelineBase | The abstract base class for pipelines.
PipelineCollection | Stores the collection of pipelines configured for the site.
PipelineExeception | Exception class for pipeline failures.
PipelineExecuteException | Exception class thrown when a pipeline fails to execute successfully.
PipelineLoadException | Exception class thrown when a pipeline fails to load successfully.

Examples

Example | Description
Code to Read a Pipeline Collection and Display Its Properties | Describes how to read a pipeline collection and display its contents.

See Also

Commerce Server .NET Application Framework Tutorial


ContentSelectionPipeline Class (BCL)

A Content Selection Framework (CSF) pipeline.

Public Instance Constructor

Constructor | Description
ContentSelectionPipeline Constructor(String, String, Boolean, String, DebugContext) | Creates a new instance of the ContentSelectionPipeline class with the specified values.

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the CSF pipeline using Commerce.PooledPipeline.
ToString (Inherited from PipelineBase) | Returns the name of the pipeline.

Public Instance Properties

Property | Description
DebugContext (Inherited from PipelineBase) | Gets the DebugContext for this pipeline.
LoggingEnabled (Inherited from PipelineBase) | Gets a boolean that determines if logging is enabled.
LogPath (Inherited from PipelineBase) | Gets the pipeline log file path.
Name (Inherited from PipelineBase) | Gets the friendly name of the pipeline.
PipelineConfigPath (Inherited from PipelineBase) | Gets the path to the pipeline .pcf file.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionPipeline Constructor (BCL)

Public Instance Constructor

Constructor | Description
ContentSelectionPipeline Constructor(String, String, Boolean, String, DebugContext) | Creates a new instance of the ContentSelectionPipeline class with the specified values.


ContentSelectionPipeline Constructor (String, String, Boolean, String, DebugContext) (BCL)

Use this method to create a new instance of the ContentSelectionPipeline class with the specified parameter values.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal name As System.String, _
  ByVal pipelineConfigPath As System.String, _
  ByVal loggingEnabled As System.Boolean, _
  ByVal logPath As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ContentSelectionPipeline(
  System.String name,
  System.String pipelineConfigPath,
  System.Boolean loggingEnabled,
  System.String logPath,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
name
Friendly name of the pipeline. May not be null.
pipelineConfigPath
Fully qualified path to the .pcf file. May not be null.
loggingEnabled
True if pipeline logging should be enabled.
logPath
Fully qualified path to the log file. May not be null if logging is enabled.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.
[C#]
name
Friendly name of the pipeline. May not be null.
pipelineConfigPath
Fully qualified path to the .pcf file. May not be null.
loggingEnabled
True if pipeline logging should be enabled.
logPath
Fully qualified path to the log file. May not be null if logging is enabled.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.

Remarks

Throws an ArgumentNullException if any of the required arguments are null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionPipeline Methods (BCL)

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the Content Selection Framework (CSF) pipeline using Commerce.PooledPipeline.
ToString (Inherited from PipelineBase) | Returns the name of the pipeline.


ContentSelectionPipeline.Execute (Object, Object) Method (BCL)

Use this method to execute the Content Selection Framework (CSF) pipeline.

Definition

[Visual Basic .NET]
Overrides Public Function Execute( _
  ByVal order As System.Object, _
  ByVal context As System.Object _
) As System.Int32
[C#]
public override System.Int32 Execute(
  System.Object order,
  System.Object context
);

Parameters

[Visual Basic .NET]
order
An order dictionary or an OrderForm object. May not be null.
context
Context dictionary object. May be null.
[C#]
order
An order dictionary or an OrderForm object. May not be null.
context
Context dictionary object. May be null.

Return Value

Error level | Description
1 | Success. The pipeline ran successfully.
2 | Warning. A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed.

Remarks

Throws an ArgumentNullException if the order argument is null.

Throws a CommerceCreateObjectException if the pipeline COM object could not be found.

Throws a PipelineLoadException if the pipeline could not be loaded.

Throws a PipelineExecuteException if there is an exception during pipeline execution.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionPipeline Properties (BCL)

Public Instance Properties

Property | Description
DebugContext (Inherited from PipelineBase) | Gets the DebugContext for this pipeline.
LoggingEnabled (Inherited from PipelineBase) | Gets a boolean that determines if logging is enabled.
LogPath (Inherited from PipelineBase) | Gets the pipeline log file path.
Name (Inherited from PipelineBase) | Gets the friendly name of the pipeline.
PipelineConfigPath (Inherited from PipelineBase) | Gets the path to the pipeline .pcf file.


OrderPipeline Class (BCL)

Creates and runs an Order Processing pipeline (OPP).

Public Instance Constructor

Constructor | Description
OrderPipeline Constructor(String, String, Boolean, String, Boolean, DebugContext) | Creates a new instance of the OrderPipeline class with the specified parameter values.

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the Order Pipeline using the Commerce.PooledPipeline or Commerce.PooledTxPipeline object.
ToString (Inherits from PipelineBase) | Returns the name of the pipeline.

Public Instance Properties

Property | Description
DebugContext (Inherits from PipelineBase) | Gets the DebugContext object for this pipeline.
LoggingEnabled (Inherits from PipelineBase) | Gets a Boolean that determines whether logging is enabled.
LogPath (Inherits from PipelineBase) | Gets the pipeline log file path.
Name (Inherits from PipelineBase) | Gets the friendly name of the pipeline.
PipelineConfigPath (Inherits from PipelineBase) | Gets the path to the pipeline .pcf file.
TransactionalSetting | Gets the transactional setting of the pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline Constructor (BCL)

Public Instance Constructor

Constructor | Description
OrderPipeline Constructor(String, String, Boolean, String, Boolean, DebugContext) | Creates a new instance of the OrderPipeline class with the specified parameter values.

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline Constructor (String, String, Boolean, String, Boolean, DebugContext) (BCL)

Use this method to create a new instance of the OrderPipeline class with the specified parameter values.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal name As System.String, _
  ByVal pipelineConfigPath As System.String, _
  ByVal loggingEnabled As System.Boolean, _
  ByVal logPath As System.String, _
  ByVal transactional As System.Boolean, _
  ByVal dbgContext As DebugContext _
)
[C#]
public OrderPipeline(
  System.String name,
  System.String pipelineConfigPath,
  System.Boolean loggingEnabled,
  System.String logPath,
  System.Boolean transactional,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
name
The friendly name of the pipeline. May not be null.
pipelineConfigPath
The fully qualified path to the .pcf file. May not be null.
loggingEnabled
A value of True if pipeline logging should be enabled.
logPath
A fully qualified path to the log file. May not be null if logging is enabled.
transactional
A value of True if the pipeline should require running in a transaction.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information released by this class will be output to the user. May not be null.
[C#]
name
The friendly name of the pipeline. May not be null.
pipelineConfigPath
The fully qualified path to the .pcf file. May not be null.
loggingEnabled
A value of True if pipeline logging should be enabled.
logPath
A fully qualified path to the log file. May not be null if logging is enabled.
transactional
A value of True if the pipeline should require running in a transaction.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information released by this class will be output to the user. May not be null.

Remarks

Throws an ArgumentNullException if any of the required arguments are null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline Methods (BCL)

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the order pipeline using the Commerce.PooledPipeline or Commerce.PooledTxPipeline object.
ToString (Inherits from PipelineBase) | Returns the name of the pipeline.

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline.Execute (Object, Object) Method (BCL)

Use this method to execute the order pipeline using the Commerce.PooledPipeline or Commerce.PooledTxPipeline object.

Definition

[Visual Basic .NET]
Overrides Public Function Execute( _
  ByVal order As System.Object, _
  ByVal context As System.Object _
) As System.Int32
[C#]
public override System.Int32 Execute(
  System.Object order,
  System.Object context
);

Parameters

[Visual Basic .NET]
order
The Order dictionary or an OrderForm object. May not be null.
context
The Context dictionary. May not be null.
[C#]
order
The Order dictionary or an OrderForm object. May not be null.
context
The Context dictionary. May not be null.

Return Value

The error level.

Error Level | Description
1 | Success. The pipeline ran successfully.
2 | Warning. A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user in the ASP page.
3+ | Failure. A pipeline component failed.

Remarks

Throws an ArgumentNullException if the order parameter or the context parameter is null.

Throws a CommerceCreateObjectException if the Pipeline COM object could not be found.

Throws a PipelineLoadException if the pipeline could not be loaded.

Throws a PipelineExecuteException if there is an exception during pipeline execution.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline Properties (BCL)

Public Instance Properties

Property | Description
DebugContext (Inherits from PipelineBase) | Gets the DebugContext object for this pipeline.
LoggingEnabled (Inherits from PipelineBase) | Gets a Boolean that determines whether logging is enabled.
LogPath (Inherits from PipelineBase) | Gets the pipeline log file path.
Name (Inherits from PipelineBase) | Gets the friendly name of the pipeline.
PipelineConfigPath (Inherits from PipelineBase) | Gets the path to the pipeline .pcf file.
TransactionalSetting | Gets the transactional setting of the pipeline.

See Also

Code to Read a Pipeline Collection and Display Its Properties


OrderPipeline.TransactionalSetting Property (BCL)

The TransactionalSetting property is a read-only Boolean that indicates whether the pipeline should run in a transaction.

Definition

[Visual Basic .NET]
Public ReadOnly Property TransactionalSetting As System.Boolean
[C#]
public System.Boolean TransactionalSetting {get;}

Property Value

A Boolean value that indicates whether the pipeline should run a transaction.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Read a Pipeline Collection and Display Its Properties


PipelineBase Class (BCL)

The abstract base class for pipelines.

Protected Instance Constructor

Constructor | Description
PipelineBase Constructor(String, String, Boolean, String, DebugContext) | Creates a new instance of the PipelineBase class.

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the pipeline.
ToString | Returns the name of the pipeline.

Public Instance Properties

Property | Description
DebugContext | Gets the DebugContext object for the pipeline.
LoggingEnabled | Gets a Boolean that determines whether logging is enabled.
LogPath | Gets the pipeline log file path.
Name | Gets the friendly name of the pipeline.
PipelineConfigPath | Gets the path to the pipeline .pcf file.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase Constructor (BCL)

Protected Instance Constructor

Constructor | Description
PipelineBase Constructor(String, String, Boolean, String, DebugContext) | Creates a new instance of the PipelineBase class.


PipelineBase Constructor (String, String, Boolean, String, DebugContext) (BCL)

Use this method to create a new instance of the PipelineBase class.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal name As System.String, _
  ByVal pipelineConfigPath As System.String, _
  ByVal loggingEnabled As System.Boolean, _
  ByVal logPath As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
protected PipelineBase(
  System.String name,
  System.String pipelineConfigPath,
  System.Boolean loggingEnabled,
  System.String logPath,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
name
The friendly name of the pipeline. May not be null.
pipelineConfigPath
The fully qualified path to the .pcf file. May not be null.
loggingEnabled
True if pipeline logging should be enabled.
logPath
The fully qualified path to the log file. May not be null if logging is enabled.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information displayed by this class will appear to the user. May not be null.
[C#]
name
The friendly name of the pipeline. May not be null.
pipelineConfigPath
The fully qualified path to the .pcf file. May not be null.
loggingEnabled
True if pipeline logging should be enabled.
logPath
The fully qualified path to the log file. May not be null if logging is enabled.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information displayed by this class will appear to the user. May not be null.

Remarks

Throws an ArgumentNullException if any of the required parameters are null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase Methods (BCL)

Public Instance Methods

Method | Description
Execute(Object, Object) | Executes the pipeline.
ToString | Returns the name of the pipeline.


PipelineBase.Execute (Object, Object) Method (BCL)

Use this method to run a pipeline. This method must be overridden in the derived classes.

Definition

[Visual Basic .NET]
Public MustOverride Function Execute( _
  ByVal order As System.Object, _
  ByVal context As System.Object _
) As System.Int32
[C#]
public abstract virtual System.Int32 Execute(
  System.Object order,
  System.Object context
);

Parameters

[Visual Basic .NET]
order
An Order dictionary or an OrderForm object. May not be null.
context
A Context dictionary object. May be null.
[C#]
order
An Order dictionary or an OrderForm object. May not be null.
context
A Context dictionary object. May be null.

Return Value

Error Level | Description
1 | Success. The pipeline ran successfully.
2 | Warning. A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed.

Remarks

Throws an ArgumentNullException if the order parameter is null.

Throws a CommerceCreateObjectException if the Pipeline COM object could not be found.

Throws a PipelineLoadException if the pipeline could not be loaded.

Throws a PipelineExecuteException if there is an exception during pipeline execution.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase.ToString Method (BCL)

Use this method to retrieve the name of the pipeline.

Definition

[Visual Basic .NET]
Overridable Public Function ToString( _
) As System.String
[C#]
public virtual System.String ToString(
);

Return Value

The name of the pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase Properties (BCL)

Public Instance Properties

Property | Description
DebugContext | Gets the DebugContext object for this pipeline.
LoggingEnabled | Gets a Boolean that determines whether logging is enabled.
LogPath | Gets the pipeline log file path.
Name | Gets the friendly name of the pipeline.
PipelineConfigPath | Gets the path to the pipeline .pcf file.


PipelineBase.DebugContext Property (BCL)

The DebugContext property is a read-only DebugContext that gets the DebugContext object for this pipeline.

Definition

[Visual Basic .NET]
Public ReadOnly Property DebugContext As DebugContext
[C#]
public DebugContext DebugContext {get;}

Property Value

The DebugContext object for this pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase.LoggingEnabled Property (BCL)

The LoggingEnabled property is a read-only Boolean that determines whether logging is enabled.

Definition

[Visual Basic .NET]
Public ReadOnly Property LoggingEnabled As System.Boolean
[C#]
public System.Boolean LoggingEnabled {get;}

Property Value

A Boolean that indicates whether logging is enabled.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase.LogPath Property (BCL)

The LogPath property is a read-only String that gets the path of the log file.

Definition

[Visual Basic .NET]
Public ReadOnly Property LogPath As System.String
[C#]
public System.String LogPath {get;}

Property Value

The path of the log file.

Remarks

When a pipeline object is run within the Commerce Server .NET Application Framework and the CommerceContext.UserID property is set (either explicitly or because the CommerceAuthenticationModule is enabled), the log file path is constructed using the path section of the logPath property that was provided when the pipeline was constructed and appends the CommerceContext.UserID property for the filename. When a pipeline object is running outside of the Commerce Server .NET Application Framework, or when the CommerceContext.UserID property is not set, the log file path is set to the complete logPath specified when the pipeline object was constructed.

Pipeline logging is not thread safe, so it is recommended that you set the CommerceContext.UserID property either automatically or explicitly, so that a unique log file name is generated with each execution.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase.Name Property (BCL)

The Name property is a read-only String that gets the friendly name of the pipeline.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

The friendly name of the pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineBase.PipelineConfigPath Property (BCL)

The PipelineConfigPath property is a read-only String that gets the path to the pipeline .pcf file.

Definition

[Visual Basic .NET]
Public ReadOnly Property PipelineConfigPath As System.String
[C#]
public System.String PipelineConfigPath {get;}

Property Value

Gets the path to the pipeline .pcf file.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection Class

Stores the collection of pipelines configured for the site.

Public Instance Constructor

Constructor | Description
PipelineCollection Constructor | Creates a new instance of the PipelineCollection class for the specified site.

Public Instance Methods

Method | Description
Add(String, PipelineBase) | Adds a pipeline to the collection.
CopyTo(Array, Int32) | Copies the pipeline objects into an array, starting at a particular array index.
GetEnumerator | Supports enumeration of the pipelines in the collection.

Public Instance Properties

Property | Description
Count | Gets the number of pipelines contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to allow for accessing a pipeline based on the pipeline name.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
PipelineCollection Constructor | Creates a new instance of the PipelineCollection class for the specified site.


PipelineCollection Constructor (BCL)

Use this method to create a new instance of the PipelineCollection class for the specified site.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public PipelineCollection(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(String, PipelineBase) | Adds a pipeline to the collection.
CopyTo(Array, Int32) | Copies the pipeline objects into an array, starting at a particular array index.
GetEnumerator | Supports enumeration of the pipelines in the collection.


PipelineCollection.Add (String, PipelineBase) Method (BCL)

Use this method to add a pipeline to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal pipelineName As System.String, _
  ByVal pipeline As PipelineBase _
)
[C#]
public void Add(
  System.String pipelineName,
  PipelineBase pipeline
);

Parameters

[Visual Basic .NET]
pipelineName
The pipeline name. May not be null.
pipeline
The Pipeline object. May not be null.
[C#]
pipelineName
The pipeline name. May not be null.
pipeline
The Pipeline object. May not be null.

Remarks

Throws an ArgumentNullException if either required parameter is passed as null.

Throws an ArgumentException if a pipeline with the same name already exists in the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the pipeline objects into an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection.GetEnumerator Method (BCL)

Use this method to support enumeration of the pipelines in the collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

An IEnumerator for enumerating the pipelines in the collection.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of pipelines contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to allow for accessing a pipeline based on the pipeline name.
SyncRoot | Gets an object that can be used for synchronized access to the collection.


PipelineCollection.Count Property (BCL)

The Count property is a read-only Int32 that gets the number of pipelines contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of pipelines contained in the collection.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that gets a value indicating whether access to the collection is synchronized.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean that indicates whether access to the collection is synchronized.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection.Item(String) Property (BCL)

The Item property is a read-only PipelineBase object indexed by the pipeName parameter.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal pipeName As System.String _
) As PipelineBase
[C#]
public PipelineBase Item(
  System.String pipeName
) {get;}

Parameters

[Visual Basic .NET]
pipeName
The name of the PipelineBase object to retrieve.
[C#]
pipeName
The name of the PipelineBase object to retrieve.

Property Value

The PipelineBase object indexed by the pipeName parameter.

Remarks

The property throws an ArgumentNullException if the pipeName parameter is null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only Object that gets an object that can be used for synchronized access to the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

An object that can be used for synchronized access to the collection.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Class (BCL)

Exception class for pipeline failures.

Public Instance Constructor

Constructor | Description
PipelineException Constructor | Creates a new instance of the PipelineException class.
PipelineException Constructor(String) | Creates a new instance of the PipelineException class with a specified message.
PipelineException Constructor(String, Exception) | Creates a new instance of the PipelineException class with a specified message and inner exception.
PipelineException Constructor(String, String, Exception) | Creates a new instance of the PipelineException class with a specified name, message, and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PipelineName | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Constructor (BCL)

Public Instance Constructor

Constructor | Description
PipelineException Constructor | Creates a new instance of the PipelineException class.
PipelineException Constructor(String) | Creates a new instance of the PipelineException class with a specified message.
PipelineException Constructor(String, Exception) | Creates a new instance of the PipelineException class with a specified message and inner exception.
PipelineException Constructor(String, String, Exception) | Creates a new instance of the PipelineException class with a specified name, message, and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineException class with the specified serialization information and streaming context.


PipelineException Constructor (BCL)

Use this method to create a new instance of the PipelineException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public PipelineException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the PipelineException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected PipelineException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Constructor (String) (BCL)

Use this method to create a new instance of the PipelineException class with a specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public PipelineException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the PipelineException class with a specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public PipelineSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The error message.
inner
The inner exception.
[C#]
message
The error message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Constructor (String, String, Exception) (BCL)

Use this method to create a new instance of the PipelineException class with a specified name, message, and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal pipelineName As System.String, _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public PipelineSystem.Exception(
  System.String pipelineName,
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
pipelineName
The pipeline name.
message
The error message.
inner
The inner exception.
[C#]
pipelineName
The pipeline name.
message
The error message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PipelineName | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineException.PipelineName Property (BCL)

The PipelineName property is a read-only String that gets the friendly name of the pipeline that encountered the exception.

Definition

[Visual Basic .NET]
Public ReadOnly Property PipelineName As System.String
[C#]
public System.String PipelineName {get;}

Property Value

The friendly name of the pipeline that encountered the exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Class (BCL)

Exception class thrown when a pipeline fails to execute successfully.

Public Instance Constructor

Constructor | Description
PipelineExecuteException Constructor | Creates a new instance of the PipelineExecuteException class.
PipelineExecuteException Constructor(String) | Creates a new instance of the PipelineExecuteException class with the specified message.
PipelineExecuteException Constructor(String, Exception) | Creates a new instance of the PipelineExecuteException class with the specified pipeline name and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineExecuteException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineExecuteException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the Microsoft .NET Framework Software Development Kit (SDK) documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PipelineName (Inherited from PipelineException) | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Constructor (BCL)

Public Instance Constructor

Constructor | Description
PipelineExecuteException Constructor | Creates a new instance of the PipelineExecuteException class.
PipelineExecuteException Constructor(String) | Creates a new instance of the PipelineExecuteException class with the specified message.
PipelineExecuteException Constructor(String, Exception) | Creates a new instance of the PipelineExecuteException class with the specified pipeline name and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineExecuteException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineExecuteException class with the specified serialization information and streaming context.


PipelineExecuteException Constructor (BCL)

Use this method to create a new instance of the PipelineExecuteException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public PipelineExecuteException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the PipelineExecuteException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected PipelineExecuteException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization information.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization information.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Constructor (String) (BCL)

Use this method to create a new instance of the PipelineExecuteException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public PipelineExecuteException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the PipelineExecuteException class with the specified pipeline name and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal pipelineName As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public PipelineExecuteSystem.Exception(
  System.String pipelineName,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
pipelineName
The pipeline name.
inner
The inner exception.
[C#]
pipelineName
The pipeline name.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the Microsoft .NET Framework Software Development Kit (SDK) for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineExecuteException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineExecuteException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the Microsoft .NET Framework Software Development Kit (SDK) for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PipelineName (Inherited from PipelineException) | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineLoadException Class (BCL)

Exception class thrown when a pipeline fails to load successfully.

Public Instance Constructor

Constructor | Description
PipelineLoadException Constructor | Creates a new instance of the PipelineLoadException class.
PipelineLoadException Constructor(String) | Creates a new instance of the PipelineLoadException class with the specified message.
PipelineLoadException Constructor(String, Exception) | Creates a new instance of the PipelineLoadException class with the specified message and inner exception.
PipelineLoadException Constructor(String, String, Exception) | Creates a new instance of the PipelineLoadException class with the specified pipeline name, .pcf file path, and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineLoadException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineLoadException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PCFPath | Gets the .pcf file path.
PipelineName (Inherited from PipelineException) | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Constructor (BCL)

Public Instance Constructor

Constructor | Description
PipelineLoadException Constructor | Creates a new instance of the PipelineLoadException class.
PipelineLoadException Constructor(String) | Creates a new instance of the PipelineLoadException class with the specified message.
PipelineLoadException Constructor(String, Exception) | Creates a new instance of the PipelineLoadException class with the specified message and inner exception.
PipelineLoadException Constructor(String, String, Exception) | Creates a new instance of the PipelineLoadException class with the specified pipeline name, .pcf file path, and inner exception.

Protected Instance Constructor

Constructor | Description
PipelineLoadException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the PipelineLoadException class with the specified serialization information and streaming context.


PipelineLoadException Constructor (BCL)

Use this method to create a new instance of the PipelineLoadException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public PipelineLoadException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the PipelineLoadException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected PipelineLoadException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization information.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization information.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Constructor (String) (BCL)

Use this method to create a new instance of the PipelineLoadException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public PipelineLoadException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the PipelineLoadException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public PipelineLoadSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The error message.
inner
The inner exception.
[C#]
message
The error message.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Constructor (String, String, Exception) (BCL)

Use this method to create a new instance of the PipelineLoadException class with the specified pipeline name, .pcf file path, and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal pipelineName As System.String, _
  ByVal pcfPath As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public PipelineLoadSystem.Exception(
  System.String pipelineName,
  System.String pcfPath,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
pipelineName
The pipeline name.
pcfPath
The .pcf file path.
inner
The inner exception.
[C#]
pipelineName
The pipeline name.
pcfPath
The .pcf file path.
inner
The inner exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineLoadException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


PipelineLoadException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
PCFPath | Gets the .pcf file path.
PipelineName (Inherited from PipelineException) | Gets the friendly name of the pipeline that encountered the exception.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


PipelineLoadException.PCFPath Property (BCL)

The PCFPath property is a read-only String that gets the path to the .pcf file for the pipeline.

Definition

[Visual Basic .NET]
Public ReadOnly Property PCFPath As System.String
[C#]
public System.String PCFPath {get;}

Property Value

The path to the .pcf file for the pipeline.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Pipelines

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Pipelines Namespace

Examples

Example | Description
Code to Read a Pipeline Collection and Display Its Properties | Describes how to read a pipeline collection and display its contents.


Code to Read a Pipeline Collection and Display Its Properties

Use the following code to read a pipeline collection and display the Name, Logpath, PipelineConfigPath, LoggingEnabled, and optionally the TransactionalSetting properties.

<%@ Page Language="C#" Debug=true%>

<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>

<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Pipelines" %>

<script language="C#" runat="server">

void Page_Load(object source, EventArgs args)

{

if (!IsPostBack)

{

DisplayPipelines();

btnProperties.Text = "Display Properties";

}

}

///

/// This function gets the pipeline collection and binds it

/// to the drop-down list.

///

void DisplayPipelines()

{

try

{

PipelineCollection pipesCollection = null;

// Check that the CommerceContext object for this request

// is not null.

if (CommerceContext.Current == null)

{

throw new Exception("CommerceContext object is null.Please check settings in web.config");

}

// Get the pipeline collection.

pipesCollection = CommerceContext.Current.Pipelines;

// pipesCollection.Count contains the number of pipelines.

string[] pipeArray = new string[pipesCollection.Count];

int pipeIndex =0;

// Iterate through the pipeline collection and

// build the string array.

foreach (PipelineBase pipe in pipesCollection)

{

pipeArray[pipeIndex++] = pipe.Name;

}

// Bind the array to the drop-down list.

lbPipelines.DataSource = pipeArray;

lbPipelines.DataBind();

}

catch(Exception ex)

{

// Exception handling.

throw new Exception("An error occurred", ex);

}

}

///

/// This function displays the properties for the selected pipeline.

///

void DisplayPropertiesBtn_Click(object source, EventArgs args)

{

string pipeName;

PipelineBase pipe ;

try

{

PipelineCollection pipesCollection = null;

// Check that the CommerceContext object for this request

// is not null.

if (CommerceContext.Current == null)

{

throw new Exception("CommerceContext object is null.");

}

// Get the pipeline collection.

pipesCollection = CommerceContext.Current.Pipelines;

// Get the pipeline name whose properties are to be displayed.

pipeName = lbPipelines.SelectedItem.Text.Trim();

// Index the pipeline collection using the pipeline name to get the

// properties for this pipeline.

pipe = pipesCollection[pipeName];

// Display the Name, Logpath, PipelineConfigPath, and

// LoggingEnabled properties.

lblPipeName.Text = String.Format("Pipeline Name = {0}", pipe.Name);

lblLogPath.Text = String.Format("Log Path = {0}", pipe.LogPath);

lblConfigPath.Text = String.Format("Config Path = {0}", pipe.PipelineConfigPath);

lblLoggingEnabled.Text = String.Format("LoggingEnabled = {0}", pipe.LoggingEnabled);

// Check if this is an order pipeline.

OrderPipeline orderPipeline = pipe as OrderPipeline;

//If it is an order pipeline, display the

// TransactionalSetting property also.

if (orderPipeline != null)

{

lblTransactional.Visible = true;

lblTransactional.Text = String.Format("Transactonal = {0}", orderPipeline.TransactionalSetting);

}

else

{

lblTransactional.Visible = false;

}

}

catch(Exception ex)

{

throw new Exception("An error occurred", ex);

}

}

</script>

<html>

<head>

<title>Pipeline Collection</title>

</head>

<body>

<form runat="server">

<asp:DropDownList id="lbPipelines" runat="server" />

<asp:Button id="btnProperties" OnClick="DisplayPropertiesBtn_Click" runat="server" />

<asp:table width="500" Runat="server">

<asp:tablerow>

<asp:tablecell>

<asp:Label width="100%" id="lblPipeName" runat="server" />

</asp:tablecell>

</asp:tablerow>

<asp:tablerow>

<asp:tablecell>

<asp:Label width="100%" id="lblLogPath" runat="server" />

</asp:tablecell>

</asp:tablerow>

<asp:tablerow>

<asp:tablecell>

<asp:Label width="100%" id="lblConfigPath" runat="server" />

</asp:tablecell>

</asp:tablerow>

<asp:tablerow>

<asp:tablecell>

<asp:Label width="100%" id="lblLoggingEnabled" runat="server" />

</asp:tablecell>

</asp:tablerow>

<asp:tablerow>

<asp:tablecell>

<asp:Label width="100%" id="lblTransactional" runat="server" />

</asp:tablecell>

</asp:tablerow>

</asp:table>

</form>

</body>

</html>


Microsoft.CommerceServer.Runtime.Profiles

The classes in the Microsoft.CommerceServer.Runtime.Profiles namespace contain the profiling functionality for the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Profiles Namespace Object Model

Depicts the object model for the Microsoft.CommerceServer.Runtime.Profiles namespace.

Classes

Class | Description
CommerceProfileAlreadyExistsException | Exception thrown when a profile object already exists.
CommerceProfileModule | Creates the default ProfileContext class for the site.
CommerceProfileSystemException | Base class for exceptions thrown from the Profiling System sub system.
Profile | Creates an abstraction for the profile object Primary Interop Assembly (PIA) type.
ProfileCollection | Creates an abstraction for the profile properties collection.
ProfileContext | Creates an abstraction for the Commerce Server profile service component.
ProfileProperty | Creates an abstraction for the profile property.
ProfilePropertyAttribute | Creates an abstraction for the profile property attribute.
ProfilePropertyAttributeCollection | Represents a collection of ProfilePropertyAttributes.
ProfilePropertyCollection | Creates an abstraction for the profile properties collection.
ProfilePropertyGroup | Creates an abstraction for a profile property group.
ProfilePropertyGroupCollection | Creates an abstraction for the property groups collection.
SiteTerm | Encapsulates a site term.
SiteTermElement | Encapsulates a site term element.
SiteTermElementCollection | Creates an abstraction for the site term elements collection.

Interfaces

Interface | Description
IProfileElements | Encapsulates the common collections exposed by Profile and ProfilePropertyGroup classes.

Enumerations

Enumeration | Description
ProfileDataType | Enumerates all the profile data types exposed by the Profile namespace.
ProfileXmlFormat | Enumerates the XML formats supported by the Profiling System.
ProfileXmlRetrieve | Enumerates the XML retrieval options supported by the Profiling System.

Examples

Example | Description
Code to Create and Set Profile Properties | Describes how to create and set profile properties.
Code to Retrieve and Display Profile Properties | Describes how to retrieve and display profile properties.
Code to Use the SiteTerm Class | Describes how to retrieve, iterate, sort, compare, and validate site terms.

See Also

Commerce Server .NET Application Framework Tutorial


CommerceProfileAlreadyExistsException Class (BCL)

Specialized profile system exception for a profile object that already exists.

Public Instance Constructor

Constructor | Description
CommerceProfileAlreadyExistsException Constructor | Creates a new instance of the CommerceProfileAlreadyExistsException class.
CommerceProfileAlreadyExistsException Constructor(String) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified message.
CommerceProfileAlreadyExistsException Constructor(String, Exception) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceProfileAlreadyExistsException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Remarks

This class is derived from the CommerceProfileSystemException class.

This exception will be thrown by the various forms of the ProfileContext.CreateProfile method when an attempt is made to create a profile with an identical primary key value of an already existing profile instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceProfileAlreadyExistsException Constructor | Creates a new instance of the CommerceProfileAlreadyExistsException class.
CommerceProfileAlreadyExistsException Constructor(String) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified message.
CommerceProfileAlreadyExistsException Constructor(String, Exception) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceProfileAlreadyExistsException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceProfileAlreadyExistsException class with the specified serialization information and streaming context.


CommerceProfileAlreadyExistsException Constructor (BCL)

Use this method to create a new instance of the CommerceProfileAlreadyExistsException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceProfileAlreadyExistsException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceProfileAlreadyExistsException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceProfileAlreadyExistsException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceProfileAlreadyExistsException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceProfileAlreadyExistsException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
A string containing the message to include in the CommerceProfileAlreadyExistsException object.
[C#]
message
A System.String containing the message to include in the CommerceProfileAlreadyExistsException object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceProfileAlreadyExistsException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceProfileAlreadyExistsSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CommerceProfileAlreadyExistsException object.
inner
The inner System.Exception object.
[C#]
message
A System.String containing the message to include in the CommerceProfileAlreadyExistsException object.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceProfileAlreadyExistsException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileAlreadyExistsException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceProfileModule Class (BCL)

This CommerceModule is responsible for initializing the profile system and creating a default ProfileContext class instance for the site. It also can create an expose an instance of the Commerce Server OLEDB provider that can be used for bulk profile operations.

Public Instance Constructor

Constructor | Description
CommerceProfileModule Constructor | Creates a new instance of the CommerceProfileModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Sets the ProfileSystem property of the current CommerceContext instance equal to the default ProfileContext instance created during initialization of the module.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ProfileContext | Gets the default ProfileContext instance created by the module.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherits from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherits from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceProfileModule Constructor | Creates a new instance of the CommerceProfileModule class.


CommerceProfileModule Constructor (BCL)

Creates a new instance of the CommerceProfileModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceProfileModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Initializes the module and sets up the event handlers.
OnBeginRequest(Object, EventArgs) | Sets the ProfileSystem property of the current CommerceContext instance equal to the default ProfileContext instance created during initialization of the module.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherits from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) Inherits from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceProfileModule.Init (HttpApplication) Method (BCL)

Use this method to initialize the module and set up the event handlers.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The current HttpApplication instance.
[C#]
appInstance
The current HttpApplication instance.

Remarks

This module does not subscribe to any application events.

Throws a CommerceResourceDependencyException if the associated Commerce resource of a known cache type could not be found.

Implements

System.Web.IHttpModule

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileModule.OnBeginRequest (Object, EventArgs) Method (BCL)

Use this method to handle HttpApplication BeginRequest events.

Definition

[Visual Basic .NET]
Public Sub OnBeginRequest( _
  ByVal sender As System.Object, _
  ByVal e As System.EventArgs _
)
[C#]
public void OnBeginRequest(
  System.Object sender,
  System.EventArgs e
);

Parameters

[Visual Basic .NET]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.
[C#]
sender
The HttpApplication instance that sent the event.
e
The current EventArgs instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ProfileContext | Gets the default ProfileContext instance created by the module.


CommerceProfileModule.ProfileContext Property (BCL)

The ProfileContext property gets the default ProfileContext instance created by the module.

Definition

[Visual Basic .NET]
Public ReadOnly Property ProfileContext As ProfileContext
[C#]
public ProfileContext ProfileContext {get;}

Property Value

The ProfileContext object.

Remarks

The value will be null if the CommerceProfileModule was not configured in the web.config file. ASP.NET pages should reference this through the CommerceContext.Current.ProfileSystem property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Class (BCL)

The base class for exceptions thrown from the Profile System.

Public Instance Constructor

Constructor | Description
CommerceProfileSystemException Constructor | Creates a new instance of the CommerceProfileSystemException class.
CommerceProfileSystemException Constructor(String) | Creates a new instance of the CommerceProfileSystemException class with the specified string message.
CommerceProfileSystemException Constructor(String, Exception) | Creates a new instance of the CommerceProfileSystemException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceProfileSystemException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceProfileSystemException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString | Creates and returns a string representation of the current exception.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceProfileSystemException Constructor | Creates a new instance of the CommerceProfileSystemException class.
CommerceProfileSystemException Constructor(String) | Creates a new instance of the CommerceProfileSystemException class with the specified string message.
CommerceProfileSystemException Constructor(String, Exception) | Creates a new instance of the CommerceProfileSystemException class with the specified string message and inner exception.

Protected Instance Constructor

Constructor | Description
CommerceProfileSystemException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceProfileSystemException class with the specified serialization information and streaming context.


CommerceProfileSystemException Constructor (BCL)

Use this method to create a new instance of the CommerceProfileSystemException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceProfileSystemException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dllMicrosoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceProfileSystemException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceProfileSystemException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceProfileSystemException class with the specified string message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceProfileSystemException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CommerceProfileSystemException object.
[C#]
message
A System.String containing the message to include in the CommerceProfileSystemException object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceProfileSystemException class with the specified string message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceProfileSystemSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
A System.String containing the message to include in the CommerceProfileSystemException object.
inner
The inner System.Exception object.
[C#]
message
A System.String containing the message to include in the CommerceProfileSystemException object.
inner
The inner System.Exception object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString | Creates and returns a string representation of the current exception.


CommerceProfileSystemException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException.ToString Method (BCL)

Creates and returns a string representation of the current exception.

Definition

[Visual Basic .NET]
Overrides Public Function ToString( _
) As System.String
[C#]
public override System.String ToString(
);

Return Value

A string representation of the current exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceProfileSystemException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


Profile Class (BCL)

Creates an abstraction for the profile object Primary Interop Assembly (PIA) type.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetXml(ProfileXmlRetrieve, ProfileXmlFormat) | Retrieves the XML representation for this profile object in the specified format.
Refresh | Reloads the object from the underlying stores.
Update | Updates the profile object with the property values specified in the xmlData parameter.
Update(String, ProfileXmlFormat) | Updates the profile object with the property values specified in the xmlData parameter.

Public Instance Properties

Property | Description
Item(String) | Retrieves ProfileProperty instance by name.
Properties | Retrieves the property collection on this profile object.
PropertyGroups | Retrieves the property groups collection on this profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetXml(ProfileXmlRetrieve, ProfileXmlFormat) | Retrieves the XML representation for this profile object in the specified format.
Refresh | Reloads the object from the underlying stores.
Update | Updates the profile object with the property values specified in the xmlData parameter.
Update(String, ProfileXmlFormat) | Updates the profile object with the property values specified in the xmlData parameter.

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Profile.GetXml (ProfileXmlRetrieve, ProfileXmlFormat) Method (BCL)

Use this method to retrieve the XML representation for this profile object in the specified format.

Definition

[Visual Basic .NET]
Public Function GetXml( _
  ByVal xmlRetrieve As ProfileXmlRetrieve, _
  ByVal xmlFormat As ProfileXmlFormat _
) As System.String
[C#]
public System.String GetXml(
  ProfileXmlRetrieve xmlRetrieve,
  ProfileXmlFormat xmlFormat
);

Parameters

[Visual Basic .NET]
xmlRetrieve
The ProfileXmlRetrieve object.
xmlFormat
The ProfileXmlFormat object.
[C#]
xmlRetrieve
The ProfileXmlRetrieve object.
xmlFormat
The ProfileXmlFormat object.

Return Value

A System.String object containing the XML data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Profile.Refresh Method (BCL)

Use this method to reload the object from the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Refresh( _
)
[C#]
public void Refresh(
);

Remarks

This method wraps the IProfileObject::GetInfo method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.Update Method (BCL)

Use this method to persist the state of the object to the underlying stores.

Definition

[Visual Basic .NET]
Public Sub Update( _
)
[C#]
public void Update(
);

Remarks

This method wraps the IProfileObject::Update method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.Update (String, ProfileXmlFormat) Method (BCL)

Use this method to update the profile object with the property values specified in the xmlData parameter.

Definition

[Visual Basic .NET]
Public Sub Update( _
  ByVal xmlData As System.String, _
  ByVal xmlFormat As ProfileXmlFormat _
)
[C#]
public void Update(
  System.String xmlData,
  ProfileXmlFormat xmlFormat
);

Parameters

[Visual Basic .NET]
xmlData
The XML string containing the updated property values.
xmlFormat
ProfileXmlFormat class determining whether in element centric or attribute centric format.
[C#]
xmlData
The XML string containing the updated property values.
xmlFormat
ProfileXmlFormat class determining whether in element centric or attribute centric format.

Remarks

If the Update method is called on a new profile object created using the CreateProfile method and the profile already exists in the profile store, then a CommerceProfileAlreadyExists exception is raised.

In case of other errors, this method raises a CommerceProfileSystemException exception that wraps an inner COMException. The Message and ErrorCode properties of the inner COMException contain details on the specific error that occurred.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Retrieves the ProfileProperty instance by name.
Properties | Retrieves the property collection on this profile object.
PropertyGroups | Retrieves the property groups collection on this profile object.

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.Item Property (BCL)

The Item property retrieves the ProfileProperty instance by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal propertyName As System.String _
) As ProfileProperty
[C#]
public ProfileProperty Item(
  System.String propertyName
) {get;}

Parameters

[Visual Basic .NET]
propertyName
A System.String containing the name of the property.
[C#]
propertyName
A System.String containing the name of the property.

Property Value

The ProfileProperty object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.Properties Property (BCL)

The Properties property retrieves the property collection on this profile object.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Properties As ProfilePropertyCollection
[C#]
public virtual ProfilePropertyCollection Properties {get;}

Property Value

The ProfilePropertyCollection object.

Implements

Microsoft.CommerceServer.Runtime.Profiles.IProfile

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


Profile.PropertyGroups Property (BCL)

The PropertyGroups property retrieves the property groups collection on this profile object.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PropertyGroups As ProfilePropertyGroupCollection
[C#]
public virtual ProfilePropertyGroupCollection PropertyGroups {get;}

Property Value

The ProfilePropertyGroupCollection object.

Implements

Microsoft.CommerceServer.Runtime.Profiles.IProfile

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileCollection Class (BCL)

Creates an abstraction for the profile properties collection.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | This method copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(Int32) | Indexer to allow for accessing the ProfileProperty collection by index.
SyncRoot | Retrieve the object for synchronizing operations on this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Explicit Icollection.CopyTo implementation. This method copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.


ProfilePropertyCollection.CopyTo (Array, Int32) Method (BCL)

Explicit Icollection.CopyTo implementation. This method copies the elements of this collection into the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy data to.
index
The count of elements to copy.
[C#]
array
The array to copy data to.
index
The count of elements to copy.

Implements

System.Collections.ICollection

Remarks

Always throws an InvalidOperation exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection.GetEnumerator Method (BCL)

Use this method to retrieve the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Implements

System.Collections.IEnumerable

Return Value

The handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(Int32) | Indexer to allow for accessing the ProfileProperty collection by index.
SyncRoot | Retrieve the object for synchronizing operations on this collection.


ProfileCollection.Count Property (BCL)

The Count property returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

A System.Int32 indicating the number of caches.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection.IsSynchronized Property (BCL)

The IsSynchronized property indicates whether this collection supports synchronization.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection.Item(Int32) Property (BCL)

The Item property is an indexer to allow for accessing the ProfileProperty collection by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As ProfileProperty
[C#]
public ProfileProperty Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
Integer signifying the index value.
[C#]
index
Integer signifying the index value.

Property Value

An Integer that serves as the index to the ProfileProperty collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileCollection.SyncRoot Property (BCL)

Use the SyncRoot property to retrieve the object for synchronizing operations on this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileContext Class (BCL)

Creates an abstraction for the Commerce Server profile service component.

Use the ProfileContext object to manipulate Profile objects and SiteTerm objects and to gain access to the Commerce Server OLEDB provider for bulk profile manipulations.

When running in the Commerce Server .NET Application framework, a default ProfileContext instance is created and exposed through the ProfileSystem property of the CommerceContext object.

Public Instance Constructor

Constructor | Description
ProfileContext Constructor(String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string and DebugContext object.
ProfileContext Constructor(String, String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string and DebugContext object.
ProfileContext Constructor(String, String, String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string and DebugContext object.

Public Instance Methods

Method | Description
CreateProfile(Int32, String) | Creates a new profile object instance.
CreateProfile(String, String) | Creates a new profile object instance.
CreateProfile(String, String, String, ProfileXmlFormat) | Creates a new profile object instance.
DeleteProfile(Int32, String) | Deletes the specified profile object.
DeleteProfile(String, String) | Deletes the specified profile object.
DeleteProfile(String, Int32, String) | Deletes the specified profile object.
DeleteProfile(String, String, String) | Deletes the specified profile object.
Dispose | Releases resources used by this object.
GetProfile(Int32, String) | Retrieves the specified profile object.
GetProfile(String, String) | Retrieves the specified profile object.
GetProfile(String, Int32, String) | Retrieves the specified profile object.
GetProfile(String, String, String) | Retrieves the specified profile object.
GetSiteTerm(String) | Initializes the SiteTerms collection and returns the specified site term.

Public Instance Properties

Property | Description
CommerceOleDbProvider | Accesses the OLE DB Provider for Commerce Server handle.
SiteTermNames | Gets the SiteTerms collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Constructor (BCL)

Public Instance Constructor

Constructor | Description
ProfileContext Constructor(String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string(s) and DebugContext object.
ProfileContext Constructor(String, String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string(s) and DebugContext object.
ProfileContext Constructor(String, String, String, DebugContext) | Creates a new instance of the ProfileContext class with the specified connection string(s) and DebugContext object.

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Constructor (String, DebugContext) (BCL)

Use this method to create a new instance of the ProfileContext class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal profilesvcConnstr As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ProfileContext(
  System.String profilesvcConnstr,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
profilesvcConnstr
The connection string to the profile definitions store.
dbgContext
The DebugContext object.
[C#]
profilesvcConnstr
The connection string to the profile definitions store.
dbgContext
The DebugContext object.

Remarks

Throws an ArgumentNullException if any of the parameters are missing.

When this form of the constructor is used, the CommerceOleDbProvider property is not available for use. Additionally, the profiles catalog is defaulted to "Profile Definitions", the default profiles catalog in Commerce Server.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Constructor (String, String, DebugContext) (BCL)

Use this method to create a new instance of the ProfileContext class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal profilesvcConnstr As System.String, _
  ByVal profilesCatalog As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ProfileContext(
  System.String profilesvcConnstr,
  System.String profilesCatalog,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
profilesvcConnstr
The connection to the profile definitions store.
profilesCatalog
The connection string for the OLEDB Provider for Commerce Server.
dbgContext
The DebugContext object.
[C#]
profilesvcConnstr
The connection to the profile definitions store.
providerConnstr
The connection string for the OLEDB Provider for Commerce Server.
dbgContext
The DebugContext object.

Remarks

Throws an ArgumentNullException if any of the parameters are missing.

When this form of the constructor is used, the CommerceOleDbProvider property is not available for use.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Constructor (String, String, String, DebugContext) (BCL)

Use this method to create a new instance of the ProfileContext class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal profilesvcConnstr As System.String, _
  ByVal providerConnstr As System.String, _
  ByVal bdaoConnstr As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ProfileContext(
  System.String profilesvcConnstr,
  System.String providerConnstr,
  System.String bdaoConnstr,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
profilesvcConnstr
Connection to the profile definitions store.
providerConnstr
Connection string for the OLEDB Provider for Commerce Server.
bdaoConnstr
Connection string for the bizdata store.
dbgContext
DebugContext object.
[C#]
profilesvcConnstr
Connection to the profile definitions store.
providerConnstr
Connection string for the OLEDB Provider for Commerce Server.
bdaoConnstr
Connection string for the bizdata store.
dbgContext
DebugContext object.

Remarks

Throws an ArgumentNullException if any of the parameters are missing.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Methods (BCL)

Public Instance Methods

Method | Description
CreateProfile(Int32, String) | Create a new profile object instance.
CreateProfile(String, String) | Create a new profile object instance.
CreateProfile(String, String, String, ProfileXmlFormat) | Create a new profile object instance.
DeleteProfile(Int32, String) | Delete specified profile object.
DeleteProfile(String, String) | Delete specified profile object.
DeleteProfile(String, Int32, String) | Delete specified profile object.
DeleteProfile(String, String, String) | Delete specified profile object.
Dispose | Releases resources used by this object.
GetProfile(Int32, String) | Retrieve specified profile object.
GetProfile(String, String) | Retrieve specified profile object.
GetProfile(String, Int32, String) | Retrieve specified profile object.
GetProfile(String, String, String) | Retrieve specified profile object.
GetSiteTerm(String) | Initializes the SiteTerms collection and returns the specified SiteTerm.

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.CreateProfile (String, String) Method (BCL)

Create a new profile object instance.

[Visual Basic .NET]
Public Function CreateProfile( _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile CreateProfile(
  System.String keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
String Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".
[C#]
keyValue
String Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".

Return Value

Handle to newly created profile object.

Remarks

For more information about profile programming concepts, see Profile Programming Concepts .

This method throws a CommerceProfileAlreadyExistsException exception if a profile instance with the specified primary key already exists. Note that this method only checks the local profile cache for existence of a profile with the provided key. The physical profile store is not checked until the Update method is called to commit the new profile instance to the store. For any other failure, it throws a CommerceProfileSystemException exception that wraps an inner COMException exception that contains an error code and description describing in more detail the nature of the failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.CreateProfile (Int32, String) Method (BCL)

Create a new profile object instance using the specified integer as the primary key value.

[Visual Basic .NET]
Public Function CreateProfile( _
  ByVal keyValue As System.Int32, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile CreateProfile(
  System.Int32 keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
Value of the primary key property.
profileType
Profile definition of interest, such as "UserObject", or "Organization".
[C#]
keyValue
Value of the primary key property.
profileType
Profile definition of interest, such as "UserObject", or "Organization".

Return Value

Handle to newly created profile object.

Remarks

This method throws a CommerceProfileAlreadyExistsException exception if a profile instance with the specified primary key already exists. Note that this method only checks the local profile cache for existence of a profile with the provided key. The physical profile store is not checked until the Update method is called to commit the new profile instance to the store. For any other failure, it throws a CommerceProfileSystemException exception that wraps an inner COMException exception that contains an error code and description describing in more detail the nature of the failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.CreateProfile (String, String, String, ProfileXmlFormat) Method (BCL)

Create a new profile object instance using the specified string as the primary key value and initializing the profile data from the provided XML fragment.

[Visual Basic .NET]
Public Function CreateProfile( _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String, _
  ByVal xmlData As System.String, _
  ByVal xmlFormat As ProfileXmlFormat_
) As Profile
[C#]
public Profile CreateProfile(
  System.String keyValue,
  System.String profileType,
  System.String xmlData,
  ProfileXmlFormat xmlFormat
);

Parameters

[Visual Basic .NET]
keyValue
String Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".
xmlData
String XML blob specifying initial state of the profile object.
xmlFormat
ProfileXmlFormat as specified in attribute centric or element centric format. For more information, see ProfileXmlFormat.
[C#]
keyValue
String Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".
xmlData
String XML blob specifying initial state of the profile object.
xmlFormat
ProfileXmlFormat as specified in attribute centric or element centric format. For more information, see ProfileXmlFormat.

Return Value

Handle to newly created profile object.

Remarks

This method throws a CommerceProfileAlreadyExistsException exception if a profile instance with the specified primary key already exists. Note that this method only checks the local profile cache for existence of a profile with the provided key. The physical profile store is not checked until the Update method is called to commit the new profile instance to the store. For any other failure, it throws a CommerceProfileSystemException exception that wraps an inner COMException exception that contains an error code and description describing in more detail the nature of the failure.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.DeleteProfile (String, String) Method (BCL)

Deletes a profile object instance using the specified string as the primary key value.

[Visual Basic .NET]
Public Sub DeleteProfile( _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String _
)
[C#]
public void DeleteProfile(
  System.String keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".
[C#]
keyValue
Value of the primary key property.
profileType
String Profile definition of interest, for example, "UserObject", or "Organization".

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.DeleteProfile (Int32, String) Method (BCL)

Delete specified profile object.

[Visual Basic .NET]
Public Sub DeleteProfile( _
  ByVal keyValue As System.Int32, _
  ByVal profileType As System.String _
)
[C#]
public void DeleteProfile(
  System.Int32 keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.
[C#]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.DeleteProfile (String, String, String) Method (BCL)

Delete specified profile object.

[Visual Basic .NET]
Public Sub DeleteProfile( _
  ByVal keyName As System.String, _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String _
)
[C#]
public void DeleteProfile(
  System.String keyName,
  System.String keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyName
Name of the key property.
keyValue
Value of the key property.
profileType
Profile definition of interest.
[C#]
keyName
Name of the key property.
keyValue
Value of the key property.
profileType
Profile definition of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.DeleteProfile (String, Int32, String) Method (BCL)

Delete specified profile object.

[Visual Basic .NET]
Public Sub DeleteProfile( _
  ByVal keyName As System.String, _
  ByVal keyValue As System.Int32, _
  ByVal profileType As System.String _
)
[C#]
public void DeleteProfile(
  System.String keyName,
  System.Int32 keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyName
Name of the key property.
keyValue
Value of the key property.
profileType
Profile definition of interest.
[C#]
keyName
Name of the key property.
keyValue
Value of the key property.
profileType
Profile definition of interest.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.Dispose Method (BCL)

Use this method to release resources used by this object.

[Visual Basic .NET]
Public Sub Dispose( _
)
[C#]
public void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.GetProfile (String, String) Method (BCL)

Retrieve specified profile object.

[Visual Basic .NET]
Public Function GetProfile( _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile GetProfile(
  System.String keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.
[C#]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.

Return Value

Retrieved profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.GetProfile (Int32, String) Method (BCL)

Retrieve specified profile object.

[Visual Basic .NET]
Public Function GetProfile( _
  ByVal keyValue As System.Int32, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile GetProfile(
  System.Int32 keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.
[C#]
keyValue
Value of the primary key property.
profileType
Profile definition of interest.

Return Value

Retrieved profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.GetProfile (String, String, String) Method (BCL)

Retrieve specified profile object.

[Visual Basic .NET]
Public Function GetProfile( _
  ByVal keyName As System.String, _
  ByVal keyValue As System.String, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile GetProfile(
  System.String keyName,
  System.String keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyName
Profile key property of interest.
keyValue
Value of the primary key property.
profileType
Profile definition of interest.
[C#]
keyName
Profile key property of interest.
keyValue
Value of the primary key property.
profileType
Profile definition of interest.

Return Value

Retrieved profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.GetProfile (String, Int32, String) Method (BCL)

Retrieve specified profile object.

[Visual Basic .NET]
Public Function GetProfile( _
  ByVal keyName As System.String, _
  ByVal keyValue As System.Int32, _
  ByVal profileType As System.String _
) As Profile
[C#]
public Profile GetProfile(
  System.String keyName,
  System.Int32 keyValue,
  System.String profileType
);

Parameters

[Visual Basic .NET]
keyName
Profile key property of interest.
keyValue
Value of the primary key property.
profileType
Profile definition of interest.
[C#]
keyName
Profile key property of interest.
keyValue
Value of the primary key property.
profileType
Profile definition of interest.

Return Value

Retrieved profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.GetSiteTerm (String) Method (BCL)

Initializes the SiteTerms collection and returns the specified SiteTerm object. Returns the SiteTerm object instance for the requested SiteTerm name. Returns null if the requested SiteTerm object does not exist in the profile system.

[Visual Basic .NET]
Public Function GetSiteTerm( _
  ByVal name As System.String _
) As SiteTerm
[C#]
public SiteTerm GetSiteTerm(
  System.String name
);

Parameters

[Visual Basic .NET]
name
The name of the SiteTerm.
[C#]
name
The name of the SiteTerm.

Return Value

The SiteTerm object.

Remarks

Throws an ArgumentNullException if the name parameter is null. Throws an InvalidOperationException in a valid value was not provided for the bdaoConnstr parameter of the constructor.

Throws a CommerceProfileSystemException if the SiteTerms collection was not successfully initialized. The Message and ErrorCode properties of the inner COMException contain details on the specific error that occurred.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext Properties (BCL)

Public Instance Properties

Property | Description
CommerceOleDbProvider | Accesses the Commerce OLEDB provider handle.
SiteTermNames | Gets the SiteTerms collection.

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.CommerceOleDbProvider Property (BCL)

Accesses the Commerce OLEDB provider handle.

Definition

[Visual Basic .NET]
Public ReadOnly Property CommerceOleDbProvider As ADODB.Connection
[C#]
public ADODB.Connection CommerceOleDbProvider {get;}

Property Value

The Commerce OLEDB provider handle.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileContext.SiteTermNames Property (BCL)

Gets the SiteTerms collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property SiteTermNames As System.Collections.ArrayList
[C#]
public System.Collections.ArrayList SiteTermNames {get;}

Property Value

The SiteTerms collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties

Code to Use the SiteTerm Class


ProfileDataType Enumeration (BCL)

Enumerates all the profile data types exposed by the Profiles Base Class Library.

Members

Member name | Description
Binary | Indicates a Binary datatype. Corresponds to ADODB.DataTypeEnum.adBinary with a maximum storage size of 4K bytes.
Boolean | Indicates a Boolean datatype. Corresponds to ADODB.DataTypeEnum.adBoolean.
Currency | Indicates a Currency datatype. Corresponds to ADODB.DataTypeEnum.adCurrency.
DateTime | Indicates a DateTime datatype. Corresponds to ADODB.DataTypeEnum.adDateTime.
Double | Indicates a Double datatype. Corresponds to ADODB.DataTypeEnum.adDouble.
Integer | Indicates an Integer datatype. Corresponds to ADODB.DataTypeEnum.adInteger.
LongBinary | Indicates a Binary data type. Corresponds to ADODB.DataTypeEnum.adBinary, with a maximum storage size of 128*K bytes.
LongString | Indicates a LongString datatype. Corresponds to ADODB.DataTypeEnum.adBSTR and ADODB.DataTypeEnum.adWCHAR with a maximum storage size of 128*1024 characters.
Short | Indicates a Short datatype. Corresponds to ADODB.DataTypeEnum.adSmallInt.
Single | Indicates a Single datatype. Corresponds to ADODB.DataTypeEnum.adSingle.
String | Indicates a String datatype. Corresponds to ADODB.DataTypeEnum.adBSTR and ADODB.DataTypeEnum.adWCHAR with a maximum storage size of 4000 characters.
Variant | Indicates a Variant datatype. Corresponds to ADODB.DataTypeEnum.adVariant.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


IProfileElements Interface (BCL)

An interface that encapsulates the common collections exposed by Profile and ProfilePropertyGroup objects.

Public Instance Properties

Property | Description
Properties | Retrieves the Property collection on this Profile object.
PropertyGroups | Retrieves the PropertyGroups collection on this Profile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: W indows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


IProfileElements Properties (BCL)

Public Instance Properties

Property | Description
Properties | Retrieves the Property collection on this Profile object.
PropertyGroups | Retrieves the PropertyGroups collection on this Profile object.


IProfileElements.Properties Property (BCL)

The Properties property retrieves the Property collection on this Profile object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Properties As ProfilePropertyCollection
[C#]
public ProfilePropertyCollection Properties {get;}

Property Value

The ProfilePropertyCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: W indows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


IProfileElements.PropertyGroups Property (BCL)

The PropertyGroups property retrieves the PropertyGroups collection on this Profile object.

Definition

[Visual Basic .NET]
Public ReadOnly Property PropertyGroups As ProfilePropertyGroupCollection
[C#]
public ProfilePropertyGroupCollection PropertyGroups {get;}

Property Value

The ProfilePropertyGroupCollection object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: W indows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty Class (BCL)

Creates an abstraction for the profile property.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetProfiles(String) | Retrieves a profile object collection of the specified profile type, using the current property values as the values for the primary key.
GetProfiles(String, String) | Retrieves a profile object collection of the specified profile type by the specified key member name, using the current property values as the values the primary key.

Public Instance Properties

Property | Description
Attributes | Retrieves the profile property attributes collection.
IsMultivalued | Indicates if this is a multivalued property.
MaxSize | Gets maximum size for this property.
Name | Retrieves the property name.
Type | Retrieves the profile property data type.
Value | Accesses the property value.

Remarks

When assigning values to the ProfileProperty.Value member, do not pass an array of strings with one or more null elements. Doing so will cause an exception to be thrown, and the ProfileProperty.Value member assignment will not occur.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetProfiles(String) | Retrieves a profile object collection of the specified profile type, using the current property values as the values for the primary key.
GetProfiles(String, String) | Retrieves a profile object collection of the specified profile type by the specified key member name, using the current property values as the values the primary key.


ProfileProperty.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.GetProfiles (String) Method (BCL)

Use this method to retrieve a profile object collection of the specified profile type, using the current property values as the values for the primary key.

Definition

[Visual Basic .NET]
Public Function GetProfiles( _
  ByVal profileType As System.String, _
) As Microsoft.CommerceServer.Runtime.Profiles.ProfileCollection
[C#]
public Microsoft.CommerceServer.Runtime.Profiles.ProfileCollection GetProfiles(
  System.String profileType,
);

Parameters

[Visual Basic .NET]
profileType
A String that contains the profile type of interest.
[C#]
profileType
A String that contains the profile type of interest.

Return Value

A profile object collection of the specified profile type

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.GetProfiles (String, String) Method (BCL)

Use this method to retrieve a profile object collection of the specified profile type by the specified key member name, using the current property values as the values the primary key.

Definition

[Visual Basic .NET]
Public Function GetProfiles( _
  ByVal keyName As System.String, _
  ByVal profileType As System.String, _
) As Microsoft.CommerceServer.Runtime.Profiles.ProfileCollection
[C#]
public Microsoft.CommerceServer.Runtime.Profiles.ProfileCollection GetProfiles(
  System.String keyName,
  System.String profileType,
);

Parameters

[Visual Basic .NET]
keyName
A String that contains the key member to retrieve the profile.
profileType
A String that contains the profile type of interest.
[C#]
keyName
A String that contains the key member to retrieve the profile.
profileType
A String that contains the profile type of interest.

Return Value

A profile object collection of the specified profile type

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty Properties (BCL)

Public Instance Properties

Property | Description
Attributes | Retrieves the profile property attributes collection.
IsMultivalued | Indicates if this is a multivalued property.
MaxSize | Gets maximum size for this property.
Name | Retrieves the property name.
Type | Retrieves the profile property data type.
Value | Accesses the property value.


ProfileProperty.Attributes Property (BCL)

The Attributes property retrieves the profile property attributes collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property Attributes As ProfilePropertyAttributeCollection
[C#]
public ProfilePropertyAttributeCollection Attributes {get;}

Property Value

A ProfilePropertyAttributeCollection containing the profile property attributes.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.IsMultivalued Property (BCL)

The IsMultivalued property indicates if this is a multivalued property.

Definition

[Visual Basic .NET]
Public ReadOnly Property IsMultivalued As System.Boolean
[C#]
public System.Boolean IsMultivalued {get;}

Property Value

A System.Boolean indicating if this is a multivalued property.

Remarks

Returns True, if this is a multivalued property; False otherwise.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.MaxSize Property (BCL)

The MaxSize property get the maximum size for this property.

Definition

[Visual Basic .NET]
Public ReadOnly Property MaxSize As System.Int32
[C#]
public System.Int32 MaxSize {get;}

Property Value

The maximum size for this property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.Name Property (BCL)

The Name property retrieves the property name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

The property name.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.Type Property (BCL)

The Type property retrieves the profile property data type.

Definition

[Visual Basic .NET]
Public ReadOnly Property Type As ProfileDataType
[C#]
public ProfileDataType Type {get;}

Property Value

A ProfileDataType object indicating the datatype of the profile property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileProperty.Value Property (BCL)

The Value property accesses the property value.

Definition

[Visual Basic .NET]
Public Property Value As System.Object
[C#]
public System.Object Value {get; set;}

Property Value

A System.Object containing the value of the property.

Remarks

When assigning values to the ProfileProperty.Value member, do not pass an array of strings with one or more null elements. Doing so will cause an exception to be thrown, and the ProfileProperty.Value member assignment will not occur.

When dealing with implementations involving the encryption of profile properties, note that the KeyIndex ProfileProperty.Value property is read-only, and will throw an exception if you write to it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttribute Class (BCL)

This class serves as an abstraction for a profile property attribute.

Public Instance Properties

Property | Description
Name | Contains the name of the property attribute.
Value | Contains the value of the property attribute.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttribute Properties (BCL)

Public Instance Properties

Property | Description
Name | Contains the name of the property attribute.
Value | Contains the value of the property attribute.


ProfilePropertyAttribute.Name Property (BCL)

The Name property contains the name of the property attribute.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

A System.Object containing the name of the attribute.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttribute.Value Property (BCL)

The Value property contains the value of the property attribute.

Definition

[Visual Basic .NET]
Public ReadOnly Property Value As System.Object
[C#]
public System.Object Value {get;}

Property Value

A System.Object containing the value of the attribute.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection Class (BCL)

The ICollection implementation for the profile attributes collection.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Explicit ICollection.CopyTo implementation. This method copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(String) | Indexer to allow for accessing the ProfilePropertyAttribute collection by name.
Item(Int32) | Indexer to allow for accessing the ProfilePropertyAttribute collection by index.
SyncRoot | Retrieves the object for synchronizing operations on this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Explicit ICollection.CopyTo implementation. This method copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.


ProfilePropertyAttributeCollection.CopyTo (Array, Int32) Method (BCL)

Explicit ICollection.CopyTo implementation. This method copies the elements of this collection into the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Array to copy data to.
index
The zero-based index in the array at which copying begins.
[C#]
array
Array to copy data to.
index
The zero-based index in the array at which copying begins.

Implements

System.Collections.ICollection

Remarks

Always throws a NotImplementedException exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection.GetEnumerator Method (BCL)

Use this method to retrieve the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Implements

System.IEnumerable

Return Value

The handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(String) | Indexer to allow for accessing the ProfilePropertyAttribute collection by name.
Item(Int32) | Indexer to allow for accessing the ProfilePropertyAttribute collection by index.
SyncRoot | Retrieves the object for synchronizing operations on this collection.


ProfilePropertyAttributeCollection.Count Property (BCL)

The Count property returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

A System.Int32 indicating the number of ProfilePropertyAttributes items.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection.IsSynchronized Property (BCL)

The IsSynchronized property indicates whether this collection supports synchronization.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection.Item(Int32) Property (BCL)

The Item property allows for accessing the ProfilePropertyAttribute collection items by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As ProfilePropertyAttribute
[C#]
public ProfilePropertyAttribute Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
Specifies the zero-based index item in the ProfilePropertyAttribute collection to return.
[C#]
index
Specifies the zero-based index item in the ProfilePropertyAttribute collection to return.

Property Value

The handle to the specified ProfilePropertyAttribute instance.

Remarks

Throws and ArgumentOutOfRange exception if the parameter is out of range.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection.Item(String) Property (BCL)

The Item property allows for accessing the ProfilePropertyAttribute collection items by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal name As System.String _
) As ProfilePropertyAttribute
[C#]
public ProfilePropertyAttribute Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
A System.String containing the name of the ProfilePropertyAttribute
[C#]
name
A System.String containing the name of the ProfilePropertyAttribute

Property Value

The handle to the specified ProfilePropertyAttribute instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyAttributeCollection.SyncRoot Property (BCL)

The SyncRoot property retrieves the object for synchronizing operations on this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection Class (BCL)

Creates an abstraction for the profile properties collection.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies specified element to the specified array.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(Int32) | Indexer to allow for accessing the ProfileProperty collection by index.
Item(String) | Indexer to allow for accessing the ProfileProperty collection by name.
SyncRoot | Retrieves the object for synchronizing operations on this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies specified element to the specified array.
GetEnumerator | Retrieves the enumerator on this collection.


ProfilePropertyCollection.CopyTo (Array, Int32) Method (BCL)

Copies specified element to the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy data to.
index
Zero-based index in array at which copying begins.
[C#]
array
The array to copy data to.
index
Zero-based index in array at which copying begins.

Implements

System.Collections.ICollection

Remarks

Always throws an InvalidOperation exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection.GetEnumerator Method (BCL)

Use this method to retrieve the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Implements

System.IEnumerable

Return Value

The handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Indicates whether this collection supports synchronization.
Item(Int32) | Indexer to allow for accessing the ProfileProperty collection by index.
Item(String) | Indexer to allow for accessing the ProfileProperty collection by name.
SyncRoot | Retrieves the object for synchronizing operations on this collection.


ProfilePropertyCollection.Count Property (BCL)

The Count property returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Implements

System.Collections.ICollection

Property Value

A System.Int32 indicating the number of ProfileProperties in the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection.IsSynchronized Property (BCL)

The IsSynchronized property indicates whether this collection supports synchronization.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection.Item(Int32) Property (BCL)

The Item property is an indexer to allow for accessing the ProfileProperty collection by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As ProfileProperty
[C#]
public ProfileProperty Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
The index of the ProfileProperty collection.
[C#]
index
The index of the ProfileProperty collection.

Property Value

Handle to the specified ProfileProperty instance.

Remarks

Throws and ArgumentOutOfRange exception if the parameter is out of range.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection.Item(String) Property (BCL)

The Item property is an indexer to allow for accessing the ProfileProperty collection by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal name As System.String _
) As ProfileProperty
[C#]
public ProfileProperty Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
A System.String containing the name of the ProfileProperty collection.
[C#]
name
A System.String containing the name of the ProfileProperty collection.

Property Value

The handle to the specified ProfileProperty instance.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyCollection.SyncRoot Property (BCL)

The SyncRoot property retrieves the object for synchronizing operations on this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfilePropertyGroup Class (BCL)

Creates an abstraction for a profile property group.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.

Public Instance Properties

Property | Description
Item(String) | Retrieves the ProfileProperty instance by name.
Name | Accesses the property group name.
Properties | Retrieves the property collection on this property group.
PropertyGroups | Retrieves the property groups collection on this property group.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Retrieves the ProfileProperty instance by name.
Name | Accesses the property group name.
Properties | Retrieves the property collection on this property group.
PropertyGroups | Retrieves the property groups collection on this property group.

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup.Item Property (BCL)

The Item property retrieves the ProfileProperty instance by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal propertyName As System.String _
) As ProfileProperty
[C#]
public ProfileProperty Item(
  System.String propertyName
) {get;}

Parameters

[Visual Basic .NET]
propertyName
A System.String containing the name of the property.
[C#]
propertyName
A System.String containing the name of the property.

Property Value

The ProfileProperty object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup.Name Property (BCL)

The Name property accesses the property group name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

A System.String containing the name of the property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup.Properties Property (BCL)

The Properties property retrieves the property collection on this property group.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Properties As ProfilePropertyCollection
[C#]
public virtual ProfilePropertyCollection Properties {get;}

Property Value

The ProfilePropertyCollection object.

Implements

IProfileElements

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroup.PropertyGroups Property (BCL)

The PropertyGroups property retrieves the property groups collection on this property group.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property PropertyGroups As ProfilePropertyGroupCollection
[C#]
public virtual ProfilePropertyGroupCollection PropertyGroups {get;}

Property Value

The ProfilePropertyGroupCollection object.

Implements

IProfileElements

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection Class (BCL)

Creates an abstraction for a property groups collection.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Explicit ICollection.CopyTo implementation. Copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Checks to see if this collection supports synchronization.
Item(String) | Retrieves a ProfilePropertyGroup instance by index.
Item(Int32) | Retrieves a ProfilePropertyGroup instance by index.
SyncRoot | Retrieve the object for synchronizing operations on this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Explicit ICollection.CopyTo implementation. Copies the elements of this collection into the specified array.
GetEnumerator | Retrieves the enumerator on this collection.

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.CopyTo (Array, Int32) Method (BCL)

Explicit ICollection.CopyTo implementation. Copies the elements of this collection into the specified array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Array to copy data to.
index
Zero-based index in array at which copying begins.
[C#]
array
Array to copy data to.
index
Zero-based index in array at which copying begins.

Remarks

Always throws a NotImplementedException exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.GetEnumerator Method (BCL)

Use this method to retrieve the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Implements

System.IEnumerable

Return Value

The handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Checks to see if this collection supports synchronization.
Item(String) | Retrieves a ProfilePropertyGroup instance by index.
Item(Int32) | Retrieves a ProfilePropertyGroup instance by index.
SyncRoot | Retrieves the object for synchronizing operations on this collection.

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.Count Property (BCL)

The Count property returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Implements

System.Collections.ICollection

Property Value

A System.Int32 indicating the number of ProfileProperties in the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.IsSynchronized Property (BCL)

The IsSynchronized property checks to see if this collection supports synchronization.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean indicating whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.Item (Int32) Property (BCL)

The Item property is the indexer to allow for accessing the ProfilePropertyGroupCollection collection by index.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.Int32 _
) As ProfilePropertyGroup
[C#]
public ProfilePropertyGroup Item(
  System.Int32 index
) {get;}

Parameters

[Visual Basic .NET]
index
The index of the ProfilePropertyGroup in the collection.
[C#]
index
The index of the ProfilePropertyGroup in the collection.

Property Value

The value of the index.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.Item (String) Property (BCL)

The Item property is the indexer to allow for accessing the ProfilePropertyGroupCollection collection by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal index As System.String _
) As ProfilePropertyGroup
[C#]
public ProfilePropertyGroup Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
The name of the ProfilePropertyGroup in the collection.
[C#]
name
The name of the ProfilePropertyGroup in the collection.

Property Value

The name of the ProfilePropertyGroup in the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfilePropertyGroupCollection.SyncRoot Property (BCL)

The SyncRoot property retrieves the object for synchronizing operations on this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The object used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Create and Set Profile Properties

Code to Retrieve and Display Profile Properties


ProfileXmlFormat Enumeration (BCL)

Enumerates the XML formats supported by the Profiling System.

Members

Member Name | Description
AttributeCentric | Indicates the attribute-centric format.
ElementCentric | Indicates the element-centric format.

Remarks

Inherits from System.Enum.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ProfileXmlRetrieve Enumeration (BCL)

Enumerates the XML retrieval options supported by the Profiling System.

Members

Member Name | Description
Data | Indicates retrieve data only.
Schema | Indicates retrieve schema only.
SchemaAndData | Indicates retrieve data and schema.

Remarks

Inherits from System.Enum.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


SiteTerm Class (BCL)

Encapsulates a site term.

Public Instance Methods

Method | Description
Validate (Object) | Validates that the value set on the specified ProfileProperty a valid value on this SiteTerm.

Public Instance Properties

Property | Description
Elements | Accesses the site term elements.
Name | Accesses the name property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTerm Methods (BCL)

Public Instance Methods

Method | Description
Validate (Object) | Validates that the value set on the specified ProfileProperty is a valid value on this SiteTerm.

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTerm.Validate (Object) Method (BCL)

Use this method to validate that the value set on the specified ProfileProperty is a valid value on this SiteTerm object.

Definition

[Visual Basic .NET]
Public Function Validate( _
ByVal property As ProfileProperty _
) As Boolean
[C#]
public Boolean Validate(
ProfileProperty property
);

Parameters

[Visual Basic .NET]
property
The ProfileProperty to be validated.
[C#]
property
The ProfileProperty to be validated.

Return Value

A Boolean indicating whether the ProfileProperty is valid. A value of true indicates that the ProfileProperty is valid.

Remarks

A check will be done against the contained site term data.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTerm Properties (BCL)

Public Instance Properties

Property | Description
Elements | Accesses the site term elements.
Name | Accesses the name property.

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTerm.Elements Property (BCL)

The Elements property returns the site term elements collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property Elements As Microsoft.CommerceServer.Runtime.Profiles.SiteTermCollection
[C#]
public Microsoft.CommerceServer.Runtime.Profiles.SiteTermCollection Elements {get;}

Property Value

The SiteTermCollection that contains the site term elements.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTerm.Name Property (BCL)

The Name property access the name property.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

A System.String containing the name of the site term.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement Class (BCL)

Encapsulates a site-term element.

Public Instance Methods

Method | Description
CompareTo (Object) | Compares the SiteTermElement object to a given object.
Equals (Object) | Determines whether two Object instances are equal.
GetHashCode | Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures such as a hash table.

Public Instance Properties

Property | Description
Name | Accesses the name of this site term element
Value | Accesses the value of this site term element

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement Methods (BCL)

Public Instance Methods

Method | Description
CompareTo (Object) | Compares the SiteTermElement to a given object.
Equals (Object) | Determines whether two Object instances are equal.
GetHashCode | Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures such as a hash table.

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement.CompareTo (Object) Method (BCL)

Use this method to compares the SiteTermElement to a given object of type SiteTermElement.

Definition

[Visual Basic .NET]
Overridable Public Function CompareTo( _
  ByVal obj As System.Object _
) As Integer
[C#]
public virtual Integer CompareTo(
  System.Object obj
);

Parameters

[Visual Basic .NET]
obj
The object to be compared to.
[C#]
obj
The object to be compared to.

Return Value

If the return value is less than 0, the name member of the SiteTerm element object is less than the name member of the input parameter.

If the return value is equal to 0, the name member of the SiteTerm element object is equal to the name member of the input parameter.

If the return value is greater than 0, the name member of the SiteTerm element object is greater than the name member of the input parameter.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement.Equals (Object) Method (BCL)

Use this method to determine whether two Object instances are equal.

Definition

[Visual Basic .NET]
Overridable Public Function Equals( _
  ByVal obj As System.Object _
) As System.Boolean
[C#]
public virtual System.Boolean Equals(
  System.Object obj
);

Parameters

[Visual Basic .NET]
obj
The object to compare with the current Object.
[C#]
obj
The object to compare with the current Object.

Return Value

A value of True if the specified Object is equal to the current Object; otherwise, False.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement.GetHashCode Method (BCL)

Use this method to serve as a hash function for a particular type, suitable for use in hashing algorithms and data structures such as a hash table.

Definition

[Visual Basic .NET]
Overrides Public Function GetHashCode( _
) As Integer
[C#]
public override Integer GetHashCode(
);

Return Value

A hash code for the current Object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement Properties (BCL)

Public Instance Properties

Property | Description
Name | Accesses the name of the site term element
Value | Accesses the value of the site term element

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement.Name Property (BCL)

The Name property accesses the name of the SiteTermElement object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

A System.String containing the name of the site term element.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElement.Value Property (BCL)

The Value property accesses the value of the SiteTermElement object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Value As System.Object
[C#]
public System.Object Value {get;}

Property Value

A System.Object containing the name of the site term element.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection Class (BCL)

Creates an abstraction for the SiteTerm elements collection.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copy elements to an array.
GetEnumerator | Retrieves the enumerator on this collection.

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Not used.
Item(String) | Indexer to allow for accessing the SiteTerm collection by name.
SyncRoot | Not used

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copy elements to an array.
GetEnumerator | Retrieves the enumerator on this collection.

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.CopyTo (SiteTerm[], Int32) Method (BCL)

Copy elements to an array.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As SiteTerm[], _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  SiteTerm[] array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
Array to copy data to.
index
Index at which to start copying.
[C#]
array
Array to copy data to.
index
Index at which to start copying.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.GetEnumerator Method (BCL)

Retrieves the enumerator on this collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Implements

System.Collections.ICollection

Return Value

Handle to an IEnumerator interface implementation for this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Returns the count of this collection.
IsSynchronized | Not used.
Item(String) | Indexer to allow for accessing the SiteTerm collection by name.
SyncRoot | Not used

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.Count Property (BCL)

Returns the count of this collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Implements

System.Collections.ICollection

Property Value

Integer that contains the count of this collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.IsSynchronized Property (BCL)

Not used.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.Item(String) Property (BCL)

Indexer to allow for accessing the SiteTerm collection by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal name As System.String _
) As SiteTermElement
[C#]
public SiteTermElement Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
Name of the SiteTerm element.
[C#]
name
Name of the SiteTerm element.

Property Value

The specified SiteTermElement

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


SiteTermElementCollection.SyncRoot Property (BCL)

Implementation of the ICollection::SyncRoot property.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

Icollection::SyncRoot property.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Build a Login Page

Code to Use the SiteTerm Class


Example Code for the Microsoft.CommerceServer.Profiles Namespace

Examples

Example | Description
Code to Create and Set Profile Properties | Describes how to create and set profile properties.
Code to Retrieve and Display Profile Properties | Describes how to retrieve and display profile properties.
Code to Use the SiteTerm Class | Describes how to retrieve, iterate, sort, compare, and validate site terms.


Code to Create and Set Profile Properties

Use the following code to create and set profile properties.

<%@ Page language="c#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Profiles" %>
<html>
   <script language="C#" runat="server">

      // Web-form scoped variables.
      ProfileContext profileContext = CommerceContext.Current.ProfileSystem;

      void Page_Load(Object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            LogonnameValidator.ErrorMessage = "* Invalid logon name *";
            PasswordValidator.ErrorMessage = "* Invalid password *";
            FirstNameValidator.ErrorMessage = "* Invalid first name *";
            LastNameValidator.ErrorMessage = "* Invalid last name *";
            EMailValidator.ErrorMessage = "* Invalid email address *";
         }
      }

      // Event handler for the "Cancel" button click.
      public void Cancel_Click(Object sender, EventArgs args)
      {
         // Simply clear off values associated with the text box controls.
         LogonnameText.Text = "";
         PasswordText.Text = "";
         FirstnameText.Text = "";
         LastnameText.Text = "";
         EmailText.Text = "";
      }

      // Event handler for the "OK" button click.
      public void Ok_Click(Object sender, EventArgs args)
      {
         if (IsValid)
         {
            Profile userProfile;
            ProfilePropertyGroup generalInfo;

            // Create user profile by this name.
            userProfile = profileContext.CreateProfile(LogonnameText.Text, "UserObject");

            // Different ways to set single-valued profile properties.
            // To learn about setting multi-valued profile properties, please refer
            // to reference documentation for ProfileProperty.Value.
            userProfile["GeneralInfo.user_security_password"].Value = PasswordText.Text;
            userProfile.Properties["GeneralInfo.first_name"].Value = FirstnameText.Text;
            userProfile.PropertyGroups["GeneralInfo"]["last_name"].Value = LastnameText.Text;

            generalInfo = userProfile.PropertyGroups["GeneralInfo"];
            generalInfo["email_address"].Value = EmailText.Text;

            // Persist user profile to underlying stores.
            userProfile.Update();
         }
      }
   </script>
   <body>
   <body>
      <form ID="createprofile" method="post" runat="server">
         <asp:Label id="TitleLabel" Text="Create a profile" runat="server" /><br>
         <br>
         <asp:Table runat="server" id="profileData" BorderWidth="2">
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="LogonNameLabel" Text="Name:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="LogonnameText" runat="server"></asp:TextBox>
                  <asp:RequiredFieldValidator id="LogonnameValidator" runat="server" ControlToValidate="LogonnameText" Display="dynamic"></asp:RequiredFieldValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="PasswordLabel" Text="Password:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="PasswordText" TextMode="Password" runat="server"></asp:TextBox>
                  <asp:RequiredFieldValidator id="PasswordValidator" runat="server" ControlToValidate="PasswordText" Display="dynamic"></asp:RequiredFieldValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="FirstNameLabel" Text="First Name:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="FirstnameText" runat="server"></asp:TextBox>
                  <asp:RequiredFieldValidator id="FirstNameValidator" runat="server" ControlToValidate="FirstnameText" Display="dynamic"></asp:RequiredFieldValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="LastNameLabel" Text="Last Name:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="LastnameText" runat="server"></asp:TextBox>
                  <asp:RequiredFieldValidator id="LastNameValidator" runat="server" ControlToValidate="LastnameText" Display="dynamic"></asp:RequiredFieldValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="EmailLabel" Text="Email Address:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="EmailText" runat="server"></asp:TextBox>
                  <asp:RegularExpressionValidator id="EMailValidator" runat="server" ControlToValidate="EmailText" ValidationExpression=".*@.*\..*" Display="dynamic"></asp:RegularExpressionValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Button id="Ok" Text="Ok" OnClick="Ok_Click" runat="server" Width="80" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:Button id="Cancel" Text="Cancel" OnClick="Cancel_Click" runat="server" CausesValidation="false" Width="80" />
               </asp:TableCell>
            </asp:TableRow>
         </asp:Table>
      </form>
   </body>
</html>

See Also

CommerceContext Class (BCL)

Profile Class (BCL)

ProfileContext Class (BCL)

ProfilePropertyGroup Class (BCL)


Code to Retrieve and Display Profile Properties

Use the following code to retrieve and display profile properties.

<%@ Page language="c#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Profiles" %>
<html>
   <script language="C#" runat="server">

      // Web-form scoped variables.
      ProfileContext profileContext = CommerceContext.Current.ProfileSystem;

      // Default page action.
      void Page_Load(Object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            LogonnameValidator.ErrorMessage = "* User does not exist *";
         }
      }

      // Event handle for the click event on the "Ok" button.
      public void Ok_Click(Object sender, EventArgs args)
      {
         DisplayProperties(LogonnameText.Text);
      }

      // This method retrieves the user profile for the specified logon
      // name, and displays the value for every property on this profile.
      void DisplayProperties(string logonName)
      {
         Profile userProfile;

         // Retrieve an existing profile from the
         userProfile = profileContext.GetProfile("logon_name", logonName, "UserObject");

         if (userProfile == null)
         {
            LogonnameValidator.IsValid = false;
            ProfilePropertyGroups.DataSource = null;
            ProfilePropertyGroups.DataBind();
         }
         else
         {
            ProfilePropertyGroups.DataSource = userProfile.PropertyGroups;
            ProfilePropertyGroups.DataBind();

            BindProperties();
         }
      }

      // This method binds the properties collection on all the top-level property
      // groups to individual nested repeater controls.
      void BindProperties()
      {
         int i;
         ProfilePropertyGroup ppg;
         ProfilePropertyGroupCollection ppgc;

         ppgc = ProfilePropertyGroups.DataSource as ProfilePropertyGroupCollection;
         for (i = 0 ; i < ppgc.Count ; i++)
         {
            Repeater propertiesControl;

            // Retrieve the ith property group.
            ppg = ppgc[i];

            // Bind the properties collection on this property group to the
            // nested "ProfileProperties" repeater.
            propertiesControl = ProfilePropertyGroups.Items[i].FindControl("ProfileProperties") as Repeater;
            propertiesControl.DataSource = ppg.Properties;
            propertiesControl.DataBind();
         }
      }
   </script>
   <body>
   <body>
      <form ID="displayprofile" method="post" runat="server">
         <asp:Label id="TitleLabel" Text="Display a profile" runat="server" /><br>
         <br>
         <asp:Table runat="server" id="profileData" BorderWidth="2">
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Label id="LogonNameLabel" Text="Name:" runat="server" />
               </asp:TableCell>
               <asp:TableCell>
                  <asp:TextBox id="LogonnameText" runat="server"></asp:TextBox>
                  <asp:RequiredFieldValidator id="LogonnameValidator" runat="server" ControlToValidate="LogonnameText" Display="dynamic"></asp:RequiredFieldValidator>
               </asp:TableCell>
            </asp:TableRow>
            <asp:TableRow>
               <asp:TableCell>
                  <asp:Button id="Ok" Text="Ok" OnClick="Ok_Click" runat="server" Width="80" />
               </asp:TableCell>
            </asp:TableRow>
         </asp:Table>
         <asp:Repeater ID="ProfilePropertyGroups" Runat="server">
            <HeaderTemplate>
               <hr/>
            </HeaderTemplate>
            <ItemTemplate>
               <p>
               <%# DataBinder.Eval(Container.DataItem, "Name") %> :
               <br/>
               <asp:Repeater ID="ProfileProperties" Runat="server">
                  <ItemTemplate>
                     &nbsp;&nbsp;&nbsp;&nbsp;<%# DataBinder.Eval(Container.DataItem, "Name") %> : <%# DataBinder.Eval(Container.DataItem, "Value") %>
                     <br/>
                  </ItemTemplate>
               </asp:Repeater>
            </ItemTemplate>
            <FooterTemplate>
               <hr/>
            </FooterTemplate>
         </asp:Repeater>
      </form>
   </body>
</html>

See Also

CommerceContext Class (BCL)

Profile Class (BCL)

ProfileContext Class (BCL)

ProfilePropertyGroup Class (BCL)

ProfilePropertyGroupCollection Class (BCL)


Code to Use the Site Term Class

Use the following code to retrieve, iterate, sort, compare, and validate site terms. This code sample requires that the CommerceProfileModule object is configured in the web.config file. For more information about the CommerceProfileModule class, see Commerce Modules and CommerceProfileModule Class.

<%@ Page language="c#" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Profiles" %>

<script language="C#" runat="server">
   private void Page_Load(object sender, System.EventArgs e)
      {
         ProfileContext pc;
         SiteTerm st;
         SiteTermElementCollection stc;
         SiteTermElement ste, ste2;
         ArrayList stNames;
         SiteTermElement [] stElementArray;
         Profile profile;

      try
      {
         if (CommerceContext.Current != null)
         {
            pc = CommerceContext.Current.ProfileSystem;

            // Retrieve all the siteterms in the catalog.
            stNames = pc.SiteTermNames;

            if (stNames.Count > 0)
            {
               // Retrieve all the elements contained in a
               // particular siteterm, encapsulated within
               // a SiteTerm class.
               st = pc.GetSiteTerm((string)stNames[0]);

               // Retrieve the siteterms in a collection
               // and iterate through them.
               stc = st.Elements;
               Response.Write("SiteTerm:  " + stNames[0] + " has " + stc.Count + " elements.<br>");
               foreach (SiteTermElement steTemp in stc)
               {
                  Response.Write("Name:  " + steTemp.Name + "        Value:  " + steTemp.Value + "<br>");
               }
               Response.Write("<br><br>");

               // Sort days of the week siteterm and display them.
               stElementArray = new SiteTermElement[stc.Count];
               stc.CopyTo(stElementArray, 0);
               Array.Sort(stElementArray);
               Response.Write("SiteTerm:  " + stNames[0] + " in sorted order.<br>");
               foreach (SiteTermElement steTemp in stElementArray)
               {
                  Response.Write("Name:  " + steTemp.Name + "        Value:  " + steTemp.Value + "<br>");
               }
               Response.Write("<br><br>");

               // Reference the siteterm within the collection by name.
               ste = stc["Guest User"];
               Response.Write("Reference a siteterm element from a collection by name.<br>");
               Response.Write("Name:  " + ste.Name + "        Value:  " + ste.Value + "<br>");
               Response.Write("<br><br>");

               // Compare siteterm elements.
               ste2 = stc["Registered User"];
               if (ste.Equals(ste2))
                  Response.Write("The two SiteTermElement objects are equal.<br>");
               else
                  Response.Write("The two SiteTermElement objects are not equal.<br>");
               Response.Write("<br><br>");

               // Validate a profile property through the siteterm class.
               profile = pc.GetProfile("logon_name", "username", "UserObject");
               if (profile != null)
               {
                  ' if there really is a profile in the profile store
                  if (st.Validate(profile.Properties[0]))
                     Response.Write("The profile property is validated.<br>");
                  else
                     Response.Write("The profile property is not valid.<br>");
               }
               else
                  Response.Write("The profile does not exist.<br>");
               Response.Write("<br><br>");
            }
         }

      }
      catch(Exception ex)
      {
         Response.Write(ex.Message);
      }
   }
</script>

<HTML>
   <HEAD>
      <title ID=L_Login_HTMLTitle>Login</title>
      <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
      <meta name="CODE_LANGUAGE" Content="C#">
      <meta name="vs_defaultClientScript" content="JavaScript">
      <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
   </HEAD>
   <body MS_POSITIONING="GridLayout">

   </body>
</HTML>

See Also

Profile Class (BCL)

ProfileContext Class (BCL)

SiteTerm Class (BCL)

SiteTermElement Class (BCL)

SiteTermElementCollection (BCL)


Microsoft.CommerceServer.Runtime.Targeting

The classes in the Microsoft.CommerceServer.Runtime.Targeting namespace contain the content selection and campaign functionality of the Commerce Server .NET Application Framework.

Microsoft.CommerceServer.Runtime.Targeting Namespace Object Model

Depicts the object model for the Microsoft.CommerceServer.Runtime.Targeting namespace.

Classes

Class | Description
CommerceContentSelectionModule | Creates the collection of ContentSelectionContext objects used in the site.
CommerceExpressionModule | Creates the default CatalogContext object for the site.
CommerceTargetingException | Represents an exception thrown when the profiles collection contains profiles other than User and TargetingContext.
ContentItemCollection | Represents a set of rows in a ContentList object.
ContentSelectionContext | Represents an application context for Content Selection Framework (CSF) content selection. For example, advertising and discounts each have their own ContentSelectionContext object to specify components such as the pipeline and the cache that should be used by the ContentSelector object.
ContentSelectionContextCollection | Represents a collection of ContentSelectionContext objects.
ContentSelector | Invokes CSF pipelines.
ExpressionEvaluator | Evaluates targeting expressions.
TargetingProfileCollection | Stores the set of named Profile objects to be targeted.
TargetingSystemInfo | Gets the current instances of the classes required by the Targeting System.

Enumerations

Enumeration | Description
ExpressionEvaluator_ExpressionResult | An expression result: true, false, or undefined.

Examples

Example | Description
Code to Display Targeted Advertisements on an ASP.NET Web Form | Describes how to create a targeting profile, create a user profile, run the content selector object, and display targeted advertisements on an ASP.NET Web form.

See Also

Commerce Server .NET Application Framework Tutorial


CommerceContentSelectionModule Class (BCL)

Creates the collection of ContentSelectionContext objects used in the site.

Public Instance Constructor

Constructor | Description
CommerceContentSelectionModule Constructor | Creates a new instance of the CommerceContentSelectionModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ContentSelectionContexts | Gets the ContentSelectionContextCollection object built in the contentSelection portion of the web.config file.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContentSelectionModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceContentSelectionModule Constructor | Creates a new instance of the CommerceContentSelectionModule class.


CommerceContentSelectionModule Constructor (BCL)

Use this method to create a new instance of the CommerceContentSelectionModule class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceContentSelectionModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContentSelectionModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceContentSelectionModule.Init(HttpApplication) Method (BCL)

Use this method to subscribe the class to application BeginRequest events.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The HttpApplication instance that created this module.
[C#]
appInstance
The HttpApplication instance that created this module.

Implements

System.Web.IHttpModule

Remarks

This module does not subscribe to any application events.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceContentSelectionModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ContentSelectionContexts | Gets the ContentSelectionContextCollection built in the contentSelection portion of the web.config file.


CommerceContentSelectionModule.ContentSelectionContexts Property (BCL)

The ContentSelectionContexts property is a read-only ContentSelectionContextCollection that was built in the contentSelection portion of the web.config file.

Definition

[Visual Basic .NET]
Public ReadOnly Property ContentSelectionContexts As ContentSelectionContextCollection
[C#]
public ContentSelectionContextCollection ContentSelectionContexts {get;}

Property Value

ContentSelectionContextCollection object that was built in the contentSelection portion of the web.config file.

Remarks

The value will be null if the CommerceContentSelectionModule object was not configured in the web.config file. ASP .NET pages should reference this through the CommerceContext.Current.TargetingSystem.ExpressionEvaluator property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceExpressionModule Class (BCL)

Creates a default ExpressionEvaluator object for the site.

Public Instance Constructor

Constructor | Description
CommerceExpressionModule Constructor | Creates a new instance of the CommerceExpressionModule class.

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ExpressionEvaluator | Gets the single instance of the ExpressionEvaluator object for use on the site.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceExpressionModule Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceExpressionModule Constructor | Creates a new instance of the CommerceExpressionModule class.


CommerceExpressionModule Constructor (BCL)

Use this method to create a new instance of the CommerceExpressionModule class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceExpressionModule(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceExpressionModule Methods (BCL)

Public Instance Methods

Method | Description
Dispose (Inherited from CommerceModule) | Releases resources used by this object.
Init(HttpApplication) | Subscribes the class to application BeginRequest events.

Protected Instance Methods

Method | Description
DeclareModuleDependency(Type, Type) (Inherited from CommerceModule) | Declares a dependency on another CommerceModule class, by type.
DeclareResourceDependency(String, Type) (Inherited from CommerceModule) | Declares a dependency on a Commerce Server site resource.
Dispose(Boolean) (Inherited from CommerceModule) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


CommerceExpressionModule.Init (HttpApplication) Method (BCL)

Use this method to subscribe the class to application BeginRequest events.

Definition

[Visual Basic .NET]
Overrides Public Sub Init( _
  ByVal appInstance As System.Web.HttpApplication _
)
[C#]
public override void Init(
  System.Web.HttpApplication appInstance
);

Parameters

[Visual Basic .NET]
appInstance
The HttpApplication instance that created this module.
[C#]
appInstance
The HttpApplication instance that created this module.

Implements

System.Web.IHttpModule

Remarks

The CommerceExpressionModule class does not subscribe to any application events.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceExpressionModule Properties (BCL)

Public Instance Properties

Property | Description
IsInitialized (Inherited from CommerceModule) | Gets a Boolean that is set to True when the CommerceModule class instance has been initialized.

Public Static (Shared) Properties

Property | Description
ExpressionEvaluator | Gets the single instance of the ExpressionEvaluator object for use on the site.


CommerceExpressionModule.ExpressionEvaluator Property (BCL)

The ExpressionEvaluator property is a read-only ExpressionEvaluator that gets the single instance of the ExpressionEvaluator object for use on the site.

Definition

[Visual Basic .NET]
Public ReadOnly Property ExpressionEvaluator As ExpressionEvaluator
[C#]
public ExpressionEvaluator ExpressionEvaluator {get;}

Property Value

The single instance of the ExpressionEvaluator object for use on the site.

Remarks

Creates the instance of ExpressionEvaluator on first access. The value will be null if the CommerceContentSelectionModule is not configured in the web.config file. ASP.NET pages should reference this through the CommerceContext.Current.TargetingSystem.ExpressionEvaluator property.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Class (BCL)

Exception thrown when the profiles collection contains profiles other than User and TargetingContext.

Public Instance Constructor

Constructor | Description
CommerceTargetingException Constructor | Creates a new instance of the CommerceTargetingException class.
CommerceTargetingException Constructor(String) | Creates a new instance of the CommerceTargetingException class with the specified message.
CommerceTargetingException Constructor(String, Exception) | Creates a new instance of the CommerceTargetingException class with the specified message and inner exception.
CommerceTargetingException Constructor(String, COMException) | Creates a new instance of the CommerceTargetingException class with the specified message and the inner COM exception.

Protected Instance Constructor

Constructor | Description
CommerceTargetingException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceTargetingException class with the specified serialization information and streaming context.

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Constructor (BCL)

Public Instance Constructor

Constructor | Description
CommerceTargetingException Constructor | Creates a new instance of the CommerceTargetingException class.
CommerceTargetingException Constructor(String) | Creates a new instance of the CommerceTargetingException class with the specified message.
CommerceTargetingException Constructor(String, Exception) | Creates a new instance of the CommerceTargetingException class with the specified message and inner exception.
CommerceTargetingException Constructor(String, COMException) | Creates a new instance of the CommerceTargetingException class with the specified message and the inner COM exception.

Protected Instance Constructor

Constructor | Description
CommerceTargetingException Constructor (SerializationInfo, StreamingContext) | Creates a new instance of the CommerceTargetingException class with the specified serialization information and streaming context.


CommerceTargetingException Constructor (BCL)

Use this method to create a new instance of the CommerceTargetingException class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public CommerceTargetingException(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Constructor (SerializationInfo, StreamingContext) (BCL)

Use this method to create a new instance of the CommerceTargetingException class with the specified serialization information and streaming context.

Definition

[Visual Basic .NET]
Protected Sub New( _
  ByVal serializationInfo As System.Runtime.Serialization.SerializationInfo, _
  ByVal streamingContext As System.Runtime.Serialization.StreamingContext _
)
[C#]
protected CommerceTargetingException(
  System.Runtime.Serialization.SerializationInfo serializationInfo,
  System.Runtime.Serialization.StreamingContext streamingContext
);

Parameters

[Visual Basic .NET]
serializationInfo
The serialization info.
streamingContext
The streaming context.
[C#]
serializationInfo
The serialization info.
streamingContext
The streaming context.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Constructor (String) (BCL)

Use this method to create a new instance of the CommerceTargetingException class with the specified message.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String _
)
[C#]
public CommerceTargetingException(
  System.String message
);

Parameters

[Visual Basic .NET]
message
The error message.
[C#]
message
The error message.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Constructor (String, COMException) (BCL)

Use this method to create a new instance of the CommerceTargetingException class with the specified message and inner exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal comException As System.Runtime.InteropServices.COMException _
)
[C#]
public CommerceTargetingException(
  System.String message,
  System.Runtime.InteropServices.COMException comException
);

Parameters

[Visual Basic .NET]
message
The error message.
comException
The inner COM exception.
[C#]
message
The error message.
comException
The inner COM exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Constructor (String, Exception) (BCL)

Use this method to create a new instance of the CommerceTargetingException class with the specified message and the inner COM exception.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal message As System.String, _
  ByVal inner As System.Exception _
)
[C#]
public CommerceTargetingSystem.Exception(
  System.String message,
  System.Exception inner
);

Parameters

[Visual Basic .NET]
message
The error message.
inner
The inner COM exception.
[C#]
message
The error message.
inner
The inner COM exception.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Methods (BCL)

Public Instance Methods

Method | Description
GetBaseException (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
GetObjectData (SerializationInfo, StreamingContext) | Sets the SerializationInfo object with information about the exception.
ToString (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


CommerceTargetingException.GetObjectData (SerializationInfo, StreamingContext) Method (BCL)

Use this method set the SerializationInfo object with information about the exception.

[Visual Basic .NET]
Overrides Public Sub GetObjectData( _
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
)
[C#]
public override void GetObjectData(
  ByVal info As System.Runtime.Serialization.SerializationInfo, _
  ByVal context As System.Runtime.Serialization.StreamingContext _
);

Parameters

[Visual Basic .NET]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.
[C#]
info
The Serialization object that holds the serialized object data about the exception being thrown.
context
The StreamingContext object that contains contextual information about the source or destination.

Implements

System.Runtime.ISerializable

Remarks

The GetObjectData method sets the SerializationInfo object with all the exception object data targeted for serialization. During deserialization, the exception is reconstituted from the SerializationInfo object transmitted over the stream.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


CommerceTargetingException Properties (BCL)

Public Instance Properties

Property | Description
HelpLink (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
InnerException(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Message(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
Source(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
StackTrace(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.
TargetSite(Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.

Protected Instance Properties

Property | Description
HResult (Inherited from System.Exception) | Refer to the .NET Framework SDK documentation for the System.Exception class.


ContentItemCollection Class (BCL)

A ContentItemCollection class represents a set of rows in a ContentList object.

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the dictionary objects to an array, starting at a particular array index.
Dispose | Releases resources used by this object.
GetEnumerator | Supports enumeration of the row dictionaries in the collection.

Public Instance Properties

Property | Description
Count | Gets the number of dictionaries (rows) contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(Int32) | Indexer to retrieve a content item based on its item ID.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection Methods (BCL)

Public Instance Methods

Method | Description
CopyTo(Array, Int32) | Copies the dictionary objects to an array, starting at a particular array index.
Dispose | Releases resources used by this object.
GetEnumerator | Supports enumeration of the row dictionaries in the collection.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


ContentItemCollection.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the dictionary objects to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.GetEnumerator Method (BCL)

Use this method to support enumeration of the row dictionaries in the collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

IEnumerator for enumerating the row dictionaries in the collection.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of dictionaries (rows) contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(Int32) | Indexer to retrieve a content item based on its item ID.
SyncRoot | Gets an object that can be used for synchronized access to the collection.


ContentItemCollection.Count Property (BCL)

The Count property is a read-only integer that gets the number of dictionaries (rows) contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of dictionaries (rows) contained in the collection.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean that indicates whether access to the collection is synchronized.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.Item Property (BCL)

The Item property is a read-only IDictionary that is retrieved based its item ID.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal contentItemID As System.Int32 _
) As Microsoft.CommerceServer.Runtime.IDictionary
[C#]
public Microsoft.CommerceServer.Runtime.IDictionary Item(
  System.Int32 contentItemID
) {get;}

Parameters

[Visual Basic .NET]
contentItemID
The item ID of the IDictionary to retrieve.
[C#]
contentItemID
The item ID of the IDictionary to retrieve.

Property Value

The value of the contentItemID parameter.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentItemCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used for synchronized access to the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

An object that can be used for synchronized access to the collection.

Implements

System.Collections.ICollections

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContext Class (BCL)

Represents an application context for the Content Selection Framework content selection. For example, advertising and discounts each have their own ContentSelectionContext object to specify components such as the pipeline and the cache that should be used by the ContentSelector object.

Public Instance Constructor

Constructor | Description
ContentSelectionContext Constructor(String, ContentSelectionPipeline, ContentSelectionPipeline, String, String, ExpressionEvaluator, DebugContext) | Creates a new instance of the ContentSelectionContext class.

Public Instance Methods

Method | Description
GetEnumerator | Gets an enumerator for enumerating the keys in the dictionary of key/value pairs that this selection context object represents.
GetSelector | Gets a ContentSelector object that can be used to retrieve content using the current ContentSelectionContext object.

Public Instance Properties

Property | Description
Item(String) | Indexer used to get or set a value in the dictionary.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext Constructor (BCL)

Public Instance Constructor

Constructor | Description
ContentSelectionContext Constructor(String, ContentSelectionPipeline, ContentSelectionPipeline, String, String, ExpressionEvaluator, DebugContext) | Creates a new instance of the ContentSelectionContext class.

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext Constructor (String, ContentSelectionPipeline, ContentSelectionPipeline, String, String, ExpressionEvaluator, DebugContext) (BCL)

Use this method to create a new instance of the ContentSelectionContext class.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal name As System.String, _
  ByVal selectionPipeline As ContentSelectionPipeline, _
  ByVal eventPipeline As ContentSelectionPipeline, _
  ByVal cacheName As System.String, _
  ByVal redirectUrl As System.String, _
  ByVal expressionEvaluator As ExpressionEvaluator, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ContentSelectionContext(
  System.String name,
  ContentSelectionPipeline selectionPipeline,
  ContentSelectionPipeline eventPipeline,
  System.String cacheName,
  System.String redirectUrl,
  ExpressionEvaluator expressionEvaluator,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
name
The name of the ContentSelectionContext object. May not be null.
selectionPipeline
The Content Selection Framework (CSF) pipeline. May not be null.
eventPipeline
The event recording pipeline. May be null.
cacheName
The name of the cache that contains content for this selection application. May be null.
redirectUrl
The name of the URL to send events through for recording. May be null.
expressionEvaluator
The Expression Evaluator instance. May be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.
[C#]
name
The name of the ContentSelectionContext object. May not be null.
selectionPipeline
The Content Selection Framework (CSF) pipeline. May not be null.
eventPipeline
The event recording pipeline. May be null.
cacheName
The name of the cache that contains content for this selection application. May be null.
redirectUrl
The name of the URL to send events through for recording. May be null.
expressionEvaluator
The Expression Evaluator instance. May be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.

Remarks

Throws ArgumentNullException if any of the required parameters were passed as null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext Methods (BCL)

Public Instance Methods

Method | Description
GetEnumerator | Gets an enumerator for enumerating the keys in the dictionary of key/value pairs that this selection context object represents.
GetSelector | Gets a ContentSelector object that can be used to retrieve content using the current ContentSelectionContext object.

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext.GetEnumerator Method (BCL)

Use this method to get an enumerator for enumerating the keys in the dictionary of key/value pairs that this selection context object represents.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

An IEnumerator object for enumerating key names (strings) in the dictionary.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext.GetSelector Method (BCL)

Use this method to get a ContentSelector object that can be used to retrieve content using the current ContentSelectionContext object.

Definition

[Visual Basic .NET]
Public Function GetSelector( _
) As ContentSelector
[C#]
public ContentSelector GetSelector(
);

Return Value

ContentSelector object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext Properties (BCL)

Public Instance Properties

Property | Description
Item(String) | Indexer used to get or set a value in the dictionary.

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContext.Item Property (BCL)

The Item property is a read/write object that gets or set a value in the dictionary.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal key As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String key
) {get; set;}

Parameters

[Visual Basic .NET]
key
The dictionary key of the value to get or set.
[C#]
key
The dictionary key of the value to get or set.

Property Value

Value of the dictionary to get or set.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelectionContextCollection Class (BCL)

Represents a collection of ContentSelectionContext objects.

Public Instance Constructor

Constructor | Description
ContentSelectionContextCollection Constructor | Creates a new instance of the ContentSelectionContextCollection class.

Public Instance Methods

Method | Description
Add(String, ContentSelectionContext) | Adds a ContentSelectionContext class to the collection.
CopyTo(Array, Int32) | Copies the resources to an array, starting at a particular array index.
GetEnumerator | Supports iteration over the collection.

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns false.
Item(String) | Indexer to allow for accessing a ContentSelectionContext object by name.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns a reference to the current object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
ContentSelectionContextCollection Constructor | Creates a new instance of the ContentSelectionContextCollection class.


ContentSelectionContextCollection Constructor (BCL)

Use this method to create a new instance of the ContentSelectionContextCollection class.

Definition

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public ContentSelectionContextCollection(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(String, ContentSelectionContext) | Adds a ContentSelectionContext object to the collection.
CopyTo(Array, Int32) | Copies the resources to an array, starting at a particular array index.
GetEnumerator | Supports iteration over the collection.


ContentSelectionContextCollection.Add (String, ContentSelectionContext) Method (BCL)

Use this method to add a ContentSelectionContext object to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal name As System.String, _
  ByVal context As ContentSelectionContext _
)
[C#]
public void Add(
  System.String name,
  ContentSelectionContext context
);

Parameters

[Visual Basic .NET]
name
The name of the context to add. May not be null.
context
The ContentSelectionContext object. May not be null.
[C#]
name
The name of the context to add. May not be null.
context
The ContentSelectionContext object. May not be null.

Remarks

Throws ArgumentNullException if one of the required parameters was passed as null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the resources to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection.GetEnumerator Method (BCL)

Use this method to support iteration over the collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

An enumerator for enumerating the values in the collection.

Implements

System.Collections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of elements contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized. This implementation always returns false.
Item(String) | Indexer to allow for accessing a ContentSelectionContext object by name.
SyncRoot | Gets an object that can be used to synchronize access to the collection. This implementation always returns a reference to the current object.


ContentSelectionContextCollection.Count Property (BCL)

The Count property is a read-only integer that gets the number of elements contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of elements contained in the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only Boolean that indicates whether access to the collection is synchronized. This implementation always returns false.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean that indicates whether access to the collection is synchronized. This implementation always returns false.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection.Item Property (BCL)

The Item property is a read-only ContentSelectionContext object that allows for accessing a ContentSelectionContext object by name.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal name As System.String _
) As ContentSelectionContext
[C#]
public ContentSelectionContext Item(
  System.String name
) {get;}

Parameters

[Visual Basic .NET]
name
The name of the ContentSelectionContext object.
[C#]
name
The name of the ContentSelectionContext object.

Property Value

The value of the ContentSelectionContext object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelectionContextCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used to synchronize access to the collection. This implementation always returns a reference to the current object.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

A reference to the current object.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ContentSelector Class (BCL)

Invokes Content Selection Framework (CSF) pipelines.

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetContent | Primary method of the ContentSelector object. It sets up the Order and Pipe Context dictionaries and executes the CSF pipeline that selects content. The formatted content is returned in a StringCollection object.
GetEnumerator | Returns an enumerator allowing the keys of the ContentSelector dictionary to be enumerated.

Public Instance Properties

Property | Description
AllContentItems | Returns a ContentItemCollection object containing all of the content items that were retrieved from the cache during the last call to the GetContent method.
Item(String) | Gets or sets a value in the ContentSelector dictionary of name/value pairs.
ItemsRequested | Gets or sets the number of items desired for return from the GetContent method.
Name | Gets the name of the ContentSelector object, which is the same as the name of the ContentSelectionContext object that created this object.
PageHistory | Gets or sets a String that represents the history of ads already selected on the page.
Profiles | Gets the collection of profiles (Profiles or Commerce.IDictionary objects) that should be targeted when the GetContent method call is made.
SelectedContentItems | Returns a ContentItemCollection consisting of the raw content items that were last selected using the GetContent method.
Size | Gets or sets the size of the content that should be returned.
TraceMessages | Gets an array of StringCollection objects containing the trace messages that describe the scoring of the content items. This property will always return null if the TraceMode property is not set to True.
TraceMode | Gets or sets a Boolean that determines whether tracing of content item scoring should be enabled.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector Methods (BCL)

Public Instance Methods

Method | Description
Dispose | Releases resources used by this object.
GetContent | Primary method of the ContentSelector object. It sets up the Order and Pipe Context dictionaries and executes the Content Selection Framework (CSF) pipeline that selects content. The formatted content is returned in a StringCollection object.
GetEnumerator | Returns an enumerator allowing the keys of the ContentSelector dictionary to be enumerated.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the Microsoft .NET Framework Software Development Kit (SDK) documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.GetContent Method (BCL)

Use this method to set up the Order and Pipe Context dictionaries and execute the Content Selection Framework (CSF) pipeline that selects content. The formatted content is returned in a StringCollection object.

Definition

[Visual Basic .NET]
Public Function GetContent( _
) As System.Collections.Specialized.StringCollection
[C#]
public System.Collections.Specialized.StringCollection GetContent(
);

Return Value

A StringCollection object containing the formatted content.

Remarks

If the pipeline does not return any formatted content (if no content was available for selection or if no formatting component was configured in the CSF pipeline), then an empty StringCollection object is returned.

Throws a CommerceTargetingException if the profiles collection contains profiles other than User and TargetingContext.

For backward compatibility, if a profile named TargetingContext is passed in the collection, then the properties in the profile are copied to the ContentSelector dictionary, which is passed through the pipeline as a ContextProfile object. If a profile named User is provided, then the profile is passed through the pipeline as the ContextProfile.UserProfile object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.GetEnumerator Method (BCL)

Use this method to return an enumerator allowing the keys of the ContentSelector dictionary to be enumerated.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

An IEnumerator object.

Implements

System.Collection.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector Properties (BCL)

Public Instance Properties

Property | Description
AllContentItems | Returns a ContentItemCollection containing all of the content items that were retrieved from the cache during the last call to the GetContent method.
Item(String) | Gets or sets a value in the ContentSelector dictionary of name/value pairs.
ItemsRequested | Gets or sets the number of items desired for return from the GetContent method.
Name | Gets the name of the ContentSelector object, which is the same as the name of the ContentSelectionContext object that created this object.
PageHistory | Gets or sets a String that represents the history of ads already selected on the page.
Profiles | Gets the collection of profiles (Profiles or Commerce.IDictionary objects) that should be targeted when the GetContent method call is made.
SelectedContentItems | Returns a ContentItemCollection consisting of the raw content items that were last selected using the GetContent method.
Size | Gets or sets the size of the content that should be returned.
TraceMessages | Gets an array of StringCollection objects containing the trace messages that describe the scoring of the content items. This property will always return null if the TraceMode property is not set to True.
TraceMode | Gets or sets a Boolean that determines whether tracing of content item scoring should be enabled.

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.AllContentItems Property (BCL)

The AllContentItems property is a read-only ContentItemCollection containing all of the content items that were retrieved from the cache during the last call to the GetContent method.

Definition

[Visual Basic .NET]
Public ReadOnly Property AllContentItems As ContentItemCollection
[C#]
public ContentItemCollection AllContentItems {get;}

Property Value

A ContentItemCollection object containing all of the content items that were retrieved from the cache during the last call to GetContent.

Remarks

Returns an empty collection if the GetContent method was not called or if no content was retrieved from the cache.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Item Property (BCL)

The Item property is a read/write object that gets or sets a value in the ContentSelector dictionary of name/value pairs.

Definition

[Visual Basic .NET]
Public Property Item( _
  ByVal key As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String key
) {get; set;}

Parameters

[Visual Basic .NET]
key
The name of the key to get or set.
[C#]
key
The name of the key to get or set.

Property Value

A value in the ContentSelector dictionary of name/value pairs.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.ItemsRequested Property (BCL)

The ItemsRequested property is a read/write integer that gets or sets the number of items desired for return from the GetContent method.

Definition

[Visual Basic .NET]
Public Property ItemsRequested As System.Int32
[C#]
public System.Int32 ItemsRequested {get; set;}

Property Value

The number of items desired for return from the GetContent method.

Remarks

When setting this property, you must use a value greater than or equal to zero. An ArgumentException is thrown if the value is outside of these bounds. The actual number of content items returned from the GetContent method may be less than this value. The default value is one (1).

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Name Property (BCL)

The Name property is a read-only String that gets the name of the ContentSelector object, which is the same as the name of the ContentSelectionContext object that created this object.

Definition

[Visual Basic .NET]
Public ReadOnly Property Name As System.String
[C#]
public System.String Name {get;}

Property Value

The name of the ContentSelectionContext object that created this object.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.PageHistory Property (BCL)

The PageHistory property is a read/write String that represents the history of ads already selected on the page.

Definition

[Visual Basic .NET]
Public Property PageHistory As System.String
[C#]
public System.String PageHistory {get; set;}

Property Value

A String that represents the history of ads already selected on the page.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Profiles Property (BCL)

The Profiles property is a read-only TargetingProfileCollection object that gets the collection of profiles (Profiles or Commerce.IDictionary objects) that should be targeted when the GetContent method call is made.

Definition

[Visual Basic .NET]
Public ReadOnly Property Profiles As TargetingProfileCollection
[C#]
public TargetingProfileCollection Profiles {get;}

Property Value

The collection of profiles (Profile or Commerce.IDictionary objects) that should be targeted when the GetContent method call is made.

Remarks

Only the TargetingContext and User profiles are supported. An exception will be raised if any other profiles are added to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.SelectedContentItems Property (BCL)

The SelectedContentItems property is a read-only ContentItemCollection consisting of the raw content items that were last selected using the GetContent method.

Definition

[Visual Basic .NET]
Public ReadOnly Property SelectedContentItems As ContentItemCollection
[C#]
public ContentItemCollection SelectedContentItems {get;}

Property Value

A ContentItemCollection object consisting of the raw content items that were last selected using the GetContent method.

Remarks

Returns an empty collection if the GetContent method was not called or if no content was selected.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.Size Property (BCL)

The Size property is a read/write String that gets or sets the size of the content that should be returned.

Definition

[Visual Basic .NET]
Public Property Size As System.String
[C#]
public System.String Size {get; set;}

Property Value

The size of the content that should be returned.

Remarks

When the Size property is not equal to NULL, a filter is set up that will ask for only content items of the specified size. Content sizes are managed in the Reference Tables portion of the Campaigns module in Commerce Server Business Desk.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.TraceMessages Property (BCL)

The TraceMessages property is a read-only StringCollection object containing the trace messages that describe the scoring of the content items. This property will always return null if the TraceMode property is not set to True.

Definition

[Visual Basic .NET]
Public ReadOnly Property TraceMessages As System.Collections.Specialized.StringCollection[]
[C#]
public System.Collections.Specialized.StringCollection[] TraceMessages {get;}

Property Value

A StringCollection object containing the trace messages that describe the scoring of the content items.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ContentSelector.TraceMode Property (BCL)

The TraceMode property is a read/write Boolean that indicates whether tracing of content item scoring should be enabled.

Definition

[Visual Basic .NET]
Public Property TraceMode As System.Boolean
[C#]
public System.Boolean TraceMode {get; set;}

Property Value

A Boolean value that indicates whether tracing of content item scoring should be enabled.

Remarks

When tracing is enabled, the TraceMessages property for the content items will be available in the TraceMessages collection after the GetContent method call returns.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll

See Also

Code to Display Targeted Advertisements on an ASP.NET Web Form


ExpressionEvaluator Class (BCL)

Evaluates targeting expressions.

Public Instance Constructor

Constructor | Description
ExpressionEvaluator Constructor(String, DebugContext) | Creates a new instance of the ExpressionEvaluator class that runs against the expression store in the SQL database given by the connectionString parameter. Debug trace messages will be logged using the DebugContext object.

Public Instance Methods

Method | Description
CreateEvaluationContextHandle (TargetingProfileCollection) | Creates an EvaluationContext object for evaluating multiple expressions against the same set of profiles.
Dispose | Releases resources used by this object.
Evaluate(Int32, TargetingProfileCollection) | Evaluates the expression specified by the expressionID parameter using the provided profiles.
EvaluateInContext(Int32, Object) | Evaluates the expression specified by the expressionID parameter using the profiles contained in the EvaluationContextHandle object.
EvaluateXML(String, TargetingProfileCollection) | Evaluates the expression represented in the XML string using the provided profiles.
FlushCache | Removes all loaded and precompiled expressions from the evaluator's expression cache.
FlushExpressionFromCache(Int32) | Removes a single-loaded and precompiled expression from the evaluator's expression cache.
LoadAll | Loads and precompiles all expressions in the expression store database, and updates the expressions cache.
LoadExpression(Int32) | Loads and precompiles the specified expression from the expression store database, and updates the cache if necessary.
ValidateExpressionXml(String) | Checks whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Public Instance Properties

Property | Description
CachedExpressionCount | Gets an Int32 representing the number of expressions currently in the evaluator's expression cache.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator Constructor (BCL)

Public Instance Constructor

Constructor | Description
ExpressionEvaluator Constructor(String, DebugContext) | Creates a new instance of the ExpressionEvaluator class that runs against the expression store in the SQL database given by the connectionString parameter. Debug trace messages will be logged using the DebugContext object.


ExpressionEvaluator Constructor(String, DebugContext) (BCL)

Use this method to create a new instance of the ExpressionEvaluator class that runs against the expression store in the SQL database given by the parameter. Debug trace messages will be logged using the DebugContext object.

Definition

[Visual Basic .NET]
Public Sub New( _
  ByVal connectionString As System.String, _
  ByVal dbgContext As DebugContext _
)
[C#]
public ExpressionEvaluator(
  System.String connectionString,
  DebugContext dbgContext
);

Parameters

[Visual Basic .NET]
connectionString
An ADO connection string. May not be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.
[C#]
connectionString
An ADO connection string. May not be null.
dbgContext
An instance of the DebugContext class. Determines how debugging and tracing information output by this class will be output to the user. May not be null.

Remarks

Throws ArgumentNullException if either the either the connectionString or the dbgContext arguments are null.

Throws CommerceCreateObjectException if the ExpressionEvaluator COM component could not be created.

Throws CommerceTargetingException if the connection to the expression store database failed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator Methods (BCL)

Public Instance Methods

Method | Description
CreateEvaluationContextHandle (TargetingProfileCollection) | Creates an EvaluationContext object for evaluating multiple expressions against the same set of profiles.
Dispose | Releases resources used by this object.
Evaluate(Int32, TargetingProfileCollection) | Evaluates the expression specified by the expressionID parameter using the provided profiles.
EvaluateInContext(Int32, Object) | Evaluates the expression specified by the expressionID parameter using the profiles contained in the EvaluationContextHandle object.
EvaluateXML(String, TargetingProfileCollection) | Evaluates the expression represented in the XML string using the provided profiles.
FlushCache | Removes all loaded and precompiled expressions from the evaluator's expression cache.
FlushExpressionFromCache(Int32) | Removes a single-loaded and precompiled expression from the evaluator's expression cache.
LoadAll | Loads and precompiles all expressions in the expression store database, and updates the expressions cache.
LoadExpression(Int32) | Loads and precompiles the specified expression from the expression store database, and updates the cache if necessary.
ValidateExpressionXml(String) | Checks whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Protected Instance Methods

Method | Description
CheckState | Verifies that the object has not already been disposed.
Dispose(Boolean) | Releases the unmanaged resources used by this class and optionally releases the managed resources.


ExpressionEvaluator.CheckState Method (BCL)

Use this method to verify that the object has not already been disposed.

Definition

[Visual Basic .NET]
Protected Overridable Public Sub CheckState( _
)
[C#]
protected virtual void CheckState(
);

Remarks

Throws the ObjectDisposedException if the object has already been disposed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.CreateEvaluationContextHandle (TargetingProfileCollection) Method (BCL)

Use this method to create an EvaluationContext object for evaluating multiple expressions against the same set of profiles.

Definition

[Visual Basic .NET]
Public Function CreateEvaluationContextHandle( _
  ByVal profiles As TargetingProfileCollection _
) As System.Object
[C#]
public System.Object CreateEvaluationContextHandle(
  TargetingProfileCollection profiles
);

Parameters

[Visual Basic .NET]
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.
[C#]
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.

Return Value

An EvaluationContext object for use with the EvaluateInContext method.

Remarks

Throws ArgumentNullException if the profiles parameter was passed as null.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.Dispose(Boolean) Method (BCL)

Use this method to release the unmanaged resources used by this object and optionally release the managed resources.

Definition

[Visual Basic .NET]
Protected Overridable Sub Dispose( _
  ByVal disposing As System.Boolean _
)
[C#]
protected virtual void Dispose(
  System.Boolean disposing
);

Parameters

[Visual Basic .NET]
disposing
True if this was called from the Dispose method, False if called from the finalizer.
[C#]
disposing
True if this was called from the Dispose method, False if called from the finalizer.

Remarks

If this class is not sealed, derived classes can override this method to dispose of their resources. For more information, see the .NET Framework SDK documentation for implementing a Dispose method.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.Evaluate (Int32, TargetingProfileCollection) Method (BCL)

Use this method to evaluate the expression specified by the parameter and the provided profiles.

Definition

[Visual Basic .NET]
Public Function Evaluate( _
  ByVal expressionID As System.Int32, _
  ByVal profiles As TargetingProfileCollection _
) As ExpressionEvaluator.ExpressionResult
[C#]
public ExpressionEvaluator.ExpressionResult Evaluate(
  System.Int32 expressionID,
  TargetingProfileCollection profiles
);

Parameters

[Visual Basic .NET]
expressionID
The expression ID of the expression to be evaluated. Must be greater than 0.
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.
[C#]
expressionID
The expression ID of the expression to be evaluated. Must be greater than 0.
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.

Return Value

An ExpressionResult enumerator.

Remarks

Throws ArgumentNullException if the profiles argument was passed as null.

Throws ArgumentOutOfRangeException if the expressionID parameter is less than one.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.EvaluateInContext (Int32, Object) Method (BCL)

Use the following method to evaluate the expression specified by the parameter and the profiles contained in the EvaluationContextHandle object.

Definition

[Visual Basic .NET]
Public Function EvaluateInContext( _
  ByVal expressionID As System.Int32, _
  ByVal evaluationContextHandle As System.Object _
) As ExpressionEvaluator.ExpressionResult
[C#]
public ExpressionEvaluator.ExpressionResult EvaluateInContext(
  System.Int32 expressionID,
  System.Object evaluationContextHandle
);

Parameters

[Visual Basic .NET]
expressionID
ExpressionID of the expression to be evaluated. Must be greater than 0.
evaluationContextHandle
An EvaluationContext object created by the CreateEvaluationContextHandle method.
[C#]
expressionID
An expression ID of the expression to be evaluated. Must be greater than 0.
evaluationContextHandle
An EvaluationContext object created by the CreateEvaluationContextHandle method.

Return Value

An ExpressionResult enumerator.

Remarks

Throws ArgumentNullException if the evaluationContextHandle parameter was passed as null.

Throws ArgumentOutOfRangeException if the expressionID parameter is less than one.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.EvaluateXML (String, TargetingProfileCollection) Method (BCL)

Use this method to evaluate the expression represented in the XML string using the provided profiles.

Definition

[Visual Basic .NET]
Public Function EvaluateXML( _
  ByVal expressionXml As System.String, _
  ByVal profiles As TargetingProfileCollection _
) As ExpressionEvaluator.ExpressionResult
[C#]
public ExpressionEvaluator.ExpressionResult EvaluateXML(
  System.String expressionXml,
  TargetingProfileCollection profiles
);

Parameters

[Visual Basic .NET]
expressionXml
An XML body of the expression to be evaluated. Must be valid and well-formed. This parameter may not be null.
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.
[C#]
expressionXml
An XML body of the expression to be evaluated. Must be valid and well-formed. This parameter may not be null.
profiles
A TargetingProfileCollection, representing a set of named Profile objects to be targeted. May not be null.

Return Value

An ExpressionResult object.

Remarks

Throws ArgumentNullException if one of the parameters passed is null.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.FlushCache Method (BCL)

Use this method to remove all loaded and precompiled expressions from the evaluator's expression cache.

Definition

[Visual Basic .NET]
Public Sub FlushCache( _
)
[C#]
public void FlushCache(
);

Remarks

Throws CommerceTargetingException if the cache could not be flushed.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.FlushExpressionFromCache (Int32) Method (BCL)

Use this method to removes a single-loaded and precompiled expression from the evaluator's expression cache.

Definition

[Visual Basic .NET]
Public Sub FlushExpressionFromCache( _
  ByVal expressionID As System.Int32 _
)
[C#]
public void FlushExpressionFromCache(
  System.Int32 expressionID
);

Parameters

[Visual Basic .NET]
expressionID
The expression ID of the expression to be flushed. Must be greater than 0.
[C#]
expressionID
The expression ID of the expression to be flushed. Must be greater than 0.

Remarks

Throws ArgumentOutOfRangeException if the expressionID parameter is less than one.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.LoadAll Method (BCL)

Use the following method to load and precompile all expressions in the expression store database, and update the expressions cache.

Definition

[Visual Basic .NET]
Public Sub LoadAll( _
)
[C#]
public void LoadAll(
);

Remarks

Throws CommerceTargetingException for all failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.LoadExpression (Int32) Method (BCL)

Use this method to load and precompile the specified expression from the expression store database, and update the cache if necessary.

Definition

[Visual Basic .NET]
Public Sub LoadExpression( _
  ByVal expressionID As System.Int32 _
)
[C#]
public void LoadExpression(
  System.Int32 expressionID
);

Parameters

[Visual Basic .NET]
expressionID
The expression ID of the expression to be loaded. Must be greater than 0.
[C#]
expressionID
The expression ID of the expression to be loaded. Must be greater than 0.

Remarks

Throws ArgumentOutOfRangeException if the expressionID parameter is less than one.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.ValidateExpressionXml (String) Method (BCL)

Use this method to check whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Definition

[Visual Basic .NET]
Public Function ValidateExpressionXml( _
  ByVal expressionXml As System.String _
) As System.Boolean
[C#]
public System.Boolean ValidateExpressionXml(
  System.String expressionXml
);

Parameters

[Visual Basic .NET]
expressionXml
The XML fragment string. May not be null.
[C#]
expressionXml
The XML fragment string. May not be null.

Return Value

True is returned if the expression XML is valid. If it is invalid, an exception is thrown.

Remarks

Throws ArgumentNullException if the expressionXML parameter was passed as null.

Throws CommerceTargetingException for all other failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator Properties (BCL)

Public Instance Properties

Property | Description
CachedExpressionCount | Gets an Int32 representing the number of expressions currently in the evaluator's expression cache.


ExpressionEvaluator.CachedExpressionCount Property (BCL)

The CachedExpressionCount property is a read-only Int32 that represents the number of expressions currently in the evaluator's expression cache.

Definition

[Visual Basic .NET]
Public ReadOnly Property CachedExpressionCount As System.Int32
[C#]
public System.Int32 CachedExpressionCount {get;}

Property Value

The number of expressions currently in the evaluator's expression cache.

Remarks

Throws CommerceTargetingException for all failures.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


ExpressionEvaluator.ExpressionResult Enumeration (BCL)

An expression result: true, false, or undefined.

Members

Member name | Description
False | The expression evaluated to False.
True | The expression evaluated to True.
UndefinedResult | The expression result could not be determined because a referenced profile or profile property did not exist.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection Class (BCL)

Stores the set of named Profile objects to be targeted.

Public Instance Constructor

Constructor | Description
TargetingProfileCollection Constructor | Creates a new instance of the TargetingProfileCollection class.

Public Instance Methods

Method | Description
Add(String, Profile) | Adds a profile to the collection.
Add(String, Object) | Adds a Commerce.IDictionary object containing targeting properties to the collection.
CopyTo(Array, Int32) | Copies the items to an array, starting at a particular array index.
Dispose | Releases resources used by this object.
GetEnumerator | Supports enumeration of the items in the collection.

Public Instance Properties

Property | Description
Count | Gets the number of items contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to retrieve a profile or a Commerce.Dictionary object from the collection.
SyncRoot | Gets an object that can be used for synchronized access to the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection Constructor (BCL)

Public Instance Constructor

Constructor | Description
TargetingProfileCollection Constructor | Creates a new instance of the TargetingProfileCollection class.


TargetingProfileCollection Constructor (BCL)

Use this method to create a new instance of the TargetingProfileCollection class.

[Visual Basic .NET]
Public Sub New( _
)
[C#]
public TargetingProfileCollection(
);

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection Methods (BCL)

Public Instance Methods

Method | Description
Add(String, Profile) | Adds a profile to the collection.
Add(String, Object) | Adds a Commerce.IDictionary object containing targeting properties to the collection.
CopyTo(Array, Int32) | Copies the items to an array, starting at a particular array index.
Dispose | Releases resources used by this object.
GetEnumerator | Supports enumeration of the items in the collection.


TargetingProfileCollection.Add (String, Profile) Method (BCL)

Use this method to add a profile to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal name As System.String, _
  ByVal profile As Profile _
)
[C#]
public void Add(
  System.String name,
  Profile profile
);

Parameters

[Visual Basic .NET]
name
The name of the profile. This must match the profile identifier portion of any expressions that are to evaluate against the profile. May not be null.
profile
The profile to add. May not be null.
[C#]
name
The name of the profile. This must match the profile identifier portion of any expressions that are to evaluate against the profile. May not be null.
profile
The profile to add. May not be null.

Remarks

Throws ArgumentNullException if one of the required parameter values was null.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.Add (String, Object) Method (BCL)

Use this method to add a Commerce.IDictionary object containing targeting properties to the collection.

Definition

[Visual Basic .NET]
Public Sub Add( _
  ByVal name As System.String, _
  ByVal dictionary As System.Object _
)
[C#]
public void Add(
  System.String name,
  System.Object dictionary
);

Parameters

[Visual Basic .NET]
name
The name of the profile. This must match the profile identifier portion of any expressions that are to evaluate against the profile. May not be null.
dictionary
The Dictionary object to add. May not be null.
[C#]
name
The name of the profile. This must match the profile identifier portion of any expressions that are to evaluate against the profile. May not be null.
dictionary
The Dictionary object to add. May not be null.

Remarks

Throws ArgumentNullException if one of the required parameter values was null.

Throws ArgumentException if the dictionary parameter is not a valid dictionary.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.CopyTo (Array, Int32) Method (BCL)

Use this method to copy the items to an array, starting at a particular array index.

Definition

[Visual Basic .NET]
Overridable Public Sub CopyTo( _
  ByVal array As System.Array, _
  ByVal index As System.Int32 _
)
[C#]
public virtual void CopyTo(
  System.Array array,
  System.Int32 index
);

Parameters

[Visual Basic .NET]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.
[C#]
array
The array to copy elements into.
index
The starting element in the array to copy elements into.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.Dispose Method (BCL)

Use this method to release resources used by this object.

Definition

[Visual Basic .NET]
Overridable Public Sub Dispose( _
)
[C#]
public virtual void Dispose(
);

Implements

System.IDisposable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.GetEnumerator Method (BCL)

Use this method to support enumeration of the items in the collection.

Definition

[Visual Basic .NET]
Overridable Public Function GetEnumerator( _
) As System.Collections.IEnumerator
[C#]
public virtual System.Collections.IEnumerator GetEnumerator(
);

Return Value

IEnumerator for enumerating the profile names in the collection.

Implements

System.ICollections.IEnumerable

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection Properties (BCL)

Public Instance Properties

Property | Description
Count | Gets the number of items contained in the collection.
IsSynchronized | Gets a value indicating whether access to the collection is synchronized.
Item(String) | Indexer to retrieve a profile or a Commerce.Dictionary object from the collection.
SyncRoot | Gets an object that can be used for synchronized access to the collection.


TargetingProfileCollection.Count Property (BCL)

The Count property is a read-only integer that gets the number of items contained in the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property Count As System.Int32
[C#]
public virtual System.Int32 Count {get;}

Property Value

The number of items contained in the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.IsSynchronized Property (BCL)

The IsSynchronized property is a read-only boolean that indicates whether access to the collection is synchronized.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property IsSynchronized As System.Boolean
[C#]
public virtual System.Boolean IsSynchronized {get;}

Property Value

A Boolean that indicates whether access to the collection is synchronized.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.Item Property (BCL)

The Items property is a read-only object that retrieves a profile or a Commerce.Dictionary object from the collection.

Definition

[Visual Basic .NET]
Public ReadOnly Property Item( _
  ByVal key As System.String _
) As System.Object
[C#]
public System.Object Item(
  System.String key
) {get;}

Parameters

[Visual Basic .NET]
key
The name of the key to get.
[C#]
key
The name of the key to get.

Property Value

A profile or a Commerce.Dictionary object from the collection.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingProfileCollection.SyncRoot Property (BCL)

The SyncRoot property is a read-only object that can be used for synchronized access to the collection.

Definition

[Visual Basic .NET]
Overridable Public ReadOnly Property SyncRoot As System.Object
[C#]
public virtual System.Object SyncRoot {get;}

Property Value

The Object that can be used for synchronized access to the collection.

Implements

System.Collections.ICollection

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingSystemInfo Class (BCL)

Gets the current instances of the classes required by the Targeting System.

Public Instance Properties

Property | Description
ExpressionEvaluator | Gets the current instance of the ExpressionEvaluator class.
SelectionContexts | Gets the collection of configured ContentSelectionContext objects.
TargetingContextProfile | Gets or sets the TargetingContext profile for use on the page. The TargetingContext profile is used to pass runtime properties into the ContentSelector or ExpressionEvaluator objects for targeting.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingSystemInfo Properties (BCL)

Public Instance Properties

Property | Description
ExpressionEvaluator | Gets the current instance of the ExpressionEvaluator class.
SelectionContexts | Gets the collection of configured ContentSelectionContext objects.
TargetingContextProfile | Gets or sets the TargetingContext profile for use on the page. The TargetingContext profile is used to pass runtime properties into the ContentSelector or ExpressionEvaluator objects for targeting.


TargetingSystemInfo.ExpressionEvaluator Property (BCL)

The ExpressionEvaluator property is a read-only ExpressionEvaluator that gets the current instance of ExpressionEvaluator.

Definition

[Visual Basic .NET]
Public ReadOnly Property ExpressionEvaluator As ExpressionEvaluator
[C#]
public ExpressionEvaluator ExpressionEvaluator {get;}

Property Value

The current instance of ExpressionEvaluator.

Remarks

The value will be null if the CommerceExpressionModule class is not configured in the web.config file. Check this property for a null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingSystemInfo.SelectionContexts Property (BCL)

The SelectionContexts property is a read-only ContentSelectionContextCollection that gets the collection of configured ContentSelectionContext objects.

Definition

[Visual Basic .NET]
Public ReadOnly Property SelectionContexts As ContentSelectionContextCollection
[C#]
public ContentSelectionContextCollection SelectionContexts {get;}

Property Value

The collection of configured ContentSelectionContext objects.

Remarks

The value will be null if the CommerceContentSelectionModule class is not configured in web.config. Check this property for a null value before referencing it.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


TargetingSystemInfo.TargetingContextProfile Property (BCL)

The TargetingContextProfile property is a read/write Profile that gets or sets the TargetingContext profile for use on the page. The TargetingContext profile is used to pass runtime properties into the ContentSelector or ExpressionEvaluator objects for targeting.

Definition

[Visual Basic .NET]
Public Property TargetingContextProfile As Profile
[C#]
public Profile TargetingContextProfile {get; set;}

Property Value

The TargetingContext profile for use on the page.

Remarks

If the property is accessed before it is explicitly set, a new instance will automatically be created and returned.

Although this property is not available in the Commerce Server COM object model, ASP-based sites can use the Commerce.GenId class to manually create a new Guid for each instance of the TargetingContext profile that is created and assign that to the unique_id property. For more information, see Expression Programming Concepts.

Requirements

Namespace: Microsoft.CommerceServer.Runtime.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: Microsoft.CommerceServer.Runtime.dll


Example Code for the Microsoft.CommerceServer.Targeting Namespace

Examples

Example | Description
Code to Display Targeted Advertisements on an ASP.NET Web Form | Describes how to create a targeting profile, create a user profile, run the content selector object, and display targeted advertisements on an ASP.NET Web form.


Code to Display Targeted Advertisements on an Asp.Net Web Form

Use the following code to create a targeting profile, create a user profile, run the content selector object, and display targeted advertisements on an ASP.NET Web form.

<%@ Page Language="C#" Debug="true" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Profiles" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Caching" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Targeting" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Pipelines" %>
<%@ Import Namespace="Microsoft.CommerceServer.Runtime.Diagnostics" %>

<HTML>
    <HEAD>
        <script language="C#" runat="server">

          public void ShowAds_OnClick(Object sender, EventArgs args)
          {
              CommerceContext csContext = CommerceContext.Current;
              //
             // Create a targeting profile.
             //
             csContext.TargetingSystem.TargetingContextProfile["PageGroup"].Value = "Sports";
                //
                // Create a user profile
                //
             Guid guid = Guid.NewGuid();
             Profile userProfile = csContext.ProfileSystem.CreateProfile
                                                             (
                                                                 guid.ToString(),
                                                                 "UserObject"
                                                             );
                //
                // Get a ContentSelector and set its properties
                //
                ContentSelector cso = csContext.TargetingSystem.SelectionContexts["advertising"].GetSelector();

                cso.Profiles.Add("targetingContext", csContext.TargetingSystem.TargetingContextProfile);
                cso.Profiles.Add("user", userProfile);
                cso.TraceMode = true;
                cso.ItemsRequested = 2;
                cso.Size = "Half";
                //
                // Get some content
                //
                StringCollection content = cso.GetContent();
                //
                // Bind the results to a repeater
                //
                if (content.Count > 0)
                {
                   repeaterShowAds.DataSource = content;
                   repeaterShowAds.DataBind();
                }
                //
                // Dump out Trace Messages
                //
                if (cso.TraceMessages != null)
                {
                    csContext.DebugContext.Trace("Targeting Sample", "Trace Messages");
                    int index = 0;
                    foreach (StringCollection messages in cso.TraceMessages)
                    {
                        csContext.DebugContext.Trace("Targeting Sample", "Content item row index=" + index++);
                        foreach (string message in messages)
                        {
                           csContext.DebugContext.Trace("Targeting Sample", message);
                        }
                    }
                    if (index == 0)
                    {
                       csContext.DebugContext.Trace("Targeting Sample", "It looks like there were no ads on schedule");
                    }
                }
                else
                {
                   csContext.DebugContext.Trace("Targeting Sample", "ContentSelection tracing is unavailable.");
                }
                csContext.DebugContext.Trace("Targeting Sample", "Dumping out contents of selectionContext...");
                ContentSelectionContext selectionContext = csContext.TargetingSystem.SelectionContexts["advertising"];
                foreach (string key in selectionContext)
                {
                   csContext.DebugContext.Trace("Targeting Sample", "key=" + key + " value=" + selectionContext[key].ToString());
                }
            }
        </script>
    </HEAD>
    <body>
        <form ID="Targeting" method="post" runat="server">
            <h3 id="H31" align="left" runat="server">
                Display an advertisement targeting the UserObject and TargetingContext
                profiles.</h3>
            <H4 class="dtH4">You should create an ad with a Target Group associated with the <B>Sports</B>
                page group before running this example.&nbsp;</H4>
            <P class="dtH4">
                <asp:Button id="ButtonShowAds" Text="Show Sports Ads" runat="server" OnClick="ShowAds_OnClick" /></P>
            <P class="dtH4">
                <asp:Repeater id="repeaterShowAds" runat="server">
                    <HeaderTemplate>
                        <table border="1">
                            <tr>
                                <td><b>Sports Ads</b></td>
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>
                            <td>
                                <%# Container.DataItem %>
                            </td>
                        </tr>
                    </ItemTemplate>
                    <FooterTemplate>
                        </TABLE>
                    </FooterTemplate>
                </asp:Repeater></P>
        </form>
    </body>
</HTML>

See Also

CommerceContext Class (BCL)

ContentSelectionContext Class (BCL)

ContentSelector Class (BCL)

Profile Class (BCL)


Microsoft.CommerceServer.Interop

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop namespace.

Class | Description
AuthManager | Performs user identification and authentication, and manages user security information.
DictionaryXMLTransforms | Transforms data in a Dictionary object into Extensible Markup Language (XML), and XML data into a Dictionary object.
MessageManager | Stores text strings in multiple languages. One usage involves the Order Processing pipeline (OPP) components describing error conditions generated during order form processing.
MtsPipeline | Runs a non-transacted Microsoft Commerce Server 2002 pipeline.
MtsTxPipeline | Runs a transacted Microsoft Commerce Server 2002 pipeline.
OrderPipeline | Runs a Microsoft Commerce Server 2002 pipeline, and is particularly useful in the Content Selection Framework.
PooledPipeline | Runs a non-transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.
PooledTxPipeline | Runs a transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.


AuthManager Class (PIA)

Use this object to perform user identification and authentication, and to manage user security information. This object also contains methods for cookie and cookieless browsing.

Methods

Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administration or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a Uniform Resource Locator (URL) containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves a user ID from a cookie.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether or not a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted AuthTicketType ticket for a registered user.
SetProfileTicket | Generates an encrypted ProfileTicketType ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates an encoded URL query string from arrays of parameter names and values.
URLShopperArgs | Generates an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.

Remarks

The AuthManager object identifies users and gathers information used for user authentication. The methods and properties of this object control and access the contents of cookies and encoded URL strings.

In the Commerce Server 2002 context, authentication uses tickets. A ticket is a string of property/value pairs that provide information about the user. Two types of tickets are supported. An authentication ticket, named AuthTicketType, is used for registered users while a profile ticket, named ProfileTicketType, is used for anonymous users. (These ticket types are defined in Microsoft.CommerceServer.Interop.TicketTypeEnum.) In this context, registered means a user who has provided information to a site that can be used for identification.

A user may have both types of tickets. In this case, the AuthTicketType ticket takes precedence.

A ticket contains a unique user ID, and for authentication tickets, the time of last login and a time window. For an anonymous user who allows cookies, the ProfileTicketType ticket is stored on the local computer of the user as a persistent cookie. For a registered user who allows cookies, the AuthTicketType ticket is stored in a session cookie and is valid for the duration of the session or a specified time window, and then is deleted.

If the user does not allow cookies, the ticket is placed in an encoded URL string. The URL string may be used to pass user information between pages and sites, provided all the URLs and query strings are generated by the AuthManager object.

The AuthManager object provides a transparent interface to the tickets, whether they are stored in cookies or in URL query strings, and handles encryption and decryption of the tickets to ensure security.

The AuthManager object is intended to be used only through Active Server Pages (ASP) since it depends on ASP intrinsic objects. Do not create the AuthManager object in application scope as it has dependencies on individual user sessions. The AuthManager object should be created and destroyed on each ASP page.

The methods GetUserIDFromCookie and GenerateEncryptionKey, facilitate rolling key encryption functionality. For more information about this feature, see Rolling Key Encryption for Authentication Tickets.

Any operation that requires decryption of the ticket will fail if you change the encryption key. One important instance of this behavior is with profile tickets, because they are persisted on the client computer. Hence when a user with a persisted profile ticket that was encrypted with the old key comes back to the site,the AuthManager object is not be able to decrypt this ticket. For more information about this issue, see Rolling Key Encryption for Authentication Tickets.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)


AuthManager Methods (PIA)

Methods

Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administration or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a Uniform Resource Locator (URL) containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves a user ID from a cookie.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether or not a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted AuthTicketType ticket for a registered user.
SetProfileTicket | Generates an encrypted ProfileTicketType ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates an encoded URL query string from arrays of parameter names and values.
URLShopperArgs | Generates an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.


AuthManager.GenerateEncryptionKey Method (PIA)

Use this method to generate an encryption key for encrypting/decrypting the cookie and query string data used for tickets.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GenerateEncryptionKey() As String
[C#]
using Microsoft.CommerceServer.Interop;
…
string GenerateEncryptionKey();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the encryption key.

[C#] On a successful return, this method returns an encryption key for encrypting/decrypting the cookie and query string data used for tickets.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM error that this method can return.

Value | Description
&HC1004C26 | An error occurred while generating the encryption key using the CryptoAPI.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C26 | An error occurred while generating the encryption key using the Microsoft Windows CryptoAPI routines.

Remarks

This method is used by the setup and Commerce Server Site Packager components during installation, and can be used to change the encryption key at a later time.

The encryption key is stored as part of the site configuration resource properties in the Administration database.

[C#]

This method is one of the few AuthManager methods used in C# applications.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.GetProperty Method (PIA)

Use this method to retrieve the value of the specified custom property from the current user ticket.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetProperty(
  enumTicketType As TicketTypeEnum,
  propName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
object GetProperty(
  TicketTypeEnum enumTicketType,
  string propName
);

Parameters

[Visual Basic .NET]
enumTicketType
A TicketTypeEnum that indicates the type of ticket that contains the property.
propName
A String that contains the name of the property to retrieve.
[C#]
enumTicketType
A Microsoft.CommerceServer.Interop.TicketTypeEnum value that indicates the type of ticket that contains the property.
propName
A string that contains the name of the property to retrieve.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the value for the specified property in the current user ticket. If the property is not found, the returned Object is empty.

[C#] This method returns an object containing a string with the value for the specified property in the current user ticket. If the property is not found, the object is set to null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C27 | Invalid custom property name or value.
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C25 | Requested ticket not set.
&HC1004C00 | Requested property does not exist on the ticket.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C27 | Invalid custom property name or value.
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C25 | Requested ticket not set.
0xC1004C00 | Requested property does not exist on the ticket.

Remarks

The following table defines the possible values for the Microsoft.CommerceServer.Interop.TicketTypeEnum.

Name | Value | Description
ProfileTicketType | 1 | A TicketTypeEnum ticket used for an anonymous user.
AuthTicketType | 2 | A TicketTypeEnum ticket used for a registered user.

Use the SetProperty method to place custom property values in the current user ticket.

[C#]

The returned object contains valid string data only if the method completes successfully.

AuthManager myAuth = new AuthManager();

//Use enum parameter this way�

myAuth.SetProperty( TicketTypeEnum.AuthTicketType,

杜yCustomProperty�,

堵eeWhiz�);

[Visual Basic .NET]

Example

' sPasswordValue is a String
' oAuthManager is a Commerce AuthManager object
sPasswordValue = oAuthManager.GetProperty(AuthTicketType, _
 "Password")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.SetProperty


AuthManager.GetURL Method (PIA)

Use this method to generate an encoded Uniform Resource Locator (URL) string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetURL(
  FileName As String,
  fCookie As Boolean,
  fSecure As Boolean,
  Optional ByRef pVarURLParameters As Object,
  Optional ByRef pVarURLValues As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop;
…
string GetURL(
  string FileName,
  bool fCookie,
  bool fSecure,
  ref object pVarURLParameters,
  ref object pVarURLValues
);

Parameters

[Visual Basic .NET]
FileName
A String that contains the file name to reference in the URL.
fCookie
A Boolean that indicates whether the user allows cookies.
fSecure
A Boolean that indicates whether the URL is secure (HTTPS versus HTTP).
pVarURLParameters
A System.Array that contains a list of parameter names to include in the URL.
pVarURLValues
A System.Array that contains values that correspond to the parameter names.
[C#]
FileName
A string that contains the file name to reference in the URL.
fCookie
A bool that indicates whether the user allows cookies.
fSecure
A bool that indicates whether the URL is secure (HTTPS versus HTTP).
oVarURLParameters
An object containing a System.Array of parameter names to include in the URL. If the array of parameters is not needed, pass a reference to an object set to DBNull.Value.
oVarURLValues
An object containing a System.Array of parameter values that correspond to the parameter names in oVarURLParameters. If the array of parameters is not needed, pass a reference to an object set to DBNull.Value.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the encoded URL.

[C#] This method returns a string with the encoded URL.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

The encoded URL includes the host name (retrieved from the site configuration), the virtual directory in which the file is stored (determined by the scripting context), the name of the file, flags for cookie support and security, and optional custom name/value pairs (for example, the name "SKU" and the stock-keeping unit (SKU) value for an item in a shopping cart).

If cookies are not allowed, the cookie flag is set to False and the ticket is appended to the URL.

Note

  • When a cached HTML segment that contains a URL with an appended ticket is retrieved, the ticket needs to be replaced with the correct one (for the current user context).

The secure flag is set to True if the referenced host is secure.

Use the URLArgs or URLShopperArgs methods to encode a URL query string out of name/value pairs.

[Visual Basic .NET]

Example

' saParameterNames and saParameterValues are System.Arrays
' sURL is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku"
saParameterValues(0) = "12345"
sURL = oAuthManager.GetURL("filename.asp", False, True, _
 saParameterNames, saParameterValues)

' sURL = http://host_name/virtual_directory/filename.asp?sku=12345&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.GetUserID Method (PIA)

Use this method to retrieve a user ID stored in a ticket.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetUserID(
  enumTicketType As TicketTypeEnum
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
object GetUserID(
  TicketTypeEnum enumTicketType
);

Parameters

[Visual Basic .NET]
enumTicketType
A TicketTypeEnum that indicates the type of ticket that contains the user ID.
[C#]
enumTicketType
A Microsoft.CommerceServer.Interop.TicketTypeEnum value (for example, AuthTicketType or ProfileTicketType) that indicates the type of ticket that contains the user ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the user ID. If the appropriate ticket type is not found or there is no user ID, the method returns Null.

[C#] This method returns an object containing a string used to return the unique ID for the current user. If the appropriate ticket type is not found or there is no user ID, the object is set to DBNull.Value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

The following table defines the possible values for the TicketType.

Name | Value | Description
ProfileTicketType | 1 | A Profile ticket used for an anonymous user.
AuthTicketType | 2 | An Auth ticket used for a registered user.

If the ticket type is AuthTicketType and the ticket has expired, the ticket will be deleted and the return value will be as if there was no ticket.

If the ticket type is AuthTicketType and the ticket is within five minutes of expiring, the last login time is refreshed to the current time, allowing an additional period for the ticket to be valid.

[Visual Basic .NET]

Example

' oUserID is an Object
' oAuthManager is a Commerce AuthManager object
oUserID = oAuthManager.GetUserID(ProfileTicketType)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.GetUserIDFromCookie Method (PIA)

Use this method to retrieve a user ID stored in a cookie.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetUserIDFromCookie(
  cookieData As String
) As String
[C#]
using Microsoft.CommerceServer.Interop;
…
string GetUserIDFromCookie(
  string cookieData
);

Parameters

[Visual Basic .NET]
cookieData
A String that contains the cookie.
[C#]
cookieData
A string that contains the cookie.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the user ID.

[C#] This method returns a string containing the user ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM error that this method can return.

Value | Description
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

The cookie data is always URL decoded.

Commerce Server 2002 Analysis applications use this method to extract user IDs from cookies found in Internet Information Services (IIS) log files.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.Initialize Method (PIA)

Use this method to initialize the AuthManager object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub Initialize(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void Initialize(
  string strSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the name of the Commerce Server 2002 Web site.
[C#]
strSiteName
A string that contains the name of the Commerce Server 2002 Web site.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The AuthManager Object must be properly initialized to a valid site name immediately after creating the object and before any other AuthManager object method is used.

The first time any AuthManager object uses this method, it connects to the Administration database and caches the site configuration data using the SiteConfig object. When subsequent AuthManager objects call this method the data is read from the cache.

Use the Refresh method to update the site configuration data after any of the properties have been changed.

Use the UnInitialize method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

It is suggested that you instantiate and initialize the AuthManager object in the Global.asax file to make sure at least one instance of the object exists, and to ensure that the dynamic-link library (DLL) is loaded in memory and not flushed out by Internet Information Services (IIS) for performance reasons. This AuthManager object should not be used elsewhere. A separate instance of the AuthManager object must be created and destroyed on each ASP page.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.IsAuthenticated Method (PIA)

Use this method to determine whether the current user has a valid AuthTicketType ticket. This method also allows the determination of whether the user has been authenticated within a specified period of time.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function IsAuthenticated(
  Optional TimeWindow As Integer
) As Boolean
[C#]
using Microsoft.CommerceServer.Interop;
…
bool IsAuthenticated(
  int TimeWindow
);

Parameters

[Visual Basic .NET]
TimeWindow
An optional Integer that contains a time period in minutes. The default value is 0.
[C#]
TimeWindow
An int that contains a time period in minutes. For additional information, see the Remarks section.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Boolean that indicates the authentication status of the current user.

[C#] This method returns a Boolean value indicating whether the user is authenticated.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

An AuthTicketType ticket contains the time the user last logged in and a time window of validity. The ticket is no longer valid if the time since the last login has exceeded the time window specified in the SetAuthTicket method when the ticket was generated.

The time window parameter, TimeWindow, of this method allows checking whether the time since the user last logged in has exceeded a shorter time interval than the time window specified by the SetAuthTicket method. A value of zero (0) is equivalent to setting the time window to the same value as specified in the SetAuthTicket method.

This method returns False if the user does not have an AuthTicketType ticket, the ticket is invalid, or the time since the user last logged in has exceeded the specified time window.

If the ticket is within five minutes of expiring, the last login time is refreshed to the current time, allowing an additional period for the ticket to be valid.

Ensure a log-off page is created and called for any logged-in user. The log-off page should either expire the AuthTicketType cookie or clear its contents.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.Refresh Method (PIA)

Use this method to update the cached site configuration resource properties after any of the properties have been changed.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub Refresh(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void Refresh(
  string strSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the site name.
[C#]
strSiteName
A string that contains the site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method should be called immediately after changing any of the authentication related site configuration resource properties. Also, use this method when switching between Active Server Pages (ASP) and Microsoft Visual Basic Scripting Edition (VBScript) files and updating the site configuration properties.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.SetAuthTicket Method (PIA)

Use this method to set an encrypted AuthTicketType ticket for a registered user.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetAuthTicket(
  UserID As String,
  fCookieSupport As Boolean,
  TimeWindow As Integer
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void SetAuthTicket(
  string UserID,
  bool fCookieSupport,
  int TimeWindow
);

Parameters

[Visual Basic .NET]
UserID
A String that contains the unique ID for the current user.
fCookieSupport
A Boolean that indicates whether session cookies are supported.
TimeWindow
An Integer that defines the time window in minutes that the AuthTicketType ticket is valid.
[C#]
UserID
A string that contains the unique ID for the current user.
fCookieSupport
A bool that indicates whether session cookies are supported.
TimeWindow
An int that defines the time window in minutes that the AuthTicketType ticket is valid.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
&HC1004C40 | The ticket has reached a maximum size of 4 kilobytes.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.
0xC1004C40 | The ticket has reached a maximum size of 4 kilobytes.

Remarks

The time the user last logged in is stored in the ticket, along with the length of time from the last login that the ticket is valid.

If an AuthTicketType ticket for the user already exists and an empty string is passed in as the ID, UserID, for the user, the existing ticket is deleted.

If the current user is anonymous, use the SetProfileTicket method to generate a ProfileTicketType ticket.

[Visual Basic .NET]

Example

' oAuthManager is a Commerce AuthManager object
oAuthManager.SetAuthTicket ("JoeUser@microsoft.com", True, 30)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.IsAuthenticated


AuthManager.SetProfileTicket Method (PIA)

Use this method to set a ProfileTicketType ticket for an anonymous user. An anonymous user is not registered with a site.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetProfileTicket(
  UserID As String,
  fCookieSupport As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void SetProfileTicket(
  string UserID,
  bool fCookieSupport
);

Parameters

[Visual Basic .NET]
UserID
A String that contains the unique ID for the current user.
fCookieSupport
A Boolean that indicates whether persistent cookies are supported.
[C#]
UserID
A string that contains the unique ID for the current user.
fCookieSupport
A bool that indicates whether persistent cookies are supported.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
&HC1004C40 | The ticket has reached a maximum size of 4 kilobytes.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID or the property name/value pair.
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.
0xC1004C40 | The ticket has reached a maximum size of 4 kilobytes.

Remarks

If a ProfileTicketType ticket for the user already exists and an empty string is passed in for the user ID, UserID, the existing ticket is deleted.

If the current user has registered, use the SetAuthTicket method to generate an AuthTicketType ticket.

[Visual Basic .NET]

Example

' oAuthManager is a Commerce AuthManager object
oAuthManager.SetProfileTicket ("74A38551-D6D8-FFD0-12BF-0A20C90DC8D1", _
 True)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.IsAuthenticated


AuthManager.SetProperty Method (PIA)

Use this method to place a custom property name/value pair into the current ticket for the user.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetProperty(
  enumTicketType As TicketTypeEnum,
  propName As String,
  propVal As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void SetProperty(
  TicketTypeEnum enumTicketType,
  string propName,
  string propVal
);

Parameters

[Visual Basic .NET]
enumTicketType
A TicketTypeEnum that indicates the type of ticket.
propName
A String that contains the name of the property.
propVal
A String that contains the value corresponding to the named property.
[C#]
enumTicketType
A Microsoft.CommerceServer.Interop.TicketTypeEnum that indicates the type of ticket.
propName
A string that contains the name of the property.
propVal
A string that contains the value corresponding to the named property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C23 | Invalid character (';' or '=') present in the property name/value pair.
&HC1004C27 | Invalid custom property name or value.
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
&HC1004C40 | The ticket has reached a maximum size of 4 kilobytes.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C23 | Invalid character (';' or '=') present in the property name/value pair.
0xC1004C27 | Invalid custom property name or value.
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.
0xC1004C40 | The ticket has reached a maximum size of 4 kilobytes.

Remarks

Use the GetProperty method to retrieve the custom property values from the current ticket. See the Remarks section in the GetProperty topic for a discussion of using enumerator values in code.

The following table defines the possible values for the Microsoft.CommerceServer.Interop.TicketTypeEnum.

Name | Value | Description
ProfileTicketType | 1 | A Profile ticket used for an anonymous user.
AuthTicketType | 2 | An Auth ticket used for a registered user.

Note

  • A property with the name "Ticket" is used by the AuthManager object for storing Commerce Server 2002 related information. When creating a custom property, do not set the property name to "Ticket".
[Visual Basic .NET]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetProperty (AuthTicketType, "Password", "MyPassword123")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.GetProperty


AuthManager.SetUserID Method (PIA)

Use this method to change the user ID property on a ticket.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetUserID(
  enumTicketType As TicketTypeEnum,
  newUserID As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void IMSCSAuthManager::SetUserID(
  TicketTypeEnum enumTicketType,
  string newUserID
);

Parameters

[Visual Basic .NET]
enumTicketType
A TicketTypeEnum that indicates the type of ticket that will contain the user ID.
newUserID
A String that contains the unique ID for the current user.
[C#]
enumTicketType
A Microsoft.CommerceServer.Interop.TicketTypeEnum that indicates the type of ticket that will contain the user ID.
newUserID
A string that contains the unique ID for the current user.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C23 | Invalid character (';' or '%' or '=') present in the UserID.
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
&HC1004C40 | The ticket has reached a maximum size of 4 kilobytes.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C23 | Invalid character (';' or '%' or '=') present in the UserID.
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.
0xC1004C40 | The ticket has reached a maximum size of 4 kilobytes.

Remarks

The value for the user ID may be the logon name for a registered user, a globally unique identifier (GUID) for an anonymous user, or any unique value.

If the appropriate ticket already exists, the value in the user ID is updated. If the ticket already exists and an empty string is passed in as the value for the user ID, newUserID, the existing ticket is deleted.

If the ticket does not exist, a ticket is created with default values for the rest of the data.

The following table defines the possible values for the Microsoft.CommerceServer.Interop.TicketTypeEnum.

Name | Value | Description
ProfileTicketType | 1 | A Profile ticket used for an anonymous user.
AuthTicketType | 2 | A Auth ticket used for a registered user.
[Visual Basic .NET]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetUserID (AuthTicketType, JoeUser@microsoft.com)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.UnInitialize Method (PIA)

Use this method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub UnInitialize(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
void UnInitialize(
  string strSiteName,
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the name of the site.
[C#]
strSiteName
A string that contains the name of the site.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

This method must be called to disconnect the AuthManager object cache from the specified site.

The Initialize method loads the site configuration resource properties into the cache.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class


AuthManager.URLArgs Method (PIA)

Use this method to generate a Uniform Resource Locator (URL) encoded query string of name/value pairs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function URLArgs(
  ByRef pVarURLParameters As Object,
  ByRef pVarURLValues As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop;
…
string URLArgs(
  ref object oURLParameters,
  ref object oURLValues
);

Parameters

[Visual Basic .NET]
pVarURLParameters
A System.Array that contains the parameter names.
pVarURLValues
A System.Array that contains the values corresponding to the parameter names.
[C#]
pURLParameters
An object containing a System.Array of parameter names.
pURLValues
An object containing a System.Array of parameter values corresponding to the parameter names.

Return Values

This method returns a string that contains the resulting encoded URL query string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

This method concatenates the parameter name/value pairs into a encoded URL string. This method will fail if the two arrays containing the parameter names and values are not the same size.

The URLShopperArgs method performs the same URL encoding and additionally appends the ticket to the query string, if a ticket is set.

[C#]

The returned string contains valid data only if the method completes successfully.

[Visual Basic .NET]

Example

' saParameterNames and saParameterValues are SafeArrays
' sURLArg is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku1"
saParameterNames(1) = "sku3"
saParameterValues(0) = "12345"
saParameterValues(1) = "98765"
sURLArg = oAuthManager.URLArgs(saParameterNames, saParameterValues)

' sURLArg = "?sku1=12345&sku3=98765"

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.URLShopperArgs


AuthManager.URLShopperArgs Method (PIA)

Use this method to generate an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function URLShopperArgs(
  ByRef pVarURLParameters As Object,
  ByRef pVarURLValues As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop;
…
string URLShopperArgs(
  ref object pURLParameters,
  ref object pURLValues
);

Parameters

[Visual Basic .NET]
pVarURLParameters
A System.Array that contains the parameter names.
pVarURLValues
A System.Array that contains the values corresponding to the parameter names.
[C#]
oURLParameters
An object containing a System.Array of parameter names.
oURLValues
An object containing a System.Array of parameter values corresponding to the parameter names.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the encoded-URL string.

[C#] This method returns a string that contains the resulting encoded-URL query string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that this method can return.

Value | Description
&HC1004C24 | This method should only be called within an ASP page.
&HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0xC1004C24 | This method should only be called within an ASP page.
0xC1004C10 | The Initialize method must be called with the installed site name before calling this method.

Remarks

This method concatenates the parameter name/value pairs into an encoded URL string and appends the ticket. This is useful for cookieless shopping support. This method will fail if the two arrays containing the parameters and values are not the same size.

If both types of tickets exist, the AuthTicketType ticket takes precedence.

Use the URLArgs method to perform URL encoding of parameter/value pairs without appending the ticket.

[Visual Basic .NET]

Example

' saParameterNames and saParameterValues are SafeArrays
' sURLShopArg is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku1"
saParameterNames(1) = "sku3"
saParameterValues(0) = "12345"
saParameterValues(1) = "98765"
sURLShopArg = oAuthManager.URLShopperArgs(saParameterNames, saParameterValues)

' sURLShopArg =
' "?sku1=12345&sku3=98765&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E"

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsauthlib (in mscsauthlib.dll)

See Also

AuthManager Class

AuthManager.SetProperty

AuthManager.SetAuthTicket

AuthManager.SetProfileTicket

AuthManager.URLArgs


DataFunctions Class (PIA)

Use this object to perform locale-based formatting, parsing, and value range checking in a site. This object also has a variety of utilities useful for site development.

Use the Commerce Server 2000 MSCSAspHelpLib Type Library to access this object.

Methods

Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date Object, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date Object, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double Object, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to an Integer Object, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer Object, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date Object, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date Object, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date Object, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date Object, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency Object.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.

Properties

Property | Type | Description
Locale | Integer | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | Object | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)


DataFunction Methods (PIA)

Methods

Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date Object, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date Object, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double Object, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to an Integer Object, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer Object, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date Object, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date Object, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date Object, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date Object, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency Object.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.


DataFunctions.CleanString Method (PIA)

Use this method to process a string, based on the default or specified locale. The string processing can include stripping out leading and trailing white spaces, modifying string case, and validating that the length of the string falls within a given range.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function CleanString(
 vtInput As Object,
 Optional vtMinLen As Object,
 Optional vtMaxLen As Object,
 Optional vtStripWhite As Object,
 Optional vtStripReturn As Object,
 Optional vtCase As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object CleanString(
 object vtInput,
 object vtMinLen,
 object vtMaxLen,
 object vtStripWhite,
 object vtStripReturn,
 object vtCase,
 object vtLocale
);

Parameters

[Visual Basic .NET]
vtInput
An Object that contains the text of the string to process.
vtMinLen
An Object that contains the minimum length against which the length of the input string will be validated. The default value for this parameter is zero (0).
vtMaxLen
An Object that contains the maximum length against which the length of the input string will be validated. The default value for this parameter is no limit.
vtStripWhite
An Object that contains the Boolean value that indicates whether leading and trailing white spaces should be stripped from the input string. The default value is True.
vtStripReturn
An Object that contains the Boolean value that indicates whether the carriage returns contained anywhere in the input string should be stripped. The default value is True.
vtCase
An Object that specifies any conversions to the case of the input string. The default value for this parameter is zero (0), which results in no modification to the case of the input string. If this parameter is set to one (1), the input string is converted to uppercase. If this parameter is set to two (2), the input string is converted to lowercase.
vtLocale
An Object that specifies the locale to use when processing the input string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtInput
An object that contains the text of the string to process.
vtMinLen
An object that contains the minimum length against which the length of the input string will be validated. The default value for this parameter is zero (0).
vtMaxLen
An object that contains the maximum length against which the length of the input string will be validated. The default value for this parameter is no limit.
vtStripWhite
An object that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the input string. The default value is true.
vtStripReturn
An object that contains the Boolean value that indicates whether the carriage returns contained anywhere in the input string should be stripped. The default value is true.
vtCase
An object that specifies any conversions to the case of the input string. The default value for this parameter is zero (0), which results in no modification to the case of the input string. If this parameter is set to one (1), the input string is converted to uppercase. If this parameter is set to two (2), the input string is converted to lowercase.
vtLocale
An object that specifies the locale to use when processing the input string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the processed string; otherwise, Null is returned.

[C#] This method returns an object that contains the processed string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

DataFunctions df = New DataFunctions()
df.Locale = 1033
Dim Result As Object
Dim strData As Object
strData = " Microsoft Press   "
Result = df.CleanString(strData, 1, 20, True, True, 1)
Response.Write(Result)
' "MICROSOFT PRESS" will be written to the page

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

Page.RequestString


DataFunctions.CloneObject Method (PIA)

Use this method to clone a SimpleList or Dictionary object. This method performs a deep copy of the cloned object, so new memory is allocated for the clone.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function CloneObject(
 pdispSource As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object CloneObject(
 object pdispSource
);

Parameters

[Visual Basic .NET]
pdispSource
A reference to the SimpleList or Dictionary object to be cloned.
[C#]
pdispSource
A reference to an object that is either a SimpleList or Dictionary object to be cloned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to the SimpleList or Dictionary object clone.

[C#] This method returns an object reference that represents the SimpleList or Dictionary object clone.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' dSource and dCopy are Dictionary objects
DataFunctions df = New DataFunctions()
dCopy = df.CloneObject(dSource)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale


DataFunctions.ConvertDateString Method (PIA)

Use this method to convert a date string to a date object, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertDateString(
 vtDate As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertDateString(
  object vtDate,
  object vtLocale
);

Parameters

[Visual Basic .NET]
vtDate
An Object that contains a string representation of the date to convert.
vtLocale
An Object that specifies the locale to use when processing the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtDate
An object that contains a string representation of the date to convert.
vtLocale
An object that specifies the locale to use when processing the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a date Object containing the converted value; otherwise, Null is returned.

[C#] This method returns an object containing the converted date.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

In some cases, the DataFunctions.ConvertDateString method returns Null, for example, the DataFunctions.ConvertDateString method returns null when converting a string representation of the date to the date object type for Latvian and Bulgarian locales. To avoid this problem, remove the constant string added at the end of the Date Representation String according to the Regional Settings in the Control Panel.

[Visual Basic .NET]

Example

' Converts date using US and France locales
Dim Result As Object
DataFunctions df = new DataFunctions()
df.Locale = 1036
Result = df.ConvertDateString("12/1/2000")
Response.Write("France: " & Result & "<P>")
df.Locale = 1033
Result = df.ConvertDateString("12/1/2000")
Response.Write("USA: " & Result)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertDateTimeString

DataFunctions.Date

DataFunctions.DateTime

Page.RequestTime


DataFunctions.ConvertDateTimeString Method (PIA)

Use this method to convert a date and time string to a date/time object, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertDateTimeString(
 vtDateTime As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertDateTimeString(
  object vtDateTime,
  object vtLocale
);

Parameters

[Visual Basic .NET]
vtDateTime
An Object that contains a string that specifies the date/time value to convert.
vtLocale
An Object that specifies the locale to use to convert the date. If this value is not specified, the value of the Locale property of the DataFunctions object is used.

[C#]

vtDateTime
An object that contains a string that specifies the date/time value to convert.
vtLocale
An object that specifies the locale to use to convert the date. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a datetime Object that contains the converted date/time value; otherwise, Null is returned.

[C#] This method returns an object containing the converted date/time value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' Converts date time string using US and France locales
' oSourceDateTime is an Object containing a date time string
Dim Result As Object
DataFunctions df = New DataFunctions()
df.Locale = 1036
Result = df.ConvertDateTimeString(oSourceDateTime)
Response.Write("France: " & Result & "<P>")
df.Locale = 1033
Result = df.ConvertDateTimeString(oSourceDateTime)
Response.Write("USA: " & Result)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertDateString

DataFunctions.Date

DataFunctions.DateTime

Page.RequestTime


DataFunctions.ConvertFloatString Method (PIA)

Use this method to convert a floating-point number represented as a string to a double object, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertFloatString(
 vtNum As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertFloatString(
  object vtNum,
  object vtLocale
);

Parameters

[Visual Basic .NET]
vtNum
An Object that contains a string representation of the floating-point number to convert.
vtLocale
An Object that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtNum
An object that contains a string representation of the floating-point number to convert.
vtLocale
An object that specifies the locale to use to convert the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a double Object that contains the converted number; otherwise, Null is returned.

[C#] This method returns an object containing the converted floating-point number.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' Converts float using US and France locales
' oSourceFloat is an Object containing a float string
Dim Result As Object
DataFunctions df = New DataFunctions()
df.Locale = 1036
Result = df.ConvertFloatString(oSourceFloat)
Response.Write("France: " & Result & "<P>")
df.Locale = 1033
Result = df.ConvertFloatString(oSourceFloat)
Response.Write("USA: " & Result)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.Float

DataFunctions.ValidateFloat


DataFunctions.ConvertMoneyStringToNumber Method (PIA)

Use this method to convert a money string to a number, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertMoneyStringToNumber(
 vtMoney As Object,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertMoneyStringToNumber(
  object vtMoney,
  object vtLocale
);

Parameters

[Visual Basic .NET]
vtMoney
An Object that contains a string representation of the monetary value to convert.
vtLocale
An Object that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtMoney
An object that contains a string representation of the monetary value to convert.
vtLocale
An object that specifies the locale to use to convert the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an integer Object that represents the value of the specified string in the base monetary unit of the specified locale; otherwise, Null is returned.

[C#] This method returns an object that contains the converted monetary value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The ConvertMoneyStringToNumber method returns the value in the base monetary unit for a given locale. Thus, given a value in dollars, ConvertMoneyStringToNumber returns the number of cents in the dollar value.

Additionally, ConvertMoneyStringToNumber does not round values. For example, if you pass this method "123.009" the method returns 12300, not 12301.

This method returns an object of type int, not an OLE currency type.

In some cases, this method returns null when converting a string representation of monetary value to the currency object type for Swedish and Portuguese (Portugal) locales. To avoid this problem, use the Replace method of the string class (i.e. myString.Replace(MoneyString, CurrencyDigitGroupingSymbol, "")) to remove the currency digit grouping symbol from the money string prior to calling the method ConvertMoneyStringToNumber.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Object
Amount = "12000"
DataFunctions df = New DataFunctions()
' Set Locale to USA
Result = df.ConvertMoneyStringToNumber("34.095", 1033)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertFloatString

DataFunctions.ConvertNumberString


DataFunctions.ConvertNumberString Method (PIA)

Use this method to convert an integer represented as a string to an integer object, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertNumberString(
 vtNum As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertNumberString(
  object vtNum,
  object vtLocale
);

Parameters

[Visual Basic .NET]
vtNum
An Object that contains a string representation of the number to convert.
vtLocale
An Object that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtNum
An object that contains a string representation of the number to convert.
vtLocale
An object that specifies the locale to use to convert the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an integer Object containing the converted number; otherwise, Null is returned.

[C#] This method returns an object containing the converted number.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

ConvertNumberString method is designed to accept only integers. Passing a floating-point number as the vtNum parameter results in an error. To convert floating-point numbers, use the ConvertFloatString method.

[Visual Basic .NET]

Example

' Converts integer string using US and France locales
' oSourceInt is an Object containing an integer string
Dim Result As Object
DataFunctions df = New DataFunctions()
df.Locale = 1036
Result = df.ConvertNumberString(oSourceInt)
Response.Write("France: " & Result & "<P>")
df.Locale = 1033
Result = df.ConvertNumberString(oSourceInt)
Response.Write("USA: " & Result)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertFloatString

DataFunctions.Number

DataFunctions.ValidateNumber


DataFunctions.ConvertStringToCurrency Method (PIA)

Use this method to convert a string representation of a monetary value into a currency object, based on the specified locale and currency symbol.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertStringToCurrency(
 vtMoneyString As Object,
 Optional vtLocale As Object,
 Optional vtCurrencySymbol As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertStringToCurrency(
  object vtMoneyString,
  object vtLocale,
  object vtCurrencySymbol
);

Parameters

[Visual Basic .NET]
vtMoneyString
An Object that contains the currency string to convert.
vtLocale
An Object that specifies the locale to use when converting the string to a currency Object. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtCurrencySymbol
An Object that contains the currency symbol to expect when converting the currency string. If this parameter is not specified, the value of the CurrencySymbol property of the DataFunctions object is used.
[C#]
vtMoneyString
An object that contains the currency string to convert.
vtLocale
An object that contains the locale to be used when converting the string to a currency object. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.
vtCurrencySymbol
An object that contains the currency symbol to expect when converting the currency string. If you want the value of the CurrencySymbol property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object used to return the string representation of the converted monetary value.

[C#] This method returns an object containing the string representation of the converted monetary value. This will be set to null if the monetary value string is not valid.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Object
' vtAmount is a string representation of a monetary value
DataFunctions df = New DataFunctions()
' Set to USA
df.Locale = 1033
Result = df.ConvertStringtoCurrency(vtAmount)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.LocalizeCurrency

DataFunctions.ConvertMoneyStringToNumber


DataFunctions.ConvertTimeString Method (PIA)

Use this method to convert a time string to a date object, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ConvertTimeString(
 vtDate As Object,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ConvertTimeString(
 object vtDate,
 object vtLocale
);

Parameters

[Visual Basic .NET]
vtDate
An Object that specifies a string representation of the time to convert.
vtLocale
An Object that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtDate
An object that specifies a string representation of the time to convert.
vtLocale
An object that specifies the locale to use to convert the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a date Object that contains the time; otherwise, Null is returned. Additionally, if the string representation contains a date, ConvertTimeString returns Null.

[C#] This method returns an object containing the converted time value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Object
' vtTimeString is a string representation of a time value
DataFunctions df = New DataFunctions()
' Set to USA
df.Locale = 1033
Result = df.ConvertTimeString(vtTimeString)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.Time

DataFunctions.ValidateDateTime


DataFunctions.Date Method (PIA)

Use this method to convert a date object to a string representation of the specified date, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Date(
 dtDate As DateTime,
 Optional vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object Date(
 System.DateTime dtDate,
 object vtLocale
);

Parameters

[Visual Basic .NET]
dtDate
A DateTime that contains the date to format.
vtLocale
An Object that specifies the locale to use to convert the date to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
dtDate
A System.DateTime that contains the date to format.
vtLocale
An object that specifies the locale to use to convert the System.DateTime object to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the date value formatted as a string; otherwise, Null is returned.

[C#] This method returns an object containing the date value formatted as a string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim dDateVar As Date
' dDateVar is a Date containing a valid date
DataFunctions df = New DataFunctions()
' Set Locale to USA
df.Locale = 1033
Result = df.Date(dDateVar)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.DateTime

DataFunctions.ValidateDateTime

DataFunctions.ConvertDateString


DataFunctions.DateTime Method (PIA)

Use this method to convert a date object to a string representation of the specified date value based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function DateTime(
 dtDate As Date,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object DateTime(
 System.DateTime dtDate,
 object vtLocale
);

Parameters

[Visual Basic .NET]
dtDate
A Date that contains the date/time value to convert.
vtLocale
An Object that specifies the locale to use to convert the Date to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
dtDate
A System.DateTime that contains the date/time value to convert.
vtLocale
An object that specifies the locale to use to convert the System.DateTime object to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the string representation of the specified date/time value; otherwise, Null is returned.

[C#] This method returns an object containing the string representation of the specified date/time value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim DateVar As Date
' DateVar is a Date containing a valid date time value
DataFunctions df = New DataFunctions()
' Set Locale to USA
df.Locale = 1033
Result = df.DateTime(DateVar)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.Date

DataFunctions.ValidateDateTime

Page.RequestTime


DataFunctions.Float Method (PIA)

Use this method to convert a number stored in a double to a string representation of that number, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
�c

Public Function Float(
 fNumber As Double,
 Optional vtLocale As Object
 Optional vtNoRound As Object,
 Optional vtTrimTrailingZeros As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
�c
public object Float(
 double fNumber,
 object vtLocale
 object vtNoRound
 object vtTrimTrailingZeros
);

Parameters

[Visual Basic .NET]
fNumber
A Double that contains the floating-point number to convert.
vtLocale
An Object that specifies the locale to use to convert the floating-point number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
VtNoRound
An Object that determines whether the number will be rounded.
VtTrimTrailingZeros
An Object that determines whether trailing zeros will be cropped.
[C#]
fNumber
A double (8-byte floating point number) that contains the floating-point number to convert.
vtLocale
An object that specifies the locale to use to convert the floating-point number to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.
VtNoRound
An Object that determines whether the number will be rounded.
VtTrimTrailingZeros
An Object that determines whether trailing zeros will be cropped.

Return Values

The value returned from the Float method is intended for display purposes only, and not in any calculations.

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the string representation of the specified floating-point number; otherwise, Null is returned.

[C#] This method returns an object containing the string representation of the specified floating point number.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The value returned from the Float method is intended for display purposes only, and not in any calculations.

The string representation of a floating pointer number (of type VT_R4) returned by the Float method can contain additional trailing digits that may not have been specified as part of the original user input value. For example, 2.23 is formatted as �2.23000001907349�, and 2.23456 is formatted as �2.23456001281738�.

The reason for the change in formatting is that when a float value is passed into this function, it is automatically cast to a double value by the language runtime libraries (because this method expects a double-typed argument). It is during this cast operation that the trailing digits get added to the passed in value. Since the Float method formats the entire input value into a string, the resulting string value contains the additional trailing digits.

The workaround for client applications is to invoke this method with the VtNoRound argument set to False.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Double
Amount = 12000
DataFunctions df = New DataFunctions()
' Set Locale to USA
df.Locale = 1033
myInputFloat = 100.00010
Result = df.Float(myInputFloat)
Response.Write("USA, No Rounding, With Trailing: " & Result & "<P>")
Result = df.Float(myInputFloat)
Response.Write("USA, No Rounding, Trim Trailing: " & Result & "<P>")
Result = df.Float(myInputFloat)
Response.Write("USA, Rounding, With Trailing: " & Result & "<P>")
Result = df.Float(myInputFloat)
Response.Write("USA, Rounding, Trim Trailing: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ValidateFloat

DataFunctions.ConvertFloatString


DataFunctions.GetLocaleInfo Method (PIA)

Use this method to get information on the specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetLocaleInfo(
 vtInfo As Integer,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object GetLocaleInfo(
 int vtInfo,
 object vtLocale
);

Parameters

[Visual Basic .NET]
vtInfo
An Integer that indicates the type of locale information to return. This value must map to one of the LCTYPE constants. For information about these constants, see the Win32 SDK Help.
vtLocale
An Object that identifies the locale for which to return information. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
vtInfo
An int that specifies the type of locale information to return in the returned object. This value must map to one of the LCTYPE constants. For information about these constants, see the Win32 SDK Help.
vtLocale
An object that identifies the locale for which to return information. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the requested locale information; otherwise, Null is returned.

[C#] This method returns an object containing the requested locale information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Locale property stores a number value that indicates the default locale to be used by the DataFunctions methods to format date, time, money, and number information. For those DataFunctions methods take a locale value for a parameter, if that value is not supplied, the value of this property is used.

[Visual Basic .NET]

Example

Dim vtResult As Object
Dim lInfo As Integer
DataFunctions df = New DataFunctions()
' Set Locale to USA
vtResult = df.GetLocaleInfo(lInfo)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale


DataFunctions.GetLocaleList Method (PIA)

Use this method to retrieve a SimpleList object that contains the locales available on the computer.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetLocaleList() As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object GetLocaleList();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that references a SimpleList object that specifies the locales available on the computer.

[C#] This method returns a SimpleList object containing the locales available on the computer.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale


DataFunctions.LocalizeCurrency Method (PIA)

Use this method to retrieve a string representation of a currency value formatted to a specified locale and currency symbol.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function LocalizeCurrency(
 cyCurrency As Object,
 Optional vtLocale As Object,
 Optional vtCurrencySymbol As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object LocalizeCurrency(
 object cyCurrency,
 object vtLocale,
 object vtCurrencySymbol
);

Parameters

[Visual Basic .NET]
cyCurrency
A currency Object that contains the value to format as a string.
vtLocale
An Object that contains the locale to use when formatting the string.
vtCurrencySymbol
An Object that contains the currency symbol to use when formatting the string.
[C#]
cyCurrency
A currency object that contains the value to format as a string.
vtLocale
An object that contains the locale to use when formatting the string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.
vtCurrencySymbol
An object that contains the currency symbol to use when formatting the string. If you want the value of the CurrencySymbol property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the formatted string.

[C#] This method returns an object containing the string representation of the currency value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim oAmount As Object
' oAmount is a Currency Object
DataFunctions df = New DataFunctions()
' Set to USA
myLocale = 1033
df.Locale = myLocale
Result = df.LocalizeCurrency(oAmount, myLocale, "$")
Response.Write("USA: " & Result & "<P>")
' Set to Minbar
myLocale = 1036
df.Locale = myLocale
Result = df.LocalizeCurrency(oAmount, myLocale, "MB")
Response.Write("Minbar: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertStringToCurrency


DataFunctions.Money Method (PIA)

Use this method to convert an int that contains a monetary value to an equivalent string representation, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Money(
 lMoney As Integer,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object Money(
 int lMoney,
 object vtLocale
);

Parameters

[Visual Basic .NET]
lMoney
An Integer that contains the monetary value to convert to a string, specified in the base monetary unit of the locale used to perform the conversion. (This value is not an OLE currency type.)
vtLocale
An Object that specifies the locale to use to convert the monetary value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
lMoney
An int that contains the monetary value to convert to a string, specified in the base monetary unit of the locale used to perform the conversion. (This value is not an OLE currency type.)
vtLocale
An object that specifies the locale to use to convert the monetary value to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains a string representation of the specified monetary value; otherwise, Null is returned.

[C#] This method returns an object containing the resultant string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Integer
' Amount is an integer containing a monetary value in base currency units
' (base currency unit for US is cents)
DataFunctions df = New DataFunctions()
myLocale = 1036
df.Locale = myLocale
Result = df.Money(Amount, myLocale)
Response.Write("France: " & Result & "<P>")
myLocale = 1033
df.Locale = myLocale
Result = df.Money(Amount, myLocale)
Response.Write("USA: " & Result)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertMoneyStringToNumber


DataFunctions.Number Method (PIA)

Use this method to convert an int to its equivalent string representation, based on the default or specified locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Number(
 lNumber As Integer,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object Number(
 int lNumber,
 object vtLocale
);

Parameters

[Visual Basic .NET]
lNumber
An Integer that contains the number to convert to a string.
vtLocale
An Object that specifies the locale to use to convert the number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
lNumber
A long that contains the number to convert to a string.
vtLocale
An object that specifies the locale to use to convert the number to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the string representation of the specified number; otherwise, Null is returned.

[C#] This method returns an object containing the string representation of the specified number.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
DataFunctions df = New DataFunctions()
' Set Locale to USA
myLocale = 1033
df.Locale = myLocale
Result = df.Number(9999999.99, myLocale)
Response.Write("USA: " & Result & "<P>")

' Set Locale to France
myLocale = 1036
df.Locale = myLocale
Result = df.Number(9999999, myLocale)
Response.Write("France: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertNumberString


DataFunctions.Time Method (PIA)

Use this method to converts a System.DateTime to a string representation of the time.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Time(
 dtDate As Date,
 vtLocale As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object Time(
 System.DateTime dtDate,
 object vtLocale
);

Parameters

[Visual Basic .NET]
dtDate
A Date type that contains the time value to convert.
vtLocale
An Object that specifies the locale to use to convert the time value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
[C#]
dtDate
A System.DateTime type that contains the time value to convert.
vtLocale
An object that specifies the locale to use to convert the time value to a string. If you want the value of the Locale property of the DataFunctions object to be used, pass Type.Missing for this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a string Object that contains the string representation of the specified time value; otherwise, Null is returned.

[C#] This method returns an object containing the string representation of the specified time value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oResult is an Object, dDate is a Date
DataFunctions df = New DataFunctions()
' Set Locale to USA
myLocale = 1033
df.Locale = myLocale
oResult = df.Time(dDate, myLocale)
Response.Write("USA: " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Locale

DataFunctions.ConvertTimeString


DataFunctions.ValidateDateTime Method (PIA)

Use this method to check whether a string contains a valid date, time, or date and time, and optionally to check against a specified range.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ValidateDateTime(
 vtDate As Object,
 vtMin As Object,
 vtMax As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ValidateDateTime(
 object vtDate,
 object vtMin,
 object vtMax
);

Parameters

[Visual Basic .NET]
vtDate
An Object that contains the value to validate. This value can be a date, a time, or both.
vtMin
An Object that contains a value specifying the low end of the range. The default value for this parameter is Null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An Object that contains a value specifying the high end of the range. The default value for this parameter is Null, which means that the vtMax parameter is ignored in the range validation.
[C#]
vtDate
An object that contains the value to validate. This value can be a date, a time, or both.
vtMin
An object that contains a value specifying the low end of the range. The default value for this parameter is null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An object that contains a value specifying the high end of the range. The default value for this parameter is null, which means that the vtMax parameter is ignored in the range validation.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Boolean Object indicating whether the vtDate parameter is valid. A value of True indicates the vtDate parameter is a valid date, time, or date/time, and that it is within the given range, if any.

[C#] This method returns an object containing a bool that indicates whether the vtDate parameter is valid. A value of true indicates the vtDate parameter is a valid date, time, or date/time, and that it is within the given range, if any.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oResult is an Object, oSourceDate is an Object containing
' a string representation of a date or date and time
DataFunctions df = New DataFunctions()
oResult = df.ValidateDateTime(oSourceDate, "1/1/1900", _
  "12/31/2525")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Date

DataFunctions.DateTime

DataFunctions.Time

DataFunctions.ConvertDateString

DataFunctions.ConvertDateTimeString

DataFunctions.ConvertTimeString


DataFunctions.ValidateFloat Method (PIA)

Use this method to check whether a string contains a valid floating-point number, and to optionally check the value of the number against a specified range.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ValidateFloat(
 vtNumber As Object,
 vtMin As Object,
 vtMax As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ValidateFloat(
 object vtNumber,
 object vtMin,
 object vtMax
);

Parameters

[Visual Basic .NET]
vtNumber
An Object that contains the floating-point number to validate.
vtMin
An Object that contains a value specifying the low end of the range. The default value for this parameter is Null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An Object that contains a value specifying the high end of the range. The default value for this parameter is Null, which means that the vtMax parameter is ignored in the range validation.
[C#]
vtNumber
An object that contains the floating-point number to validate.
vtMin
An object that contains a value specifying the low end of the range. The default value for this parameter is null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An object that contains a value specifying the high end of the range. The default value for this parameter is null, which means that the vtMax parameter is ignored in the range validation.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Boolean Object that indicates whether the vtNumber parameter is valid. A value of True indicates the vtNumber parameter is a valid floating-point number, and that it is within the given range, if any.

[C#] This method returns an object containing a bool that indicates whether the vtNumber parameter is valid. A value of true indicates the vtNumber parameter is a valid floating-point number, and that it is within the given range, if any.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Object
DataFunctions df = New DataFunctions()
' Set Locale to USA
myLocale = 1033
myFloat = 12.33
df.Locale = myLocale
Result = df.ValidateFloat(myFloat, 1, 10)
Response.Write(myFloat & " Is this float between 1 & 10?: " & " " _
    & Result & "<P>")
myFloat = 2.33
Result = df.ValidateFloat(myFloat, 1, 10)
Response.Write(myFloat & " Is this float between 1 & 10?: " & " " _
    & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Float

DataFunctions.ConvertFloatString


DataFunctions.ValidateNumber Method (PIA)

Use this method to check whether a string representation of a number is valid, and optionally to check the value of the number against a specified range.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ValidateNumber(
 vtNumber As Object,
 vtMin As Object,
 vtMax As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object ValidateNumber(
 object vtNumber,
 object vtMin,
 object vtMax
);

Parameters

[Visual Basic .NET]
vtNumber
An Object that contains a string representation of a number to validate.
vtMin
An Object that contains a value specifying the low end of the range. The default value for this parameter is Null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An Object that contains a value specifying the high end of the range. The default value for the vtMax parameter is Null, which means that this parameter is ignored in the range validation.
[C#]
vtNumber
An object that contains a string representation of a number to validate.
vtMin
An object that contains a value specifying the low end of the range. The default value for this parameter is null, which means that the vtMin parameter is ignored in the range validation.
vtMax
An object that contains a value specifying the high end of the range. The default value for the vtMax parameter is null, which means that this parameter is ignored in the range validation.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Boolean Object that indicates whether the vtNumber parameter is valid. A value of True indicates the vtNumber parameter is a valid whole number, and that it is within the given range, if any.

[C#] This method returns an object containing a bool that indicates whether the vtNumber parameter is valid. A value of true indicates the vtNumber parameter is a valid whole number, and that it is within the given range, if any.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result As Object
Dim Amount As Object
DataFunctions df = New DataFunctions()
' Set Locale to USA
myLocale = 1033
df.Locale = myLocale
myInt = 24
Result = df.ValidateNumber(myInt , 1, 10)
Response.Write(myInt & " Is this integer between 1 & 10?: " & _
    " " & Result & "<P>")
myInt = 2
Result = df.ValidateNumber(myInt , 1, 10)
Response.Write(myInt & " Is this integer between 1 & 10?: " & _
    " " & Result & "<P>")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.Number

DataFunctions.ConvertNumberString


DataFunction Properties (PIA)

Properties

Property | Type | Description
Locale | Integer | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | Object | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.


DataFunctions.CurrencySymbol Property (PIA)

The CurrencySymbol property is a read/write string object that stores the currency symbol to use if the currency symbol parameter is not specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Property CurrencySymbol As Object
[C#]
using Microsoft.CommerceServer.Interop;
…
public object CurrencySymbol {get; set;}

Property Value

This property is a string that contains the currency symbol.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.ConvertStringToCurrency

DataFunctions.LocalizeCurrency


DataFunctions.Locale Property (PIA)

The Locale property is a read/write int that indicates the default locale to be used by the DataFunctions methods to format date, time, money, and number information. Where the DataFunctions methods take a locale value for a parameter, if that value is not supplied, the value to which you initialize this property is used.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Property Locale As Integer
[C#]
using Microsoft.CommerceServer.Interop;
…
public int Locale {get; set;}

Property Value

This property is an integer containing the locale.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Many of the methods implemented in the Commerce Server objects take locale identifiers. These identifiers are represented by unique hexadecimal codes.

The list of locale and language identifiers can be found in the National Language Support API. This specification can be found in the Microsoft Developer Network. (See Platform SDK, Windows Base Services, International Features).

This list is continually growing and further locale support may be added to any future product.

The following table contains a list of these hexadecimal locale identifiers.

Identifier | Locale
0x0000 | Language Neutral
0x0400 | Process Default Language
0x0401 | Arabic (Saudi Arabia)
0x0801 | Arabic (Iraq)
0x0c01 | Arabic (Egypt)
0x1001 | Arabic (Libya)
0x1401 | Arabic (Algeria)
0x1801 | Arabic (Morocco)
0x1c01 | Arabic (Tunisia)
0x2001 | Arabic (Oman)
0x2401 | Arabic (Yemen)
0x2801 | Arabic (Syria)
0x2c01 | Arabic (Jordan)
0x3001 | Arabic (Lebanon)
0x3401 | Arabic (Kuwait)
0x3801 | Arabic (U.A.E.)
0x3c01 | Arabic (Bahrain)
0x4001 | Arabic (Qatar)
0x0402 | Bulgarian
0x0403 | Catalan
0x0404 | Chinese (Taiwan)
0x0804 | Chinese (PRC)
0x0c04 | Chinese (Hong Kong)
0x1004 | Chinese (Singapore)
0x0405 | Czech
0x0406 | Danish
0x0407 | German (Standard)
0x0807 | German (Swiss)
0x0c07 | German (Austrian)
0x1007 | German (Luxembourg)
0x1407 | German (Liechtenstein)
0x0408 | Greek
0x0409 | English (United States)
0x0809 | English (United Kingdom)
0x0c09 | English (Australian)
0x1009 | English (Canadian)
0x1409 | English (New Zealand)
0x1809 | English (Ireland)
0x1c09 | English (South Africa)
0x2009 | English (Jamaica)
0x2409 | English (Caribbean)
0x2809 | English (Belize)
0x2c09 | English (Trinidad)
0x040a | Spanish (Traditional Sort)
0x080a | Spanish (Mexican)
0x0c0a | Spanish (Modern Sort)
0x100a | Spanish (Guatemala)
0x140a | Spanish (Costa Rica)
0x180a | Spanish (Panama)
0x1c0a | Spanish (Dominican Republic)
0x200a | Spanish (Venezuela)
0x240a | Spanish (Colombia)
0x280a | Spanish (Peru)
0x2c0a | Spanish (Argentina)
0x300a | Spanish (Ecuador)
0x340a | Spanish (Chile)
0x380a | Spanish (Uruguay)
0x3c0a | Spanish (Paraguay)
0x400a | Spanish (Bolivia)
0x440a | Spanish (El Salvador)
0x480a | Spanish (Honduras)
0x4c0a | Spanish (Nicaragua)
0x500a | Spanish (Puerto Rico)
0x040b | Finnish
0x040c | French (Standard)
0x080c | French (Belgian)
0x0c0c | French (Canadian)
0x100c | French (Swiss)
0x140c | French (Luxembourg)
0x040d | Hebrew
0x040e | Hungarian
0x040f | Icelandic
0x0410 | Italian (Standard)
0x0810 | Italian (Swiss)
0x0411 | Japanese
0x0412 | Korean
0x0812 | Korean (Johab)
0x0413 | Dutch (Standard)
0x0813 | Dutch (Belgian)
0x0414 | Norwegian (Bokmal)
0x0814 | Norwegian (Nynorsk)
0x0415 | Polish
0x0416 | Portuguese (Brazilian)
0x0816 | Portuguese (Portugal)
0x0418 | Romanian
0x0419 | Russian
0x041a | Croatian
0x081a | Serbian (Latin)
0x0c1a | Serbian (Cyrillic)
0x041b | Slovak
0x041c | Albanian
0x041d | Swedish
0x081d | Swedish (Finland)
0x041e | Thai
0x041f | Turkish
0x0421 | Indonesian
0x0422 | Ukrainian
0x0423 | Belarusian
0x0424 | Slovenian
0x0425 | Estonian
0x0426 | Latvian
0x0427 | Lithuanian
0x0429 | Farsi
0x042a | Vietnamese
0x042d | Basque
0x0436 | Afrikaans
0x0438 | Faeroese

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

DataFunctions Class

DataFunctions.GetLocaleList

Table of Language Culture Names, Codes, and ISO Values


DictionaryXMLTransforms Class (PIA)

Use this object to transform data from a Dictionary object into Extensible Markup Language (XML) and vice versa, using a specified XML Data Reduced (XDR) schema.

Important

  • The DictionaryXMLTransforms object processes only dictionary keys with names that would be allowable as XML node names. Allowable characters include A-Z and the underscore "_" character. Disallowed characters include"*", "\", etc., and foreign-language characters.
  • Every dictionary key value must be URL-encoded.

Methods

Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object.

Remarks

The example code that calls this method can be found in the Payment.asp and _recvpo.asp files. An example of the use of an XML schema can be found in the POSchema.xml file in the Solution Sites.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_dictxmlxfrms (in cs_dictxmlxfrms.dll)

See Also

General Purpose Objects

Dictionary Object


DictionaryXMLTransforms Methods (PIA)

Methods

Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object.


DictionaryXMLTransforms.GenerateSampleXMLInstanceFromDictionary Method (PIA)

Use this method to generate an XML Data Reduced (XDR) schema. This method produces an XML instance based on the specified Dictionary object. You can then import this XML instance into a tool (such as the BizTalk Editor) that can construct a schema based on a given instance.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GenerateSampleXMLInstanceFromDictionary(
  Dictionary As IDictionary,
  ElementName As String,
  bIgnoreUnderScore As Boolean
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
using MSXMLLib;                               //For IXMLDOMNode
…
public IXMLDOMNode GenerateSampleXMLInstanceFromDictionary(
  IDictionary Dictionary,
  string ElementName,
  bool bIgnoreUnderScore
);

Parameters

[Visual Basic .NET]
Dictionary
Interface to a Dictionary object that contains the data to convert into XML.
ElementName
A String that contains the element name.
bIgnoreUnderScore
A Boolean that that specifies whether to ignore dictionary keys with leading underscores in the dictionary. This value should generally be set to True.
[C#]
Dictionary
An IDictionary interface to a Dictionary object that contains the data to convert into XML.
ElementName
A string that contains the element name.
bIgnoreUnderScore
A bool that specifies whether to ignore dictionary keys with leading underscores in the dictionary. This value should generally be set to true.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference used to return the XML instance.

[C#] This method returns an IXMLDOMNode interface of the newly created XMLDOMNode object containing the XML instance.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sElement is a string
' oXMLDOMNode is a XMLDOMNode object
oXMLDOMNode = _
oDictionaryXMLTransforms.GenerateSampleXMLInstanceFromDictionary(dDict, _
    sElement, True)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_dictxmlxfrms (in cs_dictxmlxfrms.dll)

See Also

DictionaryXMLTransforms Class


DictionaryXMLTransforms.GenerateXMLForDictionaryUsingSchema Method (PIA)

Use this method to extract an XML instance from the specified Dictionary object that conforms to the specified schema.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GenerateXMLForDictionaryUsingSchema(
  Dictionary As IDictionary,
  xmlSchema As IXMLDOMObject
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
using MSXMLLib;                        //For IXMLDOMNode & IXMLDOMDocument
…
public IXMLDOMNode GenerateXMLForDictionaryUsingSchema(
  IDictionary Dictionary,
  IXMLDOMDocument xmlSchema
);

Parameters

[Visual Basic .NET]
Dictionary
Interface to a Dictionary object that contains the data to be converted.
xmlSchema
An XMLDOMDocument object that contains the XML schema.
[C#]
Dictionary
An IDictionary interface to a Dictionary object that contains the information to be converted.
xmlSchema
An IXMLDOMDocument interface to an XMLDOMDocument object that contains the XML schema.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an XMLDOMDocument object that contains the XML schema.

[C#] This method returns an IXMLDOMNode interface to an XMLDOMNode object that contains the XML instance.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object
' oXMLDOMDocument is a XMLDOMDocument object
' oXMLDOMNode is a XMLDOMNode object
oXMLDOMNode = _
oDictionaryXMLTransforms.GenerateXMLForDictionaryUsingSchema(dDict, _
    oXMLDOMDocument)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_dictxmlxfrms (in cs_dictxmlxfrms.dll)

See Also

DictionaryXMLTransforms Class


DictionaryXMLTransforms.GetXMLFromFile Method (PIA)

Use this method to generate an XML Document Object Model (DOM) document from the specified file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetXMLFromFile(
  sFileName As String
) As IXMLDOMObject
[C#]
using Microsoft.CommerceServer.Interop;
using MSXMLLib;                        //For IXMLDOMDocument
…
public IXMLDOMDocument GetXMLFromFile(
  string sFileName
);

Parameters

[Visual Basic .NET]
sFileName
A String that contains the name of the file to convert.
[C#]
sFileName
A string that contains the name of the file to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to an XMLDOMDocument object containing the converted file data.

[C#] This method returns an IXMLDOMDocument interface of the XMLDOMDocument object, which will contain the converted file data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sMyFileName.txt is a string
' oXMLDOMDocument is a XMLDOMDocument object
oXMLDOMDocument = _
    oDictionaryXMLTransforms.GetXMLFromFile("sMyFileName.txt")

Remarks

This method does not return an error when the file specified by sFileName is an .exe file, a text file, an invalid XML file, or a nonexistent file. The error type can be found only by viewing the ParseError property of the DOMDocument object.

[C#] The returned interface is valid only if the method completes successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_dictxmlxfrms (in cs_dictxmlxfrms.dll)

See Also

DictionaryXMLTransforms Class


DictionaryXMLTransforms.ReconstructDictionaryFromXML Method (PIA)

Use this method to transform the specified XML instance (which must comply with the specified schema) into a Dictionary object. This method performs the inverse operation of the GenerateXMLForDictionaryUsingSchema method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function ReconstructDictionaryFromXML(
  szDictionaryXML As String,
  xmlSchema As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop;
using MSXMLLib;                        //For IXMLDOMDocument
…
public IDictionary ReconstructDictionaryFromXML(
  string szDictionaryXML,
  IXMLDOMDocument xmlSchema
);

Parameters

[Visual Basic .NET]
szDictionaryXML
A String that contains the XML instance.
xmlSchema
An object reference to a XMLDOMDocument object that contains the XML schema.
[C#]
szDictionaryXML
A string that contains the XML instance.
xmlSchema
An IXMLDOMDocument interface to an XMLDOMDocument object that contains the XML schema used in the conversion.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to a Dictionary object that contains the converted data.

[C#] This method returns an IDictionary interface of the reconstructed Dictionary object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sMyXMLInstance is a string
' oXMLDOMDocument is a XMLDOMDocument object
dDict = _
oDictionaryXMLTransforms.ReconstructDictionaryFromXML(sMyXMLInstance, _
    oXMLDOMDocument)

Remarks

[C#] The returned interface is valid only if the method completes successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_dictxmlxfrms (in cs_dictxmlxfrms.dll)

See Also

DictionaryXMLTransforms Class


MessageManager Class (PIA)

Use this object to store error messages in the multiple languages that Order Processing pipeline (OPP) components use to describe error conditions generated during order processing.

Methods

Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.

Properties

Property | Type | Description
defaultLanguage | String | Specifies the default message set for the MessageManager object. This property is read/write.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)


MessageManager Methods (PIA)

Methods

Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.


MessageManager.AddLanguage Method (PIA)

Use this method to add a message set to the MessageManager object, and associate that message set with a locale. In subsequent calls to MessageManager object methods, the caller needs to identify the message set name, not the locale.

Any number of message sets can be associated with a single locale.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub AddLanguage(
 bstrLanguage As String,
 Locale As Integer
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void AddLanguage(
 string bstrLanguage,
 int Locale
);

Parameters

[Visual Basic .NET]
bstrLanguage
A String that contains the name for the message set to add to the MessageManager object.
Locale
An Integer that uniquely identifies the locale to associate with the added message set.
[C#]
bstrLanguage
A string that contains the name for the message set to add to the MessageManager object.
Locale
An int that uniquely identifies the locale to associate with the added message set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddLanguage("usa", 1033)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

MessageManager Class

MessageManager.DefaultLanguage

DataFunctions.Locale

MessageManager.GetMessage


MessageManager.AddMessage Method (PIA)

Use this method to add a message to the MessageManager object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub AddMessage(
 bstrName As String,
 bstrMessage As String,
 vtLanguage As Object
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void AddMessage(
 string bstrName,
 string bstrMessage,
 object vtLanguage
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the message name constant, which is a string that identifies the message to add. For a list of common messages and their constant names, see the Remarks section.
bstrMessage
A String that contains the text of the message to add.
vtLanguage
An Object that contains the language name with which to associate the message. This value, if specified, must be a language name added through a previous call to the AddLanguage method. If this parameter is not supplied, the language specified in the DefaultLanguage property of the MessageManager object is used.
[C#]
bstrName
A string that contains the message name constant, which is a string that identifies the message to add. For a list of common messages and their constant names, see the Remarks section.
bstrMessage
A string that contains the text of the message to add.
vtLanguage
An object that contains the language name with which to associate the message. This value, if specified, must be a language name added through a previous call to the AddLanguage method. If this parameter is not supplied (Type.Missing), or is null, the language specified in the DefaultLanguage property of the MessageManager object is used.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The following table lists the messages that are used by the default implementation of the Order Processing pipeline (OPP), showing the message name constant expected by the OPP components that use these messages.

Message name constant | Used by OPP component | Added to this collection under this condition
pur_badplacedprice | RequiredItemAdjustPrice | _Basket_Errors when the price of an item does not correspond to the price contained in the order form.
pur_badhandling | RequiredHandling | _Purchase_Errors when the handling cost for an order cannot be computed.
pur_badpayment | RequiredPayment | _Purchase_Errors when authentication code (_payment_auth_code) is not set.
pur_badshipping | RequiredShipping | _Purchase_Errors when the shipping for an order cannot be computed.
pur_badsku | RequiredProdInfo | _Basket_Errors when a stockkeeping unit (SKU) in the order form references an item that is not contained in the inventory for the site.
pur_badtax | RequiredTax | _Purchase_Errors when the tax on a purchase cannot be computed.
pur_badverify | RequiredTotal | _Purchase_Errors when the data stored by the ProcessVerifyWith method does not match the original data in the order form.
pur_noitems | RequiredOrderCheck | _Purchase_Errors when there are no items in the order form.
pur_out_of_stock | FlagInventory, LocalInventory | _Purchase_Errors when an item referenced in the order form is out of stock.
[Visual Basic .NET]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddMessage("pur_out_of_stock", _
    "At least one item is out of stock.")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

MessageManager Class

MessageManager.DefaultLanguage

MessageManager.GetMessage


MessageManager.GetLocale Method (PIA)

Use this method to return a number that identifies the locale for the specified message set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetLocale(
 vtLanguage As Object
) As Integer
[C#]
using Microsoft.CommerceServer.Interop;
…
public int GetLocale(
 object vtLanguage
);

Parameters

[Visual Basic .NET]
vtLanguage
An Object that contains the name of the message set for which you want to retrieve the locale. This message set must have been added to the MessageManager object through a previous call to the AddLanguage method.
[C#]
vtLanguage
An object that contains the name of the message set for which you want to retrieve the locale. This message set must have been added to the MessageManager object through a previous call to the AddLanguage method.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer used to identify the locale for the specified message set.

[C#] This method returns an int used to identify the locale for the specified message set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Like the GetMessage method, the GetLocale method is usually not called from within a site. Instead, it is used by the pipeline component to retrieve the locale for a message that describes an error that the component has encountered.

[Visual Basic .NET]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetLocale("us")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

MessageManager Class

MessageManager.GetMessage

MessageManager.AddLanguage


MessageManager.GetMessage Method (PIA)

Use this method to return the text of the specified message.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function GetMessage(
 bstrName As String,
 vtLanguage As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop;
…
public string GetMessage(
 string bstrName,
 object vtLanguage
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the message constant name of the message to return. This is the name associated with this message when it was added to the MessageManager object through a call to the AddMessage method.
vtLanguage
An Object that specifies the name of the message set to which the message text belongs. This string specifies a message set that was added to the MessageManager object through a previous call to the AddLanguage method. If this parameter is not specified, or is Null, the message is returned for the message set identified by the DefaultLanguage property of the MessageManager object.
[C#]
bstrName
A string that contains the message constant name of the message to return. This is the name associated with this message when it was added to the MessageManager object through a call to the AddMessage method.
vtLanguage
An object that specifies the name of the message set to which the message text belongs. This string specifies a message set that was added to the MessageManager object through a previous call to the AddLanguage method. If this parameter is not specified (Type.Missing), or is null, the message is returned for the message set identified by the DefaultLanguage property of the MessageManager object.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the text of the specified error message.

[C#] This method returns a string containing the text of the specified message.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The GetMessage method is seldom called from within a site. Instead, it is used by pipeline components to retrieve messages that describe errors that have occurred.

[Visual Basic .NET]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetMessage("pur_out_of_stock", "us")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

MessageManager Class

MessageManager.AddLanguage

MessageManager.GetLocale


MessageManager Properties (PIA)

Properties

Property | Type | Description
defaultLanguage | String | Specifies the default message set for the MessageManager object. This property is read/write.


MessageManager.defaultLanguage Property (PIA)

The defaultLanguage property is a String that is used to specify the default message set for the MessageManager object. When you use the GetMessage method, or use the AddMessage method to add messages to the MessageManager object, without specifying a message set for those messages, then the messages are associated with the message set specified in this property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Property defaultLanguage As String
[C#]
using Microsoft.CommerceServer.Interop;
…
public string defaultLanguage {get; set; }

Parameters

[C#]
defaultLanguage
When setting the property, a string that contains the default language.
When getting the property, a string used to return the default language.

Property Value

[C#] This property is a string containing the default language.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsasphelplib (in mscsasphelplib.dll)

See Also

MessageManager Class

MessageManager.GetLocale


MtsPipeline Class (PIA)

Use this object to run a non-transacted Microsoft Commerce Server 2002 pipeline. The pipeline may be an Order Processing pipeline (OPP).

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The MtsPipeline object is registered under Microsoft Transaction Server (MTS) as "transactions not supported." Use this pipeline where transactions are not needed. For more information about transactions and pipelines, see Pipeline Basics.

The MtsPipeline is usually created on each page in which it is used.

The MtsPipeline is not a pooled pipeline. For more information about pooled pipelines, see About Pooled Pipelines.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)


MtsPipeline Methods (PIA)

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


MtsPipeline.Execute Method (PIA)

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Execute(
  lMode As Integer,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Integer
) As Integer
[C#]
using Microsoft.CommerceServer.Interop;
…
public int Execute(
  int lMode,
  object pdispOrder,
  object pdispContext,
  int lFlags
);

Parameters

[Visual Basic .NET]
lMode
An Integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 3.0 Commerce Edition sites. In Site Server 3.0 Commerce Edition and later, the mode is set by loading an appropriately configured pipeline with the LoadPipe method. Use a value of one (1). A value of zero (0) prevents any stages from running.
pdispOrder
A reference to a Dictionary object, usually an OrderForm object. The Order dictionary that will be used by the pipeline.
pdispContext
A reference to a Dictionary object. The Context dictionary that will be used by the pipeline.
lFlags
An unused Integer parameter. Must be set to zero (0).
[C#]
Mode
An int indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 3.0 Commerce Edition sites. In Site Server 3.0 Commerce Edition and later, the mode is set by loading an appropriately configured pipeline with the LoadPipe method. Use a value of one (1). A value of zero (0) prevents any stages from running.
pdispOrder
An object typically containing an OrderForm object that will be used by the pipeline.
pdispContext
A object containing a Dictionary object.
lFlags
An unused int parameter. Must be set to zero (0).

Return Values

[Visual Basic .NET]

If this method completes successfully, it returns an Integer indicating whether there were warnings or errors detected by components in the pipeline. See the Exceptions section for more details.

In addition, the method returns one of the following three values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.
[C#]

This method returns an int value indicating whether or not it completed successfully.

The int value returned is set to one of the following three values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] The returned int is valid only if the method completes successfully.

[Visual Basic .NET]

Example

' pMtsPipeline is a Commerce.MtsPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMtsPipeline.Execute(1, dOrder, dContext, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsPipeline Class

MtsPipeline.LoadPipe

MtsPipeline.SetLogFile

PooledPipeline Class


MtsPipeline.LoadPipe Method (PIA)

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub LoadPipe(
  pszFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void LoadPipe(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the pipeline configuration file name.
[C#]
PszFileName
A string containing the pipeline configuration file name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file designated for transactions (for use in the MtsTxPipeline object).

[Visual Basic .NET]

Example

' pMtsPipeline is a Commerce.MtsPipeline object

errVal = pMtsPipeline.Load("CustomShip.pcf")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsPipeline Class

MtsPipeline.Execute

MtsPipeline.SetLogFile

PooledPipeline Class


MtsPipeline.SetLogFile Method (PIA)

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment: it degrades performance and may compromise the security of credit card numbers in non-set transactions.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetLogFile(
  pszFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void SetLogFile(
 string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the name of the file in which to log events.
[C#]
pszFileName
A string containing the name of the file in which to log events.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList read and write operations.

Calling the method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline. The SetLogFile method is exposed on the OrderGroup object as the LogFile property and should be set before calling the RunPipe method.

[Visual Basic .NET]

Example

' pMtsPipeline is a Commerce.MtsPipeline object

errVal = pMtsPipeline.SetLogFile("CustomShipping.log")

' pOrderGroup is an OrderGroup object

pOrderGroup.LogFile = "CustomShipping.log"

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsPipeline Class

MtsPipeline.Execute

MtsPipeline.LoadPipe

PooledPipeline Class


MtsTxPipeline Class (PIA)

Use this object to run a transacted Microsoft Commerce Server 2002 pipeline configuration. The pipeline may be an Order Processing pipeline (OPP).

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The MtsTxPipeline is usually created on each page in which it is used.

The MtsTxPipeline object is registered under Microsoft Transaction Server (MTS) as "transactions required." This object holds a transaction that spans all components in the pipeline configuration. For more information about transactions and pipelines, see Pipeline Basics.

When used with a database, the MtsTxPipeline object requires an ODBC-compliant database that supports MTS.

The Microsoft Distributed Transaction Coordinator (MSDTC) service must be running in order to use the MtsTxPipeline object.

To verify that the Distributed Transaction Coordinator service is running

  1. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  2. Scroll to Distributed Transaction Coordinator and verify that the Status is Started.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)


MtsTxPipeline Methods (PIA)

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

See Also

MtsTxPipeline Object


MtsTxPipeline.Execute Method (PIA)

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Execute(
  lMode As Integer,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Integer
) As Integer
[C#]
using Microsoft.CommerceServer.Interop;
…
public int Execute(
  int lMode,
  object pdispOrder,
  object pdispContext,
  int lFlags
);

Parameters

[Visual Basic .NET]
lMode
An Integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 3.0 Commerce Edition sites. In Site Server 3.0 Commerce Edition and later, the mode is set by loading an appropriately configured pipeline with LoadPipe method. Use a value of one (1). A value of zero (0) prevents any stages from running.
pdispOrder
A reference to a Dictionary object. The Order dictionary that will be used by the pipeline, usually an OrderForm object.
pdispContext
A reference to a Dictionary object. The Context dictionary that will be used by the pipeline.
lFlags
An unused Integer parameter. Must be set to zero (0).
[C#]
lMode
An int indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 3.0 Commerce Edition sites. In Site Server 3.0 Commerce Edition and later, the mode is set by loading an appropriately configured pipeline with LoadPipe method. Use a value of one (1). A value of zero (0) prevents any stages from running.
pdispOrder
An object typically containing an OrderForm object that will be used by the pipeline.
pdispContext
A object containing a Dictionary object.
lFlags
An unused int parameter. Must be set to zero (0).

Return Values

[Visual Basic .NET]

If this method completes successfully, it returns an Integer indicating whether there were warnings or errors detected by components in the pipeline. See the Exceptions section for more details.

In addition, the method returns one of the following three values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.
[C#]

This method returns an int value indicating whether or not it completed successfully. For more details, see the Exceptions section.

The int value returned is set to one of the following three values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMtsTxPipeline.Execute(1, dOrder, dContext, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsTxPipeline Object

MtsTxPipeline.LoadPipe

MtsTxPipeline.SetLogFile


MtsTxPipeline.LoadPipe (PIA)

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub LoadPipe(
  pszFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void LoadPipe(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the pipeline configuration file (.pcf) name.
[C#]
pszFileName
A string containing the pipeline configuration file (.pcf) name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a configuration file designated for non-transacted pipelines.

[Visual Basic .NET]

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.LoadPipe("CustomShip.pcf")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsTxPipeline Object

MtsTxPipeline.Execute

MtsTxPipeline.SetLogFile


MtsTxPipeline.SetLogFile Method (PIA)

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment: it degrades performance and may compromise the security of credit card numbers in non-set transactions.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetLogFile(
  pszFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop;
…
public void SetLogFile(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the name of the file in which to log events.
[C#]
pszFileName
A string containing the name of the file in which to log events.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline. The SetLogFile method is also exposed on the OrderGroup object as the LogFile property and should be called before calling its RunPipe method.

[Visual Basic .NET]

Example

' pMtsPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.SetLogFile("CustomShipping.log")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

MtsTxPipeline Object

MtsTxPipeline.LoadPipe

MtsTxPipeline.Execute


OrderPipeline Class (PIA)

Use this object to run a Microsoft Commerce Server 2002 Content Selection pipeline. Order Processing pipelines (OPP) should generally use a PooledPipeline, PooledTxPipeline, MtxPipeline, or MtsTxPipeline object.

Note

  • The OrderPipeline object should be used in Content Selection pipelines because Content Selection pipelines do not require transactions and because the OrderPipeline is fully re-entrant by multiple threads. Other objects, such as MtsPipeline and MtsTxPipeline, must be used once, destroyed, and re-created by each thread due to the rules of COM+ transactions.

Methods

Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The OrderPipeline object creates and executes an Order Processing pipeline (OPP). The OrderPipeline object is not registered under Microsoft Transaction Server (MTS).

The OrderPipeline object is usually created in the Global.asax file and put into an application collection.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .Net Server family

Assembly: pipelinelib (in pipelinelib.dll)


OrderPipeline Methods (PIA)

Methods

Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


OrderPipeline.LoadPipe Method (PIA)

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub LoadPipe(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void LoadPipe(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the pipeline configuration file name.
[C#]
pszFileName
A string containing the pipeline configuration file name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file designated for transactions (for use with the MtsTxPipeline or PooledTxPipeline objects).

[Visual Basic .NET]

Example

' pOrdPipeline is a Commerce.OrderPipeline object
errVal = pOrdPipeline.Load("CustomShip.pcf")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .Net Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

OrderPipeline Class

OrderPipeline.OrderExecute

OrderPipeline.SetLogFile


OrderPipeline.OrderExecute Method (PIA)

Use this method to run the stages in the pipeline configuration file that was previously specified by the LoadPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function OrderExecute(
  lMode As Integer,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Integer
) As Integer
[C#]

using Microsoft.CommerceServer.Interop;

�

int OrderExecute(
  int lMode,
  object pdispOrder,
  object pdispContext,
  int lFlags
);

Parameters

[Visual Basic .NET]
lMode
An Integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites.
pdispOrder
A reference to a Dictionary object, usually an OrderForm object. This is the Order dictionary that will be used by the pipeline.
pdispContext
A reference to a Dictionary object. This is the Context dictionary that will be used by the pipeline.
lFlags
An unused Integer parameter. Must be set to zero (0).
[C#]
lMode
An int indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 3.0 Commerce Edition sites. Commerce Server 2002 sites should set this parameter to one (1).

pdispOrder

An object containing a Dictionary object (typically an OrderForm object). This is the Order dictionary that will be used by the pipeline.

pdispContext

An object typically containing a Dictionary object. This is the Context dictionary that will be used by the pipeline.

lFlags

An unused int parameter. Must be set to zero (0).

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer indicating whether there were warnings or errors detected by components in the pipeline. See the Exceptions section for more details.

[C#]

This method returns an int value indicating whether or not it completed successfully.

The int value returned is set to one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Exceptions

[Visual Basic .NET]

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

In addition, the method returns one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

[C#] This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The lMode parameter is included only for backward compatibility with sites created in Site Server 2.0. In Site Server 3.0 Commerce Edition and later, the selection of pipeline stages is made by loading an appropriate pipeline configuration file with the LoadPipe method. Commerce Server 2002 applications should use the value one (1) for this parameter; zero (0) will cause no stages to run.

[Visual Basic .NET]

Example

' pOrdPipeline is a Commerce.OrderPipeline object
' lMode is a Long
' dOrder and dContext are Commerce.Dictionary objects
errVal = pOrdPipeline.Execute(l, dOrder, dContext, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .Net Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

OrderPipeline Class

OrderPipeline.LoadPipe

OrderPipeline.SetLogFile


OrderPipeline.SetLogFile Method (PIA)

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment. It degrades performance and can compromise the security of credit card numbers in non-set transactions.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetLogFile(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void SetLogFile(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the name of the file in which to log events.
[C#]
pszFileName
A string containing the name of the file in which to log events.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

[Visual Basic .NET]

Example

' pOrdPipeline is a Commerce.OrderPipeline object
errVal = pOrdPipeline.SetLogFile("CustomShipping.log")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .Net Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

OrderPipeline Class

OrderPipeline.LoadPipe

OrderPipeline.OrderExecute


PooledPipeline Class (PIA)

Use this object to run a Microsoft Commerce Server 2002 pipeline configuration file. The pipeline may be an Order Processing pipeline (OPP).

The PooledPipeline object uses COM+ object pooling to greatly increase the loading speed of pipelines, where the contained pipeline components support object pooling. For more information about pooled pipelines, see Pooled Pipelines.

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The PooledPipeline should be created on each Active Server Pages (ASP) page in which it is used rather than being held in Application or Sessions scope.

In general, use the PooledPipeline object only in production Web sites; use the MtsPipeline object when developing the site. If you use the PooledPipeline object during development, you will need to stop and restart Internet Information Services (IIS) to force the .pcf files to be re-read when you change them.

When you create custom poolable pipeline components, you must add the Component Object Model (COM) category, CATID_POOLABLE, to the component to make it poolable.

The PooledPipeline object is registered under COM+ as "transactions not supported." Use this pipeline where transactions are not needed. For more information about transactions and pipelines, see Pipeline Basics.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)


PooledPipeline Methods (PIA)

Methods

Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


PooledPipeline.Execute Method (PIA)

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Execute(
  lMode As Integer,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Integer
) As Integer
[C#]

using Microsoft.CommerceServer.Interop;

�

public int Execute(
  int lMode,
  object pdispOrder,
  object pdispContext,
  int lFlags
);

Parameters

[Visual Basic .NET]
lMode
An Integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with previous versions of Commerce Server. Specify 1 for this parameter.
pdispOrder
A reference to a business Object (typically a Dictionary object or an OrderForm object).
pdispContext
A reference to a secondary business Object (typically a context dictionary).
lFlags
An unused Integer parameter. Must be set to zero (0).
[C#]
lMode
A int indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with previous versions of Commerce Server. Specify 1 for this parameter.
pdispOrder
An object containing a Dictionary object (typically an OrderForm object). The Order dictionary will be used by the pipeline.

pdispContext

An object typically containing a Dictionary object. The Context dictionary will be used by the pipeline.

lFlags
An unused int parameter. Must be set to zero (0).

Return Values

[Visual Basic .NET]

If this method completes successfully, it returns an Integer indicating whether warnings or errors were detected by components in the pipeline. See the Exceptions section for more details.

In addition, the method returns one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.
[C#]

This method returns an int value indicating whether it completed successfully. See the Exceptions section for more details.

The int value returned is set to one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' dOrder, dContext are Commerce.Dictionary objects
' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.Execute(1, dOrder, dContext, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledPipeline Class

PooledPipeline.LoadPipe

PooledPipeline.SetLogFile


PooledPipeline.LoadPipe Method (PIA)

Use this method to load a pipeline configuration file (.pcf) into a pipeline.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub LoadPipe(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void LoadPipe(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the pipeline configuration file (.pcf) name.
[C#]
pszFileName
A string containing the pipeline configuration file (.pcf) name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file that is designated to be used for transactions (for use in MtsTxPipeline or PooledTxPipeline).

[Visual Basic .NET]

Example

' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.LoadPipe("CustomShip.pcf")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledPipeline Class

PooledPipeline.Execute

PooledPipeline.SetLogFile


PooledPipeline.SetLogFile Method (PIA)

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be enabled in a production environment. It degrades performance and compromises the security of credit card numbers in non-set transactions. The file system must be configured to allow the process running the pipeline to have write access to the specified path.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetLogFile(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void SetLogFile(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the name of the file in which to log events.
[C#]
pszFileName
A string containing the name of the file in which to log events.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values that each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline.

[Visual Basic .NET]

Example

' pPooledPipeline is a Commerce.PooledPipeline object

errVal = pPooledPipeline.SetLogFile("CustomShipping.log")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledPipeline Class

PooledPipeline.Execute

PooledPipeline.LoadPipe


PooledTxPipeline Class (PIA)

Use this object to run a Microsoft Commerce Server 2000 pipeline. The pipeline may be an Order Processing pipeline (OPP). Use in place of the PooledPipeline object where you need transactions.

The PooledTxPipeline object uses COM+ object pooling to greatly increase the loading speed of pipelines. For more information about pooled pipelines, see Pooled Pipelines.

Methods

Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The PooledTxPipeline object is registered under COM+ as "transactions required." Use this pipeline where transactions are needed. For more information about transactions and pipelines, see Pipeline Basics.

The Microsoft Distributed Transaction Coordinator (MSDTC) service must be running in order to use the PooledTxPipeline object.

To verify that the Distributed Transaction Coordinator service is running

  1. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  2. Scroll to Distributed Transaction Coordinator and verify that the Status is Started.

In general, use the PooledTxPipeline object only in production Web sites; use the MtsPipeline object when developing the site. If you use the PooledTxPipeline object during development, you will need to stop and restart Internet Information Services (IIS) to force the .pcf files to be re-read when you change them.

The PooledPipeline object should be created on each ASP page in which it is used rather than being held in Application or Session scope.

When you create custom poolable pipeline components, you must add the Component Object Model (COM) category, CATID_POOLABLE, to the component to make it poolable.

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)


PooledTxPipeline Methods (PIA)

Methods

Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


PooledTxPipeline.Execute Method (PIA)

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Function Execute(
  lMode As Integer,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Integer
) As Integer
[C#]

using Microsoft.CommerceServer.Interop;

�

public int Execute(
  int lMode,
  object pdispOrder,
  object pdispContext,
  int lFlags
);

Parameters

[Visual Basic .NET]
lMode
An Integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with previous versions of Commerce Server. Specify 1 (one) for this parameter.
pdispOrder
A reference to a business Object (typically a Dictionary object or an OrderForm object). The Order dictionary that will be used by the pipeline.
pdispContext
A reference to a secondary business Object (typically a context dictionary object).
lFlags
An unused Integer parameter. Must be set to zero (0).
[C#]
lMode
A int integer indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with previous versions of Commerce Server. Specify 1 (one) for this parameter.
pdispOrder
An object containing a Dictionary object (typically an OrderForm object). The Order dictionary that will be used by the pipeline.

pdispContext

An object typically containing a Dictionary object. The Context dictionary that will be used by the pipeline.

lFlags
An unused int parameter. Must be set to zero (0).

Return Values

[Visual Basic .NET]

If this method completes successfully, it returns an Integer value indicating whether components in the pipeline detected warnings or errors. See the Exceptions section for more details.

In addition, the method returns one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.
[C#]

This method returns an int value indicating whether or not it completed successfully. See the Exceptions section for more details.

The int value returned is set to one of the following values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' dOrder, dContext are Commerce.Dictionary objects
' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.Execute(1, dOrder, dContext, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledTxPipeline Class

PooledTxPipeline.LoadPipe

PooledTxPipeline.SetLogFile


PooledTxPipeline.LoadPipe Method (PIA)

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub LoadPipe(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void LoadPipe(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the pipeline configuration file (.pcf) name.
[C#]
pszFileName
A string containing the pipeline configuration file (.pcf) name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file that is not designated to be used for transactions (for use in MtsPipeline or PooledPipeline).

[Visual Basic .NET]

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.LoadPipe("CustomShip.pcf")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledTxPipeline Class

PooledTxPipeline.Execute

PooledTxPipeline.SetLogFile


PooledTxPipeline.SetLogFile Method (PIA)

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be enabled in a production environment. It degrades performance and could compromise the security of credit card numbers in non-set transactions. File systems must be configured to allow the process running the pipeline to have write access to the specified path.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop
…
Public Sub SetLogFile(
  pszFileName As String
)
[C#]

using Microsoft.CommerceServer.Interop;

�

public void SetLogFile(
  string pszFileName
);

Parameters

[Visual Basic .NET]
pszFileName
A String containing the name of the file in which to log events.
[C#]
pszFileName
A string containing the name of the file in which to log events.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values that each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

The SetLogFile method should be called immediately before executing a pipeline.

Calling this method with an empty string turns off logging.

[Visual Basic .NET]

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.SetLogFile("CustomShipping.log")

Requirements

Namespace: Microsoft.CommerceServer.Interop

Platforms: Windows 2000, Windows .NET Server family

Assembly: pipelinelib (in pipelinelib.dll)

See Also

PooledTxPipeline Class

PooledTxPipeline.Execute

PooledTxPipeline.LoadPipe


Microsoft.CommerceServer.Interop.Caching

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop namespace.

Class | Description
CacheManager | Provides generic caching services.
ContentList | Contains a representation of each content item eligible for a given request for content. Also provides services to Content Selection Framework (CSF) components such as filtering and sorting.
ContentListFactory | Allows creation of ContentList objects, and stores data shared by those objects.
ContentListSchema | Allows manipulation of the schema for a ContentListFactory object.
LRUCache | Provides a least recently used (LRU) cache for the CacheManager object. It stores a limited number of entries and sorts them according to the least recently used element.
RowCollection | Allows enumeration of the rows returned from the ActiveRows and AllRows properties, and the Search method, of a ContentList object, and from the AllRows property and the Search method of a ContentListFactory object.


CacheManager Class (PIA)

Use this object to establish and use a collection of data caches. Each data cache is either a Dictionary object or an LRUCache object. You can specify which one you would like to use by setting the CacheObjectProgID property.

Methods

Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.

Properties

Property | Type | Description
AppUrl | String | Stores the full Uniform Resource Locator (URL) of the application. This property is read/write.
CacheObjectProgId | String | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | Object | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | String | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | Integer | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | Integer | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | Object | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | String | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)


CacheManager Methods (PIA)

Methods

Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.


CacheManager.GetCache Method (PIA)

Use this method to retrieve either the Dictionary or LRUCache object for the specified cache name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function GetCache(
 bstrName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public object GetCache (
 string bstrName
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of the cache to be retrieved.
[C#]
bstrName
A string that contains the name of the cache to be retrieved.

Return Values

The data cache Dictionary object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following COM exception has a special meaning in this method:

S_FALSE
An index already exists on the column.

Remarks

This method is designed to be lightweight and fast. It is commonly called several times on any given ASP page.

The first time the GetCache method or the RefreshCache method is called, the data cache object is created and the configured CacheLoader component is invoked to populate it with data. Subsequent calls to the GetCache method may return the same cache object or a new cache object that is created when the cache is refreshed.

If the first call to the GetCache method for a particular cache results in a failed refresh, then the CacheManager object will not immediately retry a refresh when more GetCache method calls are made for the same cache. This is to avoid recurring timeouts that might bring down a system, for example if a database connection becomes temporarily unavailable. In this failure scenario, subsequent calls to the GetCache method will return an error indicating that the cache load failed and will not be retried until the refresh interval has elapsed or until the RefreshCache method is explicitly called.

After a cache has successfully been created, if a subsequent refresh of the cache fails, then the existing cache object is returned until a later refresh succeeds. The CacheManager object provides high availability to cache data at the expense of ensuring the cached data is up-to-date.

[Visual Basic .NET]

Example

'oMyCache is an object
'strMyCacheName is a String containing the name of an existing cache.
oMyCache = myCacheManager.GetCache(strMyCacheName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.RefreshCache Method (PIA)

Use this method to force an immediate refresh of a data cache Dictionary object. This method is synchronous, not returning to the caller until the specified data cache is refreshed.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub RefreshCache(
 bstrName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void RefreshCache(
 string bstrName
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of the data cache to be refreshed.
[C#]
bstrName
A string that contains the name of the data cache to be refreshed.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the specified cache is in the middle of being refreshed when the RefreshCache method is invoked, presumably by the background timer thread or a different foreground thread, this method will wait until the refresh operation is complete and then return. It will not result in another refresh operation.

[Visual Basic .NET]

Example

'strMyCacheName is a String containing the name of an existing cache.
myCacheManager.RefreshCache(strMyCacheName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager Properties (PIA)

Properties

Property | Type | Description
AppUrl | String | Stores the full Uniform Resource Locator (URL) of the application. This property is read/write.
CacheObjectProgId | String | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | Object | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | String | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | Integer | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | Integer | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | Object | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | String | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.


CacheManager.AppUrl Property (PIA)

The AppUrl property is a read/write String that contains the full Uniform Resource Locator (URL) of the application.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property AppUrl As String
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public string AppUrl {get; set;}

Property Value

A string that contains the full URL of the application.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The default value for this property is the URL of the current Internet Information Services (IIS) 5.0 application. Depending on the URL used to access the IIS application the first time after it is started, this URL could contain the special host name "localhost," preventing it from being accessed externally. Therefore, it is best to explicitly set this property to the full URL of the IIS application.

Unlike the other properties of the CacheManager object that are set on a per-cache basis, the AppUrl property is a global property. The AppUrl property is generally used to register all of the caches running in a Web server farm so that they can be managed without requiring explicit registration by an administrator. The Publish Campaign module in Commerce Server Business Desk is an example of this.

If the cache object is a Dictionary object, then the value of this property is passed to the CacheLoader and CacheWriter objects during each cache refresh. It will be put in the _AppUrl key in the Dictionary object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.CacheObjectProgId Property (PIA)

The CacheObjectProgId property is a read/write String that contains the name of the object to be used internally to perform caching functions for this CacheManager object. It also determines the type of object returned by the GetCache method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property CacheObjectProgId(
  bstrName As String
) As String
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public string get_CacheObjectProgId(
  string bstrName
);

Put method:

public void set_CacheObjectProgId(
  string bstrName,
  string pbstrProgId
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of the cache object.
[C#]
bstrName
A string that contains the name of the cache object.
pbstrProgId
When setting the property, a string that contains the ProgID of the cache object.
When getting the property, a pointer to a string used to return the ProgID of the cache object.

Return Values

When getting, a string containing the ProgID.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

By default, the CacheManager object will have Commerce.Dictionary set as the value for this property.

[C#] The get_CacheProjectProgID and set_CacheProjectProgId methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.LoaderConfig Property (PIA)

The LoaderConfig property is a read/write reference to a Dictionary object that contains configuration information for the Loader component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property LoaderConfig(
 bstrName As String
) As Object
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public object get_LoaderConfig(
 string bstrName
);

Put method:

public void set_LoaderConfig(
 string bstrName,
 object ppdispConfig
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.
ppdispConfig
When setting the property, a Dictionary object that contains the Loader component configuration information.
When getting the property, the return value is the Dictionary object that contains the configuration information.

Return Values

When getting, an object (typically a Dictionary) with the configuration.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property, a Dictionary object containing configuration information for a particular Loader component, will be passed to that Loader component when it is created to load the associated data cache. When you set this property, the dictionary is shallow cloned and then the CacheManager object stores the clone of the dictionary. This is as opposed to simply storing a reference to the dictionary. Shallow clone means that scalars in the dictionary are copied by value, but other objects in the dictionary are copied by reference. The Loader component needs to implement the IPipelineComponentAdmin interface in order to read the configuration values from the dictionary, and in particular, the SetConfigData method of that interface. The Dictionary object identified by this property is passed to the newly created Loader component using the SetConfigData method.

[C#] The get_LoaderConfig and set_LoaderConfig methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.LoaderProgId Property (PIA)

The LoaderProgId property is a read/write string that contains the ProgID of the component intended for use in populating the cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property LoaderProgId(
 bstrName As String
) As String
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public string get_LoaderProgId(
 string bstrName
);

Put method:

public void set_LoaderProgId(
 string bstrName,
 string pbstrProgId
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.
pbstrProgId
When setting the property, a string that contains the ProgID of the Loader component.

Return Values

When getting, a string with the ProgId.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[C#]

Remarks

The get_LoaderProgId and set_LoaderProgId methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.RefreshInterval Property (PIA)

The RefreshInterval property is a read/write Integer that specifies the approximate number of seconds between automatic cache refresh operations on a specified cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property RefreshInterval(
 bstrName As String
) As Integer
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public int get_RefreshInterval(
 string bstrName
);

Put method:

public void set_RefreshInterval(
 string bstrName,
 int plRefresh
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which the refresh interval is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which the refresh interval is being provided or retrieved.
plRefresh
When setting the property, an int that contains the new refresh interval value.

Return Values

When getting, an int with the refresh interval.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A refresh interval value of zero (0) means that the cache is never refreshed automatically.

The default refresh interval value is zero (0).

The value is a measurement of the number of seconds between automatic cache refresh operations.

[C#] The get_RefreshInterval and set_RefreshInterval methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.RetryInterval Property (PIA)

The RetryInterval property is a read/write Integer that specifies the approximate number of seconds to wait before retrying to load the data cache after failing to load.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property RetryInterval(
 bstrName As String
) As Integer
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public int get_RetryInterval(
 string bstrName
);

Put method:

public void set_RetryInterval(
 string bstrName,
 int plRetry
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which the retry interval is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which the retry interval is being provided or retrieved.
plRetry
When setting the property, an int that contains the new retry interval value.

Return Values

When getting, an int with the retry interval.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A retry interval value provides the number of seconds the CacheManager object should wait before retrying a failed cache refresh operation.

The default retry interval value is 60 (seconds).

The retry interval must be at least 1 (second).

[C#] The get_RetryInterval and set_RetryInterval methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.WriterConfig Property (PIA)

The WriterConfig property is a read/write reference to a Dictionary object that contains configuration information for the Writer component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property WriterConfig(
 bstrName As String
) As Object
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public object get_WriterConfig(
 string bstrName
);

Put method:

public void set_WriterConfig(
 string bstrName,
 object ppdispConfig
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.
ppdispConfig
When setting the property, a Dictionary object that contains the Writer component configuration information.

Return Values

When getting, an object (typically a Dictionary) with the configuration.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property, a Dictionary object containing configuration information for a particular Writer component, is passed to that Writer component when it is created to report results related to cache usage. When you set this property, the dictionary is shallow cloned and then the CacheManager object stores the clone of the dictionary. This is as opposed to simply storing a reference to the dictionary. Shallow clone means that scalars in the dictionary are copied by value, but other objects in the dictionary are copied by reference. The Writer component needs to implement the IPipelineComponentAdmin interface in order to read the configuration values from the dictionary, and in particular, the SetConfigData method of that interface. The Dictionary object identified by this property is passed to the created Writer component using the SetConfigData method.

[C#] The get_WriterConfig and set_WriterConfig methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


CacheManager.WriterProgId Property (PIA)

The WriterProgId property is a read/write String that contains the Programmatic Identifier (ProgID) of the component intended for use in populating the cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property WriterProgId(
 bstrName As String
) As String
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public string get_WriterProgId(
 string bstrName
);

Put method:

void set_WriterProgId(
 string bstrName,
 string ppstrProgId
);

Parameters

[Visual Basic .NET]
bstrName
A String that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.
[C#]
bstrName
A string that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.
ppstrProgId
When setting the property, a string that contains the ProgID of the Writer component.

Return Values

When getting, a string with the ProgID.

[C#]

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The get_WriterProgId and set_WriterProgId methods do not show up in IntelliSense.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class


ContentList Class (PIA)

Use this object to access a particular collection of content items. The ContentList object provides aggregated access to the private data that it stores, and to the shared data stored in the ContentListFactory object that created it. This object also flows through the Content Selection Framework (CSF) pipeline for the purpose of scoring content items.

Methods

Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on all rows based on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | Gets data from a specified row and column in a ContentList object in a high-performance, non-scriptable manner. Not useable by Visual Basic .NET or C#.
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentList object in a high-performance, non-scriptable manner. Not useable by Visual Basic .NET or C#.
SetScore | Sets the score of an item in a ContentList object.

Properties

Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | The collection of all rows in the ContentList object. This property is read-only.
Count | Integer | Stores the number of rows in the ContentList object. This property is read/write.
Factory | IContentListFactory | Stores a reference to the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | ADODB26Lib.Fields | The Fields collection for a particular row in the ContentList object. This property is read-only.
RowLimit | Integer | Stores the maximum number of rows that can exist in the ActiveRows collection property. This property is read/write.
Sorted | Boolean | Stores a flag that controls whether or not the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | Single | Stores the Threshold score that items must meet to be included in the ActiveRows collection property. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | Boolean | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.

Remarks

Both the ContentList object and the ContentListFactory object implement a common interface, IDataContainer. Therefore, they share the following methods and properties, which are functionally identical on both objects:

Properties:

  • AllRows
  • Count
  • Fields

Methods:

  • BuildIndex
  • Search

Both objects also expose the GetData and SetData methods. These are not intended for use with C#. Use the get_Fields method instead.

The function of a ContentList object is:

  • To aggregate private data in the ContentList object with shared data in the ContentListFactory object.
  • To provide functionality for scoring, searching, and filtering the list of content.

The ContentList object is a dependent object. Create a new ContentList object and obtain a IContentList interface by calling the method ContentListFactory.CreateNewContentList.

Important

  • The ContentList and the ContentListFactory objects are designed to be run in-process with their clients.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)


ContentList Methods (PIA)

Methods

Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on all rows based on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | Gets data from a specified row and column in a ContentList object in a high-performance, non-scriptable manner. Not useable by Visual Basic .NET or C#.
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentList object in a high-performance, non-scriptable manner. Not useable by Visual Basic .NET or C#.
SetScore | Sets the score of an item in a ContentList object.


ContentList.AdjustScore Method (PIA)

Use this method to adjust the score of an item in the ContentList object by applying a multiplier.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub AdjustScore(
 RowNum As Integer,
 Multiplier As Single,
 Optional Component As String,
 Optional Description As String
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void AdjustScore(
 int RowNum,
 float Multiplier,
 string Component,
 string Description
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the item in the ContentList object for which the score is to be adjusted. Positions are counted from zero (0), not from one (1).
Multiplier
A Single that contains the value by which the score will be multiplied.
Component
An optional String that contains an identifier for the pipeline component that is adjusting the score. By convention, this is the ProgID of the pipeline component.
Description
An optional String that contains a description to be appended to the score adjustment tracing string. This string should briefly describe the nature of the adjustment.
[C#]
RowNum
A int that contains the position of the item in the ContentList object for which the score is to be adjusted. Positions are counted from zero (0), not from one (1).
Multiplier
A float that contains the value by which the score will be multiplied.
Component
A string that contains an identifier for the pipeline component that is adjusting the score. By convention, this is the ProgID of the pipeline component. Set to Type.Missing to omit the component.
Description
A string that contains a description to be appended to the score adjustment tracing string. This string should briefly describe the nature of the adjustment. Set to Type.Missing to omit a description.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Values for the Component and Description parameters are optional, but at least one parameter must be passed. These parameters are ignored unless the TraceMode property is set to true.

This method assumes that the ContentList object has a column of type CLCOL_R4 with the CLCOL_SCORE_COLUMN flag set.

[Visual Basic .NET]

Example

myContentList.AdjustScore(1, 1.25)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.BuildIndex Method (PIA)

Use this method to build an index for a specific column in a ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub BuildIndex(
 vCol As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void BuildIndex(
 object vCol
);

Parameters

[Visual Basic .NET]
vCol
An Object that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
[C#]
vCol
An object that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following standard COM error value has a particular meaning in the context of this method.

S_FALSE
An index already exists on the column.

Remarks

An index can be built on any read-only, non-private column that is of type string, integer, or array of strings or integers (CLCOL_READONLY and not CLCOL_PRIVATE). Also, only columns of type CLCOL_I2, CLCOL_I4, CLCOL_STRING, and CLCOL_VARIANTARRAY can be indexed. The non-private restriction means that the column will actually reside in the corresponding ContentListFactory object.

If a search is conducted on a column for which no index yet exists, the index is automatically created. This means that, although you are never required to call the BuildIndex method, you may want to incur the cost of creating the index at a known time for performance sake.

This method is functionally identical to the one of the same name in the ContentListFactory object.

[Visual Basic .NET]

Example

myDataContainer.BuildIndex(10)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.Filter Method (PIA)

Use this method to filter items in a ContentList object. Items that do not pass the filter have their scores set to zero (0).

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub Filter(
 vColumn As Object,
 vFilterCriteria As Object,
 FilterAction As FilterActionEnum,
 Optional Component As String
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void Filter(
 object vColumn,
 object vFilterCriteria,
 FilterActionEnum FilterAction,
 string Component
);

Parameters

[Visual Basic .NET]
vColumn
An Object that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vFilterCriteria
An Object that contains the filter criterion. The criterion is either a single String, an array of Strings, or an Integer.
FilterAction
An enumeration value. Valid values are FILTER_REQUIRE and FILTER_EXCLUDE. See the Remarks section for more information about the consequences of these two actions.
Component
A String that is intended to contain the name of the pipeline component doing the filtering. This parameter is optional and is used for score tracing. Trace messages will be generated for content items that are filtered out.
[C#]
vColumn
A object that identifies the column upon which to filter. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vFilterCriteria
A object that contains the filter criterion. The criterion is a single string, a System.Array of strings, or an int.
FilterAction
An enumeration value. Valid values are FILTER_REQUIRE and FILTER_EXCLUDE. See the Remarks section for more information about the consequences of these two actions.
Component
A string that is intended to contain the name of the pipeline component doing the filtering. This parameter is optional and is used for score tracing. To omit this parameter set to Type.Missing. Trace messages will be generated for content items that are filtered out.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

An item in the ContentList object matches the criteria if the value for the specified column exactly matches a string or number passed in the vFilterCriteria parameter. If the vFilterCriteria parameter is an array of strings, matching any one of the strings in the array is considered a match. If the FilterAction parameter is set to FILTER_REQUIRE, non-matching items have their scores set to zero (0). If the FilterAction parameter is set to FILTER_EXCLUDE, matching items have their scores set to zero (0).

For the sake of uniformity, the pipeline components provided with Commerce Server 2002 pass their own ProgID for the Component parameter.

[Visual Basic .NET]

Example

myContentList.Filter("Score", 3, FILTER_EXCLUDE)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.GetData Method (PIA)

This method gets data from a specified row and column in a ContentList object in a high-performance, non-scriptable manner.

[Visual Basic .NET] Due to performance considerations and compatibility issues, this method cannot be used with Microsoft Visual Basic .NET.

[C#] Due to performance considerations and compatibility issues, this method cannot be used with Microsoft C#.

Although the GetData method is part of the ContentList object, it is designed for use with COM and C++. Therefore, GetData is included here mainly to be consistent with the assembly description. To access the data in a ContentList object in C# or Visual Basic .NET, you can instead use one of the many other methods and properties associated with ContentList, such as the ContentList.ActiveRows property.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.GetScore Method (PIA)

Use this method to retrieve the score of an item in a ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function GetScore(
 RowNum As Integer
) As Single
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public float GetScore(
 int RowNum
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the item in the ContentList object for which the score will be returned. Positions are counted from zero (0), not from one (1).
[C#]
RowNum
A int that contains the position of the item in the ContentList object for which the score will be returned. Positions are counted from zero (0), not from one (1).

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Single that contains the score for the specified item.

[C#] This method returns a float containing the score for the specified item.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'sngScore is a Single
sngScore = myContentList.GetScore(12)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.Search Method (PIA)

Use this method to create a RowCollection object that allows access to each item in the ContentList object that matches the specified criterion.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function Search(
 vCol As Object,
 vSearchCriteria As Object
) As RowCollection
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public RowCollection Search(
 object vCol,
 object vSearchCriteria
);

Parameters

[Visual Basic .NET]
vCol
An Object that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vSearchCriteria
An Object that contains the filter criterion. The criterion is usually a String, an array of Strings, or an Integer. An attempt will be made to coerce other types to the type of the column being searched.
[C#]
vCol
An object that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vSearchCriteria
An object that contains the filter criterion. The criterion is usually a string, an array of strings, or an integer. The Search method will attempt to coerce other data types to the type of the column being searched.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to a new object that implements the RowCollection interface that contains one row for each matching item.

[C#] This method returns an RowCollection interface pointer for a new RowCollection object that allows access to the rows that match the search criteria.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following standard COM error value has a particular meaning in the context of this method.

S_FALSE
No rows in the ContentList object matched the filter criteria. As a result, the returned RowCollection is empty.

Remarks

Columns must be shared (not private) and read-only in order to be indexed and searched. Columns must also be of type string, integer (int or short), or object array to be searchable. The search criteria may be any variant type that can be coerced to the type of the column being searched.

When the search criteria is an array of objects, the set of rows returned contains all rows that match any of the search criteria array elements. It is a union of the matches.

This property is functionally identical to the one of the same name in the ContentListFactory object.

[Visual Basic .NET]

Example

'myCol is a RowCollection object
myCol = myContentList.Search(10, "CarAds")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.SetData Method (PIA)

Sets data at a specified row and column in a ContentList object in a high-performance, non-scriptable manner.

[Visual Basic .NET] Due to performance considerations, this method cannot be used from Microsoft Visual Basic .NET.

[C#] Due to performance considerations and compatibility issues, this method cannot be used with Microsoft C#.

Although the SetData method is part of the ContentList object, it is designed for use with COM and C++. Therefore, SetData is included here mainly to be consistent with the assembly description. To access the data in a ContentList object in C# or Visual Basic .NET, you can instead use one of the many other methods and properties associated with ContentList, such as the ContentList.ActiveRows property.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.SetScore Method (PIA)

Use this method to set a new score for an item in a ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub SetScore(
 RowNum As Integer,
 Score As Single,
 Optional Component As String,
 Optional Description As String
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void SetScore(
 int RowNum,
 float Score,
 string Component,
 string Description
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the item in the ContentList object for which a new score will be set. Positions are counted from zero (0), not from one (1).
Score
A Single that contains the new score.
Component
A String that is intended to contain the name of the pipeline component that is setting the new score. This parameter is optional and is used for score tracing.
Description
A String that is intended to contain the reason that the score is being set; for example, Need of Delivery. This parameter is optional and is used for score tracing.
[C#]
RowNum
A int that contains the position of the item in the ContentList object for which a new score will be set. Positions are counted from zero (0), not from one (1).
Score
A float that contains the new score.
Component
A string that is intended to contain the name of the pipeline component that is setting the new score. This parameter is optional and is used for score tracing. To omit this parameter, set to Type.Missing.
Description
A string that is intended to contain the reason that the score is being set; for example, Need of Delivery. This parameter is optional and is used for score tracing. To omit this parameter, set to Type.Missing.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Values for the Component and Description parameters are optional, but at least one parameter must be passed.

This method assumes that the ContentList object has a column of type CLCOL_R4 with the CLCOL_SCORE_COLUMN flag set.

For the sake of uniformity, pipeline components provided with Commerce Server 2002 pass the ProgID of the component for the Component parameter.

[Visual Basic .NET]

Example

'strProgID is a string
myContentList.SetScore(123456, 0.5, strProgID, "")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList Properties (PIA)

Properties

Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | The collection of all rows in the ContentList object. This property is read-only.
Count | Integer | Stores the number of rows in the ContentList object. This property is read/write.
Factory | IContentListFactory | Stores a reference to the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | ADODB26Lib.Fields | The Fields collection for a particular row in the ContentList object. This property is read-only.
RowLimit | Integer | Stores the maximum number of rows that can exist in the ActiveRows collection property. This property is read/write.
Sorted | Boolean | Stores a flag that controls whether or not the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | Single | Stores the Threshold score that items must meet to be included in the ActiveRows collection property. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | Boolean | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.


ContentList.ActiveRows Property (PIA)

The ActiveRows property returns a RowCollection object. This property is read-only; however, the RowCollection object is read/write. Changes made to the data within the RowCollection object are also reflected in the ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property ActiveRows As RowCollection
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public RowCollection ActiveRows {get; }
[C#]

Property Value

The RowCollection interface of a RowCollection object that allows access the set of active items in this ContentList object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The ActiveRows RowCollection object allows access to the content items of the ContentList object whose score is greater than or equal to the current threshold score contained in the Threshold property. If the value of the Threshold property is set to a negative number, even items that have been filtered out by the Filter method might be included in the ActiveRows collection. This occurs because an item being filtered out has a score set to zero, which is still greater than a negative threshold value.

Regardless of the number of items with scores above the threshold, the number of items in the ActiveRows object is limited by the RowLimit property.

The order of the rows in the ActiveRows collection is undefined unless the Sorted property is set to True.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class

RowCollection Class


ContentList.AllRows Property (PIA)

The AllRows property returns a new RowCollection object that allows access to the items in the ContentList object and, through aggregation, the ContentListFactory object. The AllRows property is read-only; however, the RowCollection object is read/write. Changes made to the data in the RowCollection object are reflected in the ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property AllRows As RowCollection
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
IRowCollection  AllRows{get;}
[C#]

Property Value

The RowCollection interface of a RowCollection object that contains all of the items in this ContentList object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property is functionally identical to the one of the same name to be found in the ContentListFactory object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class

RowCollection Class


ContentList.Count Property (PIA)

The Count property is a read/write Integer that gets or sets the number of items in a ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property Count As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int Count {get; set;}

Property Value

An int that contains the item count.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Normally, the Count property is already fixed when a ContentList object is created by a ContentListFactory object. The property may only be set for ContentList objects that are created by a ContentListFactory object that has not yet had any content items stored in it. Also, the Count property cannot be set to a number smaller than the current setting.

This property is functionally identical to the one of the same name in the ContentListFactory object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.Factory Property (PIA)

The Factory property is a read-only IContentListFactory interface of the ContentListFactory object that created this ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property Factory As ContentListFactory
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public ContentListFactory Factory {get;}

Property Value

The IContentListFactory interface of the ContentListFactory object that created this ContentList object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.Fields Property (PIA)

The Fields property creates a new Fields object that allows access to the fields for a specified content item. The Fields property is read-only; however, the Fields object is read/write in that changes made using this object are reflected in the ContentList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
Imports ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields(
 RowNum As Integer
) As Fields
[C#]
using Microsoft.CommerceServer.Interop.Caching;
using ADODB26Lib;                              //For Fields
…
public Fields get_Fields(
 int RowNum
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the item in the ContentList object for which a Fields object will be returned. Positions are counted from zero (0), not from one (1).
[C#]
RowNum
An int that contains the position of the item in the ContentList object for which a Fields object will be returned. Positions are counted from zero (0), not from one (1).
[C#]

Return Values

[C#] This method returns an ADODB26Lib.Fields object for the specified row in the ContentList object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] The get_Fields method cannot be viewed in IntelliSense.

The Fields object exposes the same interface as the ActiveX Data Objects (ADO) Fields object.

This property is functionally identical to the one of the same name in the ContentListFactory object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.RowLimit Property (PIA)

The RowLimit property is a read/write number that specifies the maximum number of rows that the object should select for the ActiveRows property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property RowLimit As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int  RowLimit {get; set; }

Property Value

An Integer that specifies the row limit.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class

ContentList.ActiveRows


ContentList.Sorted Property (PIA)

The Sorted property is a read/write Boolean that determines whether or not the next enumeration of the ContentList object ActiveRows property will be returned in sorted order by score (highest to lowest).

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property Sorted As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public bool  Sorted {get; set;}

Property Value

A bool that specifies whether or not to return the ActiveRows property in sorted order.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A value of true indicates that the next enumeration of the ContentList object ActiveRows property should be returned in sorted order by score (highest to lowest). A value of false indicates that it will not be sorted. The items do not actually change positions in the list — that is, the ordinal identifying an item never changes. Setting the value to true only effects the next enumeration of the ActiveRows property, subsequent enumerations will be unsorted unless the property is set to true again.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.Threshold Property (PIA)

The Threshold property is a read/write floating point number. This number contains a threshold score that items must meet or exceed to be included in the ActiveRows collection property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property Threshold As Single
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public float  Threshold{get; set;}

Property Value

This value contains the new threshold score.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentList.TraceMessages Property (PIA)

The TraceMessages property is a SimpleList object that contains the list of trace strings that have accumulated for the given item in a ContentList object. The TraceMessages property is read-only; however, the returned SimpleList object is read/write.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
Imports Microsoft.CommerceServer.Interop     ‘ for ISimpleList
…
Public ReadOnly Property TraceMessages(
 RowNum As Integer
) As ISimpleList
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
ISimpleList get_TraceMessages(
 int RowNum
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the row for which the trace messages will be returned. Row positions start at zero (0), not one (1).
[C#]
RowNum
A int that contains the position of the row for which the trace messages will be returned. Row positions start at zero (0), not one (1).

Return Values

[C#]

This method returns the ISimpleList interface of the SimpleList object that contains the trace messages.

The get_TraceMessages method cannot be viewed in IntelliSense.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The TraceMode property acts as a global switch to control whether any score tracing is performed. If it is set to True, score tracing is performed. If it is set to False, score tracing is suppressed.

When you use score tracing, you will notice a dramatic negative effect on performance; score tracing should not be used under normal circumstances. However, it can be useful when you are attempting to troubleshoot a scoring-related issue.

The list will be empty if the TraceMode property is set to False or if no score modifications have been made to the item.

Each item in the list is a string in the following format:

<component>,<operator><number>,<description>

Where the fields of the string are defined as follows:

component
The identifier of the component that made the score change, as passed to the AdjustScore, SetScore, and Filter methods.
operator
= if the score set to an absolute value by the SetScore or Filter methods, or * if a multiplier was applied to the score by the AdjustScore method.
number
The score returned by the SetScore method after any adjustments by the Filter or AdjustScore methods.
description
The reason for the score change, as passed to the AdjustScore or SetScore methods, and set by the Filter method.

An example score tracing string is:

"Commerce.AdNod,=0.9875,Need of Delivery".

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class

ContentList.TraceMode


ContentList.TraceMode Property (PIA)

The TraceMode property is a read/write Boolean that controls whether score tracing is enabled or suppressed.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property TraceMode As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public bool TraceMode {get; set }

Property Value

[C#]

A bool used to return the current trace mode setting. A value of true enables score tracing. A value of false suppresses score tracing.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property acts as a global switch to control whether or not score tracing is performed. If it is set to true, a SimpleList object of trace messages will be constructed that can be accessed through the TraceMessages property. If it is set to false, score tracing is suppressed.

When you use score tracing, you will notice a dramatic negative effect on performance; score tracing should not be used under normal circumstances. However, it can be useful when you are attempting to troubleshoot a scoring-related issue.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentList Class


ContentListFactory Class (PIA)

Use this object to efficiently maintain lists of content items that compete with each other to be selected for display on a Web page by a Content Selection pipeline (CSP).

Methods

Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADODB26Lib.Recordset object. The ContentListFactory object is populated with the data from the ADODB26Lib.Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | This method is not usable in Visual Basic .NET or C#.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | This method is not usable in Visual Basic .NET or C#.

Properties

Property | Type | Description
AllRows | IRowCollection | Stores the collection of all rows in the ContentListFactory object. This property is read-only.
Count | Integer | Stores the number of rows in the ContentListFactory object. This property is read/write.
Fields | ADODB26Lib.Fields | Stores the Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.

Remarks

The ContentList and the ContentListFactory objects are designed to be run in-process with their clients. Both the ContentList object and the ContentListFactory object implement a common interface, IDataContainer. Therefore, they share the following methods and properties, which are functionally identical on both objects:

Properties:

  • AllRows
  • Count
  • Fields

Methods:

  • BuildIndex
  • Search

Both objects also expose the IDataContainer interface methods GetData and SetData. These are not intended for use with C#. Use the get_Fields method instead.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)


ContentListFactory Methods (PIA)

Methods

Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADODB26Lib.Recordset object. The ContentListFactory object is populated with the data from the ADODB26Lib.Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | This method is not usable in Visual Basic .NET or C#.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | This method is not usable in Visual Basic .NET or C#.


ContentListFactory.BuildIndex Method (PIA)

Use this method to build an index for a specific column in a ContentListFactory object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub BuildIndex(
 vCol As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void BuildIndex(
 object vCol
);

Parameters

[Visual Basic .NET]
vCol
An Object that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
[C#]
vCol
An object that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following COM exception has a special meaning in this method:

S_FALSE
An index already exists on the column.

Remarks

An index can be built on any read-only, non-private column that is of type string, integer, or array of strings or integers (CLCOL_READONLY and not CLCOL_PRIVATE). Also, only columns of type CLCOL_I2, CLCOL_I4, CLCOL_STRING, and CLCOL_VARIANTARRAY can be indexed.

If a search is conducted on a column for which no index yet exists, the index is automatically created. This means that, though you are never required to call the BuildIndex method, you may want to incur the cost of creating the index at a known time for performance sake.

This method is functionally identical to the one of the same name to be found in the ContentList object.

[Visual Basic .NET]

Example

myContentListFactory.BuildIndex("AdType")

See Also

ContentListFactory Class


ContentListFactory.ConstructFromRecordset Method (PIA)

Use this method to initialize a new ContentListFactory object, and create and initialize a new ContentListSchema object, from a Recordset object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
Imports ADODB26Lib     ‘ for _Recordset
…
Public Sub ConstructFromRecordset(
 Recordset As _Recordset,
 Optional ArrSkip As Object,
 Optional SchemaAdd As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
using ADODB26Lib;                              //For _Recordset
…
public void ConstructFromRecordset(
 _Recordset Recordset,
 object ArrSkip,
 object SchemaAdd
);

Parameters

[Visual Basic .NET]
Recordset
A reference to an object that implements the _Recordset interface from which the ContentList object will be constructed.
ArrSkip
An optional Object that is a SimpleList object. The SimpleList object contains the names of field(s) that exist in the Recordset object, but that should not have a column in the new ContentList object.
Add
An optional reference to an Object that is a ContentListSchema object that contains information about additional columns or new flags for existing columns that should be accounted for when the new ContentList object is created. Refer to the Remarks section for additional information.
[C#]
Recordset
A _Recordset interface to an ADO Recordset object from which the ContentList object will be constructed.
ArrSkip
An object that is a SimpleList object. The SimpleList object contains the names of field(s) that exist in the Recordset object but that should not have a column in the new ContentList object. To omit this optional parameter, set to Type.Missing.
Add
An IContentListSchema interface of a ContentListSchema object that contains information about additional columns or new flags for existing columns that should be accounted for when the new ContentList object is created. Refer to the Remarks section for additional information. To omit this optional parameter, set to Type.Missing.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET] The Skip and Add parameters are both optional.

[C#] Values for the Skip and Add parameters are both optional, but at least one parameter must be passed. Pass Type.Missing to omit processing these parameters.

Columns defined in the ContentListSchema object that do not exist in the Recordset object are added to the new schema for the ContentListFactory object. Schema columns defined in both the ContentListSchema object and in the Recordset object get their flag settings from the former object, overriding the default flag settings otherwise applied. Supplemental columns may be either shared or private. Data for any supplemental, shared columns should be initialized using the SetData method. Data for any supplemental, private columns cannot be provided until a corresponding ContentList object is created.

The ContentListFactory object attempts to access the RecordCount property of the RecordSet object to determine how many rows of data for which space should be allocated. Not all types of RecordSet objects support this. If the RecordCount property cannot be determined, the ContentListFactory object will grow the factory in chunks of 100 rows. For this reason, it is most efficient to pass a RecordSet object for which the RecordCount property is defined.

Column types are mapped from the Recordset object according to the following table.

ADO Type | ContentList Type
adSmallInt, adUnsignedSmallInt | CLCOL_I2
adInteger, adUnsignedInt, adError | CLCOL_I4
adSingle | CLCOL_I4
adDouble | CLCOL_R8
adDBDate, adDBTime, adDBTimeStamp | CLCOL_DATE
adChar, adVarChar, adLongVarChar, adWChar, adVarWChar, adLongVarWChar | CLCOL_STRING
adChapter*, adDispatch | CLCOL_DISPATCH
adChapter | CLCOL_UNKNOWN
adBoolean | CLCOL_BOOL

Note

  • *One level of hierarchical Recordset objects are supported. The child Recordset objects are created in the ContentList object as a SimpleList of Dictionary objects.
[Visual Basic .NET]

Example

'rsSource is an existing recordset.
'vSkip is a simple list of fields to ignore.
'vSchema is a ContentListSchema object.
myContentListFactory.ConstructFromRecordset(rsSource, vSkip, vSchema)

See Also

ContentListFactory Class


ContentListFactory.CreateNewContentList Method (PIA)

Use this method to create a new ContentList object based on the schema established for this ContentListFactory object. The new ContentList object provides a unified interface to the private data that it stores and to the shared data stored in the ContentListFactory object (that created it).

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function CreateNewContentList() As IContentList
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public IContentList CreateNewContentList();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to an object that implements the IContentList interface.

[C#] This method returns an IContentList interface to a new ContentList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The new ContentList object will be based on the established schema for this ContentListFactory object. Storage for columns marked as CLCOL_PRIVATE in the schema is allocated in the ContentList object. The ContentList object maintains a pointer back to the factory that created it, which is where the storage for "shared" columns is maintained.

A ContentList object cannot exist independently of a ContentListFactory object.

The only prerequisite for calling this method is that a schema must be established. This can be accomplished by setting the Schema property or by calling the ConstructFromRecordset method.

[Visual Basic .NET]

Example

oMyContentList = myContentListFactory.CreateNewContentList()

See Also

ContentListFactory Class


ContentListFactory.GetData Method (PIA)

[Visual Basic .NET] Due to performance considerations, this method is not intended for use from Visual Basic .NET.

[C#] Due to performance considerations, this method is not intended for use from Visual C#.

See Also

ContentListFactory Class


ContentListFactory.Search Method (PIA)

Use this method to create a RowCollection object that allows access to each item in the ContentListFactory object that matches the specified criterion.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function Search(
 vCol As Object,
 vSearchCriteria As Object
) As IRowCollection
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public IRowCollection Search(
 object vCol,
 object vSearchCriteria
);

Parameters

[Visual Basic .NET]
vCol
An Object that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vSearchCriteria
An Object that contains the filter criterion. The criterion is usually a String, an array of Strings, or an Integer. An attempt will be made to coerce other types to the type of the column being searched.
[C#]
vCol
An object that identifies the column to search. The column is identified by either a number representing a column position (starting at 0) or a string containing a column name.
vSearchCriteria
An object that contains the filter criterion. The criterion is usually a string, an array of strings, or an integer. An attempt will be made to coerce other types to the type of the column being searched.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to a new object that implements the IRowCollection interface. The object contains one row for each matching item.

[C#] This method returns an IRowCollection interface pointer for a new RowCollection object that allows access to the rows that match the search criteria.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following COM exception has a special meaning in this method:

S_FALSE
No rows in the ContentListFactory object matched the filter criteria. As a result, the returned RowCollection is empty.

Remarks

Columns must be shared (not private) and read-only in order to be indexed and searched. Columns must also be of type string, integer (long or short), or variant array to be searchable. The search criteria may be any variant type that can be coerced to the type of the column being searched.

When the search criteria is an array of variants, the set of rows returned contains all rows that match any of the search criteria array elements. It is a union of the matches.

This method is functionally identical to the one of the same name to be found in the ContentList object.

[Visual Basic .NET]

Example

set oMyRowCollection = myDataContainer.Search("AdType", "CarAds")

See Also

ContentListFactory Class


ContentListFactory.SetData Method (PIA)

[Visual Basic .NET] Due to performance considerations, this method is not intended for use from Visual Basic .NET.

[C#] Due to performance considerations, this method is not intended for use from Visual C#.

See Also

ContentListFactory Class


ContentListFactory Properties (PIA)

Properties

Property | Type | Description
AllRows | IRowCollection | Stores the collection of all rows in the ContentListFactory object. This property is read-only.
Count | Integer | Stores the number of rows in the ContentListFactory object. This property is read/write.
Fields | ADODB26Lib.Fields | Stores the Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.


ContentListFactory.AllRows Property (PIA)

The AllRows property returns a new RowCollection object that allows access to the items in the ContentListFactory object. The AllRows property is read-only; however, the RowCollection object is read/write in that changes made using this object are reflected in the ContentListFactory object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property AllRows As RowCollection
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public RowCollection AllRows {get;}

Property Value

The RowCollection interface of a RowCollection object that contains all of the items in this ContentListFactory object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property is functionally identical to the one of the same name in the ContentList object.

See Also

ContentListFactory Class

RowCollection Object


ContentListFactory.Count Property (PIA)

The Count property is a read/write Integer that gets or sets the number of content items in a ContentListFactory object.

Definition

[Visual Basic .NET]
Public Property Count As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int Count{get; set;}

Property Value

An Integer that contains the item count.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Count property cannot be changed after ContentList objects have been created by the ContentListFactory object. Also, the Count property cannot be set to a smaller number than its current setting.

This property is functionally identical to the one of the same name to be found in the ContentList object.

See Also

ContentListFactory Class


ContentListFactory.Fields Property (PIA)

The Fields property creates a new Fields object that allows access to the fields for a specified content item. The Fields property is read-only; however, the Fields object is read/write in that changes made using this object are reflected in the ContentListFactory object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
Imports ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields(
 RowNum As Integer
) As Fields
[C#]
using Microsoft.CommerceServer.Interop.Caching;
using ADODB26Lib;                              //For _Fields
…
public Fields get_Fields(
 int RowNum
);

Parameters

[Visual Basic .NET]
RowNum
An Integer that contains the position of the item in the ContentListFactory object for which a Fields object will be returned. Positions are counted from 0, not from 1.
[C#]
RowNum
An int that contains the position of the item in the ContentListFactory object for which a Fields object will be returned. Positions are counted from 0, not from 1.

Return Values

This method return a Fields object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Fields object exposes the same interface as the ADO Fields object.

This property is functionally identical to the one of the same name to be found in the ContentList object.

See Also

ContentListFactory Class


ContentListFactory.Schema Property (PIA)

The Schema property is a ContentListSchema object that contains the schema used by this ContentListFactory object. The Schema property is read/write.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property Schema As IContentListSchema
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public IContentListSchema Schema {get; set;}

Property Value

An IContentListSchema interface of the ContentListSchema object that contains the schema for this ContentListFactory object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This property is intended to only be set once. However, until any ContentList object is created using the CreateNewContentList method, or until rows are allocated in the ContentListFactory object by setting the Count property, this property can be changed.

If this property is read before it is written, an empty ContentListSchema object will be created and returned.

See Also

ContentListFactory Class


ContentListSchema Class (PIA)

Use this object to manipulate the schema for a ContentListFactory object.

Methods

Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the ContentList object.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.

Properties

Property | Type | Description
ColumnFlags | Integer | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | String | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | Integer | Stores the number of columns defined by the schema. This property is read-only.
Locked | Boolean | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

Remarks

The object ContentListSchema exposes the methods GetSchema and SetSchema. However, these are not intended to be used with C#.


ContentListSchema Methods (PIA)

Methods

Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the ContentList object.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.


ContentListSchema.Add Method (PIA)

Use this method to add a new column to a schema for use by a ContentListFactory object and its associated ContentList objects.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub Add(
 sName As String,
 Type As ColumnTypeEnum,
 Flags As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void Add(
 string sName,
 ColumnTypeEnum Type,
 int Flags
);

Parameters

[Visual Basic .NET]
sName
A String that contains a name for the new column.
Type
A value from the ColumnTypeEnum enumeration. See the Remarks section for more details.
Flags
An Integer that contains the bit mask column flag settings for the new column.
[C#]
sName
A string that contains a name for the new column.
Type
A value from the ColumnTypeEnum enumeration. See the Remarks section for more details.
Flags
An int that contains the bit mask column flag settings for the new column.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Once the Locked property has been set to True, subsequent calls to this method will fail. The ContentListFactory object will set the Locked property of its ContentListSchema object to True when one of the following conditions is met:

  • Rows of data are allocated in the factory by setting the Count property or calling the ConstructFromRecordset method.
  • The ContentListFactory object has been used to construct one or more ContentList objects using the CreateNewContentList method.

The following table shows the values of the ColumnTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
CLCOL_I2 | 2 | A 16-bit integer. This value corresponds to the VARTYPE value VT_I2.
CLCOL_I4 | 3 | A 32-bit integer. This value corresponds to the VARTYPE value VT_I4.
CLCOL_R4 | 4 | A single precision floating point number. This value corresponds to the VARTYPE value VT_R4.
CLCOL_R8 | 5 | A double precision floating point number. This value corresponds to the VARTYPE value VT_R8.
CLCOL_CY | 6 | A 64-bit integer used to store a currency value. This value corresponds to the VARTYPE value VT_CY. Monetary values stored using this type are scaled by 10,000 (4 decimal places). For example, the value 86900 would correspond to a currency value of $8.69 in the US. This is also the same as the money datatype used by SQL7.
CLCOL_DATE | 7 | A double precision floating point number used to store a date/time value. This value corresponds to the VARTYPE value VT_DATE.
CLCOL_DISPATCH | 9 | A reference to an object that supports scripting/automation (inherits from IDispatch). This value corresponds to the VARTYPE value VT_DISPATCH.
CLCOL_BOOL | 11 | A boolean value. This value corresponds to the VARTYPE value VT_BOOL. Do not confuse this with the C++ type BOOL, which is 4 bytes.
CLCOL_UNKNOWN | 13 | A pointer to an IUnknown-based interface that, presumably, does not support scripting/automation (inherits from IUnknown). This value corresponds to the VARTYPE value VT_UNKNOWN.
CLCOL_STRING | 14 | A pointer to a string in the private heap maintained by every ContentListFactory object. There is no corresponding VARTYPE value.
CLCOL_VARIANTARRAY | 15 | A pointer to a SAFEARRAY. The corresponding variant type is VT_ARRAY or VT_VARIANT.

Note

  • With the exception of CLCOL_STRING and CLCOL_VARIANTARRAY, these types are identical to the corresponding VARTYPE and share the same constant value. They may be used as a VARTYPE.
[Visual Basic .NET]

Example

'"Color" is the column name.
'CLCOL_STRING indicates the column is of type String.
'0 indicates that no flags are applied.

myContentListSchema.Add("Color", CLCOL_STRING, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.FindColumn Method (PIA)

Use this method to find the position of a column specified by name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function FindColumn(
 sName As String
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int FindColumn(
 string sName
);

Parameters

[Visual Basic .NET]
sName
A String that contains the name of the column for which the position will be returned.
[C#]
sName
A string that contains the name of the column for which the position will be returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that contains the position of the new column.

[C#] This method returns the position of the specified column.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Column positions are counted from zero (0), not one (1).

[Visual Basic .NET]

Example

'"Color" is the column name.
Dim iColumnNum as Integer
iColumnNum = myContentListSchema.FindColumn("Color")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.GetSchema Method (PIA)

In the interest of high performance, this method is intended for use only with C++.

See Also

ContentListSchema Class


ContentListSchema.SetSchema Method (PIA)

In the interest of high performance, this method is intended for use only with C++.

See Also

ContentListSchema Class


ContentListSchema Properties (PIA)

Properties

Property | Type | Description
ColumnFlags | Integer | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | String | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | Integer | Stores the number of columns defined by the schema. This property is read-only.
Locked | Boolean | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.


ContentListSchema.ColumnFlags Property (PIA)

The ColumnFlags property is a read/write Integer that contains the column flags.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property ColumnFlags(
 vColumn As Object
) As Integer
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public int get_ColumnFlags(
 object vColumn
);

Put method:

using Microsoft.CommerceServer.Interop.Caching;
…
public void set_ColumnFlags(
 object vColumn,
 int ColumnFlags
);

Parameters

[Visual Basic .NET]
vColumn
An Object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
[C#]
vColumn
A object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnFlags
When setting the property, an int that contains the new column flag settings, represented as a bit field.

Return Values

This property returns an Integer indicating the current column flag settings, represented as a bit field.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] get_ColumnFlags does not show up in IntelliSense.

Column flags are represented as a bit field. The following table shows the meanings of the bits that are used and the constants provided for manipulating those bits.

Bit | Constant | Description
1 | CLCOL_READONLY (= 0x01) | When the bit is set, data in the column is read-only, and cannot be updated. This will be common for data stored in the ContentListFactory object since that data is shared between multiple page requests. When the bit is cleared, data in the column is read/write, and can be freely updated. No record locking is performed, so update contention could occur when updating data in the ContentListFactory object. This is not a concern for columns that are marked Private since they exist in the individual instances of ContentList objects, and ContentList objects are typically created for and used by a single thread.
2 | CLCOL_PRIVATE (= 0x02) | When the bit is set, the data in the column is private to each ContentList object based on this schema. This means that the data is stored separately in each ContentList object that is created, and not stored in the shared columns in the corresponding ContentListFactory object.
4 | CLCOL_SCORE_COLUMN (= 0x04) | When the bit is set it indicates that the data in this column is the score value associated with the content item. The type of this column must be a single-precision floating-point type (CLCOL_R4); only one column in the schema can have this flag set. Further, since a unique score value must be associated with each individual page request, this bit can only be set in conjunction with the CLCOL_PRIVATE bit. In other words, it must be a column stored in the ContentList object, as opposed to the ContentListFactory object, that is marked as the score column.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.ColumnName Property (PIA)

The ColumnName property is a read/write String that contains the name of the column.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property ColumnName(
 vColumn As Object
) As String
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public string get_ColumnName(
 object vColumn
);

Put method:

using Microsoft.CommerceServer.Interop.Caching;
…
public void  set_ColumnName(
 object vColumn,
 string ColumnName
);

Parameters

[Visual Basic .NET]
vColumn
An Object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
[C#]
vColumn
An object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnName
When putting the property, a string that contains the new column name.

Return Values

When getting the property, returns a string containing the current column name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] get_ColumnNames and set_ColumnNames do not show up in IntelliSense.

Though using a column name as the value of the vColumn parameter in order to retrieve that same column name may be fruitless, passing a column name does make sense when changing the column name.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.ColumnType Property (PIA)

The ColumnType property is a read/write value from the ColumnTypeEnum enumeration, specifying the data type of the specified column.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property ColumnType(
 vColumn As Object
) As ColumnTypeEnum
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public ColumnTypeEnum get_ColumnType(
 object vColumn
);

Put method:

using Microsoft.CommerceServer.Interop.Caching;
…
public void  set_ColumnType(
 object vColumn,
 ColumnTypeEnum ColumnType
);

Parameters

[Visual Basic .NET]
vColumn
An Object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
[C#]
vColumn
An object that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnType
When putting the property, a value from the ColumnTypeEnum enumeration. See the Remarks section for more details.

Return Values

This property returns a value from the ColumnTypeEnum enumeration.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] get_ColumnType and set_ColumnType do not show up in IntelliSense.

The following table shows the values of the ColumnTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
CLCOL_I2 | 2 | A 16-bit integer. This value corresponds to the VARTYPE value VT_I2.
CLCOL_I4 | 3 | A 32-bit integer. This value corresponds to the VARTYPE value VT_I4.
CLCOL_R4 | 4 | A single precision floating point number. This value corresponds to the VARTYPE value VT_R4.
CLCOL_R8 | 5 | A double precision floating point number. This value corresponds to the VARTYPE value VT_R8.
CLCOL_CY | 6 | A 64-bit integer used to store a currency value. This value corresponds to the VARTYPE value VT_CY. Monetary values stored using this type are scaled by 10,000 (4 decimal places). For example, the value 86900 would correspond to a currency value of $8.69 in the US. This is also the same as the money datatype used by SQL7.
CLCOL_DATE | 7 | A double precision floating point number used to store a date/time value. This value corresponds to the VARTYPE value VT_DATE.
CLCOL_DISPATCH | 9 | A reference to an object that supports scripting/automation (inherits from IDispatch). This value corresponds to the VARTYPE value VT_DISPATCH.
CLCOL_BOOL | 11 | A boolean. This value corresponds to the VARTYPE value VT_BOOL. Do not confuse this with the C++ type BOOL, which is 4 bytes.
CLCOL_UNKNOWN | 13 | A pointer to an IUnknown-based interface that, presumably, does not support scripting/automation (inherits from IUnknown). This value corresponds to the VARTYPE value VT_UNKNOWN.
CLCOL_STRING | 14 | A pointer to a string in the private heap maintained by every ContentListFactory object. There is no corresponding VARTYPE value.
CLCOL_VARIANTARRAY | 15 | A pointer to a SAFEARRAY. The corresponding variant type is VT_ARRAY or VT_VARIANT.

Note

  • With the exception of CLCOL_STRING and CLCOL_VARIANTARRAY, these types are identical to the corresponding VARTYPE and share the same constant value. Indeed, they may be used as a VARTYPE.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.Count Property (PIA)

The Count property is a read-only value that contains the current number of columns in the schema.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property Count As Integer
[C#]

Get method:

using Microsoft.CommerceServer.Interop.Caching;
…
public void Count {get;}

Property Value

The current number of columns in the schema.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


ContentListSchema.Locked Property (PIA)

The Locked property is a read/write Boolean that indicates whether the ContentListSchema object can be modified. A value of True indicates that the schema is locked and cannot be modified. A value of False indicates that the schema is not locked and can be modified. Once the object is in use it can no longer be modified.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Property Locked As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public bool Locked {get; set; }

Property Value

A bool that specifies the schema lock setting. Since schemas, once locked, cannot be unlocked, only the first call to this property with the Locked parameter set to True will have any effect.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A ContentListSchema object becomes permanently locked as soon as this property is set to true. Once locked, the contained schema cannot be modified or unlocked. ContentListFactory objects will lock the schema as soon as any rows are allocated or any ContentList objects are created, whichever occurs first.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

ContentListSchema Class


LRUCache Class (PIA)

Use this object to support the creation, storage, and retrieval of name/value pairs, referred to as elements, from a cache in memory. The LRUCache object functions similarly to the Dictionary object, except that it only stores a limited number of elements, and internally ranks them according to use. When the cache is full and a new element needs to be added, the least recently used element is removed from the cache to make room for the new element.

Methods

Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)


LRUCache Methods (PIA)

Methods

Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.


LRUCache.Flush Method (PIA)

Use this method to remove the specified element from the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Sub Flush(
  Optional bstrKey As String
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void Flush(
  string bstrKey
);

Parameters

[Visual Basic .NET]
bstrKey
An optional String that contains the name of the element to be removed from the cache.
[C#]
bstrKey
A string that contains the name of the element to be removed from the cache. Set to Type.Missing in order to not specify a name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If no element is specified, all elements are removed.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


LRUCache.FlushAll Method (PIA)

Use this method to remove all elements from the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Sub FlushAll()
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void FlushAll();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


LRUCache.Insert Method (PIA)

Use this method to add an element to the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Sub Insert(
  bstrKey As String,
  ByRef pvarValue As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void Insert(
  string bstrKey,
  ref object pvarValue
);

Parameters

[Visual Basic .NET]
bstrKey
A String that contains the name of the element to be added to the cache.
pvarValue
An Object that contains the value of the element.
[C#]
bstrKey
A string that contains the name of the element to be added to the cache.
pvarValue
An object that contains the value of the element.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'oManAd is an Object that references an ad.
oLRUCache.Insert("ManufacturerAd", oManAd)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


LRUCache.Lookup Method (PIA)

Use this method to retrieve the value of an element from the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Function Lookup(
  bstrKey As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public object Lookup(
  string bstrKey
);

Parameters

[Visual Basic .NET]
bstrKey
A String that contains the name of the element to be retrieved.
[C#]
bstrKey
A string that contains the name of the element to be retrieved.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the value of the specified element.

[C#] This method returns an object containing the element value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

Example

' oFavAd is an Object
oFavAd = myLRUCache.Lookup("Favorite Ad")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


LRUCache.LookupObject Method (PIA)

Use this method to retrieve an object from the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Function LookupObject(
  bstrKey As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public object LookupObject(
  string bstrKey
);

Parameters

[Visual Basic .NET]
bstrKey
A String that contains the name of the object to be retrieved.
[C#]
bstrKey
A string that contains the name of the object to be retrieved.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object.

[C#] This method returns an object containing the retrieved information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Set oMyObject = oLRUCache.LookupObject("My Object")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


LRUCache.SetSize Method (PIA)

Use this method to set the maximum size of the cache.

Definition

[Visual Basic .NET]
Import Microsoft.CommerceServer.Interop.Caching
…
Public Sub SetSize(
  lSize As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void SetSize(
  int lSize
);

Parameters

[Visual Basic .NET]
lSize
An Integer that specifies the size of the cache.
[C#]
lSize
An int that specifies the size of the cache.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

CacheManager Class

LRUCache Class


RowCollection Class (PIA)

Use this object to access data contained in a ContentList object and its corresponding ContentListFactory object. Some RowCollection objects allow access to all of the rows in these objects. Other RowCollection objects allow access to a calculated subset of the rows in these objects.

This object supports the IEnumerable interface. Use the GetEnumerator method on this interface to iterate through the collection.

Methods

Method | Description
GetEnumerator | Returns an enumerator for RowCollection objects.
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.

Properties

Property | Type | Description
Count | Integer | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | Boolean | Contains a Boolean that returns True when the end of the collection has been reached. This property is read-only.
Fields | ADODB26Lib.Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | Integer | Stores the position of the current row, starting from zero (0). This property is read-only.

Remarks

[Visual Basic .NET]

The RowCollection object is a dependent object. Obtain a reference to it by using the following properties and methods:

  • ContentList.ActiveRows
  • ContentList.AllRows
  • ContentList.Search
  • ContentListFactory.AllRows
  • ContentListFactory.Search
[C#]

The RowCollection object is a dependent object. Obtain a reference to an object that implements the IRowCollection interface by calling one of the following methods/properties:

  • ContentList.ActiveRows
  • ContentList.AllRows
  • ContentList.Search
  • ContentListFactory.AllRows
  • ContentListFactory.Search

Note that the above methods return an IRowCollection interface that will need to be cast to a RowCollection object, as follows:

RowCollection rc = (RowCollection)ContentList.ActiveRows;

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)


RowCollection Methods (PIA)

Methods

Method | Description
GetEnumerator | Returns an enumerator for RowCollection objects.
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.


RowCollection.GetEnumerator Method (PIA)

Use this method to retrieve an enumerator for the RowCollection object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Function GetEnumerator () As IEnumerator
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public IEnumerator GetEnumerator ();

Return Values

If successful, GetEnumerator returns an IEnumerator object describing a set of RowCollection objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


RowCollection.MoveFirst Method (PIA)

Use this method to set the current row to be the first row in a RowCollection object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub MoveFirst()
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void MoveFirst();

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveFirst()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


RowCollection.MoveNext Method (PIA)

Use this method to set the current row to be the row that is one row beyond the current row. In other words, the next row in the collection.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public Sub MoveNext()
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public void MoveNext();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveNext()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


RowCollection Properties (PIA)

Properties

Property | Type | Description
Count | Integer | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | Boolean | Contains a Boolean that returns True when the end of the collection has been reached. This property is read-only.
Fields | ADODB26Lib.Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | Integer | Stores the position of the current row, starting from zero (0). This property is read-only.


RowCollection.Count Property (PIA)

The Count property is a read-only Integer that contains the number of rows in the collection.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property Count As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int Count {get; }

Property Value

This property returns an int containing the number of rows in the RowCollection object.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


RowCollection.EOF Property (PIA)

The EOF property is a read-only Boolean that returns True when the end of the collection has been reached.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property EOF As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public bool EOF {get; }

Property Value

This property returns a bool containing an indication of whether row iteration is complete.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll )

See Also

RowCollection Class


RowCollection.Fields Property (PIA)

The Fields property is a read-only Fields collection object that contains the Field objects for the current row.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
Improts ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Caching;
using ADODB26Lib;                              //For Fields
…
public Fields Fields {get; }
[C#]

Return Values

This property returns an ADODB26Lib.Fields collection.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Fields object associated with this property corresponds to the current row in the RowCollection object. When the EOF property is True, indicating that the current row is set beyond the actual rows in the collection, accessing this property will result in an error.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


RowCollection.RowNum Property (PIA)

The RowNum property is a read-only number that contains the position of the current row within the RowCollection object. Row positions begin at zero (0), not one (1).

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Caching
…
Public ReadOnly Property RowNum As Integer
[C#]
using Microsoft.CommerceServer.Interop.Caching;
…
public int RowNum {get; }
[C#]

Return Values

This property returns an int containing the position of the current row in the RowCollection object. Row positions begin at zero (0), not one (1).

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The value of this property corresponds to the current row in the RowCollection object. When the EOF property is True, indicating that the current row is set beyond the actual rows in the collection, accessing this property will result in an error.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Caching

Platforms: Windows 2000, Windows .NET Server family

Assembly: cachecomplib (in cachecomplib.dll)

See Also

RowCollection Class


Microsoft.CommerceServer.Interop.Catalog

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop.Catalog namespace.

Class | Description
CatalogManager3 | Allows management of catalogs across the entire Product Catalog System.
CatalogSets | Works with catalog sets in the Product Catalog System.
CatalogSets2 | Works with catalog sets in the Product Catalog System.
CatalogToVendorAssociation | Allows a catalog to be associated with particular vendor.
Category | Allows management of a product hierarchy within a particular catalog.
DataFunctions | Performs locale-based formatting, parsing, and value range checking in a site.
Product3 | Allows manipulation of the relationships between a product variant and a product category.
ProductCatalog3 | Allows creation, deletion, and modification of catalog data.


CatalogManager3 Class (PIA)

Use this object to work with the entire Product Catalog System. The methods and properties of this object interact with all catalogs contained in the Product Catalog System.

Methods

Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Use this method to export updated catalog data to an Extensible Markup Language (XML) file.
ExportCSV | Exports catalog data as a comma-separated values (CSV) format file.
ExportXML | Exports catalog data as an Extensible Markup Language (XML) format file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified product or category definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a comma-separated values (CSV) format file as catalog data.
ImportXML | Imports an XML format file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Use this method to change the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.

Properties

Property | Type | Description
Catalogs | ADODB26Lib._Recordset | Stores a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | ADODB26Lib._Recordset | Stores a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | ADODB26Lib._Recordset | This property is obsolete.
ProductDefinitions | ADODB26Lib._Recordset | Stores a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | ADODB26Lib._Recordset | Stores a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.

Remarks

Some methods of the CatalogManager object cannot be called in a transacted object. They are the CreateCatalog, DeleteCatalog, GenerateCustomCatalog, ImportCSV, ImportXML, and RegenerateFreeTextSearchIndex methods. These methods involve the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

Binding to the CatalogManager in a COM+ component that has either the Required or Requires New property set generates a run-time error.

Many CatalogManager objects use the PropertyAttribute recordset to record property definitions found in the CatalogAttributes table. For more information, see PropertyAttribute Recordset.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)


CatalogManager3 Methods (PIA)

Methods

Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Use this method to export updated catalog data to an Extensible Markup Language (XML) file.
ExportCSV | Exports catalog data as a comma-separated values (CVS) format file.
ExportXML | Exports catalog data as an Extensible Markup Language (XML) format file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified product or category definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a comma-separated values (CVS) format file as catalog data.
ImportXML | Imports an XML format file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Use this method to change the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.


CatalogManager3.AddCatalogAttribute Method (PIA)

Use this method to add an attribute to a Catalog object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddCatalogAttribute(
  strAttributeName As String,
  eDataType  As CatalogDataTypeEnum,
  Optional varMaxLength As Object,
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddDefinitionProperty(
  string strAttributeName,
  CatalogTypeEnum eDataType,
  Object varMaxLength,
);

Parameters

[Visual Basic .NET]
strAttributeName
A String that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength
A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.
[C#]
strAttributeName
A string that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength
An object that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C#] 0x88980117 [Visual Basic .NET] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C#] 0x88980074 [Visual Basic .NET] &H88980074 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C#] 0x88980040 [Visual Basic .NET] &H88980040 | The length specified for this property does not lie between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C#] 0x889800A6 [Visual Basic .NET] &H889800A6 | The enumeration or filename data types cannot be used for creating property attributes
E_CAT_BUILTIN_CATALOG_ATTRIBUTE | [C#] 0x889800B0 [Visual Basic .NET] &H889800B0 | The catalog attribute that you specified is a built in catalog attribute and hence cannot be added or removed.
E_CAT_INVALID_DATATYPE | [C#] 0x88980074 [Visual Basic .NET] &H88980074 | The datatype you specified is invalid.
E_CAT_MAX_ATTRIBUTES | [C#] 0x88980118 [Visual Basic .NET] &H88980118 | You have exceeded the maximum limit of 100 attributes that can be created
E_CAT_CATALOG_ATTR_EXISTS | [C#] 0x88980110 [Visual Basic .NET] &H88980110 | The catalog attribute that you specified already exists.

Remarks

The varMaxLength parameter applies only when the eDataType parameter equals cscString. The minimum value is 1 and the maximum value is 4000. The varMaxLength parameter is ignored for all other data types.

Each catalog is limited to 100 attributes.

Catalog attribute names, and therefore the strAttributeName parameter, are limited to a maximum length of 35 characters and cannot contain any of the following characters:

  • Period (.)
  • Comma (,)
  • Double quote (")
  • Left square bracket ([)
  • Right square bracket (])

The following table shows the values of the CatalogDataTypeEnum enumeration that are valid for this method, and shows their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server Money data type.
cscText | 10 | Indicates a Microsoft SQL Server Text data type.
cscInvalid | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.


CatalogManager3.AddDefinitionProperty Method (PIA)

Use this method to add an existing property to an existing category or product definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddDefinitionProperty(
  strDefinitionName As String,
  strPropertyName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddDefinitionProperty(
  string strDefinitionName,
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition to which the property will be added.
strPropertyName
A String that contains the name of the property.
[C#]
strDefinitionName
A string that contains the name of the definition to which the property will be added.
strPropertyName
A string that contains the name of the property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property Names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The definition you specified does not exist.
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_IN_DEFINITION | [C#] 0x8898000 [Visual Basic .NET] &H889800D | The property you specified is already part of that definition.
E_CAT_ERROR_VARIANT_PROP | [C#] 0x889800A [Visual Basic .NET] &H8898003 | A variant property cannot be added to a Category definition.

Remarks

This method adds a property to a definition. Any products or categories created from the definition will also have the property. A property can only be added to a definition once. A property cannot be used in a product definition as both a property and a variant property.

[Visual Basic .NET]

Example

myCatalogManager.AddDefinitionProperty("Printers", "Manufacturer")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionVariantProperty

CatalogManager3.RemoveDefinitionProperty


CatalogManager3.AddDefinitionVariantProperty Method (PIA)

Use this method to add a variant property to a definition. This method is similar to the AddDefinitionProperty method. The properties added with this method will only be used by product variants.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddDefinitionVariantProperty(
  strDefinitionName As String,
  strPropertyName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddDefinitionVariantProperty(
  string strDefinitionName,
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition to which the specified variant property will be added.
strPropertyName
A String that contains the name of the property to be added to the specified definition.
[C#]
strDefinitionName
A string that contains the name of the definition to which the specified variant property will be added.
strPropertyName
A string that contains the name of the property to be added to the specified definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The definition you specified does not exist.
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_IN_DEFINITION | [C#] 0x8898000 [Visual Basic .NET] &H889800D | The property you specified is already part of that definition.
E_CAT_ERROR_VARIANT_PROP | [C#] 0x889800A [Visual Basic .NET] &H8898003 | A variant property cannot be added to a category definition.

Remarks

This method adds a variant property to a definition. Any product variants created from the definition will also have the property. A property can be added to a definition only once. A property cannot be used in a product definition as both a property and a variant property.

[Visual Basic .NET]

Example

myCatalogManager.AddDefinitionVariantProperty("T-Shirts", "Size")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionProperty

CatalogManager3.RemoveDefinitionProperty


CatalogManager3.AddPropertyAttribute Method (PIA)

Use this method to add a value to the list of defined values for the specified enumeration.

Definition

[Visual Basic .NET]
Public Sub AddPropertyAttribute Method(
  strAttributeName As String,
  eDataType  As CatalogDataTypeEnum,
  Optional varMaxLength As Object,
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddPropertyAttribute (
  string strAttributeName,
  CatalogTypeEnum eDataType,
  Object varMaxLength,
);

Parameters

[Visual Basic .NET]
strAttributeName
A String that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength
A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.
[C#]
strAttributeName
A String that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength
A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C#] 0x8898011 [Visual Basic .NET] &H8898017 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C#] 0x8898007 [Visual Basic .NET] &H8898004 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C#] 0x8898004 [Visual Basic .NET] &H8898000 | The length specified for this property is not between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C#] 0x889800A [Visual Basic .NET] &H8898006 | The enumeration or filename data types cannot be used for creating property attributes.
E_CAT_INBUILT_PROPERTY | [C#] 0x8898003 [Visual Basic .NET] &H889800E | The property name you specified is used as a Catalog Management Inbuilt property name.
E_CAT_BUILTIN_ATTRIBUTE | [C#] 0x889800A [Visual Basic .NET] &H8898007 | The property attribute that you specified is a built-in attribute and hence cannot be added or removed from the catalog system.
E_CAT_INVALID_DATATYPE | [C#] 0x8898007 [Visual Basic .NET] &H8898004 | The datatype you specified is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_MAX_ATTRIBUTES | [C#] 0x8898011 [Visual Basic .NET] &H8898018 | You have exceeded the maximum limit of 100 attributes that can be created.
E_CAT_ATTRIBUTE_EXISTS | [C#] 0x8898010 [Visual Basic .NET] &H889801F | The property Attribute that you specified already exists.

Remarks

The varMaxLength parameter applies only when the eDataType parameter equals cscString. The minimum value is 1 and the maximum value is 4000. The varMaxLength parameter is ignored for all other data types.

Each catalog is limited to 100 attributes.

Property attribute names, and therefore the strAttrName parameter, are limited to a maximum length of 35 characters, and cannot contain any of the following characters:

  • Period (.)
  • Comma (,)
  • Double quote (")
  • Left square bracket ([)
  • Right square bracket (])

The following table shows the values of the CatalogDataTypeEnum enumeration that are valid for this method, and shows their associated names, and describes their use.

Name | Value | Description
CscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
CscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
CscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
CscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
CscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
CscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
CscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
CscCurrency | 7 | Indicates a Microsoft SQL Server Money data type.
CscText | 10 | Indicates a Microsoft SQL Server Text data type.
CscInvalid | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.AddPropertyValue Method (PIA)

Use this method to add a value to the list of defined values for the specified enumeration.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddPropertyValue(
  strPropertyName As String,
  strLegalValue As String
  strLang As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddPropertyValue(
  string strPropertyName,
  string strLegalValue
  string strLang
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the enumeration property for which a new value will be defined.
strLegalValue
A String that contains the new value.
strLang
A String that contains the new value.
[C#]
strPropertyName
A string that contains the name of the enumeration property for which a new value will be defined.
strLegalValue
A string that contains the language identifier.
strLang
A string that contains the language identifier.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_ENUMERATED_VALUE | [C#] 0x889800E [Visual Basic .NET] &H8898009 | The value you specified for the enumerated property exceeds 128 characters
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009 [Visual Basic .NET] &H889800E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_NOT_ENUM | [C#] 0x8898000 [Visual Basic .NET] &H8898007 | The property you specified is not a cscEnumeration data-type. This operation can only be performed on cscEnumeration data types.
E_CAT_VALUE_ALREADY_ADDED | [C#] 0x8898000 [Visual Basic .NET] &H8898008 | The enumerated value you specified is already present in the list for this property.

Remarks

The AddPropertyValue method is used only for properties whose data type is cscEnumeration.

This method adds a new value to the list of defined values for an enumeration property. Any attempts by a client to set this property to a value other than one of the legal values will result in an error. This method is useful for automatic validation against properties that only have a small, fixed set of values. For example, a Color property may have red, green, and blue as the only defined values.

[Visual Basic .NET]

Example

myCatalogManager.AddPropertyValue("color", "Blue","en-US")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.GetPropertyValues

CatalogManager3.RemovePropertyValue

Table of Language Culture Names, Codes, and ISO Values


CatalogManager3.CreateCatalog Method (PIA)

Use this method to create a new catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Function CreateCatalog(
  strCatalogName As String,
  Optional strProductID As String,
  Optional strProductVariantID As Object,
  Optional lcidLocale As Object,
  Optional strCurrency As Object,
  Optional strWeightMeasure As Object,
  Optional dtStartDate As Object,
  Optional dtEndDate As Object,
  Optional vrDefaultLanguage As Object,
  Optional vrReportingLanguage As Object,
  Optional fVirtualCatalog As Boolean
) As IProductCatalog
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public  IProductCatalog CreateCatalog(
  string strCatalogName,
  string strProductID,
  object strProductVariantID,
  object lcidLocale,
  object strCurrency,
  object strWeightMeasure,
  object dtStartDate,
  object dtEndDate,
  object vrDefaultLanguage,
  object vrReportingLanguage,
  Boolean fVirtualCatalog,
);

Parameters

[Visual Basic .NET]
strCatalogName
A String that contains the name of the catalog to be created. See the Remarks section for a list of restricted characters.
strProductID
A String that contains the product ID property.
strProductVariantID
An Object that contains the product variant ID property.
lcidLocale
An Object that contains the locale ID (LCID) of the catalog to be created.
strCurrency
An Object that contains the currency type of the catalog to be created.
strWeightMeasure
An Object that contains the unit of weight or measure of the catalog to be created.
dtStartDate
An Object of subtype System.DateTime that contains the start date.
dtEndDate
An Object of subtype System.DateTime that contains the end date.
vrDefaultLanguage
An Object that contains the default language identifier. The default value is the system default language.
vrReportingLanguage
An Object that contains the reporting language identifier. The default value is the value of the vrDefaultLanguage parameter, if supplied; otherwise, it is the system default language.
fVirtualCatalog
A Boolean that specifies whether to create a virtual Catalog object. A value of True specifies create a virtual Catalog object. A value of False specifies create a base Catalog object. The default value is False.
[C#]
strCatalogName
A string that contains the name of the catalog to be created. See the Remarks section for a list of restricted characters.
strProductID
A string that contains the product ID property.
strProductVariantID
An object that contains the product variant ID property. Optionally, specify no product variant ID by setting this to Type.Missing.
lcidLocale
An object that contains the locale ID (LCID) of the catalog to be created. Optionally, specify no locale ID by setting this to Type.Missing.
strCurrency
An object that contains the currency type of the catalog to be created. Optionally, specify no currency type by setting this to Type.Missing.
strWeightMeasure
An object that contains the unit of weight or measure of the catalog to be created. Optionally, specify no unit of weight or measure by setting this to Type.Missing.
dtStartDate
An object that contains the start date. Optionally, specify no start date by setting this to Type.Missing.
dtEndDate
An object of subtype DATE that contains the end date. Optionally, specify no end date by setting this to Type.Missing.
VrDefaultLanguage
An object that contains the default language identifier. The default value is the system default language.
VrReportingLanguage
An object that contains the reporting language identifier. The default value is the value of the vrDefaultLanguage parameter, if supplied; otherwise, it is the system default language.
fVirtualCatalog
A Boolean that specifies whether to create a virtual Catalog object. A value of True specifies create a virtual Catalog object. A value of False specifies create a base Catalog object. The default value is False.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an IProductCatalog interface to the ProductCatalog object that was created.

[C#] This method returns the IProductCatalog interface to the new catalog.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. The strCatalogNames parameter cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the following nine reserved characters: " [ ] , ' ( )#. You should not use these characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009E [Visual Basic .NET] &H8898009E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters: .,"[]
E_CAT_PRODID_DOESNT_EXIST | [C#] 0x88980010 [Visual Basic .NET] &H88980010 | The ProductID you requested to use for this Catalog does not exist in the Catalog System. You must first create the Property, after which you may create the Catalog that is based on it.
E_CAT_VARIANTID_DOESNT_EXIST | [C#] 0x88980061 [Visual Basic .NET] &H88980061 | The VariantID you requested to use for this Catalog does not exist in the Catalog System. You must first create the Property, after which you may create the Catalog that is based on it.
E_CAT_PRODUCTID_MULTILINGUAL | [C#] 0x889800E2 [Visual Basic .NET] &H889800E2 | The Property that you specified to be used as the ProductID is a Multilingual property. A multilingual property cannot be used as a ProductID for a catalog
E_CAT_INVALID_DATATYPE_FOR_PRODUCTID | [C#] 0x88980075 [Visual Basic .NET] &H88980075 | The Property that you specified for the ProductID has a text, enumeration, filepath, float, money, datetime or boolean data type. A property with any of these data type cannot be used as a ProductID for a catalog
E_CAT_CATALOG_EXISTS | [C#] 0x88980001 [Visual Basic .NET] &H88980001 | The Catalog name you specified already exists.

Remarks

If variants are to be used in this catalog, you must provide a property name in the optional strProductVariantID parameter. If this parameter is not specified upon creation of the catalog, any attempt to create a product variant in that catalog will fail.

If the strProductID or strProductVariantID parameters are of type cscString, cscEnumeration, or cscFileName, they are limited to a length of 256 characters.

The returned ProductCatalog object will be pre-initialized and ready for use.

Notes

  • This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.
  • Catalog names, and therefore the strCatalogName parameter, cannot begin with the pound sign (#) and cannot contain any of the following characters:
    • Blank space ( )
    • Double quote (")
    • Comma (,)
    • Period (.)
    • Left square bracket ([)
    • Right square bracket (])
[Visual Basic .NET]

Example

oNewCatalog = myCatalogManager.CreateCatalog( _
  "NewCatalog", "ItemNum", "SKU")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.DeleteCatalog

CatalogManager3.GetCatalog


CatalogManager3.CreateCategoryDefinition Method (PIA)

Use this method to create a new category definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub CreateCategoryDefinition(
  strDefinitionName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void CreateCategoryDefinition(
  string strDefinitionName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the new category definition.
[C#]
strDefinitionName
A string that contains the name of the new category definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C#] 0x8898000 [Visual Basic .NET] &H889800A | The Definition you specified already exists.
E_CAT_DEFN_NAME_EXISTS_AS_PRODUCT | [C#] 0x8898004 [Visual Basic .NET] &H8898004 | A product definition with the name you specified already exists. Definition names should be unique across Category and Product definitions.

Remarks

Category and product definition names must be globally unique across the entire Product Catalog System. It is not possible to have a category definition and a product definition with the same name.

The initial definition is empty when it is created. To add individual properties to the definition, use the AddDefinitionProperty method.

[Visual Basic .NET]

Example

myCatalogManager.CreateCategoryDefinition("Housewares")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionProperty

CatalogManager3.CreateProductDefinition

CatalogManager3.DeleteDefinition


CatalogManager3.CreateProductDefinition Method (PIA)

Use this method to create a new product definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub CreateProductDefinition(
  strDefinitionName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void CreateProductDefinition(
  string strDefinitionName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the new product definition.
[C#]
strDefinitionName
A string that contains the name of the new product definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C#] 0x8898000 [Visual Basic .NET] &H889800A | The definition you specified already exists.
E_CAT_DEFN_NAME_EXISTS_AS_CATEGORY | [C#] 0x8898004 [Visual Basic .NET] &H8898003 | A category definition with the name you specified already exists. Definition names should be unique across Category and Product definitions.

Remarks

Category and product definition names must be globally unique across the entire Product Catalog System. It is not possible to have a category definition and a product definition with the same name.

The initial definition is empty when it is created. To add individual properties to the definition, use the AddDefinitionProperty or AddDefinitionVariantProperty method.

[Visual Basic .NET]

Example

myCatalogManager.CreateProductDefinition("Microwave")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionProperty

CatalogManager3.AddDefinitionVariantProperty

CatalogManager3.CreateCategoryDefinition

CatalogManager3.DeleteDefinition


CatalogManager3.CreateProperty Method (PIA)

Use this method to create a new property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function CreateProperty(
  strPropertyName As String,
  eDataType As CatalogDataTypeEnum,
  Optional varMaxLength As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset CreateProperty(
  string strPropertyName,
  CatalogDataTypeEnum eDataType,
  object varMaxLength
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the new property. This parameter can only contain characters that are acceptable in XML tags.
eDataType
An enumeration value that specifies the data type of the new property. See the Remarks section for valid values.
varMaxLength
An Object that contains the maximum length for the property. Even though this parameter is an optional value it must be given if the data type of the property is cscString. Properties of data type cscEnumeration have a fixed default value of 128, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256, which cannot be changed.
[C#]
strPropertyName
A string that contains the name of the new property. This parameter can only contain characters that are acceptable in XML tags.
eDataType
An enumeration value that specifies the data type of the new property. See the Remarks section for valid values.
varMaxLength
An object that contains the maximum length for the property. Even though this parameter is an optional value it must be given if the data type of the property is cscString. Properties of data type cscEnumeration have a fixed default value of 128, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256, which cannot be changed. Specify no maximum length by setting this to Type.Missing.

Return Values

If this method completes successfully, it returns the _Recordset interface to a Recordset object that contains the property attributes.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C#] 0x88980074 [Visual Basic .NET] &H88980074 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C#] 0x88980040 [Visual Basic .NET] &H88980040 | The length specified for this property does not lie between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C#] 0x889800A6 [Visual Basic .NET] &H889800A6 | The enumeration or filename data types cannot be used for creating property attributes.
E_CAT_INBUILT_PROPERTY | [C#] 0x8898003E [Visual Basic .NET] &H8898003E | The property name you specified is used as a Catalog Management Inbuilt property name.
E_CAT_PROP_EXISTS | [C#] 0x88980003 [Visual Basic .NET] &H88980003 | The property name you specified already exists.

Remarks

[Visual Basic .NET]

The recordset returned by this property is valid only if it is accessed successfully.

This method returns the _Recordset interface to a single-row Recordset object containing the newly created property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

The following table shows the values of the CatalogDataTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned) and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308 and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308 and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 255 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server Money data type.
cscFilePath | 8 | Indicates a String that holds a file path.
cscEnumeration | 9 | Indicates an Integer associated with a defined constant.
cscInvalid | -1 | Reserved for future use.
[C#]

The ppRSProperty parameter contains valid data only if the property was accessed successfully.

This method returns a single-row Recordset object containing the newly created property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

The following table shows the values of the CatalogDataTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned) and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308 and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308 and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 255 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server Money data type.
cscFilePath | 8 | Indicates a String that holds a file path.
cscEnumeration | 9 | Indicates an Integer associated with a defined constant.
cscInvalid | -1 | Reserved for future use.
[Visual Basic .NET]

Example

'varMaxLength is an Object
'cscString is an enum of type cscEnumeration
varMaxLength = 128
rsNewPropAttribs = myCatalogManager.CreateProperty( _
  "Format", cscString, varMaxLength)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.DeleteProperty

CatalogManager3.GetPropertyAttributes

CatalogManager3.SetPropertyAttributes


CatalogManager3.DeleteCatalog Method (PIA)

Use this method to delete a catalog and derived custom catalogs from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteCatalog(
  strCatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteCatalog(
  string strCatalogName
);

Parameters

[Visual Basic .NET]
strCatalogName
A String that contains the name of the catalog to be deleted.
[C#]
strCatalogName
A string that contains the name of the catalog to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters: " [ ] , ' ( )#. You should not use these reserved characters.
E_CAT_CATALOG_EXPORT_IN_PROGRESS | [C#] 0x88980058 [Visual Basic .NET] &H88980058 | The catalog you specified is currently being exported or imported. This catalog or its associated languages cannot be deleted.

Remarks

Notes

  • This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.
  • Deleting a catalog will also delete any custom catalogs that were derived from it.
[Visual Basic .NET]

Example

myCatalogManager.DeleteCatalog("OurStore")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateCatalog


CatalogManager3.DeleteDefinition Method (PIA)

Use this method to delete a definition from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteDefinition(
  strDefinitionName As String,
  Optional fForceDelete As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteDefinition(
  string strDefinitionName,
  bool fForceDelete
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition to be deleted.
fForceDelete
A Boolean that specifies whether to force a deletion. A value of True indicates that the definition should be deleted even if it is currently being used in a catalog. A value of False indicates that the definition should be deleted only if it is not currently being used in a catalog. The default value is False.
[C#]
strDefinitionName
A string that contains the name of the definition to be deleted.
fForceDelete
A bool that specifies whether to force a deletion. A value of True indicates that the definition should be deleted even if it is currently being used in a catalog. A value of

False indicates that the definition should be deleted only if it is not currently being used in a catalog.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The Definition you specified does not exist.
E_CAT_DEFINITION_USED_IN_CATALOG | [C#] 0x8898000 [Visual Basic .NET] &H889800C | You cannot delete the Definition because it is still being used by one or more Catalogs. To delete the Definition, first remove all products and/or categories based on that Definition from all Catalogs.

Remarks

Use a value of True for the fForceDelete parameter with caution, because the category or product definition, and all categories and products that are based on them in all catalogs will also be deleted. This could result in data loss.

[Visual Basic .NET]

Example

myCatalogManager.DeleteDefinition("T-Shirts", False)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateCategoryDefinition

CatalogManager3.CreateProductDefinition


CatalogManager3.DeleteProperty Method (PIA)

Use this method to delete a property from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteProperty(
  strPropertyName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteProperty(
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the property to be deleted.
[C#]
strPropertyName
A string that contains the name of the property to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_PROP_DOESNT_EXIST | [C#] 0x88980005 [Visual Basic .NET] &H88980005 | The property name you specified does not exist.
E_CAT_PROP_STILL_IN_DEF | [C#] 0x88980004 [Visual Basic .NET] &H88980004 | The property you specified still resides in one or more Product or Category Definitions. To perform this operation, first remove the property from the Product or Category Definitions.
E_CAT_PROP_IS_ID | [C#] 0x88980011 [Visual Basic .NET] &H88980011 | The property is currently being used as either the Product or Product-Variant unique ID column in one or more Catalogs. All Catalogs using this property as its unique ID must be deleted before this property can be deleted.
[Visual Basic .NET]

Example

myCatalogManager.DeleteProperty("Width")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProperty


CatalogManager3.DeltaExportXML Method (PIA)

Use this method to export updated catalog data to an Extensible Markup Language (XML) file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeltaExportXML(
  vrXML As Object,
  Optional vrTimeStamp As Object,
  Optional strCatalogsToExport As Object,
  Optional fRunSynchronously As Boolean,
  Optional eXMLFmt As CatalogXMLFmtEnum
  Optional strLang As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeltaExportXML(
  object vrXML ,
  object vrTimeStamp ,
  object strCatalogsToExport ,
  bool fRunSynchronously
  CatalogXMLFmtEnum eXMLFmt ,
  string strLang ,
);

Parameters

[Visual Basic .NET]
vrXML
An Object that contains the XML file name or IStream object that is the target of the export.
vrTimeStamp
An optional Object that contains the time stamp that specifies the limit of the export. The Variant can be of type Cdate or a String that can be converted to a valid date.
strCatalogsToExport
An optional Object that contains the catalogs to export. See the Remarks section for more information.
fRunSynchronously
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
eXMLFmt
An optional CatalogXMLFmtEnum enumeration that specifies the XML format. The default value is cscFmtElementCentric. See the Remarks section for more detail.
strLang
A String that contains the language identifier.
[C#]
vrXML
An object that contains the XML file name or IStream object that is the target of the export.
vrTimeStamp
An optional object that contains the time stamp that specifies the limit of the export. The Variant can be of type Cdate or a String that can be converted to a valid date.
strCatalogsToExport
An optional object that contains the catalogs to export. See the Remarks section for more information.
fRunSynchronously
A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
eXMLFmt
An optional CatalogXMLFmtEnum enumeration that specifies the XML format. The default value is cscFmtElementCentric. See the Remarks section for more detail.
strLang
A string that contains the language identifier.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DATE | [C#] 0x889800C3 [Visual Basic .NET] &H889800C3 | There was an error converting the date specified. Please specify a valid date.
E_CAT_INVALID_XML_FORMAT | [C#] 0x889800D9 [Visual Basic .NET] &H889800D9 | The XML format that you specified is invalid.
E_CAT_FILE_CREATION_FAILED | [C#] 0x88980018 [Visual Basic .NET] &H88980018 | The Catalog Export operation was unable to create the file you specified. Check that the file name you specified is valid and the directory that you specified exists and is not read-only.
E_CAT_IMPORT_IN_PROGRESS | [C#] 0x88980025 [Visual Basic .NET] &H88980025 | This operation cannot be started because an import operation is currently in progress.

Remarks

The following table shows the values in the CatalogXMLFmtEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscFmtElementCentric | 0 | Export in Commerce Server 2000 format. (Default)
cscFmtAttributeCentric | 1 | Export in Commerce Server 2002 format.
cscFmtXDR | 2 | Export the Commerce Server 2002 schema as XML Data Reduced (XDR). (No data)

This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ImportCSV or ImportXML method in progress. After the new thread is spawned, this method returns immediately, if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

Some characters are not valid in an XML attribute name. When a catalog is exported in the attribute-centric mode these characters are encoded in the form _xHHHH_ where HHHH is the hex value of the character. The following characters are encoded:

  • Back slash (\)
  • Forward slash (/)
  • Ampersand (&)
  • Left angle bracket (<)
  • Right angle bracket (>)
  • All characters in the range 0xF900 to 0xFFFE

Caution

  • If you call this method on a virtual catalog the resulting XML data will not include changes that are caused by changes in inclusion or exclusion rules. It will include changes inherited from a base catalog.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be stopped. Other methods should work after the interruption.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.ExportCSV Method (PIA)

Use this method to export catalog data to a comma-separated values (CSV) format file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub ExportCSV(
  strCSVDestination As String,
  strCatalogToExport As String
  Optional fRunSynchronously As Boolean,
  Optional strLang As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void ExportCSV(
  string strCSVDestination,
  string strCatalogToExport
  bool fRunSynchronously,
  string strLang
);

Parameters

[Visual Basic .NET]
strCSVDestination
A String that contains the full path and file name of the export file to be created.
strCatalogToExport
A String that contains the name of the catalog to export.
fRunSynchronously
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
strLang
A String that contains the ISO 639+1 language identifier.
[C#]
strCSVDestination
A string that contains the full path and file name of the export file to be created.
strCatalogToExport
A string that contains the name of the catalog to export.
fRunSynchronously
A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread.
strLang
A string that contains the ISO 639+1 language identifier.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C#] 0x8898006 [Visual Basic .NET] &H8898003 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x8898004 [Visual Basic .NET] &H8898002 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003 [Visual Basic .NET] &H889800D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009 [Visual Basic .NET] &H889800E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_FILE_CREATION_FAILED | [C#] 0x8898001 [Visual Basic .NET] &H8898008 | The Catalog Export operation was unable to create the file you specified. Check that the file name you specified is valid and the directory that you specified exists and is not read-only.
E_CAT_IMPORT_IN_PROGRESS | [C#] 0x8898002 [Visual Basic .NET] &H8898005 | This operation cannot be started because an import operation is currently in progress.

Remarks

The ExportCSV method can be used to output product data from the Product Catalog System in a format that can be used in other programs, such as Microsoft Excel.

This method can output product data from only one catalog at a time.

The comma-separated values (CSV) file generated only contains products. The categories, relationships, and hierarchy are not written to the CSV file.

Notes

  • This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ExportCSV, ExportXML, ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.
  • If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

Caution

  • Changes made to the catalog while an export is in progress may or may not be reflected in the output file. Additions and deletions made during the export could result in a corrupt file. Changes should be avoided during an export.
[Visual Basic .NET]

Example

myCatalogManager.ExportCSV("c:\exports\ourcatalog.csv", "OurStore")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.ExportXML

CatalogManager3.ImportCSV


CatalogManager3.ExportXML Method (PIA)

Use this method to export catalog data to an Extensible Markup Language (XML) file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub ExportXML(
  vrXML As Object,
  Optional strCatalogsToExport As Object
  Optional fRunSynchronously As Boolean
  Optional eXMLFmt As CatalogXMLFmtEnum
  Optional strLang As String,
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void ExportXML(
  Object vrXML,
  object strCatalogsToExport,
  bool fRunSynchronously
  CatalogXMLFmtEnum eXMLFmt
  string strLang,
);

Parameters

[Visual Basic .NET]
vrXML
An Object that contains the XML file name or IStream object that is the target of the export.
strCatalogsToExport
An Object that contains the catalogs to export. See the Remarks section for more information.
fRunSynchronously
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
eXMLFmt
A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
strLang
A String that contains the language identifier.
[C#]
vrXML
An Object that contains the XML file name or IStream object that is the target of the export.
strCatalogsToExport
An object that contains the catalogs to export. See the Remarks section for more information. To export all catalogs, specify Type.Missing.
fRunSynchronously
A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread.
eXMLFmt
A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
strLang
A string that contains the language identifier.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | [C#] 0x88980025 [Visual Basic .NET] &H88980025 | There was an existing import method call that had not yet completed. This method cannot run while an import is in progress.
E_CAT_FILE_CREATION_FAILED | [C#] 0x88980018 [Visual Basic .NET] &H88980018 | The method was unable to create the output file.

Remarks

If the parameter strCatalogsToExport is missing, or contains an empty string, then all catalogs are exported. Otherwise the parameter strCatalogsToExport is a comma-separated list of catalog names to be exported.

If the strLang parameter is not specified, then data will be exported in all the languages supported by the catalog. If the strLang parameter is specified, then multilingual data will be exported only in the specified language.

The following table shows the values in the CatalogXMLFmtEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscFmtElementCentric | 0 | Export in Commerce Server 2000 format. (Default)
cscFmtAttributeCentric | 1 | Export in Commerce Server 2002 format.
cscFmtXDR | 2 | Export the Commerce Server 2002 schema as XML Data Reduced (XDR). (No data)

Notes

  • This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ExportCSV, ExportXML, ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.
  • If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

Caution

  • Changes made to the catalog while an export is in progress may or may not be reflected in the output file. Additions and deletions made during the export could result in a corrupt file. Changes should be avoided during an export.
[Visual Basic .NET]

Example

myCatalogManager.ExportXML("c:\exports\ourcatalog.xml", "OurStore", 1, "en-US")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.ExportCSV

CatalogManager3.ImportXML


CatalogManager3.FreeTextSearch Method (PIA)

Use this method to perform a free-text search of catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function FreeTextSearch(
  strPhrase As String,
  Optional strCatalogsToSearch As Object,
  Optional eClassTypeRequired As Object,
  Optional strPropertiesToReturn As Object,
  Optional strPropertyToSortOn As Object,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  ByRef Optional plTotalRecordsInQuery As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset FreeTextSearch(
  string strPhrase,
  object strCatalogsToSearch,
  object eClassTypeRequired,
  object strPropertiesToReturn,
  object strPropertyToSortOn,
  bool fSortAscending,
  object lStartingRecord,
  object lRecordsToRetrieve,
  ref objectplTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
strPhrase
A String that contains the search phrase.
strCatalogsToSearch
An Object that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An Object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.
strPropertiesToReturn
An Object that contains the properties to return. This is a comma-delimited String.
strPropertyToSortOn
An Object that contains the property on which to sort. If not included, the returned recordset will be unsorted.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An Object that contains the number of the starting record to retrieve. This is an offset from the first record.
lRecordsToRetrieve
An Object that contains the number of records to retrieve starting from the starting record.
plTotalRecordsInQuery
An Object used to return the number of records returned in the search.
[C#]
strPhrase
A string that contains the search phrase.
strCatalogsToSearch
An object that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section. Optionally, specify no catalog class by setting this to Type.Missing.
strPropertiesToReturn
An object that contains the properties to return. This is a comma-delimited String. Optionally, if a single catalog is specified, specify all properties by setting this to Type.Missing.
strPropertyToSortOn
An object that contains the property on which to sort. Specify Type.Missing to return an unsorted Recordset.
fSortAscending
A bool that specifies whether to sort in ascending or descending order. A value of True indicates that the returned Recordset will be sorted in ascending order. A value of False indicates that the returned Recordset will be sorted in descending order.
lStartingRecord
An object that contains the number of the starting record to retrieve. This is an offset from the first record. Specify Type.Missing to return all records.
lRecordsToRetrieve
An object that contains the number of records to retrieve starting from the starting record. Specify Type.Missing to return all records.
plTotalRecordsInQuery
An object used to return the number of records returned in the search.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface to a Recordset object that contains the search results.

[C#] This method returns the _Recordset interface to a Recordset object that will be used to return the query results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C#] 0x8007005 [Visual Basic .NET] &H8007007 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011 [Visual Basic .NET] &H889801D | The Properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011 [Visual Basic .NET] &H889801E | The Properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | Error. The recordset will be set to NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C#] 0x8898000 [Visual Basic .NET] &H889800F | When performing a query against multiple Catalogs, you should specify the actual properties to return.

Remarks

The plTotalRecordsInQuery parameter and returned interface contain valid data only if the method completes successfully.

The FreeTextSearch method is used to perform arbitrary lexical comparisons on words or phrases in one or more catalogs. The FreeTextSearch functionality in the Product Catalog System is based on full text indexing in Microsoft SQL Server 2000, and therefore inherits keywords and operators from SQL Server 2000 for controlling the free text search.

The following table shows the values of the CatalogClassTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
CscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

The programming rules regarding the strPropertiesToReturn parameter vary depending on whether a single catalog name is passed in the strCatalogsToSearch parameter or whether multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter.

For more information, see CatalogProduct Recordset.

[Visual Basic .NET]

Example

'rsFTSResults is a recordset object
'plTotalRecordsInQuery is an Object.
'Check it after the method returns for the
'total number of records that match the query.
rsFTSResults = myCatalogManager.FreeTextSearch( _
  "red ribbons", "Craft Supplies", "", "Price", _
  True, 0, 20, plTotalRecordsInQuery)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.Query


CatalogManager3.GetAttributes Method (PIA)

Use this method to retrieve the catalog or property attributes in the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetAttributes(
  eAttributeType As CatalogAttributesEnum,
  Optional fUserDefinedOnly As Boolean
) As Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetAttributes(
  CatalogAttributeEnum eAttributeType,
  Boolean fUserDefinedOnly
);

Parameters

[Visual Basic .NET]
eAttributeType
A CatalogAttributesEnum enumeration that specifies whether to return catalog or property attributes. See the Remarks section for valid values.
fUserDefinedOnly
A Boolean that specifies whether to return only user-defined attributes. A value of True specifies returning only user-defined attributes. A value of False specifies returning all attributes. The default value is True.
[C#]
eAttributeType
A CatalogAttributesEnum enumeration that specifies whether to return catalog or property attributes. See the Remarks section for valid values.
fUserDefinedOnly
A Boolean that specifies whether to return only user-defined attributes. A value of True specifies returning only user-defined attributes. A value of False specifies returning all attributes. The default value is True.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the properties of the specified definition.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the properties of the definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.

Remarks

The following table shows the values in the CatalogAttributesEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscPropertyAttributes | 0 | Returns property attributes.
cscCatalogAttributes | 1 | Returns catalog attributes.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.GetCatalog Method (PIA)

Use this method to retrieve a specified catalog from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function GetCatalog(
  strCatalogName As String
) As IProductCatalog
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public IProductCatalog GetCatalog(
  string strCatalogName
);

Parameters

[Visual Basic .NET]
strCatalogName
A String that contains the name of the catalog to be retrieved.
[C#]
strCatalogName
A string that contains the name of the catalog to be retrieved.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the IProductCatalog interface of the ProductCatalog object that contains the catalog specified.

[C#] This method returns the IProductCatalog interface used to return the ProductCatalog object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters: " [ ] , ' ( )#. These characters should not be used.
S_FALSE | [C#] 0x0000001 [Visual Basic .NET] &H0000001 | The catalog does not exist

Remarks

The ProductCatalog object contains valid data only if the method completes successfully.

[Visual Basic .NET]

Example

oCatalog = myCatalogManager.GetCatalog("Cdcatalog")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateCatalog

CatalogManager3.DeleteCatalog


CatalogManager3.GetDefinitionProperties Method (PIA)

Use this method to return the properties of the specified catalog or product definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetDefinitionProperties(
  strDefinitionName As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetDefinitionProperties(
  string strDefinitionName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition whose properties will be returned.
[C#]
strDefinitionName
A string that contains the name of the definition whose properties will be returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the properties of the specified definition.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the properties of the definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The Definition you specified does not exist.

Remarks

The recordset returned by this method contains valid data only if the method completes successfully.

The returned Recordset contains the following fields:

Field | Data Type | Description
DefinitionID | Integer | The number that uniquely identifies the definition.
PropertyName | String, 256 characters | None
PropertyOrder | Integer | None
PropertyType | Integer | Zero (0) indicates product or category, one (1) indicates product variant.
TimeStamp | Timestamp | None

The rows of the Recordset are sorted on the PropertyOrder field.

[Visual Basic .NET]

Example

rsDefProps = myCatalogManager.GetDefinitionProperties("T-Shirts")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionProperty

CatalogManager3.AddDefinitionVariantProperty

CatalogManager3.RemoveDefinitionProperty


CatalogManager3.GetPropertyAttributes Method (PIA)

Use this method to return the attributes of the specified property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetPropertyAttributes(
  strPropertyName As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetPropertyAttributes(
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the property whose attributes will be returned.
[C#]
strPropertyName
A string that contains the name of the property whose attributes will be returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the list of attributes for the specified property

[C#] This method returns a _ADODB26Lib._Recordset interface to a Recordset object used to return the attributes of the property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table describes the exceptions that COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]

Remarks

The recordset returned by this method contains valid data only if the method completes successfully.

This method returns a single-row Recordset object containing the requested property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

[Visual Basic .NET]

Example

rsPropAttribs = myCatalogManager.GetPropertyAttributes("Size")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.SetPropertyAttributes


CatalogManager3.GetPropertyValues Method (PIA)

Use this method to return the list of values defined for an enumeration property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetPropertyValues(
  strPropertyName As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetPropertyValues(
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the enumeration property for which the defined values will be returned.
[C#]
strPropertyName
A string that contains the name of the enumeration property for which the defined values will be returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface to a Recordset object that contains the defined values in the enumeration.

[C#] This method returns a _ADODB26Lib._Recordset interface to a Recordset object used to return the property values.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]

Remarks

[Visual Basic .NET] The returned recordset contains valid data only if the method completes successfully.

[C#] The returned interface is associated with valid data only if the method completes successfully.

The returned Recordset contains the following fields:

Field | Data Type | Description
PropertyName | String 256 characters | None
Value | String 256 characters | None
[Visual Basic .NET]

Example

rsEnumValues = myCatalogManager.GetPropertyValues("Color")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddPropertyValue

CatalogManager3.RemovePropertyValue


CatalogManager3.ImportCSV Method (PIA)

Use this method to import a comma-separated-values (CSV) format file as catalog data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub ImportCSV(
  strCSVFileSource As String,
  strProductIDColumnName As String,
  strPriceColumnName As String,
  strCatalogName As String,
  Optional fUpdateOnly As Boolean
  Optional fRunSynchronously As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
 public void ImportCSV(
  string strCSVFileSource,
  string strProductIDColumnName,
  string strPriceColumnName,
  string strCatalogName,
  bool fUpdateOnly,
  bool fRunSynchronously
);

Parameters

[Visual Basic .NET]
strCSVFileSource
A String that contains the path and file name of the CSV file to import.
strProductIDColumnName
A String that contains the name of the column that provides a unique ID for products to be imported into the catalog.
strPriceColumnName
A String that contains the name of the column in the CSV file containing the product prices.
strCatalogName
A String that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with "#" or consist solely of spaces.
fUpdateOnly
A Boolean that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data. The default value is False.
fRunSynchronously
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread. The default value is False.
[C#]
strCSVFileSource
A string that contains the path and file name of the CSV file to import.
strProductIDColumnName
A string that contains the name of the column that provides a unique ID for products to be imported into the catalog.
strPriceColumnName
A string that contains the name of the column in the CSV file containing the product prices.
strCatalogName
A string that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with "#" or consist solely of spaces.
fUpdateOnly
A bool that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data.
fRunSynchronously
A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The Catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009E [Visual Basic .NET] &H8898009E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_FILE_OPEN_ERROR | [C#] 0x88980020 [Visual Basic .NET] &H88980020 | Unable to open the file . Check that the file exists and you have the necessary permissions on the file.
E_CAT_IMPORT_IN_PROGRESS | [C#] 0x88980025 [Visual Basic .NET] &H88980025 | This operation cannot be started because an import operation is currently in progress.
E_CAT_CONFLICTING_PRODUCTID | [C#] 0x88980113 [Visual Basic .NET] &H88980113 | The ProductID property you specified for this Catalog does not match the existing PrIoductID property. When importing a catalog in the update mode the ProductID property should match the existing ProductID property

Remarks

If the parameter strCatalogName specifies a catalog that does not exist, a new catalog will be created and the value of the fUpdateOnly parameter is ignored.

The ImportCSV method is used to bring existing data from a wide variety of sources into the Product Catalog System. The CSV file must conform to the following format:

  • The first row of data consists of column names, separated by commas. Rows are delimited by new lines in the text file.
  • Each subsequent row (called a data row) must have the same number of commas as the very first row. In other words, all columns in the CSV must be defined by the first row.
  • All items in the CSV file (one row per item) are assumed to be products, and are created from a common product definition. If no product definition exists in the destination catalog then one will be created during the import process.
  • Each item must specify a value for the column specified as the ProductID column, as well as for the column specified as the Price column.
  • Missing data is represented by two adjacent commas.

Notes

  • This method runs in a separate thread. Prior to spawning the thread, it checks that the specified file can be opened and that there is not an existing ExportCSV, ExportXML, ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.
  • This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.
  • If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.
[Visual Basic .NET]

Example

myCatalogManager.ImportCSV( _
  "c:\imports\ourcatalog.csv", "SKU", "Price", _
  "OurCatalog", True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.ExportCSV

CatalogManager3.ImportXML


CatalogManager3.ImportXML Method (PIA)

Use this method to import an Extensible Markup Language (XML) file as catalog data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub ImportXML(
  vrXML As Object,
  Optional fUpdateOnly As Boolean
  Optional fRunSynchronously As Boolean,
  Optional fGenerateFullTextIndexes As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void ImportXML(
  object vrXML,
  bool fUpdateOnly
  bool fRunSynchronously,
  bool fGenerateFullTextIndexes
);

Parameters

[Visual Basic .NET]
vrXML
An Object that contains the XML file name or IStream object that is the target of the import.
fUpdateOnly
A Boolean that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data. The default is False.
fRunSynchronously
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread. The default is False.
fGenerateFullTextIndexes
A Boolean that specifies whether the method should generate full text indexes. A value of True indicates that indexes should be generated. A value of False indicates that indexes should not be generated. The default is True.
[C#]
vrXML
An object that contains the XML file name or IStream object that is the target of the import.
fUpdateOnly
A bool that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data.
fRunSynchronously
A bool that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread.
fGenerateFullTextIndexes
A bool that specifies whether the method should generate full text indexes. A value of True indicates that indexes should be generated. A value of False indicates that indexes should not be generated. The default is True.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_FILE_OPEN_ERROR | [C#] 0x8898002 [Visual Basic .NET] &H8898000 | Unable to open the file. Check that the file exists and you have the necessary permissions on the file.
E_CAT_IMPORT_IN_PROGRESS | [C#] 0x8898002 [Visual Basic .NET] &H8898005 | This operation cannot be started because an import operation is currently in progress.
E_CAT_MSXML3_MISSING | [C#] 0x889800C [Visual Basic .NET] &H8898001 | The Catalog import operation was unable to instantiate the XML parser. Please check that msxml3.dll is installed and registered on this machine. Refer to the Commerce Server installation documents for more information.
E_CAT_INVALID_XML | error | There has been an error. See the error message for more information.

Remarks

When performing a partial or delta import (when updating an existing catalog by importing new or changed catalog data), it is important that the schema of the data being imported matches the schema of the existing catalog. For more information about the catalog schema, see Import Semantic.

Notes

  • This method runs in a separate thread. Prior to spawning the thread, it checks that the specified file can be opened and that there is not an existing ExportCSV, ExportXML, ImportCSV, or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.
  • This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.
  • If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.
  • The names of catalogs in the source file cannot begin with "#" or consist solely of spaces.
  • If a property existing in the catalog has one type and the property of the same name existing in the import file has a different type, the import will fail. For example, the following will cause an error: the catalog has a SKU property that is a string, and the XML file being imported has a SKU property that is an integer.
[Visual Basic .NET]

Example

myCatalogManager.ImportXML("c:\imports\ourcatalog.xml", True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.ExportXML

CatalogManager3.ImportCSV


CatalogManager3.Initialize Method (PIA)

Use this method to initialize a CatalogManager object. This method should be called once before calling any other methods or properties.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub Initialize(
  strConfigString As String,
  Optional fIsADOConnectionString As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Initialize(
  string strConfigString,
  bool fIsADOConnectionString
);

Parameters

[Visual Basic .NET]
strConfigString
A String that contains the configuration string.
fIsADOConnectionString
A Boolean that determines whether the strConfigString parameter refers to an ADO connection string or a site name. A value of True indicates an ADO connection string. A value of False indicates a site name. The default is False.
[C#]
strConfigString
A string that contains the configuration string.
fIsADOConnectionString
A bool that determines whether the strConfigString parameter refers to an ActiveX Data Object (ADO) connection string or a site name. A value of True indicates an ADO connection string. A value of False indicates a site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant Value Description
E_CAT_CATMGR_ALREADY_INITIALIZED

[C#] 0x88980062

[Visual Basic .NET] &H88980062

 The CatalogManager object has already been initialized. Each catalog manager object can be initialized only once.
E_CAT_INVALID_PARAMETER

[C#] 0x889800B6

[Visual Basic .NET] &H889800B6

 The input parameter <parameter number> is invalid
E_CAT_INVALID_NUMFULLTEXT_CATALOGS

[C#] 0x889800E8

[Visual Basic .NET] &H889800E8

 The number of fulltext catalogs to create should be between 0 and 256
E_CAT_CATALOGRESOURCE_INIT_FAILED

[C#] 0x88980030

[Visual Basic .NET] &H88980030

 Unable to read the Product Catalog Resource from the site specified. Check that the Commerce.Adminhlpr component (Adminhlpr.dll) is registered, the site name is valid, and the site contains the Product Catalog Resource.
E_CAT_INVALID_CATALOG_SCHEMA

[C#] 0x889800D8

[Visual Basic .NET] &H889800D8

 The Catalog Schema does not correspond to this version of Commerce Server 2002.
[Visual Basic .NET]

Example

myCatalogManager.Initialize(strConfigString, True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.Query Method (PIA)

Use this method to perform queries against product, variant, and category data in one or more catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function Query(
  strPhrase As String,
  Optional strCatalogsToSearch As Object,
  Optional eClassTypeRequired As Object,
  Optional strPropertiesToReturn As Object,
  Optional strPropertyToSortOn As Object,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  ByRef Optional plTotalRecordsInQuery As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Query(
  string strPhrase,
  object strCatalogsToSearch,
  object eClassTypeRequired,
  object strPropertiesToReturn,
  object strPropertyToSortOn,
  bool fSortAscending,
  object lStartingRecord,
  object lRecordsToRetrieve,
  ref object plTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
strPhrase
A String that contains the search phrase.
strCatalogsToSearch
An Object that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An Object that contains the catalog class that you want to find. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn
An Object that contains the properties to return as a comma-separated list.
strPropertyToSortOn
An Object that contains the property on which to sort.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An Object that contains the starting record to retrieve. This is an offset from the first record.
lRecordsToRetrieve
An Object that contains the number of records to retrieve, beginning from the starting record.
plTotalRecordsInQuery
An Object used to return the total number of records matching the query.
[C#]
strPhrase
A string that contains the search phrase.
strCatalogsToSearch
An object that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section. If you do not want to specify a catalog class, set to Type.Missing.
strPropertiesToReturn
An object that contains the properties to return as a comma-separated list. If a single catalog is specified, set to Type.Missing to return all properties. If multiple catalogs are specified, one or more properties must be specified.
strPropertyToSortOn
An object that contains the property on which to sort. Set to Type.Missing to indicate no sort.
fSortAscending
A bool that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order.
lStartingRecord
An object that contains the starting record to retrieve. This is an offset from the first record. If you do not want to specify a first record, set to Type.Missing.
lRecordsToRetrieve
An object that contains the number of records to retrieve, beginning from the starting record. If you do not want to specify a number, set to Type.Missing.
plTotalRecordsInQuery
An object used to return the total number of records matching the query. An object with the value Type.Missing can be used to indicate that the return value is not needed.

Return Values

If this method completes successfully, it returns the _Recordset interface to a Recordset object containing the search results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011D [Visual Basic .NET] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | Query failed. The recordset is now NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C#] 0x8898000F [Visual Basic .NET] &H8898000F | When performing a query against multiple catalogs, you should specify the actual properties to return.

Remarks

The returned Recordset object and the plTotalRecordsInQuery parameter contain valid data only if the method completes successfully. The Query method is used to perform arbitrary queries against product, product variant, and category data in one or more catalogs. The strPhrase parameter is very similar to the ADO Recordset Filter property. Simple queries should follow the key-operator-value convention (for example, length < 100). Queries whose value is a String data type should enclose that value in single quotes (for example, color = 'Blue').

More sophisticated queries can be constructed by using the AND and OR operators to group multiple clauses, such as (level > 10) OR (Name = 'Bob' AND Title='CPA').

The programming rules regarding the strPropertiesToReturn parameter vary depending on whether a single catalog name is passed in the strCatalogsToSearch parameter, or whether multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

The following table shows the values of the CatalogClassTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter.

[Visual Basic .NET]

Example

'plTotalRecordsInQuery is an existing Long.
'Examine it after the method returns to see if
'there are more records to get.
rsQueryResults = myCatalogManager.Query("Productid='blue suede'", _
  "ShoeCatalog", cscProductClass,"Price, SKU, Size", "SKU", TRUE, _
  1, 25, plTotalRecordsInQuery)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.FreeTextSearch


CatalogManager3.RebuildAllVirtualCatalogs Method (PIA)

Use this method to rebuild all the virtual catalogs in the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RebuildAllVirtualCatalogs(
  Optional fRunSynchronously As Boolean,
  Optional fForceRebuild As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RebuildAllVirtualCatalogs(
  bool fRunSynchronously,
  bool fForceRebuild
);

Parameters

[Visual Basic .NET]
fRunSynchronously
A Boolean that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously. The default value is False.
fForceRebuild
A Boolean that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuilt. A value of False indicates that only dirty catalogs will be rebuilt. The default value is False.
[C#]
fRunSynchronously
A bool that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously.
fForceRebuild
A bool that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuilt. A value of False indicates that only dirty catalogs will be rebuilt.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.

Remarks

Virtual catalogs will be rebuilt only if there has been a rule change, a product deletion, or a category deletion that would affect the contents of the catalog unless the fForceRebuild parameter is set to True.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

CatalogManager3 Class


CatalogManager3.RemoveCatalogAttribute Method (PIA)

Use this method to remove a catalog attribute from the Product Catalog System.

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveCatalogAttribute(
  strAttributeName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveCatalogAttribute(
  string strAttributeName
);

Parameters

[Visual Basic .NET]
strAttributeName
A String that contains the name of the attribute to be removed.
[C#]
strAttributeName
A string that contains the name of the attribute to be removed.

Exceptions

If the attribute specified in the strAttributeName parameter does not exist, the method will complete successfully and return S_OK.

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C#] 0x88980117 [Visual Basic .NET] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_BUILTIN_CATALOG_ATTRIBUTE | [C#] 0x889800B0 [Visual Basic .NET] &H889800B0 | The catalog attribute that you specified is a built in catalog attribute and hence cannot be added or removed.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_CATALOG_ATTR _DOES_NOT_EXIST | [C#] 0x88980112 [Visual Basic .NET] &H88980112 | The catalog attribute that you specified does not exist.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.RemoveDefinitionProperty Method (PIA)

Use this method to remove the specified property or variant property from the specified definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveDefinitionProperty(
  strDefinitionName As String,
  strPropertyName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveDefinitionProperty(
  string strDefinitionName,
  string strPropertyName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition for which the specified property will be removed.
strPropertyName
A String that contains the name of the property to be removed.
[C#]
strDefinitionName
A string that contains the name of the definition for which the specified property will be removed.
strPropertyName
A string that contains the name of the property to be removed.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property Names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The definition you specified does not exist.
E_CAT_PROP_NOT_IN_DEFINITION | [C#] 0x8898000 [Visual Basic .NET] &H889800E | The property you specified is not part of that definition.

Remarks

When you remove a property from a definition, it is also removed from any products, product variants, or categories created from that definition.

Caution

  • Use caution when using this method. In most cases, calling this method results in the deletion of data.
  • Removing the last variant property in a product family definition will convert it to a product definition and will remove all existing product variants based on this definition.
[Visual Basic .NET]

Example

myCatalogManager.RemoveDefinitionProperty("T-Shirts", "Color")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddDefinitionProperty

CatalogManager3.AddDefinitionVariantProperty

CatalogManager3.GetDefinitionProperties


CatalogManager3.RemovePropertyAttribute Method (PIA)

Use this method to remove a custom property attribute from the Product Catalog System.

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemovePropertyAttribute(
  strAttName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemovePropertyAttribute(
  string strAttName
);

Parameters

[Visual Basic .NET]
strAttName
A String that contains the name of the attribute to be removed.
[C#]
strAttrName
A string that contains the name of the attribute to be removed.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B5 [Visual Basic .NET] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C#] 0x88980117 [Visual Basic .NET] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C#] 0x88980074 [Visual Basic .NET] &H88980074 | The datatype you specified is invalid
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C#] 0x88980040 [Visual Basic .NET] &H88980040 | The length specified for this property is not between 1 and 4000.
E_CAT_BUILTIN_ATTRIBUTE | [C#] 0x889800A7 [Visual Basic .NET] &H889800A7 | The property attribute that you specified is a built in attribute and hence cannot be added or removed from the catalog system.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A2 [Visual Basic .NET] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_ATTRIBUTE_DOES_NOT_EXIST | [C#] 0x88980111 [Visual Basic .NET] &H88980111 | The property attribute that you specified does not exist

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.RemovePropertyValue Method (PIA)

Use this method to remove a defined value from an enumeration property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemovePropertyValue(
  strPropertyName As String,
  strLegalValue As String,
  Optional strLang As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemovePropertyValue(
  string strPropertyName,
  string strLegalValue,
  string strLang
);

Parameters

[Visual Basic .NET]
strPropertyName
A String that contains the name of the enumeration property from which the specified value will be removed.
strLegalValue
A String that contains the defined value to be removed from the specified enumeration property.
strLang
A String that contains the ISO 639+1 language identifier.
[C#]
strPropertyName
A string that contains the name of the enumeration property from which the specified value will be removed.
strLegalValue
A string that contains the defined value to be removed from the specified enumeration property.
strLang
A string that contains the ISO 639+1 language identifier.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_ENUMERATED_VALUE | [C#] 0x889800E [Visual Basic .NET] &H8898009 | The value you specified for the enumerated property exceeds 128 characters
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_NOT_ENUM | [C#] 0x8898000 [Visual Basic .NET] &H8898007 | The property you specified is not the "cscEnumeration" data-type. This operation can only be performed on these types of Properties.

Remarks

Caution

  • When a value is removed from an enumeration type property all products that have that property set to that value will have the value changed to null.
[Visual Basic .NET]

Example

myCatalogManager.RemovePropertyValue("Color", "Pink")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.AddPropertyValue

CatalogManager3.GetPropertyValues


CatalogManager3.RenameDefinition Method (PIA)

Use this method to rename a definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RenameDefinition(
  strOldName As String,
  strNewName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
 public void RenameDefinition(
  string strOldName,
  string strNewName
);

Parameters

[Visual Basic .NET]
strOldName
A String that contains the existing name of the definition.
strNewName
A String that contains the wanted name of the definition.
[C#]
strOldName
A string that contains the existing name of the definition.
strNewName
A string that contains the wanted name of the definition.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C#] 0x8898000 [Visual Basic .NET] &H889800A | The Definition you specified already exists.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The Definition you specified does not exist.

Remarks

This method affects every product and category using the definition.

[Visual Basic .NET]

Example

myCatalogManager.RenameDefinition("T-Shirts", "Tee-Shirts")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.RenameProperty


CatalogManager3.RenameProperty Method (PIA)

Use this method to rename a property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RenameProperty(
  strOldPropertyName As String,
  strNewPropertyName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RenameProperty(
  string strOldPropertyName,
  string strNewPropertyName
);

Parameters

[Visual Basic .NET]
strOldPropertyName
A String that contains the existing name of the property.
strNewPropertyName
A String that contains the wanted name of the property.
[C#]
strOldPropertyName
A string that contains the existing name of the property.
strNewPropertyName
A string that contains the wanted name of the property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C#] 0x889800A [Visual Basic .NET] &H8898002 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_EXISTS | [C#] 0x8898000 [Visual Basic .NET] &H8898003 | The property name you specified already exists.
E_CAT_PROP_IS_ID | [C#] 0x8898001 [Visual Basic .NET] &H8898001 | The property is currently being used as either the Product or Product-Variant unique ID column in one or more Catalogs. All Catalogs using this property as its unique ID must be deleted before this property can be deleted.
[Visual Basic .NET]

Example

myCatalogManager.RenameProperty("Weight", "Wt.")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.Search Method (PIA)

Use this method to perform searches against product, variant, and category data in one or more catalogs. This method combines the functionality of the Query and FreeTextSearch methods while adding the capability to specify the language of the returned data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function Search(
  Optional strSQLClause As Object ,
  Optional strFTSPhrase As Object ,
  Optional strCatalogsToSearch As Object ,
  Optional eClassTypeRequired As Object ,
  Optional strPropertiesToReturn As Object ,
  Optional strPropertyToSortOn As object ,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Object ,
  Optional lRecordsToRetrieve As Object ,
  Optional varLanguage As Object ,
  Optional plTotalRecordsInQuery As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset Search(
  object strSQLClause,
  object strFTSPhrase,
  object strCatalogsToSearch,
  object eClassTypeRequired,
  object strPropertiesToReturn,
  object strPropertyToSortOn,
  bool fSortAscending,
  object lStartingRecord,
  object lRecordsToRetrieve,
  object varLanguage,
  ref object plTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
strSQLClause
An Object that contains the SQL search query.
strFTSPhrase
An Object that contains the free-text search phrase.
strCatalogsToSearch
An Object that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An Object that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn
An Object that contains the properties to return as a comma-separated list.
strPropertyToSortOn
An Object that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An Object that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve
An Object that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
varLanguage
An Object that contains the ISO 639+1 language identifier.
plTotalRecordsInQuery
An Object used to return the total number of records matching the query.
[C#]
strSQLClause
An object that contains the SQL search query.
strFTSPhrase
An object that contains the free-text search phrase.
strCatalogsToSearch
An object that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired
An object that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn
An object that contains the properties to return as a comma-separated list.
strPropertyToSortOn
An object that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
fSortAscending
A bool that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An object that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve
An object that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
varLanguage
An object that contains the ISO 639+1 language identifier.
plTotalRecordsInQuery
An object used to return the total number of records matching the query.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface to a Recordset object that contains the search results.

[C#] This method returns a _Recordset interface to a Recordset object that will be used to return the query results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C#] 0x8007005 [Visual Basic .NET] &H8007007 | One or more arguments are invalid.
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011 [Visual Basic .NET] &H889801D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011 [Visual Basic .NET] &H889801E | The Properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | The search Failed. The recordset is now set to NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C#] 0x8898000 [Visual Basic .NET] &H889800F | When performing a query against multiple catalogs, you should specify the actual properties to return.

Remarks

The returned Recordset object and the plTotalRecordsInQuery parameter contain valid data only if the method completes successfully.

The Search method is used to perform arbitrary lexical comparisons on words and phrases, and on product, product variant, and category data in one or more catalogs. It combines the functionality of the Query method and the FreeTextSearch method. It also adds the varLanguage parameter, which allows you to specify the language of the search. The Category.Search method is a related method used specifically for searching within a category.

The strSQLClause and strFTSPhrase parameters are both optional, but at least one of them must be supplied. If you only supply the strSQLClause parameter, this method functions like the Query method. If you only supply the strFTSPhrase parameter, this method functions like the FreeTextSearch method. If you supply both parameters, then only data that satisfies both search conditions will be returned. This allows you to construct sophisticated and very specific searches.

The following table shows the values of the CatalogClassTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

If the varLanguage parameter is omitted the default value will depend on the number of catalogs specified in the strCatalogsToSearch parameter. If a single catalog is specified, the results will be returned in the default language of the catalog. If multiple catalogs are specified, the results will be returned in the default system language of the Web server. If a catalog does not support the selected language, only language insensitive properties will be returned for that catalog.

The programming rules regarding the strPropertiesToReturn parameter vary depending on whether a single catalog name is passed in the strCatalogsToSearch parameter, or whether multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog; otherwise it returns only the fields specified in the strPropertiesToReturn parameter. When specifying properties to return , and when specifying the strPropertyToSortOn parameter, enclose the field names in square brackets to avoid unintentional effects in the SQL query created by this method. For example, use "[Property1], [Property2]" to specify two properties.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3.SetDefinitionProperties Method (PIA)

Use this method to change the properties of a category or product definition.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Sub SetDefinitionProperties(
  strDefinitionName As String,
  pRSProperties As _Recordset,
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset SetDefinitionProperties(
  string strDefinitionName,
  object pRSProperties
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the definition.
pRSProperties
The _Recordset interface to a Recordset object that specifies the new properties.
[C#]
strDefinitionName
A string that contains the name of the definition.
pRSProperties
The _Recordset interface to a Recordset object that specifies the new properties.
[C#]

Return Values

This method returns an ADODB26Lib._Recordset interface to a Recordset object that specifies the new properties.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800E [Visual Basic .NET] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H889800B | The definition you specified does not exist.
[Visual Basic .NET]

Example

myCatalogManager.SetDefinitionProperties("Shirt", pRSProperties)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProperty


CatalogManager3.SetJoinTable Method (PIA)

Use this method to join an external table to a table in the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub SetJoinTable(
  strTargetTableName As String,
  strSourceJoinKey As String,
  strTargetJoinKey As String,
  eJoinType As CatalogJoinTypeEnum,
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetJoinTable(
Public Sub SetJoinTable(
  string strTargetTableName
  string strSourceJoinKey
  string strTargetJoinKey
  CatalogJoinTypeEnum eJoinType
);

Parameters

[Visual Basic .NET]
strTargetTableName
A String that contains the name of the external table or view with which to join.
strSourceJoinKey
A String that contains the name of the product property to join on.
strTargetJoinKey
A String that contains the name of the column in the external table or view to join against.
eJoinType
A CatalogJoinTypeEnum enumeration that specifies the join type. See the Remarks section for valid values.
[C#]
strTargetTableName
A string that contains the name of the external table or view with which to join.
strSourceJoinKey
A string that contains the name of the product property to join on.
strTargetJoinKey
A string that contains the name of the column in the external table or view to join against.
eJoinType
A CatalogJoinTypeEnum enumeration that specifies the join type. See the Remarks section for valid values.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B [Visual Basic .NET] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_JOIN_TYPE | [C#] 0x889800C [Visual Basic .NET] &H8898008 | The specified join type is either invalid or not supported.
E_CAT_INVALID_TARGET_TABLE | [C#] 0x889800C [Visual Basic .NET] &H8898009 | The target (join) table that was specified could not be found in the database.
E_CAT_INVALID_SOURCE_JOIN_KEY | [C#] 0x889800C [Visual Basic .NET] &H889800A | The specified source join-key is invalid.
E_CAT_INVALID_TARGET_JOIN_KEY | [C#] 0x889800C [Visual Basic .NET] &H889800B | The specified target join-key is invalid.

Remarks

After you have called the SetJoinTable method, any method that returns product data will join the normal output of the method with the external table. That is, the join will occur after any sorting or filtering specified in the method call is completed. This means that you cannot sort or filter on columns in the external table. All columns of the external table will be returned.

Join table information does not persist beyond the life of the CatalogManager object.

The following table shows the values in the CatalogJoinTypeEnum enumeration, and shows their associated names, and describes their use.

Name | Value | Description
CMS_INNER_JOIN | 0 | Returns only rows where the keys are equal.
CMS_OUTER_JOIN_LEFT | 1 | Returns all rows in the Product Catalog System and matching rows in the target table.
CMS_OUTER_JOIN_RIGHT | 2 | Returns matching rows in the Product Catalog System and all rows in the target table.
CMS_OUTER_JOIN_FULL | 3 | Returns all rows in both tables.
CMS_NO_JOIN | -1 | Turns off the join with the external table.

When you use the ProductID, VariantID, or other indexed column in the CatalogProducts table as a join key, it is recommended that you index the join key column in the external joined table for better performance.

If you pass a parameter containing spaces to the SetJoinTable method, that parameter must be enclosed by square brackets([]).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProperty


CatalogManager3.SetPropertyAttributes Method (PIA)

Use this method to change the attributes of a property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Sub SetPropertyAttributes(
  pRSNewState As _Recordset,
  Optional fForceUpdate As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetPropertyAttributes(
  _Recordset pRSNewState,
  object fForceUpdate
);

Parameters

[Visual Basic .NET]
pRSNewState
The _Recordset interface of a Recordset object that specifies the new attribute values.
fForceUpdate
An Object that specifies whether or not to force an update.
[C#]
pRSNewState
An ADODB26Lib._Recordset interface to a Recordset object that specifies the new attribute values.
fForceUpdate
An object that specifies whether or not to force an update. Set this to Type.Missing to enforce the default behavior.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table describes the COM exceptions that COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_INVALIDARG | [C#] 0x8007005 [Visual Basic .NET] &H8007007 | One or more arguments are invalid.
E_CAT_INVALID_RECORDSET | [C#] 0x889800A [Visual Basic .NET] &H889800E | The recordset you specified is either invalid or empty.
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_CANNOTCHANGE_DATATYPE | [C#] 0x8898010 [Visual Basic .NET] &H889801E | The datatype of this property cannot be changed.
E_CAT_INVALID_LANG_ATTRIBUTE | [C#] 0x889800F [Visual Basic .NET] &H8898002 | The Languagesensitive attribute of this property cannot be changed because this property is being used in one or more catalogs.
E_CAT_INVALID_ISFREETEXTSEARCHABLE_ATTRIBUTE | [C#] 0x8898003 [Visual Basic .NET] &H889800A | The attribute IsFreeTextSearchable can be set to only String, FilePath, and Enumeration datatypes.
E_CAT_INVALID_COLUMN_LENGTH | [C#] 0x8898004 [Visual Basic .NET] &H8898000 | The length specified for this property does not lie between 1 and 4000.
E_CAT_PROP_DOESNT_EXIST | [C#] 0x8898000 [Visual Basic .NET] &H8898005 | The property name you specified does not exist.
E_CAT_INVALID_PROPERTY_LENGTH | [C#] 0x8898005 [Visual Basic .NET] &H8898007 | The property you specified is being used as a ProductID or VariantID. You cannot decrease the maximum length of this property or change its data type.

Remarks

Use a Recordset object returned from either the GetPropertyAttributes method or the CreateProperty method as the pRSNewState parameter so that its time stamp can be compared with the time stamp of the existing property for error detection. You can change all attributes for a property except its data type.

[Visual Basic .NET]

Example

myCatalogManager.SetPropertyAttributes(pRSNewState, True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProperty

CatalogManager3.GetPropertyAttributes


CatalogManager3.ValidateXML Method (PIA)

Use this method to validate an XML formatted file without actually importing it into the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function ValidateXML(
  strXMLFilePath As String,
) As Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset ValidateXML(
  string strXMLFilePath
);

Parameters

[Visual Basic .NET]
strXMLFilePath
A String that contains the path of the XML file.
[C#]
strXMLFilePath
A string that contains the path of the XML file.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid.

In the context of this method, S_FALSE indicates that the XML file contained errors. See the returned Recordset for the first 100 errors.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class


CatalogManager3 Properties (PIA)

Properties

Property | Type | Description
Catalogs | ADODB26Lib._Recordset | Stores a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | ADODB26Lib._Recordset | Stores a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | ADODB26Lib._Recordset | Stores a recordset containing a record for each custom catalog. These records include the custom catalog names and the names of the catalogs they are based on. This property is read-only.
ProductDefinitions | ADODB26Lib._Recordset | Stores a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | ADODB26Lib._Recordset | Stores a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.


CatalogManager3.Catalogs Property (PIA)

The Catalogs property is a read-only Recordset object that describes all the catalogs in the Product Catalog System. The returned Recordset object includes the properties of each catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property Catalogs(
  Optional strSearchPhrase As String,
  Optional lStartingRecord As Object,
  Optional lNumRecords As Object,
  Optional strLanguage As String,
  Optional plTotalRecordsInQuery As Object
)As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset get_Catalogs(
  string strSearchPhrase,
  object lStartingRecord,
  object lNumRecords,
  string strLanguage,
  ref object plTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
strSearchPhrase
A String that contains the search phrase.
lStartingRecord
An Object that contains the starting record. A value of one (1) indicates the first record.
lNumRecords
An Object that contains the number of records requested.
strLanguage
A String that contains the ISO 639+1 language identifier. See the Remarks section for the usage of this parameter.
plTotalRecordsInQuery
An Object used to return the total number of catalogs that match the search phrase.
[C#]
strSearchPhrase
A string that contains the search phrase.
lStartingRecord
An object that contains the starting record. A value of one (1) indicates the first record.
lNumRecords
An object that contains the number of records requested.
strLanguage
A string that contains the ISO 639+1 language identifier. See the Remarks section for the usage of this parameter.
plTotalRecordsInQuery
An object used to return the total number of catalogs that match the search phrase.
[C#]

Return Values

This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the catalogs.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant Value Description
E_CAT_CATMGR_NOT_INITIALIZED

[C#] 0x889800B5

[Visual Basic .NET] &H889800B5

 The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER

[C#] 0x889800B7

[Visual Basic .NET] &H889800B7

The recordset pointer that you specified is invalid.
E_INVALIDARG

[C#] 0x80070057

[Visual Basic .NET] &H80070057

One or more arguments are invalid.
E_CAT_INVALID_SEARCH_CLAUSE

[C#] 0x8898011C

[Visual Basic .NET] &H8898011C

The search condition that you specified is invalid for one of the following reasons
  1. It contains -- or /* which should not be used outside of property names and property values T
  2. he parenthesis in the search condition do not match in number or alignment

Remarks

The recordset returned by this property is valid only if it is accessed successfully.

get_Catalogs does not show up in IntelliSense.

The returned recordset contains the following fields:

Field Name | Data Type | Description
CatalogName | String 128 characters | None
Locale | Integer | None
StartDate | DateTime | None
EndDate | DateTime | None
VariantID | String 128 characters | The name of the property that uniquely identifies a product variant.
ProductID | String 128 characters | The name of the property that uniquely identifies a product.
Currency | String 128 characters | None
WeightMeasure | String 128 characters | None
TimeStamp | Timestamp | None
CatalogID | Integer | The number that uniquely identifies a catalog.
CustomCatalog | Bit | A flag indicating whether this is a custom catalog.
FreeTextIndexCreated | DateTime | None
ProductTableUpdated | DateTime | None

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateCatalog

CatalogManager3.DeleteCatalog


CatalogManager3.CategoryDefinitions Property (PIA)

The CategoryDefinitions property is a read-only Recordset that contains the names of all the category definitions in the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property CategoryDefinitions As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset CategoryDefinitions {get;}
[C#]

Property Value

An ADODB26Lib._Recordset interface to a Recordset object containing category definitions.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid

Remarks

[Visual Basic .NET] The recordset returned by this property is valid only if it is accessed successfully.

[C#] The CategoryDefinitions parameter contains valid data only if the property was accessed successfully.

The returned Recordset will contain a single field called DefinitionName and one row for each category definition in the Product Catalog System. This field is a 128-character String.

If no category definitions are currently in the Product Catalog System, then the EOF property of the returned Recordset will be set to True.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateCategoryDefinition

CatalogManager3.DeleteDefinition


CatalogManager3.CustomCatalogs Property (PIA)

The CustomCatalogs property is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


CatalogManager3.ProductDefinitions Property (PIA)

The ProductDefinitions property is a read-only Recordset object that contains the names of all the product definitions in the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property ProductDefinitions As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset ProductDefinitions{get;}
[C#]

Property Value

An ADODB26Lib._Recordset interface to a Recordset object containing the product definitions.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid

Remarks

The Recordset object contains valid data only if the property was accessed successfully.

The returned recordset will contain a single field called DefinitionName and one row for each product definition in the Product Catalog System. This field is a 128-character String.

If no product definitions are currently in the Product Catalog System, then the EOF property of the returned recordset will be set to True.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProductDefinition

CatalogManager3.DeleteDefinition


CatalogManager3.Properties Property (PIA)

The Properties property is a read-only recordset that returns the name of each property that currently exists in the Product Catalog System. If the catalog name is specified, only properties used in that catalog are returned.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property Properties(
  Optional strCatalogName As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset get_Properties(
  object strCatalogName
);

Parameters

[Visual Basic .NET]
strCatalogName
An Object that contains the name of the catalog for which the properties are returned. If this optional parameter is omitted, all properties are returned.
[C#]
strCatalogName
An object that contains the name of the catalog for which the properties are returned. If this optional parameter is set to Type.Missing, all properties are returned.

Return Values

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the properties.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table describes the COM errors that COMException can wrap.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C#] 0x889800B [Visual Basic .NET] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B [Visual Basic .NET] &H8898007 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_CATALOGNAME | [C#] 0x8898006 [Visual Basic .NET] &H8898003 | The Catalog Name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x8898004 [Visual Basic .NET] &H8898002 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003 [Visual Basic .NET] &H889800D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.

Remarks

[Visual Basic .NET]

The Recordset object contains valid data only if the property was accessed successfully.

This method returns a Recordset object containing a row for each property returned. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

[C#]

This method returns the _Recordset interface to a Recordset object containing a row for each property returned. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

get_Properties does not show up in IntelliSense.

[Visual Basic .NET]

Example

rsProps = myCatalogManager.Properties("ShoesCatalog")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

CatalogManager3 Class

CatalogManager3.CreateProperty

CatalogManager3.DeleteProperty


PropertyAttribute Recordset (PIA)

The PropertyAttribute recordset reflects the property definitions found in the CatalogAttributes table.

The following table shows the fields in the PropertyAttribute recordset.

Field Name | Data Type
PropertyName | String
DataType | Small integer
u_DefaultValue | String
i_DefaultValue | Integer
dt_DefaultValue | datetime
cy_DefaultValue | money
f_DefaultValue | bit
fp_DefaultValue | float
i_MinValue | Integer
i_MaxValue | Integer
dt_MinValue | datetime
dt_MaxValue | datetime
fp_MinValue | float
fp_MaxValue | float
IsFreeTextSearchable | bit
IncludeInSpecSearch | bit
MinLength | Integer
MaxLength | Integer
cy_MinValue | money
cy_MaxValue | money
TimeStamp | timestamp
DisplayOnSite | bit
DisplayName | String
AssignAll | bit
ExportToDW | bit
DisplayInProductsList | bit


CatalogSets Class (PIA)

Use this object to work with catalog sets in the Catalog Management System. Catalog sets allow you to present different collections of catalogs to different users and organizations.

Methods

Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Removes a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)


CatalogSets Methods (PIA)

Methods

Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Removes a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.


CatalogSets.CreateCatalogSet Method (PIA)

Use this method to create a new catalog set in the catalog database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function CreateCatalogSet(
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
) As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public string CreateCatalogSet(
  string CatalogSetName,
  string CatalogSetDescription,
  bool bWildCard,
  _Recordset CatalogNamesRS
);

Parameters

[Visual Basic .NET]
CatalogSetName
A String that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
A String that contains a description of the new catalog set.
bWildCard
A Boolean that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
The _Recordset interface of a Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.
[C#]
CatalogSetName
A string that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
A string that contains a description of the new catalog set.
bWildCard
A bool that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
An ActiveX Data Objects (ADO) ADODB26Lib._Recordset interface to a Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is true, then this parameter will be ignored and a value of Type.Missing can be used

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the ID of the new catalog set.

[C#] This method returns a string containing the automatically generated ID (GUID) of the new catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'The following example shows the creation of a catalog set
'associated with all the catalogs in the catalog management system.
strCatalogSetID = myCatalogSets.CreateCatalogSet( _
  "PremiumCatalogs", "Premium catalog set", True)

'The following example shows the creation of a catalog set
'associated with two specific catalogs.
rsCatalogNames = New Recordset()
rsCatalogNames.Fields.Append("CatalogName", DataTypeEnum.adBSTR)
rsCatalogNames.Open()
rsCatalogNames.AddNew()
rsCatalogNames.Fields("CatalogName").Value = "Catalog1"
rsCatalogNames.Update()
rsCatalogNames.AddNew()
rsCatalogNames.Fields("CatalogName").Value = "Catalog2"
rsCatalogNames.Update()

strCatalogSetID = myCatalogSets.CreateCatalogSet( _
  "CombinedCatalog", "A one and a two", False, rsCatalogNames)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.DeleteCatalogSet Method (PIA)

Use this method to delete an existing catalog set from the catalog database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
PublicSub DeleteCatalogSet(
  CatalogSetID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the ID of the catalog set to be deleted.
[C#]
CatalogSetID
A string that contains the GUID of the catalog set to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Deleting a catalog set does not delete the catalog set ID. Referencing an invalid catalog set ID will prevent access to the solution sites.

[Visual Basic .NET]

Example

'strCatalogSetID1 is a GUID
myCatalogSets.DeleteCatalogSet(strCatalogSetID1)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogs Method (PIA)

Use this method to return a list of all catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogs() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogs();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of all catalogs.

[C#] This method returns a _Recordset interface to a Recordset object that will contain catalogs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Recordset object returned by this method has a single 128-character field, named CatalogName.

[Visual Basic .NET]

Example

rsMyCatalogs = myCatalogSets.GetCatalogs()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogSetIDForUser Method (PIA)

Use this method to return the CatalogSetID for a specific user.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
PublicFunction GetCatalogSetIDForUser(
  objProfileService As Object,
  user_id As String,
  defaultCatalogSetID As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public object GetCatalogSetIDForUser(
  object objProfileService,
  string user_id,
  string defaultCatalogSetID
);

Parameters

[Visual Basic .NET]
objProfileService
A ProfileService object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.
[C#]
objProfileService
A ProfileService object.
user_id
A string that contains the user ID.
defaultCatalogSetID
A string that contains the default catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the CatalogSetID.

[C#] This method returns an object containing the catalog set ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the user defined in the objProfileService parameter has a catalog set associated with it, this method returns that ID; if not, it returns the catalog set associated with the user organization. If this catalog set does not exist, it returns the value supplied in the defaultCatalogSetID parameter.

[Visual Basic .NET]

Example

strCatalogSetID = myCatalogSets.GetCatalogSetIDForUser( _
  oProfileService, user_id, defaultCatalogSetID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class

ProfileService Object


CatalogSets.GetCatalogSetInfo Method (PIA)

Use this method to return the basic properties for a catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
PublicFunction GetCatalogSetInfo(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogSetInfo(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID, a GUID.
[C#]
CatalogSetID
A string that contains the catalog set ID, a GUID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the basic properties for a catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a forward-only Recordset object with a single row and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, maximum of 255 characters | None
CatalogSetDescription | String, maximum of 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
[Visual Basic .NET]

Example

rsMyCatalogSetInfo = myCatalogSets.GetCatalogSetInfo(strCatalogSetID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogSets Method (PIA)

Use this method to return a list of all catalog sets.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogSets() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogSets();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of all catalog sets.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the list of catalog sets.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a forward-only Recordset object with a row for each catalog set and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, 255 characters | None
CatalogSetDescription | String, 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
[Visual Basic .NET]

Example

rsMyCatalogSets = myCatalogSets.GetCatalogSets()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogsForUser Method (PIA)

Use this method to return the list of catalogs that have been assigned to a particular user through the catalog set specified in their profile.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
PublicFunction GetCatalogsForUser(
  objProfileService As Object,
  user_id As String,
  defaultCatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogsForUser(
  object objProfileService,
  string user_id,
  string defaultCatalogSetID
);

Parameters

[Visual Basic .NET]
objProfileService
A profile service object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.
[C#]
objProfileService
A profile service object
user_id
A string that contains the user ID.
defaultCatalogSetID
A string that contains the default catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of catalogs.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the list of catalogs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a Recordset object with a row for each catalog in the catalog set associated with the user profile in the user_id parameter and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None

If the user profile object passed to this method has not been initialized, the object will return the default catalog set.

[Visual Basic .NET]

Example

objProfileService = New ProfileService()
objProfileService.Initialize( _
  sProfileServiceConnectionString, "Profile Definitions")
rsCatalogSet = myCatalogSets.GetCatalogsForUser( _
  objProfileService, user_id, defaultCatalogSetID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogsInCatalogSet Method (PIA)

Use this method to return the catalogs that are included in a particular catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
PublicFunction GetCatalogsInCatalogSet(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogsInCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID.
[C#]
CatalogSetID
A string that contains the catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of catalogs.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the catalogs in the catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns (indirectly) a Recordset object with a row for each catalog in the catalog set and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None
[Visual Basic .NET]

Example

rsCatalogNames = myCatalogSets.GetCatalogsInCatalogSet(CatalogSetID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.GetCatalogsNotInCatalogSet Method (PIA)

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogsNotInCatalogSet(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public_Recordset GetCatalogsNotInCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID.
[C#]
CatalogSetID
A string that contains the catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object.

[C#] This method returns an ADODB26Lib._Recordset interface to the Recordset object that will contain the desired catalogs..

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Recordset object returned by this method has a single 128 character field, named CatalogName.

[Visual Basic .NET]

Example

'strCatalogSetID is the GUID of a catalog set
rsCatalogs = myCatalogSets.GetCatalogsNotInCatalogSet(strCatalogSetID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.Initialize Method (PIA)

Use this method to initialize a new CatalogSet object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
PublicSub Initialize(
  CatalogConnectionString As String,
  TransactionConfigConnectionString As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Initialize(
  string CatalogConnectionString,
  string TxConfigConnString
);

Parameters

[Visual Basic .NET]
CatalogConnectionString
A String that contains the catalog connection string.

TransactionConfigConnectionStringA String that contains the transaction configuration connection string. Not used.

[C#]
CatalogConnectionString
A string that contains the catalog connection string.
TxConfigConnString
A string that contains the transaction configuration connection string. Not used

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • The TransactionConfigConnectionString parameter is required, but not used. The contents of the String are ignored. This parameter is reserved for future use.
[Visual Basic .NET]

Example

myCatalogSets.Initialize(strCatalogConnection, "")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

[Visual Basic .NET] CatalogSets Class


CatalogSets.RemoveCatalogFromCatalogSets Method (PIA)

Use this method to remove a catalog from all catalog sets.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
PublicSub RemoveCatalogFromCatalogSets(
  CatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveCatalogFromCatalogSets(
  string CatalogName
);

Parameters

[Visual Basic .NET]
CatalogName
A String that contains the catalog name to be removed.
[C#]
CatalogName
A string that contains the catalog name to be removed.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method should be called whenever a catalog is deleted, before or after calling the CatalogManager.DeleteCatalog or ProductCatalog.DeleteCustomCatalog methods.

[Visual Basic .NET]

Example

MyCatalogManager.DeleteCatalog("Shoes")
myCatalogSets.RemoveCatalogFromCatalogSets("Shoes")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets.UpdateCatalogSet Method (PIA)

Use this method to update an existing catalog set and its basic properties.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
PublicSub UpdateCatalogSet(
  CatalogSetID As String,
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void UpdateCatalogSet(
  string CatalogSetID,
  string CatalogSetName,
  string CatalogSetDescription,
  bool bWildCard,
  _Recordset CatalogNamesRS
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID (GUID).
CatalogSetName
A String that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
A String that contains the catalog set description.
bWildCard
A Boolean that indicates which catalogs to use. A value of True indicates use all catalogs. A value of False indicates use the catalogs contained in the CatalogNamesRS parameter.
CatalogNamesRS
The _Recordset interface of a Recordset object that contains the catalog names.
[C#]
CatalogSetID
A string that contains the catalog set ID (GUID).
CatalogSetName
A string that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
A string that contains the catalog set description.
bWildCard
A bool that indicates which catalogs to use. A value of true indicates use all catalogs. A value of false indicates use the catalogs contained in the CatalogNamesRS parameter.
CatalogNamesRS
An ADODB26Lib._Recordset interface to the Recordset object that contains the catalog names. If bWildCard is false, this parameter is ignored and can be set to Type.Missing.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

'strCatalogSetID is the GUID for the CatalogSet.
'rsCatalogNames is a Recordset as described in the parameter description.
myCatalogSets.UpdateCatalogSet( _
  strCatalogSetID, "Clothing", "All soft goods", _
  False, rsCatalogNames)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets Class


CatalogSets2 Class (PIA)

Use this object to work with catalog sets in the Product Catalog System. Catalog sets allow you to present different collections of catalogs to different users and organizations.

Methods

Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Removes a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.

Properties

Property | Type | Description
OrganizationObjectCatalogSetKey | String | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | String | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | String | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | String | Stores the name of the organization object. This property is read/write.
UserObjectCategoryName | String | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | String | Stores the join key for the user object. This property is read/write.
UserObjectName | String | Stores the name of the user object. This property is read/write.
UserObjectOrganizationKey | String | Stores the organization key for the user object. This property is read/write.

Remarks

This object is similar to the CatalogSets object. It has the same methods, but adds new properties for the profile schema keys. The default values of the properties are the same as the fixed values used by the CatalogSets object.

The CatalogSets2 object properties are useful if you have changed the ProfileSchema (from the default shipped version) or if you use Active Directory. In these cases, the UserObject-OrganizationObject table join key is different than the default one.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)


CatalogSets2 Methods (PIA)

Methods

Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Removes a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.


CatalogSets2.CreateCatalogSet Method (PIA)

Use this method to create a new catalog set in the catalog database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
Public Function CreateCatalogSet(
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
) As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public string CreateCatalogSet(
  string CatalogSetName,
  string CatalogSetDescription,
  bool bWildCard,
  _Recordset CatalogNamesRS
);

Parameters

[Visual Basic .NET]
CatalogSetName
A String that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
A String that contains a description of the new catalog set.
bWildCard
A Boolean that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
The _Recordset interface of a Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.
[C#]
CatalogSetName
A string that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
A string that contains a description of the new catalog set.
bWildCard
A bool that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
An ActiveX Data Objects (ADO) ADODB26Lib._Recordset interface to a Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is true, then this parameter will be ignored and a value of Type.Missing can be used

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the ID of the new catalog set.

[C#] This method returns a string containing the automatically generated ID (GUID) of the new catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.DeleteCatalogSet Method (PIA)

Use this method to delete an existing catalog set from the catalog database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
PublicSub DeleteCatalogSet(
  CatalogSetID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the ID of the catalog set to be deleted.
[C#]
CatalogSetID
A string that contains the GUID of the catalog set to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Deleting a catalog set does not delete the catalog set ID. Referencing an invalid catalog set ID will prevent access to the solution sites.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogs Method (PIA)

Use this method to return a list of all catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogs() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogs();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of all catalogs.

[C#] This method returns a _Recordset interface to a Recordset object that will contain catalogs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Recordset object returned by this method has a single 128-character field, named CatalogName.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogSetIDForUser Method (PIA)

Use this method to return the CatalogSetID for a specific user.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function GetCatalogSetIDForUser(
  objProfileService As Object,
  user_id As String,
  defaultCatalogSetID As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public object GetCatalogSetIDForUser(
  object objProfileService,
  string user_id,
  string defaultCatalogSetID
);

Parameters

[Visual Basic .NET]
objProfileService
A ProfileService object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.
[C#]
objProfileService
A ProfileService object.
user_id
A string that contains the user ID.
defaultCatalogSetID
A string that contains the default catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the CatalogSetID.

[C#] This method returns an object containing the catalog set ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the user defined in the objProfileService parameter has a catalog set associated with it, this method returns that ID; if not, it returns the catalog set associated with the user organization. If this catalog set does not exist, it returns the value supplied in the defaultCatalogSetID parameter.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogSetInfo Method (PIA)

Use this method to return the basic properties for a catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogSetInfo(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogSetInfo(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID, a GUID.
[C#]
CatalogSetID
A string that contains the catalog set ID, a GUID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the basic properties for a catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a forward-only Recordset object with a single row and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, maximum of 255 characters | None
CatalogSetDescription | String, maximum of 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogSets Method (PIA)

Use this method to return a list of all catalog sets.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogSets() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogSets();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of all catalog sets.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the list of catalog sets.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a forward-only Recordset object with a row for each catalog set and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, 255 characters | None
CatalogSetDescription | String, 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogsForUser Method (PIA)

Use this method to return the list of catalogs that have been assigned to a particular user through the catalog set specified in their profile.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogsForUser(
  objProfileService As Object,
  user_id As String,
  defaultCatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogsForUser(
  object objProfileService,
  string user_id,
  string defaultCatalogSetID
);

Parameters

[Visual Basic .NET]
objProfileService
A profile service object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.
[C#]
objProfileService
A profile service object
user_id
A string that contains the user ID.
defaultCatalogSetID
A string that contains the default catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of catalogs.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the list of catalogs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a Recordset object with a row for each catalog in the catalog set associated with the user profile in the user_id parameter and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None

If the user profile object passed to this method has not been initialized, the object will return the default catalog set.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogsInCatalogSet Method (PIA)

Use this method to return the catalogs that are included in a particular catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogsInCatalogSet(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogsInCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID.
[C#]
CatalogSetID
A string that contains the catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains the list of catalogs.

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object that will contain the catalogs in the catalog set.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns a Recordset object with a row for each catalog in the catalog set and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.GetCatalogsNotInCatalogSet Method (PIA)

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogsNotInCatalogSet(
  CatalogSetID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public_Recordset GetCatalogsNotInCatalogSet(
  string CatalogSetID
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID.
[C#]
CatalogSetID
A string that contains the catalog set ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object.

[C#] This method returns an ADODB26Lib._Recordset interface to the Recordset object that will contain the desired catalogs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Recordset object returned by this method has a single 128-character field, named CatalogName.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.Initialize Method (PIA)

Use this method to initialize a new CatalogSet object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub Initialize(
  CatalogConnectionString As String,
  TransactionConfigConnectionString As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Initialize(
  string CatalogConnectionString,
  string TxConfigConnString
);

Parameters

[Visual Basic .NET]
CatalogConnectionString
A String that contains the catalog connection string.
TransactionConfigConnectionString
A String that contains the transaction configuration connection string. Not used.
[C#]
CatalogConnectionString
A string that contains the catalog connection string.
TxConfigConnString
A string that contains the transaction configuration connection string. Not used

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • The TransactionConfigConnectionString parameter is required, but not used. The contents of the String are ignored. This parameter is reserved for future use.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.RemoveCatalogFromCatalogSets Method (PIA)

Use this method to remove a catalog from all catalog sets.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveCatalogFromCatalogSets(
  CatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveCatalogFromCatalogSets(
  string CatalogName
);

Parameters

[Visual Basic .NET]
CatalogName
A String that contains the catalog name to be removed.
[C#]
CatalogName
A string that contains the catalog name to be removed.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method should be called whenever a catalog is deleted, before or after calling the CatalogManager.DeleteCatalog or ProductCatalog.DeleteCustomCatalog methods.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.UpdateCatalogSet Method (PIA)

Use this method to update an existing catalog set and its basic properties.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Sub UpdateCatalogSet(
  CatalogSetID As String,
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void UpdateCatalogSet(
  string CatalogSetID,
  string CatalogSetName,
  string CatalogSetDescription,
  bool bWildCard,
  _Recordset CatalogNamesRS
);

Parameters

[Visual Basic .NET]
CatalogSetID
A String that contains the catalog set ID (GUID).
CatalogSetName
A String that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
A String that contains the catalog set description.
bWildCard
A Boolean that indicates which catalogs to use. A value of True indicates use all catalogs. A value of False indicates use the catalogs contained in the CatalogNamesRS parameter.
CatalogNamesRS
The _Recordset interface of a Recordset object that contains the catalog names.
[C#]
CatalogSetID
A string that contains the catalog set ID (GUID).
CatalogSetName
A string that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
A string that contains the catalog set description.
bWildCard
A bool that indicates which catalogs to use. A value of true indicates use all catalogs. A value of false indicates use the catalogs contained in the CatalogNamesRS parameter.
CatalogNamesRS
An ADODB26Lib._Recordset interface to the Recordset object that contains the catalog names. If bWildCard is false, this parameter is ignored and can be set to Type.Missing.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2 Properties (PIA)

Properties

Property | Type | Description
OrganizationObjectCatalogSetKey | String | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | String | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | String | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | String | Stores the name of the organization object. This property is read/write.
UserObjectCategoryName | String | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | String | Stores the join key for the user object. This property is read/write.
UserObjectName | String | Stores the name of the user object. This property is read/write.
UserObjectOrganizationKey | String | Stores the organization key for the user object. This property is read/write.


CatalogSets2.OrganizationObjectCatalogSetKey Property (PIA)

The OrganizationObjectCatalogSetKey property is a read/write string that contains the CatalogSet key for the organization object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property OrganizationObjectCatalogSetKey as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string OrganizationObjectCategorySetKey( get; set;)

PropertyValue

[C#] [in] When putting the property, a BSTR that contains the OrganizationObjectCatalogSetKey.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectCatalogSetKey.

[Visual Basic .NET] None.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.OrganizationObjectCategoryName Property (PIA)

The OrganizationObjectCategoryName property is a read/write string that contains the category name of the organization object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property OrganizationObjectCatalogName as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string OrganizationObjectCategoryName( get; set;)

PropertyValue

[C#] [in] When putting the property, a BSTR that contains the OrganizationObjectCategoryName.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectCategoryName.

[Visual Basic .NET] None.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.OrganizationObjectJoinKey Property (PIA)

The OrganizationObjectJoinKey property is a read/write String that contains the join key of the organization object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property OrganizationObjectJoinKey as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string OrganizationObjectJoinKey ( get; set;)

PropertyValue

[C#] [in] When putting the property, a BSTR that contains the OrganizationObjectJoinKey.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectJoinKey.

[Visual Basic .NET] None.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.OrganizationObjectName Property (PIA)

The OrganizationObjectName property is a read/write String that contains the name of the organization object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property OrganizationObjectName as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string OrganizationObjectName ( get; set;)

PropertyValue

[Visual Basic .NET] None.

[C#] [in] When putting the property, a BSTR that contains the OrganizationObjectName.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectName.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.UserObjectCategoryName Property (PIA)

The UserObjectCategoryName property is a read/write String that contains the category name of the user object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property UserObjectCategoryName as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string UserObjectCategoryName ( get; set;)

PropertyValue

[Visual Basic .NET] None.

[C#][in] When putting the property, a BSTR that contains the UserObjectCategoryName.
[out, retval] When getting the property, a BSTR used to return the UserObjectCategoryName.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.UserObjectJoinKey Property (PIA)

The UserObjectJoinKey property is a read/write String that contains the join key of the user object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property UserObjectJoinKey as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string UserObjectJoinKey ( get; set;)

PropertyValue

[Visual Basic .NET] None.

[C#] [in] When putting the property, a BSTR that contains the UserObjectJoinKey.
[out, retval] When getting the property, a BSTR used to return the UserObjectJoinKey.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.UserObjectName Property (PIA)

The UserObjectName property is a read/write String that contains the name of the user object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property UserObjectName as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string UserObjectName ( get; set;)

PropertyValue

[Visual Basic .NET] None.

[C++] [in] When putting the property, a BSTR that contains the UserObjectName.
[out, retval] When getting the property, a BSTR used to return the UserObjectName.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogSets2.UserObjectOrganizationKey Property (PIA)

The UserObjectOrganizationKey property is a read/write String that contains the organization key of the user object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property UserObjectOrganizationKey as String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string UserObjectOrganizationKey ( get; set;)

PropertyValue

[Visual Basic .NET] None.

[C#] [in] When putting the property, a BSTR that contains the UserObjectOrganizationKey.
[out, retval] When getting the property, a BSTR used to return the UserObjectOrganizationKey.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgsets (in cs_ctlgsets.dll)

See Also

CatalogSets2 Class


CatalogToVendorAssociation Class (PIA)

Use this object to associate catalogs with vendors.

Methods

Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)


CatalogToVendorAssociation Methods (PIA)

Methods

Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.


CatalogToVendorAssociation.GetVendorInfoForCatalog Method (PIA)

Use this method to retrieve information about the vendor associated with the specified catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetVendorInfoForCatalog(
  szCatalogID As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetVendorInfoForCatalog(
  string szCatalogID
);

Parameters

[Visual Basic .NET]
szCatalogID
A String that contains the ID of the catalog for which vendor information will be returned.
[C#]
szCatalogID
A string that contains the ID of the catalog for which vendor information will be returned.

Return Values

This method returns an ADO ADODB26Lib._Recordset interface to a Recordset object containing the requested vendor information.

[Visual Basic .NET]

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Example

rsVendorInfo = _
  myCatalogToVendorAssociation.GetVendorInfoForCatalog(szCatalogID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)

See Also

CatalogToVendorAssociation Class


CatalogToVendorAssociation.GetVendorList Method (PIA)

Use this method to retrieve a list of vendors associated with the passed alias qualifier and value, and associated with the input document name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetVendorList(
  szSourceAliasQualifier As String,
  szSourceAliasValue As String,
  szInputDocumentName As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetVendorList(
  string szSourceAliasQualifier,
  string szSourceAliasValue,
  string szInputDocumentName
);

Parameters

[Visual Basic .NET]
szSourceAliasQualifier
A String that contains the source alias qualifier.
szSourceAliasValue
A String that contains the source alias value.
szInputDocumentName
A String that contains the input document name.
[C#]
szSourceAliasQualifier
A string that contains the source alias qualifier.
szSourceAliasValue
A string that contains the source alias value.
szInputDocumentName
A string that contains the input document name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface to a Recordset object containing the requested list of vendors.

[C#] This method returns an ADO ADODB26Lib._Recordset interface to a Recordset object containing the requested list of vendors.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • This method is only available when BizTalk Server is installed. It requires the BizTalKDBInternal object.
[Visual Basic .NET]

Example

rsVendorList = _
  myCatalogToVendorAssociation.GetVendorList( _
    szSourceAliasQualifier, szSourceAliasValue, _
    szInputDocumentName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)

See Also

CatalogToVendorAssociation Class


CatalogToVendorAssociation.Initialize Method (PIA)

Use this method to initialize a CatalogToVendorAssociation object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub Initialize(
  vConnectionString As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Initialize(
  string vConnectionString
);

Parameters

[Visual Basic .NET]
vConnectionString
A String that contains the connection string for the database containing the catalog to vendor associations.
[C#]
vConnectionString
A string that contains the connection string for the database containing the catalog to vendor associations.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

myCatalogToVendorAssociation.Initialize(vConnectionString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)

See Also

CatalogToVendorAssociation Class


CatalogToVendorAssociation.SpecifyVendorForCatalog Method (PIA)

Use this method to associate a vendor with a particular catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub SpecifyVendorForCatalog(
  szCatalogID As String,
  szVendorQualifier As String,
  szVendorQualifierValue As String,
  szVendorName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void SpecifyVendorForCatalog(
  string szCatalogID,
  string szVendorQualifier,
  string szVendorQualifierValue,
  string szVendorName
);

Parameters

[Visual Basic .NET]
szCatalogID
A String that contains the identifier of the catalog with which to associate the specified vendors.
szVendorQualifier
A String that contains the qualifier of the vendor to be associated with the specified catalog.
szVendorQualifierValue
A String that contains the qualifier value of the vendor to be associated with the specified catalog.
szVendorName
A String that contains the name of the vendor to be associated with the specified catalog.
[C#]
szCatalogID
A string that contains the identifier of the catalog with which to associate the specified vendors.
szVendorQualifier
A string that contains the qualifier of the vendor to be associated with the specified catalog.
szVendorQualifierValue
A string that contains the qualifier value of the vendor to be associated with the specified catalog.
szVendorName
A string that contains the name of the vendor to be associated with the specified catalog.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

myCatalogToVendorAssociation.SpecifyVendorForCatalog( _
  szCatalogID, szVendorQualifier, _
  szVendorQualifierValue, szVendorName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)

See Also

CatalogToVendorAssociation Class


CatalogToVendorAssociation.UnspecifyVendorForCatalog Method (PIA)

Use this method to disassociate a catalog with any previously associated vendors.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub UnspecifyVendorForCatalog(
  szCatalogID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void UnspecifyVendorForCatalog(
  string szCatalogID
);

Parameters

[Visual Basic .NET]
szCatalogID
A String that contains the identifier of the catalog with which no vendors should be associated.
[C#]
szCatalogID
A string that contains the identifier of the catalog with which no vendors should be associated.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

myCatalogToVendorAssociation.UnspecifyVendorForCatalog(szCatalogID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_ctlgvndr (in cs_ctlgvndr.dll)

See Also

CatalogToVendorAssociation Class


Category Class (PIA)

Use this object to work with relationships between categories and products. You can also use this object to manipulate parent/child relationships for a category.

Methods

Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
Search | Searches product and category data within the category and its children.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.

Properties

Property | Type | Description
AncestorCategories | ADODB26Lib._Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category, in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | String | Contains the name of this category. This property is read-only.
ChildCategories | ADODB26Lib._Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | ADODB26Lib._Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | ADODB26Lib._Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | ADODB26Lib._Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | ADODB26Lib._Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | ADODB26Lib._Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | ADODB26Lib._Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.

Remarks

The Category object is a dependent object. Obtain a reference to it by calling one of the following methods:

  • ProductCatalog.CreateCategory
  • ProductCatalog.GetCategory

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)


Category3 Methods (PIA)

Methods

Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
Search | Searches product and category data within the category and its children.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.


Category3.AddChildCategory Method (PIA)

Use this method to add a category as a child to this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddChildCategory(
  strCategoryName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddChildCategory(
  string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be added as a child to this category.
[C#]
strCategoryName
A string that contains the name of the category to be added as a child to this category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_INVALID_CHILDCATEGORY | [C#] 0x8898005D [Visual Basic .NET] &H8898005D | An invalid relationship has been specified. The category that you specified already exists as a parent of this category.
E_CAT_CATEGORY_ALREADY_ADDED | [C#] 0x8898002D [Visual Basic .NET] &H8898002D | The category you specified is already added.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs
[Visual Basic .NET]

Example

myCategory.AddChildCategory("shirts")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category.AddParentCategory

Category.RemoveChildCategory


Category3.AddParentCategory Method (PIA)

Use this method to add the specified category as a parent of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddParentCategory(
  strCategoryName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddParentCategory(
  string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be added as a parent to this category.
[C#]
strCategoryName
A string that contains the name of the category to be added as a parent to this category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_CATEGORY_ALREADY_ADDED | [C#] 0x8898002D [Visual Basic .NET] &H8898002D | The category you specified is already added.
E_CAT_PARENT_CAT_EXISTS_AS_CHILD | [C#] 0x88980052 [Visual Basic .NET] &H88980052 | The category that you specified as a Parent category already exists as a child category for this category.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.
[Visual Basic .NET]

Example

myCategory.AddParentCategory("Apparel")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category.AddChildCategory

Category.RemoveParentCategory


Category3.AddProduct Method (PIA)

Use this method to add the specified product to this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddProduct(
  varProductID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddProduct(
  object varProductID
);

Parameters

[Visual Basic .NET]
varProductID
An Object that contains the product to be added.
[C#]
varProductID
An object that contains the product to be added.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the ProductID is either out of range or else it does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_PRODUCT_ALREADY_ADDED | [C#] 0x88980029 [Visual Basic .NET] &H88980029 | The product you specified is already present in this category.

Remarks

A product may exist in multiple categories simultaneously, without limit.

[Visual Basic .NET]

Example

myCategory.AddProduct("SKU4005")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category3 Object

Category3.RemoveProduct


Category3.AddRelationshipToCategory Method (PIA)

Use this method to add a relationship from this category to another specified category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String,
  Optional strRelationshipDescription As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddRelationshipToCategory(
  string strRelatedCategoryName,
  string strRelationshipName,
  object strRelationshipDescription
);

Parameters

[Visual Basic .NET]
strRelatedCategoryName
A String that contains the name of the category to which a relationship is to be added.
strRelationshipName
A String that contains a name for the relationship.
strRelationshipDescription
An Object of subtype String that contains an optional description for the relationship.
[C#]
strRelatedCategoryName
A string that contains the name of the category to which a relationship is to be added.
strRelationshipName
A string that contains a name for the relationship.
strRelationshipDescription
An object of subtype String that contains an optional description for the relationship. Set to Type.Missing to specify no description.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_RELATION_DESC | [C#] 0x88980055 [Visual Basic .NET] &H88980055 | The value you specified for the relationship description exceeds 256 characters. Relationship descriptions should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C#] 0x8898011B [Visual Basic .NET] &H8898011B | A virtual catalog’s included relationships cannot be directly edited. (They can only be edited in the base catalog context).
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs

Remarks

A relationship must be given a name and may optionally be given a description. The description can include information that describes the nature of the relationship between the categories (for example, an "accessory" or "add-on"). Relationships are one way, that is, if category A has a relationship to category B, that does not create a reciprocal relationship from category B to category A.

When multiple relationships are created between the same two categories, each relationship must have a unique name.

[Visual Basic .NET]

Example

myCategory.AddRelationshipToCategory("Apparel", _
  "Accessory", "This would go great with that!")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category3 Object

Category3.RemoveRelationshipToCategory


Category3.AddRelationshipToProduct Method (PIA)

Use this method to add a relationship between the specified product and this category. This relationship must be given a name and may optionally be given a description. The description can include information that describes the nature of the relationship between the categories (for example, an "accessory" or "add-on").

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddRelationshipToProduct(
  varRelatedProductID As Object,
  strRelationshipName As String,
  Optional strRelationshipDescription As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddRelationshipToProduct(
  object varRelatedProductID,
  string strRelationshipName,
  object strRelationshipDescription
);

Parameters

[Visual Basic .NET]
varRelatedProductID
An Object that contains the ID of the related product.
strRelationshipName
A String that contains a name for the relationship.
strRelationshipDescription
An Object that contains an optional description for the relationship.
[C#]
varRelatedProductID
An object that contains the ID of the related product.
strRelationshipName
A string that contains a name for the relationship.
strRelationshipDescription
An object that contains an optional description for the relationship. Set to Type.Missing to specify no description.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_DESC | [C#] 0x88980055 [Visual Basic .NET] &H88980055 | The value you specified for the relationship description exceeds 256 characters. Relationship description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C#] 0x8898011B [Visual Basic .NET] &H8898011B | A virtual catalog’s included relationships cannot be directly edited. Instead, they can be edited only in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

In order for this method to complete successfully, the product identified must already exist.

When multiple relationships are created between a category and product, each relationship must have a unique name.

[Visual Basic .NET]

Example

myCategory.AddRelationshipToProduct("SKU4005", "Accessory", _
  "This would go great with that")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category3 Object

Category3.RemoveRelationshipToProduct


Category3.RemoveChildCategory Method (PIA)

Use this method to remove a category that is a child of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveChildCategory(
  strCategoryName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveChildCategory(
  string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be removed as a child of this category.
[C#]
strCategoryName
A string that contains the name of the category to be removed as a child of this category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

Use the RemoveChildCategory method to remove a child category from this category. If the category named in the strCategoryName parameter does not exist, then this method will fail.

[Visual Basic .NET]

Example

myCategory.RemoveChildCategory("T-Shirts")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AddChildCategory

Category3.RemoveParentCategory


Category3.RemoveParentCategory Method (PIA)

Use this method to remove the specified category as a parent of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveParentCategory(
  strCategoryName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveParentCategory(
  string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be removed as a parent of this category.
[C#]
strCategoryName
A string that contains the name of the category to be removed as a parent of this category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

Use the RemoveParentCategory method to remove a parent category from this category. If the category named in the strCategoryName parameter does not exist, then this method will fail.

[Visual Basic .NET]

Example

myCategory.RemoveParentCategory("Apparel")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AddParentCategory

Category3.RemoveChildCategory


Category3.RemoveProduct Method (PIA)

Use this method to remove a product from this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveProduct(
  varProductID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveProduct(
  object varProductID
);

Parameters

[Visual Basic .NET]
varProductID
An Object that contains the product ID.
[C#]
varProductID
An object that contains the product ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the ProductID is either out of range or else it does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.
[Visual Basic .NET]

Example

myCategory.RemoveProduct("Widget")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AddProduct


Category3.RemoveRelationshipToCategory Method (PIA)

Use this method to remove a relationship between the specified category and this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String
  strCatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveRelationshipToCategory(
  string strRelatedCategoryName,
  string strRelationshipName
  string strCatalogName
);

Parameters

[Visual Basic .NET]
strRelatedCategoryName
A String that contains the name of the related category.
strRelationshipName
A String that contains the name of the relationship.
strCatalogName
A String that contains the name of the catalog containing the related category.
[C#]
strRelatedCategoryName
A string that contains the name of the related category.
strRelationshipName
A string that contains the name of the relationship.
strCatalogName
A string that contains the name of the catalog containing the related category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The RemoveRelationshipToCategory method removes a relationship between this category and the category named in the strRelatedCategoryName parameter. Because more than one relationship may exist between these two categories, you must also specify the name of the relationship you wish to remove in the strRelationshipName parameter. If the category specified as the strRelatedCategoryName parameter does not exist or the relationship specified as the strRelationshipName parameter does not exist, then this method will fail.

[Visual Basic .NET]

Example

myCategory.RemoveRelationshipToCategory("Gadget", "Accessory", "myCat")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AddRelationshipToCategory

Category3.RemoveRelationshipToProduct


Category3.RemoveRelationshipToProduct Method (PIA)

Use this method to remove a relationship between the specified product and this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveRelationshipToProduct(
  varRelatedProductID As Object,
  strRelationshipName As String,
  strCatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveRelationshipToProduct(
  object varRelatedProductID,
  string strRelationshipName,
  string strCatalogName
);

Parameters

[Visual Basic .NET]
varRelatedProductID
An Object that contains the ID of the related product.
strRelationshipName
A String that contains the name of the relationship.
strCatalogName
A String that contains the name of the catalog containing the name of the related product.
[C#]
varRelatedProductID
An object that contains the ID of the related product.
strRelationshipName
A string that contains the name of the relationship.
strCatalogName
A string that contains the name of the catalog containing the name of the related product.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The RemoveRelationshipToProduct method removes a relationship between this category and the product identified by the varRelatedProductID parameter. Because more than one relationship may exist between this category and product, you must also specify the name of the relationship you wish to remove in the strRelationshipName parameter. If the product specified as the varRelatedProductID parameter does not exist or the relationship specified as the strRelationshipName parameter does not exist, then this method will fail.

[Visual Basic .NET]

Example

myCategory.RemoveRelationshipToProduct("Gadget", "FeaturedProduct")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AddRelationshipToProduct


Category3.Search Method (PIA)

Use this method to perform queries against product, variant, and category data in this category, and, optionally, the child categories for this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function Search(
  Optional strSQLClause As Object,
  Optional strFTSPhrase As Object,
  Optional fRecursive As Boolean,
  Optional eClassTypeRequired As Object,
  Optional strPropertiesToReturn As Object,
  Optional strPropertyToSortOn As Object,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional plTotalRecordsInQuery As Object
) As Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
Public _Recordset Search(
  object strSQLClause,
  object strFTSPhrase,
  bool fRecursive,
  object eClassTypeRequired,
  object strPropertiesToReturn,
  object strPropertyToSortOn,
  bool fSortAscending,
  object lStartingRecord,
  object lRecordsToRetrieve,
  object plTotalRecordsInQuery,
);

Parameters

[Visual Basic .NET]
strSQLClause
An Object that contains the SQL search query.
strFTSPhrase
An Object that contains the free-text search phrase.
fRecursive
A Boolean that specifies whether the query is recursive, that is, whether the scope of the query includes child categories. A value of True indicates that the query is recursive. A value of False indicates that the query is not recursive. The default value is True.
eClassTypeRequired
An Object that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn
An Object that contains the properties to return as a comma-separated list.
strPropertyToSortOn
An Object that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An Object that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve
An Object that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
plTotalRecordsInQuery
An Object used to return the total number of records matching the query.
[C#]
strSQLClause
An object that contains the SQL search query.
strFTSPhrase
An object that contains the free-text search phrase.
fRecursive
A bool that specifies whether the query is recursive, that is, whether the scope of the query includes child categories. A value of True indicates that the query is recursive. A value of False indicates that the query is not recursive. The default value is True.
eClassTypeRequired
An object that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn
An object that contains the properties to return as a comma-separated list.
strPropertyToSortOn
An object that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending
An bool that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord
An object that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve
An object that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
plTotalRecordsInQuery
An object used to return the total number of records matching the query.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the results of your query.

[C#] This method returns a _Recordset interface to a Recordset object used to contain the results of your query.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_SEARCH_CLAUSE | [C#] 0x8898011C [Visual Basic .NET] &H8898011C | The search condition that you specified is invalid for one of the following reasons: It contains -- or /* which should not be used outside of property names and property values The parentheses in the search condition do not match in number or alignment.
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011D [Visual Basic .NET] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

This method is very similar to the CatalogManager3.Query method. The primary difference is that this method returns results limited to a single category, and, optionally the child categories for this category. Multilingual results will be returned in the language specified by the ProductCatalog3::get_Language method of the catalog that contains this category.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.SetCategoryProperties Method

Use this method to set values for the properties of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODBLib26     ‘ for _Recordset
…
Public Sub SetCategoryProperties(
  pRSCategory As _Recordset,
  Optional fForceUpdate As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetCategoryProperties(
  _Recordset pRSCategory,
  object fForceUpdate
);

Parameters

[Visual Basic .NET]
pRSCategory
The _Recordset interface of a Recordset object that contains the properties for this category.
fForceUpdate
An Object that causes a forced update of the category properties.
[C#]
pRSCategory
A _Recordset interface to a Recordset object that contains the properties for this category.
fForceUpdate
An object that causes a forced update of the category properties. Set to Type.Missing to enforce the default behavior.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_CANT_EDIT_INCLUDED_CATEGORY | [C#] 0x88980105 [Visual Basic .NET] &H88980105 | A virtual catalog’s included categories cannot be directly edited. Instead, they can be edited only in the base catalog context.
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &Hx889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_CATEGORY_CHANGED | [C#] 0x88980028 [Visual Basic .NET] &H88980028 | The category has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C#] 0x889800B4 [Visual Basic .NET] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties, the specified value should be between the minimum and maximum lengths defined for the property. For numeric properties, the specified value should be between minium and maximum values. For enumeration properties, the specified value should be one of the valid values defined for the property.
E_CAT_NULL_PRICE_NOT_ALLOWED | [C#] 0x8898003F [Visual Basic .NET] &H8898003F | The list price for this category cannot be blank as this category is being used as a pricing category by other products in the catalog.

Remarks

Use the SetCategoryProperties method to modify the properties of a category. The pRSCategory parameter specifies a _Recordset interface to a Recordset object that describes the new property values for this category. Use the _Recordset interface to a Recordset object returned by the GetCategoryProperties method so that its timestamp can be compared for error checking.

If the fForceUpdate parameter is set to false, and the property values in the pRSCategory parameter have changed, the method will fail.

This method will not update the built-in fields in the catalog. If this category is being used as a pricing category, then this method will update the price of all the products using this category as the pricing category.

The category name returned in this recordset will not contain the appended catalog name.

[Visual Basic .NET]

Example

myCategory.SetCategoryProperties(pRSCategory, "True")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.SetRelatedProducts Method (PIA)

Use this method to update product relationships.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Sub SetRelatedProducts(
  pRSRelatedProducts As Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;

using ADODB26Lib; //For _Recordset

…
public void SetRelatedProducts(
  _Recordset* pRSRelatedProducts
);

Parameters

[Visual Basic .NET]
pRSRelatedProducts
A Recordset object that contains the related products.
[C#]
pRSRelatedProducts
A _Recordset object that contains the related products.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | Invalid pointer.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship (and therefore cannot be edited).
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The recordset used for the pRSRelatedProducts parameter should be obtained from the get_RelatedProducts method.

Only the RelationshipDescription field should be updated. Other changes should be made by using the RemoveRelationshipToProduct and AddRelationshipToProduct methods.

You can update multiple records in the same call to this method.

When calling this method on an inherited category in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.SetRelatedCategories Method (PIA)

Use this method to update category relationships.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Sub SetRelatedCategories(
  pRSRelatedCategories As Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;

using ADODB26Lib; //For _Recordset

…
public void SetRelatedCategories(
  _Recordset pRSRelatedCategories
);

Parameters

[Visual Basic .NET]
pRSRelatedCategories
A Recordset object that contains the related categories.
[C#]
pRSRelatedCategories
A Recordset object that contains the related categories.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | Invalid pointer.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedCategories method.

Only the RelationshipDescription field should be updated. Other changes should be made by using the RemoveRelationshipToCategory and AddRelationshipToCategory methods.

You can update multiple records in the same call to this method.

When calling this method on an inherited category in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3 Properties (PIA)

Properties

Property | Type | Description
AncestorCategories | ADODB26Lib._Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category, in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | String | Contains the name of this category. This property is read-only.
ChildCategories | ADODB26Lib._Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | ADODB26Lib._Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | ADODB26Lib._Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | ADODB26Lib._Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | ADODB26Lib._Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | ADODB26Lib._Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | ADODB26Lib._Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.


Category3.AncestorCategories Property (PIA)

The AncestorCategories property is a read-only Recordset object that contains the names of categories that exist anywhere above this category in the hierarchy

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib    ‘ for _Recordset
…
Public Property AncestorCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset AncestorCategories {get;}
[C#]

Property Value

An ADODB26Lib._Recordset interface to a Recordset object containing the ancestor categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[Visual Basic .NET] The AncestorCategories property is a Recordset object with a 128-character field, named Name. This Recordset object also contains a 128-character string column called DisplayName that contains the display name of the category in the language of the category object.

[C#] The AncestorCategories property is an ADODB26Lib._Recordset interface to a Recordset object with a 128-character field, named Name. This Recordset object also contains a 128-character string column called DisplayName that contains the display name of the category in the language of the category object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.ParentCategories

Category3.ChildCategories


Category3.CatalogName Property (PIA)

The CatalogName property is a read-only String that contains the name of the catalog within which this category exists.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property CatalogName As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string CatalogName {get;}

Property Value

A string used to return the catalog name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Ran out of memory.

Remarks

[Visual Basic .NET] The CatalogName property contains valid data only if the property is accessed successfully.

[C#] The CatalogName property contains valid data only if the property is accessed successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.CategoryName Property (PIA)

The CategoryName property is a read-only String that contains the name of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property CategoryName As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string CategoryName {get;}

Property Values

A string used to return the category name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Ran out of memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.ChildCategories Property (PIA)

The ChildCategories property is a read-only Recordset object that contains the names of categories that exist below this category in the hierarchy.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property ChildCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset CategoryName {get;}

Parameters

[C#]

An ADODB26Lib._Recordset interface to a Recordset object used to return the child categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

The ChildCategories property contains valid data only if the property is accessed successfully.

The ChildCategories recordset contains a row for each of the categories that are currently children of this category. The following table lists the fields for the ChildCategories recordset.

Field | Data type | Description
CategoryName | String maximum of 128 characters | The name of the category.
DefinitionName | String maximum of 128 characters | The name of the definition.
CatalogName | String maximum of 128 characters | The name of the catalog that contains the category.
DisplayName | String maximum of 128 characters | The display name of the category.

If this category has no children, an empty recordset is returned whose EOF property is set to true. Your code should check the value of this property to determine if child categories exist.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.ParentCategories

Category3.AncestorCategories


Category3.DescendantProducts Property (PIA)

The DescendantProducts property is a read-only Recordset object that contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property DescendantProducts(
  Optional eClassTypeRequired As Object,
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional plTotalRecordsInQuery As Integer
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset get_DescendantProducts(
  object eClassTypeRequired,
  object lStartingRecord,
  object lRecordsToRetrieve,
  ref object plTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
eClassTypeRequired
An Object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
lStartingRecord
An Object that contains the starting record.
lRecordsToRetrieve
An Object that contains the number of records to retrieve.
plTotalRecordsInQuery
An Integer used to return the total number of records in the query.
[C#]
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section. Set to Type.Missing in order to not specify a catalog class.
lStartingRecord
An object that contains the starting record. Set to Type.Missing in order to not specify a starting record.
lRecordsToRetrieve
An object that contains the number of records to retrieve. Set to Type.Missing in order to not specify the number or records to retrieve.
plTotalRecordsInQuery
An object used to return the total number of records in the query. Set the object to Type.Missing if the return value is not needed.
DescendantProducts
A _Recordset interface to the Recordset object used to return the descendant products.

Return Values

[C#] This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the descendant products.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C#]

The DescendantProducts parameter contains valid data only if the property is accessed successfully.

get_DescendantProducts does not show up in IntelliSense.

This property gets all the products that are directly or indirectly under this category.

The returned recordset contains all the fields in the CatalogProduct Recordset.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.RelatedProducts

Category3.Products


Category3.GetCategoryProperties Property (PIA)

The GetCategoryProperties property is a read-only recordset that contains the properties for this category. Both the properties that are present in the definition of this category and the built-in properties are returned.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property GetCategoryProperties As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset GetCategoryProperties {get;}
[C#]

Property Value

A _Recordset interface to a Recordset object containing the category properties.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.

Remarks

[Visual Basic .NET] The GetCategoryProperties property contains valid data only if the property is accessed successfully.

The returned Recordset contains all the common fields in the CatalogProduct Recordset. It also contains all the fields that are in the product definitions for the category. The ProductID field (the unique product identifier) is returned even if it is not part of a product definition.

The returned Recordset is updateable, but disconnected. If this category has been deleted from the database, this property throws a COMException. For categories created in virtual catalogs, the category name returned in the Recordset will not contain the appended catalog name.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.SetCategoryProperties


Category3.ParentCategories Property (PIA)

The ParentCategories property is a read-only recordset that contains the names of the parent categories of this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Property ParentCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset ParentCategories {get;}
[C#]

Property Value

An ADODB26Lib._Recordset interface to a Recordset object containing the parent categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[Visual Basic .NET]

The ParentCategories property contains valid data only if the property is accessed successfully.

The ParentCategories property contains the names of the categories that are parent categories of this category. The recordset returned contains a 128-character string column, called Name, and one row for each parent that exists.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
Name | String Maximum of 128 characters | Name of the parent category.
DisplayName | String Maximum of 128 characters | Display name of the category.
FVirtualCatalog | bit | For a virtual catalog this field specifies if this link was inherited(value 0) or explicitly added (value 1). For a base catalog this field will always be 0.

If this category is a root category, it has no parent categories, and an empty recordset is returned whose EOF property is set to VARIANT_TRUE.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AncestorCategories

Category3.ChildCategories


Category3.PrimaryParent Property (PIA)

The PrimaryParent property is a read/write String that contains the primary parent category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Property PrimaryParent() As String
[C#]
Imports Microsoft.CommerceServer.Interop.Catalog;
…
Public string PrimaryParent {get; set;}

Property Value

A string containing the primary parent category name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified doesn't exist.
E_CAT_PRIMARYPARENT_DOES_NOT_EXIST | [C#] 0x889800AC [Visual Basic .NET] &H889800AC | The primary parent category that you specified does not exist
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_PRICING_CAT_PRICELESS | [C#] 0x8898002F [Visual Basic .NET] &H8898002F | The category you specified has no list price. The list price of the category has to be set before using this for pricing.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class


Category3.Products Property (PIA)

The Products property is a read-only recordset that contains product data for all of the products that exist directly within this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Property Products(
  Optional eClassTypeRequired As Object,
  Optional strPropertyToSortOn As Object,
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional plTotalRecordsInQuery As Integer
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset get_Products(
  object eClassTypeRequired,
  object strPropertyToSortOn,
  object lStartingRecord,
  object lRecordsToRetrieve,
  ref object plTotalRecordsInQuery
);

Parameters

[Visual Basic .NET]
eClassTypeRequired
An Object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
strPropertyToSortOn
An Object that contains the property to sort on.
lStartingRecord
An Object that contains the starting record number.
lRecordsToRetrieve
An Object that contains the number of records to retrieve.
plTotalRecordsInQuery
An Integer used to return the total number of records in the query.
[C#]
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section. Set to Type.Missing in order to not specify a catalog class.
strPropertyToSortOn
An object that contains the property to sort on. Set to Type.Missing in order to not specify a property to sort on.
lStartingRecord
An object that contains the starting record number. Set to Type.Missing in order to not specify a starting record.
plRecordsToRetrieve
An object that contains the number of records to retrieve. Set to Type.Missing in order to not specify the number or records to retrieve.
[C#]

Return Values

This method returns an ADODB26Lib._Recordset interface to a Recordset object used to return the products.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

[C#]

get_Products does not show up in IntelliSense.

If the properties specified in strPropertyToSortOn parameter are invalid then the recordset will be unsorted.

Note

  • If the value of cscCategoryClass is specified for the eClassTypeRequired parameter, the returned recordset will contain all the products and all the child categories in this category.

The Products property contains the product data for all the products in this category.

The returned Recordset contains all the fields in the CatalogProduct Recordset.

If this category contains no products, then the Products property returns an empty Recordset whose EOF property is set to true.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.DescendantProducts

Category3.RelatedProducts


Category3.RelatedCategories Property (PIA)

The RelatedCategories property is a read-only recordset that contains all categories related to this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Property RelatedCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset RelatedCategories {get;}
[C#]

Property Value

An ADODB26Lib._Recordset interface to a Recordset object used to return the related categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

The RelatedCategories parameter contains valid data only if the property is accessed successfully.

The RelatedCategories property contains information on all the relationships this category has to other categories. The Recordset returned contains one row for each relationship present.

The returned Recordset contains the following fields:

Field | Data Type | Description
CategoryName | String maximum of 128 characters | The name of the category.
RelationshipName | String maximum of 128 characters | The name of the relationship.
RelationshipDescription | String maximum of 256 characters | The description of the relationship.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.AncestorCategories

Category3.ChildCategories

Category3.ParentCategories

Category3.AddRelationshipToCategory

Category3.RemoveRelationshipToCategory


Category3.RelatedProducts Property (PIA)

The RelatedProducts property is a read-only recordset containing information about all products related to this category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Property RelatedProducts As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset RelatedProducts{ get;}
[C#]

Property Values

An ADODB26Lib._Recordset interface to a Recordset object containing the related products.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C#] 0x889800F8 [Visual Basic .NET] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

The Recordset returned contains one row for each relationship present.

The following table shows the fields in the returned Recordset.

Field | Data Type | Description
<defined ProductID field> | Varies | The unique product identifier, defined during catalog creation.
RelationshipName | String maximum of 128 characters | The name of the relationship.
RelationshipDescription | String maximum of 256 characters | The description of the relationship.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server family

Assembly: cataloglib (in cataloglib.dll)

See Also

Category Class

Category3.DescendantProducts

Category3.Products

Category3.AddRelationshipToProduct

Category3.RemoveRelationshipToProduct


Product3 Class (PIA)

Use this object to work with products and variants in a catalog.

Methods

Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetProductProperties | Sets the properties for this product and all its variants.
SetVariantProperties | Sets the properties for variants of this product.

Properties

Property | Type | Description
AncestorCategories | ADODB26Lib._Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | ADODB26Lib._Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | ADODB26Lib._Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | String | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | BSTR | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | String | Contains the unique identifier for this product. This property is read-only.
RelatedCategories | ADODB26Lib._Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | ADODB26Lib._Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | VARIANT_BOOL | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | ADODB26Lib._Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.

Remarks

The Product object is a dependent object. Obtain a pointer to the IProduct interface by calling one of the following methods:

  • ProductCatalog.CreateProduct
  • ProductCatalog.GetProduct

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)


Product3 Methods (PIA)

Methods

Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetProductProperties | Sets the properties for this product and all its variants.
SetVariantProperties | Sets the properties for variants of this product.


Product3.AddRelationshipToCategory Method (PIA)

Use this method to add a relationship to a specified category in the specified catalog from this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String,
  Optional strRelationshipDescription As Object,
  strTargetCatalogNameStack As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddRelationshipToCategory(
  string strRelatedCategoryName,
  string strRelationshipName,
  object strRelationshipDescription,
  string strTargetCatalogNameStack
);

Parameters

[Visual Basic .NET]
strRelatedCategoryName
A String that contains the name of the category to which a relationship is to be added.
strRelationshipName
A String that contains a name for the relationship.
strRelationshipDescription
An Object that optionally contains a description for the relationship.
strTargetCatalogNameStack
A String that contains the name of the catalog that contains the category specified in strRelatedCategoryName.
[C#]
strRelatedCategoryName
A string that contains the name of the category to which a relationship is to be added.
strRelationshipName
A string that contains a name for the relationship.
strRelationshipDescription
An object that optionally contains a description for the relationship. Set to Type.Missing to omit a description.
strTargetCatalogNameStack
A string that contains the name of the catalog that contains the category specified in strRelatedCategoryName.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_RELATION_DESC | [C#] 0x88980055 [Visual Basic .NET] &H88980055 | The value you specified for the relationship description exceeds 256 characters. Relationship description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C#] 0x8898011B [Visual Basic .NET] &H8898011B | A virtual catalog's included relationships cannot be directly edited. They can only be edited in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you can specify in the strRelationshipDescription parameter.

More than one relationship may be created between the same product and category, however in this case each relationship created must be given a unique name.

[Visual Basic .NET]

Example

'vDesc is an Object of subtype String containing the description.
myProduct.AddRelationshipToCategory ("Apparel", "Accessory", vDesc)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.AddRelationshipToProduct

Product3.RemoveRelationshipToCategory


Product3.AddRelationshipToProduct Method (PIA)

Use this method to add a relationship from this product to a specified product in the specified catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddRelationshipToProduct(
  varRelatedProductID As Object,
  strRelationshipName As String,
  Optional strRelationshipDescription As Object
  strTargetCatalogNameStack As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddRelationshipToProduct(
  object varRelatedProductID,
  string strRelationshipName,
  object strRelationshipDescription,
  string strTargetCatalogNameStack
);

Parameters

[Visual Basic .NET]
varRelatedProductID
An Object that contains the ID of the related product.
strRelationshipName
A String that contains the name of the relationship.
strRelationshipDescription
An Object that optionally contains a description for the relationship.
strTargetCatalogNameStack
A String that contains the name of the catalog that contains the category specified in varRelatedProductID.
[C#]
varRelatedProductID
An object that contains the ID of the related product.
strRelationshipName
A string that contains the name of the relationship.
strRelationshipDescription
An object that optionally contains a description for the relationship. Set to Type.Missing to omit a description.
strTargetCatalogNameStack
A string that contains the name of the catalog that contains the category specified in varRelatedProductID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &Hx8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the productID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &Hx8898004E | The value you specified for the productID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_DESC | [C#] 0x88980055 [Visual Basic .NET] &H88980055 | The value you specified for the relationship description exceeds 256 characters. Relationship description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C#] 0x8898011B [Visual Basic .NET] &H8898011B | A virtual catalog's included relationships cannot be directly edited. They can edited only in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you can specify in the strRelationshipDescription parameter.

More than one relationship may be created between the same two products, however in this case each relationship created must be given a unique name.

[Visual Basic .NET]

Example

'vProdID is an Object containing the product ID
'vDesc is an Object of subtype String containing a description
'of the relationship
myProduct.AddRelationshipToProduct(vProdID, "Accessory", vDesc, "myCatalog")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.AddRelationshipToCategory

Product3.RemoveRelationshipToProduct


Product3.CreateVariant Method (PIA)

Use this method to create a new product variant of the current product. Only product-specific attributes will be set in the new variant.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function CreateVariant(
  varProductVariantID As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset CreateVariant(
  object varProductVariantID
);

Parameters

[Visual Basic .NET]
varProductVariantID
An Object that contains the unique ID of the product variant.
[C#]
varProductVariantID
An object that contains the unique ID of the product variant.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the properties for the object.

[C#] This method returns a _Recordset interface to a Recordset object used to return the product variant.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants, a catalog must be created with a variant identifier.
E_CAT_NO_VARIANTS_UNDER_PRODUCT | [C#] 0x88980051 [Visual Basic .NET] &H88980051 | You cannot create a variant under a regular product. Variants can be created under product families only.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_VARIANTID | [C#] 0x8898005C [Visual Basic .NET] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C#] 0x8898004D [Visual Basic .NET] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C#] 0x8898004F [Visual Basic .NET] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_EXISTS | [C#] 0x88980026 [Visual Basic .NET] &H88980026 | The product variant you specified already exists.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.

Remarks

The value and type of the varProductVariantID parameter must be valid for the property specified as the unique ID for product variants. This property, strProductVariantID, is specified when a catalog is created.

If the catalog created does not support variants, that is, strProductVariantID was not specified on catalog creation, an error is returned.

Upon successful completion, the method returns an ActiveX Data Objects (ADO) Recordset that contains fields for all the properties defined for the new product variant and an integer field named oid. The oid field is for internal use and should not be updated. The returned Recordset is updateable, but disconnected. To modify the variant properties, pass this Recordset to the SetVariantProperties method.

The product variants inherit the properties that are present in the product definition. Values for non-variant-specific product properties are propagated from the Product object down to the variants, but values for variant-specific properties must be explicitly set for each variant.

The variant ID value should be unique within the product family. There can be two product variants with the same variant ID within the same catalog, as long as they are in different product families.

[Visual Basic .NET]

Example

rsVariantProps = myProduct.CreateVariant("SKU4005XLA")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.DeleteVariant

Product3.SetVariantProperties


Product3.DeleteVariant Method (PIA)

Use this method to delete the specified product variant. This method applies to base catalogs only.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteVariant(
  varVariantID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteVariant(
  object varVariantID
);

Parameters

[Visual Basic .NET]
varVariantID
An Object that contains the unique ID of the variant.
[C#]
varVariantID
An object that contains the unique ID of the variant.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants, the catalog must be created with a variant identifier.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_VARIANTID | [C#] 0x8898005C [Visual Basic .NET] &Hx8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C#] 0x8898004D [Visual Basic .NET] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C#] 0x8898004F [Visual Basic .NET] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_DOESNT_EXIST | [C#] 0x8898001F [Visual Basic .NET] &H8898001F | The product variant you specified does not exist.
[Visual Basic .NET]

Example

'objID is an Object containing the unique ID
'for the product variant.
myProduct.DeleteVariant(objID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.CreateVariant


Product3.GetVariantProperties Method (PIA)

Use this method to retrieve the properties for a specified product variant.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function GetVariantProperties(
  varProductVariantID As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset GetVariantProperties(
  object varProductVariantID);

Parameters

[Visual Basic .NET]
varProductVariantID
An Object that contains the unique ID of the product variant.
[C#]
varProductVariantID
An object that contains the unique ID of the product variant.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset object that contains the variant properties.

[C#] This method returns a _Recordset interface to an ADODB26Lib._Recordset object containing the product variant properties.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants, the catalog must be created with a variant identifier.
E_CAT_INVALID_VARIANTID | [C#] 0x8898005C [Visual Basic .NET] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C#] 0x8898004D [Visual Basic .NET] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_DOESNT_EXIST | [C#] 0x8898001F [Visual Basic .NET] &H8898001F | The product variant you specified does not exist.

Remarks

The ppRSProductVariant parameter contains valid data only if the property was accessed successfully.

This method returns the properties of the specified product variant. If the product variant specified in the varProductVariantID parameter does not exist in the product, the method will fail.

The single-row Recordset returned contains fields for all of the properties defined for variants of this product followed by the following fields:

Field | Type | Description
TimeStamp | Timestamp | None
cy_list_price | Currency | List price
oid | Integer | None

The oid field is for internal use only and should not be updated.

The Recordset returned is updateable, but disconnected. To modify the product properties, pass this Recordset to the SetVariantProperties method.

The returned recordset contains the fields listed in the following table.

Field | Data Type
oid | int
cy_list_price | money
Timestamp | timestamp
ProductID | string
[Visual Basic .NET]

Example

'vVarID is an Object containing the unique ID of the variant.
rsVariantProps = myProduct.GetVariantProperties(vVarID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.SetVariantProperties


Product3.RemoveRelationshipToCategory Method (PIA)

Use this method to remove the specified relationship between the specified category and this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String
  strCatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveRelationshipToCategory(
  string strRelatedCategoryName,
  string strRelationshipName
  string strCatalogName
);

Parameters

[Visual Basic .NET]
strRelatedCategoryName
A String that contains the name of the category that is to have its relationship to this product removed.
strRelationshipName
A String that contains the name of the relationship to be removed.
strCatalogName
A String that contains the name of the catalog containing the related category.
[C#]
strRelatedCategoryName
A string that contains the name of the category that is to have its relationship to this product removed.
strRelationshipName
A string that contains the name of the relationship to be removed.
strCatalogName
A string that contains the name of the catalog containing the related category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )# . that should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.
[Visual Basic .NET]

Example

' Remove the "Accessory" relationship this product has to
' the "Apparel" category
myProduct.RemoveRelationshipToCategory ("Apparel", "Accessory")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.RelatedCategories

Product3.AddRelationshipToCategory

Product3.RemoveRelationshipToProduct


Product3.RemoveRelationshipToProduct Method (PIA)

Use this method to remove the specified relationship between the specified product and this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveRelationshipToProduct(
  varRelatedProductID As Object,
  strRelationshipName As String,
  strCatalogName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveRelationshipToProduct(
  object varRelatedProductID,
  string strRelationshipName,
  string strCatalogName
);

Parameters

[Visual Basic .NET]
varRelatedProductID
An Object that contains the unique ID of the product that is to have its relationship to this product removed.
strRelationshipName
A String that contains the name of the relationship to be removed.
strCatalogName
A String that contains the name of the catalog containing the name of the related category.
[C#]
varRelatedProductID
An object that contains the unique ID of the product that is to have its relationship to this product removed.
strRelationshipName
A string that contains the name of the relationship to be removed.
strCatalogName
A string that contains the name of the catalog containing the name of the related category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &Hx88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the productID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the productID is either out of range or else does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C#] 0x88980054 [Visual Basic .NET] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is an inherited relationship (and therefore cannot be edited).
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.
[Visual Basic .NET]

Example

''vProdID is an Object containing the unique ID of the related product.
myProduct.RemoveRelationshipToProduct(vProdID, "Accessory")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.RelatedProducts

Product3.AddRelationshipToProduct

Product3.RemoveRelationshipToCategory


Product3.SetRelatedCategories Method (PIA)

Use this method to update category relationships.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Sub SetRelatedCategories(
  pRSRelatedCategories As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetRelatedCategories(
  _Recordset pRSRelatedCategories
);

Parameters

[Visual Basic .NET]
pRSRelatedCategories
A Recordset object that contains the related categories.
[C#]
pRSRelatedCategories
A Recordset object that contains the related categories.

Return Values

None.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | Invalid pointer.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Error Values

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available by using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedCategories method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, because they may be returned by the RelatedCategories method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.SetRelatedProducts Method (PIA)

Use this method to update product relationships.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Sub SetRelatedProducts(
  pRSRelatedCategories As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetRelatedProducts(
  _Recordset pRSRelatedCategories
);

Parameters

[Visual Basic .NET]
pRSRelatedCategories
A Recordset object that contains the related products.
[C#]
pRSRelatedCategories
A Recordset object that contains the related products.

Return Values

None.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | Invalid pointer
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C#] 0x88980045 [Visual Basic .NET] &H88980045 | The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Error Values

This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available by using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedProducts method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, because they may be returned by the RelatedProducts method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.SetProductProperties Method (PIA)

Use this method to set the properties for this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Sub SetProductProperties(
  pRSProduct As _Recordset,
  Optional fForceUpdate As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetProductProperties(
  _Recordset pRSProduct,
  object fForceUpdate
);

Parameters

[Visual Basic .NET]
pRSProduct
A _Recordset interface to a Recordset object that contains the new product properties. This should be an updated recordset returned by the GetProductProperties method.
fForceUpdate
An Object that determines whether to force an update of the product properties.
[C#]
pRSProduct
A_Recordset interface to a Recordset object that contains the new product properties. This should be an updated Recordset returned by the GetProductProperties method.
fForceUpdate
An object that determines whether to force an update of the product properties. Set to Type.Missing for default behavior.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants, the catalog must be created with a variant identifier.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_PRODUCT_CHANGED | [C#] 0x88980027 [Visual Basic .NET] &H88980027 | The product variant has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C#] 0x889800B4 [Visual Basic .NET] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties, the specified value should lie between the minimum and maximum lengths defined for the property. For numeric properties, the specified value should lie between the minimum and maximum values. For enumeration properties, the specified value should be one of the valid values defined for the property.
E_CAT_INVALID_LISTPRICE | [C#] 0x8898003C [Visual Basic .NET] &H8898003C | An invalid list price is specified for this product or variant. The list price cannot be empty for the products and variants.

Remarks

Use the SetProductProperties method to modify the properties of a product. The pRSProduct parameter specifies a Recordset object that describes the new property values for this product. This method will not update the fields derived from the catalog such as ProductId and VariantID. If this method is called for a product family it will update the properties for all variants that belong to the product family.

Use the Recordset object returned by the GetProductProperties property so that the timestamps can be compared to the records updated by this method for error detection.

If the fForceUpdate parameter is set to false, and the property values for this product have been changed since the pRSProduct recordset was read, the method will fail.

[Visual Basic .NET]

Example

'This example changes the list price for a product
rsProductProps = myProduct.GetProductProperties()
rsProductProps.fields("cy_list_price").Value() = CCur(1.398)
myProduct.SetProductProperties(rsProductProps, TRUE)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.GetProductProperties


Product3.SetVariantProperties Method (PIA)

Use this method to set the properties for a variant of this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Sub SetVariantProperties(
  pRSNewState As _Recordset,
  Optional fForceUpdate As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;

using ADODB26Lib; //For _Recordset

…
public void SetVariantProperties(
  _Recordset pRSNewState,
  object fForceUpdate
);

Parameters

[Visual Basic .NET]
pRSNewState
The _Recordset interface to a Recordset object that contains the new product variant properties. This should be a recordset returned by the GetVariantProperties property or by the CreateVariant method.
fForceUpdate
An Object that determines whether to force an update of the product variant properties.
[C#]
pRSNewState
A_Recordset interface to a Recordset object that contains the new product variant properties. This should be a Recordset returned by the GetVariantProperties property or by the CreateVariant method.

fForceUpdate

An object that determines whether to force an update of the product variant properties. Set to Type.Missing for default behavior.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants, the catalog must be created with a variant identifier.
E_CAT_VARIANT_DOESNT_EXIST | [C#] 0x8898001F [Visual Basic .NET] &H8898001F | The product variant you specified does not exist.
E_CAT_PRODUCT_CHANGED | [C#] 0x88980027 [Visual Basic .NET] &H88980027 | The product variant has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C#] 0x889800B4 [Visual Basic .NET] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties, the specified value should lie between the minimum and maximum lengths defined for the property. For numeric properties, the specified value should lie between a minimum and maximum value. For enumeration properties, the specified value should be one of the valid values defined for the property.
E_CAT_INVALID_LISTPRICE | [C#] 0x8898003C [Visual Basic .NET] &H8898003C | An invalid list price is specified for this product or variant. The list price cannot be empty for the products and variants.

Remarks

Use the SetVariantProperties method to modify the properties of a product variant. The pRSNewState parameter specifies a Recordset object that describes the new property values for this product variant. Use the Recordset returned by the GetVariantProperties property or by the CreateVariant method, so that timestamps can be compared for error detection.

If the fForceUpdate parameter is set to false, and the property values in the pRSNewState parameter have changed, the method will fail.

[Visual Basic .NET]

Example

myProduct.SetVariantProperties(pRSNewState, fForceUpdate)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.GetVariantProperties


Product3 Properties (PIA)

Properties

Property | Type | Description
AncestorCategories | ADODB26Lib._Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | ADODB26Lib._Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | ADODB26Lib._Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | String | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | BSTR | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | String | Contains the unique identifier for this product. This property is read-only.
RelatedCategories | ADODB26Lib._Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | ADODB26Lib._Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | VARIANT_BOOL | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | ADODB26Lib._Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.


Product3.AncestorCategories Property (PIA)

[Visual Basic .NET] The AncestorCategories property is a read-only _Recordset interface to a Recordset object that contains the names of categories that exist anywhere above this product in the hierarchy.

[C#] The AncestorCategories property is a read-only Recordset object that contains the names of categories that exist anywhere above this product in the hierarchy.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ’ for _Recordset
…
Public ReadOnly Property AncestorCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset AncestorCategories {get;}

Property Value

An ADODB26Lib._Recordset interface to a Recordset object containing the ancestor categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

The AncestorCategories property is a Recordset object with a single 128-character field, named Name.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.ParentCategories


Product3.CatalogName Property (PIA)

The CatalogName property is a read-only String that contains the name of the catalog within which this product exists.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property CatalogName As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string CatalogName {get;}

Property Value

A string containing the catalog name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Ran out of memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.GetProductProperties Property (PIA)

The GetProductProperties property is a read-only Recordset that contains the properties of this Product object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public ReadOnly Property GetProductProperties As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset GetProductProperties {get;}

Property Value

A _Recordset interface to an ADODB26Lib._Recordset object containing the properties of this product.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.

Remarks

The GetProductProperties parameter contains valid data only if the property was accessed successfully.

The returned single-row Recordset contains all the fields defined for the product definition as well as all the common fields in the CatalogProduct Recordset. The recordset also contains the ProductID property of the catalog if the ProductID property is not a part of the product definition.

The Recordset returned is updateable, but disconnected. To modify the product properties, pass this Recordset to the SetProductProperties method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.SetProductProperties


Product3.ParentCategories Property (PIA)

The ParentCategories property is a read-only Recordset that contains the names of categories that directly contain this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public ReadOnly Property ParentCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset ParentCategories {get;}
[C#]

Property Value

A _Recordset interface to an ADODB26Lib.Recordset object containing the parent categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

If the product is not contained in any categories, the returned recordset will be empty, and its EOF property will be set to True.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
CategoryName String
Maximum of 128 characters 		Name of the category containing this product.
DisplayName String
Maximum of 128 characters 		Display name of the category.
FvirtualCatalog | bit | For a virtual catalog this field specifies if this link was inherited (value 0) or explicitly added (value 1). For a base catalog this field will always be 0.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.AncestorCategories


Product3.PricingCategory Property (PIA)

The PricingCategory property is a read/write String that contains the name of the pricing category for this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Property PricingCategory As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string PricingCategory {get; set;}

Property Value

A string that contains the pricing category.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_PRICING_CAT_PRICELESS | [C#] 0x8898002F [Visual Basic .NET] &H8898002F | The category you specified has no list price. The list price of the category must be set before using this for pricing.

Remarks

Using a category as a Pricing category allows you to set the prices of multiple products by making a single change, rather than having to change the price for each product. Setting the Pricing category for a product family will also set the Pricing category for all the variants of the product family.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.PrimaryParent Property (PIA)

The PrimaryParent property is a read/write String that contains the primary parent category.

Definition

[Visual Basic .NET]
…
Public Property PrimaryParent As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string PrimaryParent {get; set;}

Property Value

A string that contains the primary parent.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &Hx8898001E | The product you specified does not exist.
E_CAT_PRIMARYPARENT_DOES_NOT_EXIST | [C#] 0x889800AC [Visual Basic .NET] &H889800AC | The primary parent category that you specified does not exist.
E_CAT_INVALID_RELATION | [C#] 0x88980039 [Visual Basic .NET] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_PRICING_CAT_PRICELESS | [C#] 0x8898002F [Visual Basic .NET] &H8898002F | The category you specified has no list price. The list price of the category must be set before using this for pricing.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

Products and categories can have multiple parent-child relationships. Specifying a primary parent for a product or category simplifies the hierarchy and clarifies the application of pricing rules.

Note

  • This property cannot be modified in a virtual catalog. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object. If the category being added as a primary parent is not a parent category, then it will also be added as a parent category for the product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.ProductID Property (PIA)

The ProductID property is a read-only String that contains the unique ID for this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property ProductID As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
 string ProductID {get; }

Property Value

[C#]

A string containing the product ID.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The value of this property is a copy of the value of the IdentifyingProductProperty property of the catalog containing this product.

The value of this property will always be "ProductID" for a virtual catalog.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.RelatedCategories Property (PIA)

The RelatedCategories property is a read-only Recordset object that contains the names of categories that are related to this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public ReadOnly Property RelatedCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset RelatedCategories {get; set;}

Property Value

A _Recordset interface to an ADODB26Lib.Recordset containing the related categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[Visual Basic .NET]

The RelatedCategories property contains valid data only if it was accessed successfully.

The returned recordset contains one column for each relationship present.

The returned recordset contains the following fields:

Field Data Type Description
CategoryName String
Maximum of 128 characters 		Name of the category.
RelationshipName String
Maximum of 128 characters 		Name of the relationship.
RelationshipDescription String
Maximum of 256 characters 		Description of the relationship.
[C#]

The RelatedCategories parameter contains valid data only if the property was accessed successfully.

The returned Recordset contains one row for each relationship present.

The returned Recordset contains the following fields:

Field Data Type Description
CategoryName String
Maximum of 128 characters 		Name of the category.
RelationshipName String
Maximum of 128 characters 		Name of the relationship.
RelationshipDescription String
Maximum of 256 characters 		Description of the relationship.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class

Product3.RelatedProducts

Product3.AddRelationshipToCategory


Product3.RelatedProducts Property (PIA)

The RelatedProducts property is a read-only Recordset object that contains the names of products that are related to this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property RelatedProducts As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
 …
public _Recordset RelatedProducts {get;}

Property Value

A _Recordset interface to a Recordset object containing the related products.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

The RelatedProducts parameter contains valid data only if the property was accessed successfully.

The Recordset returned contains one row for each relationship present.

The Recordset returned contains the following fields:

Field | Data Type | Description
<defined ProductID field> | Varies | The field that uniquely defines a product in this catalog.
RelationshipName string
Maximum of 128 characters 		Name of the relationship.
RelationshipDescription string
Maximum of 128 characters 		Description of the relationship.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


# K Product3.UseCategoryPricing Property (PIA)

このページに対するフィードバックを送信する Commerce Server 2002 SDK

Product3.UseCategoryPricing Property (PIA)

The UseCategoryPricing property is a read/write Boolean that determines whether the price of the product will be determined from the PrimaryParent property of the product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Property UseCategoryPricing As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
 …
public bool UseCategoryPricing {get; set;}

Property Value

A bool that specifies whether to use category pricing.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PRIMARY_PARENT | [C#] 0x889800DA [Visual Basic .NET] &H889800DA | To use category pricing for this product, you should first set a primary parent category.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_PRICING_CAT_PRICELESS | [C#] 0x8898002F [Visual Basic .NET] &H8898002F | The category you specified has no list price. The list price of the category must be set before using this for pricing.

Remarks

A value of True indicates that the price of the product will be determined from the PrimaryParent category of the product. A value of False indicates that the price of the product will not be determined from the PrimaryParent category.

Note

  • If this product is inherited by a virtual catalog, the PrimaryParent property cannot be set from the virtual catalog.

If the property is set to True the PricingCategory property will be set to and become synonymous with the PrimaryParent property.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


Product3.Variants Property (PIA)

The Variants property is a Recordset that describes all of the variants of this product.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Property Variants(
  Optional strPropertyToSortOn As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset get_Variants(
  object strPropertyToSortOn );

Parameters

[Visual Basic .NET]
strPropertyToSortOn
An Object that contains the property on which the returned Recordset object is to be sorted.
[C#]
strPropertyToSortOn
An object that contains the property on which the returned Recordset object is to be sorted. Set to Type.Missing to not specify a property on which to sort.
[C#]

Return Values

This property returns a _Recordset interface to an ADODB26Lib._Recordset object containing the variants.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

If this product has no variants, the returned Recordset will be empty, and its EOF property will be set to True.

The Recordset returned contains fields for all of the properties defined for variants of this product and the following fields:

Field | Type | Description
TimeStamp | Timestamp | None
cy_list_price | Currency | List price
<defined variant ID> | Varies | None

[C#] get_Variants does not show up in IntelliSense.

[Visual Basic .NET]

Example

rsVariants = myProduct.Variants("Size")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Family

Assembly: Cataloglib (in Cataloglib.dll)

See Also

Product3 Class


ProductCatalog3 Class (PIA)

Use this object to alter catalogs and to modify catalog contents. The ProductCatalog3 object is the primary object for working with catalogs in the Product Catalog System.

Methods

Method | Description
AddLanguages | Adds support for an additional language.
AddPriceRule | Adds a price rule to a virtual catalog for a specific product or category.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | This method is obsolete.
CreateProduct | Creates a new product based on the specified product definition.
DeleteCategory | Deletes a category from this catalog.
DeleteCustomCatalog | This method is obsolete.
DeleteProduct | Deletes a product from this catalog.
GenerateCustomCatalog | This method is obsolete.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | This method is obsolete.
GetCustomCatalogAttributes | This method is obsolete.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependent on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Rebuilds virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free-text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | This method is obsolete.
SetCustomCatalogAttributes | This method is obsolete.

Properties

Property | Type | Description
BaseCatalogName | String | Contains the name of a base catalog for the custom catalog. This property is read-only.
CatalogName | String | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | String | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | String | Contains the name of the column used to uniquely identify product variants. This property is read-only.
Language | BSTR | Contains the active language. This property is read/write.
RootCategories | ADODB26Lib._Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | ADODB26Lib._Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | ADODB26Lib._Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

Remarks

The ProductCatalog3 object is a dependent object. Obtain a pointer to the IProductCatalog3 interface by calling one of the following methods:

  • CatalogManager.GetCatalog
  • CatalogManager.CreateCatalog

Note

  • There is limit on the number of ProductCatalog3 objects upon which you can search. Full-text search breaks when searching more than 256 ProductCatalog3 objects. This is a limitation of SQL Server 2000.

Many of the ProductCatalog3 methods use a RecordSet object to return data. For more information, see CatalogProduct Recordset.


ProductCatalog3 Methods (PIA)

Methods

Method | Description
AddLanguages | Adds support for an additional language.
AddPriceRule | Adds a price rule to a virtual catalog for a specific product or category.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | Creates a new custom catalog template. The returned recordset is disconnected and updateable.
CreateProduct | Creates a new product based on the specified product definition.
DeleteCategory | Deletes a category from this catalog.
DeleteCustomCatalog | Deletes a custom catalog from this catalog.
DeleteProduct | Deletes a product from this catalog.
GenerateCustomCatalog | Populates the specified custom catalog template with data derived from this catalog.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | Returns the custom price of the specified category.
GetCustomCatalogAttributes | Returns the attributes of the specified custom catalog. The returned recordset is disconnected and updateable.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependent on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Rebuilds virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free-text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | Defines a custom price for the specified category.
SetCustomCatalogAttributes | Sets attributes for the specified custom catalog.


ProductCatalog3.AddLanguage Method (PIA)

Use this method to add support for an additional language.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddLanguage(
  strLanguage As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddLanguage(
 string strLanguage
);

Parameters

[Visual Basic .NET]
strLanguage
A String that contains the ISO 639+1 code for the language to be added.
[C#]
strLanguage
A string that contains the ISO 639+1 code for the language to be added.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009E [Visual Basic .NET] &H8898009E | The value you specified for the language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_LANGUAGE_ALREADY_EXISTS | [C#] 0x889800A0 [Visual Basic .NET] &H889800A0 | The language you specified already exists in the catalog.

Remarks

This method adds the specified language to the list of languages supported by the catalog. It will use default values if default values are specified for the property and language.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.AddPriceRule Method (PIA)

Use this method to add a price rule for a specific product or category to a virtual catalog. This method applies only to virtual catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddPriceRule(
  eCustomPricingRule As CatalogCustomPriceEnum,
  fpCustomPrice As float64,
  vrProductIDOrCategoryName As Object,
  Optional vrVariantID As Object,
  Optional fCategory As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddPriceRule(
  CatalogCustomPriceEnum eCustomPricingRule,
  float64 fpCustomPrice,
  object vrProductIDOrCategoryName,
  object vrVariantID,
  bool fCategory
);

Parameters

[Visual Basic .NET]
eCustomPricingRule
A CatalogCustomPriceEnum enumeration that specifies the type of pricing rule. See the Remarks section for valid values.
fpCustomPrice
A float64 that contains the amount of the price adjustment.
vrProductIDOrCategoryName
An Object that contains the product ID or category name to which the rule applies.
vrVariantID
An Object that contains the variant ID, if the rule is specific to a variant.
fCategory
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True indicates a category. A value of False indicates a product. The default value is False (0).
[C#]
eCustomPricingRule
A CatalogCustomPriceEnum enumeration that specifies the type of pricing rule. See the Remarks section for valid values.
fpCustomPrice
A float64 that contains the amount of the price adjustment.
vrProductIDOrCategoryName
An object that contains the product ID or category name to which the rule applies.
vrVariantID
An object that contains the variant ID, if the rule is specific to a variant.
fCategory
A bool that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True indicates a category. A value of False indicates a product. The default value is False (0).

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VC_RULE_PARAM | [C#] 0x88980103 [Visual Basic .NET] &H88980103 | The ProductID or CategoryName is invalid. The ProductID and CategoryName should be passed using the ProductID(CatalogName) or CategoryName(CatalogName) format.
E_CAT_VC_INVALID_ITEM | [C#] 0x889800FD [Visual Basic .NET] &H889800FD | The specified product/category/variant could not be found in the base catalog.

Remarks

If the fCategory parameter is True and the vrProductIDOrCategoryName parameter is an empty string, then the rule applies to the entire catalog.

Categories, products, and variant products specified in the parameters of this method must already be included in the virtual catalog.

The vrVariantID parameter is only valid for products. If it is supplied, it indicates that the rule should be applied for that variant only.

The following table shows the values of the CatalogCustomPriceEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscNoCustomPrice | 0 | The custom price is the same as the base price.
cscPercentageMultiplier | 1 | The custom price = base price + (base price * (pfpCustomPriceAmount /100)). pfpCustomPriceAmount can be positive or negative.
cscAddFixedAmount | 2 | The custom price is the value in the parameter pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the value in the parameter pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.AddSpecificationSearchClause Method (PIA)

Use this method to add constraints to a specification search of this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddSpecificationSearchClause(
 strClause As String,
 pstrSearchHandle As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddSpecificationSearchClause(
 string strClause,
 ref object pstrSearchHandle
);

Parameters

[Visual Basic .NET]
strClause
A String that contains the clause to be added to the specified specification search.
pstrSearchHandle
An Object that contains the state of the specification search to which the clause will be added. This Object is also used to return the updated state of the specification search.
[C#]
strClause
A string that contains the clause to be added to the specified specification search.
pstrSearchHandle
Set to an object that contains the state of the specification search to which the clause will be added. Returned with the updated state of the specification search.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C#] 0x8898010D [Visual Basic .NET] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....

Remarks

The specification clause contained in the strClause parameter will be appended to the existing clauses and sent to SQL Server without any changes when the specification search is performed.

[C#]

Upon successful completion, the pstrSearchHandle parameter will contain the name of the updated specification search.

The specification clause contained in the strClause parameter will be appended to the existing clauses and sent to SQL Server without any changes when the specification search is performed.

Example

[Visual Basic .NET]
myProductCatalog.AddSpecificationSearchClause(strClause, pstrSearchHandle)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.BeginSpecificationSearch

ProductCatalog3.GetSpecificationSearchClauses

ProductCatalog3.PerformSpecificationSearch


ProductCatalog3.AddVirtualCatalogRule Method (PIA)

Use this method to add an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current virtual catalog. This method applies only to virtual catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub AddVirtualCatalogRule(
  strCatalogName As String,
  vrProductIDOrCategoryName As Object,
  Optional vrVariantID As Object,
  Optional fCategory As Boolean,
  Optional fExclusion As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void AddVirtualCatalogRule(
  string strCatalogName,
  object vrProductIDOrCategoryName,
  object vrVariantID,
  bool fCategory,
  bool fExclusion
);

Parameters

[Visual Basic .NET]
strCatalogName
A String that contains the catalog name.
vrProductIDOrCategoryName
An Object that contains the product ID or category name to which the rule applies.
vrVariantID
An Object that contains the variant ID to which the rule applies.
fCategory
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).
fExclusion
A Boolean that specifies whether this is an inclusion or exclusion rule. A value of True indicates an exclusion rule. A value of False indicates an inclusion rule. The default value is False.
[C#]
strCatalogName
A string that contains the catalog name.
vrProductIDOrCategoryName
An object that contains the product ID or category name to which the rule applies.
vrVariantID
An object that contains the variant ID to which the rule applies.
fCategory
A bool that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).
fExclusion
A bool that specifies whether this is an inclusion or exclusion rule. A value of True indicates an exclusion rule. A value of False indicates an inclusion rule. The default value is False.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C#] 0x889800FD [Visual Basic .NET] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_TOO_MANY_BASECATALOGS | [C#] 0x88980106 [Visual Basic .NET] &H88980106 | The limit (84) on the maximum number of base catalogs that can be included in a virtual catalog has been exceeded.

Remarks

If the fCategory parameter is True and the vrProductIDOrCategoryName parameter is an empty string, then the entire catalog will be included.

Exclusion rules always override inclusion rules. If you exclude a category you cannot include any category or product contained within that category. Conversely, you can exclude any category or product contained within a category you have included.

If a value is provided for the vrVariantID parameter, then the rule will apply only to that variant of the product. If any variant of a product is included, then the product will be implicitly included. It is not possible to have a variant without a parent product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.BeginSpecificationSearch Method (PIA)

Use this method to initialize a specification search of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function BeginSpecificationSearch(
  strCategoryName As String,
  Optional pRSInitialPropValuesList As Object,
  Optional plTotalRecordsAvailable As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string BeginSpecificationSearch(
  string strCategoryName,
  ref object pRSInitialPropValuesList,
  ref object plTotalRecordsAvailable
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category in which to search.
pRSInitialPropValuesList
An Object used to return the recordset of initial property values.
plTotalRecordsAvailable
An Object used to return the total records available.
[C#]
strCategoryName
A string that contains the name of the category in which to search.
pRSInitialPropValuesList
An object used to return the Recordset of initial property values. Set the object to Type.Missing if the returned Recordset is not needed.
plTotalRecordsAvailable
An object used to return the total records available. Set the object to Type.Missing if the returned count is not needed.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the state of this specification search.

[C#] This method returns the state of the specification search as a string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011D [Visual Basic .NET] &H8898011D | The properties that you specified to return are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C#] 0x88980049 [Visual Basic .NET] &H88980049 | The category you specified does not exist or is not marked as specification searchable.

Remarks

The optional parameter pRSInitialPropValuesList is a single-row recordset. The returned recordset contains one field for each searchable property for the products under the specified category. Each field contains a System.Array. Each System.Array contains a set of all the distinct values found in all the products under that category. Only the properties that are marked as searchable are returned in the recordset.

If all the searchable properties contain NULL values then pRSInitialPropValuesList parameter will be set to NULL and the plTotalRecordsAvailable parameter will be 0.

A category can be marked as searchable by setting the IsSearchable property to True.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic .NET]

Example

'
strSearchHandle = myProductCatalog.BeginSpecificationSearch(strCategoryName, pRSInitialPropValuesList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

ProductCatalog3 Class

ProductCatalog3.AddSpecificationSearchClause

ProductCatalog3.GetSpecificationSearchClauses

ProductCatalog3.PerformSpecificationSearch


ProductCatalog3.CreateCategory Method (PIA)

Use this method to create a new category.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function CreateCategory(
 strDefinitioName As String,
 strCategoryName As String,
 Optional strParentCategoryName As Object,
 Optional fIsSpecificationSearchable As Object
) As Category
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public ICategory CreateCategory(
 string strDefinitioName,
 string strCategoryName,
 object strParentCategoryName,
 object fIsSpecificationSearchable
);

Parameters

[Visual Basic .NET]
strDefinitioName
A String that contains the name of the category definition on which the category is based.
strCategoryName
A String that contains the name of the category to be created.
strParentCategoryName
An Object that contains the name of the category that will be a parent to this new category, if any.
fIsSpecificationSearchable
An Object that determines whether or not this category is to be specification searchable.
[C#]
strDefinitioName
A string that contains the name of the category definition on which the category is based.
strCategoryName
A string that contains the name of the category to be created.
strParentCategoryName
An object that contains the name of the category that will be a parent to this new category, if any. Set to Type.Missing to indicate no parent category.
IsSpecificationSearchable
An object that determines whether or not this category is to be specification searchable. Set to Type.Missing to indicate the default.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the newly created Category object.

[C#] This method returns an ICategory interface to the newly created catalog object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800EA [Visual Basic .NET] &H889800EA | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000B [Visual Basic .NET] &H8898000B | The definition you specified does not exist.
E_CAT_PRODUCT_DEFN_FOR_CATEGORY | [C#] 0x8898004B [Visual Basic .NET] &H8898004B | The definition name that you specified is a product definition. This definition cannot be used to create the category.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_CATEGORY_EXISTS | [C#] 0x8898001D [Visual Basic .NET] &H8898001D | The category you specified already exists.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.
[Visual Basic .NET]

Example

oMyCategory = myProductCatalog.CreateCategory("BasicCategoryDefinition", "T-Shirts", "Apparel", True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.GetCategory

ProductCatalog3.DeleteCategory


ProductCatalog3.CreateCustomCatalog Method (PIA)

The CreateCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


ProductCatalog3.CreateProduct Method (PIA)

Use this method to create a new product within the catalog according to specified parameters.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function CreateProduct(
 strDefinitionName As String,
 varProductID As Object,
 cyListPrice As Decimal,
 Optional strParentCategoryName As Object
) As IProduct
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public IProduct CreateProduct(
 string strDefinitionName,
 object varProductID,
 decimal cyListPrice,
 object strParentCategoryName
);

Parameters

[Visual Basic .NET]
strDefinitionName
A String that contains the name of the product definition for the product.
varProductID
An Object that contains the unique product ID for the product to be created. The data type must match the property used to uniquely identify products in this catalog.
cyListPrice
A Decimal value that contains the list price of the product to be created.
strParentCategoryName
An Object that contains the name of the category to be designated as the parent category of the product to be created.
[C#]
strDefinitionName
A string that contains the name of the product definition for the product.
varProductID
An object that contains the unique product ID for the product to be created. The data type must match the property used to uniquely identify products in this catalog.
cyListPrice
A decimal that contains the list price of the product to be created.
strParentCategoryName
An object that contains the name of the category to be designated as the parent category of the product to be created. Set to Type.Missing to indicate no parent category.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the IProduct interface to the Product object that was created.

[C#] This method returns a Product object used to return the properties of the newly created product.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &Hx889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C#] 0x889800EA [Visual Basic .NET] &Hx889800EA | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &Hx8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &Hx889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &Hx88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_DEFINITION_DOESNT_EXIST | [C#] 0x8898000B [Visual Basic .NET] &H8898000B | The definition you specified does not exist.
E_CAT_CATEGORY_DEFN_FOR_PRODUCT | [C#] 0x8898004A [Visual Basic .NET] &H8898004A | The definition name that you specified is a category definition. This definition cannot be used to create the product.
E_CAT_INVALID_PRODUCT_DEFINITION | [C#] 0x8898005F [Visual Basic .NET] &Hx8898005F | The product definition you specified contains a variant property that is being used as the ProductID for this catalog.
E_CAT_PRODUCT_EXISTS | [C#] 0x8898001B [Visual Basic .NET] &Hx8898001B | The product you specified already exists.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &Hx8898001C | The category you specified does not exist.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

A product family is a product that has variants.

The properties of the definition on which a new product is based will determine whether the product being created is a single product or a product family. If the definition used to create the product has variant properties, the newly created product will be a product family.

[Visual Basic .NET]

Example

oMyNewProduct = myProductCatalog.CreateProduct("BasicProduct", "SKU3004", cyListPrice, "Apparel")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.DeleteProduct

ProductCatalog3.GetProduct


ProductCatalog3.DeleteCategory Method (PIA)

Use this method to delete a category from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteCategory(
 strCategoryName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteCategory(
 string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be deleted.
[C#]
strCategoryName
A string that contains the name of the category to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_CATEG_LENGTH | [C#] 0x88980047 [Visual Basic .NET] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_VC_CANT_DELETE_INCLUDED_CATEGORY | [C#] 0x88980104 [Visual Basic .NET] &H88980104 | The DeleteCategory method cannot be called for a virtual catalog's included categories.
E_CAT_CATEGORY_DOESNT_EXIST | [C#] 0x8898001C [Visual Basic .NET] &H8898001C | The category you specified does not exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C#] 0x88980101 [Visual Basic .NET] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs

Remarks

Any products or categories that existed in the deleted category, but not in another category, will be orphaned. Categories will become root categories and products will become root products. For example: CategoryA and CategoryB are child categories of CategoryX. CategoryA is also a child of CategoryY. When CategoryX is deleted, CategoryB will become a root category, but CategoryA will not.

You cannot delete an inherited category from a virtual catalog. The following error will be returned: E_CAT_VC_CANT_DELETE_INCLUDED_CATEGORY "The DeleteCategory method cannot be called for a virtual catalog's included categories."

If this category has been specified as a Pricing category for a custom catalog, it will be removed as the Pricing category. All the products using this category as a Pricing category will revert to their original price and the category will be removed as the Pricing category

[Visual Basic .NET]

Example

myProductCatalog.DeleteCategory("Apparel")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.RootCategories

ProductCatalog3.CreateCategory

ProductCatalog3.GetCategory


ProductCatalog3.DeleteCustomCatalog Method (PIA)

The DeleteCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


ProductCatalog3.DeleteProduct Method (PIA)

Use this method to delete a product from the Product Catalog System.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub DeleteProduct(
 varProductID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void DeleteProduct(
 object varProductID
);

Parameters

[Visual Basic .NET]
varProductID
An Object that contains the unique identifier of the product to be deleted.
[C#]
varProductID
An object that contains the unique identifier of the product to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C#] 0x8898001E [Visual Basic .NET] &H8898001E | The product you specified does not exist.

Remarks

This method removes the product from the SQL Server database. The Product object caches information for improved performance. Because of this cache, the CatalogName and ProductID methods of the Product object will continue to return the old values after the DeleteProduct method has been called. The Variants, ParentCategories, AncestorCategories, RelatedCategories, and RelatedProducts properties will return an empty Recordset and no error message.

Caution

  • Deleting a product with variants also deletes all of the variants.
[Visual Basic .NET]

Example

myProductCatalog.DeleteProduct(654321)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.CreateProduct

ProductCatalog3.GetProduct


ProductCatalog3.GenerateCustomCatalog Method (PIA)

The GenerateCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


ProductCatalog3.GetCatalogAttributes Method (PIA)

Use this method to retrieve the attributes of this catalog. The returned Recordset is disconnected and updateable.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetCatalogAttributes() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetCatalogAttributes();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the attributes of this catalog.

[C#] This method returns a _Recordset interface to a Recordset that contains the attributes of this catalog.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[Visual Basic .NET]

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
CatalogName | String 128 characters | The name of the catalog.
Locale | Integer | None.
StartDate | Datetime | None.
End Date | Datetime | None.
VariantID | String 128 characters | The field name that uniquely identifies variants.
ProductID | String 128 characters | The field name that uniquely identifies products.
Currency | String 128 characters | None.
WeightMeasure | String 128 characters | None.
TimeStamp | Timestamp | None.
CatalogID | Integer | None.
CustomCatalog | Boolean | A flag indicating whether this is a custom catalog. True indicates a custom catalog.
FreeTextIndexCreated | Datetime | None.
ProductTableUpdated | Datetime | None.
[C#]

The returned Recordset is disconnected and updateable. The following table shows the fields that the returned Recordset contains.

Field | Data Type | Description
CatalogName | String 128 characters | The name of the catalog.
Locale | Integer | None.
StartDate | Datetime | None.
End Date | Datetime | None.
VariantID | String 128 characters | The field name that uniquely identifies variants.
ProductID | String 128 characters | The field name that uniquely identifies products.
Currency | String 128 characters | None.
WeightMeasure | String 128 characters | None.
TimeStamp | Timestamp | None.
CatalogID | Integer | None.
CustomCatalog | Boolean | A flag indicating whether this is a custom catalog. True indicates a custom catalog.
FreeTextIndexCreated | Datetime | None.
ProductTableUpdated | Datetime | None.
[Visual Basic .NET]

Example

rsMyCatAttribs = myProductCatalog.GetCatalogAttributes()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.GetCustomCatalogAttributes

ProductCatalog3.SetCatalogAttributes


ProductCatalog3.GetCategory Method (PIA)

Use this method to retrieve the specified category from a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function GetCategory(
 strCategoryName As String
) As ICategory
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public ICategory GetCategory(
 string strCategoryName
);

Parameters

[Visual Basic .NET]
strCategoryName
A String that contains the name of the category to be returned.
[C#]
strCategoryName
A string that contains the name of the category to be returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the ICategory interface to the Category object specified.

[C#] This method returns an ICategory interface used to return the specified category.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
S_FALSE | 1 | The category does not exist
[Visual Basic .NET]

Example

oMyCategory = myProductCatalog.GetCategory("Apparel")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.CreateCategory

ProductCatalog3.DeleteCategory


ProductCatalog3.GetCategoryCustomPrice Method (PIA)

The GetCategoryCustomPrice method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


ProductCatalog3.GetCustomCatalogAttributes Method (PIA)

The GetCustomCatalogAttributes method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.


ProductCatalog3.GetDependentCatalogs Method (PIA)

Use this method to return a recordset with a single field containing all of the virtual catalogs that are dependent on this catalog. This method cannot be called on a virtual catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function GetDependentCatalogs(
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional plTotalRecordsInQuery As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetDependentCatalogs(
);
  object lStartingRecord,
  object lRecordsToRetrieve,
  object plTotalRecordsInQuery,
);

Parameters

[Visual Basic .NET]
lStartingRecord
An Object that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve
An Object that contains the number of records to retrieve.
plTotalRecordsInQuery
An Object that, if supplied, contains on output the total number of records.
[C#]
lStartingRecord
An Object that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve
An Object that contains the number of records to retrieve.
plTotalRecordsInQuery
An Object that, if supplied, contains on output the total number of records.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C#] 0x889800F9 [Visual Basic .NET] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.GetLanguages Method (PIA)

Use this method to return a recordset with a single field containing all of the supported languages.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function GetLanguages() As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetLanguages(
);

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the supported languages.

[C#] This method returns a _Recordset interface to a Recordset object used to return the supported languages.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
Language | String 10 characters | The ISO 639+1 code of the language.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.GetPriceRules Method (PIA)

Use this method to get a Recordset containing the specified price rules.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Public Function GetPriceRules(
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional strPropertyToSortOn As Object,
  Optional fSortAscending As Boolean,
  Optional plTotalRecordsInQuery As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetPriceRules(
  object lStartingRecord,
  object lRecordsToRetrieve,
  object strPropertyToSortOn,
  bool fSortAscending,
  object plTotalRecordsInQuery,
);

Parameters

[Visual Basic .NET]
lStartingRecord
An Object that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve
An Object that contains the number of records to retrieve.
strPropertyToSortOn
An Object that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery
An Object that, if supplied, contains on output the total number of records.
[C#]
lStartingRecord
A Variant that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve
A Variant that contains the number of records to retrieve.
strPropertyToSortOn
A Variant that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
fSortAscending
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery
A Variant that, if supplied, contains on output the total number of records.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the properties for the object.

[C#] This method returns a _Recordset interface to a Recordset object used to return the product variant.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties that you specified to sort are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
AdjustmentType | CatalogCustomPriceEnum enumeration | The type of the pricing rule.
Amount | Integer | None
CategoryName | String 85 characters | None
ProductID | String 256 characters | The field name that uniquely identifies products.
VariantID | String 256 characters | The field name that uniquely identifies variants.

The following table shows the values of the CatalogCustomPriceEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscNoCustomPrice | 0 | The custom price is the same as the base price.
cscPercentageMultiplier | 1 | The custom price = basePrice + (basePrice * pfpCustomPriceAmount /100).
cscAddFixedAmount | 2 | The custom price is the value in the parameter pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the value in the parameter pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.GetProduct Method (PIA)

Use this method to retrieve the specified product from a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function GetProduct(
 varProductID As Object
) As IProduct
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public IProduct GetProduct(
 object varProductID
);

Parameters

[Visual Basic .NET]
varProductID
An Object that contains the unique identifier of the product.
[C#]
varProductID
An object that contains the unique identifier of the product.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an IProduct interface to the product specified.

[C#] This method returns an IProduct interface to a Product.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
S_FALSE | 1 | The product does not exist.
[Visual Basic .NET]

Example

oMyProduct = myProductCatalog.GetProduct("SKU4005")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.CreateProduct

ProductCatalog3.DeleteProduct


ProductCatalog3.GetProductVariant Method (PIA)

Use this method to retrieve the properties of a specified product variant.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Function GetProductVariant(
 varProductID As Object,
 varVariantID As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetProductVariant(
 object varProductID,
 object varVariantID
);

Parameters

[Visual Basic .NET]
varProductID
An Object that contains the unique identifier of the product family.
varVariantID
An Object that contains the unique identifier of the product variant.
[C#]
varProductID
An object that contains the unique identifier of the product family.
varVariantID
An object that contains the unique identifier of the product variant.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset that contains the properties of the specified variant.

[C#] This method returns the _Recordset interface to a Recordset object that will contain the properties of the variant.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C#] 0x88980032 [Visual Basic .NET] &H88980032 | This catalog does not support variants. To support variants the catalog has to be created with the variant identifier.
E_CAT_INVALID_PRODUCTID | [C#] 0x8898005B [Visual Basic .NET] &H8898005B | The value you specified for the ProductID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C#] 0x8898004E [Visual Basic .NET] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_VARIANTID | [C#] 0x8898005C [Visual Basic .NET] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C#] 0x8898004D [Visual Basic .NET] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C#] 0x8898004F [Visual Basic .NET] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.

Remarks

[Visual Basic .NET] A single-row recordset with all the properties of the variant is returned. The fields of the returned recordset are determined by the properties associated with the definition on which it is based. Both the product properties and the variant properties are returned.

[C#] A single-row Recordset with all the properties of the variant is returned. The fields of the returned Recordset are determined by the properties associated with the definition on which it is based. Both the product properties and the variant properties are returned.

[Visual Basic .NET]

Example

rsVariantProps = myProductCatalog.GetProductVariant("SKU4007", "Blue")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.IdentifyingVariantProperty


ProductCatalog3.GetSpecificationSearchClauses Method (PIA)

Use this method to retrieve the specified specification search constraints.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Function GetSpecificationSearchClauses(
 strSearchHandle As String
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public Recordset GetSpecificationSearchClauses(
 string strSearchHandle
);

Parameters

[Visual Basic .NET]
strSearchHandle
A String that contains the specification search handle.
[C#]
strSearchHandle
A string that contains the specification search handle.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset that contains the specification search clauses.

[C#] This method returns a _Recordset interface to a Recordset used to return the search clauses.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C#] 0x8898010D [Visual Basic .NET] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....

Remarks

[Visual Basic .NET] The returned recordset contains a single variable-length String field, called Clause, and one row for each constraint present.

[C#]

The returned Recordset contains a single variable-length string field, called Clause, and one row for each constraint present.

[Visual Basic .NET]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
rsMySearchClauses = myProductCatalog.GetSpecificationSearchClauses(strSearchHandle)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.AddSpecificationSearchClause

ProductCatalog3.RemoveSpecificationSearchClause


ProductCatalog3.GetVirtualCatalogRules Method (PIA)

Use this method to return a recordset containing the specified virtual catalog rules.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Imports ADODB26Lib     ' for _Recordset
…
Function GetVirtualCatalogRules(
  Optional lStartingRecord As Object,
  Optional lRecordsToRetrieve As Object,
  Optional strPropertyToSortOn As Object,
  Optional fSortAscending As Boolean,
  Optional plTotalRecordsInQuery As Object,
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetVirtualCatalogRules(
  object lStartingRecord,
  object lRecordsToRetrieve,
  object strPropertyToSortOn,
  bool fSortAscending,
  object plTotalRecordsInQuery,
);

Parameters

[Visual Basic .NET]
lStartingRecord [Visual Basic]
An Object that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve [Visual Basic]
An Object that contains the number of records to retrieve.
strPropertyToSortOn [Visual Basic]
An Object that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery [Visual Basic]
An Object that, if supplied, contains on output the total number of records.
[C#]
lStartingRecord [Visual Basic]
An object that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve [Visual Basic]
An object that contains the number of records to retrieve.
strPropertyToSortOn [Visual Basic]
An object that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery [Visual Basic]
An object that, if supplied, contains on output the total number of records.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the properties for the object.

[C#] This method returns a _Recordset interface to a Recordset object used to return the properties of the object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_CAT_INVALID_SORT_PROPS | [C#] 0x8898011E [Visual Basic .NET] &H8898011E | The properties that you specified to sort are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
Type | VirtualCatalogRuleTypeEnum Enum | An enumeration that describes the type of rule. See the following table for a description of the values.
CatalogName | String 90 characters | The name of the catalog.
CategoryName | String 128 characters | The name of the category.
ProductID | String 256 characters | The field name that uniquely identifies products.
VariantID | String 256 characters | The field name that uniquely identifies variants.

The following table shows the enumeration that indicates the rule types in the returned recordset.

Name | Value | Description
VCRULETYPE_INCLUDE_PRODUCT | 1 | Indicates an inclusion rule for a product.
VCRULETYPE_EXCLUDE_PRODUCT | 2 | Indicates an exclusion rule for a product.
VCRULETYPE_INCLUDE_CATEGORY | 3 | Indicates an inclusion rule for a category.
VCRULETYPE_EXCLUDE_CATEGORY | 4 | Indicates an exclusion rule for a category.
VCRULETYPE_INCLUDE_VARIANT | 5 | Indicates an inclusion rule for a variant.
VCRULETYPE_EXCLUDE_VARIANT | 6 | Indicates an exclusion rule for a variant.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.GuaranteedSpecificationSearch Method (PIA)

Use this method to guarantee results when performing a specification search of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Function GuaranteedSpecificationSearch(
  pstrSearchHandle As Object,
  Optional eClassTypeRequired As Object,
  Optional lDesiredRecords As Object,
  Optional plTotalRecordsAvailable As Object,
  Optional pRSNewPropValuesList As Object,
  Optional vrPropertiesRequired As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GuaranteedSpecificationSearch(
  ref object pstrSearchHandle,
  object eClassTypeRequired,
  object lDesiredRecords,
  ref object plTotalRecordsAvailable,
  ref object pRSNewPropValuesList,
  object vrPropertiesRequired
);

Parameters

[Visual Basic .NET]
pstrSearchHandle
An Object that contains the specification search handle.
eClassTypeRequired
An Object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.
lDesiredRecords
An Object that contains the number of records desired.
plTotalRecordsAvailable
An Object used to return the total records available.
pRSNewPropValuesList
A Recordset used to return the new property values list.
vrPropertiesRequired
An Object that contains the properties required in a comma-delimited String.
[C#]
pstrSearchHandle
An object that contains the specification search handle.
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below. Set to Type.Missing in order to not specify a catalog class.
lDesiredRecords
An object that contains the number of records desired. Set to Type.Missing to indicate all records.
plTotalRecordsAvailable
An object used to return the total records available. Set an object to Type.Missing if the returned total is not needed.
pRSNewPropValuesList
A Recordset used to return the new property values list. Set an object to Type.Missing if the returned Recordset is not needed.
vrPropertiesRequired
An object that contains the properties required in a comma delimited String. Set to Type.Missing to not specify a list of properties.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the search results.

[C#] This method returns a Recordset containing the search results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C#] 0x8898010D [Visual Basic .NET] &Hx8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011D [Visual Basic .NET] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C#] 0x88980049 [Visual Basic .NET] &H88980049 | The category you specified does not exist or is not marked as specification searchable.

Remarks

This method is similar to the PerformSpecificationSearch method. The optional output parameter, pRSNewPropValuesList, is a single-row Recordset. This Recordset contains one field for each searchable property for the products under the category specified in the BeginSpecificationSearch method. Each field contains a System.Array. The System.Array contains a set of distinct values for that property. The set is all the values in all the products that match the search clauses in the search handle. Only the properties that are marked as searchable are returned in the Recordset. A property can be marked as searchable by setting the IncludeInSpecSearch attribute of that property to true.

This method guarantees that results will be returned from a specification search of the catalog by removing search constraints in the reverse order that they were added until a match is found. Therefore, remember to add constraints to a specification search in order of decreasing importance.

The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. If the parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Note

  • When field names begin with a number or contain spaces they must be enclosed in brackets. Data errors will occur if the field names are not formatted correctly. For example, "[123_Prop1],[123_ Prop2]". If the vrPropertiesRequired property is omitted then the data in all fields will be returned correctly.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

[Visual Basic .NET]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
'The following parameters should be examined after the call returns.
'plTotalRecordsAvailable is a Long
'pRSNewPropValuesList is an empty recordset
rsMySearchResults = myProductCatalog.GuaranteedSpecificationSearch('strSearchHandle , 20, plTotalRecordsAvailable, pRSNewPropValuesList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.AddSpecificationSearchClause

ProductCatalog3.PerformSpecificationSearch

ProductCatalog3.RemoveSpecificationSearchClause


ProductCatalog3.PerformSpecificationSearch Method (PIA)

Use this method to perform a specification search of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Function PerformSpecificationSearch(
  strSearchHandle As String,
  Optional eClassTypeRequired As Object,
  Optional lDesiredRecords As Object,
  Optional plTotalRecordsAvailable As Object,
  Optional pRSNewPropValuesList As Object,
  Optional vrPropertiesRequired As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset PerformSpecificationSearch(
  string strSearchHandle,
  object eClassTypeRequired,
  object lDesiredRecords,
  ref object plTotalRecordsAvailable,
  ref object pRSNewPropValuesList,
  object vrPropertiesRequired
);

Parameters

[Visual Basic .NET]
strSearchHandle
A String that contains the name of the search to perform.
eClassTypeRequired
An Object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below.
lDesiredRecords
An Object that contains the records desired.
plTotalRecordsAvailable
An Object used to return the total number of records available.
pRSNewPropValuesList
An Object used to return the Recordset of the new property values list.
vrPropertiesRequired
An Object that contains the properties required in a comma-delimited String.
[C#]
strSearchHandle
A string that contains the name of the search to perform.
eClassTypeRequired
An object that contains the catalog class desired. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section below. Set to Type.Missing in order to not specify a catalog class.
lDesiredRecords
An object that contains the records desired. Set to Type.Missing to indicate all records.
plTotalRecordsAvailable
An object used to return the total number of records available. Set an object to Type.Missing if the returned total is not needed.
pRSNewPropValuesList
An object used to return the Recordset of the new property values list. Set an object to Type.Missing if the returned Recordset is not needed.
vrPropertiesRequired
An object that contains the properties required in a comma-delimited String. Set to Type.Missing to not specify a list of properties.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a _Recordset interface to a Recordset that contains the search results.

[C#] This method returns a Recordset object, which will contain the search results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 [Visual Basic .NET] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C#] 0x8898010D [Visual Basic .NET] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C#] 0x8898011D [Visual Basic .NET] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C#] 0x88980049 [Visual Basic .NET] &H88980049 | The category you specified does not exist or is not marked as specification searchable.

Remarks

The PerformSpecificationSearch method executes a query using all of the constraints that have been added to the specified specification search handle.

The optional output parameter, pRSNewPropValuesList, is a single-row Recordset. This Recordset contains one field for each searchable property for the products under the category specified in the BeginSpecificationSearch method. Each field contains a System.Array. The System.Array contains a set of distinct values for that property. The set is all the values in all the products that match the search clauses in the search handle. Only the properties that are marked as searchable are returned in the Recordset. A property can be marked as searchable by setting the IncludeInSpecSearch attribute of that property to true.

The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. It will always contain a CatalogName field. If the parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Note

  • When field names begin with a number or contain spaces they must be enclosed in brackets. Data errors will occur if the field names are not formatted correctly. For example, "[123_Prop1],[123_ Prop2]". If the vrPropertiesRequired property is omitted then the data in all fields will be returned correctly.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

[Visual Basic .NET]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
'The following parameters should be examined after the call returns.
'plTotalRecordsAvailable is a Long
'pRSNewPropValuesList is an empty recordset
rsSearchResults = myProductCatalog.PerformSpecificationSearch(strSearchHandle, 20, plTotalRecordsAvailable, pRSNewPropValuesList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.AddSpecificationSearchClause

ProductCatalog3.BeginSpecificationSearch

ProductCatalog3.GuaranteedSpecificationSearch

ProductCatalog3.RemoveSpecificationSearchClause


ProductCatalog3.Purge Method (PIA)

Use this method to remove deleted products, categories, and variants from the catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub Purge()
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void Purge(
);

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details. In addition, this method may throw ADO errors.

Remarks

Commerce Server 2002 uses a two-stage delete process. When items are deleted from a catalog they are not removed from the Product Catalog System. The product rows are moved from the catalog tables to a deleted products table. This allows deletions to be exported with other changes by using the DeleteExportXML method. Use the Purge method to remove the marked products from the database. The Purge method is not accessible through the user interface.

Caution

  • There is no method for recovering deleted products.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RebuildVirtualCatalog Method (PIA)

Use this method to rebuild a virtual catalog or all dependent virtual catalogs.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RebuildVirtualCatalog(
  Optional fRunSynchronously As Object,
  Optional fForceRebuild As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void MethodName(
 object fRunSynchronously,
 object fForceRebuild
);

Parameters

[Visual Basic .NET]
fRunSynchronously
A Boolean that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously. The default value is False.
fForceRebuild
A Boolean that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuilt regardless of status. A value of False indicates that only dirty catalogs will be rebuilt. The default value is False.
[C#]
fRunSynchronously
A Boolean that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously. The default value is False.
fForceRebuild
A Boolean that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuilt regardless of status. A value of False indicates that only dirty catalogs will be rebuilt. The default value is False.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.

Remarks

If the fForceRebuild parameter is not set to True, virtual catalogs will only be rebuilt if there has been a rule change, a product deletion, or a category deletion that would affect the contents of the catalog. If this method is called on a base catalog, it will apply to all virtual catalogs that include products or categories from the base catalog. If this method is called on a virtual catalog, it will apply only to the virtual catalog.

If you want to rebuild all the virtual catalogs in the Product Catalog System, use ICatalogManager3::RebuildAllVirtualCatalogs

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RegenerateFreeTextSearchIndex Method (PIA)

Use this method to regenerate the free-text search index of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RegenerateFreeTextSearchIndex(
 fGenerateIncremental As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RegenerateFreeTextSearchIndex(
 bool fGenerateIncremental
);

Parameters

[Visual Basic .NET]
fGenerateIncremental
A Boolean that determines whether an incremental or a full rebuild of the free-text search index is to be performed. A value of True indicates an incremental rebuild. A value of False indicates a full rebuild. See the Remarks section for more information. The default value is False.
[C#]
fGenerateIncremental
A bool that determines whether an incremental or a full rebuild of the free-text search index is to be performed. A value of true indicates an incremental rebuild. A value of false indicates a full rebuild. See the Remarks section for more information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_CANNOT_REFRESH | [C#] 0x8898004C [Visual Basic .NET] &H8898004C | A catalog import operation is currently in progress. The refresh operation cannot be performed now.

Remarks

This method should be called after new products or categories are added to a catalog. Otherwise, those new products and categories will not be returned in any free-text search results.

The fGenerateIncremental parameter determines what type of free-text index rebuild to perform. The default is to completely rebuild the free-text index. Though this option ensures completeness, it is slower than an incremental rebuild, which appends only recently added products and categories to the index.

If the database in which Commerce Server keeps its catalog data does not have the SQL Server 2000 full-text engine installed, this method will return with no action.

Note

  • This method cannot be called in a transacted object. This method involves the creating, deleting, or updating of free-text indexes. SQL Server does not allow these operations in a transaction.
[Visual Basic .NET]

Example

myProductCatalog.RegenerateFreeTextSearchIndex(TRUE)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RemoveLanguage Method (PIA)

Use this method to remove a language from this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveLanguage(
  strLanguage As String
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveLanguage(
  BSTR strLanguage
);

Parameters

[Visual Basic .NET]
strLanguage
A String that contains the ISO 639+1 code that specifies the language to remove.
[C#]
strLanguage
A string that contains the ISO 639+1 code that specifies the language to remove.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009E [Visual Basic .NET] &H8898009E | The value you specified for the language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_LANGUAGE_NOT_ASSOCIATED | [C#] 0x889800A4 [Visual Basic .NET] &H889800A4 | The language that you specified is not associated with this catalog.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &H88980002 | The catalog name you specified does not exist.
E_CAT_CANNOT_REMOVE_DEFAULT_LANG | [C#] 0x889800AA [Visual Basic .NET] &H889800AA | The language that you specified is being used as the default language for this catalog. It cannot be removed.
E_CAT_CANNOT_REMOVE_REPORTING_LANG | [C#] 0x889800AB [Visual Basic .NET] &H889800AB | The language that you specified is being used as the reporting language for this catalog. It cannot be removed.

Remarks

This method removes the specified language from list of languages supported by the catalog. The language will not be removed if it is the default language or reporting language of the catalog; in this case, an error message will be returned.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RemovePriceRule Method (PIA)

Use this method to remove a specified price rule.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemovePriceRule(
  vrProductIDOrCategoryName As Object,
  Optional vrVariantID As Object,
  Optional fCategory As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemovePriceRule(
  object vrProductIDOrCategoryName,
  object vrVariantID,
  bool fCategory

Parameters

[Visual Basic .NET]
vrProductIDOrCategoryName
An Object that contains the product ID or category name to which the rule applies.
vrVariantID
An Object that contains the variant ID, if the rule is specific to a variant.
fCategory
A Boolean that specifies whether vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).
[C#]
vrProductIDOrCategoryName
An object that contains the product ID or category name to which the rule applies.
vrVariantID
An object that contains the variant ID, if the rule is specific to a variant.
fCategory
A Boolean that specifies whether vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C#] 0x889800FD [Visual Basic .NET] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_DELETION_PRICE_RULE_NOT_FOUND | [C#] 0x88980100 [Visual Basic .NET] &H88980100 | The pricing rule could not be deleted because it does not exist.

Remarks

Set the fCategory parameter to True and the vrProductIDOrCategoryName parameter to an empty string to remove the price rule for the entire catalog.

The vrVariantID parameter is only valid for products. If it is supplied, it indicates that the rule should be removed for that variant only.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RemoveSpecificationSearchClause Method (PIA)

Use this method to remove the last constraint from a specified specification search.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Function RemoveSpecificationSearchClause(
 pstrSearchHandle As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string RemoveSpecificationSearchClause(
 ref object pstrSearchHandle
);

Parameters

[Visual Basic .NET]
pstrSearchHandle
An Object that contains the specification search handle from which a constraint is to be removed.
[C#]
pstrSearchHandle
An object that contains the specification search handle from which a constraint is to be removed.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the removed clause.

[C#] This method returns a string containing the removed clause.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method always removes the last constraint that was added to the search by using the AddSpecificationSearchClause method. The returned string will be in the same form as the original constraint.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_PARAMETER | [C#] 0x889800B6 [Visual Basic .NET] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C#] 0x8898010D [Visual Basic .NET] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....
[Visual Basic .NET]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
'strRemovedClause will contain the removed clause after the call returns.
strRemovedClause = myProductCatalog.RemoveSpecificationSearchClause(strSearchHandle)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RemoveVirtualCatalogRule Method (PIA)

Use this method to remove a virtual catalog rule.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public Sub RemoveVirtualCatalogRule(
  strCatalogName As String,
  vrProductIDOrCategoryName As Object,
  vrVariantID As Object,
  Optional fCategory As Boolean
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public void RemoveVirtualCatalogRule(
  string strCatalogName,
  object vrProductIDOrCategoryName,
  object vrVariantID,
  bool fCategory
);

Parameters

[Visual Basic .NET]
strCatalogName
A String that contains the base catalog name.
vrProductIDOrCategoryName
An Object that contains the product ID or category name to which the rule applies.
vrVariantID
An Object that contains the variant ID to which the rule applies.
fCategory
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).
[C#]
strCatalogName
A String that contains the base catalog name.
vrProductIDOrCategoryName
An object that contains the product ID or category name to which the rule applies.
vrVariantID
An object that contains the variant ID to which the rule applies.
fCategory
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C#] 0x889800FA [Visual Basic .NET] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_CATALOGNAME | [C#] 0x88980063 [Visual Basic .NET] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C#] 0x88980042 [Visual Basic .NET] &Hx88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C#] 0x8898003D [Visual Basic .NET] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. that should not be used.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C#] 0x889800FB [Visual Basic .NET] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C#] 0x889800FC [Visual Basic .NET] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C#] 0x889800FD [Visual Basic .NET] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_DELETION_RULE_NOT_FOUND | [C#] 0x889800FE [Visual Basic .NET] &H889800FE | The rule could not be deleted because it does not exist.

Remarks

Set the fCategory parameter to True and the vrProductIDOrCategoryName parameter to an empty string to remove the rule for the catalog specified in the strCatalogName parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.SetCatalogAttributes Method (PIA)

Use this method to set the attributes of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public Sub SetCatalogAttributes(
 pRSCatalogAttributes As _Recordset,
 Optional fForceUpdate As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public void SetCatalogAttributes(
 _Recordset pRSCatalogAttributes,
 object fForceUpdate
);

Parameters

[Visual Basic .NET]
pRSCatalogAttributes
A _Recordset interface to a Recordset object containing the new attributes.
fForceUpdate
An Object that causes a forced update of the catalog attributes.
[C#]
pRSCatalogAttributes
A _Recordset interface to a Recordset containing the new attributes.
fForceUpdate
An object that causes a forced update of the catalog attributes. Set to Type.Missing for default behavior.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_CAT_BLANK_LANGUAGE | [C#] 0x889800A5 [Visual Basic .NET] &H889800A5 | The default language associated with this catalog cannot be blank.
E_CAT_CATALOG_DOESNT_EXIST | [C#] 0x88980002 [Visual Basic .NET] &Hx88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_DEFAULT_LANGUAGE | [C#] 0x889800B3 [Visual Basic .NET] &Hx889800B3 | The default language that you specified does not exist as one of the valid catalog languages.
E_CAT_CATALOG_CHANGED | [C#] 0x88980012 [Visual Basic .NET] &Hx88980012 | The catalog properties have been changed since it was last read.

Remarks

Use the GetCatalogAttributes method to get a Recordset of the current attributes. After the Recordset has been modified, use it as the pRSCatalogAttributes parameter to the SetCatalogAttributes method to write the changes back to the catalog. The timestamps in the Recordset will be compared to the timestamps of the attributes being updated for error detection.

The catalog Name, ProductID, CatalogID, and VariantID attributes cannot be changed with this method.

[Visual Basic .NET]

Example

myProductCatalog.SetCatalogAttributes(rsCatalogAttribs, True)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.GetCatalogAttributes


ProductCatalog3.SetCategoryCustomPrice Method (PIA)

The SetCategoryCustomPrice method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C#] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

ProductCatalog3 Class


ProductCatalog3.SetCustomCatalogAttributes Method (PIA)

The SetCustomCatalogAttributes method is obsolete in Microsoft Commerce Server 2002. It will always return the following COMException:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic .NET] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

ProductCatalog3 Class


ProductCatalog3 Properties (PIA)

Properties

Property | Type | Description
BaseCatalogName | String | Contains the name of a base catalog for the custom catalog. This property is read-only.
CatalogName | String | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | String | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | String | Contains the name of the column used to uniquely identify product variants. This property is read-only.
RootCategories | ADODB26Lib._Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | ADODB26Lib._Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | ADODB26Lib._Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.


ProductCatalog3.BaseCatalogName Property (PIA)

The BaseCatalogName property is a read-only String that contains the name of the base catalog for this catalog. If this is not a custom catalog, it does not have a base catalog, and the BaseCatalogName property contains the name of the catalog in hand.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property BaseCatalogName As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string BaseCatalogName {get;}

Property Value

A string containing the base catalog name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Ran out of memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.CatalogName Property (PIA)

The CatalogName property is a read-only String that contains the name of this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property CatalogName As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string CatalogName {get;}

Property Value

A string containing the catalog name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

See Also

ProductCatalog3 Class


ProductCatalog3.IdentifyingProductProperty Property (PIA)

The IdentifyingProductProperty property is a read-only String that contains the name of the unique identifier field for the products in this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property IdentifyingProductProperty As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string_IdentifyingProductProperty {get;}

Property Value

A string used to return the name of the identifying product property.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Out of memory.

Remarks

The product ID is cached in the ProductCatalog3 object. Because of the cache, this method will continue to return the old value after the catalog has been deleted.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.IdentifyingVariantProperty


ProductCatalog3.IdentifyingVariantProperty Property (PIA)

The IdentifyingVariantProperty property is a read-only String that contains the name of the unique identifier field for product variants in this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Public ReadOnly Property IdentifyingVariantProperty As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…
public string IdentifyingVariantProperty {get;}

Property Value

A string containing the name of the identifying variant property.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_POINTER | [C#] 0x80004003 Visual Basic .NET] &H80004003 | The pointer is invalid.

Remarks

The variant ID is cached in the Recordset object. Because of the cache, this method will continue to return the old value after the catalog has been deleted.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.IdentifyingProductProperty


ProductCatalog3.Language Property (PIA)

The Language property is a read/write String that contains the active language of the catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
…
Property Language As String
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
…

Get method:

Public void get_Language(
  BSTR* Language
);

Put method:

Public void put_Language(
  BSTR Language
);

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that get_Language can return.

Constant | Value | Description
E_OUTOFMEMORY | [C#] 0x8007000E [Visual Basic .NET] &H8007000E | Ran out of memory.
E_INVALIDARG | [C#] 0x80070057 [Visual Basic .NET] &H80070057 | One or more arguments are invalid.

The following table shows the custom COM errors that put_Language can return.

Constant | Value | Description
E_CAT_INVALID_LANGUAGE | [C#] 0x8898009E [Visual Basic .NET] &H8898009E | The value you specified for the language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_LANGUAGE_NOT_ASSOCIATED | [C#] 0x889800A4 [Visual Basic .NET] &H889800A4 | The language that you specified is not associated with this catalog.

Remarks

The Language property specifies the language that will be used by all methods of this product catalog and on the Product and Category objects that are obtained from this ProductCatalog3 object. This property is specified as an ISO 639+1 code, and can only be one of the languages supported by the catalog. It defaults to the value of the vrDefaultLanguage parameter specified when the catalog is created.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class


ProductCatalog3.RootCategories Property (PIA)

The RootCategories property is a read-only Recordset that contains the names of the categories that exist at the root level of this catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property RootCategories(
  Optional vrPropertiesRequired As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset get_RootCategories(
  object vrPropertiesRequired
);

Parameters

[Visual Basic .NET]
vrPropertiesRequired
An Objectthat contains a comma-separated list of the required property names.
[C#]
vrPropertiesRequired
An object containing a string that contains a comma-separated list of the required property names. Set to Type.Missing to not specify a property list.

Return Values

This method returns a _Recordset interface to a Recordset used to return the root categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C#] get_Properties does not show up in IntelliSense.

Any category without parents is considered to be a root category.

The Recordset object returned by this method will contain one row for each root category, and a field for each property name in the vrPropertiesRequired parameter. If the parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Note

  • Leading numbers in the property names in the vrPropertiesRequired parameter will be trimmed from the corresponding field names in the returned Recordset. The data will be correct; only the field names will be incorrect. If the property is omitted, then the field names will be correct. Enclose field names that begin with a number in brackets to avoid this problem. For example, oProductCatalog.RootCategories("[123_Prop1],[123_ Prop2]").

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.RootProducts


ProductCatalog3.RootProducts Property (PIA)

The RootProducts property is a read-only Recordset that contains the products that exist at the root level of a catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property RootProducts As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset RootProducts {get;}

Property Value

A _Recordset interface to a Recordset containing the root products.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Any product that is not contained within a category is considered to be a root product.

The Recordset object returned by this method will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Products added by importing a comma-separated value (CSV) file will be root products.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.
[Visual Basic .NET]

Example

rsRootProducts = myProductCatalog.RootProducts

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.RootCategories


ProductCatalog3.SearchableCategories Property (PIA)

The SearchableCategories property is a read-only Recordset that contains the names of all searchable categories.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Catalog
Import ADODB26Lib     ‘ for _Recordset
…
Public ReadOnly Property SearchableCategories As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Catalog;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset SearchableCategories {get;}

Property Value

A _Recordset interface to a Recordset containing the names of the searchable categories.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that COMException may wrap as exceptions for this method.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C#] 0x889800B7 [Visual Basic .NET] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

The SearchableCategories property returns the names of all the categories in this catalog that can be queried using a specification search. Whether or not a particular category is specification searchable is determined by the value of the IsSearchable attribute. This property can be set at the time the category is created, or can be changed at any time by using the SetCategoryProperties methods of the category object.

The Recordset object returned by this property will contain a single 128-character field called Name. Each row will contain the name of a searchable category.

If there are no searchable categories, a Recordset with its EOF property set to true will be returned.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3 Class

ProductCatalog3.CreateCategory

ProductCatalog3.GetCategory


CatalogProduct Recordset Property (PIA)

[C#]

The fields in this Recordset object will vary, depending on the product definitions in the catalog. The following table contains a list of common fields that will always be part of this Recordset object.

Field name | Data type
CategoryName | String Maximum of 128 characters
oid | Integer
DefinitionName | String Maximum of 128 characters
IsSearchable | Small integer
cy_list_price | Money
PricingCategoryOID | Integer
TimeStamp | TimeStamp
OriginalPrice | Money
i_ClassType | Integer
ProductID | String Maximum of 256 characters
VariantID | String Maximum of 256 characters

Note

  • The oid field is for internal use and should not be updated.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Catalog

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cataloglib (in cataloglib.dll)

See Also

ProductCatalog3.PerformSpecificationSearch

ProductCatalog3.RootCategories

ProductCatalog3.RootProducts


Microsoft.CommerceServer.Interop.Configuration

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop.Configuration namespace.

Class | Description
AppConfig | Retrieve site configuration settings from the site configuration store. Also retrieves the names and codes of various country/regions and state/provinces from the site configuration store.
GlobalConfig | Provides methods for the configuration management of global resources.
GlobalConfig2 | Provides methods for the configuration management of global resources, including several methods not included in the GlobalConfig object.
SiteConfig | Provides for configuration management of site resources.
SiteConfigReadOnly | Loads site configuration information from the Administration database.


AppConfig Class (PIA)

Use this object to retrieve site configuration settings from the site configuration store. Also, use this object to retrieve names, country/region codes, and state/province codes from the site configuration store.

Methods

Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.

Remarks

[Visual Basic .NET]

This object is usually created once and initialized in the Global.asax file, for performance reasons. An instance of it is stored in the Application object and used on ASP pages as necessary.

The following example illustrates these steps:

Dim oAppConfig As AppConfig
oAppConfig = New AppConfig()
Application("MSCSAppCfg") = oAppConfig

Country/region codes may or may not be the same as International Organization for Standardization (ISO) country/region codes, depending on what values have been added in Commerce Server Business Desk.

[C#]

This object is usually created once and initialized in the Global.asax file, for performance reasons. An instance of it is stored in the Application object and used on ASP pages as necessary.

The following example illustrates these steps:

<%@ Import Namespace="Microsoft.CommerceServer.Interop.Configuration" %>

<script runat="server" language="C#">

AppConfig MyConfig = new AppConfig();

MyConfig.Initialize(溺ySite�);

Application(鄭ppConfig�) = MyConfig;

</script>

Country/Region codes may or may not be the same as ISO country/region codes, depending on what values have been added in Business Desk.

For more information on ISO country/region codes, see Table of Country/Region Names and Codes and Table of Language Culture Names, Codes, and ISO Values.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

Configuration Class

Table of Country/Region Names and Codes


AppConfig Methods (PIA)

Methods

Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.


AppConfig.DecodeStatusCode Method (PIA)

Use this method to decode the specified status code.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function DecodeStatusCode(
  iStatusCode As Integer
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string DecodeStatusCode(
  int iStatusCode
);

Parameters

[Visual Basic .NET]
iStatusCode
An Integer that specifies the status code to be decoded.
[C#]
iStatusCode
An int that specifies the status code to be decoded.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the decoded status code. If the specified status code is not in the system, that same status code is returned.

[C#] This method returns a string containing the decoded status code. If the specified status code is not in the system, that same status code is returned.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Status codes are entered in Commerce Server Business Desk.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class


AppConfig.GetCountryCodeFromCountryName Method (PIA)

Use this method to get the country/region code corresponding to the specified country/region name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetCountryCodeFromCountryName(
  bstrCountryName As String
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string GetCountryCodeFromCountryName(
  string bstrCountryName
);

Parameters

[Visual Basic .NET]
bstrCountryName
A String that contains the name of the country/region for which the country/region code is being requested.
[C#]
bstrCountryName
A string that contains the name of the country/region for which the country/region code is being requested.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the country/region code. If the country/region code is not found, an empty String is returned.

[C#] This method returns a string containing the country/region code being requested.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the country/region code is not found, the method returns an empty string.

Country/region codes and country/region names are set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppConfig is a Commerce.AppConfig object
' sCode is a String
sCode = oAppConfig.GetCountryCodeFromCountryName( _
  "United States of America")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryNameFromCountryCode

AppConfig.GetCountryNamesList

Table of Country/Region Names and Codes


AppConfig.GetCountryNameFromCountryCode Method (PIA)

Use this method to get the country/region name corresponding to the specified country/region code.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetCountryNameFromCountryCode(
  bstrCountryCode As String
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string GetCountryNameFromCountryCode(
  string bstrCountryCode
);

Parameters

[Visual Basic .NET]
bstrCountryCode
A String that contains the code of the country/region for which the country/region name is being requested.
[C#]
bstrCountryCode
A string that contains the code of the country/region for which the country/region name is being requested.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the country/region name. If the name is not found, the country/region code is returned.

[C#] This method returns a string containing the requested country/region name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the country/region name is not found, the method returns the country/region code specified in the bstrCountryCode parameter.

Country/region codes and country/region names are set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppConfig is a Commerce.AppConfig object
' sCountryName is a String
sCountryName = oAppConfig.GetCountryNameFromCountryCode("us")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

Table of Country/Region Names and Codes


AppConfig.GetCountryNamesList Method (PIA)

Use this method to get an alphabetical list of the country/region names that are in the site configuration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop    ‘ for ISimpleList
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetCountryNamesList() As ISimpleList
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using Microsoft.CommerceServer.Interop;              //For ISimpleList
…
public ISimpleList GetCountryNamesList();

Return Values

If this method completes successfully, it returns a reference to an object that implements the ISimpleList interface. This object contains an alphabetical list of country/region names.

[C#] The method returns an ISimpleList interface to a SimpleList object that contains an alphabetical list of country/region names.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Country/region codes and country/region names are set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppConfig is a Commerce.AppConfig object
' listCountries is a SimpleList object
listCountries = oAppConfig.GetCountryNamesList()
For Each sCountry in listCountry
  Response.Write sCountry
Next

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryCodeFromCountryName

Table of Country/Region Names and Codes


AppConfig.GetOptionsDictionary Method (PIA)

Use this method to retrieve a Dictionary object that contains the site configuration information.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop     ‘ for IDictionary
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetOptionsDictionary(
  bstrUserID As String
) As IDictionary
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using Microsoft.CommerceServer.Interop;              //For IDictionary
…
public IDictionary GetOptionsDictionary (
  string bstrUserID
);

Parameters

[Visual Basic .NET]
bstrUserID
A String that contains an empty string ("").
[C#]
bstrUserID
A string that contains an empty string ("").

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to an object that implements the IDictionary interface that contains the site configuration information.

[C#] This method returns an IDictionary interface to a Dictionary object containing the site configuration information. See the Remarks section for a list of some dictionary keys.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

Some options dictionary keys, such as i_AuctionOptions, are reserved for future use. The following table lists the names of the keys in the Dictionary object returned by this method that are mapped in the Microsoft Management Console (MMC).

Programmatic Name | MMC Default Config Mapping
i_AddItemRedirectOptions | Add item redirect options
i_AddressBookOptions | Address Book Options
f_AltCurrencyConversionRate | Currency: Alternate currency conversion Rate
i_AltCurrencyLocale | Currency: Alternate currency locale
i_AltCurrencyOptions | Currency: Alternate currency options
i_BaseCurrencyLocale | Currency: Base currency locale
i_BillingOptions | Payment options: Billing options
i_BizTalkOptions | BizTalk Options
i_CookiePathCorrectionOptions | Cookie Path Correction Options
i_CurrencyDisplayOrderOptions | Currency: Currency display order options
i_DelegatedAdminOptions | Delegated admin options
i_FormLoginOptions | Form login options
i_FormLoginTimeOut | AuthManager Auth ticket Timeout
i_HostNameCorrectionOptions | Host Name Correction Options
i_PaymentOptions | Payment options
i_SitePrivacyOptions | Site privacy options
i_SiteRegistrationOptions | Site registration options
i_SiteTicketOptions | Site ticket options
s_AltCurrencySymbol | Currency: Alternate currency symbol
s_BaseCurrencySymbol | Currency: Base currency symbol
s_BizTalkCatalogDocType | BizTalk Catalog Doc Type
s_BizTalkConnString | BizTalk connection String
s_BizTalkOrderDocType | BizTalk PO Doc Type
s_BizTalkSourceQualifierID | BizTalk Source Org Qualifier
s_BizTalkSourceQualifierValue | BizTalk Org Qualifier Value
s_BizTalkSubmittypeQueue | BizTalk Submit type
s_PageEncodingCharset | Page encoding charset
s_SMTPServerName | SMTP server name
s_WeightMeasure | Unit of Measure for Weight

The following table lists keys in the Dictionary object returned by this method that are not mapped in the MMC.

Programmatic Name | Value or Description
i_IsFullTextSearchInstalled | Indicates whether SQL Server has full text search enabled
s_BizDataStoreConnectionString | Profiles Service: s_BizDataStoreConnectionString
s_CampaignsConnectionString | Campaigns: connstr_db_Campaigns
s_CatalogConnectionString | Product Catalog: connstr_db_Catalog
s_CommerceProviderConnectionString | Profiles Service: s_CommerceProviderConnectionString
s_NonSecureHostname | This value is set in the Global.asax file to the non-secure host name of the application.
s_ProfileServiceConnectionString | Profiles Service: s_ProfileServiceConnectionString
s_SecureHostname | This value is set in the Global.asax file to the secure host name of the application.
s_SiteName | Name of the Solution Site
s_TransactionConfigConnectionString | Transaction Config: connstr_db_TransactionConfig
s_TransactionsConnectionString | Transactions: connstr_db_Transactions
[C#]

Some options dictionary keys, such as i_AuctionOptions, are reserved for future use. The following table lists the names of the keys in the Dictionary object returned by this method that are mapped in the Microsoft Management Console (MMC).

Programmatic Name | MMC Default Config Mapping
i_AddItemRedirectOptions | Add item redirect options
i_AddressBookOptions | Address Book Options
f_AltCurrencyConversionRate | Currency: Alternate currency conversion Rate
i_AltCurrencyLocale | Currency: Alternate currency locale
i_AltCurrencyOptions | Currency: Alternate currency options
i_BaseCurrencyLocale | Currency: Base currency locale
i_BillingOptions | Payment options: Billing options
i_BizTalkOptions | BizTalk Options
i_CookiePathCorrectionOptions | Cookie Path Correction Options
i_CurrencyDisplayOrderOptions | Currency: Currency display order options
i_DelegatedAdminOptions | Delegated admin options
i_FormLoginOptions | Form login options
i_FormLoginTimeOut | AuthManager Auth ticket Timeout
i_HostNameCorrectionOptions | Host Name Correction Options
i_PaymentOptions | Payment options
i_SitePrivacyOptions | Site privacy options
i_SiteRegistrationOptions | Site registration options
i_SiteTicketOptions | Site ticket options
s_AltCurrencySymbol | Currency: Alternate currency symbol
s_BaseCurrencySymbol | Currency: Base currency symbol
s_BizTalkCatalogDocType | BizTalk Catalog Doc Type
s_BizTalkConnString | BizTalk connection String
s_BizTalkOrderDocType | BizTalk PO Doc Type
s_BizTalkSourceQualifierID | BizTalk Source Org Qualifier
s_BizTalkSourceQualifierValue | BizTalk Org Qualifier Value
s_BizTalkSubmittypeQueue | BizTalk Submit type
s_PageEncodingCharset | Page encoding charset
s_SMTPServerName | SMTP server name
s_WeightMeasure | Unit of Measure for Weight

The following table lists keys in the Dictionary object returned by this method that are not mapped in the MMC.

Programmatic Name | Value or Description
i_IsFullTextSearchInstalled | Indicates whether SQL Server has full text search enabled
s_BizDataStoreConnectionString | Profiles Service: s_BizDataStoreConnectionString
s_CampaignsConnectionString | Campaigns: connstr_db_Campaigns
s_CatalogConnectionString | Product Catalog: connstr_db_Catalog
s_CommerceProviderConnectionString | Profiles Service: s_CommerceProviderConnectionString
s_NonSecureHostname | This value is set in the Global.asa file to the non-secure host name of the application.
s_ProfileServiceConnectionString | Profiles Service: s_ProfileServiceConnectionString
s_SecureHostname | This value is set in the Global.asa file to the secure host name of the application.
s_SiteName | Name of the site
s_TransactionConfigConnectionString | Transaction Config: connstr_db_TransactionConfig
s_TransactionsConnectionString | Transactions: connstr_db_Transactions
[Visual Basic .NET]

Example

' oAppConfig is a Commerce.AppConfig object
' dDictConfig is a Dictionary object
dictConfig = oAppConfig.GetOptionsDictionary("")
For Each sKey In dictConfig
  Response.Write sKey & "=" & dictConfig.Value(sKey)
Next

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class


AppConfig.GetRegionCodeFromCountryCodeAndRegionName Method (PIA)

Use this method to get a String that contains the state/province code for the specified country/region code and state/province name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetRegionCodeFromCountryCodeAndRegionName(
  bstrCountryCode As String,
  bstrStateName As String
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string GetRegionCodeFromCountryCodeAndRegionName(
  string bstrCountryCode,
  string bstrStateName
);

Parameters

[Visual Basic .NET]
bstrCountryCode
A String that contains the code of the country/region for which the state/province code is being requested.
bstrStateName
A String that contains the name of the state/province within the specified country/region for which the state/province code is being requested.
[C#]
bstrCountryCode
A string that contains the code of the country/region for which the state/province code is being requested.
bstrStateName
A string that contains the name of the state within the specified country/region for which the state/province code is being requested.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the requested state/province code. An empty String indicates that the code was not found.

[C#] This method returns a string containing the requested state/province code.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns an empty string if the state/province code was not found.

Country/region codes, country/region names, state/province codes, and state/province names are set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppCfg is a Commerce.AppConfig object, sResult is a string
sResult = oAppCfg.GetRegionCodeFromCountryCodeAndRegionName("us", "Utah")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionNameFromCountryCodeAndRegionCode Method

AppConfig.GetRegionNamesListFromCountryCode

Table of Country/region Names and Codes


AppConfig.GetRegionNameFromCountryCodeAndRegionCode Method (PIA)

Use this method to get the name of the state/province associated with the specified country/region code and state/province code.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetRegionNameFromCountryCodeAndRegionCode(
  bstrCountryCode As String,
  bstrStateCode As String
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string GetRegionNameFromCountryCodeAndRegionCode(
  string bstrCountryCode,
  string bstrStateCode
);

Parameters

[Visual Basic .NET]
bstrCountryCode
A String that contains the code of the country/region for which the state/province name is being requested.
bstrStateCode
A String that contains the code of the state/province within the specified country/region for which the state/province name is being requested.
[C#]
bstrCountryCode
A string that contains the code of the country/region for which the state/province name is being requested.
bstrStateCode
A string that contains the code of the state/province within the specified country/region for which the state/province name is being requested.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the state/province name. If the state/province name is not found, the String will contain the state/province code specified in the bstrStateCode parameter.

[C#] This method returns the state/province name. If the state/province name is not found, the returned string will contain the state/province code specified in the bstrStateCode parameter.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the state/province name is not found, this method returns the state/province code specified in the bstrStateCode parameter.

Country/region codes, country/region names, state/province codes, and state/province names may be set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppCfg is a Commerce.AppConfig object, sResult is a String
sResult = oAppCfg.GetRegionNameFromCountryCodeAndRegionCode("us",  "UT")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionCodeFromCountryCodeAndRegionName

AppConfig.GetRegionNamesListFromCountryCode

Table of Country/Region Names and Codes


AppConfig.GetRegionNamesListFromCountryCode Method (PIA)

Use this method to retrieve an alphabetical list of state/province names associated with a specified country/region code.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop     ‘ for ISimpleList
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetRegionNamesListFromCountryCode(
  bstrCountryCode As String
) As ISimpleList
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using Microsoft.CommerceServer.Interop;              //For ISimpleList
…
public ISimpleList GetRegionNamesListFromCountryCode(
  string bstrCountryCode
);

Parameters

[Visual Basic .NET]
bstrCountryCode
A String that contains the code of the country/region for which a list of region names is being requested.
[C#]
bstrCountryCode
A string that contains the code of the country/region for which a list of state/province names is being requested.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to an object that implements the ISimpleList interface that contains an alphabetical list of state/province names associated with the specified country/region code.

[C#] This method returns an ISimpleList interface to a SimpleList object that contains an alphabetical list of state/province names associated with the specified country/region code.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Country/region codes, country/region names, state/province codes, and state/province names are set in Commerce Server Business Desk.

[Visual Basic .NET]

Example

' oAppCfg is a Commerce.AppConfig object
' listRegions is a SimpleList object
listRegions = oAppConfig.GetRegionNamesListFromCountryCode("us")
For Each sRegion In listRegions
  Response.Write sRegion
Next
' The above example will provide a list of USA state names

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.GetCountryCodeFromCountryName

AppConfig.GetCountryNamesList

AppConfig.GetRegionCodeFromCountryCodeAndRegionName

Table of Country/Region Names and Codes


AppConfig.Initialize Method (PIA)

Use this method to initialize an AppConfig object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub Initialize(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
void Initialize (
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the name of the site with which this AppConfig object should be associated. This name is not case sensitive.
[C#]
bstrSiteName
A string that contains the name of the site with which this AppConfig object should be associated. This name is not case sensitive.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The AppConfig object must be initialized before any other method on this object can be used. The initialization usually happens only once in the Global.asax file immediately after the object is created.

[Visual Basic .NET]

Example

' oAppCfg is a Commerce.AppConfig object
oAppCfg.Initialize("Retail")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.RefreshCache


AppConfig.RefreshCache Method (PIA)

Use this method to refresh the cache associated with the AppConfig object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub RefreshCache()
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void RefreshCache();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Users can add and change country/region and state/province codes and other values from within Commerce Server Business Desk; the RefreshCache method allows you to programmatically incorporate those changes at any time.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: apphelperlib (in apphelperlib.dll)

See Also

AppConfig Class

AppConfig.Initialize


Table of Country/Region Names and Codes (PIA)

Country/region codes may or may not be the same as ISO country/region codes, depending on what values have been added in Business Desk. The following table contains country/region names with their corresponding codes.

Official Short Form | Official Long Form | ISO Code | ISO Short | ISO Long | UN Code | Capital/Major City
Afghanistan | Islamic State of Afghanistan | 4 | AF | AFG | 4 | K�bul
Albania | Republic of Albania | 8 | AL | ALB | 8 | Tirana
Algeria | Democratic and Popular Republic of Algeria | 12 | DZ | DZA | 12 | Algiers
American Samoa | Territory of American Samoa | 16 | AS | ASM | 16 |
Andorra | Principality of Andorra | 20 | AD | AND | 20 | Andorra la Vella
Angola | Republic of Angola | 24 | AO | AGO | 24 | Luanda
Anguilla |  | 660 | AI | AIA | 660 |
Antarctica |  | 10 | AQ | ATA | 10 |
Antigua and Barbuda | Antigua and Barbuda | 28 | AG | ATG | 28 | St. John's
Argentina | Argentine Republic | 32 | AR | ARG | 32 | Buenos Aires
Armenia | Republic of Armenia | 51 | AM | ARM | 51 | Yerevan
Aruba |  | 533 | AW | ABW | 533 |
Australia | Commonwealth of Australia | 36 | AU | AUS | 36 | Canberra
Austria | Republic of Austria | 40 | AT | AUT | 40 | Vienna
Azerbaijan | Azerbaijani Republic | 31 | AZ | AZE | 31 | Baku
Bahamas, The | The Commonwealth of The Bahamas | 44 | BS | BHS | 44 | Nassau
Bahrain | State of Bahrain | 48 | BH | BHR | 48 | Manama
Bangladesh | People's Republic of Bangladesh | 50 | BD | BGD | 50 | Dhaka
Barbados |  | 52 | BB | BRB | 52 | Bridgetown
Belarus | Republic of Belarus | 112 | BY | BLR | 112 | Minsk
Belgium | Kingdom of Belgium | 56 | BE | BEL | 56 | Brussels
Belize |  | 84 | BZ | BLZ | 84 | Belmopan
Benin | Republic of Benin | 204 | BJ | BEN | 204 | Porto-Novo
Bermuda |  | 60 | BM | BMU | 60 |
Bhutan | Kingdom of Bhutan | 64 | BT | BTN | 64 | Thimphu
Bolivia | Republic of Bolivia | 68 | BO | BOL | 68 | Sucre
Bosnia and Herzegovina | Republic of Bosnia and Herzegovina | 70 | BA | BIH | 70 | Sarajevo
Botswana | Republic of Botswana | 72 | BW | BWA | 72 | Gaborone
Bouvet Island |  | 74 | BV | BVT | - |
Brazil | Federative Republic of Brazil | 76 | BR | BRA | 76 | Bras�lia
British Indian Ocean Territory | British Indian Ocean Territory | 86 | IO | IOT | - |
Brunei | Negara Brunei Darussalam | 96 | BN | BRN | 96 | Bandar Seri Begawan
Bulgaria | Republic of Bulgaria | 100 | BG | BGR | 100 | Sofia
Burkina Faso |  | 854 | BF | BFA | 854 | Ouagadougou
Burundi | Republic of Burundi | 108 | BI | BDI | 108 | Bujumbura
C�te d'Ivoire | Republic of C�te d'Ivoire | 384 | CI | CIV | 384 | Yamoussoukro
Cambodia | Kingdom of Cambodia | 116 | KH | KHM | 116 | Phnom Penh
Cameroon | Republic of Cameroon | 120 | CM | CMR | 120 | Yaound�
Canada |  | 124 | CA | CAN | 124 | Ottawa
Cape Verde | Republic of Cape Verde | 132 | CV | CPV | 132 | Praia
Cayman Islands |  | 136 | KY | CYM | 136 |
Central African Republic | Central African Republic | 140 | CF | CAF | 140 | Bangui
Chad | Republic of Chad | 148 | TD | TCD | 148 | N'Djamena
Channel Islands |  | - | GB-CHA | - | 830 |
Chile | Republic of Chile | 152 | CL | CHL | 152 | Santiago
China | People's Republic of China | 156 | CN | CHN | 156 | Beijing
Christmas Island | Territory of Christmas Island | 162 | CX | CXR | - |
Cocos (Keeling) Islands | Territory of Cocos (Keeling) Islands | 166 | CC | CCK | - |
Colombia | Republic of Colombia | 170 | CO | COL | 170 | Santa Fe de Bogot�
Comoros | Federal Islamic Republic of the Comoros | 174 | KM | COM | 174 | Moroni
Congo | Republic of the Congo | 178 | CG | COG | 178 | Brazzaville
Congo (DRC) | Democratic Republic of the Congo | 180 | CD | COD | 180 | Kinshasa
Cook Islands |  | 184 | CK | COK | 184 |
Coral Sea Islands | Coral Sea Islands Territory | - | AU | - | - |
Costa Rica | Republic of Costa Rica | 188 | CR | CRI | 188 | San Jos�
Croatia | Republic of Croatia | 191 | HR | HRV | 191 | Zagreb
Cuba | Republic of Cuba | 192 | CU | CUB | 192 | Havana
Cyprus | Republic of Cyprus | 196 | CY | CYP | 196 | Nicosia
Czech Republic | Czech Republic | 203 | CZ | CZE | 203 | Prague
Denmark | Kingdom of Denmark | 208 | DK | DNK | 208 | Copenhagen
Djibouti | Republic of Djibouti | 262 | DJ | DJI | 262 | Djibouti
Dominica | Commonwealth of Dominica | 212 | DM | DMA | 212 | Roseau
Dominican Republic | Dominican Republic | 214 | DO | DOM | 214 | Santo Domingo
East Timor |  | 626 | TP | TMP | 626 | Dili
Ecuador | Republic of Ecuador | 218 | EC | ECU | 218 | Quito
Egypt | Arab Republic of Egypt | 818 | EG | EGY | 818 | Cairo
El Salvador | Republic of El Salvador | 222 | SV | SLV | 222 | San Salvador
Equatorial Guinea | Republic of Equatorial Guinea | 226 | GQ | GNQ | 226 | Malabo
Eritrea | State of Eritrea | 232 | ER | ERI | 232 | Asmara
Estonia | Republic of Estonia | 233 | EE | EST | 233 | Tallinn
Ethiopia | Federal Democratic Republic of Ethiopia | 231 | ET | ETH | 231 | Addis Ababa
Falkland Islands (Islas Malvinas) | Colony of the Falkland Islands (Islas Malvinas) | 238 | FK | FLK | 238 |
Faroe Islands |  | 234 | FO | FRO | 234 |
Fiji Islands | Republic of the Fiji Islands | 242 | FJ | FJI | 242 | Suva
Finland | Republic of Finland | 246 | FI | FIN | 246 | Helsinki
France | French Republic | 250 | FR | FRA | 250 | Paris
France, Metropolitan |  | 249 | FX | FXX | - |
French Guiana | Department of Guiana | 254 | GF | GUF | 254 |
French Polynesia | Territory of French Polynesia | 258 | PF | PYF | 258 |
French Southern and Antarctic Lands | Territory of the French Southern and Antarctic Lands | 260 | TF | ATF | - |
Gabon | Gabonese Republic | 266 | GA | GAB | 266 | Libreville
Gambia, The | Republic of The Gambia | 270 | GM | GMB | 270 | Banjul
Georgia | Republic of Georgia | 268 | GE | GEO | 268 | T'bilisi
Germany | Federal Republic of Germany | 276 | DE | DEU | 276 | Berlin
Ghana | Republic of Ghana | 288 | GH | GHA | 288 | Accra
Gibraltar |  | 292 | GI | GIB | 292 |
Greece | Hellenic Republic | 300 | GR | GRC | 300 | Athens
Greenland |  | 304 | GL | GRL | 304 |
Grenada |  | 308 | GD | GRD | 308 | St. George's
Guadeloupe | Department of Guadeloupe | 312 | GP | GLP | 312 |
Guam | Territory of Guam | 316 | GU | GUM | 316 |
Guatemala | Republic of Guatemala | 320 | GT | GTM | 320 | Guatemala
Guernsey | Bailiwick of Guernsey | - | GB-GSY | - | - |
Guinea | Republic of Guinea | 324 | GN | GIN | 324 | Conakry
Guinea-Bissau | Republic of Guinea-Bissau | 624 | GW | GNB | 624 | Bissau
Guyana | Cooperative Republic of Guyana | 328 | GY | GUY | 328 | Georgetown
Haiti | Republic of Haiti | 332 | HT | HTI | 332 | Port-au-Prince
Heard Island and McDonald Islands | Territory of Heard Island and McDonald Islands | 334 | HM | HMD | - |
Honduras | Republic of Honduras | 340 | HN | HND | 340 | Tegucigalpa
Hong Kong SAR | Hong Kong Special Administrative Region | 344 | HK | HKG | 344 |
Hungary | Republic of Hungary | 348 | HU | HUN | 348 | Budapest
Iceland | Republic of Iceland | 352 | IS | ISL | 352 | Reykjav�k
India | Republic of India | 356 | IN | IND | 356 | New Delhi
Indonesia | Republic of Indonesia | 360 | ID | IDN | 360 | Jakarta
Iran | Islamic Republic of Iran | 364 | IR | IRN | 364 | Tehran
Iraq | Republic of Iraq | 368 | IQ | IRQ | 368 | Baghdad
Ireland | Republic of Ireland | 372 | IE | IRL | 372 | Dublin
Israel | State of Israel | 376 | IL | ISR | 376 | Jerusalem
Italy | Italian Republic | 380 | IT | ITA | 380 | Rome
Jamaica |  | 388 | JM | JAM | 388 | Kingston
Japan |  | 392 | JP | JPN | 392 | Tokyo
Jersey | Bailiwick of Jersey | - | GB-JSY | - | - |
Jordan | Hashemite Kingdom of Jordan | 400 | JO | JOR | 400 | Amman
Kazakhstan | Republic of Kazakhstan | 398 | KZ | KAZ | 398 | Astana
Kenya | Republic of Kenya | 404 | KE | KEN | 404 | Nairobi
Kiribati | Republic of Kiribati | 296 | KI | KIR | 296 | Bairiki
Korea | Republic of Korea | 410 | KR | KOR | 410 | Seoul
Kuwait | State of Kuwait | 414 | KW | KWT | 414 | Kuwait
Kyrgyzstan | Kyrgyz Republic | 417 | KG | KGZ | 417 | Bishkek
Laos | Lao People's Democratic Republic | 418 | LA | LAO | 418 | Vientiane
Latvia | Republic of Latvia | 428 | LV | LVA | 428 | Riga
Lebanon | Republic of Lebanon | 422 | LB | LBN | 422 | Beirut
Lesotho | Kingdom of Lesotho | 426 | LS | LSO | 426 | Maseru
Liberia | Republic of Liberia | 430 | LR | LBR | 430 | Monrovia
Libya | Socialist People's Libyan Arab Jamahiriya | 434 | LY | LBY | 434 | Tripoli
Liechtenstein | Principality of Liechtenstein | 438 | LI | LIE | 438 | Vaduz
Lithuania | Republic of Lithuania | 440 | LT | LTU | 440 | Vilnius
Luxembourg | Grand Duchy of Luxembourg | 442 | LU | LUX | 442 | Luxembourg
Macau SAR | Macau Special Administrative Region | 446 | MO | MAC | 446 |
Macedonia, Former Yugoslav Republic of | The Former Yugoslav Republic of Macedonia | 807 | MK | MKD | 807 | Skopje
Madagascar | Republic of Madagascar | 450 | MG | MDG | 450 | Antananarivo
Malawi | Republic of Malawi | 454 | MW | MWI | 454 | Lilongwe
Malaysia | Federation of Malaysia | 458 | MY | MYS | 458 | Kuala Lumpur
Maldives | Republic of Maldives | 462 | MV | MDV | 462 | Mal�
Mali | Republic of Mali | 466 | ML | MLI | 466 | Bamako
Malta | Republic of Malta | 470 | MT | MLT | 470 | Valletta
Man, Isle of |  | - | GB-IOM | - | 833 |
Marshall Islands | Republic of the Marshall Islands | 584 | MH | MHL | 584 | Majuro
Martinique | Department of Martinique | 474 | MQ | MTQ | 474 |
Mauritania | Islamic Republic of Mauritania | 478 | MR | MRT | 478 | Nouakchott
Mauritius | Republic of Mauritius | 480 | MU | MUS | 480 | Port Louis
Mayotte | Territorial Collectivity of Mayotte | 175 | YT | MYT | - |
Mexico | United Mexican States | 484 | MX | MEX | 484 | Mexico City
Micronesia | Federated States of Micronesia | 583 | FM | FSM | 583 | Palikir
Moldova | Republic of Moldova | 498 | MD | MDA | 498 | Chi�in�u
Monaco | Principality of Monaco | 492 | MC | MCO | 492 | Monaco
Mongolia |  | 496 | MN | MNG | 496 | Ulaanbaatar
Montserrat |  | 500 | MS | MSR | 500 |
Morocco | Kingdom of Morocco | 504 | MA | MAR | 504 | Rabat
Mozambique | Republic of Mozambique | 508 | MZ | MOZ | 508 | Maputo
Myanmar | Union of Myanmar | 104 | MM | MMR | 104 | Yangon (Rangoon)
Namibia | Republic of Namibia | 516 | NA | NAM | 516 | Windhoek
Nauru | Republic of Nauru | 520 | NR | NRU | 520 | Yaren
Nepal | Kingdom of Nepal | 524 | NP | NPL | 524 | Kathmandu
Netherlands Antilles |  | 530 | AN | ANT | 530 |
Netherlands, The | Kingdom of the Netherlands | 528 | NL | NLD | 528 | Amsterdam
New Caledonia | Territory of New Caledonia and Dependencies | 540 | NC | NCL | 540 |
New Zealand |  | 554 | NZ | NZL | 554 | Wellington
Nicaragua | Republic of Nicaragua | 558 | NI | NIC | 558 | Managua
Niger | Republic of Niger | 562 | NE | NER | 562 | Niamey
Nigeria | Federal Republic of Nigeria | 566 | NG | NGA | 566 | Abuja
Niue |  | 570 | NU | NIU | 570 |
Norfolk Island | Territory of Norfolk Island | 574 | NF | NFK | 574 |
North Korea | Democratic People's Republic of Korea | 408 | KP | PRK | 408 | Pyongyang
Northern Mariana Islands | Commonwealth of the Northern Mariana Islands | 580 | MP | MNP | 580 |
Norway | Kingdom of Norway | 578 | NO | NOR | 578 | Oslo
Oman | Sultanate of Oman | 512 | OM | OMN | 512 | Masqa�
Pakistan | Islamic Republic of Pakistan | 586 | PK | PAK | 586 | Isl�m�b�d
Palau | Republic of Palau | 585 | PW | PLW | 585 | Koror
Panama | Republic of Panama | 591 | PA | PAN | 591 | Panama City
Papua New Guinea | Independent State of Papua New Guinea | 598 | PG | PNG | 598 | Port Moresby
Paraguay | Republic of Paraguay | 600 | PY | PRY | 600 | Asunci�n
Peru | Republic of Peru | 604 | PE | PER | 604 | Lima
Philippines | Republic of the Philippines | 608 | PH | PHL | 608 | Manila
Pitcairn Islands | Pitcairn, Henderson, Ducie, and Oeno Islands | 612 | PN | PCN | 612 |
Poland | Republic of Poland | 616 | PL | POL | 616 | Warsaw
Portugal | Portuguese Republic | 620 | PT | PRT | 620 | Lisbon
Puerto Rico | Commonwealth of Puerto Rico | 630 | PR | PRI | 630 |
Qatar | State of Qatar | 634 | QA | QAT | 634 | Doha
Reunion | Department of Reunion | 638 | RE | REU | 638 |
Romania |  | 642 | RO | ROM | 642 | Bucharest
Russia | Russian Federation | 643 | RU | RUS | 643 | Moscow
Rwanda | Rwandese Republic | 646 | RW | RWA | 646 | Kigali
S�o Tom� and Pr�ncipe | Democratic Republic of S�o Tom� and Pr�ncipe | 678 | ST | STP | 678 | S�o Tom�
Samoa | Independent State of Samoa | 882 | WS | WSM | 882 | Apia
San Marino | Republic of San Marino | 674 | SM | SMR | 674 | San Marino
Saudi Arabia | Kingdom of Saudi Arabia | 682 | SA | SAU | 682 | Riyadh
Senegal | Republic of Senegal | 686 | SN | SEN | 686 | Dakar
Seychelles | Republic of Seychelles | 690 | SC | SYC | 690 | Victoria
Sierra Leone | Republic of Sierra Leone | 694 | SL | SLE | 694 | Freetown
Singapore | Republic of Singapore | 702 | SG | SGP | 702 | Singapore
Slovakia | Slovak Republic | 703 | SK | SVK | 703 | Bratislava
Slovenia | Republic of Slovenia | 705 | SI | SVN | 705 | Ljubljana
Solomon Islands |  | 90 | SB | SLB | 90 | Honiara
Somalia | Somali Democratic Republic | 706 | SO | SOM | 706 | Mogadishu
South Africa | Republic of South Africa | 710 | ZA | ZAF | 710 | Pretoria
South Georgia and the South Sandwich Islands | South Georgia and the South Sandwich Islands | 239 | GS | SGS | - |
Spain | Kingdom of Spain | 724 | ES | ESP | 724 | Madrid
Sri Lanka | Democratic Socialist Republic of Sri Lanka | 144 | LK | LKA | 144 | Sri Jayawardenepura
St. Helena | Saint Helena | 654 | SH | SHN | 654 |
St. Kitts and Nevis | Federation of Saint Kitts and Nevis | 659 | KN | KNA | 659 | Basseterre
St. Lucia | Saint Lucia | 662 | LC | LCA | 662 | Castries
St. Pierre and Miquelon | Territorial Collectivity of Saint Pierre and Miquelon | 666 | PM | SPM | 666 |
St. Vincent and the Grenadines | Saint Vincent and the Grenadines | 670 | VC | VCT | 670 | Kingstown
Sudan | Republic of the Sudan | 736 | SD | SDN | 736 | Khartoum
Suriname | Republic of Suriname | 740 | SR | SUR | 740 | Paramaribo
Svalbard and Jan Mayen |  | 744 | SJ | SJM | 744 |
Swaziland | Kingdom of Swaziland | 748 | SZ | SWZ | 748 | Mbabane
Sweden | Kingdom of Sweden | 752 | SE | SWE | 752 | Stockholm
Switzerland | Swiss Confederation | 756 | CH | CHE | 756 | Bern
Syria | Syrian Arab Republic | 760 | SY | SYR | 760 | Damascus
Taiwan | Taiwan | 158 | TW | TWN | 158 | Taipei
Tajikistan | Republic of Tajikistan | 762 | TJ | TJK | 762 | Dushanbe
Tanzania | United Republic of Tanzania | 834 | TZ | TZA | 834 | Dar es Salaam
Thailand | Kingdom of Thailand | 764 | TH | THA | 764 | Bangkok
Togo | Togolese Republic | 768 | TG | TGO | 768 | Lom�
Tokelau |  | 772 | TK | TKL | 772 |
Tonga | Kingdom of Tonga | 776 | TO | TON | 776 | Nuku'alofa
Trinidad and Tobago | Republic of Trinidad and Tobago | 780 | TT | TTO | 780 | Port-of-Spain
Tunisia | Republic of Tunisia | 788 | TN | TUN | 788 | Tunis
Turkey | Republic of Turkey | 792 | TR | TUR | 792 | Ankara
Turkmenistan | Republic of Turkmenistan | 795 | TM | TKM | 795 | Ashgabat
Turks and Caicos Islands |  | 796 | TC | TCA | 796 |
Tuvalu |  | 798 | TV | TUV | 798 | Funafuti
U.S. Minor Outlying Islands | United States Minor Outlying Islands | 581 | UM | UMI | 581 |
Uganda | Republic of Uganda | 800 | UG | UGA | 800 | Kampala
Ukraine |  | 804 | UA | UKR | 804 | Kyiv
United Arab Emirates |  | 784 | AE | ARE | 784 | Abu Dhabi
United Kingdom | United Kingdom of Great Britain and Northern Ireland | 826 | GB | GBR | 826 | London
United States | United States of America | 840 | US | USA | 840 | Washington, D.C.
Uruguay | Oriental Republic of Uruguay | 858 | UY | URY | 858 | Montevideo
Uzbekistan | Republic of Uzbekistan | 860 | UZ | UZB | 860 | Toshkent
Vanuatu | Republic of Vanuatu | 548 | VU | VUT | 548 | Port-Vila
Vatican City | State of Vatican City | 336 | VA | VAT | 336 | Vatican City
Venezuela | Bolivarian Republic of Venezuela | 862 | VE | VEN | 862 | Caracas
Viet Nam | Socialist Republic of Vietnam | 704 | VN | VNM | 704 | Hanoi
Virgin Islands | Virgin Islands of the United States | 850 | VI | VIR | 850 |
Virgin Islands, British |  | 92 | VG | VGB | 92 |
Wallis and Futuna | Territory of the Wallis and Futuna Islands | 876 | WF | WLF | 876 |
Yemen | Republic of Yemen | 887 | YE | YEM | 887 | Sana'a
Yugoslavia | Federal Republic of Yugoslavia | 891 | YU | YUG | 891 | Belgrade
Zambia | Republic of Zambia | 894 | ZM | ZMB | 894 | Lusaka
Zimbabwe | Republic of Zimbabwe | 716 | ZW | ZWE | 716 | Harare


Table of Language Culture Names, Codes, and ISO Values (PIA)

The following table contains values for language culture names, display names, culture codes, and ISO 639x values that are used by Commerce Server.

Language Culture Name | Display Name | Culture Code | ISO 639x Value
af-ZA | Afrikaans - South Africa | 0x0436 | AFK
sq-AL | Albanian - Albania | 0x041C | SQI
ar-DZ | Arabic - Algeria | 0x1401 | ARG
ar-BH | Arabic - Bahrain | 0x3C01 | ARH
ar-EG | Arabic - Egypt | 0x0C01 | ARE
ar-IQ | Arabic - Iraq | 0x0801 | ARI
ar-JO | Arabic - Jordan | 0x2C01 | ARJ
ar-KW | Arabic - Kuwait | 0x3401 | ARK
ar-LB | Arabic - Lebanon | 0x3001 | ARB
ar-LY | Arabic - Libya | 0x1001 | ARL
ar-MA | Arabic - Morocco | 0x1801 | ARM
ar-OM | Arabic - Oman | 0x2001 | ARO
ar-QA | Arabic - Qatar | 0x4001 | ARQ
ar-SA | Arabic - Saudi Arabia | 0x0401 | ARA
ar-SY | Arabic - Syria | 0x2801 | ARS
ar-TN | Arabic - Tunisia | 0x1C01 | ART
ar-AE | Arabic - United Arab Emirates | 0x3801 | ARU
ar-YE | Arabic - Yemen | 0x2401 | ARY
hy-AM | Armenian - Armenia | 0x042B |
Cy-az-AZ | Azeri (Cyrillic) - Azerbaijan | 0x082C |
Lt-az-AZ | Azeri (Latin) - Azerbaijan | 0x042C |
eu-ES | Basque - Basque | 0x042D | EUQ
be-BY | Belarusian - Belarus | 0x0423 | BEL
bg-BG | Bulgarian - Bulgaria | 0x0402 | BGR
ca-ES | Catalan - Catalan | 0x0403 | CAT
zh-CN | Chinese - China | 0x0804 | CHS
zh-HK | Chinese - Hong Kong SAR | 0x0C04 | ZHH
zh-MO | Chinese - Macau SAR | 0x1404 |
zh-SG | Chinese - Singapore | 0x1004 | ZHI
zh-TW | Chinese - Taiwan | 0x0404 | CHT
zh-CHS | Chinese (Simplified) | 0x0004 |
zh-CHT | Chinese (Traditional) | 0x7C04 |
hr-HR | Croatian - Croatia | 0x041A | HRV
cs-CZ | Czech - Czech Republic | 0x0405 | CSY
da-DK | Danish - Denmark | 0x0406 | DAN
div-MV | Dhivehi - Maldives | 0x0465 |
nl-BE | Dutch - Belgium | 0x0813 | NLB
nl-NL | Dutch - The Netherlands | 0x0413 |
en-AU | English - Australia | 0x0C09 | ENA
en-BZ | English - Belize | 0x2809 | ENL
en-CA | English - Canada | 0x1009 | ENC
en-CB | English - Caribbean | 0x2409 |
en-IE | English - Ireland | 0x1809 | ENI
en-JM | English - Jamaica | 0x2009 | ENJ
en-NZ | English - New Zealand | 0x1409 | ENZ
en-PH | English - Philippines | 0x3409 |
en-ZA | English - South Africa | 0x1C09 | ENS
en-TT | English - Trinidad and Tobago | 0x2C09 | ENT
en-GB | English - United Kingdom | 0x0809 | ENG
en-US | English - United States | 0x0409 | ENU
en-ZW | English - Zimbabwe | 0x3009 |
et-EE | Estonian - Estonia | 0x0425 | ETI
fo-FO | Faroese - Faroe Islands | 0x0438 | FOS
fa-IR | Farsi - Iran | 0x0429 | FAR
fi-FI | Finnish - Finland | 0x040B | FIN
fr-BE | French - Belgium | 0x080C | FRB
fr-CA | French - Canada | 0x0C0C | FRC
fr-FR | French - France | 0x040C |
fr-LU | French - Luxembourg | 0x140C | FRL
fr-MC | French - Monaco | 0x180C |
fr-CH | French - Switzerland | 0x100C | FRS
gl-ES | Galician - Galician | 0x0456 |
ka-GE | Georgian - Georgia | 0x0437 |
de-AT | German - Austria | 0x0C07 | DEA
de-DE | German - Germany | 0x0407 |
de-LI | German - Liechtenstein | 0x1407 | DEC
de-LU | German - Luxembourg | 0x1007 | DEL
de-CH | German - Switzerland | 0x0807 | DES
el-GR | Greek - Greece | 0x0408 | ELL
gu-IN | Gujarati - India | 0x0447 |
he-IL | Hebrew - Israel | 0x040D | HEB
hi-IN | Hindi - India | 0x0439 | HIN
hu-HU | Hungarian - Hungary | 0x040E | HUN
is-IS | Icelandic - Iceland | 0x040F | ISL
id-ID | Indonesian - Indonesia | 0x0421 |
it-IT | Italian - Italy | 0x0410 |
it-CH | Italian - Switzerland | 0x0810 | ITS
ja-JP | Japanese - Japan | 0x0411 | JPN
kn-IN | Kannada - India | 0x044B |
kk-KZ | Kazakh - Kazakhstan | 0x043F |
kok-IN | Konkani - India | 0x0457 |
ko-KR | Korean - Korea | 0x0412 | KOR
ky-KZ | Kyrgyz - Kazakhstan | 0x0440 |
lv-LV | Latvian - Latvia | 0x0426 | LVI
lt-LT | Lithuanian - Lithuania | 0x0427 | LTH
mk-MK | Macedonian - FYROM | 0x042F | MKD
ms-BN | Malay - Brunei | 0x083E |
ms-MY | Malay - Malaysia | 0x043E |
mr-IN | Marathi - India | 0x044E |
mn-MN | Mongolian - Mongolia | 0x0450 |
nb-NO | Norwegian (Bokm虱) - Norway | 0x0414 |
nn-NO | Norwegian (Nynorsk) - Norway | 0x0814 |
pl-PL | Polish - Poland | 0x0415 | PLK
pt-BR | Portuguese - Brazil | 0x0416 | PTB
pt-PT | Portuguese - Portugal | 0x0816 |
pa-IN | Punjabi - India | 0x0446 |
ro-RO | Romanian - Romania | 0x0418 | ROM
ru-RU | Russian - Russia | 0x0419 | RUS
sa-IN | Sanskrit - India | 0x044F |
Cy-sr-SP | Serbian (Cyrillic) - Serbia | 0x0C1A |
Lt-sr-SP | Serbian (Latin) - Serbia | 0x081A |
sk-SK | Slovak - Slovakia | 0x041B | SKY
sl-SI | Slovenian - Slovenia | 0x0424 | SLV
es-AR | Spanish - Argentina | 0x2C0A | ESS
es-BO | Spanish - Bolivia | 0x400A | ESB
es-CL | Spanish - Chile | 0x340A | ESL
es-CO | Spanish - Colombia | 0x240A | ESO
es-CR | Spanish - Costa Rica | 0x140A | ESC
es-DO | Spanish - Dominican Republic | 0x1C0A | ESD
es-EC | Spanish - Ecuador | 0x300A | ESF
es-SV | Spanish - El Salvador | 0x440A | ESE
es-GT | Spanish - Guatemala | 0x100A | ESG
es-HN | Spanish - Honduras | 0x480A | ESH
es-MX | Spanish - Mexico | 0x080A | ESM
es-NI | Spanish - Nicaragua | 0x4C0A | ESI
es-PA | Spanish - Panama | 0x180A | ESA
es-PY | Spanish - Paraguay | 0x3C0A | ESZ
es-PE | Spanish - Peru | 0x280A | ESR
es-PR | Spanish - Puerto Rico | 0x500A | ES
es-ES | Spanish - Spain | 0x0C0A |
es-UY | Spanish - Uruguay | 0x380A | ESY
es-VE | Spanish - Venezuela | 0x200A | ESV
sw-KE | Swahili - Kenya | 0x0441 |
sv-FI | Swedish - Finland | 0x081D | SVF
sv-SE | Swedish - Sweden | 0x041D |
syr-SY | Syriac - Syria | 0x045A |
ta-IN | Tamil - India | 0x0449 |
tt-RU | Tatar - Russia | 0x0444 |
te-IN | Telugu - India | 0x044A |
th-TH | Thai - Thailand | 0x041E | THA
tr-TR | Turkish - Turkey | 0x041F | TRK
uk-UA | Ukrainian - Ukraine | 0x0422 | UKR
ur-PK | Urdu - Pakistan | 0x0420 | URD
Cy-uz-UZ | Uzbek (Cyrillic) - Uzbekistan | 0x0843 |
Lt-uz-UZ | Uzbek (Latin) - Uzbekistan | 0x0443 |
vi-VN | Vietnamese - Vietnam | 0x042A | VIT


GlobalConfig Class (PIA)

Use this object to accomplish the following:

  • Create or delete resource configuration information.
  • Save any updated global configuration information to the Administration database.
  • Add a site.
You can add your own custom resources to use the GlobalConfig object to access configuration settings from the Administration database.

Methods

Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a System.Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns group-level configuration data. This property is read-only.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

Integrating Custom Resources

Configuration Objects

SiteConfig Class

SiteConfigReadOnly Class


GlobalConfig Methods (PIA)

Methods

Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a System.Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the Administration data store.


GlobalConfig.CreateServiceConfig Method (PIA)

Use this method to create an instance of the class specified by the bstrConfigSchemaClass parameter, set the Name property of the instance to the name specified in the bstrServiceName parameter, and load the instance into the site Recordset. This method calls the SaveConfig method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub CreateServiceConfig(
  bstrResourceName As String,
  bstrConfigSchemaClass As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void CreateServiceConfig(
  string bstrResourceName,
  string bstrConfigSchemaClass
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A String that contains the resource configuration schema class name.
[C#]
bstrResourceName
A string that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A string that contains the resource configuration schema class name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

The following table contains a list of schema classes for this method.

Administration Database Class Name | Resource Name
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_DataWarehouse_Group | Global Data Warehouse
MSCS_BizDataStore | Profiles
[Visual Basic .NET]

Example

' sMyPredictor is a String denoting the new resource name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.CreateServiceConfig(sMyPredictor, MSCS_Predictor)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class

GlobalConfig.DeleteServiceConfig


GlobalConfig.CreateSiteConfig Method (PIA)

Use this method to create a site using the name specified in the bstrSiteName parameter. This method calls the SaveConfig method. This method is used primarily from Commerce Server Manager or by Commerce Server Site Packager. The correct ACLs are set on the entries in the Internet Information Services (IIS) metabase by Commerce Server Site Packager, to ensure that the Admin objects can only be operated on by site administrators.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function CreateSiteConfig(
  bstrSiteName As String
) As ISiteConfig
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public ISiteConfig CreateSiteConfig(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the new site name.
[C#]
bstrSiteName
A string that contains the new site name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that implements the ISiteConfig interface that contains the site configuration settings.

[C#] This method returns a Microsoft.CommerceServer.Interop.Configuration.ISiteConfig interface for a SiteConfig object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMyNewSite is a string; oGlobalConfig is a Commerce GlobalConfig object
' oMSCSSiteConfig is a Commerce SiteConfig object
oMSCSSiteConfig = oGlobalConfig.CreateSiteConfig(sMyNewSite)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class

GlobalConfig.DeleteSiteConfig


GlobalConfig.DeleteServiceConfig Method (PIA)

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteServiceConfig(
  bstrResourceName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteServiceConfig(
  string bstrResourceName
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the name of the resource configuration object to be deleted.
[C#]
bstrResourceName
A string that contains the name of the resource configuration to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMyPredictor is the name of an existing resource
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteServiceConfig (sMyPredictor)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class

GlobalConfig.CreateServiceConfig


GlobalConfig.DeleteSiteConfig Method (PIA)

Use this method to delete a site configuration object instance for the current site from the Administration database. This method is primarily used by Commerce Server Manager or by Commerce Server Site Packager.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteSiteConfig(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteSiteConfig(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the site name.
[C#]
bstrSiteName
A string that contains the site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMySiteName is an existing site name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteSiteConfig(sMySiteName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class

GlobalConfig.CreateServiceConfig


GlobalConfig.GetIfCollection Method (PIA)

Use this method to convert values read from the Fields property into appropriate objects such as a SimpleList object or a System.Array object. If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a System.Array object, then a System.Array object is returned. If no collection object is indicated, then the method returns the original encoded input string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetIfCollection(
  ByRef strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object GetIfCollection(
  ref object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string to be converted.
[C#]
strList
An object that contains the encoded string to be converted.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted data in the appropriate data type.

[C#] This method returns an object containing the converted data in the appropriate data type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oObject is an Object; oEncodedString is an Object
' oGlobalConfig is a Commerce GlobalConfig object
oObject = oGlobalConfig.GetIfCollection(oEncodedString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.GetResourcePropAttrib Method (PIA)

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports Microsoft.CommerceServer.Interop     ‘ for IDictionary
…
Public Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As IDictionary
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using Microsoft.CommerceServer.Interop;             //For IDictionary
…
public IDictionary GetResourcePropAttrib(
  string strResourceName,
  string strPropName
);

Parameters

[Visual Basic .NET]
strResourceName
A String that contains the resource name.
strPropName
A String that contains the resource property name.
[C#]
strResourceName
A string that contains the resource name.
strPropName
A string that contains the resource property name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to an Object that implements the IDictionary interface containing the key/value pairs that denote the attributes of the specified property of the specified resource.

[C#] This method returns an IDictionary interface to a Dictionary object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[C#] The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oGlobalConfig is a Commerce GlobalConfig object
dDict = _
oGlobalConfig.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.Initialize Method (PIA)

Use this method to load the global configuration from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub Initialize(
  Optional bstrResourceName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void Initialize(
  string bstrResourceName
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String reserved for future use. This method ignores the value placed in this parameter.
[C#]
bstrGroupName
A string reserved for future use. This method ignores the value placed in this parameter.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.MakeArrayFromSimpleList Method (PIA)

Use this method to convert the specified SimpleList object into a System.Array object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromSimpleList(
  ByRef list As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromSimpleList(
  ref object list
);

Parameters

[Visual Basic .NET]
list
An object reference to the SimpleList that you want to convert into a System.Array object.
[C#]
list
A SimpleList object that you want to convert into a System.Array object.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted System.Array object.

[C#] This method returns the converted System.Array object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyObject is an Object
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
oMyObject = oGlobalConfig.MakeArrayFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.MakeArrayFromString Method (PIA)

Use this method to convert an encoded string read from the Fields property into a System.Array object. If the encoded string does not indicate System.Array object properties, then the method returns the original string that was passed into it.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromString(
  strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromString(
  object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string.
[C#]
strList
An object that contains the encoded string.

Return Values

This method returns an object containing the converted System.Array object or unconverted string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Objects or System.Arrays as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object containing an encoded string read from the Fields
' property
' oArray is an Object
' oGlobalConfig is a Commerce GlobalConfig object
oArray = oGlobalConfig.MakeArrayFromString(oEncoded)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.MakeSimpleListFromArray Method (PIA)

Use this method to convert a System.Array object into a SimpleList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeSimpleListFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeSimpleListFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array object to convert.
[C#]
varArray
An object that contains the System.Array object to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to the converted SimpleList object.

[C#] This method returns the converted SimpleList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' pMyArray is an Object
' varMySimpleList is a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
varMySimpleList = oGlobalConfig.MakeSimpleListFromArray(oMyArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.MakeStringFromArray Method (PIA)

Use this method to convert a System.Array object into an encoded String, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeStringFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array object to encode.
[C#]
varArray
An object that contains the System.Array object to encode.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the encoded String.

[C#] This method returns an object containing the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Objects or System.Arrays as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded String format.
[Visual Basic .NET]

Example

' oEncoded is an Object
' oArray is an Object
' oGlobalConfig is a Commerce GlobalConfig object
oEncoded = oGlobalConfig.MakeStringFromArray(oArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.MakeStringFromSimpleList Method (PIA)

Use this method to convert a SimpleList object into an encoded String, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromSimpleList(
  ByRef slist As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string MakeStringFromSimpleList(
  ref object slist
);

Parameters

[Visual Basic .NET]
slist
An object reference to the SimpleList object that you want to convert into an encoded String.
[C#]
slist
A SimpleList object that you want to convert into an encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Objects, System.Arrays, or SimpleLists as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded String format.
[Visual Basic .NET]

Example

' vEncoded is a string
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
vEncoded = oGlobalConfig.MakeStringFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig.SaveConfig Method (PIA)

Use this method to save the global configuration settings to the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub SaveConfig()
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void SaveConfig();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)


GlobalConfig.Sites Method (PIA)

Use this method to retrieve a list of all the sites available in the Administration database. This method returns an Object that implements the _Recordset interface that contains a single record; the number of fields in the Fields collection is equal to the number of sites in the Microsoft Commerce Server 2002 installation. Each Fields collection contains the name of one of the sites.

Definition (PIA)

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib    ‘ for _Recordset
…
Public Function Sites() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                                   //For _Recordset
…
public _Recordset Sites();

Return Values (PIA)

[Visual Basic .NET] If this method completes successfully, it returns an Object that implements the _Recordset interface that contains a list of all the sites available in the Administration data store.

[C#] This method returns an object that implements the ADODB26Lib._Recordset interface to a Recordset containing a list of all sites available in the Administration data store.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)


GlobalConfig Properties (PIA)

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns group-level configuration data. This property is read-only.


GlobalConfig.Fields Property (PIA)

[Visual Basic .NET] The Fields property is a read-only Fields object. The Fields property contents include recordsets that hold the configuration settings of resources. A Fields object is a Fields collection.

[C#] The Fields property is a read-only Fields object. The Fields property contents include recordsets that hold the configuration settings of resources. A Fields object is an ADODB26Lib.Fields object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib     ‘ for Fields
…
Public Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                                   //For Fields
…
public Fields Fields {get; }

Property Value

This property returns a collection of ADODB26Lib.Fields objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

GlobalConfig Class


GlobalConfig2 Class (PIA)

Use this object to accomplish the following:

  • Create or delete resource configuration information.
  • Save updated global configuration information to the Administration database.
  • Add a site.

    You can add your own custom resources to use this object to access configuration settings from the Administration database.

Methods

Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array .
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the Administration data store.

Properties

Property | Type | Description
Fields | Object | Returns group-level configuration data. This property is read-only.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)


GlobalConfig2 Methods (PIA)

Methods

Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the Administration data store.


GlobalConfig2.CreateServiceConfig Method (PIA)

Use this method to create an instance of the class specified by the bstrConfigSchemaClass parameter, set the Name property of the instance to the name specified in the bstrServiceName parameter, and load the instance into the site recordset. This method calls the SaveConfig method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub CreateServiceConfig(
  bstrResourceName As String,
  bstrConfigSchemaClass As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void CreateServiceConfig(
  string bstrResourceName,
  string bstrConfigSchemaClass
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A String that contains the resource configuration schema class name.
[C#]
bstrResourceName
A string that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A string that contains the resource configuration schema class name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

The following table contains a list of schema classes for this method.

Administration Database Class Name | Resource Name
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_DataWarehouse_Group | Global Data Warehouse
MSCS_BizDataStore | Profiles
[Visual Basic .NET]

Example

' sMyPredictor is a String denoting the new resource name
' MSCS_Predictor is a String denoting the database class name
' oGlobalConfig is a Commerce GlobalConfig2 object
oGlobalConfig.CreateServiceConfig(sMyPredictor, MSCS_Predictor)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class

GlobalConfig2.DeleteServiceConfig


GlobalConfig2.CreateSiteConfig Method (PIA)

Use this method to create a site using the name specified in the bstrSiteName parameter. This method calls the SaveConfig method. This method is used primarily from Commerce Server Manager or by Commerce Server Site Packager. The correct ACLs are set on the entries in the Internet Information Services (IIS) metabase by Site Packager, to ensure that only site administrators can perform operations on the Admin objects.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function CreateSiteConfig(
  bstrSiteName As String
) As ISiteConfig
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public ISiteConfig CreateSiteConfig(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the new site name.
[C#]
bstrSiteName
A string that contains the new site name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object that implements the ISiteConfig interface that contains the site configuration settings.

[C#] This method returns a Microsoft.CommerceServer.Interop.Configuration.ISiteConfig interface for a SiteConfig object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMyNewSite is a string; oGlobalConfig is a Commerce GlobalConfig2 object
' oMSCSSiteConfig is a Commerce SiteConfig object
oMSCSSiteConfig = oGlobalConfig.CreateSiteConfig(sMyNewSite)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class

GlobalConfig2.DeleteSiteConfig


GlobalConfig2.DeleteServiceConfig Method (PIA)

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteServiceConfig(
  bstrServiceName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteServiceConfig(
  string bstrServiceName
);

Parameters

[Visual Basic .NET]
bstrServiceName
A String that contains the name of the resource configuration object to be deleted.
[C#]
bstrServiceName
A string that contains the name of the resource configuration to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMyPredictor is the name of an existing resource
' oGlobalConfig is a Commerce GlobalConfig2 object
oGlobalConfig.DeleteServiceConfig (sMyPredictor)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class

GlobalConfig2.CreateServiceConfig


GlobalConfig2.DeleteSiteConfig Method (PIA)

Use this method to delete a site configuration object instance for the current site from the Administration database. This method is primarily used by Commerce Server Manager or by Commerce Server Site Packager.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteSiteConfig(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteSiteConfig(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the site name.
[C#]
bstrSiteName
A string that contains the site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' sMySiteName is an existing site name
' oGlobalConfig is a Commerce GlobalConfig2 object
oGlobalConfig.DeleteSiteConfig(sMySiteName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class

GlobalConfig2.CreateServiceConfig


GlobalConfig2.GetGlobalResources Method (PIA)

Use this method to retrieve a list of all the names of the resources from the Resources table in the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetGlobalResources(
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public _Recordset GetIfCollection(
);

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object. Each Field object in the recordset includes the name of a resource in the Resources table in the Administration database.

[C#] This method returns a _Recordset object. Each Field object in the recordset includes the name of a resource in the Resources table in the Administration database.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.GetIfCollection Method (PIA)

Use this method to convert values read from the Fields property into appropriate objects such as a SimpleList object or a System.Array. If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a System.Array, then a System.Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetIfCollection(
  ByRef strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object GetIfCollection(
  ref object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string to be converted.
[C#]
strList
An object that contains the encoded string to be converted.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted data in the appropriate data type.

[C#] This method returns an object containing the converted data in the appropriate data type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oObject is an Object; oEncodedString is an Object
' oGlobalConfig is a Commerce GlobalConfig2 object
oObject = oGlobalConfig.GetIfCollection(oEncodedString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.GetRefSites (PIA)

Use this method to retrieve a list of all the site names that reference the given resource from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib    ‘ for _Recordset
…
Public Function GetRefSites(
  strDisplayName As String,
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                                   //For _Recordset
…
public _Recordset GetRefSites(
  string strDisplayName,
);

Parameters

[Visual Basic .NET]
strDisplayName
A String that contains the display name of the global resource.
[C#]
strDisplayName
A string that contains the display name of the global resource.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object. Each field in the recordset includes the name of one of the sites that references the given resource.

[C#] This method returns a Recordset object. Each field in the recordset includes the name of one of the sites that references the given resource.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.GetResourcePropAttrib Method (PIA)

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports Microsoft.CommerceServer.Interop     ‘ for IDictionary
…
Public Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As IDictionary
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using Microsoft.CommerceServer.Interop;             //For IDictionary
…
public IDictionary GetResourcePropAttrib(
  string strResourceName,
  string strPropName
);

Parameters

[Visual Basic .NET]
strResourceName
A String that contains the resource name.
strPropName
A String that contains the resource property name.
[C#]
strResourceName
A string that contains the resource name.
strPropName
A string that contains the resource property name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a reference to an object that implements the IDictionary interface containing the key/value pairs that denote the attributes of the specified property of the specified resource.

[C#] This method returns an IDictionary interface to a Dictionary object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

[Visual Basic .NET]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oGlobalConfig is a Commerce GlobalConfig2 object
dDict = _
oGlobalConfig.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.Initialize Method (PIA)

Use this method to load the global configuration from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub Initialize(
  Optional bstrGroupName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void Initialize(
  string bstrGroupName
);

Parameters

[Visual Basic .NET]
bstrGroupName
A String reserved for future use. This method ignores the value placed in this parameter.
[C#]
bstrGroupName
A string reserved for future use. This method ignores the value placed in this parameter.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.MakeArrayFromSimpleList Method (PIA)

Use this method to convert the specified SimpleList object into a System.Array.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromSimpleList(
  ByRef list As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromSimpleList(
  ref object list
);

Parameters

[Visual Basic .NET]
list
An object reference to the SimpleList that you want to convert into a System.Array.
[C#]
list
A SimpleList object that you want to convert into a System.Array.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted System.Array.

[C#] This method returns the converted System.Array.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyObject is an Object
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig2 object
oMyObject = oGlobalConfig.MakeArrayFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.MakeArrayFromString Method (PIA)

Use this method to convert an encoded string read from the Fields property into a System.Array. If the encoded string does not indicate System.Array properties, then the method returns the original String that was passed into it.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromString(
  strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromString(
  object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string.
[C#]
strList
An object that contains the encoded string.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the converted System.Array or unconverted String.

[C#] This method returns an object containing the converted System.Array or unconverted string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can be used only on values exposed by the ADODB26Lib.Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object containing an encoded string read from the Fields
' property
' oArray is an Object
' oGlobalConfig is a Commerce GlobalConfig2 object
oArray = oGlobalConfig.MakeArrayFromString(oEncoded)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.MakeSimpleListFromArray Method (PIA)

Use this method to convert a System.Array into a SimpleList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeSimpleListFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeSimpleListFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array to convert.
[C#]
varArray
An object that contains the System.Array to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to the converted SimpleList object.

[C#] This method returns the converted SimpleList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' pMyArray is an Object
' varMySimpleList is a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig2 object
varMySimpleList = oGlobalConfig.MakeSimpleListFromArray(oMyArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.MakeStringFromArray Method (PIA)

Use this method to convert a System.Array object into an encoded string, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeStringFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array to encode.
[C#]
varArray
An object that contains the System.Array to encode.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the encoded string.

[C#] This method returns an object containing the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can be used only when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object
' oArray is an Object
' oGlobalConfig is a Commerce GlobalConfig2 object
oEncoded = oGlobalConfig.MakeStringFromArray(oArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.MakeStringFromSimpleList Method (PIA)

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromSimpleList(
  ByRef slist As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string MakeStringFromSimpleList(
  ref object slist
);

Parameters

[Visual Basic .NET]
slist
An object reference to the SimpleList object that you want to convert into an encoded string.
[C#]
slist
A SimpleList object that you want to convert into an encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can be used only when updating values exposed by the ADODB26Lib.Fields object. The client-side disconnected ADO recordset has no support for Arrays, SimpleLists, or Objects as fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' vEncoded is a string
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig2 object
vEncoded = oGlobalConfig.MakeStringFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.SaveConfig Method (PIA)

Use this method to save the global configuration settings to the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub SaveConfig()
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void SaveConfig();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2.Sites Method (PIA)

[Visual Basic .NET] Use this method to retrieve a list of all the sites available in the Administration database. This method returns an object that implements the _Recordset interface that contains a single record; the number of fields in the Fields collection is equal to the number of sites in the Commerce Server 2002 installation. Each Fields collection contains the name of one of the sites.

[C#] Use this method to retrieve a list of all the sites available in the Administration database. This method returns an ADODB26Lib._Recordset object that contains a single record; the number of fields in the Fields collection is equal to the number of sites in the Microsoft Commerce Server 2002 installation. Each Fields collection contains the name of one of the sites.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib    ‘ for _Recordset
…
Public Function Sites() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                                   //For _Recordset
…
public _Recordset Sites();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object that implements the _Recordset interface that contains a list of all the sites available in the Administration data store.

[C#] This method returns an object that implements the ADODB26Lib._Recordset interface to a Recordset containing a list of all sites available in the Administration data store.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET] The Initialize method must be called before this method can be called.

[C#] The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


GlobalConfig2 Properties (PIA)

Properties

Property | Type | Description
Fields | Object | Returns group-level configuration data. This property is read-only.


GlobalConfig2.Fields Property (PIA)

The Fields property is a read-only Fields object. The Fields property contents include recordsets that hold the configuration settings of resources. A Fields object is an ADODB26Lib.Fields object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib     ‘ for Fields
…
Public Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                                   //For Fields
…
public Fields Fields {get; }
[C#]

Property Value

This property returns a collection of ADODB26Lib.Fields objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be called.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .NET Server family

Assembly: CS_MSCSCfg (in cs_mscscfg.dll)

See Also

GlobalConfig2 Class


SiteConfig Class (PIA)

Use this object to accomplish the following:

  • Create or delete site configuration information
  • Save any updated site configuration information to the Administration database
  • Load site configuration information from the Administration database
  • Import resource configuration data to a site and export resource configuration data from a site

Methods

Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a System.Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns configuration fields, some of which hold configuration settings of resources.

Remarks

Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

Configuration Objects

Integrating Custom Resources

GlobalConfig Class

SiteConfigReadOnly Class


SiteConfig Methods (PIA)

Methods

Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a System.Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.


SiteConfig.AddRefToGroupComponent Method (PIA)

Use this method to add a reference to a global resource so that a site can access that resource. If you use this method to create a global resource, in order to read the correct property values, use the SiteConfigReadOnly object methods. To set the correct property values, use the GlobalConfig object on the global resource that is referenced by this site-level resource.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub AddRefToGroupComponent(
  bstrSiteResourceName As String,
  bstrGroupResourceName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void AddRefToGroupComponent(
  string bstrSiteResourceName,
  string bstrGroupResourceName
);

Parameters

[Visual Basic .NET]
bstrSiteResourceName
A String that contains the name of the resource configuration object to be added to the site.
bstrGroupResourceName
A String that contains the name of the global resource configuration object to which a reference is being added.
[C#]
bstrSiteResourceName
A string that contains the name of the resource configuration object to be added to the site.
bstrGroupResourceName
A string that contains the name of the global resource configuration object to which a reference is being added.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

If you use this method to create a global resource, use the SiteConfigReadOnly object methods to read the correct property values. Use the GlobalConfig object on the global resource that is referenced by this site-level resource to set the correct property values.

[Visual Basic .NET]

Example

' sSiteResName and sGlob are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.AddRefToGroupComponent(sSiteResName,sGlob)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.CreateComponentConfig Method (PIA)

Use this method to create an instance of a configuration schema class, and load it into the site recordset.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub CreateComponentConfig(
  bstrResourceName As String,
  bstrConfigSchemaClass As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void CreateComponentConfig(
  string bstrResourceName,
  string bstrConfigSchemaClass
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A String that contains the resource configuration schema class name.
[C#]
bstrResourceName
A string that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass
A string that contains the resource configuration schema class name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

This method creates an instance of the class specified in the bstrConfigSchemaClass parameter, and sets the Name property of the instance to the name specified in the bstrConfigComponentName parameter. It loads the instance into the site recordset.

This method calls the SaveConfig method.

The following table contains a list of schema classes for this method.

Admininstration Database Class Name | Resource Name
MSCS_Catalog | Product Catalog
MSCS_AppConfigDefault | App Default Config
MSCS_TransactionConfig | Transaction Config
MSCS_Transactions | Transactions
MSCS_Content | (No longer used)
MSCS_Campaigns | Campaigns
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_Predictor_Site | (No longer used)
MSCS_Datawarehouse_Group | Global Data Warehouse
MSCS_Datawarehouse_Site | Site Data Warehouse
MSCS_BizDataStore | Profiles Resource
MSCS_Address | IIS Applications (such as Retail, RetailBizDesk)
MSCS_UPMDtsTask | Profiling System DTS Task Information
[Visual Basic .NET]

Example

' sMyCatalog is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.CreateComponentConfig(sMyCatalog, MSCS_Catalog)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class

SiteConfig.DeleteComponentConfig


SiteConfig.DeleteComponentConfig Method (PIA)

Use this method to delete the Administration database information for the specified resource.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteComponentConfig(
  bstrResourceName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteComponentConfig(
  string bstrResourceName
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the name of the resource configuration object to be deleted.
[C#]
bstrResourceName
A string that contains the name of the resource associated with the Administration database information to delete.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

This delete does not remove any resource-specific data other than the configuration information. For instance, deleting the Product Catalog resource will not remove the Product Catalog tables from the database, only the configuration information.

[Visual Basic .NET]

Example

' sMyResource is the name of an existing resource
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.DeleteComponentConfig (sMyResource)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class

SiteConfig.CreateComponentConfig


SiteConfig.DeleteSQLScript Method (PIA)

Use this method to delete the specified SQL script file from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub DeleteSQLScript(
  sResource As String,
  sScriptName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void DeleteSQLScript(
  string sResource,
  string sScriptName
);

Parameters

[Visual Basic .NET]
sResource
A String that contains the name of the resource that is associated with the SQL script file that is to be deleted.
sScriptName
A String that contains the name of the SQL script file to delete.
[C#]
sResource
A string that contains the name of the resource that is associated with the SQL script file that is to be deleted.
sScriptName
A string that contains the name of the SQL script file to delete.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.ExportResource Method (PIA)

Use this method to write the specified resource, resource properties, and attributes to the specified file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub ExportResource(
  bstrResourceName As String,
  bstrFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void ExportResource(
  string bstrResourceName,
  string bstrFileName
);

Parameters

[Visual Basic .NET]
bstrResourceName
A String that contains the resource name.
bstrFileName
A String that contains the destination file name for the resource export.
[C#]
bstrResourceName
A string that contains the resource name.
bstrFileName
A string that contains the destination file name for the resource export.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

This method and the ImportResource method are complements of each other. This method creates the file that ImportResource consumes.

[Visual Basic .NET]

Example

' sMyResource and sMyFileName.txt are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ExportResource(sMyResource, sMyFileName.txt)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.GetAppsInSite Method (PIA)

Use this method to get a list of Commerce Server 2002 applications for the specified site.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetAppsInSite(
  ByRef strSiteName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object GetAppsInSite(
  ref string strSiteName
);

Parameters

[Visual Basic .NET]
strSiteName
A String that contains the name of the site for which you want the list of running Commerce Server 2002 applications.
[C#]
strSiteName
A string that contains the name of the site for which you want the list of Commerce Server 2002 applications that are currently running.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the list of Commerce Server 2002 applications.

[C#] This method returns an object containing the list of Commerce Server 2002 applications.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

[Visual Basic .NET]

Example

' sMySiteName is a string
' oObject is an Object
' oSiteConfig is a Commerce SiteConfig object
oObject = oSiteConfig.GetAppsInSite(sMySiteName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.GetIfCollection Method (PIA)

Use this method to convert values read from the Fields property into the appropriate object, such as a SimpleList object or System.Array.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetIfCollection(
  ByRef strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object GetIfCollection(
  ref object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string to be converted.
[C#]
strList
An object that contains the encoded string to be converted.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted data in the appropriate data type.

[C#] This method returns an object containing the converted data in the appropriate data type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a System.Array, then a System.Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

[Visual Basic .NET]

Example

' oObject is an Object; oEncodedString is an Object
' oSiteConfig is a Commerce SiteConfig object
oObject = oSiteConfig.GetIfCollection(oEncodedString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.GetResourcePropAttrib Method (PIA)

Use this method to get a Dictionary object of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop     ‘ for IDictionary
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As IDictionary
[C#]
using Microsoft.CommerceServer.Interop;
using Microsoft.CommerceServer.Interop.Configuration;
…
public IDictionary GetResourcePropAttrib(
  string strResourceName,
  string strPropName
);

Parameters

[Visual Basic .NET]
strResourceName
A String that contains the resource name.
strPropName
A String that contains the resource property name.
[C#]
strResourceName
A string that contains the resource name.
strPropName
A string that contains the resource property name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to an object that implements the IDictionary interface containing the key/value pairs that denote the attributes of the specified property of the specified resource.

[C#] An object that implements the Microsoft.CommerceServer.Interop.IDictionary interface, used to return the key/value pairs that denote the attributes of the specified property of the specified resource.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

[Visual Basic .NET]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oSiteConfig is a Commerce SiteConfig object
dDict = _
oSiteConfig.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.GetSQLScript Method (PIA)

Use this method to get the specified SQL script file from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetSQLScript(
  sResource As String,
  sScriptName As String
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string GetSQLScript(
  string sResource,
  string sScriptName
);

Parameters

[Visual Basic .NET]
sResource
A String that contains the resource associated with the required SQL script file.
sScriptName
A String that contains the file name of the required SQL script file.
[C#]
sResource
A string that contains the resource associated with the required SQL script file.
sScriptName
A string that contains the file name of the required SQL script file.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the SQL script file contents.

[C#] A string containing the SQL script file contents.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

[Visual Basic .NET]

Example

' sMyCatalog is an existing resource
' sMySQLFileName.sql and sContents are strings
' oSiteConfig is a Commerce SiteConfig object
sContents = oSiteConfig.GetSQLScript(sMyCatalog, sMySQLFileName.sql)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.ImportResource Method (PIA)

Use this method to read the specified resource, resource properties, and attributes from the specified file, and write them to the Commerce Server 2002 database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub ImportResource(
  bstrFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void ImportResource(
  string bstrFileName
);

Parameters

[Visual Basic .NET]
bstrFileName
A String that contains the file name.
[C#]
bstrFileName
A string that contains the file name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

This method is the complement of the ExportResource method. It consumes the file that ExportResource creates.

[Visual Basic .NET]

Example

' sMyFileName is a string
sMyFileName = "C:\ExportedFile.txt"
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ImportResource(sMyFileName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.Initialize Method (PIA)

Use this method to load the site configuration from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub Initialize(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void Initialize(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the site name.
[C#]
bstrSiteName
A string that contains the site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' sMySiteName is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.Initialize(sMySiteName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.MakeArrayFromSimpleList Method (PIA)

[Visual Basic .NET] Use this method to convert the specified SimpleList object into an Array.

[C#] Use this method to convert the specified SimpleList object into a System.Array.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromSimpleList(
  ByRef list As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromSimpleList(
  ref object list
);

Parameters

[Visual Basic .NET]
list
An object reference to the SimpleList object that you want to convert into a System.Array.
[C#]
list
A SimpleList object that you want to convert into a System.Array.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted System.Array.

[C#] This method returns the converted System.Array.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • A special group of methods is used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyObject is an Object
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oMyObject = oSiteConfigReadOnly.MakeArrayFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.MakeArrayFromString Method (PIA)

Use this method to convert an encoded string read from the Fields property into a System.Array. If the encoded string does not indicate System.Array properties, then the method returns the original string that was passed into it.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromString(
  strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeArrayFromString(
  object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string.
[C#]
strList
An object that contains the encoded string.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the converted System.Array or unconverted String.

[C#] This method returns an object used to return the converted System.Array or unconverted string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • A special group of methods is used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object containing an encoded string
' read from the Fields property
' oArray is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oArray = oSiteConfigReadOnly.MakeArrayFromString(oEncoded)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.MakeSimpleListFromArray Method (PIA)

Use this method to convert a System.Array into a SimpleList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeSimpleListFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeSimpleListFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the SimpleList object to convert.
[C#]
varArray
An object that contains the System.Array to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to the converted SimpleList object.

[C#] This method returns the converted SimpleList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • A special group of methods is used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyArray is an Object
' varMySimpleList is an object reference to a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
varMySimpleList = oSiteConfigReadOnly.MakeSimpleListFromArray(oMyArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.MakeStringFromArray Method (PIA)

Use this method to convert a System.Array object into an encoded string, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public object MakeStringFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array to encode.
[C#]
varArray
An object that contains the System.Array to encode.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the encoded string.

[C#] This method returns an object used to hold the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • A special group of methods is used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object
' oArray is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oEncoded = oSiteConfigReadOnly.MakeStringFromArray(oArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.MakeStringFromSimpleList Method (PIA)

Use this method to convert a SimpleList object into an encoded string that can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Function MakeStringFromSimpleList(
  ByRef slist As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public string MakeStringFromSimpleList(
  ref object slist
);

Parameters

[Visual Basic .NET]
slist
An object reference to the SimpleList object that you want to convert into an encoded string.
[C#]
slist
A SimpleList object that you want to convert into an encoded string.

Return Values

This method returns the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • A special group of methods is used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays, SimpleLists, or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' vEncoded is a string
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vEncoded = oSiteConfigReadOnly.MakeStringFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.PutSQLScript Method (PIA)

Use this method to put the specified SQL script file into the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub PutSQLScript(
  sResource As String,
  sScriptName As String,
  sScriptContents As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void PutSQLScript(
  string sResource,
  string sScriptName,
  string sScriptContents
);

Parameters

[Visual Basic .NET]
sResource
A String that contains the name of the resource associated with the SQL script file.
sScriptName
A String that contains the name of the SQL script file.
sScriptContents
A String that contains the SQL script file contents.
[C#]
sResource
A string that contains the name of the resource associated with the SQL script file.
sScriptName
A string that contains the name of the SQL script file.
sScriptContents
A string that contains the SQL script file contents.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

[Visual Basic .NET]

Example

' sMySQLFileName.sql, sMyRes and sMyContents are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.PutSQLScript(sMyRes, "sMySQLFileName.sql" ,sMyContents )

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig.SaveConfig Method (PIA)

Use this method to save any site configuration settings that have been changed or updated.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub SaveConfig()
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
public void SaveConfig();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

This method saves the entire configuration for a site. If two users are trying to update different parts of the site configuration at the same time, the last one to save will overwrite the changes made by the first user updating the site configuration.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfig Properties (PIA)

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-only.


SiteConfig.Fields Property (PIA)

The Fields property is a read-only Fields object. The Fields object contents include recordsets that hold the configuration settings of resources. A Fields object is an ADODB26Lib.Fields collection.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                              //For Fields
…
public Fields Fields {get; }

Property Value

This property returns a collection of ADO26DBLib.Field objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (in cs_mscscfg.dll)

See Also

SiteConfig Class


SiteConfigReadOnly Class (PIA)

Use this object to load site configuration information from the Administration database.

Methods

Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a System.Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns configuration settings of the site and the site resources. This property is read-only.

Remarks

The SiteConfigReadOnly object allows access to more configuration data than does the SiteConfig object. With the SiteConfigReadOnly object, group resource values are returned when you access references to resources. In contrast, with the SiteConfig object, only references to the names of the resources are returned.

Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

Configuration Objects

Integrating Custom Resources

GlobalConfig Class

SiteConfig Class


SiteConfigReadOnly Methods (PIA)

Methods

Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a System.Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into a System.Array.
MakeArrayFromString | Converts values read from the Fields property into a System.Array.
MakeSimpleListFromArray | Converts a System.Array into a SimpleList object.
MakeStringFromArray | Converts a System.Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.


SiteConfigReadOnly.GetAppsInSite Method (PIA)

Use this method to get a list of Commerce Server 2002 applications for the specified site.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetAppsInSite(
  ByRef strSiteName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object GetAppsInSite(
  ref string strSiteName
);

Parameters

[Visual Basic .NET]
strSiteName
A String that contains the name of the site for which you want the list of running Commerce Server 2002 applications.
[C#]
strSiteName
A string that contains the name of the site for which you want the list of Commerce Server 2002 applications that are currently running.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the list of Commerce Server 2002 applications.

[C#] This method returns an object containing the list of Commerce Server 2002 applications.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

[Visual Basic .NET]

Example

' sMySiteName is a String
' oObject is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oObject = oSiteConfigReadOnly.GetAppsInSite(sMySiteName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.GetIfCollection Method (PIA)

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or System.Array.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function GetIfCollection(
  ByRef strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object GetIfCollection(
  ref object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string to be converted.
[C#]
strList
An object that contains the encoded string to be converted.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted data in the appropriate data type.

[C#] This method returns an object containing the converted data in the appropriate data type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a System.Array, then a System.Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

[Visual Basic .NET]

Example

' oObject is an Object; oEncodedString is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oObject = oSiteConfigReadOnly.GetIfCollection(oEncodedString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.Initialize Method (PIA)

Use this method to load the site configuration from the Administration database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Sub Initialize(
  bstrSiteName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
void Initialize(
  string bstrSiteName
);

Parameters

[Visual Basic .NET]
bstrSiteName
A String that contains the site name.
[C#]
bstrSiteName
A string that contains the site name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before the object can be used.

[Visual Basic .NET]

Example

' sMySiteName is a string
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oSiteConfigReadOnly.Initialize(sMySiteName)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.MakeArrayFromSimpleList Method (PIA)

Use this method to convert the specified SimpleList object into a System.Array.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Function MakeArrayFromSimpleList(
  ByRef list As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object MakeArrayFromSimpleList(
  ref object list
);

Parameters

[Visual Basic .NET]
list
The object reference to the SimpleList object that you want to convert into a System.Array.
[C#]
list
A SimpleList object that you want to convert into a System.Array.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the converted System.Array.

[C#] This method returns the converted System.Array.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyObject is an Object
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oMyObject = oSiteConfigReadOnly.MakeArrayFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.MakeArrayFromString Method (PIA)

Use this method to convert an encoded string read from the Fields property into a System.Array. If the encoded string does not indicate System.Array properties, then the method returns the original string that was passed into it.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeArrayFromString(
  strList As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object MakeArrayFromString(
  object strList
);

Parameters

[Visual Basic .NET]
strList
An Object that contains the encoded string.
[C#]
strList
An object that contains the encoded string.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the converted System.Array or unconverted String.

[C#] This method returns an object used to return the converted System.Array or unconverted string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object containing an encoded string
‘ read from the Fields property
' oArray is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oArray = oSiteConfigReadOnly.MakeArrayFromString(oEncoded)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.MakeSimpleListFromArray Method (PIA)

Use this method to convert a System.Array into a SimpleList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeSimpleListFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object MakeSimpleListFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the SimpleList object to convert.
[C#]
varArray
An object that contains the System.Array to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to the converted SimpleList object.

[C#] This method returns the converted SimpleList object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray
[Visual Basic .NET]

Example

' oMyArray is an Object
' varMySimpleList is an object reference to a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
varMySimpleList = oSiteConfigReadOnly.MakeSimpleListFromArray(oMyArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.MakeStringFromArray Method (PIA)

Use this method to convert a System.Array object into an encoded string, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Public Function MakeStringFromArray(
  ByRef varArray As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
object MakeStringFromArray(
  ref object varArray
);

Parameters

[Visual Basic .NET]
varArray
An Object that contains the System.Array to encode.
[C#]
varArray
An object that contains the System.Array to encode.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the encoded string.

[C#] This method returns an object used to hold the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' oEncoded is an Object
' oArray is an Object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oEncoded = oSiteConfigReadOnly.MakeStringFromArray(oArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly.MakeStringFromSimpleList Method (PIA)

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
…
Function MakeStringFromSimpleList(
  ByRef slist As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
…
string MakeStringFromSimpleList(
  ref object slist
);

Parameters

[Visual Basic .NET]
slist
An object reference to the SimpleList object that you want to convert into an encoded string.
[C#]
slist
A SimpleList object that you want to convert into an encoded string.

Return Values

This method returns the encoded string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Important

  • There is a special group of methods used with multi-valued arrays. These methods are the only approved and recommended way of storing and retrieving multi-valued arrays in the Administration database. You must use the following methods with any property that has the structure of a multi-valued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for arrays, SimpleLists, or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.
[Visual Basic .NET]

Example

' vEncoded is a string
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vEncoded = oSiteConfigReadOnly.MakeStringFromSimpleList(varMySimpleList)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class


SiteConfigReadOnly Properties (PIA)

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Returns configuration settings of the site and the site resources. This property is read-only.


SiteConfigReadOnly.Fields Property (PIA)

The Fields property is a read-only Fields object. The Fields object contents hold the configuration settings of the site and its resources.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Configuration
Imports ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Configuration;
using ADODB26Lib;                              //For Fields
…
public Fields Fields {get; }
[C#]

Property Value

This property returns a collection of ADODB26Lib.Field objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before this method can be used.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Configuration

Platforms: Windows 2000, Windows .Net Server Family

Assembly: cs_mscscfg (cs_mscscfg)

See Also

SiteConfigReadOnly Class

SiteConfigReadOnly.Initialize


Microsoft.CommerceServer.Interop.Orders

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop namespace.

Class | Description
DBStorage | Provides methods for mapping Dictionary and SimpleList objects to and from a database, primarily for the storage of receipt and order information.
EuroDisplay | Converts and formats currency amounts for use where multiple currencies must be displayed.
GenID | Provides methods to generate globally unique identifiers (GUID), and to create and maintain multiple, global sequential counters that are persisted in a database.
OrderForm | Provides in-memory storage of user and purchase information.
OrderGroup | Store, accesses, and computes basket and order information for a site.
OrderGroupManager | Provides methods to manage OrderGroup and OrderForm objects.
ShippingMethodManager | Allows management of multiple shipping methods.
SimpleFindResultInfo | Allows the specification of search criteria when using the OrderGroup and OrderGroupManager objects.
SimpleFindSearchInfo | Allows the specification of search criteria when performing search and delete operations using the OrderGroup and OrderGroupManager objects.
Shipping | Creates shipping cost preview information.


DBStorage Class (PIA)

Use this method to map Dictionary and SimpleList objects to and from the database, primarily for the storage of receipt and order information. The DBStorage object is created as needed on each page.

Methods

Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.

Properties

Property | Type | Description
Mapping | Object | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.

Remarks

The DBStorage object serves as an interface between the site database and Dictionary and OrderForm objects. A DBStorage object contains methods for transferring data between the database and the data object.

Using New to instantiate a DBStorage object will return an uninitialized instance of the DBStorage object. Use the InitStorage method to initialize the returned object instance. Attempting to call any other DBStorage method prior to calling the InitStorage method results in an error.

When the DBStorage object retrieves data from the database, it creates the appropriate type of data object (an OrderForm or Dictionary object), stores the requested data there, and then returns the data object. When the DBStorage object is used to save data in the database, you pass it to the OrderForm or Dictionary object containing the data, and the DBStorage method copies the data from the data object into the database.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

General Purpose Objects


DBStorage Methods (PIA)

Methods

Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.


DBStorage.CommitData Method (PIA)

Use this method to update the database table based on the contents of the specified Dictionary or OrderForm object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub CommitData(
 vtReserved As Object,
 pdispData As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void  CommitData(
 object vtReserved,
 object pdispData
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. The CommitData method ignores the value of this parameter.
pdispData
An object reference to the OrderForm or Dictionary object that contains the updated data.
[C#]
vtReserved
An object reserved for future use. The CommitData method ignores the value of this parameter.
pdispData
An object interface pointer on the OrderForm or Dictionary object that contains the updated data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The CommitData method does not support database tables containing fields of type TimeStamp. Instead, use the vtChanged parameter to the DBStorage.InitStorage method, which provides the same functionality as using TimeStamp fields.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object
Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.CommitData(DBNull.Value, Order)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.InsertData


DBStorage.DeleteData Method (PIA)

Use this method to delete a row from the data source, based on the data stored in the specified Dictionary or OrderForm object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub DeleteData(
 vtReserved As Object,
 pdispData As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void DeleteData(
 object vtReserved,
 object pdispData
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. This parameter is ignored by the DeleteData method.
pdispData
An object reference to the data object to delete. This data object can be either an OrderForm or a Dictionary, but must correspond in type to the object type specified as the ProgID in the initial call to the InitStorage method.
[C#]
vtReserved
An object reserved for future use. This parameter is ignored by the DeleteData method.
pdispData
An object (an OrderForm or a Dictionary) specifying what is to be deleted, but the type of pDispData must correspond in type to the object type specified as the ProgID in the initial call to the InitStorage method.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The DeleteDataKey method differs from the DeleteData method in that the DeleteDataKey requires only the value stored in the key column of the underlying table. This is the column specified as the key to the underlying table through a previous call to the InitStorage method.

Thus, if you specify an IDENTITY field in an SQL table as the key into the data source, you can delete all the columns for a specified row by simply providing the appropriate counter value. Alternatively, you can initialize a Dictionary object to the values stored in one or more columns, and pass this initialized object to the DeleteData method.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object
Order.order_id = "Order_tmp"
OrderFormStorage.DeleteData(DBNull.Value, Order)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.DeleteDataKey

DBStorage.InsertData


DBStorage.DeleteDataKey Method (PIA)

Use this method to delete a row of data, based on the specified key value.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub DeleteDataKey(
 vtReserved As Object,
 vtKey As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void DeleteDataKey(
 object vtReserved,
 object vtKey
);

Parameters

[Visual Basic .NET]
vtReserved
This parameter is reserved for future use and is ignored by the current implementation of the DeleteDataKey method. This parameter is required for compatibility with Site Server 3.0 Commerce Edition, but is not used.
vtKey
An Object that contains the key value for the row to delete. This key corresponds to the column designated as the table key in the initial call to the InitStorage method. Thus, if the call to the InitStorage method specifies column "some_column" as the table key, then the DeleteDataKey method searches "some_column" for the value stored in the vtKey parameter, and deletes the corresponding row of data.
[C#]
vtReserved
This parameter is reserved for future use and is ignored by the current implementation of the DeleteDataKey method. This parameter is required for compatibility with Site Server 3.0 Commerce Edition, but is not used.
vtKey
An object that contains the key value for the row to delete. This key corresponds to the column designated as the table key in the initial call to the InitStorage method. Thus, if the call to the InitStorage method specifies column "some_column" as the table key, then the DeleteDataKey method searches "some_column" for the value stored in the vtKey parameter, and deletes the corresponding row of data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

DeleteDataKey method differs from the DeleteData method in that the DeleteDataKey requires only the value stored in the key column of the underlying table. This is the column specified as the key to the underlying table through a previous call to the InitStorage method.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.DeleteDataKey(DBNull.Value, _
  "1234567890WSXCDERFVBGTRESWER")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.DeleteData

DBStorage.InsertData


DBStorage.GetData Method (PIA)

Use this method to retrieve a row of data from the database, based on the specified key value. If the data is found, this method creates and returns an OrderForm or Dictionary object containing the requested data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetData(
 vtReserved As Object,
 vtKey As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object GetData(
 object vtReserved,
 object vtKey
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. The GetData method ignores any value stored in this parameter.
vtKey
An Object that contains the key value on which to base the search. The GetData method searches for this value in the table column specified as the table key in the initial call to the InitStorage method.
[C#]
vtReserved
A object reserved for future use. The GetData method ignores any value stored in this parameter.
vtKey
A object that contains the key value on which to base the search. The GetData method searches for this value in the table column specified as the table key in the initial call to the InitStorage method.

Return Values

[Visual Basic .NET] If this method completes successfully, an Object containing a Dictionary or OrderForm object that contains the retrieved row is returned.

[C#] This method returns an object containing a Dictionary or OrderForm object used to return the retrieved row.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For performance reasons, the GetData method is preferred over the LookupData method when the column being searched is the key.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object; oVar is an Object
Order.order_id = "Order_tmp"
oVar = OrderFormStorage.GetData(DBNull.Value, Order.order_id)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.LookupData


DBStorage.InitStorage Method (PIA)

Use this method to initialize the DBStorage object. You must call this method immediately after object creation and before calling any other object methods. Attempting to call any other method prior to calling the InitStorage method results in an error.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub InitStorage(
 vtDataSourceOrDSN As Object,
 Table As String,
 bstrKey As String,
 vtProgID As Object,
 vtMarshal As Object,
 vtChanged As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void InitStorage(
 object vtDataSourceOrDSN,
 string Table,
 string bstrKey,
 object vtProgID,
 object vtMarshal,
 object vtChanged
);

Parameters

[Visual Basic .NET]
vtDataSourceOrDSN
An Object that contains a valid object reference to a DataSource object, or data source name (DSN).
Table
A String that contains the name of the table within the data source in which to maintain the data.
bstrKey
A String that contains the column name that the DBStorage object uses as a key into the database table. This column should be marked to contain unique values.
vtProgID
An Object that contains the ProgID of the object in which data passed to or retrieved by DBStorage methods will be stored. This parameter can be Commerce.Dictionary for storing Dictionary objects or Commerce.OrderForm for storing OrderForm objects. Methods (such as GetData) that return data from the database create an instance of the specified class with the requested data stored within it.
vtMarshal
An Object that contains the text string that, if specified, indicates the name of a column in the database into which the CommitData or InsertData method will store all the data from the specified data object, serialized into an encoded binary format. (Objects in the stored item that have corresponding column names in the database are also stored in those columns in the database.) If this argument is specified, the database must contain a column by that name, or an error will result. If this argument is not specified, then no data from the object is serialized and saved in the database in binary format, and items in the object that do not have corresponding columns in the database are discarded. When using a Microsoft SQL Server database, the maximum size of the data in this column is the same as the maximum size for the SQL Server text/image data type (2,147,483,647 bytes).
vtChanged
An Object that contains the name of a key or attribute in the database into which to write the date when the data is changed. (If you do not specify a column name that exists in the database, the change date will be included in the marshaled data.)
[C#]
vtDataSourceOrDSN
An object which references a valid DataSource object, or which references a data source name (DSN).
Table
A string that contains the name of the table within the data source in which to maintain the data.
bstrKey
A string that contains the column name that the DBStorage object uses as a key into the database table. This column should be marked to contain unique values.
vtProgID
An object that contains the ProgID of the object in which data passed to or retrieved by DBStorage methods will be stored. This parameter can be Microsoft.CommerceServer.Interop.Dictionary for storing Dictionary objects or Microsoft.CommerceServer.Interop.Orders.OrderForm for storing OrderForm objects. Methods (such as GetData) that return data from the database create an instance of the specified class with the requested data stored within it.
vtMarshal
An object that contains the text string that, if specified, indicates the name of a column in the database into which the CommitData or InsertData method will store all the data from the specified data object, serialized into an encoded binary format. (Objects in the stored item that have corresponding column names in the database are also stored in those columns in the database.) If this argument is specified, the database must contain a column by that name, or an error will result. If this argument is not specified, then no data from the object is serialized and saved in the database in binary format, and items in the object that do not have corresponding columns in the database are discarded. When using a Microsoft SQL Server database, the maximum size of the data in this column is the same as the maximum size for the SQL Server text/image data type (2,147,483,647 bytes).
vtChanged
An object that contains the name of a key or attribute in the database into which to write the date when the data is changed. (If you do not specify a column name that exists in the database, the change date will be included in the marshaled data.)

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' strDSN is the data source connection string; OrderFormStorage
' is an uninitialized Commerce.DBStorage object; "Site_basket"
' is the name of the table in the referenced data source;
' "shopper_id" is the primary key in the "Site_basket" table;
' "marshalled_order" is the name of the column for this DBStorage
' object instance to use for marshaling data; "date_changed"
' is the name of the database column that contains the date
' of the most recent change
' This sample initializes OrderFormStorage as an OrderForm storage object:

OrderFormStorage.InitStorage(strDSN, "Site_basket", "shopper_id", _
    "Commerce.OrderForm", "marshalled_order", "date_changed")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class


DBStorage.InsertData Method (PIA)

Use this method to insert the contents of the specified Dictionary object into a database row.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub InsertData(
 vtReserved As Object,
 pdispData As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void InsertData(
 object vtReserved,
 object pdispData
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. This parameter is ignored by the InsertData method.
pdispData
An object reference to the Dictionary object or OrderForm object that contains the data to insert.
[C#]
vtReserved
An object reserved for future use. This parameter is ignored by the InsertData method.
pdispData
A Dictionary object or OrderForm object that contains the data to insert.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.InsertData(DBNull.Value, Order)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.CommitData


DBStorage.LookupData Method (PIA)

Use this method to retrieve a single row from the data source based upon column names and values that you specify. If the data is found, this method creates and returns an OrderForm or Dictionary object (depending on the vtProgID parameter passed to the InitStorage method) containing the requested data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function LookupData(
 vtReserved As Object,
 ByRef pvtKeys As Object,
 ByRef pvtValues As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object LookupData(
 object vtReserved,
 ref object pvtKeys,
 ref object pvtValues
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys
An Object that identifies the columns in which to search for the data. This Object can be either a SimpleList object or a System.Array.
pvtValues
An Object that identifies the values for which to search. This parameter can be either a SimpleList object or a System.Array.
[C#]
vtReserved
An object reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys
A reference to an object that identifies the columns in which to search for the data. This object can be either a SimpleList object or a System.Array.
pvtValues
A reference to an object that identifies the values for which to search. This parameter can be either a SimpleList object or a System.Array.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the result of the lookup; this Object references a Dictionary object that contains the row data.

[C#] This method returns the result of the lookup: a Dictionary object that contains the row data. If the method call is unsuccessful, this parameter evaluates to null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

The pvtKeys and pvtValues parameters are arrays that you pass to the LookupData method share in an index-to-index relationship. This means that they must contain an identical number of members and that the value stored in the pvtValues (N) parameter will be searched for in the column specified by the pvtKeys (N) parameter.

If the arrays contain more than one element, the LookupData method searches for a row in which all of the column/value pairs match.

Because the LookupData method returns only a single row of data, specifying column and value information that would result in the retrieval of more than one row results in an error.

[C#]

The pvtRet parameter points to valid data only if the method returns successfully.

The pvtKeys and pvtValues parameters are arrays that you pass to the LookupData method share in an index-to-index relationship. This means that they must contain an identical number of members and that the value stored in the pvtValues (N) parameter will be searched for in the column specified by the pvtKeys (N) parameter.

If the arrays contain more than one element, the LookupData method searches for a row in which all of the column/value pairs match.

Because the LookupData method returns only a single row of data, specifying column and value information that would result in the retrieval of more than one row results in an error.

[Visual Basic .NET]

Example

' OrderFormStorage is an initialized DBStorage object instance.
' In the following example, the LookupData method searches
' for a row in which both the shopper_id column contains the
' value returned by the shopper_id variable and the shopper_name
' column contains the customer name returned by the Page.Request method:

' Attempt to determine if this shopper is already registered.
shopper_id = Page.GetShopperID

Dim keys(1) As String
Dim values(1) As Object
keys(0) = "shopper_id"
keys(1) = "shopper_name"
values(0) = shopper_id
values(1) = Page.Request("shopper_name", Null, 1, 60)
exists = OrderFormStorage.LookupData(DBNull.Value, keys, values)
If IsNull(exists) Then
' This shopper id and name does not exist in the specified columns

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.GetData

DBStorage.LookupMultipleData


DBStorage.LookupMultipleData Method (PIA)

Use this method to retrieve multiple results from the database table. If the data is found, this method creates a SimpleList object that contains OrderForm or Dictionary objects, depending on the vtProgID parameter passed to the InitStorage method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function LookupMultipleData(
 vtReserved As Object,
 ByRef pvtKeys As Object,
 ByRef pvtValues As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object LookupMultipleData(
 object vtReserved,
 ref object pvtKeys,
 ref object pvtValues
);

Parameters

[Visual Basic .NET]
vtReserved
An Object reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys
An Object that identifies the columns in which to search for the data. This Object can be either a SimpleList object or a System.Array.
pvtValues
An Object that identifies the values for which to search. This parameter can be either a SimpleList object or a System.Array.
[C#]
vtReserved
An object reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys
A reference to the object that identifies the columns in which to search for the data. This object can be either a SimpleList object or a System.Array.
pvtValues
A pointer to the object that identifies the values for which to search. This parameter can be either a SimpleList object or a System.Array.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that references a SimpleList object that consists of one or more Dictionary objects, one for each row of data returned.

[C#] This method returns the result of the lookup. This object references a SimpleList object that consists of one or more Dictionary objects, one for each row of data returned. If the method fails, this parameter is set to null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.InsertData(DBNull.Value, Order)
Dim keyArray As String() = {“order_id”}
Dim valueArray As String() = {“Order_tmp”}
OrderFormStorage.LookupMultipleData(DBNull.Value, keysArray, _
  valueArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage

DBStorage.GetData

DBStorage.LookupData


DBStorage.ProcessData Method (PIA)

Use this method to unpack the data stored in the MarshalColumn database column for a given row, and returns the resulting row in a Dictionary object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function ProcessData(
 pdispData As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object ProcessData(
 object pdispData
);

Parameters

[Visual Basic .NET]
pdispData
An object reference to a Dictionary object that contains the marshaled data.
[C#]
pdispData
A Dictionary object that contains the marshaled data.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object reference to a Dictionary object that contains the unmarshaled data.

[C#] This method returns the Dictionary object used containing the unmarshaled data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' dSource is a Dictionary object; OrderFormStorage is
' an initialized Commerce.DBStorage object; dDictionary is a
' Dictionary object which will receive the unmarshaled data
Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
dDictionary = OrderFormStorage.ProcessData(dSource)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage


DBStorage Properties (PIA)

Properties

Property | Type | Description
Mapping | Object | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.


DBStorage.Mapping Property (PIA)

The Mapping property maps a database column to an entry in the OrderForm or Dictionary object that the DBStorage object uses to insert and retrieve data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property Mapping As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object Mapping {get; set; }

Property Value

A Dictionary that is set for this DBStorage object instance.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET] A mapping Dictionary object makes it possible to map the column names in a database table to one or more names that you choose, usually for display to the site user. Suppose, for example, that your database table contains a column named "shopper_name", but that you want to display the contents of this column as the more human-readable "Shopper Name". Consequently, you initialize a "shopper_name" key in a Dictionary object to "Shopper Name", and use this object to set the Mapping property. When you call a DBStorage object data retrieval method, such as GetData, to read a row of data into a Dictionary object, the Dictionary key for the "shopper_name" column reads "Shopper Name". This new mapping means that you do not have to translate the column name to a more human-readable name before displaying its values to the site user. You can simply display the keys and values as they appear in the Dictionary object returned by the GetData method.

[C#]

A mapping Dictionary object makes it possible to map the column names in a database table to one or more names that you choose, usually for display to the site user. Suppose, for example, that your database table contains a column named "shopper_name", but that you want to display the contents of this column as the more human-readable "Shopper Name". Consequently, you initialize a "shopper_name" key in a Dictionary object to "Shopper Name", and pass this Dictionary object to the put_Mapping method. When you call a DBStorage object data retrieval method, such as GetData, to read a row of data into a Dictionary object, the Dictionary key for the "shopper_name" column reads "Shopper Name". This new mapping means that you do not have to translate the column name to a more human-readable name before displaying its values to the site user. You can simply display the keys and values as they appear in the Dictionary object returned by the GetData method.

The Mapping parameter contains valid data only if the property is accessed successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: commercelib (in commercelib.dll)

See Also

DBStorage Class

DBStorage.InitStorage


EuroDisplay Class (PIA)

Use this object to convert and format currency amounts where multiple currencies must be displayed.

Methods

Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Object.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency Object.
ConvertMoney | Converts the specified currency Object (representing a monetary value in the base currency) to a currency Object representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency Object, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency Object, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)


EuroDisplay Methods (PIA)

Methods

Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Object.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency Object.
ConvertMoney | Converts the specified currency Object (representing a monetary value in the base currency) to a currency Object representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency Object, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency Object, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.


EuroDisplay.ConvertAltStringToCurr Method (PIA)

Use this method to convert a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function ConvertAltStringToCurr(
  vtMoneyString As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public objectEuroDisplay.ConvertAltStringToCurr(
  object vtMoneyString
);

Parameters

[Visual Basic .NET]
vtMoneyString
An Object that contains the currency string to convert.
[C#]
vtMoneyString
An object that contains the currency string to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a currency Object that contains the converted currency information.

[C#] This method returns an object containing the converted currency information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' oResult is an Object
oResult = oEuroDisp.ConvertAltStringToCurr("23,444.53886")
' In the preceding example, the variable oResult is
' internally rounded to 23444.5389

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class

EuroDisplay.ConvertBaseStringToCurr

EuroDisplay.FormatAltMoney


EuroDisplay.ConvertBaseStringToCurr Method (PIA)

Use this method to convert a string representation of a monetary value in the currency specified by the base locale identifier to a currency object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function ConvertBaseStringToCurr(
  vtMoneyString As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object EuroDisplay.ConvertBaseStringToCurr(
  object vtMoneyString
);

Parameters

[Visual Basic .NET]
vtMoneyString
An Object that contains the currency string to convert.
[C#]
vtMoneyString
A object that contains the currency string to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a currency Object that contains the converted currency information.

[C#] This method returns an object containing the converted currency information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' oResult is an Object
oResult = oEuroDisp.ConvertBaseStringToCurr("99,333.53886")
' In the preceding example, the variable oResult is
' internally rounded to 99333.5389

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class

EuroDisplay.ConvertAltStringToCurr

EuroDisplay.FormatBaseMoney


EuroDisplay.ConvertMoney Method (PIA)

Use this method to convert the specified currency Object (representing a monetary value in the base currency) to a currency Object representing a monetary value in the alternate currency, using the initialized conversion rate.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function ConvertMoney(
  vtCurrVal As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object EuroDisplay.ConvertMoney(
  object vtCurrVal
);

Parameters

[Visual Basic .NET]
vtCurrVal
An Object that contains the monetary value in the base currency.
[C#]
vtCurrVal
A currency object representing a monetary value in the base currency.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a currency Object representing a monetary value in the alternate currency.

[C#] This method returns an object representing a monetary value in the alternate currency.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim Result
EuroDisplay ed = New EuroDisplay()
ed.Initialize ("$$",1033,"FF",1036, 2)
Result = EuroDisplay.ConvertMoney(100)
Response.Write "Converted $100 from $ to F ($1 = 2F) : " & Result & "<P>"

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class


EuroDisplay.FormatAltMoney Method (PIA)

Use this method to create a string representation of a currency Object, based on the alternate locale identifier and the alternate currency symbol string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function FormatAltMoney(
  vtConvMoney As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string EuroDisplay.FormatAltMoney(
  object vtConvMoney
);

Parameters

[Visual Basic .NET]
vtConvMoney
A currency Object that contains the monetary value to convert.
[C#]
vtConvMoney
A currency object that contains the monetary value to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the string representation of the specified currency Object.

[C#] This method returns a string representation of the specified object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The correct display of decimal places is dependent upon registry settings. For example, to ensure that 2 decimal places are displayed as in $ 1.08, in the Registry editor, you must ensure that the HKEY_USERS\DEFAULT\Control Panel\International\iCurrDigits value is set to 2.

[Visual Basic .NET]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' oTest is a Currency Object
' oResult is a String
oTest = "$ 20.00"
oResult = oEuroDisp.FormatAltMoney (vTest)
' In the preceding example, if the Alt Currency symbol string
' is "$" and the Alt locale identifier is 1033, oResult will
' contain the string, "$ 20.00"

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class

EuroDisplay.ConvertAltStringToCurr

EuroDisplay.FormatBaseMoney


EuroDisplay.FormatBaseMoney Method (PIA)

Use this method to create a string representation of a currency object, based on the base locale identifier and the base currency symbol string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function FormatBaseMoney(
  vtConvMoney As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string EuroDisplay.FormatBaseMoney(
  object vtConvMoney
);

Parameters

[Visual Basic .NET]
vtConvMoney
A currency Object that contains the monetary value to convert.
[C#]
vtConvMoney
A currency object that contains the monetary value to convert.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the string representation of the specified currency Object.

[C#] This method returns a string representation of the specified object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The correct display of decimal places is dependent upon registry settings. For example, to ensure that 2 decimal places are displayed as in $ 1.08, in the Registry editor, you must ensure that the HKEY_USERS\DEFAULT\Control Panel\International\iCurrDigits value is set to 2.

[Visual Basic .NET]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' oTest is a Currency Object
' oResult is a String
oTest = "$ 40.08"
oResult = oEuroDisp.FormatBaseMoney (vTest)
' In the preceding example, if the Base Currency symbol string
' is "$" and the Base locale identifier is 1033, oResult will
' contain the string, "$ 40.08"

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class

EuroDisplay.ConvertBaseStringToCurr

EuroDisplay.FormatAltMoney


EuroDisplay.Initialize Method (PIA)

Use this method to initialize the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Initialize(
  szBaseCurr As String,
  lBaseLCID As Integer,
  szAltCurr As String,
  lAltLCID As Integer,
  flEuroConvRate As Double
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void EuroDisplay.Initialize(
  string szBaseCurr,
  int lBaseLCID,
  string szAltCurr,
  int lAltLCID,
  double flEuroConvRate
);

Parameters

[Visual Basic .NET]
szBaseCurr
A String that contains the base currency symbol string.
lBaseLCID
An Integer that contains the base locale identifier.
szAltCurr
A String that contains the alternate currency symbol string.
lAltLCID
An Integer that contains the alternate locale identifier.
flEuroConvRate
A Double (8-byte floating point number) that contains the rate at which to convert the base currency into the alternate currency. For example, if the base currency is Swiss Francs which are exchanged at a rate of 1 SF = 2.1 Euros, and the alternate currency is Euro, then this parameter will have a value of 2.1.
[C#]
szBaseCurr
A string that contains the base currency symbol string.
lBaseLCID
An int that contains the base locale identifier.
szAltCurr
A string that contains the alternate currency symbol string.
lAltLCID
An int that contains the alternate locale identifier.
flEuroConvRate
A double (8-byte floating point number) that contains the rate at which to convert the base currency into the alternate currency. For example, if the base currency is Swiss Francs which are exchanged at a rate of 1 SF = 0.63 Euros, and the alternate currency is Euro, then this parameter will have a value of 0.63.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' In this example, the Base Currency symbol string
' is "$" and the Base locale identifier is 1033; the Alt
' Currency symbol string is "DM"; the Base locale identifier
'  is 1037, and the conversion rate is $ 1 = 2.3 DM.

oEuroDisp.Initialize ("$", 1033, "DM", 1037, 2.3)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: eurodisplib (in eurodisplib.dll)

See Also

EuroDisplay Class


GenID Class (PIA)

Use this object to generate globally unique identifiers (GUIDs) or to create and maintain multiple, global, sequential counters that are persisted in a database. A global counter is one that can work across multiple computers.

Methods

Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)


GenID Methods (PIA)

Methods

Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.


GenID.GenBase5GUIDString Method (PIA)

Use this method to generate a base5 globally unique identifier (GUID) string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GenBase5GUIDString() As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string GenBase5GUIDString();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the base5 GUID.

[C#] This method returns a string with the base5 GUID string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A base5 GUID is used to store a slightly more compact version of the traditional GUID. The 128 binary digits are divided into groups of 5 instead of 4 with each group represented by the characters 0-9, and 22 characters of the alphabet. This results in a 26-digit representation for the GUID rather than the customary 32-digit representation.

[C#] The returned string contains valid data only if the method completes successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)

See Also

GenID Class


GenID.GenGUIDString Method (PIA)

Use this method to generate a globally unique identifier (GUID) string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GenGUIDString() As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string GenGUIDString();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the GUID.

[C#] This method returns a string containing the GUID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)

See Also

GenID Class


GenID.GetCounterValue Method (PIA)

Use this method to retrieve and increment the value stored in the specified counter.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetCounterValue(
  bstrCounterName As String,
  cDigits As Integer
) As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string GetCounterValue(
  string bstrCounterName,
  int cDigits
);

Parameters

[Visual Basic .NET]
bstrCounterName
A String that contains the counter name.
cDigits
An Integer that contains the number of digits to return.
[C#]
bstrCounterName
A string that contains the counter name.
cDigits
An int that contains the number of digits to return.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the counter value.

[C#] This method returns a string containing the counter value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

After the current value of the counter is returned, the counter is incremented by one. Use the InitializeCounter method to reset the counter.

If the value of the counter is less than the number of digits requested, the value is left padded with zeroes.

The Initialize method must be called before calling the GetCounterValue method.

[C#] The returned string contains valid data only if the method completes successfully.

[Visual Basic .NET]

Example

' sCounterValue is a String
' oGenID is a Commerce GenID object
' The value stored in the counter is 285.
sCounterValue = oGenID.GetCounterValue("OrderIDCounter", 4)

' sCounterValue = 0285
' The value now stored in the OrderIDCounter is 286.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)

See Also

GenID Class


GenID.Initialize Method (PIA)

Use this method to connect the GenID object to the database that stores the table of counters.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Initialize(
  bstrDBConnectionString As String,
  Optional cBlockSizeHint As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void Initialize(
  string bstrDBConnectionString,
  int cBlockSizeHint
);

Parameters

[Visual Basic .NET]
bstrDBConnectionString
A String that contains the connection information for the database.
cBlockSizeHint
Not implemented, leave blank.
[C#]
bstrDBConnectionString
A string that contains the connection information for the database.
cBlockSizeHint
Not implemented, set to 1.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Initialize method must be called before calling the GetCounterValue and InitializeCounter methods.

The connection string may be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the connstr_db_Transactions property under Commerce Server Manager\Commerce Sites\<site name>\Site Resources\Transactions.

[Visual Basic .NET]

Example

' oGenID is a Commerce GenID object

' Connect using an explicit connection string.

oGenID.Initialize( "Provider=SQLOLEDB;Data Source=server;" _
 & "Integrated Security='SSPI';Initial Catalog=Retail_commerce")
' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object

sConn = oSCRO.Fields("Transactions").Value.Fields("connstr_db_Transactions").Value
oGenID.Initialize( sConn )

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)

See Also

GenID Class


GenID.InitializeCounter Method (PIA)

Use this method to create or reset a global, sequential counter.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub InitializeCounter(
  bstrCounterName As String,
  dwInitialValue As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void InitializeCounter(
  string bstrCounterName,
  int dwInitialValue
);

Parameters

[Visual Basic .NET]
bstrCounterName
A String that contains the counter name.
dwInitialValue
An Integer that contains the initial value of the counter.
[C#]
bstrCounterName
A string that contains the counter name.
dwInitialValue
An int that contains the initial value of the counter.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Any number of counters may be created. If the counter already exists, its value is reset to the specified initial value.

A global counter will work across multiple computers.

The Initialize method must be called before calling the InitializeCounter method.

[Visual Basic .NET]

Example

' oGenID is a Commerce GenID object

oGenID.InitializeCounter("OrderCounter", 213)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: genidlib (in genidlib.dll)

See Also

GenID Class


OrderForm Class (PIA)

The OrderForm object provides for in-memory storage of user and purchase information. Microsoft Commerce Server 2002 sites use the OrderForm object to store the items that a user has chosen to purchase, and to store receipt information that reflects the purchase history for a given user.

Methods

Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.

Remarks

The OrderForm object is defined internally as a structured group of SimpleList and Dictionary objects, and includes the methods required to add items, clear items, and clear the entire OrderForm object itself.

The base of the OrderForm object is a Dictionary object, which contains information that describes the entire order. This includes user information, such as the shopper ID, name, and address; and also order cost information, such as purchase subtotal, tax, shipping, and total.

The OrderForm object does not directly support storage of its data on disk. The DBStorage and OrderGroupManager objects enable persistent storage of OrderForm object data.

A number of the elements in the base Dictionary object of the OrderForm object include underscore (_) characters. The appearance of an underscore character in an element name indicates that these elements are not saved to the order form storage for the site. These elements are saved instead to the receipt storage of the site when the purchase is finalized.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: MSCSCoreLib (in MSCSCoreLib.dll)

See Also

Business Process Objects

OrderGroup Class

OrderGroupManager Class

SimpleFindSearchInfo Class

SimpleFindResultInfo Class


OrderForm Methods (PIA)

Methods

Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.


OrderForm.AddItem Method (PIA)

Use this method to add the specified item to the items collection of an OrderForm object. The items collection is a SimpleList object containing Dictionary objects.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function AddItem(
  varSKU As Object,
  lCount As Integer,
  lPlacedPrice As Integer
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
object AddItem(
  object varSKU,
  int lCount,
  int lPlacedPrice
);

Parameters

[Visual Basic .NET]
varSKU
An Object that contains the SKU of the item to add.
lCount
An Integer that contains the item count.
lPlacedPrice
An Integer that is reserved for future use. This parameter must be set to 0 (zero).
[C#]
varSKU
A VARIANT that contains the stockkeeping unit (SKU) of the item to add.
lCount
An int that contains the item count.
lPlacedPrice
An int that contains the placed price of the item.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object reference that holds the Dictionary object that contains the added item.

[C#] This method returns an object indicating whether or not it completed successfully. A Dictionary object is used to return the added item; if the method does not complete successfully, the object will be null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The returned object parameter contains valid data only if the method returns successfully; otherwise, it is null.

[Visual Basic .NET]

Example

' Order is a Commerce.OrderForm object; a quantity of 5 is
' being added of the product whose SKU is SKUnumber.
Order.AddItem("SKUnumber", 5,0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: MSCSCoreLib (in MSCSCoreLib.dll)

See Also

OrderForm Class

OrderForm.ClearItems

OrderForm.ClearOrderForm


OrderForm.ClearItems Method (PIA)

Use this method to clear the items collection of the OrderForm object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub ClearItems()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void ClearItems();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

A site uses the ClearItems method to respond to a user choosing to cancel a purchase. This method affects only the information in the items collection. Other OrderForm object information, such as _oadjust_subtotal and _total_total, is modified only if you run the Order Processing Pipeline (OPP) on this OrderForm object.

To empty the entire contents of the OrderForm object, call the ClearOrderForm method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: MSCSCoreLib (in MSCSCoreLib.dll)

See Also

OrderForm Class

OrderForm.AddItem

OrderForm.ClearOrderForm


OrderForm.ClearOrderForm Method (PIA)

Use this method to clear the entire OrderForm object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub ClearOrderForm()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void ClearOrderForm();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server family

Assembly: MSCSCoreLib (in MSCSCoreLib.dll)

See Also

OrderForm Class

OrderForm.AddItem

OrderForm.ClearItems


OrderGroup Class (PIA)

The OrderGroup object is used in Commerce Server 2002 to store, access, and compute basket and order information for a site. The OrderGroupManager object works in conjunction with the OrderGroup object, providing search and other management operations for orders.

Methods

Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, and then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line-item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadBasket | Loads the basket for the current user from the database.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line-item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the Pipeline Component File on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.

Properties

Property | Type | Description
LogFile | String | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | String | Specifies a key prefix that will prevent a dictionary entry from being saved to the database. This property is read/write.
Value | Object | Returns the OrderGroup object attributes. This property is read-only.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

Business Process Objects

OrderGroupManager Class

OrderForm Class

SimpleFindSearchInfo Class

SimpleFindResultInfo Class


OrderGroup Methods (PIA)

Methods

Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, and then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line-item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadBasket | Loads the basket for the current user from the database.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line-item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the Pipeline Component File on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.


OrderGroup.AddItem Method (PIA)

Use this method to add a line item to the specified OrderForm object.

This method adds a line-item dictionary to the given OrderForm object (the strOrderFormName parameter). If the strOrderFormName is not supplied, the parameter strOrderFormName defaults to "default"; if "default" does not exist, it is created. This method also increments the aggregated quantity total at the OrderGroup object and OrderForm object levels.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function AddItem(
  dictItem As Object,
  Optional strOrderFormName As Object
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using Microsoft.CommerceServer.Interop;       //For IDictionary
…
public int AddItem(
  IDictionary dictItem,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
dictItem
A Dictionary object that contains the line-item information.
strOrderFormName
An Object that specifies the name of the OrderForm object to add the item to. Depending on how a site is structured, you may choose to specify the vendor name of the item as the strOrderFormName. (This will result in items from different vendors being added to different OrderForm objects).
[C#]
dictItem
A Microsoft.CommerceServer.Interop.IDictionary interface to a Dictionary object that contains the line-item information.
strOrderFormName
An object that specifies the name of the OrderForm object to add the item to. Depending on how a site is structured, you may choose to specify the vendor name of the item as the strOrderFormName. (This will result in items from different vendors being added to different OrderForm objects.)

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that specifies the index at which the item was added.

[C#] This method returns an int containing the index at which the item was added.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • Each line item that is added should contain a quantity.
  • If you are using the QueryCatalogInfo component in your pipeline, you will also need:
    • product_catalog
    • product_id
    • product_variant_id (if this is a product variant)
[Visual Basic .NET]

Example

' dDict is a Dictionary object
' lLineItemIndex is an Integer
' sMyOrder is a String
' oOrderGroup is a Commerce.OrderGroup Object
lLineItemIndex = oOrderGroup.AddItem(dDict, sMyOrder)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.RemoveItem


OrderGroup.AddItemsFromTemplate Method (PIA)

Use this method to add the line items associated with an on-disk order group template to the current OrderGroup object.

This method iterates across all the OrderForms in the specified template and adds them to the current OrderGroup. If the OrderForms being added already exist, the line items on the template OrderGroup are simply added. When a non-existing OrderForm is encountered, the method will add the OrderForm in its entirety to the OrderGroup, including OrderForm-level dictionary values.

The OrderGroup object keeps a counter of total line items at the OrderForm and OrderGroup levels. For the OrderGroup level, it keeps track of the number of line items in all the OrderForms. This value is held under the key "total_lineitems".

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub AddItemsFromTemplate(
  OrderGroupID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void AddItemsFromTemplate(
  string OrderGroupID
);

Parameters

[Visual Basic .NET]
OrderGroupID
A String that specifies the OrderGroup object ID for the template.
[C#]
OrderGroupID
A string that specifies the OrderGroup object ID for the template.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • It is the responsibility of the application to implement security. This method does not check whether the user ID of the template is the same as the user ID specified in the initialization call.

This method also works on previously submitted orders and baskets, as well as OrderGroup objects with Template (Saved Order) status.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' myOGID is a GUID String
myOGID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oOrderGroup.AddItemsFromTemplate(myOGID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.AddOrderform Method (PIA)

Use this method to add an OrderForm object with all of its contents to the OrderGroup object.

If the strOrderFormName is not supplied, it defaults to "default".

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub AddOrderform(
  orderform As Object,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using Microsoft.CommerceServer.Interop;       //For IDictionary
…
public void AddOrderform(
  IDictionary orderform,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
orderform
A Dictionary object that contains the OrderForm object that will be added.
strOrderFormName
An Object that specifies the OrderForm object name.
[C#]
orderform
A Microsoft.CommerceServer.Interop.IDictionary object that will be added.
strOrderFormName
An object that contains the OrderForm object name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' dOrderForm is a Dictionary Object
' sMyOrderName is a string
' oOrderGroup is a Commerce.OrderGroup Object
oOrderGroup.AddOrderform(dOrderForm,sMyOrderName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.AddXMLAsOrderForm Method (PIA)

Use this method to add items previously saved as XML (by using the GetOrderformAsXML method) back into an OrderGroup object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub AddXMLAsOrderForm(
  strXML As String,
  nXMLLocale As Integer,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void AddXMLAsOrderForm(
  string strXML,
  int nXMLLocale,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
strXML
A String that specifies the XML string containing the line items to add.
nXMLLocale
An Integer that specifies the locale to use in the XML string conversion.
strOrderFormName
An Object that specifies the OrderForm object name to add.
[C#]
strXML
A string that specifies the XML string containing the line items to add.
nXMLLocale
An int that specifies the locale to use in the XML string conversion.
strOrderFormName
An object that specifies the OrderForm object name to add.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • Use of the DictionaryXMLTransforms object is recommended when exchanging XML through BizTalk Server. The DictionaryXMLTransforms object allows you to write out XML to a well-defined schema.
[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
' sXMLString is an string containing order-form data
' lLocale is a long specifying the locale to use in conversion
oOrderGroup.AddXMLAsOrderForm(sXMLString, lLocale)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.GetOrderFormAsXML


OrderGroup.AggregateOrderFormValues Method (PIA)

Use this method to iterate across all OrderForm objects, compute a total of the specified key, and store the total at the OrderGroup object level.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub AggregateOrderFormValues(
  strOrderFormKey As String,
  strOrderGroupKey As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void AggregateOrderFormValues(
  string strOrderFormKey,
  string strOrderGroupKey
);

Parameters

[Visual Basic .NET]
strOrderFormKey
A String that specifies the OrderForm key of the value to be aggregated.
strOrderGroupKey
A String that specifies the OrderGroup key of the value to which the aggregated total will be written.
[C#]
strOrderFormKey
A string that specifies the OrderForm key of the value to be aggregated.
strOrderGroupKey
A string that specifies the OrderGroup key of the value to which the aggregated total will be written.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.AggregateOrderFormValues("saved_cy_handling_total", _
"_cy_handling_total")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.Clear Method (PIA)

Use this method to clear the OrderGroup object of all OrderForm objects and address dictionaries.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Clear()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void Clear();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.GetAddress Method (PIA)

Use this method to get the specified address Dictionary object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetAddress(
  strAddressId As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using Microsoft.CommerceServer.Interop;       //For IDictionary

�

public IDictionary GetAddress(
  string strAddressId
);

Parameters

[Visual Basic .NET]
strAddressId
A String that specifies the address ID.
[C#]
strAddressId
A string that specifies the address ID.

Return Values

[Visual Basic .NET] If the specified address is found, this method returns a reference to that Dictionary object, otherwise it returns a Null object.

[C#]

This method returns the Microsoft.CommerceServer.Interop.IDictionary interface to a Dictionary object.

If the specified address is not found, the IDictionary interface is to a null object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary object

dDict = oOrderGroup.GetAddress("{C4F9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.GetItemInfo Method (PIA)

Use this method to get a reference to the line-item dictionary from the specified OrderForm object at the specified index. If the strOrderFormName parameter is not supplied, it defaults to "default".

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetItemInfo(
  nItemIndex As Integer,
  Optional strOrderFormName As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using Microsoft.CommerceServer.Interop;       //For IDictionary
…
public IDictionary GetItemInfo(
  intnItemIndex,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
nItemIndex
An Integer that specifies the line-item index.
strOrderFormName
An Object that specifies the OrderForm object name.
[C#]
nItemIndex
An int that specifies the line-item index.
strOrderFormName
An object that specifies the OrderForm object name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Dictionary object that contains the line-item information.

[C#] This method returns an IDictionary interface to the Dictionary object containing the line-item information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary Object
dDict = oOrderGroup.GetItemInfo(3, "testOrderFormName")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.GetOrderFormAsXML Method (PIA)

Use this method to convert an OrderForm object into an XML string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetOrderFormAsXML(
  nXMLLocale As String,
  Optional strOrderFormName As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string GetOrderFormAsXML(
  string nXMLLocale,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
nXMLLocale
A String that specifies the locale used in the XML string conversion.
strOrderFormName
An Object that specifies the OrderForm object.
[C#]
nXMLLocale
A string that specifies the locale used in the XML string conversion.
strOrderFormName
An object that specifies the OrderForm object.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the XML string.

[C#] This method returns a string indicating whether or not it completed successfully.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Note

  • Use of the DictionaryXMLTransforms object is recommended when exchanging XML through BizTalk Server. The DictionaryXMLTransforms object allows you to write out XML to a well-defined schema.
[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' lLocale is a valid Locale identifier
sXMLResultString is a String
sXMLResultString = oOrderGroup.GetOrderFormAsXML(lLocale, myOrderFormName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.AddXMLAsOrderForm


OrderGroup.GetOrderFormValue Method (PIA)

Use this method to get an attribute from an OrderForm object, based on a specified key.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetOrderFormValue(
  strKey As String,
  Optional strOrderFormName As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object GetOrderFormValue(
  string strKey,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
strKey
A String that contains the key that specifies the attribute to get.
strOrderFormName
An Object that specifies the OrderForm object name.
[C#]
strKey
A string that contains the key that specifies the attribute to get.
strOrderFormName
An object that specifies the OrderForm object name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the attribute.

[C#] This method returns an object containing the requested attribute.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default".

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
vResult is an Object

vResult = oOrderGroup.GetOrderFormValue(handling_total, _
"testOrderFormName")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.Initialize Method (PIA)

Use this method to initialize the OrderGroup object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Initialize(
  strConnectionString As String,
  strUserID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void Initialize(
  string strConnectionString,
  string strUserID,
  object lrucache
);

Parameters

[Visual Basic .NET]
strConnectionString
A String that contains the database connection string.
strUserID
A String that specifies the user ID. All Commerce Server 2002 user ID values are GUIDs.
[C#]
strConnectionString
A string that contains the database connection string.
strUserID
A string that specifies the user ID. All Commerce Server 2002 user ID values are GUIDs.
lrucache
An object specifying a Microsoft.CommerceServer.Interop.Caching.LRUCache object to use.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Use this method to specify the connection string that the OrderGroup object uses for its database operations. You also specify a user_id that the object will use as an OrderGroup_id when performing basket operations. This same user_id value will be stored in the g_UserIDChangedBy field.

Note

  • If you are loading an OrderGroup object on behalf of another user (for example as an administrator), you should specify the administrator user ID (or a placeholder user ID GUID that signifies administrative authority) so that g_UserIDChangedBy is updated with the appropriate value when the OrderGroup object is saved back to the database. If you wish to load an OrderGroup object with a Basket status in the role of an administrator, you must specify strUserID as the user ID of the user whose basket you wish to load. In this case g_UserIDChangedBy will not be updated with an administrator user ID.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic .NET]

Example

' oOrderGrp is a Commerce.OrderGroup Object
' sConnString is a valid connection string to the Commerce database
oOrderGrp.Initialize(sConnString, _
    "{D4F9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.LoadBasket Method (PIA)

Use this method to load the basket for the current user from the database. If the basket for the user ID specified in the Initialize method cannot be found, this method initializes an empty in-memory basket.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub LoadBasket()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void LoadBasket();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.LoadOrder

OrderGroup.LoadTemplate

OrderGroup.SaveAsBasket


OrderGroup.LoadOrder Method (PIA)

Use this method to load an OrderGroup object from disk. This method returns an error if the OrderGroup object cannot be found.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub LoadOrder(
  strOrderGroupID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void LoadOrder(
  string strOrderGroupID
);

Parameters

[Visual Basic .NET]
strOrderGroupID
A String that specifies the OrderGroupID of the OrderGroup object to be loaded.
[C#]
strOrderGroupID
A string that specifies the OrderGroupID of the OrderGroup object to be loaded.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The LoadOrder method can be used to load any OrderGroup object whose status does not equal basket or template.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.LoadOrder("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.LoadBasket

OrderGroup.LoadTemplate

OrderGroup.Initialize

OrderGroup.SaveAsOrder


OrderGroup.LoadTemplate Method (PIA)

Use this method to load the specified template from the database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub LoadTemplate(
  strOrderGroupID As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void LoadTemplate(
  string strOrderGroupID
);

Parameters

[Visual Basic .NET]
strOrderGroupID
A String that specifies the OrderGroupID of the template to be loaded.
[C#]
strOrderGroupID
A string that specifies the OrderGroupID of the template to be loaded.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
oOrderGroup.LoadTemplate("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.LoadOrder

OrderGroup.LoadBasket

OrderGroup.SaveAsTemplate


OrderGroup.PurgeUnreferencedAddresses Method (PIA)

Use this method to remove all addresses in the OrderGroup object that are not being referenced by any line-item shipping_address_id or OrderForm object billing_address_id.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub PurgeUnreferencedAddresses()
[C#]

using Microsoft.CommerceServer.Interop.Orders;

�

public void PurgeUnreferencedAddresses();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.PutItemValue Method (PIA)

Use this method to put the specified values into the specified keys of the line item.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub PutItemValue(
  strKey As String,
  vtValue As Object,
  Optional bOverWrite As Boolean,
  Optional nItemIndex As Object,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void PutItemValue(
  string strKey,
  object vtValue,
  bool bOverWrite,
  object nItemIndex,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
strKey
A String that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue
An Object that specifies the value to store in the attribute of the key specified by the strKey parameter.
bOverWrite
A Boolean that indicates whether to overwrite the existing attribute of the key specified by the strKey parameter. A value of True indicates that the attribute will be overwritten. A value of False indicates that the attribute will not be overwritten.
nItemIndex
An Object that specifies the line-item index.
strOrderFormName
An Object that specifies the OrderForm object name.
[C#]
strKey
A string that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue
An object that specifies the value to store in the attribute of the key specified by the strKey parameter.
bOverWrite
A bool that indicates whether to overwrite the existing attribute of the key specified by the strKey parameter. A value of true indicates that the attribute will be overwritten. A value of false indicates that the attribute will not be overwritten if one already exists.
nItemIndex
An object that specifies the line-item index.
strOrderFormName
An object that specifies the OrderForm object name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the line-item index is specified, this method sets the name/value pair for the specified line item on the OrderForm object specified in the strOrderFormName parameter. (The strOrderFormName parameter defaults to "default" if unspecified.)

If the line-item index is not specified, this method sets the name/value pair for all line items for the specified OrderForm object. If no OrderForm object name is specified, this method sets the name/value pair for all line items in the OrderGroup object.

If there is no OrderForm object for the strOrderFormName specified in the strOrderFormName parameter, one is created.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
oOrderGroup.PutItemValue(payment_method, credit_card, False)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.PutOrderFormValue Method (PIA)

Use this method to set an attribute on an OrderForm object. If the strOrderFormName parameter is supplied, and the OrderForm object does not exist in the OrderGroup object, then a new OrderForm object with the supplied name is created.

If strOrderFormName is not supplied, the parameter defaults to "default".

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub PutOrderFormValue(
  strKey As String,
  vtValue As Object,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void PutOrderFormValue(
  string strKey,
  object vtValue,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
strKey
A String that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue
An Object that specifies the value to store in the attribute of the key specified by the strKey parameter.
strOrderFormName
An Object that specifies the OrderForm object name.
[C#]
strKey
A string that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue
An object that specifies the value to store in the attribute of the key specified by the strKey parameter.
strOrderFormName
An object that specifies the OrderForm object name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
oOrderGroup.PutOrderFormValue(handling_total, "$ 421.23")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.RemoveItem Method (PIA)

Use this method to remove a line item from the specified OrderForm object. The item index specified indicates which line item to remove.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub RemoveItem(
  Optional nItemIndex As Object,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void RemoveItem(
  object nItemIndex,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
nItemIndex
An Object that specifies the line-item index. If this value is null, all items in the OrderForm object are removed.
strOrderFormName
An Object that specifies the OrderForm object name. If the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default". If both the nItemIndex and the strOrderFormName parameters are not supplied, then all items in all OrderForm objects are removed.
[C#]
nItemIndex
An object that specifies the line-item index. If this value is null, all items in the OrderForm object are removed.
strOrderFormName
An object that specifies the OrderForm object name. If the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default". If both the nItemIndex and the strOrderFormName parameters are not supplied, then all items in all OrderForm objects are removed

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.AddItem


OrderGroup.RemoveOrderForm Method (PIA)

Use this method to remove the specified OrderForm object from the OrderGroup object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub RemoveOrderForm(
  strOrderFormName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void RemoveOrderForm(
  string strOrderFormName
);

Parameters

[Visual Basic .NET]
strOrderFormName
A String that specifies the OrderForm object to remove.
[C#]
strOrderFormName
A string that specifies the OrderForm object to remove.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.RemoveOrderForm("myOrderFormName")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.AddOrderform


OrderGroup.RunPipe Method (PIA)

Use this method to run the Pipeline Component File on each OrderForm object in the OrderGroup object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function RunPipe(
  strPCF As String,
  strPipelineProgID As String,
  oContext As Object
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public int RunPipe(
  string strPCF,
  string strPipelineProgID,
  object oContext
);

Parameters

[Visual Basic .NET]
strPCF
A String that specifies the Pipeline Component File file path (for example, c:\SampleDir\SampleFile.pcf).
strPipelineProgID
A String that specifies the pipeline ProgID.
oContext
An Object reference that specifies the pipeline context.
[C#]
strPCF
A string that specifies the Pipeline Component File file path (for example, c:\SampleDir\SampleFile.pcf).
strPipelineProgID
A string that specifies the pipeline ProgID.
oContext
An object that contains the pipeline context.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that specifies the maximum error level encountered by the pipeline runs.

[C#] This method returns an int indicating the maximum error level encountered by the pipeline runs.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

When OrderGroup.RunPipe is called, the OrderGroup object instantiates and runs the pipeline for each of its contained OrderForm objects. The pipeline objects themselves continue to be passed a regular OrderForm, as if they were run in a stand-alone pipeline. In fact, a pipeline component has no way of knowing whether it is running on an OrderForm within an OrderGroup, or on a stand-alone OrderForm.

There are cases where you want the pipeline component to know about all items in the OrderGroup object, regardless of whether those items are from differing vendors (for example, a discount component). If this is the case, you should not use the multiple-OrderForm feature of the OrderGroup object (adding all items to the same OrderForm). In these cases, you can use the Splitter pipeline component to produce views of items from different vendors on your OrderForm object.

When calling OrderGroup.RunPipe, you can rely on the aggregation features of the OrderGroup object to produce grand totals across all OrderForms. OrderGroup.RunPipe automatically aggregates many common fields. If you wish to aggregate additional fields, use OrderGroup.AggregateOrderformValues.

Additionally, this method computes grand totals across each OrderForm object for each of the following properties:

OrderForm Value | Grand Total on the OrderGroup
_cy_oadjust_subtotal | saved_cy_oadjust_subtotal
_cy_total_total | saved_cy_total_total
_cy_shipping_total | saved_cy_shipping_total
_cy_handling_total | saved_cy_handling_total
_cy_tax_total | saved_cy_tax_total
_cy_tax_included | saved_cy_tax_included

Many pipeline keys are prefixed by "_", which by default means they will not be persisted to the database. Occasionally, you might want to take snapshots of these keys, and by convention, the prefix "saved_" is used in this situation. Using the "saved_" prefix allows you to refer to these keys later and to search them by using SQL statements or the OrderGroupManager object. Copied keys should not be trusted as being up-to-date. Also, they should not be used by pipeline components directly.

The OrderGroup object has a LogFile property that can be used to set the log file for the RunPipe method.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' lResult is a long
' oContext specifies the pipeline context
lResult = oOrderGroup.RunPipe("c:\myPCFFile.pcf", _
    "Commerce.PooledPipeline, oContext)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

Pipeline Basics

OrderGroup Class

OrderGroup.LogFile


OrderGroup.SaveAsBasket Method (PIA)

Use this method to save the OrderGroup object to the database with a basket status.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function SaveAsBasket() As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SaveAsBasket();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that specifies the OrderGroupID.

[C#] This method returns an object containing the OrderGroupID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method sets the OrderGroup object status to "basket", and sets the OrderGroupID equal to the user ID.

If the OrderGroup object was not loaded from a basket, this method deletes any existing on-disk basket before inserting the order group into the data storage.

If the OrderGroup object was loaded from a basket, this method performs an update or insert depending on whether the OrderGroup was found on disk on the load call. If you load a template or order and call the SaveAsBasket method, the template or order that was originally loaded remains unchanged on disk.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' oResult is an Object
oResult = oOrderGroup.SaveAsBasket()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.LoadBasket

OrderGroup.SaveAsOrder

OrderGroup.SaveAsTemplate


OrderGroup.SaveAsOrder Method (PIA)

Use this method to save the OrderGroup object to the database with an order status.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function SaveAsOrder(
  Optional vtOutTrackingNumber As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
object SaveAsOrder(
  out object vtOutTrackingNumber
);

Parameters

[Visual Basic .NET]
vtOutTrackingNumber
An Object that specifies the tracking number. If specified, this Object must be a non-literal value; when the method returns, it will contain the tracking number.
[C#]
vtOutTrackingNumber
On input, an object used to specify the tracking number.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that specifies the OrderGroupID.

[C#] This method returns an object indicating the OrderGroupID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method sets the OrderGroup object status to "order" if the current status is template, basket, or undefined. (All other states are left alone; this allows orders to be in many states, such as pending approval, rejected, and so on.) You can set the state to any value except basket or template before calling the SaveAsOrder method; this method will not overwrite the state.

If this is the first time the order is saved, a special field will be written that records the order creation date. If an OrderTrackingNumber already exists on the OrderForm object (under the key order_number) before the save, a new one will not be generated. This feature allows for ERP-based tracking numbers.

If the OrderGroup object was loaded from a template or from a basket, this method will generate a new OrderGroupID and tracking number, and perform a database insert. If the OrderGroup does not yet exist on disk, this method will generate an OrderGroupID and tracking number and perform a database insert. If the OrderGroup was loaded from any other state, this method will perform a database update.

If you load a basket or template and call the SaveAsOrder method, the basket or template remains unchanged on disk. For this reason, a call to the SaveAsOrder method is typically followed by a call to OrderGroupManager.DeleteOrderGroupFromDisk.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup Object
' vResult is an Object
' vTrackingNumber is an Object
vResult = oOrderGroup.SaveAsOrder(vTrackingNumber)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.SaveAsBasket

OrderGroup.SaveAsTemplate


OrderGroup.SaveAsTemplate Method (PIA)

Use this method to save the OrderGroup object to the database with a template status.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function SaveAsTemplate(
  Optional strTemplateName As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
object SaveAsTemplate(
  object strTemplateName
);

Parameters

[Visual Basic .NET]
strTemplateName
An Object that specifies the template name.
[C#]
strTemplateName
An object that specifies the template name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that specifies the OrderGroupID of the template.

[C#] This method returns an object containing the OrderGroupID of the template.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method updates the OrderGroup object template name field if the strTemplateName parameter is supplied.

If you originally loaded the OrderGroup object from another state (for example, a basket) and call the SaveAsTemplate method, the original OrderGroup remains on disk unchanged.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is an Object
vResult = oOrderGroup.SaveAsTemplate()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.SaveAsBasket

OrderGroup.SaveAsOrder


OrderGroup.SetAddress Method (PIA)

Use this method to add a specified address dictionary to the addresses collection of the OrderGroup object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SetAddress(
  strAddressId As String,
  oAddressDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using Microsoft.CommerceServer.Interop;       //For IDictionary
…
public void SetAddress(
  string strAddressId,
  IDictionary oAddressDict
);

Parameters

[Visual Basic .NET]
strAddressId
A String that specifies the address ID of the address to be added.
oAddressDict
A Dictionary object that contains the address information to be added.
[C#]
strAddressId
A string that specifies the address ID of the address to be added.
oAddressDict
A Microsoft.CommerceServer.Interop.IDictionary interface to the Dictionary object that contains the address.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroup is a Commerce.OrderGroup object
' oAddDict is an address Dictionary object
oOrderGroup.SetAddress("{AABBC9CC-C33E-11D0-B8A0-00C04FB616C7}", oAddDict)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.SetAddressFromFields


OrderGroup.SetAddressFromFields Method (PIA)

Use this method to set the OrderGroup object address dictionary values as specified by the supplied Fields object. The column names in the field object will be mapped to dictionary key names in the resultant address dictionary.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SetAddressFromFields(
  strAddressId As String,
  flds As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using ADODB26Lib;                              //For Fields
…
public void SetAddressFromFields(
  string strAddressId,
  Fields flds
);

Parameters

[Visual Basic .NET]
strAddressId
A String that specifies the address ID of the address dictionary to be added.
flds
A Fields object that contains the address information to be added.
[C#]
strAddressId
A string that specifies the address ID of the address dictionary to be added.
flds
An ADODB26Lib.Fields object that contains the address information to be added.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOG is a Commerce.OrderGroup object
' oFlds is a Fields object
oOG.SetAddressFromFields("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    oFlds)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class

OrderGroup.SetAddress


OrderGroup.SetShippingAddress Method (PIA)

Use this method to set the shipping address ID for the specified line items.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SetShippingAddress(
  address_id As String,
  Optional bOverWrite As Boolean,
  Optional nItemIndex As Object,
  Optional strOrderFormName As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void SetShippingAddress(
  string address_id,
  bool bOverWrite,
  object nItemIndex,
  object strOrderFormName
);

Parameters

[Visual Basic .NET]
address_id
A String that specifies the address ID to designate as the shipping address.
bOverWrite
A Boolean that indicates whether to overwrite the shipping_address_id, if it already exists. A value of True indicates that an overwrite should occur. A value of False indicates that an overwrite should not occur.
nItemIndex
An Object that specifies the line-item index where the shipping_address_id will be set. If not specified, all line items will be set.
strOrderFormName
An Object that specifies the OrderForm object to perform the operation. If not specified, all OrderForms will be used if nItemIndex is unspecified; otherwise, the "default" OrderForm will be used.
[C#]
address_id
A string that specifies the address ID to designate as the shipping address.
bOverWrite
A bool that indicates whether to overwrite the shipping_address_id, if it already exists. A value of true indicates that an overwrite should occur. A value of false indicates that an overwrite should not occur.
nItemIndex
An object that specifies the line-item index where the shipping_address_id will be set. If not specified, all line items will be set.
strOrderFormName
An object that specifies the OrderForm object on which to perform the operation. If not specified, all OrderForms will be used if nItemIndex is unspecified; otherwise, the "default" OrderForm will be used.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The bOverWrite, nItemIndex, and strOrderFormName parameters work in a way similar to the same parameters in the PutItemValue method. Before performing the set operations, this method first ensures that the address ID exists.

[Visual Basic .NET]

Example

' oOrdGrp is a Commerce.OrderGroup object
oOrdGrp.SetShippingAddress(("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    True, 4, "testOrderFormName")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup Properties (PIA)

Properties

Property | Type | Description
LogFile | String | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | String | Specifies a key prefix that will prevent a dictionary entry from being saved to the database.
Value | Object | Returns the OrderGroup object attributes. This property is read-only.


OrderGroup.LogFile Property (PIA)

The LogFile property is a read/write String that specifies the file name used for pipeline logging during the execution of the RunPipe method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property LogFile As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string LogFile{ get; set; }

Property Value

A string containing the file name.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.SavePrefix Property (PIA)

The SavePrefix property is a read/write String that specifies a key prefix that will prevent a dictionary entry from being saved to the database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property SavePrefix As String
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public string SavePrefix{ get; set; }

Property Value

A string containing the prefix.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

No dictionary entry that has a key name that begins with the value of the SavePrefix property will be saved to the database. Assuming that the SavePrefix property is set to the underscore character ("_"), if the value of _adjusted_price is $ 200 and the value of total_price is $ 400, then $ 200 will not be persisted, but $ 400 will be persisted.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroup.Value Property (PIA)

The Value property is a read-only object that contains the OrderGroup-level attributes as a dictionary.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public ReadOnly Property Value As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object get_Value{ get; }

Property Value

A Dictionary object containing the value.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in requisition.dll)

See Also

OrderGroup Class


OrderGroupManager Class (PIA)

Use this object to manage OrderGroup objects and their contents. This object allows you to search for orders or baskets without having to use SQL queries. It also allows for OrderGroup object deletions.

Methods

Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the database.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Find | Performs an SQL search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADODB26Lib.Recordset of OrderGroup templates for the specified user. Returns an ADODB26Lib.Recordset of the search results.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADODB26Lib.Recordset of OrderGroup items based on the specified SimpleFindSearchInfo and SimpleFindResultInfo objects. These object values contain the search criteria.

Properties

Property | Type | Description
DebugReturnSQL | Bool | Determines if methods of this object will run an SQL query and return the resulting recordset, or if it will construct the SQL query and return the query string. This property is read/write.
OrderFormHeaderColumns | Object | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | Object | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | Object | Returns a string of comma-separated OrderGroup table column names. This property is read-only.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

Business Process Objects

OrderGroup Class

OrderForm Class

SimpleFindSearchInfo Class

SimpleFindResultInfo Class


OrderGroupManager Methods (PIA)

Methods

Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the database.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Find | Performs an SQL search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADODB26Lib.Recordset of OrderGroup templates for the specified user. Returns an ADODB26Lib.Recordset of the search results.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADODB26Lib.Recordset of OrderGroup items based on the specified SimpleFindSearchInfo and SimpleFindResultInfo objects. These object values contain the search criteria.


OrderGroupManager.DeleteOrderGroupFromDisk Method (PIA)

Use this method to check whether a connection to the database has been established for the specified OrderGroup object, and then delete the OrderGroup object and all objects contained within it from the database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub DeleteOrderGroupFromDisk(
  OrderGroupID As String
)
[C#]

using Microsoft.CommerceServer.Interop.Orders;

�

public void DeleteOrderGroupFromDisk(
  string OrderGroupID
);

Parameters

[Visual Basic .NET]
OrderGroupID
A String that contains the OrderGroup ID.
[C#]
OrderGroupID
A string that contains the OrderGroup ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' sOrderGroupID is a string containing a valid OrderGroupID
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.DeleteOrderGroupFromDisk(sOrderGroupID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.DeleteReceiptGroupFromDisk Method (PIA)

Use this method to check whether a connection to the site database has been established for the specified OrderGroup object, and then delete the OrderGroup object and all objects contained within it from the database. Use this method when the state of the OrderGroup object is set to basket or template.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub DeleteReceiptGroupFromDisk(
  OrderGroupId As String)
[C#]
Imports Microsoft.CommerceServer.Interop.Orders;
…
Public void DeleteReceiptGroupFromDisk(
  String OrderGroupId
);

Parameters

[Visual Basic .NET]
OrderGroupId
A String that contains the OrderGroup ID.
[C#]
OrderGroupId
A string that contains the OrderGroup ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.GetOrderSummary Method (PIA)

Use this method to return a recordset containing the summary information for the order.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function DeleteReceiptFromGroup(
  oid As Object
) As Object
[C#]
Imports Microsoft.CommerceServer.Interop.Orders
…
public object DeleteReceiptFromGroup(
  object oid
);

Parameters

[Visual Basic .NET]
oid
An Object that contains the OrderGroup object ID.
[C#]
oid
An object that contains the OrderGroup object ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method returns the keys saved_cy_adjust_subtotal and total_line_items for the given order_group_id.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.Find Method (PIA)

Use this method to perform an SQL search based on the specified SQL clause fragments.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function Find(
  OrderGroupCriteriaArray As Object,
  OrderFormCriteriaArray As Object,
  LineItemCriteriaArray As Object,
  Optional SearchDateTimeColumn As Object,
  Optional SearchDateTimeStart As Object,
  Optional SearchDateTimeEnd As Object,
  Optional StatusFilter As Integer,
  Optional JoinOrderFormInfo As Boolean,
  Optional JoinLineItemInfo As Boolean,
  Optional Columns As Object,
  Optional OrderGroupSortColumn As Object,
  Optional SortDirection As Object,
  Optional PageSize As Integer,
  Optional PageNumber As Integer,
  Optional ByRef outTotalRecordsFound As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using ADODB26Lib;                              //For Recordset
…
public object Find(
  object OrderGroupCriteriaArray,
  object OrderFormCriteriaArray,
  object LineItemCriteriaArray,
  object SearchDateTimeColumn,
  object SearchDateTimeStart,
  object SearchDateTimeEnd,
  int StatusFilter,
  boolbool JoinOrderFormInfo,
  boolbool JoinLineItemInfo,
  object Columns,
  object OrderGroupSortColumn,
  object SortDirection,
  int PageSize,
  int PageNumber,
  ref object outTotalRecordsFound
);

Parameters

[Visual Basic .NET]
OrderGroupCriteriaArray
An Object that contains the SQL clause used to search for a specific set of OrderGroup objects.
OrderFormCriteriaArray
An Object that contains the SQL clause used to search for a specific set of OrderForm objects.
LineItemCriteriaArray
An Object that contains the SQL clause used to search for a specific set of line items.
SearchDateTimeColumn
An Object that specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This parameter is optional.
SearchDateTimeStart
An Object that specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This parameter is optional.
SearchDateTimeEnd
An Object that specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This parameter is optional.
StatusFilter
An Integer that stores the OrderGroup object status. This parameter is optional.
JoinOrderFormInfo
A Boolean indicating whether to include the OrderFormHeader table in the results. This parameter is optional.
JoinLineItemInfo
A Boolean indicating whether to include the OrderFormLineItems table in the results. This parameter is optional.
Columns
An Object that contains the names of the columns to return in addition to the default columns. This parameter is optional.
OrderGroupSortColumn
An Object that contains the OrderGroup column name to sort on. This parameter is optional.
SortDirection
An Object that contains the sort direction. This parameter is optional; possible values for this parameter are the SQL strings "ASC" or "DESC".
PageSize
With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) The PageSize parameter is an Integer that contains the number of line items per page. This parameter setting must be coordinated with the PageNumber parameter. This parameter is optional and has a default value of 20.
PageNumber
With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) The PageNumber parameter is an Integer that contains the page number to jump to. This parameter setting must be coordinated with the PageSize parameter. This parameter is optional.
outTotalRecordsFound
An Object that specifies the total number of records found.
[C#]
OrderGroupCriteriaArray
An object that contains the SQL clause used to search for a specific set of OrderGroup objects.
OrderFormCriteriaArray
An object that contains the SQL clause used to search for a specific set of OrderForm objects.
LineItemCriteriaArray
An object that contains the SQL clause used to search for a specific set of line items.
SearchDateTimeColumn
An object that specifies the DateTime column name to search for; if set to Type.Missing, the DateTime column name does not become part of the search criteria.
SearchDateTimeStart
An object that specifies the DateTime start value to search for; if set to Type.Missing, the DateTime start value does not become part of the search criteria.
SearchDateTimeEnd
An object that specifies the DateTime end value to search for; if set to Type.Missing, the DateTime end value does not become part of the search criteria.
StatusFilter
An int that stores the OrderGroup status. Set to 0 for default.
JoinOrderFormInfo
A bool indicating whether to include the OrderFormHeader table in the results.
JoinLineItemInfo
A bool indicating whether to include the OrderFormLineItems table in the results.
Columns
An object that contains the names of the columns to return in addition to the default columns. Set to Type.Missing to return no additional columns.
OrderGroupSortColumn
An object that contains the OrderGroup column name to sort on. Set to Type.Missing in order to not specify a sort column.
SortDirection
An object that contains the sort direction. This parameter is optional; possible values for this parameter are the SQL strings "ASC" or "DESC". Set to Type.Missing in order to not specify a sort direction.
PageSize
With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) The PageSize parameter is an int that contains the number of line items per page. This parameter setting must be coordinated with the PageNumber parameter. Set to Type.Missing to use the default value of 20.
PageNumber
With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) The PageNumber parameter is an int that contains the page number to jump to. This parameter setting must be coordinated with the PageSize parameter. Set to Type.Missing to use the default value of 1.
outTotalRecordsFound
A reference to an object that specifies the total number of records found. Set the object to Type.Missing if the returned value is not needed.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the Recordset containing the result set that meets the search criteria.

[C#] This method returns an ADODB26Lib.Recordset containing the result set that meets the search criteria.

Exceptions

[Visual Basic .NET] This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oRecordset is an Object
' oOrderGroupCriteriaArray is an Object
' oOrderFormCriteriaArray is an Object
' oLineItemCriteriaArray is an Object
' oOrderGroupManager is a Commerce OrderGroupManager object
oRecordset = oOrderGroupManager.Find(oOrderGroupCriteriaArray, _
    oOrderFormCriteriaArray, oLineItemCriteriaArray)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

OrderGroupManager Class

OrderGroupManager.SimpleFind


OrderGroupManager.FindTemplatesForUser Method (PIA)

Use this method to build and return a Recordset of OrderGroup templates for the specified user.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function FindTemplatesForUser(
  Optional UserId As String,
  Optional SearchDateTimeColumn As Object,
  Optional SearchDateTimeStart As Object,
  Optional SearchDateTimeEnd As Object,
  Optional JoinOrderFormInfo As Object,
  Optional JoinLineItemInfo As Object,
  Optional Columns As Object,
  Optional OrderGroupSortColumn As Object,
  Optional SortDirection As Object,
  Optional PageSize As Integer,
  Optional PageNumber As Integer,
  Optional outTotalRecordsFound As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using ADODB26Lib;                              //For Recordset
…
public object FindTemplatesForUser(
  string UserId,
  objectSearchDateTimeColumn,
  objectSearchDateTimeStart,
  objectSearchDateTimeEnd,
  bool JoinOrderFormInfo,
  bool JoinLineItemInfo,
  objectColumns,
  objectOrderGroupSortColumn,
  objectSortDirection,
  int PageSize,
  int PageNumber,
  ref object outTotalRecordsFound
);

Parameters

[Visual Basic .NET]
UserId
A String that contains the User ID GUID.
SearchDateTimeColumn
An Object that contains the DateTime column name to use in the search.
SearchDateTimeStart
An Object that contains the search DateTime start value.
SearchDateTimeEnd
An Object that contains the search DateTime end value.
JoinOrderFormInfo
A Boolean that indicates whether the OrderFormHeader table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included.
JoinLineItemInfo
A Boolean that indicates whether the OrderFormLineItem table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included.
Columns
An Object that contains the names of columns that you want returned in addition to the default columns.
OrderGroupSortColumn
An Object that contains the OrderGroup sort column.
SortDirection
An Object that contains the sort direction.
PageSize
An Integer that contains the page size.
PageNumber
An Integer that contains the page number.
outTotalRecordsFound
An Object that contains the total number of records found. This parameter is optional.
[C#]
UserId
A string that contains the User ID GUID.
SearchDateTimeColumn
An object that contains the DateTime column name to use in the search. Set to Type.Missing to not use a DateColumn search column.
SearchDateTimeStart
An object that contains the search DateTime start value. Set to Type.Missing to not search using a start value.
SearchDateTimeEnd
An object that contains the search DateTime end value. Set to Type.Missing to not search using an end value.
JoinOrderFormInfo
A bool that indicates whether the OrderFormHeader table is included in the search. A value of true indicates that the table is included. A value of false indicates that the table is not included.
JoinLineItemInfo
A bool that indicates whether the OrderFormLineItem table is included in the search. A value of true indicates that the table is included. A value of false indicates that the table is not included.
Columns
An object that contains the names of columns that you want returned in addition to the default columns. Set to Type.Missing to include no additional columns.
OrderGroupSortColumn
An object that contains the OrderGroup sort column. Set to Type.Missing to not specify an OrderGroup sort column.
SortDirection
An object that contains the sort direction. Set to Type.Missing to not specify a sort direction.
PageSize
An int that contains the page size. Set to Type.Missing to use the default value of 20.
PageNumber
An int that contains the page number.
outTotalRecordsFound
A reference to the object that contains the total number of records found. Set an object to Type.Missing if the returned value is not needed.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains a Recordset of the search results.

[C#] This method returns an ADO Recordset of the search results.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.FindTemplatesForUser("{11223344-1122-1122-1122- _
    AABBCCDDEEFF}")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class

Business Process Classs


OrderGroupManager.Initialize Method (PIA)

Use this method to create a connection to the specified database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Initialize(
  ConnectionString As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void Initialize(
  ref object ConnectionString
);

Parameters

[Visual Basic .NET]
ConnectionString
An Object that contains the database connection string.
[C#]
ConnectionString
A reference to an object that contains the database connection string.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oConnectionString is an Object containing a database connection string
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.Initialize(oConnectionString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.SimpleDelete Method (PIA)

Use this method to delete all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SimpleDelete(
  sfSearchInfo As ISimpleFindSearchInfo,
  sfResultInfo As ISimpleFindResultInfo
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SimpleDelete(
  ISimpleFindSearchInfo sfSearchInfo,
  ISimpleFindResultInfo sfResultInfo,
);

Parameters

[Visual Basic .NET]
sfSearchInfo
An object that implements the ISimpleFindSearchInfo interface containing the search criteria.
sfResultInfo
An object that implements the ISimpleFindResultInfo interface containing the search results.
[C#]
sfSearchInfo
The ISimpleFindSearchInfo interface of a SimpleFindSearchInfo object that contains the search criteria.
sfResultInfo
The ISimpleFindResultInfo interface of a SimpleFindResultInfo object that contains the search results.

Return Values

An object containing the number of entries deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oSimpleFindSearchInfo is a Commerce SimpleFindSearchInfo object
' oSimpleFindResultInfo is a Commerce SimpleFindResultInfo object
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.SimpleDelete(oSimpleFindSearchInfo, _
    oSimpleFindResultInfo)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.SimpleFind Method (PIA)

Use this method to retrieve an ADO Recordset of OrderGroup items based on the specified SimpleFindSearchInfo and SimpleFindResultInfo object values. These object values contain the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function SimpleFind(
  sfSearchInfo As ISimpleFindSearchInfo,
  sfResultInfo As ISimpleFindResultInfo,
  Optional ByRef outTotalRecordsFound As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
using ADODB26Lib;                              //For Recordset
…
public object SimpleFind(
  ISimpleFindSearchInfo sfSearchInfo,
  ISimpleFindResultInfo sfResultInfo,
  ref object outTotalRecordsFound
);

Parameters

[Visual Basic .NET]
sfSearchInfo
An object that implements the ISimpleFindSearchInfo interface containing the search criteria.
sfResultInfo
An object that implements the ISimpleFindResultInfo interface containing the search results.
outTotalRecordsFound
An Object that contains the total number of records found.
[C#]
sfSearchInfo
The ISimpleFindSearchInfo interface of a SimpleFindSearchInfo object that contains the search criteria.

sfResultInfo

The ISimpleFindResultInfo interface of a SimpleFindResultInfo object that contains the search criteria.

outTotalRecordsFound
A reference to an object that contains the total number of records found.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset that contains the search result OrderGroup items.

[C#] This method returns a Recordset of the OrderGroup items.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

Dim oSFSearch, sReqID, oOGMgr
' oOGMgr is a Commerce.OrderGroupManager object
oSFSearch = New SimpleFindSearchInfo()
' Search for this OrderGroup ID
sReqID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oSFSearch.ordergroup_id = sReqID

Dim oSFResult
osfResult = New SimpleFindResultInfo()
oSFResult.JoinLineItemInfo = True
oSFResult.JoinOrderFormInfo = True

Dim oRSResults
oRSResults = New Recordset()

oRSResults = oOGMgr.SimpleFind(oSFSearch, oSFResult)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

Business Process Classs

OrderGroupManager Class


OrderGroupManager Properties (PIA)

Properties

Property | Type | Description
DebugReturnSQL | Bool | Determines if methods of this object will run an SQL query and return the resulting recordset, or if it will construct the SQL query and return the query string. This property is read/write.
OrderFormHeaderColumns | Object | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | Object | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | Object | Returns a string of comma-separated OrderGroup table column names. This property is read-only.


OrderGroupManager.DebugReturnSQL Property (PIA)

The DebugReturnSQL property is a read/write Boolean that determines if the methods of the OrderGroupManager object will run an SQL query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is intended for internal use only and should not be called externally.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public property DeleteReturnSQL As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public bool DeleteReturnSQL( get; set);

Parameters

[C#] [in] When putting a value, a Bool used to determine if methods of this object will run a SQL Server query, or if they will debug the SQL Server connection string.
[out, retval] When getting a value, a Bool used to determine if methods of this object will run a SQL Server query, or if they will debug the SQL Server connection string.

Remarks

If the DebugReturnSQL property is set to False, then the methods such as OrderGroupManager.Find and OrderGroupManager.SimpleFind construct the appropriate SQL Server query, run the query, and return the resulting recordset.

If the DebugReturnSQL property is set to True, then the methods such as OrderGroupManager.Find and OrderGroupManager.SimpleFind construct the appropriate SQL Server query and return the query string.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager


OrderGroupManager.OrderFormHeaderColumns Property (PIA)

The OrderFormHeaderColumns property is a read-only object that contains a collection of OrderFormHeader table column names.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public ReadOnly Property OrderFormHeaderColumns As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object OrderFormHeaderColumns {get; };

Property Value

An object containing a collection of OrderForm header table column names.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.OrderFormLineItemsColumns Property (PIA)

The OrderFormLineItemsColumns property is a read-only object that contains a collection of OrderFormLineItems table column names.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public ReadOnly Property OrderFormLineItemsColumns As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object OrderFormLineItemsColumns {get; }

Property Value

An object containing a collection of LineItem table column names.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


OrderGroupManager.OrderGroupColumns Property (PIA)

The OrderGroupColumns property is a read-only Object that contains a collection of OrderGroup table column names.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public ReadOnly Property OrderGroupColumns As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object OrderGroupColumns {get; }

Property Value

An object containing the collection of OrderGroup table column names.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_req (in cs_req.dll)

See Also

OrderGroupManager Class


ShippingMethodManager Class (PIA)

Use this object to manage shipping methods that will be available on the site. The ShippingMethodManager object lets you add and remove methods, and set their description, availability, and configuration.

Methods

Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a Recordset containing the current shipping methods.
GetMethodInfo | Returns a Recordset containing information about the loaded shipping method.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets pairs of names and values for the current method.

Remarks

The shipping architecture in Microsoft Commerce Server 2002 is designed so that shipping methods can be changed through the Shipping Methods module in Commerce Server Business Desk without programming or editing pipelines. To do this, Commerce Server maintains a database table, ShippingConfig, of shipping methods and the information required to configure shipping components to implement those methods.

The ShippingMethodManager object is used by Business Desk to manage the ShippingConfig database table.

For more information about shipping objects, see Overview of the Multiple-shipment Shipping Architecture.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)


ShippingMethodManager Methods (PIA)

Methods

Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a Recordset containing the current shipping methods.
GetMethodInfo | Returns a Recordset containing information about the loaded shipping method.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets pairs of names and values for the current method.


ShippingMethodManager.CreateMethodInstance Method (PIA)

Use this method to create a new shipping method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function CreateMethodInstance(
  ByRef bOnDisk As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object CreateMethodInstance(
  ref object bOnDisk
);

Parameters

[Visual Basic .NET]
bOnDisk
An Object containing a Boolean indicating whether or not to create the shipping method on disk. This parameter is usually set to True.
[C#]
bOnDisk
An object containing a bool value indicating whether or not to create the shipping method on disk. This parameter is usually set to True.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing a string that is the method ID of the new shipping method. The method returns an empty string when the bOnDisk parameter is False.

[C#] This method returns an object containing a string that is the method ID of the new method. It is set to an empty string value if the bOnDisk parameter is False.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

If the shipping method is created to be saved on disk (the bOnSaved parameter is True), the function adds a new record to the current recordset with the enabled column value set to zero (0) and the shipping_method_id column set to the new shipping method ID.

[Visual Basic .NET]

Example

' Initialize the ShippingMethodManager object
' oSMM is a Commerce.ShippingMethodManager object
' MSCSTransactionConfigConnStr is sConnectionString, a string containing
' the connection string

oSMM.Initialize(MSCSTransactionConfigConnStr)

' Create a new shipping method
' bOnDisk is set to True
' sShippingMethodID is sMethodID
sShippingMethodID = oSMM.CreateMethodInstance(True)

' Set the configuration data for the pipeline component
' sProgID, sAction, and sActionFrientlyName are strings
' dConfigDict is a Commerce.Dictionary object

oSMM.SetCachableComponentConfig(sProgID, dConfigDict, _
                 sAction, sActionFriendlyName)

' Set properties for the shipping method
Dim aParamsAndValues as System.Array
aParamsAndValues(0) = "shipping_method_name"
aParamsAndValues(1) = "My Shipping Method"
aParamsAndValues(2) = "description"
aParamsAndValues(3) = "Cheapest but slowest shipping method"
aParamsAndValues(4) = "enabled"
aParamsAndValues(5) = 1

oSMM.SetMethodConfig(aParamsAndValues)

' Save the configured shipping method
oSMM.SaveMethodConfig()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.DeleteMethodInstance Method (PIA)

Use this method to delete the current shipping method instance.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub DeleteMethodInstance()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object DeleteMethodInstance();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

[Visual Basic .NET]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object
' sMethodId is set to sShippingMethodId,
' the method ID of the new method

oSMM.LoadMethodInstance(sShippingMethodId)
oSMM.DeleteMethodInstance()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetComponentConfig Method (PIA)

Use this method to retrieve the Configuration dictionary for the shipping component to implement the current shipping method. The shipping method must be loaded using LoadMethodInstance before calling GetComponentConfig.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetComponentConfig() As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object GetComponentConfig();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the Configuration dictionary for the current shipping method.

[C#] An object containing the Configuration dictionary.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

[Visual Basic .NET]

Example

' oSMM is an initialized, loaded Commerce.ShippingMethodManager object

dConfig = oSMM.GetComponentConfig()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetInstalledMethodList Method (PIA)

Use this method to get a list of the current shipping methods. The GetInstalledMethodList method allows you to filter the list, select the columns to return, and sort the list into a particular order.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetInstalledMethodList(
  ByRef Filter As Object,
  ByRef OrderBy As Object,
  ByRef columns As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object GetInstalledMethodList(
  ref object Filter,
  ref object OrderBy,
  ref object columns
);

Parameters

[Visual Basic .NET]
Filter
A String that becomes the WHERE clause of the query. Pass null if no filtering is wanted. An example filter is "enabled = 1", which will cause the GetInstalledMethodList method to return only enabled shipping methods.
OrderBy
A String that becomes the ORDER BY clause of the query. Pass a null if no ordering is wanted. An example OrderBy argument is "shipping_method_name", which will cause the results to be sorted by shipping method name.
columns
A System.Array of column names of the values to retrieve. If an empty array is passed, all columns from the ShippingConfig table are returned.
[C#]
Filter
A reference to an object that contains a string that becomes the WHERE clause of the query. Pass a null value (DBNull.Value) if no filtering is wanted. An example filter is "enabled = 1", which will cause the GetInstalledMethodList method to return only enabled shipping methods.
OrderBy
A reference to an object that contains a string that becomes the ORDER BY clause of the query. Pass a null value (DBNull.Value) if no ordering is wanted. An example OrderBy argument is "shipping_method_name", which will cause the results to be sorted by shipping_method_name.
columns
A reference to an object that contains a System.Array of column names of the values to retrieve. If an empty array is passed, all columns from the ShippingConfig table are returned.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the results of the query.

[C#] An object containing an ADO Recordset object with the wanted values.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The GetInstalledMethodList method constructs a SQL query from its three parameters, runs it against the current ShippingConfig table, and returns the result in an ADO Recordset object.

[Visual Basic .NET]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object
' sFilter is set to filter
' sOrderBy is set to null, so there will be no ordering
' AColumns is an array of column names of the values to retrieve
' rsMethodList is a recordset
Dim aColumnNames() As Object
aColumnNames(0) = "shipping_method_name"
rsMethodList = oSMM.GetInstalledMethodList( "enabled = 1", _
                                            System.DBNull.Value, _
                                            aColumnNames)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.GetMethodInfo Method (PIA)

Use this method to retrieve information about the database attributes of one or more columns in the ShippingConfig table.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function GetMethodInfo(
  ByRef columns As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object GetMethodInfo(
  ref object columns,
);

Parameters

[Visual Basic .NET]
columns
A System.Array of strings containing names of the columns. Specify an empty array to return all columns.
[C#]
columns
An object containing a System.Array of strings containing names of the columns. Specify an empty array to return all columns.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the information about the wanted columns.

[C#] An object containing an ADO Recordset object that contains the information about the requested database columns.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

This method returns an ADO Recordset object containing the data type, defined size, and attributes of the requested columns in the ShippingConfig table.

[Visual Basic .NET]

Example

' oSMM is an initialized, loaded Commerce.ShippingMethodManager object
' rsResult is a recordset
Dim aColumnNames as System.Array
aColumnNames(0) = "shipping_method_name"
aColumnNames(1) = "description"
aColumnNames(2) = "enabled"
rsResult = oSMM.GetMethodInfo(aColumnNames)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.Initialize Method (PIA)

Use this method to initialize a ShippingMethodManager object and connect it to a database.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub Initialize(
  ByRef connection_string As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void Initialize(
  ref object connection_string
);

Parameters

[Visual Basic .NET]
connection_string
A String containing the connection string.
[C#]
connection_string
A reference to an object containing a string with the connection string value.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

Example

' oSMM is a Commerce.ShippingMethodManager object
' sConnectionString is a string containing the connection
' string

oSMM.Initialize(sConnectionString)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.LoadMethodInstance Method (PIA)

Use this method to load an instance of a given shipping method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub LoadMethodInstance(
  ByRef methodid As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void LoadMethodInstance(
  ref object method_id
);

Parameters

[Visual Basic .NET]
methodid
A String containing the method ID of the shipping method.
[C#]
method_id
A reference to an object containing a string that is the method ID of the shipping method.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Return Values

[C#] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Remarks

This method loads an instance of the requested shipping method as a single record in the current recordset.

[Visual Basic .NET]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object
' sMethodId is a string containing the method id

oSMM.LoadMethodInstance(sMethodId)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SaveMethodConfig Method (PIA)

Use this method to save the current shipping method information set using the SetMethodConfig method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SaveMethodConfig()
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void SaveMethodConfig();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The SaveMethodConfig method saves the current shipping method configuration data.

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

[Visual Basic .NET]

Example

' oSMM is a Commerce.ShippingMethodManager object

oSMM.SaveMethodConfig()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SetCachableComponentConfig Method (PIA)

Use this method to set the configuration data for the pipeline component, and other component information.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SetCachableComponentConfig(
  ByRef progid As Object,
  ByRef configdict As Object,
  ByRef action As Object,
  ByRef actionfriendlyname As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void SetCachableComponentConfig(
  ref object progid,
  ref object configdict,
  ref object action,
  ref object actionfriendlyname
);

Parameters

[Visual Basic .NET]
progid
A String containing the ProgID of the pipeline component.
configdict
A Dictionary object holding the configuration information for the component.
action
A String containing the name of the ASP edit page for the shipping component.
actionfriendlyname
A String containing a friendly name for the ASP edit page for the shipping component.
[C#]
progid
A reference to an object containing a string that is the ProgID of the pipeline component.
configdict
A reference to an object containing a Dictionary object holding the configuration information for the component.
action
A reference to an object containing a string with the name of the ASP edit page for the shipping component.
actionfriendlyname
A reference to an object containing a string with a friendly name for the ASP edit page for the shipping component.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

This method takes the Configuration dictionary for the component and prepares it to be saved along with the current configuration. In addition, the method stores the ProgID, the edit page, and the page friendly names. The settings are not saved until the SaveMethodConfig method is called.

The configdict parameter is typically obtained using IPipelineComponentAdmin::GetConfigDictionary.

This method utilizes the IPipelineComponentAdmin interface; therefore all shipping components configurable by the ShippingMethodManager object must support the IPipelineComponentAdmin interface.

[Visual Basic .NET]

Example

' oSMM is a Commerce.ShippingMethodManager object
' sProgID, sAction, and sActionFrientlyName are strings
' dConfigDict is a Commerce.Dictionary object

Call oSMM.SetCachableComponentConfig(sProgID, dConfigDict, _
                 sAction, sActionFriendlyName)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager.SetMethodConfig Method (PIA)

Use this method to set properties, such as name or description, on the current shipping method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Sub SetMethodConfig(
  ByRef ParametersAndValues As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public void SetMethodConfig(
  ref object ParametersAndValues
);

Parameters

[Visual Basic .NET]
ParametersAndValues
A System.Array containing name and value pairs in successive elements.
[C#]
ParametersAndValues
A reference to an object containing a System.Array that contains name and value pairs in successive elements.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

This method acts on the loaded shipping method. You must call LoadMethodInstance or CreateMethodInstance to load a shipping method into the ShippingMethodManager object before calling this method.

The array parameter contains names and values in alternating elements. Odd subscripts contain the names of items, even subscripts contain the values.

Use the SaveMethodConfig method to save the configuration information entered with this method.

[Visual Basic .NET]

Example

' oSMM is a Commerce.ShippingMethodManager object
Dim aParamsAndValues() As Object
aParamsAndValues(0) = "shipping_method_name"
aParamsAndValues(1) = "My Shipping Method"
aParamsAndValues(2) = "description"
aParamsAndValues(3) = "Cheapest but slowest shipping method"
aParamsAndValues(4) = "enabled"
aParamsAndValues(5) = 1
oSMM.SetMethodConfig(aParamsAndValues)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .NET Server Family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Splitter

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


SimpleFindResultInfo Class (PIA)

Use this object to specify search criteria when using the SimpleFind and SimpleDelete methods of the OrderGroupManager object.

Properties

Property | Type | Description
Columns | Object | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | Boolean | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | Boolean | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | Object | Specifies the column name to sort on.
PageNumber | Integer | Specifies the page number of the resultset to show whether the resultset exceeds the page size.
PageSize | Integer | Specifies the page size.
SortDirection | Object | Specifies the sort direction.

Remarks

The following table shows the data returned by the OrderGroupManager SimpleFind method when it has been passed to the SimpleFindResultInfo object with the JoinOrderFormInfo and JoinLineItemInfo properties set to the indicated values.

JoinOrderFormInfo | JoinLineItemInfo | SimpleFind Method Data Returned
False | False | One record for each OrderGroup that meets the search criteria. Returns OrderGroup data only. The default setting is False.
True | False | One record for each OrderForm that meets the search criteria. Returns OrderGroup and OrderForm data.
True | True | One record for each line item that meets the search criteria. Returns OrderGroup, OrderForm, and line item data.
False | True | One record for each line item that meets the search criteria. Returns OrderGroup, OrderForm, and line item data.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

Business Process Objects

SimpleFindSearchInfo Class

OrderGroupManager Class

OrderGroup Class

OrderForm Class


SimpleFindResultInfo Properties (PIA)

Properties

Property | Type | Description
Columns | Object | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | Boolean | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | Boolean | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | Object | Specifies the column name to sort on.
PageNumber | Integer | Specifies the page number of the resultset to show whether the resultset exceeds the page size.
PageSize | Integer | Specifies the page size.
SortDirection | Object | Specifies the sort direction.


SimpleFindResultInfo.Columns Property (PIA)

The Columns property is a read/write Object that specifies a custom set of columns to be returned by the SimpleFind method. The columns property, if specified, should be a string of comma-separated column names. If the property is left null, SimpleFind will return a standard set of columns.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property Columns As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object Columns {get; set;}
[C#]

Property Value

An object containing a string with the names of the columns in addition to the default columns.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Requirements for using this property are listed in SimpleFindResultInfo Object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.JoinLineItemInfo Property (PIA)

The JoinLineItemInfo property is a read/write Boolean that indicates whether to join the OrderFormLineItems table with the results.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property JoinLineItemInfo As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public bool JoinLineItemInfo {get; set;}

Property Value

A value of True indicates that the OrderFormLineItems table will be joined. A value of False indicates that it will not be joined.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.JoinOrderFormInfo Property (PIA)

The JoinOrderFormInfo property is a read/write Boolean value that indicates whether the OrderFormHeader table is joined in the results.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property JoinOrderFormInfo As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public bool JoinOrderFormInfo {get; set;}

Property Value

A value of True specifies that the OrderFormHeader table will be joined. A value of False specifies that it will not be joined.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.OrderGroupSortColumn Property (PIA)

The OrderGroupSortColumn property is a read/write Object that contains the column name on which to sort.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property OrderGroupSortColumn As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object OrderGroupSortColumn {get; set;}

Property Value

An object that contains the name of the column on which to sort.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.PageNumber Property (PIA)

The PageNumber property is a read/write Integer that contains the page number to jump to. This property setting must be coordinated with the PageSize property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property PageNumber As Integer
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public int PageNumber {get; set;}

Property Value

An Integer that contains the page number.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Use this property to implement a paging mechanism that allows you to page through your orders. (These orders could be viewed in a List Sheet, for example.)

This property is initialized to 1.

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.PageSize Property (PIA)

The PageSize property is a read/write Integer that contains the page size. This property setting must be coordinated with the PageNumber property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property PageSize As Integer
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public int PageSize {get; set;}

Property Value

An Integer that contains the page size.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Use this property to implement a paging mechanism that allows you to page through your orders. (These orders could be viewed in a List Sheet, for example.)

This property defaults to 20.

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


SimpleFindResultInfo.SortDirection Property (PIA)

The SortDirection property is a read/write Object that contains the sort direction.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property SortDirection As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SortDirection {get; set;}

Property Value

An Object that contains the sort direction. The value of this field can be asc for ascending or desc for descending.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

Requirements for using this property are listed in SimpleFindResultInfo Class.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindResultInfo Class


# K SimpleFindSearchInfo Class (PIA)

このページに対するフィードバックを送信する Commerce Server 2002 SDK

SimpleFindSearchInfo Class (PIA)

Use this object to specify search criteria when conducting searching and deleting operations using the SimpleFind and SimpleDelete methods of the OrderGroupManager object.

Properties

Property | Type | Description
description | Object | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | Object | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | Object | Specifies the order group ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | Object | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | Object | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | Object | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | Object | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | Object | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | Integer | Specifies the OrderGroup status. This property allows the user to filter the status (that is basket, template, or new order). This property is read/write.
user_firstname | Object | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | Object | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | Object | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | Object | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | Object | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

Business Process Objects

SimpleFindResultInfo Class

OrderGroupManager Class

OrderGroup Class

OrderForm Class


SimpleFindSearchInfo Properties (PIA)

Properties

Property | Type | Description
description | Object | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | Object | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | Object | Specifies the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | Object | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | Object | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | Object | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | Object | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | Object | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | Integer | Specifies the OrderGroup status. This property allows the user to filter the status (that is basket, template, or new order). This property is read/write.
user_firstname | Object | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | Object | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | Object | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | Object | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | Object | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.


SimpleFindSearchInfo.description Property (PIA)

The description property is a read/write Object that specifies the product description to search for; if left null, the product description does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property description As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object description {get; set;}

Property Value

An object containing the item description to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.order_number Property (PIA)

The order_number property is a read/write Object that specifies the order number to search for; if left null, the order number does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property order_number As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object order_number {get; set;}

Property Value

An object containing the order number to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.ordergroup_id Property (PIA)

The ordergroup_id property is a read/write Object that contains the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property ordergroup_id As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object ordergroup_id {get; set;}

Property Value

An object containing the OrderGroup ID to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.po_number Property (PIA)

The po_number property is a read/write Object that contains the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property po_number As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object po_number {get; set;}

Property Value

An object containing the OrderForm ID to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.product_id Property (PIA)

The product_id property is a read/write Object that contains the product ID to search for; if left null, the product ID does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property product_id As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object product_id {get; set;}

Property Value

An object containing the product ID to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeColumn Property (PIA)

The SearchDateTimeColumn property is a read/write Object that contains the name of the DateTime column to use in the search. If left null, the DateTime column name does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property SearchDateTimeColumn As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SearchDateTimeColumn {get; set;}

Property Value

An object containing the name of the DateTime column to use in the search.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeEnd Property (PIA)

The SearchDateTimeEnd property is a read/write Object that contains the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. Use this property in conjunction with the SearchDateTimeColumn property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property SearchDateTimeEnd As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SearchDateTimeEnd {get; set;}

Property Value

An object containing the DateTime end value to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.SearchDateTimeStart Property (PIA)

The SearchDateTimeStart property is a read/write Object that contains the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. Use this property in conjunction with the SearchDateTimeColumn property.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property SearchDateTimeStart As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object SearchDateTimeStart {get; set;}

Property Value

An object containing the DateTime start value to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.StatusFilter Property (PIA)

The StatusFilter property is a read/write Integer that contains the OrderGroup status.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property StatusFilter As Integer
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public int StatusFilter {get; set;}

Property Value

An Integer containing the OrderGroup status.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The value of the StatusFilter parameter determines whether a search is being made for a basket, an order, a template, or a combination of these. A bit field is used to determine this. The following table shows the meaning of the individual bits.

Status Type | Value
Basket | 1
Template | 2
New Order | 4
Custom | 8
Custom | 16

Note

  • Because the contents of baskets and templates are held in one table, and the contents of OrderGroups with all other status codes (codes 4 and greater) are held elsewhere, only certain values are permissible for searches.

    The following values are permissible:

    • 1 (basket search)
    • 2 (template search)
    • 3 (basket or template)
    • 4 (new order)
    • 12 ( 4 & 8)
    • 24 (8 & 16)

    The following values are not permissible:

    • 5 (basket or new order)
    • 6 (template or new order)
    • 9 (1 & 8)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_firstname Property (PIA)

The user_firstname property is a read/write Object that contains the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property user_firstname As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object user_firstname {get; set;}

Property Value

An object containing the first name of the user to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_id Property (PIA)

The user_id property is a read/write Object that contains the user ID to search for; if left null, the user ID does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property user_id As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object user_id {get; set;}

Property Value

An object containing the user ID to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_lastname Property (PIA)

The user_lastname property is a read/write Object that contains the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property user_lastname As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object user_lastname {get; set;}

Property Value

An Object containing the last name of the user to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_org_id Property (PIA)

The user_org_id property is a read/write Object that contains the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property user_org_id As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object user_org_id {get; set;}

Property Value

An object containing the user organization ID to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


SimpleFindSearchInfo.user_org_name Property (PIA)

The user_org_name property is a read/write Object that contains the user organization name to search for; if left null, the user organization name does not become part of the search criteria.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Property user_org_name As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object user_org_name {get; set;}

Property Value

An object containing the user organization name to search for.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_req (in cs_req.dll)

See Also

SimpleFindSearchInfo Class

OrderGroupManager.SimpleDelete

OrderGroupManager.SimpleFind


Shipping Class (PIA)

Use this object to create shipping cost preview information.

Methods

Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_shipmgr (in cs_shipmgr.dll)


Shipping Methods (PIA)

Methods

Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.


Shipping.PreviewShipments Method (PIA)

Use this method to divide an order into shipments and produce shipping cost previews for each shipment.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Orders
…
Public Function PreviewShipments(
  ByRef orig_orderform As Object,
  ByRef context As Object,
  ByRef ShipmentDistinguishers As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Orders;
…
public object PreviewShipments(
  ref object orig_orderform,
  ref object context,
  ref object ShipmentDistinguishers,
);

Parameters

[Visual Basic .NET]
orig_orderform
The OrderForm object for which to calculate shipping cost previews.
context
The Context dictionary to use to run the shipping components.
ShipmentDistinguishers
An array of strings containing the line-item attributes (keys) to use to split the order into shipments.
[C#]
orig_orderform
A reference to an object containing the OrderForm dictionary for which to calculate shipping cost previews.
context
A reference to an object containing the Context dictionary to use to run the shipping components.
ShipmentDistinguishers
A reference to an object containing a System.Array of strings containing the line-item attributes (keys) to use to split the order into shipments.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a list of SimpleList dictionaries, one dictionary for each shipment. Each shipment dictionary in turn contains a list of SimpleList dictionaries containing the shipping cost previews, one dictionary for each shipping method.

[C#] An object containing a list of SimpleList dictionaries, one dictionary for each shipment. Each shipment dictionary in turn contains a list of SimpleList dictionaries containing the shipping cost previews, one dictionary for each shipping method.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The PreviewShipments method creates the shipping cost previews by splitting the order into individual shipments. The mechanism used is the same as for the Splitter pipeline component. For more information about how shipment distinguishers are used to split shipments, see Splitter.

The PreviewShipments method returns a list of SimpleList of dictionaries, one dictionary for each shipment. Each shipment dictionary in turn contains a list of SimpleList dictionaries, each of which contains the shipping cost for using a particular shipping method.

For example code showing how to loop through the preview shipments, see Previewing Shipping Costs.

[Visual Basic .NET]

Example

' oShip is a Commerce.Shipping object
' dOrder and dContext are Commerce.Dictionary objects
' ADistinguishers is an Array of strings naming line items
' slShipments is a SimpleList of dictionary or orderform objects

slShipments = oShip.PreviewShipments(dOrder, dContext, _
  ADistinguishers)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Orders

Platforms: Windows 2000, Windows .Net Server family

Assembly: cs_shipmgr (in cs_shipmgr.dll)

See Also

Previewing Shipping Costs

Shipping Class

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Class

ShippingMethodRouter

StepwiseShipping


Microsoft.CommerceServer.Interop.Profiles

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop.Profiles namespace.

Class | Description
Profile | Provides run-time read/write access to profile property data and read-only access to property attributes.
ProfileService | Allows creation, deletion, and retrieval of instances of profile schemas.


Profile Class (PIA)

Use this object to retrieve the data in a specific Profile object instance and modify the property values for that Profile object. In addition, use the Profile object to examine and navigate the property attributes of a profile object.

Methods

Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the Profile object.
Update | Saves the profile data to the underlying data store.

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Stores the profile property collection. This property is read-only.

Remarks

The Profile object maintains backward compatibility with the AUO 1.0 object (released in Microsoft Site Server 3.0 Commerce Edition) by inheriting from the IADs interface. Refer to the Active Directory Service Interfaces (ADSI) documentation in MSDN for descriptions of the methods of the IADs interface.

[Visual Basic .NET]

The Profile object supports extended dot notation. For example, using extended dot notation, the following:

oProfile.Fields[“Address.ZipCode”].Value.ToString()

is equivalent to:

((Fields)oProfile.Fields[“Address”].Value)[“ZipCode”].Value.ToString()

The first technique retrieves the Zipcode value in a single call to Fields.Value, while the second technique requires two calls to retrieve the same value.

The Profile object also provides smart navigation into profiles. For example, using smart navigation, the following:

oProfile.Address.ZipCode

is equivalent to:

oProfile.Fields("Address.Zipcode")

In general, the CreateProfile method of the ProfileService object is used to instantiate this object.

[C#]

The Profile object supports extended dot notation. For example, using extended dot notation, the following:

oProfile.Fields[“Address.ZipCode”].Value.ToString()

is equivalent to:

((Fields)oProfile.Fields[“Address”].Value)[“ZipCode”].Value.ToString()

The first technique retrieves the Zipcode value in a single call to Fields.Value, while the second technique requires two calls to retrieve the same value.

The Profile object also provides smart navigation into profiles. For example, using smart navigation, the following:

oProfile.Address.ZipCode

is equivalent to:

oProfile.Fields["Address.Zipcode"]

In general, the CreateProfile method of the ProfileService object is used to instantiate this object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsups (in mscsups.dll)

See Also

Profile Objects

Profile Schema

Profile XML Structures

ProfileService Object


Profile Methods (PIA)

Methods

Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the Profile object.
Update | Saves the profile data to the underlying data store.


Profile.GetProfileXML Method (PIA)

Use this method to retrieve the XML schema and data of the Profile object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function GetProfileXML (
  eRetrieveEnum As XMLRetrieveEnum,
  bAttributeCentric As Boolean
) As String
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public string GetProfileXML (
  XMLRetrieveEnum eRetrieveEnum,
  bool bAttributeCentric
);

Parameters

[Visual Basic .NET]
eRetrieveEnum
An Enum that indicates whether to retrieve the XML schema, data, or both.
bAttributeCentric
A Boolean that indicates the XML output format. Set this parameter to True to retrieve the XML in an attribute-centric format, and to False to retrieve the XML in an element-centric format.
[C#]
bAttributeCentric
A bool that indicates the XML output format. Set this parameter to true to retrieve the XML in an attribute-centric format, and to false to retrieve the XML in an element-centric format.
eRetrieveEnum
An Enum that indicates whether to retrieve the XML schema, data, or both.

Return Values

[Visual Basic .NET] This method returns a String containing the XML representation of the Profile object.

[C#] This method returns a string containing the resulting XML fragment.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

The following table defines the possible values for XMLRetrieveEnum.

Name | Value | Description
psRetrieveInvalidValue | 0 | Invalid option
psRetrieveSchemaAndData | 1 | Both the schema and data are retrieved.
psRetrieveDataOnly | 2 | Only the data is retrieved.
psRetrieveSchemaOnly | 3 | Only the schema is retrieved.
[Visual Basic .NET]

Example+

' sXMLProfile is a String, oProfile is a UserObject profile

sXMLProfile = oProfile.GetProfileXML(psRetrieveDataOnly, True)

' The attribute-centric sXMLProfile string now contains:
   <?xml version="1.0"?>
   <ProfileDocument>
   <UserObject>
      <AccountInfo  org_id="{590858E1-08A7-11D3-B8C4-00104B95AE0E}"
         account_status="1" date_registered="2000- 6- 5T 0: 0: 0">
      </AccountInfo>
      <GeneralInfo  user_id="{590858DB-08A7-11D3-B8C4-00104B95FFFF}"
         logon_name="jilluser@microsoft.com"
         user_security_password="password" user_title="" last_name="User"
         first_name="Jill" user_id_changed_by="MyAdminID">
      </GeneralInfo>
   </UserObject>
   </ProfileDocument>

sXMLProfile = oProfile.GetProfileXML(psRetrieveDataOnly, False)

' The element-centric sXMLProfile string now contains:
   <?xml version="1.0"?>
   <ProfileDocument>
   <UserObject>
      <AccountInfo>
         <org_id>{590858E1-08A7-11D3-B8C4-00104B95AE0E}</org_id>
         <account_status>1</account_status>
         <date_registered>2000- 6- 5T 0: 0: 0</date_registered>
      </AccountInfo>
      <GeneralInfo
         <user_id>{590858DB-08A7-11D3-B8C4-00104B95FFFF}</user_id>
         <logon_name>jilluser@microsoft.com</logon_name>
         <user_security_password>password</user_security_password>
         <user_title></user_title>
         <last_name>User</last_name>
         <first_name>Jill</first_name>
         <user_id_changed_by>MyAdminID</user_id_changed_by>
      </GeneralInfo>
   </UserObject>
   </ProfileDocument>

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsups (in mscsups.dll)

See Also

Profile Class

Profile.Fields

Profile XML Structures


Profile.Update Method (PIA)

Use this method to save Profile object data to the underlying data store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub Update()
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void Update();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

The Update method commits the object to the data store.

Any changes made by using the IADs interface routines are committed to the database.

Use the Fields property to access the Profile object data.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsups (in mscsups.dll)

See Also

Profile Object

Profile.Fields


Profile Properties (PIA)

Properties

Property | Type | Description
Fields | ADODB26Lib.Fields | Stores the profile property collection. This property is read-only.


Profile.Fields Property (PIA)

The Fields property is a read-only Fields collection that contains the profile property data for the Profile object. Read-only refers to the inability to add or delete members (profile properties) of the Fields collection. This property is the default property of the Profile object. Use this property to set and retrieve profile property values and to navigate the attribute list of the properties.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
Imports ADODB26Lib     ‘ for Fields
…
Public ReadOnly Property Fields As Fields
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
using ADODB26Lib;                              //For _Recordset
…
public Fields Fields {get; }

Property Value

[C#] This property returns a collection of ADODB26Lib.Field objects.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

[Visual Basic .NET]

The Fields collection is a Fields collection object.

A member of the Fields collection is a Field object that represents a single property or property group of a Profile object.

The Attributes collection is represented as a Properties object.

Use the Update method of the Profile object to save any changed profile data in the underlying data store.

The Fields property of the Profile object supports extended dot notation for increased performance. For example, using extended dot notation, the following:

oProfile.Fields[“Address.ZipCode”].Value.ToString()

is equivalent to:

((Fields)oProfile.Fields[“Address”].Value)[“ZipCode”].Value.ToString()
[C#]

The Fields collection is an ADODB26Lib.Fields collection object.

A member of the Fields collection is an ADODB26Lib.Field object that represents a single property or property group of a Profile object.

The Attributes collection is represented as an ADODB26Lib.Properties object.

Use the Update method of the Profile object to save any changed profile data in the underlying data store.

The Fields property of the Profile object supports extended dot notation for increased performance. For example, using extended dot notation, the following:

oProfile.Fields[“Address.ZipCode”].Value.ToString()

is equivalent to:

((Fields)oProfile.Fields[“Address”].Value)[“ZipCode”].Value.ToString()

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsups (in mscsups.dll)

See Also

Profile Class

ProfileService Object


ProfileService Class (PIA)

Use this object to create, delete, and retrieve ProfileObject objects.

Methods

Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object using XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
Unbind | Clears the user credentials for accessing the underlying Profiles store.

Properties

Property | Type | Description
Errors | ADODB26Lib.Errors | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.

Remarks

The ProfileService object implements read/write run-time access for ProfileObject objects and read-only access for profile definitions.

The ProfileService object provides run-time access to a profile object, which is a specific instantiation of a profile schema. The Profile Definition Designer module in Commerce Server Business Desk and the Profiles resource in Commerce Server Manager provide design-time access for modifying the profile schema.

In a Web-based application context, the ProfileService object is intended to be created and initialized in the Global.asax file for the application. The ProfileObject objects are intended to be created within page scope.

Call the Initialize method before you use any other ProfileService method or property.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

Profile Objects

Profile Schema

Profile XML Structures

Profile Class


ProfileService Methods (PIA)

Methods

Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object using XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
Unbind | Clears the user credentials for accessing the underlying Profiles store.


ProfileService.BindAs Method (PIA)

Use this method to set the credentials used to access ProfileObject objects in the underlying Profiles store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub BindAs (
  sUserName As String,
  sPassword As String
)
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void BindAs (
  string sUserName,
  string sPassword,
);

Parameters

[Visual Basic .NET]
sUserName
A String that contains the user name for accessing ProfileObject objects.
sPassword
A String that contains the password for accessing ProfileObject objects.
[C#]
sUserName
A string that contains the user name for accessing ProfileObject objects.
sPassword
A string that contains the password for accessing ProfileObject objects.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

This method sets the credentials used to access and modify ProfileObject objects in the underlying directory store. Any new ProfileObject objects or modifications will be bound to these credentials. The specified credentials define the security context under which all subsequent ProfileObject object operations will be performed, until the Unbind method is invoked. The credentials specified here will be used as is to bind to the underlying directory stores. It is the responsibility of the client to pass in these credentials in the appropriate format. For example, to bind to Active Directory you could pass in any of the following:

  • Full User Principal Name (UPN) (for example, joeuser@domain.com)
  • SAM Account Name (for example, Domain\SAMAccountName)
  • Fully specified distinguished name of the security principal (for example, CN=joeuser, CN=Users, DC=Domain, DC=com)

For the Membership Directory, you must specify the fully specified distinguished name of the security principal.

Use the Unbind method to clear the credentials.

Call the Initialize method before you use this ProfileService method.

[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object
oProfileService.BindAs("JoeUser@microsoft.com", "MyPassword123")
oProfileService.BindAs("DomainName\JoeUser", "MyPassword123")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.Unbind


ProfileService.CreateProfile Method (PIA)

Use this method to create a ProfileObject object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function CreateProfile(
  sValue As Object,
  bstrType As String
) As IProfileObject
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public IProfileObject CreateProfile(
  object sValue,
  string bstrType
);

Parameters

[Visual Basic .NET]
sValue
An Object that contains the primary key value for the new ProfileObject object. The variable types permitted for this object are String or Integer.
bstrType
A String that contains the schema type for the new ProfileObject object.
[C#]
sValue
An object that contains the primary key value for the new ProfileObject object. The variable types permitted for this object are string or int.
bstrType
A string that contains the schema type for the new ProfileObject object.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object that implements the IProfileObject interface. The reference is set to Null if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

[C#] This method returns an object that implements the IProfileObject interface. The reference is set to null if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

If the CreateProfile method fails on an aggregated profile (one that has multiple data sources), the DeleteProfile method must be called to clean up any entries in the data stores. In this case, the DeleteProfile method will produce an error that should be ignored.

The CreateProfile method verifies that a ProfileObject object with the specified attributes does not already exist in the database.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile or GetProfileByKey method to retrieve existing ProfileObject instances from the Profiles store.

Call the Initialize method before you use this ProfileService method.

[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject1 and oProfileObject2 are Commerce ProfileObject objects

oProfileObject1 = oProfileService.CreateProfile _
 ("{73A4C9C1-D68D-11D0-98BF-00A0C90DC8DF}", "Address")

oProfileObject2 = oProfileService.CreateProfile _
 ("Joeuser@microsoft.com", "UserObject")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.DeleteProfile

ProfileService.GetProfile

ProfileService.GetProfileByKey

ProfileService.Initialize

ProfileObject Class

ProfileObject.Fields


ProfileService.CreateProfileXML Method (PIA)

Use this method to create a ProfileObject object using XML data.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function CreateProfileXML(
  sValue As Object,
  ByVal bstrProfileType As String,
  ByVal bstrProfileXML As Sring,
  eXMLFormat As XMLFormatEnum,
  bAttributeCentric As Boolean,
) As ProfileObject
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public ProfileObject CreateProfileXML(
  object sValue,
  string bstrProfileType,
  string bstrProfileXML,
  XMLFormatEnum eXMLFormat
);

Parameters

[Visual Basic .NET]
sValue
[in] An Object that contains the primary key value for the new ProfileObject object.
bstrProfileType
A String that contains the profile type.
bstrProfileXML
A String that contains the profile properties in XML.
eXMLFormat
An XMLFormatEnum enumeration that contains the XML format. See the Remarks section for allowed values.
[C#]
sValue
[in] An Object that contains the primary key value for the new ProfileObject object.
bstrProfileType
[in] A String that contains the profile type.
bstrProfileXML
[in] A String that contains the profile properties in XML.
eXMLFormat
[in] An XMLFormatEnum that contains the XML format. See the Remarks section for allowed values.

Return Values

[C#] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic .NET] If this method completes successfully, it returns the newly created ProfileObject object. The object is set to Nothing if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Error Values

The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

Remarks

If the CreateProfile method fails on an aggregated profile (one that has multiple data sources), the DeleteProfile method must be called to clean up any entries in the data stores. In this case, the DeleteProfile method will produce an error that should be ignored.

Call the Update method on the returned ProfileObject object to commit the new profile to the data store. The Update method will verify that a ProfileObject object with the specified attributes does not already exist in the database.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile or GetProfileByKey method to retrieve existing ProfileObject instances from the Profiles store.

Call the Initialize method before you use this ProfileService method.

The following table shows the values in the XMLFormatEnum enumeration, their associated names, and describes their use.

Name | Value | Description
EInvalid | 0 | Reserved for future use.
eAttributeCentric | 1 | Attribute-centric XML format.
eElementCentric | 2 | Element-centric XML format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService object


ProfileService.DeleteProfile Method (PIA)

Use this method to delete the ProfileObject object specified by a primary key value and schema type. All properties associated with the profile are purged from the system.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub DeleteProfile(
  sValue As Object,
  strType As String
)
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void DeleteProfile(
  object sValue,
  string bstrType
);

Parameters

[Visual Basic .NET]
sValue
An Object that contains the primary key value. The variable types permitted for this object are String or Integer.
strType
A String that contains the profile schema type.
[C#]
sValue
An object that contains the primary key value. The variable types permitted for this object are string or int.
bstrType
A string that contains the profile schema type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

If the DeleteProfile method is called because of an error in creating a new ProfileObject object, any error message produced should be ignored.

Use the DeleteProfileByKey method to delete a profile specified by a key member/value pair and schema type.

Call the Initialize method before you use this ProfileService method.

Caution

  • Care must be taken when deleting ProfileObject objects due to possible expression dependencies. See the ExpressionStore and ExpressionEval objects for details about expressions.
[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfile("Joeuser@microsoft.com", "UserObject")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.CreateProfile

ProfileService.DeleteProfileByKey

ExpressionEval Object

ExpressionStore Object


ProfileService.DeleteProfileByKey Method (PIA)

Use this method to delete the ProfileObject object specified by a key member name/value pair and schema type. All properties associated with the profile are purged from the system.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub DeleteProfileByKey(
  strKeyMemberName As String,
  sValue As Object,
  strType As String
)
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void DeleteProfileByKey(
  string bstrKeyMemberName,
  object sValue,
  string bstrType
);

Parameters

[Visual Basic .NET]
strKeyMemberName
A String that contains the key member name.
sValue
An Object that contains the key value. The variable types permitted for this object are String or Integer.
strType
A String that contains the profile schema type.
[C#]
bstrKeyMemberName
A string that contains the key member name.
sValue
An object that contains the key value. The variable types permitted for this object are string or int.
bstrType
A string that contains the profile schema type.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

Use the DeleteProfile method to delete a profile by specifying a primary key value and schema type.

Call the Initialize method before you use this ProfileService method.

Caution

  • Care must be taken when deleting ProfileObject objects due to possible expression dependencies. See the ExpressionStore and ExpressionEval objects for details about expressions.
[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfileByKey("user_id",_
 "{74A38551-D6D8-FFD0-12BF-0A20C90DC8D1}" "UserObject")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.CreateProfile

ProfileService.DeleteProfile

ExpressionEval Object

ExpressionStore Object


ProfileService.GetProfile Method (PIA)

Use this method to retrieve the ProfileObject object corresponding to the specified primary key value and schema type.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function GetProfile(
  sValue as Object,
  bstrType As String
  Optional bReturnError As Boolean
) As IProfileObject
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public IProfileObject GetProfile(
  object sValue,
  string bstrType,
  bool bReturnError
);

Parameters

[Visual Basic .NET]
sValue
An Object that contains the primary key value. The variable types permitted for this object are String or Integer.
bstrType
A String that contains the profile schema type.
bReturnError
An optional Boolean. The default value is True.
[C#]
sValue
An object that contains the primary key value. The variable types permitted for this object are string or int.
bstrType
A string that contains the profile schema type.
bReturnError
See Remarks for a description of this parameter.

Return Values

[Visual Basic .NET] This method returns an object that implements the IProfileObject interface corresponding to the specified primary key value and schema name.

[C#] This method returns an object that implements the IProfileObject interface.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

If the bReturnError parameter is set to true and the specified ProfileObject object is not found, the method throws a COMException with a value of E_PS_PROFILE_NOTEXISTS instead of returning an object reference.

If the bReturnError parameter is set to false and the specified ProfileObject object is not found, an empty ProfileObject object is returned.

Properties with the IsCached attribute set to false are not loaded by this method.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfileByKey method to retrieve a profile by specifying a key member name/value pair and schema type.

Call the Initialize method before you use this ProfileService method.

[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject is a Commerce ProfileObject object

oProfileObject = oProfileService.GetProfile("Joeuser@microsoft.com", _
 "UserObject")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.GetProfileByKey

ProfileService.Initialize

ProfileObject Class

ProfileObject.Fields


ProfileService.GetProfileByKey Method (PIA)

Use this method to retrieve a ProfileObject object that corresponds to a specified key member name/value pair and schema type.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function GetProfileByKey(
  bstrKeyMemberName As String,
  sValue As Object,
  bstrType As String
  Optional bReturnError As Boolean
) As IProfileObject
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public IProfileObject GetProfileByKey(
  string bstrKeyMemberName,
  object sValue,
  string bstrType,
  bool bReturnError
);

Parameters

[Visual Basic .NET]
bstrKeyMemberName
A String that contains the key member name.
sValue
An Object that contains the key value. The variable types permitted for this object are String or Integer.
bstrType
A String that contains the schema type.
bReturnError
An optional Boolean. The default value is True.
[C#]
bstrKeyMemberName
A string that contains the key member name.
sValue
An object that contains the key value. The variable types permitted for this object are string or int.
bstrType
A string that contains the schema type.
bReturnError
See Remarks for a description of this parameter.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an object that implements the IProfileObject interface corresponding to the specified key member/value pair and schema name.

[C#] This method returns an object that implements the IProfileObject interface.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

If the bReturnError parameter is set to true and the specified ProfileObject object is not found, the method throws a COMException with a value of E_PS_PROFILE_NOTEXISTS instead of returning an object reference.

If the bReturnError parameter is set to false and the specified ProfileObject object is not found, an empty ProfileObject object is returned.

Properties with the IsCached attribute set to false are not loaded by this method.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile method to retrieve a profile by specifying a primary key value and schema type.

Call the Initialize method before you use this ProfileService method.

[Visual Basic .NET]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject is a Commerce ProfileObject object

oProfileObject = oProfileService.GetProfileByKey("user_id", _
 "{74A38551-D6D8-FFD0-12BF-0A20C90DC8D1}", "UserObject")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.GetProfile

ProfileService.Initialize

ProfileObject Class

ProfileObject.Fields


ProfileService.GetProfileDefXML Method (PIA)

Use this method to retrieve the XML definition of the named profile schema type.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Function GetProfileDefXML(
  bstrProfileName As String
  bNamesOnly As Boolean,
) As String
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public string GetProfileDefXML(
  string bstrProfileName,
  bool bNamesOnly
);

Parameters

[Visual Basic .NET]
bstrProfileName
A String that contains the name of the profile schema type.
bNamesOnly
A Boolean that determines whether the method returns the profile schema name or the profile schema definition. A value of False indicates to return the profile definition. A value of True indicates to return only the name of the profile schema.
[C#]
bstrProfileName
A string that contains the name of the profile schema type.
bNamesOnly
A bool that determines whether the method returns the profile schema name or the profile schema definition. A value of false indicates to return the profile definition. A value of true indicates to return only the name of the profile schema.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the XML description.

[C#] This method returns a string containing the XML description.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

If the bstrProfileName parameter is empty and the bNamesOnly parameter is false, the XML descriptions of all the schema types in the catalog are returned.

If the bstrProfileName parameter is empty and the bNamesOnly parameter is true, the names of all the schema types in the catalog are returned.

Call the Initialize method before you use this ProfileService method.

[Visual Basic .NET]

Example

' sXML is a String
' oProfileService is a Commerce ProfileService object

sXML = oProfileService.GetProfileDefXML("UserObject", False)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

Profile XML Structures


ProfileService.Initialize Method (PIA)

Use this method to establish a connection to the Commerce Server Profiles store and populate the schema cache with all the schemas from the specified catalog.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub Initialize(
  sConfigStore As String,
  Optional sCatalog As String
)
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void Initialize(
  string sConfigStore,
  string sCatalog
);

Parameters

[Visual Basic .NET]
sConfigStore
A String that contains the connection string to the Profiles store.
sCatalog
An optional String that identifies the catalog. If this is specified it must be "Profile Definitions".
[C#]
sConfigStore
A string that contains the connection string to the Profiles store.
sCatalog
A string that identifies the catalog. The value of this parameter must be "Profile Definitions".

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

The Initialize method creates the necessary internal parameters and schema cache for profile management. A ProfileService object must connect to only one Profiles store. Multiple instances of the ProfileService object must be created to access multiple stores.

The connection string for the Profiles store may be obtained through the SiteConfigReadOnly object, or through the Commerce Server Manager console from the s_ProfileServiceConnectionString property under the key "Commerce Server Manager\Global Resources\Profiles(ComputerName SiteName)".

The connection string consists of the following mandatory tokens:

  • Data Source and/or Database [mandatory]. This attribute allows applications to specify the name of the underlying instance of SQL Server containing the Profiles database. At least one of these attributes must be specified. If both of these attributes are specified, the value of the Data Source attribute takes precedence.
  • Initial Catalog and/or Server [mandatory]. This attribute allows applications to specify the name of the Profiles database containing profile definitions. At least one of these attributes must be specified. If both of these attributes are specified, the value of the Initial Catalog attribute takes precedence.
  • User ID and/or UID [mandatory]. This attribute allows applications to specify the login name to connect to the Profiles database. At least one of these attributes must be specified. If both of these attributes are specified, the value of the User ID attribute takes precedence.

The following is a sample connection string containing these attributes:

   Data Source=servername;Initial Catalog=dbname;User ID=user

Spaces are not allowed around the delimiting semicolons, and a semicolon is not allowed in the names of any of the tokens.

Additionally, the following optional tokens are also supported by the Profiles resource:

  • Provider [optional]. Allows applications to specify the OLE DB provider to which the Profiles resource connects. This parameter exists for consistency with standard ADO connection strings. The default value and only acceptable value for this attribute is CSOLEDB.
  • Password [optional]. Allows applications to specify the password for the user specified by the User ID or UID attribute. The default value for this attribute is null.
  • PsObjectCacheSize [optional]. Allows applications to specify the size of the Profiles resource object cache. This cache stores ProfileObject objects instantiated by the CreateProfile and GetProfile methods. The default value for this attribute is 32768.
  • PsSchemaCacheSize [optional]. Allows applications to specify the size of the Profiles resource definition (schema) cache. After it is loaded, entries cannot be purged from the cache. The default value for this attribute is 64.
  • PsBackgroundThread [optional]. Allows applications to control the creation of a background thread to periodically clean up entries from the Profiles resource object cache. The acceptable values for this parameter are zero (0) or one (1). Zero turns off the background thread, and one turns it on. By default, the background thread is on.
  • PsObjectAgeoutPeriod [optional]. Allows applications to specify the age-out period for the Profiles resource cache entries. The age-out period is the amount of time an unreferenced object can remain in the cache without being discarded. The default value for this attribute is five minutes.

Notes

  • The Initial Catalog in the connection string is the database containing the Profiles store.
  • The sCatalog parameter in the Initialize method is the catalog containing the profile schema definitions, which is "Profile Definitions".
[Visual Basic .NET]

Example

' Connect using an explicit connection string.
' oProfileService is a Commerce ProfileService object

oProfileService.Initialize("Provider=CSOLEDB;Data Source=MyServer;" _
 & "Initial Catalog=Retail_commerce;User ID=user;Password=*****;" _
 & "PsSchemaCacheSize=128;PsObjectAgeoutPeriod=8", "Profile Definitions")

' Connect through the SiteConfigReadOnly object.
' sConn is a String
' oSCRO is an initialized SiteConfigReadOnly object

sConn = oSCRO.Fields("Profiles(ComputerName SiteName").Value _
 .Fields("s_ProfileServiceConnectionString").Value & "SCHCACHE=128"
oProfileService.Initialize(sConn, "Profile Definitions")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class


ProfileService.Unbind Method (PIA)

Use this method to clear the credentials that are used to access ProfileObject objects in the underlying Profiles store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
…
Public Sub Unbind ()
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
…
public void Unbind ();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The Errors property stores the collection of errors encountered in the last Profiles resource operation if an exception is thrown. For more information, see ProfileService.Errors.

Remarks

This method clears the credentials used to access ProfileObject objects in the underlying store. Any new profiles or modifications will not be bound to a specific user. Use this method to gain access to existing ProfileObject objects that are not bound to a specific user.

Use the Bind method to set the credentials to access ProfileObject objects that are bound to a specific user.

Call the Initialize method before you use this ProfileService method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileService Class

ProfileService.BindAs


ProfileService Properties (PIA)

Properties

Property | Type | Description
Errors | ADODB26Lib.Errors | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.


ProfileService.Errors Property (PIA)

[Visual Basic .NET] The Errors property is a read-only Errors object that stores the collection of errors encountered in the last Profiles resource operation.

[C#] The Errors property is a read-only ADODB26Lib.Errors object that stores the collection of errors encountered in the last Profiles resource operation.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Profiles
Imports ADODB26Lib     ‘ for Errors
…
Public ReadOnly Property Errors As Errors
[C#]
using Microsoft.CommerceServer.Interop.Profiles;
using ADODB26Lib;                              //For Errors
…
public Errors Errors {get; }

Property Value

This property returns the collection of errors encountered in the last Profiles resource operation.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The Errors property collects all errors generated by a ProfileService object operation, including those that emerge from the underlying technology.

If the error is coming from the underlying data store providers (such as OLE DB Provider for SQL Server and OLE DB Provider for Microsoft Directory Services) it is passed; for example, in some cases only the Number and Source properties of the Errors object are set.

Call the Initialize method before you access the Errors property.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Profiles

Platforms: Windows 2000, Windows .NET Server family

Assembly: mscsupslib (in mscsupslib.dll)

See Also

ProfileObject Class

ProfileService Class


Microsoft.CommerceServer.Interop.Targeting

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop.Targeting namespace.

Class | Description
ContentSelector | Allows specification and retrieval of page content.
ExpressionEvaluator | Allows selection and evaluation of one or more expressions against a specified context.
ExpressionStore | Provides methods to create, save, modify, and retrieve expressions.
ListManager | Provides methods to create, destroy, manage, and manipulate lists.


ContentSelector Class (PIA)

Use this object to select one or more items of content for display on a Web page. The content may come from customer campaigns (ads, discounts), or from custom applications built on the Content Selection Framework (CSF).

If you want to select custom content for display on your Web pages, you can use the CSF by instantiating and using ContentSelector objects. ContentSelector objects invoke different CSF pipelines to select different types of content based on the dictionary passed to the GetContent method.

Use the Microsoft Commerce 2000 CSF Pipeline Component 1.0 Type Library to access this object.

The ContentSelector object implements all of the methods and properties of the Dictionary object. Only the method not inherited from the Dictionary object is shown in the following table.

Methods

Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.

Remarks

The Context dictionary maintains a reference to a ContentSelector object in its ContextProfile entry. This ContentSelector object is used to pass arbitrary properties to the pipeline components. Arbitrary properties can be associated with the ContentSelector object because it inherits from the Dictionary object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: csfcomplib (in csfcomplib.dll)


ContentSelector Methods (PIA)

Methods

Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.


ContentSelector.GetContent Method (PIA)

Use this method to execute a Content Selection pipeline and return the resulting content in a SimpleList object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop  ‘ for IDictionary & ISimpleList
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetContent(
 dictCSFContext As IDictionary,
) As ISimpleList
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using Microsoft.CommerceServer.Interop;    //For ISimpleList & IDictionary
…
public ISimpleList GetContent(
  IDictionary pdictCSFContext
);

Parameters

pdictCSFContext
The IDictionary interface to a global context dictionary with a configuration for an instance of a CSF application. The dictionary contains global objects and configurations used by the ContentSelector object. At a minimum, the dictionary must contain the Pipeline key so that the ContentSelector object knows which pipeline to execute.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an ISimpleList interface to a SimpleList object containing the selected content. The elements of the SimpleList object are HTML or XML strings.

[C#] This method returns an ISimpleList interface to a SimpleList object containing the selected content. The elements of the SimpleList object are HTML or XML strings.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Note

  • This method can also return an error returned by the invoked pipeline.

Remarks

The ContentSelector object reads the Pipeline key of the passed in Dictionary object to find the pipeline object to invoke. It copies the values of the dictionary passed to it into a new dictionary. The new dictionary is passed to the pipeline as the pipe Context dictionary. An empty dictionary is created and passed as the Order dictionary for the pipeline. The ContentSelector object adds a reference to itself under the ContextProfile key in the pipe Context dictionary.

When pipeline execution has completed, the ContentSelector object looks for the key formatted in the Order dictionary, and returns the list assigned to that key as the return value. If the list assigned to the formatted key does not exist, an empty list is created and returned. The self-reference in the pipe Context dictionary is removed to prevent a circular reference. References to the Order and Context dictionaries are added to the ContentSelector object before it returns, giving the page access to the values written into those dictionaries by the pipeline.

[Visual Basic .NET]

Example

For example code, see the sample in ContentSelector Object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: csfcomplib (in csfcomplib.dll)

See Also

CacheManager Class

Content Selection Pipelines

ContentSelector Class


ExpressionEvaluator Class (PIA)

Use this object to evaluate one or more expressions against a specified context. In addition, use this object to parse and evaluate user-defined expressions written as Extensible Markup Language (XML) fragments.

Methods

Method | Description
Connect | Establishes communication between the ExpressionEvaluator object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine whether it represents a valid expression.

Properties

Property | Type | Description
ExprCount | Integer | Retrieves the number of expressions loaded into the expression cache. This property is read-only.

Remarks

Expressions are stored in a database referred to as the Expression Store and accessed through an ExpressionStore object. When it is created, the ExpressionEvaluator object initializes an expression cache and a context cache. Expressions must be compiled and loaded into the expression cache before being evaluated. To improve evaluation performance, use the LoadExpr or LoadAll method to preload expressions into the expression cache.

An expression is evaluated against data contained in a set of profiles. The profiles may be ProfileObject objects, or Dictionary objects. The set of profiles is referred to as an evaluation context. If an evaluation context will be used across multiple expressions, create a stored context in the context cache using the CreateEvalContext method to increase efficiency.

The Connect method must be called before loading or evaluating expressions.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

Expression XML Structures

ExpressionStore Object

ProfileObject Object


ExpressionEvaluator Methods (PIA)

Methods

Method | Description
Connect | Establishes communication between the ExpressionEvaluator object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine whether it represents a valid expression.


ExpressionEvaluator.Connect Method (PIA)

Use this method to establish communication with an expression store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Connect(
 vConnectInfo As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Connect(
 object vConnectInfo
);

Parameters

[Visual Basic .NET]
vConnectInfo
An Object that describes the expression store connection information. This may be a String containing the connection information or a reference to an existing ExpressionStore object.
[C#]
vConnectInfo
An object that describes the expression store connection data. This may be a string containing the connection information or an existing ExpressionStore object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110001E | Specified database does not contain a valid expression store
&H8110000D | No connection string specified
&H8110000F | Insufficient access permissions on the expression store database
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110001E | Specified database does not contain a valid expression store
0x8110000D | No connection string specified
0x8110000F | Insufficient access permissions on the expression store database

Remarks

If a connection string is passed as the input parameter, the ExpressionEval object creates an ExpressionStore object that uses the connection string to access the expression store. Upon destruction, the ExpressionEval object destroys the ExpressionStore object.

The connection string for the expression store may be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the s_BizDataStoreConnectionString property under the keywords "Commerce Server Manager\Global Resources\Profiles".

The Connect method must be used before loading or evaluating expressions.

The ParseXML method and the flush methods may be used without connecting to an expression store.

[Visual Basic .NET]

Example

' Connect through an existing ExpressionStore object.
oExpressionEval.Connect (oExpressionStore)

' Connect using an explicit connection string.
oExpressionEval.Connect ("Provider=SQLOLEDB;Data Source=server;" _
& "Initial Catalog=Retail_commerce;Integrated Security='SSPI'")

' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object.
sConn = oSCRO.Fields("Biz Data Service").Value _
 .Fields("s_BizDataStoreConnectionString").Value
oExpressionEval.Connect (sConn)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionStoreClass

ExpressionStore.Connect

SiteConfigReadOnlyClass


ExpressionEvaluator.CreateEvalContext Method (PIA)

Use this method to create a new ExprEvalContext object and place it into the context cache. This allows evaluation of multiple expressions against the same set of profile objects in the most efficient manner possible.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateEvalContext(
 pDictObjs As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using Microsoft.CommerceServer.Interop;      //For IDictionary
…
public IExprEvalContext CreateEvalContext(
 IDictionary pDictObjs
);

Parameters

[Visual Basic .NET]
pDictObjs
A Dictionary object that contains the set of profiles to be cached.
[C#]
pDictObjs
The IDictionary interface of a Dictionary object that contains the set of profiles to be cached.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the newly created ExprEvalContext object.

[C#] This method returns the IExprEvalContext interface of the newly created ExprEvalContext object

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The CreateEvalContext method creates an ExprEvalContext object that uniquely identifies a new evaluation context and stores the object in the context cache. Use the EvalInContext method to evaluate multiple expressions within the context defined by the ExprEvalContext object. This process is more efficient than using the Eval method which generates and destroys a new context for each expression evaluated.

A context is a set of profiles containing data to evaluate expressions against. Profiles may be ProfileObject objects or Dictionary objects. Initially only references to the profile objects are held in the context cache. During evaluation, when property values are read from the profiles, the property values may themselves be held in the cache for faster access during subsequent evaluations.

Caution

  • The state of the profile objects should not be externally changed during the lifetime of the ExprEvalContext object; doing so leads to nondeterministic evaluation results.
[Visual Basic .NET]

Example

' dictUser1, dictAddress1, & dictProfiles are Dictionary objects
' create 2 profiles
dictUser1.firstName = "Joe"
dictUser1.lastName = "User"
dictAddress1.city = "Somewhere"
dictAddress1.state = "WA"

' add the profiles to the context Dictionary
dictProfiles.User = dictUser1
dictProfiles.Address = dictAddress1

' create the evaluation context
oExprEvalContext = oExpressionEval.CreateEvalContext(dictProfiles)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.EvalInContext


ExpressionEvaluator.Eval Method (PIA)

Use this method to evaluate an expression.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function Eval(
 nExprID As Integer,
 pDictObjs As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using Microsoft.CommerceServer.Interop;      //For IDictionary
…
public object Eval(
 int nExprID,
 IDictionary pDictObjs
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains the unique identifier for the expression in the expression store.
pDictObjs
A Dictionary object that contains a set of profiles.
[C#]
nExprID
An int that contains the unique identifier for the expression in the expression store.
pDictObjs
The IDictionary interface of a Dictionary object that contains a set of profiles.

Return Values

[Visual Basic .NET] This method returns an Object indicating the result of evaluating the expression in the specified context. The result may be True, False, or Null. Null indicates that the expression could not be evaluated.

[C#] This method returns an object indicating the result of evaluating the expression in the given context.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified
&H8110000D | No connection string specified
&H81100012 | Could not find the specified expression ID, nExprID, in the expression store
[C#]

The following table shows the custom COM errors, and the standard COM errors with special meanings, that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified
0x8110000D | No connection string specified
0x81100012 | Could not find the specified expression ID, nExprID, in the expression store

Remarks

Expressions must be precompiled and loaded into the expression cache before being evaluated. The Eval method first checks the expression cache for the expression, and if it is not found, loads the expression from the expression store. Use the LoadExpr or LoadAll method to preload an expression into the expression cache and improve evaluation performance.

An expression is evaluated against data contained in a set of profiles. This set of profiles is referred to as an evaluation context. A new evaluation context is generated by the Eval method using the Dictionary object. The Eval method discards the new context after completing the evaluation. This process is not efficient if many expressions must be evaluated against the same context.

If an evaluation context will be used across multiple expressions, create a context in the context cache using the CreateEvalContext method. Use the EvalInContext method to evaluate expressions in this new common context.

The Connect method must be called before using the Eval method.

[Visual Basic .NET]

Example

' dictUser1, dictAddress1, & dictProfiles are Dictionary objects
' create 2 profiles
dictUser1.firstName = "Joe"
dictUser1.lastName = "User"
dictAddress1.city = "Somewhere"
dictAddress1.state = "WA"

' add the profiles to the context Dictionary
dictProfiles.User = dictUser1
dictProfiles.Address = dictAddress1

' evaluate the expression, vResult is an Object
oResult = oExpressionEval.Eval(2134, dictProfiles)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.Connect

ExpressionEvaluator.CreateEvalContext

ExpressionEvaluator.EvalInContext

ExpressionEvaluator.LoadExpr


ExpressionEvaluator.EvalInContext Method (PIA)

Use this method to evaluate an expression against a pre-established context stored in the context cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function EvalInContext(
 nExprID As Integer,
 pContext As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object EvalInContext(
 int nExprID,
 IExprEvalContext pContext
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains the unique identification of the expression in the expression store.
pContext
An ExprEvalContext object that identifies the specific context for this evaluation.
[C#]
nExprID
An int that contains the unique identification of the expression in the expression store.
pContext
An IExprEvalContext interface of an ExprEvalContext object that identifies the specific context for this evaluation.

Return Values

This method returns an Object indicating the result of the expression evaluated in the specified context. This result may be True, False, or Null. Null indicates that the expression could not be evaluated.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified
&H8110000D | No connection string specified
&H8110001D | Invalid ExprEvalContext object
&H81100012 | Could not find the specified expression ID, nExprID, in the expression store
[C#]

The following table shows the custom COM errors, and the standard COM errors with special meanings, that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified
0x8110000D | No connection string specified
0x8110001D | Invalid ExprEvalContext object
0x81100012 | Could not find the specified expression ID, nExprID, in the expression store

Remarks

The Eval method creates and discards an evaluation context for every evaluation. Evaluating against a stored context optimizes performance when multiple expressions need to be evaluated in the same context. Create the context for evaluation using the CreateEvalContext method.

Expression results are also stored in the context cache. If the result of a particular expression is requested multiple times from the same ExprEvalContext object using the EvalInContext method, the result is retrieved from the cache rather than by re-evaluating the expression, further increasing efficiency.

Caution

  • The state of the profile objects that comprise the context should not be externally changed during the lifetime of the ExprEvalContext object; doing so leads to nondeterministic evaluation results.

The Connect method must be called before using the EvalInContext method.

[Visual Basic .NET]

Example

' oEvalContext is an ExprEvalContext object
' oResult is an Object
oResult = oExpressionEval.Eval(2134, oEvalContext)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.Connect

ExpressionEvaluator.CreateEvalContext

ExpressionEvaluator.Eval

ExpressionEvaluator.LoadExpr


ExpressionEvaluator.EvalXML Method (PIA)

Use this method to evaluate an expression represented as an Extensible Markup Language (XML) fragment.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function EvalXML(
 bstrXMLExpr As String,
 DictObjs As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using Microsoft.CommerceServer.Interop;      //For IDictionary
…
public object EvalXML(
 string bstrXMLExpr,
 IDictionary pDictObjs
);

Parameters

[Visual Basic .NET]
bstrXMLExpr
A String that contains the XML fragment to be evaluated.
DictObjs
A Dictionary object that contains a set of profiles.
[C#]
bstrXMLExpr
A string that contains the XML fragment to be evaluated.
pDictObjs
The IDictionary interface of a Dictionary object that contains a set of profiles.

Return Values

This method returns an Object indicating the result of evaluating the expression is contained in the bstrXMLExpr parameter. The result may be True, False, or Null. The Null value indicates the expression could not be evaluated.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
&H81100022 | Invalid expression argument value, or impossible conversion
&H81100016 | Invalid clause encountered
&H8110001F | Invalid connection
&H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
&H81100015 | Term type missing, or unrecognized term type encountered
&H81100014 | Unrecognized XML element encountered
&H8110000D | No connection string specified
&H81100013 | XML DOM object parsing error
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
0x81100022 | Invalid expression argument value, or impossible conversion
0x81100016 | Invalid clause encountered
0x8110001F | Invalid connection
0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
0x81100015 | Term type missing, or unrecognized term type encountered
0x81100014 | Unrecognized XML element encountered
0x8110000D | No connection string specified
0x81100013 | XML DOM object parsing error

Remarks

The XML is parsed before being evaluated. For information on the XML format, see Expression XML Structures.

Expressions evaluated using the EvalXML method are not persistent; that is, they are not stored in the expression store or loaded into the expression cache. Use the Eval method to evaluate persistent expressions.

A new ExprEvalContext object is created and then discarded for each XML fragment that is evaluated.

The Connect method must be called before using the EvalXML method.

[Visual Basic .NET]

Example

' sXMLExpr is a string.
' Note that this string is not formatted properly with respect to
' quotation marks or continuation in order to increase readability.

strXMLExpr = "<CLAUSE OPER="equal">
                  <PROPERTY ID="User.firstName" TYPE="string" />
                  <IMMED-VAL TYPE="string">Jill</IMMED-VAL>
              </CLAUSE>"

' oResult is an Object
' dictProfiles is a Dictionary object containing a set of profiles
oResult = oExpressionEval.EvalXML(sXMLExpr, dictProfiles)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

Expression Recordset

Expression XML Structures

ExpressionEvaluatorClass

ExpressionEvaluator.Connect

ExpressionEvaluator.Eval

ExpressionEvaluator.ParseXML


ExpressionEvaluator.FlushAll Method (PIA)

Use this method to remove all expressions from the expression cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub FlushAll()
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void FlushAll();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The FlushAll method removes all expressions from the expression cache and resets the read-only ExprCount property to zero (0).

Use the FlushExpr method to remove a specific expression from the expression cache.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.ExprCount

ExpressionEvaluator.FlushExpr

ExpressionEvaluator.LoadAll

ExpressionEvaluator.LoadExpr


ExpressionEvaluator.FlushExpr Method (PIA)

Use this method to remove the specified expression from the expression cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub FlushExpr(
 nExprID As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void FlushExpr(
 int nExprID
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains the identifier of the expression to be removed from the expression cache.
[C#]
nExprID
A int that contains the identifier of the expression to be removed from the expression cache.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110000A | Invalid expression ID specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110000A | Invalid expression ID specified

Remarks

The FlushExpr method removes the specified expression from the expression cache and decrements the read-only ExprCount property by one (1).

Use the FlushAll method to remove all expressions from the expression cache.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.ExprCount

ExpressionEvaluator.FlushAll

ExpressionEvaluator.LoadAll

ExpressionEvaluator.LoadExpr


ExpressionEvaluator.LoadAll Method (PIA)

Use this method to pre-compile all expressions in the expression store. Each expression that pre-compiles correctly is loaded into the expression cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub LoadAll()
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void LoadAll();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
&H81100022 | Invalid expression argument value, or impossible conversion
&H81100016 | Invalid clause encountered
&H8110001F | Invalid connection
&H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
&H81100015 | Term type missing, or unrecognized term type encountered
&H81100014 | Unrecognized XML element encountered
&H8110000D | No connection string specified
&H81100013 | XML DOM object parsing error
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
0x81100022 | Invalid expression argument value, or impossible conversion
0x81100016 | Invalid clause encountered
0x8110001F | Invalid connection
0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
0x81100015 | Term type missing, or unrecognized term type encountered
0x81100014 | Unrecognized XML element encountered
0x8110000D | No connection string specified
0x81100013 | XML DOM object parsing error

Remarks

Any expressions in the expression cache at the time of the call are reloaded.

If there are many expressions in the expression store, the LoadAll method may be slow. Use the LoadExpr method to load only specific expressions into the expression cache.

For every expression loaded into the expression cache, the LoadAll method increments the read-only ExprCount property by one (1).

Use the FlushAll method to remove all expressions from the expression cache.

The Connect method must be called before using the LoadAll method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.Connect

ExpressionEvaluator.ExprCount

ExpressionEvaluator.FlushAll

ExpressionEvaluator.FlushExpr

ExpressionEvaluator.LoadExpr


ExpressionEvaluator.LoadExpr Method (PIA)

Use this method to pre-compile an expression, and if successful, load the expression into the expression cache.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub LoadExpr(
 nExprID As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void LoadExpr(
 int nExprID
);

Parameters

[Visual Basic .NET]
nExprID
A positive Integer that contains the identifier of the expression to load into the expression cache.
[C#]
nExprID
A positive int that contains the identifier of the expression to load into the expression cache.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
&H81100022 | Invalid expression argument value, or impossible conversion
&H81100016 | Invalid clause encountered
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified
&H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
&H81100015 | Term type missing, or unrecognized term type encountered
&H81100014 | Unrecognized XML element encountered
&H8110000D | No connection string specified
&H81100012 | Could not find the specified expression ID, nExprID, in the expression store
&H81100013 | XML DOM object parsing error
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
0x81100022 | Invalid expression argument value, or impossible conversion
0x81100016 | Invalid clause encountered
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified
0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
0x81100015 | Term type missing, or unrecognized term type encountered
0x81100014 | Unrecognized XML element encountered
0x8110000D | No connection string specified
0x81100012 | Could not find the specified expression ID, nExprID, in the expression store
0x81100013 | XML DOM object parsing error

Remarks

If the specified expression is already loaded in the expression cache at the time of the call, it will be reloaded.

The LoadExpr method increments the read-only ExprCount property by one (1) when it loads an expression into the expression cache.

With the exception of XML fragments, only expressions that exist in the expression cache may be evaluated. The Eval method loads an expression from the expression store that is not preloaded into the expression cache.

Use the LoadAll method to load all expressions into the expression cache. Use the FlushExpr method to remove an expression from the expression cache.

The Connect method must be called before using the LoadExpr method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.Connect

ExpressionEvaluator.ExprCount

ExpressionEvaluator.FlushAll

ExpressionEvaluator.FlushExpr

ExpressionEvaluator.LoadAll


ExpressionEvaluator.ParseXML Method (PIA)

Use this method to check whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function ParseXML(
 bstrXMLExpr As String
) As Boolean
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void ParseXML(
 string bstrXMLExpr
);

Parameters

[Visual Basic .NET]
bstrXMLExpr
A String that contains the XML text defining an expression.
[C#]
bstrXMLExpr
A string that contains the XML text defining an expression.

Return Values

[Visual Basic .NET] This method returns a Boolean value indicating the results of parsing the expression (bstrXMLExpr).

[C#] This method returns a bool indicating the validity of the expression.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
&H81100022 | Invalid expression argument value, or impossible conversion
&H81100016 | Invalid clause encountered
&H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
&H81100015 | Term type missing, or unrecognized term type encountered
&H81100014 | Unrecognized XML element encountered
&H81100013 | XML DOM object parsing error
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
0x81100022 | Invalid expression argument value, or impossible conversion
0x81100016 | Invalid clause encountered
0x81100017 | Operator missing, unrecognized operator encountered, or type mismatch
0x81100015 | Term type missing, or unrecognized term type encountered
0x81100014 | Unrecognized XML element encountered
0x81100013 | XML DOM object parsing error

Remarks

Because this method checks only syntax, the expression may still be invalid even though the method succeeds.

The expression store is not used for XML fragments.

[Visual Basic .NET]

Example

' sXMLExpr is a string.
' Note that this string is not formatted properly with respect to
' quotation marks or continuation in order to increase readability.

strXMLExpr = "<CLAUSE OPER="equal">
                  <PROPERTY ID="User.firstName" TYPE="string" />
                  <IMMED-VAL TYPE="string">Jill</IMMED-VAL>
              </CLAUSE>"

' bResult is a Boolean

bResult = oExpressionEval.ParseXML(sXMLExpr)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

Expression Recordset

Expression XML Structures

ExpressionEvaluatorClass

ExpressionEvaluator.Eval

ExpressionEvaluator.EvalXML


ExpressionEvaluator Properties (PIA)

Properties

Property | Type | Description
ExprCount | Integer | Retrieves the number of expressions loaded into the expression cache. This property is read-only.


ExpressionEvaluator.ExprCount Property (PIA)

The ExprCount property is a read-only Integer that indicates the number of expressions that are correctly pre-compiled and loaded into the expression cache. Expressions that contain syntactic errors will fail to pre-compile correctly.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Property ExprCount As Integer
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public int ExprCount {get;}

Property Value

The number of expressions loaded in the expression store.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib.dll)

See Also

ExpressionEvaluatorClass

ExpressionEvaluator.FlushAll

ExpressionEvaluator.FlushExpr

ExpressionEvaluator.LoadAll

ExpressionEvaluator.LoadExpr


ExpressionStore Class (PIA)

Use this object to manipulate expressions contained in an expression store. An expression store is a database of expressions along with information about the expressions. There is one expression store for each Commerce site.

Methods

Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADODB26Lib.Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.

Remarks

The connection string to a valid expression store must be stored using the Connect method before calling any other method of the ExpressionStore object.

An ExpressionStore object is internally created when the Connect method of an ExpressionEval object is invoked.

Many of the ExpressionStore methods use a Recordset object to store an expression. For more information, see Expression Recordset.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

Expression Recordset

Expression XML Structures

ExpressionEval Object


ExpressionStore Methods (PIA)

Methods

Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADODB26Lib.Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.


ExpressionStore.Connect Method (PIA)

Use this method to store the connection string to an expression store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Connect(
 strConnStr As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Connect(
 string strConnStr
);

Parameters

[Visual Basic .NET]
strConnStr
A String that contains the database connection information for the expression store.
[C#]
strConnStr
A string that contains the database connection information for the expression store.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110001E | Specified database does not contain a valid expression store
&H8110000D | No connection string specified
&H8110000F | Insufficient access permissions on the expression store database
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110001E | Specified database does not contain a valid expression store
0x8110000D | No connection string specified
0x8110000F | Insufficient access permissions on the expression store database

Remarks

The ExpressionStore object does not maintain a persistent ADO connection. This method stores the connection string after validating that the connection string points to an actual expression store. The Disconnect method sets the connection string to an empty string.

Each method of the ExpressionStore object creates a connection when needed, and when finished closes the connection. This relies on ADO connection pooling and provides higher availability.

The connection string for the expression store can be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the s_BizDataStoreConnectionString property under the keywords "Commerce Server Manager\Global Resources\Profiles."

The Connect method must be successfully executed before calling any other method of an externally created ExpressionStore object.

[Visual Basic .NET]

Example

' Connect using an explicit connection string .
' oExpressionStore is a valid ExpressionStore object

oExpressionStore.Connect ("Provider=SQLOLEDB;Data Source=server;" _
& "Initial Catalog=Retail_commerce;Integrated Security='SSPI'")

' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object.

sConn = oSCRO.Fields("Biz Data Service") _
.Value.Fields("s_BizDataStoreConnectionString").Value
oExpressionStore.Connect (sConn)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Disconnect

SiteConfigReadOnly Object


ExpressionStore.DeleteExpression Method (PIA)

Use this method to delete an existing expression from the expression store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub DeleteExpression(
 nExprID As Integer,
 flags As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void DeleteExpression(
 int nExprID,
 int flags
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that specifies the expression to be deleted.
flags
An Integer that contains the optional control flags. This parameter is currently unused and should be set to zero (0).
[C#]
nExprID
An int that specifies the expression to be deleted.
flags
An int that contains the optional control flags. This parameter is currently unused and should be set to zero (0).

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified, or expression ID not found in store
&H81100010 | Delete operation failed, possibly due to other expressions having dependencies on this expression
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified, or expression ID not found in store
0x81100010 | Delete operation failed, possibly due to other expressions having dependencies on this expression
0x8110000D | No connection string specified

Remarks

If the specified expression has a non-zero reference count, meaning that other expressions depend on the specified expression, the expression is not deleted.

Call the Connect method before calling the DeleteExpression method.

[Visual Basic .NET]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' 59552 is a valid expression ID retrieved by the GetExprID method.

oExpressionStore.Delete(59552, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.NewExpression


ExpressionStore.Disconnect Method (PIA)

Use this method to set the connection string to the expression store to an empty string.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Disconnect()
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Disconnect();

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about connecting and disconnecting to an expression store, see ExpressionStore.Connect.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class


ExpressionStore.Export Method (PIA)

Use this method to export the expressions stored in the expression store to a file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Export(
 bstrFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Export(
 string bstrFileName
);

Parameters

[Visual Basic .NET]
bstrFileName
A String that contains the name of the file used to store the expressions.
[C#]
bstrFileName
A string that contains the name of the file used to store the expressions.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000D | No connection string specified

Remarks

If the file to which you export does not exist prior to the call, the method will fail. If an absolute path is not specified, the file is placed in the \WINNT\System32 folder.

After the method successfully completes, the file contains the XML schema for the expression Recordset followed by the XML representation of each expression Recordset in the expression store.

Use the Import method to copy the expressions in a file to the expression store.

Call the Connect method before calling the Export method.

[Visual Basic .NET]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Export ("Expressions.xml")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Class

ExpressionStore.Import


ExpressionStore.GetAllExprs Method (PIA)

Use this method to retrieve an ADO _Recordset interface to a hierarchical Recordset object that contains all the expressions residing in the expression store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetAllExprs() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetAllExprs();

Return Values

[Visual Basic .NET] This method returns the _Recordset interface of a Recordset object. If successful, the Recordset object contains the expressions currently residing in the expression store. If unsuccessful, the Recordset object is set to Null.

[C#] This method returns an ADO _Recordset interface of a hierarchical Recordset object that contains all the expressions residing in the expression store.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000D | No connection string specified

Remarks

The Recordset object contains one record for each expression in the expression store. For information on the format and fields of the Recordset object, see Expression Recordset.

Use the GetExpression method to retrieve a single expression from the expression store.

Call the Connect method before calling the GetAllExprs method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetExpression


ExpressionStore.GetExpression Method (PIA)

Use this method to retrieve an ADO _Recordset interface to a hierarchical Recordset object that contains the specified expression.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function GetExpression(
 nExprID As Integer
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset GetExpression(
 int nExprID
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains the unique identifier of the expression.
[C#]
nExprID
An int that contains the unique identifier of the expression.

Return Values

[Visual Basic .NET] This method returns the _Recordset interface of a Recordset object. If successful, the Recordset object contains the specified expression. If unsuccessful, the Recordset object is set to Null.

[C#] This method returns an ADO _Recordset interface to a hierarchical Recordset object that contains the expression.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified, or expression ID not found in store
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified, or expression ID not found in store
0x8110000D | No connection string specified

Remarks

To access all expressions in the connected expression store, use the GetAllExprs method.

Call the Connect method before calling the GetExpression method.

The returned _Recordset interface to a Recordset contains valid data only if the method completes successfully.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

Expression Recordset

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetAllExprs

ExpressionStore.NewExpression


ExpressionStore.GetExprID Method (PIA)

Use this method to translate the name of an expression into its corresponding expression ID.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetExprID(
 strExprName As String
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public int GetExprID(
 string strExprName
);

Parameters

[Visual Basic .NET]
strExprName
A String that contains the expression name.
[C#]
strExprName
A string that contains the expression name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that contains the expression ID. On failure, the expression ID is set to EXPRID_INVALID (defined as -1).

[C#] This method returns an int that contains the expression ID. On failure, the expression ID is set to EXPRID_INVALID (defined as -1).

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H81100003 | Invalid expression name, or expression name not found in store
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x81100003 | Invalid expression name, or expression name not found in store
0x8110000D | No connection string specified

Remarks

Use the GetExprName method to translate the ID of an expression into its corresponding expression name.

Call the Connect method before calling the GetExprID method.

[Visual Basic .NET]

Example

' lExpressionID is an Integer
' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

lExpressionID = oExpressionStore.GetExprID("MyExpression")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetExpression

ExpressionStore.GetExprName

ExpressionStore.RenameExpression


ExpressionStore.GetExprName Method (PIA)

Use this method to translate the ID of an expression into its corresponding expression name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetExprName(
 nExprID As Integer
) As String
[C#]
public string GetExprName(
 int nExprID
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains a unique expression ID.
[C#]
nExprID
An int that contains a unique expression ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the name of the expression. An empty String is returned if the expression ID is an Integer but does not represent an existing expression.

[C#] This method returns a string that contains the name of the expression. On failure, the expression name is set to null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified, or expression ID not found in store
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified, or expression ID not found in store
0x8110000D | No connection string specified

Remarks

[Visual Basic .NET]

Use the GetExprID method to translate the name of an expression into its corresponding expression ID.

Call the Connect method before calling the GetExprName method.

[C#]

Use the GetExprID method to translate the name of an expression into its corresponding expression ID.

Call the Connect method before calling the GetExprName method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetExprID


ExpressionStore.Import Method (PIA)

Use this method to import expressions from a file into the expression store.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Import(
 bstrFileName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Import(
 string bstrFileName
);

Parameters

[Visual Basic .NET]
bstrFileName
A String that contains the path and name of the file from which to import the expressions.
[C#]
bstrFileName
A string that contains the path and name of the file from which to import the expressions.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000D | No connection string specified
&H8110000C | Cannot import to a non-empty store
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000D | No connection string specified
0x8110000C | Cannot import to a non-empty store

Remarks

The expression store must be empty in order to import expressions.

The import file must contain the XML schema for the expression Recordset followed by the XML representation of each expression Recordset. Expression Recordsets with invalid expression bodies are imported but will cause an error upon evaluation.

Use the Export method to copy the XML schema for the expression Recordset and all the expressions from the expression store to a file.

Call the Connect method before calling the Import method.

[Visual Basic .NET]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Import("\SomePath\Expressions.xml")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

Expression Recordset

Expression XML Structures

ExpressionStore Class

ExpressionStore.Export


ExpressionStore.NewExpression Method (PIA)

Use this method to return an ADO _Recordset interface to a hierarchical Recordset object that contains an empty expression.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function NewExpression() As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset NewExpression();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns the _Recordset interface of a Recordset object that contains an empty expression.

[C#] This method returns an ADO _Recordset interface to a hierarchical Recordset object that contains an empty expression.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000D | No connection string specified

Remarks

Populate the returned Recordset object with data describing the new expression. For information on the format and required fields of the Recordset object, see Expression Recordset.

Save the newly defined expression to the expression store using the SaveExpression method. The SaveExpression method automatically generates a new, unique expression ID and stores it with the new expression.

Call the Connect method before calling the NewExpression method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.SaveExpression


ExpressionStore.Query Method (PIA)

Use this method to retrieve a _Recordset interface to a Recordset object containing expressions that match the specified query conditions. At least one of the optional arguments must be specified.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
Imports ADODB26Lib     ‘ for _Recordset
…
Public Function Query(
 Optional vName As Object,
 Optional vCategory As Object,
 Optional vProfiles As Object
) As _Recordset
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset Query(
 object vName,
 object vCategory,
 object vProfiles
);

Parameters

[Visual Basic .NET]
vName
An optional String named to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vCategory
When specified, a String containing the category or System.Array of category strings to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vProfiles
When specified, a String containing the profile name or System.Array of profile names to match expressions against. Profile names must be specified without wildcards.
[C#]
vName
When specified, a string name to match expressions against. This is used in an SQL LIKE clause that permits wildcards. Set to Type.Missing in order to not specify a name to match against.
vCategory
When specified, a string containing the category or System.Array of category strings to match expressions against. This is used in an SQL LIKE clause that permits wildcards. Set to Type.Missing in order to not specify a category to match against.
vProfiles
When specified, a string containing the profile name or System.Array of profile names to match expressions against. Profile names must be specified without wildcards. Set to Type.Missing in order to not specify a profile name to match against.

Return Values

[Visual Basic .NET] This method returns the _Recordset interface of a Recordset object. If successful, the Recordset object contains the result set of expressions. If unsuccessful, the Recordset object is set to Null.

[C#] This method returns a _Recordset interface to a Recordset object that contains the result set of expressions. On failure, the pointer to the Recordset object will be set to null.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000D | No connection string specified

Remarks

If a combination of the optional parameters is specified, the retrieved expressions satisfy all constraints (implicit AND applied). For example, if name = "Robert%" and category = "General", only expressions with names starting with "Robert" and with a category of "General" will be returned.

When multiple profile names are specified, the query result includes expressions with profile requirements (dependencies) that include any of the listed profile names (implicit OR applied). Thus, if name = "Robert%" and the profiles "User" and "Context" are specified as profiles, the Query method will return all expressions with names starting with "Robert" and profiles requiring only "User", only "Context", or both "User" and "Context".

For details on the ADO Recordset object that represents the expression, see Expression Recordset.

Call the Connect method before calling the Query method.

[Visual Basic .NET]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' rsExpr is a Recordset object that will contain all expressions
' with a name starting with 'Express', having a category of
' Octogenarians' and a profile dependency on 'joeuser'.

rsExpr = oExpressionStore.Query("Express%", "Octogenarians", "joeuser")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect


ExpressionStore.RenameExpression Method (PIA)

Use this method to rename an existing expression in the expression store. The new expression name must be unique or the operation will fail.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub RenameExpression(
 nExprID As Integer,
 strNewName As String
)
[C#]
public void RenameExpression(
 int nExprID,
 string strNewName
);

Parameters

[Visual Basic .NET]
nExprID
An Integer that contains the expression ID.
strNewName
A String that contains the new name.
[C#]
nExprID
An int that contains the expression ID.
strNewName
A string that contains the new name.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H8110000A | Invalid expression ID specified, or expression ID not found in store
&H81100003 | Invalid expression name
&H81100007 | Duplicate expression name
&H81100005 | The new name exceeds the maximum size of 30 characters
&H8110000D | No connection string specified
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x8110000A | Invalid expression ID specified, or expression ID not found in store
0x81100003 | Invalid expression name
0x81100007 | Duplicate expression name
0x81100005 | The new name exceeds the maximum size of 30 characters
0x8110000D | No connection string specified

Remarks

Use the GetExprID method to translate an expression name to its corresponding expression ID.

Call the Connect method before calling the RenameExpression method.

[Visual Basic .NET]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' 52997 is a valid expression ID retrieved from the GetExprId method.
oExpressionStore.RenameExpression(52997, "MyNewName")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetExprID


ExpressionStore.SaveExpression Method (PIA)

Use this method to save a new or modified expression to the expression store. For a new expression, the SaveExpression method automatically generates a unique expression ID and stores it with the expression.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
Imports ADODB26Lib     ‘ for _Recordset
…
Public Sub SaveExpression(
 pRSExpr As _Recordset
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For _Recordset
…
public _Recordset SaveExpression();

Parameters

[Visual Basic .NET]
pRSExpr
The _Recordset interface of a Recordset object that contains the expression.

Return Values

[C#] This method returns an ADO _Recordset interface to a hierarchical Recordset object that contains the expression.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8110001F | Invalid connection
&H81100004 | Invalid or missing expression body
&H8110000A | Invalid expression category specified
&H81100003 | Invalid expression name
&H81100006 | A cycle was detected in the expression dependencies of this expression
&H81100009 | Duplicate expression dependency
&H81100007 | Duplicate expression name
&H81100008 | Duplicate profile dependency
&H8110000B | One or more of the expression dependencies refers to an expression ID that does not exist
&H81100005 | The new name exceeds the maximum size of 30 characters
&H8110000D | No connection string specified
&H81100002 | Expression must have at least one profile dependency to be saved
[C#]

The following table shows the custom COM errors that COMException can wrap.

Value | Description
0x8110001F | Invalid connection
0x81100004 | Invalid or missing expression body
0x8110000A | Invalid expression category specified
0x81100003 | Invalid expression name
0x81100006 | A cycle was detected in the expression dependencies of this expression
0x81100009 | Duplicate expression dependency
0x81100007 | Duplicate expression name
0x81100008 | Duplicate profile dependency
0x8110000B | One or more of the expression dependencies refers to an expression ID that does not exist
0x81100005 | The new name exceeds the maximum size of 30 characters
0x8110000D | No connection string specified
0x81100002 | Expression must have at least one profile dependency to be saved

Remarks

If the expression being saved is not currently in the expression store, the SaveExpression method generates a unique identifier and populates the ExprID field of the Recordset object. The identifier is a positive integer. For more information about the format and fields of the Recordset object, see Expression Recordset.

The ExpressionStore object performs rudimentary checks for expression dependencies when an expression is saved or deleted. This includes any direct references, a test for cyclic referencing, and any references to nonexistent expressions.

Call the Connect method before calling the SaveExpression method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

ExpressionStore Class

ExpressionStore.Connect

ExpressionStore.GetExpression

ExpressionStore.NewExpression


Expression Recordset (PIA)

An expression is a statement constructed with Boolean and relational operators that is evaluated against the data in a given set of profiles. The part of an expression that is evaluated is stored as an Extended Markup Language (XML) string in the ExprBody field of a Recordset object. Recordset objects are contained in a database known as the Expression Store.

This section contains:

  • Expression Recordset Object. Describes the _Recordset interface of a Recordset object that represents the expression.
  • Expression Recordset Example. Shows an example of an expression Recordset object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: exprarchlib (in exprarchlib)

See Also

Expression XML Structures

ExpressionEval Object

ExpressionStore Class


Expression Recordset Object (PIA)

[Visual Basic .NET]

The ExpressionStore object represents expressions and their dependencies using a _Recordset interface of a Recordset object. The structure of this Recordset object consists of a parent Recordset object with pointers to two child Recordset objects.

An empty Recordset object with the prescribed structure is created by calling the NewExpression method of the ExpressionStore object. Once the fields of the Recordset object have been filled in, the SaveExpression method is used to commit the expression to the expression store. In a similar fashion, those methods of the ExpressionStore object that return expressions from the store, such as GetExpression and GetAllExprs, return the expression data in this hierarchical Recordset object structure.

Parent Recordset (PIA)

The fields in the parent Recordset object are shown in the following table.

Field | Type | Requirement | Description
ExprID | Integer | Generated by the SaveExpression method of the ExpressionStore object when a new expression is saved. | Unique identifier for the expression. This is a positive integer.
ExprName | String | Required field supplied by the user. | Unique name of the expression. The following characters are not allowed: ', ", &, \, /, <, and >.
Category | String | Optional field supplied by the user. | Category of the expression. May be used as a filter. The following characters are not allowed: ', ", &, \, /, <, and >.
ExprDesc | String | Optional field supplied by the user. | Description of the expression. Maximum length is 200 characters. The following characters are not allowed: &, <, >
ExprBody | String | Required field supplied by the user. | Extensible Markup Language (XML) body of the recordset. The evaluable expression. Maximum length is 3400 characters. For more information, see Expression XML Structures.
DateCreated | Date | Generated by the system. | Date the recordset was created.
DateModified | Date | Generated by the system. | Date the recordset was last modified.
rsExprDeps | Recordset pointer | Generated by the system. | A pointer to the child Recordset object listing the expression dependencies of this expression.
rsProfDeps | Recordset pointer | Generated by the system. | A pointer to the child Recordset object listing the profile type dependencies of this expression.

Expression Dependencies Child Recordset

This Recordset object contains a record for each expression that the parent expression is immediately dependent on. The information does not include nested dependencies. If the parent expression does not depend on any expressions, this recordset may be empty.

The fields in the expression dependencies child Recordset object are shown in the following table.

Field | Type | Description
ExprID | Integer | Identifier of the parent expression.
ExprDep | Integer | Identifier of the dependent expression.

Profile Dependencies Child Recordset

This Recordset object contains a record for each profile this expression is dependent on. The user must populate at least one record when creating a new expression.

The fields in the profile dependencies Recordset object are shown in the following table.

Field | Type | Description
ExprID | Integer | Identifier of the parent expression.
ProfDep | String | Name of the dependent profile.

Remarks (PIA)

The ExprID fields of the two child Recordset objects contain the same value as the ExprID field of the parent Recordset object that is generated when a new expression is saved.

[C#]

The ExpressionStore object represents expressions and their dependencies using an ADO-shaped hierarchical Recordset object. The structure of this Recordset object consists of a parent Recordset object with pointers to two child Recordset objects.

An empty Recordset object with the prescribed structure is created by calling the NewExpression method of the ExpressionStore object. Once the fields of the Recordset object have been filled in, the SaveExpression method is used to commit the expression to the expression store. In a similar fashion, those methods of the ExpressionStore object that return expressions from the store, such as GetExpression and GetAllExprs, return the expression data in this hierarchical Recordset object structure.

Note that in general the ExpressionStore methods actually return the _Recordset interface to the actual Recordset. The Recordset does not implement all the methods that Recordset does, but it implements many. You can use the Recordset directly, or you can cast it to a true Recordset to have all methods available.

ExpressionStore myES = new EspressionStore();

_Recordset myRSI = myES.Query(�socks�, �clothes�, Type.Missing);

//Use the interface for operations �

myRSI.MoveFirst();

//� or cast the interface to a real Recordset and use it

RecordSet myCastRS = (Recordset)myRSI;

myCastRS.MoveNext();


Expression Recordset Example (PIA)

[Visual Basic .NET]

The following examples show two Recordset objects containing expressions. The first is for an expression (ID = 7) dependent on one profile (User) and no expressions. The second is for an expression (ID = 24) dependent on one other expression (ID=7) and two hypothetical profiles (Product and User). The DateCreated, DateModified, rsExprDeps, and rsProfDeps fields are not shown.

Parent Recordset for Expression7

ExprID | ExprName | Category | ExprDesc | ExprBody
7 | �Expression7� | �Hair� | �Brown� | String7

Expression Dependencies Child Recordset for Expression7

ExprID | ExprDep
- | -

Profile Dependencies Child Recordset for Expression7

ExprID | ProfDep
7 | �User�
String7 = "<CLAUSE OPER="is-true">
             <PROPERTY ID="User.GeneralInfo.hair" TYPE="string"/>
             <IMMED-VAL TYPE="string">Brown</IMMED-VAL>
           </CLAUSE>"

Parent Recordset for Expression24

ExprID | ExprName | Category | ExprDesc | ExprBody
24 | �Expression24� | �Octogenarians� | brown_haired_users_over_80 | String24

Expression Dependencies Child Recordset for Expression24

ExprID | ExprDep
24 | 7

Profile Dependencies Child Recordset for Expression24

ExprID | ProfDep
24 | �Product�
24 | �User�
String24 = "<TERM TYPE="and">
              <CLAUSE OPER="is-true">
                <EXPR-REF ID=7/>
              </CLAUSE>
              <CLAUSE OPER="equal">
                <PROPERTY ID="Product.name" TYPE="string"/>
                <IMMED-VAL TYPE="string">hair dye</IMMED-VAL>
              </CLAUSE>
              <CLAUSE OPER="at-least">
                <PROPERTY ID="User.GeneralInfo.age" TYPE="number"/>
                <IMMED-VAL TYPE="number">80</IMMED-VAL>
              </CLAUSE>
            </TERM>"
[C#]

The following examples shows two Recordset objects containing expressions. The first is for an expression (ID = 7) dependent on one profile (User) and no expressions. The second is for an expression (ID = 24) dependent on one other expression (ID=7) and two hypothetical profiles (Product and User). The DateCreated, DateModified, rsExprDeps, and rsProfDeps fields are not shown.

Parent Recordset for Expression7

ExprID | ExprName | Category | ExprDesc | ExprBody
7 | Expression7 | Hair | Brown | String7

Expression Dependencies Child Recordset for Expression7

ExprID | ExprDep
- | -

Profile Dependencies Child Recordset for Expression7

ExprID | ProfDep
7 | User
String7 = "<CLAUSE OPER="is-true">
             <PROPERTY ID="User.GeneralInfo.hair" TYPE="string"/>
             <IMMED-VAL TYPE="string">Brown</IMMED-VAL>
           </CLAUSE>"

Parent Recordset for Expression24

ExprID | ExprName | Category | ExprDesc | ExprBody
24 | Expression24 | Octogenarians | Brown_haired_users_over_80 | String24

Expression Dependencies Child Recordset for Expression24

ExprID | ExprDep
24 | 7

Profile Dependencies Child Recordset for Expression24

ExprID | ProfDep
24 | Product
24 | User
String24 = "<TERM TYPE="and">
              <CLAUSE OPER="is-true">
                <EXPR-REF ID=7/>
              </CLAUSE>
              <CLAUSE OPER="equal">
                <PROPERTY ID="Product.name" TYPE="string"/>
                <IMMED-VAL TYPE="string">hair dye</IMMED-VAL>
              </CLAUSE>
              <CLAUSE OPER="at-least">
                <PROPERTY ID="User.GeneralInfo.age" TYPE="number"/>
                <IMMED-VAL TYPE="number">80</IMMED-VAL>
              </CLAUSE>
            </TERM>"


ListManager Class (PIA)

Use this object to create and manage lists of users for the Profiling System, lists of e-mail addresses for Direct Mailer, and lists created from files and SQL queries.

Methods

Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.

Properties

Property | Type | Description
ConnectionString | String | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | Integer | Stores the current status of the ListManager object. This property is read-only.

Remarks

ListManager has functionality to manipulate two types of lists, Generic and Mailing. Each type may also have User and Mailable attributes. Lists are designated as static or dynamic depending on when the data is imported.

A Generic list may have any set of column names and types — it essentially maps to an SQL table.

A Mailing list is a list for use with Direct Mailer. It contains a list of recipients to receive mail or a list of recipients who are opted out of a mailing. Each mailing list has its own table.

The following table shows the columns of a Mailing list table.

Field | Type | Description
rcp_email | NVARCHAR [256] | E-mail address of the recipient.
rcp_guid | NVARCHAR [64] | (Optional) User ID. Usually a GUID which is a key to the profile of the user.
rcp_fmt | smallint | (Optional) Message format flag. Legal values are: 1 - TEXT 2 - MIME 3 - MHTML
rcp_locale | NVARCHAR[20] | (Optional) Preferred character set of the recipient. See DirectMailer specifications for details.
rcp_url | NVARCHAR[2084] | (Optional) URL used for retrieving personalized content for the user.

A Mailable list is any list with an rcp_email column.

A User list is any list with an rcp_guid column.

In a static list, records are imported at the time the list is created.

A dynamic list imports records on demand when referenced by another operation.

ListManager can import lists from the following sources:

  • An SQL query run against an ODBC data source
  • A text file in comma-separated values (CSV) format

ListManager can export lists to the following destinations:

  • A SQL Server 2000 table in an external database
  • A text file (CSV format)

ListManager allows time-consuming operations to run in an asynchronous manner wherein the operation returns immediately after the process has started and assigns an operation ID that can be used to access the operation.

ListManager stores information about lists and operations in the lm_master and lm_master_operations tables, respectively.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)


ListManager Methods (PIA)

Methods

Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.


ListManager.AddUserToMailingList Method (PIA)

Use this method to add a user record to a Mailing list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub AddUserToMailingList(
  listID As Object,
  UserEmail As Object,
  Optional UserGUID As Object,
  Optional UserFmt As Object,
  Optional UserLocale As Object,
  Optional UserUrl As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void AddUserToMailingList(
  object listID,
  object UserEmail,
  object UserGUID,
  object UserFmt,
  object UserLocale,
  object UserUrl
);

Parameters

[Visual Basic .NET]
listID
An Object that contains ID or name of the list.
UserEmail
An Object that contains the e-mail address of the user.
UserGUID
An optional Object that contains the ID of the user (usually a GUID).
UserFmt
An optional Object that contains the message format flag. See the Remarks section for more information.
UserLocale
An optional Object that contains the preferred character set of the user.
UserUrl
An optional Object that contains a URL used for retrieving personalized content for the user.
[C#]
listID
An object that contains the ID or name of the list.
UserEmail
An object that contains the e-mail address of the user.
UserGUID
An object that contains the ID of the user (usually a GUID).
UserFmt
An object that contains the message format flag. See the Remarks section for more information.
UserLocale
An object that contains the preferred character set of the user.
UserUrl
An object that contains a URL used for retrieving personalized content for the user.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C400019 | The operation requires a static list and the specified list is dynamic.
&H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.

Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C400019 | The operation requires a static list and the specified list is dynamic.
0x8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The UserFmt parameter specifies the format of a message used by Direct Mailer. The possible values are: text (1), MIME (2), and MHTML (3).

To specify that one or more of the fields should be inserted as Null, pass DBNull.Value as the parameter(s).

[Visual Basic .NET]

Example

oListManager.AddUserToMailingList ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "JaneUser@somewhere.com", "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 2, 1033, DBNull.Value)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.CancelOperation Method (PIA)

Use this method to cancel the specified ListManager operation.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub CancelOperation(
 varOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void CancelOperation(
 object varOpID
);

Parameters

[Visual Basic .NET]
varOpID
An Object that specifies the Operation ID of the operation to be cancelled.
[C#]
varOpID
An object that specifies the Operation ID of the operation to be cancelled.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400004 | The operation ID does not represent a currently running operation.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400004 | The operation ID does not represent a currently running operation.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The Operation ID passed to this method in the varOpID parameter can be obtained from any of the following calls when they are executed asynchronously:

  • Copy
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union

In addition, the Operation IDs of all known operations can be retrieved using the GetOperations method.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Copy Method (PIA)

Use this method to copy an existing list over another existing list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Copy(
 srcList As Object,
 resList As Object,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Copy(
 object srcList,
 object resList,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
srcList
An Object that contains the ID or name of the source list.
resList
An Object that contains the ID or name of the result list.
bAsync
An Integer that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
srcList
An object that contains the ID or name of the source list.
resList
An object that contains the ID or name of the result list.
bAsync
An int that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C40001C | Cannot copy a list over itself.
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C40001C | Cannot copy a list over itself.
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The result list must exist prior to calling the method; however, any data in the list will be overwritten.

The flags attribute of the destination list is replaced with the flags attribute of the source list. The UserFlags attribute is not changed.

[Visual Basic .NET]

Example

' pvarOdID is an Object
oListManager.Copy ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", 1, pvarOpID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.CreateEmpty Method (PIA)

Use this method to create an empty list for subsequent operations.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateEmpty(
 listName As String,
 listDesc As String,
 flags As Integer,
 userFlags As Integer
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object CreateEmpty(
 string listName,
 string listDesc,
 int flags,
 int userFlags
);

Parameters

[Visual Basic .NET]
listName
A String that provides the name for the new list.
listDesc
A String that provides a description for the new list.
flags
An Integer that specifies the bitmask flags that control the type of list created.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
[C#]
listName
A string that provides the name for the new list.
listDesc
A string that provides a description for the new list.
flags
An int that specifies the bitmask flags that control the type of list created.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the ID of the new list.

[C#] This method returns an object used to return the ID of the new list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400005 | Invalid flags value.
&H8C400007 | The specified list has already been created.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400005 | Invalid flags value.
0x8C400007 | The specified list has already been created.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

This method is useful for creating an empty list to use as the result list for a copy, subtract, or union operation.

For a list of possible values for the flags parameter, see the GetListFlags method.

[Visual Basic .NET]

Example

' oListID is an Object
oListID = oListManager.CreateEmpty("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.CreateFromDWCalc Method (PIA)

Use this method to create a list from an Analysis report.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateFromDWCalc(
 listName As String,
 listDesc As String,
 lFlags As Integer,
 userFlags As Integer,
 DWConnStr As String,
 OLAPConnStr As String,
 ReportStatusId As String,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object CreateFromDWCalc(
 string listName,
 string listDesc,
 int lFlags,
 int userFlags,
 string DWConnStr,
 string OLAPConnStr,
 string ReportStatusId,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listName
A String that provides the name for the new list.
listDesc
A String that provides a description for the new list.
lFlags
An Integer that specifies the bitmask flags that control the type of list created.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
DWConnStr
A String that contains the connection string for the Data Warehouse.
OLAPConnStr
A String that contains the OLAP connection string.
ReportStatusId
A String that contains the ReportStatusID of the report to be imported.
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
listName
A string that provides the name for the new list.
listDesc
A string that provides a description for the new list.
lFlags
An int that specifies the bitmask flags that control the type of list created.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.
DWConnStr
A string that contains the connection string for the Data Warehouse.
OLAPConnStr
A string that contains the OLAP connection string.
ReportStatusId
A string that contains the ReportStatusID of the report to be imported.
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the ID of the new list.

[C#] This method returns a reference to an object used to return the ID of the new list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400001 | Failed to establish database connection.
&H8C400017 | Unable to create the object.
&H8C400005 | Invalid flags value.
&H8C400007 | The specified list has already been created.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C40000B | The operation was canceled.
&H8C40001A | The report rendering object failed during Analysis report export to List Manager. See the Application event log message logged by that object describing the problem.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400001 | Failed to establish database connection.
0x8C400017 | Unable to create the object.
0x8C400005 | Invalid flags value.
0x8C400007 | The specified list has already been created.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C40000B | The operation was canceled.
0x8C40001A | The report rendering object failed during Analysis report export to List Manager. See the Application event log message logged by that object describing the problem.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

This method calls into the ReportRender object, passing it the DWConnStr, OLAPConnStr, and ReportStatusId parameters along with a connection string to the database used by the ListManager object, and the table name that it should create.

For a list of possible values for the lflags parameter, see the GetListFlags method.

[Visual Basic .NET]

Example

' oListID is an Object
oListID = oListManager.CreateFromDWCalc("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0, "URL=mscop:" & _
 "//InProcConnect/Server=myserver:Database=dbname:" & _
 "Catalog=DWSchema:  Trusted_Connection=Yes:FastLoad=True", _
 "2B54480041694C4987131B794078B4C9", 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.CreateFromFile Method (PIA)

Use this method to create a list from a text file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateFromFile(
 listName As String,
 listDesc As String,
 lFlags As Integer,
 userFlags As Integer,
 fileName As String,
 errLimit As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object CreateFromFile(
 string listName,
 string listDesc,
 int lFlags,
 int userFlags,
 string fileName,
 int errLimit,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listName
A String that provides the name for the new list.
listDesc
A String that provides a description for the new list.
lFlags
An Integer that specifies the bitmask flags that control the type of list created.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
fileName
A String that contains the name of the file from which to create the new list.
errLimit
An Integer that specifies the maximum number of errors allowed before the operation is terminated. To specify no limit, set the errLimit parameter to zero (0).
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
listName
A string that provides the name for the new list.
listDesc
A string that provides a description for the new list.
lFlags
An int that specifies the bitmask flags that control the type of list created.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.
fileName
A string that contains the name of the file from which to create the new list.
errLimit
An int that specifies the maximum number of errors allowed before the operation is terminated. To specify no limit, set the errLimit parameter to zero (0).
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the ID of the new list.

[C#] This method returns a reference to an object used to return the ID of the new list.

[Visual Basic .NET]

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C40000A | The specified file path is not valid.
&H8C400009 | The List Manager service does not have permission to open the specified file. Check the permissions for the List Manager service account against the permissions for the file.
&H8C400015 | The specified file does not exist.
&H8C400016 | The network share does not exist and a full path was not specified for the file.
&H8C400005 | Invalid flags value.
&H8C400007 | The specified list has already been created.
&H8C40001B | All rows in the file contained parse errors. List import failed.
&H8C400014 | Generic lists may not be imported from files.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C40000A | The specified file path is not valid.
0x8C400009 | The List Manager service does not have permission to open the specified file. Check the permissions for the List Manager service account against the permissions for the file.
0x8C400015 | The specified file does not exist.
0x8C400016 | The network share does not exist and a full path was not specified for the file.
0x8C400005 | Invalid flags value.
0x8C400007 | The specified list has already been created.
0x8C40001B | All rows in the file contained parse errors. List import failed.
0x8C400014 | Generic lists may not be imported from files.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

If a list with the same name as the listName parameter already exists, the method fails. Lists imported from text files may not be generic lists; they are always mailing lists.

The user account that the ListManager is configured to run under must have permission to access the file. For example, if the file is on a network share, the service must be running under a domain account or must otherwise have permission to access the share.

If an absolute file path and name is not specified, ListManager will look for the file relative to a root folder named CommerceLists on the local computer running the List Manager service. If the folder does not exist, an error is returned.

ListManager recognizes the following input text file format:

   <Mail-to address>,<User ID>,<Message Format>,<Locale>,
   <Source URL><cr><lf>

Mail-to address is the only required field. The Message Format field should be one of the following: 1 = text, 2 = MIME, or 3 = MHTML. The Message Format, Locale, and Source fields are provided for use with Direct Mailer.

Any of the fields may be enclosed in double quotation marks. This is required if the value in the field contains any comma or double quotation mark characters. Two double quotation marks together within a quoted field can be used to denote a double quotation mark. A trailing comma will produce an error.

For a list of possible values for the lflags parameter, see the GetListFlags method.

Rows with duplicate e-mail addresses in the file are ignored.

The parameter pvarOpID contains valid data only if the creation operation is performed asynchronously.

Example

' oListID is an Object
oListID = oListManager.CreateFromFile("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0, "Tequilla.csv", 10, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.CreateFromSegment Method (PIA)

Use this method to create a list from a Predictor resource segment.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateFromSegment(
  listName As String,
  listDesc As String,
  lFlags As Integer,
  userFlags As Integer,
  modelName As String,
  segmentName As String,
  predHostName As String,
  DWConnStr As String,
  fpMinProbability As Double,
  bAsync As Integer,
  Optional ByRef pvarOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object CreateFromSegment(
  string listName,
  string listDesc,
  int lFlags,
  int userFlags,
  string modelName,
  string segmentName,
  string predHostName,
  string DWConnStr,
  double fpMinProbability,
  int bAsync,
  ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listName
A String that contains provides the name for the list.
listDesc
A String that contains the list description.
lFlags
An Integer that specifies the bitmask flags that control the type of list created.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
modelName
A String that contains the name of the Predictor segment model to use.
segmentName
A String that contains the name of the segment to import.
predHostName
A String that contains the name of the Predictor host server.
DWConnStr
A String that contains the Data Warehouse connection string.
fpMinProbability
A Double that contains the minimum probability associated with a given segment member for that member to be included in the list.
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
listName
A string that provides the name for the list.
listDesc
A string that contains the list description.
lFlags
An int that specifies the bitmask flags that control the type of list created.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.
modelName
A string that contains the name of the Predictor segment model to use.
segmentName
A string that contains the name of the segment to import.
predHostName
A string that contains the name of the Predictor host server.
DWConnStr
A string that contains the Data Warehouse connection string.
fpMinProbability
A double that contains the minimum probability associated with a given segment member for that member to be included in the list.
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object used to return the new list ID.

[C#] This method returns a reference to an object used to return the new list ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400001 | Failed to establish database connection.
&H8C400017 | Unable to create the object.
&H8C400005 | Invalid flags value.
&H8C400007 | The specified list has already been created.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400001 | Failed to establish database connection.
0x8C400017 | Unable to create the object.
0x8C400005 | Invalid flags value.
0x8C400007 | The specified list has already been created.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

This method calls into the PredictorServiceSiteAdmin object, passing it the modelName, segmentName, and fpMinProbability parameters along with a connection string to the database used by the ListManager object, and the table name that it should create.

For a list of possible values for the lflags parameter, see the GetListFlags method.

[Visual Basic .NET]

Example

' oListID is an Object
oListID = oListManager.CreateFromSegment("TequillaBuyers", _
 "Thirty year old tequilla buyers ", 20, 0, "Tequilla", "Thirty", _
 "TequillaServer", "Provider=SQLOLEDB;Data Source=servername;" & _
 "Initial Catalog=Retail_dw;Integrated Security='SSPI';", 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class

ListManager.GetListFlags


ListManager.CreateFromSql Method (PIA)

Use this method to create a list from an SQL query.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function CreateFromSql(
 listName As String,
 listDesc As String,
 lFlags As Integer,
 userFlags As Integer,
 connStr As String,
 queryStr As String,
 errLimit As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object CreateFromSql(
 string listName,
 string listDesc,
 int lFlags,
 int userFlags,
 string connStr,
 string queryStr,
 int errLimit,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listName
A String that provides the name for the list.
listDesc
A String that provides a description for the list.
lFlags
An Integer that specifies the bitmask flags that control the type of list created.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
connStr
A String that contains the connection string for the SQL Server database.
queryStr
A String that contains the SQL query for retrieving the contents of the new list.
errLimit
An Integer that is not used.
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
listName
A string that provides the name for the list.
listDesc
A string that provides a description for the list.
lFlags
An int that specifies the bitmask flags that control the type of list created.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.
connStr
A string that contains the connection string for the SQL Server database.
queryStr
A string that contains the SQL query for retrieving the contents of the new list.
errLimit
An int that is not used.
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the ID of the new list.

[C#] This method returns a reference to an object used to return the ID of the new list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400001 | Failed to establish database connection.
&H8C400005 | Invalid flags value.
&H8C400007 | The specified list has already been created.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400001 | Failed to establish database connection.
0x8C400005 | Invalid flags value.
0x8C400007 | The specified list has already been created.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

It is recommended that you use the MSDASQL (ODBC) OLEDB provider with this method.

The CreateFromSQL method uses the T-SQL OpenRowset command to run the query against the database.

For a list of possible values for the lflags parameter, see the GetListFlags method.

[Visual Basic .NET]

Example

' oListID is an Object
oListID = oListManager.CreateFromSql("LegalTequillaBuyers", _
 "Tequilla buyers at least 21", 20, 0, "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "Integrated Security='SSPI'", "SELECT * FROM dbname.dbo.Tequilla " & _
 "WHERE Age >= 21", 10, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Delete Method (PIA)

Use this method to delete a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Delete(
 listID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Delete(
 object listID
);

Parameters

[Visual Basic .NET]
listID
An Object that specifies the ID or name of the list to be deleted.
[C#]
listID
An object that specifies the ID or name of the list to be deleted.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

To be deleted, a list cannot be busy with any operation.

The list data is also deleted.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.ExportToFile Method (PIA)

Use this method to export a Mailing list to a text file.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub ExportToFile(
 listID As Object,
 fileName As String,
 bUnicode As Integer,
 bOverwrite As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void ExportToFile(
 object listID,
 string fileName,
 int bUnicode,
 int bOverwrite,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list to be exported.
fileName
A String that contains the name of the file.
bUnicode
An Integer that specifies the character format of the export file. A value of 1 indicates that Unicode characters should be used. A value of 0 indicates that the current system character set should be used.
bOverwrite
An Integer that specifies whether to overwrite the data in the export file, if it exists. A value of 1 indicates that the data should be overwritten. A value of 0 causes the method to fail if the file exists.
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
listID
An object that contains the ID or name of the list to be exported.
fileName
A string that contains the name of the file.
bUnicode
An int that specifies the character format of the export file. A value of 1 indicates that Unicode characters should be used. A value of 0 indicates that the current system character set should be used.
bOverwrite
An int that specifies whether to overwrite the data in the export file, if it exists. A value of 1 indicates that the data should be overwritten. A value of 0 causes the method to fail if the file exists.
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C40000A | The specified file path is not valid.
&H8C400009 | The List Manager service does not have permission to open the specified file. Check the permissions for the List Manager service account against the permissions for the file.
&H8C400010 | The specified file cannot be created because it already exists.
&H8C400016 | The network share does not exist and a full path was not specified for the file.
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C40000A | The specified file path is not valid.
0x8C400009 | The List Manager service does not have permission to open the specified file. Check the permissions for the List Manager service account against the permissions for the file.
0x8C400010 | The specified file cannot be created because it already exists.
0x8C400016 | The network share does not exist and a full path was not specified for the file.
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

If the list is a Mailable list but not a Mailing list, a temporary Mailing list is created and then exported.

If an absolute file path and name are not specified, ListManager exports the file relative to a root folder named CommerceLists on the local computer running the ListManager resource. If the folder does not exist, an error is returned.

ListManager exports the file in the following format. The is Message Format field is an integer, all other fields are strings and enclosed in double quotation marks.

   <Mail-to address>,<User ID>,<Message Format>,<Locale>,
   <Source URL><cr><lf>

The parameter pvarOpID contains valid data only if the export operation is performed asynchronously.

[Visual Basic .NET]

Example

oListManager.ExportToFile ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Tequila.csv", 0, 1, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.ExportToSql Method (PIA)

Use this method to export a list to the specified table in a Microsoft SQL Server database. This operation can be performed synchronously or asynchronously.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub ExportToSql(
 listID As Object,
 connStr As String,
 resTable As String,
 bOverwrite As Integer,
 lOptions As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void ExportToSql(
 object listID,
 string connStr,
 string resTable,
 int bOverwrite,
 int lOptions,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list to be exported.
connStr
A String that contains the connection string for the SQL Server database.
resTable
A String that contains the name of the table into which the list will be exported.
bOverwrite
An Integer that specifies whether to overwrite the data in the table if the table already exists. A value of 1 indicates that the data should be overwritten. A value of 0 produces an error if the tables already exist.
lOptions
An Integer that specifies the export options, for use by the Direct Mail resource. Other applications should generally pass the value 0. A value of 1 causes special action to be taken. See the Remarks section below.
bAsync
An Integer that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
An optional Object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C#]
listID
An object that contains the ID or name of the list to be exported.
connStr
A string that contains the connection string for the SQL Server database.
resTable
A string that contains the name of the table into which the list will be exported.
bOverwrite
An int that specifies whether to overwrite the data if the table already exists. A value of 1 indicates that the data should be overwritten. A value of 0 produces an error if the tables already exist.
lOptions
An int that specifies the export options for use by the Direct Mail resource. Other applications should generally pass the value 0. A value of 1 causes special action to be taken. See the Remarks section below.
bAsync
An int that specifies whether the creation operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
A reference to an object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400001 | Failed to establish database connection.
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000F | The specified table cannot be created because it already exists.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400001 | Failed to establish database connection.
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000F | The specified table cannot be created because it already exists.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The ExportToSQL method works by opening a connection on the destination SQL Server database and executing the T-SQL OpenRowset command to select data from the List Manager database. Because of this, some special caveats apply:

  • The destination database must have the Bulk Copy/Select Into option selected.
  • If List Manager was initialized with a connection string containing a DSN then the SQL server computer hosting the destination database must also have the DSN configured.
  • Unlike the CreateFromSQL command, ODBC data sources other than SQL Server 2000 or greater are not supported.

The parameter pvarOpID contains valid data only if the export operation is performed asynchronously.

The lOptions parameter specifies whether the exported list is intended for use with Direct Mailer, controlling how it is processed during the export. The following table shows the legal values of the IOptions parameter.

lOptions Value | Description
0 | Do not do any special processing for Direct Mailer.
1 | Export the list for use with Direct Mailer. The list must be a Mailable list or an error is returned. If the list is not a Mailing list, it is converted to one.
[Visual Basic .NET]

Example

oListManager.ExportToSql ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Provider=sqloledb;Data Source=TequillaServer;" & _
 "Initial Catalog=Margaritas;Integrated Security='SSPI'", _
 "Tequila", 0, 0, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class

ListManager.ExtractMailingList


ListManager.ExtractMailingList Method (PIA)

Use this method to create a new Mailing list from a Generic list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function ExtractMailingList(
  srcList As Object,
  reslistName As String,
  reslistDesc As String,
  userFlags As Integer,
  bAsync As Integer,
  Optional ByRef pvarOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object ExtractMailingList(
  object srcList,
  string reslistName,
  string reslistDesc,
  int userFlags,
  int bAsync,
  ref object pvarOpID
);

Parameters

[Visual Basic .NET]
srcList
An Object that contains the ID or name of the generic source list.
reslistName
A String that contains the new mailing list name.
reslistDesc
A String that contains the description of the new mailing list.
userFlags
An Integer that contains application-specific user flags. Not used by the ListManager object.
bAsync
An Integer that specifies whether the export operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
An optional Object used to return an Operation ID.
[C#]
srcList
An object that contains the ID or name of the generic source list.
reslistName
A string that contains the new mailing list name.
reslistDesc
A string that contains the description of the new mailing list.
userFlags
An int that contains application-specific user flags. Not used by the ListManager object.
bAsync
An int that specifies whether the export operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing.
pvarOpID
A reference to an object used to return an Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object that contains the ID of the new list.

[C#] This method returns a reference to an object used to return the ID of the new list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400007 | The specified list has already been created.
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400007 | The specified list has already been created.
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The source list must be a Mailable list (contains an rcp_email column). Any duplicate e-mail addresses are removed in the result list.

[Visual Basic .NET]

Example

' oListID & pvarOpId are Objects
oListID = oListManager.ExtractMailingList("{454799A2-312B-4F5F-90A0-" & _
 "F514FBA0EC5A}", "TequilaBuyers1", "Tequilla buyers in January", 0, _
 1, pvarOpID)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetListFlags Method (PIA)

Use this method to retrieve the flags attribute for a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetListFlags(
 listID As Object
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public int GetListFlags(
 object listID
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list.
[C#]
listID
An object that contains the ID or name of the list.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that contains the flags attribute.

[C#] This method returns an int used to return the flags attribute.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The following table lists the possible flag parameter values used to determine the type of list created. Values may be ORed together to specify more than one flag.

Type | Value | Description
DEFAULT | 0x0 | A Mailing list
HIDDEN | 0x1 | The list should not be exposed in the user interface.
DYNAMIC | 0x2 | A dynamic list
USER | 0x4 | A User list (contains an rcp_guid column)
GENERIC | 0x8 | A Generic list
MAILABLE | 0x10 | A Mailable list (contains an rcp_email column)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetListId Method (PIA)

Use this method to retrieve the ID of a list based on the list name.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetListId(
  listName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object GetListId(
  string listName
);

Parameters

[Visual Basic .NET]
listName
A String that contains the list name.
[C#]
listName
A string that contains the list name.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the ID (a GUID) of the list.

[C#] This method returns an object used to return the ID (a GUID) of the list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetListName Method (PIA)

Use this method to retrieve the name of a list given the list ID.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetListName(
  listID As Object
) As String
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public string GetListName(
  object listID
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the list ID.
[C#]
listID
An object that contains the list ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a String that contains the name of the list.

[C#] This method returns a string used to return the name of the list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetListProperty Method (PIA)

Use this method to retrieve a property of a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetListProperty(
  listID As Object,
  listPropertyName As String
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public object GetListProperty(
  object listID,
  string listPropertyName
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list.
listPropertyName
A String that contains the property name (column of the lm_master table).
[C#]
listID
An object that contains the ID or name of the list.
listPropertyName
A string that contains the property name (column of the lm_master table).

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Object containing the value of the property.

[C#] This method returns a reference to an object used to return the value of the property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

For information about the available list properties, see ListManager.GetLists.

[Visual Basic .NET]

Example

' oSource is an Object
oSource = _
 oListManager.GetListProperty("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_source")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetLists Method (PIA)

Use this method to enumerate all lists known to the ListManager object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetLists() As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For Recordset
…
public object GetLists();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains the details of the lists known to this instance of the ListManager object.

[C#] This method returns an object (typically an ADODB26Lib.Recordset) used to return the details of the lists known to this instance of the ListManager object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

This method returns an instance of a read-only Recordset object that contains a record for each list in the ListManager object database. The Recordset object does not contain any lists that are not completely created at the time this method is invoked.

If there are not any lists completely created at the time this method is invoked, the method returns successfully, but the Recordset object is empty.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
list_id | uniqueidentifier | Identification number of the list.
list_name | NVARCHAR [64] | Name of the list.
list_created | datetime | Date/time the list record was created.
list_creation_type | smallint | Method used to create the list. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - CreateFromDWCalc 4 - CreateFromSegment 5 - Other (subtraction, union, extraction, etc.)
list_description | NVARCHAR [256] | List description.
list_err_limit | long | The error threshold for the list.
list_flags | int | Bit flags for the list. Can bitwise OR together to specify more than one flag. Legal values are: 0x0 - DEFAULT 0x1 - HIDDEN 0x2 - DYNAMIC 0x4 - USER 0x8 - GENERIC 0x10 - MAILABLE
list_location | NVARCHAR [256] | Location (table name) where the list data is stored.
list_query | NVARCHAR [1024] | Query used to create the list.
list_recent_operid | NVARCHAR [128] | ID of the most recent list operation. May be null if the list is a new list created by the CreateEmpty method.
list_size | int | Number of rows in the list (-1 for dynamic lists).
list_source | NVARCHAR [512] | Name of the file, connection string, or file name used to create the list.
list_status | int | Status of the list. Legal values are: 1 - ready for processing 2 - being processed; other operations are not permitted 3 - failed
list_unique_emails | int | Number of unique rcp_email values in the list (-1 for dynamic lists).
list_unique_guids | int | Number of unique rcp_guid values in the list (-1 for dynamic lists).
list_userflags | int | Application specific. Not used by the ListManager object.
[C#]

This method returns an instance of a read-only ADODB26Lib.Recordset object that contains a record for each list in the ListManager object database. The Recordset object does not contain any lists that are not completely created at the time this method is invoked.

If there are not any lists completely created at the time this method is invoked, the method returns successfully, but the Recordset object is empty.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
list_id | uniqueidentifier | Identification number of the list.
list_name | NVARCHAR [64] | Name of the list.
list_created | Datetime | Date/time the list record was created.
list_creation_type | Smallint | Method used to create the list. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - CreateFromDWCalc 4 - CreateFromSegment 5 - Other (subtraction, union, extraction, etc.)
list_description | NVARCHAR [256] | List description.
list_err_limit | Long | The error threshold for the list.
list_flags | Int | Bit flags for the list. Can bitwise OR together to specify more than one flag. Legal values are: 0x0 - DEFAULT 0x1 - HIDDEN 0x2 - DYNAMIC 0x4 - USER 0x8 - GENERIC 0x10 - MAILABLE
list_location | NVARCHAR [256] | Location (table name) where the list data is stored.
list_query | NVARCHAR [1024] | Query used to create the list.
list_recent_operid | NVARCHAR [128] | ID of the most recent list operation. May be Null if the list is a new list created by the CreateEmpty method.
list_size | Int | Number of rows in the list (-1 for dynamic lists).
list_source | NVARCHAR [512] | Name of the file, connection string, or filename used to create the list.
list_status | Int | Status of the list. Legal values are: 1 - ready for processing 2 - being processed; other operations are not permitted 3 - failed
list_unique_emails | Int | Number of unique rcp_email values in the list (-1 for dynamic lists).
list_unique_guids | Int | Number of unique rcp_guid values in the list (-1 for dynamic lists).
list_userflags | Int | Application specific. Not used by the ListManager object.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetListUserFlags Method (PIA)

Use this method to retrieve the UserFlags attribute for a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetListUserFlags(
 listID As Object
) As Integer
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public int GetListUserFlags(
 object listID
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list.
[C#]
listID
An object that contains the ID or name of the list.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns an Integer that contains the UserFlags attribute.

[C#] This method returns an int used to return the UserFlags attribute.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The UserFlags attributes are for use by applications external to List Manager. List Manager stores the flags that were passed in at the time a list was created, but does not interpret the value of the UserFlags attributes.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetOperationInfo Method (PIA)

Use this method to retrieve a Recordset object containing columns describing the specified list operation.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetOperationInfo(
  varOpID As Object
) As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For Recordset
…
public object GetOperationInfo(
  object varOpID
);

Parameters

[Visual Basic .NET]
varOpID
An Object that contains the Operation ID.
[C#]
varOpID
An object that contains the Operation ID.

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object containing the operation information.

[C#] This method returns an object (typically an ADODB26Lib.Recordset) used to return the operation information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information about the returned Recordset object, see ListManager.GetOperations.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.GetOperations Method (PIA)

Use this method to enumerate all operations known to the ListManager object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Function GetOperations() As Object
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
using ADODB26Lib;                              //For Recordset
…
public object GetOperations();

Return Values

[Visual Basic .NET] If this method completes successfully, it returns a Recordset object that contains information about the operations known to this instance of the ListManager object.

[C#] This method returns an object (typically an ADODB26Lib.Recordset) used to return information about the operations known to this instance of the ListManager object.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

[Visual Basic .NET]

This method returns an instance of a read-only Recordset object that contains a record for each operation in the ListManager object database. There is a record for every operation that has ever been run on lists currently in the database. When a list is deleted, all operations associated with that list are also deleted.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
op_id | NVARCHAR[128] | A "token" that identifies the operation and can be passed to the CancelOperation method to terminate the operation.
op_desc | NVCHAR[256] | A user-friendly operation description.
op_error_code | int | HRESULT of last failure associated with the list.
op_error_desc | NVARCHAR[1024] | Description of the last failure associated with the list.
op_list_destination | NVARCHAR(256) | List destination (Export type operations only).
op_list_id | uniqueidentifier | The list ID on which this operation is taking place.
op_list_id_a | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_id_b | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_param1 | int | Additional column that stores any extra parameters involved in the operation.
op_list_param2 | int | Additional column that stores any extra parameters involved in the operation.
op_list_table | NVARCHAR(256) | Table name (ExportToSql type operations only).
op_progress | int | Unused.
op_status | smallint | Status of the operation. Legal values are: 0 - complete 1 - executing -1 - failed
op_time_end | datetime | Date/time the operation completed or was aborted.
op_time_start | datetime | Date/time the operation started.
op_type | int | The type of operation. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - ExportToFile 4 - ExportToSQL 5 - Copy 6 - Subtract 7 - Union 8 - CreateFromDWCalc. 9 - CreateFromSegment 10 - ExtractMailingList 11 - Other (unclassified or temporary)
[C#]

This method returns an instance of a read-only ADODB26Lib.Recordset object that contains a record for each operation in the ListManager object database. There is a record for every operation that has ever been run on lists currently in the database. When a list is deleted, all operations associated with that list are also deleted.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
op_id | NVARCHAR[128] | A "token" that identifies the operation and can be passed to the CancelOperation method to terminate the operation.
op_desc | NVCHAR[256] | A user-friendly operation description.
op_error_code | Int | HRESULT of last failure associated with the list.
op_error_desc | NVARCHAR[1024] | Description of the last failure associated with the list.
op_list_destination | NVARCHAR(256) | List destination (Export type operations only).
op_list_id | uniqueidentifier | The list ID on which this operation is taking place.
op_list_id_a | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_id_b | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_param1 | Int | Additional column that stores any extra parameters involved in the operation.
op_list_param2 | Int | Additional column that stores any extra parameters involved in the operation.
op_list_table | NVARCHAR(256) | Table name (ExportToSql type operations only).
op_progress | Int | Unused.
op_status | Smallint | Status of the operation. Legal values are: 0 - complete 1 - executing -1 - failed
op_time_end | Datetime | Date/time the operation completed or was aborted.
op_time_start | Datetime | Date/time the operation started.
op_type | Int | The type of operation. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - ExportToFile 4 - ExportToSQL 5 - Copy 6 - Subtract 7 - Union 8 - CreateFromDWCalc. 9 - CreateFromSegment 10 - ExtractMailingList 11 - Other (unclassified or temporary)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class

ListManager.CancelOperation


ListManager.Initialize Method (PIA)

Use this method to initialize the ListManager object.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Initialize(
 bstrConnStr As String,
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Initialize(
 string bstrConnStr,
);

Parameters

[Visual Basic .NET]
bstrConnStr
A String that contains the connection string for the database to which List Manager will connect.
[C#]
bstrConnStr
A string that contains the connection string for the database to which the List Manager will connect.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400002 | The ListManager object has already been initialized and may not be re-initialized.
&H8C400001 | Failed to establish database connection.
 | Error while executing SQL/ADO operation.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400002 | The ListManager object has already been initialized and may not be re-initialized.
0x8C400001 | Failed to establish database connection.
0x8C400003 | Error while executing SQL/ADO operation.

Remarks

Initialize the ListManager object before calling any other ListManager object method or property.

Initializing connects the ListManager object to a database. If the database does not contain the tables and procedures required by the ListManager object, they are created.

A ListManager object can be connected to only one database. To connect to a different database, create a new instance of a ListManager object.

[Visual Basic .NET]

Example

oListManager.Initialize ("Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "Integrated Security='SSPI'")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class

ListManager.ExportToSQL


ListManager.RemoveUserFromMailingList Method (PIA)

Use this method to remove a user from a mailing list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub RemoveUserFromMailingList(
  listID As Object,
  UserEmail As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void RemoveUserFromMailingList(
  object listID,
  string UserEmail
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list.
UserEmail
A String that contains the e-mail address of the user.
[C#]
listID
An object that contains the ID or name of the list.
UserEmail
A string that contains the e-mail address of the user.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
&H8C400019 | The operation requires a static list and the specified list is dynamic.
&H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
&H8C400003 | Error while executing SQL/ADO operation.
&H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
0x8C400019 | The operation requires a static list and the specified list is dynamic.
0x8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
0x8C400003 | Error while executing SQL/ADO operation.
0x8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
0x80040007 | The ListManager object has not been properly initialized.
[Visual Basic .NET]

Example

oListManager.RemoveUserFromMailingList _
 ("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", JaneUser@somewhere.com)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Rename Method (PIA)

Use this method to rename a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Rename(
 listID As Object,
 newListName As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Rename(
 object listID,
 string newListName
);

Parameters

[Visual Basic .NET]
listID
An Object that specifies the ID or name of the list to be renamed.
newListName
A String that contains the new name for the list.
[C#]
listID
An object that specifies the ID or name of the list to be renamed.
newListName
A string that contains the new name for the list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400007 | The specified list has already been created
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400007 | The specified list has already been created
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The new name must not be the same as any existing list name.

[Visual Basic .NET]

Example

oListManager.Rename ("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", "Tequila")

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.SetDesc Method (PIA)

Use this method to provide a new description for a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub SetDesc(
 listID As Object,
 newListDesc As String
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void SetDesc(
 object listID,
 string newListDesc
);

Parameters

[Visual Basic .NET]
listID
An Object that specifies the ID or name of the list.
newListDesc
A String that contains the description to be associated with the list.
[C#]
listID
An object that specifies the ID or name of the list.
newListDesc
A string that contains the description to be associated with the list.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.
[Visual Basic .NET]

Example

oListManager.SetDesc(listID, newListDesc)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.SetListProperty Method (PIA)

Use this method to set a property of a list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub SetListProperty(
  listID As Object,
  listPropertyName As String,
  ListProp As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void SetListProperty(
  object listID,
  string listPropertyName,
  object ListProp
);

Parameters

[Visual Basic .NET]
listID
An Object that contains the ID or name of the list.
listPropertyName
A String that contains the property name (column of the lm_master table).
ListProp
An Object that contains the value to set the property.
[C#]
listID
An object that contains the ID or name of the list.
listPropertyName
A string that contains the property name (column of the lm_master table).
ListProp
An object that contains the value to set the property.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400012 | The operation requires a dynamic list and the specified list is not a dynamic list.
&H8C400006 | The specified list does not exist.
&H8C400013 | The specified list property cannot be changed after the list has been created.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400012 | The operation requires a dynamic list and the specified list is not a dynamic list.
0x8C400006 | The specified list does not exist.
0x8C400013 | The specified list property cannot be changed after the list has been created.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.
[Visual Basic .NET]

Example

oListManager.SetListProperty "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_userflags", 12)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Subtract Method (PIA)

Use this method to subtract one mailing list from another mailing list, and to place the result in a third list.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Subtract(
 srcList As Object,
 lessList As Object,
 resList As Object,
 errLimit As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Subtract(
 object srcList,
 object lessList,
 object resList,
 int errLimit,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
srcList
An Object that contains the ID or name of the list from which elements will be subtracted.
lessList
An Object that contains the ID or name of the less list.
resList
An Object that contains the ID or name of the list into which the results of the subtraction operation will be placed.
errLimit
An Integer that is not used.
bAsync
An Integer that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
An optional Object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C#]
srcList
An object that contains the ID or name of the list from which elements will be subtracted.
lessList
An object that contains the ID or name of the less list.
resList
An object that contains the ID or name of the list into which the results of the subtraction operation will be placed.
errLimit
An int that is not used.
bAsync
An int that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
A reference to an object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The result list must exist prior to calling the method; however, any data in the list will be overwritten.

This method keys on the rcp_email column, and therefore both the source (srcList parameter) and less (lessList parameter) lists must be Mailable lists (LISTFLAG_MAILABLE set to True). Records from the source list that do not have duplicate e-mail addresses (rcp_email) in the less list are copied to the result (resList parameter) list. Any existing data in the result list is deleted.

The parameter pvarOpID contains valid data only if the subtraction operation is performed asynchronously.

[Visual Basic .NET]

Example

oListManager.Subtract ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Union Method (PIA)

Use this method to produce a union of two mailing lists, and to place the result in a third mailing list. A union is a combination of the two lists with any duplicates eliminated.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub Union(
 srcList As Object,
 addList As Object,
 resList As Object,
 errLimit As Integer,
 bAsync As Integer,
 Optional ByRef pvarOpID As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void Union(
 object srcList,
 object addList,
 object resList,
 int errLimit,
 int bAsync,
 ref object pvarOpID
);

Parameters

[Visual Basic .NET]
srcList
An Object that contains the ID or name of the source list.
addList
An Object that contains the ID or name of the add list.
resList
An Object that contains the ID or name of the list into which the results of the union operation will be placed.
errLimit
An Integer that is not used.
bAsync
An Integer that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
An optional Object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C#]
srcList
An object that contains the ID or name of the source list.
addList
An object that contains the ID or name of the add list.
resList
An object that contains the ID or name of the list into which the results of the union operation will be placed.
errLimit
An int that is not used.
bAsync
An int that specifies whether the copy operation is performed synchronously or asynchronously. A value of 1 indicates asynchronous processing. A value of 0 indicates synchronous processing.
pvarOpID
A reference to an object used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400008 | The specified list is currently busy with another operation.
&H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
&H8C400006 | The specified list does not exist.
&H8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
&H8C40000B | The operation was canceled.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400008 | The specified list is currently busy with another operation.
0x8C40001D | The specified list is in a FAILED state and may not be used for the operation.
0x8C400006 | The specified list does not exist.
0x8C400011 | The operation requires a Mailable list and the specified list is not a Mailable list.
0x8C40000B | The operation was canceled.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

The result list must exist prior to calling the method, however, any data in the list will be overwritten.

This method keys on the rcp_email column, and therefore both the source (srcList parameter) and add (addList parameter) lists must be Mailable lists (LISTFLAG_MAILABLE set to True). All the records from the source list are copied to the result (resList parameter) list. All records from the add list that do not have duplicate e-mail addresses (rcp_email) in the source list are also copied to the result list. Any existing data in the result list is deleted.

The parameter pvarOpID contains valid data only if the union operation is performed asynchronously.

[Visual Basic .NET]

Example

oListManager.Union ("{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, 0)

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.WaitOnOperation Method (PIA)

Use this method to wait until an operation is complete or a specified time period has elapsed.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public Sub WaitOnOperation(
 varOpID As Object,
 Optional timeout As Integer
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting;
…
public void WaitOnOperation(
 object varOpID,
 int timeout
);

Parameters

[Visual Basic .NET]
varOpID
An Object that specifies the ID of the operation on which to wait. For more information about where to obtain Operation IDs, see the Remarks section.
timeout
An optional Integer that specifies a timeout. This method returns either when the specified operation completes or when the number of seconds specified by the timeout parameter has elapsed, whichever happens first. A value of zero (the default) specifies an infinite time to wait for the operation to complete.
[C#]
varOpID
An object that specifies the ID of the operation on which to wait. For more information about where to obtain Operation IDs, see the Remarks section.
timeout
An int that specifies a timeout. This method returns either when the specified operation completes or when the number of seconds specified by the timeout parameter has elapsed, whichever happens first. A value of zero (the default) specifies an infinite time to wait for the operation to complete.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

[Visual Basic .NET]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
&H8C400004 | The operation ID does not represent a currently running operation.
&H8C400003 | Error while executing SQL/ADO operation.
&H80040007 | The ListManager object has not been properly initialized.
[C#]

The following table shows the custom COM errors that a COMException can wrap.

Value | Description
0x8C400004 | The operation ID does not represent a currently running operation.
0x8C400003 | Error while executing SQL/ADO operation.
0x80040007 | The ListManager object has not been properly initialized.

Remarks

This method cannot be called from a scripting language such as VBScript or JScript on an ASP page. ASP pages must use alternative techniques when dealing with asynchronous operations and should never wait on them explicitly.

The Operation ID passed to this method in the varOpID parameter can be obtained from any of the following calls when they are executed asynchronously:

  • Copy
  • CreateFromDWCalc
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union

In addition, the Operation IDs of all known operations can be retrieved using the GetOperations method.

[Visual Basic .NET]

Example

oListManager.WaitOnOperation ("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
  900)

See Also

ListManager Class


ListManager Properties (PIA)

Properties

Property | Type | Description
ConnectionString | String | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | Integer | Stores the current status of the ListManager object. This property is read-only.


ListManager.ConnectionString Property (PIA)

The ConnectionString property is a read-only String that contains the database connection string List Manager uses to store lists. This property is set by the Initialize method.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public ReadOnly Property ConnectionString As String
[C#]
public string ConnectionString {get; }

Property Value

[C#] Contains the database connection string that List Manager uses to store lists.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


ListManager.Status Property (PIA)

The Status property is a read-only Integer that contains the ListManager object status.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting
…
Public ReadOnly Property Status As Integer
[C#]
public int Status {get; }

Property Value

[C#]

Contains the ListManager object status.

Exceptions

This property may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

The following table shows the valid status codes and their descriptions.

Status | Value | Description
LMSTATUS_NEW | 0 | The ListManager object has been created but is not yet initialized.
LMSTATUS_READY | 1 | The ListManager object has been created and successfully initialized.
LMSTATUS_ERROR | -1 | The ListManager object failed to initialize.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting

Platforms: Windows 2000, Windows .NET Server family

Assembly: listmanagerlib (in listmanagerlib.dll)

See Also

ListManager Class


Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

The following table lists and describes the classes contained in the Microsoft.CommerceServer.Interop.Targeting.PipelineComponents namespace.

Class | Description
AddAttachments | Provides a user interface to the configuration data for the AddAttachments object.
AdvertisingNeedsOfDelivery | Provides a user interface to the configuration data for the AdvertisingNeedsOfDelivery object.
CheckOptOut | Provides a user interface to the configuration data for the CheckOptOut object.
ComposeDMLMessage | Provides a user interface to the configuration data for the ComposeDMLMessage object.
CreateUPMCookie | Provides a user interface to the configuration data for the CreateUPMCookie object.
EvalTargetsGroup | Provides a user interface to the configuration data for the EvalTargetsGroup object.
FilterContent | Provides a user interface to the configuration data for the FilterContent object.
FormatTemplate | Provides a user interface to the configuration data for the FormatTemplates object.
HistoryPenalty | Provides a user interface to the configuration data for the HistoryPenalty object.
ISSAppendToLog | Provides a user interface to the configuration data for the ISSAppendToLog object.
LoadAdvertisements | Provides a user interface to the configuration data for the LoadAdvertisements object.
LoadCampaignsCommon | Provides a user interface to the configuration data for the LoadCampaignsCommonObject object.
LoadDiscounts | Provides a user interface to the configuration data for the LoadDiscounts object.
LoadHistory | Provides a user interface to the configuration data for the LoadHistory object.
LRUCacheFlush | Provides a user interface to the configuration data for the LRUCacheFlush object.
RecordEvent | Provides a user interface to the configuration data for the RecordEvent object.
RecordHistory | Provides a user interface to the configuration data for the RecordHistory object.
SaveHistory | Provides a user interface to the configuration data for the SaveHistory object.
ScoreDiscounts | Provides a user interface to the configuration data for the ScoreDiscounts object.
SelectWinners | Provides a user interface to the configuration data for the SelectWinners object.
SendPrecomposedMessage | Provides a user interface to the configuration data for the SendPrecomposedMessage object.
ThrottleDMLPerformance | Provides a user interface to the configuration data for the ThrottleDMLPerformance object.
VerifyMessageBody | Provides a user interface to the configuration data for the VerifyMessageBody object.
VerifyRecipient | Provides a user interface to the configuration data for the VerifyRecipient object.
WriteEvents | Provides a user interface to the configuration data for the WriteEvents object.

For more information about pipeline components, see the Pipeline Component Reference.


AddAttachments Class (PIA)

Provides a user interface to the configuration data for the AddAttachments object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


AddAttachments Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


AddAttachments.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

[Visual Basic .NET]

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

AddAttachments Class


AddAttachments.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

AddAttachments Class


AdvertisingNeedsOfDelivery Class (PIA)

Provides a user interface to the configuration data for the AdvertisingNeedsOfDelivery object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


AdvertisingNeedsOfDelivery Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


AdvertisingNeedsOfDelivery.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.)

See Also

AdvertisingNeedsOfDelivery Class


AdvertisingNeedsOfDelivery.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException. See Standard COM Errors for additional details.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.)

See Also

AdvertisingNeedsOfDelivery Class


CheckOptOut Class (PIA)

Provides a user interface to the configuration data for the CheckOptOut object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


CheckOptOut Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


CheckOptOut.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

CheckOptOut Class


CheckOptOut.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

CheckOptOut Class


ComposeDMLMessage Class (PIA)

Provides a user interface to the configuration data for the ComposeDMLMessage object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


ComposeDMLMessage Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


ComposeDMLMessage.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

ComposeDMLMessage Class


ComposeDMLMessage.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

ComposeDMLMessage Class


CreateUPMCookie Class (PIA)

Provides a user interface to the configuration data for the CreateUPMCookie object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


CreateUPMCookie Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


CreateUPMCookie.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();
[Visual Basic .NET]

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

CreateUPMCookie Class


CreateUPMCookie.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

CreateUPMCookie Class


EvalTargetsGroup Class (PIA)

Provides a user interface to the configuration data for the EvalTargetsGroup object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


EvalTargetsGroup Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


EvalTargetsGroup.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

EvalTargetsGroup Class


EvalTargetsGroup.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

EvalTargetsGroup Class


FilterContent Class (PIA)

Provides a user interface to the configuration data for the FilterContent object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


FilterContent Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


FilterContent.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

FilterContent Class


FilterContent.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

FilterContent Class


FormatTemplate Class (PIA)

Provides a user interface to the configuration data for the FormatTemplate object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)


FormatTemplate Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


FormatTemplate.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

FormatTemplate Class


FormatTemplate.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: DML_PIPELINELib (in DML_PIPELINELib.dll)

See Also

FormatTemplate Class


HistoryPenalty Class (PIA)

Provides a user interface to the configuration data for the HistoryPenalty object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in csfcomplib.dll)


HistoryPenalty Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


HistoryPenalty.GetConfigData Method (PIA)

Use this method to return a Dictionary object from which the user interface can read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in csfcomplib.dll)

See Also

HistoryPenalty Class


HistoryPenalty.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the Object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in csfcomplib.dll)

See Also

HistoryPenalty Class


IISAppendToLog Class (PIA)

Provides a user interface to the configuration data for the IISAppendToLog object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


IISAppendToLog Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


IISAppendToLog.GetConfigData Method (PIA)

Use this method to return a Dictionary object from which the user interface can read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

IISAppendToLog Class


IISAppendToLog.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the Object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

IISAppendToLog Class


LoadAdvertisements Class (PIA)

Provides a user interface for the configuration data for the LoadAdvertisements object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


LoadAdvertisements Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


LoadAdvertisements.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadAdvertisements Class


LoadAdvertisements.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadAdvertisements Class


LoadCampaignsCommon Class (PIA)

Provides a user interface for the configuration data for the LoadCampaignsCommon object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


LoadCampaignsCommon Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


LoadCampaignsCommon.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadCampaignsCommon Class


LoadCampaignsCommon.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadCampaignsCommon Class


LoadDiscounts Class (PIA)

Provides a user interface for the configuration data for the LoadDiscounts object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


LoadDiscounts Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


LoadDiscounts.GetConfigData (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadDiscounts Class


LoadDiscounts.SetConfigData (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadDiscounts Class


LoadHistory Class (PIA)

Provides a user interface for the configuration data for the LoadHistory object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


LoadHistory Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


LoadHistory.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadHistory Class


LoadHistory.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

LoadHistory Class


LRUCacheFlush Class (PIA)

Provides a user interface to the configuration data for the LRUCacheFlush object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


LRUCacheFlush Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


LRUCacheFlush.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

[Visual Basic .NET]

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

See Also

LRUCacheFlush Class


LRUCacheFlush.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

See Also

LRUCacheFlush Class


RecordEvent Class (PIA)

Provides a user interface for the configuration data for the RecordEvent object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


RecordEvent Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


RecordEvent.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

RecordEvent Class


RecordEvent.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

RecordEvent Class


RecordHistory Class (PIA)

Provides a user interface to the configuration data for the RecordHistory object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


RecordHistory Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


RecordHistory.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

RecordHistory Class


RecordHistory.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

RecordHistory Class


SaveHistory Class (PIA)

Provides a user interface to the configuration data for the SaveHistory object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


SaveHistory Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


SaveHistory.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

SaveHistory Class


SaveHistory.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

SaveHistory Class


ScoreDiscounts Class (PIA)

Provides a user interface to the configuration data for the ScoreDiscounts object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


ScoreDiscount Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


ScoreDiscounts.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

ScoreDiscounts Class


ScoreDiscounts.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

ScoreDiscounts Class


SelectWinners Class (PIA)

Provides a user interface to the configuration data for the SelectWinners object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)


SelectWinners Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


SelectWinners.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

SelectWinners Class


SelectWinners.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

SelectWinners Class


SendPrecomposedMessage Class (PIA)

Provides a user interface to the configuration data for the SendPrecomposedMessage object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)


SendPrecomposedMessage Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.


SendPrecomposedMessage.GetConfigData Method (PIA)

Use this method to return a Dictionary object for the user interface and to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

SendPrecomposedMessage Class


SendPrecomposedMessage.SetConfigData Method (PIA)

Use this method to take a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the Object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

SendPrecomposedMessage Class


ThrottleDMLPerformance Class (PIA)

Provides a user interface to the configuration data for the ThrottleDMLPerformance object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)


ThrottleDMLPerformance Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.


ThrottleDMLPerformance.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

ThrottleDMLPerformance Class


ThrottleDMLPerformance.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

ThrottleDMLPerformance Class


VerifyMessageBody Class (PIA)

Provides a user interface to the configuration data for the VerifyMessageBody object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)


VerifyMessageBody Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.


VerifyMessageBody.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

VerifyMessageBody Class


VerifyMessageBody.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

VerifyMessageBody Class


VerifyRecipient Class (PIA)

Provides a user interface to the configuration data for the VerifyRecipient object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)


VerifyRecipient Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.


VerifyRecipient.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

VerifyRecipient Class


VerifyRecipient.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: dml_pipelinelib (in dml_pipelinelib.dll)

See Also

VerifyRecipient Class


WriteEvents Class (PIA)

Provides a user interface to the configuration data for the WriteEvents object.

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose and the Pipeline Component Reference.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: CSFCompLib (in CSFCompLib.dll)


WriteEvents Methods (PIA)

Methods

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component by using the contents of a Dictionary object.


WriteEvents.GetConfigData Method (PIA)

This method returns a Dictionary object for the user interface to read the configuration data for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Function GetConfigData() As Object
[C#]
using Microsoft.CommerceServer. Targeting.PipelineComponents;
…
public Object GetConfigData();

Return Value

A Dictionary object from which the user interface can read the configuration data.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

WriteEvents Class


WriteEvents.SetConfigData Method (PIA)

This method takes a pointer to an object containing the configuration information for the component.

Definition

[Visual Basic .NET]
Imports Microsoft.CommerceServer.Interop.Targeting.PipelineComponents
…
Public Sub SetConfigData(
  pDict As Object
)
[C#]
using Microsoft.CommerceServer.Interop.Targeting.PipelineComponents;
…
public void SetConfigData(
  Object pDict
);

Parameters

[Visual Basic .NET]
pDict
[in] An interface pointer to the object containing the configuration information.
[C#]
pDict
[in] An interface pointer to the object containing the configuration information.

Exceptions

This method may throw one of many mapped exceptions or an exception of type COMException.

Remarks

For more information, see Deciding Which Interface to Expose.

Requirements

Namespace: Microsoft.CommerceServer.Interop.Targeting.PipelineComponents

Platforms: Windows 2000, Windows .NET Server Family

Assembly: CSFCompLib (in CSFCompLib.dll)

See Also

WriteEvents Class


.NET Configuration Settings

This section describes the Configuration Settings available for use within a web.config file for a .NET-based Commerce Server application. These settings allow you to configure services such as caching, pipelines, and localizable resources by making changes to the Commerce Server section of the web.config file.

For more information about the Commerce Server web.config file, see Configuration Services.

This section contains:

  • addressMap Tag
  • application Tag
  • authentication Tag
  • caches Tag
  • catalog Tag
  • contentSelection Tag
  • messageManager Tag
  • pipelines Tag
  • profile Tag


addressMap Tag

The addressMap tag is a container for the properties that will be mapped from the Profiling System to the Order System at runtime. This tag exists within an orders tag because it is specific to the Order System in Commerce Server. The addressMap tag contains two tags, profileDefinition and property.

profileDefinition Tag

This tag denotes the name of the profile definition that serves as the schema for an address element.

The following table lists the attributes of the profileDefinition tag.

Attribute | Data Type | Description
name | String | The name of the profile. The default value is Address. This attribute is required.

property Tag

This tag denotes a property mapping from the Profiling System to the Order System. Multiple instances of this tag can occur.

The following table lists the attributes of the property tag.

Attribute | Datatype | Description
from | String | The canonical property name in the Profiling System. This attribute is required.
to | String | The field name in the Address dictionary used by the Order System to which the profile property should be mapped. This attribute is required.

The following table lists the default values implemented by this configuration section.

From | To
GeneralInfo.first_name | first_name
GeneralInfo.last_name | last_name
GeneralInfo.address_line1 | address_line1
GeneralInfo.address_line2 | address_line2
GeneralInfo.city | city
GeneralInfo.region_code | region_code
GeneralInfo.postal_code | postal_code
GeneralInfo.ship_to_country | ship_to_country
GeneralInfo.ship_to_state | ship_to_state
GeneralInfo.country_code | country_code
GeneralInfo.address_id | address_id

Example

<orders>
  <addressMap>
    <profileDefinition name="profile-definition-name" />
    <property from="profile-property" to="address-dictionary- property" />
  </addressMap>
</orders>

See Also

Configuration Services


application Tag

The application tag is the root tag of the Commerce Server-specific configuration section in the web.config file. This tag stores basic configuration settings for the application.

In any of the modes, trace messages and Debug exceptions (Checked mode only) are published using a DebugContext instance. The Commerce Server .NET Application Framework provides a default instance (created by CommerceApplicationModule) that logs messages using the ASP.NET tracing mechanism. A Commerce Server site could potentially replace the DebugContext instance with a custom instance that could log the messages to a file or database, for example.

The following table lists the attributes of the application tag.

Attribute Data Type Description
siteName String The name of the site to which the application belongs.

This attribute is required.
mode String The mode of the site: checked, debug, or production.
  • Checked mode is a flag for intensive runtime checks. Checked mode is a superset of Debug mode. It is recommended to run a site in Checked mode before deploying it into production.
  • Debug mode generates debug trace messages that may be helpful in troubleshooting a Commerce Server site while the site is live in production. Forgoes the more intensive checks performed in Checked mode.
  • Production mode has no special checks, only operation messages are traced.

This attribute can be used by other components to determine how to handle exceptions. The default value is production mode.

This attribute is required.

Example

<application siteName="sitename" mode="Checked|Debug|Production">

See Also

Configuration Services

DebugContext Class


authentication Tag

The authentication tag is used to configure the authentication settings used by the CommerceAuthenticationModule class. The detectCookies attribute determines whether or not the application will attempt to detect if the current user's browser is configured to accept cookies or not, enabling applications to fallback into URL mode authentication.

The following table lists the attributes of the authentication tag.

Attribute | Data Type | Description
detectCookies | Boolean | Indicates if the current user's browser is configured to accept cookies or not. This attribute is required.

Example

<authentication detectCookies="true"/>

See Also

Configuration Services

AuthenticationInfo Class

AuthManager Class

AuthTicket Class

CommerceAuthenticationModule Class


caches Tag

The caches tag is a container element for cache tags that are used to configure CacheManager object-based caches in the application. The cache configuration supports a number of default configurations for advertising, discounts, and other common Commerce Server caches. In each case, the cache type has its own default options associated with it; however, the default options can be overridden.

The caches tag contains two tags: cache and config.

cache Tag

This tag defines the beginning of a new cache definition in the web.config file. It can be used both as a container and a marker element, depending on whether or not extended configuration settings (config tags) are required.

The following table lists the attributes of the cache tag.

Attribute | Data Type | Description
name | String | The name of the cache. This attribute is required.
type | String | The type of cache to be configured. Valid values are: Advertising, Discounts, QCI, Tax, Shipping, and Custom. If a known type is specified, then default values are provided for all attributes. Each default value is described in the Cache Types section. The value type is Custom. This attribute is optional.
loaderProgId | String | The COM ProgID of the object used for seeding the cache. This attribute is required if the cache type is set to Custom.
writerProgId | String | The COM ProgID of the object used for writing cache changes to an external source. This attribute is optional.
cacheObjectProgId | String | Used for specifying the object used as transient storage for cached data. The default value is Commerce.Dictionary. This attribute is optional.
refreshInterval | Integer | The number of seconds until the cache expires and the loader is invoked to refill the cache. The default value is zero (0). This attribute is optional.
retryInterval | Integer | The number of seconds the cache manager will wait before attempting to refill the cache if an error is encountered. The default value is 60. This attribute is optional.
maxSize | Integer | Used only when the type attribute is set to Custom or QCI. If specified, the value is set in the CacheSize key of the Cache configuration dictionary used by the cache loader component as specified by the loaderProgId attribute. This attribute is optional.

config Tag

This tag is used for setting arbitrary key/value pairs on the cache configuration dictionary. The cache configuration dictionary created by the runtime will be supplied to both the loader and writer components, and is used as both the LoaderConfig and the WriterConfig dictionary. If a cache has both loader and writer components and wants to provide distinct configuration, it must be done programmatically by accessing the CommerceCache instance in the CommerceCacheCollection created for the site.

If values for data types other than string need to be set, it must be done programmatically.

The following table lists the attributes of the config tag.

Attribute | Data Type | Description
key | String | A key name to set as part of the cache configuration. This attribute is required.
value | String | The value for the specified key. This attribute is required.

Cache Types

If a known type is specified for the type attribute, a set of default values for the configuration is provided. These default values can be overridden programmatically or by setting the values in the configuration itself.

Some of the Cache Types have a dependency on a specific Commerce Server resource. When the CommerceCacheModule creates the caches it also runs checks to ensure that all resource dependencies are satisfied. A CommerceResourceDependencyException is thrown if not.

The following tables list the default values for each configuration setting on a per-cache type basis.

Advertising

The advertising cache has a dependency on the Campaigns resource.

Attribute | Value
loaderProgId | Commerce.CSFLoadAdvertisements
writerProgId | Commerce.CSFWriteEvents
refreshInterval | 300
retryInterval | 60

Discounts

The discounts cache has a dependency on the Campaigns resource.

Attribute | Value
loaderProgId | Commerce.CSFLoadDiscounts
writerProgId | Commerce.CSFWriteEvents
refreshInterval | 0
retryInterval | 60

QCI

The QCI cache has a dependency on the Transactions Config resource.

Attribute | Value
loaderProgID | Commerce.LRUCacheFlush
writerProgID | Null
refreshInterval | 0
retryInterval | 60
cacheObjectProgID | Commerce.LRUCache

Shipping

The shipping cache has a dependency on the Transaction Config resource.

Attribute | Value
loaderProgId | Commerce.ShippingManagerCache
writerProgId | None
refreshInterval | 0
retryInterval | 60

Tax

The tax cache has a dependency on the Transaction Config resource.

Attribute | Value
loaderProgId | Commerce.SampleRegionalTaxCache
writerProgId | None
refreshInterval | 0
retryInterval | 60

Custom

Attribute | Value
loaderProgId | None
writerProgId | None
refreshInterval | 300
retryInterval | 60

Example

<caches>
      <cache name="name"
             type="Advertising|Discounts|QCI|Shipping|Tax|Custom"
             loaderProgId="progid"
             writerProgId="progid"
             cacheObjectProgId="progid"
             refreshInterval="0"
             retryInterval="60"
             maxSize="10">

             <config key="key" value="value" />
      </cache>
</caches>

See Also

Configuration Services

CommerceCache Class

CommerceCacheModule Class


catalog Tag

The catalog tag is used for configuring items specific to the Product Catalog System. There is no configuration that can be done using the catalog tag alone, it is simply a container for other tags.

The catalog tag contains two tags: joinTable and catalogSets.

joinTable Tag

This tag is used for initializing the catalog runtime objects to automatically support joining data with an external data source. It exists within a catalog tag because it is specific to the Product Catalog System. Only a single instance of the joinTable tag can exist at a time.

The following table lists the attributes of the joinTable tag.

Attribute | Data Type | Description
joinType | String | The type of join being done. The following values are valid: innerJoin, outerJoinFull, outerJoinLeft, and outerJoinRight. For more information, see CatalogJoinType Enumeration. This attribute is required.
targetTableName | String | The name of the target table. This attribute is required.
sourceJoinKey | String | The name of the column that will act as the join key from the source table. This attribute is required.
targetJoinKey | String | The name of the column that will act as the join key in the target table. This attribute is required.

catalogSets Tag

This tag is used for configuring the names of the catalog sets that will be used by the runtime to associate users with specific groups of catalogs.

The following table lists the attributes of the catalogSets tag.

Attribute | Data Type | Description
defaultAuthenticated | String | The name of the default catalog set to use for authenticated users. The catalog set should refer to a valid catalog set as configured through the Catalog Sets module in Commerce Server Business Desk. For more information about creating a catalog set, see Creating a Catalog Set. This attribute is required.
defaultAnonymous | String | The name of the default catalog set to use for anonymous users. This attribute is required.

Example

<catalog>
    <joinTable
        joinType="innerJoin | outerJoinFull | outerJoinLeft | outerJoinRight"
        targetTableName="target-table"
        sourceJoinKey="source-join-key"
        targetJoinKey="target-join-key" />
    <catalogSets
        defaultAuthenticated="catalog-set-name"
        defaultAnonymous="catalog-set-name" />
</catalog>

See Also

Configuration Services

Creating a Catalog Set

CatalogContext Class


contentSelection Tag

The contentSelection tag denotes the definition of a set of Content Selection Applications.

The contentSelection tag contains one tag: add.

add Tag

This tag denotes a new Content Selection Application.

The following table lists the attributes of the add tag.

Attribute | Data Type | Description
name | String | The name of the Content Selection Application. This attribute is used as the reference to the application in the runtime. This attribute is required.
cacheName | String | The name of the data cache used by the application. This attribute is required.
selectionPipeline | String | The name of the pipeline used for selecting the appropriate content. This name should correspond to a pipeline defined in the <pipelines> section of the web.config file. This attribute is required.
eventPipeline | String | The name of the pipeline used for recording events. This name should correspond to a pipeline defined in the <pipelines> section of the web.config file.
preloadCache | Boolean | Determines whether or not that cache will be preloaded on application startup. It is recommended to preload the cache for discount type caches if the OrderDiscount pipeline component is used within a transactional Business Processing pipeline. The default value is False. This attribute is required.
redirectURL | String | URL used for handling the click request for an advertisement or other piece of clickable content retrieved by the CSF. This attribute is optional. The default value is empty. This attribute is required.

Example

<contentSelection>
    <add name="application-name"
        cacheName="dependent cache name"
        selectionPipeline="dependent csf pipeline name"
        eventPipeline="dependent event pipeline name"
        preloadCache="true|false"
        redirectUrl="relative url"
    />
</contentSelection >

See Also

Configuration Services

CommerceContentSelectionModule Class

ContentSelectionContext Class


messageManager Tag

The messageManager tag maps the resources required by the Order Processing pipeline (OPP) from a satellite assembly to the MessageManager object. Each language that will be loaded into the MessageManager object must be specified in this configuration section, and the individual resource identifiers to be mapped from the .RESX file to the MessageManager object must be specified in the configuration. The baseName attribute is used to specify the root name of the resources. For example, the root name for the resource file named "MyResource.en-US.resources" is "MyResource". The assembly attribute is used to specify the name of the assembly containing the localized resources.

For more information about message handling in the Commerce Server .NET Application Framework, see Message Handling.

The messageManager tag contains two tags: cultures and resources.

cultures Tag

This tag denotes a new Content Selection Application.

The following table lists the attributes of the cultures tag.

Attribute | Data Type | Description
default | String | The default language used by the MessageManager object. This culture is used as the "fallback" culture in the event the OPP cannot locate a resource specific for the selected culture. The format of this string is identical to the "specific culture" format used by the .NET Frameworks: <neutral-culture>-<specific-culture> For example, U.S. English would be en-EN. This attribute is required.

culture Tag

This tag denotes an instance of a culture that will be mapped into the MessageManager object.

The following table lists the attributes of the culture tag.

Attribute | Data Type | Description
id | String | The culture ID for this culture. The format of this string is identical to the specific culture format used by the .NET Framework: <neutral-culture>-<specific-culture> For example, U.S. English would be en-EN. This attribute is required.

resources Tag

This tag is a container for the resources that will be mapped from the .RESX file into the MessageManager object.

The resources tag has no attributes.

resource Tag

This tag denotes a specific resource to be mapped from the .RESX file to the MessageManager object.

The following table lists the attributes of the resource tag.

Attribute | Data Type | Description
id | String | The identifier assigned to the resource in the .RESX file. This attribute is required.

Example

<messageManager>
    <cultures default="culture-id">
        <culture id="culture-id"/>
    </cultures>
    <resources>
        <resource id="resource-id"/>
    </resources>
</messageManager>

See Also

Configuration Services


pipelines Tag

The pipelines tag is used for configuring the use of various pipelines in the application. Each pipeline is configured with its own pipeline tag. This tag supports several attributes that determine the type of pipeline object that will be used to run the pipeline, for example, OrderPipeline, PooledPipeline, or PooledTxPipeline. Only the name and path attributes of the pipeline tag are required attributes, all other attributes contain default values that will be used if the attribute is unspecified.

Note

  • If you enable pipeline logging from the web.config file, you must also create a /pipelines/log directory manually in order for the runtime to successfully run and log pipeline executions.

The pipelines tag contains one tag: pipeline tag.

pipeline Tag

This tag defines a new pipeline in the web.config file. Each instance of this tag corresponds to an instance in the PipelineCollection object stored in the application.

The following table lists the attributes of the pipeline tag.

Attribute | Data Type | Description
name | String | The name of the pipeline. This name will be used to access the pipeline in the application. This attribute is required.
type | String | The role of the pipeline in the application. The acceptable options are CSF and Order. The default type is Order. This attribute is optional.
transacted | Boolean | Determines whether a transacted pipeline object should be used for running the pipeline. This attribute is optional for order pipelines, but for CSF pipelines the value cannot be set to True.
path | String | The path to the .pcf file that defines the pipeline. The path should be specified relative to the application, for example, ".\pipelines\basket.pcf". This attribute is required.
loggingEnabled | Boolean | Determines whether or not pipeline logging is enabled. When set to True, a pipeline log will be created in the relative path /pipelines/log. The log file will be named using the ID of the user making the corresponding request to run the pipeline, and the extension "pipelog" will be used for the log file name. If the user cannot be identified, the log file will be named based on the pipeline being run, for example "basket.pcf.pipelog". The default value is False. This attribute is required.

Example

<pipelines>
      <pipeline name="pipeline name"
             type="CSF|Order"
             transacted="true|false"
             path="path to .pcf file"
             logEnabled="true|false"
      />
</pipelines>

See Also

Configuration Services

CommerceApplicationModule Class

ContentSelectionPipeline Class

OrderPipeline Class

PipelineCollection Class


profiles Tag

The profiles tag is used for configuring the user profiles and catalog sets functionality. It describes the high-level schema implemented by the User and Organization profiles to the runtime. This information is used by the CommerceContext object in its implementation of the userProfile and organizationProfile smart properties and in the CommerceContext.GetGatalogsForUser method. There is no configuration that can be done using the profiles tag alone, it is simply a container for other tags.

The profiles tag contains three optional tags: encryption, userProfile, and organizationProfile.

encryption Tag

This tag denotes the description of the encryption key configured in the Profiling System.

The encryption tag is required if the application will read or write asymmetrically encrypted profile members, otherwise it is optional. There is no configuration that can be done using the encryption tag alone, it is simply a container for other tags.

The encryption tag contains one tag, the keys tag.

keys Tag

The keys tag contains one tag, the add tag. A maximum of three add tags may be added to a keys tag.

The following table lists the attribute of the keys tag.

Attribute Data Type Description
keyIndex Integer Denotes the current key pair used for encryption/decryption.

The set of valid values is 1 or 2.

If the keyIndex attribute is set to 1, then the add tag type attribute values of publicKey and privateKey1 form the current key pair.

If the keyIndex attribute is set to 2, then the add tag type attribute values of publicKey and privateKey2 form the current key pair.

This attribute is required if the application writes to asymmetrically encrypted profile properties. This attribute must be used in conjunction with an add tag whose type attribute is PublicKey.

add Tag

A maximum of three add tags may be added to a keys tag.

The following table lists the attributes of the add tag.

Attribute Data Type Description
type String The type of public/private keys used for encryption/decryption.

The set of valid set of case sensitive values are publicKey, privateKey1, and privateKey2. The publicKey is required if the keyIndex attribute is specified as they must be provided together.

The publicKey is required if the application writes to asymmetrically encrypted profile properties or if the keyIndex attribute is set, as they keyIndex attribute must be used in conjunction with the publicKey.

The privateKey1 is required if the application reads asymmetrically encrypted profile properties that were encrypted when the keyIndex attribute was set to 1. Otherwise the privateKey1 is optional.

The privateKey2 is required if the application reads asymmetrically encrypted profile properties that were encrypted when the keyIndex attribute was set to 2. Otherwise this attribute is optional.

This attribute is case sensitive.
value String The hexadecimal string for the type attribute specified. Only keys generated using the Microsoft Windows CryptoAPI routines are valid. For more information about generating keys for the value attribute, see Generating public and private keys.

This attribute is case sensitive.

To determine the keyIndex value used to encrypt the profile, query the profile member used to save the keyIndex value. Definition of a profile member used to save the keyIndex attribute is mandatory in profiles using asymmetric encryption. For more information about asymmetric encryption, see Managing Encrypted Profile Properties .

There are several acceptable combinations of the encryption tag attributes. For encryption, the recommended combination is PublicKey + KeyIndex. For decryption, the recommended combination is PrivateKey1 + PrivateKey2. For both encryption and decryption, the recommended combination is PublicKey + KeyIndex + PrivateKey1 + PrivateKey2.

For more information about generating public and private key pairs or defining encrypted members on profiles, see Managing Encrypted Profile Properties .

userProfile Tag

This tag denotes the description of the User profile configured in the Profiling System.

The following table lists the attributes of the userProfile tag.

Attribute | Data Type | Description
profileDefinition | String | The name of the profile definition that corresponds to a user in the Profiling System. This attribute is optional. Default value is UserObject.
userIdProperty | String | The property in the user profile that stores the unique user ID. This should not be confused with the logon name; the user ID is the primary key used to distinguish all instances of the user profile from each other. This attribute is optional. Default value is user_id.
organizationIdProperty | String | The property in the user profile that stores the unique identifier of the instance of the organization profile with which the user profile is associated. This attribute is optional. Default value is AccountInfo.org_id.
catalogSetIdProperty | String | The property in the user profile that stores the catalog set or sets with which a particular instance of the user profile is associated. This attribute is optional. Default value is AccountInfo.user_catalog_set.

organizationProfile Tag

This tag denotes the description of the Organization profile configured in the Profiling System.

The following table lists the attributes of the organizationProfile tag.

Attribute | Data Type | Description
profileDefinition | String | The name of the profile definition that corresponds to an organization in the Profiling System. This attribute is optional. Default value is Organization.
organizationIdProperty | String | The property in the organization profile that stores the unique identifier of the instance of the organization profile that distinguishes it from all other instances of organization profiles. This attribute is optional. Default value is GeneralInfo.org_id.
catalogSetIdProperty | String | The property in the organization profile that stores the catalog set or sets with which a particular instance of the organization profile is associated. This attribute is optional. Default value is GeneralInfo.org_catalog_set.

Example

<profiles>
    <userProfile
        profileDefinition="UserObject"
        userIdProperty="GeneralInfo.logon_name"
        organizationIdProperty="AccountInfo.org_id"
        catalogSetIdProperty="AccountInfo.user_catalog_set"
    />
    <organizationProfile
        profileDefintion="Organization"
        organizationIdProperty="GeneralInfo.org_id"
        catalogSetIdProperty="GeneralInfo.org_catalog_set"
    />

   <encryption>
       <keys keyIndex="1">
           <add type="publicKey" value="<hex-string>" />
           <add type="privateKey1" value="<hex-string>" />
           <add type="privateKey2" value="<hex-string>" />
       </keys>
  </encryption>

</profiles>

See Also

Configuration Services

Business Desk Profiles

CommerceContext Class

Profile Class


COM Object Reference

This section provides detailed information about the Component Object Model (COM) objects supplied with Microsoft Commerce Server 2002. Parallel reference pages are provided to describe the objects from the perspective of two different programming languages:

  • Microsoft Visual Basic/Microsoft Visual Basic Scripting Edition (VBScript)
  • C++

Note

  • Access to the Commerce Server objects from Java and Microsoft JScript is not supported.

This section contains:

  • Backward Compatibility Objects. Provides reference pages and programming concepts for backward compatibility objects.
  • Cache Objects. Provides reference pages, programming concepts, and examples for cache objects.
  • Configuration Objects. Provides reference pages, programming concepts, and examples for configuration objects.
  • Core Objects. Provides reference pages, programming concepts, and examples for core objects.
  • Migration Objects. Provides reference pages for migration objects.
  • Order Processing Objects. Provides reference pages, programming concepts, and examples for order processing objects.
  • Pipeline Objects. Provides reference pages, programming concepts, and examples for pipeline objects.
  • Product Catalog Objects. Provides reference pages, programming concepts, and examples for product catalog objects.
  • Profiling System Objects. Provides reference pages, programming concepts, and examples for profiling system objects.
  • Targeting Objects. Provides reference pages, programming concepts, and examples for targeting objects.
  • Alphabetic Listing of COM Objects. Provides a list of all COM objects available in Commerce Server 2002.
  • Managing COM Parameter Memory. Provides information about ownership of COM parameter memory before and after invoking COM objects.
  • Standard COM Errors. Provides information about the standard COM errors used by many of the Commerce Server COM objects to communicate failures to their callers.


Backward Compatibility Objects

The backward compatibility objects are used to gain access to site configuration values, to create and retrieve shopper IDs, and to simplify forms processing in Site Server 3.0 Commerce Edition sites.

Important

  • These object are included for backward compatibility with Site Server 3.0 Commerce Edition, and will not be supported in future releases of Commerce Server.

The Backward Compatibility Programming Concepts topic describes the major issues relating to the use of the backward compatibility objects.

Objects

Visual Basic Reference | C++ Invocation | Description
AdminSite | AdminSite | Provides read/write access to site configuration properties and allows site administration. This object is supplied for backward compatibility purposes only.
Page | Page | Provides formatting and validation methods that simplify forms processing in ASP pages. This object is supplied for backward compatibility purposes only.
StandardSManager | StandardSManager | Facilitates the run time creation and retrieval of user IDs. This object is supplied for backward compatibility purposes only.


Backward Compatibility Programming Concepts

The following topics contain descriptions for the objects that are considered backward compatibility objects.

AdminSite Object

StandardSManager Object

Page Object

AdminSite Object

Use this object to gain centralized access to the Site Server 3.0 Commerce Edition site configuration, so that you can configure and maintain the site.

This object provides read/write access to the configuration properties and has many functions that allow administration of Site Server 3.0 Commerce Edition sites.

Note:

  • You cannot use this object with Commerce Server 2002 sites. It is included only for backwards compatibility with Site Server 3.0 Commerce Edition.

See Also

Configuration Objects

StandardSManager Object

Use this object to facilitate the run-time creation and retrieval of shopper IDs.

Note

  • This object is included only for purposes of backward compatibility with Site Server 3.0 Commerce Edition; it has been replaced by the AuthManager object.

See Also

AuthManager Object

Page Object

Use this object to simplify forms processing in Active Server Pages (ASP).

The Page object methods fall into the following categories:

  • Formatting methods. These methods include Encode, Option, and Check. These methods make it possible for you to easily format HTML page items, and where applicable, to determine HTML item values based on a run-time evaluation of other variables used in your page.
  • Validation methods. These methods begin with Request. They are used to retrieve values from a URL query string, convert the values to given data types based on a locale value, and then validate these values against a specified range.

For more information, see the AuthManager and AppFrameWork objects, which provide similar functionality to many of the methods in this object.


AdminSite Object [C++]

AdminSite Object [Visual Basic]

Use this object to gain centralized access to the Site Server 3.0 Commerce Edition site configuration, so that you can configure and maintain the site.

Important

  • You cannot use this object with Commerce Server 2002 sites. It is included only for backwards compatibility with Site Server 3.0 Commerce Edition.
ProgID: | Commerce.AdminSite (Externally creatable)
COM Class Name: | AdminSite
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAdminSite
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IAdminSite interface to access the properties and methods of the AdminSite object.

Methods

[C++]
Method | Description
Create | Creates a Site Server 3.0 Commerce Edition site.
Delete | Deletes a Site Server 3.0 Commerce Edition site.
Initialize | Initializes the AdminSite object to load information related to the Site Server 3.0 Commerce Edition site.
InitializeFromMDPath | Initializes the AdminSite object from a metabase path.
IsValidName | Determines whether a given text string is a valid short name for a Site Server 3.0 Commerce Edition site.
ReadDefaultProperties | Reads the properties from the Site.csc file and returns a Dictionary object containing these properties.
ReadManagerProperties | Reads the properties from the Site.csc file and returns a Dictionary object (the site dictionary) containing these properties.
Reload | Resets all application and session objects for the Site Server 3.0 Commerce Edition site.
WriteDefaultProperties | Writes the properties from the specified site dictionary to the Site.csc file.
WriteManagerProperties | Writes the properties from the specified site dictionary to the Site\Manager\Config\Site.csc file.
[Visual Basic]
Method | Description
Create | Creates a Site Server 3.0 Commerce Edition site.
Delete | Deletes a Site Server 3.0 Commerce Edition site.
Initialize | Initializes the AdminSite object to load information related to the Site Server 3.0 Commerce Edition site.
InitializeFromMDPath | Initializes the AdminSite object from a metabase path.
IsValidName | Determines whether a given text string is a valid short name for a Site Server 3.0 Commerce Edition site.
ReadDefaultProperties | Reads the properties from the Site.csc file and returns a Dictionary object containing these properties.
ReadManagerProperties | Reads the properties from the Site\Manager\Config\Site.csc file and returns a Dictionary object (the site dictionary) containing these properties.
Reload | Resets all application and session objects for the Site Server 3.0 Commerce Edition site.
WriteDefaultProperties | Writes the properties from the specified site dictionary to the Site.csc file.
WriteManagerProperties | Writes the properties from the specified site dictionary to the Site\Manager\Config\Site.csc file.

Properties

[C++]
Property | Type | Description
Directory | BSTR | Stores the currently registered Site Server 3.0 Commerce Edition site physical directory. This property is read/write.
Status | VARIANT | Stores the open/closed status of a Site Server 3.0 Commerce Edition site. This property is read/write.
Version | long | Stores the Site Server 3.0 Commerce Edition version number. This property is read-only.
[Visual Basic]
Property | Type | Description
Directory | String | Stores the currently registered Site Server 3.0 Commerce Edition site physical directory. This property is read/write.
Status | Variant | Stores the open/closed status of a Site Server 3.0 Commerce Edition site. This property is read/write.
Version | Long | Stores the Site Server 3.0 Commerce Edition version number. This property is read-only.


AdminSite Methods [C++]

AdminSite Methods [Visual Basic]

Methods

[C++]
Method | Description
Create | Creates a Site Server 3.0 Commerce Edition site.
Delete | Deletes a Site Server 3.0 Commerce Edition site.
Initialize | Initializes the AdminSite object to load information related to the Site Server 3.0 Commerce Edition site.
InitializeFromMDPath | Initializes the AdminSite object from a metabase path.
IsValidName | Determines whether a given text string is a valid short name for a Site Server 3.0 Commerce Edition site.
ReadDefaultProperties | Reads the properties from the Site.csc file and returns a Dictionary object containing these properties.
ReadManagerProperties | Reads the properties from the Site.csc file and returns a Dictionary object (the site dictionary) containing these properties.
Reload | Resets all application and session objects for the Site Server 3.0 Commerce Edition site.
WriteDefaultProperties | Writes the properties from the specified site dictionary to the Site.csc file.
WriteManagerProperties | Writes the properties from the specified site dictionary to the Site\Manager\Config\Site.csc file.
[Visual Basic]
Method | Description
Create | Creates a Site Server 3.0 Commerce Edition site.
Delete | Deletes a Site Server 3.0 Commerce Edition site.
Initialize | Initializes the AdminSite object to load information related to the Site Server 3.0 Commerce Edition site.
InitializeFromMDPath | Initializes the AdminSite object from a metabase path.
IsValidName | Determines whether a given text string is a valid short name for a Site Server 3.0 Commerce Edition site.
ReadDefaultProperties | Reads the properties from the Site.csc file and returns a Dictionary object containing these properties.
ReadManagerProperties | Reads the properties from the Site\Manager\Config\Site.csc file and returns a Dictionary object (the site dictionary) containing these properties.
Reload | Resets all application and session objects for the Site Server 3.0 Commerce Edition site.
WriteDefaultProperties | Writes the properties from the specified site dictionary to the Site.csc file.
WriteManagerProperties | Writes the properties from the specified site dictionary to the Site\Manager\Config\Site.csc file.

Remarks

The AdminSite object provides methods for administering a site, such as specifying data sources and user accounts. The object keeps a number of properties related to the configuration in the site dictionary, which is an implementation of a Dictionary object called MSCSSite. These properties include the short and long names of the site, the secure host, the non-secure host, and the names of other Dictionary objects such as lists of named connection strings and named queries.

See Also

Backward Compatibility Objects


IAdminSite::Create Method [C++]

AdminSite.Create Method [Visual Basic]

Use this method to create a Site Server 3.0 Commerce Edition site and to optionally create an application and the Config\SQL\SqlSvr and Config\SQL\Oracle subdirectories.

Definition

[C++]
HRESULT IAdminSite::Create(
  BSTR bstrInstance,
  BSTR bstrVDir,
  BSTR bstrDir,
  long nAuthorization,
  VARIANT_BOOL bIsApplication,
  VARIANT_BOOL bIsCommerceSite
);
[Visual Basic]
Sub Create(
  bstrInstance As String,
  bstrVDir As String,
  bstrDir As String,
  nAuthorization As Long,
  bIsApplication As Boolean,
  bIsCommerceSite As Boolean
)

Parameters

bstrInstance [C++]
[in] A numeric value expressed as a BSTR representing a Web site. For the default Web site, use (1).
bstrInstance [Visual Basic]
A numeric value expressed as a String representing a Web site. For the default Web site, use (1).
bstrVDir [C++]
[in] A BSTR that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).
bstrVDir [Visual Basic]
A String that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).
bstrDir [C++]
[in] A BSTR that specifies the physical directory in which to create the site.
bstrDir [Visual Basic]
A String that specifies the physical directory in which to create the site.
nAuthorization [C++]
[in] A long that contains the authorization type.
nAuthorization [Visual Basic]
A Long that contains site authorization type.
bIsApplication [C++]
[in] A VARIANT_BOOL that controls whether an application is created for the site. If set to TRUE, an application is created for the site. Otherwise no application is created. This setting must be TRUE for a Site Server 3.0 Commerce Edition site.
bIsApplication [Visual Basic]
A Boolean that controls whether an application is created for the site. If set to True, an application is created for the site. Otherwise no application is created. This setting must be True for a Site Server 3.0 Commerce Edition site.
bIsCommerceSite [C++]
[in] A VARIANT_BOOL that controls whether SQL Server and Oracle subdirectories are created for the site. When set to TRUE, the method marks the site for administration by Site Server 3.0 Commerce Edition and creates the Directory\Config\SQL\SqlSvr and Directory\Config\SQL\Oracle subdirectories (where Directory is the value passed in the bstrDir parameter). When set to FALSE, the method creates the top level Directory directory only.
bIsCommerceSite [Visual Basic]
A Boolean that controls whether SQL Server and Oracle subdirectories are created for the site. When set to True, the method marks the site for administration by Site Server 3.0 Commerce Edition and creates the Directory\Config\SQL\SqlSvr and Directory\Config\SQL\Oracle subdirectories (where Directory is the value passed in the bstrDir parameter). When set to False, the method creates the top level Directory directory only.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

An AdminSite object must be initialized before most of its other methods can be called (the Create and IsValidName methods are exceptions). An object that has been created by the Create method of the AdminSite object is automatically initialized and does not need an explicit call to its Initialize method.

The valid characters and length for a Web site name are determined by the restrictions on the names of Microsoft SQL Server tables. In addition, a short name must not conflict with another short name on the server.

Before you actually create a site, use the IsValidName method to ensure that the short name of the site is valid. The name must conform to several rules for forming valid names in many environments. For example, Commerce Server appends the short name of a site to database tables and to generated pages.

[Visual Basic]

Example

' oAdminSite is a Commerce.AdminSite object
' The szSite argument contains the site short name,
'  and szSiteRoot contains the physical directory.
AdminSite.Create ("1", szSite, NULL, szSiteRoot, true, true)

See Also

[C++] AdminSite Object

[C++] IAdminSite::Delete

[C++] IAdminSite::Initialize

[C++] IAdminSite::IsValidName

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.Delete

[Visual Basic] AdminSite:Initialize

[Visual Basic] AdminSite.IsValidName


IAdminSite::Delete Method [C++]

AdminSite.Delete Method [Visual Basic]

Use this method to delete a Site Server 3.0 Commerce Edition site. The Delete method removes attributes of the site from the Internet Information Services (IIS) metabase (directories and databases are not removed).

Definition

[C++]
HRESULT IAdminSite::Delete(
);
[Visual Basic]
Sub Delete()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

An AdminSite object must be initialized before most of its other methods can be called (the Create and IsValidName methods are exceptions). An object that has been created by the Create method of the AdminSite object is automatically initialized and does not need an explicit call to its Initialize method.

See Also

[C++] AdminSite Object

[C++] IAdminSite::Create

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.Create


IAdminSite::Initialize Method [C++]

AdminSite.Initialize Method [Visual Basic]

Use this method to initialize the AdminSite object so that information related to the Site Server 3.0 Commerce Edition site can be loaded. The site is uniquely identified using the site short name and the server instance. The ReadDefaultProperties method uses this information to load the site properties.

Definition

[C++]
HRESULT IAdminSite::Initialize(
  BSTR bstrInstance,
  BSTR bstrVDir
);
[Visual Basic]
Sub Initialize(
  bstrInstance As String,
  bstrVDir As String
)

Parameters

bstrInstance [C++]
[in] A numeric value, expressed as a BSTR that represents a Web site.
bstrInstance [Visual Basic]
A numeric value, expressed as a String that represents a Web site.
bstrVDir [C++]
[in] A BSTR that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).
bstrVDir [Visual Basic]
A String that contains the Site Server 3.0 Commerce Edition site short name (virtual directory).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

You must initialize an AdminSite object before you can use any other methods of the object (except Create and IsValidName). An object created by the Create method of the AdminSite object is initialized automatically and does not need an explicit call to the Initialize method.

See Also

[C++] AdminSite Object

[C++] IAdminSite::ReadDefaultProperties

[C++] IAdminSite::Create

[C++] IAdminSite::IsValidName

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.ReadDefaultProperties

[Visual Basic] AdminSite.Create

[Visual Basic] AdminSite.IsValidName


IAdminSite::InitializeFromMDPath Method [C++]

AdminSite.InitializeFromMDPath Method [Visual Basic]

Use this method to initialize the AdminSite object from a specified Internet Information Services (IIS) metabase path. The metabase path can be retrieved using a call to the Request.ServerVariables method.

Definition

[C++]
HRESULT IAdminSite::InitializeFromMDPath(
  BSTR bstrMDPath
);
[Visual Basic]
Sub InitializeFromMDPath(
  bstrMDPath As String
)

Parameters

bstrMDPath [C++]
[in] A BSTR that contains the metabase path. The metabase path can be retrieved using a call to the Request.ServerVariables method.
bstrMDPath [Visual Basic]
A String that contains the metabase path. The metabase path can be retrieved using a call to the Request.ServerVariables method.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Unlike the Initialize method, which requires that a server instance and virtual directory be specified separately, this method requires a metabase path to be specified.

[Visual Basic]

Example

' The following example initializes an AdminSite object
' for the application's metabase path:
' oAdmSite is a Commerce.AdminSite object
' The szSite argument contains the site short name,
'  and szSiteRoot contains the physical directory.
AdminSite.Create ("1", szSite, szSiteRoot, true, true)

Call oAdmSite.InitializeFromMDPath(Request.ServerVariables("APPL_MD_Path"))

' The Request.ServerVariables("APPL_MD_Path") expression returns
'  the metabase path in the form /LM/W3SVC/1/mySite , where
'  LM refers to the Local Machine, W3SVC refers to the
' Internet Service, 1 is the server instance, and mySite is the
' root of the Web site. This method works only if the application
' is created at the virtual directory (not a sub-directory).

See Also

[C++] AdminSite Object

[C++] IAdminSite::Initialize

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.Initialize


IAdminSite::IsValidName Method [C++]

AdminSite.IsValidName Method [Visual Basic]

Use this method to determine the validity of a site name. The IsValidName method returns a value of True if the specified Site Server 3.0 Commerce Edition site short name is valid, and False otherwise.

Definition

[C++]
HRESULT IAdminSite::IsValidName(
  BSTR bstrName,
  BSTR bstrInstance,
  VARIANT_BOOL* pbRet
);
[Visual Basic]
Function IsValidName(
  bstrName As String,
  bstrInstance As String
) As Boolean

Parameters

bstrName [C++]
[in] A BSTR that specifies the short name to be tested.
bstrName [Visual Basic]
A String that specifies the short name to be tested.
bstrInstance [C++]
[in] A BSTR that specifies the Web server instance. To obtain a list of server instances, use the GetWebSites method. For the default Web site, use "1".
bstrInstance [Visual Basic]
A String that specifies the Web server instance. To obtain a list of server instances, use the GetWebSites method. For the default Web site, use "1".
pbRet [C++]
[out] The address of a VARIANT_BOOL used to return an indication of whether or not the site name is valid.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean. A value of True indicates that the short site name is valid. A value of False indicates that the short site name is not valid.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The valid characters and length for a Web site name are determined by the restrictions on the names of Microsoft SQL Server tables. In addition, a short name must not conflict with any other short name on the server.

[C++] The pbRet parameter contains valid data only if the method returns successfully.

Before you actually create a site, use this method to ensure that the short name of the site is valid. The name must conform to several rules for forming valid names in many environments. For example, Commerce Server appends the short name of a site to database tables and to generated pages.

The IsValidName method of an object can be called without calling the Initialize or Create methods of the object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAdminSite is a Commerce.AdminSite object
' The szSite argument contains the site short name
' bResult is a Boolean
bResult = oAdminSite.IsValidName(szSite,"1")

See Also

[C++] AdminSite Object

[C++] IAdminSite::Initialize

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.Initialize


IAdminSite::ReadDefaultProperties Method [C++]

AdminSite.ReadDefaultProperties Method [Visual Basic]

Use this method to read the properties from the Site.csc file and return a site dictionary containing these properties.

Definition

[C++]
HRESULT IAdminSite::ReadDefaultProperties(
  IDictionary** ppIDictProp
);
[Visual Basic]
Function ReadDefaultProperties() As Object

Parameters

ppIDictProp [C++]
[out] The address of a pointer used to return the IDictionary interface of the Dictionary object that contains the site properties read from the Site.csc file.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a Dictionary object that contains the site properties read from the Site.csc file.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Site.csc file for the Site Server 3.0 Commerce Edition site resides in the site\Config directory, and the Site.csc file for the manager site resides in the site\Manager\Config directory.

[C++] The ppIDictProp parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AdminSite Object

[C++] IAdminSite::WriteDefaultProperties

[C++] IAdminSite::ReadManagerProperties

[C++] IAdminSite::Initialize

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.WriteDefaultProperties

[Visual Basic] AdminSite.ReadManagerProperties

[Visual Basic] AdminSite.Initialize


IAdminSite::ReadManagerProperties Method [C++]

AdminSite.ReadManagerProperties Method [Visual Basic]

Use this method to read the properties from the configuration file of the management page (site\Manager\Config\Site.csc) and to return a site dictionary containing these properties.

Definition

[C++]
HRESULT IAdminSite::ReadManagerProperties(
  IDictionary** ppIDict
);
[Visual Basic]
Function ReadManagerProperties() As Object

Parameters

ppIDict [C++]
[out] The address of a pointer used to return the IDictionary interface of the Dictionary object that contains the properties read from the configuration file of the management page.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a Dictionary object that contains the properties read from the configuration file of the management page.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The manager site dictionary properties are DefaultConnectionString and ConnectionStringMap. These properties are distinct from the corresponding properties in the main site configuration.

[C++] The ppIDict parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AdminSite Object

[C++] IAdminSite::WriteManagerProperties

[C++] IAdminSite::ReadDefaultProperties

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.WriteManagerProperties

[Visual Basic] AdminSite.ReadDefaultProperties


IAdminSite::Reload Method [C++]

AdminSite.Reload Method [Visual Basic]

Use this method to reset all application and session objects for the Site Server 3.0 Commerce Edition site.

Definition

[C++]
HRESULT IAdminSite::Reload(
);
[Visual Basic]
Sub Reload()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

After a reload, the next browser request will load the Global.asa file.

See Also

[C++] AdminSite Object

[Visual Basic] AdminSite Object


IAdminSite::WriteDefaultProperties Method [C++]

AdminSite.WriteDefaultProperties Method [Visual Basic]

Use this method to write the properties from the specified site Dictionary object to the Site.csc file.

Definition

[C++]
HRESULT IAdminSite::WriteDefaultProperties(
  IDictionary* pIDictProp
);
[Visual Basic]
Sub WriteDefaultProperties(
  pIDictProp As Object
)

Parameters

pIDictProp [C++]
[in] A pointer to the IDictionary interface of the Dictionary object that contains the properties to be written to the Site.csc file.
pIDictProp [Visual Basic]
A reference to the Dictionary object that contains the properties to be written to the Site.csc file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] AdminSite Object

[C++] IAdminSite::ReadDefaultProperties

[C++] IAdminSite::WriteManagerProperties

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.ReadDefaultProperties

[Visual Basic] AdminSite.WriteManagerProperties


IAdminSite::WriteManagerProperties Method [C++]

AdminSite.WriteManagerProperties Method [Visual Basic]

Use this method to write the properties from the specified site Dictionary object to the configuration file of the management page (site\Manager\Config\Site.csc).

Definition

[C++]
HRESULT IAdminSite::WriteManagerProperties(
  IDictionary* pIDictProp
);
[Visual Basic]
Sub WriteManagerProperties(
  pIDictProp As Object
)

Parameters

pIDictProp [C++]
[in] A pointer to the IDictionary interface of the Dictionary object that contains the properties to be written to the configuration file of the management page.
pIDictProp [Visual Basic]
A reference to a Dictionary object that contains the properties to be written to the configuration file management page.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The manager site dictionary properties are DefaultConnectionString and ConnectionStringMap. These properties are distinct from the corresponding properties in the main site configuration. This means that the password and user name information required to access site management pages can be different from those used in user pages.

See Also

[C++] AdminSite Object

[C++] IAdminSite::ReadManagerProperties

[C++] IAdminSite::WriteDefaultProperties

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.ReadManagerProperties

[Visual Basic] AdminSite.WriteDefaultProperties


AdminSite Properties [C++]

AdminSite Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Directory | BSTR | Stores the currently registered Site Server 3.0 Commerce Edition site physical directory. This property is read/write.
Status | VARIANT | Stores the open/closed status of a Site Server 3.0 Commerce Edition site. This property is read/write.
Version | long | Stores the Site Server 3.0 Commerce Edition version number. This property is read-only.
[Visual Basic]
Property | Type | Description
Directory | String | Stores the currently registered Site Server 3.0 Commerce Edition site physical directory. This property is read/write.
Status | Variant | Stores the open/closed status of a Site Server 3.0 Commerce Edition site. This property is read/write.
Version | Long | Stores the Site Server 3.0 Commerce Edition version number. This property is read-only.


IAdminSite::get_Directory, put_Directory Property [C++]

AdminSite.Directory Property [Visual Basic]

The Directory property is a read/write string that contains the currently registered Site Server 3.0 Commerce Edition site physical directory.

Definition

[C++]

Get method:

HRESULT IAdminSite::get_Directory(
  BSTR* Directory
);

Put method:

HRESULT IAdminSite::put_Directory(
  BSTR Directory
);
[Visual Basic]
Property Directory As String

Parameters

Directory [C++]
[out] When getting the property, the address of a BSTR used to return the name of the directory.
[in] When putting the property, a BSTR that contains the name of the directory.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The valid characters and length for a Web site name are determined by the restrictions on the file system.

[C++] The Directory parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AdminSite Object

[C++] IAdminSite::InitializeFromMDPath

[Visual Basic] AdminSite Object

[Visual Basic] AdminSite.InitializeFromMDPath


IAdminSite::get_Status, put_Status Property [C++]

AdminSite.Status Property [Visual Basic]

The Status property is a read/write Boolean that indicates whether or not the Site Server 3.0 Commerce Edition site is open or closed. In addition, the Status property either opens or closes the Site Server 3.0 Commerce Edition site, when the value is set.

Definition

[C++]

Get method:

HRESULT IAdminSite::get_Status(
  VARIANT_BOOL* Status
);

Put method:

HRESULT IAdminSite::put_Status(
  VARIANT_BOOL Status
);
[Visual Basic]
Property Status As Boolean

Parameters

Status [C++]
[in] When putting the property, a VARIANT_BOOL that contains the open/closed status of the site.
[out] When getting the property, the address of a VARIANT_BOOL used to return the open/closed status of the site. A value of True indicates that the site is open. A value of False indicates that the site is closed.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Changing this property sets a value in the site configuration to the text "Open" or "Closed." When the site is reloaded, this value is read by the Global.asa file into the com_compref_frnc.htm value of the site Dictionary object. Each page in the Site Server 3.0 Commerce Edition site then determines whether or not to redirect the browser by checking the value of the Site.Status property. If the text does not equal "Open," then the browser is redirected to the address specified by the Site.CloseRedirectURL property.

[C++] When getting the property, the Status parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AdminSite Object

[Visual Basic] AdminSite Object


IAdminSite::get_Version Property [C++]

AdminSite.Version Property [Visual Basic]

The Version property is a read-only integer used to return the version of Site Server 3.0 Commerce Edition in use.

Definition

[C++]
HRESULT IAdminSite::get_Version(
  long* Version
);
[Visual Basic]
Property Version As Long

Parameters

Version [C++]
[out] A pointer to a long used to return the version of Site Server 3.0 Commerce Edition in use.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The Version parameter contains valid data only if the property is accessed successfully.

See Also

[C++] AdminSite Object

[Visual Basic] AdminSite Object


Page Object [C++]

Page Object [Visual Basic]

Use this object to simplify forms processing in Active Server Pages (ASP).

[C++]
ProgID: | Commerce.Page (Externally creatable)
COM Class Name: | MSCSPage_3_0
COM Interface Name: | IMSCSPage_3_0
Interface ID Constant: | IID_IMSCSPage_3_0
Header File: | commerce.h, mspu_guids.h
Type Library Name: | Commerce -- MSCSAspHelp Type Library
DLL Name: | MSCSAspHelp.dll
Threading Model: | Both

Important

  • This object is included for backward compatibility with Site Server 3.0 Commerce Edition. For more information, see the AuthManager and AppFrameWork objects, which provide similar functionality to many of the methods in this object.

The Page object methods fall into the following categories:

  • Formatting methods. These methods include Encode, Option, and Check. These methods make it possible for you to easily format HTML page items, and where applicable, to determine HTML item values based upon a run-time evaluation of other variables used in your page.
  • Validation methods. These methods begin with Request. They are used to retrieve values from a URL query string, convert the values to given data types based on a locale value, and validate these values against a specified range.
[C++]

In C++, use the IMSCSPage_3_0 interface to access the properties and methods of the Page object.

Methods

[C++]
Method | Description
Check | Generates the word CHECKED for use in an HTML page based upon a supplied value.
Encode | Encodes text in HTML.
GetShopperId | Returns the unique shopper ID for the current shopper.
HTMLEncode | Encodes text in HTML.
Option | Generates an option button on a page.
ProcessVerifyWith | Copies the contents of hidden fields created using the VerifyWith method into an OrderForm object's _verify_with Dictionary object.
PutShopperId | Writes the specified shopper ID for use in a URL or a secure URL (or as a cookie).
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a date value (Date Variant), based on the specified or default locale.
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a date/time value (Date Variant), based on the specified or default locale.
RequestDefault | Retrieves a value from a URL query string or form post variable and returns the value as a string.
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value, based on the specified or default locale. It then checks the value against a specified range and validates the value, based on the specified locale.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it to a number in the base monetary units of the specified or default locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number, based on the specified or default locale.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it, based on the specified locale.
RequestTime | Retrieves a value from a URL query string or form post variable and converts the string to a Date Variant, based on the specified or default locale.
SiteRoot | Returns the physical directory that contains the Commerce Server site.
SURL | Generates a secure URL based on the local path to a file. This URL includes the shopper ID, where applicable.
SURLPrefix | Returns the secure root domain, which can be used as the prefix of a complete URL.
URL | Generates a full URL based on the local path to a file. This URL can include arguments and the shopper ID, where applicable.
URLArgs | Generates a series of query string arguments appropriate for passing in a URL.
URLEncode | Applies URL encoding rules to a specified string.
URLPrefix | Returns the non-secure root domain, which can be used as the prefix to a complete URL.
URLShopperArgs | Generates a series of query string arguments appropriate for passing in a URL. It also includes in the arguments the shopper ID if the StandardSManager has been initialized to URL mode.
VerifyWith | Sends outputs to the page hidden fields that contain verification values.
VirtualDirectory | Return the name of the virtual directory for the site.
[Visual Basic]
Method | Description
Check | Generates the word CHECKED for use in an HTML page based upon a supplied value.
Encode | Encodes text in HTML.
GetShopperId | Returns the unique shopper ID for the current shopper.
HTMLEncode | Encodes text in HTML.
Option | Generates an option button on a page.
ProcessVerifyWith | Copies the contents of hidden fields created using the VerifyWith method into an OrderForm object's _verify_with Dictionary object.
PutShopperId | Writes the specified shopper ID for use in a URL or a secure URL (or as a cookie).
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a date value (Date Variant), based on the specified or default locale.
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a date/time value (Date Variant), based on the specified or default locale.
RequestDefault | Retrieves a value from a URL query string or form post variable and returns the value as a string.
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value, based on the specified or default locale. It then checks the value against a specified range and validates the value, based on the specified locale.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it to a number in the base monetary units of the specified or default locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number, based on the specified or default locale.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it, based on the specified locale.
RequestTime | Retrieves a value from a URL query string or form post variable and converts the string to a Date Variant, based on the specified or default locale.
SiteRoot | Returns the physical directory that contains the Commerce Server site.
SURL | Generates a secure URL based on the local path to a file. This URL includes the shopper ID, where applicable.
SURLPrefix | Returns the secure root domain, which can be used as the prefix of a complete URL.
URL | Generates a full URL based on the local path to a file. This URL can include arguments and the shopper ID, where applicable.
URLArgs | Generates a series of query string arguments appropriate for passing in a URL.
URLEncode | Applies URL encoding rules to a specified string.
URLPrefix | Returns the non-secure root domain, which can be used as the prefix to a complete URL.
URLShopperArgs | Generates a series of query string arguments appropriate for passing in a URL. It also includes in the arguments the shopper ID if the StandardSManager has been initialized to URL mode.
VerifyWith | Sends outputs to the page hidden fields that contain verification values.
VirtualDirectory | Returns the name of the s for the site.

Properties

[C++]
Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.
[Visual Basic]
Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.

Remarks

The Page object is not available through the Common Language Runtime Interop Layer or the Base Class Library. Functionality similar to that of the Page object resides in the AuthManger class in the Base Class Library.

See Also

Backward Compatibility Objects

[C++] AppFrameWork Object

[C++] AuthManager Object

[Visual Basic] AppFrameWork Object

[Visual Basic] AuthManager Object


IMSCSPage_3_0 Methods [C++]

Page Methods [Visual Basic]

Methods

[C++]
Method | Description
Check | Generates the word CHECKED for use in an HTML page based upon a supplied value.
Encode | Encodes text in HTML.
GetShopperId | Returns the unique shopper ID for the current shopper.
HTMLEncode | Encodes text in HTML.
Option | Generates an option button on a page.
ProcessVerifyWith | Copies the contents of hidden fields created using the VerifyWith method into an OrderForm object's _verify_with Dictionary object.
PutShopperId | Writes the specified shopper ID for use in a URL or a secure URL (or as a cookie).
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a date value (Date Variant), based on the specified or default locale.
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a date/time value (Date Variant), based on the specified or default locale.
RequestDefault | Retrieves a value from a URL query string or form post variable and returns the value as a string.
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value, based on the specified or default locale. It then checks the value against a specified range and validates the value, based on the specified locale.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it to a number in the base monetary units of the specified or default locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number, based on the specified or default locale.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it, based on the specified locale.
RequestTime | Retrieves a value from a URL query string or form post variable and converts the string to a Date Variant, based on the specified or default locale.
SiteRoot | Returns the physical directory that contains the Commerce Server site.
SURL | Generates a secure URL based on the local path to a file. This URL includes the shopper ID, where applicable.
SURLPrefix | Returns the secure root domain, which can be used as the prefix of a complete URL.
URL | Generates a full URL based on the local path to a file. This URL can include arguments and the shopper ID, where applicable.
URLArgs | Generates a series of query string arguments appropriate for passing in a URL.
URLEncode | Applies URL encoding rules to a specified string.
URLPrefix | Returns the non-secure root domain, which can be used as the prefix to a complete URL.
URLShopperArgs | Generates a series of query string arguments appropriate for passing in a URL. It also includes in the arguments the shopper ID if the StandardSManager has been initialized to URL mode.
VerifyWith | Sends outputs to the page hidden fields that contain verification values.
VirtualDirectory | Return the name of the virtual directory for the site.
[Visual Basic]
Method | Description
Check | Generates the word CHECKED for use in an HTML page based upon a supplied value.
Encode | Encodes text in HTML.
GetShopperId | Returns the unique shopper ID for the current shopper.
HTMLEncode | Encodes text in HTML.
Option | Generates an option button on a page.
ProcessVerifyWith | Copies the contents of hidden fields created using the VerifyWith method into an OrderForm object's _verify_with Dictionary object.
PutShopperId | Writes the specified shopper ID for use in a URL or a secure URL (or as a cookie).
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a date value (Date Variant), based on the specified or default locale.
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a date/time value (Date Variant), based on the specified or default locale.
RequestDefault | Retrieves a value from a URL query string or form post variable and returns the value as a string.
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value, based on the specified or default locale. It then checks the value against a specified range and validates the value, based on the specified locale.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it to a number in the base monetary units of the specified or default locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number, based on the specified or default locale.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it, based on the specified locale.
RequestTime | Retrieves a value from a URL query string or form post variable and converts the string to a Date Variant, based on the specified or default locale.
SiteRoot | Returns the physical directory that contains the Commerce Server site.
SURL | Generates a secure URL based on the local path to a file. This URL includes the shopper ID, where applicable.
SURLPrefix | Returns the secure root domain, which can be used as the prefix of a complete URL.
URL | Generates a full URL based on the local path to a file. This URL can include arguments and the shopper ID, where applicable.
URLArgs | Generates a series of query string arguments appropriate for passing in a URL.
URLEncode | Applies URL encoding rules to a specified string.
URLPrefix | Returns the non-secure root domain, which can be used as the prefix to a complete URL.
URLShopperArgs | Generates a series of query string arguments appropriate for passing in a URL. It also includes in the arguments the shopper ID if the StandardSManager has been initialized to URL mode.
VerifyWith | Sends outputs to the page hidden fields that contain verification values.
VirtualDirectory | Returns the name of the s for the site.


IMSCSPage_3_0::Check Method [C++]

Page.Check Method [Visual Basic]

Use this method to generate the word CHECKED into a page if the value specified in the vtCheck parameter is a nonzero value. CHECKED is a parameter to an HTML <INPUT> tag, which sets a check box or radio button to selected when the form first loads.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::Check(
  VARIANT vtCheck,
  BSTR* pbstrRet
);
[Visual Basic]
Function Check(
  vtCheck As Variant
) As String

Parameters

vtCheck [C++]
[in] A VARIANT that contains the expression that is evaluated to determine whether the word CHECKED should be inserted at the location on a page where the call to Check appears.
vtCheck [Visual Basic]
A Variant that contains the expression that is evaluated to determine whether the word CHECKED should be inserted at the location on a page where the call to Check appears.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the string "CHECKED" or "".

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the string "CHECKED" or "".

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example could be used in an ASP file
' to generate three radio buttons in an HTML form:
' oPage is a Commerce.Page object
<% my_color="Green" %>
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="0"<% = _
    oPage.Check(my_color="Red")%>>Red
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="1"<% = _
    oPage.Check(my_color="Green")%>>Green
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="2"<% = _
    oPage.Check(my_color="Blue")%>>Blue
' Assuming that my_color contains "Green" this produces
' the following HTML output:
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="0">Red
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="1"CHECKED>Green
<INPUT TYPE="RADIO" NAME="CONTROL1" VALUE="2">Blue
' This HTML output produces three radio buttons labeled Red,
' Green, and Blue, with the Green option selected.

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::Option

[Visual Basic] Page Object

[Visual Basic] Page.Option


IMSCSPage_3_0::Encode Method [C++]

Page.Encode Method [Visual Basic]

Use this method to apply HTML encoding to the specified text string.

This method is identical to the HTMLEncode method, which is the preferred name for this function. The Encode method applies HTML encoding to the specified text string. Characters in the string, such as "<" and "&" that have special meanings in HTML, are converted into their HTML equivalents, such as &lt; and &amp; so that they will be displayed correctly by the client browser.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::Encode(
  VARIANT vtValue,
  BSTR* pbstrRet
);
[Visual Basic]
Function Encode(
  vtValue As Variant
) As String

Parameters

vtValue [C++]
[in] A VARIANT that contains the text string to encode.
vtValue [Visual Basic]
A Variant that contains the text string to encode.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the encoded HTML text.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains encoded HTML text.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' sEncoded is a String
' vOriginal is a String Variant
sEncoded = oPage.Encode(vOriginal)

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::HTMLEncode

[Visual Basic] Page Object

[Visual Basic] Page.HTMLEncode


IMSCSPage_3_0::GetShopperId Method [C++]

Page.GetShopperId Method [Visual Basic]

This method returns the unique shopper ID for the current user. (The shopper ID is returned from a URL query string or a cookie, depending on the initialization mode of the StandardSManager for the site.)

If the current customer does not have a shopper ID, GetShopperID returns NULL.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the GetShopperID method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::GetShopperId(
  VARIANT* pvarShopperID
);
[Visual Basic]
Function GetShopperId() As Variant

Parameters

pvarShopperID [C++]
[out, retval] A pointer to a VARIANT used to return the shopper ID.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the shopper ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The pvarShopperID parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] StandardSManager Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::PutShopperId

[Visual Basic] Page Object

[Visual Basic] StandardSManager Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.PutShopperId


IMSCSPage_3_0::HTMLEncode Method [C++]

Page.HTMLEncode Method [Visual Basic]

Use this method to apply HTML encoding to the specified text string. Its typical use is to display the contents of text fields contained in the database in HTML. Characters in the string, such as "<" and "&" that have special meanings in HTML, are converted into their HTML equivalents, such as &lt; and &amp; so that they will be displayed correctly by the client browser.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::HTMLEncode(
  VARIANT vtValue,
  BSTR* pbstrRet
);
[Visual Basic]
Function HTMLEncode(
  vtValue As Variant
) As String

Parameters

vtValue [C++]
[in] A VARIANT that contains the text string to encode.
vtValue [Visual Basic]
A String Variant that contains the text string to encode.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the encoded HTML text.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains encoded HTML text.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

If the text field to be displayed already contains HTML encoding, do not use the HTMLEncode method. For example, suppose your product_description field contains HTML-encoded text such as "The <I>Classic Diner Clock</I> brings the age of the &quot;Golden Oldies&quot; to your kitchen." This string uses the <I> tag to format italic text and the &quot; sequence to display quotation marks when displayed by the client browser. Because the string is already coded in HTML, you do not need to encode it again. Double-encoding the string would produce incorrect results.

The Page.HTMLEncode method is identical to the Page.Encode method, but the HTMLEncode method is the preferred name. The method is similar to Server.HTMLEncode except that the Page.HTMLEncode method handles NULL values by returning an empty string (the Server.HTMLEncode method fails when the vtValue parameter is NULL). This distinction is important because database queries can return NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
Assume that the company_name field contains the name Freeman & Sons
' The following HTML example displays the contents of the company_name
' field as an <H1> tag:
<H1><% = oPage.HTMLEncode(companyinfo.company_name) %></H1>
' This example returns the following HTML string:

<H1>Freeman &amp; Sons</H1>

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::URLEncode

[Visual Basic] Page Object

[Visual Basic] Page.URLEncode


IMSCSPage_3_0::Option Method [C++]

Page.Option Method [Visual Basic]

Use this method to generate an OPTION item in an HTML form selection list, and then assign it the value and selection state that you specify. Although this functionality can be created without the Option method, using the method can speed your site development.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::Option(
  VARIANT vtVal1,
  VARIANT vtVal2,
  BSTR* pbstrRet
);
[Visual Basic]
Function Option(
  vtVal1 As Variant,
  vtVal2 As Variant
) As String

Parameters

vtVal1 [C++]
[in] A VARIANT that contains the value of the option in the selection list.
vtVal1 [Visual Basic]
A Variant that contains the value of the option in the selection list.
vtVal2 [C++]
[in] A VARIANT that contains a value that indicates whether the list option is the selected option. If vtVal2 is equal to vtVal1, then the HTML keyword SELECTED is inserted in the definition of the option list.
vtVal2 [Visual Basic]
A Variant that contains a value that indicates whether the list option is the selected option. If vtVal2 is equal to vtVal1, then the HTML keyword SELECTED is inserted in the definition of the option list.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the OPTION item.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the OPTION item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' The following example generates a selection field in an
' HTML form to enable the customer to select the expiration
' year of the credit card. The Option method generates
 <OPTION VALUE="> tags and marks the current year
as selected:
iyear = Year(date) %>

<SELECT NAME="_cc_expyear">
    <% = oPage.Option(2000, iyear) %> 2000
    <% = oPage.Option(2001, iyear) %> 2001
    <% = oPage.Option(2002, iyear) %> 2002
    <% = oPage.Option(2003, iyear) %> 2003
</SELECT>
' Following is the HTML output that is produced by the ASP script
'  shown previously, assuming that the current year is 2001:
<SELECT NAME="_cc_expyear">
    <OPTION VALUE="2000"> 2000
    <OPTION VALUE="2001" SELECTED> 2001
    <OPTION VALUE="2002"> 2002
    <OPTION VALUE="2003"> 2003
</SELECT>

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::Check

[Visual Basic] Page Object

[Visual Basic] Page.Check


IMSCSPage_3_0::ProcessVerifyWith Method [C++]

Page.ProcessVerifyWith Method [Visual Basic]

Use this method in an ASP file that is activated when the shopper submits an HTML form containing an order. The ProcessVerifyWith method reads the posted contents of hidden fields in the HTML form that were created using the VerifyWith method and writes these values into a Dictionary object. This Dictionary object, called _verify_with, is stored in the OrderForm object.

When the pipeline processes the OrderForm, the contents of the _verify_with Dictionary object are compared to the original values of the fields in the OrderForm object to ensure that a page has not been altered between presentation and final purchase.

If the fields do not match, the RequiredTotal pipeline component generates an error, using the MessageManager message name constant pur_badverify.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::ProcessVerifyWith(
  IDispatch* pdispOrder
);
[Visual Basic]
Sub ProcessVerifyWith(
  pdispOrder As Object
)

Parameters

pdispOrder [C++]
[in] A pointer to the IDispatch interface that can be used to retrieve an OrderForm object that contains the basket for the current shopper.
pdispOrder [Visual Basic]
An object reference that supplies the OrderForm object that contains the basket for the current shopper.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' oOrderForm is a Commerce.Page object

call oPage.ProcessVerifyWith(oOrderForm)

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::VerifyWith

[C++] Message Manager Object

[C++] OrderForm Object

[Visual Basic] Page Object

[Visual Basic] Page.VerifyWith

[Visual Basic] Message Manager Object

[Visual Basic] OrderForm Object


IMSCSPage_3_0::PutShopperId Method [C++]

Page.PutShopperId Method [Visual Basic]

Use this method to write the specified shopper ID to a cookie, and/or store it for use in a URL or secure URL, depending on the initialization mode of the StandardSManager for the site.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the PutShopperID method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::PutShopperId(
  BSTR bstrShopperID
);
[Visual Basic]
Sub PutShopperId(
  bstrShopperID As String
)

Parameters

bstrShopperID [C++]
[in] A BSTR that contains the shopper ID.
bstrShopperID [Visual Basic]
A String that contains the shopper ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Where the PutShopperID method will store the specified shopper ID depends upon the StandardSManager initialization mode. In URL mode, this method writes the shopper ID to the request, so that the URL and SURL methods add the shopper ID to a query string in the URL from this page.

If the shopper ID is stored in a URL query string, you can retrieve it by passing the value you set for the application-level MSCSSIDURLKey to the IIS Request object.

If you initialize the StandardSManager in URL mode, you cannot use the StandardSManager's implementation of PutShopperID to store the shopper ID on the client system. Instead, you must use the implementation from the Page object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' sShopperID is a String containing the shopper ID GUID
oPage.PutShopperID(sShopperID)

See Also

[C++] Page Object

[C++] StandardSManager Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::GetShopperId

[C++] IMSCSPage_3_0::SURL

[C++] IMSCSPage_3_0::URL

[Visual Basic] Page Object

[Visual Basic] StandardSManager Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.GetShopperId

[Visual Basic] Page.SURL

[Visual Basic] Page.URL


IMSCSPage_3_0::RequestDate Method [C++]

Page.RequestDate Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a date value (Date Variant), based on the specified or default locale.

Optionally, RequestDate also checks the date against a specified date range.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestDate(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestDate(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the date value to return if the requested URL query string or form-post variable does not exist or contains no value. The default cannot contain DateTime and Time values.
vtDefault [Visual Basic]
A Variant that contains the date to return if the requested URL query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Time values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains a date value that specifies the low end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. If the converted date is less than vtMin, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains a date value that specifies the low end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted date is less than vtMin, the method returns NULL. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains a date value that specifies the high end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains a date value that specifies the high end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains a number that specifies the locale to use to convert the date. If this value is not specified, the RequestDate method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that that contains a number that specifies the locale to use to convert the date. If this value is not specified, the RequestDate method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the processed date value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Date Variant that contains the processed date value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' This example assumes that the date value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Date">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
If the user enters the date into the form and clicks the Send Info button, the value of this form field can be retrieved by the RequestDate method as follows:
vDate = Page.RequestDate("Date", "2/27/01", "1/1/01", "12/31/01", 1033)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSPage_3_0::RequestDateTime

[C++] IDataFunctions_4_0_::ConvertDateString

[C++] IDataFunctions_4_0::Date

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] Page.RequestDateTime

[Visual Basic] DataFunctions.ConvertDateString

[Visual Basic] DataFunctions.Date


IMSCSPage_3_0::RequestDateTime Method [C++]

Page.RequestDateTime Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a date/time value (Date Variant), based on the specified or default locale.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestDateTime(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestDateTime(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain Time values.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain Time values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains a DateTime value that specifies the low end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process.If the converted value is less than vtMin, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains a DateTime value that specifies the low end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted date is less than vtMin, the method returns NULL. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains a DateTime value that specifies the high end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains a DateTime value that specifies the high end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that identifies the locale to be used to convert the date/time string. If this parameter is not specified, the RequestDateTime method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that identifies the locale to be used to convert the date/time string. If this parameter is not specified, the RequestDateTime method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the DateTime value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains a date/time value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' This example assumes that the date-time value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="DateTime">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the date into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestDateTime method as follows:
vDate = oPage.RequestDateTime("DateTime", "1/1/01 12:00:01 AM", "1/1/01 _
    12:00:01 AM", "12/31/01 11:59:59 PM", 1033)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSPage_3_0::RequestDate

[C++] IDataFunctions_4_0::ConvertDateTimeString

[C++] IMSCSPage_3_0::RequestTime

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] Page.RequestDate

[Visual Basic] DataFunctions.ConvertDateTimeString

[Visual Basic] Page.RequestTime


IMSCSPage_3_0::RequestDefault Method [C++]

Page.RequestDefault Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and return the value as a string.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestDefault(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestDefault(
  bstrName As String,
  vtDefault As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string variable to retrieve.
vtDefault [C++]
[in] A VARIANT that contains the value to return if the requested URL query string or form post variable contains an empty or a NULL value, or is not present in the request string. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A VARIANT that contains the value to return if the requested URL query string or form post variable contains an empty or a NULL value, or is not present in the request string. If this parameter is not supplied, the method returns NULL.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the processed value as a string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the processed value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

This method is designed so that if a field on a form is blank, or the form does not contain the field, the value returned by default is NULL. NULL is generally the appropriate value to store to a database when a value is not present. If you need the result to be an empty string in the case of a missing value, supply an empty string as the Default parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example attempts to retrieve the value for
' the URL query string variable shopper_phone. Because no
' Default argument is supplied, if this URL query string
' variable has no value, the call returns Null.
' vShopper_phone is a Variant
' oPage is a Commerce.Page object
vShopper_phone = oPage.RequestDefault("shopper_phone")

See Also

[C++] Page Object

[Visual Basic] Page Object


IMSCSPage_3_0::RequestFloat Method [C++]

Page.RequestFloat Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a floating-point value, based on the specified or default locale.

Optionally, the RequestFloat method also checks the converted number against the specified range.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestFloat(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestFloat(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form-post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form-post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number that specifies the low end of the range of values against which to validate the converted value. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. If the converted value is less than vtMin, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains the number that specifies the low end of the range of values against which to validate the converted value. The default value is NULL, indicating that this parameter is ignored. If the converted value is less than vtMin, the method returns NULL. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the number that specifies the high end of the range of values against which to validate the converted value. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains the number that specifies the high end of the range of values against which to validate the converted value. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that identifies the locale to use to convert the value. If this value is not specified, the RequestFloat method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that identifies the locale to use to convert the value. If this value is not specified, the RequestFloat method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the floating-point value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the floating-point value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' vFloat is a Variant
' This example assumes that the float value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Float">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the number into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestFloat method as follows:
vFloat = oPage.RequestFloat("Float", 0, 0, 100, 1033)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSPage_3_0::RequestNumber

[C++] IDataFunctions_4_0::ConvertFloatString

[C++] IDataFunctions_4_0::Float

[C++] IDataFunctions_4_0::ValidateFloat

[C++] IMSCSPage_3_0::RequestNumber

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] Page.RequestNumber

[Visual Basic] DataFunctions.ConvertFloatString

[Visual Basic] DataFunctions.Float

[Visual Basic] DataFunctions.Float

[Visual Basic] Page.RequestNumber


IMSCSPage_3_0::RequestMoneyAsNumber Method [C++]

Page.RequestMoneyAsNumber Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a number in the base monetary units of the specified or default locale.

This method is used for backwards compatibility with Site Server 3.0 Commerce Edition sites, and relies on the Site Server 3.0 Commerce Edition monetary format.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestMoneyAsNumber(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestMoneyAsNumber(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL-query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL-query string or form-post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. If the default value is a string value, it will be converted into the base monetary value, otherwise, it is assumed that the value is in base monetary units.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL-query string or form-post variable is not present or contains no value. If this parameter is also not supplied, the method returns NULL. If the default value is a string value, it will be converted into the base monetary value; otherwise, it is assumed that the value is in base monetary units. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the monetary value that specifies the low end of the range against which to validate the converted value. A value in base monetary units is expected for the vtMin parameter. If the converted value is less than vtMin, the method returns NULL. This parameter is optional.
vtMin [Visual Basic]
A Variant that contains the monetary value that specifies the low end of the range against which to validate the converted value. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. A value in base monetary units is expected for the vtMin parameter. If the converted value is less than vtMin, the method returns NULL. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the monetary value that specifies the high end of the range against which to validate the converted value. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. A value in base monetary units is expected for the vtMax parameter. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that specifies the high end of the range against which to validate the converted value. A value in base monetary units is expected for the vtMax parameter. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestMoneyAsNumber method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestMoneyAsNumber method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the number in the base monetary units of the specified or default locale. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains a number in the base monetary units of the specified or default locale.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is used for backwards compatibility with Site Server 3.0 Commerce Edition sites, and relies on the Site Server 3.0 Commerce Edition monetary format.

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' In the following example, the value of a field on the purchase
' form (filled out by the customer) is read into the
' variable list_price. The vtMax argument is the upper limit
' of a Variant variable. Using this value as the upper limit and
' zero (0) as the lower limit of the range check ensures that
' the value is not negative:
list_price = oPage .RequestMoneyAsNumber("list_price", 0, 0, _
    100, 1033)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertMoneyStringToNumber

[C++] IDataFunctions_4_0::Money

[C++] IMSCSPage_3_0::RequestFloat

[C++] IMSCSPage_3_0::RequestNumber

[Visual Basic] Page Object

DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertMoneyStringToNumber

[Visual Basic] DataFunctions.Money

[Visual Basic] Page.RequestFloat

[Visual Basic] Page.RequestNumber


IMSCSPage_3_0::RequestNumber Method [C++]

Page.RequestNumber Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a number based on the specified or default locale.

Optionally, the RequestNumber method checks the converted number against the specified range and validates it based on the specified locale.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestNumber(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestNumber(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL-query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL-query string or form-post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL-query string or form-post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number value that specifies the low end of the range against which to validate the converted value. If the converted value is less than vtMin, then NULL is returned. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process.
vtMin [Visual Basic]
A Variant that contains the number value that specifies the low end of the range against which to validate the converted value. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the number value that specifies the high end of the range against which to validate the converted value. If the converted value is greater than vtMax, then NULL is returned. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains the number value that specifies the high end of the range against which to validate the converted value. If the converted value is greater than vtMax, then NULL is returned. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestNumber method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestNumber method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted number. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted number.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' In the following example, the value of a field on the purchase
' form (filled out by the customer) is read into the
' variable cc_expmonth. Because the Default parameter is specified
' as 7, RequestNumber will return 7 if the field is empty
' or missing.
cc_expmonth = oPage.RequestNumber("_cc_expmonth", 7, 1, 12)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSPage_3_0::RequestFloat

[C++] IDataFunctions_4_0::ConvertNumberString

[C++] IDataFunctions_4_0::Number

[C++] IDataFunctions_4_0::ValidateNumber

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] Page.RequestFloat

[Visual Basic] DataFunctions.ConvertNumberString

[Visual Basic] DataFunctions.Number

[Visual Basic] DataFunctions.ValidateNumber


IMSCSPage_3_0::RequestString Method [C++]

Page.RequestString Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and perform string processing on it, based on the specified locale.

This processing may involve stripping out leading and trailing white spaces, stripping out carriage returns, checking the length of the string against a specified range, and validating the string based on the specified or default locale.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestString(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtStripWhite,
  VARIANT vtStripReturn,
  VARIANT vtCase,
  VARIANT vtLocal,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestString(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtStripWhite As Variant,
  vtStripReturn As Variant,
  vtCase As Variant,
  vtLocal As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL-query string or form-post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the string to return if the specified URL-query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the string to return if the specified URL-query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number that indicates the minimum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMin parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameter is not in range, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains the number that indicates the minimum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMin parameter value is not considered in the validation process. This parameter is optional. If this value is invalid or length of the bstrName/vtDefault parameter is not in range, the method returns NULL.
vtMax [C++]
[in, optional] A VARIANT that contains the number that indicates the maximum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameter is not in range, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains the number that indicates the maximum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameter is not in range, the method returns NULL. This parameter is optional.
vtStripWhite [C++]
[in, optional] A VARIANT that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the string. The default value is True.
vtStripWhite [Visual Basic]
A Variant that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the string. The default value is True. This parameter is optional.
vtStripReturn [C++]
[in, optional] A VARIANT that contains a Boolean value that indicates whether carriage returns should be stripped from the string. The default value is True.
vtStripReturn [Visual Basic]
A Variant that contains a Boolean value that indicates whether carriage returns should be stripped from the string. The default value is True. This parameter is optional.
vtCase [C++]
[in, optional] A VARIANT that contains the number that indicates the case to which the string should be converted. The default value is zero (0), which results in no modification to the case of the string. If the vtCase parameter is one (1), the string is converted to uppercase. If the vtCase parameter is two (2), the string is converted to lowercase.
vtCase [Visual Basic]
A Variant that contains the number that indicates the case to which the string should be converted. The default value is zero (0), which results in no modification to the case of the string. If the vtCase parameter is one (1), the string is converted to uppercase. If the vtCase parameter is two (2), the string is converted to lowercase. This parameter is optional.
vtLocal [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to be used as the basis of the conversion. If this value is not specified, the RequestString method uses the value of the Locale property of the DataFunctions object.
vtLocal [Visual Basic]
A Variant that contains the number that specifies the locale to be used as the basis of the conversion. If this value is not specified, the RequestString method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the processed string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the processed string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' vString is a Variant
' This example assumes that the string value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="String">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the string into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestString method as follows:
vString = oPage.RequestString("String", "Default String", _
    1, 100, True, True, 0, 1033)
' In this example, the string is checked that it it contains
' between 1 and 100 characters; all leading and trailing white
' spaces are removed, all carriage returns are removed, , no
' modification is made to character case, and the string is
' converted according to the locale 1033 (USA). If no string is
' input, the string "Default String" will be loaded into the
' variable vString.

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale


IMSCSPage_3_0::RequestTime Method [C++]

Page.RequestTime Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert the string to a Date Variant, based on the specified or default locale.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::RequestTime(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestTime(
  bstrName As String,
  vtDefault As Variant,
  vtMin As Variant,
  vtMax As Variant,
  vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL-query string or form-post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL-query string or form post-variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the string to return if the specified URL-query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Date values.
vtDefault [Visual Basic]
A Variant that contains the string to return if the specified URL-query string or form-post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Date values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the time value that specifies the low end of the range against which to validate the bstrName parameter. If the VARIANT is of type vtMissing, the vtMin parameter value is not considered in the validation process.If the converted value is less than vtMin, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains the time value that specifies the low end of the range against which to validate the bstrName parameter. If the converted value is less than vtMin, the method returns NULL. The default is no low-end validation. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the time value that specifies the high end of the range against which to validate the bstrName parameter. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains the time value that specifies the high end of the range against which to validate the bstrName parameter. The default is no high-end validation. If the converted value is greater than vtMax, the method returns NULL. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the DateTime value. If this value is not specified, the RequestTime method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the DateTime value. If this value is not specified, the RequestTime method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the date. If any validation fails, the value will be set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the date.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' This example assumes that the -time value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Time">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
If the user enters the date into the form and clicks the Send Info button, the value of this form field can be retrieved by the RequestTime method as follows:
vTime = oPage.RequestTime("Time", "12:00:01 AM", "12:00:01 AM", _
 "11:59:59 PM", 1033)

See Also

[C++] Page Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertTimeStringf

[C++] IMSCSPage_3_0::RequestDate

[Visual Basic] Page Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions_4_0::ConvertTimeString

[Visual Basic] Page.RequestDate


IMSCSPage_3_0::SiteRoot Method [C++]

Page.SiteRoot Method [Visual Basic]

Use this method to return the physical directory that contains the Commerce Server site.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::SiteRoot(
  BSTR* pbstrRet
);
[Visual Basic]
Function SiteRoot() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the physical directory path.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the physical directory path.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The pvtRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::VirtualDirectory

[Visual Basic] Page Object

[Visual Basic] Page.VirtualDirectory


IMSCSPage_3_0::SURL Method [C++]

Page.SURL Method [Visual Basic]

Use this method to generate a properly formatted secure HTTP URL (SURL) based on the provided file name and an optional list of name/value arguments. The formatted URL includes the server name, the virtual directory in which the file is stored (taken from the context in which the Web site is running), and the name of the file itself.

Additionally, if the StandardSManager for the application is initialized in URL mode, the SURL method uses the value stored in the MSCSSIDUrlKey Application object variable as the name in a name/value pair, the value of which is the current customer's shopper ID.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the SURL method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::SURL(
  BSTR bstrPath,
  BSTR* pbstrRet
);
[Visual Basic]
Function SURL(
  bstrPath As String
) As String

Parameters

bstrPath [C++]
[in] A BSTR that contains the name of the file for the SURL to reference.
bstrPath [Visual Basic]
A String that contains the name of the file for the SURL to reference.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the properly formatted secure HTTP URL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns String that contains a properly formatted secure HTTP URL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

During application development, you can set the Site.DisableHTTPS property to one (1), which causes the SURL method to use the InsecureHostName value as the host name. The SURL method generates a secure URL only if Site.DisableHTTPS is set to zero (0).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

The following example is from the MySite Purchase.asp file.

<FORM METHOD="POST"
    ACTION =<% = Page.SURL("xt_orderform_purchase.asp" %)
If the hostname is www.microsoft.com, the preceding example
' produces the following URL:
https://www.microsoft.com/MySite/xt_orderform_purchase.asp

See Also

[C++] Page Object

[C++] StandardSManager Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::URL

[Visual Basic] Page Object

[Visual Basic] StandardSManager Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.URL


IMSCSPage_3_0::SURLPrefix Method [C++]

Page.SURLPrefix Method [Visual Basic]

Use this method to return the secure root domain as determined by the MSCSSecureHostName value. The returned string can be used as the prefix of a complete URL.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the SURLPrefix method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::SURLPrefix(
  BSTR* pbstrRet
);
[Visual Basic]
Function SURLPrefix() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the secure root domain string.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the secure root domain string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

During application development, you can set the DisableHTTPS property of the site dictionary to one (1), which causes the SURLPrefix method to use the InsecureHostName value as the host name. The SURLPrefix method generates a secure URL only if Site.DisableHTTPS is set to zero (0).

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] StandardSManager Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::URLPrefix

[C++] IMSCSPage_3_0::URLShopperArgs

[C++] IMSCSPage_3_0::SURL

[C++] IMSCSPage_3_0::URLArgs

[C++] IMSCSPage_3_0::VirtualDirectory

[Visual Basic] Page Object

[Visual Basic] StandardSManager Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.URLPrefix

[Visual Basic] Page.SURL

[Visual Basic] Page.URLShopperArgs

[Visual Basic] Page.URLArgs

[Visual Basic] Page.VirtualDirectory


IMSCSPage_3_0::URL Method [C++]

Page.URL Method [Visual Basic]

Use this method to generate a URL based on the specified file name and an optional list of name/value arguments. This URL includes the server name, the virtual directory in which the file is stored, and the name of the file itself.

Additionally, if the StandardSManager for the application is initialized in URL mode, the URL method uses the value stored in the Application object's MSCSSIDUrlKey variable as the name in a name/value pair, the value of which is the current shopper ID.

The method applies URL encoding to the values passed in.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the URL method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::URL(
  BSTR bstrPath,
  BSTR* pbstrRet
);
[Visual Basic]
Function URL(
  bstrPath As String
) As String

Parameters

bstrPath [C++]
[in] A BSTR that contains the name of the file to reference in the URL.
bstrPath [Visual Basic]
A String that contains the name of the file to reference in the URL.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the encoded value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the encoded value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The URL method spares the site builder the need to map a file
' to the HTTP path to that file. For example, assume the
following call to URL:
<%= oPage.URL("filename.asp") %>
' This call resolves to the correct HTTP path to
' filename.asp as follows:
http://host_name/virtual_directory/filename.asp
' The value for host_name is determined by the contents of the
' site dictionary's InsecureHostName value. The virtual_directory
' is determined automatically from the scripting context.

See Also

[C++] Page Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::SURL

[Visual Basic] Page Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.SURL


IMSCSPage_3_0::URLArgs Method [C++]

Page.URLArgs Method [Visual Basic]

Use this method to generate a series of query string arguments in an appropriate form for passing in a URL. The method applies URL encoding to the values passed in.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the URLArgs method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::URLArgs(
  BSTR* pbstrRet
);
[Visual Basic]
Function URLArgs() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the series of query string arguments.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the series of query string arguments.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::VirtualDirectory

[C++] IMSCSPage_3_0::SURL

[C++] IMSCSPage_3_0::SURLPrefix

[C++] IMSCSPage_3_0::URL

[C++] IMSCSPage_3_0::URLShopperArgs

[Visual Basic] Page Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.VirtualDirectory

[Visual Basic] Page.SURL

[Visual Basic] Page.SURLPrefix

[Visual Basic] Page.URL

[Visual Basic] Page.URLShopperArgs


IMSCSPage_3_0::URLEncode Method [C++]

Page.URLEncode Method [Visual Basic]

Use this method to apply URL-encoding rules, including escape characters, to a specified string. An encoded URL string may be passed in a URL as a query string argument.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the URLEncode method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::URLEncode(
  VARIANT vtValue,
  BSTR* pbstrRet
);
[Visual Basic]
Function URLEncode(
  vtValue As Variant
) As String

Parameters

vtValue [C++]
[in] A VARIANT that contains the string to be encoded.
vtValue [Visual Basic]
A Variant that contains the string to be encoded.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the URL-encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a URL-encoded String.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

Strings that contain certain characters, such as spaces, slashes (/), or percentage symbols (%), cannot be passed as URL query arguments. URL encoding encodes these characters as escaped text so that they can be passed in a URL.

The Page.URLEncode method is equivalent to the Server.URLEncode method, except that the Page.URLEncode method handles NULL values by returning an empty string. (The Server.URLEncode method fails when the String parameter is NULL). This distinction is important because database queries can return NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Suppose that a variable called referringURL contains the URL _
' http://www.microsoft.com, which is to be passed as a query
' string argument in another URL.
' The following script:
<A HREF="Sample.asp?referringURL=<% =
    oPage.URLEncode(referringURL) %>">My link</A>
' generates the following HTML:
<A HREF="Sample.asp?referringURL= _
http%3A%2F%2Fwww%2Emicrosoft%2Ecom">My link</A>
' The receiving page (Sample.asp) can use the Request method to
' get the value of the variable. The method converts the string
' back to its original form and returns it to the script on the page.

See Also

[C++] Page Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::HTMLEncode

[Visual Basic] Page Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.HTMLEncode


IMSCSPage_3_0::URLPrefix Method [C++]

Page.URLPrefix Method [Visual Basic]

Use this method to return the root domain as determined by the InsecureHostName value. The returned string can be used as the prefix to a complete URL.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the URLPrefix method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::URLPrefix(
  BSTR* pbstrRet
);
[Visual Basic]
Function URLPrefix() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the root domain.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the root domain string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

To generate the domain for the secure host, use the Page.SURLPrefix method.

See Also

[C++] Page Object

[C++] AuthManager Object

[C++] IMSCSPage_3_0::SURLPrefix

[C++] IMSCSPage_3_0::VirtualDirectory

[C++] IMSCSPage_3_0::SURL

[C++] IMSCSPage_3_0::SURLPrefix

[C++] IMSCSPage_3_0::URL

[C++] IMSCSPage_3_0::URLShopperArgs

[C++] IMSCSPage_3_0::URLArgs

[Visual Basic] Page Object

[Visual Basic] AuthManager Object

[Visual Basic] Page.SURLPrefix

[Visual Basic] Page.VirtualDirectory

[Visual Basic] Page.SURL

[Visual Basic] Page.SURLPrefix

[Visual Basic] Page.URL

[Visual Basic] Page.URLShopperArgs

[Visual Basic] Page.URLArgs


IMSCSPage_3_0::URLShopperArgs Method [C++]

Page.URLShopperArgs Method [Visual Basic]

Use this method to generate a series of query string arguments in an appropriate form for passing in a URL, and include in the arguments the shopper ID if the StandardSManager has been initialized to URL mode. The URLShopperArgs method URL-encodes the values passed in.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AuthManager object, which provides similar functionality to that found in the URLShopperArgs method. Using the AuthManager methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::URLShopperArgs(
  BSTR* pbstrRet
);
[Visual Basic]
Function URLShopperArgs() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the series of query string arguments.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the series of query string arguments.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

The URLShopperArgs method appends the current customer's shopper ID to the URL argument list. The name of the argument passed in the URL is stored in the Application object's MSCSSIDUrlKey variable.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] AuthManager Object

[Visual Basic] Page Object

[Visual Basic] AuthManager Object


IMSCSPage_3_0::VerifyWith Method [C++]

Page.VerifyWith Method [Visual Basic]

Use this method to output HTML tags in the form <INPUT TYPE="HIDDEN"> in an HTML form. These hidden fields contain specified values from the OrderForm object to be used to verify that an order has not been altered between presentation of the OrderForm and final purchase. When the order form is submitted, the ProcessVerifyWith method on the target page stores these fields in a Dictionary object in the OrderForm, which is then passed to the Order Processing pipeline (OPP). One of the objects in the pipeline compares the original values with the values from the hidden fields.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::VerifyWith(
  IDispatch* pdispOrder,
  BSTR* pbstrArguments
  BSTR* pbstrRet
);
[Visual Basic]
Function VerifyWith(
  pdispOrder As Object
  pbstrArguments As String
) As String

Parameters

pdispOrder [C++]
[in] A pointer to the IDispatch interface that can be used to retrieve the OrderForm object that contains the fields to verify.
pbstrArguments [C++]
[in] A pointer to a BSTR that contains a comma-separated list of field names in the supplied OrderForm object to verify. This parameter is optional.
pdispOrder [Visual Basic]
An object reference to the OrderForm object that contains the fields to verify.
pbstrArguments [Visual Basic]
A String that contains a comma-separated list of field names in the supplied OrderForm object to verify. This parameter is optional.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the HTML tags.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the HTML tags.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oPage is a Commerce.Page object
' The following example generates hidden fields containing
' the values stored in the _total_total,and _tax_total fields
'  of the supplied OrderForm object:
<FORM METHOD="POST"
    ACTION="<% = oPage.SURL("xt_orderform_purchase.asp") %>">
    <% = mscsPage.VerifyWith(mscsOrderForm, "_total_total",
 "_tax_total") %>
' When the page containing this call is loaded in the client
' browser, the  document source for the page would contain the
'  following HTML script '(assuming a total of 138.95 and a tax
'  of 8.75):
<FORM METHOD="POST"
ACTION="http://example.microsoft.com/xt_orderform_purchase.asp">
<INPUT TYPE=HIDDEN NAME="_VERIFY_WITH" VALUE="_total_total=13895">
<INPUT TYPE=HIDDEN NAME="_VERIFY_WITH" VALUE="_tax_total=875">

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::ProcessVerifyWith

[C++] OrderForm Object

[Visual Basic] Page Object

[Visual Basic] Page.ProcessVerifyWith

[Visual Basic] OrderForm Object


IMSCSPage_3_0::VirtualDirectory Method [C++]

Page.VirtualDirectory Method [Visual Basic]

Use this method to return the name of the virtual directory for the site.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition. See the AppFrameWork object, which provides similar functionality to that found in this method. Using the AppFrameWork methods is the preferred way of adding this type of functionality to your site, and will ensure better compatibility with future versions of Microsoft Commerce Server.

Definition

[C++]
HRESULT IMSCSPage_3_0::VirtualDirectory(
  BSTR* pbstrRet
);
[Visual Basic]
Function VirtualDirectory() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the site virtual directory.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the site virtual directory.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[C++] IMSCSPage_3_0::SiteRoot

[C++] IMSCSPage_3_0::SURL

[C++] IMSCSPage_3_0::URL

[C++] IMSCSPage_3_0::SURLPrefix

[C++] IMSCSPage_3_0::URLArgs

[C++] IMSCSPage_3_0::URLPrefix

[C++] IMSCSPage_3_0::URLShopperArgs

[C++] StandardSManager Object

[Visual Basic] Page Object

[Visual Basic] Page.SiteRoot

[Visual Basic] Page.SURL

[Visual Basic] Page.URL

[Visual Basic] Page.SURLPrefix

[Visual Basic] Page.URLArgs

[Visual Basic] Page.URLPrefix

[Visual Basic] Page.URLShopperArgs

[Visual Basic] StandardSManager Object


IMSCSPage_3_0 Methods [C++]

Page Methods [Visual Basic]

Properties

[C++]
Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.
[Visual Basic]
Property | Type | Description
Context | IDispatch | A value that contains the Microsoft Internet Information Services (IIS) scripting context. This property is read-only.


IMSCSPage_3_0::get_Context Property [C++]

Page.Context Property [Visual Basic]

The Context property is a read-only property that contains the ASP scripting context.

Normally, the contents of the Context property do not need to be retrieved. The Context property is used only as a parameter to other Commerce Server methods that need access to the ASP scripting context.

Important

  • This method is included for backwards compatibility with Site Server 3.0 Commerce Edition.

Definition

[C++]
HRESULT IMSCSPage_3_0::get_Context(
  IDispatch** Context
);
[Visual Basic]
Property Context As Object

Parameters

Context [C++]
[out, retval] An IDispatch interface used to return the ASP scripting context.

[Visual Basic] None.

[C++]

Return Values

This property returns an HRESULT indicating whether completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The Context parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Page Object

[Visual Basic] Page Object


StandardSManager Object [C++]

StandardSManager Object [Visual Basic]

Use this object to facilitate the run time creation and retrieval of shopper IDs.

ProgID: | Commerce.StandardSManager (Externally creatable)
COM Class Name: | MSCSStandardSManager_3_0
Type Library Name: | Commerce 1.0 Type Library
DLL Name: | Commerce.dll
Threading Model: | Both
[C++]
COM Interface Name: | IMSCSStandardSManager_3_0
Interface ID Constant: | IID_IMSCSStandardSManager_3_0
Header File: | mspu_guids.h
[C++]

In C++, use the IMSCSStandardSManager_3_0 interface to access the properties and methods of the StandardSManager object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
CreateShopperId | Creates a unique shopper ID for the current user.
GetShopperId | Returns the unique shopper ID for the current user.
InitManager | Initializes the StandardSManager object.
PutShopperId | Writes the specified shopper ID to a cookie and/or stores it for use in a URL or SURL, depending on the initialization mode of the StandardSManager object for the site.
[Visual Basic]
Method | Description
CreateShopperId | Creates a unique shopper ID for the current user.
GetShopperId | Returns the unique shopper ID for the current user.
InitManager | Initializes the StandardSManager object.
PutShopperId | Writes the specified shopper ID to a cookie and/or stores it for use in a URL or SURL, depending on the initialization mode of the StandardSManager for the site.

Properties

[C++]
Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.
[Visual Basic]
Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.

Remarks

This object is only included for purposes of backward compatibility with Site Server 3.0 Commerce Edition; it has been replaced by the AuthManager object.

See Also

Backward Compatibility Objects

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSStandardSManager_3_0 Methods [C++]

StandardSManager Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateShopperId | Creates a unique shopper ID for the current user.
GetShopperId | Returns the unique shopper ID for the current user.
InitManager | Initializes the StandardSManager object.
PutShopperId | Writes the specified shopper ID to a cookie and/or stores it for use in a URL or SURL, depending on the initialization mode of the StandardSManager object for the site.
[Visual Basic]
Method | Description
CreateShopperId | Creates a unique shopper ID for the current user.
GetShopperId | Returns the unique shopper ID for the current user.
InitManager | Initializes the StandardSManager object.
PutShopperId | Writes the specified shopper ID to a cookie and/or stores it for use in a URL or SURL, depending on the initialization mode of the StandardSManager for the site.


IMSCSStandardSManager_3_0::CreateShopperId Method [C++]

StandardSManager.CreateShopperId Method [Visual Basic]

Use this method to create a unique shopper ID for the current user.

Definition

[C++]
HRESULT IMSCSStandardSManager_3_0::CreateShopperId(
 BSTR* pbstrRet
);
[Visual Basic]
Function CreateShopperId() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the new shopper ID.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String containing the new shopper ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] StandardSManager Object

[C++] IMSCSStandardSManager_3_0::InitManager

[C++] IMSCSStandardSManager_3_0::GetShopperId

[C++] IMSCSStandardSManager_3_0::PutShopperId

[Visual Basic] StandardSManager Object

[Visual Basic] StandardSManager.InitManager

[Visual Basic] StandardSManager.GetShopperId

[Visual Basic] StandardSManager.PutShopperId


IMSCSStandardSManager_3_0::GetShopperId Method [C++]

StandardSManager.GetShopperId Method [Visual Basic]

Use this method to retrieve the shopper ID for the current user. The shopper ID is returned from a URL query string or a cookie, depending on the initialization mode of the StandardSManager object for the site.

Definition

[C++]
HRESULT IMSCSStandardSManager_3_0::GetShopperId(
 IDispatch* pdispContext,
 VARIANT* pvtRet
);
[Visual Basic]
Function GetShopperId(
 pdispContext As Object
) As Variant

Parameters

pdispContext [C++]
[in] A pointer to the IDispatch interface that contains the ASP scripting context.
pdispContext [Visual Basic]
An object reference that holds the ASP scripting context.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the shopper ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that specifies the shopper ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completes successfully.

If no shopper ID is found, the GetShopperID method returns an empty string.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] StandardSManager Object

[C++] IMSCSStandardSManager_3_0::get_Mode, put_Mode

[C++] IMSCSStandardSManager_3_0::PutShopperId

[Visual Basic] StandardSManager Object

[Visual Basic] StandardSManager.Mode

[Visual Basic] StandardSManager.PutShopperId


IMSCSStandardSManager_3_0::InitManager Method [C++]

StandardSManager.InitManager Method [Visual Basic]

Use this method to initialize the StandardSManager object to the specified site name and mode.

Definition

[C++]
HRESULT IMSCSStandardSManager_3_0::InitManager(
 BSTR bstrStoreKey,
 BSTR bstrMode
);
[Visual Basic]
Sub InitManager(
 bstrStoreKey As String,
 bstrMode As String
)

Parameters

bstrStoreKey [C++]
[in] A BSTR that contains the name of the site.
bstrStoreKey [Visual Basic]
A String that contains the name of the site.
bstrMode [C++]
[in] A BSTR that indicates how user information is to be stored. For more information about initialization modes, see the Remarks section.
bstrMode [Visual Basic]
A String that indicates how user information is to be stored. For more information about initialization modes, see the Remarks section.

Return Values

[C++]This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The bstrMode parameter can take the following values:

Mode | Behavior
Cookie | The PutShopperID method stores the shopper ID in a cookie on the client system. The GetShopperID method retrieves this cookie.
url | The PutShopperID method appends the shopper ID to the URL, using MCSSIDUrlKey as the name part of the URL variable. The GetShopperID method retrieves the shopper ID from the URL.
Cookieurl | The PutShopperID method stores the shopper ID in a cookie on the client system and in the URL. The GetShopperID method first attempts to retrieve the shopper ID from the cookie, and then from the URL.
Urlcookie | The PutShopperID method stores the shopper ID in a URL, and stores it as a cookie on the client system. The GetShopperID method first attempts to retrieve the shopper ID from the URL, then from the cookie.

This object is only included for purposes of backward compatibility with Site Server 3.0 Commerce Edition.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oStdSManager is a Commerce.StandardSManager object
oStdSManager.InitManager("mySiteName", "Cookie")

See Also

[C++] StandardSManager Object

[C++] IMSCSStandardSManager_3_0::get_Mode, put_Mode

[C++] IMSCSStandardSManager_3_0::PutShopperId

[Visual Basic] StandardSManager Object

[Visual Basic] StandardSManager.Mode

[Visual Basic] StandardSManager.PutShopperId


IMSCSStandardSManager_3_0::PutShopperId Method [C++]

StandardSManager.PutShopperId Method [Visual Basic]

Use this method to store a shopper ID for the current user. After the object has been initialized, the shopper ID will be stored in a cookie or as part of the URL.

Definition

[C++]
HRESULT IMSCSStandardSManager_3_0::PutShopperId(
 IDispatch* pdispContext,
 BSTR bstrShopperID
);
[Visual Basic]
Sub PutShopperId(
 pdispContext As Object,
 bstrShopperID As String
)

Parameters

pdispContext [C++]
[in] A pointer to the IDispatch interface used to retrieve the ASP scripting context.
pdispContext [Visual Basic]
An object reference that holds the ASP scripting context.
bstrShopperID [C++]
[in] A BSTR that contains the shopper ID to be stored.
bstrShopperID [Visual Basic]
A String that contains the shopper ID to be stored.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] StandardSManager Object

[C++] IMSCSStandardSManager_3_0::get_Mode, put_Mode

[C++] IMSCSStandardSManager_3_0::GetShopperId

[Visual Basic] StandardSManager Object

[Visual Basic] StandardSManager.Mode

[Visual Basic] StandardSManager.GetShopperId


IMSCSStandardSManager_3_0 Properties [C++]

StandardSManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.
[Visual Basic]
Property | Type | Description
Mode | Integer | Determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.


IMSCSStandardSManager_3_0::get_Mode, put_Mode Property [C++]

StandardSManager.Mode Property [Visual Basic]

The Mode property is a read/write Integer that determines how the GetShopperID and PutShopperID methods of the Page object retrieve and store shopper IDs.

Definition

[C++]

Get method:

HRESULT IMSCSStandardSManager_3_0::get_Mode(
 int* Mode
);

Put method:

HRESULT IMSCSStandardSManager_3_0::put_Mode(
 int Mode
);
[Visual Basic]
Property Mode As Integer

Parameters

Mode [C++]
[in] When putting the property, an Integer that contains the mode.
[out, retval] When getting the property, an Integer used to return the mode.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

After creating a StandardSManager object, but before calling the GetShopperID or PutShopperID methods, you must initialize the StandardSManager object. To do this, call the InitManager method of the StandardSManager object, specifying the site name and the initialization mode.

The following table shows the values that the mode property integer can take.

Mode | Behavior
0 | Look only at cookie
1 | Look only at URL
2 | Look at cookie and then URL
3 | Look at URL and then cookie

[C++] The Mode parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] StandardSManager Object

[C++] Page Object

[C++] IMSCSStandardSManager_3_0::InitManager

[Visual Basic] StandardSManager Object

[Visual Basic] Page Object

[Visual Basic] StandardSManager.InitManager


Business Analysis Objects

The Business Analysis Objects are used to build prediction models and create reports based on site data.

Objects

Visual Basic Reference | C++ Invocation | Description
AsyncRpt2 | AsyncRpt2 | Provides asynchronous rendering and exporting of static reports.
DTSCatalogImport | DTSCatalogImport | Imports catalog data into the Data Warehouse.
DTSDeleteImport | DTSDeleteImport | Deletes log file data and summarized data from the Data Warehouse.
DTSIPResolution | DTSIPResolution | Resolves Internet Protocol (IP) addresses from the imported user data.
DTSLogImport | DTSLogImport | Defines and imports Web log files into the Data Warehouse.
DTSPostImport | DTSPostImport | Populates OLAP cubes with the data that was imported, prepares the imported data for report generation, and refreshes the OLAP cubes after a deletion.
DTSSyncAdminData | DTSSyncAdminData | Synchronizes the Data Warehouse with your Commerce Server application after you make changes to configuration settings.
DTSTransactionImport | DTSTransactionImport | Runs reports to analyze transaction data.
ReportRenderer2 | ReportRenderer2 | Provides synchronous rendering and exporting of static reports.


AsyncRpt2 Object [C++]

AsyncRpt2 Object [Visual Basic]

Use this object to render (display) or export a static report asynchronously.

ProgID: | Commerce.AsyncRptMgr2 (Externally creatable)
COM Class Name: | AsyncRpt2
Type Library Name: | Microsoft Commerce 2002 Async Report Manager Type Library
DLL Name: | AsyncReport2.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAsyncRpt
Interface ID Constant: | IID_IAsyncRpt
Header File: | AsyncReport.h
[C++]

In C++, use the IAsyncRpt2 interface to access the methods of the AsyncRpt2 object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
RunReport | Runs or exports the report.
[Visual Basic]
Method | Description
RunReport | Runs or exports the report.

Properties

[C++]
Property | Type | Description
BizdeskDocPath | BSTR | Contains the URL for the default ASP page in the directory containing the report help files. This property is write-only.
ReportLocale | Long | Stores the locale in which the report should appear. This property is write-only.
[Visual Basic]
Property | Type | Description
BizdeskDocPath | BSTR | Contains the URL for the default ASP page in the directory containing the report help files. This property is write-only.
ReportLocale | Long | Stores the locale in which the report should appear. This property is write-only.

Remarks

The AsyncRpt2 object renders or exports reports asynchronously.

The ReportRender2 object renders or exports reports synchronously.

[C++] The AsyncRpt2 object calls the ReportRender2 object passing it a string containing the rendering parameters. For more information about the rendering process, see ReportRender2 Object.

[Visual Basic] The AsyncRpt2 object calls the ReportRender2 object passing it a string containing the rendering parameters. For more information about the rendering process, see ReportRender2 Object.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

[C++] ListManager Object

[C++] ReportRenderer Object

[Visual Basic] ListManager Object

[Visual Basic] ReportRenderer2 Object

Running Reports


IAsyncRpt2 Methods [C++]

AsyncRpt2 Methods [Visual Basic]

Methods

[C++]
Method | Description
RunReport | Runs or exports the report.
[Visual Basic]
Method | Description
RunReport | Runs or exports the report.


IAsyncRpt2::RunReport Method[C++]

AsyncRpt2.RunReport Method [Visual Basic]

Use this method to initialize the AsyncRpt2 object and to render or export a static report asynchronously.

Definition

[C++]
HRESULT IAsyncRpt::RunReport(
  BSTR bstrRepParam
);
[Visual Basic]
Sub RunReport(
  bstrRepParam As String
)

Parameters

bstrRepParam [C++]
[in, out] A BSTR used to supply parameters to the AsyncRpt2 object.
bstrRepParam [Visual Basic]
A String used to supply parameters to the AsyncRpt2 object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and E_FAIL (0x80004005) to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to E_FAIL (&H80004005) to indicate failure. For more information about standard COM errors, see Standard COM Errors.

Remarks

The AsyncRpt2 object calls the ReportRender2 object, passing it the bstrRepParam parameter.

[C++] The bstrRepParam parameter is identical to the sParamString parameter of the Init method of the ReportRender2 object. For more information, see ReportRender Object.

[Visual Basic] The bstrRepParam parameter is identical to the sParamString parameter of the Init method of the ReportRender2 object. For more information, see ReportRender Object.

See Also

[C++] AsyncRpt2 Object

[Visual Basic] AsyncRpt2 Object


IAsyncRpt2 Properties

AsyncRpt2 Properties

Properties

[C++]
Property | Type | Description
BizdeskDocPath | BSTR | Stores the URL to the default ASP page in the directory containing the report help files. This property is write-only.
ReportLocale | long | Stores the locale in which the report should appear. This property is write-only.
[Visual Basic]
Property | Type | Description
BizDeskDocPath | String | Stores the URL to the default ASP page in the directory containing the report help files. This property is write-only.
ReportLocale | Long | Stores the locale in which the report should appear. This property is write-only.


IAsyncRpt2::get_BizDeskDocPath, put_BizDeskDocPath Property[C++]

AsyncRpt2.BizDeskDocPath Property[Visual Basic]

The BizDeskDocPath property is a write-only string containing the URL to the default ASP page in the directory containing the report help files.

Definition

[C++]

Put method:

HRESULT IAsyncRpt::put_BizDeskDocPath(
 BSTR rhs
);
[Visual Basic]
Property BizDeskDocPath As String

Parameters

rhs [C++]
[in, optional] String containing the URL to the new default ASP page.
[out, retval] String returning the URL to the current default ASP page.
None.[Visual Basic]

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.


IAsyncRpt2::get_ReportLocale, put_ReportLocale Property [C++]

AsyncRpt2.ReportLocale Property [Visual Basic]

The ReportLocale property is a write-only long that identifies the locale of the report.

Definition

[C++]

Get method:

HRESULT IAsyncRpt::get_ReportLocale(
 long ReportLocale
);

Put method:

HRESULT IAsyncRpt::put_ReportLocale(
 long ReportLocale
);
[Visual Basic]
Property ReportLocale As Long

Parameters

Description [C++]
[in] Long integer containing the locale code to which you wish to set the report locale.

[out, retval] Long integer containing the current locale code of the report.

None. [Visual Basic]

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Example

objReport.ReportLocale = Application("MSCSDefaultLocale")


DTSCatalogImport Object [C++]

DTSCatalogImport Object [Visual Basic]

Use this object to import catalog data. Run this object from within the context of a Data Transformation Services (DTS) package. Do not access the methods and properties directly. For more information about scripting the Product catalog import DTS task, see Scripting the Product Catalog Import DTS Task.

ProgID: | Commerce.DTSCatalogImport (Externally creatable)
COM Class Name: | DTSCatalogImport
Type Library Name: | Microsoft Commerce 2002 Catalog Data Import DTS Task Type Library
DLL Name: | CSDWDTSCatalogImp.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSCatalogImport
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
Description | BSTR | Stores a description of the DTS task. This property is read/write.
NumRetries | long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is write only.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
Description | String | Stores a description of the DTS task. This property is read/write.
NumRetries | Long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | Long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is write only.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSDeleteImport Object

[C++] DTSIPResolution Object

[C++] DTSLogImport Object

[C++]

[C++] DTSPostImport Object

[C++]

[C++] DTSSynchAdminData Object

[C++] DTSTransactionImport Object

[C++]

[Visual Basic] DTSDeleteImport Object

[Visual Basic] DTSIPResolution Object

[Visual Basic] DTSLogImport Object

[Visual Basic]

[Visual Basic] DTSPostImport Object

[Visual Basic]

[Visual Basic] DTSSynchAdminData Object

[Visual Basic] DTSTransactionImport Object

[Visual Basic]


_DTSCatalogImport Methods [C++]

DTSCatalogImport Methods [Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSCatalogImport::CustomTask_Execute Method [C++]

DTSCatalogImport.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSCatalogImport::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::PersistPropertyBag_Load Method [C++]

DTSCatalogImport.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSCatalogImport::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::PersistPropertyBag_Save Method [C++]

DTSCatalogImport.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSCatalogImport::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport Properties [C++]

DTSCatalogImport Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Description | BSTR | Stores a description of the DTS task. This property is read/write.
NumRetries | long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is write only.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
Description | String | Stores a description of the DTS task. This property is read/write.
NumRetries | Long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | Long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is write only.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.


_DTSCatalogImport::get_Description, put_Description Property [C++]

DTSCatalogImport.Description Property [Visual Basic]

The Description property is a read/write String that describes the Data Transformation Services (DTS) task.

Definition

[C++]

Get method:

HRESULT _DTSCatalogImport::get_Description(
 BSTR Description
);

Put method:

HRESULT _DTSCatalogImport::put_Description(
 BSTR Description
);
[Visual Basic]
Property Description() As String

Parameters

Description [C++]
[in] When putting the property, a BSTR used to describe the DTS task.
[out,retval] When getting the property, a BSTR used to describe the DTS task.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::get_NumRetries, put_NumRetries Property [C++]

DTSCatalogImport.NumRetries Property [Visual Basic]

The NumRetries property is a read/write Long that specifies the number of retry attempts that are to be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSCatalogImport::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSCatalogImport::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries [C++]
[in] When putting the property, a long used to specify the number of retry attempts that will be made after a SQL connection/query failure.
[out,retval] When getting the property, a long used to specify the number of retry attempts that will be made after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::get_ProcessingType, put_ProcessingType Property [C++]

DTSCatalogImport.ProcessingType Property [Visual Basic]

The ProcessingType property is a read/write long that specifies the type of processing, which can be either full or incremental.

Definition

[C++]

Get method:

HRESULT _DTSCatalogImport::get_ProcessingType(
 long ProcessingType
);

Put method:

HRESULT _DTSCatalogImport::put_ProcessingType(
 long ProcessingType
);
[Visual Basic]
Property ProcessingType() As Long

Parameters

ProcessingType[C++]
[in] When putting the property, a long that specifies the type of processing.
[out,retval] When getting the property, a long that specifies the type of processing.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ProcessingType property is set to ptypeFull (0), the task will process the full load. If the ProcessingType property is set to ptypeIncremental (100), the task will process the load incrementally. The default value is ptypeFull (0).

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::get_RetryInterval, put_RetryInterval Property[C++]

DTSCatalogImport.RetryInterval Property [Visual Basic]

The RetryInterval property is a read/write Long that specifies the amount of time that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSCatalogImport::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSCatalogImport::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval [C++]
[in] When putting the property, a long that contains the number of seconds between retry attempts.
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0 (zero). The maximum value is 3600. The default value is 30.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::put_SourceName

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.SourceName

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::put_SourceName Property [C++]

DTSCatalogImport.SourceName Property [Visual Basic]

The SourceName property is a write only String that specifies the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]
HRESULT _DTSCatalogImport::put_SourceName(
 BSTR* SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName [C++]
[in] A BSTR that contains the name of the Web site or Data Warehouse.
[Visual Basic]None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::get_SourceType, put_SourceType

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceType


_DTSCatalogImport::get_SourceType, put_SourceType Property [C++]

DTSCatalogImport.SourceType Property [Visual Basic]

The SourceType property is a read/write long that specifies the level on which the Data Transformation Services (DTS) task will operate.

Definition

[C++]

Get method:

HRESULT _DTSCatalogImport::get_SourceType(
 long SourceType
);

Put method:

HRESULT _DTSCatalogImport::put_SourceType(
 long SourceType
);
[Visual Basic]
Property SourceType() As Long

Parameters

SourceType[C++]
[in] When putting the property, a long that contains the type of source.
[out, retval] When getting the property, a long that contains the type of source.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the SourceType property is set to srctypeSite (0), the task will operate on the Web site level. If the SourceType property is set to scrtypeDW (1), the task will operate on the Data Warehouse level. The default value is srctypeSite (0).

See Also

Scripting the Product Catalog Import DTS Task

[C++] DTSCatalogImport::CustomTask_Execute

[C++] DTSCatalogImport::get_Description, put_Description

[C++] DTSCatalogImport::get_NumRetries, put_NumRetries

[C++] DTSCatalogImport::PersistPropertyBag_Load

[C++] DTSCatalogImport::PersistPropertyBag_Save

[C++] DTSCatalogImport::get_ProcessingType, put_ProcessingType

[C++] DTSCatalogImport::get_RetryInterval, put_RetryInterval

[C++] DTSCatalogImport::put_SourceName

[Visual Basic] DTSCatalogImport.CustomTask_Execute

[Visual Basic] DTSCatalogImport.Description

[Visual Basic] DTSCatalogImport.NumRetries

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Load

[Visual Basic] DTSCatalogImport.PersistPropertyBag_Save

[Visual Basic] DTSCatalogImport.ProcessingType

[Visual Basic] DTSCatalogImport.RetryInterval

[Visual Basic] DTSCatalogImport.SourceName


DTSDeleteImport Object [C++]

DTSDeleteImport Object [Visual Basic]

Use this object to delete log file data and summarized data from the Data Warehouse. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the Data deletion DTS task, see Scripting the Data Deletion DTS Task.

ProgID: | Commerce.DTSDeleteImport (Externally creatable)
COM Class Name: | DTSDeleteImport
Type Library Name: | Microsoft Commerce 2002 Delete DTS Task Type Library
DLL Name: | CSDWDTSDelete.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSDeleteImport
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
Count | long | Determines the log files to save or delete based on the value of the DeleteType and WebLogDeleteType properties. This property is read/write.
DeleteLevel | long | Determines if all data associated with the Web log file import will be deleted, or if only the detailed data will be deleted. This property is read/write.
DeleteType | long | Determines if all data from the Data Warehouse is deleted, or if only specific log files are deleted. This property is read/write.
Interval | long | Specifies the unit used for the Count property, in days, weeks, or months. This property is read/write.
ListofLogs | BSTR | Stores the list of log files to be deleted. This property is read/write.
NumRetries | long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. The default value is the first Data Warehouse or Web site on the alphabetically sorted list. This property is read/write.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
WebLogDeleteType | long | Determines if specific log files are deleted, or if rotating deletes are performed. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Determines the log files to save or delete based on the value of the DeleteType and WebLogDeleteType properties. This property is read/write.
DeleteLevel | Long | Determines if all data associated with the Web log file import will be deleted, or if only the detailed data will be deleted. This property is read/write.
DeleteType | Long | Determines if all data from the Data Warehouse is deleted, or if only specific log files are deleted. This property is read/write.
Interval | Long | Specifies the unit used for the Count property, in days, weeks, or months. This property is read/write.
ListofLogs | String | Stores the list of log files to be deleted. This property is read/write.
NumRetries | Long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | Long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. The default value is the first Data Warehouse or Web site on the alphabetically sorted list. This property is read/write.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
WebLogDeleteType | Long | Determines if specific log files are deleted, or if the rotating deletes are performed. This property is read/write.

See Also

Scripting the Data Deletion DTS Task

[C++]

DTSCatalogImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object

[Visual Basic]

DTSCatalogImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object


_DTSDeleteImport Methods [C++]

DTSDeleteImport Methods [Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSDeleteImport::CustomTaskExecute Method [C++]

DTSDeleteImport.CustomTaskExecute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSCatalogImport::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::PersistPropertyBag_Load Method [C++]

DTSDeleteImport.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when the task is run through a DTS package, and should not be called explicitly.

Definition

[C++]
HRESULT _DTSCatalogImport::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::PersistPropertyBag_Save Method [C++]

DTSDeleteImport.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSCatalogImport::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport Properties [C++]

DTSDeleteImport Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Count | long | Determines the log files to save or delete based on the value of the DeleteType and WebLogDeleteType properties. This property is read/write.
DeleteLevel | long | Determines if all data associated with the Web log file import will be deleted, or if only the detailed data will be deleted. This property is read/write.
DeleteType | long | Determines if all data from the Data Warehouse is deleted, or if only specific log files are deleted. This property is read/write.
Interval | long | Specifies the unit used for the Count property, in days, weeks, or months. This property is read/write.
ListofLogs | BSTR | Stores the list of log files to be deleted. This property is read/write.
NumRetries | long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. The default value is the first Data Warehouse or site on the alphabetically sorted list. This property is read/write.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
WebLogDeleteType | long | Determines if specific log files are deleted, or if rotating deletes are performed. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Determines the log files to save or delete based on the value of the DeleteType and WebLogDeleteType properties. This property is read/write.
DeleteLevel | Long | Determines if all data associated with the Web log file import will be deleted, or if only the detailed data will be deleted. This property is read/write.
DeleteType | Long | Determines if all data from the Data Warehouse is deleted, or if only specific log files are deleted. This property is read/write.
Interval | Long | Specifies the unit used for the Count property, in days, weeks, or months. This property is read/write.
ListofLogs | String | Stores the list of log files to be deleted. This property is read/write.
NumRetries | Long | Stores the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | Long | Stores the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. The default value is the first Data Warehouse or site on the alphabetically sorted list. This property is read/write.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
WebLogDeleteType | Long | Determines if specific log files are deleted, or if the rotating deletes are performed. This property is read/write.


_DTSDeleteImport::get_Count, put_Count Property [C++]

DTSDeleteImport.Count Property [Visual Basic]

The Count property is a read/write Long that determines the number of log files to be kept. The Count property is only used if the DeleteType property is set to 1.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_Count(
 long Count
);

Put method:

HRESULT _DTSDeleteImport::put_Count(
 long Count
);
[Visual Basic]
Property Count() As Long

Parameters

Count [C++]
[out] When getting a property, a long that determines the log files to be kept based on the values of the DeleteType and WebLogDeleteType properties.
[in] When putting a property, a long that determines the log files to be kept based on the values of the DeleteType and WebLogDeleteType properties.
[Visual Basic]None.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the DeleteType property is set to 1 and the WebLogDeleteType property is set to 0, then set this property to the number of previous days, weeks, or months for which you want to keep log files. If the Interval property is set to months and the Count property is set to 1, all imports created more than one month ago will be deleted.

If the DeleteType property is set to 1 and the WebLogDeleteType property is set to 1, then set this property to the number of most recently created files in the Data Warehouse that you want to keep. If the Count property is set to 5, only the five most recent files will be kept, older files will be deleted.

If the DeleteType property is set to 1 and the WebLogDeleteType property is set to 2, then the Count property is not used.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel Property [C++]

DTSDeleteImport.DeleteLevel Property [Visual Basic]

The DeleteLevel property is a read/write Long that determines if all data is deleted, or if only detail data is deleted.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_DeleteLevel(
 long DeleteLevel
);

Put method:

HRESULT _DTSDeleteImport::put_DeleteLevel(
 long DeleteLevel
);
[Visual Basic]
Property DeleteLevel() As Long

Parameters

DeleteLevel [C++]
[out] When getting a property, a long that determines if all data is deleted, or if only detail data is deleted.
[in] When putting a property, a long that determines if all data is deleted, or if only detail data is deleted.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The DeleteLevel property is only used if the DeleteType property is set to 1 (Web Log Import Delete). If the Delete Level property is set to 1, all data will be deleted; if it is set to 0, only detail data will be deleted. The default value is 0.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_DeleteType, put_DeleteType Property [C++]

DTSDeleteImport.DeleteType Property [Visual Basic]

The DeleteType property is a read/write Long. Use this property to specify whether to delete all data from the Data Warehouse or to delete only the specified log files.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_DeleteType(
 long DeleteType
);

Put method:

HRESULT _DTSDeleteImport::put_DeleteType(
 long DeleteType
);
[Visual Basic]
Property DeleteType() As Long

Parameters

DeleteType [C++]
[in] When putting a property, a long that determines if all data will be deleted from the Data Warehouse, or if only Web Log Import data will be deleted from the Data Warehouse.
[out] When getting a property, a long that determines if all data will be deleted from the Data Warehouse, or if only Web Log Import data will be deleted from the Data Warehouse.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When the DeleteType property is set to 0, all data will be deleted from the Data Warehouse. When the DeleteType property is set to 1, only Web Log Import data will be deleted. The default value is 1.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_Interval, put_Interval Property [C++]

DTSDeleteImport.Interval Property [Visual Basic]

The Interval property is a read/write Long used to specify a unit of time.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_Interval(
 long Interval
);

Put method:

HRESULT _DTSDeleteImport::put_Interval(
 long Interval
);
[Visual Basic]
Property Interval() As Long

Parameters

Interval [C++]
[out] When getting a property, a long used to specify a unit of time.
[in] When putting a property, a long used to specify a unit of time.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Interval property is only used if the DeleteType property is set to 1 and the WebLogDeleteType property is set to 0. The valid values for the Interval property are 0 for days, 1 for weeks, 2 for months, and 3 for years.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_ListofLogs, put_ListofLogs Property [C++]

DTSDeleteImport.ListofLogs Property [Visual Basic]

The ListofLogs property is a read/write String used to specify the log files to be deleted.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_ListofLogs(
 BSTR ListofLogs
);

Put method:

HRESULT _DTSDeleteImport::put_ListofLogs(
 BSTR ListofLogs
);
[Visual Basic]
Property ListofLogs() As String

Parameters

ListofLogs [C++]
[out] When getting a property, a String used to specify the log files to be deleted.
[in] When putting a property, a String used to specify the log files to be deleted.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The ListofLogs property is only used if the DeleteType property is set to 1 and the WebLogDeleteType property is set to 2.

The list of log files should contain a comma-separated list of log file IDs or task IDs to be deleted, for example: "1000,1001,1003."

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_NumRetries, put_NumRetries Property [C++]

DTSDeleteImport.NumRetries Property [Visual Basic]

The NumRetries property is a read/write Long that specifies the number of retry attempts to be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSDeleteImport::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries [C++]
[out,retval] When getting the property, a long used to specify the number of retry attempts after a SQL connection/query failure.
[in] When putting the property, a long used to specify the number of retry attempts after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_RetryInterval, put_RetryInterval Property [C++]

DTSDeleteImport.RetryInterval Property [Visual Basic]

The RetryInterval property is a read/write Long that specifies the amount of time that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSDeleteImport::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval [C++]
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
[in] When putting the property, a long that contains the number of seconds between retry attempts.
None. [Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0. The maximum value is 3600. The default value is 30.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_SourceName, put_SourceName Property [C++]

DTSDeleteImport.SourceName Property [Visual Basic]

The SourceName property is a read/write Variant that specifies the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_SourceName(
 VARIANT SourceName
);

Put method:

HRESULT _DTSDeleteImport::put_SourceName(
 VARIANT SourceName
);
[Visual Basic]
Property SourceName() As Variant

Parameters

SourceName [C++]
[in] When putting the property, a VARIANT that contains the name of the Data Warehouse or Web site.
[out,retval] When getting the property, a VARIANT that contains the name of the Data Warehouse or Web site.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceType, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceType

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_SourceType, put_SourceType Property [C++]

DTSDeleteImport.SourceType Property [Visual Basic]

The SourceType property is a read/write Long that specifies the level on which the Data Transformation Services (DTS) task will operate.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_SourceType(
 long SourceType
);

Put method:

HRESULT _DTSDeleteImport::put_SourceType(
 long SourceType
);
[Visual Basic]
Property SourceType() As Long

Parameters

SourceType[C++]
[out, retval] When getting the property, a long that contains the type of source.
[in] When putting the property, a long that contains the type of source.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the SourceType property is set to srctypeSite (0), the task will operate on the Web site level. If the SourceType property is set to scrtypeDW (1), the task will operate on the Data Warehouse level. The default value is srctypeSite (0).

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.WebLogDeleteType


_DTSDeleteImport::get_WebLogDeleteType, put_WebLogDeleteType Property [C++]

DTSDeleteImport.WebLogDeleteType Property [Visual Basic]

The WebLogDeleteType property is a read/write Long that specifies the type of delete to be completed.

Definition

[C++]

Get method:

HRESULT _DTSDeleteImport::get_WebLogDeleteType(
 long WebLogDeleteType
);

Put method:

HRESULT _DTSDeleteImport::put_WebLogDeleteType(
 long WebLogDeleteType
);
[Visual Basic]
Property WebLogDeleteType() As Long

Parameters

WebLogDeleteType [C++]
[out] When getting a property, a long that specifies the type of delete to be completed.
[in] When putting a property, a long that specifies the type of delete to be completed.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The WebLogDeleteType property is only used if the DeleteType property is set to 1 (Web Log Import Delete).

If the WebLogDeleteType property is set to 0, Web log files older than the date specified by the Interval property will be deleted. If the WebLogDeleteType property is set to 1, the Web log files older than the number specified by the Count property will be deleted. If the WebLogDeleteType property is set to 2, the Web log files specified by the ListofLogs property will be deleted. The default value is 2.

See Also

Scripting the Data Deletion DTS Task

[C++]

_DTSDeleteImport::get_Count, put_Count

_DTSDeleteImport::CustomTask_Execute

_DTSDeleteImport::get_DeleteLevel, put_DeleteLevel

_DTSDeleteImport::get_DeleteType, put_DeleteType

_DTSDeleteImport::get_Interval, put_Interval

_DTSDeleteImport::get_ListofLogs, put_ListofLogs

_DTSDeleteImport::get_NumRetries, put_NumRetries

_DTSDeleteImport::PersistPropertyBag_Load

_DTSDeleteImport::PersistPropertyBag_Save

_DTSDeleteImport::get_RetryInterval, put_RetryInterval

_DTSDeleteImport::get_SourceName, put_SourceName

_DTSDeleteImport::get_SourceType, put_SourceName

[Visual Basic]

DTSDeleteImport.Count

DTSDeleteImport.CustomTask_Execute

DTSDeleteImport.DeleteLevel

DTSDeleteImport.DeleteType

DTSDeleteImport.Interval

DTSDeleteImport.ListofLogs

DTSDeleteImport.NumRetries

DTSDeleteImport.PersistPropertyBag_Load

DTSDeleteImport.PersistPropertyBag_Save

DTSDeleteImport.RetryInterval

DTSDeleteImport.SourceName

DTSDeleteImport.SourceType


DTSIPResolution Object [C++]

DTSIPResolution Object [Visual Basic]

Use this object to resolve Internet Protocol (IP) addresses from the imported user data. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the IP resolution DTS task, see Scripting the IP Resolution DTS Task.

ProgID: | Commerce.DTSIPResolution (Externally creatable)
COM Class Name: | DTSIPResolution
Type Library Name: | Microsoft Commerce 2002 IP Resolution DTS Task Type Library
DLL Name: | CSDWDTSIpResolution.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSIPResolution
Interface ID Constant: | None
Header File: | None

Properties

[C++]
Property | Type | Description
BatchSize | Long | The number of batched IP addresses that will be transferred to your Domain Name Server (DNS). This property is read/write.
LocalDomainName | BSTR | The local domain name of the DNS used as the primary server that resolves IP addresses. This property is read/write.
Ncache | long | The number of days to store resolved IP addresses. This property is read/write.
NumRetries | long | The number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | The number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
TimeOut | long | The number of seconds the DNS server will be searched before an IP address is marked as unresolved. This property is read/write.
[Visual Basic]
Property | Type | Description
BatchSize | Long | The number of batched IP addresses that will be transferred to your Domain Name Server (DNS). This property is read/write.
LocalDomainName | String | The local domain name of the DNS used as the primary server that resolves IP addresses. This property is read/write.
Ncache | Long | The number of days to store resolved IP addresses. This property is read/write.
NumRetries | Long | The number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | Long | The number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
TimeOut | Long | The number of seconds the DNS server will be searched before an IP address is marked as unresolved. This property is read/write.

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

See Also

Scripting the IP Resolution DTS Task

[C++]

DTSCatalogImport Object

DTSDeleteImport Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object

[Visual Basic]

DTSCatalogImport Object

DTSDeleteImport Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object


_DTSIPResolution Methods [C++]

DTSIPResolution Methods [Visual Basic]

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSIPResolution::CustomTask_Execute Method [C++]

DTSIPResolution.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSIPResolution::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::PersistPropertyBag_Load Method [C++]

DTSIPResolution.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSIPResolution::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::PersistPropertyBag_Save Method [C++]

DTSIPResolution.PersistPropertyBag_Save Method[Visual Basic]

Use this method to save the Data Transformation Services (DTS)task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSIPResolution::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution Properties [C++]

DTSIPResolution Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
BatchSize | Long | The number of batched IP addresses that will be transferred to your Domain Name Server (DNS). This property is read/write.
LocalDomainName | BSTR | The local domain name of the DNS used as the primary server that resolves IP addresses. This property is read/write.
Ncache | long | The number of days to store resolved IP addresses. This property is read/write.
NumRetries | long | The number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | The number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
TimeOut | long | The number of seconds the DNS server will be searched before an IP address is marked as unresolved. This property is read/write.
[Visual Basic]
Property | Type | Description
BatchSize | Long | The number of batched IP addresses that will be transferred to your Domain Name Server (DNS). This property is read/write.
LocalDomainName | String | The local domain name of the DNS used as the primary server that resolves IP addresses. This property is read/write.
Ncache | Long | The number of days to store resolved IP addresses. This property is read/write.
NumRetries | Long | The number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that specifies the type of processing, either full or incremental. This property is read/write.
RetryInterval | Long | The number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
TimeOut | Long | The number of seconds the DNS server will be searched before an IP address is marked as unresolved. This property is read/write.


_DTSIPResolution::get_BatchSize, put_BatchSize Property [C++]

DTSIPResolution.BatchSize Property [Visual Basic]

The BatchSize property is a read/write Long that specifies the number of IP addresses that will be transferred to your Domain Name Server (DNS) in a batch.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_BatchSize(
 long BatchSize
);

Put method:

HRESULT _DTSIPResolution::put_BatchSize(
 long BatchSize
);
[Visual Basic]
Property BatchSize() As Long

Parameters

BatchSize[C++]
[in] When putting the property, a long that specifies the number of IP addresses that will be transferred to your DNS in a batch.
[out, retval] When getting the property, a long that specifies the number of IP addresses that will be transferred to your DNS in a batch.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The default value for the BatchSize property is 500; the possible range is 10 to 99,999.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::get_LocalDomainName, put_LocalDomainName Property [C++]

DTSIPResolution.LocalDomainName Property [Visual Basic]

The LocalDomainName property is a read/write String that specifies the local domain name of the Domain Name Server (DNS) used as the primary server that resolves IP addresses.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_LocalDomainName(
 BSTR LocalDomainName
);

Put method:

HRESULT _DTSIPResolution::put_LocalDomainName(
 BSTR LocalDomainName
);
[Visual Basic]
Property LocalDomainName() As String

Parameters

LocalDomainName[C++]
[out, retval] When getting the value, this property contains a String that specifies the local domain name of the DNS used as the primary server that resolves IP addresses.
[in] When putting the value, this property contains a String that specifies the local domain name of the DNS used as the primary server that resolves IP addresses.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::get_Ncache, put_Ncache Property [C++]

DTSIPResolution.Ncache Property [Visual Basic]

The Ncache property is a read/write Long that specifies the number of days to store resolved IP addresses.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_Ncache(
 long Ncache
);

Put method:

HRESULT _DTSIPResolution::put_Ncache(
 long Ncache
);
[Visual Basic]
Property Ncache() As Long

Parameters

Ncache[C++]
[out, retval] When getting the property, a long that specifies the number of days to store resolved IP addresses.
[in] When putting the property, a long that specifies the number of days to store resolved IP addresses.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Valid values for the Ncache property are between 0 and 9999. The default value is 30 days. If you increase the default, IP resolution will occur more quickly. However, domain name changes may not be caught.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::NumRetries Property [C++]

DTSIPResolution.NumRetries Property [Visual Basic]

The NumRetries property is a read/write Long that specifies the number of retry attempts to be made that will be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSIPResolution::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries[C++]
[out, retval] When getting the property, a long that specifies the number of retry attempts that will be made after a SQL connection/query failure.
[in] When putting the property, a long that specifies that number of retry attempts that will be made after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, and the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::get_ProcessingType, put_ProcessingType Property [C++]

DTSIPResolution.ProcessingType Property [Visual Basic]

The ProcessingType property is a read/write Long that contains an enumeration that specifies the type of processing, which can be either full or incremental.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_ProcessingType(
 long ProcessingType
);

Put method:

HRESULT _DTSIPResolution::put_ProcessingType(
 long ProcessingType
);
[Visual Basic]
Property ProcessingType() As Long

Parameters

ProcessingType[C++]
[out,retval] When getting the property, a long that specifies the type of processing.
[in] When putting the property, a long that specifies the type of processing.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ProcessingType property is set to ptypeFull (0), the task will process the full load. If the ProcessingType property is set to ptypeIncremental (100), the task will process the load incrementally. The default value is ptypeFull (0).

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::get_RetryInterval, put_RetryInterval Property[C++]

DTSIPResolution.RetryInterval Property[Visual Basic]

The RetryInterval property is a read/write Long that specifies the amount of time that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSIPResolution::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval[C++]
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
[in] When putting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0, and the maximum value is 3600. The default value is 30.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_SourceName, put_SourceName

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.SourceName

DTSIPResolution.TimeOut


_DTSIPResolution::get_SourceName, put_SourceName Property[C++]

DTSIPResolution.SourceName Property [Visual Basic]

The SourceName property is a read/write String that specifies the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_SourceName(
 BSTR SourceName
);

Put method:

HRESULT _DTSIPResolution::put_SourceName(
 BSTR SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName[C++]
[in] When putting the value, a BSTR that contains the name of the Web site or Data Warehouse for which this task is processing data.
[out,retval] When getting the value, a pointer to a BSTR that contains the name of the Web site or Data Warehouse for which this task is processing data.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_TimeOut, put_TimeOut

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.TimeOut


_DTSIPResolution::get_TimeOut, put_TimeOut Property[C++]

DTSIPResolution.TimeOut Property [Visual Basic]

The TimeOut property is a read/write Long that specifies the number of seconds the Domain Name Server (DNS) searches before an IP address is marked as unresolved.

Definition

[C++]

Get method:

HRESULT _DTSIPResolution::get_TimeOut(
 long TimeOut
);

Put method:

HRESULT _DTSIPResolution::put_TimeOut(
 long TimeOut
);
[Visual Basic]
Property TimeOut() As Long

Parameters

TimeOut[C++]
[out, retval] When getting the property, a long that specifies the number of seconds to search.
[in] When putting the property, a long that specifies the number of seconds to search.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The default value for the TimeOut property is 60 seconds. If you increase the default, you will resolve more IP addresses, but IP resolution will take longer.

See Also

Scripting the IP Resolution DTS Task

[C++]

_DTSIPResolution::get_BatchSize, put_BatchSize

_DTSIPResolution::CustomTask_Execute

_DTSIPResolution::get_LocalDomainName, put_LocalDomainName

_DTSIPResolution::get_Ncache, put_Ncache

_DTSIPResolution::NumRetries

_DTSIPResolution::PersistPropertyBag_Load

_DTSIPResolution::PersistPropertyBag_Save

_DTSIPResolution::get_ProcessingType, put_ProcessingType

_DTSIPResolution::get_RetryInterval, put_RetryInterval

_DTSIPResolution::get_SourceName, put_SourceName

[Visual Basic]

DTSIPResolution.BatchSize

DTSIPResolution.CustomTask_Execute

DTSIPResolution.LocalDomainName

DTSIPResolution.Ncache

DTSIPResolution.NumRetries

DTSIPResolution.PersistPropertyBag_Load

DTSIPResolution.PersistPropertyBag_Save

DTSIPResolution.ProcessingType

DTSIPResolution.RetryInterval

DTSIPResolution.SourceName


DTSLogImport Object [C++]

DTSLogImport Object [Visual Basic]

Use this object to define and import Web log files. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the Web server log import DTS task, see Scripting the Web Server Log Import DTS Task.

ProgID: | Commerce.DTSLogImport (Externally creatable)
COM Class Name: | DTSLogImport
Type Library Name: | Microsoft Commerce 2002 Log Import DTS Task Type Library
DLL Name: | CSDWDTSLogImports.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSLogImport
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
EndTime | DATE | Stores the end time for the time range in which the log files are imported. This property is read/write.
ImportAllLogsSinceLastImport | VARIANT_BOOL | Specifies if all the log files since the last import will be imported, or if only a portion of the log files will be imported. This property is read/write.
NumRetries | long | Specifies the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ReadInfoFromAdmin | VARIANT_BOOL | Enables the user to read information from the Administrative database, and also enables the user to directly specify which log files to import through the VLogFileInfo property. This property is read/write.
RetryInterval | long | Specifies the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
StartTime | DATE | Stores the start time for the time range in which the log files are imported. This property is read/write.
VLogFileInfo | VARIANT | Specifies the log files to import. This property is read/write.
[Visual Basic]
Property | Type | Description
EndTime | Date | Stores the end time for the time range in which the log files are imported. This property is read/write.
ImportAllLogsSinceLastImport | Boolean | Specifies if all the log files since the last import will be imported, or if only a portion of the log files will be imported. This property is read/write.
NumRetries | Long | Specifies the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write
ReadInfoFromAdmin | Boolean | Enables the user to read information from the Administrative database, and also enables the user to directly specify which log files to import through the VLogFileInfo property. This property is read/write.
RetryInterval | Long | Specifies the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
StartTime | Date | Stores the start time for the time range in which the log files are imported. This property is read/write.
VLogFileInfo | Variant | Specifies the log files to import. This property is read/write.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object

[Visual Basic]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSPostImport Object

DTSSynchAdminData Object

DTSTransactionImport Object


_DTSLogImport Methods [C++]

_DTSLogImport Methods [Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSLogImport::CustomTask_Execute Method [C++]

DTSLogImport.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSLogImport::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::PersistPropertyBag_Load Method [C++]

DTSLogImport.PersistPropertyBad_Load Method [Visual Basic]

Use this method to load the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSLogImport::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::PersistPropertyBag_Save Method [C++]

DTSLogImport.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSLogImport::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport Properties [C++]

DTSLogImport Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
EndTime | DATE | Stores the end time for the time range in which the log files are imported. This property is read/write.
ImportAllLogsSinceLastImport | VARIANT_BOOL | Specifies if all the log files since the last import will be imported, or if only a portion of the log files will be imported. This property is read/write.
NumRetries | long | Specifies the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ReadInfoFromAdmin | VARIANT_BOOL | Enables the user to read information from the Administrative database, and also enables the user to directly specify which log files to import through the VLogFileInfo property. This property is read/write.
RetryInterval | long | Specifies the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
StartTime | DATE | Stores the start time for the time range in which the log files are imported. This property is read/write.
VLogFileInfo | VARIANT | Specifies the log files to import. This property is read/write.
[Visual Basic]
Property | Type | Description
EndTime | Date | Stores the end time for the time range in which the log files are imported. This property is read/write.
ImportAllLogsSinceLastImport | Boolean | Specifies if all the log files since the last import will be imported, or if only a portion of the log files will be imported. This property is read/write.
NumRetries | Long | Specifies the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write
ReadInfoFromAdmin | Boolean | Enables the user to read information from the Administrative database, and also enables the user to directly specify which log files to import through the VLogFileInfo property. This property is read/write.
RetryInterval | Long | Specifies the number of seconds between retry attempts. This property is read/write.
SourceName | String | Specifies the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Long | An enumeration that specifies the level on which the DTS task will operate. This property is read/write.
StartTime | Date | Stores the start time for the time range in which the log files are imported. This property is read/write.
VLogFileInfo | Variant | Specifies the log files to import. This property is read/write.


_DTSLogImport::get_EndTime, put_EndTime Property [C++]

DTSLogImport.EndTime Property [Visual Basic]

The EndTime property is a read/write Date that stores the end time for the time range in which the logs are imported.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_EndTime(
 DATE EndTime
);

Put method:

HRESULT _DTSLogImport::put_EndTime(
 DATE EndTime
);
[Visual Basic]
Property EndTime() As Date

Parameters

EndTime[C++]
[out, retval] When getting a value, a DATE that specifies the end time for the time range in which log files are imported.
[in] When putting a value, a DATE that specifies the end time for the time range in which log files are imported.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property is only used if the ImportAllLogsSinceLastImport property is set to False. The default value is the current time.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport Property [C++]

DTSLogImport.ImportAllLogsSinceLastImport Property [Visual Basic]

The ImportAllLogsSinceLastImport property is a read/write Variant that contains a Boolean that specifies if all the log files since the last import will be imported, or if only a portion of the log files will be imported.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_ImportAllLogsSinceLastImport(
 VARIANT_BOOL ImportAllLogsSinceLastImport
);

Put method:

HRESULT _DTSLogImport::put_ImportAllLogsSinceLastImport(
 VARIANT_BOOL ImportAllLogsSinceLastImport
);
[Visual Basic]
Property ImportAllLogsSinceLastImport() As Boolean

Parameters

ImportAllLogsSinceLastImport[C++]
[out, retval] When getting a value, a VARIANT containing a Boolean that determines if all the log files created since the last import will be imported.
[in] When putting the value, a VARIANT containing a Boolean that determines if all the log files created since the last import will be imported.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ImportAllLogsSinceLastImport property is set to True, all log files created since the last import will be imported. If the ImportAllLogsSinceLastImport property is set to False, the StartTime and EndTime properties will be used to determine which log files to import.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_NumRetries, put_NumRetries Property [C++]

DTSLogImport.NumRetries Property [Visual Basic]

The NumRetries property is a read/write Long that specifies the number of retry attempts to be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSLogImport::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries[C++]
[out, retval] When getting a property, a long that specifies the number of retry attempts to be made.
[in] When putting a property, a long that specifies the number of retry attempts to be made.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, and the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin Property [C++]

DTSLogImport.ReadInfoFromAdmin Property [Visual Basic]

The ReadInfoFromAdmin property is a Variant that contains a Boolean that enables the user to override some of the information in the Administrative database.

Caution

  • This property should only be used if the user has a clear understanding of Log Data Sources.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_ReadInfoFromAdmin(
 VARIANT_BOOL ReadInfoFromAdmin
);

Put method:

HRESULT _DTSLogImport::put_ReadInfoFromAdmin(
 VARIANT_BOOL ReadInfoFromAdmin
);
[Visual Basic]
Property ReadInfoFromAdmin() As Boolean

Parameters

ReadInfoFromAdmin[C++]
[out, retval] When getting the value, a VARIANT that contains a Boolean that determines if information is read from the Administrative database, or if the Administrative database is overwritten.
[in] When putting the value, a VARIANT that contains a Boolean that determines if information is read from the Administrative database, or if the Administrative database is overwritten.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ReadInfoFromAdmin property is set to True, information is read from the Administrative database. If the ReadInfoFromAdmin property is set to False, the user can still read from the Administrative database, and can also specify log files to be imported through the VLogFileInfo property. The default value is True.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_RetryInterval, put_RetryInterval Property [C++]

DTSLogImport.RetryInterval Property [Visual Basic]

The RetryInterval property is a read/write Long that specifies the amount of time that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSLogImport::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval[C++]
[out, retval] When getting the property, a long that contains the number of seconds between retry attempts.
[in] When putting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0, and the maximum value is 3600. The default value is 30.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_SourceName, put_SourceName Property [C++]

DTSLogImport.SourceName Property [Visual Basic]

The SourceName property is a read/write String that specifies the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_SourceName(
 BSTR SourceName
);

Put method:

HRESULT _DTSLogImport::put_SourceName(
 BSTR SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName[C++]
[in] When putting the property, a BSTR that contains the name of the Web site or Data Warehouse.
[out, retval] When getting the property, a pointer to a BSTR that contains the name of the Web site or Data Warehouse.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceType

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_SourceType, put_SourceType Property [C++]

DTSLogImport.SourceType Property [Visual Basic]

The SourceType property is an long that specifies the level on which the Data Transformation Services (DTS) task will operate.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_SourceType(
 long SourceType
);

Put method:

HRESULT _DTSLogImport::put_SourceType(
 long SourceType
);
[Visual Basic]
Property SourceType() As Long

Parameters

SourceType[C++]
[out, retval] When getting the property, a long that contains the type of source.
[in] When putting the property, a long that contains the type of source.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the SourceType property is set to srctypeSite (0), the task will operate on the Web site level. If the SourceType property is set to scrtypeDW (1), the task will operate on the Data Warehouse level. The default value is srctypeSite (0).

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_StartTime, put_StartTime

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.StartTime

DTSLogImport.VLogFileInfo


_DTSLogImport::get_StartTime, put_StartTime Property [C++]

DTSLogImport.StartTime Property [Visual Basic]

The StartTime property is a read/write Date that stores the start time for the time range in which the log files are imported.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_StartTime(
 DATE StartTime
);

Put method:

HRESULT _DTSLogImport::put_StartTime(
 DATE StartTime
);
[Visual Basic]
Property StartTime() As Date

Parameters

StartTime[C++]
[in] When putting a value, a DATE that specifies the start time for the time range in which the log files are imported.
[out, retval] When getting a value, a DATE that specifies the start time for the time range in which the log files are imported.
None.[Visual Basic]

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The StartTime property is only used if the ImportAllLogsSinceLastImport property is set to False. The default value is the current time.

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.VLogFileInfo


_DTSLogImport::get_VLogFileInfo, put_VLogFileInfo Property [C++]

DTSLogImport.VLogFileInfo Property [Visual Basic]

The VLogFileInfo property is a read/write Variant that contains an array that lists the log files to import.

Definition

[C++]

Get method:

HRESULT _DTSLogImport::get_VLogFileInfo(
 VARIANT VLogFileInfo
);

Put method:

HRESULT _DTSLogImport::put_VLogFileInfo(
 VARIANT VLogFileInfo
);
[Visual Basic]
Property VLogFileInfo() As Variant

Parameters

VLogFileInfo[C++]
[out, retval] When getting a value, a VARIANT that contains an array of log filenames.
[in] When putting a value, a VARIANT that contains an array of log file names.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The VLogFileInfo property is only used if the ReadInfoFromAdmin property is set to False. If you specify directories instead of files, all files in that directory will be imported regardless of the file type. No file type checking is performed. If file types are not correct, the import will fail.

[Visual Basic]

Example

' File names or folder names can be used to specify the files to import.
' If the folder name is used all the files in that folder will be added to
' the current import task.
Dim vData
ReDim vData(1)
vLogFileInfo(0) = "LDS Name, File1, File2"
vLogFileInfo(1) = "LDS Name, Folder"

See Also

Scripting the Web Server Log Import DTS Task

[C++]

_DTSLogImport::CustomTask_Execute

_DTSLogImport::get_EndTime, put_EndTime

_DTSLogImport::get_ImportAllLogsSinceLastImport, put_ImportAllLogsSinceLastImport

_DTSLogImport::get_NumRetries, put_NumRetries

_DTSLogImport::PersistPropertyBag_Load

_DTSLogImport::PersistPropertyBag_Save

_DTSLogImport::get_ReadInfoFromAdmin, put_ReadInfoFromAdmin

_DTSLogImport::get_RetryInterval, put_RetryInterval

_DTSLogImport::get_SourceName, put_SourceName

_DTSLogImport::get_SourceType, put_SourceType

_DTSLogImport::get_StartTime, put_StartTime

[Visual Basic]

DTSLogImport.CustomTask_Execute

DTSLogImport.EndTime

DTSLogImport.ImportAllLogsSinceLastImport

DTSLogImport.NumRetries

DTSLogImport.PersistPropertyBag_Load

DTSLogImport.PersistPropertyBag_Save

DTSLogImport.ReadInfoFromAdmin

DTSLogImport.RetryInterval

DTSLogImport.SourceName

DTSLogImport.SourceType

DTSLogImport.StartTime


DTSPostImport Object [C++]

DTSPostImport Object [Visual Basic]

Use this object to populate OLAP cubes with the data that was imported, prepare the imported data for report generation, and refresh the OLAP cubes after a deletion. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the Report Preparation DTS task, see Scripting the Report Preparation DTS Task.

ProgID: | Commerce.DTSPostImport (Externally creatable)
COM Class Name: | DTSPostImport
Type Library Name: | Microsoft Commerce 2002 Post Import Data DTS Task Type Library
DLL Name: | CSDWDTSPostImport.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSPostImport
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
CustomTask_Name | BSTR | Contains the descriptive name of the custom task. This property is read/write.
CustomTask_Properties | BSTR | Contains the properties of the custom task. This property is read-only.
MaxParallelOperations | long | Contains the maximum number of parallel operations that can be run at one time. This property is read/write.
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that contains the type of processing, which can be full, refresh data, or incremental. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Contains the name of the Data Warehouse for which this task is processing data. This property is read/write.
TaskName | BSTR | Contains the name of the DTS task being run. This property is read/write.
[Visual Basic]
Property | Type | Description
CustomTask_Name | String | Contains the descriptive name of the custom task. This property is read/write.
CustomTask_Properties | String | Contains the properties of the custom task. This property is read-only.
MaxParallelOperations | Long | Contains the maximum number of parallel operations that can be run at one time. This property is read/write.
NumRetries | Long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that contains the type of processing, which can be full, refresh data, or incremental. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Data Warehouse for which this task is processing data. This property is read/write.
TaskName | String | Contains the name of the DTS task being run. This property is read/write.

See Also

Scripting the Report Preparation DTS Task

[C++]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSSynchAdminData Object

DTSTransactionImport Object

[Visual Basic]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSSynchAdminData Object

DTSTransactionImport Object


_DTSPostImport Methods [C++]

DTSPostImport Methods[Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSPostImport::CustomTask_Execute Method [C++]

DTSPostImport.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSPostImport::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub PostTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPPostImport::PersistPropertyBag_Load Method [C++]

DTSPostImport.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSPostImport::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::PersistPropertyBag_Save Method [C++]

DTSPostImport.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSPostImport::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport Properties [C++]

DTSPostImport Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
CustomTask_Name | BSTR | Contains the descriptive name of the custom task. This property is read/write.
CustomTask_Properties | BSTR | Contains the properties of the custom task. This property is read-only.
MaxParallelOperations | long | Contains the maximum number of parallel operations that can be run at one time. This property is read/write.
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that contains the type of processing, which can be full, refresh data, or incremental. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Contains the name of the Data Warehouse for which this task is processing data. This property is read/write.
TaskName | BSTR | Contains the name of the DTS task being run. This property is read/write.
[Visual Basic]
Property | Type | Description
CustomTask_Name | String | Contains the descriptive name of the custom task. This property is read/write.
CustomTask_Properties | String | Contains the properties of the custom task. This property is read-only.
MaxParallelOperations | Long | Contains the maximum number of parallel operations that can be run at one time. This property is read/write.
NumRetries | Long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that contains the type of processing, which can be full, refresh data, or incremental. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Data Warehouse for which this task is processing data. This property is read/write.
TaskName | String | Contains the name of the DTS task being run. This property is read/write.


_DTSPostImport::get_CustomTask_Name, CustomTask_Name Property [C++]

DTSPostImport.CustomTask_Name Property [Visual Basic]

The CustomTask_Name property is a read/write string that contains name of the custom task.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_CustomTask_Name(
 BSTR CustomTask_Name
);

Put method:

HRESULT _DTSPostImport::put_CustomTask_Name(
 BSTR CustomTask_Name
);
[Visual Basic]
Property CustomTask_Name() As String

Parameters

CustomTask_Name [C++]
[in] When putting the property, a BSTR that contains name of the custom task.
[out,retval] When getting the property, a BSTR that contains name of the custom task.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_CustomTask_Properties Property [C++]

DTSPostImport.CustomTask_Properties Property [Visual Basic]

The CustomTask_Properties property is a read-only string that contains the property values for the task.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_CustomTask_Properties(
 BSTR CustomTask_Properties
);

Put method:

HRESULT _DTSPostImport::put_NumRetries(
 BSTR CustomTask_Properties
);
[Visual Basic]
Property CustomTask_Properties() As String

Parameters

NumRetries [C++]
[in] When putting the property, a BSTR that contains the property values for the task
[out,retval] When getting the property, a BSTR that contains the property values for the task
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_MaxParallelOperations, put_MaxParallelOperations Property [C++]

DTSPostImport.MaxParallelOperations Property [Visual Basic]

The MaxParallelOperations property is a read/write long that contains the maximum number of parallel operations that can be run at one time.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_MaxParallelOperations(
 long MaxParallelOperations
);

Put method:

HRESULT _DTSPostImport::put_MaxParallelOperations(
 long MaxParallelOperations
);
[Visual Basic]
Property MaxParallelOperations() As Long

Parameters

NumRetries [C++]
[in] When putting the property, a long that contains the maximum number of parallel operations that can be run at one time.
[out,retval] When getting the property, a long that contains the maximum number of parallel operations that can be run at one time.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_NumRetries, put_NumRetries Property [C++]

DTSPostImport.NumRetries Property [Visual Basic]

The NumRetries property contains the number of retry attempts that will be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSPostImport::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries [C++]
[in] When putting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
[out,retval] When getting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_ProcessingType, put_ProcessType Property [C++]

DTSPostImport.ProcessingType Property [Visual Basic]

The ProcessingType property is an enumeration that contains the type of processing, which can be full, refresh data, or incremental.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_ProcessingType(
 long ProcessType
);

Put method:

HRESULT _DTSPostImport::put_ProcessingType(
 long ProcessType
);
[Visual Basic]
Property ProcessingType() As Long

Parameters

ProcessingType [C++]
[in] When putting the property, a long that contains the type of processing.
[out,retval] When getting the property, a long that contains the type of processing.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ProcessingType property is set to ptypeFull (0), the task will perform a full processing on all OLAP dimensions and cubes. In addition, it will re-design aggregations for cubes as specified in the Optimization column of the CubeProcInfo table in the Data Warehouse. If the ProcessingType property is set to ptypeRefreshData(1), the task will perform a data refesh on all OLAP dimensions and cubes. If the ProcessingType property is set to ptypeIncremental (100), the task will process the load incrementally. The OLAP cubes will be incrementally updated with data loaded into the Data Warehouse since the last Report Preparation DTS task was run. The default value is pTypeRefreshData(1).

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.RetryInterval

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_RetryInterval, put_RetryInterval Property [C++]

DTSPostImport.RetryInterval Property [Visual Basic]

The RetryInterval property contains the amount of time, in seconds, that will pass between each retry attempt.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSPostImport::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval [C++]
[in] When putting the property, a long that contains the number of seconds between retry attempts.
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0, the maximum value is 3600. The default value is 30.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_SourceName, put_SourceName

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.SourceName

DTSPostImport.TaskName


_DTSPostImport::get_SourceName, put_SourceName Property [C++]

DTSPostImport.SourceName Property [Visual Basic]

The SourceName property is a String that contains the name of the Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_SourceName(
 BSTR SourceName
);

Put method:

HRESULT _DTSPostImport::put_SourceName(
 BSTR SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName [C++]
[in] When putting the property, a BSTR that contains the name of the Data Warehouse.
[out,retval] When putting the property, a BSTR that contains the name of the Data Warehouse.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_TaskName, put_TaskName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.TaskName


_DTSPostImport::get_TaskName, put_TaskName Property [C++]

DTSPostImport.TaskName Property [Visual Basic]

The TaskName property is a read/write String that contains the name of the Data Transformation Services (DTS) task being run.

Definition

[C++]

Get method:

HRESULT _DTSPostImport::get_TaskName(
 BSTR TaskName
);

Put method:

HRESULT _DTSPostImport::put_TaskName(
 BSTR TaskName
);
[Visual Basic]
Property TaskName() As String

Parameters

TaskName [C++]
[in] When putting a value, a BSTR that contains the name of the DTS task being run.
[out,retval] When getting a value, a BSTR that contains the name of the DTS task being run.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Report Preparation DTS Task

[C++]

_DTSPostImport::CustomTask_Execute

_DTSPostImport::get_NumRetries, put_NumRetries

_DTSPostImport::PersistPropertyBag_Load

_DTSPostImport::PersistPropertyBag_Save

_DTSPostImport::get_ProcessType, put_ProcessType

_DTSPostImport::get_RetryInterval, put_RetryInterval

_DTSPostImport::get_SourceName, put_SourceName

[Visual Basic]

DTSPostImport.CustomTask_Execute

DTSPostImport.NumRetries

DTSPostImport.PersistPropertyBag_Load

DTSPostImport.PersistPropertyBag_Save

DTSPostImport.ProcessType

DTSPostImport.RetryInterval

DTSPostImport.SourceName


DTSSyncAdminData Object [C++]

DTSSyncAdminData Object [Visual Basic]

Use this object to synchronize the Data Warehouse with your Commerce Server application after you make changes to configuration settings. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the Configuration Synchronization DTS task, see Scripting the Configuration Synchronization DTS Task.

ProgID: | Commerce.DTSSyncAdminData (Externally creatable)
COM Class Name: | DTSSyncAdminData
Type Library Name: | Microsoft Commerce 2002 Sync Admin Data DTS Task Type Library
DLL Name: | CSDWDTSSyncAdmin.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSSyncAdminData
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | long | An enumeration that contains the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
NumRetries | Long | Contains the number of retry attempts. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Long | An enumeration that contains the level on which the DTS task will operate. This property is read/write.

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSTransactionImport Object

[Visual Basic]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSTransactionImport Object


_DTSSSyncAdminData Methods [C++]

_DTSSSyncAdminData Methods [Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSSyncAdminData::CustomTask_Execute Method [C++]

DTSSyncAdminData.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSSyncAdminData::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceName, put_SourceName

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceName

DTSSyncAdminData.SourceType


_DTSSyncAdminData::PersistPropertyBag_Load Method [C++]

DTSSyncAdminData.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSSyncAdminData::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceName, put_SourceName

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceName

DTSSyncAdminData.SourceType


_DTSSyncAdminData::PersistPropertyBag_Save Method [C++]

DTSSyncAdminData.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
HRESULT _DTSSyncAdminData::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceName, put_SourceName

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceName

DTSSyncAdminData.SourceType


_DTSSSyncAdminData Properties [C++]

_DTSSSyncAdminData Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | BSTR | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | long | An enumeration that contains the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
NumRetries | Long | Contains the number of retry attempts. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Long | An enumeration that contains the level on which the DTS task will operate. This property is read/write.


_DTSSyncAdminData::get_NumRetries, put_NumRetries Property [C++]

DTSSyncAdminData.NumRetries Property [Visual Basic]

The NumRetries property contains the number of retry attempts to be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSSyncAdminData::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSSyncAdminData::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries[C++]
[in] When putting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
[out,retval] When getting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, and the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceName, put_SourceName

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceName

DTSSyncAdminData.SourceType


_DTSSyncAdminData::get_RetryInterval, put_RetryInterval Property [C++]

DTSSyncAdminData.RetryInterval Property [Visual Basic]

The RetryInterval property contains the amount of time, in seconds, that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSSyncAdminData::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSSyncAdminData::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval[C++]
[in] When putting the property, a long that contains the number of seconds between retry attempts.
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0, and the maximum value is 3600. The default value is 30.

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_SourceName, put_SourceName

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.SourceName

DTSSyncAdminData.SourceType


_DTSSyncAdminData::get_SourceName, put_SourceName Property [C++]

DTSSyncAdminData.SourceName Property [Visual Basic]

The SourceName property is a String that contains the name of the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSSyncAdminData::get_SourceName(
 BSTR SourceName
);

Put method:

HRESULT _DTSSyncAdminData::put_SourceName(
 BSTR SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName[C++]
[in] When putting the property, a BSTR that contains the name of the Web site or Data Warehouse.
[out,retval] When putting the property, a BSTR that contains the name of the Web site or Data Warehouse.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceType, put_SourceType

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceType


_DTSSyncAdminData::get_SourceType, put_SourceType Property [C++]

DTSSyncAdminData.SourceType Property [Visual Basic]

The SourceType property is an enumeration that contains the level on which the Data Transformation Services (DTS) task will operate.

Definition

[C++]

Get method:

HRESULT _DTSSyncAdminData::get_SourceType(
 long SourceType
);

Put method:

HRESULT _DTSSyncAdminData::put_SourceType(
 long SourceType
);
[Visual Basic]
Property SourceType() As Long

Parameters

SourceType[C++]
[in] When putting the property, a long that contains the type of source.
[out, retval] When getting the property, a long that contains the type of source.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the SourceType property is set to srctypeSite (0), the task will operate on the Web site level. If the SourceType property is set to scrtypeDW (1), the task will operate on the Data Warehouse level. The default value is srctypeSite (0).

See Also

Scripting the Configuration Synchronization DTS Task

[C++]

_DTSSyncAdminData::CustomTask_Execute

_DTSSyncAdminData::get_NumRetries, put_NumRetries

_DTSSyncAdminData::PersistPropertyBag_Load

_DTSSyncAdminData::PersistPropertyBag_Save

_DTSSyncAdminData::get_RetryInterval, put_RetryInterval

_DTSSyncAdminData::get_SourceName, put_SourceName

[Visual Basic]

DTSSyncAdminData.CustomTask_Execute

DTSSyncAdminData.NumRetries

DTSSyncAdminData.PersistPropertyBag_Load

DTSSyncAdminData.PersistPropertyBag_Save

DTSSyncAdminData.RetryInterval

DTSSyncAdminData.SourceName


DTSTransactionImport Object [C++]

DTSTransactionImport Object [Visual Basic]

Use this object to run reports to analyze transaction data. This object should be run from within the context of a Data Transformation Services (DTS) package. The methods and properties should not be accessed directly. For more information about scripting the Transaction Data Import DTS task, see Scripting the Transaction Data Import DTS Task.

ProgID: | Commerce.DTSTransactionImport (Externally creatable)
COM Class Name: | DTSTransactionImport
Type Library Name: | Microsoft Commerce 2002 Transaction Data Import DTS Task Type Library
DLL Name: | CSDWDTSTransImport.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DTSTransactionImport
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Properties

[C++]
Property | Type | Description
CustomTask_Description | BSTR | Contains the description of the custom task. This property is read/write.
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that contains the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
QueryInterval | long | The length of the query interval in minutes. This property is read/write.
SourceName | BSTR | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | int | An enumeration that contains the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
CustomTask_Description | String | Contains the description of the custom task. This property is read/write.
NumRetries | Long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that contains the type of processing, either full or incremental. This property is read/write.
QueryInterval | Long | The length of the query interval in minutes. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Integer | An enumeration that contains the level on which the DTS task will operate. This property is read/write.

Remarks

CAUTION
  • When running the Transaction Import DTS task on a Data Warehouse that contains data for multiple Web sites, ensure that classes extended by more than one Web site have uniquely named members if their data types are not the same. If a new member is added to a class in multiple Web sites and the data type of the new members is not the same, a failure may occur or data may be incorrectly converted when the Transaction Import DTS task is run.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object

[Visual Basic]

DTSCatalogImport Object

DTSDeleteImport Object

DTSIPResolution Object

DTSLogImport Object

DTSPostImport Object

DTSSynchAdminData Object


_DTSTransactionImport Methods [C++]

_DTSTransactionImport Methods [Visual Basic]

Methods

[C++]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
[Visual Basic]
Method | Description
CustomTask_Execute | Executes the DTS task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Load | Loads the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.
PersistPropertyBag_Save | Saves the DTS task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.


_DTSTransactionImport::CustomTask_Execute Method [C++]

DTSTransactionImport.CustomTask_Execute Method [Visual Basic]

Use this method to execute the Data Transformation Services (DTS) task. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
void _DTSTransactionImport::CustomTask_Execute(
 IDispatch* pPackage,
 IDispatch* pPackageEvents,
 IDispatch* pPackageLog
);
[Visual Basic]
Sub CustomTask_Execute(
 pPackage As Object,
 pPackageEvents As Object,
 pPackageLog As Object
)

Parameters

pPackage [C++]
[in] A reference to the Package object that runs the DTS task.
pPackage [Visual Basic]
The Package object that runs the DTS task.
pPackageEvents [C++]
[in] A reference to the events of the Package object.
pPackageEvents [Visual Basic]
The events of the Package object.
pPackageLog [C++]
[in] A reference to a PackageLog object that writes task log records in the database or writes log messages to the log file.
pPackageLog [Visual Basic]
The PackageLog object that writes task log records in the database or writes log messages to the log file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::PersistPropertyBag_Load Method [C++]

DTSTransactionImport.PersistPropertyBag_Load Method [Visual Basic]

Use this method to load the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
void _DTSTransactionImport::PersistPropertyBag_Load(
 );
[Visual Basic]
Sub PersistPropertyBag_Load(
 )

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::PersistPropertyBag_Save Method [C++]

DTSTransactionImport.PersistPropertyBag_Save Method [Visual Basic]

Use this method to save the Data Transformation Services (DTS) task properties. This method is called indirectly when a task is run through a DTS package and should not be used when scripting this task.

Definition

[C++]
void _DTSTransactionImport::PersistPropertyBag_Save(
 );
[Visual Basic]
Sub PersistPropertyBag_Save(
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport Properties [C++]

_DTSTransactionImport Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
CustomTask_Description | BSTR | Contains the description of the custom task. This property is read/write.
NumRetries | long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | long | An enumeration that contains the type of processing, either full or incremental. This property is read/write.
RetryInterval | long | Contains the number of seconds between retry attempts. This property is read/write.
QueryInterval | long | The length of the query interval in minutes. This property is read/write.
SourceName | BSTR | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | int | An enumeration that contains the level on which the DTS task will operate. This property is read/write.
[Visual Basic]
Property | Type | Description
CustomTask_Description | String | Contains the description of the custom task. This property is read/write.
NumRetries | Long | Contains the number of retry attempts that will be made after a SQL connection/query failure. This property is read/write.
ProcessingType | Long | An enumeration that contains the type of processing, either full or incremental. This property is read/write.
QueryInterval | Long | The length of the query interval in minutes. This property is read/write.
RetryInterval | Long | Contains the number of seconds between retry attempts. This property is read/write.
SourceName | String | Contains the name of the Web site or Data Warehouse for which this task is processing data. This property is read/write.
SourceType | Integer | An enumeration that contains the level on which the DTS task will operate. This property is read/write.


_DTSTransactionImport::get_CustomTask_Description, put_CustomTask_Description Property [C++]

DTSTransactionImport.CustomTask_Description Property [Visual Basic]

The CustomTask_Description property contains the description of the custom task.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_CustomTask_Description(
 BSTR CustomTask_Description
);

Put method:

HRESULT _DTSTransactionImport::put_CustomTask_Description(
 BSTR CustomTask_Description
);
[Visual Basic]
Property CustomTask_Description() As String

Parameters

NumRetries [C++]
[in] When putting the property, a BSTR that contains the description of the custom task.
[out,retval] When getting the property, a BSTR that contains the description of the custom task.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::get_NumRetries, put_NumRetries Property [C++]

DTSTransactionImport.NumRetries Property [Visual Basic]

The NumRetries property contains the number of retry attempts to be made after a SQL connection/query failure.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_NumRetries(
 long NumRetries
);

Put method:

HRESULT _DTSTransactionImport::put_NumRetries(
 long NumRetries
);
[Visual Basic]
Property NumRetries() As Long

Parameters

NumRetries [C++]
[in] When putting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
[out,retval] When getting the property, a long that contains the number of retry attempts that will be made after a SQL connection/query failure.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the NumRetries property is set to 0, no retry attempt will be made. The minimum number of retry attempts is 0, and the maximum number of retry attempts is 255. The default value is 10.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::get_ProcessingType, put_ProcessingType Property [C++]

DTSTransactionImport.ProcessingType Property [Visual Basic]

The ProcessingType property is an enumeration that contains the type of processing, either full or incremental.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_ProcessingType(
 long ProcessingType
);

Put method:

HRESULT _DTSTransactionImport::put_ProcessingType(
 long ProcessingType
);
[Visual Basic]
Property ProcessingType() As Long

Parameters

ProcessingType[C++]
[in] When putting the property, a long that contains the type of processing.
[out,retval] When getting the property, a long that contains the type of processing.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the ProcessingType property is set to ptypeFull (0), the task will process the full load. If the ProcessingType property is set to ptypeIncremental (100), the task will process the load incrementally. The default value is ptypeFull (0).

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::get_QueryInterval, put_QueryInterval Property [C++]

DTSTransactionImport.QueryInterval Property [Visual Basic]

The QueryInterval property is a Long that identifies the number of minutes in the query interval.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_QueryInterval(
 long QueryInterval
);

Put method:

HRESULT _DTSTransactionImport::put_QueryInterval(
 long QueryInterval
);
[Visual Basic]
Property QueryInterval() As Long

Parameters

QueryInterval[C++]
[in] When putting the property, a long that contains the number of minutes in the query interval.
[out,retval] When getting the property, a long that contains the number of minutes in the query interval.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A value of zero (0) will issue a straight select against the source tables. For any value greater than zero (0), the task will incrementally import the transactions in groups as determined by the query interval value. For example, if the query interval is 25 minutes (the default value) and the first transaction was logged at 1:30am, the transaction data import task imports all transactions logged between 1:30am and 1:55am, then it would import transactions between 1:55am and 2:20am. This pattern would continue until the current time is reached, at which point the task stops.

If the transaction database is in a different time zone than the Data Warehouse, the import will cease at the current time of the import, when converted into the time zone of the transaction database. For example, if the transaction database is in the EST time zone, the Data Warehouse is in the PST time zone, and the current time is 8:00am in PST, the import will cease when the query interval reaches 8:00am in EST.

Values can range from 0 to 2147483647 (LONG_MAX).

The default value is 25 minutes.


_DTSTransactionImport::get_RetryInterval, put_RetryInterval Property [C++]

DTSTransactionImport.RetryInterval Property [Visual Basic]

The RetryInterval property contains the amount of time, in seconds, that will pass between each retry.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_RetryInterval(
 long RetryInterval
);

Put method:

HRESULT _DTSTransactionImport::put_RetryInterval(
 long RetryInterval
);
[Visual Basic]
Property RetryInterval() As Long

Parameters

RetryInterval [C++]
[in] When putting the property, a long that contains the number of seconds between retry attempts.
[out,retval] When getting the property, a long that contains the number of seconds between retry attempts.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The minimum value that can be assigned to the RetryInterval property is 0, and the maximum value is 3600. The default value is 30.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_SourceName, put_SourceName

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.SourceName

DTSTransactionImport.SourceType


_DTSTransactionImport::get_SourceName, put_SourceName Property [C++]

DTSTransactionImport.SourceName Property [Visual Basic]

The SourceName property is a String that contains the name of the Web site or Data Warehouse for which this task is processing data.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_SourceName(
 BSTR SourceName
);

Put method:

HRESULT _DTSTransactionImport::put_SourceName(
 BSTR SourceName
);
[Visual Basic]
Property SourceName() As String

Parameters

SourceName[C++]
[in] When putting the property, a BSTR that contains the name of the Web site or Data Warehouse.
[out,retval] When putting the property, a BSTR that contains the name of the Web site or Data Warehouse.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceType, put_SourceType

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceType


_DTSTransactionImport::get_SourceType, put_SourceType Property [C++]

DTSTransactionImport.SourceType Property [Visual Basic]

The SourceType property is an enumeration that contains the level on which the Data Transformation Services (DTS) task will operate.

Definition

[C++]

Get method:

HRESULT _DTSTransactionImport::get_SourceType(
 int SourceType
);

Put method:

HRESULT _DTSTransactionImport::put_SourceType(
 int SourceType
);
[Visual Basic]
Property SourceType() As Integer

Parameters

SourceType[C++]
[in] When putting the property, an int that contains the source type.
[out, retval] When getting the property, an int that contains the source type.
None.[Visual Basic]
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the SourceType property is set to srctypeSite (0), the task will operate on the Web site level. If the SourceType property is set to scrtypeDW (1), the task will operate on the Data Warehouse level. The default value is srctypeSite (0).

See Also

Scripting the Transaction Data Import DTS Task

[C++]

_DTSTransactionImport::CustomTask_Execute

_DTSTransactionImport::get_NumRetries, put_NumRetries

_DTSTransactionImport::PersistPropertyBag_Load

_DTSTransactionImport::PersistPropertyBag_Save

_DTSTransactionImport::get_ProcessingType, put_ProcessingType

_DTSTransactionImport::get_RetryInterval, put_RetryInterval

_DTSTransactionImport::get_SourceName, put_SourceName

[Visual Basic]

DTSTransactionImport.CustomTask_Execute

DTSTransactionImport.NumRetries

DTSTransactionImport.PersistPropertyBag_Load

DTSTransactionImport.PersistPropertyBag_Save

DTSTransactionImport.ProcessingType

DTSTransactionImport.RetryInterval

DTSTransactionImport.SourceName


ReportRenderer2 Object [C++]

ReportRenderer2 Object [Visual Basic]

Use this object to render (display) or export a static report synchronously.

ProgID: | Commerce.ReportRenderer (Externally creatable)
COM Class Name: | ReportRenderer2
Type Library Name: | Microsoft Commerce 2002 Report Renderer Type Library
DLL Name: | ReportRenderer2.dll
Threading Model: | Both
[C++]
COM Interface Name: | _ReportRenderer2
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _ReportRenderer interface to access the methods of the ReportRenderer object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Init | Runs a static report.
ExecGroupedReport | Runs a grouped report, which creates a set of reports sliced on the specified dimensions.
[Visual Basic]
Method | Description
Init | Runs a static report.
ExecGroupedReport | Runs a grouped report, which creates a set of reports sliced on the specified dimensions.

Properties

[C++]
Property | Value | Description
BizdeskDocPath | BSTR | Specifies the URL for the default ASP page in the directory that contains the report help files.
ReportDirectory | BSTR | Specifies the local path on the Business Desk IIS machine where Commerce Server has rendered the completed reports. Used only for grouped reports.
ReportLocale | Long | Describes the locale used for rendering dates in the report header.
[Visual Basic]
Property | Value | Description
BizdeskDocPath | String | Specifies the URL for the default ASP page in the directory that contains the report help files.
ReportDirectory | String | Specifies the local path on the Business Desk IIS machine where Commerce Server has rendered the completed reports. Used only for grouped reports.
ReportLocale | Long | Describes the locale used for rendering dates in the report header.

Remarks

The ReportRender object must be passed the ReportStatusID parameter of the report to be rendered in its initialization string. This parameter is set when the report is run.

See Also

Analysis/Reporting Schema

Analysis/Reporting XML Structures

[C++] AsyncRpt Object

[C++] ListManager Object

[Visual Basic] AsyncRpt Object

[Visual Basic] ListManager Object

Running Reports


_ReportRenderer2 Methods [C++]

ReportRenderer2 Methods [Visual Basic]

Methods

[C++]
Method | Description
Init | Runs a static report.
ExecGroupedReport | Executes a set of grouped reports. Also creates a set of reports sliced on the specified dimensions.
[Visual Basic]
Method | Description
Init | Runs a static report.
ExecGroupedReport | Executes a set of grouped reports. Also creates a set of reports sliced on the specified dimensions.


_ReportRenderer2::Init Method [C++]

ReportRenderer.Init Method [Visual Basic]

Use this method to initialize the ReportRenderer object and to render or export a static report synchronously.

Definition

[C++]
HRESULT IreportRenderer2::Init(
  BSTR* sParamString,
  VARIANT_BOOL* pvResult
);
[Visual Basic]
Function Init(
  sParamString As String
) As Boolean

Parameters

sParamString [C++]
[in, out] A pointer to a BSTR used to supply parameters to the ReportRenderer object.
sParamString [Visual Basic]
A String used to supply parameters to the ReportRenderer object.
pvResult [C++]
[out, retval] A pointer to a VARIANT_BOOL used to indicate whether the operation was successful. True (1) indicates success.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean that indicates whether the initialization was successful. True (1) indicates success.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The sParamString parameter consists of a string containing six parameters delineated by the '|' symbol. The string is of the form:

   "ReportStatusID|Data warehouse connection string|
    OLAP connection string|Destination connection string|
    Destination table name|Report execution time"

The possible parameters consist of the following:

  • ReportStatusID - used to identify the report to be displayed or exported. This parameter is stored in the ReportStatus table which is created when a report is run or exported.
  • Data warehouse connection string - where the underlying data is stored. A valid connection string is of the type "Provider=SQLOLEDB;Data Source=Server Name;Initial Catalog=Database Name;Integrated Security=’SSPI’".
  • OLAP connection string - where the underlying OLAP data is stored. A valid connection string is of the type "Provider=msolap;DATA SOURCE=Server Name;INITIAL CATALOG=Database Name;". You will use the OLAP connection string only with reports that are based on OLAP.
  • Destination connection string - where the table that will contain the exported report data is located. A valid connection string is of the type "Provider=SQLOLEDB;Data Source=Server Name;Initial Catalog=Database Name; Integrated Security=’SSPI’".
  • Destination table name - the table that will contain the exported report data.
  • Report execution time - the time when the report was executed. If not supplied, this defaults to the current time in the format of the client computer.

The actual parameters used depend on the type of report (SQL or MDX) and whether the report is being displayed or exported. The ReportStatusID and the Data warehouse connection string parameters are required in all cases. The remaining parameters are required, as shown in the following table. Parameters not used are left blank.

Action- Report Type | Report StatusID | Data Warehouse connection string | OLAP connection string | Destination connection string | Destination table name | Report execution time
Display-SQL | X | X |  |  |  | X
Display-MDX | X | X | X |  |  | X
Export-SQL | X | X |  | X | X |
Export-MDX | X | X | X | X | X |

The ReportRenderer object constrains displayed reports with the following limitations:

  • Maximum of 1000 rows.
  • Maximum of 50 columns.
  • Maximum of 5 dimension levels for each row or column dimension.

The number of rows and columns is determined by the report query, report parameters, and report definitions. The number of dimensions is set in the ReportDimension table (for SQL queries) when the report is created. Trying to display a report outside these limitations results in the report being truncated at the above limits. There are no limits when exporting a report. For information on the report tables, see Analysis/Reporting Schema.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pvResult parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oReportRenderer is a Commerce ReportRenderer object

' Display a static SQL report

   oReportRenderer.Init("7|DRIVER={SQL Server};" _
    & "SERVER=MyServer;DATABASE=Retail_dw; Integrated Security=’SSPI’" _
    & "||||10/01/2000 3:45:56 pm" )

' Export a static SQL report

   oReportRenderer.Init("7|DRIVER={SQL Server};SERVER=MyServer;" _
    & "DATABASE=Retail_dw;UID=sysadmin;PWD=123;||Provider=SQLOLEDB;" _
    & "Persist Security Info=False; Integrated Security=’SSPI’;" _
    & "Initial Catalog=Retail_commerce;Data Source=MyServer;|" _
    & "OutPutTableName|10/01/2000 3:45:56 pm")

' Display a static MDX report

   oReportRenderer.Init("19|DRIVER={SQL Server};SERVER=MyServer;" _
    & "DATABASE=Retail_dw; Integrated Security=’SSPI’" _
    & ";|data source=MyServer;" _
    & "Initial Catalog=Retail_dw;|||10/01/2000 3:45:56 pm")

' Export a static MDX report

   oReportRenderer.Init("19|DRIVER={SQL Server};SERVER=MyServer;" _
    & "DATABASE=Retail_dw; Integrated Security=’SSPI’"
    & ";|data source=MyServer;" _
    & Initial Catalog=Retail_dw;|Provider=SQLOLEDB;" _
    & "Persist Security Info=False; Integrated Security=’SSPI’;" _
    & "Initial Catalog=Retail_commerce;Data Source=MyServer;|" _
    & "OutPutTableName|10/01/2000 3:45:56 pm")

See Also

[C++] ReportRenderer Object

[C++] Analysis/Reporting Schema

[Visual Basic] ReportRenderer Object

[Visual Basic] Analysis/Reporting Schema


_ReportRenderer2::ExecGroupedReport Method [C++]

ReportRenderer2.ExecGroupedReport Method [Visual Basic]

Use this method to execute a set of grouped reports. ExecGroupedReport also creates a set of reports sliced on the specified dimensions.

Definition

[C++]
HRESULT ReportRenderer2::ExecGroupedReport(
  BSTR* sParamString,
  VARIANT_BOOL* pvResult
);
[Visual Basic]
Function ExecGroupedReport(
  sParamString As string
) As Boolean

Parameters

sParamString [C++]
[in/out] Pointer to a BSTR containing parameters for the ReportRenderer object.
SParamString [Visual Basic]
String containing parameters for the ReportRenderer object.
PvResult [C++]
[out, retval] A pointer to a VARIANT_BOOL used to indicate whether the operation was successful. True (1) indicates success.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean that indicates whether the initialization was successful. True (1) indicates success.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] _ReportRenderer2 Object

[Visual Basic] ReportRenderer2 Object


_ReportRenderer2 Properties [C++]

ReportRenderer2 Properties [Visual Basic]

Properties

[C++]
Property | Value | Description
BizdeskDocPath | BSTR | Contains the URL describing the default ASP page in the directory that contains the report help files.
ReportDirectory | BSTR | Specifies the local path on the Business Desk IIS machine where Commerce Server has rendered the completed reports. Used only for grouped reports.
ReportLocale | String | Describes the locale used for rendering dates in the report header.
[Visual Basic]
Property | Value | Description
BizdeskDocPath | String | Contains the URL describing the default ASP page in the directory that contains the report help files.
ReportDirectory | String | Specifies the local path on the Business Desk IIS machine where Commerce Server has rendered the completed reports. Used only for grouped reports.
ReportLocale | String | Describes the locale used for rendering dates in the report header.


ReportRenderer2::get_BizDeskDocPath, put_BizDeskDocPath Property [C++]

ReportRenderer2.BizDeskDocPath Property [Visual Basic]

This property contains the URL describing the default ASP page in the directory that contains the report help files.

Definition

[C++]

Get method:

HRESULT ReportRenderer2::get_BizDeskDocPath(
 BSTR* sBizDeskDocPath
);

Put method:

HRESULT ReportRenderer2::put_BizDeskDocPath(
 BSTR* sBizDeskDocPath
);

Putref method:

HRESULT ReportRenderer2::putref_BizDeskDocPath(
 BSTR* sBizDeskDocPath
);
[Visual Basic]
Property BizDeskDocPath As String

Parameters

[C++]

sBizDeskDocPath
[in, optional] Pointer to a string containing the URL for the new default ASP page.

[out] Pointer to a string containing the URL for the current default ASP page.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] _ReportRenderer2 Object

[Visual Basic] ReportRenderer2 Object


ReportRenderer2::get_ReportDirectory, put_ReportDirectory Property [C++]

ReportRenderer2.ReportDirectory Property [Visual Basic]

This property specifies the local path on the Business Desk IIS machine where Commerce Server has rendered the completed reports. You can use ReportDirectory only for grouped reports.

Definition

[C++]

Get method:

HRESULT ReportRenderer2::get_ReportDirectory(
 BSTR* ReportDirectory
);

Put method:

HRESULT ReportRenderer2::put_ReportDirectory(
 BSTR* ReportDirectory
);
[Visual Basic]
Property ReportDirectory As String

Parameters

[C++]
ReportDirectory
[in] Pointer to a string containing the new local path of the Business Desk IIS machine.

[out] Pointer to a string containing the current local path of the Business Desk IIS machine.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] _ReportRenderer2 Object

[Visual Basic] ReportRenderer2 Object


ReportRenderer2::get_ReportLocale, put_ReportLocale Property [C++]

ReportRenderer2.ReportLocale Property [Visual Basic]

Describes the locale used for rendering dates in the report header.

Definition

[C++]

Get method:

HRESULT ReportRenderer2::get_ReportLocale(
 BSTR* ReportLocale
);

Put method:

HRESULT ReportRenderer2::put_ReportLocale(
 BSTR* ReportLocale
);

Putref method:

HRESULT ReportRenderer2::putref_ReportLocale(
 BSTR* ReportLocale,
);
[Visual Basic]
Property ReportLocale As String

Parameters

[C++]

ReportLocale
[in] Pointer to a string containing the new locale ID.

[out] Pointer to a string containing the current locale ID.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The default value for the report locale is 1033.

See Also

[C++] _ReportRenderer2 Object

[Visual Basic] ReportRenderer2 Object


Cache Objects

The Commerce Server caching objects manage the stored profile, catalog, transaction, and campaign data for your site.

The Caching Programming Concepts topic describes the major issues relating to the use of the cache objects.

Objects

Visual Basic reference | C++ invocation | Description
CacheManager | CacheManager | Provides generic caching services.
LRUCache | LRUCache | Provides a least recently used (LRU) cache for the CacheManager object. It stores a limited number of entries and sorts them according to the least recently used element.

Examples

Example | Description
Code to Implement Custom Cache Components | Describes how to implement custom cache components.
Code to Manipulate an LRUCache Object | Describes how to manipulate an LRUCache object.


Caching Programming Concepts

There are two cache objects used by Commerce Server 2002, the CacheManager object and the LRUCache object. This section provides an overview of the programming concepts associated with these objects.

This section contains:

  • CacheManager Object
  • LRUCache Object

CacheManager Object

The CacheManager object is normally created in the Application_OnStart event in the Global.asa file for an Active Server Pages (ASP) application. It uses the services of other Component Object Model (COM) objects called Loader and Writer components, whose job it is to populate caches with data and write data that has been collected in the cache, respectively. Each cache is required to have a Loader component configured, but the Writer component is optional. The CacheManager object is configured by setting the LoaderProgId, LoaderConfig, WriterProgId, and WriterConfig properties for each cache being created.

After one or more caches have been configured in an application, any ASP page in the application can use the GetCache method of the CacheManager object to access the cached data. The type of cache object returned, either a Dictionary object or an LRUCache object, depends on the configuration of the LoaderProgId property for the cache.

The CacheManager object can be configured to automatically refresh each cache periodically, based on the RefreshInterval property. Automatic cache refresh can also be disabled by setting the RefreshInterval property to zero (0), which is the default. The CacheManager object also retries failed load operations after a configurable pause, controlled with the RetryInterval property.

When the CacheManager object refreshes the cache, either from an explicit call to the RefreshCache method or based on the refresh interval expiring, it performs several actions. First, if the cache has been configured with a Writer component, the CacheManager object creates, configures, and executes the Writer component to record performance data collected since the last refresh operation. If the Writer component fails, then the entire refresh operation is aborted. Next, the CacheManager object creates, configures, and executes the specified Loader component to repopulate the cache. A Loader component can be designed such that if it determines that the existing contents of the cache are current, or otherwise sufficient, it can simply return a CACHE_E_NOCACHE_UPDATED message. When the CacheManager object recognizes this return code, it does not replace the existing cache with the newly created one that was passed to the Loader component, and any changes that were made to the new cache object are discarded.

For more information, see CacheManager Object.

LRUCache Object

The LRUCache object is used to support the creation, storage, and retrieval of key/value pairs from a cache. LRUCache objects are similar to Dictionary objects, except that LRUCache objects can only store a limited number of elements. The LRUCache object ranks elements from most-recently-used to least-recently-used. When the LRUCache object is at capacity, it removes the least-recently-used element from the cache and adds the new element. The replacement algorithm used by the LRUCache object is an approximate method that allows the cache size to grow to 110 percent of its maximum size setting. After this limit is reached, the least-recently-used 10 percent of items are removed from the cache.

For more information, see LRUCache Object.


CacheManager Object [C++]

CacheManager Object [Visual Basic]

Use this object to establish and use a collection of data caches. Each data cache is either a Dictionary object or an LRUCache object. You can specify which one you would like to use by setting the CacheObjectProgID property.

ProgID: | Commerce.CacheManager (Externally creatable)
COM Class Name: | CacheManager
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]
COM Interface Name: | ICacheManager
Interface ID Constant: | IID_ICacheManager
Header File: | None
[C++]

In C++, use the ICacheManager interface to access the properties and methods of the CacheManager object.

Methods

[C++]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.
[Visual Basic]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.

Properties

[C++]
Property | Type | Description
AppUrl | BSTR | Stores the full URL of the application. This property is read/write.
CacheObjectProgId | BSTR | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | BSTR | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | long | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | long | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | BSTR | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.
[Visual Basic]
Property | Type | Description
AppUrl | String | Stores the full URL of the application. This property is read/write.
CacheObjectProgId | String | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | String | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | long | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | long | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | String | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.

See Also

Core Object Programming Concepts

Code to Implement Custom Cache Components


ICacheManager Methods [C++]

CacheManager Methods [Visual Basic]

Methods

[C++]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.
[Visual Basic]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.

Methods

[C++]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.
[Visual Basic]
Method | Description
GetCache | Retrieves the data cache Dictionary object associated with a specified data cache name.
RefreshCache | Forces an immediate, synchronous refresh of the cache.


ICacheManager::GetCache Method [C++]

CacheManager.GetCache Method [Visual Basic]

Use this method to retrieve either the Dictionary or LRUCache object for the specified cache name.

Definition

[C++]
HRESULT ICacheManager::GetCache(
 BSTR bstrName,
 IDispatch** ppdict
);
[Visual Basic]
Function GetCache(
 bstrName As String
) As IDispatch

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the cache to be retrieved.
bstrName [Visual Basic]
A String that contains the name of the cache to be retrieved.
ppdict [C++]
[out,retval] A pointer used to return the IDispatch interface of the data cache Dictionary object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to the data cache Dictionary object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is designed to be lightweight and fast. It is commonly called several times on any given ASP page.

The first time the GetCache method or the RefreshCache method is called, the data cache object is created and the configured CacheLoader component is invoked to populate it with data. Subsequent calls to the GetCache method may return the same cache object or a new cache object that is created when the cache is refreshed.

If the first call to the GetCache method for a particular cache results in a failed refresh, then the CacheManager object will not immediately retry a refresh when more GetCache method calls are made for the same cache. This is to avoid recurring timeouts that might bring down a system, for example if a database connection becomes temporarily unavailable. In this failure scenario, subsequent calls to the GetCache method will return an error indicating that the cache load failed and will not be retried until the refresh interval has elapsed or until the RefreshCache method is explicitly called.

After a cache has successfully been created, if a subsequent refresh of the cache fails, then the existing cache object is returned until a later refresh succeeds. The CacheManager object provides high availability to cache data at the expense of ensuring the cached data is up to date.

[Visual Basic]

Example

'oMyCache is an object
'strMyCacheName is a String containing the name of an existing cache.

Set oMyCache = myCacheManager.GetCache(strMyCacheName)

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::RefreshCache Method [C++]

CacheManager.RefreshCache Method [Visual Basic]

Use this method to force an immediate refresh of a data cache Dictionary object. This method is synchronous, not returning to the caller until the specified data cache is refreshed.

Definition

[C++]
HRESULT ICacheManager::RefreshCache(
 BSTR bstrName
);
[Visual Basic]
Sub RefreshCache(
 bstrName As String
)

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the data cache to be refreshed.
bstrName [Visual Basic]
A String that contains the name of the data cache to be refreshed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the specified cache is in the middle of being refreshed when the RefreshCache method is invoked, presumably by the background timer thread or a different foreground thread, this method will wait until the refresh operation is complete and then return. It will not result in another refresh operation.

[Visual Basic]

Example

'strMyCacheName is a String containing the name of an existing cache.

myCacheManager.RefreshCache(strMyCacheName)

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager Properties [C++]

CacheManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
AppUrl | BSTR | Stores the full URL of the application. This property is read/write.
CacheObjectProgId | BSTR | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | BSTR | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | long | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | long | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | BSTR | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.
[Visual Basic]
Property | Type | Description
AppUrl | String | Stores the full URL of the application. This property is read/write.
CacheObjectProgId | String | Stores the ProgID for the object that is to be used for cache functions internally within the CacheManager object. Determines the type of object returned by the GetCache method. This property is read/write.
LoaderConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Loader component. This property is read/write.
LoaderProgId | String | Stores the ProgID of the component used to create and populate a data cache. This property is read/write.
RefreshInterval | long | Stores the number of seconds between automatic cache refresh operations. This property is read/write.
RetryInterval | long | Stores the number of seconds to wait before retrying after a cache load has failed. This property is read/write.
WriterConfig | IDispatch | Stores the configuration Dictionary object that should be passed to the Writer component. This property is read/write.
WriterProgId | String | Stores the ProgID of the component used to write out some type of data that has been accumulated since the last refresh. Advertising event data is one example of the type of data that might be accumulated. This property is read/write.


ICacheManager::get_AppUrl, put_AppUrl Property [C++]

CacheManager.AppUrl Property [Visual Basic]

The AppUrl property is a read/write string that contains the full URL of the application.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_AppUrl(
 BSTR* AppUrl
);

Put method:

HRESULT ICacheManager::put_AppUrl(
 BSTR AppUrl
);
[Visual Basic]
Property AppUrl() As String

Parameters

AppUrl [C++]
[in] When putting the property, a BSTR that contains the full URL of the application.
[out,retval] When getting the property, a pointer to a BSTR used to return the full URL of the application.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The default value for this property is the URL of the current Internet Information Services (IIS) 5.0 application. Depending on the URL used to access the IIS application the first time after it is started, this URL could contain the special host name "localhost," preventing it from being accessed externally. Therefore, it is best to explicitly set this property to the full URL of the IIS application.

Unlike the other properties of CacheManager object that are set on a per-cache basis, the AppUrl property is a global property. The AppUrl property is generally used to register all of the caches running in a web server farm so that they can be managed without requiring explicit registration by an administrator. The Publish Campaign module in Commerce Server Business Desk is an example of this.

If the cache object is a Dictionary object, then the value of this property is passed to the CacheLoader and CacheWriter objects during each cache refresh. It will be put in the _AppUrl key in the Dictionary object.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_CacheObjectProgId, put_CacheObjectProgId Property [C++]

CacheManager.CacheObjectProgId Property [Visual Basic]

The CacheObjectProgId property is a read/write String that contains the name of the object to be used internally to perform caching functions for this CacheManager object. It also determines the type of object returned by the GetCache method.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_CacheObjectProgId(
  BSTR bstrName,
  BSTR* CacheObjectProgId
);

Put method:

HRESULT ICacheManager::put_CacheObjectProgId(
  BSTR bstrName,
  BSTR CacheObjectProgId
);
[Visual Basic]
Property CacheObjectProgId(
  bstrName As String
) As String

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the cache object.
bstrName [Visual Basic]
A String that contains the name of the cache object.
CacheObjectProgId [C++]
[in] When putting the property, a BSTR that contains the Programmatic Identifier (ProgID) of the cache object.
[out,retval] When getting the property, a pointer to a BSTR used to return the ProgID of the cache object.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The CacheObjectProgId parameter contains valid data only if the property was accessed successfully.

By default, the CacheManager object will have Commerce.Dictionary set as the value for this property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_LoaderConfig, putref_LoaderConfig Property [C++]

CacheManager.LoaderConfig Property [Visual Basic]

The LoaderConfig property is a read/write reference to a Dictionary object that contains configuration information for the Loader component.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_LoaderConfig(
 BSTR bstrName,
 IDispatch** LoaderConfig
);

Put method:

HRESULT ICacheManager::putref_LoaderConfig(
 BSTR bstrName,
 IDispatch* LoaderConfig
);
[Visual Basic]
Property LoaderConfig(
 bstrName As String
) As IDispatch

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which Loader component configuration information is being provided or retrieved.
LoaderConfig [C++]
[in] When putting the property, a pointer to the IDispatch interface of the Dictionary object that contains the Loader component configuration information.
[out,retval] When getting the property, the address of a pointer used to return the IDispatch interface of the Dictionary object that contains the configuration information.
[C++]

Return Values

This method returns an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property, a Dictionary object containing configuration information for a particular Loader component, will be passed to that Loader component when it is created to load the associated data cache. When you set this property, the dictionary is shallow cloned and then the CacheManager object stores the clone of the dictionary. This is as opposed to simply storing a reference to the dictionary. Shallow clone means that scalars in the dictionary are copied by value, but other objects in the dictionary are copied by reference. The Loader component needs to implement the IPipelineComponentAdmin interface in order to read the configuration values from the dictionary, and in particular, the SetConfigData method of that interface. The Dictionary object identified by this property is passed to the newly created Loader component using the SetConfigData method.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_LoaderProgId, put_LoaderProgId Property [C++]

CacheManager.LoaderProgId Property [Visual Basic]

The LoaderProgId property is a read/write string that contains the ProgID of the component intended for use in populating the cache.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_LoaderProgId(
 BSTR bstrName,
 BSTR* LoaderProgId
);

Put method:

HRESULT ICacheManager::put_LoaderProgId(
 BSTR bstrName,
 BSTR LoaderProgId
);
[Visual Basic]
Property LoaderProgId(
 bstrName As String
) As String

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which the Loader component ProgID is being provided or retrieved.
LoaderProgId [C++]
[in] When putting the property, a BSTR that contains the ProgID of the Loader component.
[out,retval] When getting the property, a pointer to a BSTR user to return the ProgID of the Loader component.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_RefreshInterval, put_RefreshInterval Property [C++]

CacheManager.RefreshInterval Property [Visual Basic]

The RefreshInterval property is a read/write number that specifies the approximate number of seconds between automatic cache refresh operations on a specified cache.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_RefreshInterval(
 BSTR bstrName,
 long* RefreshInterval
);

Put method:

HRESULT ICacheManager::put_RefreshInterval(
 BSTR bstrName,
 long RefreshInterval
);
[Visual Basic]
Property RefreshInterval(
 bstrName As String
) As Long

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which the refresh interval is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which the refresh interval is being provided or retrieved.
RefreshInterval [C++]
[in] When putting the property, a long that contains the new refresh interval value.
[out,retval] When getting the property, a pointer to a long used to return the current refresh interval value.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A refresh interval value of zero (0) means that the cache is never refreshed automatically.

The default refresh interval value is zero (0).

The value is a measurement of the number of seconds between automatic cache refresh operations.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_RetryInterval, put_RetryInterval Property [C++]

CacheManager.RetryInterval Property [Visual Basic]

The RetryInterval property is a read/write number that specifies the approximate number of seconds to wait before retrying to load the data cache after failing to load.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_RetryInterval(
 BSTR bstrName,
 long* RetryInterval
);

Put method:

HRESULT ICacheManager::put_RetryInterval(
 BSTR bstrName,
 long RetryInterval
);
[Visual Basic]
Property RetryInterval(
 bstrName As String
) As Long

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which the retry interval is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which the retry interval is being provided or retrieved.
RetryInterval [C++]
[in] When putting the property, a long that contains the new retry interval value.
[out,retval] When getting the property, a pointer to a long used to return the current retry interval value.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A retry interval value provides the number of seconds the CacheManager object should wait before retrying a failed cache refresh operation.

The default retry interval value is 60 (seconds).

The retry interval must be at least 1 (second).

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_WriterConfig, putref_WriterConfig Property [C++]

CacheManager.WriterConfig Property [Visual Basic]

The WriterConfig property is a read/write reference to a Dictionary object that contains configuration information for the Writer component.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_WriterConfig(
 BSTR bstrName,
 IDispatch** WriterConfig
);

Put method:

HRESULT ICacheManager::putref_WriterConfig(
 BSTR bstrName,
 IDispatch* WriterConfig
);
[Visual Basic]
Property WriterConfig(
 bstrName As String
) As IDispatch

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which Writer component configuration information is being provided or retrieved.
WriterConfig [C++]
[in] When putting the property, a pointer to the IDispatch interface of the Dictionary object that contains the Writer component configuration information.
[out,retval] When getting the property, the address of a pointer used to return the IDispatch interface of the Dictionary object that contains the configuration information.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property, a Dictionary object containing configuration information for a particular Writer component, is passed to that Writer component when it is created to report results related to cache usage. When you set this property, the dictionary is shallow cloned and then the CacheManager object stores the clone of the dictionary. This is as opposed to simply storing a reference to the dictionary. Shallow clone means that scalars in the dictionary are copied by value, but other objects in the dictionary are copied by reference. The Writer component needs to implement the IPipelineComponentAdmin interface in order to read the configuration values from the dictionary, and in particular, the SetConfigData method of that interface. The Dictionary object identified by this property is passed to the created Writer component using the SetConfigData method.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


ICacheManager::get_WriterProgId, put_WriterProgId Property Property [C++]

CacheManager.WriterProgId Property [Visual Basic]

The WriterProgId property is a read/write string that contains the Programmatic Identifier (ProgID) of the component intended for use in populating the cache.

Definition

[C++]

Get method:

HRESULT ICacheManager::get_WriterProgId(
 BSTR bstrName,
 BSTR* WriterProgId
);

Put method:

HRESULT ICacheManager::put_WriterProgId(
 BSTR bstrName,
 BSTR WriterProgId
);
[Visual Basic]
Property WriterProgId(
 bstrName As String
) As String

Parameters

bstrName [C++]
[in] A BSTR that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.
bstrName [Visual Basic]
A String that contains the name of a data cache for which the Writer component ProgID is being provided or retrieved.
WriterProgId [C++]
[in] When putting the property, a BSTR that contains the ProgID of the Writer component.
[out,retval] When getting the property, a pointer to a BSTR user to return the ProgID of the Writer component.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object


LRUCache Object [C++]

LRUCache Object [Visual Basic]

Use this object to support the creation, storage, and retrieval of name/value pairs, referred to as elements, from a cache in memory. The LRUCache object functions similarly to the Dictionary object, except that it only stores a limited number of elements, and internally ranks them according to use. When the cache is full and a new element needs to be added, the least recently used element is removed from the cache to make room for the new element.

ProgID: | Commerce.LRUCache (Externally creatable)
COM Class Name: | LRUCache
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]

COM Interface Name: | ILRUCache
Interface ID Constant: | IID_ILRUCache
Header File: | cacheint.h, mspu_guids.h
[C++]

In C++, use the ILRUCache interface to access the methods of the LRUCache object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.
[Visual Basic]
Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.

Remarks

The LRUCache object is typically created by the CacheManager object rather than directly from an ASP script. It is configured through the Cachemanager.LoaderConfig property. This is done by configuring a CacheManager cache with a LoaderProgID of Commerce.LRUCacheFlush and by setting the LoaderConfig dictionary properties as shown in the table below. The configuration parameters are contained in a Dictionary object.

The following table shows the keys in the dictionary containing the configuration parameters.

Key | Definition
CacheSize | Specifies the size of the cache. A value of –1 will result in the default value of 1000 items being used.
ConnectionString | The connection string to the database where the LRUCacheFlush object should register the cache.
TableName | The name of the table where the LRUCacheFlush object should register the cache.
AppUrl | The fully qualified URL of the Commerce Server application without a page name.
CacheName | The name of the cache.

Note

  • The ConnecitonString, TableName, and CacheName keys are required. If any of them are not set the LRUCacheFlush object will not register the cache.

The LRUCacheFlush object registers the LRUCache object so that it can be flushed from Commerce Server Business Desk.

For more information, and to view a sample configuration of the LRUCache object, see Code to Use Caching with a Catalog.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object

Code to Use Caching with a Catalog

Code to Manipulate an LRUCache Object


ILRUCache Methods [C++]

LRUCache Methods [Visual Basic]

Methods

[C++]
Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.
[Visual Basic]
Method | Description
Flush | Removes an element from the cache.
FlushAll | Removes all elements from the cache.
Insert | Inserts an element into the cache.
Lookup | Returns the value of an element in the cache when given the name of the element.
LookupObject | Returns an object in the cache when given the name of the object.
SetSize | Sets the maximum size of the cache.


ILRUCache::Flush Method [C++]

LRUCache.Flush Method [Visual Basic]

Use this method to remove the specified element from the cache.

Definition

[C++]
HRESULT ILRUCache::Flush(
  BSTR bstrKey
);
[Visual Basic]
Sub Flush(
  Optional bstrKey As String
)

Parameters

bstrKey [C++]
[in, optional] A BSTR that contains the name of the element to be removed from the cache.
bstrKey [Visual Basic]
An optional String that contains the name of the element to be removed from the cache.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If no element is specified, all elements are removed.

See Also

[C++] CacheManager Object

[C++] LRUCache Object

[Visual Basic] CacheManager Object

[Visual Basic] LRUCache Object


ILRUCache::FlushAll Method [C++]

LRUCache.FlushAll Method [Visual Basic]

Use this method to remove all elements from the cache.

Definition

[C++]
HRESULT ILRUCache::FlushAll(
);
[Visual Basic]
Sub FlushAll()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] CacheManager Object

[C++] LRUCache Object

[Visual Basic] CacheManager Object

[Visual Basic] LRUCache Object


ILRUCache::Insert Method [C++]

LRUCache.Insert Method [Visual Basic]

Use this method to add an element to the cache.

Definition

[C++]
HRESULT ILRUCache::Insert(
  BSTR bstrKey,
  VARIANT* pvarValue
);
[Visual Basic]
Sub Insert(
  bstrKey As String,
  pvarValue As Variant
)

Parameters

bstrKey [C++]
[in] A BSTR that contains the name of the element to be added to the cache.
bstrKey [Visual Basic]
A String that contains the name of the element to be added to the cache.
pvarValue [C++]
[in] A pointer to the VARIANT that contains the value of the element.
pvarValue [Visual Basic]
A Variant that contains the value of the element.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'vManAd is a Variant that references an ad.
oLRUCache.Insert("ManufacturerAd", vManAd)

See Also

[C++] CacheManager Object

[C++] LRUCache Object

[Visual Basic] CacheManager Object

[Visual Basic] LRUCache Object


ILRUCache::Lookup Method [C++]

LRUCache.Lookup Method [Visual Basic]

Use this method to retrieve the value of an element from the cache.

Definition

[C++]
HRESULT ILRUCache::Lookup(
  BSTR bstrKey,
  VARIANT* pvarValue
);
[Visual Basic]
Function Lookup(
  bstrKey As String
) As Variant

Parameters

bstrKey [C++]
[in] A BSTR that contains the name of the element to be retrieved.
bstrKey [Visual Basic]
A String that contains the name of the element to be retrieved.
pvarValue [C++]
[out,retval] A pointer to a VARIANT used to return the value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the value of the specified element.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvarValue parameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vFavAd is a Variant
vFavAd = myLRUCache.Lookup("Favorite Ad")

See Also

[C++] CacheManager Object

[C++] LRUCache Object

[Visual Basic] CacheManager Object

[Visual Basic] LRUCache Object


ILRUCache::LookupObject Method [C++]

LRUCache.LookupObject Method [Visual Basic]

Use this method to retrieve an object from the cache.

Definition

[C++]
HRESULT ILRUCache::LookupObject(
  BSTR bstrKey,
  IDispatch** ppLRUCache
);
[Visual Basic]
Function LookupObject(
  bstrKey As String
) As Object

Parameters

bstrKey [C++]
[in] A BSTR that contains the name of the object to be retrieved.
bstrKey [Visual Basic]
A String that contains the name of the object to be retrieved.
ppLRUCache [C++]
[out,retval] The address of a pointer to the IDispatch interface of an object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppLRUCache parameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set oMyObject = oLRUCache.LookupObject("My Object")

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object

[C++] LRUCache Object

[Visual Basic] LRUCache Object


ILRUCache::SetSize Method [C++]

LRUCache.SetSize Method [Visual Basic]

Use this method to set the maximum size of the cache.

Definition

[C++]
HRESULT ILRUCache::SetSize(
  long lSize
);
[Visual Basic]
Sub SetSize(
  lSize As Long
)

Parameters

lSize [C++]
[in] A long that specifies the size of the cache.
lSize [Visual Basic]
A Long that specifies the size of the cache.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] CacheManager Object

[C++] LRUCache Object

[Visual Basic] CacheManager Object

[Visual Basic] LRUCache Object


Example Code for Cache Objects

This section contains sample code to create and extend the caching functionality of Commerce Server 2002.

Examples

Example | Description
Code to Implement Custom Cache Components | Describes how to implement custom cache components.
Code to Manipulate an LRUCache Object | Describes how to manipulate an LRUCache object.


Code to Implement Custom Cache Components

Loader and Writer components are used within the Content Selection Framework (CSF) to load caches and write out campaign results.

Loader and Writer components can be apartment-threaded because they are created, used once, and then destroyed by the same thread. This means that they can be written in Microsoft Visual Basic.

Loader and Writer components are implemented as pipeline components, although they are not intended to be executed in the context of a pipeline. They must implement the Execute method of the IPipelineComponent interface for the CacheManager object to be able to execute them. Further, if they require configuration, they must implement the SetConfigData method of the IPipelineComponentAdmin interface. The following tables provide details regarding this requirement.

Loader Component

Method to implement Details
IPipelineComponent::

Execute

 Required for the Loader component to execute.

The pDispContext parameter is set to the existing cache instance, if it exists, otherwise it is set to a new, empty cache object. If the cache object (specified by the LoaderProgId setting for the cache) is a Dictionary object, then the following additional entries are set:

  • _CacheName is set to the name of the cache being refreshed.
  • _CacheRefreshInterval is set to the refresh interval.
  • _CacheFirstRefresh is set to one (1) on the first cache refresh, and to zero (0) thereafter (can be used for conditional error logging).
  • _AppUrl is set to the value of the AppURL property, if any. This entry is optional and might not be set if the CacheManager object is not running in an ASP application.

The pDispOrder parameter is set to a new cache object based on the setting of the LoaderProgId property, normally a Dictionary object or an LRUCache object, which will become the new cache.

The lFlags parameter is set to zero (0).

The plErrorLevel parameter is ignored on return.
IPipelineComponentAdmin::

SetConfigInfo

 Optional. Required only if the Loader component requires configuration. Will be called if the LoaderConfig property has been set.

The pDict parameter is set to point at the Dictionary object specified by the LoaderConfig property.

Writer Component

Method to implement | Details
IPipelineComponent:: Execute | Required for the Writer component to execute. The pDispOrder parameter is set to the existing cache instance. Normally a Writer component will retrieve data from the cache to be written to disk. The pDispContext parameter is set to NULL. The lFlags parameter is set to zero (0). The plErrorLevel parameter is ignored on return.
IPipelineComponentAdmin:: SetConfigInfo | Optional. Required only if the Writer component requires configuration. Will be called if the WriterConfig property has been set. The pDict parameter is set to point at the Dictionary object specified by the WriterConfig property.

The following example code shows how to create and configure a custom cache component.

Set dictConfig = CreateObject("Commerce.Dictionary")
dictConfig("ConnectionString") = "DSN=adsamples;UID=username;PWD=******"
Set CacheManager = Server.CreateObject("Commerce.CacheManager")
CacheManager.LoaderProgId("advertising") = "Commerce.LoadAdvertisements"
Set CacheManager.LoaderConfig("advertising") = dictConfig
CacheManager.WriterProgId("advertising") = "Commerce.WriteEvents"
Set CacheManager.WriterConfig("advertising") = dictConfig
CacheManager.RefreshInterval("advertising") = 10 * 60
CacheManager.RetryInterval("advertising") = 60
Set application("CacheManager") = CacheManager

Now any web page in the application can quickly access the named schedule:

Set CacheManager = application("CacheManager")
Set dictSchedule = CacheManager.GetCache("advertising")


Code to Manipulate an LRUCache Object

The following example code shows how to use the LRUCache object:

' Declare variables to be used.
Dim oLRUCache, oDict, oNewDict, NumVal

' Create an instance of an LRU cache.
Set oLRUCache = CreateObject("Commerce.LRUCache")

' Set the max cache size to 100 items.
oLRUCache.SetSize 100

' Create an object to store.
Set oDict = CreateObject("Commerce.Dictionary")
oDict("Test") = "This is a test."

' Store the Dictionary object.
oLRUCache.Insert "DictObject", oDict

' Store the number 10.
oLRUCache.Insert "Number", 10

' Lookup the stored Dictionary object using method LookupObject.
Dim oNewDict
Set oNewDict = oLRUCache.LookupObject "DictObject"

' Lookup the stored number using method Lookup.
Dim NumVal
NumVal = oLRUCache.Lookup "Number"

' Remove all items from the cache.
oLRUCache.FlushAll

' Display the results, which will be:
' This is a test.
' 10
Response.Write "Dictionary data from cache: " & oDict.Test & "<BR>"
Response.Write "Number stored in cache: " & NumVal & "<BR>"


Configuration Objects

The configuration objects perform a variety of functions, such as creating a site, creating resources, importing and exporting resources, manipulating configuration settings on site and global resources, and retrieving Web site properties.

The Configuration Programming Concepts topic describes the major issues relating to the use of configuration objects.

Objects

Visual Basic Reference | C++ Invocation | Description
AdminWebServer | AdminWebServer | Allows enumeration of Web sites and their properties.
AppConfig | AppConfig | Allows retrieval of country/region codes, and names from the site configuration store.
GlobalConfig | GlobalConfig | Provides methods for the configuration management of global resources.
GlobalConfig2 | GlobalConfig2 | Provides methods for the configuration management of global resources, including several methods not included in the GlobalConfig object.
SiteConfig | SiteConfig | Provides for configuration management of site resources.
SiteConfigReadOnly | SiteConfigReadOnly | Provides methods to read global and site configuration values from the Administration database.

Examples

Example | Description
Code to Dump Configuration Values | Describes how to use the AppConfig object to retrieve site configuration values.
Code to Create a Site | Describes how to create a site.
Code to Create and Manipulate a Global Resource | Describes how to create and manipulate a global resource.
Code to Create and Manipulate a Site-Level Resource | Describes how to create and manipulate a site-level resource.
Code to Export a Resource | Describes how to export a resource.
Code to Import a Resource | Describes how to import a resource.
Code to Retrieve Web Site Properties | Describes how to read the contents of a server-side file and write those contents to the browser.


Configuration Programming Concepts

The following topics describe the configuration objects in Commerce Server and how to use them:

  • AppConfig Object
  • GlobalConfig Object
  • SiteConfig and SiteConfigReadOnly Objects
  • AdminWebServer Object


AppConfig Object

The most important function of the AppConfig object is to retrieve site configuration properties, such as i_FormLoginTimeOut, i_SitePrivacyOptions, various database connection strings, and so on. The GetOptionsDictionary method of the AppConfig object performs this function; however, before using this method, the AppConfig object must be initialized.

Many of the properties that the GetOptionsDictionary method retrieves can be viewed using Commerce Server Manager in the Microsoft Management Console (MMC). The App Default Config node, in the Site Resources folder of the site, in Commerce Server Manager displays the current setting values.

The following table lists the names of the keys in the dictionary returned by the GetOptionsDictionary method of the AppConfig object that are mapped in the App Default Config node in Commerce Server Manager.

Programmatic Name | Commerce Server Manager App Default Config Mapping
f_AltCurrencyConversionRate | Currency: Alternate currency conversion rate
i_AddItemRedirectOptions | Add item redirect options
i_AddressBookOptions | Address Book Options
i_AltCurrencyLocale | Currency: Alternate currency locale
i_AltCurrencyOptions | Currency: Alternate currency options
i_BaseCurrencyLocale | Currency: Base currency locale
i_BillingOptions | Payment options: Billing options
i_BizTalkOptions | BizTalk Options
i_CookiePathCorrectionOptions | Cookie Path Correction Options
i_CurrencyDisplayOrderOptions | Currency: Currency display order options
i_DelegatedAdminOptions | Delegated admin options
i_FormLoginOptions | Form login options
i_FormLoginTimeOut | AuthManager Auth Ticket Timeout
i_HostNameCorrectionOptions | Host Name Correction Options
i_PaymentOptions | Payment options
i_SiteDefaultLocale | Site default locale
i_SitePrivacyOptions | Site privacy options
i_SiteRegistrationOptions | Site registration options
i_SiteTicketOptions | Site ticket options
s_AltCurrencySymbol | Currency: Alternate currency symbol
s_BaseCurrencySymbol | Currency: Base currency symbol
S_BizTalkCatalogDocType | BizTalk Catalog Doc Type
S_BizTalkOrderDocType | BizTalk PO Doc Type
S_BizTalkSourceQualifierID | BizTalk Source Org Qualifier
s_BizTalkSourceQualifierValue | BizTalk Org Qualifier Value
s_BizTalkSubmittypeQueue | BizTalk Submit type
s_PageEncodingCharset | Page encoding charset
s_SMTPServerName | SMTP server name
s_WeightMeasure | Unit of Measure for Weight
s_BizTalkConnString | BizTalk Interchange Manager Database

The following table lists keys in the dictionary returned by the AppConfig.GetOptionsDictionary method which are not mapped in the App Default Config node in Commerce Server Manager.

Programmatic Name | Value or Description
s_CommerceProviderConnectionString | Biz Data Service: s_CommerceProviderConnectionString
s_ProfileServiceConnectionString | Biz Data Service: s_ProfileServiceConnectionString
s_CatalogConnectionString | Product Catalog: connstr_db_Catalog
s_TransactionConfigConnectionString | Transaction Config: connstr_db_TransactionConfig
s_TransactionsConnectionString | Transactions: connstr_db_Transactions
s_BizDataStoreConnectionString | Biz Data Service: s_BizDataStoreConnectionString
s_CampaignsConnectionString | Campaigns: connstr_db_Campaigns
i_IsFullTextSearchInstalled | Indicates whether SQL Server has full text search enabled
s_SiteName | Name of the site
s_NonSecureHostname | This value is set in the Global.asa file to the non-secure host name of the application.
s_SecureHostname | This value is set in the Global.asa file to the secure host name of the application.

See Also

GlobalConfig Object

SiteConfig and SiteConfigReadOnly Objects

AdminWebServer Object


GlobalConfig Object

The GlobalConfig object contains two groups of methods. The first group includes such methods as the MakeArrayFromSimpleList method; their function is obvious from the method name, and will not be discussed here. For more information about these methods, see GlobalConfig Object.. The second group of methods is used to create sites and manipulate configuration data at the global level.

See Also

AppConfig Object

SiteConfig and SiteConfigReadOnly Objects

AdminWebServer Object


SiteConfig and SiteConfigReadOnly Objects

The SiteConfig object contains two groups of methods. The first group includes such methods as the MakeArrayFromString method; their function is obvious from the method name, and will not be discussed here. For more information about these methods, see SiteConfig Object. The second group of methods is used to create site-level resources, manipulate configuration data at the site level, and import and export site-level resources.

The SiteConfigReadOnly object allows access to more configuration data than does the SiteConfig object. With the SiteConfigReadOnly object, group resource values are returned when you access references to resources. In contrast, the SiteConfig object only returns references to the names of the resources.

The following is a list of schema class names which are used by the CreateComponentConfig method of the SiteConfig object in creating resources.

Administration Database Class Name | Resource Name Used to Reference Resource in Code
MSCS_Catalog | Product Catalog
MSCS_AppConfigDefault | App Default Config
MSCS_TransactionConfig | Transaction Config
MSCS_Transactions | Transactions
MSCS_Campaigns | Campaigns
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mail
MSCS_Predictor | Predictor
MSCS_Datawarehouse_Group | Global Data Warehouse
MSCS_Datawarehouse_Site | Site Data Warehouse
MSCS_BizDataStore | Profile Service
MSCS_Address | IIS Applications (for example, Retail or RetailBizDesk)
MSCS_BDSecurity | Business Desk Permissions

See Also

AppConfig Object

GlobalConfig Object

AdminWebServer Object


AdminWebServer Object

The AdminWebServer object is used to enumerate the Web sites on a server and display the properties of those sites.

Active Server Pages (ASP) scripts that access the Microsoft Internet Information Services (IIS) metabase require administrator privileges on the computer on which IIS is running. When you run these scripts from a remote computer, you must connect through a secure connection, such as the Microsoft Windows NT Challenge/Response Authentication method. It is suggested that you create a server or directory for your administrative .asp files and set the directory security authentication method to Windows NT Challenge/Response for the server or directory.

See Also

AppConfig Object

GlobalConfig Object

SiteConfig and SiteConfigReadOnly Objects


AdminWebServer Object [C++]

AdminWebServer Object [Visual Basic]

Use this object to enumerate all Web sites on a server, to obtain the properties of those Web sites, and to enumerate all Commerce sites on a Web site.

ProgID: | Commerce.AdminWebServer (Externally creatable)
COM Class Name: | AdminWebServer
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAdminWebServer
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IAdminWebServer interface to access the methods of the AdminWebServer object.

Methods

[C++]
Method | Description
GetWebSiteProperties | Given a server instance, returns the properties of the site as name/value pairs in a Dictionary object.
GetWebSites | Enumerates all Web sites. Returns an array of numbers representing all Web sites (server instances).
[Visual Basic]
Method | Description
GetWebSiteProperties | Given a server instance, returns the properties of the site as name/value pairs in a Dictionary object.
GetWebSites | Enumerates all Web sites. Returns an array of numbers representing all Web sites (server instances).

Remarks

Active Server Pages (ASP) scripts that access the Microsoft Internet Information Services (IIS) metabase require administrator privileges on the computer on which IIS is running. When you execute these scripts from a remote computer, you must connect through a secure connection, such as the Microsoft Windows NT Challenge/Response Authentication method. You can create a server or directory for your administrative .asp files and set the directory security authentication method to Windows NT Challenge/Response for the server or directory.

See Also

Configuration Objects


IAdminWebServer Methods [C++]

AdminWebServer Methods [Visual Basic]

Methods

[C++]
Method | Description
GetWebSiteProperties | Given a server instance, returns the properties of the site as name/value pairs in a Dictionary object.
GetWebSites | Enumerates all Web sites. Returns an array of numbers representing all Web sites (server instances).
[Visual Basic]
Method | Description
GetWebSiteProperties | Given a server instance, returns the properties of the site as name/value pairs in a Dictionary object.
GetWebSites | Enumerates all Web sites. Returns an array of numbers representing all Web sites (server instances).


IAdminWebServer::GetWebSiteProperties Method [C++]

AdminWebServer.GetWebSiteProperties Method [Visual Basic]

Use this method to retrieve, given a server instance, the properties of a site as name/value pairs in a Dictionary object.

Definition

[C++]
HRESULT IAdminWebServer::GetWebSiteProperties(
  BSTR bstrInstance,
  IDictionary** ppIDictSiteProperties
);
[Visual Basic]
Function GetWebSiteProperties(
  bstrInstance As String
) As Object

Parameters

bstrInstance [C++]
[in] A numeric value, expressed as a BSTR, representing a server instance for a site.
bstrInstance [Visual Basic]
A numeric value, expressed as a String, representing a server instance for a site.
ppIDictSiteProperties [C++]
[out] The address of a pointer used to return the IDictionary interface of the Dictionary object containing the properties of the specified site.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns a reference to a Dictionary object containing the properties of the specified site.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppIDictSiteProperties parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
<%
' Create AdminWebServer object
Set objWebServer = CreateObject("Commerce.AdminWebServer")

' Get Web sites
WebSites = objWebServer.GetWebSites
For WebInstance = LBound(WebSites, 1) To UBound(WebSites, 1)
    ' Return its properties in a dictionary
    Set objDict = objWebServer.GetWebSiteProperties(WebSites(WebInstance))

    ' Enumerate and display the dictionary
   For Each property in objDict
      Response.Write  property & " = " & objDict.value(property) & "<br>"
    next
Next

' Destroy objects
Set objDict = Nothing
Set objWebServer = Nothing
%>

See Also

[C++] AdminWebServer Object

[Visual Basic] AdminWebServer Object


IAdminWebServer::GetWebSites Method [C++]

AdminWebServer.GetWebSites Method [Visual Basic]

Use this method to enumerate all Web sites. The method returns an array of numbers that represent the server instance number for each Web site.

Definition

[C++]
HRESULT IAdminWebServer::GetWebSites(
  VARIANT* pvarInstances
);
[Visual Basic]
Function GetWebSites() As Variant

Parameters

pvarInstances [C++]
[out] An address of a VARIANT used to return an array of numbers that represent all server instances.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns a Variant containing an array of numbers representing all server instances.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The pvarInstances parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AdminWebServer Object

[Visual Basic] AdminWebServer Object


AppConfig Object [C++]

AppConfig Object [Visual Basic]

Use this object to retrieve site configuration settings from the site configuration store. Also, use this object to retrieve the names and codes of various countries/regions and states/provinces from the site configuration store.

ProgID: | Commerce.AppConfig (Externally creatable)
COM Class Name: | AppCfg
Type Library Name: | Microsoft Commerce 2002 App Helper Type Library
DLL Name: | AppHelper.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAppCfg
Interface ID Constant: | IID_IAppCfg
Header File: | mspu_guids.h
[C++]

In C++, use the IAppCfg interface to access the methods of the AppConfig object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.
[Visual Basic]
Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.

Remarks

This object is usually created once and initialized in the Global.asa file, for performance reasons. An instance of it is stored in the Application object and used on ASP pages as necessary.

The following example illustrates these steps:

Dim oAppConfig
Set oAppConfig = Server.CreateObject("Commerce.AppConfig")
Set Application("MSCSAppCfg") = oAppConfig

[C++] Country/region codes may or may not be the same as ISO country/region codes, depending on what values have been added in the Business Desk. For more information on Country/Region codes, see Table of Country/Region and State/Province Names and Codes Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Country/region codes may or may not be the same as ISO country/region codes, depending on what values have been added in the Business Desk. For more information on Country/Region codes, see Table of Country/Region and State/Province Names and Codes Table of Language Culture Names, Codes, and ISO Values

See Also

[C++] Configuration Objects

[Visual Basic] Configuration Objects


IAppCfg Methods [C++]

AppCfg Methods [Visual Basic]

Methods

[C++]
Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.
[Visual Basic]
Method | Description
DecodeStatusCode | Decodes the specified status code.
GetCountryCodeFromCountryName | Returns the country/region code for the specified country/region name.
GetCountryNameFromCountryCode | Returns the country/region name for the specified country/region code.
GetCountryNamesList | Returns an alphabetical list of country/region names.
GetOptionsDictionary | Returns a Dictionary object that maps site configuration keys to site configuration values.
GetRegionCodeFromCountryCodeAndRegionName | Returns the state/province code for the specified country/region code and state/province name.
GetRegionNameFromCountryCodeAndRegionCode | Returns the state/province name for the specified country/region code and state/province code.
GetRegionNamesListFromCountryCode | Returns an alphabetical list of state/province names for the specified country/region code.
Initialize | Initializes the AppConfig object.
RefreshCache | Refreshes the AppConfig object cache.


IAppCfg::DecodeStatusCode Method [C++]

AppConfig.DecodeStatusCode Method [Visual Basic]

Use this method to decode the specified status code.

Definition

[C++]
HRESULT IAppCfg::DecodeStatusCode(
  int iStatusCode,
  BSTR* pbstrStatusCode
);
[Visual Basic]
Function DecodeStatusCode(
  iStatusCode As Integer
) As String

Parameters

iStatusCode [C++]
[in] An integer that specifies the status code to be decoded.
iStatusCode [Visual Basic]
An Integer that specifies the status code to be decoded.
pbstrStatusCode [C++]
[out, retval] The address of a BSTR used to return the decoded status code. If the specified status code is not in the system, that same status code is returned.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the decoded status code. If the specified status code is not in the system, that same status code is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrStatusCode parameter contains valid data only if the method returns successfully.

Status codes are entered in the Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AppConfig Object

[Visual Basic] AppConfig Object


IAppCfg::GetCountryCodeFromCountryName Method [C++]

AppConfig.GetCountryCodeFromCountryName Method [Visual Basic]

Use this method to get the country/region code corresponding to the specified country/region name.

Definition

[C++]
HRESULT IAppCfg::GetCountryCodeFromCountryName(
  BSTR bstrCountryName,
  BSTR* pbstrCountryCode
);
[Visual Basic]
Function GetCountryCodeFromCountryName(
  bstrCountryName As String
) As String

Parameters

bstrCountryName [C++]
[in] A BSTR that contains the name of the country/region for which the country/region code is being requested.
bstrCountryName [Visual Basic]
A String that contains the name of the country/region for which the country/region code is being requested.
pbstrCountryCode [C++]
[out, retval] The address of a BSTR used to return the country/region code being requested.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the country/region code. If the country/region code is not found, an empty string is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrCountryCode parameter contains valid data only if the method returns successfully.

If the country/region code is not found, the method returns an empty string.

Country/region codes and country/region names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppConfig is a Commerce.AppConfig object
' sCode is a String
sCode = oAppConfig.GetCountryCodeFromCountryName("United States of _
America")

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryNameFromCountryCode

[C++] IAppCfg::GetCountryNamesList

[C++] Table of Country/Region and State/Province Names and Codes

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.GetCountryNameFromCountryCode

[Visual Basic] AppConfig.GetCountryNamesList

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::GetCountryNameFromCountryCode Method [C++]

AppConfig.GetCountryNameFromCountryCode Method [Visual Basic]

Use this method to get the country/region name corresponding to the specified country/region code.

Definition

[C++]
HRESULT IAppCfg::GetCountryNameFromCountryCode(
  BSTR bstrCountryCode,
  BSTR* pbstrCountryName
);
[Visual Basic]
Function GetCountryNameFromCountryCode(
  bstrCountryCode As String
) As String

Parameters

bstrCountryCode [C++]
[in] A BSTR that contains the code of the country/region for which the country/region name is being requested.
bstrCountryCode [Visual Basic]
A String that contains the code of the country/region for which the country/region name is being requested.
pbstrCountryName [C++]
[out, retval] The address of a BSTR used to return the requested country/region name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the country/region name. If the name is not found, the country/region code is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrCountryName parameter contains valid data only if the method returns successfully.

If the country/region name is not found, the method returns the country/region code specified in the bstrCountryCode parameter.

Country/region codes and country/region names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppConfig is a Commerce.AppConfig object
' sCountryName is a String
sCountryName = oAppConfig.GetCountryNameFromCountryCode("us")

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryCodeFromCountryName

[C++] IAppCfg::GetCountryNamesList

[C++] Table of Country/Region and State/Province Names and Codes

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.GetCountryCodeFromCountryName

[Visual Basic] AppConfig.GetCountryNamesList

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::GetCountryNamesList Method [C++]

AppConfig.GetCountryNamesList Method [Visual Basic]

Use this method to get an alphabetical list of the country/region names that are in the site configuration database.

Definition

[C++]
HRESULT IAppCfg::GetCountryNamesList(
  ISimpleList** pplistCountryNames
);
[Visual Basic]
Function GetCountryNamesList() As Object

Parameters

pplistCountryNames [C++]
[out, retval] The address of a pointer used to return an ISimpleList interface. Upon successful completion of the method, this list contains an alphabetical list of country/region names.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a SimpleList object. This object contains an alphabetical list of country/region names.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pplistCountryNames parameter contains valid data only if the method returns successfully.

Country/region codes and country/region names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppConfig is a Commerce.AppConfig object
' listCountries is a SimpleList object
Set listCountries = oAppConfig.GetCountryNamesList()
For Each sCountry in listCountry
Response.Write sCountry
Next

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryCodeFromCountryName

[C++] Table of Country/Region and State/Province Names and Codes

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.GetCountryCodeFromCountryName

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::GetOptionsDictionary Method [C++]

AppConfig.GetOptionsDictionary [Visual Basic]

Use this method to retrieve a Dictionary object that contains the site configuration information.

Definition

[C++]
HRESULT IAppCfg::GetOptionsDictionary(
  BSTR bstrUserID,
  IDictionary** ppdispOptionsDictionary
);
[Visual Basic]
Function GetOptionsDictionary(
  bstrUserID As String
) As Object

Parameters

bstrUserID [C++]
[in] A BSTR that contains an empty string ("").
bstrUserID [Visual Basic]
A String that contains an empty string ("").
ppdispOptionsDictionary [C++]
[out, retval] The address of a pointer used to return an IDictionary interface pointer. The associated Dictionary object contains the site configuration information. See the Remarks section for a list of some dictionary keys.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a Dictionary object that contains the site configuration information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppdispOptionsDictionary parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Some options dictionary keys, such as i_AuctionOptions, are reserved for future use. The following table lists the names of the keys in the Dictionary object returned by this method that are mapped in the Microsoft Management Console (MMC).

Programmatic Name | MMC Default Config Mapping
i_AddItemRedirectOptions | Add item redirect options
i_AddressBookOptions | Address Book Options
f_AltCurrencyConversionRate | Currency: Alternate currency conversion Rate
i_AltCurrencyLocale | Currency: Alternate currency locale
i_AltCurrencyOptions | Currency: Alternate currency options
i_BaseCurrencyLocale | Currency: Base currency locale
i_BillingOptions | Payment options: Billing options
i_BizTalkOptions | BizTalk Options
i_CookiePathCorrectionOptions | Cookie Path Correction Options
i_CurrencyDisplayOrderOptions | Currency: Currency display order options
i_DelegatedAdminOptions | Delegated admin options
i_FormLoginOptions | Form login options
i_FormLoginTimeOut | AuthManager Auth ticket Timeout
i_HostNameCorrectionOptions | Host Name Correction Options
i_PaymentOptions | Payment options
i_SitePrivacyOptions | Site privacy options
i_SiteRegistrationOptions | Site registration options
i_SiteTicketOptions | Site ticket options
s_AltCurrencySymbol | Currency: Alternate currency symbol
s_BaseCurrencySymbol | Currency: Base currency symbol
s_BizTalkCatalogDocType | BizTalk Catalog Doc Type
s_BizTalkConnString | BizTalk connection String
s_BizTalkOrderDocType | BizTalk PO Doc Type
s_BizTalkSourceQualifierID | BizTalk Source Org Qualifier
s_BizTalkSourceQualifierValue | BizTalk Org Qualifier Value
s_BizTalkSubmittypeQueue | BizTalk Submit type
s_PageEncodingCharset | Page encoding charset
s_SMTPServerName | SMTP server name
s_WeightMeasure | Unit of Measure for Weight

The following table lists keys in the Dictionary object returned by this method that are not mapped in the MMC.

Programmatic Name | Value or Description
i_IsFullTextSearchInstalled | Indicates whether SQL Server has full text search enabled
s_BizDataStoreConnectionString | Profile Service: s_BizDataStoreConnectionString
s_CampaignsConnectionString | Campaigns: connstr_db_Campaigns
s_CatalogConnectionString | Product Catalog: connstr_db_Catalog
s_CommerceProviderConnectionString | Profile Service: s_CommerceProviderConnectionString
s_NonSecureHostname | This value is set in the global.asa file to the non-secure host name of the application.
s_ProfileServiceConnectionString | Profile Service: s_ProfileServiceConnectionString
s_SecureHostname | This value is set in the global.asa file to the secure host name of the application.
s_SiteName | Name of the Site
s_TransactionConfigConnectionString | Transaction Config: connstr_db_TransactionConfig
s_TransactionsConnectionString | Transactions: connstr_db_Transactions

Example

[Visual Basic]
' oAppConfig is a Commerce.AppConfig object
' dDictConfig is a Dictionary object
Set dictConfig = oAppConfig.GetOptionsDictionary("")
For Each sKey In dictConfig
    Response.Write sKey & "=" & dictConfig.Value(sKey)
Next

See Also

[C++] AppConfig Object

[Visual Basic] AppConfig Object


IAppCfg::GetRegionCodeFromCountryCodeAndRegionName Method [C++]

AppConfig.GetRegionCodeFromCountryCodeAndRegionName Method [Visual Basic]

Use this method to get a string that contains the state/province code for the specified country/region code and state/province name.

Definition

[C++]
HRESULT IAppCfg::GetRegionCodeFromCountryCodeAndRegionName(
  BSTR bstrCountryCode,
  BSTR bstrRegionName,
  BSTR* pbstrRegionCode
);
[Visual Basic]
Function GetRegionCodeFromCountryCodeAndRegionName(
  bstrCountryCode As String,
  bstrRegionName As String
) As String

Parameters

bstrCountryCode [C++]
[in] A BSTR that contains the code of the country/region for which the state/province code is being requested.
bstrCountryCode [Visual Basic]
A String that contains the code of the country/region for which the state/province code is being requested.
bstrRegionName [C++]
[in] A BSTR that contains the name of the state/province within the specified country/region for which the state/province code is being requested.
bstrRegionName [Visual Basic]
A String that contains the name of the state/province within the specified country/region for which the state/province code is being requested.
pbstrRegionCode [C++]
[out, retval] The address of a BSTR used to return the requested state/province code. An empty BSTR indicates that the code was not found.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the requested state/province code. An empty String indicates that the code was not found.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRegionCode parameter contains valid data only if the method returns successfully.

This method returns an empty string if the state/province code was not found.

Country/region codes, country/region names, state/province codes, and state/province names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppCfg is a Commerce.AppConfig object, sResult is a string
sResult = oAppCfg.GetRegionCodeFromCountryCodeAndRegionName("us", "Utah")

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryCodeFromCountryName

[C++] IAppCfg::GetCountryNamesList

[C++] IappCfg::GetRegionNameFromCountryCodeAndRegionCode

[C++] IAppCfg::GetRegionNamesListFromCountryCode

[C++] Table of Country/Region and State/Province Names and Codes

[C#] AppConfig Object

[Visual Basic] AppConfig.GetCountryCodeFromCountryName

[Visual Basic] AppConfig.GetCountryNamesList

[Visual Basic] AppConfig.GetRegionNameFromCountryCodeAndRegionCode

[Visual Basic] AppConfig.GetRegionNamesListFromCountryCode

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::GetRegionNameFromCountryCodeAndRegionCode Method [C++]

AppConfig.GetRegionNameFromCountryCodeAndRegionCode Method [Visual Basic]

Use this method to get the name of the state/province associated with the specified country/region code and state/province code.

Definition

[C++]
HRESULT IAppCfg::GetRegionNameFromCountryCodeAndRegionCode(
  BSTR bstrCountryCode,
  BSTR bstrRegionCode,
  BSTR* pbstrRegionName
);
[Visual Basic]
Function GetRegionNameFromCountryCodeAndRegionCode(
  bstrCountryCode As String,
  bstrRegionCode As String
) As String

Parameters

bstrCountryCode [C++]
[in] A BSTR that contains the code of the country/region for which the state/province name is being requested.
bstrCountryCode [Visual Basic]
A String that contains the code of the country/region for which the state/province name is being requested.
bstrRegionCode [C++]
[in] A BSTR that contains the code of the state/province within the specified country/region for which the state/province name is being requested.
bstrRegionCode [Visual Basic]
A String that contains the code of the state/province within the specified country/region for which the state/province name is being requested.
pbstrRegionName [C++]
[out, retval] The address of a BSTR used to return the state/province name. If the state/province name is not found, the BSTR will contain the state/province code specified in the bstrRegionCode parameter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the state/province name. If the state/province name is not found, the String will contain the state/province code specified in the bstrRegionCode parameter.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRegionName parameter contains valid data only if the method returns successfully.

If the state/province name is not found, this method returns the state/province code specified in the bstrRegionCode parameter.

Country/region codes, country/region names, state/province codes, and state/province names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppCfg is a Commerce.AppConfig object, sResult is a String
sResult = oAppCfg.GetRegionNameFromCountryCodeAndRegionCode("us", "UT")

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryCodeFromCountryName

[C++] IAppCfg::GetCountryNamesList

[C++] IAppCfg::GetRegionCodeFromCountryCodeAndRegionName

[C++] IAppCfg::GetRegionNamesListFromCountryCode

[C++] Table of Country/Region and State/Province Names and Codes

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.GetCountryCodeFromCountryName

[Visual Basic] AppConfig.GetCountryNamesList

[Visual Basic] AppConfig.GetRegionCodeFromCountryCodeAndRegionName

[Visual Basic] AppConfig.GetRegionNamesListFromCountryCode

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::GetRegionNamesListFromCountryCode Method [C++]

AppConfig.GetRegionNamesListFromCountryCode [Visual Basic]

Use this method to retrieve an alphabetical list of state/province names associated with a specified country/region code.

Definition

[C++]
HRESULT IAppCfg::GetRegionNamesListFromCountryCode(
  BSTR bstrCountryCode,
  ISimpleList** pplistRegionNames
);
[Visual Basic]
Function GetRegionNamesListFromCountryCode(
  bstrCountryCode As String
) As Object

Parameters

bstrCountryCode [C++]
[in] A BSTR that contains the code of the country/region for which a list of state/province names is being requested.
bstrCountryCode [Visual Basic]
A String that contains the code of the country/region for which a list of state/province names is being requested.
pplistRegionNames [C++]
[out, retval] The address of a pointer used to return an ISimpleList interface pointer. Upon successful completion, the list contains an alphabetical list of state/province names associated with the specified country/region code.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a SimpleList object that contains an alphabetical list of state/province names associated with the specified country/region code.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pplistRegionNames parameter contains valid data only if the method returns successfully.

Country/region codes, country/region names, state/province codes, and state/province names may be set in Commerce Server Business Desk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppCfg is a Commerce.AppConfig object
' listRegions is a SimpleList object
Set listRegions = oAppConfig.GetRegionNamesListFromCountryCode("us")
For Each sRegion In listRegions
  Response.Write sRegion
Next
' The above example will provide a list of USA state names

See Also

[C++] AppConfig Object

[C++] IAppCfg::GetCountryCodeFromCountryName

[C++] IAppCfg::GetCountryNamesList

[C++] IAppCfg::GetRegionCodeFromCountryCodeAndRegionName

[C++] Table of Country/Region and State/Province Names and Codes

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.GetCountryCodeFromCountryName

[Visual Basic] AppConfig.GetCountryNamesList

[Visual Basic] AppConfig.GetRegionCodeFromCountryCodeAndRegionName

[Visual Basic] Table of Country/Region and State/Province Names and Codes


IAppCfg::Initialize Method [C++]

AppConfig.Initialize Method [Visual Basic]

Use this method to initialize an AppConfig object.

Definition

[C++]
HRESULT IAppCfg::Initialize(
  BSTR bstrSiteName
);
[Visual Basic]
Sub Initialize(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the name of the site with which this AppConfig object should be associated. This name is not case-sensitive.
bstrSiteName [Visual Basic]
A String that contains the name of the site with which this AppConfig object should be associated. This name is not case-sensitive.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The AppConfig object must be initialized before any other method on this object can be used. The initialization usually happens only once in Global.asa immediately after the object is created.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppCfg is a Commerce.AppConfig object
oAppCfg.Initialize("Retail")

See Also

[C++] AppConfig Object

[C++] IAppCfg::RefreshCache

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.RefreshCache


IAppCfg::RefreshCache Method [C++]

AppConfig.RefreshCache Method [Visual Basic]

Use this method to refresh the cache associated with the AppConfig object.

Definition

[C++]
HRESULT IAppCfg::RefreshCache(
);
[Visual Basic]
Sub RefreshCache()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Users can add and change country/region and state/province codes and other values from within Commerce Server Business Desk; the RefreshCache method allows you to programmatically incorporate those changes at any time.

See Also

[C++] AppConfig Object

[C++] IAppCfg::Initialize

[Visual Basic] AppConfig Object

[Visual Basic] AppConfig.Initialize


Table of Country/Region and State/Province Names and Codes [C++]

Table of Country/Region and State/Province Names and Codes [Visual Basic]

Country/region codes may or may not be the same as ISO Country/region codes, depending on what values have been added in the Business Desk. The following table contains country/region names with their corresponding codes.

Official Short Form | Official Long Form | ISO Code | ISO Short | ISO Long | UN Code | Capital/Major City
Afghanistan | Islamic State of Afghanistan | 4 | AF | AFG | 4 | K�bul
Albania | Republic of Albania | 8 | AL | ALB | 8 | Tirana
Algeria | Democratic and Popular Republic of Algeria | 12 | DZ | DZA | 12 | Algiers
American Samoa | Territory of American Samoa | 16 | AS | ASM | 16 |
Andorra | Principality of Andorra | 20 | AD | AND | 20 | Andorra la Vella
Angola | Republic of Angola | 24 | AO | AGO | 24 | Luanda
Anguilla |  | 660 | AI | AIA | 660 |
Antarctica |  | 10 | AQ | ATA | 10 |
Antigua and Barbuda | Antigua and Barbuda | 28 | AG | ATG | 28 | St. John's
Argentina | Argentine Republic | 32 | AR | ARG | 32 | Buenos Aires
Armenia | Republic of Armenia | 51 | AM | ARM | 51 | Yerevan
Aruba |  | 533 | AW | ABW | 533 |
Australia | Commonwealth of Australia | 36 | AU | AUS | 36 | Canberra
Austria | Republic of Austria | 40 | AT | AUT | 40 | Vienna
Azerbaijan | Azerbaijani Republic | 31 | AZ | AZE | 31 | Baku
Bahamas, The | The Commonwealth of The Bahamas | 44 | BS | BHS | 44 | Nassau
Bahrain | State of Bahrain | 48 | BH | BHR | 48 | Manama
Bangladesh | People's Republic of Bangladesh | 50 | BD | BGD | 50 | Dhaka
Barbados |  | 52 | BB | BRB | 52 | Bridgetown
Belarus | Republic of Belarus | 112 | BY | BLR | 112 | Minsk
Belgium | Kingdom of Belgium | 56 | BE | BEL | 56 | Brussels
Belize |  | 84 | BZ | BLZ | 84 | Belmopan
Benin | Republic of Benin | 204 | BJ | BEN | 204 | Porto-Novo
Bermuda |  | 60 | BM | BMU | 60 |
Bhutan | Kingdom of Bhutan | 64 | BT | BTN | 64 | Thimphu
Bolivia | Republic of Bolivia | 68 | BO | BOL | 68 | Sucre
Bosnia and Herzegovina | Republic of Bosnia and Herzegovina | 70 | BA | BIH | 70 | Sarajevo
Botswana | Republic of Botswana | 72 | BW | BWA | 72 | Gaborone
Bouvet Island |  | 74 | BV | BVT | - |
Brazil | Federative Republic of Brazil | 76 | BR | BRA | 76 | Bras�lia
British Indian Ocean Territory | British Indian Ocean Territory | 86 | IO | IOT | - |
Brunei | Negara Brunei Darussalam | 96 | BN | BRN | 96 | Bandar seri Begawan
Bulgaria | Republic of Bulgaria | 100 | BG | BGR | 100 | Sofia
Burkina Faso |  | 854 | BF | BFA | 854 | Ouagadougou
Burundi | Republic of Burundi | 108 | BI | BDI | 108 | Bujumbura
C�te d'Ivoire | Republic of C�te d'Ivoire | 384 | CI | CIV | 384 | Yamoussoukro
Cambodia | Kingdom of Cambodia | 116 | KH | KHM | 116 | Phnom Penh
Cameroon | Republic of Cameroon | 120 | CM | CMR | 120 | Yaound�
Canada |  | 124 | CA | CAN | 124 | Ottawa
Cape Verde | Republic of Cape Verde | 132 | CV | CPV | 132 | Praia
Cayman Islands |  | 136 | KY | CYM | 136 |
Central African Republic | Central African Republic | 140 | CF | CAF | 140 | Bangui
Chad | Republic of Chad | 148 | TD | TCD | 148 | N'Djamena
Channel Islands |  | - | GB-CHA | - | 830 |
Chile | Republic of Chile | 152 | CL | CHL | 152 | Santiago
China | People's Republic of China | 156 | CN | CHN | 156 | Beijing
Christmas Island | Territory of Christmas Island | 162 | CX | CXR | - |
Cocos (Keeling) Islands | Territory of Cocos (Keeling) Islands | 166 | CC | CCK | - |
Colombia | Republic of Colombia | 170 | CO | COL | 170 | Santa Fe de Bogot�
Comoros | Federal Islamic Republic of the Comoros | 174 | KM | COM | 174 | Moroni
Congo | Republic of the Congo | 178 | CG | COG | 178 | Brazzaville
Congo (DRC) | Democratic Republic of the Congo | 180 | CD | COD | 180 | Kinshasa
Cook Islands |  | 184 | CK | COK | 184 |
Coral Sea Islands | Coral Sea Islands Territory | - | AU | - | - |
Costa Rica | Republic of Costa Rica | 188 | CR | CRI | 188 | San Jos�
Croatia | Republic of Croatia | 191 | HR | HRV | 191 | Zagreb
Cuba | Republic of Cuba | 192 | CU | CUB | 192 | Havana
Cyprus | Republic of Cyprus | 196 | CY | CYP | 196 | Nicosia
Czech Republic | Czech Republic | 203 | CZ | CZE | 203 | Prague
Denmark | Kingdom of Denmark | 208 | DK | DNK | 208 | Copenhagen
Djibouti | Republic of Djibouti | 262 | DJ | DJI | 262 | Djibouti
Dominica | Commonwealth of Dominica | 212 | DM | DMA | 212 | Roseau
Dominican Republic | Dominican Republic | 214 | DO | DOM | 214 | Santo Domingo
East Timor |  | 626 | TP | TMP | 626 | Dili
Ecuador | Republic of Ecuador | 218 | EC | ECU | 218 | Quito
Egypt | Arab Republic of Egypt | 818 | EG | EGY | 818 | Cairo
El Salvador | Republic of El Salvador | 222 | SV | SLV | 222 | San Salvador
Equatorial Guinea | Republic of Equatorial Guinea | 226 | GQ | GNQ | 226 | Malabo
Eritrea | State of Eritrea | 232 | ER | ERI | 232 | Asmara
Estonia | Republic of Estonia | 233 | EE | EST | 233 | Tallinn
Ethiopia | Federal Democratic Republic of Ethiopia | 231 | ET | ETH | 231 | Addis Ababa
Falkland Islands (Islas Malvinas) | Colony of the Falkland Islands (Islas Malvinas) | 238 | FK | FLK | 238 |
Faroe Islands |  | 234 | FO | FRO | 234 |
Fiji Islands | Republic of the Fiji Islands | 242 | FJ | FJI | 242 | Suva
Finland | Republic of Finland | 246 | FI | FIN | 246 | Helsinki
France | French Republic | 250 | FR | FRA | 250 | Paris
France, Metropolitan |  | 249 | FX | FXX | - |
French Guiana | Department of Guiana | 254 | GF | GUF | 254 |
French Polynesia | Territory of French Polynesia | 258 | PF | PYF | 258 |
French Southern and Antarctic Lands | Territory of the French Southern and Antarctic Lands | 260 | TF | ATF | - |
Gabon | Gabonese Republic | 266 | GA | GAB | 266 | Libreville
Gambia, The | Republic of The Gambia | 270 | GM | GMB | 270 | Banjul
Georgia | Republic of Georgia | 268 | GE | GEO | 268 | T'bilisi
Germany | Federal Republic of Germany | 276 | DE | DEU | 276 | Berlin
Ghana | Republic of Ghana | 288 | GH | GHA | 288 | Accra
Gibraltar |  | 292 | GI | GIB | 292 |
Greece | Hellenic Republic | 300 | GR | GRC | 300 | Athens
Greenland |  | 304 | GL | GRL | 304 |
Grenada |  | 308 | GD | GRD | 308 | St. George's
Guadeloupe | Department of Guadeloupe | 312 | GP | GLP | 312 |
Guam | Territory of Guam | 316 | GU | GUM | 316 |
Guatemala | Republic of Guatemala | 320 | GT | GTM | 320 | Guatemala
Guernsey | Balliwick of Guernsey | - | GB-GSY | - | - |
Guinea | Republic of Guinea | 324 | GN | GIN | 324 | Conakry
Guinea-Bissau | Republic of Guinea-Bissau | 624 | GW | GNB | 624 | Bissau
Guyana | Cooperative Republic of Guyana | 328 | GY | GUY | 328 | Georgetown
Haiti | Republic of Haiti | 332 | HT | HTI | 332 | Port-au-Prince
Heard Island and McDonald Islands | Territory of Heard Island and McDonald Islands | 334 | HM | HMD | - |
Honduras | Republic of Honduras | 340 | HN | HND | 340 | Tegucigalpa
Hong Kong SAR | Hong Kong Special Administrative Region | 344 | HK | HKG | 344 |
Hungary | Republic of Hungary | 348 | HU | HUN | 348 | Budapest
Iceland | Republic of Iceland | 352 | IS | ISL | 352 | Reykjav�k
India | Republic of India | 356 | IN | IND | 356 | New Delhi
Indonesia | Republic of Indonesia | 360 | ID | IDN | 360 | Jakarta
Iran | Islamic Republic of Iran | 364 | IR | IRN | 364 | Tehran
Iraq | Republic of Iraq | 368 | IQ | IRQ | 368 | Baghdad
Ireland | Republic of Ireland | 372 | IE | IRL | 372 | Dublin
Israel | State of Israel | 376 | IL | ISR | 376 | Jerusalem
Italy | Italian Republic | 380 | IT | ITA | 380 | Rome
Jamaica |  | 388 | JM | JAM | 388 | Kingston
Japan |  | 392 | JP | JPN | 392 | Tokyo
Jersey | Balliwick of Jersey | - | GB-JSY | - | - |
Jordan | Hashemite Kingdom of Jordan | 400 | JO | JOR | 400 | Amman
Kazakhstan | Republic of Kazakhstan | 398 | KZ | KAZ | 398 | Astana
Kenya | Republic of Kenya | 404 | KE | KEN | 404 | Nairobi
Kiribati | Republic of Kiribati | 296 | KI | KIR | 296 | Bairiki
Korea | Republic of Korea | 410 | KR | KOR | 410 | Seoul
Kuwait | State of Kuwait | 414 | KW | KWT | 414 | Kuwait
Kyrgyzstan | Kyrgyz Republic | 417 | KG | KGZ | 417 | Bishkek
Laos | Lao People's Democratic Republic | 418 | LA | LAO | 418 | Vientiane
Latvia | Republic of Latvia | 428 | LV | LVA | 428 | Riga
Lebanon | Republic of Lebanon | 422 | LB | LBN | 422 | Beirut
Lesotho | Kingdom of Lesotho | 426 | LS | LSO | 426 | Maseru
Liberia | Republic of Liberia | 430 | LR | LBR | 430 | Monrovia
Libya | Socialist People's Libyan Arab Jamahiriya | 434 | LY | LBY | 434 | Tripoli
Liechtenstein | Principality of Liechtenstein | 438 | LI | LIE | 438 | Vaduz
Lithuania | Republic of Lithuania | 440 | LT | LTU | 440 | Vilnius
Luxembourg | Grand Duchy of Luxembourg | 442 | LU | LUX | 442 | Luxembourg
Macau SAR | Macau Special Administrative Region | 446 | MO | MAC | 446 |
Macedonia, Former Yugoslav Republic of | The Former Yugoslav Republic of Macedonia | 807 | MK | MKD | 807 | Skopje
Madagascar | Republic of Madagascar | 450 | MG | MDG | 450 | Antananarivo
Malawi | Republic of Malawi | 454 | MW | MWI | 454 | Lilongwe
Malaysia | Federation of Malaysia | 458 | MY | MYS | 458 | Kuala Lumpur
Maldives | Republic of Maldives | 462 | MV | MDV | 462 | Mal�
Mali | Republic of Mali | 466 | ML | MLI | 466 | Bamako
Malta | Republic of Malta | 470 | MT | MLT | 470 | Valletta
Man, Isle of |  | - | GB-IOM | - | 833 |
Marshall Islands | Republic of the Marshall Islands | 584 | MH | MHL | 584 | Majuro
Martinique | Department of Martinique | 474 | MQ | MTQ | 474 |
Mauritania | Islamic Republic of Mauritania | 478 | MR | MRT | 478 | Nouakchott
Mauritius | Republic of Mauritius | 480 | MU | MUS | 480 | Port Louis
Mayotte | Territorial Collectivity of Mayotte | 175 | YT | MYT | - |
Mexico | United Mexican States | 484 | MX | MEX | 484 | Mexico City
Micronesia | Federated States of Micronesia | 583 | FM | FSM | 583 | Palikir
Moldova | Republic of Moldova | 498 | MD | MDA | 498 | Chi�in�u
Monaco | Principality of Monaco | 492 | MC | MCO | 492 | Monaco
Mongolia |  | 496 | MN | MNG | 496 | Ulaanbaatar
Montserrat |  | 500 | MS | MSR | 500 |
Morocco | Kingdom of Morocco | 504 | MA | MAR | 504 | Rabat
Mozambique | Republic of Mozambique | 508 | MZ | MOZ | 508 | Maputo
Myanmar | Union of Myanmar | 104 | MM | MMR | 104 | Yangon (Rangoon)
Namibia | Republic of Namibia | 516 | NA | NAM | 516 | Windhoek
Nauru | Republic of Nauru | 520 | NR | NRU | 520 | Yaren
Nepal | Kingdom of Nepal | 524 | NP | NPL | 524 | Kathmandu
Netherlands Antilles |  | 530 | AN | ANT | 530 |
Netherlands, The | Kingdom of the Netherlands | 528 | NL | NLD | 528 | Amsterdam
New Caledonia | Territory of New Caledonia and Dependencies | 540 | NC | NCL | 540 |
New Zealand |  | 554 | NZ | NZL | 554 | Wellington
Nicaragua | Republic of Nicaragua | 558 | NI | NIC | 558 | Managua
Niger | Republic of Niger | 562 | NE | NER | 562 | Niamey
Nigeria | Federal Republic of Nigeria | 566 | NG | NGA | 566 | Abuja
Niue |  | 570 | NU | NIU | 570 |
Norfolk Island | Territory of Norfolk Island | 574 | NF | NFK | 574 |
North Korea | Democratic People's Republic of Korea | 408 | KP | PRK | 408 | Pyongyang
Northern Mariana Islands | Commonwealth of the Northern Mariana Islands | 580 | MP | MNP | 580 |
Norway | Kingdom of Norway | 578 | NO | NOR | 578 | Oslo
Oman | Sultanate of Oman | 512 | OM | OMN | 512 | Masqa�
Pakistan | Islamic Republic of Pakistan | 586 | PK | PAK | 586 | Isl�m�b�d
Palau | Republic of Palau | 585 | PW | PLW | 585 | Koror
Panama | Republic of Panama | 591 | PA | PAN | 591 | Panama City
Papua New Guinea | Independent State of Papua New Guinea | 598 | PG | PNG | 598 | Port Moresby
Paraguay | Republic of Paraguay | 600 | PY | PRY | 600 | Asunci�n
Peru | Republic of Peru | 604 | PE | PER | 604 | Lima
Philippines | Republic of the Philippines | 608 | PH | PHL | 608 | Manila
Pitcairn Islands | Pitcairn, Henderson, Ducie, and Oeno Islands | 612 | PN | PCN | 612 |
Poland | Republic of Poland | 616 | PL | POL | 616 | Warsaw
Portugal | Portuguese Republic | 620 | PT | PRT | 620 | Lisbon
Puerto Rico | Commonwealth of Puerto Rico | 630 | PR | PRI | 630 |
Qatar | State of Qatar | 634 | QA | QAT | 634 | Doha
Reunion | Department of Reunion | 638 | RE | REU | 638 |
Romania |  | 642 | RO | ROM | 642 | Bucharest
Russia | Russian Federation | 643 | RU | RUS | 643 | Moscow
Rwanda | Rwandese Republic | 646 | RW | RWA | 646 | Kigali
S�o Tom� and Pr�ncipe | Democratic Republic of S�o Tom� and Pr�ncipe | 678 | ST | STP | 678 | S�o Tom�
Samoa | Independent State of Samoa | 882 | WS | WSM | 882 | Apia
San Marino | Republic of San Marino | 674 | SM | SMR | 674 | San Marino
Saudi Arabia | Kingdom of Saudi Arabia | 682 | SA | SAU | 682 | Riyadh
Senegal | Republic of Senegal | 686 | SN | SEN | 686 | Dakar
Seychelles | Republic of Seychelles | 690 | SC | SYC | 690 | Victoria
Sierra Leone | Republic of Sierra Leone | 694 | SL | SLE | 694 | Freetown
Singapore | Republic of Singapore | 702 | SG | SGP | 702 | Singapore
Slovakia | Slovak Republic | 703 | SK | SVK | 703 | Bratislava
Slovenia | Republic of Slovenia | 705 | SI | SVN | 705 | Ljubljana
Solomon Islands |  | 90 | SB | SLB | 90 | Honiara
Somalia | Somali Democratic Republic | 706 | SO | SOM | 706 | Mogadishu
South Africa | Republic of South Africa | 710 | ZA | ZAF | 710 | Pretoria
South Georgia and the South Sandwich Islands | South Georgia and the South Sandwich Islands | 239 | GS | SGS | - |
Spain | Kingdom of Spain | 724 | ES | ESP | 724 | Madrid
Sri Lanka | Democratic Socialist Republic of Sri Lanka | 144 | LK | LKA | 144 | Sri Jayawardenepura
St. Helena | Saint Helena | 654 | SH | SHN | 654 |
St. Kitts and Nevis | Federation of Saint Kitts and Nevis | 659 | KN | KNA | 659 | Basseterre
St. Lucia | Saint Lucia | 662 | LC | LCA | 662 | Castries
St. Pierre and Miquelon | Territorial Collectivity of Saint Pierre and Miquelon | 666 | PM | SPM | 666 |
St. Vincent and the Grenadines | Saint Vincent and the Grenadines | 670 | VC | VCT | 670 | Kingstown
Sudan | Republic of the Sudan | 736 | SD | SDN | 736 | Khartoum
Suriname | Republic of Suriname | 740 | SR | SUR | 740 | Paramaribo
Svalbard and Jan Mayen |  | 744 | SJ | SJM | 744 |
Swaziland | Kingdom of Swaziland | 748 | SZ | SWZ | 748 | Mbabane
Sweden | Kingdom of Sweden | 752 | SE | SWE | 752 | Stockholm
Switzerland | Swiss Confederation | 756 | CH | CHE | 756 | Bern
Syria | Syrian Arab Republic | 760 | SY | SYR | 760 | Damascus
Taiwan | Taiwan | 158 | TW | TWN | 158 | Taipei
Tajikistan | Republic of Tajikistan | 762 | TJ | TJK | 762 | Dushanbe
Tanzania | United Republic of Tanzania | 834 | TZ | TZA | 834 | Dar es Salaam
Thailand | Kingdom of Thailand | 764 | TH | THA | 764 | Bangkok
Togo | Togolese Republic | 768 | TG | TGO | 768 | Lom�
Tokelau |  | 772 | TK | TKL | 772 |
Tonga | Kingdom of Tonga | 776 | TO | TON | 776 | Nuku'alofa
Trinidad and Tobago | Republic of Trinidad and Tobago | 780 | TT | TTO | 780 | Port-of-Spain
Tunisia | Republic of Tunisia | 788 | TN | TUN | 788 | Tunis
Turkey | Republic of Turkey | 792 | TR | TUR | 792 | Ankara
Turkmenistan | Republic of Turkmenistan | 795 | TM | TKM | 795 | Ashgabat
Turks and Caicos Islands |  | 796 | TC | TCA | 796 |
Tuvalu |  | 798 | TV | TUV | 798 | Funafuti
U.S. Minor Outlying Islands | United States Minor Outlying Islands | 581 | UM | UMI | 581 |
Uganda | Republic of Uganda | 800 | UG | UGA | 800 | Kampala
Ukraine |  | 804 | UA | UKR | 804 | Kyiv
United Arab Emirates |  | 784 | AE | ARE | 784 | Abu Dhabi
United Kingdom | United Kingdom of Great Britain and Northern Ireland | 826 | GB | GBR | 826 | London
United States | United States of America | 840 | US | USA | 840 | Washington, D.C.
Uruguay | Oriental Republic of Uruguay | 858 | UY | URY | 858 | Montevideo
Uzbekistan | Republic of Uzbekistan | 860 | UZ | UZB | 860 | Toshkent
Vanuatu | Republic of Vanuatu | 548 | VU | VUT | 548 | Port-Vila
Vatican City | State of Vatican City | 336 | VA | VAT | 336 | Vatican City
Venezuela | Bolivarian Republic of Venezuela | 862 | VE | VEN | 862 | Caracas
Viet Nam | Socialist Republic of Vietnam | 704 | VN | VNM | 704 | Hanoi
Virgin Islands | Virgin Islands of the United States | 850 | VI | VIR | 850 |
Virgin Islands, British |  | 92 | VG | VGB | 92 |
Wallis and Futuna | Territory of the Wallis and Futuna Islands | 876 | WF | WLF | 876 |
Yemen | Republic of Yemen | 887 | YE | YEM | 887 | Sana'a
Yugoslavia | Federal Republic of Yugoslavia | 891 | YU | YUG | 891 | Belgrade
Zambia | Republic of Zambia | 894 | ZM | ZMB | 894 | Lusaka
Zimbabwe | Republic of Zimbabwe | 716 | ZW | ZWE | 716 | Harare


Table of Language Culture Names, Codes, and ISO Values Method [C++]

Table of Language Culture Names, Codes, and ISO Values [Visual Basic]

The following table contains values for Language Culture Names, Display Names, Culture Codes, and ISO 639x Values that are used by Commerce Server.

Language Culture Name | Display Name | Culture Code | ISO 639x Value
af-ZA | Afrikaans - South Africa | 0x0436 | AFK
sq-AL | Albanian - Albania | 0x041C | SQI
ar-DZ | Arabic - Algeria | 0x1401 | ARG
ar-BH | Arabic - Bahrain | 0x3C01 | ARH
ar-EG | Arabic - Egypt | 0x0C01 | ARE
ar-IQ | Arabic - Iraq | 0x0801 | ARI
ar-JO | Arabic - Jordan | 0x2C01 | ARJ
ar-KW | Arabic - Kuwait | 0x3401 | ARK
ar-LB | Arabic - Lebanon | 0x3001 | ARB
ar-LY | Arabic - Libya | 0x1001 | ARL
ar-MA | Arabic - Morocco | 0x1801 | ARM
ar-OM | Arabic - Oman | 0x2001 | ARO
ar-QA | Arabic - Qatar | 0x4001 | ARQ
ar-SA | Arabic - Saudi Arabia | 0x0401 | ARA
ar-SY | Arabic - Syria | 0x2801 | ARS
ar-TN | Arabic - Tunisia | 0x1C01 | ART
ar-AE | Arabic - United Arab Emirates | 0x3801 | ARU
ar-YE | Arabic - Yemen | 0x2401 | ARY
hy-AM | Armenian - Armenia | 0x042B |
Cy-az-AZ | Azeri (Cyrillic) - Azerbaijan | 0x082C |
Lt-az-AZ | Azeri (Latin) - Azerbaijan | 0x042C |
eu-ES | Basque - Basque | 0x042D | EUQ
be-BY | Belarusian - Belarus | 0x0423 | BEL
bg-BG | Bulgarian - Bulgaria | 0x0402 | BGR
ca-ES | Catalan - Catalan | 0x0403 | CAT
zh-CN | Chinese - China | 0x0804 | CHS
zh-HK | Chinese - Hong Kong SAR | 0x0C04 | ZHH
zh-MO | Chinese - Macau SAR | 0x1404 |
zh-SG | Chinese - Singapore | 0x1004 | ZHI
zh-TW | Chinese - Taiwan | 0x0404 | CHT
zh-CHS | Chinese (Simplified) | 0x0004 |
zh-CHT | Chinese (Traditional) | 0x7C04 |
hr-HR | Croatian - Croatia | 0x041A | HRV
cs-CZ | Czech - Czech Republic | 0x0405 | CSY
da-DK | Danish - Denmark | 0x0406 | DAN
div-MV | Dhivehi - Maldives | 0x0465 |
nl-BE | Dutch - Belgium | 0x0813 | NLB
nl-NL | Dutch - The Netherlands | 0x0413 |
en-AU | English - Australia | 0x0C09 | ENA
en-BZ | English - Belize | 0x2809 | ENL
en-CA | English - Canada | 0x1009 | ENC
en-CB | English - Caribbean | 0x2409 |
en-IE | English - Ireland | 0x1809 | ENI
en-JM | English - Jamaica | 0x2009 | ENJ
en-NZ | English - New Zealand | 0x1409 | ENZ
en-PH | English - Philippines | 0x3409 |
en-ZA | English - South Africa | 0x1C09 | ENS
en-TT | English - Trinidad and Tobago | 0x2C09 | ENT
en-GB | English - United Kingdom | 0x0809 | ENG
en-US | English - United States | 0x0409 | ENU
en-ZW | English - Zimbabwe | 0x3009 |
et-EE | Estonian - Estonia | 0x0425 | ETI
fo-FO | Faroese - Faroe Islands | 0x0438 | FOS
fa-IR | Farsi - Iran | 0x0429 | FAR
fi-FI | Finnish - Finland | 0x040B | FIN
fr-BE | French - Belgium | 0x080C | FRB
fr-CA | French - Canada | 0x0C0C | FRC
fr-FR | French - France | 0x040C |
fr-LU | French - Luxembourg | 0x140C | FRL
fr-MC | French - Monaco | 0x180C |
fr-CH | French - Switzerland | 0x100C | FRS
gl-ES | Galician - Galician | 0x0456 |
ka-GE | Georgian - Georgia | 0x0437 |
de-AT | German - Austria | 0x0C07 | DEA
de-DE | German - Germany | 0x0407 |
de-LI | German - Liechtenstein | 0x1407 | DEC
de-LU | German - Luxembourg | 0x1007 | DEL
de-CH | German - Switzerland | 0x0807 | DES
el-GR | Greek - Greece | 0x0408 | ELL
gu-IN | Gujarati - India | 0x0447 |
he-IL | Hebrew - Israel | 0x040D | HEB
hi-IN | Hindi - India | 0x0439 | HIN
hu-HU | Hungarian - Hungary | 0x040E | HUN
is-IS | Icelandic - Iceland | 0x040F | ISL
id-ID | Indonesian - Indonesia | 0x0421 |
it-IT | Italian - Italy | 0x0410 |
it-CH | Italian - Switzerland | 0x0810 | ITS
ja-JP | Japanese - Japan | 0x0411 | JPN
kn-IN | Kannada - India | 0x044B |
kk-KZ | Kazakh - Kazakhstan | 0x043F |
kok-IN | Konkani - India | 0x0457 |
ko-KR | Korean - Korea | 0x0412 | KOR
ky-KZ | Kyrgyz - Kazakhstan | 0x0440 |
lv-LV | Latvian - Latvia | 0x0426 | LVI
lt-LT | Lithuanian - Lithuania | 0x0427 | LTH
mk-MK | Macedonian - FYROM | 0x042F | MKD
ms-BN | Malay - Brunei | 0x083E |
ms-MY | Malay - Malaysia | 0x043E |
mr-IN | Marathi - India | 0x044E |
mn-MN | Mongolian - Mongolia | 0x0450 |
nb-NO | Norwegian (Bokm虱) - Norway | 0x0414 |
nn-NO | Norwegian (Nynorsk) - Norway | 0x0814 |
pl-PL | Polish - Poland | 0x0415 | PLK
pt-BR | Portuguese - Brazil | 0x0416 | PTB
pt-PT | Portuguese - Portugal | 0x0816 |
pa-IN | Punjabi - India | 0x0446 |
ro-RO | Romanian - Romania | 0x0418 | ROM
ru-RU | Russian - Russia | 0x0419 | RUS
sa-IN | Sanskrit - India | 0x044F |
Cy-sr-SP | Serbian (Cyrillic) - Serbia | 0x0C1A |
Lt-sr-SP | Serbian (Latin) - Serbia | 0x081A |
sk-SK | Slovak - Slovakia | 0x041B | SKY
sl-SI | Slovenian - Slovenia | 0x0424 | SLV
es-AR | Spanish - Argentina | 0x2C0A | ESS
es-BO | Spanish - Bolivia | 0x400A | ESB
es-CL | Spanish - Chile | 0x340A | ESL
es-CO | Spanish - Colombia | 0x240A | ESO
es-CR | Spanish - Costa Rica | 0x140A | ESC
es-DO | Spanish - Dominican Republic | 0x1C0A | ESD
es-EC | Spanish - Ecuador | 0x300A | ESF
es-SV | Spanish - El Salvador | 0x440A | ESE
es-GT | Spanish - Guatemala | 0x100A | ESG
es-HN | Spanish - Honduras | 0x480A | ESH
es-MX | Spanish - Mexico | 0x080A | ESM
es-NI | Spanish - Nicaragua | 0x4C0A | ESI
es-PA | Spanish - Panama | 0x180A | ESA
es-PY | Spanish - Paraguay | 0x3C0A | ESZ
es-PE | Spanish - Peru | 0x280A | ESR
es-PR | Spanish - Puerto Rico | 0x500A | ES
es-ES | Spanish - Spain | 0x0C0A |
es-UY | Spanish - Uruguay | 0x380A | ESY
es-VE | Spanish - Venezuela | 0x200A | ESV
sw-KE | Swahili - Kenya | 0x0441 |
sv-FI | Swedish - Finland | 0x081D | SVF
sv-SE | Swedish - Sweden | 0x041D |
syr-SY | Syriac - Syria | 0x045A |
ta-IN | Tamil - India | 0x0449 |
tt-RU | Tatar - Russia | 0x0444 |
te-IN | Telugu - India | 0x044A |
th-TH | Thai - Thailand | 0x041E | THA
tr-TR | Turkish - Turkey | 0x041F | TRK
uk-UA | Ukrainian - Ukraine | 0x0422 | UKR
ur-PK | Urdu - Pakistan | 0x0420 | URD
Cy-uz-UZ | Uzbek (Cyrillic) - Uzbekistan | 0x0843 |
Lt-uz-UZ | Uzbek (Latin) - Uzbekistan | 0x0443 |
vi-VN | Vietnamese - Vietnam | 0x042A | VIT


GlobalConfig Object [C++]

GlobalConfig Object [Visual Basic]

Use this object to accomplish the following:

  • Create or delete resource configuration information
  • Save any updated global configuration information to the Administration database
  • Add a site
Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.
ProgID: | Commerce.GlobalConfig (Externally creatable)
COM Class Name: | GlobalConfig
Type Library Name: | Microsoft Commerce 2002 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _GlobalConfig
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the _GlobalConfig interface to access the properties and methods of the GlobalConfig object.

Methods

[C++]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.
[Visual Basic]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

[Visual Basic]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

See Also

Integrating Custom Resources

Configuration Objects

[C++] SiteConfig Object

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfig Object

[Visual Basic] SiteConfigReadOnly Object


_GlobalConfig Methods [C++]

GlobalConfig Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.
[Visual Basic]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.


_GlobalConfig::CreateServiceConfig Method [C++]

GlobalConfig.CreateServiceConfig Method [Visual Basic]

Use this method to create an instance of the class specified by the bstrConfigSchemaClass parameter, set the Name property of the instance to the name specified in the bstrServiceName parameter, and load the instance into the site recordset. This method calls the SaveConfig method.

Definition

[C++]
HRESULT _GlobalConfig::CreateServiceConfig(
  BSTR bstrServiceName,
  BSTR bstrConfigSchemaClass
);
[Visual Basic]
Sub CreateServiceConfig(
  bstrServiceName As String,
  bstrConfigSchemaClass As String
)

Parameters

bstrServiceName [C++]
[in] A BSTR that contains the new name for the resource configuration object instance.
bstrServiceName [Visual Basic]
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass [C++]
[in] A BSTR that contains the resource configuration schema class name.
bstrConfigSchemaClass [Visual Basic]
A String that contains the resource configuration schema class name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The following table contains a list of schema classes for this method.

Administration Database Class Name | Resource Name
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_Datawarehouse_Group | Global Data Warehouse
MSCS_BizDataStore | Profiles

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyPredictor is a String denoting the new resource name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.CreateServiceConfig(sMyPredictor, MSCS_Predictor)

See Also

[C++] GlobalConfig Object

[C++] _GlobalConfig::DeleteServiceConfig

[Visual Basic] GlobalConfig Object

[Visual Basic] GlobalConfig.DeleteServiceConfig


_GlobalConfig::CreateSiteConfig Method [C++]

GlobalConfig.CreateSiteConfig Method [Visual Basic]

Use this method to create a site using the name specified in the bstrSiteName parameter. This method calls the SaveConfig method. This method is used primarily from Commerce Server Manager or by Commerce Server Site Packager.

Definition

[C++]
HRESULT _GlobalConfig::CreateSiteConfig(
  BSTR bstrSiteName,
  IMSCSSiteConfigAdmin** ppsca
);
[Visual Basic]
Function CreateSiteConfig(
  bstrSiteName As String
) As Object

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the new site name.
bstrSiteName [Visual Basic]
A String that contains the new site name.
ppsca [C++]
[out] The address of a pointer to the SiteConfig object used to return the site configuration settings.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a SiteConfig object that contains the site configuration settings.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The ppsca parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyNewSite is a string; oGlobalConfig is a Commerce GlobalConfig object
' oMSCSSiteConfig is a Commerce.SiteConfig object
oMSCSSiteConfig = oGlobalConfig.CreateSiteConfig(sMyNewSite)

See Also

[C++] GlobalConfig Object

[C++] _GlobalConfig::DeleteSiteConfig

[Visual Basic] GlobalConfig Object

[Visual Basic] _GlobalConfig::DeleteSiteConfig


_GlobalConfig::DeleteServiceConfig Method [C++]

GlobalConfig.DeleteServiceConfig Method [Visual Basic]

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

[C++]
HRESULT _GlobalConfig::DeleteServiceConfig(
  BSTR bstrServiceName
);
[Visual Basic]
Sub DeleteServiceConfig(
  bstrServiceName As String
)

Parameters

bstrServiceName [C++]
[in] A BSTR that contains the name of the resource configuration object to be deleted.
bstrServiceName [Visual Basic]
A String that contains the name of the resource configuration object to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyPredictor is the name of an existing resource
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteServiceConfig (sMyPredictor)

See Also

[C++] GlobalConfig Object

[C++] _GlobalConfig::CreateServiceConfig

[Visual Basic] GlobalConfig Object

[Visual Basic] GlobalConfig.CreateServiceConfig


_GlobalConfig::DeleteSiteConfig Method [C++]

GlobalConfig.DeleteSiteConfig Method [Visual Basic]

Use this method to delete a site configuration object instance for the current site from the Administration database. This method is primarily used by Commerce Server Manager or by Commerce Server Site Packager.

Definition

[C++]
HRESULT _GlobalConfig::DeleteSiteConfig(
  BSTR bstrSiteName
);
[Visual Basic]
Sub DeleteSiteConfig(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the site name.
bstrSiteName [Visual Basic]
A String that contains the site name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySiteName is an existing site name
' oGlobalConfig is a Commerce GlobalConfig object
oGlobalConfig.DeleteSiteConfig(sMySiteName)

See Also

[C++] GlobalConfig Object

[C++] _GlobalConfig::CreateSiteConfig

[Visual Basic] GlobalConfig Object

[Visual Basic] GlobalConfig.CreateSiteConfig


_GlobalConfig::GetIfCollection Method [C++]

GlobalConfig.GetIfCollection Method [Visual Basic]

Use this method to convert values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array. If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a Variant Array, then a Variant Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

Definition

[C++]
HRESULT _GlobalConfig::GetIfCollection(
  VARIANT* strList,
  VARIANT* retVal
);
[Visual Basic]
Function GetIfCollection(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A pointer to the VARIANT that contains the encoded string to be converted.
strList [Visual Basic]
A Variant that contains the encoded string to be converted.
retVal [C++]
[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vVariant is a Variant; vEncodedString is a Variant
' oGlobalConfig is a Commerce GlobalConfig object
vVariant = oGlobalConfig.GetIfCollection(vEncodedString)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::GetResourcePropAttrib Method [C++]

GlobalConfig.GetResourcePropAttrib Method [Visual Basic]

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[C++]
HRESULT _GlobalConfig::GetResourcePropAttrib(
  BSTR strResourceName,
  BSTR strPropName,
  IDictionary** idictResPropAttrib
);
[Visual Basic]
Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As Object

Parameters

strResourceName [C++]
[in] A BSTR that contains the resource name.
strResourceName [Visual Basic]
A String that contains the resource name.
strPropName [C++]
[in] A BSTR that contains the resource property name.
strPropName [Visual Basic]
A String that contains the resource property name.
idictResPropAttrib [C++]
[out, retval] The address of a pointer to receive an IDictionary interface, which is used to return the key/value pairs that denote the attributes of the specified property of the specified resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to a Dictionary object containing the key/value pairs that denote the attributes of the specified property of the specified resource.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The idictResPropAttrib parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oGlobalConfig is a Commerce GlobalConfig object
dDict = _
oGlobalConfig.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::Initialize Method [C++]

GlobalConfig.Initialize Method [Visual Basic]

Use this method to load the global configuration from the Administration database.

Definition

[C++]
HRESULT _GlobalConfig::Initialize(
  BSTR bstrGroupName
);
[Visual Basic]
Sub Initialize(
  Optional bstrGroupName As String
)

Parameters

bstrGroupName [C++]
[in, optional] A BSTR that contains the name of the global resource.
bstrGroupName [Visual Basic]
A String that contains the name of the global resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

On Developer Edition installations, code will be run to ensure that the maximum number of connections for an IIS Web site that hosts a Commerce Server 2002 application is no greater than 5.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::MakeArrayFromSimpleList Method [C++]

GlobalConfig.MakeArrayFromSimpleList Method [Visual Basic]

Use this method to convert the specified SimpleList object into an Array.

Definition

[C++]
HRESULT _GlobalConfig::MakeArrayFromSimpleList(
  IDispatch** list,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromSimpleList(
  list As Object
) As Variant

Parameters

list [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an Array.
list [Visual Basic]
An object reference to the SimpleList that you wish to convert into an Array.
vtArray [C++]
[out, retval] A pointer to a VARIANT containing the converted Array.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted Array.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyVariant is a Variant
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
vMyVariant = oGlobalConfig.MakeArrayFromSimpleList(varMySimpleList)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::MakeArrayFromString Method [C++]

GlobalConfig.MakeArrayFromString Method [Visual Basic]

Use this method to convert an encoded string read from the Fields property into an Array. If the encoded string does not indicate Array properties, then the method returns the original string that was passed into it.

Definition

[C++]
HRESULT _GlobalConfig::MakeArrayFromString(
  VARIANT strList,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromString(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A VARIANT that contains the encoded string.
strList [Visual Basic]
A Variant that contains the encoded string.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant containing an encoded string read from the Fields
' property
' vArray is a Variant
' oGlobalConfig is a Commerce GlobalConfig object
vArray = oGlobalConfig.MakeArrayFromString(vEncoded)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::MakeSimpleListFromArray Method [C++]

GlobalConfig.MakeSimpleListFromArray Method [Visual Basic]

Use this method to convert an Array into a SimpleList object.

Definition

[C++]
HRESULT _GlobalConfig::MakeSimpleListFromArray(
  VARIANT* varArray,
  IDispatch** iSimpleList
);
[Visual Basic]
Function MakeSimpleListFromArray(
  varArray As Variant
) As Object

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to convert.
varArray [Visual Basic]
A Variant that contains the Array to convert.
iSimpleList [C++]
[out, retval] The address of an IDispatch pointer used to return the converted SimpleList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to the converted SimpleList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The iSimpleList parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyArray is a Variant
' varMySimpleList is a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
varMySimpleList = oGlobalConfig.MakeSimpleListFromArray(vMyArray)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::MakeStringFromArray Method [C++]

GlobalConfig.MakeStringFro MethodmArray [Visual Basic]

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _GlobalConfig::MakeStringFromArray(
  VARIANT* varArray,
  VARIANT* vtEncodedString
);
[Visual Basic]
Function MakeStringFromArray(
  varArray As Variant
) As Variant

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to encode.
varArray [Visual Basic]
A Variant that contains the Array to encode.
vtEncodedString [C++]
[out, retval] A pointer to a VARIANT used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the encoded string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The vtEncodedString parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant
' vArray is a Variant
' oGlobalConfig is a Commerce GlobalConfig object
vEncoded = oGlobalConfig.MakeStringFromArray(vArray)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::MakeStringFromSimpleList Method [C++]

GlobalConfig.MakeStringFromSimpleList Method [Visual Basic]

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _GlobalConfig::MakeStringFromSimpleList(
  IDispatch** slist,
  BSTR* strEncodedString
);
[Visual Basic]
Function MakeStringFromSimpleList(
  slist As Object
) As String

Parameters

slist [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.
slist [Visual Basic]
An object reference to the SimpleList object that you wish to convert into an encoded string.
strEncodedString [C++]
[out, retval] A pointer to a String used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The strEncodedString parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, SimpleLists, or objects as Fields columns. Therefore, the GlobalConfig object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a string
' vArray is a Variant
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig is a Commerce GlobalConfig object
vEncoded = oGlobalConfig.MakeStringFromSimpleList(varMySimpleList)

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::SaveConfig Method [C++]

GlobalConfig.SaveConfig Method [Visual Basic]

Use this method to save the global configuration settings to the Administration database.

Definition

[C++]
HRESULT _GlobalConfig::SaveConfig(
);
[Visual Basic]
Sub SaveConfig(
)

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig::Sites Method [C++]

GlobalConfig.Sites Method [Visual Basic]

Use this method to retrieve a list of all the sites available in the Administration database.

Definition

[C++]
HRESULT _GlobalConfig::Sites (
_Recordset** rsRecordSet
);
[Visual Basic]
Function Sites (
) As Object

Parameters

rsRecordSet [C++]

[out, retval] The address of a pointer to a _Recordset object used to return the list of all sites available in the Administration database. Each Field object in the recordset includes the name of one of the sites in the Commerce Server 2002 installation.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object. Each Field object in the recordset includes the name of one of the sites in the Commerce Server 2002 installation.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The rsRecordSet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


_GlobalConfig Properties [C++]

GlobalConfig Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

[Visual Basic]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.


_GlobalConfig::get_Fields Property [C++]

GlobalConfig.Fields Property [Visual Basic]

The Fields property is a read-only Fields object. The Fields property contents include recordsets that hold the configuration settings of resources. A Fields object is an ADO disconnected recordset.

Definition

[C++]
HRESULT _GlobalConfig::get_Fields(
  Fields** pFields
);
[Visual Basic]
Property Fields As Object

Parameters

pFields [C++]
[out] The address of a pointer to the Fields object used to return resource configuration information.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

The pFields parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig Object

[Visual Basic] GlobalConfig Object


GlobalConfig2 Object [C++]

GlobalConfig2 Object [Visual Basic]

Use this object to accomplish the following:

  • Create or delete resource configuration information
  • Save any updated global configuration information to the Administration database
  • Add a site
Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.
ProgID: | Commerce.GlobalConfig2 (Externally creatable)
COM Class Name: | GlobalConfig2
Type Library Name: | Microsoft Commerce 2002 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _GlobalConfig2
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the _GlobalConfig2 interface to access the properties and methods of the GlobalConfig2 object.

Methods

[C++]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.
[Visual Basic]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.
Properties
[C++]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

[Visual Basic]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

See Also

Integrating Custom Resources

Configuration Objects

[C++] SiteConfig Object

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfig Object

[Visual Basic] SiteConfigReadOnly Object


_GlobalConfig2 Methods [C++]

GlobalConfig2 Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.
[Visual Basic]
Method | Description
CreateServiceConfig | Creates and writes configuration information for the specified resource to the Administration database.
CreateSiteConfig | Creates a site.
DeleteServiceConfig | Deletes configuration information for the specified resource.
DeleteSiteConfig | Deletes the specified configuration for the site and all configurations for the associated resources.
GetGlobalResources | Retrieves a list of all the names of the resources from the Resources table in the Administration database.
GetIfCollection | Converts values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array.
GetRefSites | Retrieves a list of names of sites that reference the given resource.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
Initialize | Loads the global configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
SaveConfig | Saves the global configuration settings to the Administration database.
Sites | Returns a list of all of the sites available in the administration data store.


_GlobalConfig2::CreateServiceConfig Method [C++]

GlobalConfig2.CreateServiceConfig Method [Visual Basic]

Use this method to create an instance of the class specified by the bstrConfigSchemaClass parameter, set the Name property of the instance to the name specified in the bstrServiceName parameter, and load the instance into the site recordset. This method calls the SaveConfig method.

Definition

[C++]
HRESULT _GlobalConfig2::CreateServiceConfig(
  BSTR bstrServiceName,
  BSTR bstrConfigSchemaClass
);
[Visual Basic]
Sub CreateServiceConfig(
  bstrServiceName As String,
  bstrConfigSchemaClass As String
)

Parameters

bstrServiceName [C++]
[in] A BSTR that contains the new name for the resource configuration object instance.
bstrServiceName [Visual Basic]
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass [C++]
[in] A BSTR that contains the resource configuration schema class name.
bstrConfigSchemaClass [Visual Basic]
A String that contains the resource configuration schema class name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

The following table contains a list of schema classes for this method.

Administration Database Class Name | Resource Name
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_Datawarehouse_Group | Global Data Warehouse
MSCS_BizDataStore | Profiles

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyPredictor is a String denoting the new resource name
' oGlobalConfig2 is a Commerce GlobalConfig2 object
oGlobalConfig2.CreateServiceConfig(sMyPredictor, MSCS_Predictor)

See Also

[C++] GlobalConfig2 Object

[C++] _GlobalConfig2::DeleteServiceConfig

[Visual Basic] GlobalConfig2 Object

[Visual Basic] GlobalConfig2.DeleteServiceConfig


_GlobalConfig2::CreateSiteConfig Method [C++]

GlobalConfig2.CreateSiteConfig Method [Visual Basic]

Use this method to create a site using the name specified in the bstrSiteName parameter. This method calls the SaveConfig method. This method is used primarily from Commerce Server Manager or by Commerce Server Site Packager.

Definition

[C++]
HRESULT _GlobalConfig2::CreateSiteConfig(
  BSTR bstrSiteName,
  IMSCSSiteConfigAdmin** ppsca
);
[Visual Basic]
Function CreateSiteConfig(
  bstrSiteName As String
) As Object

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the new site name.
bstrSiteName [Visual Basic]
A String that contains the new site name.
ppsca [C++]
[out] The address of a pointer to the SiteConfig object used to return the site configuration settings.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a SiteConfig object that contains the site configuration settings.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The ppsca parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyNewSite is a string; oGlobalConfig2 is a Commerce GlobalConfig2 object
' oMSCSSiteConfig is a Commerce.SiteConfig object
oMSCSSiteConfig = oGlobalConfig2.CreateSiteConfig(sMyNewSite)

See Also

[C++] GlobalConfig2 Object

[C++] _GlobalConfig2::DeleteSiteConfig

[Visual Basic] GlobalConfig2 Object

[Visual Basic] _GlobalConfig2::DeleteSiteConfig


_GlobalConfig2::DeleteServiceConfig Method [C++]

GlobalConfig2.DeleteServiceConfig Method [Visual Basic]

Use this method to delete the specified resource, and to delete the Administration database association that links this resource to the site instance.

Definition

[C++]
HRESULT _GlobalConfig2::DeleteServiceConfig(
  BSTR bstrServiceName
);
[Visual Basic]
Sub DeleteServiceConfig(
  bstrServiceName As String
)

Parameters

bstrServiceName [C++]
[in] A BSTR that contains the name of the resource configuration object to be deleted.
bstrServiceName [Visual Basic]
A String that contains the name of the resource configuration object to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyPredictor is the name of an existing resource
' oGlobalConfig2 is a Commerce GlobalConfig2 object
oGlobalConfig2.DeleteServiceConfig (sMyPredictor)

See Also

[C++] GlobalConfig2 Object

[C++] _GlobalConfig2::CreateServiceConfig

[Visual Basic] GlobalConfig2 Object

[Visual Basic] GlobalConfig2.CreateServiceConfig


_GlobalConfig2::DeleteSiteConfig Method [C++]

GlobalConfig2.DeleteSiteConfig Method [Visual Basic]

Use this method to delete a site configuration object instance for the current site from the Administration database. This method is primarily used by Commerce Server Manager or by Commerce Server Site Packager.

Definition

[C++]
HRESULT _GlobalConfig2::DeleteSiteConfig(
  BSTR bstrSiteName
);
[Visual Basic]
Sub DeleteSiteConfig(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the site name.
bstrSiteName [Visual Basic]
A String that contains the site name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySiteName is an existing site name
' oGlobalConfig2 is a Commerce GlobalConfig2 object
oGlobalConfig2.DeleteSiteConfig(sMySiteName)

See Also

[C++] GlobalConfig2 Object

[C++] _GlobalConfig2::CreateSiteConfig

[Visual Basic] GlobalConfig2 Object

[Visual Basic] GlobalConfig2.CreateSiteConfig


_GlobalConfig2::GetGlobalResources Method [C++]

GlobalConfig2.GetGlobalResources Method [Visual Basic]

Use this method to retrieve a list of all the names of the resources from the Resources table in the Administration database.

Definition

[C++]
HRESULT _GlobalConfig2::GetGlobalResources(
_Recordset** retVal
);
[Visual Basic]
Function GetGlobalResources(
) As Object

Parameters

retVal [C++]
[out, retval] The address of a pointer to a _Recordset object. Each Field object in the recordset includes the name of a resource in the Resources table in the Administration database.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object. Each Field object in the recordset includes the name of a resource in the Resources table in the Administration database.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All normal SQL errors are returned by this method through the Err object. If no global resources exist, S_OK is returned, but the returned list will be empty.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::GetIfCollection Method [C++]

GlobalConfig2.GetIfCollection Method [Visual Basic]

Use this method to convert values read from the Fields property into appropriate objects such as a SimpleList object or a Variant Array. If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a Variant Array, then a Variant Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

Definition

[C++]
HRESULT _GlobalConfig2::GetIfCollection(
  VARIANT* strList,
  VARIANT* retVal
);
[Visual Basic]
Function GetIfCollection(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A pointer to the VARIANT that contains the encoded string to be converted.
strList [Visual Basic]
A Variant that contains the encoded string to be converted.
retVal [C++]
[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vVariant is a Variant; vEncodedString is a Variant
' oGlobalConfig2 is a Commerce GlobalConfig2 object
vVariant = oGlobalConfig2.GetIfCollection(vEncodedString)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::GetRefSites Method [C++]

GlobalConfig2.GetRefSites Method [Visual Basic]

Use this method to retrieve a list of all the site names that reference the given resource from the Administration database.

Definition

[C++]
HRESULT _GlobalConfig2::GetRefSites(
  BSTR strDisplayName,
_Recordset** retVal
);
[Visual Basic]
Function GetRefSites(
  strDisplayName As String,
) As Object

Parameters

strDisplayName [C++]
[in] A BSTR that contains the display name of the global resource.
strDisplayName [Visual Basic]
A String that contains the display name of the global resource.
retVal [C++]
[out, retval] The address of a pointer to a _Recordset object. Each Field object in the recordset includes the name of one of the sites that references the given resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object. Each Field object in the recordset includes the name of one of the sites that references the given resource.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All normal SQL errors are returned by this method via the Err object. If no sites reference the given resource, S_OK is returned, but the returned list will be empty.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::GetResourcePropAttrib Method [C++]

GlobalConfig2.GetResourcePropAttrib Method [Visual Basic]

Use this method to get a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[C++]
HRESULT _GlobalConfig2::GetResourcePropAttrib(
  BSTR strResourceName,
  BSTR strPropName,
  IDictionary** idictResPropAttrib
);
[Visual Basic]
Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As Object

Parameters

strResourceName [C++]
[in] A BSTR that contains the resource name.
strResourceName [Visual Basic]
A String that contains the resource name.
strPropName [C++]
[in] A BSTR that contains the resource property name.
strPropName [Visual Basic]
A String that contains the resource property name.
idictResPropAttrib [C++]
[out, retval] The address of a pointer to receive an IDictionary interface, which is used to return the key/value pairs that denote the attributes of the specified property of the specified resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to a Dictionary object containing the key/value pairs that denote the attributes of the specified property of the specified resource.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The idictResPropAttrib parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oGlobalConfig2 is a Commerce GlobalConfig2 object
dDict = _
oGlobalConfig2.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::Initialize Method [C++]

GlobalConfig2.Initialize Method [Visual Basic]

Use this method to load the global configuration from the Administration database.

Definition

[C++]
HRESULT _GlobalConfig2::Initialize(
  BSTR bstrGroupName
);
[Visual Basic]
Sub Initialize(
  Optional bstrGroupName As String
)

Parameters

bstrGroupName [C++]
[in, optional] A BSTR that contains the name of the global resource. If this parameter is present, this method will load only the records associated with this global resource.
bstrGroupName [Visual Basic]
A String that contains the name of the global resource. If this parameter is present, this method will load only the records associated with this global resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

On Developer Edition installations, code will be run to ensure that the maximum number of connections for an IIS Web site that host a Commerce Server 2002 application is not greater than 5. For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::MakeArrayFromSimpleList Method [C++]

GlobalConfig2.MakeArrayFromSimpleList Method [Visual Basic]

Use this method to convert the specified SimpleList object into an Array.

Definition

[C++]
HRESULT _GlobalConfig2::MakeArrayFromSimpleList(
  IDispatch** list,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromSimpleList(
  list As Object
) As Variant

Parameters

list [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an Array.
list [Visual Basic]
An object reference to the SimpleList that you wish to convert into an Array.
vtArray [C++]
[out, retval] A pointer to a VARIANT containing the converted Array.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted Array.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyVariant is a Variant
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig2 is a Commerce GlobalConfig2 object
vMyVariant = oGlobalConfig2.MakeArrayFromSimpleList(varMySimpleList)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::MakeArrayFromString Method [C++]

GlobalConfig2.MakeArrayFromString Method [Visual Basic]

Use this method to convert an encoded string read from the Fields property into an Array. If the encoded string does not indicate Array properties, then the method returns the original string that was passed into it.

Definition

[C++]
HRESULT _GlobalConfig2::MakeArrayFromString(
  VARIANT strList,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromString(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A VARIANT that contains the encoded string.
strList [Visual Basic]
A Variant that contains the encoded string.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant containing an encoded string read from the Fields
' property
' vArray is a Variant
' oGlobalConfig2 is a Commerce GlobalConfig2 object
vArray = oGlobalConfig2.MakeArrayFromString(vEncoded)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::MakeSimpleListFromArray Method [C++]

GlobalConfig2.MakeSimpleListFromArray Method [Visual Basic]

Use this method to convert an Array into a SimpleList object.

Definition

[C++]
HRESULT _GlobalConfig2::MakeSimpleListFromArray(
  VARIANT* varArray,
  IDispatch** iSimpleList
);
[Visual Basic]
Function MakeSimpleListFromArray(
  varArray As Variant
) As Object

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to convert.
varArray [Visual Basic]
A Variant that contains the Array to convert.
iSimpleList [C++]
[out, retval] The address of an IDispatch pointer used to return the converted SimpleList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to the converted SimpleList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The iSimpleList parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyArray is a Variant
' varMySimpleList is a SimpleList object
' oGlobalConfig2 is a Commerce GlobalConfig2 object
varMySimpleList = oGlobalConfig2.MakeSimpleListFromArray(vMyArray)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::MakeStringFromArray Method [C++]

GlobalConfig2.MakeStringFromArray Method [Visual Basic]

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _GlobalConfig2::MakeStringFromArray(
  VARIANT* varArray,
  VARIANT* vtEncodedString
);
[Visual Basic]
Function MakeStringFromArray(
  varArray As Variant
) As Variant

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to encode.
varArray [Visual Basic]
A Variant that contains the Array to encode.
vtEncodedString [C++]
[out, retval] A pointer to a VARIANT used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the encoded string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The vtEncodedString parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant
' vArray is a Variant
' oGlobalConfig2 is a Commerce GlobalConfig2 object
vEncoded = oGlobalConfig2.MakeStringFromArray(vArray)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::MakeStringFromSimpleList Method [C++]

GlobalConfig2.MakeStringFromSimpleList Method [Visual Basic]

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _GlobalConfig2::MakeStringFromSimpleList(
  IDispatch** slist,
  BSTR* strEncodedString
);
[Visual Basic]
Function MakeStringFromSimpleList(
  slist As Object
) As String

Parameters

slist [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.
slist [Visual Basic]
An object reference to the SimpleList object that you wish to convert into an encoded string.
strEncodedString [C++]
[out, retval] A pointer to a String used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The strEncodedString parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, SimpleLists, or objects as Fields columns. Therefore, the GlobalConfig2 object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a string
' vArray is a Variant
' varMySimpleList is an object reference to a SimpleList object
' oGlobalConfig2 is a Commerce GlobalConfig2 object
vEncoded = oGlobalConfig2.MakeStringFromSimpleList(varMySimpleList)

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::SaveConfig Method [C++]

GlobalConfig2.SaveConfig Method [Visual Basic]

Use this method to save the global configuration settings to the Administration database.

Definition

[C++]
HRESULT _GlobalConfig2::SaveConfig(
);
[Visual Basic]
Sub SaveConfig(
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2::Sites Method [C++]

GlobalConfig2.Sites Method [Visual Basic]

Use this method to retrieve a list of all the sites available in the Administration database.

Definition

[C++]
HRESULT _GlobalConfig2::Sites (
_Recordset** rsRecordSet
);
[Visual Basic]
Function Sites (
) As Object

Parameters

rsRecordSet [C++]
[out, retval] The address of a pointer to a _Recordset object used to return the list of all sites available in the Administration database. Each Field object in the recordset includes the name of one of the sites in the Commerce Server 2002 installation.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object. Each Field object in the recordset includes the name of one of the sites in the Commerce Server 2002 installation.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

[C++] The rsRecordSet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


_GlobalConfig2 Properties [C++]

GlobalConfig2 Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.

[Visual Basic]
Property | Type | Description
Fields | Fields | Returns group-level configuration data. This property is read-only.


_GlobalConfig2::get_Fields Property [C++]

GlobalConfig2.Fields Property [Visual Basic]

The Fields property is a read-only Fields object. The Fields property contents include recordsets that hold the configuration settings of resources. A Fields object is an ADO disconnected recordset.

Definition

[C++]
HRESULT _GlobalConfig2::get_Fields(
  Fields** pFields
);
[Visual Basic]
Property Fields As Object

Parameters

pFields [C++]
[out] The address of a pointer to the Fields object used to return resource configuration information.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be called.

The pFields parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GlobalConfig2 Object

[Visual Basic] GlobalConfig2 Object


SiteConfig Object [C++]

SiteConfig Object [Visual Basic]

Use this object to accomplish the following:

  • Create or delete site configuration information
  • Save any updated site configuration information to the Administration database
  • Load site configuration information from the Administration database
  • Import resource configuration data to a site and export resource configuration data from a site
ProgID: | Commerce.SiteConfig (Externally creatable)
COM Class Name: | SiteConfig
Type Library Name: | Microsoft Commerce 2002 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _SiteConfig
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the _SiteConfig interface to access the properties and methods of the SiteConfig object.

Methods

[C++]
Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.
[Visual Basic]
Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.
[Visual Basic]
Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.

Remarks

The only functions available if you do not have an Administrator role are:
Initialize, GetAppsInSite, SaveConfig, MakeArrayFromSimpleList, MakeArrayFromString, MakeSimpleListFromArray, MakeStringFromArray, and MakeStringFromSimpleList.
Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.

See Also

Configuration Objects

Integrating Cutom Resources

[C++] GlobalConfig Object

[C++] SiteConfigReadOnly Object

[Visual Basic] GlobalConfigObject

[Visual Basic] SiteConfigReadOnly Object


_SiteConfig Methods [C++]

SiteConfig Methods [Visual Basic]

Methods

[C++]
Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.
[Visual Basic]
Method | Description
AddRefToGroupComponent | Adds a reference to a global resource so that a site can access that resource.
CreateComponentConfig | Creates and writes configuration information for the specified resource to the Administration database.
DeleteComponentConfig | Deletes configuration information for the specified resource.
DeleteSQLScript | Deletes the specified SQL script file from the Administration database.
ExportResource | Writes the specified resource, resource properties, and attributes to the specified file.
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
GetResourcePropAttrib | Gets a dictionary of key/value pairs that denote the attributes of the specified property of the specified resource.
GetSQLScript | Gets the specified SQL script file from the Administration database.
ImportResource | Reads the specified resource, resource properties, and attributes from the specified file, and writes them to the Commerce Server 2002 database.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from the Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string that can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string that can be written to the Fields property.
PutSQLScript | Puts the specified SQL script file into the Administration database.
SaveConfig | Saves the site configuration settings to the Administration database.


_SiteConfig::AddRefToGroupComponent Method [C++]

SiteConfig.AddRefToGroupComponent Method [Visual Basic]

Use this method to add a reference to a global resource so that a site can access that resource. If you use this method to create a global resource, in order to read the correct property values, use the SiteConfigReadOnly object methods. To set the correct property values, use the GlobalConfig object on the global resource that is referenced by this site level resource.

Definition

[C++]
HRESULT _SiteConfig::AddRefToGroupComponent(
  BSTR bstrSiteResourceName,
  BSTR bstrGroupResourceName
);
[Visual Basic]
Sub AddRefToGroupComponent(
  bstrSiteResourceName As String,
  bstrGroupResourceName As String
)

Parameters

bstrSiteResourceName[C++]
[in] A BSTR that contains the name of the resource configuration object to be added to the site.
bstrSiteResourceName [Visual Basic]
A String that contains the name of the resource configuration object to be added to the site.
bstrGroupResourceName [C++]
[in] A BSTR that contains the name of the global resource configuration object to which a reference is being added.
bstrGroupResourceName [Visual Basic]
A String that contains the name of the global resource configuration object to which a reference is being added.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

If you use this method to create a global resource, use the SiteConfigReadOnly object methods to read the correct property values. Use the GlobalConfig object on the global resource that is referenced by this site level resource to set the correct property values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sSiteResName and sGlob are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.AddRefToGroupComponent(sSiteResName,sGlob)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::CreateComponentConfig Method [C++]

SiteConfig.CreateComponentConfig Method [Visual Basic]

Use this method to create an instance of a configuration schema class, and load it into the site recordset.

Definition

[C++]
HRESULT _SiteConfig::CreateComponentConfig(
  BSTR bstrConfigComponentName,
  BSTR bstrConfigSchemaClass
);
[Visual Basic]
Sub CreateComponentConfig(
  bstrConfigComponentName As String,
  bstrConfigSchemaClass As String
)

Parameters

bstrConfigComponentName [C++]
[in] A BSTR that contains the new name for the resource configuration object instance.
bstrConfigComponentName [Visual Basic]
A String that contains the new name for the resource configuration object instance.
bstrConfigSchemaClass [C++]
[in] A BSTR that contains the resource configuration schema class name.
bstrConfigSchemaClass [Visual Basic]
A String that contains the resource configuration schema class name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

This method creates an instance of the class specified in the bstrConfigSchemaClass parameter, and sets the Name property of the instance to the name specified in the bstrConfigComponentName parameter. It loads the instance into the site recordset.

This method calls the SaveConfig method.

The following table contains a list of schema classes for this method.

Admininstration Database Class Name | Resource Name
MSCS_Catalog | Product Catalog
MSCS_AppConfigDefault | App Default Config
MSCS_TransactionConfig | Transaction Config
MSCS_Transactions | Transactions
MSCS_Content | (No longer used)
MSCS_Campaigns | Campaigns
MSCS_AuthManager | Site CS Authentication
MSCS_DirectMailer | Direct Mailer
MSCS_Predictor | Predictor
MSCS_Predictor_Site | (No longer used)
MSCS_Datawarehouse_Group | Global Data Warehouse
MSCS_Datawarehouse_Site | Site Data Warehouse
MSCS_BizDataStore | Profiles Resource
MSCS_Address | IIS Applications (such as Retail, RetailBizDesk)
MSCS_BDSecurity | Business Desk Permissions

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyCatalog is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.CreateComponentConfig(sMyCatalog, MSCS_Catalog)

See Also

[C++] SiteConfig Object

[C++] _SiteConfig::DeleteComponentConfig

[Visual Basic] SiteConfig Object

[Visual Basic] SiteConfig.DeleteComponentConfig


_SiteConfig::DeleteComponentConfig Method [C++]

SiteConfig.DeleteComponentConfig Method [Visual Basic]

Use this method to delete the Administration database information for the specified resource.

[C++]
HRESULT _SiteConfig::DeleteComponentConfig(
  BSTR bstrConfigComponentName
);
[Visual Basic]
Sub DeleteComponentConfig(
  bstrConfigComponentName As String
)

Parameters

bstrConfigComponentName [C++]
[in] A BSTR that contains the name of the resource associated with the Administration database information to delete.
bstrConfigComponentName [Visual Basic]
A String that contains the name of the resource configuration object to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

This delete does not remove any resource-specific data other than the configuration information. For instance, deleting the Product Catalog resource will not remove the Product Catalog tables from the database, just the configuration information.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyResource is the name of an existing resource
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.DeleteComponentConfig (sMyResource)

See Also

[C++] SiteConfig Object

[C++] _SiteConfig::CreateComponentConfig

[Visual Basic] SiteConfig Object

[Visual Basic] SiteConfig.CreateComponentConfig


_SiteConfig::DeleteSQLScript Method [C++]

SiteConfig.DeleteSQLScript Method [Visual Basic]

Use this method to delete the specified SQL script file from the Administration database.

Definition

[C++]
HRESULT _SiteConfig::DeleteSQLScript(
  BSTR sResource,
  BSTR sScriptName
);
[Visual Basic]
Sub DeleteSQLScript(
  sResource As String,
  sScriptName As String
)

Parameters

sResource [C++]
[in] A BSTR that contains the name of the resource that is associated with the SQL script file that is to be deleted.
sResource [Visual Basic]
A String that contains the name of the resource that is associated with the SQL script file that is to be deleted.
sScriptName [C++]
[in] A BSTR that contains the name of the SQL script file to delete.
sScriptName [Visual Basic]
A String that contains the name of the SQL script file to delete.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::ExportResource Method [C++]

SiteConfig.ExportResource Method [Visual Basic]

Use this method to write the specified resource, resource properties, and attributes to the specified file.

Definition

[C++]
HRESULT _SiteConfig::ExportResource(
  BSTR bstrResourceName,
  BSTR bstrFileName
);
[Visual Basic]
Sub ExportResource(
  bstrResourceName As String,
  bstrFileName As String
)

Parameters

bstrResourceName [C++]
[in] A BSTR that contains the resource name.
bstrResourceName [Visual Basic]
A String that contains the resource name.
bstrFileName [C++]
[in] A BSTR that contains the destination file name for the resource export.
bstrFileName [Visual Basic]
A String that contains the destination file name for the resource export.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

This method and the ImportResource method are complements of each other. This method creates the file that ImportResource consumes.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyResource and sMyFileName.txt are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ExportResource(sMyResource, sMyFileName.txt)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::GetAppsInSite Method [C++]

SiteConfig.GetAppsInSite Method [Visual Basic]

Use this method to get a list of Commerce Server 2002 applications for the specified site.

Definition

[C++]
HRESULT _SiteConfig::GetAppsInSite(
  BSTR* strSiteName,
  VARIANT* vtAppNames
);
[Visual Basic]
Function GetAppsInSite(
  strSiteName As String
) As Variant

Parameters

strSiteName [C++]
[in] A pointer to the BSTR that contains the name of the site for which you want the list of Commerce Server 2002 applications that are currently running.
strSiteName [Visual Basic]
A String that contains the name of the site for which you want the list of running Commerce Server 2002 applications.
vtAppNames [C++]
[out, retval] A pointer to a Variant used to return the list of Commerce Server 2002 applications.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the list of Commerce Server 2002 applications.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

[C++] The vtAppNames parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySiteName is a string
' vVariant is a Variant
' oSiteConfig is a Commerce SiteConfig object
vVariant = oSiteConfig.GetAppsInSite(sMySiteName)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::GetIfCollection Method [C++]

SiteConfig.GetIfCollection Method [Visual Basic]

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

[C++]
HRESULT _SiteConfig::GetIfCollection(
  VARIANT* strList,
  VARIANT* retVal
);
[Visual Basic]
Function GetIfCollection(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A pointer to the VARIANT that contains the encoded string to be converted.
strList [Visual Basic]
A Variant that contains the encoded string to be converted.
retVal [C++]
[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The retVal parameter points to valid data only if the method completes successfully.

If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a Variant Array, then a Variant Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vVariant is a Variant; vEncodedString is a Variant
' oSiteConfig is a Commerce SiteConfig object
vVariant = oSiteConfig.GetIfCollection(vEncodedString)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::GetResourcePropAttrib Method [C++]

SiteConfig.GetResourcePropAttrib Method [Visual Basic]

Use this method to get a Dictionary object of key/value pairs that denote the attributes of the specified property of the specified resource.

Definition

[C++]
HRESULT _SiteConfig::GetResourcePropAttrib(
  BSTR strResourceName,
  BSTR strPropName,
  IDictionary** idictResPropAttrib
);
[Visual Basic]
Function GetResourcePropAttrib(
  strResourceName As String,
  strPropName As String
) As Object

Parameters

strResourceName [C++]
[in] A BSTR that contains the resource name.
strResourceName [Visual Basic]
A String that contains the resource name.
strPropName [C++]
[in] A BSTR that contains the resource property name.
strPropName [Visual Basic]
A String that contains the resource property name.
idictResPropAttrib [C++]
[out, retval] The address of a pointer to receive an IDictionary interface, used to return the key/value pairs that denote the attributes of the specified property of the specified resource.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to a Dictionary object containing the key/value pairs that denote the attributes of the specified property of the specified resource.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

[C++] The idictResPropAttrib parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dDict is a Dictionary object
' sMyCatalog is an existing resource
' connstr_desc_Catalog is a valid Catalog resource property
' oSiteConfig is a Commerce SiteConfig object
dDict = _
oSiteConfig.GetResourcePropAttrib(sMyCatalog, connstr_desc_Catalog)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::GetSQLScript Method [C++]

SiteConfig.GetSQLScript Method [Visual Basic]

Use this method to get the specified SQL script file from the Administration database.

Definition

[C++]
HRESULT _SiteConfig::GetSQLScript(
  BSTR sResource,
  BSTR sScriptName,
  BSTR* strScriptContents
);
[Visual Basic]
Function GetSQLScript(
  sResource As String,
  sScriptName As String
) As String

Parameters

sResource [C++]
[in] A BSTR that contains the resource associated with the required SQL script file.
sResource [Visual Basic]
A String that contains the resource associated with the required SQL script file.
sScriptName [C++]
[in] A BSTR that contains the file name of the required SQL script file.
sScriptName [Visual Basic]
A String that contains the file name of the required SQL script file.
strScriptContents [C++]
[out, retval] A pointer to a BSTR used to return the SQL script file contents.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the SQL script file contents.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

[C++] The strScriptContents parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyCatalog is an existing resource
' sMySQLFileName.sql and sContents are strings
' oSiteConfig is a Commerce SiteConfig object
sContents = oSiteConfig.GetSQLScript(sMyCatalog, sMySQLFileName.sql)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::ImportResource Method [C++]

SiteConfig.ImportResource Method [Visual Basic]

Use this method to read the specified resource, resource properties, and attributes from the specified file, and write them to the Commerce Server 2002 database.

Definition

[C++]
HRESULT _SiteConfig::ImportResource(
  BSTR bstrFileName
);
[Visual Basic]
Sub ImportResource(
  bstrFileName As String
)

Parameters

bstrFileName [C++]
[in] A BSTR that contains the file name.
bstrFileName [Visual Basic]
A String that contains the file name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

This method is the complement of the ExportResource method. It consumes the file that ExportResource creates.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMyFileName is a string
sMyFileName = "C:\ExportedFile.txt"
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.ImportResource(sMyFileName)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::Initialize Method [C++]

SiteConfig.Initialize Method [Visual Basic]

Use this method to load the site configuration from the Administration database.

Definition

[C++]
HRESULT _SiteConfig::Initialize(
  BSTR bstrSiteName
);
[Visual Basic]
Sub Initialize(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the site name.
bstrSiteName [Visual Basic]
A String that contains the site name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

If the caller is not a member of the COM+ Administrator role, but is in the Web Users role, then a reduced recordset is populated by the Initialize method. This reduced recordset contains only information on the MSCS_Address resources, also known as IIS applications. The SaveConfig function will only save this reduced recordset data.

[Visual Basic]

Example

' sMySiteName is a string
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.Initialize(sMySiteName)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::MakeArrayFromSimpleList Method [C++]

SiteConfig.MakeArrayFromSimpleList Method [Visual Basic]

Use this method to convert the specified SimpleList object into an Array.

Definition

[C++]
HRESULT _SiteConfig::MakeArrayFromSimpleList(
  IDispatch** list,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromSimpleList(
  list As Object
) As Variant

Parameters

list [C++]
[in] An IDispatch interface pointer to the SimpleList object that you want to convert into an Array.
list [Visual Basic]
An object reference to the SimpleList object that you want to convert into an Array.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted Array.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter points to valid data only if the method completes successfully.

Important

  • A special group of methods is used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyVariant is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfig is a Commerce SiteConfig object
vMyVariant = oSiteConfig.MakeArrayFromSimpleList(varMySimpleList)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::MakeArrayFromString Method [C++]

SiteConfig.MakeArrayFromString Method [Visual Basic]

Use this method to convert an encoded string read from the Fields property into an Array. If the encoded string does not indicate Array properties, then the method returns the original string that was passed into it.

Definition

[C++]
HRESULT _SiteConfig::MakeArrayFromString(
  VARIANT strList,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromString(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A VARIANT that contains the encoded string.
strList [Visual Basic]
A Variant that contains the encoded string.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtArray parameter points to valid data only if the method completes successfully.

Important

  • A special group of methods is used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.

Caution

  • The MakeArrayFromString method in Commerce Server 2002 performed an implicit conversion of some values in the encoded string to numeric values in the returned array. This conversion is not made in Commerce Server 2002. Any application code that expects numeric values in the array will need to be modified to accept String values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant containing an encoded string
read from the Fields property
' vArray is a Variant
' oSiteConfig is a Commerce SiteConfig object
vArray = oSiteConfig.MakeArrayFromString(vEncoded)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::MakeSimpleListFromArray Method [C++]

SiteConfig.MakeSimpleListFromArray Method [Visual Basic]

Use this method to convert an Array into a SimpleList object.

Definition

[C++]
HRESULT _SiteConfig::MakeSimpleListFromArray(
  VARIANT* varArray,
  IDispatch** iSimpleList
);
[Visual Basic]
Function MakeSimpleListFromArray(
  varArray As Variant
) As Object

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to convert.
varArray [Visual Basic]
A Variant that contains the SimpleList object to convert.
iSimpleList [C++]
[out, retval] The address of an IDispatch interface pointer used to return the converted SimpleList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to the converted SimpleList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The iSimpleList parameter contains valid data only if the method completes successfully.

Important

  • A special group of methods is used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyArray is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfig is a Commerce SiteConfig object
varMySimpleList = oSiteConfig.MakeSimpleListFromArray(vMyArray)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::MakeStringFromArray Method [C++]

SiteConfig.MakeStringFromArray Method [Visual Basic]

Use this method to convert an Array object into an encoded string that can be written to the Fields property.

Definition

[C++]
HRESULT _SiteConfig::MakeStringFromArray(
  VARIANT* varArray,
  VARIANT* vtEncodedString
);
[Visual Basic]
Function MakeStringFromArray(
  varArray As Variant
) As Variant

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to encode.
varArray [Visual Basic]
A Variant that contains the Array to encode.
vtEncodedString [C++]
[out, retval] A pointer to a VARIANT used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the encoded string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The vtEncodedString parameter points to valid data only if the method completes successfully.

Important

  • A special group of methods is used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.

Caution

  • The MakeArrayFromString method in Microsoft Commerce Server 2002 performed an implicit conversion of some values in the encoded string to numeric values in the returned array. This conversion is not made in Commerce Server 2002. Any application code that expects numeric values in the array will need to be modified to accept String values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant
' vArray is a Variant
' oSiteConfig is a Commerce SiteConfig object
vEncoded = oSiteConfig.MakeStringFromArray(vArray)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::MakeStringFromSimpleList Method [C++]

SiteConfig.MakeStringFromSimpleList Method [Visual Basic]

Use this method to convert a SimpleList object into an encoded string that can be written to the Fields property.

Definition

[C++]
HRESULT _SiteConfig::MakeStringFromSimpleList(
  IDispatch** slist,
  BSTR* strEncodedString
);
[Visual Basic]
Function MakeStringFromSimpleList(
  slist As Object
) As String

Parameters

slist [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.
slist [Visual Basic]
An object reference to the SimpleList object that you wish to convert into an encoded string.
strEncodedString [C++]
[out, retval] A pointer to a BSTR used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The strEncodedString parameter points to valid data only if the method completes successfully.

Important

  • A special group of methods is used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, SimpleLists or objects as Fields columns. Therefore, the SiteConfig object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a string
' vArray is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfig is a Commerce SiteConfig object
vEncoded = oSiteConfig.MakeStringFromSimpleList(varMySimpleList)

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::PutSQLScript Method [C++]

SiteConfig.PutSQLScript Method [Visual Basic]

Use this method to put the specified SQL script file into the Administration database.

Definition

[C++]
HRESULT _SiteConfig::PutSQLScript(
  BSTR sResource,
  BSTR sScriptName,
  BSTR sScriptContents
);
[Visual Basic]
Sub PutSQLScript(
  sResource As String,
  sScriptName As String,
  sScriptContents As String
)

Parameters

sResource [C++]
[in] A BSTR that contains the name of the resource associated with the SQL script file.
sResource [Visual Basic]
A String that contains the name of the resource associated with the SQL script file.
sScriptName [C++]
[in] A BSTR that contains the name of the SQL script file.
sScriptName [Visual Basic]
A String that contains the name of the SQL script file.
sScriptContents [C++]
[in] A BSTR that contains the SQL script file contents.
sScriptContents [Visual Basic]
A String that contains the SQL script file contents.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySQLFileName.sql, sMyRes and sMyContents are strings
' oSiteConfig is a Commerce SiteConfig object
oSiteConfig.PutSQLScript(sMyRes, "sMySQLFileName.sql" ,sMyContents )

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig::SaveConfig Method [C++]

SiteConfig.SaveConfig Method [Visual Basic]

Use this method to save any site configuration settings that have been changed or updated.

Definition

[C++]
HRESULT _SiteConfig::SaveConfig(
);
[Visual Basic]
Sub SaveConfig()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

If the caller is not a member of the COM+ Administrator role, but is in the Web Users role, then a reduced recordset is populated by the Initialize method. This reduced recordset contains only information on the MSCS_Address resources, also known as IIS applications. The SaveConfig function will only save this reduced recordset data.

The Initialize method must be called before this method can be used.

This method saves the entire configuration for a site. If two users are trying to update different parts of the site configuration at the same time, the last one to save will overwrite the changes made by the first user updating the site configuration.

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


_SiteConfig Properties [C++]

SiteConfig Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.
[Visual Basic]
Property | Type | Description
Fields | Fields | Returns configuration fields, some of which hold configuration settings of resources. This property is read-write.


_SiteConfig::get_Fields Property [C++]

SiteConfig.Fields Property [Visual Basic]

The Fields property is a read/write Fields object. The Fields object contents include recordsets that hold the configuration settings of resources. A Fields object is an ADO disconnected recordset.

Definition

[C++]
HRESULT _SiteConfig::get_Fields(
  Fields** Fields
);
[Visual Basic]
Property Fields As Object

Parameters

Fields [C++]
[out] The address into which this method writes the pointer to the Fields object used to return resource configuration information.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++] The Fields parameter contains valid data only if the method completes successfully.

You update the data in the Fields object to change your configuration information. You then call SaveConfig to commit those changes back to the database.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SiteConfig Object

[Visual Basic] SiteConfig Object


SiteConfigReadOnly Object [C++]

SiteConfigReadOnly Object [Visual Basic]

Use this object to load site configuration information from the Administration database.

ProgID: | Commerce.SiteConfigReadOnly (Externally creatable)
COM Class Name: | SiteConfigReadOnly
Type Library Name: | Microsoft Commerce 2002 Configuration Type Library
DLL Name: | MSCSCfg.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _SiteConfigReadOnly
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the _SiteConfigReadOnly interface to access the properties and methods of the SiteConfigReadOnly object.

Methods

[C++]
Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
[Visual Basic]
Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.
[Visual Basic]
Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.

Remarks

The SiteConfigReadOnly object allows access to more configuration data than does the SiteConfig object. With the SiteConfigReadOnly object, group resource values are returned when you access references to resources. In contrast, with the SiteConfig object, only references to the names of the resources are returned.

Depending on how you add your own custom resource, you should be able to use this object to access configuration settings from the Administration database.

See Also

Configuration Objects

Integrating Cutom Resources

[C++] GlobalConfig Object

[C++] SiteConfig Object

[Visual Basic] GlobalConfigObject

[Visual Basic] SiteConfig Object


_SiteConfigReadOnly Methods [C++]

SiteConfigReadOnly Methods [Visual Basic]

Methods

[C++]
Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.
[Visual Basic]
Method | Description
GetAppsInSite | Gets a list of Commerce Server 2002 applications for the specified site.
GetIfCollection | Use this method to convert values read from the Fields property, if appropriate, into either a SimpleList object or a Variant Array.
Initialize | Loads the site configuration data from the Administration database.
MakeArrayFromSimpleList | Converts the specified SimpleList object into an Array.
MakeArrayFromString | Converts values read from Fields property into an Array.
MakeSimpleListFromArray | Converts an Array into a SimpleList object.
MakeStringFromArray | Converts an Array into an encoded string, which can be written to the Fields property.
MakeStringFromSimpleList | Converts a SimpleList object into an encoded string, which can be written to the Fields property.


_SiteConfigReadOnly::GetAppsInSite Method [C++]

SiteConfigReadOnly.GetAppsInSite Method [Visual Basic]

Use this method to get a list of Commerce Server 2002 applications for the specified site.

Definition

[C++]
HRESULT _SiteConfig::GetAppsInSite(
  BSTR* strSiteName,
  VARIANT* vtAppNames
);
[Visual Basic]
Function GetAppsInSite(
  strSiteName As String
) As Variant

Parameters

strSiteName [C++]
[in] A pointer to the BSTR that contains the name of the site for which you want the list of Commerce Server 2002 applications that are currently running.
strSiteName [Visual Basic]
A String that contains the name of the site for which you want the list of running Commerce Server 2002 applications.
vtAppNames [C++]
[out, retval] A pointer to a VARIANT used to return the list of Commerce Server 2002 applications.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the list of Commerce Server 2002 applications.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

[C++]

The vtAppNames parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySiteName is a String
' vVariant is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vVariant = oSiteConfigReadOnly.GetAppsInSite(sMySiteName)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::GetIfCollection Method [C++]

SiteConfigReadOnly.GetIfCollection Method [Visual Basic]

Use this method to convert values read from the Fields property into the appropriate object such as a SimpleList object or Variant Array.

Definition

[C++]
HRESULT _SiteConfig::GetIfCollection(
  VARIANT* strList,
  VARIANT* retVal
);
[Visual Basic]
Function GetIfCollection(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A pointer to the VARIANT that contains the encoded string to be converted.
strList [Visual Basic]
A Variant that contains the encoded string to be converted.
retVal [C++]
[out, retval] A pointer to a VARIANT used to return the converted data in the appropriate data type.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted data in the appropriate data type.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The retVal parameter points to valid data only if the method completes successfully.

If the encoding in the string contained in the Fields property indicates a SimpleList object, then a SimpleList object is returned. If the encoding indicates a Variant Array, then a Variant Array is returned. If no collection object is indicated, then the method returns the original encoded input string.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vVariant is a Variant; vEncodedString is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vVariant = oSiteConfigReadOnly.GetIfCollection(vEncodedString)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::Initialize Method [C++]

SiteConfigReadOnly.Initialize Method [Visual Basic]

Use this method to load the site configuration from the Administration database.

Definition

[C++]
HRESULT _SiteConfigReadOnly::Initialize(
  BSTR bstrSiteName
);
[Visual Basic]
Sub Initialize(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the site name.
bstrSiteName [Visual Basic]
A String that contains the site name.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before the other methods in this object can be called.

On Developer Edition installations, code will be run to ensure that the maximum number of connections for an IIS Web site that host a Commerce Server 2002 application is not greater than 5.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sMySiteName is a string
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
oSiteConfigReadOnly.Initialize(sMySiteName)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeArrayFromSimpleList Method [C++]

SiteConfigReadOnly.MakeArrayFromSimpleList Method [Visual Basic]

Use this method to convert the specified SimpleList object into an Array.

Definition

[C++]
HRESULT _SiteConfig::MakeArrayFromSimpleList(
  IDispatch** list,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromSimpleList(
  list As Object
) As Variant

Parameters

list [C++]
[in] A IDispatch interface pointer to the SimpleList object that you want to convert into an Array.
list [Visual Basic]
The object reference to the SimpleList object that you wish to convert into an Array.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the converted Array.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The vtArray parameter points to valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyVariant is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vMyVariant = oSiteConfigReadOnly.MakeArrayFromSimpleList(varMySimpleList)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeArrayFromString Method [C++]

SiteConfigReadOnly.MakeArrayFromString Method [Visual Basic]

Use this method to convert an encoded string read from the Fields property into an Array. If the encoded string does not indicate Array properties, then the method returns the original string that was passed into it.

Definition

[C++]
HRESULT _SiteConfig::MakeArrayFromString(
  VARIANT strList,
  VARIANT* vtArray
);
[Visual Basic]
Function MakeArrayFromString(
  strList As Variant
) As Variant

Parameters

strList [C++]
[in] A VARIANT that contains the encoded string.
strList [Visual Basic]
A Variant that contains the encoded string.
vtArray [C++]
[out, retval] A pointer to a VARIANT used to return the converted Array or unconverted String.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted Array or unconverted String.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The vtArray parameter points to valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used on values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.

Caution

  • The MakeArrayFromString method in Microsoft Commerce Server 2002 performed an implicit conversion of some values in the encoded string to numeric values in the returned array. This conversion is not made in Commerce Server 2002 EE. Any application code that expects numeric values in the array will need to be modified to accept String values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant containing an encoded string
‘ read from the Fields property
' vArray is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vArray = oSiteConfigReadOnly.MakeArrayFromString(vEncoded)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeSimpleListFromArray Method [C++]

SiteConfigReadOnly.MakeSimpleListFromArray Method [Visual Basic]

Use this method to convert an Array into a SimpleList object.

Definition

[C++]
HRESULT _SiteConfig::MakeSimpleListFromArray(
  VARIANT* varArray,
  IDispatch** iSimpleList
);
[Visual Basic]
Function MakeSimpleListFromArray(
  varArray As Variant
) As Object

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to convert.
varArray [Visual Basic]
A Variant that contains the SimpleList object to convert.
iSimpleList [C++]
[out, retval] The address of a IDispatch interface pointer used to return the converted SimpleList object.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to the converted SimpleList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The iSimpleList parameter contains valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vMyArray is a Variant
' varMySimpleList is an object reference to a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
varMySimpleList = oSiteConfigReadOnly.MakeSimpleListFromArray(vMyArray)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeStringFromArray Method [C++]

SiteConfigReadOnly.MakeStringFromArray Method [Visual Basic]

Use this method to convert an Array object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _SiteConfig::MakeStringFromArray(
  VARIANT* varArray,
  VARIANT* vtEncodedString
);
[Visual Basic]
Function MakeStringFromArray(
  varArray As Variant
) As Variant

Parameters

varArray [C++]
[in] A pointer to the VARIANT that contains the Array to encode.
varArray [Visual Basic]
A Variant that contains the Array to encode.
vtEncodedString [C++]
[out, retval] A pointer to a Variant used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the encoded string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The vtEncodedString parameter points to valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.

Caution

  • The MakeArrayFromString method in Microsoft Commerce Server 2002 performed an implicit conversion of some values in the encoded string to numeric values in the returned array. This conversion is not made in Commerce Server 2002. Any application code that expects numeric values in the array will need to be modified to accept String values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a Variant
' vArray is a Variant
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vEncoded = oSiteConfigReadOnly.MakeStringFromArray(vArray)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly::MakeStringFromSimpleList Method [C++]

SiteConfigReadOnly.MakeStringFromSimpleList Method [Visual Basic]

Use this method to convert a SimpleList object into an encoded string, which can be written to the Fields property.

Definition

[C++]
HRESULT _SiteConfig::MakeStringFromSimpleList(
  IDispatch** slist,
  BSTR* strEncodedString
);
[Visual Basic]
Function MakeStringFromSimpleList(
  slist As Object
) As String

Parameters

slist [C++]
[in] An IDispatch interface pointer to the SimpleList object that you wish to convert into an encoded string.
slist [Visual Basic]
An object reference to the SimpleList object that you wish to convert into an encoded string.
strEncodedString [C++]
[out, retval] The address of a BSTR used to return the encoded string.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

[C++]

The strEncodedString parameter points to valid data only if the method completes successfully.

Important

  • There is a special group of methods used with multivalued arrays. These methods are the only approved and recommended way of storing and retrieving multivalued arrays in the Administration database. You must use the following methods with any property that has the structure of a multivalued array:
    • MakeArrayFromSimpleList
    • MakeSimpleListFromArray
    • MakeArrayFromString
    • MakeStringFromArray

Note

  • This method can only be used when updating values exposed by the Fields object. The client-side disconnected ADO recordset has no support for Variants, Arrays, SimpleLists or objects as Fields columns. Therefore, the SiteConfigReadOnly object resorts to storing data in an encoded string format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vEncoded is a string
' vArray is a Variant
' varMySimpleList is a SimpleList object
' oSiteConfigReadOnly is a Commerce SiteConfigReadOnly object
vEncoded = oSiteConfigReadOnly.MakeStringFromSimpleList(varMySimpleList)

See Also

[C++] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly Object


_SiteConfigReadOnly Properties [C++]

SiteConfigReadOnly Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.
[Visual Basic]
Property | Type | Description
Fields | Fields | Returns configuration settings of the site and the site resources. This property is read-only.


_SiteConfigReadOnly::get_Fields Property [C++]

SiteConfigReadOnly.Fields Property [Visual Basic]

The Fields property is a read-only Fields object. The Fields object contents hold the configuration settings of the site and its resources.

Definition

[C++]
HRESULT _SiteConfigReadOnly::get_Fields(
  Fields** Fields
);
[Visual Basic]
Property Fields As Object

Parameters

Fields [C++]
[out] The address into which this method will write a pointer to the Fields object used to return site and resource configuration information.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

All ADO, SQL, and ODBC errors will also be returned by this method.

Remarks

The Initialize method must be called before this method can be used.

[C++]

The Fields parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SiteConfigReadOnly Object

[C++] _SiteConfigReadOnly::Initialize

[Visual Basic] SiteConfigReadOnly Object

[Visual Basic] SiteConfigReadOnly.Initialize


Example Code for Configuration Objects

This section provides detailed examples of how to use the configuration objects.

Examples

Example | Description
Code to Dump Configuration Values | Describes how to use the AppConfig object to retrieve site configuration values.
Code to Create a Site | Describes how to create a site.
Code to Create and Manipulate a Global Resource | Describes how to create and manipulate a global resource.
Code to Create and Manipulate a Site-Level Resource | Describes how to create and manipulate a site-level resource.
Code to Export a Resource | Describes how to export a resource.
Code to Import a Resource | Describes how to import a resource.
Code to Retrieve Web Site Properties | Describes how to read the contents of a server-side file and write those contents to the browser.


Code to Dump Configuration Values

In this example, an instance of the AppConfig object is instantiated, then initialized to the name of the installed site (in this case, "Retail"). The GetOptionsDictionary method is called, and each key/value pair in the dictionary is written to the Web page.

The ASP example code follows.

  1. Create the AppConfig object instance and initialize it to the name of the installed site. In this example, a site named "Retail" already exists.
    Dim MSCSAppConfig
Set MSCSAppConfig = Server.CreateObject("Commerce.AppConfig")
MSCSAppConfig.Initialize("Retail")
  2. Create a dictionary object to hold the return value of the GetOptionsDictionary method, and dump the dictionary contents to the Web page.
    Dim dConfig
set dConfig = MSCSAppConfig.GetOptionsDictionary("")
For Each sKey in dConfig
    Response.Write sKey & " = " & dConfig.Value(sKey) & "<br>"
Next


Code to Create a Site

In this example, an instance of the GlobalConfig object is instantiated, then initialized. An application named "NewSite" is created and saved.

Create this example using the following Microsoft Visual Basic code.

  1. Create the GlobalConfig and initialize it.
    Dim oGlobConfig
Set oGlobConfig = CreateObject("Commerce.GlobalConfig")
oGlobConfig.Initialize
  2. Create a new application. The CreateSiteConfig method creates a site named "NewSite" and returns a SiteConfig object that contains the site configuration settings. After the site is created, save the configuration settings.
    Dim oSiteConfig
Set oSiteConfig = oGlobConfig.CreateSiteConfig("NewSite")
oGlobConfig.SaveConfig


Code to Create and Manipulate a Global Resource

In this example, a global resource is created for the site created in Code to Create a Site. Resource settings are retrieved, changed, retrieved again, and written to the screen. Create the example using the following Visual Basic code.

  1. Create the global resource. The schema class name is "MSCS_Predictor", as this example is creating a Predictor resource. After the resource is created, save the configuration settings.
    Dim oPredictor
oGlobConfig.CreateServiceConfig "oPredictor", "MSCS_Predictor"
oGlobConfig.SaveConfig
  2. Retrieve and change a property in the Predictor resource at the global level. This property, on creation, defaults to True. It will be retrieved, displayed, set to False, retrieved, and displayed again.
    Dim x, y
Set x = oGlobConfig.Fields("oPredictor").Value
y = x.Fields("f_UseExternalDB").Value
MsgBox y, , "f_UseExternalDB value before change"

' Assign a new property value
y = False
x.Fields("f_UseExternalDB").Value = y
' Save the settings
oGlobConfig.SaveConfig
Set x = oGlobConfig.Fields("oPredictor").Value
y = x.Fields("f_UseExternalDB").Value
MsgBox y, , "f_UseExternalDB value after change"


Code to Create and Manipulate a Site-Level Resource

In this example, a site-level resource is created for the site created in Code to Create a Site. Resource settings are retrieved, changed, retrieved again, and written to the screen. Create the example using the following Visual Basic code.

  1. Create the site-level resource to the site named "NewSite". The schema class name is "MSCS_Predictor", as this example is creating a Predictor resource. After the resource is created, save the configuration settings.
    Dim oPredictorAtSiteLevel
oSiteConfig.CreateComponentConfig "oPredictorAtSiteLevel", _
    "MSCS_Predictor"
  2. Retrieve and change a property in the Predictor resource at the site level. This property, on creation, defaults to True. It will be retrieved, displayed, set to False, retrieved, and displayed again.
    Dim x, y
Set x = oSiteConfig.Fields("oPredictorAtSiteLevel").Value
y = x.Fields("f_UseExternalDB").Value
MsgBox y, , "f_UseExternalDB value before change"
' Assign a new property value
y = False
x.Fields("f_UseExternalDB").Value = y
' Save the settings
'oSiteConfig.SaveConfig
Set x = oSiteConfig.Fields("oPredictorAtSiteLevel").Value
y = x.Fields("f_UseExternalDB").Value
MsgBox y, , "f_UseExternalDB value after change"


Code to Export a Resource

In this example, the site-level resource that was created in Code to Create and Manipulate a Site-Level Resource is exported to the file C:\temp\ExportedFile.txt. The resource is then deleted, and the deletion operation results are saved.

  1. Export the site-level Predictor resource to the file C:\ExportedFile.txt
    oSiteConfig.ExportResource "oPredictorAtSiteLevel", _
    "c:\ExportedFile.txt"
  2. Delete the site level Predictor resource and save the deletion operation results.
    oSiteConfig.DeleteComponentConfig "oPredictorAtSiteLevel"
oSiteConfig.SaveConfig


Code to Import a Resource

In this example, the site-level Predictor resource that was exported in Code to Export a Resource is now imported. The code tests that it exists by displaying a resource property.

oSiteConfig.ImportResource "c:\ExportedFile.txt"
Set x = oSiteConfig.Fields("oPredictorAtSiteLevel").Value
y = x.Fields("f_UseExternalDB").Value
MsgBox y, , "f_UseExternalDB value after import"


Code to Retrieve Web Site Properties

The following example enumerates all the Web sites on a server, then for each Web site, it obtains the site properties and displays the VrPath property. Create the example using the following Visual Basic code.

  1. Create the required objects.
    Dim oWebServer, WebSites, oDict
Set oWebServer = CreateObject("Commerce.AdminWebServer")
  2. Call the GetWebSites method of the AdminWebServer object instance. The method returns an array of integers representing all server instances.
    WebSites = oWebServer.GetWebSites
  3. Return the WebInstance properties in a dictionary, and then display the dictionary values.
    For WebInstance = (LBound(WebSites, 1) + 1) To (UBound(WebSites, 1) + 1)
    Set oDict = oWebServer.GetWebSiteProperties(WebInstance)
    Dim ArrStr(100), i
    i = 1
    For Each property In oDict
    ArrStr(i) = property & " = " & oDict.Value(property)
        str1 = str1 & ArrStr(i) & vbCrLf
        i = i + 1
    Next
    MsgBox str1
    str1 = ""
Next


Core Objects

The core objects perform a variety of functions including writing error and warning events to the event log, retrieving Web site properties, storing name/value pairs, generating globally unique identifiers (GUIDs), retrieving the contents of server-side files, and securing the site.

The Core Objects Programming Concepts topic describes the major issues relating to the use of the general purpose objects.

Objects

Visual Basic Reference | C++ Invocation | Description
AdminEventLog | AdminEventLog | Writes error, informational, warning, and success messages to the event log.
AdminFiles | AdminFiles | Provides read-only access to server-side binary and text files.
AppFrameWork | AppFrameWork | Provides formatting and validation methods that simplify forms processing in Active Server Pages (ASP).
AuthManager | AuthManager | Provides a secure, standardized, and extensible way to manage authentication of users.
BizDeskSecurity | BizDeskSecurity | Allows specific Commerce Server Business Desk modules to be hidden from particular users.
DataFunctions | DataFunctions | Provides methods to perform locale-based data type handling and value range checking.
DBStorage | DBStorage | Provides methods for mapping Dictionary and SimpleList objects to and from a database, primarily for the storage of receipt and order information.
Dictionary | Dictionary | Supports the creation, storage, and retrieval of name/value pairs in memory.
DictionaryXMLTransforms | DictionaryXMLTransforms | Transforms data in a Dictionary object into Extensible Markup Language (XML), and XML data into a Dictionary object.
EuroDisplay | EuroDisplay | Converts and formats currency amounts for use where multiple currencies must be displayed.
GenID | GenID | Provides methods to generate globally unique identifiers (GUID), and to create and maintain multiple, global sequential counters which are persisted in a database.
MessageManager | MessageManager | Stores text strings in multiple languages. One usage involves the Order Processing pipeline (OPP) components describing error conditions generated during order form processing.
SimpleList | SimpleList | Allows creation of an array of Variants that supports enumeration.

Examples

Example | Description
Code to Write an Error Event to the Commerce Server Event Log | Describes how to write an error event to the Commerce Server 2002 event log.
Code to Read and Display the Contents of a Server-Side File | Describes how to read the contents of a server-side file and write those contents to the browser.
Code to Dump Dictionary Values | Describes how to dump the contents of a Dictionary object.
Code to Create and Manipulate a SimpleList | Describes how to create and work with the SimpleList object.
Code to Implement Custom Cache Components | Describes how to implement custom cache components.
Code to Manipulate an LRUCache Object | Describes how to manipulate an LRUCache object
Code to Generate a GUID | Describes how to generate a globally unique identifier (GUID).
Code to Control Display of a Business Desk Module | Describes how to control whether a specified Business Desk module is displayed to the current user.
Code to Create and Initialize AuthManager | Describes how to instantiate and initialize the AuthManager object.
Code to Manipulate Site Configuration Properties | Describes how to change CS Authentication resource properties.
Code to Retrieve Login Credentials | Describes how to retrieve the user ID and password submitted on an HTML form using either the Get method or the Post method.
Code to Set a New MSCSProfile Ticket | Describes how to create an MSCSProfile ticket.
Code to Retrieve a Profile and Set an MSCSAuth Ticket | Describes how to retrieve a profile using the Commerce Server Profiles resource, and set an MSCSAuth ticket.
Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket | Describes how to retrieve the user ID and password submitted on a HTML form using the Post method, get the profile corresponding to the user ID using the Commerce Server Profiles resource, set the user ID in an MSCSAuth ticket, and redirect the user to the originally requested URL.
Code to Set a Custom Property on a Ticket | Describes how to create a globally unique identifier (GUID) string and place it on an MSCSAuth ticket as a guid property.
Code to Generate an Encoded URL String | Describes how to generate an encoded URL string from a file name.
Code to Apply Data Type Conversion and Range Checking | Describes how to perform locale-based data type conversion and range validation.
Code to Manipulate and Display Euro Values | Describes how to use the EuroDisplay object to convert currency amounts.
Code to Convert Between Numbers and Strings | Describes how to use the conversion functions of the DataFunctions object.
Code to Display Locale-Specific Strings | Describes how to use locale-based conversion functions of the DataFunctions object.
Code to Manage Common Error Messages to Users | Describes how to add languages and messages to the MessageManager object, and how to write messages to a Web browser.


Core Object Programming Concepts

The following objects are considered general purpose, and can be used in many contexts within Commerce Server:

  • AdminEventLog Object
  • AdminFiles Object
  • AppFrameWork Object
  • AuthManager Object
  • BizDeskSecurity Object
  • DataFunctions Object
  • Dictionary Object
  • EuroDisplay Object
  • GenID Object
  • MessageManager Object
  • SimpleList Object

AdminEventLog Object

The AdminEventLog object is used to write error, informational, and warning messages to the event log, which can be viewed in the Commerce Server Manager Event Viewer snap-in.

For more information, see AdminEventLog Object.

AdminFiles Object

The AdminFiles object is used to return the contents of a file on the server. The file contents can be of any type, such as text, bitmaps, numeric data, and so on.

For more information, see AdminFiles Object.

AppFrameWork Object

The AppFrameWork object replaces much of the functionality of the Page object, the latter of which will not be supported in future releases. The Page object must be created on every page; in contrast, the AppFrameWork object has better performance because it is created once in the Global.asa file and can be used on any page.

The majority of the methods for the AppFrameWork object have names that begin with Request. These methods apply locale-based data type conversion and data range checking to data retrieved from a browser request. There are two ways to send data from a browser to a server: Data can be appended to the request URL as a query string (for example, http://servername/mysite/default.asp?keyword=books) or it can be posted via forms. Performing these operations on user input ensures that the input data retrieved by an Active Server Pages (ASP) page can be inserted without error into the database storage for the site or passed to the Order Processing pipeline (OPP) in an OrderForm object without generating pipeline or page syntax errors.

Object Dependencies

Because the Request methods of the AppFrameWork and Page object rely on the DataFunctions object for method implementation, you must create the DataFunctions object before you create an AppFrameWork object or a Page object.

The following table shows the values returned by Request methods under different conditions.

Condition | Method returns
The key/value pair is present on request and is valid. | The key value returned from the URL query string or form-post variable.
The value returned is empty or Null (for example, the user did not type a value for a search key), or the value is of the wrong type. | The default value (Null, or the value specified by the Default parameter).
The value returned is out of the specified range. | Null.
The value returned is invalid according to the rules for the locale. | Null.

AuthManager Object

The AuthManager object identifies users and gathers information used for user authentication. The methods and properties of this object control and access the contents of cookies and encoded URL strings. For more information, see AuthManager Object.

Authentication uses tickets, a string of property/value pairs, to provide information about the user. Two types of tickets are supported, an MSCSAuth ticket and an MSCSProfile ticket. Their differences are summarized in the following table.

Characteristics | MSCSAuth | MSCSProfile
Storage | Session cookie/encoded URL string | Persistent cookie/encoded URL string
User Type | Registered | Anonymous
Contents | Unique user ID, last login time, time window | Unique user ID

In this context, registered refers to a user who has successfully completed a registration process for the relevant site.

The AuthManager object provides methods to place the ticket into a cookie, if cookies are enabled on the client, or, if cookies are not enabled, into an encoded URL string. When used with the AuthFilter ISAPI filter, cookies must be enabled.

For an MSCSAuth ticket, the AuthManager object can check the validity of the ticket using the IsAuthenticated method. This method checks whether the request from the user contains an MSCSAuth ticket. If it does, the method checks the current time against the last login time set on the ticket to see if it is within the time window specified in the ticket. If it is, the method returns True, indicating a valid MSCSAuth ticket. If the current time is within five minutes of the last login time plus the time window, the last login time on the ticket is changed to the current time so the active user can remain browsing.

A user may have both types of tickets. In this case, the MSCSAuth ticket takes precedence.

If the user does not allow cookies, the ticket is placed in an encoded URL string. The URL string may be used to pass user information between pages and Web sites, provided all the URLs and query strings are generated by the AuthManager object.

The AuthManager object provides a transparent interface to the tickets, whether they are stored in cookies or in URL query strings, and handles encryption and decryption of the tickets to ensure security.

The AuthManager object must be used with ASP since it depends on ASP intrinsic objects. Do not create the AuthManager object in application scope as it has dependencies on individual user sessions. The AuthManager object should be created and destroyed on each ASP page.

BizDeskSecurity Object

The Commerce Server Business Desk security infrastructure allows individual Business Desk modules to be displayed or hidden, depending on the credentials of the user. The CanUserAccess method of the BizDeskSecurity object returns True if the current user has read access rights for a specified Business Desk module. This method retrieves the access rights for the user from the access control list (ACL) for the file. For more information, see BizDeskSecurity Object.

The Active Server Pages (ASP) file corresponding to a Business Desk module is found in the id attribute of the module element of the XML file for the module. The XML file for each module is found in the Config folder located under the Business Desk application folder. For more information about the XML format, see Module Configuration Files.

DataFunctions Object

The DataFunctions object performs locale-based data type handling and value range checking on values that you submit to the database or that you pass in an OrderGroup object to the Order Processing pipeline (OPP).

The DataFunctions object is usually created in the Global.asa file. Use the Active Server Pages (ASP) Server object CreateObject method to create a DataFunctions object, as follows:

Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Initialize the object after instantiation
MSCSDataFunctions.Locale = dictConfig.i_SiteDefaultLocale

Also, store the new object in the Application object in the Global.asa file, as follows:

Set Application("MSCSDataFunctions") = MSCSDataFunctions

The AppFrameWork and Page objects have a direct dependency on the DataFunctions object; the DataFunctions object must be created before an AppFrameWork object or a Page object is created.

Dictionary Object

A Commerce Server Dictionary object is a collection object that supports the creation, storage, and retrieval of key/value pairs in memory. Every element in a Dictionary object is a Variant, which means you can create a Dictionary object that consists of almost any kind of values (including other Dictionary objects), and that you can store any combination of Variant types in the same Dictionary object.

The Commerce Server architecture uses the Dictionary object for a number of specialized purposes, including the SiteConfig object. However, because a Dictionary object is designed to be a general purpose collection, you can use it for almost anything that its internal structure supports.

For more information, see Dictionary Object.

EuroDisplay Object

The EuroDisplay object can be used to convert and format currencies. It was originally designed to handle use of the Euro currency, but it can be used for conversion between any two currencies. This object provides convenient currency conversion functionality.

GenID Object

This object is used to generate globally unique identifiers (GUIDs).

For more information, see GenID Object.

MessageManager Object

The MessageManager object stores error messages in multiple languages that the Order Processing pipeline (OPP) components use to describe error conditions generated during OrderForm object processing.

SimpleList Object

A Commerce Server SimpleList object consists of an array of Variants that supports enumeration and access by index. The SimpleList object is used extensively throughout Commerce Server. Use a SimpleList object instead of a Dictionary object in circumstances where accessing the stored content by index is important.

For more information, see SimpleList Object.


AdminEventLog Object [C++]

AdminEventLog Object [Visual Basic]

Use this object to write error, informational, and warning messages to the event log.

ProgID: | Commerce.AdminEventLog (Externally creatable)
COM Class Name: | AdminEventLog
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAdminEventLog
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IAdminEventLog interface to access the methods of the AdminEventLog object.

Methods

[C++]
Method | Description
Initialize | Initializes the site, the source, and the event server for writing events.
WriteErrorEvent | Writes error messages (such as resource problems, missing files, and so on) to the Commerce Server event log.
WriteInformationalEvent | Writes informational messages (such as names of logged-on users) to the Commerce Server event log.
WriteWarningEvent | Writes warning messages (such as low memory levels) to the Commerce Server event log.
[Visual Basic]
Method | Description
Initialize | Initializes the site, the source, and the event server for writing events.
WriteErrorEvent | Writes error messages (such as resource problems, missing files, and so on) to the Commerce Server event log.
WriteInformationalEvent | Writes informational messages (such as names of logged-on users) to the Commerce Server event log.
WriteWarningEvent | Writes warning messages (such as low memory levels) to the Commerce Server event log.


AdminEventLog Methods [C++]

AdminEventLog Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Initializes the site, the source, and the event server for writing events.
WriteErrorEvent | Writes error messages (such as resource problems, missing files, and so on) to the Commerce Server event log.
WriteInformationalEvent | Writes informational messages (such as names of logged-on users) to the Commerce Server event log.
WriteWarningEvent | Writes warning messages (such as low memory levels) to the Commerce Server event log.
[Visual Basic]
Method | Description
Initialize | Initializes the site, the source, and the event server for writing events.
WriteErrorEvent | Writes error messages (such as resource problems, missing files, and so on) to the Commerce Server event log.
WriteInformationalEvent | Writes informational messages (such as names of logged-on users) to the Commerce Server event log.
WriteWarningEvent | Writes warning messages (such as low memory levels) to the Commerce Server event log.


IAdminEventLog::Initialize Method [C++]

AdminEventLog.Initialize Method [Visual Basic]

Use this method to initialize the object.

Definition

[C++]
HRESULT IAdminEventLog::Initialize(
  BSTR bstrServer
);
[Visual Basic]
Sub Initialize(
  bstrServer As String
)

Parameters

bstrServer [C++]
[in] A BSTR that contains the server name.
bstrServer [Visual Basic]
A String that contains the server name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.Initialize("ServerName")

See Also

[C++] AdminEventLog Object

[Visual Basic] AdminEventLog Object


IAdminEventLog::WriteErrorEvent Method [C++]

AdminEventLog.WriteErrorEvent Method [Visual Basic]

Use this method to write an error event to the Commerce Server event log.

Definition

[C++]
HRESULT IAdminEventLog::WriteErrorEvent(
  BSTR bstrSiteName,
  BSTR bstrMessage
);
[Visual Basic]
Sub WriteErrorEvent(
  String bstrSiteName,
  String bstrMessage
)

Parameters

bstSiteName [C++]
[in] A BSTR that contains the site name.
bstSiteName [Visual Basic]
A String that contains the site name.
bstrMessage [C++]
[in] A BSTR that contains the error event message string.
bstrMessage [Visual Basic]
A String that contains the error event message string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteErrorEvent("MySite", _
                               "Database does not exist")

See Also

[C++] AdminEventLog Object

[C++] IAdminEventLog::WriteInformationalEvent

[C++] IAdminEventLog::WriteWarningEvent

[Visual Basic] AdminEventLog Object

[Visual Basic] AdminEventLog.WriteInformationalEvent

[Visual Basic] AdminEventLog.WriteWarningEvent


IAdminEventLog::WriteInformationalEvent Method [C++]

AdminEventLog.WriteInformationalEvent Method [Visual Basic]

Use this method to write an informational event to the Commerce Server event log.

Definition

[C++]
HRESULT IAdminEventLog::WriteInformationalEvent(
  BSTR bstrSiteName,
  BSTR bstrMessage
);
[Visual Basic]
Sub WriteInformationalEvent(
  String bstrSiteName,
  String bstrMessage
)

Parameters

bstSiteName [C++]
[in] A BSTR that contains the site name.
bstSiteName [Visual Basic]
A String that contains the site name.
bstrMessage [C++]
[in] A BSTR that contains the informational event message string.
bstrMessage [Visual Basic]
A String that contains the informational event message string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteInformationalEvent("MySite", _
                         "Database accessed successfully")

See Also

[C++] AdminEventLog Object

[C++] IAdminEventLog::WriteErrorEvent

[C++] IAdminEventLog::WriteWarningEvent

[Visual Basic] AdminEventLog Object

[Visual Basic] AdminEventLog.WriteErrorEvent

[Visual Basic] AdminEventLog.WriteWarningEvent


IAdminEventLog::WriteWarningEvent Method [C++]

AdminEventLog.WriteWarningEvent Method [Visual Basic]

Use this method to write a warning event to the Commerce Server event log.

Definition

[C++]
HRESULT IAdminEventLog::WriteWarningEvent(
  BSTR bstrSiteName,
  BSTR bstrMessage
);
[Visual Basic]
Sub WriteWarningEvent(
  String bstrSiteName,
  String bstrMessage
)

Parameters

bstSiteName [C++]
[in] A BSTR that contains the site name.
bstSiteName [Visual Basic]
A String that contains the site name.
bstrMessage [C++]
[in] A BSTR that contains the warning event message string.
bstrMessage [Visual Basic]
A String that contains the warning event message string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAdminEventLog is a Commerce.AdminEventLog object.

oAdminEventLog.WriteWarningEvent("MySite", _
                                 "Low Memory Availability")

See Also

[C++] AdminEventLog Object

[C++] IAdminEventLog::WriteErrorEvent

[C++] IAdminEventLog::WriteInformationalEvent

[Visual Basic] AdminEventLog Object

[Visual Basic] AdminEventLog.WriteErrorEvent

[Visual Basic] AdminEventLog.WriteInformationalEvent


AdminFiles Object [C++]

AdminFiles Object [Visual Basic]

Use this object for read-only access to server-side files. Different methods are provided to access binary and text files, respectively.

ProgID: | Commerce.AdminFiles (Externally creatable)
COM Class Name: | CAdminFiles
Type Library Name: | Commerce Admin 1.0 Type Library
DLL Name: | MSCSadmin.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAdminFiles
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IAdminFiles interface to access the methods of the AdminFiles object.

Methods

[C++]
Method | Description
ReadFromBinaryFile | Reads the content of the specified binary file.
ReadFromFile | Reads the content of the specified text file.
[Visual Basic]
Method | Description
ReadFromBinaryFile | Reads the content of the specified binary file.
ReadFromFile | Reads the content of the specified text file.

See Also

General Purpose Objects


AdminFiles Methods [C++]

AdminFiles Methods [Visual Basic]

Methods

[C++]
Method | Description
ReadFromBinaryFile | Reads the content of the specified binary file.
ReadFromFile | Reads the content of the specified text file.
[Visual Basic]
Method | Description
ReadFromBinaryFile | Reads the content of the specified binary file.
ReadFromFile | Reads the content of the specified text file.


IAdminFiles::ReadFromBinaryFile Method [C++]

AdminFiles.ReadFromBinaryFile Method [Visual Basic]

Use this method to read the contents of the specified binary file. The file can contain any type of data, such as a numeric data or a bitmap.

Definition

[C++]
HRESULT IAdminFiles::ReadFromBinaryFile(
 BSTR bstrFileName,
 VARIANT* prgByte
);
[Visual Basic]
Function ReadFromBinaryFile(
 bstrFileName As String
) As Variant

Parameters

bstrFileName [C++]
[in] A BSTR that specifies the path and file name to read.
bstrFileName [Visual Basic]
A String that specifies the path and file name to read.
prgByte [C++]
[out] The address of a VARIANT used to return the file contents.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the file contents.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The prgByte parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example opens the specified file and
' then uses the Response.BinaryWrite method to download
' the file to a browser.
' oFile is a Commerce AdminFiles object.
' vFileContents is a variable of type Variant.
vFileContents = oFile.ReadFromBinaryFile("c:\temp\postcard.jpg")
Response.ContentsType = "image/jpeg"
Response.BinaryWrite vFileContents

See Also

[C++] AdminFiles Object

[C++] IAdminFiles::ReadFromFile

[Visual Basic] AdminFiles Object

[Visual Basic] AdminFiles.ReadFromFile


IAdminFiles::ReadFromFile Method [C++]

AdminFiles.ReadFromFile Method [Visual Basic]

Use this method to return the contents of the specified text file. The contents of the file are returned as a text string.

Definition

[C++]
HRESULT IAdminFiles::ReadFromFile(
 BSTR bstrFileName,
 BSTR* pbstrOut
);
[Visual Basic]
Function ReadFromFile(
 bstrFileName As String
) As String

Parameters

bstrFileName [C++]
[in] A BSTR that specifies the path and file name to read.
bstrFileName [Visual Basic]
A String that specifies the path and file name to read.
pbstrOut [C++]
[out] The address of a BSTR used to return the file contents.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String containing the file contents.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrOut parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oFile is a reference to a Commerce AdminFiles object.
' sFileContents is a varaible of type String.
sFileContents = oFile.ReadFromFile("c:\temp\newfile.asp")

See Also

[C++] AdminFiles Object

[C++] IAdminFiles::ReadFromBinaryFile

[Visual Basic] AdminFiles Object

[Visual Basic] IAdminFiles::ReadFromBinaryFile


AppFrameWork Object [C++]

AppFrameWork Object [Visual Basic]

Use this object to simplify forms processing in Active Server Pages (ASP).

ProgID: | Commerce.AppFrameWork (Externally creatable)
COM Class Name: | AppFrameWork
Type Library Name: | AspLib 1.0 Type Library
DLL Name: | asplib.dll
Threading Model: | Both
[C++]
COM Interface Name: | IAppFrameWork
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the IAppFrameWork interface to access the methods of the AppFrameWork object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Option | Generates an option tag on a page.
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a Date value (Date Variant).
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a DateTime value (Date Variant).
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it as money, based on the specified locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it.
RequestTime | Retrieves a value from a URL query string or form post variable and converts it to a Time value (Date Variant).
VerifyWith | Generates hidden input fields that contain verification values.
VirtualDirectory | Returns the name of the virtual directory for the site.
[Visual Basic]
Method | Description
Option | Generates an option tag on a page.
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a Date value (Date Variant).
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a DateTime value (Date Variant).
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it as money, based on the specified locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it.
RequestTime | Retrieves a value from a URL query string or form post variable and converts it to a Time value (Date Variant).
VerifyWith | Generates hidden input fields that contain verification values.
VirtualDirectory | Returns the name of the virtual directory for the site.

Remarks

The AppFrameWork object methods fall mainly into the following categories:

  • Formatting. The Option method makes it possible for you to easily format HTML page items, and where applicable, to determine HTML item values based upon a run time evaluation of other variables used in your page.
  • Validation. These methods begin with Request, and are used to retrieve values from a URL query string, convert the values to given data types based on a locale value, and validate these values against a specified range.

Before you create this object, you must create the Commerce.DataFunctions object in Application scope.

The AppFramework object is not available through the Common Language Runtime Interop Layer or the Base Class Library for use within the Commerce Server .NET Application Framework.

See Also

Core Objects


IAppFrameWork Methods [C++]

AppFrameWork Methods [Visual Basic]

Methods

[C++]
Method | Description
Option | Generates an option tag on a page.
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a Date value (Date Variant).
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a DateTime value (Date Variant).
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it as money, based on the specified locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it.
RequestTime | Retrieves a value from a URL query string or form post variable and converts it to a Time value (Date Variant).
VerifyWith | Generates hidden input fields that contain verification values.
VirtualDirectory | Returns the name of the virtual directory for the site.
[Visual Basic]
Method | Description
Option | Generates an option tag on a page.
RequestDate | Retrieves a value from a URL query string or form post variable and converts it to a Date value (Date Variant).
RequestDateTime | Retrieves a value from a URL query string or form post variable and converts it to a DateTime value (Date Variant).
RequestFloat | Retrieves a value from a URL query string or form post variable and converts it to a floating-point value.
RequestMoneyAsNumber | Retrieves a value from a URL query string or form post variable and converts it as money, based on the specified locale.
RequestNumber | Retrieves a value from a URL query string or form post variable and converts it to a number.
RequestString | Retrieves a value from a URL query string or form post variable and performs string processing on it.
RequestTime | Retrieves a value from a URL query string or form post variable and converts it to a Time value (Date Variant).
VerifyWith | Generates hidden input fields that contain verification values.
VirtualDirectory | Returns the name of the virtual directory for the site.


IAppFrameWork::Option Method [C++]

AppFrameWork.Option Method [Visual Basic]

Use this method to generate an OPTION item in an HTML form selection list with the value and selection state that you specify.

Definition

[C++]
HRESULT IAppFrameWork::Option(
  VARIANT vtVal1,
  VARIANT vtVal2,
  BSTR* pbstrRet
);
[Visual Basic]
Function Option(
  vtVal1 As Variant,
  vtVal2 As Variant
) As String

Parameters

vtVal1 [C++]
[in] A VARIANT that contains the value of the option in the selection list.
vtVal1 [Visual Basic]
A Variant that contains the value of the option in the selection list.
vtVal2 [C++]
[in] A VARIANT that contains a value that indicates whether the list option is the selected option. If the vtVal2 parameter is equal to the vtVal1 parameter, then the HTML keyword SELECTED is inserted in the definition of the option list.
vtVal2 [Visual Basic]
A Variant that contains a value that indicates whether the list option is the selected option. If the vtVal2 parameter is equal to the vtVal1 parameter, then the HTML keyword SELECTED is inserted in the definition of the option list.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the OPTION item.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the OPTION item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' The following example generates a selection field in an
' HTML form to enable the customer to select the expiration
' year of their credit card. The Option method generates
' <OPTION VALUE="> tags and marks the current year
' as selected:
<% iyear = Year(date) %>

<SELECT NAME="_cc_expyear">
    <% = oAppFrameWork.Option(2000, iyear) %> 2000
    <% = oAppFrameWork.Option(2001, iyear) %> 2001
    <% = oAppFrameWork.Option(2002, iyear) %> 2002
    <% = oAppFrameWork.Option(2003, iyear) %> 2003
</SELECT>
' Following is the HTML output that is produced,
' assuming that the current year is 2001:
<SELECT NAME="_cc_expyear">
    <OPTION VALUE="2000"> 2000
    <OPTION VALUE="2001" SELECTED> 2001
    <OPTION VALUE="2002"> 2002
    <OPTION VALUE="2003"> 2003
</SELECT>

See Also

[C++] AppFrameWork Object

[Visual Basic] AppFrameWork Object


IAppFrameWork::RequestDate Method [C++]

AppFrameWork.RequestDate Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a Date value (Date Variant), based on the specified or default locale.

Definition

[C++]
HRESULT IAppFrameWork::RequestDate(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestDate(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the date value to return if the requested URL query string or form post variable does not exist or contains no value. The default cannot contain DateTime and Time values.
vtDefault [Visual Basic]
A Variant that contains the date to return if the requested URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Time values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains a date value that specifies the low end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. If the converted value is less than vtMin, then NULL is returned.
vtMin [Visual Basic]
A Variant that contains a date value that specifies the low end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains a date value that specifies the high end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, then NULL is returned.
vtMax [Visual Basic]
A Variant that contains a date value that specifies the high end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains a number that specifies the locale to use to convert the date. If this value is not specified, the RequestDate method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that that contains a number that specifies the locale to use to convert the date. If this value is not specified, the RequestDate method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the processed date value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Date Variant that contains the processed date value. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully. If any validation fails, the pvtRet parameter will be NULL.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' This example assumes that the date value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Date">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the date into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestDate method as follows:
vDate = oAppFrameWork.RequestDate("Date", "2/27/01", "1/1/01", _
    "12/31/01",1033)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IAppFrameWork.RequestDateTime

[C++] IDataFunctions_4_0::ConvertDateString

[C++] IDataFunctions_4_0::Date

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] AppFrameWork.RequestDateTime

[Visual Basic] DataFunctions.ConvertDateString

[Visual Basic] DataFunctions.Date


IAppFrameWork::RequestDateTime Method [C++]

AppFrameWork.RequestDateTime Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a DateTime value (Date Variant), based on the specified or default locale.

Definition

[C++]
HRESULT IAppFrameWork::RequestDateTime(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestDateTime(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain Time values.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain Time values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains a DateTime value that specifies the low end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. If the converted value is less than vtMin, then NULL is returned.
vtMin [Visual Basic]
A Variant that contains a DateTime value that specifies the low end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains a DateTime value that specifies the high end of the range against which to validate the value of the bstrName parameter. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process.If the converted value is greater than vtMax, then NULL is returned.
vtMax [Visual Basic]
A Variant that contains a DateTime value that specifies the high end of the range against which to validate the value of the bstrName parameter. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that identifies the locale to be used to convert the date/time string. If this parameter is not specified, the RequestDateTime method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that identifies the locale to be used to convert the date/time string. If this parameter is not specified, the RequestDateTime method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the DateTime value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains a DateTime value. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully. If any validation fails, the pvtRet parameter will be NULL.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' This example assumes that the DateTime value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="DateTime">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the date into the form and clicks
' the Send Info button, the value of this form field can
' be retrieved by the RequestDate method as follows:
vDate = oAppFrameWork.RequestDateTime("DateTime", _
    "1/1/01 12:00:01 AM", "1/1/01 12:00:01 AM", _
     "12/31/01 11:59:59 PM", 1033)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IAppFrameWork::RequestDate

[C++] IDataFunctions_4_0::ConvertDateTimeString

[C++] IAppFrameWork::RequestTime

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] AppFrameWork.RequestDate

[Visual Basic] DataFunctions.ConvertDateTimeString

[Visual Basic] AppFrameWork.RequestTime


IAppFrameWork::RequestFloat Method [C++]

AppFrameWork.RequestFloat Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a floating-point value, based on the specified or default locale.

Optionally, the RequestFloat method also checks the converted number against the specified range.

Definition

[C++]
HRESULT IAppFrameWork::RequestFloat(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestFloat(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number that specifies the low end of the range of values against which to validate the converted value. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process. If the converted value is less than vtMin, then NULL is returned.
vtMin [Visual Basic]
A Variant that contains the number that specifies the low end of the range of values against which to validate the converted value. The default value is NULL, indicating that this parameter is ignored. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the number that specifies the high end of the range of values against which to validate the converted value. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, then NULL is returned.
vtMax [Visual Basic]
A Variant that contains the number that specifies the high end of the range of values against which to validate the converted value. The default value is NULL, indicating that this parameter is ignored. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that identifies the locale to use to convert the value. If this value is not specified, the RequestFloat method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that identifies the locale to use to convert the value. If this value is not specified, the RequestFloat method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the floating-point value. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the floating-point value. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completes successfully. If any validation fails, the pvtRet parameter will be NULL.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' vFloat is a Variant.
' This example assumes that the float value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Float">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the number into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestFloat method as follows:
vFloat = oAppFrameWork.RequestFloat("Float", 0, 0, 100, 1033)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IAppFrameWork::RequestNumber

[C++] IDataFunctions_4_0::ConvertFloatString

[C++] IDataFunctions_4_0::Float

[C++] IDataFunctions_4_0::ValidateFloat

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] AppFrameWork.RequestNumber

[Visual Basic] DataFunctions.ConvertFloatString

[Visual Basic] DataFunctions.Float

[Visual Basic] DataFunctions.ValidateFloat


IAppFrameWork::RequestMoneyAsNumber Method [C++]

AppFrameWork.RequestMoneyAsNumber Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it as money, based on the specified locale.

Definition

[C++]
HRESULT IAppFrameWork::RequestMoneyAsNumber(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestMoneyAsNumber(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. If the default value is a string value, it will be converted into the base monetary value, otherwise, it is assumed that the value is in base monetary units.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is also not supplied, the method returns NULL. If the default value is a string value, it will be converted into the base monetary value; otherwise, it is assumed that the value is in base monetary units. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the monetary value that specifies the low end of the range against which to validate the converted value. A value in base monetary units is expected for the vtMin parameter. If the converted value is less than vtMin, then NULL is returned.
vtMin [Visual Basic]
A Variant that contains the monetary value that specifies the low end of the range against which to validate the converted value. A value in base monetary units is expected for the vtMin parameter. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the monetary value that specifies the high end of the range against which to validate the converted value. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process. A value in base monetary units is expected for the vtMax parameter. If the converted value is greater than vtMax, then NULL is returned.
vtMax [Visual Basic]
A Variant that specifies the high end of the range against which to validate the converted value. A value in base monetary units is expected for the vtMax parameter. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestMoneyAsNumber method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestMoneyAsNumber method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the number in the base monetary units of the specified or default locale. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains a number in the base monetary units of the specified or default locale. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully. If any validation fails, the pvtRet parameter will be NULL.

If this method completes successfully it returns a number that represents the value of the specified string in the base monetary unit of the specified local. Thus, given a value in US dollars, it returns the number of cents in that value.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' In the following example, the value of a field on the purchase
' form (filled out by the customer) is read into the
' variable list_price.

<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="list_price">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' The vtMax argument is the upper limit
' of a Variant variable. Using this value as the upper limit and
' zero (0) as the lower limit of the range check ensures that
' the value is not negative:
list_price = oAppFrameWork .RequestMoneyAsNumber("list_price", 0, 0, _
    2147483647)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertMoneyStringToNumber

[C++] IDataFunctions_4_0::Money

[C++] IAppFrameWork::RequestFloat

[C++] IAppFrameWork::RequestNumber

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertMoneyStringToNumber

[Visual Basic] DataFunctions.Money

[Visual Basic] AppFrameWork.RequestFloat

[Visual Basic] AppFrameWork.RequestNumber


IAppFrameWork::RequestNumber Method [C++]

AppFrameWork.RequestNumber Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert it to a number based on the specified or default locale.

Optionally, the RequestNumber method checks the converted number against the specified range and validates it based on the specified locale.

Definition

[C++]
HRESULT IAppFrameWork::RequestNumber(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestNumber(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the value to return if the requested URL query string or form post variable is not present or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number value that specifies the low end of the range against which to validate the converted value. If the converted value is less than vtMin, then NULL is returned. If the variant is of type VT_NULL, the vtMin parameter value is not considered in the validation process.
vtMin [Visual Basic]
A Variant that contains the number value that specifies the low end of the range against which to validate the converted value. If the converted value is less than vtMin, then NULL is returned. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the number value that specifies the high end of the range against which to validate the converted value. If the converted value is greater than vtMax, then NULL is returned. If the variant is of type VT_NULL, the vtMax parameter value is not considered in the validation process.
vtMax [Visual Basic]
A Variant that contains the number value that specifies the high end of the range against which to validate the converted value. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestNumber method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the bstrName parameter. If this parameter is not used, the RequestNumber method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted number. If any validation fails, the return value will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the converted number. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully. If any validation fails, the pvtRet parameter will be NULL.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' In the following example, the value of a field on the purchase
' form (filled out by the customer) is read into the
' variable cc_expmonth.

<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="_cc_expmonth">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' Because the Default parameter is specified
' as 7, the RequestNumber method will return 7 if the field is empty
' or missing.
cc_expmonth = oAppFrameWork.RequestNumber("_cc_expmonth",7, 1, 12)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IAppFrameWork::RequestFloat

[C++] IDataFunctions_4_0::ConvertNumberString

[C++] IDataFunctions_4_0::Number

[C++] IDataFunctions_4_0::ValidateNumber

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] AppFrameWork.RequestFloat

[Visual Basic] DataFunctions.ConvertNumberString

[Visual Basic] DataFunctions.Number

[Visual Basic] DataFunctions.ValidateNumber


IAppFrameWork::RequestString Method [C++]

AppFrameWork.RequestString Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and perform string processing on it.

Definition

[C++]
HRESULT IAppFrameWork::RequestString(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtStripWhite,
  VARIANT vtStripReturn,
  VARIANT vtCase,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestString(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtStripWhite As Variant,
  Optional vtStripReturn As Variant,
  Optional vtCase As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the string to return if the specified URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL.
vtDefault [Visual Basic]
A Variant that contains the string to return if the specified URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the number that indicates the minimum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMin parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameters is not in range, the method returns NULL.
vtMin [Visual Basic]
A Variant that contains the number that indicates the minimum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMin parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameters is not in range, the method returns NULL. This parameter is optional.
vtMax [C++]
[in, optional] A VARIANT that contains the number that indicates the maximum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameters is not in range, the method returns NULL.
vtMax [Visual Basic]
A Variant that contains the number that indicates the maximum length against which the length of the bstrName parameter must be validated. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If this value is invalid or length of the bstrName/vtDefault parameters is not in range, the method returns NULL. This parameter is optional.
vtStripWhite [C++]
[in, optional] A VARIANT that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the string. The default value is True.
vtStripWhite [Visual Basic]
A Variant that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the string. The default value is True. This parameter is optional.
vtStripReturn [C++]
[in, optional] A VARIANT that contains a Boolean value that indicates whether carriage returns should be stripped from the string. The default value is True.
vtStripReturn [Visual Basic]
A Variant that contains a Boolean value that indicates whether carriage returns should be stripped from the string. The default value is True. This parameter is optional.
vtCase [C++]
[in, optional] A VARIANT that contains the number that indicates the case to which the string should be converted. The default value is zero (0), which results in no modification to the case of the string. If the vtCase parameter is one (1), the string is converted to uppercase. If the vtCase parameter is two (2), the string is converted to lowercase.
vtCase [Visual Basic]
A Variant that contains the number that indicates the case to which the string should be converted. The default value is zero (0), which results in no modification to the case of the string. If the vtCase parameter is one (1), the string is converted to uppercase. If the vtCase parameter is two (2), the string is converted to lowercase. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to be used as the basis of the conversion. If this value is not specified, the RequestString method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to be used as the basis of the conversion. If this value is not specified, the RequestString method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the processed string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the processed string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

This method can optionally perform several types of string processing. It can trim leading and trailing white space (space and tab characters) from the string. It can remove carriage returns from the string. It can convert the string to upper- or lowercase.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' vString is a Variant.
' This example assumes that the string value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="String">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the string into the form and clicks the
' Send Info button, the value of this form field can be
' retrieved by the RequestString method as follows:
vString = oAppFrameWork.RequestString("String", "Default String", _
    1, 100, True, True, 0, 1033)
' In this example, the string is checked to ensure that it contains
' between 1 and 100 characters; all leading and trailing white
' spaces are removed, all carriage returns are removed, no
' modification is made to character case, and the string is
' converted according to the locale 1033. If no string is
' input, the string "Default String" will be loaded into the
' variable vString.

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale


IAppFrameWork::RequestTime Method [C++]

AppFrameWork.RequestTime Method [Visual Basic]

Use this method to retrieve a value from a URL query string or form post variable and convert the string to a Date Variant, based on the specified or default locale.

Definition

[C++]
HRESULT IAppFrameWork::RequestTime(
  BSTR bstrName,
  VARIANT vtDefault,
  VARIANT vtMin,
  VARIANT vtMax,
  VARIANT vtLocale,
  VARIANT* pvtRet
);
[Visual Basic]
Function RequestTime(
  bstrName As String,
  Optional vtDefault As Variant,
  Optional vtMin As Variant,
  Optional vtMax As Variant,
  Optional vtLocale As Variant
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the URL query string or form post variable to retrieve.
bstrName [Visual Basic]
A String that contains the name of the URL query string or form post-variable to retrieve.
vtDefault [C++]
[in, optional] A VARIANT that contains the string to return if the specified URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Date values.
vtDefault [Visual Basic]
A Variant that contains the string to return if the specified URL query string or form post variable does not exist or contains no value. If this parameter is not supplied, the method returns NULL. The default cannot contain DateTime or Date values. This parameter is optional.
vtMin [C++]
[in, optional] A VARIANT that contains the time value that specifies the low end of the range against which to validate the bstrName parameter. If the VARIANT is of type vtMissing, the vtMin parameter value is not considered in the validation process. If the converted value is less than vtMin, then NULL is returned.
vtMin [Visual Basic]
A Variant that contains the time value that specifies the low end of the range against which to validate the bstrName parameter. The default is no low-end validation. This parameter is optional. If the converted value is less than vtMin, then NULL is returned.
vtMax [C++]
[in, optional] A VARIANT that contains the time value that specifies the high end of the range against which to validate the bstrName parameter. If the variant is of type vtMissing, the vtMax parameter value is not considered in the validation process. If the converted value is greater than vtMax, then NULL is returned.
vtMax [Visual Basic]
A Variant that contains the time value that specifies the high end of the range against which to validate the bstrName parameter. The default is no high-end validation. If the converted value is greater than vtMax, then NULL is returned. This parameter is optional.
vtLocale [C++]
[in, optional] A VARIANT that contains the number that specifies the locale to use to convert the DateTime value. If this value is not specified, the RequestTime method uses the value of the Locale property of the DataFunctions object.
vtLocale [Visual Basic]
A Variant that contains the number that specifies the locale to use to convert the DateTime value. If this value is not specified, the RequestTime method uses the value of the Locale property of the DataFunctions object. This parameter is optional.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the date. If any validation fails, the value will be set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the date. If any validation fails, the return value will be NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully. If any validation fails, the pvtRet parameter will be NULL.

This method converts the specified String based on the locale specified in the vtLocale parameter if the vtLocale parameter is specified; otherwise it uses the default locale found in the DataFunctions object. It validates the result of the conversion against the vtMin and vtMax parameters, if they are specified. If the validation fails this method returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' This example assumes that the time value is entered using
' the following form:
<FORM METHOD ="POST" ACTION="PROCESS.ASP">
<INPUT TYPE="Text" NAME="Time">
<INPUT TYPE="SUBMIT" NAME="ACTION" VALUE="Send Info">
</FORM>
' If the user enters the date into the form and clicks
' the Send Info button, the value of this form field can
' be retrieved by the RequestTime method as follows:
vTime = oAppFrameWork.RequestTime("Time", "12:00:01 AM", _
    "12:00:01 AM", "11:59:59 PM", 1033)

See Also

[C++] AppFrameWork Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertTimeString

[C++] IAppFrameWork::RequestDate

[Visual Basic] AppFrameWork Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertTimeString

[Visual Basic] AppFrameWork.RequestDate


IAppFrameWork::VerifyWith Method [C++]

AppFrameWork.VerifyWith Method [Visual Basic]

Use this method to generate hidden input fields that contain verification values.

Definition

[C++]
HRESULT IAppFrameWork::VerifyWith(
  IDispatch* pdispOrder,
  SAFEARRAY(VARIANT) pParams,
  BSTR* pbstrRet
);
[Visual Basic]
Function VerifyWith(
  pdispOrder As Object
  pParams As Variant
) As Variant

Parameters

pdispOrder [C++]
[in] A pointer to the IDispatch interface that can be used to retrieve the OrderForm object that contains the fields to verify.
pdispOrder [Visual Basic]
An object reference to the OrderForm object that contains the fields to verify.
pParams [C++]
[in] A SAFEARRAY that contains a list of field names to verify in the supplied OrderForm object.
pParams [Visual Basic]
A variable list of arguments of type VARIANT, that contain the field names to verify in the supplied OrderForm object.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the HTML tags.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the HTML tags.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completed successfully.

Use this method to output HTML tags in the form <INPUT TYPE="HIDDEN"> in an HTML form. These hidden fields contain specified values from the OrderForm object to be used to verify that an order has not been altered between presentation of the OrderForm object and final purchase.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
' oAppFrameWork is a Commerce.AppFrameWork object.
' The following example generates hidden fields containing
' the values stored in the _total_total,and _tax_total fields
' of the supplied OrderForm object:
<FORM METHOD="POST"
    ACTION="http://example.microsoft.com/xt_orderform_purchase.asp">
    <% = oAppFrameWork.VerifyWith(mscsOrderForm, "_total_total", _
 "_tax_total") %>
' When the page containing this call is loaded in the client
' browser, the document source for the page would contain the
' following HTML script (assuming a total of 138.95 and a tax
' of 8.75):
<FORM METHOD="POST"
ACTION="http://example.microsoft.com/xt_orderform_purchase.asp">
<INPUT TYPE=HIDDEN NAME="_VERIFY_WITH" VALUE="_total_total=13895">
<INPUT TYPE=HIDDEN NAME="_VERIFY_WITH" VALUE="_tax_total=875">

See Also

[C++] AppFrameWork Object

[C++] OrderForm Object

[Visual Basic] AppFrameWork Object

[Visual Basic] OrderForm Object


IAppFrameWork::VirtualDirectory Method [C++]

AppFrameWork.VirtualDirectory Method [Visual Basic]

Use this method to return the name of the virtual directory for the site.

Definition

[C++]
HRESULT IAppFrameWork::VirtualDirectory(
  BSTR* pbstrRet
);
[Visual Basic]
Function VirtualDirectory() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the site virtual directory.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the site virtual directory.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The pbstrRet parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] AppFrameWork Object

[C++] StandardSManager Object

[Visual Basic] AppFrameWork Object

[Visual Basic] StandardSManager Object


AuthManager Object [C++]

AuthManager Object [Visual Basic]

Use this object to perform user identification and authentication and to manage user security information. This object also contains methods for browsing with and without cookies.

ProgID: | Commerce.AuthManager (Externally creatable)
COM Class Name: | MSCSAuthManager
Type Library Name: | Microsoft Commerce 2002 AuthManager 2.0 Type Library
DLL Name: | mscsauth.dll
Threading Model: | Both
[C++]
COM Interface Name: | IMSCSAuthManager2
Interface ID Constant: | IID_IMSCSAuthManager
Header File: | MSCSAuth.h
[C++]

The AuthManager object is primarily intended to be used through ASP script. However, the following methods are available in C++ through the IMSCSAuthManager interface when the MSCSAuthManager object is instantiated outside of an ASP script: GenerateEncryptionKey, GetUserIDFromCookie, GetUserIDFromCookieAndKey, Initialize, Refresh, and UnInitialize.

Once any AuthManager object instance has been successfully initialized withing an ASP or ASP.NET site, any further instances of the AuthManager object initiailized within that site use the cached resources as loaded by the first call to the Initialize method. Therefore, even if a different value for the SiteName parameter is used, the AuthManager object will still be configured to run using the site configuration specified in the first call to the Initialize method. In other words, within a single ASP or ASP.NET site you can run an AuthManager object against the resource configuration of a single site but never multiple sites.

[Visual Basic]

The AuthManager object is primarily intended to be used through ASP script. However, the following methods are available in Visual Basic when the MSCSAuthManager object is instantiated outside of an ASP script: GenerateEncryptionKey, GetUserIDFromCookie, GetUserIDFromCookieAndKey, Initialize, Refresh, and UnInitialize.

Once any AuthManager object instance has been successfully initialized withing an ASP or ASP.NET site, any further instances of the AuthManager object initiailized within that site use the cached resources as loaded by the first call to the Initialize method. Therefore even if a different value for the SiteName parameter is used, the AuthManager object will still be configured to run using the site configuration specified in the first call to the Initialize method. In other words, within a single ASP or ASP.NET site you can run an AuthManager object against the resource configuration of a single site but never multiple sites.

Methods

[C++]
Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administrative or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a URL containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves the user ID from a cookie.
GetUserIDFromCookieAndKey | Retrieves the user ID from a cookie and the encryption key.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket | Generates an encrypted MSCSProfile ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates a URL-encoded query string from arrays of parameter names and values.
URLShopperArgs | Generates an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.
[Visual Basic]
Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administration or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a Uniform Resource Locator (URL) containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves the user ID from a cookie.
GetUserIDFromCookieAndKey | Retrieves the user ID from a cookie and the encryption key.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket | Generates an encrypted MSCSProfile ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates a URL-encoded query string from arrays of parameter names and values.
URLShopperArgs | Generates an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.

Remarks

The AuthManager object identifies users and gathers information used for user authentication. The methods and properties of this object control and access the contents of cookies and encoded URL strings.

In the Commerce Server 2002 context, authentication uses tickets. A ticket is a string of property/value pairs that provide information about the user. Two types of tickets are supported. An authentication ticket, named MSCSAuth, is used for registered users while a profile ticket, named MSCSProfile, is used for anonymous users. In this context, "registered" means a user who has provided information to a site that can be used for identification.

A user may have both types of tickets. In this case, the MSCSAuth ticket takes precedence.

A ticket contains a unique user ID, and for authentication tickets, the time of last login and a time window. For an anonymous user who allows cookies, the MSCSProfile ticket is stored on the local computer of the user as a persistent cookie. For a registered user who allows cookies, the MSCSAuth ticket is stored in a session cookie and is valid for the duration of the session or a specified time window, and then is deleted.

If the user does not allow cookies, the ticket is placed in an encoded URL string. The URL string may be used to pass user information between pages and sites, provided all the URLs and query strings are generated by the AuthManager object.

The AuthManager object provides a transparent interface to the tickets, whether they are stored in cookies or in URL query strings, and handles encryption and decryption of the tickets to ensure security.

The AuthManager object is intended to be used only through Active Server Pages (ASP) since it depends on ASP intrinsic objects. Do not create the AuthManager object in application scope as it has dependencies on individual user ,sessions. The AuthManager object should be created and destroyed on each ASP page.

The methods GetUserIDFromCookie, GetUserIDFromCookieAndKey, and GenerateEncryptionKey facilitate rolling key encryption functionality. For more information about this feature, see Rolling Key Encryption for Authentication Tickets.

Any operation that requires decryption of the ticket will fail if you change the encryption key. One important instance of this behavior is with profile tickets, because they are persisted on the client computer. Hence when a user with a persisted profile ticket that was encrypted with the old key comes back to the site, AuthManager is not be able to decrypt this ticket. For more information about this issue, see Rolling Key Encryption for Authentication Tickets.

See Also

Core Objects


IMSCSAuthManager2 Methods [C++]

AuthManager Methods [Visual Basic]

Methods

[C++]
Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administrative or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a URL containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves the user ID from a cookie.
GetUserIDFromCookieAndKey | Retrieves the user ID from a cookie and the encryption key.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket | Generates an encrypted MSCSProfile ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates a URL-encoded query string from arrays of parameter names and values.
URLShopperArgs | Generates a URL-encoded query string from arrays of parameter names and values and appends the ticket of the user to the string.
[Visual Basic]
Method | Description
GenerateEncryptionKey | Generates an encryption key for the administration of cookie data. Use this method in administration or setup components only.
GetProperty | Retrieves the specified custom property stored in a cookie or query string.
GetURL | Generates a Uniform Resource Locator (URL) containing optional name/value pairs.
GetUserID | Retrieves the unique ID for the current user.
GetUserIDFromCookie | Retrieves the user ID from a cookie.
GetUserIDFromCookieAndKey | Retrieves the user ID from a cookie and the encryption key.
Initialize | Initializes the AuthManager object by caching all the required site configuration resource properties.
IsAuthenticated | Indicates whether a user is currently authenticated.
Refresh | Updates the cached site configuration resource properties after any of the properties have been changed.
SetAuthTicket | Generates an encrypted MSCSAuth ticket for a registered user.
SetProfileTicket | Generates an encrypted MSCSProfile ticket for an anonymous user.
SetProperty | Adds a property/value pair to a cookie or query string containing a ticket.
SetUserID | Sets the user ID property on a ticket.
UnInitialize | Removes the site-specific configuration resource properties from the cache.
URLArgs | Generates a URL-encoded query string from arrays of parameter names and values.
URLShopperArgs | Generates a URL-encoded query string from arrays of parameter names and values and appends the ticket of the user to the string.


IMSCSAuthManager2::GenerateEncryptionKey Method [C++]

AuthManager.GenerateEncryptionKey Method [Visual Basic]

Use this method to generate an encryption key for encrypting/decrypting cookie and query string data used for tickets.

Definition

[C++]
HRESULT IMSCSAuthManager::GenerateEncryptionKey(
  BSTR* pbstrRet
);
[Visual Basic]
Function GenerateEncryptionKey() As String

Parameters

pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return a copy of the encryption key.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the encryption key.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_GENERATE_ENCRYPTIONKEY_FAILED | [C++] 0xC1004C26 [Visual Basic] &HC1004C26 | An error occurred while generating the encryption key using CryptoAPI, the Windows API that supports encryption features.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The pbstrRet parameter contains valid data only if the method completes successfully.

This method is one of the few AuthManager methods used in C++ applications.

This method is used by Commerce Server setup and Commerce Server Site Packager components during installation, and can be used to change the encryption key at a later time.

The encryption key is stored as part of the site configuration resource properties in the Administrative database.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

sEncryptionKey = oAuthManager.GenerateEncryptionKey()

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::GetProperty Method [C++]

AuthManager.GetProperty Method [Visual Basic]

Use this method to retrieve the value of the specified custom property from the current user ticket.

Definition

[C++]
HRESULT IMSCSAuthManager::GetProperty(
  EnumMSCS_TicketType enumTicketType,
  BSTR propName,
  VARIANT* pVarCustomPropVal
);
[Visual Basic]
Function GetProperty(
  enumTicketType As EnumMSCS_TicketType,
  propName As String
) As Variant

Parameters

enumTicketType [C++]
[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the property.
enumTicketType [Visual Basic]
[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the property.
propName [C++]
[in] A BSTR that contains the name of the property to retrieve.
propName [Visual Basic]
[in] A String that contains the name of the property to retrieve.
PVarCustomPropVal [C++]
[out, retval] A pointer to a VARIANT containing a BSTR with the value for the specified property in the current user ticket. If the property is not found, the pointer is set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the value for the specified property in the current user ticket. If the property is not found, the returned Variant is empty.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHID_INVALID_PROPERTY | [C++] 0xC1004C27 [Visual Basic] &HC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
E_UPM_AUTHMANAGER_TICKET_NOT_SET | [C++] 0xC1004C25 [Visual Basic] &HC1004C25 | Requested ticket not set.
MSG_UPM_AUTH_PROPNOTFOUND_ERROR | [C++] 0xC1004C00 [Visual Basic] &HC1004C00 | Requested property does not exist on the ticket.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table defines the possible values for the EnumMSCS_TicketType.

Name | Value | Description
enumMSCS_ProfileTicketType | 1 | A MSCSProfile ticket used for an anonymous user.
enumMSCS_AuthTicketType | 2 | A MSCSAuth ticket used for a registered user.

Use the SetProperty method to place custom property values in the current user ticket.

[C++]

The pVarCustomPropVal parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sPasswordValue is a String
' oAuthManager is a Commerce AuthManager object

sPasswordValue = oAuthManager.GetProperty(enumMSCS_AuthTicketType, _
 "Password")

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::SetProperty

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.SetProperty


IMSCSAuthManager2::GetURL Method [C++]

AuthManager.GetURL Method [Visual Basic]

Use this method to generate an encoded URL string.

Definition

[C++]
HRESULT IMSCSAuthManager::GetURL(
  BSTR FileName,
  BOOL fCookie,
  BOOL fSecure,
  VARIANT* pVarURLParameters,
  VARIANT* pVarURLValues,
  BSTR* pbstrRet
);
[Visual Basic]
Function GetURL(
  FileName As String,
  fCookie As Boolean,
  fSecure As Boolean,
  Optional pVarURLParameters As Variant,
  Optional pVarURLValues As Variant
) As String

Parameters

FileName [C++]
[in] A BSTR that contains the file name to reference in the URL.
FileName [Visual Basic]
[in] A String that contains the file name to reference in the URL.
fCookie [C++]
[in] A BOOL that indicates whether the user allows cookies.
fCookie [Visual Basic]
[in] A Boolean that indicates whether the user allows cookies.
fSecure [C++]
[in] A BOOL that indicates whether to output a secure URL (HTTPS). See the Remarks section for more information about using this parameter.
fSecure [Visual Basic]
[in] A Boolean that indicates whether to output a secure URL (HTTPS). See the Remarks section for more information about using this parameter.
pVarURLParameters [C++]
[in, optional, defaultvalue (NULL)] A pointer to a VARIANT containing a SAFEARRAY of parameter names to include in the URL.
pVarURLParameters [Visual Basic]
[in, optional] A SafeArray that contains a list of parameter names to include in the URL.
pVarURLValues [C++]
[in, optional] A pointer to a VARIANT containing a SAFEARRAY of parameter values that correspond to the parameter names.
pVarURLValues [Visual Basic]
[in, optional] A SafeArray that contains values that correspond to the parameter names.
pbstrRet [C++]
[out, retval] A pointer to a BSTR used to return the encoded URL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the encoded URL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The encoded URL includes the host name (retrieved from the site configuration), the virtual directory in which the file is stored (determined by the scripting context), the name of the file, flags for cookie support and security, and optional custom name/value pairs (for example, the name "SKU" and the stock-keeping unit (SKU) value for an item in a shopping cart).

If cookies are not allowed, the cookie flag is set to False and the ticket is appended to the URL.

Note

  • When a cached HTML segment that contains a URL with an appended ticket is retrieved, the ticket needs to be replaced with the correct one (for the current user context).

Set the fSecure flag to True if you want to output a URL based on the securehostname property of the site. The Enable HTTPS property of the site must be True and the securehostname property of the site must be valid to output a valid secure URL.

Use the URLArgs or URLShopperArgs methods to encode a URL query string out of name/value pairs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrRet parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' saParameterNames and saParameterValues are SafeArrays
' sURL is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku"
saParameterValues(0) = "12345"

' Output a secure URL
sURL = oAuthManager.GetURL("filename.asp", False, True, _
 saParameterNames, saParameterValues)

' sURL = https://secure_host_name/virtual_directory/filename.asp?sku=12345&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E

' Output an insecure URL
sURL = oAuthManager.GetURL("filename.asp", False, False, _
 saParameterNames, saParameterValues)

' sURL = http://insecure_host_name/virtual_directory/filename.asp?sku=12345&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::GetUserID Method [C++]

AuthManager.GetUserID Method [Visual Basic]

Use this method to retrieve the user ID stored in a ticket.

Definition

[C++]
HRESULT IMSCSAuthManager::GetUserID(
  EnumMSCS_TicketType enumTicketType,
  VARIANT* pUserID
);
[Visual Basic]
Function GetUserID(
  enumTicketType As EnumMSCS_TicketType
) As Variant

Parameters

enumTicketType [C++]
[in] An EnumMSCS_TicketType that indicates the type of ticket that contains the user ID.
enumTicketType [Visual Basic]
An EnumMSCS_TicketType that indicates the type of ticket that contains the user ID.
pUserID [C++]
[out, retval] A pointer to a VARIANT containing a BSTR used to return the unique ID for the current user. If the appropriate ticket type is not found or there is no user ID, the returned VARIANT is set to type VT_NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the user ID. If the appropriate ticket type is not found or there is no user ID, the method returns NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table defines the possible values for the EnumMSCS_TicketType.

Name | Value | Description
enumMSCS_ProfileTicketType | 1 | A MSCSProfile ticket used for an anonymous user.
enumMSCS_AuthTicketType | 2 | A MSCSAuth ticket used for a registered user.

If the ticket type is a MSCSAuth ticket and the ticket has expired, the ticket will be deleted and the return value will be as if there was no ticket.

If the ticket type is a MSCSAuth ticket and the ticket is within five minutes of expiring, the last login time is refreshed to the current time, allowing an additional period for the ticket to be valid.

[C++]

The pUserID parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vUserID is a Variant
' oAuthManager is a Commerce AuthManager object

vUserID = oAuthManager.GetUserID(enumMSCS_ProfileTicketType)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::GetUserIDFromCookie Method [C++]

AuthManager.GetUserIDFromCookie Method [Visual Basic]

Use this method to retrieve a user ID stored in a cookie.

Definition

[C++]
HRESULT IMSCSAuthManager::GetUserIDFromCookie(
  BSTR cookieData,
  BSTR* pbstrUserID
);
[Visual Basic]
Function GetUserIDFromCookie(
  cookieData As String
) As String

Parameters

cookieData [C++]
[in] A BSTR that contains the Auth ticket cookie data.
cookieData [Visual Basic]
[in] A String that contains the Auth ticket cookie data.
pbstrUserID [C++]
[out, retval] A pointer to a BSTR used to return the user ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the user ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The cookie data is always URL decoded.

This method is available when the MSCSAuthManager object is instantiated outside of the context of an ASP script.

Commerce Server 2002 Analysis applications use this method to extract user IDs from cookies found in Internet Information Services (IIS) log files.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrUserID parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' vUserID is a Variant
' oAuthManager is a Commerce AuthManager object

vUserID = oAuthManager.GetUserIDFromCookie(sCookieData)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::GetUserIDFromCookieAndKey Method [C++]

AuthManager.GetUserIDFromCookieAndKey Method [Visual Basic]

Use this method to retrieve the user ID stored in a cookie using an encryption key.

Definition

[C++]
HRESULT IMSCSAuthManager2::GetUserIDFromCookieAndKey(
  BSTR cookieData,
  BSTR encryptionKey,
  BSTR* pbstrUserID
);
[Visual Basic]
Function GetUserIDFromCookieAndKey(
  cookieData As String,
  encryptionKey As String
) As String

Parameters

cookieData [C++]
[in] A BSTR that contains the cookie.
cookieData [Visual Basic]
[in] A String that contains the cookie.
encryptionKey [C++]
[in] A BSTR that contains the encryption key.
encryptionKey [Visual Basic]
A String that contains the encryption key.
pbstrUserID [C++]
[out, retval] A pointer to a BSTR used to return the user ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the user ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The cookie data is always URL decoded.

This method is available when the MSCSAuthManager object is instantiated outside of the context of an ASP script.

This method is similar to the GetUserIDFromCookie method, but allows you to specify the encryption key. This enables the decryption of persistent cookies when the ticket encryption keys have changed. Retaining the user ID when replacing outdated cookies prevents the Business Analytics System from treating the returning user as a new user.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrUserID parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' vUserID is a Variant
' oAuthManager is a Commerce AuthManager object

vUserID = oAuthManager.GetUserIDFromCookieAndKey(sCookieData, sKey)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::Initialize Method [C++]

AuthManager.Initialize Method [Visual Basic]

Use this method to initialize the AuthManager object.

Definition

[C++]
HRESULT IMSCSAuthManager::Initialize(
  BSTR bstrSiteName,
);
[Visual Basic]
Sub Initialize(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the name of the Commerce Server 2002 Web site.
bstrSiteName [Visual Basic]
[in] A String that contains the name of the Commerce Server 2002 Web site.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The AuthManager object must be properly initialized to a valid site name immediately after creating the object and before any other AuthManager object method is used.

The first time any AuthManager object uses this method, it connects to the Administration database and caches the site configuration data using the SiteConfig object. When subsequent AuthManager objects call this method the data is read from the cache.

Use the Refresh method to update the site configuration data after any of the properties have been changed.

Use the UnInitialize method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

It is suggested that you instantiate and initialize the AuthManager object in the Global.asa file to make sure at least one instance of the object exists, and to ensure the dynamic-link library (DLL) is loaded in memory and not flushed out by Internet Information Services (IIS) for performance reasons. This AuthManager object should not be used elsewhere. A separate instance of the AuthManager object must be created and destroyed on each ASP page.

This method is available when the MSCSAuthManager object is instantiated outside of the context of an ASP script.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.Initialize(sSiteName)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::IsAuthenticated Method [C++]

AuthManager.IsAuthenticated Method [Visual Basic]

Use this method to determine whether the current user has a valid MSCSAuth ticket. This method also allows the determination of whether the user has been authenticated within a specified period of time.

Definition

[C++]
HRESULT IMSCSAuthManager::IsAuthenticated(
  long TimeWindow,
  VARIANT_BOOL* pboolAuth
);
[Visual Basic]
Function IsAuthenticated(
  Optional TimeWindow As Long
) As Boolean

Parameters

TimeWindow [C++]
[in, optional, defaultvalue (0)] A long that contains a time period in minutes.
TimeWindow [Visual Basic]
[in, optional, defaultvalue (0)] A Long that contains a time period in minutes.
pboolAuth [C++]
[out, retval] A pointer to a VARIANT_BOOL containing the authentication status of the current user.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean that indicates the authentication status of the current user.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A MSCSAuth ticket contains the time the user last logged in and a time window of validity. The ticket is no longer valid if the time since the last login has exceeded the time window specified in the SetAuthTicket method when the ticket was generated.

The optional time window parameter, TimeWindow, of this method allows checking whether the time since the user last logged in has exceeded a shorter time interval than the time window specified by the SetAuthTicket method. The default value of zero (0) is equivalent to setting the time window to the same value as specified in the SetAuthTicket method.

This method returns False if the user does not have an MSCSAuth ticket, the ticket is invalid, or the time since the user last logged in has exceeded the specified time window.

If the ticket is within five minutes of expiring, the last login time is refreshed to the current time, allowing an additional period for the ticket to be valid.

Ensure a log-off page is created and called for any logged-in user. The log-off page should either expire the MSCSAuth cookie or clear its contents.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pboolAuth parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

bAuth = oAuthManager.IsAuthenticated(lWindow)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::Refresh Method [C++]

AuthManager.Refresh Method [Visual Basic]

Use this method to update the cached site configuration resource properties after any of the properties have been changed.

Definition

[C++]
HRESULT IMSCSAuthManager::Refresh(
  BSTR bstrSiteName
);
[Visual Basic]
Sub Refresh(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the site name.
bstrSiteName [Visual Basic]
A String that contains the site name.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Call this method immediately after changing any of the authentication related site configuration resource properties. Also, use this method when switching between Active Server Pages (ASP) and Microsoft Visual Basic Scripting Edition (VBScript) files and updating the site configuration properties.

This method is available when the MSCSAuthManager object is instantiated outside of the context of an ASP script.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.Refresh(sSiteName)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::SetAuthTicket Method [C++]

AuthManager.SetAuthTicket Method [Visual Basic]

Use this method to set an encrypted MSCSAuth ticket for a registered user.

Definition

[C++]
HRESULT IMSCSAuthManager::SetAuthTicket(
  BSTR UserID,
  VARIANT_BOOL fCookieSupport,
  long TimeWindow
);
[Visual Basic]
Sub SetAuthTicket(
  UserID As String,
  fCookieSupport As Boolean,
  TimeWindow As Long
)

Parameters

UserID [C++]
[in] A BSTR that contains the unique ID for the current user.
UserID [Visual Basic]
[in] A String that contains the unique ID for the current user.
fCookieSupport [C++]
[in] A VARIANT_BOOL that indicates whether session cookies are supported.
fCookieSupport [Visual Basic]
[in] A Boolean that indicates whether session cookies are supported.
TimeWindow [C++]
[in] A long that defines the time window in minutes that the MSCSAuth ticket is valid.
TimeWindow [Visual Basic]
[in] A Long that defines the time window in minutes that the MSCSAuth ticket is valid.
[C++]

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHID_INVALID_CHARACTER_PRESENT | [C++] 0xC1004C23 [Visual Basic] &HC1004C23 | Invalid character (';' or '%' or '=') present in the user ID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
MSG_UPM_AUTHID_TICKET_MAX_REACHED | [C++] 0xC1004C40 [Visual Basic] &HC1004C40 | The ticket has reached a maximum size of 4 Kilobytes of data.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The time the user last logged in is stored in the ticket, along with the length of time from the last login that the ticket is valid. This method will set the last login time to the current time on the local computer each time it is invoked.

If the current user is anonymous, use the SetProfileTicket method to generate an MSCSProfile ticket.

Caution

  • If an MSCSAuth ticket for the user already exists and an empty string is passed in as the ID for the user, the existing ticket is deleted.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetAuthTicket "JoeUser@microsoft.com", True, 30

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::IsAuthenticated

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.IsAuthenticated


IMSCSAuthManager2::SetProfileTicket Method [C++]

AuthManager.SetProfileTicket Method [Visual Basic]

Use this method to set a MSCSProfile ticket for an anonymous user. An anonymous user is not registered with a site.

Definition

[C++]
HRESULT IMSCSAuthManager::SetProfileTicket(
  BSTR UserID,
  VARIANT_BOOL fCookieSupport
);
[Visual Basic]
Sub SetProfileTicket(
  UserID As String,
  fCookieSupport As Boolean
)

Parameters

UserID [C++]
[in] A BSTR that contains the unique ID for the current user.
UserID [Visual Basic]
[in] A String that contains the unique ID for the current user.
fCookieSupport [C++]
[in] A VARIANT_BOOL that indicates whether persistent cookies are supported.
fCookieSupport [Visual Basic]
[in] A Boolean that indicates whether persistent cookies are supported.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHID_INVALID_CHARACTER_PRESENT | [C++] 0xC1004C23 [Visual Basic] &HC1004C23 | Invalid character (';' or '%' or '=') present in the user ID or the property name/value pair.
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
MSG_UPM_AUTHID_TICKET_MAX_REACHED | [C++] 0xC1004C40 [Visual Basic] &HC1004C40 | The ticket has reached a maximum size of 4 Kilobytes of data.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the current user has registered, use the SetAuthTicket method to generate an MSCSAuth ticket.

Caution

  • If an MSCSProfile ticket for the user already exists and an empty string is passed in for the user ID, the existing ticket is deleted.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetProfileTicket "74A38551-D6D8-FFD0-12BF-0A20C90DC8D1", True

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::IsAuthenticated

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.IsAuthenticated


IMSCSAuthManager2::SetProperty Method [C++]

AuthManager.SetProperty Method [Visual Basic]

Use this method to place a custom property name/value pair into the current ticket for the user.

Definition

[C++]
HRESULT IMSCSAuthManager::SetProperty(
  EnumMSCS_TicketType enumTicketType,
  BSTR propName,
  BSTR propVal
);
[Visual Basic]
Sub SetProperty(
  EnumMSCS_TicketType enumTicketType,
  propName As String,
  propVal As String
)

Parameters

enumTicketType [C++]
[in] An EnumMSCS_TicketType that indicates the type of ticket.
enumTicketType [Visual Basic]
[in] An EnumMSCS_TicketType that indicates the type of ticket.
propName [C++]
[in] A BSTR that contains the name of the property.
propName [Visual Basic]
[in] A String that contains the name of the property.
propVal [C++]
[in] A BSTR that contains the value corresponding to the named property.
propVal [Visual Basic]
[in] A String that contains the value corresponding to the named property.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHID_INVALID_CHARACTER_PRESENT | [C++] 0xC1004C23 [Visual Basic] &HC1004C23 | Invalid character (';' or '=') present in the property name/value pair.
E_UPM_AUTHID_INVALID_PROPERTY | [C++] 0xC1004C27 [Visual Basic] &HC1004C27 | Invalid custom property name or value.
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
MSG_UPM_AUTHID_TICKET_MAX_REACHED | [C++] 0xC1004C40 [Visual Basic] &HC1004C40 | The ticket has reached a maximum size of 4 Kilobytes of data.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the GetProperty method to retrieve the custom property values from the current ticket.

The following table defines the possible values for the EnumMSCS_TicketType.

Name | Value | Description
enumMSCS_ProfileTicketType | 1 | A MSCSProfile ticket used for an anonymous user.
enumMSCS_AuthTicketType | 2 | A MSCSAuth ticket used for a registered user.
[Visual Basic]

If the user does not already have an appropriate ticket, call SetAuthTicket or SetProfileTicket to obtain the ticket before calling this method. If this method is called while the user does not have an appropriate ticket, the user will be sent a cookie with the property, but no ticket.

[C++]

If the user does not already have an appropriate ticket, call SetAuthTicket or SetProfileTicket to obtain the ticket before calling this method. If this method is called while the user does not have an appropriate ticket, the user will be sent a cookie with the property, but no ticket.

This method will set the ticket in a cookie if the client browser supports cookies, otherwise, a subsequent call to the GetURL method will be required to set the ticket in the URL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetAuthTicket "JoeUser@microsoft.com", True, 30

' These two method calls do not have to be consecutive,
' or even in the same script, but do need to be in this order.

oAuthManager.SetProperty enumMSCS_AuthTicketType, "Password", "MyPassword123"

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::GetProperty

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.GetProperty


IMSCSAuthManager2::SetUserID Method [C++]

AuthManager.SetUserID Method [Visual Basic]

Use this method to change the user ID property on a ticket.

Definition

[C++]
HRESULT IMSCSAuthManager::SetUserID(
  EnumMSCS_TicketType enumTicketType,
  BSTR newUserID
);
[Visual Basic]
Sub SetUserID(
  enumTicketType As EnumMSCS_TicketType,
  newUserID As String
)

Parameters

enumTicketType [C++]
[in] An EnumMSCS_TicketType that indicates the type of ticket that will contain the user ID.
enumTicketType [Visual Basic]
An EnumMSCS_TicketType that indicates the type of ticket that will contain the user ID.
newUserID [C++]
[in] A BSTR that contains the unique ID for the current user.
newUserID [Visual Basic]
A String that contains the unique ID for the current user.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHID_INVALID_CHARACTER_PRESENT | [C++] 0xC1004C23 [Visual Basic] &HC1004C23 | Invalid character (';' or '%' or '=') present in the user ID.
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.
MSG_UPM_AUTHID_TICKET_MAX_REACHED | [C++] 0xC1004C40 [Visual Basic] &HC1004C40 | The ticket has reached a maximum size of 4 Kilobytes of data.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The value for the user ID may be the logon name for a registered user, a globally unique identifier (GUID) for an anonymous user, or any unique value.

If the ticket does not exist, a ticket is created with default values for the rest of the data. If the appropriate ticket already exists, the value in the user ID is updated.

The following table defines the possible values for the EnumMSCS_TicketType.

Name | Value | Description
enumMSCS_ProfileTicketType | 1 | A MSCSProfile ticket used for an anonymous user.
enumMSCS_AuthTicketType | 2 | A MSCSAuth ticket used for a registered user.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.SetUserID enumMSCS_AuthTicketType, "JoeUser@microsoft.com"

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::UnInitialize Method [C++]

AuthManager.UnInitialize Method [Visual Basic]

Use this method to delete the site-specific configuration resource properties from the cache when the site is no longer valid.

Definition

[C++]
HRESULT IMSCSAuthManager::UnInitialize(
  BSTR bstrSiteName,
);
[Visual Basic]
Sub UnInitialize(
  bstrSiteName As String
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the name of the site.
bstrSiteName [Visual Basic]
[in] A String that contains the name of the site.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method must be called to disconnect the AuthManager object cache from the specified site.

The Initialize method loads the site configuration resource properties into the cache.

This method is available when the MSCSAuthManager object is instantiated outside of the context of an ASP script.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oAuthManager is a Commerce AuthManager object

oAuthManager.UnInitialize(sSiteName)

See Also

[C++] AuthManager Object

[Visual Basic] AuthManager Object


IMSCSAuthManager2::URLArgs Method [C++]

AuthManager.URLArgs Method [Visual Basic]

Use this method to generate a URL-encoded query string of name/value pairs.

Definition

[C++]
HRESULT IMSCSAuthManager::URLArgs(
  VARIANT* pVarURLParameters,
  VARIANT* pVarURLValues,
  BSTR* pbstrRet
);
[Visual Basic]
Function URLArgs(
  pVarURLParameters As Variant,
  pVarURLValues As Variant
) As String

Parameters

pVarURLParameters [C++]
[in] A pointer to a VARIANT containing a SAFEARRAY of parameter names.
pVarURLParameters [Visual Basic]
[in] A SafeArray that contains the parameter names.
pVarURLValues [C++]
[in] A pointer to a VARIANT containing a SAFEARRAY of parameter values corresponding to the parameter names.
pVarURLValues [Visual Basic]
[in] A SafeArray that contains the values corresponding to the parameter names.
pbstrRet [C++]
[out, retval] A pointer to a BSTR that contains the resulting URL-encoded query string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the encoded URL query string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method concatenates the parameter name/value pairs into a URL-encoded string. This method will fail if the two arrays containing the parameter names and values are not the same size.

The URLShopperArgs method performs the same URL encoding and additionally appends the ticket to the query string, if a ticket is set.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrRet parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' saParameterNames and saParameterValues are SafeArrays
' sURLArg is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku1"
saParameterNames(1) = "sku3"
saParameterValues(0) = "12345"
saParameterValues(1) = "98765"
sURLArg = oAuthManager.URLArgs(saParameterNames, saParameterValues)

' sURLArg = "?sku1=12345&sku3=98765"

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::URLShopperArgs

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.URLShopperArgs


IMSCSAuthManager2::URLShopperArgs Method [C++]

AuthManager.URLShopperArgs Method [Visual Basic]

Use this method to generate an encoded Uniform Resource Locator (URL) query string of name/value pairs and append the ticket to the query string if a ticket is set.

Definition

[C++]
HRESULT IMSCSAuthManager::URLShopperArgs(
  VARIANT* pVarURLParameters,
  VARIANT* pVarURLValues,
  BSTR* pbstrRet
);
[Visual Basic]
Function URLShopperArgs(
  pVarURLParameters As Variant,
  pVarURLValues As Variant
) As String

Parameters

pVarURLParameters [C++]
[in] A pointer to a VARIANT containing a SAFEARRAY of parameter names.
pVarURLParameters [Visual Basic]
[in] A SafeArray that contains the parameter names.
pVarURLValues [C++]
[in] A pointer to a VARIANT containing a SAFEARRAY of parameter values corresponding to the parameter names.
pVarURLValues [Visual Basic]
[in] A SafeArray that contains the values corresponding to the parameter names.
pbstrRet [C++]
[out, retval] A pointer to a BSTR that contains the resulting encoded-URL query string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the encoded-URL string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_UPM_AUTHMANAGER_API_ASP_ONLY | [C++] 0xC1004C24 [Visual Basic] &HC1004C24 | This method should only be called within an ASP page.
MSG_UPM_AUTH_SITE_NEEDED_ERROR | [C++] 0xC1004C10 [Visual Basic] &HC1004C10 | The Initialize method must be called with the installed site name before calling this method.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method concatenates the parameter name/value pairs into a URL-encoded string and appends the ticket. This is useful for shopping support without cookies. This method will fail if the two arrays containing the parameters and values are not the same size.

If both types of tickets exist, the MSCSAuth ticket takes precedence.

Use the URLArgs method to perform URL encoding of parameter/value pairs without appending the ticket.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrRet parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' saParameterNames and saParameterValues are SafeArrays
' sURLShopArg is a string
' oAuthManager is a Commerce AuthManager object

saParameterNames(0) = "sku1"
saParameterNames(1) = "sku3"
saParameterValues(0) = "12345"
saParameterValues(1) = "98765"
sURLShopArg = oAuthManager.URLShopperArgs(saParameterNames, saParameterValues)

' sURLShopArg =
' "?sku1=12345&sku3=98765&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E"

See Also

[C++] AuthManager Object

[C++] IMSCSAuthManager::SetProperty

[C++] IMSCSAuthManager::SetAuthTicket

[C++] IMSCSAuthManager::SetProfileTicket

[C++] IMSCSAuthManager::URLArgs

[Visual Basic] AuthManager Object

[Visual Basic] AuthManager.SetProperty

[Visual Basic] AuthManager.SetAuthTicket

[Visual Basic] AuthManager.SetProfileTicket

[Visual Basic] AuthManager.URLArgs


BDSecurity Object [C++]

BDSecurity Object [Visual Basic]

Use this object to manage security settings used to control access to various functionality of Commerce Server Business Desk. These security settings are maintained in the Commerce Server database in the Security Definition Tables (SDT), which is comprised of the BDSecurityDefinition and BDSecurityIdentifiers database tables.

ProgID: | Commerce.BDSecurity (Externally creatable)
COM Class Name: | BDSecurity
Type Library Name: | BDSecurity 1.0 Type Library
DLL Name: | BDSecurity.dll
Threading Model: | Free
[C++]
COM Interface Name: | IBDSecurity
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IBDSecurity interface to access the methods of the BDSecurity object.

Methods

[C++]
Method | Description
AddAccount | Adds a new user or group account to the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
CanUserAccess | Determines whether the user has access rights to read the specified file. This method is included for backward-compatibility with Commerce Server 2000.
GetAccounts | Returns information about all of the accounts in the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetAccountsForRight | Returns information about all of the accounts associated with the specified combination of entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetPermissions | Returns permission information (allow, deny, or undefined) associated with the specified combination of security identifier (SID), entity, element, and right. This method is used by modules that make use of the Business Desk security settings to control access to various aspects of their functionality.
Initialize | Retrieves the connection string associated with the Business Desk security database and stores it within the object for use by the other methods. This method is generally only called within the page Global.asa in the course of initializing the global instance of the BDSecurity object referenced by the global variable g_MSCSBizDeskSecurity.
RemoveAccount | Remove the account associated with the specified security identifer (SID) from the Business Desk security database. It also removes all permissions associated with that account. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
RemoveSecurityDefinitions | Removes all permission and security definition settings associated with the specified combination of entity, element, and right from the Business Desk security database. This method is used by modules to clean up the SDT when a securable element under their control is deleted.
SetPermissions | Sets permission information (allow, deny, or undefined) for the specified combination of security identifier (SID), entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
[Visual Basic]
Method | Description
AddAccount | Adds a new user or group account to the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
CanUserAccess | Determines whether the user has access rights to read the specified file. This method is included for backward-compatibility with Commerce Server 2000.
GetAccounts | Returns information about all of the accounts in the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetAccountsForRight | Returns information about all of the accounts associated with the specified combination of entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetPermissions | Returns permission information (allow, deny, or undefined) associated with the specified combination of security identifier (SID), entity, element, and right. This method is used by modules that make use of the Business Desk security settings to control access to various aspects of their functionality.
Initialize | Retrieves the connection string associated with the Business Desk security database and stores it within the object for use by the other methods. This method is generally only called within the page Global.asa in the course of initializing the global instance of the BDSecurity object referenced by the global variable g_MSCSBizDeskSecurity.
RemoveAccount | Remove the account associated with the specified security identifer (SID) from the Business Desk security database. It also removes all permissions associated with that account. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
RemoveSecurityDefinitions | Removes all permission and security definition settings associated with the specified combination of entity, element, and right from the Business Desk security database. This method is used by modules to clean up the SDT when a securable element under their control is deleted.
SetPermissions | Sets permission information (allow, deny, or undefined) for the specified combination of security identifier (SID), entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.

Remarks

The methods provided by this object (other than the method CanUserAccess, which is provided for backward-compatibility with Commerce Server 2000) are used to manage the security settings stored in a pair of SQL tables, collectively known as the Security Definition Tables (SDT). In general, these methods are thin wrappers for underlying SQL stored procedures. Business Desk modules typically only call the GetPermissions method to retrieve the relevant security settings for the current user. How these settings are used to control and limit functionality within the module is entirely module-specific.

The following table shows the Business Desk feature areas that make use of the Business Desk security functionality in Commerce Server 2002.

Feature Area | Security Entities
Framework | Categories, modules, tasks
Catalogs | Catalogs, categories, property definitions
Profiles | Properties

See the source code for the Business Desk Framework and relevant categories for examples of how these security settings can be used. Note that the catalog modules cache the security settings for each of its entities as separate XML documents associated with the current session.

Most of the methods provided by this object are only intended for design time use by the Permissions module and dialog box in Business Desk. The exceptions are the methods GetPermissions and RemoveSecurityDefinitions. At run time, Business Desk modules can use the GetPermissions method to retrieve security settings so that they can enable or disable functionality as appropriate.

Modules can also use the RemoveSecurityDefinitions method to clean up the SDT if an entity, element, or right is dynamically removed. For example, if a catalog is deleted, all security settings associated with that catalog are removed from the SDT. For more information about entities, elements, rights, and permissions in the context of Business Desk security, see Security.

See Also

Core Objects


IBDSecurity Methods [C++]

BDSecurity Methods [Visual Basic]

Methods

[C++]
Method | Description
AddAccount | Adds a new user or group account to the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
CanUserAccess | Determines whether the user has access rights to read the specified file. This method is included for backward-compatibility with Commerce Server 2002.
GetAccounts | Returns information about all of the accounts in the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetAccountsForRight | Returns information about all of the accounts associated with the specified combination of entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetPermissions | Returns permission information (allow, deny, or undefined) associated with the specified combination of security identifier (SID), entity, element, and right. This method is used by modules that make use of the Business Desk security settings to control access to various aspects of their functionality.
Initialize | Retrieves the connection string associated with the Business Desk security database and stores it within the object for use by the other methods. This method is generally only called within the page Global.asa in the course of initializing the global instance of the BDSecurity object referenced by the global variable g_MSCSBizDeskSecurity.
RemoveAccount | Removes all accounts associated with the specified security identifer (SID) from the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
RemoveSecurityDefinitions | Removes all permission and security definition settings associated with the specified combination of entity, element, and right from the Business Desk security database. This method is used by modules to clean up the SDT when a securable element under their control is deleted.
SetPermissions | Sets permission information (allow, deny, or undefined) for the specified combination of security identifier (SID), entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
[Visual Basic]
Method | Description
AddAccount | Adds a new user or group account to the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
CanUserAccess | Determines whether the user has access rights to read the specified file. This method is included for backward-compatibility with Commerce Server 2002.
GetAccounts | Returns information about all of the accounts in the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetAccountsForRight | Returns information about all of the accounts associated with the specified combination of entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
GetPermissions | Returns permission information (allow, deny, or undefined) associated with the specified combination of security identifier (SID), entity, element, and right. This method is used by modules that make use of the Business Desk security settings to control access to various aspects of their functionality.
Initialize | Retrieves the connection string associated with the Business Desk security database and stores it within the object for use by the other methods. This method is generally only called within the page Global.asa in the course of initializing the global instance of the BDSecurity object referenced by the global variable g_MSCSBizDeskSecurity.
RemoveAccount | Removes all accounts associated with the specified security identifier (SID) from the Business Desk security database. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.
RemoveSecurityDefinitions | Removes all permission and security definition settings associated with the specified combination of entity, element, and right from the Business Desk security database. This method is used by modules to clean up the SDT when a securable element under their control is deleted.
SetPermissions | Sets permission information (allow, deny, or undefined) for the specified combination of security identifier (SID), entity, element, and right. This method is intended for use by the Permissions module and dialog box and is not likely to be used within any other Business Desk modules.


IBDSecurity::AddAccount Method [C++]

BDSecurity.AddAccount Method [Visual Basic]

This method is used by the Permissions module and dialog box to add new user or group accounts to the Security Definitions Tables (SDT).

Definition

[C++]
HRESULT IBDSecurity::AddAccount(
  BSTR bstrAccountName,
  _Recordset** ppRSAccount
);
[Visual Basic]
Function AddAccount(
  bstrAccountName As String,
) As _Recordset

Parameters

bstrAccountName [C++]
[in] A BSTR that contains the account name, either with or without a domain specifier. The account name can specify an individual user or a group.
bstrAccountName [Visual Basic]
A String that contains the account name, either with or without a domain specifier. The account name can specify an individual user or a group.
ppRSAccount [C++]
[out, retval] The address of a pointer to an ADO _Recordset object used to return information about the newly added account. See the Remarks section for more details.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO _Recordset object that contains information about the newly added account. See the Remarks section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules other than the Permissions module and dialog box.

The returned record set contains a single record for the added user or group and includes the fields: SID (security identifier), AccountName, and IsGroup.

This method must be called for a particular account before the SetPermissions method is called for that account.

[Java, C++] The ppRSAccount parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsAccount is a Variant to which an ADO _Recordset object will be assigned.
' g_MSCSBizDeskSecurity is the global BD security object created in the page Global.asa.

rsAccount = g_MSCSBizDeskSecurity.AddAccount("domain1\joeuser")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::CanUserAccess Method [C++]

BDSecurity.CanUserAccess Method [Visual Basic]

Use this method to determine whether the current user has read access rights to the specified Commerce Server Business Desk module.

This method is included for backward-compatibility with Commerce Server 2002. It is not part of the new Business Desk security mechanism.

Definition

[C++]
HRESULT IBDSecurity::CanUserAccess(
  BSTR bstrPath,
  VARIANT_BOOL* pbAccessOK
);
[Visual Basic]
Function CanUserAccess(
  bstrPath As String,
) As Boolean

Parameters

bstrPath [C++]
[in] A BSTR that contains the file name and path for a Business Desk module.
bstrPath [Visual Basic]
A String that contains the file name and path for a Business Desk module.
pbAccessOK [C++]
[out, retval] The address of a VARIANT_BOOL used to return either TRUE or FALSE. A value of TRUE indicates that the current user has read access rights to the specified file. A value of FALSE indicates that the current user does not have read access rights to the specified file.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean set to either True or False. A value of True indicates that the current user has read access rights to the specified file. A value of False indicates that the current user does not have read access rights to the specified file.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Whether the user has read access to the specified Business Desk module is determined from the entries in the access control lists (ACLs) set for the action page ASP file.

[C++] The pbAccessOK parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' bAccess is a Boolean
' oBDSecurity is a Commerce.BDSecurity object
' CatalogEditor.asp is an ASP page corresponding to a Business Desk module

bAccess = oBDSecurity.CanUserAccess("CatalogEditor.asp")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::GetAccounts Method [C++]

BDSecurity.GetAccounts Method [Visual Basic]

This method is used by the Permissions module and dialog box to retrieve a list of all accounts currently in the Security Definitions Tables (SDT).

Definition

[C++]
HRESULT IBDSecurity::GetAccounts(
  _Recordset** ppRSAccounts
);
[Visual Basic]
Function GetAccounts(
) As _Recordset

Parameters

ppRSAccounts [C++]
[out, retval] The address of a pointer to an ADO _Recordset object used to return information about all accounts that are currently present in the Security Definition Table (SDT). See the Remarks for section for more details.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO _Recordset object used to return information about all accounts. See the Remarks section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules other than the Permissions module and dialog box.

The returned record set contains one record per account in the SDT and includes the fields: SID (security identifier), AccountName, and IsGroup.

[C++] The ppRSAccounts parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsAccounts is a Variant to which an ADO _Recordset object
' will be assigned.
' g_MSCSBDSecurity is the global BD security object
' created in the page Global.asa.

rsAccounts = g_MSCSBDSecurity.GetAccounts

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::GetAccountsForRight Method [C++]

BDSecurity.GetAccountsForRight Method [Visual Basic]

This method is used by the Permissions module and dialog box to retrieve information about all of the accounts associated with the specified combination of entity, element, and right.

Definition

[C++]
HRESULT IBDSecurity::GetAccountsForRight(
  BSTR bstrEntity,
  VARIANT varElement
  VARIANT varRight
  _Recordset** ppRSAccounts
);
[Visual Basic]
Function GetAccountsForRight(
  bstrEntity As String,
  Optional varElement As Variant,
  Optional varRight As Variant,
) As _Recordset

Parameters

bstrEntity [C++]
[in] A BSTR that contains the name of the entity for which records will be returned.
bstrEntity [Visual Basic]
A String that contains the name of the entity for which records will be returned.
varElement [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the element for which records will be returned.
varElement [Visual Basic]
An optional Variant that contains a string specifying the name of the element for which records will be returned.
varRight [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the right for which records will be returned.
varRight [Visual Basic]
An optional Variant that contains a string specifying the name of the right for which records will be returned.
ppRSAccounts [C++]
[out, retval] The address of a pointer to an ADO _Recordset object used to return account and permission information corresponding to the provided entity, element and right. See the Remarks section for more details.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO _Recordset object containing the account and permission information corresponding to the provided entity, element, and right. See the Remarks section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules other than the Permissions module and dialog box.

The returned record set contains one record per matching account in the SDT and includes the fields: SID (security identifier), Entity, Element, Right, and Deny.

If either of the optional parameters (varElement and/or varRight), is not provided, they are treated as wildcards. In other words, records will be included in the result regardless of their element and/or right values.

[C++] The ppRSAccounts parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsAccounts is a Variant to which an ADO _Recordset object
' will be assigned.
' g_MSCSBDSecurity is the global BD security object
' created in the page Global.asa.

' Will return a Recordset containing one record for each account that
' has been explicitly set as allowed or disallowed from editing the
' shoes category within a catalog.

rsAccounts = _
    g_MSCSBDSecurity.GetAccountsForRight("Category", _
                                              "Shoes", _
                                              "edit")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::GetPermissions Method [C++]

BDSecurity.GetPermissions Method [Visual Basic]

Use this method to retrieve permission information (allow, deny, or undefined) associated with the specified combination of security identifier (SID), entity, element, and right.

Definition

[C++]
HRESULT IBDSecurity::GetPermissions(
  VARIANT varSID,
  VARIANT varEntity,
  VARIANT varElement,
  VARIANT varRight,
  _Recordset** ppRSPermissions
);
[Visual Basic]
Function GetPermissions(
  Optional varSID As Variant,
  Optional varEntity As Variant,
  Optional varElement As Variant,
  Optional varRight As Variant,
) As _Recordset

Parameters

varSID [C++]
[in, optional] An optional VARIANT that contains a string specifying the security identifier (SID) of the account for which permissions are being requested.
varSID [Visual Basic]
An optional Variant that contains a string specifying the security identifier (SID) of the account for which permissions are being requested.
varEntity [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the entity for which permissions are being requested.
varEntity [Visual Basic]
An optional Variant that contains a string specifying the name of the entity for which permissions are being requested.
varElement [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the element for which permissions are being requested.
varElement [Visual Basic]
An optional Variant that contains a string specifying the name of the element for which permissions are being requested.
varRight [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the right for which permissions are being requested.
varRight [Visual Basic]
An optional Variant that contains a string specifying the name of the right for which permissions are being requested.
ppRSPermissions [C++]
[out, retval] The address of a pointer to an ADO _Recordset object used to return the requested permission information. See the Remarks section for more details.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO _Recordset object containing the requested permission information. See the Remarks section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method should be called from Business Desk modules using the new security mechanisms to control access to various aspects of their functionality.

The returned record set contains one record for each matching entry in the Security Definitions Tables (SDT) and includes the fields: Entity, Element, Right, and Deny.

The fields Entity, Element, and Right are strings that are module-specific, and can be defined to suite the needs of the module. For more information about entities, elements, and rights, see Security.

The field Deny contains one of three numeric values, defined in the following table.

Value | Definition
0 | Allow. The current user has the right to perform the operation indicated by the corresponding Element, Entity, and Right fields.
1 | Deny. The current user does not have the right to perform the operation indicated by the corresponding Element, Entity, and Right fields.
2 | Undefined. For example, the current user has conflicting permissions for different elements of the provided entity.

If the optional parameter varSID is not specified, this function will look up and use the SIDs for the current user and for the groups to which the current user belongs. If no such SID is available, as is the case in some run-time environments such as Microsoft Visual Basic, an error will be returned.

If any of the other optional parameters (varEntity, varElement and/or varRight) are not provided, they are treated as wildcards. In other words, records will be included in the result regardless of their entity, element, and/or right values.

If no security settings are found in the SDT and the user is a member of the Administrators group, a single row Recordset object will be returned, indicating that the user does have permission to access the requested entity/element/right combination.

[C++] The ppRSPermissions parameter contains valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsPermissions is a Variant to which an ADO _Recordset object
'  will be assigned.
' g_MSCSBDSecurity is the global BD security object
' created in the page Global.asa.

' Will return a Recordset containing one record for each catalog
' category entity entry in the SDT for the current user, regardless
' of their values for elements and rights.

rsPermissions = _
    g_MSCSBDSecurity.GetPermissions(, "catalog_categories")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::Initialize Method [C++]

BDSecurity.Initialize Method [Visual Basic]

This method is used on the page Global.asa to initialize the global BDSecurity object referenced by the global variable g_MSCSBizDeskSecurity. If you create your own instance of the BDSecurity object, make sure that you call this method before calling any other methods (other than the backward-compatibility method CanUserAccess).

Definition

[C++]
HRESULT IBDSecurity::Initialize(
  BSTR bstrSiteName,
);
[Visual Basic]
Sub Initialize(
  bstrSiteName As String,
)

Parameters

bstrSiteName [C++]
[in] A BSTR that contains the name of the site for which the BDSecurity object is being initialized.
bstrSiteName [Visual Basic]
A String that contains the name of the site for which the BDSecurity object is being initialized.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules. It is already called in the page Global.asa to initialize the global instance of the BDSecurity object that is referenced by the global variable g_MSCSBizDeskSecurity. Unless there is a good reason not to, all modules should use the global instance.

This method must be called for each particular instance of the BDSecurity object before any other methods (besides the backwards-compatibility method CanUserAccess) are called.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following exmaple is from the page Global.asa.

g_MSCSBDSecurity.Initialize(Application("MSCSSiteName"))

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::RemoveAccount Method [C++]

BDSecurity.RemoveAccount Method [Visual Basic]

This method is used by the Permissions module and dialog box to remove all accounts associated with the specified security identifier (SID) from the Security Definitions Tables (SDT).

Definition

[C++]
HRESULT IBDSecurity::RemoveAccount(
  BSTR bstrSID,
);
[Visual Basic]
Sub RemoveAccount(
  bstrSID As String,
)

Parameters

bstrSID [C++]
[in] A BSTR that contains the SID corresponding to the account to be removed.
bstrSID [Visual Basic]
A String that contains the SID corresponding to the account to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules other than the Permissions module and dialog box.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' g_MSCSBizDeskSecurity is the global BD security object
' created in the page Global.asa.
' The request parameter "account" is used to pass the SID of account
' to be removed (from the page response_delaccount.asp).

g_MSCSBizDeskSecurity.RemoveAccount(Request("account"))

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::RemoveSecurityDefinitions Method [C++]

BDSecurity.RemoveSecurityDefinitions Method [Visual Basic]

Use this method to remove all records associated with the specified combination of entity, element, and right from the Security Definitions Tables (SDT).

Definition

[C++]
HRESULT IBDSecurity::RemoveSecurityDefinitions(
  BSTR bstrEntity,
  VARIANT varElement
  VARIANT varRight
);
[Visual Basic]
Sub RemoveSecurityDefinitions(
  bstrEntity As String,
  Optional varElement As Variant,
  Optional varRight As Variant,
)

Parameters

bstrEntity [C++]
[in] A BSTR that contains the name of the entity for which security definitions should be removed.
bstrEntity [Visual Basic]
A String that contains the name of the entity for which security definitions should be removed.
varElement [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the element for which security definitions should be removed.
varElement [Visual Basic]
An optional Variant that contains a string specifying the name of the element for which security definitions should be removed.
varRight [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the right for which security definitions should be removed.
varRight [Visual Basic]
An optional Variant that contains a string specifying the name of the right for which security definitions should be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method should be used in Business Desk module code when the module uses dynamic entities, elements, and/or rights, and one of them is removed. Calling this method will clean up the SDT by removing the records associated with that entity, element, or right.

If either of the optional parameters (varElement and/or varRight), is not provided, they are treated as wildcards. In other words, records will be removed regardless of their element and/or right values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' g_MSCSBizDeskSecurity is the global BD security object created in the page Global.asa.

' Will remove all records for the "Shoes" catalog category from the SDT,
' regardless of the rights associated with those records.

g_MSCSBizDeskSecurity.RemoveSecurityDefinitions("catalog_category", _
                                                "Shoes")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object

Security


IBDSecurity::SetPermissions Method [C++]

BDSecurity.SetPermissions Method [Visual Basic]

This method is used by the Permissions module and dialog box to set permission information (allow, deny, or undefined) for the specified combination of security identifier (SID), entity, element, and right.

Definition

[C++]
HRESULT IBDSecurity::SetPermissions(
  unsigned short iPermission,
  BSTR bstrSID,
  VARIANT varEntity
  VARIANT varElement
  VARIANT varRight
);
[Visual Basic]
Sub SetPermissions(
  iPermission As Variant,
  bstrSID As String,
  Optional varEntity As Variant,
  Optional varElement As Variant,
  Optional varRight As Variant,
)

Parameters

iPermission [C++]
[in] An unsigned short integer that specifies the permission to be set. See the Remarks section for more details.
iPermission [Visual Basic]
A Variant that specifies the permission to be set. See the Remarks section for more details.
bstrSID [C++]
[in] A BSTR that contains the security identifier (SID) of the account for which a permission is being set.
bstrSID [Visual Basic]
A String that contains the security identifier (SID) of the account for which a permission is being set.
varEntity [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the entity for which a permission is being set.
varEntity [Visual Basic]
An optional Variant that contains a string specifying the name of the entity for which a permission is being set.
varElement [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the element for which a permission is being set.
varElement [Visual Basic]
An optional Variant that contains a string specifying the name of the element for which a permission is being set.
varRight [C++]
[in, optional] An optional VARIANT that contains a string specifying the name of the right for which a permission is being set.
varRight [Visual Basic]
An optional Variant that contains a string specifying the name of the right for which a permission is being set.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method will not typically be called from any Commerce Server Business Desk modules other than the Permissions module and dialog box.

The parameter iPermission must contain one of three numeric values, defined in the following table.

Value | Definition
0 | Allow. The user or group indicated by the provided SID has the right to perform the operation indicated by the varElement, varEntity, and varRight parameters.
1 | Deny. The user or group indicated by the provided SID does not have the right to perform the operation indicated by the varElement, varEntity, and varRight parameters.
2 | Undefined.

If any of the optional parameters (varEntity, varElement, and varRight) are not provided, the corresponding column in the BDSecurityDefinitions table will be assigned the value NULL.

This method checks the Security Definitions Tables (SDT) to make sure that a row with the provided combination of SID, entity, element, and right does not already exist. If it does already exist, the existing permission value is overwritten with the value provided by the parameter iPermission. This is done to prevent the creation of redundant or contradictory rows in the SDT.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sSID is a string containing the SID of the relevant account.
' g_MSCSBizDeskSecurity is the global BD security object
' created in the page Global.asa.

' Will disallow the user(s) associated with the provided SID from
' performing edits within the "Shoes" category of product catalog.

call g_MSCSBizDeskSecurity.SetPermissions(1, sSID, "catalog_categories", _
                                          "Shoes", "edit")

See Also

[C++] BDSecurity Object

[Visual Basic] BDSecurity Object


DataFunctions Object [C++]

DataFunctions Object [Visual Basic]

Use this object to perform locale-based formatting, parsing, and value range checking in a site. This object also has a variety of utilities useful for site development.

ProgID: | Commerce.DataFunctions (Externally creatable)
COM Class Name: | DataFunctions_4_0
Type Library Name: | Commerce -- MSCSAspHelp Type Library
DLL Name: | MSCSAspHelp.dll
Threading Model: | Both
[C++]
COM Interface Name: | IDataFunctions_4_0
Interface ID Constant: | IID_IDataFunctions_4_0
Header File: | commerce.h, mspu_guids.h
[C++]

In C++, use the IDataFunctions_4_0 and IDataFunctions_3_0 interfaces to access the properties and methods of the DataFunctions object.

Methods

[C++]
Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date VARIANT, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date VARIANT, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double VARIANT, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to a long VARIANT, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer VARIANT, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date VARIANT, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date VARIANT, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date VARIANT, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date VARIANT, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency VARIANT.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.
[Visual Basic]
Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date Variant, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date Variant, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double Variant, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to a long Variant, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer Variant, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date Variant, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date Variant, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date Variant, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date Variant, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency Variant.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.

Properties

[C++]
Property | Type | Description
Locale | Long | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | VARIANT | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.
[Visual Basic]
Property | Type | Description
Locale | Long | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | Variant | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.


IDataFunctions_4_0 Methods

DataFunctions_4_0 Methods

Methods

[C++]
Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date VARIANT, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date VARIANT, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double VARIANT, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to a long VARIANT, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer VARIANT, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date VARIANT, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date VARIANT, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date VARIANT, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date VARIANT, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency VARIANT.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.
[Visual Basic]
Method | Description
CleanString | Processes the specified string. This processing can include stripping out white spaces, modifying the case of the string, and validating that the length of the string falls within a specified range.
ConvertDateString | Converts the specified string representation of the date to a date Variant, based on the default or specified locale.
ConvertDateTimeString | Converts the specified string representation of the date and time to a date Variant, based on the default or specified locale.
ConvertFloatString | Converts the specified string representation of a floating-point number to a double Variant, based on the default or specified locale.
ConvertMoneyStringToNumber | Converts the specified string representation of a currency value to a long Variant, based on the default or specified locale.
ConvertNumberString | Converts the specified string representation of a number to an integer Variant, based on the default or specified locale.
ConvertTimeString | Converts the specified string representation of a time value to a date Variant, based on the default or specified locale.
Date | Returns a string representation of a date stored in a date Variant, based on the default or specified locale.
DateTime | Returns a string representation of a date and time stored in a date Variant, based on the default or specified locale.
Float | Returns a string representation of a floating-point number, based on the default or specified locale.
GetLocaleInfo | Retrieves information about the specified locale.
GetLocaleList | Retrieves a list of installed locales.
Money | Returns a formatted currency string, based on the default or specified locale.
Number | Returns a string representation of a number, based on the default or specified locale.
Time | Returns a string representation of a time stored in a date Variant, based on the default or specified locale.
ValidateDateTime | Checks whether the specified string contains a valid date and/or time, and optionally checks against a specified range.
ValidateFloat | Checks whether the specified string contains a valid floating-point number, and optionally checks the value of the number against a specified range.
ValidateNumber | Checks whether the specified string contains a valid number, and optionally checks the value of the number against a specified range.
CloneObject | Clones a SimpleList or Dictionary object.
ConvertStringToCurrency | Converts the specified string representation of currency value into a currency Variant.
LocalizeCurrency | Creates a string representation of a currency value formatted to a specified locale and currency symbol.


IDataFunctions_4_0::CleanString Method [C++]

DataFunctions.CleanString Method [Visual Basic]

Use this method to process a string, based on the default or specified locale. The string processing can include stripping out leading and trailing white spaces, modifying string case, and validating that the length of the string falls within a given range.

Definition

[C++]
HRESULT IDataFunctions_4_0::CleanString(
 VARIANT vtInput,
 VARIANT vtMinLen,
 VARIANT vtMaxLen,
 VARIANT vtStripWhite,
 VARIANT vtStripReturn,
 VARIANT vtCase,
 VARIANT vtLocale,
 VARIANT* pvarOutput
);
[Visual Basic]
Function CleanString(
 vtInput As Variant,
 vtMinLen As Variant,
 vtMaxLen As Variant,
 vtStripWhite As Variant,
 vtStripReturn As Variant,
 vtCase As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtInput [C++]
[in] A VARIANT that contains the text of the string to process.
vtInput [Visual Basic]
A Variant that contains the text of the string to process.
vtMinLen [C++]
[in] A VARIANT that contains the minimum length against which the length of the input string will be validated. The default value for this parameter is zero (0).
vtMinLen [Visual Basic]
A Variant that contains the minimum length against which the length of the input string will be validated. The default value for this parameter is zero (0).
vtMaxLen [C++]
[in] A VARIANT that contains the maximum length against which the length of the input string will be validated. The default value for this parameter is no limit.
vtMaxLen [Visual Basic]
A Variant that contains the maximum length against which the length of the input string will be validated. The default value for this parameter is no limit.
vtStripWhite [C++]
[in] A VARIANT that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the input string. The default value is TRUE.
vtStripWhite [Visual Basic]
A Variant that contains a Boolean value that indicates whether leading and trailing white spaces should be stripped from the input string. The default value is True.
vtStripReturn [C++]
[in] A VARIANT that contains a Boolean value that indicates whether the carriage returns contained anywhere in the input string should be stripped. The default value is TRUE.
vtStripReturn [Visual Basic]
A Variant that contains a Boolean value that indicates whether the carriage returns contained anywhere in the input string should be stripped. The default value is True.
vtCase [C++]
[in] A VARIANT that specifies any conversions to the case of the input string. The default value for this parameter is zero (0), which results in no modification to the case of the input string. If this parameter is set to one (1), the input string is converted to uppercase. If this parameter is set to two (2), the input string is converted to lowercase.
vtCase [Visual Basic]
A Variant that specifies any conversions to the case of the input string. The default value for this parameter is zero (0), which results in no modification to the case of the input string. If this parameter is set to one (1), the input string is converted to uppercase. If this parameter is set to two (2), the input string is converted to lowercase.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use when processing the input string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use when processing the input string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvarOutput [C++]
[out, retval] A pointer used to return a VARIANT that contains the processed string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the processed string; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvarOutput parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Dim Result
Dim strData
strData = " Microsoft Press   "
Result = MSCSDataFunctions.CleanString(strData, 1, 20, True, True, 1)
Response.Write Result
' "MICROSOFT PRESS" will be written to the page
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSPage_3_0::RequestString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] Page.RequestString


IDataFunctions_4_0::CloneObject Method [C++]

DataFunctions.CloneObject Method [Visual Basic]

Use this method to clone a SimpleList or Dictionary object. This method performs a deep copy of the cloned object, so new memory is allocated for the clone.

Definition

[C++]
HRESULT IDataFunctions_4_0::CloneObject(
 IDispatch* pdispSource,
 IDispatch** ppdispDest
);
[Visual Basic]
Function CloneObject(
 pdispSource As Object
) As Object

Parameters

pdispSource [C++]
[in] A pointer to the IDispatch interface of the SimpleList or Dictionary object to be cloned.
pdispSource [Visual Basic]
A reference to the SimpleList or Dictionary object to be cloned.
ppdispDest [C++]
[out, retval] The address of a pointer used to return the IDispatch interface of the SimpleList or Dictionary object clone.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to the SimpleList or Dictionary object clone.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppdispDest parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dSource and dCopy are Dictionary objects
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")

dCopy = MSCSDataFunctions.CloneObject(dSource)

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale


IDataFunctions_4_0::ConvertDateString Method [C++]

DataFunctions.ConvertDateString Method [Visual Basic]

Use this method to convert a date string to a date Variant, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertDateString(
 VARIANT vtDate,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertDateString(
 vtDate As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtDate [C++]
[in] A VARIANT that contains a string representation of the date to convert.
vtDate [Visual Basic]
A Variant that contains a string representation of the date to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use when processing the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use when processing the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a date VARIANT used to return the converted date.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a date Variant containing the converted value; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

In some cases, the DataFunctions.ConvertDateString method returns NULL when converting a string representation of the date to the date Variant type for Latvian and Bulgarian locales. To avoid this problem, remove the constant string added at the end of the Date Representation String according to the Regional Settings in the Control Panel.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
' Converts date using US and France locales
Dim Result
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertDateString("12/1/2000", myLocale)
Response.Write "France: " & Result & "<P>"
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertDateString("12/1/2000", myLocale)
Response.Write "USA: " & Result
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertDateTimeString

[C++] IDataFunctions_4_0::Date

[C++] IDataFunctions_4_0::DateTime

[C++] IMSCSPage_3_0::RequestTime

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertDateTimeString

[Visual Basic] DataFunctions.Date

[Visual Basic] DataFunctions.DateTime

[Visual Basic] Page.RequestTime


IDataFunctions_4_0::ConvertDateTimeString Method [C++]

DataFunctions.ConvertDateTimeString Method [Visual Basic]

Use this method to convert a date and time string to a date/time Variant, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertDateTimeString(
 VARIANT vtDateTime,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertDateTimeString(
 vtDateTime As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtDateTime [C++]
[in] A VARIANT that contains a string that specifies the date/time value to convert.
vtDateTime [Visual Basic]
A Variant that contains a string that specifies the date/time value to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the date. If this value is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the date. If this value is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted date/time value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a datetime Variant that contains the converted date/time value; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
' Converts date time string using US and France locales
' vSourceDateTime is a variant containing a date time string
Dim Result
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertDateTimeString(vSourceDateTime, _
    myLocale)
Response.Write "France: " & Result & "<P>"
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertDateTimeString(vSourceDateTime , _
    myLocale)
Response.Write "USA: " & Result
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertDateString

[C++] IDataFunctions_4_0::Date

[C++] IDataFunctions_4_0::DateTime

[C++] IMSCSPage_3_0::RequestTime

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertDateString

[Visual Basic] DataFunctions.Date

[Visual Basic] DataFunctions.DateTime

[Visual Basic] Page.RequestTime


IDataFunctions_4_0::ConvertFloatString Method [C++]

DataFunctions.ConvertFloatString Method [Visual Basic]

Use this method to convert a floating-point number represented as a string to a double Variant, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertFloatString(
 VARIANT vtNum,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertFloatString(
 vtNum As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtNum [C++]
[in] A VARIANT that contains a string representation of the floating-point number to convert.
vtNum [Visual Basic]
A Variant that contains a string representation of the floating-point number to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a double VARIANT used to return the converted floating-point number.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a double Variant that contains the converted number; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
' Converts float using US and France locales
' vSourceFloat is a variant containing a float string
Dim Result
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertFloatString(vSourceFloat , _
    myLocale)
Response.Write "France: " & Result & "<P>"
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertFloatString(vSourceFloat , _
    myLocale)
Response.Write "USA: " & Result
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::Float

[C++] IDataFunctions_4_0::ValidateFloat

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.Float

[Visual Basic] DataFunctions.ValidateFloat


IDataFunctions_4_0::ConvertMoneyStringToNumber Method [C++]

DataFunctions.ConvertMoneyStringToNumber Method [Visual Basic]

Use this method to convert a money string to a number, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertMoneyStringToNumber(
 VARIANT vtMoney,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertMoneyStringToNumber(
 vtMoney As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtMoney [C++]
[in] A VARIANT that contains a string representation of the monetary value to convert.
vtMoney [Visual Basic]
A Variant that contains a string representation of the monetary value to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted monetary value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an integer Variant that represents the value of the specified string in the base monetary unit of the specified locale; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

The ConvertMoneyStringToNumber method returns the value in the base monetary unit for a given locale. Thus, given a value in dollars, ConvertMoneyStringToNumber returns the number of cents in the dollar value.

Additionally, ConvertMoneyStringToNumber does not round values. For example, if you pass this method "123.009" the method returns 12300, not 12301.

This method returns a Variant of type long, not an OLE currency type.

In some cases, this method returns NULL when converting a string representation of monetary value to the currency Variant type for Swedish and Portuguese Standard locales. To avoid this problem, use the Microsoft Visual Basic Scripting Edition (VBScript) function Replace(MoneyString, CurrencyDigitGroupingSymbol, "") to remove the currency digit grouping symbol from the money string prior to calling the method ConvertMoneyStringToNumber.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
Amount = "12000"
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertMoneyStringToNumber("34.095", myLocale)
Response.Write "USA: " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertFloatString

[C++] IDataFunctions_4_0::ConvertNumberString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertFloatString

[Visual Basic] DataFunctions.ConvertNumberString


IDataFunctions_4_0::ConvertNumberString Method [C++]

DataFunctions.ConvertNumberString Method [Visual Basic]

Use this method to convert an integer represented as a string to an integer Variant, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertNumberString(
 VARIANT vtNum,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertNumberString(
 vtNum As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtNum [C++]
[in] A VARIANT that contains a string representation of the number to convert.
vtNum [Visual Basic]
A Variant that contains a string representation of the number to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted number.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an integer Variant containing the converted number; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

The ConvertNumberString method is designed to accept only integers. Passing a floating-point number as the vtNum parameter results in an error. To convert floating-point numbers, use the ConvertFloatString method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
' Converts integer string using US and France locales
' vSourceInt is a variant containing an integer string
Dim Result
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertNumberString(vSourceInt , _
    myLocale)
Response.Write "France: " & Result & "<P>"
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertNumberString(vSourceInt , _
    myLocale)
Response.Write "USA: " & Result
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertFloatString

[C++] IDataFunctions_4_0::Number

[C++] IDataFunctions_4_0::ValidateNumber

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertFloatString

[Visual Basic] DataFunctions.Number

[Visual Basic] DataFunctions.ValidateNumber


IDataFunctions_4_0::ConvertStringToCurrency Method [C++]

DataFunctions.ConvertStringToCurrency Method [Visual Basic]

Use this method to convert a string representation of a monetary value into a currency Variant, based on the specified locale and currency symbol.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertStringToCurrency(
 VARIANT vtMoneyString,
 VARIANT vtLocale,
 VARIANT vtCurrencySymbol,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertStringToCurrency(
 vtMoneyString As Variant,
 Optional vtLocale As Variant,
 Optional vtCurrencySymbol As Variant
) As Variant

Parameters

vtMoneyString [C++]
[in] A VARIANT that contains the currency string to convert.
vtMoneyString [Visual Basic]
A Variant that contains the currency string to convert.
vtLocale [C++]
[in, optional] A VARIANT that contains the locale to be used when converting the string to a currency VARIANT. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use when converting the string to a currency Variant. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtCurrencySymbol [C++]
[in, optional] A VARIANT that contains the currency symbol to expect when converting the currency string.
vtCurrencySymbol [Visual Basic]
A Variant that contains the currency symbol to expect when converting the currency string.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the converted monetary value. This will be set to NULL if the monetary value string is not valid.

Return Values

[C++] The parameter pvtRet returns the parsed value or NULL if the input monetary value is not parsable. The method returns a failed HRESULT upon critical error, such as receiving an invalid argument.

[Visual Basic] If this method completes successfully, it returns a Variant used to return the string representation of the converted monetary value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
' vtAmount is a string representation of a monetary value
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set to USA
myLocale = 1033
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertStringtoCurrency(vtAmount, _
    myLocale, "$")
Response.Write "USA: " & Result & "<P>"

%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::LocalizeCurrency

[C++] IDataFunctions_4_0::ConvertMoneyStringToNumber

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.LocalizeCurrency

[Visual Basic] DataFunctions.ConvertMoneyStringToNumber


IDataFunctions_4_0::ConvertTimeString Method [C++]

DataFunctions.ConvertTimeString Method [Visual Basic]

Use this method to convert a time string to a date Variant, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::ConvertTimeString(
 VARIANT vtDate,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function ConvertTimeString(
 vtDate As Variant,
 vtLocale As Variant
) As Variant

Parameters

vtDate [C++]
[in] A VARIANT that specifies a string representation of the time to convert.
vtDate [Visual Basic]
A Variant that specifies a string representation of the time to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the converted time value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a date Variant that contains the time; otherwise, NULL is returned. Additionally, if the string representation contains a date, ConvertTimeString returns NULL.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
' vtTimeString is a string representation of a time value
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set to USA
myLocale = 1033
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ConvertTimeString(vtTimeString , myLocale)
Response.Write "USA: " & Result & "<P>"

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::Time

[C++] IDataFunctions_4_0::ValidateDateTime

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.Time

[Visual Basic] DataFunctions.ValidateDateTime


IDataFunctions_4_0::Date Method [C++]

DataFunctions.Date Method [Visual Basic]

Use this method to convert a date Variant to a string representation of the specified date, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::Date(
 DATE dtDate,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function Date(
 dtDate As Date,
 vtLocale As Variant
) As Variant

Parameters

dtDate [C++]
[in] A DATE VARIANT that contains the date to format.
dtDate [Visual Basic]
A Date Variant that contains the date to format.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the date to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the date to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the date value formatted as a string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the date value formatted as a string; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result, vtDateVar
' vtDateVar is a date variant containing a valid date
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.Date(vtDateVar)
Response.Write "USA: " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::DateTime

[C++] IDataFunctions_4_0::ValidateDateTime

[C++] IDataFunctions_4_0::ConvertDateString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.DateTime

[Visual Basic] DataFunctions.ValidateDateTime

[Visual Basic] DataFunctions.ConvertDateString


IDataFunctions_4_0::DateTime Method [C++]

DataFunctions.DateTime Method [Visual Basic]

Use this method to convert a date Variant to a string representation of the specified date value based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::DateTime(
 DATE dtDate,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function DateTime(
 dtDate As Date,
 vtLocale As Variant
) As Variant

Parameters

dtDate [C++]
[in] A DATE that contains the date/time value to convert.
dtDate [Visual Basic]
A Date that contains the date/time value to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the Date Variant to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the Date Variant to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the specified date/time value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the string representation of the specified date/time value; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result, vtDateVar
' vtDateVar is a date variant containing a valid date time value
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.DateTime(vtDateVar)
Response.Write "USA: " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::Date

[C++] IDataFunctions_4_0::ValidateDateTime

[C++] IDataFunctions_4_0::Time

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.Date

[Visual Basic] DataFunctions.ValidateDateTime

[Visual Basic] Page.RequestTime


IDataFunctions_4_0::Float Method [C++]

DataFunctions.Float Method [Visual Basic]

Use this method to convert a number stored in a double to a string representation of that number, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::Float(
 double fNumber,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function Float(
 fNumber As Double,
 vtLocale As Variant
) As Variant

Parameters

fNumber [C++]
[in] A double (8-byte floating point number) that contains the floating-point number to convert.
fNumber [Visual Basic]
A Double that contains the floating-point number to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the floating-point number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the floating-point number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the specified floating-point number.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the string representation of the specified floating-point number; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
Amount = "12000"
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
myInputFloat = 100.00010
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.Float(myInputFloat, myLocale,True, False)
Response.Write "USA, No Rounding, With Trailing: " & Result & "<P>"
Result = MSCSDataFunctions.Float(myInputFloat, myLocale,True, True)
Response.Write "USA, No Rounding, Trim Trailing: " & Result & "<P>"
Result = MSCSDataFunctions.Float(myInputFloat, myLocale,False, False)
Response.Write "USA, Rounding, With Trailing: " & Result & "<P>"
Result = MSCSDataFunctions.Float(myInputFloat, myLocale,False, True)
Response.Write "USA, Rounding, Trim Trailing: " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ValidateFloat

[C++] IDataFunctions_4_0::ConvertFloatString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ValidateFloat

[Visual Basic] DataFunctions.ConvertFloatString


IDataFunctions_4_0::GetLocaleInfo Method [C++]

DataFunctions.GetLocaleInfo Method [Visual Basic]

Use this method to get information on the specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::GetLocaleInfo(
 long vtInfo,
 VARIANT vtLocale,
 VARIANT* pvarRet
);
[Visual Basic]
Function GetLocaleInfo(
 vtInfo As Long,
 vtLocale As Variant
) As Variant

Parameters

vtInfo [C++]
[in] A long that specifies the type of locale information to return in the pvarRet parameter. This value must map to one of the LCTYPE constants. For information about these constants, see the Win32 SDK Help.
vtInfo [Visual Basic]
A Long that indicates the type of locale information to return. This value must map to one of the LCTYPE constants. For information about these constants, see the Win32 SDK Help.
vtLocale [C++]
[in] A VARIANT that identifies the locale for which to return information. If this VARIANT is empty (VT_EMPTY) or null (VT_NULL), the method returns information for the locale specified by the most recent call to put_Locale.
vtLocale [Visual Basic]
A Variant that identifies the locale for which to return information. If this Variant is empty (VT_EMPTY) or null (VT_NULL), the method returns information for the locale specified by the most recent call to put_Locale.
pvarRet [C++]
[out, retval] A pointer to a VARIANT used to return the requested locale information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the requested locale information; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

The Locale property stores a number value that indicates the default locale to be used by the DataFunctions methods to format date, time, money, and number information. For those DataFunctions methods take a locale value for a parameter, if that value is not supplied, the value of this property is used.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Dim vtResult, lInfo
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
vtResult = MSCSDataFunctions.GetLocaleInfo(lInfo, myLocale)

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale


IDataFunctions_4_0::GetLocaleList Method [C++]

DataFunctions.GetLocaleList Method [Visual Basic]

Use this method to retrieve a SimpleList object that contains the locales available on the computer.

Definition

[C++]
HRESULT IDataFunctions_4_0::GetLocaleList(
 VARIANT* pvarList
);
[Visual Basic]
Function GetLocaleList() As Variant

Parameters

pvarList [C++]
[out, retval] A pointer to a VARIANT used to return a SimpleList object that specifies the locales available on the computer.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object Variant that references a SimpleList object that specifies the locales available on the computer.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale


IDataFunctions_4_0::LocalizeCurrency Method [C++]

DataFunctions.LocalizeCurrency Method [Visual Basic]

Use this method to retrieve a string representation of a currency value formatted to a specified locale and currency symbol.

Definition

[C++]
HRESULT IDataFunctions_4_0::LocalizeCurrency(
 VARIANT cyCurrency,
 VARIANT vtLocale,
 VARIANT vtCurrencySymbol,
 VARIANT* pvtRet
);
[Visual Basic]
Function LocalizeCurrency(
 cyCurrency As Variant,
 Optional vtLocale As Variant,
 Optional vtCurrencySymbol As Variant
) As Variant

Parameters

cyCurrency [C++]
[in] A currency VARIANT that contains the value to format as a string.
cyCurrency [Visual Basic]
A currency Variant that contains the value to format as a string.
vtLocale [C++]
[in, optional] A VARIANT that contains the locale to use when formatting the string.
vtLocale [Visual Basic]
A Variant that contains the locale to use when formatting the string.
vtCurrencySymbol [C++]
[in, optional] A VARIANT that contains the currency symbol to use when formatting the string.
vtCurrencySymbol [Visual Basic]
[in, optional] A Variant that contains the currency symbol to use when formatting the string.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the currency value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the formatted string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
' vtAmount is a Currency Variant
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set to USA
myLocale = 1033
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.LocalizeCurrency(vtAmount, myLocale, "$")
Response.Write "USA: " & Result & "<P>"

' Set to Minbar
myLocale = 1036
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.LocalizeCurrency(vtAmount, myLocale, "MB")
Response.Write "Minbar: " & Result & "<P>"

%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertStringToCurrency

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertStringToCurrency


IDataFunctions_4_0::Money Method [C++]

DataFunctions.Money Method [Visual Basic]

Use this method to convert a long that contains a monetary value to an equivalent string representation, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::Money(
 long lMoney,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function Money(
 lMoney As Long,
 vtLocale As Variant
) As Variant

Parameters

lMoney [C++]
[in] A long that contains the monetary value to convert to a string, specified in the base monetary unit of the locale used to perform the conversion. (This value is not an OLE currency type.)
lMoney [Visual Basic]
A Long that contains the monetary value to convert to a string, specified in the base monetary unit of the locale used to perform the conversion. (This value is not an OLE currency type.)
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the monetary value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the monetary value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the resultant string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains a string representation of the specified monetary value; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
' Amount is a long containing a monetary value in base currency units
' (base currency unit for US is cents)
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.Money(Amount, myLocale)
Response.Write "France: " & Result & "<P>"
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.Money(Amount, myLocale)
Response.Write "USA: " & Result
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertMoneyStringToNumber

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertMoneyStringToNumber


IDataFunctions_4_0::Number Method [C++]

DataFunctions.Number Method [Visual Basic]

Use this method to convert a long integer to its equivalent string representation, based on the default or specified locale.

Definition

[C++]
HRESULT IDataFunctions_4_0::Number(
 long lNumber,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function Number(
 lNumber As Long,
 vtLocale As Variant
) As Variant

Parameters

lNumber [C++]
[in] A long that contains the number to convert to a string.
lNumber [Visual Basic]
A Long that contains the number to convert to a string.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the number to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the specified number.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the string representation of the specified number; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.Number(9999999.99,myLocale)
Response.Write "USA: " & Result & "<P>"

' Set Locale to France
myLocale = "1036"
MSCSDataFunctions.Locale = myLocale

Result = MSCSDataFunctions.Number(9999999,myLocale)

Response.Write "France: " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertNumberString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertNumberString


IDataFunctions_4_0::Time Method [C++]

DataFunctions.Time Method [Visual Basic]

Use this method to converts a Date to a string representation of the time.

Definition

[C++]
HRESULT IDataFunctions_4_0::Time(
 DATE dtDate,
 VARIANT vtLocale,
 VARIANT* pvtRet
);
[Visual Basic]
Function Time(
 dtDate As Date,
 vtLocale As Variant
) As Variant

Parameters

dtDate [C++]
[in] A DATE type that contains the time value to convert.
dtDate [Visual Basic]
A Date type that contains the time value to convert.
vtLocale [C++]
[in] A VARIANT that specifies the locale to use to convert the time value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
vtLocale [Visual Basic]
A Variant that specifies the locale to use to convert the time value to a string. If this parameter is not specified, the value of the Locale property of the DataFunctions object is used.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the string representation of the specified time value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a string Variant that contains the string representation of the specified time value; otherwise, NULL is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
' vResult is a Variant, dDate is a Date
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myLocale = "1033"
MSCSDataFunctions.Locale = myLocale
vResult = MSCSDataFunctions.Time(dDate, myLocale)
Response.Write "USA: " & Result & "<P>"

%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IDataFunctions_4_0::ConvertTimeString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Locale

[Visual Basic] DataFunctions.ConvertTimeString


IDataFunctions_4_0::ValidateDateTime Method [C++]

DataFunctions.ValidateDateTime Method [Visual Basic]

Use this method to check whether a string contains a valid date, time, or date and time, and optionally to check against a specified range.

Definition

[C++]
HRESULT IDataFunctions_4_0::ValidateDateTime(
 VARIANT vtDate,
 VARIANT vtMin,
 VARIANT vtMax,
 VARIANT* pvtValid
);
[Visual Basic]
Function ValidateDateTime(
 vtDate As Variant,
 vtMin As Variant,
 vtMax As Variant
) As Variant

Parameters

vtDate [C++]
[in] A VARIANT that contains the value to validate. This value can be a date, a time, or both.
vtDate [Visual Basic]
A Variant that contains the value to validate. This value can be a date, a time, or both.
vtMin [C++]
[in] A VARIANT that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMin [Visual Basic]
A Variant that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMax [C++]
[in] A VARIANT that contains a value specifying the high end of the range. The default value for this parameter is NULL, which means that the vtMax parameter is ignored in the range validation.
vtMax [Visual Basic]
A Variant that contains a value specifying the high end of the range. The default value for this parameter is NULL, which means that the vtMax parameter is ignored in the range validation.
pvtValid [C++]
[out, retval] A pointer to a VARIANT used to return a Boolean that indicates whether the vtDate parameter is valid. A value of TRUE indicates the vtDate parameter is a valid date, time, or date/time, and that it is within the given range, if any.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean Variant indicating whether the vtDate parameter is valid. A value of True indicates the vtDate parameter is a valid date, time, or date/time, and that it is within the given range, if any.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtValid parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vResult is a Variant, vSourceDate is a Variant containing
' a string representation of a date or date and time
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
vResult = MSCSDataFunctions.ValidateDateTime(vSourceDate,"1/1/1900", _
    "12/31/2525")

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::Date

[C++] IDataFunctions_4_0::DateTime

[C++] IDataFunctions_4_0::Time

[C++] IDataFunctions_4_0::ConvertDateString

[C++] IDataFunctions_4_0::ConvertDateTimeString

[C++] IDataFunctions_4_0::ConvertTimeString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Date

[Visual Basic] DataFunctions.DateTime

[Visual Basic] DataFunctions.Time

[Visual Basic] DataFunctions.ConvertDateString

[Visual Basic] DataFunctions.ConvertDateTimeString

[Visual Basic] DataFunctions.ConvertTimeString


IDataFunctions_4_0::ValidateFloat Method [C++]

DataFunctions.ValidateFloat Method [Visual Basic]

Use this method to check whether a string contains a valid floating-point number, and to optionally check the value of the number against a specified range.

Definition

[C++]
HRESULT IDataFunctions_4_0::ValidateFloat(
 VARIANT vtNumber,
 VARIANT vtMin,
 VARIANT vtMax,
 VARIANT* pvtValid
);
[Visual Basic]
Function ValidateFloat(
 vtNumber As Variant,
 vtMin As Variant,
 vtMax As Variant
) As Variant

Parameters

vtNumber [C++]
[in] A VARIANT that contains the floating-point number to validate.
vtNumber [Visual Basic]
A Variant that contains the floating-point number to validate.
vtMin [C++]
[in] A VARIANT that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMin [Visual Basic]
A Variant that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMax [C++]
[in] A VARIANT that contains a value specifying the high end of the range. The default value for this parameter is NULL, which means that the vtMax parameter is ignored in the range validation.
vtMax [Visual Basic]
A Variant that contains a value specifying the high end of the range. The default value for this parameter is NULL, which means that the vtMax parameter is ignored in the range validation.
pvtValid [C++]
[out, retval] A pointer to a VARIANT used to return a Boolean that indicates whether the vtNumber parameter is valid. A value of TRUE indicates the vtNumber parameter is a valid floating-point number, and that it is within the given range, if any.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean Variant that indicates whether the vtNumber parameter is valid. A value of True indicates the vtNumber parameter is a valid floating-point number, and that it is within the given range, if any.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtValid parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
myFloat = 12.33
MSCSDataFunctions.Locale = myLocale
Result = MSCSDataFunctions.ValidateFloat(myFloat, 1, 10)
Response.Write myFloat & " Is this float between 1 & 10?: " & " " _
    & Result & "<P>"
myFloat = 2.33
Result = MSCSDataFunctions.ValidateFloat(myFloat, 1, 10)
Response.Write myFloat & " Is this float between 1 & 10?: " & " " _
    & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::Float

[C++] IDataFunctions_4_0::ConvertFloatString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Float

[Visual Basic] DataFunctions.ConvertFloatString


IDataFunctions_4_0::ValidateNumber Method [C++]

DataFunctions.ValidateNumber Method [Visual Basic]

Use this method to check whether a string representation of a number is valid, and optionally to check the value of the number against a specified range.

Definition

[C++]
HRESULT IDataFunctions_4_0::ValidateNumber(
 VARIANT vtNumber,
 VARIANT vtMin,
 VARIANT vtMax,
 VARIANT* pvtValid
);
[Visual Basic]
Function ValidateNumber(
 vtNumber As Variant,
 vtMin As Variant,
 vtMax As Variant
) As Variant

Parameters

vtNumber [C++]
[in] A VARIANT that contains a string representation of a number to validate.
vtNumber [Visual Basic]
A Variant that contains a string representation of a number to validate.
vtMin [C++]
[in] A VARIANT that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMin [Visual Basic]
A Variant that contains a value specifying the low end of the range. The default value for this parameter is NULL, which means that the vtMin parameter is ignored in the range validation.
vtMax [C++]
[in] A VARIANT that contains a value specifying the high end of the range. The default value for the vtMax parameter is NULL, which means that this parameter is ignored in the range validation.
vtMax [Visual Basic]
A Variant that contains a value specifying the high end of the range. The default value for the vtMax parameter is NULL, which means that this parameter is ignored in the range validation.
pvtValid [C++]
[out, retval] A pointer to a VARIANT used to return a Boolean that indicates whether the vtNumber parameter is valid. A value of TRUE indicates the vtNumber parameter is a valid whole number, and that it is within the given range, if any.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Boolean Variant that indicates whether the vtNumber parameter is valid. A value of TRUE indicates the vtNumber parameter is a valid whole number, and that it is within the given range, if any.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtValid parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim Result
Dim Amount
Set MSCSDataFunctions = Server.CreateObject("Commerce.DataFunctions")
' Set Locale to USA
MSCSDataFunctions.Locale = myLocale
myInt = 24
Result = MSCSDataFunctions.ValidateNumber(myInt , 1, 10)
Response.Write myInt & " Is this integer between 1 & 10?: " & _
    " " & Result & "<P>"
myInt = 2
Result = MSCSDataFunctions.ValidateNumber(myInt , 1, 10)
Response.Write myInt & " Is this integer between 1 & 10?: " & _
    " " & Result & "<P>"
%>
</BODY>
</HTML>

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::Number

[C++] IDataFunctions_4_0::ConvertNumberString

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.Number

[Visual Basic] DataFunctions.ConvertNumberString


IDataFunctions_4_0 Properties [C++]

DataFunctions_4_0 Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Locale | Long | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | VARIANT | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.
[Visual Basic]
Property | Type | Description
Locale | Long | Stores a number that represents the default locale to be used to format date, time, money, and number values. This property is read/write.
CurrencySymbol | Variant | Stores the currency symbol to use if no currency symbol is specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol. This property is read/write.


IDataFunctions_4_0::get_Locale, put_Locale Property [C++]

DataFunctions.Locale Property [Visual Basic]

[C++]

The Locale property is a read/write long that indicates the default locale to be used by the DataFunctions methods to format date, time, money, and number information. Where the DataFunctions methods take a locale value for a parameter, if that value is not supplied, the value to which you initialize this property is used.

[Visual Basic]

The Locale property is a read/write Long that indicates the default locale to be used by the DataFunctions methods to format date, time, money, and number information. Where the DataFunctions methods take a locale value for a parameter, if that value is not supplied, the value to which you initialize this property is used.

Definition

[C++]

Get method:

HRESULT IDataFunctions_4_0::get_Locale(
 long* Locale
);

Put method:

HRESULT IDataFunctions_4_0::put_Locale(
 long Locale
);
[Visual Basic]
Property Locale As Long

Parameters

Locale [C++]
[in] When putting the property, a long that specifies the locale.
[out, retval] When getting the property, a pointer to a long used to return the locale.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Many of the methods implemented in the Commerce Server objects take locale identifiers as optional parameters. These identifiers are represented by unique hexadecimal codes.

The list of locale and language identifiers can be found in the National Language Support API. This specification can be found in the Microsoft Developer Network. (See Platform SDK, Windows Base Services, International Features).

This list is continually growing and further locale support may be added to any future product.

The following table contains a list of these hexadecimal locale identifiers.

Identifier | Locale
0x0000 | Language Neutral
0x0400 | Process Default Language
0x0401 | Arabic (Saudi Arabia)
0x0801 | Arabic (Iraq)
0x0c01 | Arabic (Egypt)
0x1001 | Arabic (Libya)
0x1401 | Arabic (Algeria)
0x1801 | Arabic (Morocco)
0x1c01 | Arabic (Tunisia)
0x2001 | Arabic (Oman)
0x2401 | Arabic (Yemen)
0x2801 | Arabic (Syria)
0x2c01 | Arabic (Jordan)
0x3001 | Arabic (Lebanon)
0x3401 | Arabic (Kuwait)
0x3801 | Arabic (U.A.E.)
0x3c01 | Arabic (Bahrain)
0x4001 | Arabic (Qatar)
0x0402 | Bulgarian
0x0403 | Catalan
0x0404 | Chinese (Taiwan)
0x0804 | Chinese (PRC)
0x0c04 | Chinese (Hong Kong)
0x1004 | Chinese (Singapore)
0x0405 | Czech
0x0406 | Danish
0x0407 | German (Standard)
0x0807 | German (Swiss)
0x0c07 | German (Austrian)
0x1007 | German (Luxembourg)
0x1407 | German (Liechtenstein)
0x0408 | Greek
0x0409 | English (United States)
0x0809 | English (United Kingdom)
0x0c09 | English (Australian)
0x1009 | English (Canadian)
0x1409 | English (New Zealand)
0x1809 | English (Ireland)
0x1c09 | English (South Africa)
0x2009 | English (Jamaica)
0x2409 | English (Caribbean)
0x2809 | English (Belize)
0x2c09 | English (Trinidad)
0x040a | Spanish (Traditional Sort)
0x080a | Spanish (Mexican)
0x0c0a | Spanish (Modern Sort)
0x100a | Spanish (Guatemala)
0x140a | Spanish (Costa Rica)
0x180a | Spanish (Panama)
0x1c0a | Spanish (Dominican Republic)
0x200a | Spanish (Venezuela)
0x240a | Spanish (Colombia)
0x280a | Spanish (Peru)
0x2c0a | Spanish (Argentina)
0x300a | Spanish (Ecuador)
0x340a | Spanish (Chile)
0x380a | Spanish (Uruguay)
0x3c0a | Spanish (Paraguay)
0x400a | Spanish (Bolivia)
0x440a | Spanish (El Salvador)
0x480a | Spanish (Honduras)
0x4c0a | Spanish (Nicaragua)
0x500a | Spanish (Puerto Rico)
0x040b | Finnish
0x040c | French (Standard)
0x080c | French (Belgian)
0x0c0c | French (Canadian)
0x100c | French (Swiss)
0x140c | French (Luxembourg)
0x040d | Hebrew
0x040e | Hungarian
0x040f | Icelandic
0x0410 | Italian (Standard)
0x0810 | Italian (Swiss)
0x0411 | Japanese
0x0412 | Korean
0x0812 | Korean (Johab)
0x0413 | Dutch (Standard)
0x0813 | Dutch (Belgian)
0x0414 | Norwegian (Bokmal)
0x0814 | Norwegian (Nynorsk)
0x0415 | Polish
0x0416 | Portuguese (Brazilian)
0x0816 | Portuguese (Standard)
0x0418 | Romanian
0x0419 | Russian
0x041a | Croatian
0x081a | Serbian (Latin)
0x0c1a | Serbian (Cyrillic)
0x041b | Slovak
0x041c | Albanian
0x041d | Swedish
0x081d | Swedish (Finland)
0x041e | Thai
0x041f | Turkish
0x0421 | Indonesian
0x0422 | Ukrainian
0x0423 | Belarusian
0x0424 | Slovenian
0x0425 | Estonian
0x0426 | Latvian
0x0427 | Lithuanian
0x0429 | Farsi
0x042a | Vietnamese
0x042d | Basque
0x0436 | Afrikaans
0x0438 | Faeroese

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::GetLocaleList

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.GetLocaleList

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


IDataFunctions_4_0::get_CurrencySymbol, put_CurrencySymbol Property [C++]

DataFunctions.CurrencySymbol Property [Visual Basic]

The CurrencySymbol property is a read/write string Variant that stores the currency symbol to use if the currency symbol parameter is not specified in the ConvertStringToCurrency and LocalizeCurrency methods. The default value is the system default currency symbol.

Definition

[C++]

Get method:

HRESULT IDataFunctions_4_0::get_CurrencySymbol(
 VARIANT* CurrencySymbol
);

Put method:

HRESULT IDataFunctions_4_0::put_CurrencySymbol(
 VARIANT CurrencySymbol
);
[Visual Basic]
Property CurrencySymbol As Variant

Parameters

CurrencySymbol [C++]
[in] When putting the property, a string VARIANT that contains the currency symbol.
[out, retval] When getting the property, a pointer to a string VARIANT used to return the currency symbol.

[Visual Basic] None.

[C++]

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

When getting the property, the CurrencySymbol parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] DataFunctions Object

[C++] IDataFunctions_4_0::ConvertStringToCurrency

[C++] IDataFunctions_4_0::LocalizeCurrency

[Visual Basic] DataFunctions Object

[Visual Basic] DataFunctions.ConvertStringToCurrency

[Visual Basic] DataFunctions.LocalizeCurrency


DBStorage Object [C++]

DBStorage Object [Visual Basic]

Use this method to map Dictionary and SimpleList objects to and from the database, primarily for the storage of receipt and order information. The DBStorage object is created as needed on each page.

ProgID: | Commerce.DBStorage (Externally creatable)
COM Class Name: | MSCSDBStorage_3_0
Type Library Name: | Commerce 1.0 Type Library
DLL Name: | Commerce.dll
Threading Model: | Both
[C++]
COM Interface Name: | IMSCSDBStorage_3_0
Interface ID Constant: | IID_IMSCSDBStorage_3_0
Header File: | mspu_guids.h
[C++]

In C++, use the IMSCSDBStorage_3_0 interface to access the properties and methods of the DBStorage object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.
[Visual Basic]
Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.

Properties

[C++]
Property | Type | Description
Mapping | IDispatch | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.
[Visual Basic]
Property | Type | Description
Mapping | Object | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.

Remarks

The DBStorage object serves as an interface between the site database and Dictionary and OrderForm objects. A DBStorage object contains methods for transferring data between the database and the data object.

Using the CreateObject method of the Server object to instantiate a DBStorage object will return an uninitialized instance of the DBStorage object. Use the InitStorage method to initialize the returned object instance. Attempting to call any other DBStorage method prior to calling the InitStorage method results in an error.

When the DBStorage object retrieves data from the database, it creates the appropriate type of data object (an OrderForm or Dictionary object), stores the requested data there, and then returns the data object. When the DBStorage object is used to save data in the database, you pass it the OrderForm or Dictionary object containing the data, and the DBStorage method copies the data from the data object into the database.

See Also

General Purpose Objects


IMSCSDBStorage_3_0 Methods [C++]

DBStorage Methods [C++]

Methods

[C++]
Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.
[Visual Basic]
Method | Description
CommitData | Updates one or more records in the database storage.
DeleteData | Deletes a row from the database storage, based on the data stored in a Dictionary or OrderForm object.
DeleteDataKey | Deletes a row of data from the database storage, based on the specified key.
GetData | Retrieves a row of data from the database storage, based on a specified key value.
InitStorage | Initializes the object. This method must be called prior to calling any other DBStorage method.
InsertData | Inserts the specified data into the database storage.
LookupData | Retrieves a single row from the database storage, based on the specified column names and values.
LookupMultipleData | Retrieves multiple results from the database storage.
ProcessData | Unpacks the data stored in the MarshalColumn column for a given row, and returns the resulting row in a Dictionary object.


IMSCSDBStorage_3_0::CommitData Method [C++]

DBStorage.CommitData Method [Visual Basic]

Use this method to update the database table based on the contents of the specified Dictionary or OrderForm object.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::CommitData(
 VARIANT vtReserved,
 IDispatch* pdispData
);
[Visual Basic]
Sub CommitData(
 vtReserved As Variant,
 pdispData As Object
)

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. The CommitData method ignores the value of this parameter.
vtReserved [Visual Basic]
A Variant reserved for future use. The CommitData method ignores the value of this parameter.
pdispData [C++]
[in] An IDispatch interface pointer on the OrderForm or Dictionary object that contains the updated data.
pdispData [Visual Basic]
An object reference to the OrderForm or Dictionary object that contains the updated data.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The CommitData and InsertData methods can store data from a specified object into the database in two ways.

First, if the InitStorage method specifies a MarshallColumn parameter, then CommitData and InsertData serialize all the data in the object into binary form and store it into the database column specified by this parameter. (If this argument is not supplied, then no data is stored in serialized form.)

Second, if the names of any items in the object exactly match the names of columns in the database, then the data in these items is stored into the corresponding columns. For example, if the order form contains a value called ship_to_name, and if your database table contains a column named ship_to_name, the DBStorage object saves the value in the ship_to_name entry of the order form into that column.

If the MarshallColumn parameter is specified and matching columns exist, then the corresponding data is stored both ways.

The CommitData method does not support database tables containing fields of type TimeStamp. Instead, use the vtChanged parameter to the DBStorage.InitStorage method, which provides the same functionality as using TimeStamp fields.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.CommitData(Null, Order)

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::InsertData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.InsertData


IMSCSDBStorage_3_0::DeleteData Method [C++]

DBStorage.DeleteData Method [Visual Basic]

Use this method to delete a row from the data source, based on the data stored in the specified Dictionary or OrderForm object.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::DeleteData(
 VARIANT vtReserved,
 IDispatch* pdispData
);
[Visual Basic]
Sub DeleteData(
 vtReserved As Variant,
 pdispData As Object
)

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. This parameter is ignored by the DeleteData method.
vtReserved [Visual Basic]
A Variant reserved for future use. This parameter is ignored by the DeleteData method.
pdispData [C++]
[in] A pointer to the data object to delete. This data object can be either an OrderForm or a Dictionary, but must correspond in type to the object type specified as the ProgID in the initial call to the InitStorage method.
pdispData [Visual Basic]
An object reference to the data object to delete. This data object can be either an OrderForm or a Dictionary, but must correspond in type to the object type specified as the ProgID in the initial call to the InitStorage method.

Return Values

[C++] This method returns an HRESULT indicating whether it or not completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The DeleteDataKey method differs from the DeleteData method in that the DeleteDataKey requires only the value stored in the key column of the underlying table. This is the column specified as the key to the underlying table through a previous call to the InitStorage method.

Thus, if you specify an IDENTITY field in an SQL table as the key into the data source, you can delete all the columns for a specified row by simply providing the appropriate counter value. Alternatively, you can initialize a Dictionary object to the values stored in one or more columns, and pass this initialized object to the DeleteData method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
OrderFormStorage.DeleteData(Null, Order)

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::DeleteDataKey

[C++] IMSCSDBStorage_3_0::InsertData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.DeleteDataKey

[Visual Basic] DBStorage.InsertData


IMSCSDBStorage_3_0::DeleteDataKey Method [C++]

DBStorage.DeleteDataKey Method [Visual Basic]

Use this method to delete a row of data, based on the specified key value.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::DeleteDataKey(
 VARIANT vtReserved,
 VARIANT vtKey
);
[Visual Basic]
Sub DeleteDataKey(
 vtReserved As Variant,
 vtKey As Variant
)

Parameters

vtReserved [C++]
[in] This parameter is reserved for future use and is ignored by the current implementation of the DeleteDataKey method. This parameter is required for compatibility with Site Server 3.0 Commerce Edition, but is not used.
vtReserved [Visual Basic]
This parameter is reserved for future use and is ignored by the current implementation of the DeleteDataKey method. This parameter is required for compatibility with Site Server 3.0 Commerce Edition, but is not used.
vtKey [C++]
[in] A VARIANT that contains the key value for the row to delete. This key corresponds to the column designated as the table key in the initial call to the InitStorage method. Thus, if the call to the InitStorage method specifies column "some_column" as the table key, then the DeleteDataKey method searches "some_column" for the value stored in the vtKey parameter, and deletes the corresponding row of data.
vtKey [Visual Basic]
A Variant that contains the key value for the row to delete. This key corresponds to the column designated as the table key in the initial call to the InitStorage method. Thus, if the call to the InitStorage method specifies column "some_column" as the table key, then the DeleteDataKey method searches "some_column" for the value stored in the vtKey parameter, and deletes the corresponding row of data.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The DeleteDataKey method differs from the DeleteData method in that the DeleteDataKey requires only the value stored in the key column of the underlying table. This is the column specified as the key to the underlying table through a previous call to the InitStorage method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.shopper_id = "Shopper_tmp"
OrderFormStorage.DeleteDataKey(Null, "1234567890WSXCDERFVBGTRESWER")

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::DeleteData

[C++] IMSCSDBStorage_3_0::InsertData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.DeleteData

[Visual Basic] DBStorage.InsertData


IMSCSDBStorage_3_0::GetData Method [C++]

DBStorage.GetData Method [Visual Basic]

Use this method to retrieve a row of data from the database, based on the specified key value. If the data is found, this method creates and returns an OrderForm or Dictionary object containing the requested data.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::GetData(
 VARIANT vtReserved,
 VARIANT vtKey,
 VARIANT* pvtRet
);
[Visual Basic]
Function GetData(
 vtReserved As Variant,
 vtKey As Variant
) As Variant

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. The GetData method ignores any value stored in this parameter.
vtReserved [Visual Basic]
A Variant reserved for future use. The GetData method ignores any value stored in this parameter.
vtKey [C++]
[in] A VARIANT that contains the key value on which to base the search. The GetData method searches for this value in the table column specified as the table key in the initial call to the InitStorage method.
vtKey [Visual Basic]
A Variant that contains the key value on which to base the search. The GetData method searches for this value in the table column specified as the table key in the initial call to the InitStorage method.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return a Dictionary or OrderForm object used to return the retrieved row.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, a Variant containing a Dictionary or OrderForm object that contains the retrieved row is returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method completes successfully.

[C++] For performance reasons, the GetData method is preferred over the LookupData method when the column being searched is the key.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object; vtVar is a Variant

Order.order_id = "Order_tmp"
VtVar = OrderFormStorage.GetData(Null, Order.order_id)

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::LookupData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.LookupData


IMSCSDBStorage_3_0::InitStorage Method [C++]

DBStorage.InitStorage Method [Visual Basic]

Use this method to initialize the DBStorage object. You must call this method immediately after object creation and before calling any other object methods. Attempting to call any other method prior to calling the InitStorage method results in an error.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::InitStorage(
 VARIANT vtDataSourceOrDSN,
 BSTR Table,
 BSTR bstrKey,
 VARIANT vtProgID,
 VARIANT vtMarshal,
 VARIANT vtChanged
);
[Visual Basic]
Sub InitStorage(
 vtDataSourceOrDSN As Variant,
 Table As String,
 bstrKey As String,
 vtProgID As Variant,
 vtMarshal As Variant,
 vtChanged As Variant
)

Parameters

vtDataSourceOrDSN [C++]
[in] A VARIANT which references a valid IDispatch pointer on a DataSource object, or which references a data source name (DSN).
vtDataSourceOrDSN [Visual Basic]
A Variant that contains a valid object reference to a DataSource object, or data source name (DSN).
Table [C++]
[in] A BSTR that contains the name of the table within the data source in which to maintain the data.
Table [Visual Basic]
A String that contains the name of the table within the data source in which to maintain the data.
bstrKey [C++]
[in] A BSTR that contains the column name that the DBStorage object uses as a key into the database table. This column should be marked to contain unique values.
bstrKey [Visual Basic]
A String that contains the column name that the DBStorage object uses as a key into the database table. This column should be marked to contain unique values.
vtProgID [C++]
[in] A VARIANT that contains the ProgID of the object in which data passed to or retrieved by DBStorage methods will be stored. This parameter can be Commerce.Dictionary for storing Dictionary objects or Commerce.OrderForm for storing OrderForm objects. Methods (such as GetData) that return data from the database create an instance of the specified class with the requested data stored within it.
vtProgID [Visual Basic]
A Variant that contains the ProgID of the object in which data passed to or retrieved by DBStorage methods will be stored. This parameter can be Commerce.Dictionary for storing Dictionary objects or Commerce.OrderForm for storing OrderForm objects. Methods (such as GetData) that return data from the database create an instance of the specified class with the requested data stored within it.
vtMarshal [C++]
[in] A VARIANT that contains the text string that, if specified, indicates the name of a column in the database into which the CommitData or InsertData method will store all the data from the specified data object, serialized into an encoded binary format. (Objects in the stored item that have corresponding column names in the database are also stored in those columns in the database.) If this argument is specified, the database must contain a column by that name, or an error will result. If this argument is not specified, then no data from the object is serialized and saved in the database in binary format, and items in the object that do not have corresponding columns in the database are discarded. When using a Microsoft SQL Server database, the maximum size of the data in this column is the same as the maximum size for the SQL Server text/image data type (2,147,483,647 bytes).
vtMarshal [Visual Basic]
A Variant that contains the text string that, if specified, indicates the name of a column in the database into which the CommitData or InsertData method will store all the data from the specified data object, serialized into an encoded binary format. (Objects in the stored item that have corresponding column names in the database are also stored in those columns in the database.) If this argument is specified, the database must contain a column by that name, or an error will result. If this argument is not specified, then no data from the object is serialized and saved in the database in binary format, and items in the object that do not have corresponding columns in the database are discarded. When using a Microsoft SQL Server database, the maximum size of the data in this column is the same as the maximum size for the SQL Server text/image data type (2,147,483,647 bytes).
vtChanged [C++]
[in] A VARIANT that contains the name of a key or attribute in the database into which to write the date when the data is changed. (If you do not specify a column name that exists in the database, the change date will be included in the marshaled data.)
vtChanged [Visual Basic]
A Variant that contains the name of a key or attribute in the database into which to write the date when the data is changed. (If you do not specify a column name that exists in the database, the change date will be included in the marshaled data.)

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' strDSN is the data source connection string; OrderFormStorage
' is an uninitialized Commerce.DBStorage object; "Site_basket"
' is the name of the table in the referenced data source;
' "shopper_id" is the primary key in the "Site_basket" table;
' "marshalled_order" is the name of the column for this DBStorage
' object instance to use for marshaling data; "date_changed"
' is the name of the database column that contains the date
' of the most recent change
' This sample initializes OrderFormStorage as an OrderForm storage object:

OrderFormStorage.InitStorage(strDSN, "Site_basket", "shopper_id", _
    "Commerce.OrderForm", "marshalled_order", "date_changed")

See Also

[C++] DBStorage Object

[Visual Basic] DBStorage Object


IMSCSDBStorage_3_0::InsertData Method [C++]

DBStorage.InsertData Method [Visual Basic]

Use this method to insert the contents of the specified Dictionary object into a database row.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::InsertData(
 VARIANT vtReserved,
 IDispatch* pdispData
);
[Visual Basic]
Sub InsertData(
 vtReserved As Variant,
 pdispData As Object
)

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. This parameter is ignored by the InsertData method.
vtReserved [Visual Basic]
A Variant reserved for future use. This parameter is ignored by the InsertData method.
pdispData [C++]
[in] An IDispatch pointer on the Dictionary object or OrderForm object that contains the data to insert.
pdispData [Visual Basic]
An object reference to the Dictionary object or OrderForm object that contains the data to insert.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The CommitData and InsertData methods can store data from a specified object into the database in two ways.

First, if the InitStorage method specifies a MarshallColumn parameter, then CommitData and InsertData serialize all the data in the object into binary form and store it into the database column specified by this parameter. (If this argument is not supplied, then no data is stored in serialized form.)

Second, if the names of any items in the object exactly match the names of columns in the database, then the data in these items is stored into the corresponding columns. For example, if the order form contains a value called ship_to_name, and if your database table contains a column named ship_to_name, the DBStorage object saves the value in the ship_to_name entry of the order form into that column.

If the MarshallColumn parameter is specified and matching columns exist, then the corresponding data is stored both ways.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.InsertData(Null, Order)

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::CommitData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.CommitData


IMSCSDBStorage_3_0::LookupData Method [C++]

DBStorage.LookupData Method [Visual Basic]

Use this method to retrieve a single row from the data source based upon column names and values that you specify. If the data is found, this method creates and returns an OrderForm or Dictionary object (depending on the vtProgID parameter passed to the InitStorage method) containing the requested data.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::LookupData(
 VARIANT vtReserved,
 VARIANT* pvtKeys,
 VARIANT* pvtValues,
 VARIANT* pvtRet
);
[Visual Basic]
Function LookupData(
 vtReserved As Variant,
 pvtKeys As Variant,
 pvtValues As Variant
) As Variant

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. The LookupData method ignores any value stored in this parameter.
vtReserved [Visual Basic]
A Variant reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys [C++]
[in] A pointer to a VARIANT that identifies the columns in which to search for the data. This VARIANT can be either a SimpleList object or a SAFEARRAY.
pvtKeys [Visual Basic]
A Variant that identifies the columns in which to search for the data. This Variant can be either a SimpleList object or an Array.
pvtValues [C++]
[in] A pointer to a VARIANT that identifies the values for which to search. This parameter can be either a SimpleList object or a SAFEARRAY.
pvtValues [Visual Basic]
A Variant that identifies the values for which to search. This parameter can be either a SimpleList object or an Array.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the result of the lookup; this VARIANT references an IDispatch interface pointer on a Dictionary object that contains the row data. If the method call is unsuccessful, this parameter evaluates to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the result of the lookup; this Variant references a Dictionary object that contains the row data.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method returns successfully.

The pvtKeys and pvtValues parameters are arrays that you pass to the LookupData method share in an index-to-index relationship. This means that they must contain an identical number of members and that the value stored in the pvtValues (N) parameter will be searched for in the column specified by the pvtKeys (N) parameter.

If the arrays contain more than one element, the LookupData method searches for a row in which all of the column/value pairs match.

Because the LookupData method returns only a single row of data, specifying column and value information that would result in the retrieval of more than one row results in an error.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' OrderFormStorage is an initialized DBStorage object instance.
' In the following example, the LookupData method searches
' for a row in which both the shopper_id column contains the
' value returned by the shopper_id variable and the shopper_name
' column contains the customer name returned by the Page.Request method:

' Attempt to determine if this shopper is already registered.
shopper_id = Page.GetShopperID

On Error Resume Next
Dim keys(1)
Dim values(1)
keys(0) = "shopper_id"
keys(1) = "shopper_name"
values(0) = shopper_id
values(1) = Page.Request("shopper_name", Null, 1, 60)

exists=NULL
set exists = OrderFormStorage.LookupData(Null, keys, values)
If IsNull(exists) Then
' This shopper id and name does not exist in the specified columns

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::GetData

[C++] IMSCSDBStorage_3_0::LookupMultipleData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.GetData

[Visual Basic] DBStorage.LookupMultipleData


IMSCSDBStorage_3_0::LookupMultipleData Method [C++]

DBStorage.LookupMultipleData Method [Visual Basic]

Use this method to retrieve multiple results from the database table. If the data is found, this method creates a SimpleList object that contains OrderForm or Dictionary objects, depending on the vtProgID parameter passed to the InitStorage method.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::LookupMultipleData(
 VARIANT vtReserved,
 VARIANT* pvtKeys,
 VARIANT* pvtValues,
 VARIANT* pvtRet
);
[Visual Basic]
Function LookupMultipleData(
 vtReserved As Variant,
 pvtKeys As Variant,
 pvtValues As Variant
) As Variant

Parameters

vtReserved [C++]
[in] A VARIANT reserved for future use. The LookupData method ignores any value stored in this parameter.
vtReserved [Visual Basic]
A Variant reserved for future use. The LookupData method ignores any value stored in this parameter.
pvtKeys [C++]
[in]A pointer to the VARIANT that identifies the columns in which to search for the data. This VARIANT can be either a SimpleList object or a SAFEARRAY.
pvtKeys [Visual Basic]
A Variant that identifies the columns in which to search for the data. This Variant can be either a SimpleList object or an Array.
pvtValues [C++]
[in] A pointer to the VARIANT that identifies the values for which to search. This parameter can be either a SimpleList object or a SAFEARRAY.
pvtValues [Visual Basic]
A Variant that identifies the values for which to search. This parameter can be either a SimpleList object or an Array.
pvtRet [C++]
[out, retval] A pointer to a VARIANT used to return the result of the lookup. This VARIANT references an IDispatch interface on a SimpleList object that consists of one or more Dictionary objects, one for each row of data returned. If the method fails, this parameter is set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that references a SimpleList object that consists of one or more Dictionary objects, one for each row of data returned.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRet parameter points to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; OrderFormStorage is
' an initialized Commerce.DBStorage object

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
OrderFormStorage.InsertData(Null, Order)
OrderFormStorage.LookupMultipleData(Null, Array("order_id"), _
Array("Order_tmp"))

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[C++] IMSCSDBStorage_3_0::GetData

[C++] IMSCSDBStorage_3_0::LookupData

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage

[Visual Basic] DBStorage.GetData

[Visual Basic] DBStorage.LookupData


IMSCSDBStorage_3_0::ProcessData Method [C++]

DBStorage.ProcessData Method [Visual Basic]

Use this method to unpack the data stored in the MarshalColumn database column for a given row, and returns the resulting row in a Dictionary object.

Definition

[C++]
HRESULT IMSCSDBStorage_3_0::ProcessData(
 IDispatch* pdispData,
 IDispatch** ppdispRet
);
[Visual Basic]
Function ProcessData(
 pdispData As IDispatch
) As Object

Parameters

pdispData [C++]
[in] An IDispatch pointer on a Dictionary object that contains the marshaled data.
pdispData [Visual Basic]
An object reference to a Dictionary object that contains the marshaled data.
ppdispRet [C++]
[out, retval] The address of an IDispatch pointer on a Dictionary object used to return the unmarshaled data.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to a Dictionary object that contains the unmarshaled data.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppdispRet parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dSource is a Dictionary object; OrderFormStorage is
' an initialized Commerce.DBStorage object; dDictionary is a
' Dictionary object which will receive the unmarshaled data

Order.order_id = "Order_tmp"
Order.shopper_id = "Shopper_tmp"
dDictionary = OrderFormStorage.ProcessData(dSource)

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage


IMSCSDBStorage_3_0 Properties [C++]

DBStorage Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Mapping | IDispatch | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.
[Visual Basic]
Property | Type | Description
Mapping | Object | Maps a database column to an entry in the OrderForm or Dictionary object that DBStorage uses to insert and retrieve data. This property is read/write.


IMSCSDBStorage_3_0::get_Mapping, put_Mapping Property [C++]

DBStorage.Mapping Property [Visual Basic]

The Mapping property maps a database column to an entry in the OrderForm or Dictionary object that the DBStorage object uses to insert and retrieve data.

Definition

[C++]

Get method:

HRESULT IMSCSDBStorage_3_0::get_Mapping(
 IDispatch** Mapping
);

Put method:

HRESULT IMSCSDBStorage_3_0::put_Mapping(
 IDispatch* Mapping
);
[Visual Basic]
Property Mapping As Object

Parameters

Mapping [C++]
[in] When putting the property, an IDispatch interface that contains the mapping Dictionary that is set for this DBStorage object instance.
[out, retval] When getting the property, an IDispatch interface used to return the mapping Dictionary for this DBStorage object instance.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

A mapping Dictionary object makes it possible to map the column names in a database table to one or more names that you choose, usually for display to the site user. Suppose, for example, that your database table contains a column named "shopper_name", but that you want to display the contents of this column as the more human-readable "Shopper Name". Consequently, you initialize a "shopper_name" key in a Dictionary object to "Shopper Name", and pass this Dictionary object to the put_Mapping method. When you call a DBStorage object data retrieval method, such as GetData, to read a row of data into a Dictionary object, the Dictionary key for the "shopper_name" column reads "Shopper Name". This new mapping means that you do not have to translate the column name to a more human-readable name before displaying its values to the site user. You can simply display the keys and values as they appear in the Dictionary object returned by the GetData method.

The Mapping parameter contains valid data only if the property is accessed successfully.

[Visual Basic]

A mapping Dictionary object makes it possible to map the column names in a database table to one or more names that you choose, usually for display to the site user. Suppose, for example, that your database table contains a column named "shopper_name", but that you want to display the contents of this column as the more human-readable "Shopper Name". Consequently, you initialize a "shopper_name" key in a Dictionary object to "Shopper Name", and use this object to set the Mapping property. When you call a DBStorage object data retrieval method, such as GetData, to read a row of data into a Dictionary object, the Dictionary key for the "shopper_name" column reads "Shopper Name". This new mapping means that you do not have to translate the column name to a more human-readable name before displaying its values to the site user. You can simply display the keys and values as they appear in the Dictionary object returned by the GetData method.

See Also

[C++] DBStorage Object

[C++] IMSCSDBStorage_3_0::InitStorage

[Visual Basic] DBStorage Object

[Visual Basic] DBStorage.InitStorage


Dictionary Object [C++]

Dictionary Object [Visual Basic]

Use this object to support the creation, storage, and retrieval of name/value pairs in memory. Every value in a Dictionary object is a Variant, which means you can create a Dictionary object that consists of almost any kind of value (including other Dictionary objects), and that you can store any combination of Variant types in the same Dictionary object.

ProgID: | Commerce.Dictionary (Externally creatable)
COM Class Name: | CDictionary
Type Library Name: | Microsoft Commerce 2002 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both
[C++]
COM Interface Name: | IDictionary
Interface ID Constant: | IID_IDictionary
Header File: | commerce.h, mspu_guids.h
[C++]

In C++, use the IDictionary interface to access the properties and methods of the Dictionary object.

Properties

[C++]
Property | Type | Description
Count | long | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | BSTR | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | VARIANT | Stores the value of a given Dictionary key. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | String | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | Variant | Stores the value of a given Dictionary key. This property is read/write.

Remarks

Because a Dictionary object is designed to be a general-purpose collection, you can use it for almost anything that its internal structure supports.

When you need to create a Dictionary object explicitly (that is, when the object is not created for you by some other Commerce Server 2002 object), use the CreateObject method of the Active Server Pages (ASP) Server object, as follows:

Set dictUser = Server.CreateObject("Commerce.Dictionary")

After creating the object, you can add elements to it, as follows:

dictUser.first_name = "Steve"

In this example, first_name is a Dictionary key, and Steve becomes the assigned value of this key. Each statement actually accomplishes three functions: declaring the Dictionary key, adding that key to the Dictionary object, and setting the key to a value.

You can extract values from a Dictionary object in several ways. You can simply place the object.key identifier on the right side of the assignment statement. Such an assignment returns the value of the referenced key:

my_first_name = dictUser.first_name

Or you can use the Value method to get the value of a given key:

my_first_name = dictUser.Value("first_name")

You can also use the For Each statement in Microsoft Visual Basic Scripting Edition (VBScript) to enumerate through the keys or the values of a Dictionary object as follows (this example assumes that every value in the dictionary contains text):

' Get the key names
For Each element In dictUser
    Response.Write element
Next

' Get the values
For Each element In dictUser
    Response.Write dictUser.Value(element)
Next

The data in a Dictionary object can be saved in a database table by using the DBStorage object.

Commerce Server 2002 sites use implementations of the Dictionary object to store sets of data that are required by various other objects and pipeline components.

Unlike previous versions of the dictionary, the dictionary in Commerce Server 2002 is implemented as a hash of name value pairs. This enables the dictionary to perform fast lookups even when a large number of key/value pairs are stored. It also has the side effect that enumerations of dictionary keys may not be returned in the same order they are stored.

The dictionary object aggregates the Free Threaded Marshaller (FTM) for performance reasons (so that calls to the dictionary will never go through a proxy, no matter what COM apartment it is called from). Because of this, you may not store a reference to an apartment-threaded object in a dictionary. Doing so may result in errors such as RPC_E_WRONGTHREAD when the object pointer is retrieved and used.

The Dictionary object supports the ICloneable and IPersistXML interfaces. Use the ICloneable interface to deep copy all name/value pairs into a new dictionary. Use the IPersistXML interface to convert the Dictionary entries into an XML string and back again.

See Also

General Purpose Objects

IPersistXML Interface

[C++] SimpleList Object

[Visual Basic] SimpleList Object


IDctionary Properties [C++]

Dictionary Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Count | long | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | BSTR | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | VARIANT | Stores the value of a given Dictionary key. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Returns the number of elements in the Dictionary object. This property is read-only.
Prefix | String | Stores the string that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. This property is read/write.
Value | Variant | Stores the value of a given Dictionary key. This property is read/write.


IDictionary::get_Count Property [C++]

Dictionary.Count Property [Visual Basic]

The Count property is a read-only Long that contains the number of elements in the Dictionary object instance.

Definition

[C++]
HRESULT IDictionary::get_Count(
 long* Count
);
[Visual Basic]
Property Count As Long

Parameters

Count [C++]
[out, retval] A pointer to a long in which the get_Count method stores the number of elements in the Dictionary object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Count parameter points to valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Dictionary Object

[Visual Basic] Dictionary Object


IDictionary::get_Prefix, put_Prefix Property [C++]

Dictionary.Prefix Property [Visual Basic]

The Prefix property is a read/write String that acts as a filter when the contents of the Dictionary object are saved (usually to a database). When the name of a name/value pair begins with the specified prefix, that name/value pair is not saved. By default, the prefix is "_", so that any keywords beginning with an underscore character are excluded.

Definition

[C++]

Get method:

HRESULT IDictionary::get_Prefix(
 BSTR* Prefix
);

Put method:

HRESULT IDictionary::put_Prefix(
 BSTR Prefix
);
[Visual Basic]
Property Prefix As String

Parameters

Prefix [C++]
[in] When putting the property, a BSTR that contains the prefix.
[out, retval] When getting the property, a pointer to the BSTR that contains the prefix.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Prefix parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

By default, the prefix is "_", so that any keywords beginning with an underscore character are excluded.

The pipeline component that saves receipts usually sets the prefix to "_cc_", so that all credit-card information is not saved in the database. The actual string used by the pipeline component is configurable.

See Also

[C++] Dictionary Object

[Visual Basic] Dictionary Object


IDictionary::get_Value, put_Value Property [C++]

Dictionary.Value Property [Visual Basic]

The Value property allows you to get or set a name/value pair in the Dictionary.

Definition

[C++]

Get method:

HRESULT IDictionary::get_Value(
 BSTR bstrName,
 VARIANT* Value
);

Put method:

HRESULT IDictionary::put_Value(
 BSTR bstrName,
 VARIANT Value
);

Putref method:

HRESULT IDictionary::putref_Value(
 BSTR bstrName,
 VARIANT Value
);
[Visual Basic]
Property Value(
 bstrName As String
) As Variant

Parameters

bstrName [C++]
[in] A BSTR that contains the name of the Dictionary key for which to retrieve a value or put a value.
bstrName [Visual Basic]
A String that contains the name of the Dictionary key for which to retrieve a value or put a value.
Value [C++]
[in] When putting the property, a VARIANT that contains the value to which the element specified by the key bstrName should be initialized.
[out, retval] When getting the property, a pointer to a VARIANT used to return the value of the key specified by the bstrName parameter.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details. If successful, this method returns S_OK. Otherwise, it returns an HRESULT indicating failure, and the Value out-value parameter is set to NULL.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] When reading the Value property using the get_Value method, if the key being accessed in the dictionary does not exist, a VARIANT of type VT_NULL is returned. Therefore, to logically delete a key from the dictionary, you can set the value for the key to VT_NULL and then to a client of the dictionary. It is indistinguishable from a key/value pair that does not exist. The Value parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] When putting a value, use the putref method if you are setting an object reference; use the put method if you are setting a scalar value.

[Visual Basic]

Example

' dDict is a Commerce.Dictionary object
' first_name is a Dictionary key
' v_first_name is a Variant
v_first_name = dDict.value("first_name")
v_first_name = dDict("first_name")

' use this form if the value contains an object reference:
Set oSubObject = dDict("myObjectKey")

' Property syntax
' Note: There is a slight performance penalty for using
' these forms because a special implementation of IDispatch is used
v_first_name = dDict.first_name
' If the key begins with an underscore then use braces around the key name
v_first_name = dDict.[_first_name]

See Also

[C++] Dictionary Object

[Visual Basic] Dictionary Object


DictionaryXMLTransforms Object [C++]

DictionaryXMLTransforms Object [Visual Basic]

Use this object to transform data from a Dictionary object into Extensible Markup Language (XML) and vice-versa, using a specified XML Data Reduced (XDR) schema.

In Commerce Server 2000, the DictionaryXMLTransforms object did not support Dictionary objects that contained SimpleList objects. An example of such a Dictionary object is an OrderForm object. In Commerce Server 2002 Enterprise Edition, the DictionaryXMLTransforms object supports these objects.

ProgID: | Commerce.DictionaryXMLTransforms (Externally creatable)
COM Class Name: | DictionaryXMLTransforms
Type Library Name: | Microsoft Commerce 2002 DictionaryXMLTransform Type Library
DLL Name: | DictionaryXMLTransforms.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _DictionaryXMLTransforms
Interface ID Constant: | None
Header File: | None

Important

  • The DictionaryXMLTransforms object is only capable of processing dictionary keys with names that would be allowable as XML Node names. Allowable characters include A-Z and the underscore "_" character. Disallowed characters include"*", "\", and so forth, and foreign language characters.
  • Every dictionary key value must be URL-encoded.
[C++]

In C++, use the _DictionaryXMLTransforms interface to access the properties and methods of the DictionaryXMLTransforms object.

Methods

[C++]
Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary or OrderForm object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary or OrderForm object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object. If the schema was originally generated from an OrderForm object, the structure of the regenerated Dictionary object will reflect the OrderForm object.
[Visual Basic]
Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary or OrderForm object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary or OrderForm object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object. If the schema was originally generated from an OrderForm object, the structure of the regenerated Dictionary object will reflect the OrderForm object.

Remarks

The example code that calls this method can be found in the payment.asp and _recvpo.asp files. An example of the use of a XML schema can be found in the POSchema.xml file in the Solution Sites.

The following table lists the datatypes converted using the DictionaryXMLTransform object.

COM Variant Type | XML Data Type | VB function
VT_BSTR | string | string
VT_INT | int | Cint
VT_R8 | float | Cdbl
VT_BOOL | boolean | Cbool
VT_I1 | i1 | Cint
VT_I2 | i2 | Cdbl
VT_UI1 | ui1 | Cint
VT_UI2 | ui2 | Cdbl
VT_R4 | r4 | Cdbl
VT_I4 | i4 | long
Other | else | string

The middle column of the table lists the XML datatypes that can be specified in the XDR Schema for the Dictionary. For example, when generating the following XML using the DictionaryXMLTranform object:

<Items product_catalog="look there" quantity="2"/>

you can specify the data type used used by the property. First, use an XML editor, such as Biztalk Editor, to generate an XDR for the Dictionary. The XDR can be created by selecting the Export Schema option on the Tools menu of BizTalk Editor. By default, code in the XDR would appear similar to the following:

<AttributeType name="quantity" />
<AttributeType name="product_catalog" />

The values in the middle row can be used to set the datatype for the property. For example, to set the data type for the quantity property to int, and the product_catalog property to string, do the following:

  <AttributeType name="quantity" d:type="int" />
  <AttributeType name="product_catalog" d:type="string" />

See Also

General Purpose Objects

[C++] Dictionary Object

[Visual Basic] Dictionary Object


_DictionaryXMLTransforms Methods [C++]

DictionaryXMLTransforms Methods [Visual Basic]

Methods

[C++]
Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary or OrderForm object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary or OrderForm object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object. If the schema was originally generated from an OrderForm object, the structure of the regenerated Dictionary object will reflect the OrderForm object.
[Visual Basic]
Method | Description
GenerateSampleXMLInstanceFromDictionary | Produces an XML instance based on the specified Dictionary or OrderForm object.
GenerateXMLForDictionaryUsingSchema | Extracts an XML instance from the specified Dictionary or OrderForm object that conforms to the specified schema.
GetXMLFromFile | Generates an XML Document Object Model (DOM) document from the specified file.
ReconstructDictionaryFromXML | Transforms the specified XML instance (which must comply with the specified schema) into a Dictionary object. If the schema was originally generated from an OrderForm object, the structure of the regenerated Dictionary object will reflect the OrderForm object.


_DictionaryXMLTransforms::GenerateSampleXMLInstanceFromDictionary Method [C++]

DictionaryXMLTransforms.GenerateSampleXMLInstanceFromDictionary Method [Visual Basic]

Use this method to generate an XML Data Reduced (XDR) schema. This method produces an XML instance based on the specified Dictionary or OrderForm object. You can then import this XML instance into a tool (such as the BizTalk Editor) that can construct a schema based on a given instance.

Definition

[C++]
HRESULT _DictionaryXMLTransforms::GenerateSampleXMLInstanceFromDictionary(
  IDictionary* Dictionary,
  BSTR ElementName,
  VARIANT_BOOL bIgnoreUnderScore,
  IXMLDOMNode** RetValue
);
[Visual Basic]
Function GenerateSampleXMLInstanceFromDictionary(
  Dictionary As Object,
  ElementName As String,
  bIgnoreUnderScore As Boolean
) As Object

Parameters

Dictionary [C++]
[in] A pointer to the IDictionary interface of a Dictionary object that contains the data to convert into XML.
Dictionary [Visual Basic]
A Dictionary object that contains the data to convert into XML.
ElementName [C++]
[in] A BSTR that contains the element name.
ElementName [Visual Basic]
A String that contains the element name.
bIgnoreUnderScore [C++]
[in] A VARIANT_BOOL that specifies whether to ignore dictionary keys with leading underscores in the dictionary. This value should generally be set to True.
bIgnoreUnderScore [Visual Basic]
A Boolean that that specifies whether to ignore dictionary keys with leading underscores in the dictionary. This value should generally be set to True.
RetValue [C++]
[out, retval] The address of the pointer to the IXMLDOMNode interface of the newly created XMLDOMNode object containing the XML instance.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference used to return the XML instance.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method cannot operate on OrderForms that have empty lists if the bIgnoreUnderScore parameter of this method is set to False.

[C++] The RetValue parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sElement is a string
' oXMLDOMNode is a XMLDOMNode object
oXMLDOMNode = _
oDictionaryXMLTransforms.GenerateSampleXMLInstanceFromDictionary(dDict, _
    sElement, TRUE)

See Also

[C++] DictionaryXMLTransforms Object

[Visual Basic] DictionaryXMLTransforms Object


_DictionaryXMLTransforms::GenerateXMLForDictionaryUsingSchema Method [C++]

DictionaryXMLTransforms.GenerateXMLForDictionaryUsingSchema Method [Visual Basic]

Use this method to extract an XML instance from the specified Dictionary or OrderForm object that conforms to the specified schema.

Definition

[C++]
HRESULT _DictionaryXMLTransforms::GenerateXMLForDictionaryUsingSchema(
  IDictionary* Dictionary,
  IXMLDOMDocument* xmlSchema,
  IXMLDOMNode** RetValue
);
[Visual Basic]
Function GenerateXMLForDictionaryUsingSchema(
  Dictionary As Object,
  xmlSchema As Object
) As Object

Parameters

Dictionary [C++]
[in] A pointer to the IDictionary interface of the Dictionary object to be converted.
Dictionary [Visual Basic]
A Dictionary object that contains the data to be converted.
xmlSchema [C++]
[in] A reference to the IXMLDOMDocument interface of the XMLDOMDocument object that contains the XML schema.
xmlSchema [Visual Basic]
An XMLDOMDocument object that contains the XML schema.
RetValue [C++]
[out, retval] A pointer to hold the reference to the returned IXMLDOMNode interface of a XMLDOMNode object, which will contain the XML instance.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an XMLDOMNode object that contains the XML schema.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The RetValue parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object
' oXMLDOMDocument is a XMLDOMDocument object
' oXMLDOMNode is a XMLDOMNode object
oXMLDOMNode = _
oDictionaryXMLTransforms.GenerateXMLForDictionaryUsingSchema(dDict, _
    oXMLDOMDocument)

See Also

[C++] DictionaryXMLTransforms Object

[Visual Basic] DictionaryXMLTransforms Object


_DictionaryXMLTransforms::GetXMLFromFile Method [C++]

DictionaryXMLTransforms.GetXMLFromFile Method [Visual Basic]

Use this method to generate a XML Document Object Model (DOM) document from the specified file.

Definition

[C++]
HRESULT _DictionaryXMLTransforms::GetXMLFromFile(
  BSTR sFileName,
  IXMLDOMDocument** RetValue
);
[Visual Basic]
Function GetXMLFromFile(
  sFileName As String
) As Object

Parameters

sFileName [C++]
[in] A BSTR that contains the name of the file to convert.
sFileName [Visual Basic]
A String that contains the name of the file to convert.
RetValue [C++]
[out, retval] A pointer to hold the reference to the returned IXMLDOMDocument interface of the XMLDOMDocument object, which will contain the converted file data.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to an XMLDOMDocument object containing the converted file data.

Error Values

This method does not return an error when the file specified by sFileName is an .exe file, a text file, an invalid XML file, or a non-existent file. The error type can only be found by viewing the ParseError property of the DOMDocument object.

Remarks

[C++] The RetValue parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sMyFileName.xml is a string
' oXMLDOMDocument is a XMLDOMDocument object
oXMLDOMDocument = _
    oDictionaryXMLTransforms.GetXMLFromFile("sMyFileName.xml")

See Also

[C++] DictionaryXMLTransforms Object

[Visual Basic] DictionaryXMLTransforms Object


_DictionaryXMLTransforms::ReconstructDictionaryFromXML Method [C++]

DictionaryXMLTransforms.ReconstructDictionaryFromXML Method [Visual Basic]

Use this method to transform the specified XML instance (which must comply with the specified schema) into a Dictionary object. If the schema was originally generated from an OrderForm object, the structure of the regenerated Dictionary object will reflect the OrderForm object.

Definition

[C++]
HRESULT _DictionaryXMLTransforms::ReconstructDictionaryFromXML(
  BSTR szDictionaryXML,
  IXMLDOMDocument* xmlSchema,
  IDictionary** RetValue
);
[Visual Basic]
Function ReconstructDictionaryFromXML(
  szDictionaryXML As String,
  xmlSchema As Object
) As Object

Parameters

szDictionaryXML [C++]
[in] A BSTR that contains the XML instance.
szDictionaryXML [Visual Basic]
A String that contains the XML instance.
xmlSchema [C++]
[in] A reference to the IXMLDOMDocument interface of the XMLDOMDocument object that contains the XML schema used in the conversion.
xmlSchema [Visual Basic]
An object reference to a XMLDOMDocument object that contains the XML schema.
RetValue [C++]
[out, retval] The address of a pointer to receive an IDictionary interface of the reconstructed Dictionary object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference to a Dictionary object that contains the converted data.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The RetValue parameter contains valid data only if the method completes successfully.

This method performs the inverse operation of the GenerateXMLForDictionaryUsingSchema method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oDictionaryXMLTransforms is a Commerce.DictionaryXMLTransforms object
' dDict is a Dictionary object; sMyXMLInstance is a string
' oXMLDOMDocument is a XMLDOMDocument object
dDict = _
oDictionaryXMLTransforms.ReconstructDictionaryFromXML(sMyXMLInstance, _
    oXMLDOMDocument)

See Also

[C++] DictionaryXMLTransforms Object

[Visual Basic] DictionaryXMLTransforms Object


EuroDisplay Object [C++]

EuroDisplay Object [Visual Basic]

Use this object to convert and format currency amounts where multiple currencies must be displayed.

ProgID: | Commerce.EuroDisplay (Externally creatable)
COM Class Name: | EuroDisplay
Type Library Name: | Microsoft Commerce 2002 Euro Display Component Type Library
DLL Name: | EuroDisp.dll
Threading Model: | Both
[C++]
COM Interface Name: | IEuroDisplay
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the IEuroDisplay interface to access the properties and methods of the EuroDisplay object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency VARIANT.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency VARIANT.
ConvertMoney | Converts the specified currency VARIANT (representing a monetary value in the base currency) to a currency VARIANT representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency VARIANT, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency VARIANT, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.
[Visual Basic]
Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Variant.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency Variant.
ConvertMoney | Converts the specified currency Variant (representing a monetary value in the base currency) to a currency Variant representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency Variant, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency Variant, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.


IEuroDisplay Methods [C++]

EuroDisplay Methods [Visual Basic]

Methods

[C++]
Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency VARIANT.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency VARIANT.
ConvertMoney | Converts the specified currency VARIANT (representing a monetary value in the base currency) to a currency VARIANT representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency VARIANT, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency VARIANT, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.
[Visual Basic]
Method | Description
ConvertAltStringToCurr | Converts a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Variant.
ConvertBaseStringToCurr | Converts a string representation of a monetary value in the currency specified by the base locale identifier to a currency Variant.
ConvertMoney | Converts the specified currency Variant (representing a monetary value in the base currency) to a currency Variant representing a monetary value in the alternate currency, using the initialized conversion rate.
FormatAltMoney | Creates a string representation of a currency Variant, based on the alternate locale identifier and the alternate currency symbol string.
FormatBaseMoney | Creates a string representation of a currency Variant, based on the base locale identifier and the base currency symbol string.
Initialize | Initializes the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.


IEuroDisplay::ConvertAltStringToCurr Method [C++]

EuroDisplay.ConvertAltStringToCurr Method [Visual Basic]

Use this method to convert a string representation of a monetary value in the currency specified by the alternate locale identifier to a currency Variant.

Definition

[C++]
HRESULT IEuroDisplay::ConvertAltStringToCurr(
  VARIANT vtMoneyString,
  VARIANT* pvarNumber
);
[Visual Basic]
Function ConvertAltStringToCurr(
  vtMoneyString As Variant
) As Variant

Parameters

vtMoneyString [C++]
[in] A VARIANT that contains the currency string to convert.
vtMoneyString [Visual Basic]
A Variant that contains the currency string to convert.
pvarNumber [C++]
[out, retval] A pointer to a currency VARIANT used to return the converted currency information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a currency Variant that contains the converted currency information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvarNumber parameter points to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' vResult is a Variant
vResult = oEuroDisp.ConvertAltStringToCurr("23,444.53886")
' In the preceding example, the variable vResult is
' internally rounded to 23444.5389

See Also

[C++] EuroDisplay Object

[C++] IEuroDisplay::ConvertBaseStringToCurr

[C++] IEuroDisplay::FormatAltMoney

[Visual Basic] EuroDisplay Object

[Visual Basic] EuroDisplay.ConvertBaseStringToCurr

[Visual Basic] EuroDisplay.FormatAltMoney


IEuroDisplay::ConvertBaseStringToCurr Method [C++]

EuroDisplay.ConvertBaseStringToCurr Method [Visual Basic]

Use this method to convert a string representation of a monetary value in the currency specified by the base locale identifier to a currency Variant.

Definition

[C++]
HRESULT IEuroDisplay::ConvertBaseStringToCurr(
  VARIANT vtMoneyString,
  VARIANT* pvarNumber
);
[Visual Basic]
Function ConvertBaseStringToCurr(
  vtMoneyString As Variant
) As Variant

Parameters

vtMoneyString [C++]
[in] A VARIANT that contains the currency string to convert.
vtMoneyString [Visual Basic]
A Variant that contains the currency string to convert.
pvarNumber [C++]
[out, retval] A pointer to a currency VARIANT used to return the converted currency information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a currency Variant that contains the converted currency information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvarNumber parameter points to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' vResult is a Variant
vResult = oEuroDisp.ConvertBaseStringToCurr("99,333.53886")
' In the preceding example, the variable vResult is
' internally rounded to 99333.5389

See Also

[C++] EuroDisplay Object

[C++] IEuroDisplay::ConvertAltStringToCurr

[C++] IEuroDisplay::FormatBaseMoney

[Visual Basic] EuroDisplay Object

[Visual Basic] EuroDisplay.ConvertAltStringToCurr

[Visual Basic] EuroDisplay.FormatBaseMoney


IEuroDisplay::ConvertMoney Method [C++]

EuroDisplay.ConvertMoney Method [Visual Basic]

Use this method to convert the specified currency Variant (representing a monetary value in the base currency) to a currency Variant representing a monetary value in the alternate currency, using the initialized conversion rate.

Definition

[C++]
HRESULT IEuroDisplay::ConvertMoney(
  VARIANT vtCurrVal,
  VARIANT* pvarConvVal
);
[Visual Basic]
Function ConvertMoney(
  vtCurrVal As Variant
) As Variant

Parameters

vtCurrVal [C++]
[in] A currency VARIANT representing a monetary value in the base currency.
vtCurrVal [Visual Basic]
A Variant that contains the monetary value in the base currency.
pvarConvVal [C++]
[out, retval] A pointer to a currency VARIANT representing a monetary value in the alternate currency.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a currency Variant representing a monetary value in the alternate currency.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvarConvVal parameter points to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

<%
Dim Result
Set MSCSEuroDisplay= Server.CreateObject("Commerce.EuroDisplay")
MSCSEuroDisplay.Initialize "$$",1033,"FF",1036, 2
Result = MSCSEuroDisplay.ConvertMoney(100)
Response.Write "Converted $100 from $ to F ($1 = 2F) : " & Result & "<P>"
%>

See Also

[C++] EuroDisplay Object

[Visual Basic] EuroDisplay Object


IEuroDisplay::FormatAltMoney Method [C++]

EuroDisplay.FormatAltMoney Method [Visual Basic]

Use this method to create a string representation of a currency Variant, based on the alternate locale identifier and the alternate currency symbol string.

Definition

[C++]
HRESULT IEuroDisplay::FormatAltMoney(
  VARIANT vtConvMoney,
  BSTR* szAltMoney
);
[Visual Basic]
Function FormatAltMoney(
  vtConvMoney As Variant
) As String

Parameters

vtConvMoney [C++]
[in] A currency VARIANT that contains the monetary value to convert.
vtConvMoney [Visual Basic]
A currency Variant that contains the monetary value to convert.
szAltMoney [C++]
[out, retval] A pointer to a BSTR used to return the string representation of the specified currency VARIANT.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the string representation of the specified currency Variant.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The szAltMoney parameter points to valid data only if the method returns successfully.

The correct display of decimal places is dependent upon registry settings. For example, to ensure that 2 decimal places are displayed as in $ 1.08, in the Registry editor, you must ensure that the HKEY_USERS\DEFAULT\Control Panel\International\iCurrDigits value is set to 2.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' vTest is a Currency Variant
' vResult is a String
vTest = "$ 20.00"
vResult = oEuroDisp.FormatAltMoney (vTest)
' In the preceding example, if the Alt Currency symbol string
' is "$" and the Alt locale identifier is 1033, vResult will
' contain the string, "$ 20.00"

See Also

[C++] EuroDisplay Object

[C++] IEuroDisplay::ConvertAltStringToCurr

[C++] IEuroDisplay::FormatBaseMoney

[Visual Basic] EuroDisplay Object

[Visual Basic] EuroDisplay.ConvertAltStringToCurr

[Visual Basic] EuroDisplay.FormatBaseMoney


IEuroDisplay::FormatBaseMoney Method [C++]

EuroDisplay.FormatBaseMoney Method [Visual Basic]

Use this method to create a string representation of a currency Variant, based on the base locale identifier and the base currency symbol string.

Definition

[C++]
HRESULT IEuroDisplay::FormatBaseMoney(
  VARIANT vtConvMoney,
  BSTR* szBaseMoney
);
[Visual Basic]
Function FormatBaseMoney(
  vtConvMoney As Variant
) As String

Parameters

vtConvMoney [C++]
[in] A currency VARIANT that contains the monetary value to convert.
vtConvMoney [Visual Basic]
A currency Variant that contains the monetary value to convert.
szBaseMoney [C++]
[out, retval] A BSTR used to return the string representation of the specified currency VARIANT.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the string representation of the specified currency Variant.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The szBaseMoney parameter contains valid data only if the method returns successfully.

The correct display of decimal places is dependent upon registry settings. For example, to ensure that 2 decimal places are displayed as in $ 1.08, in the Registry editor, you must ensure that the HKEY_USERS\DEFAULT\Control Panel\International\iCurrDigits value is set to 2.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' vTest is a Currency Variant
' vResult is a String
vTest = "$ 40.08"
vResult = oEuroDisp.FormatBaseMoney (vTest)
' In the preceding example, if the Base Currency symbol string
' is "$" and the Base locale identifier is 1033, vResult will
' contain the string, "$ 40.08"

See Also

[C++] EuroDisplay Object

[C++] IEuroDisplay::ConvertBaseStringToCurr

[C++] IEuroDisplay::FormatAltMoney

[Visual Basic] EuroDisplay Object

[Visual Basic] EuroDisplay.ConvertBaseStringToCurr

[Visual Basic] EuroDisplay.FormatAltMoney


IEuroDisplay::Initialize Method [C++]

EuroDisplay.Initialize Method [Visual Basic]

Use this method to initialize the object with the specified alternate currency symbol, base currency symbol, alternate locale identifier, base locale identifier, and conversion rate.

Definition

[C++]
HRESULT IEuroDisplay::Initialize(
  BSTR szBaseCurr,
  long lBaseLCID,
  BSTR szAltCurr,
  long lAltLCID,
  double flEuroConvRate
);
[Visual Basic]
Sub Initialize(
  szBaseCurr As String,
  lBaseLCID As Long,
  szAltCurr As String,
  lAltLCID As Long,
  flEuroConvRate As Double
)

Parameters

szBaseCurr [C++]
[in] A BSTR that contains the base currency symbol string.
szBaseCurr [Visual Basic]
A String that contains the base currency symbol string.
lBaseLCID [C++]
[in] A long that contains the base locale identifier.
lBaseLCID [Visual Basic]
A Long that contains the base locale identifier.
szAltCurr [C++]
[in] A BSTR that contains the alternate currency symbol string.
szAltCurr [Visual Basic]
A String that contains the alternate currency symbol string.
lAltLCID [C++]
[in] A long that contains the alternate locale identifier.
lAltLCID [Visual Basic]
A Long that contains the alternate locale identifier.
flEuroConvRate [C++]
[in] A double (8-byte floating point number) that contains the rate at which to convert the base currency into the alternate currency. For example, if the base currency is Swiss Francs which are exchanged at a rate of 1 SF = 0.63 Euros, and the alternate currency is Euro, then this parameter will have a value of 0.63.
flEuroConvRate [Visual Basic]
A Double (8-byte floating point number) that contains the rate at which to convert the base currency into the alternate currency. For example, if the base currency is Swiss Francs which are exchanged at a rate of 1 SF = 2.1 Euros, and the alternate currency is Euro then this parameter will have a value of 2.1.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The correct display of decimal places is dependent upon registry settings. For example, to ensure that 2 decimal places are displayed as in $ 1.08, in the Registry editor, you must ensure that the HKEY_USERS\DEFAULT\Control Panel\International\iCurrDigits value is set to 2.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oEuroDisp is a Commerce.EuroDisplay object
' In this example, the Base Currency symbol string
' is "$" and the Base locale identifier is 1033; the Alt
' Currency symbol string is "DM"; the Base locale identifier
'  is 1037, and the conversion rate is $ 1 = 2.3 DM.

oEuroDisp.Initialize"$", 1033, "DM", 1037, 2.3

See Also

[C++] EuroDisplay Object

[Visual Basic] EuroDisplay Object


GenID Object [C++]

GenID Object [Visual Basic]

Use this object to generate globally unique identifiers (GUID), or to create and maintain multiple, global sequential counters that are persisted in a database. A global counter is one that can work across multiple computers.

ProgID: | Commerce.GenID (Externally creatable)
COM Class Name: | GenID
Type Library Name: | Microsoft Commerce 2002 GenID Type Library
DLL Name: | GenID.dll
Threading Model: | Both
[C++]
COM Interface Name: | IGenID
Interface ID Constant: | IID_IGenID
Header File: | genid.h
[C++]

In C++, use the IGenID interface to access the methods of the GenID object.

Methods

[C++]
Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.
[Visual Basic]
Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.

Remarks

To create a GUID using Visual Basic .NET or C#, use System.Guid.


IGenID Methods [C++]

GenID Methods [Visual Basic]

Methods

[C++]
Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.
[Visual Basic]
Method | Description
GenBase5GUIDString | Generates a base5 GUID string.
GenGUIDString | Generates a GUID string.
GetCounterValue | Retrieves the value of the specified counter and then increments the counter.
Initialize | Connects the GenID object to the database that stores the table of counters.
InitializeCounter | Initializes a new counter or resets an existing counter.


IGenID::GenBase5GUIDString Method [C++]

GenID.GenBase5GUIDString Method [Visual Basic]

Use this method to generate a base5 Globally Unique Identifier (GUID) string.

Definition

[C++]
HRESULT IGenID::GenBase5GUIDString(
  BSTR* pbstrBase5GuidString
);
[Visual Basic]
Function GenBase5GUIDString() As String

Parameters

pbstrBase5GuidString [C++]
[out, retval] A pointer to a BSTR used to return the base5 GUID string.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the base5 GUID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A base5 GUID is used to store a slightly more compact version of the traditional GUID. The 128 binary digits are divided into groups of 5 instead of 4 with each group represented by the characters 0-9, and 22 characters of the alphabet. This results in a 26-digit representation for the GUID rather than the customary 32-digit representation.

[C++]

The pbstrBase5GuidString parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GenID Object

[Visual Basic] GenID Object


IGenID::GenGUIDString Method [C++]

GenID.GenGUIDString Method [Visual Basic]

Use this method to generate a Globally Unique Identifier (GUID) string.

Definition

[C++]
HRESULT IGenID::GenGUIDString(
  BSTR* pbstrGUID
);
[Visual Basic]
Function GenGUIDString() As String

Parameters

pbstrGUID [C++]
[out, retval] A pointer to a BSTR used to return the GUID.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the GUID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The pbstrGUID parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] GenID Object

[Visual Basic] GenID Object


IGenID::GetCounterValue Method [C++]

GenID.GetCounterValue Method [Visual Basic]

Use this method to retrieve and increment the value stored in the specified counter.

Definition

[C++]
HRESULT IGenID::GetCounterValue(
  BSTR bstrCounterName,
  long cDigits,
  BSTR* pbstrCounterValue
);
[Visual Basic]
Function GetCounterValue(
  bstrCounterName As String,
  cDigits As Long
) As String

Parameters

bstrCounterName [C++]
[in] A BSTR that contains the counter name.
bstrCounterName [Visual Basic]
A String that contains the counter name.
cDigits [C++]
[in] An long that contains the number of digits to return.
cDigits [Visual Basic]
A Long that contains the number of digits to return.
pbstrCounterValue [C++]
[out, retval] A pointer to a BSTR used to return the counter value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the counter value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

After the current value of the counter is returned, the counter is incremented by one. Use the InitializeCounter method to reset the counter.

If the value of the counter is less than the number of digits requested, the value is left padded with zeroes.

The Initialize method must be called before calling the GetCounterValue method.

[C++]

The pbstrCounterValue parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sCounterValue is a String
' oGenID is a Commerce GenID object
' The value stored in the counter is 285.

sCounterValue = oGenID.GetCounterValue("OrderIDCounter", 4)

' sCounterValue = 0285
' The value now stored in the OrderIDCounter is 286.

See Also

[C++] GenID Object

[Visual Basic] GenID Object


IGenID::Initialize Method [C++]

GenID.Initialize Method [Visual Basic]

Use this method to connect the GenID object to the database that stores the table of counters.

Definition

[C++]
HRESULT IGenID::Initialize(
  BSTR bstrDBConnectionString,
  long cBlockSizeHint
);
[Visual Basic]
Sub Initialize(
  bstrDBConnectionString As String,
  Optional cBlockSizeHint As Long
)

Parameters

bstrDBConnectionString [C++]
[in] A BSTR that contains the connection information to the database.
bstrDBConnectionString [Visual Basic]
A String that contains the connection information to the database.
cBlockSizeHint [C++]
[in, optional, defaultvalue (1)] Not implemented, leave blank.
cBlockSizeHint [Visual Basic]
Not implemented, leave blank.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method must be called before calling the GetCounterValue and InitializeCounter methods.

The connection string may be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the connstr_db_Transactions property under Commerce Server Manager\Commerce Sites\<site name>\Site Resources\Transactions.

[Visual Basic]

Example

' oGenID is a Commerce GenID object

' Connect using an explicit connection string.

oGenID.Initialize "Provider=SQLOLEDB;Data Source=server;" _
 & "Integrated Security='SSPI';Initial Catalog=Retail_commerce"

' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object

sConn = oSCRO.Fields("Transactions").Value.Fields("connstr_db_Transactions").Value
oGenID.Initialize sConn

See Also

[C++] GenID Object

[Visual Basic] GenID Object


IGenID::InitializeCounter Method [C++]

GenID.InitializeCounter Method [Visual Basic]

Use this method to create or reset a global, sequential counter.

Definition

[C++]
HRESULT IGenID::InitializeCounter(
  BSTR bstrCounterName,
  long dwInitialValue
);
[Visual Basic]
Sub InitializeCounter(
  bstrCounterName As String,
  dwInitialValue As Long
)

Parameters

bstrCounterName [C++]
[in] A BSTR that contains the counter name.
bstrCounterName [Visual Basic]
A String that contains the counter name.
dwInitialValue [C++]
[in] An Integer that contains the initial value of the counter.
dwInitialValue [Visual Basic]
A Long that contains the initial value of the counter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Any number of counters may be created. If the counter already exists, its value is reset to the specified initial value.

A global counter will work across multiple computers.

The Initialize method must be called before calling the InitializeCounter method.

[C++]

The dwInitialValue parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oGenID is a Commerce GenID object

oGenID.InitializeCounter("OrderCounter", 213)

See Also

[C++] GenID Object

[Visual Basic] GenID Object


MessageManager Object [C++]

MessageManager Object [Visual Basic]

Use this object to store error messages in multiple languages that the Order Processing pipeline (OPP) components use to describe error conditions generated during order processing.

ProgID: | Commerce.MessageManager (Externally creatable)
COM Class Name: | MSCSMessageManager_3_0
Type Library Name: | Commerce -- MSCSAspHelp Type Library
DLL Name: | MSCSAspHelp.dll
Threading Model: | Both
[C++]
COM Interface Name: | IMSCSMessageManager_3_0
Interface ID Constant: | IID_IMSCSMessageManager_3_0
Header File: | commerce.h, mspu_guids.h
[C++]

In C++, use the IMSCSMessageManager_3_0 interface to access the properties and methods of the MessageManager object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.
[Visual Basic]
Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.

Properties

[C++]
Property | Type | Description
defaultLanguage | BSTR | Specifies the default message set for the MessageManager object. This property is read/write.
[Visual Basic]
Property | Type | Description
defaultLanguage | String | Specifies the default message set for the MessageManager object. This property is read/write.

See Also

Core Objects


IMSCSMessageManager Methods [C++]

MessageManager Methods [Visual Basic]

Methods

[C++]
Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.
[Visual Basic]
Method | Description
AddLanguage | Adds a new message set to the MessageManager object and associates that message set with a locale.
AddMessage | Adds a new message to the MessageManager object.
GetLocale | Returns the locale for the specified message set.
GetMessage | Returns the message associated with the specified message name constant.


IMSCSMessageManager_3_0::AddLanguage Method [C++]

MessageManager.AddLanguage Method [Visual Basic]

Use this method to add a message set to the MessageManager object, and associate that message set with a locale. In subsequent calls to MessageManager object methods, the caller needs to identify the message set name, not the locale.

Any number of message sets can be associated with a single locale.

Definition

[C++]
HRESULT IMSCSMessageManager_3_0::AddLanguage(
 BSTR bstrLanguage,
 long Locale
);
[Visual Basic]
Sub AddLanguage(
 bstrLanguage As String,
 Locale As Long
)

Parameters

bstrLanguage [C++]
[in] A BSTR that contains the name for the message set to add to the MessageManager object.
bstrLanguage [Visual Basic]
A String that contains the name for the message set to add to the MessageManager object.
Locale [C++]
[in] A long that uniquely identifies the locale to associate with the added message set.
Locale [Visual Basic]
A Long that uniquely identifies the locale to associate with the added message set.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddLanguage("usa", 1033)

See Also

[C++] MessageManager Object

[C++] IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage

[C++] IDataFunctions_4_0::get_Locale, put_Locale

[C++] IMSCSMessageManager_3_0::GetMessage

[Visual Basic] MessageManager Object

[Visual Basic] MessageManager.DefaultLanguage

[Visual Basic] DataFunctions.Locale

[Visual Basic] MessageManager.GetMessage


IMSCSMessageManager_3_0::AddMessage Method [C++]

MessageManager.AddMessage Method [Visual Basic]

Use this method to add a message to the MessageManager object.

Definition

[C++]
HRESULT IMSCSMessageManager_3_0::AddMessage(
 BSTR bstrName,
 BSTR bstrMessage,
 VARIANT vtLanguage
);
[Visual Basic]
Sub AddMessage(
 bstrName As String,
 bstrMessage As String,
 vtLanguage As Variant
)

Parameters

bstrName [C++]
[in] A BSTR that contains the message name constant, which is a string that identifies the message to add. For a list of common messages and their constant names, see the Remarks section.
bstrName [Visual Basic]
A String that contains the message name constant, which is a string that identifies the message to add. For a list of common messages and their constant names, see the Remarks section.
bstrMessage [C++]
[in] A BSTR that contains the text of the message to add.
bstrMessage [Visual Basic]
A String that contains the text of the message to add.
vtLanguage [C++]
[in] A VARIANT that contains the language name with which to associate the message. This value, if specified, must be a language name added through a previous call to the AddLanguage method. If this parameter is not supplied, or is NULL, the language specified in the DefaultLanguage property of the MessageManager object is used.
vtLanguage [Visual Basic]
A Variant that contains the language name with which to associate the message. This value, if specified, must be a language name added through a previous call to the AddLanguage method. If this parameter is not supplied, the language specified in the DefaultLanguage property of the MessageManager object is used.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table lists the messages that are used by the default implementation of the Order Processing pipline (OPP), showing the message name constant expected by theOOP components that use these messages.

Message name constant | Used by OPP component | Added to this collection under this condition
pur_badplacedprice | RequiredItemAdjustPrice | _Basket_Errors when the price of an item does not correspond to the price contained in the order form
pur_badhandling | RequiredHandling | _Purchase_Errors when the handling cost for an order cannot be computed
pur_badpayment | RequiredPayment | _Purchase_Errors when authentication code (_payment_auth_code) is not set
pur_badshipping | RequiredShipping | _Purchase_Errors when the shipping costs for an order cannot be computed
pur_badsku | RequiredProdInfo | _Basket_Errors when a stock-keeping unit (SKU) in the order form references an item that is not contained in the inventory for the site
pur_badtax | RequiredTax | _Purchase_Errors when the tax on a purchase cannot be computed
pur_badverify | RequiredTotal | _Purchase_Errors when the data stored by the ProcessVerifyWith method does not match the original data in the order form
pur_noitems | RequiredOrderCheck | _Purchase_Errors when there are no items in the order form
pur_out_of_stock | FlagInventory, LocalInventory | _Purchase_Errors when an item referenced in the order form is out of stock

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.AddMessage("pur_out_of_stock", _
    "At least one item is out of stock.")

See Also

[C++] MessageManager Object

[C++] IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage

[C++] IMSCSMessageManager_3_0::GetMessage

[Visual Basic] MessageManager Object

[Visual Basic] MessageManager.DefaultLanguage

[Visual Basic] MessageManager.GetMessage


IMSCSMessageManager_3_0::GetLocale Method [C++]

MessageManager.GetLocale Method [Visual Basic]

Use this method to return a number that identifies the locale for the specified message set.

Definition

[C++]
HRESULT IMSCSMessageManager_3_0::GetLocale(
 VARIANT vtLanguage,
 long* pLocale
);
[Visual Basic]
Function GetLocale(
 vtLanguage As Variant
) As Long

Parameters

vtLanguage [C++]
[in] A VARIANT that contains the name of the message set for which you want to retrieve the locale. This message set must have been added to the MessageManager object through a previous call to the AddLanguage method.
vtLanguage [Visual Basic]
A Variant that contains the name of the message set for which you want to retrieve the locale. This message set must have been added to the MessageManager object through a previous call to the AddLanguage method.
pLocale [C++]
[out, retval] A pointer to a long used to identify the locale for the specified message set.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long used to identify the locale for the specified message set.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pLocale parameter points to valid data only if the method returns successfully.

Like the GetMessage method, the GetLocale method is usually not called from within a site. Instead, it is used by the pipeline component to retrieve the locale for a message that describes an error that the component has encountered.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetLocale("us")

See Also

[C++] MessageManager Object

[C++] IMSCSMessageManager_3_0::GetMessage

[C++] IMSCSMessageManager_3_0::AddLanguage

[Visual Basic] MessageManager Object

[Visual Basic] MessageManager.GetMessage

[Visual Basic] MessageManager.AddLanguage


IMSCSMessageManager_3_0::GetMessage Method [C++]

MessageManager.GetMessage Method [Visual Basic]

Use this method to return the text of the specified message.

Definition

[C++]
HRESULT IMSCSMessageManager_3_0::GetMessage(
 BSTR bstrName,
 VARIANT vtLanguage,
 BSTR* Message
);
[Visual Basic]
Function GetMessage(
 bstrName As String,
 vtLanguage As Variant
) As String

Parameters

bstrName [C++]
[in] A BSTR that contains the message constant name of the message to return. This is the name associated with this message when it was added to the MessageManager object through a call to the AddMessage method.
bstrName [Visual Basic]
A String that contains the message constant name of the message to return. This is the name associated with this message when it was added to the MessageManager object through a call to the AddMessage method.
vtLanguage [C++]
[in] A VARIANT that specifies the name of the message set to which the message text belongs. This string specifies a message set that was added to the MessageManager object through a previous call to the AddLanguage method. If this parameter is not specified, or is NULL, the message is returned for the message set identified by the DefaultLanguage property of the MessageManager object.
vtLanguage [Visual Basic]
A Variant that specifies the name of the message set to which the message text belongs. This string specifies a message set that was added to the MessageManager object through a previous call to the AddLanguage method. If this parameter is not specified, or is NULL, the message is returned for the message set identified by the DefaultLanguage property of the MessageManager object.
Message [C++]
[out, retval] A pointer to a BSTR used to return the text of the specified message.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String Variant that contains the text of the specified error message.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Message parameter points to valid data only if the method returns successfully.

The GetMessage method is seldom called from within a site. Instead, it is used by pipeline components to retrieve messages that describe errors that have occurred.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oMessageManager is a Commerce.MessageManager object
oMessageManager.GetMessage("pur_out_of_stock", "us")

See Also

[C++] MessageManager Object

[C++] IMSCSMessageManager_3_0::AddLanguage

[C++] IMSCSMessageManager_3_0::GetLocale

[Visual Basic] MessageManager Object

[Visual Basic] MessageManager.AddLanguage

[Visual Basic] MessageManager.GetLocale


IMSCSMessageManager Properties [C++]

MessageManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
defaultLanguage | BSTR | Specifies the default message set for the MessageManager object. This property is read/write.
[Visual Basic]
Property | Type | Description
defaultLanguage | String | Specifies the default message set for the MessageManager object. This property is read/write.


IMSCSMessageManager_3_0::get_DefaultLanguage, put_DefaultLanguage Property [C++]

MessageManager.DefaultLanguage Property [Visual Basic]

Use the DefaultLanguage property to specify the default message set for the MessageManager object. When you use the GetMessage method, or use the AddMessage method to add messages to the MessageManager object, without specifying a message set for those messages, then the messages are associated with the message set specified in this property.

Definition

[C++]

Get method:

HRESULT IMSCSMessageManager_3_0::get_defaultLanguage(
 BSTR* defaultLanguage
);

Put method:

HRESULT IMSCSMessageManager_3_0::put_defaultLanguage(
 BSTR defaultLanguage
);
[Visual Basic]
Property DefaultLanguage As String

Parameters

defaultLanguage [C++]
[in] When putting the property, a BSTR that contains the default language.
[out, retval] When getting the property, a BSTR used to return the default language.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The defaultLanguage parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MessageManager Object

[C++] IMSCSMessageManager_3_0::GetLocale

[Visual Basic] MessageManager Object

[Visual Basic] MessageManager.GetLocale


SimpleList Object [C++]

SimpleList Object [Visual Basic]

Use this object to create an array of variants that supports enumeration.

ProgID: | Commerce.SimpleList (Externally creatable)
COM Class Name: | CSimpleList
Type Library Name: | Microsoft Commerce 2002 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both
[C++]
COM Interface Name: | ISimpleList
Interface ID Constant: | IID_ISimpleList
Header File: | commerce.h, mspu_guids.h
[C++]

In C++, use the ISimpleList interface to access the properties and methods of the SimpleList object.

Methods

[C++]
Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.
[Visual Basic]
Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.

Properties

[C++]
Property | Type | Description
Count | long | Returns the number of items in the SimpleList object. This property is read-only.
Item | VARIANT | Stores an item of the SimpleList object. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Stores the number of items in the SimpleList object. This property is read-only.
Item | Variant | Stores an item of the SimpleList object. This property is read/write.

See Also

General Purpose Objects

[C++] Dictionary Object

[Visual Basic] Dictionary Object


ISimpleList Methods [C++]

SimpleList Methods [Visual Basic]

Methods

[C++]
Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.
[Visual Basic]
Method | Description
Add | Adds the specified item to a SimpleList object.
Delete | Deletes a specified item from the SimpleList object.


ISimpleList::Add Method [C++]

SimpleList.Add Method [Visual Basic]

Use this method to add the specified item to this SimpleList object.

Definition

[C++]
HRESULT ISimpleList::Add(
 VARIANT* pVar
);
[Visual Basic]
Sub Add(
 pVar As Variant
)

Parameters

pVar [C++]
[in] A pointer to a VARIANT to add to the SimpleList object.
pVar [Visual Basic]
A Variant to add to the SimpleList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example adds the string "Hello World" to the oSimpleList
' object instance
' oSimpleList is a Commerce SimpleList object
oSimpleList.Add("Hello World")

See Also

[C++] SimpleList Object

[C++] ISimpleList::Delete

[Visual Basic] SimpleList Object

[Visual Basic] SimpleList.Delete


ISimpleList::Delete Method [C++]

SimpleList.Delete Method [Visual Basic]

Use this method to delete the specified item from the SimpleList object.

Definition

[C++]
HRESULT ISimpleList::Delete(
 long Index
);
[Visual Basic]
Sub Delete(
 Index As Long
)

Parameters

Index [C++]
[in] A long that contains the index value of the item to delete.
Index [Visual Basic]
A Long that contains the index value of the item to delete.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Description
DISP_E_BADINDEX | The Index parameter references an out-of-range value. This means that Index contains a value either larger than the SimpleList or less than zero.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example deletes the SimpleList item at index 1008
' oSimpleList is a Commerce SimpleList object
oSimpleList.Delete(1008)

See Also

[C++] SimpleList Object

[C++] ISimpleList::Add

[C++] ISimpleList::get_Count

[Visual Basic] SimpleList Object

[Visual Basic] SimpleList.Add

[Visual Basic] SimpleList.Count


ISimpleList Properties [C++]

SimpleList Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Count | long | Returns the number of items in the SimpleList object. This property is read-only.
Item | VARIANT | Stores an item of the SimpleList object. This property is read/write.
[Visual Basic]
Property | Type | Description
Count | Long | Stores the number of items in the SimpleList object. This property is read-only.
Item | Variant | Stores an item of the SimpleList object. This property is read/write.


ISimpleList::get_Count Property [C++]

SimpleList.Count Property [Visual Basic]

The Count property is a read-only long that returns the number of items in the SimpleList object.

Definition

[C++]
HRESULT ISimpleList::get_Count(
 long* Count
);
[Visual Basic]
Property Count As Long

Parameters

Count [C++]
[out, retval] A pointer to a long used to return the number of items in the SimpleList object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Count parameter points to valid data only if the method completes successfully.

The caller should always call this method before calling a SimpleList method that requires an array index in-value as a parameter (such as the Delete method).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleList Object

[Visual Basic] SimpleList Object


ISimpleList::get_Item, put_Item Property [C++]

SimpleList.Item Property [Visual Basic]

The Item property is a read/write Variant that contains an item of the SimpleList object. An initialized Variant is stored at a specified array index. If an item is already stored at the specified index, that item is overwritten by the put procedure.

Definition

[C++]

Get method:

HRESULT ISimpleList::get_Item(
 long Index,
 VARIANT* Item
);

Put method:

HRESULT ISimpleList::put_Item(
 long Index,
 VARIANT Item
);

Putref method:

HRESULT ISimpleList::putref_Item(
 long Index,
 VARIANT Item
);
[Visual Basic]
Property Item(
 Index As Long
) As Variant

Parameters

Index [C++]
[in] A long that contains the index of the item.
Index [Visual Basic]
A Long that contains the index of the item.
Item [C++]
[in] When putting the property, a Variant that contains the new item.
[out, retval] When getting the property, a Variant used to return the item.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Description
DISP_E_BADINDEX | The Index parameter references an out-of-range value. This means that Index contains a value either larger than the SimpleList or less than zero.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Item parameter contains valid data only if the method completes successfully.

When putting a value, use the putref_Item method if you are setting an object reference; use the put_Item method if you are setting a scalar value.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleList Object

[Visual Basic] SimpleList Object


Example Code for General Purpose Objects

This section provides detailed code examples of how to use the general purpose objects.

Examples

Example | Description
Code to Write an Error Event to the Commerce Server Event Log | Describes how to write an error event to the Commerce Server 2002 event log.
Code to Read and Display the Contents of a Server-Side File | Describes how to read the contents of a server-side file and write those contents to the browser.
Code to Dump Dictionary Values | Describes how to dump the contents of a Dictionary object.
Code to Create and Manipulate a SimpleList | Describes how to create and work with the SimpleList object.
Code to Implement Custom Cache Components | Describes how to implement custom cache components.
Code to Manipulate an LRUCache Object | Describes how to manipulate an LRUCache object.
Code to Generate a GUID | Describes how to generate a globally unique identifier (GUID).
Code to Control Display of a Business Desk Module | Describes how to control whether a specified Business Desk module is displayed to the current user.
Code to Create and Initialize AuthManager | Describes how to instantiate and initialize the AuthManager object.
Code to Manipulate Site Configuration Properties | Describes how to change CS Authentication resource properties.
Code to Retrieve Login Credentials | Describes how to retrieve the user ID and password submitted on an HTML form using either the Get method or the Post method.
Code to Set a New MSCSProfile Ticket | Describes how to create an MSCSProfile ticket.
Code to Retrieve a Profile and Set an MSCSAuth Ticket | Describes how to retrieve a profile using the Commerce Server Profiles resource, and set an MSCSAuth ticket.
Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket | Describes how to retrieve the user ID and password submitted on a HTML form using the Post method, get the profile corresponding to the user ID using the Commerce Server Profiles resource, set the user ID in an MSCSAuth ticket, and redirect the user to the originally requested URL.
Code to Set a Custom Property on a Ticket | Describes how to create a globally unique identifier (GUID) string and place it on an MSCSAuth ticket as a guid property.
Code to Generate an Encoded URL String | Describes how to generate an encoded URL string from a file name.
Code to Apply Data Type Conversion and Range Checking | Describes how to perform locale-based data type conversion and range validation.
Code to Manipulate and Display Euro Values | Describes how to use the EuroDisplay object to convert currency amounts.
Code to Convert Between Numbers and Strings | Describes how to use the conversion functions of the DataFunctions object.
Code to Display Locale-Specific Strings | Describes how to use locale-based conversion functions of the DataFunctions object.
Code to Manage Common Error Messages to Users | Describes how to add languages and messages to the MessageManager object, and how to write messages to a Web browser.


Code to Write an Error Event to the Commerce Server Event Log

This section describes how to write an error event to the event log.

The first parameter to the WriteErrorEvent method specifies, in this example, the name of the server in which Commerce Server 2002 is installed. The second parameter specifies the event message string.

Create the example ASP page using the following code:

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim oAdminEventLog
Set oAdminEventLog = Server.CreateObject("Commerce.AdminEventLog")
oAdminEventLog.Initialize("myServerName")
oAdminEventLog.WriteErrorEvent "mySite", "Error Event Message String"
%>
</BODY>
</HTML>


Code to Read and Display the Contents of a Server-Side File

This example uses the ReadFromFile method of the AdminFiles object to read the text file contents; the Internet Information Services (IIS) intrinsic method Response.Write is then used to write those contents to the browser. If you want to read and write file types other than text files, use the ReadFromBinaryFile method of the AdminFiles object in conjunction with the Response.WriteBinary method.

Create the example ASP page using the following code:

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim oAdminFiles, strRet
Set oAdminFiles = Server.CreateObject("Commerce.AdminFiles")
strRet = oAdminFiles.ReadFromFile("c:\temp\Sample.txt")
Response.Write strRet
%>
</BODY>
</HTML>


Code to Dump Dictionary Values

When you need to create a Dictionary object explicitly (that is, when the object is not created for you by some other Commerce Server 2002 object), use the CreateObject method of the Internet Information Services (IIS) intrinsic Server object, as follows:

Dim oMyDictionary
Set oMyDictionary = Server.CreateObject("Commerce.Dictionary")

After creating the object, you can add elements to it, as follows:

oMyDictionary.first_name = "Steve"

In this example, first_name is a Dictionary key, and "Steve" becomes the assigned value of this key.

You can extract values from a Dictionary object in several ways. You can place the object.key identifier on the right side of the assignment statement. Such an assignment returns the value of the referenced key:

my_first_name = oMyDictionary.first_name

Or you can use the Value method to get the value of a given key:

my_first_name = oMyDictionary.value("first_name")

You can also use the For Each statement in Microsoft Visual Basic Scripting Edition (VBScript) to enumerate through either the keys or the values of a Dictionary object as follows (this example assumes that every value in the dictionary contains text):

' Get the key names.
For Each element in oMyDictionary
    Response.Write element
next

' Get the values.
For Each element in oMyDictionary
    Response.Write oMyDictionary.Value(element)
Next

The following example creates a new Dictionary object, loads values into two keys named first_name and last_name, then writes the element names and element values to the browser:

Set oMyDictionary = Server.CreateObject("Commerce.Dictionary")
oMyDictionary.first_name = "Sam"
oMyDictionary.last_name = "Stone"

' Get the key names.
For Each element in oMyDictionary
    Response.Write "Key = " & element
    Response.Write "    Value = " & oMyDictionary.Value(element)
    Response.Write "<br>"
Next


Code to Create and Manipulate a SimpleList

In the following example, several color values are added to a newly created SimpleList object named ColorList. Once the colors are added, the third color value (blue, with an index value of 2) is removed. Following this, the code iterates through the list, using the Count property to determine the number of items in the SimpleList; in turn, each remaining color is written to the browser.

The example ASP code follows:

<HTML>
<HEAD>
</HEAD>
<BODY>
<%
Dim ColorList, Count
Set ColorList = Server.CreateObject("Commerce.SimpleList")
Call ColorList.Add("Red")
Call ColorList.Add("Green")
Call ColorList.Add("Blue")
Call ColorList.Add("Fuschia")
Call ColorList.Delete(2)

' Count will be 3, not 4.
Count = ColorList.Count

' Output will be "Red  Green  Fuschia" on a line by itself.
For i = 0 To (Count - 1)
    Response.Write ColorList(i) & "  "
Next
Response.Write "<br>"
%>
</BODY>
</HTML>


Code to Implement Custom Cache Components

Loader and Writer components are used within the Content Selection Framework (CSF) to load caches and write out campaign results.

Loader and Writer components can be apartment-threaded, because they are created, used once, and then destroyed by the same thread. This means that they can be written in Microsoft Visual Basic.

Loader and Writer components are implemented as pipeline components, although they are not intended to be executed in the context of a pipeline. They must implement the Execute method of the IPipelineComponent interface for the CacheManager object to be able to execute them. Further, if they require configuration, they must

implement the SetConfigData method of the IPipelineComponentAdmin interface. The following tables provide details regarding this requirement.

Loader Component

Method to Implement Details
IPipelineComponent::

Execute

 Required for the Loader component to execute.

The pDispContext parameter is set to the existing cache instance, if it exists, otherwise it is set to a new, empty cache object. If the cache object (specified by the LoaderProgId setting for the cache) is a Dictionary object, then the following additional entries are set:

  • _CacheName set to the name of the cache being refreshed.
  • _CacheRefreshInterval set to the refresh interval.
  • _CacheFirstRefresh set to one (1) on the first cache refresh, and to zero (0) thereafter (can be used for conditional error logging).
  • _AppUrl set to the value of the AppURL property, if any. This entry is optional and may not be set if the CacheManager object is not running in an ASP application.

The pDispOrder parameter is set to a new cache object based on the setting of the LoaderProgId property, normally a Dictionary object or an LRUCache object, which will become the new cache.

The lFlags parameter is set to zero (0).

The plErrorLevel parameter is ignored on return.
IPipelineComponentAdmin::

SetConfigInfo

 Optional. Required only if the Loader component requires configuration. Will be called if LoaderConfig property has been set.

The pDict parameter is set to point at the Dictionary object specified by the LoaderConfig property.

Writer Component

Method to Implement | Details
IPipelineComponent:: Execute | Required for the Writer component to execute. The pDispOrder parameter is set to the existing cache instance. Normally a Writer component will retrieve data from the cache to be written to disk. The pDispContext parameter is set to NULL. The lFlags parameter is set to zero (0). The plErrorLevel parameter is ignored on return.
IPipelineComponentAdmin:: SetConfigInfo | Optional. Required only if the Writer component requires configuration. Will be called if WriterConfig property has been set. The pDict parameter is set to point at the Dictionary object specified by the WriterConfig property.
' Create a Cache manager component and configure it
Set dictConfig = CreateObject("Commerce.Dictionary")
dictConfig("ConnectionString") = "DSN=adsamples;UID=sa;PWD="
Set CacheManager = Server.CreateObject("Commerce.CacheManager")
CacheManager.LoaderProgId("advertising") = "Commerce.LoadAdvertisements"
Set CacheManager.LoaderConfig("advertising") = dictConfig
CacheManager.WriterProgId("advertising") = "Commerce.WriteEvents"
Set CacheManager.WriterConfig("advertising") = dictConfig
CacheManager.RefreshInterval("advertising") = 10 * 60
CacheManager.RetryInterval("advertising") = 60
Set application("CacheManager") = CacheManager

Now any web page in the application can quickly access the named schedule:

Set CacheManager = application("CacheManager")
Set dictSchedule = CacheManager.GetCache("advertising")


Code to Manipulate an LRUCache Object

The following example code shows how to use the LRUCache object.

' Declare variables to be used.
Dim oLRUCache, oDict, oNewDict, NumVal

' Create an instance of an LRU cache.
Set oLRUCache = CreateObject("Commerce.LRUCache")

' Set the max cache size to 100 items.
oLRUCache.SetSize 100

' Create an object to store.
Set oDict = CreateObject("Commerce.Dictionary")
oDict("Test") = "This is a test."

' Store the Dictionary object.
oLRUCache.Insert "DictObject", oDict

' Store the number 10.
oLRUCache.Insert "Number", 10

' Lookup the stored Dictionary object using method LookupObject.
Dim oNewDict
Set oNewDict = oLRUCache.LookupObject "DictObject"

' Lookup the stored number using method Lookup.
Dim NumVal
NumVal = oLRUCache.Lookup "Number"

' Remove all items from the cache.
oLRUCache.FlushAll

' Display the results, which will be:
' This is a test.
' 10
Response.Write "Dictionary data from cache: " & oDict.Test & "<BR>"
Response.Write "Number stored in cache: " & NumVal & "<BR>"


Code to Generate a GUID

The following example code shows how to generate a globally unique identifier (GUID).

Dim oGenID, sGUID
Set oGenID = Server.CreateObject("Commerce.GenID")

sGUID = oGenID.GenGUIDString()
Set oGenID = Nothing


Code to Control Display of a Business Desk Module

This example shows how to control whether the Catalog Editor module in Commerce Server Business Desk is displayed to the current user.

  1. Open the XML file corresponding to the Catalog Editor module. When the Retail Solution Site is unpackaged to the default installation directory, this file, named Catalogs_editor.xml, will be located in the folder \Inetpub\wwwroot\retailbizdesk\config.

    Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

  2. The name of the ASP file associated with the Catalog Editor module is found in the id attribute of the module element of this file. For more information about the XML format, see Module Configuration Files.
    <module id="catalogs/editor/list_Catalogs.asp">
   <name>Catalog Editor</name>
   <tooltip>Manage Catalog Data</tooltip>
</module>
  3. Create the BizDeskSecurity object.
    Dim oBizDeskSecurity
Set oBizDeskSecurity = Server.CreateObject("Commerce.BizDeskSecurity")
  4. Pass the ASP file to the BizDeskSecurity object.
    If oBizDeskSecurity.CanUserAccess("list_Catalogs.asp") Then
   ' Display the module
End If


Code to Create and Initialize AuthManager

The AuthManager object uses site configuration resource properties. When the AuthManager object is first initialized, it creates a site cache and populates the cache with these properties. If initialized again, it checks the cache for these properties and, if they are not found, they are loaded again. An instance of the AuthManager object is created and initialized in the Global.asa file for the site (for performance reasons) and on every page that uses the AuthManager object.

  1. Create the AuthManager object. Note that the ProgID for the object is different than the object name.
    Dim oAuthManager
Set oAuthManager = Server.CreateObject("Commerce.AuthManager")
  2. Initialize the object to the Retail site.
    oAuthManager.Initialize "Retail"


Code to Manipulate Site Configuration Properties

Whenever a site configuration property used by the AuthManager object is changed, the cache storing these properties must be refreshed. For information on the SiteConfig object, see SiteConfig Object.

  1. Create a SiteConfig object and initialize it to the Retail site.
    Dim oSiteConfig
Set oSiteConfig = Server.CreateObject("Commerce.SiteConfig")
oSiteConfig.Initialize "Retail"
  2. Change the default time window to 90 seconds.
    oSiteConfig.Fields("Site CS Authentication").Value _
 .Fields("u_cookie_time_window").Value = 90

oSiteConfig.SaveConfig
  3. Create and initialize an AuthManager object.
    Dim oAuthManager
Set oAuthManager = Server.CreateObject("Commerce.AuthManager")
oAuthManager.Initialize "Retail"
  4. Refresh the site cache.
    oAuthManager.Refresh "Retail"
  5. Release the objects.
    Set oSiteConfig = Nothing
Set oAuthManager = Nothing


Code to Retrieve Login Credentials

This example shows how to retrieve the user ID and password submitted on an HTML form using either the Get method or the Post method.

  • Retrieve the credentials using the Get method.
    Dim sUserID, sPassword
If Request.QueryString("realSubmit") = "fromButton" Then
    sUserID = Request.QueryString("txtUserName")
    sPassword = Request.QueryString("txtPassword")
End If
  • Retrieve the credentials using the Post method.
    Dim sUserID, sPassword
If Request.Form("realSubmit") = "fromButton" Then
    sUserID = Request.Form("txtUserName")
    sPassword = Request.Form("txtPassword")
End If


Code to Set a New MSCSProfile Ticket

This example shows the creation of a globally unique identifier (GUID), used to identify a user, and the creation of an MSCSProfile ticket, which places the GUID on a persistent cookie for the user.

  1. Create the GenID object.
    Dim oGenID
Set oGenID = Server.CreateObject("Commerce.GenID")
  2. Create the GUID string.
    Dim sGUID
sGUID = oGenID.GenGUIDString()
  3. Using the AuthManager object, oAuthManager, created and initialized in Code to Create and Initialize AuthManager, create the MSCSProfile ticket.
    oAuthManager.SetProfileTicket sGUID, True
  4. Release the objects.
    Set oGenID = Nothing
Set oAuthManager = Nothing


Code to Retrieve a Profile and Set an MSCSAuth Ticket

This example shows how to retrieve a profile corresponding to a known user ID using the Commerce Server Profiles resource, and set the userID in an MSCSAuth ticket. For more information about using the Profiles resource, see Example Code for Profile Objects.

  1. Create and initialize the ProfileService object. The sBDSConnect parameter is the connection string to the Profile store where the profile definitions are saved.
    Dim oProfileService
Set oProfileService = Server.CreateObject("Commerce.ProfileService")
oProfileService.Initialize sBDSConnect, "Profile Definitions"
  2. Retrieve the profile associated with the user ID. If the profile does not exist, redirect the user to a login page.
    Dim oProfileObject
Set oProfileObject = oProfileService.GetProfile(sUserID, "UserObject")
If (oProfileObject Is Nothing) Then
    Response.Redirect "Login.asp"
End If
  3. Retrieve the password associated with the profile.
    Dim sProfilePassword
sProfilePassword = oProfileObject.user_security_password
  4. If the submitted password matches the profile password, set the authentication ticket using the AuthManager object, oAuthManager, created and initialized in Code to Create and Initialize AuthManager. If the passwords do not match, redirect the user to the login page.
    If sPassword = sProfilePassword Then
    oAuthManager.SetAuthTicket sUserID, True, 45
Else
    Response.Redirect "Login.asp"
End If
  5. Release the objects.
    Set oProfileService = Nothing
Set oProfileObject = Nothing
Set oAuthManager = Nothing


Code to Retrieve Login Credentials Using the Post Method and Set an MSCSAuth Ticket

This example shows how to retrieve the user ID and password submitted on a HTML form using the Post method, retrieve the profile corresponding to the user ID by using the Commerce Server Profiles resource, set the user ID in an MSCSAuth ticket, and redirect the user to the originally requested URL. Assume the user entered a user ID and password and clicked the Submit button on an HTML form. For more information about using the Profiles resource, see Example Code for Profile Objects.

  1. Make sure the request is a form submission, then retrieve the user ID and password.
    Dim sUserID, sPassword
If Request.Form("realSubmit") = "fromButton" Then
    sUserID = Request.Form("txtUserName")
    sPassword = Request.Form("txtPassword")
End If
  2. Create and initialize the ProfileService object. The sBDSConnect parameter is the connection string to the Profile store where the profile definitions are saved.
    Dim oProfileService
Set oProfileService = Server.CreateObject("Commerce.ProfileService")
oProfileService.Initialize sBDSConnect, "Profile Definitions"
  3. Retrieve the profile associated with the submitted user ID. If the profile does not exist, redirect the user to the login page.
    Dim oProfileObject
Set oProfileObject = oProfileService.GetProfile(sUserID, "UserObject")
If (oProfileObject Is Nothing) Then
    Response.Redirect "Login.asp"
End If
  4. Retrieve the password associated with the profile.
    Dim sProfilePassword
sProfilePassword = oProfileObject.user_security_password
  5. If the submitted password matches the profile password, set the authentication ticket use the AuthManager object, oAuthManager, created and initialized in Code to Create and Initialize AuthManager. If the passwords do not match, redirect the user to the login page.
    If sPassword = sProfilePassword Then
    oAuthManager.SetAuthTicket sUserID, True, 45
Else
    Response.Redirect "Login.asp"
End If
  6. Append the user ID and password to the URL string as custom properties. This step is provided for sites using the AuthFilter ISAPI filter in Windows Authentication mode and, in general, is not required. For more information about this mode and specific to this step, see Post Method.
    Dim sReturn
sReturn = Request.Cookies("MSCSFirstRequestedURL")
sReturn = sReturn & "&proxyuser=" & sUserID & "&proxypwd=" & sPassword
  7. Redirect the user to the original requested URL.
    Response.Redirect sReturn
  8. Release the objects.
    Set oProfileService = Nothing
Set oProfileObject = Nothing
Set oAuthManager = Nothing


Code to Set a Custom Property on a Ticket

This example shows how to set a custom property named guid, which holds a globally unique identifier (GUID) string on an MSCSAuth ticket. The technique is also valid for an MSCSProfile ticket and other custom properties. Setting this property is used to thwart a distributed denial of service (DDOS) attack when using the AuthFilter ISAPI filter in Windows Authentication mode. For more information about DDOS, see Distributed Denial of Service Attacks.

  1. Create the GenID object.
    Dim oGenID
Set oGenID = Server.CreateObject("Commerce.GenID")
  2. Create the GUID string.
    Dim sGUID
sGUID = oGenID.GenGUIDString()
  3. Using the AuthManager object, oAuthManager, created and initialized in Code to Create and Initialize AuthManager, place the guid property on the previously set MSCSAuth ticket. To place the property on an MSCSProfile ticket, replace the enumMSCS_AuthTicketType parameter with enumMSCS_ProfileTicketType.
    oAuthManager.SetProperty enumMSCS_AuthTicketType, "guid", sGUID
  4. Append the guid property to the URL string as a custom property and redirect the user to the originally requested URL. This step is not required for custom properties in general and is provided for completeness in the DDOS example.
    Dim sReturn
sReturn = Request.Cookies("MSCSFirstRequestedURL") & "guid=" & sGUID
Response.Redirect sReturn
  5. Release the objects.
    Set oGenID = Nothing
Set oAuthManager = Nothing


Code to Generate an Encoded URL String

This example shows how to create an encoded URL string containing custom properties.

  1. Create two SafeArrays to hold the custom property/value pairs.
    Dim savProperties, savValues
  2. Populate the SafeArrays.
    savProperties(0) = "SKU"
savValues(0) = "F13B69881E"
savProperties(1) = "Quantity"
savValues(1) = 3
  3. Using the AuthManager object, oAuthManager, created and initialized in Code to Create and Initialize AuthManager, create a URL to reference the file Weeklysales.asp. The second parameter indicates that cookies are disabled and causes the AuthManager object to append the user ID from the MCSCAuth ticket to the string. The third parameter indicates the URL is secure.
    Dim sURL
sURL = oAuthManager.GetURL("Weeklysales.asp", False, True, _
                           savProperties, savValues)
  4. The resulting URL string follows.
    ' sURL = https://host_name/virtual_directory/weeklysales.asp?SKU=
'        F13B69881E&Quantity=3&MSCSAuth=Q0H4SE915ASH2KC000Q79QB1E


Code to Apply Data Type Conversion and Range-Checking

This topic describes how to create an Active Server Pages (ASP) page (Form.asp) that contains a form whose contents are checked and converted to a Date Variant. The checking and conversion are performed by the Process.asp file.

The first parameter to the RequestDate method specifies, in the following example, the name of the form field from which the data was submitted. If this text field is empty, the second parameter to the RequestDate method, "1/1/2000", becomes the date that the RequestDate method processes. First, the string expression of the date is converted to a date value based on a specified Locale property (1033, the Locale property for the US, in this instance), and then the value is checked against the specified date range specified by the third and fourth parameters.

If the Form.asp file is loaded into the browser, it will display the date as processed by the RequestDate method in the Process.asp file.

  1. Create the Form.asp file using the following code:
    <FORM METHOD="POST" ACTION = "Process.asp">
<INPUT TYPE="Text" NAME= "Date">
<INPUT TYPE ="Submit" NAME = "Action" VALUE = "Send Info"
</FORM>
  2. Create the Process.asp file using the following code:
    Dim oAppFrameWork, vDate
Set oAppFrameWork = Server.CreateObject("Commerce.AppFrameWork")
vDate = oAppFrameWork.RequestDate("Date", _
                                     "1/1/2000", _
                                     "1/1/2000",  _
                                     "12/12/2000", _
                                     "1033")
If IsNull(vDate) Then
    Response.Write "Invalid Date"
Else
    Response.Write vDate
End If


Code to Manipulate and Display Euro Values

The purpose of this example is to convert currency information from dollars to French Francs. In this example, you create an Active Server Pages (ASP) page that creates a EuroDisplay object, initializes it to set the Base Currency Symbol to "$", the Base Locale to the locale for the US, the Alternate Currency Symbol to "FF", the Alternate Locale to France, and the conversion rate equal to $ 1.00 = 2 FF. The example then converts 100 units of the Base Currency to Alternate Currency units; $100 will convert to 200 Francs.

  1. Instantiate the EuroDisplay object. Note that this line of code is usually found in the Global.asa file.
    Dim EuroDisplay, Result
Set oEuroDisplay= Server.CreateObject("Commerce.EuroDisplay")
  2. Initialize the EuroDisplay object. Note that this line of code is usually found in the Global.asa file. This code will initialize the object by setting the Base Currency Symbol to "$", the Base Locale to the locale for the US, the Alternate Currency Symbol to "FF", the Alternate Locale to France, and the conversion rate equal to $ 1.00 = 2 FF.
    oEuroDisplay.Initialize("$", 1033, "FF", 1036, 2)
  3. Convert $ 100 to FF 200.
    cyAltCurrency = oEuroDisplay.ConvertMoney(100)
  4. Write the converted value to the page.
    Response.Write "Converted $100 from $ to FF ($1 = 2FF) : " _
               & cyAltCurrency


Code to Convert Between Numbers and Strings

The following two examples illustrate the use of the DataFunctions object in converting between string values and numbers.

Converting a Number to a String

Converting a Monetary Value to a Number

Converting a Number to a String

In this example, you create an Active Server Pages (ASP) page that converts a floating-point number into a variety of outputs. All outputs are based on the US locale; this example explores different rounding and trailing zero variable settings.

Create the example using the following code:

  1. Instantiate the DataFunctions object, and set the object Locale property to US.
    Dim oDataFunctions, iResult, iLocale, iInputFloat
Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
iLocale = "1033"
oDataFunctions.Locale = iLocale
  2. Call the Float method to convert the number to the US version with no rounding and with trailing zeros maintained. Write the results to the page.
    iInputFloat = 100.00010
iResult = oDataFunctions.Float(iInputFloat, iLocale, True , False)
Response.Write "USA, No Rounding, With Trailing: " & Result & "<P>"
  3. Call the Float method to convert the number to the US version with no rounding and with trailing zeros removed. Write the results to the page.
    Result = oDataFunctions.Float(iInputFloat, iLocale, True, True)
Response.Write "USA, No Rounding, Trim Trailing: " & Result & "<P>"
  4. Call the Float method to convert the number to the US version with rounding and with trailing zeros maintained. Write the results to the page.
    Result = oDataFunctions.Float(iInputFloat, iLocale, False, False)
Response.Write "USA, Rounding, With Trailing: " & Result & "<P>"
  5. Call the Float method to convert the number to the US version with rounding and with trailing zeros removed. Write the results to the page.
    Result = oDataFunctions.Float(iInputFloat, iLocale, False, True)
Response.Write "USA, Rounding, Trim Trailing: " & Result & "<P>"

Converting a Monetary Value to a Number

In this example, you create an ASP page that converts a monetary value to an integer. The ConvertMoneyStringToNumber method returns the value in the base monetary unit for a given Locale property.

Thus, given a value in US dollars, the ConvertMoneyStringToNumber method returns the number of cents in the US dollar value. Additionally, the ConvertMoneyStringToNumber method does not round values. For example, if you pass to this method the number "123.009", the method returns 12300, not 12301.

Create the example using the following code:

  1. Instantiate the DataFunctions object.
    Dim oDataFunctions, iResult, sAmount, iLocale
sAmount = "12000"
Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
  2. Set locale to US.
    iLocale = "1033"
oDataFunctions.Locale = iLocale
  3. Convert the string to an integer.
    Result = oDataFunctions.ConvertMoneyStringToNumber("34.095", iLocale)
  4. Write the results to the page.
    Response.Write "USA: " & Result & "<P>"


Code to Display Locale-Specific Strings

This section describes how to create Active Server Pages (ASP) pages that use the string conversion functions of the DataFunctions object.

Converting a Date Based on Locale

Converting a Number Based on Locale

Converting a Money Amount Based on Locale

Converting a Date Based on Locale

In this example, you create an ASP page that converts a date into two locale-specific displays. The first display is that of the French version of the date; the second is the US version.

Create this example using the following ASP code:

  1. Instantiate the DataFunctions object, set the Locale property to France (1036), convert the date string, and write the converted string to the page.
    Dim Result, Amount
Amount = "12000"
Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
iLocale = "1036"
oDataFunctions.Locale = iLocale
Result = oDataFunctions.ConvertDateString("12/1/2000", iLocale)
Response.Write "France: " & Result & "<BR>"
  2. Set the Locale property to US (1033), convert the date string, and write the converted string to the page.
    iLocale = "1033"
oDataFunctions.Locale = iLocale
Result = oDataFunctions.ConvertDateString("12/1/2000", iLocale)
Response.Write "USA: " & Result & "<BR>"

Converting a Number Based on Locale

In this example, you create an ASP page that converts a floating-point number into two locale-specific outputs. The first output is that of the French version of the number; the second is the US version.

The output shows the differing display formats of the French and US versions of the number 10000000 (ten million):

  • France: 10 000 000,00
  • US: 10,000,000.00

Create the ASP page using the following code:

  1. Instantiate the DataFunctions object.
    Dim oDataFunctions, sResult, iLocale
Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
  2. Set the Locale property to France (1036), and write the converted number to the page.
    iLocale = "1036"
oDataFunctions.Locale = iLocale
sResult = oDataFunctions.Number(10000000, iLocale)
Response.Write "France: " & sResult & "<BR>"
  3. Change the Locale property to US (1033), and write the converted number to the page.
    iLocale = "1033"
oDataFunctions.Locale = iLocale
sResult = oDataFunctions.Number(10000000, iLocale)
Response.Write " USA: " & sResult & "<BR>"

Converting a Money Amount Based on Locale

In this example, you create an ASP page that converts a floating-point number that contains a monetary value into two locale-specific displays. The first display is that of the French version of the number; the second is the US version.

Use this method to convert a long that contains a monetary value to an equivalent string representation, based on the default or specified Locale property. The output will display the locale-specific currency symbol:

  • France: 120,00 F
  • US: $120.00

Create this example using the following ASP code:

  1. Instantiate the DataFunctions object.
    Dim oDataFunctions, sResult, lAmount
Amount = "12000"
Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
  2. Set the Locale property to France (1036), convert the amount, and write the result to the page.
    iLocale = "1036"
oDataFunctions.Locale = iLocale
sResult = oDataFunctions.Money(lAmount, iLocale)
Response.Write "France: " & sResult & "<BR>"
  3. Set the Locale property to US (1033), convert the amount, and write the result to the page.
    iLocale = "1033"
oDataFunctions.Locale = iLocale
sResult = oDataFunctions.Money(lAmount, iLocale)
Response.Write "USA: " & sResult & "<BR>"


Code to Manage Common Error Messages to Users

The MessageManager object is created in the Global.asa file. For the purposes of this example (although this practice is not recommended), it will be created on an ASP page. In this example, a MessageManager object is created, and two languages (Informal and Formal) are added to it. Following this, a message ("greeting") is added to each language. The message is then written to the page in each language.

  1. Instantiate the MessageManager object.
    Dim oMessMgr, sMessage
Set oMessMgr= Server.CreateObject("Commerce.MessageManager")
  2. Add two new languages to the MessageManager object, specifying the US Locale (1033).
    Call oMessMgr.AddLanguage ("Informal", 1033)
Call oMessMgr.AddLanguage("Formal", 1033)
  3. Add two new messages to the MessageManager object.
    oMessMgr.AddMessage "greeting", "Hi, World!", "Informal"
oMessMgr.AddMessage "greeting", "How do you do, World.", "Formal"
  4. Get the informal message, and write it to the page.
    sMessage = oMessMgr.GetMessage("greeting", "Informal")
Response.Write "Informal Message: "& sMessage & "<BR>"
  5. Get the formal message, and write it to the page.
    sMessage = oMessMgr.GetMessage("greeting", "Formal")
Response.Write "Formal Message: " & sMessage & "<BR>"


Migration Objects

The Migration objects provide functionality to support migration of data from Site Server 3.0 Commerce Edition to Commerce Server 2000.

Objects

Visual Basic Reference | C++ Invocation | Description
MigrationLogObj | MigrationLogObj | Writes migration log data to the data store.
MigrationMainObj | MigrationMainObj | Coordinates migration of data from the Site Server 3.0 Commerce Edition Membership Directory to the Commerce Server 2002 Profile data store.
MigrationModifyObj | MigrationModifyObj | Changes data that has been read from the Site Server 3.0 Commerce Edition Membership Directory before it is migrated to the Commerce Server 2002 Profile data store.
MigrationReadObj | MigrationReadObj | Reads values for each attribute in the Site Server 3.0 Commerce Edition Membership Directory, and sends them to the MigrationProfile object.
MigrationWriteObj | MigrationWriteObj | Writes the values for each attribute in the Site Server 3.0 Commerce Edition Membership Directory to the Commerce Server 2002 Profile data store.


MigrationLogObj Object [C++]

MigrationLogObj Object [Visual Basic]

Use this object to write log data to the data store determined by the connection string. The data includes the status of each migration.

ProgID: | MigrationLog (Externally creatable)
COM Class Name: | MigrationLog
Type Library Name: | MigrationLogObj 1.0 Type Library
[C++]
COM Interface Name: | IMigrationLog
Interface ID Constant: | None
Header File: | MigrationLog.h

Methods

[C++]
Method | Description
Initialize | Initializes the MigrationLogObj object.
LogSuccess | Writes the success code to the log file.
RecordInfo | Records data to the log file.
[Visual Basic]
Method | Description
Initialize | Initializes the MigrationLogObj object.
LogSuccess | Writes the success code to the log file.
RecordInfo | Records data to the log file.
[C++]

The IMigrationLogObj interface depends on the following structure:

typedef struct _LOGINFO
{
    long  lProfile_id
    BSTR  bstrDN;
    BSTR  bstrObject;
    Long  lErrorCode;
    BSTR  bstrReason;
} LOGINFO;

Requirements

The following table contains the requirements of the MigrationLogObj object.

Parameter | Description
Registry key | SYSTEM\\CurrentControlSet\\Services\\Migration\\Parameters
LogFilePath | The path of the log file. The default is "C:\MigrationLogObj". The data type is String.
MaxNumLinesEachFile | The maximum number of lines in each log file. If the number of lines exceeds this number, another log file is created in the same directory. The data type is DWORD.
MaxNumThreads | The maximum number of threads that run against the migration tool. The default value is four (4). The data type is DWORD.
AttributeFactors The number of entries in the mapping section for each attribute in an XML file. The type is DWORD. The default value is four (4), counting the following four lines:
<FromMembership>givenName</FromMembership>
<ToUPS>GeneralInfo.first_name</ToUPS>
<WProfileType>UserObject</WProfileType>
<WTypes>VT_BSTR</WTypes>

Each attribute in the mapping section contains these four lines, with different values.
ADsSearchPageSize | Size of search page. The type is DWORD. See the Active Directory Service Interfaces (ADSI) documentation for more information.
MaxNumLinesEachFile | The maximum number of lines in each log file. When this number is reached, a new log file is created in the same location with the file name extended with sequential numbers. The data type is DWORD.
NumberOfLinesToFlush | Use this parameter to flush the memory when the log file contains the indicated number of lines. The data type is DWORD.
MaxAttributesFetched The number of attributes having values you request from the Membership Directory. A number that is too high may result in a timeout; a number that is too low will adversely affect performance. Do not set this value first.

Set this value to 50 if you receive a timeout error in the MigrationReadObj object. The data type is DWORD.
InitialWaitPeriod | The time in milliseconds that the process sleeps for the first time. The default value is zero (0). It is recommended you set this to less than five (5). The data type is DWORD.
BackOffTimes | The number of times to retry in case of failure. The default value is zero (0). It is recommended you set this to less than four (4). The data type is DWORD.
LogLevel Log level values are:

0 = Logs error only

1 = Logs error and success

2 = Logs error and performance

3 = Logs error and success and performance

The data type is DWORD.

The IMigrationLogObj interface depends on the following structure:

typedef struct _LOGINFO
{
    long  lProfile_id
    BSTR  bstrDN;
    BSTR  bstrObject;
    Long  lErrorCode;
    BSTR  bstrReason;
} LOGINFO;

See Also

[C++] MigrationMainObj Object

[C++] MigrationModify Object

[C++] MigrationReadObj Object

[C++] MigrationWriteObj Object

[Visual Basic] MigrationMainObj Object

[Visual Basic] MigrationModify Object

[Visual Basic] MigrationReadObj Object

[Visual Basic] MigrationWriteObj Object


IMigrationLogObj Methods [C++]

MigrationLogObj Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Initializes the MigrationLogObj object.
LogSuccess | Writes the success code to the log file.
RecordInfo | Records data to the log file.
[Visual Basic]
Method | Description
Initialize | Initializes the MigrationLogObj object.
LogSuccess | Writes the success code to the log file.
RecordInfo | Records data to the log file.


IMigrationLogObj::Initialize Method [C++]

MigrationLogObj.Initialize Method [Visual Basic]

Use this method to initialize the MigrationLogObj object.

Definition

[C++]
HRESULT IMigrationLogObj::Initialize(
  int nLogSuccess
);
[Visual Basic]
Sub Initialize(
  nLogSuccess As int
)

Parameters

nLogSuccess [C++]
[in] An int that indicates which migrations will be written to the log file. A value of 1 (one) means that successful migrations will be written to the log file as well as unsuccessful migrations. A value of 0 (zero) means that only unsuccessful migrations will be written.
nLogSuccess [Visual Basic]
An int that indicates which migrations will be written to the log file. A value of 1 (one) means that successful migrations will be written to the log file as well as unsuccessful migrations. A value of 0 (zero) means that only unsuccessful migrations will be written.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Call this method before calling the RecordInfo or LogSuccess methods.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this method are listed in MigrationLogObj Object.

[Visual Basic] Requirements for using this method are listed in MigrationLogObj Object.

See Also

[C++] MigrationLogObj Object

[Visual Basic] MigrationLogObj Object


IMigrationLogObj::LogSuccess Method [C++]

MigrationLogObj.LogSuccess Method [Visual Basic]

Use this method when a successful migration occurs and the LogLevel registry key is 1 or 3. The success code is written to a file with a name constructed by concatenating the value of the LogFilePath registry key, the string "_success", and a number that is incremented as the file exceeds the "MaxNumLinesEachFile" registry key. An example file name is: C:\MigrationLogObj_success1.

Definition

[C++]
HRESULT IMigrationLogObj::LogSuccess(
  BSTR bstrKeyName,
  long lprofile_id
);
[Visual Basic]
Sub LogSuccess(
  bstrKeyName As String,
  lprofile_id As Long
)

Parameters

bstrKeyName [C++]
[in] A BSTR that contains the name of the object that is being migrated.
bstrKeyName [Visual Basic]
A String that contains the name of the object that is being migrated.
lprofile_id [C++]
[in] A long that contains the ID of the profile XML file that is used when migrating the object.
lprofile_id [Visual Basic]
A long that contains the ID of the profile XML file that is used when migrating the object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationLogObj Object

[Visual Basic] MigrationLogObj Object


IMigrationLogObj::RecordInfo Method [C++]

MigrationLogObj.RecordInfo Method [Visual Basic]

Use this method to record information to the log file.

Definition

[C++]
HRESULT IMigrationLogObj::RecordInfo(
  LOGINFO lgInfo
);
[Visual Basic]
Sub RecordInfo(
  lgInfo As LOGINFO
)

Parameters

lgInfo [C++]
[in] A LOGINFO object that contains the log information to record.
lgInfo [Visual Basic]
A LOGINFO object that contains the log information to record.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationLogObj Object

[Visual Basic] MigrationLogObj Object


MigrationMainObj Object [C++]

MigrationMainObj Object [Visual Basic]

Use this object to coordinate the migration from the Site Server 3.0 Membership Directory to the Commerce Server Profile data store. The MigrationMainObj object uses the following four COM objects to implement this task:

  • MigrationLogObj
  • MigrationModifyObj
  • MigrationReadObj
  • MigrationWriteObj
ProgID: | MigrationProfile (Externally creatable)
COM Class Name: | MigrationProfile
Type Library Name: | MigrationMainObj 1.0 Type Library
DLL Name:
[C++]
COM Interface Name: | IMigrationProfile
Interface ID Constant: | None
Header File: | MigrationProfile.h
[C++]

In C++, use the IMigrationProfile interface to access the properties and methods of the MigrationMainObj object.

Methods

[C++]
Method | Description
Initialize | Sets up all the components for the migration process.
MigrateObject | Migrates an ADSPath key to the Commerce Server 2002 Profile data store.
ShutDown | Shuts down and deallocates the data structures that were created upon initialization.
[Visual Basic]
Method | Description
Initialize | Sets up all the components for the migration process.
MigrateObject | Migrates an ADSPath key to the Commerce Server 2002 Profile data store.
ShutDown | Shuts down and deallocates the data structures that were created upon initialization.

Remarks

The following structure should be added to the .idl file included in the Migration folder to facilitate passing the profile information to each object:

typedef struct _PROFILE
    long lprofile_id;
    ' bstrConfigStore in Commerce Server
    BSTR bstrConnection;
    ' used in profile service initialization
    BSTR bstrCatalog;
    ' migrate user's membership
    BSTR bstrMemberOf;
    SAFEARRAY(BSTR) Attributes;
    ' number of attribute types
    SAFEARRAY(USHORT) nAttributeTypes;
    ' only for write use
    SAFEARRAY(BSTR) ProfileTypes;
    ' Membership User name
    BSTR bstrMOUserName;
    BSTR bstrMDPassword;
    BSTR bstrCSUserName
    BSTR bstrCSPassword;
    ' True for ADSite, otherwise False
    BSTR bstrADSite;
    ' OU that holds all groups
    BSTR bstrGroupOU;
    ' total number of modifiers in this profile
    long lNumModifies;
    ' modify info
    SAFEARRAY(USHORT) rgModIndex;
} PROFILE;

See Also

[C++] MigrationLogObj Object

[C++] MigrationModify Object

[C++] MigrationReadObj Object

[C++] MigrationWriteObj Object

[Visual Basic] MigrationLogObj Object

[Visual Basic] MigrationModify Object

[Visual Basic] MigrationReadObj Object

[Visual Basic] MigrationWriteObj Object


IMigrationMainObj Methods [C++]

MigrationMainObj Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Sets up all the components for the migration process.
MigrateObject | Migrates an ADSPath key to the Commerce Server 2002 Profile data store.
ShutDown | Shuts down and deallocates the data structures that were created upon initialization.
[Visual Basic]
Method | Description
Initialize | Sets up all the components for the migration process.
MigrateObject | Migrates an ADSPath key to the Commerce Server 2002 Profile data store.
ShutDown | Shuts down and deallocates the data structures that were created upon initialization.


IMigrationMainObj::Initialize Method [C++]

MigrationMainObj.Initialize Method [Visual Basic]

Use this method to set up all the components for the migration process.

[C++]
HRESULT IMigrationMainObj::Initialize(
  BSTR sProfileDirectory
);
[Visual Basic]
Sub Initialize(
  sProfileDirectory As String
)

Parameters

sProfileDirectory [C++]
[in] A BSTR that contains the path of the profile directory. This parameter, indicating where all profile files reside, is parsed for each of the following values:
  • An array containing the attribute names for each profile ID. These arrays will be stored in a structure that will be passed to the MigrationReadObj, MigrationModifyObj, and MigrationWriteObj objects.
  • The connection string to the membership directory or SQL Server that will be passed to the MigrationReadObj and MigrationWriteObj objects in the form of an array of connection strings.
  • The profile ID for each profile so that the correct attribute array can be identified. The profile IDs will be passed to the MigrationReadObj and MigrationWriteObj objects in the form of an array of profile IDs. The profile ID is passed to the MigrationModifyObj object as a single ID.
  • The ProgID for each COM object so that it can be initialized with the above data. The ProgIDs will be stored in an array so that the correct objects can be called based on the profile ID.
sProfileDirectory [Visual Basic]
A String that contains the path of the profile directory. This parameter, indicating where all profile files reside, is parsed for each of the following values:
  • An array containing the attribute names for each profile ID. These arrays will be stored in a structure that will be passed to the MigrationReadObj, MigrationModifyObj, and MigrationWriteObj objects.
  • The connection string to the membership directory or SQL Server that will be passed to the MigrationReadObj and MigrationWriteObj objects in the form of an array of connection strings.
  • The profile ID for each profile so that the correct attribute array can be identified. The profile IDs will be passed to the MigrationReadObj and MigrationWriteObj objects in the form of an array of profile IDs. The profile ID is passed to the MigrationModifyObj object as a single ID.
  • The ProgID for each COM object so that it can be initialized with the above data. The ProgIDs will be stored in an array so that the correct objects can be called based on the profile ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationMainObj Object

[Visual Basic] MigrationMainObj Object


IMigrationMainObj::MigrateObject Method [C++]

MigrationMainObj.MigrateObject Method [Visual Basic]

Use this method to migrate an ADSPath key to the Commerce Server 2002 Enterprise Editon (EE) Profile data store. This method is called from the Active Server Pages (ASP) page or from Microsoft Visual Basic Scripting Edition (VBscript).

Definition

[C++]
HRESULT IMigrationMainObj::MigrateObject(
  BSTR bstrKeyName,
  long lProfile_id
);
[Visual Basic]
Sub MigrateObject(
  bstrKeyName As String,
  lProfile_id As Long
)

Parameters

bstrKeyName [C++]
[in] A BSTR that contains the ADSPath key.
bstrKeyName [Visual Basic]
A String that contains the ADSPath key.
lProfile_id [C++]
[in] A long that contains the profile ID to be used for the ADSPath key.
lProfile_id [Visual Basic]
A Long that contains the profile ID to be used for the ADSPath key.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The MigrationProfile object finds the appropriate attribute array for the input profile ID to be filled in by the MigrationReadObj object. This array, along with the key (ADSPath) and profile ID is then passed to the MigrationReadObj, MigrationModifyObj, or MigrationWriteObj objects to be processed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationMainObj Object

[Visual Basic] MigrationMainObj Object


IMigrationMainObj::ShutDown Method [C++]

MigrationMainObj.ShutDown Method [Visual Basic]

Use this method to shut down the server. It is called from the MigrationReadObj or MigrationWriteObj object. It also deallocates the data structures that were created upon initialization.

Definition

[C++]
HRESULT IMigrationMainObj::ShutDown(
);
[Visual Basic]
Sub ShutDown()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationMainObj Object

[Visual Basic] MigrationMainObj Object


MigrationModifyObj Object [C++]

MigrationModifyObj Object [Visual Basic]

Use this object to change the data that has been read from the Membership Directory before it is migrated to the Commerce Server Profile data store.

ProgID: | MigrationModify (Externally creatable)
COM Class Name: | GlobalConfig
Type Library Name: | MigrationModifyObj 1.0 Type Library
[C++]
COM Interface Name: | IMigrationModify
Interface ID Constant: | None
Header File: | MigrationModify.h
[C++]

In C++, use the IMigrationModify interface to access the properties and methods of the MigrationModify object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Initialize | Initializes the MigrationModifyObj object.
ModifyAttributes | Accepts the key, profile ID, and array of values to be modified. This method uses the profile ID to determine the structure of the array based on the attributes that it read in the Initialize method.
[Visual Basic]
Method | Description
Initialize | Initializes the MigrationModifyObj object.
ModifyAttributes | Accepts the key, profile ID, and array of values to be modified. This method uses the profile ID to determine the structure of the array based on the attributes that it read in the Initialize method.

See Also

[C++] MigrationLogObj Object

[C++] MigrationMainObj Object

[C++] MigrationReadObj Object

[C++] MigrationWriteObj Object

[Visual Basic] MigrationLogObj Object

[Visual Basic] MigrationMainObj Object

[Visual Basic] MigrationReadObj Object

[Visual Basic] MigrationWriteObj Object


IMigrationModify Methods [C++]

MigrationModify Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Initializes the MigrationModifyObj object.
ModifyAttributes | Accepts the key, profile ID, and array of values to be modified. This method uses the profile ID to determine the structure of the array based on the attributes that it read in the Initialize method.
[Visual Basic]
Method | Description
Initialize | Initializes the MigrationModifyObj object.
ModifyAttributes | Accepts the key, profile ID, and array of values to be modified. This method uses the profile ID to determine the structure of the array based on the attributes that it read in the Initialize method.


IMigrationModify::Initialize Method [C++]

MigrationModify.Initialize Method [Visual Basic]

Use this method to initialize the MigrationModifyObj object.

Definition

[C++]
HRESULT IMigrationModify::Initialize(
);
[Visual Basic]
Sub Initialize()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Call this method before calling the ModifyAttributes method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationModify Object

[Visual Basic] MigrationModify Object


IMigrationModify::ModifyAttributes Method [C++]

MigrationModify.ModifyAttributes Method [Visual Basic]

Use this method to input the key, profile ID, and array of values to be modified.

Definition

[C++]
HRESULT IMigrationModify::ModifyAttributes(
  long lProfile_id,
  BSTR bstrAttribute,
  USHORT targetType,
  USHORT sourceType,
  VARIANT* varTarg
);
[Visual Basic]
Sub ModifyAttributes(
  lProfile_id As Long,
  bstrAttribute As String,
  targetType As USHORT,
  sourceType As USHORT,
  varTarg As Variant
)

Parameters

lProfile_id [C++]
[in] A long that contains the ID of the profile XML file that is being used.
lProfile_id [Visual Basic]
A Long that contains the ID of the profile XML file that is being used.
bstrAttribute [C++]
[in] A BSTR that contains the name of the attribute that will be modified.
bstrAttribute [Visual Basic]
A String that contains the name of the attribute that will be modified.
targetType [C++]
[in] A USHORT that contains the data type that the attribute should be changed to.
targetType [Visual Basic]
A USHORT that contains the data type that the attribute should be changed to.
sourceType [C++]
[in] A USHORT that contains the data type of the attribute passed in.
sourceType [Visual Basic]
A USHORT that contains the data type of the attribute passed in.
varTarg [C++]
[in, out] A pointer to the VARIANT that contains the value of the attribute that will be changed. The value passed in is also used to return the altered value.
varTarg [Visual Basic]
A Variant that contains the value of the attribute that will be changed. The passed in value passed in is also used to return the altered value.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method uses the profile ID to determine the structure of the array based on the attributes that it read in the Initialize method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationModify Object

[Visual Basic] MigrationModify Object


MigrationReadObj Object [C++]

MigrationReadObj Object [Visual Basic]

Use the MigrationReadObj object to read values for each attribute in the Membership Directory, and then send them to the MigrationProfile object. The MigrationReadObj object first reads the type of each attribute and then fills in the data.

ProgID: | MigrationRead (Externally creatable)
COM Class Name: | MigrationRead
Type Library Name: | MigrationReadObj 1.0 Type Library
[C++]
COM Interface Name: | IMigrationRead
Interface ID Constant: | None
Header File: | MigrationRead.h

Methods

[C++]
Method | Description
Initialize | Determines which attributes to read for a particular key based on the profile ID.
MigrationFailed | Sets the attribute cn=Migration to FALSE when the migration of this object fails.
ReadAttributes | Uses the profile ID to determine what attributes are associated with the key, and then reads these attributes from the data source into the array.
ShutDown | Frees the created connection pools.
[Visual Basic]
Method | Description
Initialize | Determines which attributes to read for a particular key based on the profile ID.
MigrationFailed | Sets the attribute cn=Migration to FALSE when the migration of this object fails.
ReadAttributes | Uses the profile ID to determine what attributes are associated with the key, and then reads these attributes from the data source into the array.
ShutDown | Frees the created connection pools.

See Also

[C++] MigrationLogObj Object

[C++] MigrationMainObj Object

[C++] MigrationModify Object

[C++] MigrationWriteObj Object

[Visual Basic] MigrationLogObj Object

[Visual Basic] MigrationMainObj Object

[Visual Basic] MigrationModify Object

[Visual Basic] MigrationWriteObj Object


IMigrationReadObj Methods [C++]

MigrationReadObj Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Determines which attributes to read for a particular key based on the profile ID.
MigrationFailed | Sets the attribute cn=Migration to FALSE when the migration of this object fails.
ReadAttributes | Uses the profile ID to determine what attributes are associated with the key, and then reads these attributes from the data source into the array.
ShutDown | Frees the created connection pools.
[Visual Basic]
Method | Description
Initialize | Determines which attributes to read for a particular key based on the profile ID.
MigrationFailed | Sets the attribute cn=Migration to FALSE when the migration of this object fails.
ReadAttributes | Uses the profile ID to determine what attributes are associated with the key, and then reads these attributes from the data source into the array.
ShutDown | Frees the created connection pools.


IMigrationReadObj::Initialize Method [C++]

MigrationReadObj.Initialize Method [Visual Basic]

Use this method to determine which attributes to read for a particular key based on the profile ID.

Definition

[C++]
HRESULT IMigrationRead::Initialize(
  long lNumProfiles,
  PROFILE Profile[],
  BSTR bstrModifyProgID
);
[Visual Basic]
Sub Initialize(
  lNumProfiles As Long,
  Profile[] As PROFILE,
  bstrModifyProgID As String
)

Parameters

lNumProfiles [C++]
[in] A long that contains the number of profile XML files that will be used for the migration.
lNumProfiles [Visual Basic]
A Long that contains the number of profile XML files that will be used for the migration.
Profile[] [C++]
[in, size_is (numProfiles)] An array of PROFILE structures holding all the information from the XML profile files.
Profile[] [Visual Basic]
An array of PROFILE structures holding all the information from the XML profile files.
bstrModifyProgID [C++]
[in] A BSTR that contains the modified ProgID.
bstrModifyProgID [Visual Basic]
A String that contains the modified ProgID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method takes as input an array of structures containing all the attributes for each profile ID and the connection to use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationReadObj Object

[Visual Basic] MigrationReadObj Object


IMigrationReadObj::MigrationFailed Method [C++]

MigrationReadObj.MigrationFailed Method [Visual Basic]

Use this method to set the attribute cn=Migration to FALSE when the migration of the MigrationReadObj object fails. This attribute is of type binary and should not exist in the current schema.

Definition

[C++]
HRESULT IMigrationReadObj::MigrationFailed(
  BSTR bstrKeyName
);
[Visual Basic]
Sub MigrationFailed(
  bstrKeyName As String
)

Parameters

bstrKeyName [C++]
[in] A BSTR that contains the name of the object that is being migrated.
bstrKeyName [Visual Basic]
A String that contains the name of the object that is being migrated.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationReadObj Object

[Visual Basic] MigrationReadObj Object


IMigrationReadObj::ReadAttributes Method [C++]

MigrationReadObj.ReadAttributes Method [Visual Basic]

Use this method to determine what attributes are associated with the key, and then read these attributes from the data source into the array.

Definition

[C++]
HRESULT IMigrationReadObj::ReadAttributes(
  BSTR bstrKeyName,
  long lProfile_id,
  SAFEARRAY(VARIANT)* AttributeStructure,
  VARIANT* varValueIndex,
  VARIANT* vMemberOfs
);
[Visual Basic]
Sub ReadAttributes(
  bstrKeyName As String,
  lProfile_id As Long,
  AttributeStructure As SAFEARRAY(VARIANT),
  varValueIndex As Variant,
  vMemberOfs As Variant
)

Parameters

bstrKeyName [C++]
[in] A BSTR that contains the name of the object that is being migrated.
bstrKeyName [Visual Basic]
A String that contains the name of the object that is being migrated.
lProfile_id [C++]
[in] A long that contains the ID of the profile XML file that is been used.
lProfile_id [Visual Basic]
A Long that contains the ID of the profile XML file that is been used.
AttributeStructure [C++]
[out] A reference to a SAFEARRAY(VARIANT) that contains an array of all the attributes that are to be migrated for this object.
AttributeStructure [Visual Basic]
A SAFEARRAY(VARIANT) that contains an array of all the attributes that are to be migrated for this object.
varValueIndex [C++]
[in] A pointer to a VARIANT array showing which attributes were actually read for this object. If an index is Null, then this object did not have this attribute set.
varValueIndex [Visual Basic]
A VARIANT array showing which attributes were actually read for this object. If an index is Null, then this object did not have this attribute set.
vMemberOfs [C++]
[out] A pointer to a VARIANT array containing all the groups to which this object is a member.
vMemberOfs [Visual Basic]
A Variant array containing all the groups to which this object is a member.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is called for each migration that takes place.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationReadObj Object

[Visual Basic] MigrationReadObj Object


IMigrationReadObj::ShutDown Method [C++]

MigrationReadObj.ShutDown Method [Visual Basic]

Use this method to free the created connection pools.

Definition

[C++]
HRESULT IMigrationReadObj::ShutDown(
);
[Visual Basic]
Sub ShutDown()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The MigrationProfile object calls this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationReadObj Object

[Visual Basic] MigrationReadObj Object


MigrationWriteObj Object [C++]

MigrationWriteObj Object [Visual Basic]

Use this object to write the values for each attribute to the Commerce Server 2002 Profile data store.

ProgID: | MigrationWrite (Externally creatable)
COM Class Name: | MigrationWrite
Type Library Name: | MigrationWriteObj 1.0 Type Library
[C++]
COM Interface Name: | IMigrationWrite
Interface ID Constant: | None
Header File: | MigrationWrite.h
[C++]

In C++, use the IMigrationWriteObj interface to access the properties and methods of the MigrationWriteObj object.

Methods

[C++]
Method | Description
Initialize | Uses the input parameters to determine what attributes to write for a particular key based on the profile ID.
ShutDown | Frees the created connection pools.
WriteUserAttributes | Uses the profile ID to identify the attributes that are associated with the key and writes these attributes from the array into the Commerce Server Profile data store.
[Visual Basic]
Method | Description
Initialize | Uses the input parameters to determine what attributes to write for a particular key based on the profile ID.
ShutDown | Frees the created connection pools.
WriteUserAttributes | Uses the profile ID to identify the attributes that are associated with the key and writes these attributes from the array into the Commerce Server Profile data store.

See Also

[C++] MigrationLogObj Object

[C++] MigrationMainObj Object

[C++] MigrationModify Object

[C++] MigrationReadObj Object

[Visual Basic] MigrationLogObj Object

[Visual Basic] MigrationMainObj Object

[Visual Basic] MigrationModify Object

[Visual Basic] MigrationReadObj Object


IMigrationWriteObj Methods [C++]

MigrationWriteObj Methods [Visual Basic]

Methods

[C++]
Method | Description
Initialize | Uses the input parameters to determine what attributes to write for a particular key based on the profile ID.
ShutDown | Frees the created connection pools.
WriteUserAttributes | Uses the profile ID to identify the attributes that are associated with the key and writes these attributes from the array into the Commerce Server Profile data store.
[Visual Basic]
Method | Description
Initialize | Uses the input parameters to determine what attributes to write for a particular key based on the profile ID.
ShutDown | Frees the created connection pools.
WriteUserAttributes | Uses the profile ID to identify the attributes that are associated with the key and writes these attributes from the array into the Commerce Server Profile data store.


IMigrationWriteObj::Initialize Method [C++]

MigrationWriteObj.Initialize Method [Visual Basic]

Use this method to determine what attributes to write for a particular key based on the profile ID.

Definition

[C++]
HRESULT IMigrationWrite::Initialize(
  long numProfiles,
  PROFILE Profiles[],
  IUnknown* pIMigrationLog
);
[Visual Basic]
Sub Initialize(
  numProfiles As Long,
  Profiles[] As PROFILE,
  pIMigrationLog As IUnknown
)

Parameters

numProfiles [C++]
[in] A long that contains the number of profile XML files that will be used for the migration.
numProfiles [Visual Basic]
A Long that contains the number of profile XML files that will be used for the migration.
Profiles[] [C++]
[in, size_is (numProfiles)] An array of PROFILE structures holding all the information from the XML profile files.
Profiles[] [Visual Basic]
An array of PROFILE structures holding all the information from the XML profile files.
pIMigrationLog [C++]
A pointer to the IUnknown interface object used for logging.
pIMigrationLog [Visual Basic]
An object reference to the IUnknown interface object used for logging.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationWriteObj Object

[Visual Basic] MigrationWriteObj Object


IMigrationWriteObj::ShutDown Method [C++]

MigrationWriteObj.ShutDown Method [Visual Basic]

Use this method to free the created connection pools.

Definition

[C++]
HRESULT IMigrationWriteObj::ShutDown(
);
[Visual Basic]
Sub ShutDown()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The MigrationProfile object calls this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationWriteObj Object

[Visual Basic] MigrationWriteObj Object


IMigrationWriteObj::WriteUserAttributes Method [C++]

MigrationWriteObj.WriteUserAttributes Method [Visual Basic]

Use this method to identify the attributes that are associated with the key, and then write these attributes from the array into the Commerce Server Profile data store.

Definition

[C++]
HRESULT IMigrationWriteObj::WriteUserAttributes(
  BSTR bstrKeyName,
  long lProfile_id,
  SAFEARRAY(VARIANT)* AttributeStructure,
  VARIANT* varValueIndex,
  VARIANT* vMemberOfs
);
[Visual Basic]
Sub WriteUserAttributes(
  bstrKeyName As String,
  lProfile_id As Long,
  AttributeStructure As SAFEARRAY(VARIANT),
  varValueIndex As Variant,
  vMemberOfs As Variant
)

Parameters

bstrKeyName [C++]
[in] A BSTR that contains the name of the object that is being migrated.
bstrKeyName [Visual Basic]
A String that contains the name of the object that is being migrated.
lProfile_id [C++]
[in] A Long that contains the ID of the profile XML file that is been used.
lProfile_id [Visual Basic]
A Long that contains the ID of the profile XML file that is been used.
AttributeStructure [C++]
[in] A reference to a SAFEARRAY(VARIANT) that contains an array of all the attributes that are to be migrated for this object.
AttributeStructure [Visual Basic]
A SAFEARRAY(VARIANT) that contains an array of all the attributes that are to be migrated for this object.
varValueIndex [C++]
[in] A pointer to a VARIANT array showing which attributes were actually read for this object. If an index is Null, then this object did not have this attribute set.
varValueIndex [Visual Basic]
A Variant array showing which attributes were actually read for this object. If an index is Null, then this object did not have this attribute set.
vMemberOfs [C++]
[in] A pointer to a VARIANT array containing all the groups to which this object is a member.
vMemberOfs [Visual Basic]
A Variant array containing all the groups to which this object is a member

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] MigrationWriteObj Object

[Visual Basic] MigrationWriteObj Object


Order Processing Objects

Business process objects provide the ability to manage baskets, templates, and submitted orders. Typical management functions include order creation, database order storage, and database order searches.

The Order Processing Programming Concepts topic describes concepts related to programming with the various objects that are concerned with business processing.

Objects

Visual Basic reference | C++ invocation | Description
Auction | Auction | Provides methods for supporting auctions.
OrderForm | OrderForm | Provides in-memory storage of user and purchase information.
OrderGroup | OrderGroup | Allows management of complex orders, such as those containing items from different suppliers, and multiple shipments.
OrderGroupManager | OrderGroupManager | Provides methods to manage OrderGroup and OrderForm objects.
Shipping | Shipping | Creates shipping cost preview information.
ShippingMethodManager | ShippingMethodManager | Allows management of multiple shipping methods.
SimpleFindResultInfo | SimpleFindResultInfo | Allows the specification of search criteria when using the OrderGroup and OrderGroupManager objects.
SimpleFindSearchInfo | SimpleFindSearchInfo | Allows the specification of search criteria when performing search and delete operations by using the OrderGroup and OrderGroupManager objects.

Examples

Example | Description
Code to Create an Order | Describes how to create an order, instantiating and initializing the required objects.
Code to Add Address and Line Item Information to an Order | Describes how to create line items in an order and view the contents of the order.
Code to Save an Order to the Database | Describes how to save an order with a Template status to the database.
Code to Search for an Order and Display Line Item Information | Describes how to search the database for an order by using the SimpleFindSearchInfo and SimpleFindResultInfo objects.


Order Processing Programming Concepts

The following topics describe the business process objects provided in Commerce Server 2002.

OrderGroup, OrderForm, and OrderGroupManager Objects

The OrderGroup object is used in Commerce Server 2002 to store, access, and compute basket and order information for a site. The OrderGroupManager object works in conjunction with the OrderGroup object, providing search and other management operations for orders.

OrderGroup Structure

An OrderGroup object describes order information. It groups order forms, and provides aggregate operations and aggregate totals. The OrderGroup object links to one or more OrderForm objects, and to one or more Address dictionaries. The OrderForm object specifies header information for an order such as the shipping total, the tax total, and other data required to process the order. The OrderForm object references one or more Item dictionaries, which describe the specific products to be purchased. The Addresses dictionary specifies billing and shipping address information for purchase orders. Each OrderForm object typically specifies a billing_address_id value, and each line item specifies a shipping_address_id value.

The OrderGroup object often contains only one OrderForm object. However, when you want your users to purchase items from different suppliers, the multiple OrderForm object feature of the OrderGroup object enables you to retain distinctions between suppliers while allowing a unified shopping experience for the user.

The following objects commonly occur within the OrderGroup object:

  • Address dictionaries. These dictionaries specify billing and shipping information for purchase orders.
  • OrderForm objects. These objects specify the header information for an order form. An OrderForm object contains a SimpleList object called Items that contains the Item dictionaries holding line-item information.
  • Items SimpleList . The Items SimpleList objects contain the Item dictionaries.
  • Item dictionaries. These dictionaries specify the contents of the line items in an order form. An OrderForm object, representing the information used to process the order form, references zero or more Item dictionaries through the Items list.

OrderStatus Codes

The OrderGroup object represents a purchasing unit, and has a specific status. This status is stored in OrderGroup.value("order_status_code"), indicating whether the OrderGroup object represents a Basket (1), a Saved Order or Template (2), a New Order (4), and so on. New custom status codes can be created in Commerce Server Business Desk. They can indicate such OrderGroup object status values as Approved, Cancelled, and so on. The status codes for these values must be set to numbers that are powers of 2 (for example: 8, 16, 32). The following order status codes are defined:

  • Basket status. The Basket status indicates an OrderGroup object that is in the process of being assembled and reviewed before the order is submitted. This status code is 1.
  • Template status (Saved Order status). The purpose of the Template status is to facilitate repeat purchases, such as in a grocery store site where the same items are ordered week after week. This status is equivalent to the Saved Order status. This status code is 2.
  • New Order status. The New Order status indicates an order that has been submitted for further processing (usually by the user clicking the Submit Order button). This status code is 4.

Database Persistence

If the OrderGroup object has an order status code of Basket or Template, the entire structure is persisted in the BasketGroup table; persistence in one table enhances performance. If the OrderGroup object has an order status code other than Basket or Template, it is persisted in the OrderGroup, OrderFormHeader, OrderFormLineItems, and OrderGroupAddresses tables that are used to store OrderGroups, OrderForms, LineItems and Addresses, respectively. This multiple-table persistence provides the OrderGroupManager object with richer search capabilities.

The OrderGroup object uses the marshaled_data database column to persist key/value pairs that have keys that do not correspond to database column names.

No dictionary entry that has a key name that begins with the value of the SavePrefix property will be saved to the database.

Many pipeline keys are prefixed by the underscore character (_), which, by default, means they will not be persisted to the database. Occasionally, you might want to take snapshots of these keys, and by convention, the prefix "saved_" is used in this situation. By using the "saved_" prefix the pipeline keys can be referred to later and can be searched by using SQL statements or the OrderGroupManager object. Copied keys should not necessarily be trusted as being up-to-date. Also, copied keys should not be used by pipeline components directly.

To customize the way OrderGroup object information is stored to the database, use the DBStorage object. The DBStorage.CommitData and DBStorage.InsertData methods can store data from a specified object into the database in two ways:

  • First, if the DBStorage.InitStorage method specifies a vtMarshal parameter, then CommitData and InsertData serialize all the data in the object into binary form and store it into the database column specified by this parameter. (If this argument is not supplied, then no data is stored in serialized form.)
  • Second, if the names of any items in the object exactly match the names of columns in the database, then the data in these items is stored into the corresponding columns. For example, if the order form contains a value called ship_to_name, and if your database table contains a column named ship_to_name, the DBStorage object saves the value in the ship_to_name entry of the order form into that column.

If the vtMarshal parameter is specified and matching columns exist, then the corresponding data is stored both ways.


Auction Object [C++]

Auction Object [Visual Basic]

Use this object to provide auction capabilities to a site. This object enables a site to auction products, accept bids, and determine winners, using rules ranging from simple to sophisticated. Users can set reserve prices, minimum bids, start and end dates, bid increments, and resolve bid conflicts. Users can also notify auction participants of important news via DHTML, HTML, or e-mail at any interval.

The source code for this component is provided in the Commerce Server 2002 Software Development Kit. For more information about the auction component and the auction sitelet, see Auction Samples.

ProgID: | Commerce.Auction (Externally creatable)
COM Class Name: | Auction
COM Interface Name: | _Auction
Interface ID Constant: | None
Header File: | None
Type Library Name: | Commerce Server 4.0 Auction Component
DLL Name: | auction.dll
Threading Model: | Apartment
[C++]

In C++, use the _Auction interface to access the properties and methods of the Auction object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AuctionAddBid | Adds or updates a bid on an auction.
AuctionAddItem | Adds a new auction item to the Auction database.
AuctionBidNormalize | Normalizes a bid to the bid increment amount.
AuctionDeleteBid | Deletes a bid in an auction.
AuctionDeleteBids | Deletes all bids in a particular auction.
AuctionDeleteItem | Deletes an item and all bids on the item in a particular auction.
AuctionGetBid | Returns a rowset containing a bid from a specific user for a specific auction item.
AuctionGetBids | Returns a rowset containing all bids for an auction item.
AuctionGetItem | Returns a rowset for the item up for auction.
AuctionGetStatus | Returns a Dictionary object containing rowsets for the item up for auction.
AuctionInit | Initializes the Auction object.
AuctionRandomBids | Adds random bids to an auction to aid testing.
AuctionResolve | Resolves the auction based on the current settings and rules.
AuctionUpdateItem | Updates an auction item in the Auction database.
[Visual Basic]
Method | Description
AuctionAddBid | Adds or updates a bid on an auction.
AuctionAddItem | Adds a new auction item to the Auction database.
AuctionBidNormalize | Normalizes a bid to the bid increment amount.
AuctionDeleteBid | Deletes a bid in an auction.
AuctionDeleteBids | Deletes all bids in a particular auction.
AuctionDeleteItem | Deletes an item and all bids on the item in a particular auction.
AuctionGetBid | Returns a rowset containing a bid from a specific user for a specific auction item.
AuctionGetBids | Returns a rowset containing all bids for an auction item.
AuctionGetItem | Returns a rowset for the item up for auction.
AuctionGetStatus | Returns a Dictionary object containing rowsets for the item up for auction.
AuctionInit | Initializes the Auction object.
AuctionRandomBids | Adds random bids to an auction to aid testing.
AuctionResolve | Resolves the auction based on the current settings and rules.
AuctionUpdateItem | Updates an auction item in the Auction database.

Properties

[C++]
Property | Type | Description
AuctionID | BSTR | Stores the auction ID globally unique identifier (GUID). This property is read-only.
dtAMT | DATE | Stores the date/time stamp used by the auction engine. This property is read/write.
objMessageManager | IDispatch | Stores the MessageManager object used to generate error messages. This property is read/write.
szBidOrderBy | BSTR | Stores the sort string used to resolve ties. This property is read/write.
szBidTableName | BSTR | Stores the name of the Bid table in the database. This property is read/write.
szDSN | BSTR | Stores the connection string for the database. This property is read/write.
szItemTableName | BSTR | Stores the name of the Item table in the database. This property is read/write.
[Visual Basic]
Property | Type | Description
AuctionID | String | Stores the auction ID globally unique identifier (GUID). This property is read-only.
dtAMT | Date | Stores the date/time stamp used by the auction engine. This property is read/write.
objMessageManager | Object | Stores the MessageManager object used to generate error messages. This property is read/write.
szBidOrderBy | String | Stores the sort string used to resolve ties. This property is read/write.
szBidTableName | String | Stores the name of the Bid table in the database. This property is read/write.
szDSN | String | Stores the connection string for the database. This property is read/write.
szItemTableName | String | Stores the name of the Item table in the database. This property is read/write.

Remarks

The Auction object depends on the presence of the Item and Bid tables, stored in the site database, and a MessageManager object to hold the error messages. The tables must be created before using the Auction object for the first time. The MessageManager object must be properly initialized for the Auction object to pass error messages back to the user.

See Also

Auction Samples


_Auction Methods [C++]

Auction Methods [Visual Basic]

Methods

[C++]
Method | Description
AuctionAddBid | Adds or updates a bid on an auction.
AuctionAddItem | Adds a new auction item to the Auction database.
AuctionBidNormalize | Normalizes a bid to the bid increment amount.
AuctionDeleteBid | Deletes a bid in an auction.
AuctionDeleteBids | Deletes all bids in a particular auction.
AuctionDeleteItem | Deletes an item and all bids on the item in a particular auction.
AuctionGetBid | Returns a rowset containing a bid from a specific user for a specific auction item.
AuctionGetBids | Returns a rowset containing all bids for an auction item.
AuctionGetItem | Returns a rowset for the item up for auction.
AuctionGetStatus | Returns a Dictionary object containing rowsets for the item up for auction.
AuctionInit | Initializes the Auction object.
AuctionRandomBids | Adds random bids to an auction to aid testing.
AuctionResolve | Resolves the auction based on the current settings and rules.
AuctionUpdateItem | Updates an auction item in the Auction database.
[Visual Basic]
Method | Description
AuctionAddBid | Adds or updates a bid on an auction.
AuctionAddItem | Adds a new auction item to the Auction database.
AuctionBidNormalize | Normalizes a bid to the bid increment amount.
AuctionDeleteBid | Deletes a bid in an auction.
AuctionDeleteBids | Deletes all bids in a particular auction.
AuctionDeleteItem | Deletes an item and all bids on the item in a particular auction.
AuctionGetBid | Returns a rowset containing a bid from a specific user for a specific auction item.
AuctionGetBids | Returns a rowset containing all bids for an auction item.
AuctionGetItem | Returns a rowset for the item up for auction.
AuctionGetStatus | Returns a Dictionary object containing rowsets for the item up for auction.
AuctionInit | Initializes the Auction object.
AuctionRandomBids | Adds random bids to an auction to aid testing.
AuctionResolve | Resolves the auction based on the current settings and rules.
AuctionUpdateItem | Updates an auction item in the Auction database.


_Auction::AuctionAddBid Method [C++]

Auction.AuctionAddBid Method [Visual Basic]

Use this method to add or update a bid on an item. The bid is validated according to all the current rules for the auction.

Definition

[C++]
HRESULT _Auction::AuctionAddBid(
  BSTR szAuctionId,
  BSTR szShopperId,
  BSTR szBidName,
  BSTR szEmail,
  CURRENCY cyBidPrice,
  long nDesired,
  VARIANT_BOOL fTakeLess,
  CURRENCY cyMinimumBid,
  IDispatch* objErrorList,
  VARIANT_BOOL bResolve,
  long* plNumErrors
);
[Visual Basic]
Function AuctionAddBid(
  szAuctionId As String,
  szShopperId As String,
  szBidName As String,
  szEmail As String,
  cyBidPrice As Currency,
  nDesired As Long,
  fTakeLess As Boolean,
  cyMinimumBid As Currency,
  objErrorList As Object,
  Optional bResolve As Boolean
) As Long

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
szShopperId [C++]
[in] A BSTR that contains the unique ID of the bidder.
szShopperId [Visual Basic]
A String that contains the unique ID of the unique bidder.
szBidName [C++]
[in] A BSTR that contains the name of the bidder.
szBidName [Visual Basic]
A String that contains the name of the bidder.
szEmail [C++]
[in] A BSTR that contains the email address of the bidder.
szEmail [Visual Basic]
A String that contains the email address of the bidder.
cyBidPrice [C++]
[in] A CURRENCY that contains the bid amount.
cyBidPrice [Visual Basic]
A Currency that contains the bid amount.
nDesired [C++]
[in] A long that contains the number of wanted items.
nDesired [Visual Basic]
A Long that contains the number of wanted items.
fTakeLess [C++]
[in] A VARIANT_BOOL that indicates whether the bidder will take less than the wanted number of items. A value of True indicates the bidder will take less. A value of False indicates the bidder will not accept less than the wanted number of items.
fTakeLess [Visual Basic]
A Boolean that indicates whether the bidder will take less than the wanted number of items. A value of False indicates the bidder will not accept less than the wanted number of items.
cyMinimumBid [C++]
[in] A CURRENCY that contains the minimum bid.
cyMinimumBid [Visual Basic]
A Currency that contains the minimum bid.
objErrorList [C++]
[in] A pointer to the IDispatch interface of a SimpleList object that contains a list of errors generated by the MessageManager object.
objErrorList [Visual Basic]
A SimpleList object that contains a list of errors generated by the MessageManager object.
bResolve [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to call the AuctionResolve method. The default value of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method.
bResolve [Visual Basic]
A Boolean that indicates whether to call the AuctionResolve method. A value of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method. The default value is True.
plNumErrors [C++]
[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'lNumErrStrings is a Long
'szAuctionID is a String containing a GUID
'oErrorList is an object

lNumErrStrings = oAuction.AuctionAddBid(szAuctionID, "Bidder123456", szBidName, "Bidder123456@isp.com", 25.00, 5, FALSE, 19.99, oErrorList, TRUE)

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionAddItem Method [C++]

Auction.AuctionAddItem Method [Visual Basic]

Use this method to add a new item to the auction system.

Definition

[C++]
HRESULT _Auction::AuctionAddItem(
  BSTR szSKU,
  CURRENCY cyReservePrice,
  long nAvailable,
  CURRENCY cyBidIncrement,
  long nAuctionType,
  CURRENCY cyMinimumBid,
  VARIANT_BOOL fSealedBid,
  VARIANT_BOOL fSealedInventory,
  VARIANT_BOOL fActive,
  DATE dtStartDate,
  DATE dtEndDate,
  long nAutoCloseSeconds,
  IDispatch* objErrorList,
  long* plNumErrors
);
[Visual Basic]
Function AuctionAddItem(
  szSKU As String,
  cyReservePrice As Currency,
  nAvailable As Long,
  cyBidIncrement As Currency,
  nAuctionType As Long,
  cyMinimumBid As Currency,
  fSealedBid As Boolean,
  fSealedInventory As Boolean,
  fActive As Boolean,
  dtStartDate As Date,
  dtEndDate As Date,
  nAutoCloseSeconds As Long,
  objErrorList As Object
) As Long

Parameters

szSKU [C++]
[in] A BSTR that contains the unique ID for the item.
szSKU [Visual Basic]
A String that contains the unique ID for the item.
cyReservePrice [C++]
[in] A CURRENCY that contains the minimum price that the seller is willing to sell the item for. The reserve price must be greater than the minimum bid.
cyReservePrice [Visual Basic]
A Currency that contains the minimum price that the seller is willing to sell the item for. The reserve price must be greater than the minimum bid.
nAvailable [C++]
[in] A long that contains the number of items for sale.
nAvailable [Visual Basic]
A Long that contains the number of items for sale.
cyBidIncrement [C++]
[in] A CURRENCY that contains the amount a bid must be raised in order to bid on the item.
cyBidIncrement [Visual Basic]
A Currency that contains the amount a bid must be raised in order to bid on the item.
nAuctionType [C++]
[in] A long that contains the auction type. For more information, see the table in the Remarks section.
nAuctionType [Visual Basic]
A Long that contains the auction type. For more information, see the table in the Remarks section.
cyMinimumBid [C++]
[in] A CURRENCY that contains the minimum opening bid.
cyMinimumBid [Visual Basic]
A Currency that contains the minimum opening bid.
fSealedBid [C++]
[in] A VARIANT_BOOL that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check.
fSealedBid [Visual Basic]
A Boolean that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check.
fSealedInventory [C++]
[in] A VARIANT_BOOL that indicates whether to check the wanted number of items in a bid against the number of items available for sale. A value of False indicates to check the items. A value of True skips the check (the fTakeLess parameter in the bid is ignored).
fSealedInventory [Visual Basic]
A Boolean that indicates whether to check the wanted number of items in a bid against the number of items available for sale. A value of False indicates to check the items. A value of True skips the check (the fTakeLess parameter in the bid is ignored).
fActive [C++]
[in] A VARIANT_BOOL that indicates whether the auction is active. A value of True indicates an active auction. A value of False suspends bidding on the auction.
fActive [Visual Basic]
A Boolean that indicates whether the auction is active. A value of True indicates an active auction. A value of False suspends bidding on the auction.
dtStartDate [C++]
[in] A DATE that determines when bids will be accepted on the item.
dtStartDate [Visual Basic]
A Date that determines when bids will be accepted on the item.
dtEndDate [C++]
[in] A DATE that determines when the auction is closed and the items can be purchased.
dtEndDate [Visual Basic]
A Date that determines when the auction is closed and the items can be purchased.
nAutoCloseSeconds [C++]
[in] A long that indicates the number of seconds to wait after the last bid is received to close the auction. This can close an auction before the end date. A value of zero (0) indicates to ignore the time of the last bid and close the auction on the end date.
nAutoCloseSeconds [Visual Basic]
A Long that indicates the number of seconds to wait after the last bid is received to close the auction. This can close an auction before the end date. A value of zero (0) indicates to ignore the time of the last bid and close the auction on the end date.
objErrorList [C++]
[in] A pointer to the IDispatch interface that contains the error list.
objErrorList [Visual Basic]
An IDispatch interface that contains the error list.
plNumErrors [C++]
[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The auction type controls the method used to determine the winning bidder and the amount the winning bidder must pay. The following table describes the available auction types.

Auction Type | Value | Description | Example
Winning Price | 0 | Winning bidders receive the item they bid on for the amount bid. If there is more than one item, winning bidders receive the number requested at the amount they bid. | Two items are at auction. Bidder A bids $10.00, Bidder B bids $5.00, and Bidder C bids $3.00, and each bidder requests one item. Bidder A receives one item for $10.00 and Bidder B receives one item for $5.00. However, if Bidder A requested two items at $10.00 each, both items would be awarded to Bidder A.
Clear Price | 1 | Winning bidders receive the item they bid on for the lowest winning bid. | Same conditions as Winning Price auction type example. Bidder A and Bidder B each receive one item for $5.00.
Second Price | 2 | Winning bidders pay the lowest of the following: The highest losing bid plus the bid increment, the lowest winning bid, or the reserve price, assuming the number of bids above the reserve price is less than the number of available items. | Same conditions as Winning Price auction type example with a bid increment of $0.50. Bidder A and Bidder B each receive one item for $3.50.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'lNumErrStrings is a Long
'dtStartDate is a Date
'dtEndDate is a Date
'oErrors is a list object

lNumErrStrings = oAuction.AuctionAddItem("123456", 2.50, 2, 0.50, 1, 1.50, False, False, True, dtStartDate, dtEndDate, 0, oErrors)

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionBidNormalize Method [C++]

Auction.AuctionBidNormalize Method [Visual Basic]

Use this method to normalize a bid to a whole multiple of the bid increment.

Definition

[C++]
HRESULT _Auction::AuctionBidNormalize(
  CURRENCY cyBidAmount,
  CURRENCY cyBidIncrement,
  CURRENCY cyMinimumBid,
  CURRENCY* cyBidNormal
);
[Visual Basic]
Function AuctionBidNormalize(
  cyBidAmount As Currency,
  cyBidIncrement As Currency,
  cyMinimumBid As Currency
) As Currency

Parameters

cyBidAmount [C++]
[in] A CURRENCY that contains the bid amount.
cyBidAmount [Visual Basic]
A Currency that contains the bid amount.
cyBidIncrement [C++]
[in] A CURRENCY that contains the bid increment.
cyBidIncrement [Visual Basic]
A Currency that contains the bid increment.
cyMinimumBid [C++]
[in] A CURRENCY that contains the minimum bid allowed.
cyMinimumBid [Visual Basic]
A Currency that contains the minimum bid allowed.
cyBidNormal [C++]
[out, retval] A pointer to a CURRENCY used to return the normalized bid.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Currency that contains the normalized bid.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' currNormBid is a Currency, the bid amount is $10.50
currNormBid = oAuction.AuctionBidNormalize(10.50, 1.00, 8.00)
' After the call, currNormBid = 10.00

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionDeleteBid Method [C++]

Auction.AuctionDeleteBid Method [Visual Basic]

Use this method to deletes a bid placed on an item in an auction.

Definition

[C++]
HRESULT _Auction::AuctionDeleteBid(
  BSTR szAuctionId,
  BSTR szShopperId,
  VARIANT_BOOL bResolve,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionDeleteBid(
  szAuctionId As String,
  szShopperId As String,
  Optional bResolve As Boolean
) As Variant

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
szShopperId [C++]
[in] A BSTR that contains the unique ID of the bidder.
szShopperId [Visual Basic]
A String that contains the unique ID of the bidder.
bResolve [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to call the AuctionResolve method. The default value of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method.
bResolve [Visual Basic]
A Boolean that indicates whether to call the AuctionResolve method. A of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method. The default value is True.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'You can treat this function as a subroutine to ignore the return value.
oAuction.AuctionDeleteBid szAuctionId, szShopperId, bResolve

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionDeleteBids Method [C++]

Auction.AuctionDeleteBids Method [Visual Basic]

Use this method to delete all bids on an item made in an auction. The item remains in the auction database and new bids can be accepted.

Definition

[C++]
HRESULT _Auction::AuctionDeleteBids(
  BSTR szAuctionId,
  VARIANT_BOOL bResolve,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionDeleteBids(
  szAuctionId As String,
  Optional bResolve As Boolean
) As Variant

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
bResolve [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to call the AuctionResolve method. The default value of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method.
bResolve [Visual Basic]
A Boolean that indicates whether to call the AuctionResolve method. A value of True causes the method to be called with the bOptimize parameter of the method set to True. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method. The default value is True.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionDeleteItem Method [C++]

Auction.AuctionDeleteItem Method [Visual Basic]

Use this method to delete an item and all bids for the item from the auction database.

Definition

[C++]
HRESULT _Auction::AuctionDeleteItem(
  BSTR szAuctionId,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionDeleteItem(
  szAuctionId As String
) As Variant

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionGetBid Method [C++]

Auction.AuctionGetBid Method [Visual Basic]

Use this method to retrieve a bid from a specific bidder for a specific auction item.

Definition

[C++]
HRESULT _Auction::AuctionGetBid(
  BSTR szShopperId,
  BSTR szAuctionId,
  IDispatch** pprsBid
);
[Visual Basic]
Function AuctionGetBid(
  szShopperId As String,
  szAuctionId As String
) As Object

Parameters

szShopperId [C++]
[in] A BSTR that contains the unique ID of the bidder.
szShopperId [Visual Basic]
A String that contains the unique ID of the bidder.
szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
pprsBid [C++]
[out, retval] The address of a pointer to the IDispatch interface of an ADODB.Recordset object used to return the specified bid.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADODB.Recordset object that contains the specified bid.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsBid is a Recordset object
rsBid = oAuction.AuctionGetBid(szShopperId, szAuctionId)

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionGetBids Method [C++]

Auction.AuctionGetBids Method [Visual Basic]

Use this method to retrieve all the bids for the specified auction item.

Definition

[C++]
HRESULT _Auction::AuctionGetBids(
  BSTR szAuctionId,
  DATE dtSinceDate,
  IDispatch** rsBids
);
[Visual Basic]
Function AuctionGetBids(
  szAuctionId As String,
  Optional dtSinceDate As Date
) As Object

Parameters

szAuctionId [C++]
[in] A BSTR that contains the auction ID.
szAuctionId [Visual Basic]
A String that contains the auction ID.
dtSinceDate [C++]
[in, optional, defaultvalue (12:00:00 AM)] A DATE that specifies to return only those bids whose status have changed since the indicated date. Status changes are due to bid updates or calculated field updates. A value of NULL indicates to return all bids.
dtSinceDate [Visual Basic]
An optional Date that specifies to return only those bids whose status have changed since the indicated date. Status changes are due to bid updates or calculated field updates. A value of NULL indicates to return all bids.
rsBids [C++]
[out, retval] The address of a pointer to the IDispatch interface of the ADODB.Recordset object used to return the specified bids.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADODB.Recordset object that contains the specified bids.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' rsBids is a Recordset object
rsBids = oAuction.AuctionGetBids(szAuctionId, dtSinceDate)

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionGetItem Method [C++]

Auction.AuctionGetItem Method [Visual Basic]

Use this method to retrieve an item up for auction.

Definition

[C++]
HRESULT _Auction::AuctionGetItem(
  BSTR szAuctionId,
  IDispatch** rsItem
);
[Visual Basic]
Function AuctionGetItem(
  szAuctionId As String
) As Object

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
rsItem [C++]
[out, retval] The address of a pointer to the IDispatch interface of the ADODB.Recordset object used to return the specified item.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADODB.Recordset Object that contains the specified item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionGetStatus Method [C++]

Auction.AuctionGetStatus Method [Visual Basic]

Use this method to retrieve a Dictionary object containing information for the item up for auction and the bids on the item.

Definition

[C++]
HRESULT _Auction::AuctionGetStatus(
  BSTR szAuctionId,
  IDispatch** dictStatus
);
[Visual Basic]
Function AuctionGetStatus(
  szAuctionId As String
) As Object

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
dictStatus [C++]
[out, retval] The address of a pointer to the IDispatch interface of a Dictionary object used to return the specified item along with the bids on the item.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Dictionary object that contains the specified item along with the bids on the item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Dictonary object contains two Recordset objects, rsAuctionItem and rsAuctionBids.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionInit Method [C++]

Auction.AuctionInit Method [Visual Basic]

Use this method to initialize the Auction object.

Definition

[C++]
HRESULT _Auction::AuctionInit(
  BSTR szDSN,
  BSTR szItemTableName,
  BSTR szBidTableName,
  BSTR szBidOrderBy,
  IDispatch* objMessageManager,
  BSTR szLanguage,
  DATE dtAMT,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionInit(
  szDSN As String,
  szItemTableName As String,
  szBidTableName As String,
  szBidOrderBy As String,
  objMessageManager As Object,
  szLanguage As String,
  dtAMT As Date
) As Variant

Parameters

szDSN [C++]
[in] A BSTR that contains the connection string to the database containing the Bid and Item tables.
szDSN [Visual Basic]
A String that contains the connection string to the database containing the Bid and Item tables.
szItemTableName [C++]
[in] A BSTR that contains the Item table name.
szItemTableName [Visual Basic]
A String that contains the Item table name.
szBidTableName [C++]
[in] A BSTR that contains the Bid table name.
szBidTableName [Visual Basic]
A String that contains the Bid table name.
szBidOrderBy [C++]
[in] A BSTR that contains the default bid sort order (SQL ORDER BY clause).
szBidOrderBy [Visual Basic]
A String that contains the default bid sort order (SQL ORDER BY clause).
objMessageManager [C++]
[in] A pointer to the IDispatch interface of a MessageManager object.
objMessageManager [Visual Basic]
A MessageManager object.
szLanguage [C++]
[in] A BSTR that contains the language used by the MessageManager object.
szLanguage [Visual Basic]
A String that contains the language used by the MessageManager object.
dtAMT [C++]
[in] A DATE that contains a timestamp.
dtAMT [Visual Basic]
A Date that contains a timestamp.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'szDSN = _
'AppConfig.GetOptionsDictionary("").s_TransactionsConnectionString
'objMessageManager is the MessageManager object stored at application
'scope.
'dtAMT is a timestamp.
'Ignore return value by treating AuctionInit as a subroutine.
oAuction.AuctionInit szDSN, "AuctionItem", "AuctionBid", "modified_date", objMessageManager, "English", dtAMT

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionRandomBids Method [C++]

Auction.AuctionRandomBids Method [Visual Basic]

Use this method to enter random bids into an auction for testing or demonstration purposes.

Definition

[C++]
HRESULT _Auction::AuctionRandomBids(
  BSTR szAuctionId,
  VARIANT_BOOL fDelete,
  long nNumberBids,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionRandomBids(
  szAuctionId As String,
  fDelete As Boolean,
  nNumberBids As Long
) As Variant

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
fDelete [C++]
[in] A VARIANT_BOOL that indicates whether to delete previous random bids before adding the new bids. A value of True specifies to delete the bids. A value of False specifies to save the bids.
fDelete [Visual Basic]
A Boolean that indicates whether to delete previous random bids before adding the new bids. A value of True specifies to delete the bids. A value of False specifies to save the bids.
nNumberBids [C++]
[in] A long that contains the number of random bids to add.
nNumberBids [Visual Basic]
A Long that contains the number of random bids to add.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Random bids are entered under the bidder name "Random." The bids are at least the minimum bid and ask for a number of items between one and the number available.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'szAuctionId is a GUID
oAuction.AuctionRandomBids szAuctionId, FALSE, 25

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionResolve Method [C++]

Auction.AuctionResolve Method [Visual Basic]

Use this method to run the auction engine and determine the status of the auction. It updates computed values in both the Item and Bid tables.

Definition

[C++]
HRESULT _Auction::AuctionResolve(
  BSTR szAuctionId,
  VARIANT_BOOL bOptimize,
  VARIANT* unnamed parameter
);
[Visual Basic]
Function AuctionResolve(
  szAuctionId As String,
  Optional bOptimize As Boolean
) As Variant

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
bOptimize [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that determines when to stop searching for a winning bid. The default value of True indicates to cease checking for winning bids once a winner has been selected. A value of False indicates to search all records in the database in order to look for winning bids.
bOptimize [Visual Basic]
An optional Boolean that determines when to stop searching for a winning bid. A value of True indicates to cease checking for winning bids once a winner has been selected. A value of False indicates to search all records in the database in order to look for winning bids. The default value is True.
unnamed parameter [C++]
[out, retval] Reserved for future use.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] The return value is reserved for future use. Ignore the return value.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::AuctionUpdateItem Method [C++]

Auction.AuctionUpdateItem Method [Visual Basic]

Use this method to update an existing item in the auction system.

Definition

[C++]
HRESULT _Auction::AuctionUpdateItem(
  BSTR szAuctionId,
  BSTR szSKU,
  CURRENCY cyReservePrice,
  long nAvailable,
  CURRENCY cyBidIncrement,
  long nAuctionType,
  CURRENCY cyMinimumBid,
  VARIANT_BOOL fSealedBid,
  VARIANT_BOOL fSealedInventory,
  VARIANT_BOOL fActive,
  DATE dtStartDate,
  DATE dtEndDate,
  long nAutoCloseSeconds,
  IDispatch* objErrorList,
  VARIANT_BOOL bResolve,
  long* plNumErrors
);
[Visual Basic]
Function AuctionUpdateItem(
  szAuctionId As String,
  szSKU As String,
  cyReservePrice As Currency,
  nAvailable As Long,
  cyBidIncrement As Currency,
  nAuctionType As Long,
  cyMinimumBid As Currency,
  fSealedBid As Boolean,
  fSealedInventory As Boolean,
  fActive As Boolean,
  dtStartDate As Date,
  dtEndDate As Date,
  nAutoCloseSeconds As Long,
  objErrorList As Object,
  Optional bResolve As Boolean
) As Long

Parameters

szAuctionId [C++]
[in] A BSTR that contains the unique auction ID.
szAuctionId [Visual Basic]
A String that contains the unique auction ID.
szSKU [C++]
[in] A BSTR that contains the unique ID for the item.
szSKU [Visual Basic]
A String that contains the unique ID for the item.
cyReservePrice [C++]
[in] A CURRENCY that contains the minimum price the seller is willing to sell the item for. The reserve price must be greater than the minimum bid.
cyReservePrice [Visual Basic]
A Currency that contains the minimum price the seller is willing to sell the item for. The reserve price must be greater than the minimum bid.
nAvailable [C++]
[in] A long that contains the number of items for sale.
nAvailable [Visual Basic]
A Long that contains the number of items for sale.
cyBidIncrement [C++]
[in] A CURRENCY that contains the amount a bid must be raised in order to bid on the item.
cyBidIncrement [Visual Basic]
A Currency that contains the amount a bid must be raised in order to bid on the item.
nAuctionType [C++]
[in] A long that contains the auction type. For more information, see the Remarks section.
nAuctionType [Visual Basic]
A Long that contains the auction type. For more information, see the Remarks section.
cyMinimumBid [C++]
[in] A CURRENCY that contains the minimum opening bid.
cyMinimumBid [Visual Basic]
A Currency that contains the minimum opening bid.
fSealedBid [C++]
[in] A VARIANT_BOOL that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check. A value of False checks against the minimum bid.
fSealedBid [Visual Basic]
A Boolean that indicates whether to check a bid against the minimum bid. A value of True skips the minimum bid check. A value of False checks against the minimum bid.
fSealedInventory [C++]
[in] A VARIANT_BOOL that indicates whether to check the wanted number of items in a bid against the number of items available for sale. A value of True skips the check (the fTakeLess parameter in the bid is ignored). A value of False checks against the available items.
fSealedInventory [Visual Basic]
A Boolean that indicates whether to check the wanted number of items in a bid against the number of items available for sale. A value of True skips the check (the fTakeLess parameter in the bid is ignored). A value of False checks against the available items.
fActive [C++]
[in] A VARIANT_BOOL that indicates whether the auction is active. A value of True indicates the auction is active. A value of False suspends bidding on the auction.
fActive [Visual Basic]
A Boolean that indicates whether the auction is active. A value of True indicates the auction is active. A value of False suspends bidding on the auction.
dtStartDate [C++]
[in] A DATE that determines when bids will be accepted on the item.
dtStartDate [Visual Basic]
A Date that determines when bids will be accepted on the item.
dtEndDate [C++]
[in] A DATE that determines when the auction is closed and the items can be purchased.
dtEndDate [Visual Basic]
A Date that determines when the auction is closed and the items can be purchased.
nAutoCloseSeconds [C++]
[in] A long that indicates the number of seconds to wait after the last bid is received to close the auction. This can close an auction before the end date. A value of zero (0) indicates to ignore the time of the last bid and close the auction on the end date.
nAutoCloseSeconds [Visual Basic]
A Long that indicates the number of seconds to wait after the last bid is received to close the auction. This can close an auction before the end date. A value of zero (0) indicates to ignore the time of the last bid and close the auction on the end date.
objErrorList [C++]
[in] A pointer to the IDispatch interface that contains the error list.
objErrorList [Visual Basic]
An IDispatch interface that contains the error list.
bResolve [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to call the AuctionResolve method. The default value of True causes the method to be called with the bOptimize parameter of the method set to False. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method.
bResolve [Visual Basic]
A Boolean that indicates whether to call the AuctionResolve method. A value of True causes the method to be called with the bOptimize parameter of the method set to False. A value of False causes the Auction object to skip the automatic call to the AuctionResolve method. The default value is True.
plNumErrors [C++]
[out, retval] A pointer to a long used to return the number of error strings written to the objErrorList object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the number of error strings written to the objErrorList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The auction type controls the method used to determine the winning bidder and the amount the winning bidder must pay. The following table describes the available auction types.

Auction Type | Value | Description | Example
Winning Price | 0 | Winning bidders receive the item they bid on for the amount bid. If there is more than one item, winning bidders receive the number requested at the amount they bid. | Two items are at auction. Bidder A bids $10.00, Bidder B bids $5.00, and Bidder C bids $3.00, and each bidder requests one item. Bidder A receives one item for $10.00 and Bidder B receives one item for $5.00. However, if Bidder A requested two items at $10.00 each, both items would be awarded to Bidder A.
Clear Price | 1 | Winning bidders receive the item they bid on for the lowest winning bid. | Same conditions as Winning Price auction type example. Bidder A and Bidder B each receive one item for $5.00.
Second Price | 2 | Winning bidders pay the lowest of the following: The highest losing bid plus the bid increment, the lowest winning bid, or the reserve price, assuming the number of bids above the reserve price is less than the number of available items. | Same conditions as Winning Price auction type example with a bid increment of $0.50. Bidder A and Bidder B each receive one item for $3.50.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' lNumErrStrings is a Long
lNumErrStrings = oAuction.AuctionUpdateItem(szAuctionId, szSKU, cyReservePrice, nAvailable, cyBidIncrement, nAuctionType, cyMinimumBid, fSealedBid, fSealedInventory, fActive, dtStartDate, dtEndDate, nAutoCloseSeconds, objErrorList, bResolve)

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction Properties [C++]

Auction Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
AuctionID | BSTR | Stores the auction ID globally unique identifier (GUID). This property is read-only.
dtAMT | DATE | Stores the date/time stamp used by the auction engine. This property is read/write.
objMessageManager | IDispatch | Stores the MessageManager object used to generate error messages. This property is read/write.
SzBidOrderBy | BSTR | Stores the sort string used to resolve ties. This property is read/write.
szBidTableName | BSTR | Stores the name of the Bid table in the database. This property is read/write.
szDSN | BSTR | Stores the connection string for the database. This property is read/write.
szItemTableName | BSTR | Stores the name of the Item table in the database. This property is read/write.
[Visual Basic]
Property | Type | Description
AuctionID | String | Stores the auction ID globally unique identifier (GUID). This property is read-only.
dtAMT | Date | Stores the date/time stamp used by the auction engine. This property is read/write.
objMessageManager | Object | Stores the MessageManager object used to generate error messages. This property is read/write.
szBidOrderBy | String | Stores the sort string used to resolve ties. This property is read/write.
szBidTableName | String | Stores the name of the Bid table in the database. This property is read/write.
szDSN | String | Stores the connection string for the database. This property is read/write.
szItemTableName | String | Stores the name of the Item table in the database. This property is read/write.


_Auction::get_AuctionID Property [C++]

Auction.AuctionID Property [Visual Basic]

The AuctionID property is a read-only String that contains a globally unique identifier (GUID) that uniquely identifies the Auction object.

Definition

[C++]
HRESULT _Auction::get_AuctionID(
  BSTR* AuctionID
);
[Visual Basic]
Property AuctionID() As String

Parameters

AuctionID [C++]
[out, retval] A BSTR used to return the auction ID, a GUID.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_dtAMT, put_dtAMT Property [C++]

Auction.dtAMT Property [Visual Basic]

The dtAMT property is a read/write DATE value used to timestamp auction actions.

Definition

[C++]

Get method:

HRESULT _Auction::get_dtAMT(
  DATE* dtAMT
);

Put method:

HRESULT _Auction::put_dtAMT(
  DATE dtAMT
);
[Visual Basic]
Property dtAMT() As Date

Parameters

dtAMT [C++]
[in] When putting the property, a DATE that contains the time stamp.
[out, retval] When getting the property, a pointer to a DATE used to return the time stamp.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_objMessageManager, put_objMessageManagerProperty [C++]

Auction.objMessageManager [Visual Basic]

The objMessageManager property is a read/write MessageManager object used to return error messages to the bidder.

Definition

[C++]

Get method:

HRESULT _Auction::get_objMessageManager(
  IDispatch** objMessageManager
);

Put method:

HRESULT _Auction::put_objMessageManager(
  IDispatch* objMessageManager
);
[Visual Basic]
Property objMessageManager() As Object

Parameters

objMessageManager [C++]
[in] When putting the property, a pointer to the IDispatch interface of a MessageManager object.
[out, retval] When getting the property, the address of a pointer to the IDispatch interface of a MessageManager object.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_szBidOrderBy, put_szBidOrderBy Property C++]

Auction.szBidOrderBy Property [Visual Basic]

The szBidOrderBy property is a read/write String used to resolve ties.

Definition

[C++]

Get method:

HRESULT _Auction::get_szBidOrderBy(
  BSTR* szBidOrderBy
);

Put method:

HRESULT _Auction::put_szBidOrderBy(
  BSTR szBidOrderBy
);
[Visual Basic]
Property szBidOrderBy() As String

Parameters

szBidOrderBy [C++]
[in] When putting the property, a BSTR that contains a comma-separated list of the fields used as criteria for selecting the auction winners.
[out, retval] When getting the property, a pointer to a BSTR used to return a comma-separated list of the fields used as criteria for selecting the auction winners.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This string contains the fields (from the Bid table) used as criteria for selecting the auction winners when equal amounts are bid for an item. The string is added to the ORDER BY clause of a SQL string passed to the database for selecting the winners. The default string is "desired, modified_date". This means if two bidders bid the same amount, the bidder requesting more items wins. If still tied, the bidder placing the earliest bid wins.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_szBidTableName, put_szBidTableName Property [C++]

Auction.szBidTableName Property [Visual Basic]

The szBidTableName property is a read/write String used to store the name of the Bid table in the database.

Definition

[C++]

Get method:

HRESULT _Auction::get_szBidTableName(
  BSTR* szBidTableName
);

Put method:

HRESULT _Auction::put_szBidTableName(
  BSTR szBidTableName
);
[Visual Basic]
Property szBidTableName() As String

Parameters

szBidTableName [C++]
[in] When putting the property, a BSTR that contains the Bid table name.
[out, retval] When getting the property, a pointer to a BSTR used to return the Bid table name.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Bid table contains information about bids placed on auction items. The default name for this table in the site database is Auction_bid.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_szDSN, put_szDSN Property [C++]

Auction.szDSN Property [Visual Basic]

The szDSN property is a read/write String used to store the connection string for the database.

Definition

[C++]

Get method:

HRESULT _Auction::get_szDSN(
  BSTR* szDSN
);

Put method:

HRESULT _Auction::put_szDSN(
  BSTR szDSN
);
[Visual Basic]
Property szDSN() As String

Parameters

szDSN [C++]
[in] When putting the property, a BSTR that contains the connection string.
[out, retval] When getting the property, a pointer to a BSTR used to return the connection string.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The connection string defaults to an empty string and must be set before the Auction object can be used.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


_Auction::get_szItemTableName, put_szItemTableName Property [C++]

Auction.szItemTableName Property [Visual Basic]

The szItemTableName property is a read/write String used to store the name of the Item table in the database.

Definition

[C++]

Get method:

HRESULT _Auction::get_szItemTableName(
  BSTR* szItemTableName
);

Put method:

HRESULT _Auction::put_szItemTableName(
  BSTR szItemTableName
);
[Visual Basic]
Property szItemTableName() As String

Parameters

szItemTableName [C++]
[in] When putting the property, a BSTR that contains the Item table name.
[out, retval] When getting the property, a pointer to a BSTR used to return the Item table name.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Item table contains information about items available for auction. The default name of this table in the site database is Auction_item.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Auction Object

[Visual Basic] Auction Object

Auction Samples


OrderForm Object [C++]

OrderForm Object [Visual Basic]

The OrderForm object provides for the in-memory storage of user and purchase information. Commerce Server 2002 Enterprise Editon (EE) sites use the OrderForm object to store the items that a user has chosen to purchase, and to store receipt information that reflects the purchase history for a given user.

ProgID: | Commerce.OrderForm (Externally creatable)
COM Class Name: | COrderForm
Type Library Name: | Microsoft Commerce 2002 Core Components Type Library
DLL Name: | MscsCore.dll
Threading Model: | Both
[C++]
COM Interface Name: | IOrderForm
Interface ID Constant: | IID_IOrderForm
Header File: | commerce.h, mspu_guids.h
[C++]

In C++, use the IOrderForm interface to access the properties and methods of the OrderForm object.

Methods

[C++]
Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.
[Visual Basic]
Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.

Remarks

The OrderForm object is defined internally as a structured group of SimpleList and Dictionary objects, and includes the methods required to add items, clear items, and clear the entire OrderForm object itself.

The base of the OrderForm object is a Dictionary object, which contains information that describes the entire order. This includes user information, such as the shopper ID, name, and address, as well as order cost information, such as purchase subtotal, tax, shipping, and total.

The OrderForm object does not directly support storage of its data on disk. The DBStorage and OrderGroupManager objects enable persistent storage of OrderForm object data.

A number of the elements in the base Dictionary object of the OrderForm object include underscore (_) characters. The appearance of an underscore character in an element name indicates that these items are not saved to the OrderForm storage for the site. These elements are saved instead to the receipt storage of the site when the purchase is finalized.

See Also

[C++] Business Process Objects

[C++] OrderGroup Object

[C++] OrderGroupManager Object

[C++] SimpleFindSearchInfo Object

[C++] SimpleFindResultInfo Object

[Visual Basic] Business Process Objects

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroupManager Object

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] SimpleFindResultInfo Object


IOrderForm Methods [C++]

IOrderForm Methods [Visual Basic]

Methods

[C++]
Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.
[Visual Basic]
Method | Description
AddItem | Adds the specified item to the items collection of the object.
ClearItems | Clears the items collection of the object.
ClearOrderForm | Clears the entire OrderForm object.


IOrderForm::AddItem Method [C++]

OrderForm.AddItem Method [Visual Basic]

Use this method to add the specified item to the items collection of an OrderForm object. The items collection is a SimpleList object containing Dictionary objects.

Definition

[C++]
HRESULT IOrderForm::AddItem(
  VARIANT varSKU,
  long lCount,
  long lPlacedPrice,
  IDispatch** ppdispItem
);
[Visual Basic]
Function AddItem(
  varSKU As Variant,
  lCount As Long,
  lPlacedPrice As Long
) As Object

Parameters

varSKU [C++]
[in] A VARIANT that contains the stock-keeping unit (SKU) of the item to add.
varSKU [Visual Basic]
A Variant that contains the SKU of the item to add.
lCount [C++]
[in] A long that contains the item count.
lCount [Visual Basic]
A Long that contains the item count.
lPlacedPrice [C++]
[in] A long that contains the placed price of the item.
lPlacedPrice [Visual Basic]
A Long that is reserved for future use. This parameter must be set to 0 (zero).
ppdispItem [C++]
[out, retval] The address of a pointer to receive an IDispatch interface to the Dictionary object used to return the added item; if the method does not complete successfully, this parameter will be NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an object reference that holds the Dictionary object that contains the added item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppdispItem parameter contains valid data only if the method returns successfully; otherwise, it returns NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Order is a Commerce.OrderForm object; a quantity of 5 is
' being added of the product whose SKU is SKUnumber.
Order.AddItem("SKUnumber", 5,0)

See Also

[C++] OrderForm Object

[C++] IOrderForm::ClearItems

[C++] IOrderForm::ClearOrderForm

[Visual Basic] OrderForm Object

[Visual Basic] OrderForm.ClearItems

[Visual Basic] OrderForm.ClearOrderForm


IOrderForm::ClearItems Method [C++]

OrderForm.ClearItems Method [Visual Basic]

Use this method to clear the items collection of the OrderForm object.

Definition

[C++]
HRESULT IOrderForm::ClearItems(
);
[Visual Basic]
Sub ClearItems()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A site uses the ClearItems method to respond to a user choosing to cancel a purchase. This method affects only the information in the items collection. Other OrderForm object information, such as _oadjust_subtotal and _total_total, is modified only if you run the Order Processing Pipeline (OPP) on this OrderForm object.

To empty the entire contents of the OrderForm object, call the ClearOrderForm method.

See Also

[C++] OrderForm Object

[C++] IOrderForm::AddItem

[C++] IOrderForm::ClearOrderForm

[Visual Basic] OrderForm Object

[Visual Basic] OrderForm.AddItem

[Visual Basic] OrderForm.ClearOrderForm


IOrderForm::ClearOrderForm Method [C++]

OrderForm.ClearOrderForm Method [Visual Basic]

Use this method to clear the entire OrderForm object.

Definition

[C++]
HRESULT IOrderForm::ClearOrderForm(
);
[Visual Basic]
Sub ClearOrderForm()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] OrderForm Object

[C++] IOrderForm::AddItem

[C++] IOrderForm::ClearItems

[Visual Basic] OrderForm Object

[Visual Basic] OrderForm.AddItem

[Visual Basic] OrderForm.ClearItems


OrderGroup Object [C++]

OrderGroup Object [Visual Basic]

The OrderGroup object is used in Commerce Server 2002 to store, access, and compute basket and order information for a site. The OrderGroupManager object works in conjunction with the OrderGroup object, providing search and other management operations for orders.

ProgID: | Commerce.OrderGroup (Externally creatable)
COM Class Name: | OrderGroup
Type Library Name: | Microsoft Commerce 2002 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _OrderGroup
Interface ID Constant: | None
Header File: | None

Methods

[C++]
Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group template to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadBasket | Loads the basket for the current user from the database.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the pipeline component file on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.
[Visual Basic]
Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
LoadBasket | Loads the basket for the current user from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the pipeline component file on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.

Properties

[C++]
Property | Type | Description
LogFile | BSTR | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | BSTR | Specifies a key prefix that will prevent a dictionary entry from being saved to the database.
Value | VARIANT | Returns the OrderGroup object attributes.This property is read-only.
[Visual Basic]
Property | Type | Description
LogFile | String | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | String | Specifies a key prefix that will prevent a dictionary entry from being saved to the database.
Value | Variant | Returns the OrderGroup object attributes. This property is read-only.

Remarks

The OrderGroup object supports the IPersistXML interface. Use the IPersistXML interface to convert the Dictionary entries into an XML string and back again. For more information about the IPersistXML interface, see IPersistXML Interface.

See Also

[C++] Business Process Objects

[C++] OrderGroupManager Object

[C++] OrderForm Object

[C++] SimpleFindSearchInfo Object

[C++] SimpleFindResultInfo Object

[Visual Basic] Business Process Objects

[Visual Basic] OrderGroupManager Object

[Visual Basic] OrderForm Object

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] SimpleFindResultInfo Object


_OrderGroup Methods [C++]

OrderGroup Methods [Visual Basic]

Methods

[C++]
Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group template to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadBasket | Loads the basket for the current user from the database.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the pipeline component file on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.
[Visual Basic]
Method | Description
AddItem | Adds an item to the specified OrderForm object.
AddItemsFromTemplate | Adds the line items associated with an on-disk order group to the current OrderGroup object.
AddOrderform | Adds an OrderForm object with all of its contents to the OrderGroup object.
AddXMLAsOrderForm | Converts an XML string to an OrderForm object and adds it to the OrderGroup object.
AggregateOrderFormValues | Iterates across all OrderForm objects, computes a total of the specified key, then stores the total at the OrderGroup object level.
Clear | Clears the OrderGroup object of all OrderForm objects.
GetAddress | Gets the specified address dictionary object.
GetItemInfo | Gets a reference to the line item dictionary from the specified OrderForm object at the specified index.
GetOrderFormAsXML | Converts an OrderForm object into an XML string.
GetOrderFormValue | Gets the OrderForm object value specified by the supplied OrderForm key.
Initialize | Initializes the OrderGroup object.
LoadOrder | Loads the specified OrderGroup object from the database.
LoadTemplate | Loads the specified template from the database.
LoadBasket | Loads the basket for the current user from the database.
PurgeUnreferencedAddresses | Removes all addresses in the OrderGroup object that are not being referenced by any line item shipping address.
PutItemValue | Puts the specified values into the specified keys of the line item.
PutOrderFormValue | Puts the specified values into the specified keys of the OrderForm object.
RemoveItem | Removes a line item from the specified OrderForm object. The item index specified indicates which line item to remove.
RemoveOrderForm | Removes the specified OrderForm object from the OrderGroup object.
RunPipe | Runs the pipeline component file on each OrderForm object in the OrderGroup object.
SaveAsBasket | Saves the OrderGroup object to the database with a basket status.
SaveAsOrder | Saves the OrderGroup object to the database with an order status.
SaveAsTemplate | Saves the OrderGroup object to the database with a template status.
SetAddress | Sets the OrderGroup object address dictionary values as specified by the address dictionary object supplied.
SetAddressFromFields | Sets the OrderGroup object address dictionary values as specified by the fields object supplied.
SetShippingAddress | Sets the shipping address to that referenced by the database address ID supplied.


_OrderGroup::AddItem Method [C++]

OrderGroup.AddItem Method [Visual Basic]

Use this method to add a line item to the specified OrderForm object.

This method adds a line-item dictionary to the given OrderForm (the strOrderFormName parameter). If the strOrderFormName is not supplied, the parameter strOrderFormName defaults to "default"; if "default" does not exist, it is created. This method also increments the aggregated quantity total at the OrderGroup and OrderForm level.

Definition

[C++]
HRESULT _OrderGroup::AddItem(
  IDictionary* dictItem,
  VARIANT strOrderFormName,
  long* lpRetVal
);
[Visual Basic]
Function AddItem(
  dictItem As Object,
  Optional strOrderFormName As Variant
) As Long

Parameters

dictItem [C++]
[in] A pointer to the IDictionary interface that contains the line item information.
dictItem [Visual Basic]
A Dictionary object that contains the line-item information.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the name of the OrderForm to add the item to. Depending on how a site is structured, you may choose to specify the vendor name of the item as the strOrderFormName. (This will result in items from different vendors being added to different OrderForms.)
strOrderFormName [Visual Basic]
A Variant that specifies the name of the OrderForm to add the item to. Depending on how a site is structured, you may choose to specify the vendor name of the item as the strOrderFormName. (This will result in items from different vendors being added to different OrderForms).
lpRetVal [C++]
[out, retval] A pointer to a long used to return the index at which the item was added.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that specifies the index at which the item was added.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The lpRetVal parameter points to valid data only if the method completed successfully.

Note

  • Each line item that is added should contain a quantity.
  • If you are using the QueryCatalogInfo component in your pipeline, you will also need:
    • product_catalog
    • product_id
    • product_variant_id (if this is a product variant)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dDict is a Dictionary object
' lLineItemIndex is a Long
' sMyOrder is a String
' oOrderGroup is a Commerce.OrderGroup object
lLineItemIndex = oOrderGroup.AddItem(dDict, sMyOrder)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::RemoveItem

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.RemoveItem


_OrderGroup::AddItemsFromTemplate Method [C++]

OrderGroup.AddItemsFromTemplate Method [Visual Basic]

Use this method to add the line items associated with an on-disk OrderGroup to the current OrderGroup object.

This method iterates across all the OrderForms in the specified template and adds them to the current OrderGroup. If the OrderForms being added already exist, the line items on the template OrderGroup are simply added. When non-existing OrderForms are encountered, the method will add the OrderForm in its entirety to the OrderGroup including OrderForm-level dictionary values.

The OrderGroup keeps a counter of total line items at OrderForm and OrderGroup levels. For the OrderGroup level, it keeps track of the number of line items in all the OrderForms. This value is held under the key "total_lineitems".

Definition

[C++]
HRESULT _OrderGroup::AddItemsFromTemplate(
  BSTR OrderGroupID
);
[Visual Basic]
Sub AddItemsFromTemplate(
  OrderGroupID As String
)

Parameters

OrderGroupID [C++]
[in] A BSTR that specifies the OrderGroup ID for the template.
OrderGroupID [Visual Basic]
A String that specifies the OrderGroup ID for the template.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Note

  • It is the responsibility of the application to implement security. This method does not check that the user ID of the template is the same as the user ID specified in the initialization call.

This method also works on previously submitted orders and baskets, as well as OrderGroups with Template (Saved Order) status.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' myOGID is a GUID String
myOGID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oOrderGroup.AddItemsFromTemplate(myOGID)

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::AddOrderform Method [C++]

OrderGroup.AddOrderform Method [Visual Basic]

Use this method to add an OrderForm with all of its contents to the OrderGroup object.

If the strOrderFormName is not supplied, it defaults to "default".

Definition

[C++]
HRESULT _OrderGroup::AddOrderform(
  IDictionary* orderform,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub AddOrderform(
  orderform As Object,
  Optional strOrderFormName As Variant
)

Parameters

orderform [C++]
[in] A pointer to the IDictionary interface that contains the OrderForm object that will be added.
orderform [Visual Basic]
A Dictionary object that contains the OrderForm object that will be added.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dOrderForm is a Dictionary object
' sMyOrderName is a string
' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.AddOrderform(dOrderForm,sMyOrderName)

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::AddXMLAsOrderForm Method [C++]

OrderGroup.AddXMLAsOrderForm Method [Visual Basic]

Use this method to add items previously saved as XML (by using the GetOrderformAsXML method) back into an OrderGroup.

Definition

[C++]
HRESULT _OrderGroup::AddXMLAsOrderForm(
  BSTR strXML,
  BSTR nXMLLocale,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub AddXMLAsOrderForm(
  strXML As String,
  nXMLLocale As String,
  Optional strOrderFormName As Variant
)

Parameters

strXML [C++]
[in] A BSTR that specifies the XML string containing the line items to add.
strXML [Visual Basic]
A String that specifies the XML string containing the line items to add.
nXMLLocale [C++]
[in] A BSTR that specifies the locale to use in the XML string conversion.
nXMLLocale [Visual Basic]
A String that specifies the locale to use in the XML string conversion.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name to add.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name to add.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Note

  • Use of the DictionaryXMLTransforms object is recommended when exchanging XML via BizTalk Server. DictionaryXMLTransforms allows you to write out XML to a well-defined schema.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' sXMLString is an string containing order-form data
' lLocale is a long specifying the locale to use in conversion
oOrderGroup.AddXMLAsOrderForm(sXMLString, lLocale)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::GetOrderFormAsXML

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.GetOrderFormAsXML


_OrderGroup::AggregateOrderFormValues Method [C++]

OrderGroup.AggregateOrderFormValues Method [Visual Basic]

Use this method to iterate across all OrderForms, compute a total of the specified key, and store the total at the OrderGroup level.

Definition

[C++]
HRESULT _OrderGroup::AggregateOrderFormValues(
  BSTR strOrderFormKey,
  BSTR strOrderGroupKey
);
[Visual Basic]
Sub AggregateOrderFormValues(
  strOrderFormKey As String,
  strOrderGroupKey As String
)

Parameters

strOrderFormKey [C++]
[in] A BSTR that specifies the OrderForm key of the value to be aggregated.
strOrderFormKey [Visual Basic]
A String that specifies the OrderForm key of the value to be aggregated.
strOrderGroupKey [C++]
[in] A BSTR that specifies the OrderGroup key of the value to which the aggregated total will be written.
strOrderGroupKey [Visual Basic]
A String that specifies the OrderGroup key of the value to which the aggregated total will be written.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.AggregateOrderFormValues("saved_cy_handling_total", _
"_cy_handling_total")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::Clear Method [C++]

OrderGroup.Clear Method [Visual Basic]

Use this method to clear the OrderGroup object of all OrderForm objects and Address dictionaries.

Definition

[C++]
HRESULT _OrderGroup::Clear(
);
[Visual Basic]
Sub Clear()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::GetAddress Method [C++]

OrderGroup.GetAddress Method [Visual Basic]

Use this method to get the specified address Dictionary object.

Definition

[C++]
HRESULT _OrderGroup::GetAddress(
  BSTR strAddressId,
  IDictionary** ppRetVal
);
[Visual Basic]
Function GetAddress(
  strAddressId As String
) As Object

Parameters

strAddressId [C++]
[in] A BSTR that specifies the address ID.
strAddressId [Visual Basic]
A String that specifies the address ID.
ppRetVal [C++]
[out, retval] The address of a pointer to receive an IDictionary interface, used to return the address dictionary. The return value will be set to NULL if the specified strAddressId is not found.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic]

If the specified address is found, this method returns a reference to that dictionary, otherwise it returns a Nothing object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRetVal parameter contains valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary object

dDict = oOrderGroup.GetAddress("{C4F9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::GetItemInfo Method [C++]

OrderGroup.GetItemInfo Method [Visual Basic]

Use this method to get a reference to the line-item dictionary from the specified OrderForm at the specified index. If the strOrderFormName parameter is not supplied, it defaults to "default".

Definition

[C++]
HRESULT _OrderGroup::GetItemInfo(
  long nItemIndex,
  VARIANT strOrderFormName,
  IDictionary** ppRetVal
);
[Visual Basic]
Function GetItemInfo(
  nItemIndex As Long,
  Optional strOrderFormName As Variant
) As Object

Parameters

nItemIndex [C++]
[in] A long that specifies the line-item index.
nItemIndex [Visual Basic]
A Long that specifies the line-item index.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name.
ppRetVal [C++]
[out, retval] The address of a pointer to receive an IDictionary interface, used to return the line item information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Dictionary object that contains the line item information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRetVal parameter contains valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' dDict is a Dictionary object
dDict = oOrderGroup.GetItemInfo(3, "testOrderFormName")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::GetOrderFormAsXML Method [C++]

OrderGroup.GetOrderFormAsXML Method [Visual Basic]

Use this method to convert an OrderForm object into an XML string.

Definition

[C++]
HRESULT _OrderGroup::GetOrderFormAsXML(
  BSTR nXMLLocale,
  VARIANT strOrderFormName,
  BSTR* pbstrRetVal
);
[Visual Basic]
Function GetOrderFormAsXML(
  nXMLLocale As String,
  Optional strOrderFormName As Variant
) As String

Parameters

nXMLLocale [C++]
[in] A BSTR that specifies the locale used in the XML string conversion.
nXMLLocale [Visual Basic]
A String that specifies the locale used in the XML string conversion.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm.
pbstrRetVal [C++]
[out, retval] A pointer to a BSTR used to return the XML string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the XML string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pbstrRetVal parameter points to valid data only if the method completed successfully.

Note: Use of the DictionaryXMLTransforms object is recommended when exchanging XML via BizTalk Server. The DictionaryXMLTransforms object allows you to write out XML to a well-defined schema.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' lLocale is a valid Locale identifier
sXMLResultString is a string
sXMLResultString = oOrderGroup.GetOrderFormAsXML(lLocale, myOrderFormName)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::AddXMLAsOrderForm

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.AddXMLAsOrderForm


_OrderGroup::GetOrderFormValue Method [C++]

OrderGroup.GetOrderFormValue Method [Visual Basic]

Use this method to get an attribute from an OrderForm, based on a specified key.

Definition

[C++]
HRESULT _OrderGroup::GetOrderFormValue(
  BSTR strKey,
  VARIANT strOrderFormName,
  VARIANT* pvtRetVal
);
[Visual Basic]
Function GetOrderFormValue(
  strKey As String,
  Optional strOrderFormName As Variant
) As Variant

Parameters

strKey [C++]
[in] A BSTR that contains the key that specifies the attribute to get.
strKey [Visual Basic]
A String that contains the key that specifies the attribute to get.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name.
pvtRetVal [C++]
[out, retval] A pointer to a VARIANT used to return the attribute.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the attribute.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRetVal parameter points to valid data only if the method completed successfully.

If the strOrderformName parameter is not supplied, the strOrderFormName parameter defaults to "default".

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
vResult is a Variant

vResult = oOrderGroup.GetOrderFormValue(handling_total, _
"testOrderFormName")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::Initialize Method [C++]

OrderGroup.Initialize Method [Visual Basic]

Use this method to initialize the OrderGroup object.

Definition

[C++]
HRESULT _OrderGroup::Initialize(
  BSTR strConnectionString,
  BSTR strUser ID
);
[Visual Basic]
Sub Initialize(
  strConnectionString As String,
  strUser ID As String
)

Parameters

strConnectionString [C++]
[in] A BSTR that contains the database connection string.
strConnectionString [Visual Basic]
A String that contains the database connection string.
strUser ID [C++]
[in] A BSTR that specifies the user ID. All Commerce Server 2002 user ID values are GUIDs.
strUser ID [Visual Basic]
A String that specifies the user ID. All Commerce Server 2002 user ID values are GUIDs.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use this method to specify the connection string that the OrderGroup object uses for its database operations. You also specify a user_id that the object will use as an OrderGroup_id when performing basket operations. This same user_id value is stored in the g_User IDChangedBy field.

Note

  • If you are loading an OrderGroup object on behalf of another user (for example as an administrator), you should specify the administrator user ID (or a placeholder user ID GUID which signifies administrative authority) so that g_UserDChangedBy is updated with the appropriate value when the OrderGroup object is saved back to the database. If you wish to load an OrderGroup object with a Basket status in the role of an administrator, you must specify strUser ID as the user ID of the user whose basket you wish to load. In this case g_User IDChangedBy will not be updated with an administrator user ID.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGrp is a Commerce.OrderGroup object
' sConnString is a valid connection string to the Commerce database
oOrderGrp.Initialize(sConnString, _
    "{D4F9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::LoadBasket Method [C++]

OrderGroup.LoadBasket Method [Visual Basic]

Use this method to load the basket for the current user from the database. If the basket for the user id specified in the Initialize method cannot be found, this method initializes an empty in-memory basket.

Definition

[C++]
HRESULT _OrderGroup::LoadBasket(
);
[Visual Basic]
Sub LoadBasket()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::LoadOrder

[C++] _OrderGroup::LoadTemplate

[C++] _OrderGroup::SaveAsBasket

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.LoadOrder

[Visual Basic] OrderGroup.LoadTemplate

[Visual Basic] OrderGroup.SaveAsBasket


_OrderGroup::LoadOrder Method [C++]

OrderGroup.LoadOrder Method [Visual Basic]

Use this method to load an OrderGroup from disk. This method returns an error if the OrderGroup cannot be found.

Definition

[C++]
HRESULT _OrderGroup::LoadOrder(
  BSTR strOrderGroupID
);
[Visual Basic]
Sub LoadOrder(
  strOrderGroupID As String
)

Parameters

strOrderGroupID [C++]
[in] A BSTR that specifies the OrderGroupID of the OrderGroup to be loaded.
strOrderGroupID [Visual Basic]
A String that specifies the OrderGroupID of the OrderGroup to be loaded.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadOrder method can be used to load any OrderGroup whose status does not equal basket or template.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.LoadOrder("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::LoadBasket

[C++] _OrderGroup::LoadTemplate

[C++] _OrderGroup::Initialize

[C++] _OrderGroup::SaveAsOrder

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.LoadBasket

[Visual Basic] OrderGroup.LoadTemplate

[Visual Basic] OrderGroup.Initialize

[Visual Basic] OrderGroup.SaveAsOrder


_OrderGroup::LoadTemplate Method [C++]

OrderGroup.LoadTemplate Method [Visual Basic]

Use this method to load the specified template from the database.

Definition

[C++]
HRESULT _OrderGroup::LoadTemplate(
  BSTR strOrderGroupID
);
[Visual Basic]
Sub LoadTemplate(
  strOrderGroupID As String
)

Parameters

strOrderGroupID [C++]
[in] A BSTR that specifies the OrderGroupID of the template to be loaded.
strOrderGroupID [Visual Basic]
A String that specifies the OrderGroupID of the template to be loaded.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.LoadTemplate("{EEF9C9CC-C33E-11D0-B8A0-00C04FB616C7}")

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::LoadOrder

[C++] _OrderGroup::LoadBasket

[C++] _OrderGroup::SaveAsTemplate

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.LoadOrder

[Visual Basic] OrderGroup.LoadBasket

[Visual Basic] OrderGroup.SaveAsTemplate


_OrderGroup::PurgeUnreferencedAddresses Method [C++]

OrderGroup.PurgeUnreferencedAddresses Method [Visual Basic]

Use this method to remove all addresses in the OrderGroup object that are not being referenced by any line-item shipping_address_id or OrderForm billing_address_id.

Definition

[C++]
HRESULT _OrderGroup::PurgeUnreferencedAddresses(
);
[Visual Basic]
Sub PurgeUnreferencedAddresses()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::PutItemValue Method [C++]

OrderGroup.PutItemValue Method [Visual Basic]

Use this method to put the specified values into the specified keys of the line item.

Definition

[C++]
HRESULT _OrderGroup::PutItemValue(
  BSTR strKey,
  VARIANT vtValue,
  VARIANT_BOOL bOverWrite,
  VARIANT nItemIndex,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub PutItemValue(
  strKey As String,
  vtValue As Variant,
  Optional bOverWrite As Boolean,
  Optional nItemIndex As Variant,
  Optional strOrderFormName As Variant
)

Parameters

strKey [C++]
[in] A BSTR that specifies the key whose attribute will store the value specified by the vtValue parameter.
strKey [Visual Basic]
A String that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue [C++]
[in] A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.
vtValue [Visual Basic]
A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.
bOverWrite [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to overwrite the existing attribute of the key specified by the strKey parameter. A value of True indicates that the attribute will be overwritten. A value of False indicates that the attribute will not be overwritten if one already exists.
bOverWrite [Visual Basic]
A Boolean that indicates whether to overwrite the existing attribute of the key specified by the strKey parameter. A value of True indicates that the attribute will be overwritten. A value of False indicates that the attribute will not be overwritten.
nItemIndex [C++]
[in, optional] A VARIANT that specifies the line-item index.
nItemIndex [Visual Basic]
A Variant that specifies the line-item index.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the line-item index is specified, this method sets the name value pair for the specified line item on the OrderForm specified in the strOrderFormName parameter. (The strOrderFormName parameter defaults to "default" if unspecified.)

If the line item index is not specified, this method sets the name value pair for all line items for the specified OrderForm. If no OrderForm name is specified, this method sets the name value pair for all line items in the OrderGroup.

If there is no OrderForm for the strOrderFormName specified in the strOrderFormName parameter, one is created.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.PutItemValue(payment_method, credit_card, False)

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::PutOrderFormValue Method [C++]

OrderGroup.PutOrderFormValue Method [Visual Basic]

Use this method to set an attribute on an OrderForm. If the strOrderFormName parameter is supplied, and the OrderForm does not exist in the OrderGroup, then a new OrderForm with the supplied name is created.

If strOrderFormName is not supplied, the parameter defaults to "default".

Definition

[C++]
HRESULT _OrderGroup::PutOrderFormValue(
  BSTR strKey,
  VARIANT vtValue,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub PutOrderFormValue(
  strKey As String,
  vtValue As Variant,
  Optional strOrderFormName As Variant
)

Parameters

strKey [C++]
[in] A BSTR that specifies the key whose attribute will store the value specified by the vtValue parameter.
strKey [Visual Basic]
A String that specifies the key whose attribute will store the value specified by the vtValue parameter.
vtValue [C++]
[in] A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.
vtValue [Visual Basic]
A VARIANT that specifies the value to store in the attribute of the key specified by the strKey parameter.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.PutOrderFormValue(handling_total, "$ 421.23")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::RemoveItem Method [C++]

OrderGroup.RemoveItem Method [Visual Basic]

Use this method to remove a line item from the specified OrderForm object. The item index specified indicates which line item to remove.

Definition

[C++]
HRESULT _OrderGroup::RemoveItem(
  VARIANT nItemIndex,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub RemoveItem(
  Optional nItemIndex As Variant,
  Optional strOrderFormName As Variant
)

Parameters

nItemIndex [C++]
[in, optional] A VARIANT that specifies the line item index. If this value is null, all items in the OrderForm are removed.
nItemIndex [Visual Basic]
A Variant that specifies the line item index. If this value is null, all items in the OrderForm are removed.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm name. If the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default". If both the nItemIndex and the strOrderFormName parameters are not supplied, then all items in all OrderForms are removed.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm name. If the strOrderFormName parameter is not supplied, the strOrderFormName parameter defaults to "default". If both the nItemIndex and the strOrderFormName parameters are not supplied, then all items in all OrderForms are removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::AddItem

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.AddItem


_OrderGroup::RemoveOrderForm Method [C++]

OrderGroup.RemoveOrderForm Method [Visual Basic]

Use this method to remove the specified OrderForm from the OrderGroup object.

Definition

[C++]
HRESULT _OrderGroup::RemoveOrderForm(
  BSTR strOrderFormName
);
[Visual Basic]
Sub RemoveOrderForm(
  strOrderFormName As String
)

Parameters

strOrderFormName [C++]
[in] A BSTR that specifies the OrderForm to remove.
strOrderFormName [Visual Basic]
A String that specifies the OrderForm to remove.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
oOrderGroup.RemoveOrderForm("myOrderFormName")

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::AddOrderform

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.AddOrderform


_OrderGroup::RunPipe Method [C++]

OrderGroup.RunPipe Method [Visual Basic]

Use this method to run the Pipeline Component File on each OrderForm in the OrderGroup object.

Definition

[C++]
HRESULT _OrderGroup::RunPipe(
  BSTR strPCF,
  BSTR strPipelineProgID,
  IDispatch* oContext,
  long* lpRetVal
);
[Visual Basic]
Function RunPipe(
  strPCF As String,
  strPipelineProgID As String,
  oContext As Object
) As Long

Parameters

strPCF [C++]
[in] A BSTR that specifies the Pipeline Component File file path (for example, c:\SampleDir\SampleFile.pcf).
strPCF [Visual Basic]
A String that specifies the Pipeline Component File file path (for example, c:\SampleDir\SampleFile.pcf).
strPipelineProgID [C++]
[in] A BSTR that specifies the pipeline ProgID.
strPipelineProgID [Visual Basic]
A String that specifies the pipeline ProgID.
oContext [C++]
[in] A pointer to the IDispatch interface that specifies the pipeline context.
oContext [Visual Basic]
An object reference that specifies the pipeline context.
lpRetVal [C++]
[out, retval] A pointer to a long used to return the maximum error level encountered by the pipeline runs.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that specifies the maximum error level encountered by the pipeline runs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When OrderGroup.RunPipe is called, the OrderGroup object instantiates and runs the pipeline for each of its contained OrderForms. The pipeline objects themselves continue to be passed a regular OrderForm, as if they were run in a stand-alone pipeline. In fact, a pipeline component has no way of knowing whether it is running on an OrderForm within an OrderGroup, or on a stand-alone OrderForm.

There are cases where you want the pipeline component to know about all items in the OrderGroup, regardless of whether those items are from differing vendors (ie a discount component). If this is the case, you should not use the multiple-OrderForm feature of the OrderGroup object (adding all items to the same OrderForm). In these cases, you can use the Splitter pipeline component to produce views of items from different vendors on your OrderForm.

When calling OrderGroup.RunPipe, you can rely on the aggregation features of the OrderGroup to produce grand totals across all OrderForms. OrderGroup.RunPipe automatically aggregates many common fields. If you wish to aggregate additional fields, use OrderGroup.AggregateOrderformValues.

Additionally, this method computes grand totals across each OrderForm for each of the following properties:

Orderform Value | Grand Total on the OrderGroup
_cy_oadjust_subtotal | saved_cy_oadjust_subtotal
_cy_total_total | saved_cy_total_total
_cy_shipping_total | saved_cy_shipping_total
_cy_handling_total | saved_cy_handling_total
_cy_tax_total | saved_cy_tax_total
_cy_tax_included | saved_cy_tax_included

Many pipeline keys are prefixed by "_", which by default means they will not be persisted to the database. Occasionally, you may want to take snapshots of these keys, and by convention, the prefix "saved_" is used in this situation. By using the "saved_" prefix they can be referred to later and can be searched via SQL statements or the OrderGroupManager object. Copied keys should not necessarily be trusted as being up-to-date. Also, they should not be used by pipeline components directly.

The OrderGroup object has a LogFile property that can be used to set the log file for the RunPipe method.

[C++] The lpRetVal parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' lResult is a long
' oContext specifies the pipeline context
lResult = oOrderGroup.RunPipe("c:\myPCFFile.pcf", _
    "Commerce.PooledPipeline", oContext)

See Also

[C++] Pipeline Basics

[C++] OrderGroup Object

[C++] _OrderGroup::get_LogFile, put_LogFile

[Visual Basic] Pipeline Basics

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.LogFile


_OrderGroup::SaveAsBasket Method [C++]

OrderGroup.SaveAsBasket Method [Visual Basic]

Use this method to save the OrderGroup object to the database with a basket status.

Definition

[C++]
HRESULT _OrderGroup::SaveAsBasket(
  VARIANT* pvtRetVal
);
[Visual Basic]
Function SaveAsBasket() As Variant

Parameters

pvtRetVal [C++]
[out, retval] A pointer to a VARIANT used to return the OrderGroupID.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that specifies the OrderGroupID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The pvtRetVal parameter points to valid data only if the method completed successfully.

This method sets the OrderGroup status to "basket", and sets the OrderGroupID equal to the user ID.

If the OrderGroup object was not loaded from a basket, this method deletes any existing on-disk basket before inserting into the data storage.

If the OrderGroup object was loaded from a basket, this method performs an update or insert depending on whether the OrderGroup was found on-disk on the load call. If you load a template or order and call the SaveAsBasket method, the template or order which was originally loaded remains unchanged on disk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
vResult = oOrderGroup.SaveAsBasket()

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::LoadBasket

[C++] _OrderGroup::SaveAsOrder

[C++] _OrderGroup::SaveAsTemplate

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.LoadBasket

[Visual Basic] OrderGroup.SaveAsOrder

[Visual Basic] OrderGroup.SaveAsTemplate


_OrderGroup::SaveAsOrder Method [C++]

OrderGroup.SaveAsOrder Method [Visual Basic]

Use this method to save the OrderGroup to the database with an order status.

Definition

[C++]
HRESULT _OrderGroup::SaveAsOrder(
  VARIANT* vtOutTrackingNumber,
  VARIANT* pvtRetVal
);
[Visual Basic]
Function SaveAsOrder(
  Optional vtOutTrackingNumber As Variant
) As Variant

Parameters

vtOutTrackingNumber [C++]
[in] A pointer to the VARIANT used to return the tracking number. If specified, this VARIANT will contain the tracking number when the method returns.
vtOutTrackingNumber [Visual Basic]
A Variant that specifies the tracking number. If specified, this Variant must be a non-literal value; when the method returns, it will contain the tracking number.
pvtRetval [C++]
[out, retval] A pointer to a VARIANT used to return the OrderGroupID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that specifies the OrderGroupID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRetVal parameter points to valid data only if the method completed successfully.

This method sets the OrderGroup status to "order" if the current status is Template, Basket, or undefined. (All other states are left alone; this allows orders to be in many states, such as pending approval, rejected, and so on.) You can set the state to any value except basket or template before calling the SaveAsOrder method; this method will not overwrite the state.

If this is the first time the order is saved, a special field will be written that records the order creation date. If an OrderTrackingNumber already exists on the OrderForm (under the key order_number) before the save, a new one will not be generated. This feature allows for ERP-based tracking numbers.

If the OrderGroup was loaded from a template, or from a basket, this method will generate a new OrderGroupID and tracking number, and perform a database insert. If the OrderGroup does not yet exist on disk, this method will generate an OrderGroupID and tracking number and perform a database insert. If the OrderGroup was loaded from any other state, this method will perform a database update.

If you load a basket or template and call the SaveAsOrder method, the basket or template remains unchanged on disk. For this reason,a call to the SaveAsOrder method is typically followed by a call to OrderGroupManager.DeleteOrderGroupFromDisk.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
' vTrackingNumber is a Variant
vResult = oOrderGroup.SaveAsOrder(vTrackingNumber)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::SaveAsBasket

[C++] _OrderGroup::SaveAsTemplate

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.SaveAsBasket

[Visual Basic] OrderGroup.SaveAsTemplate


_OrderGroup::SaveAsTemplate Method [C++]

OrderGroup.SaveAsTemplate Method [Visual Basic]

Use this method to save the OrderGroup to the database with a template status.

Definition

[C++]
HRESULT _OrderGroup::SaveAsTemplate(
  VARIANT strTemplateName,
  VARIANT* pvtRetVal
);
[Visual Basic]
Function SaveAsTemplate(
  Optional strTemplateName As Variant
) As Variant

Parameters

strTemplateName [C++]
[in, optional] A VARIANT that specifies the template name.
strTemplateName [Visual Basic]
A Variant that specifies the template name.
pvtRetVal [C++]
[out, retval] A pointer to a VARIANT used to return the OrderGroupID of the template.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that specifies the OrderGroupID of the template.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRetVal parameter points to valid data only if the method completed successfully.

This method updates the OrderGroup template name field if the strTemplateName parameter is supplied.

If you originally loaded the OrderGroup from another state (ie a basket) and call SaveAsTemplate method, the original OrderGroup remains on disk unchanged.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' vResult is a Variant
vResult = oOrderGroup.SaveAsTemplate()

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::SaveAsBasket

[C++] _OrderGroup::SaveAsOrder

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.SaveAsBasket

[Visual Basic] OrderGroup.SaveAsOrder


_OrderGroup::SetAddress Method [C++]

OrderGroup.SetAddress Method [Visual Basic]

Use this method to add a specified address dictionary to the OrderGroup Addresses collection of the OrderGroup.

Definition

[C++]
HRESULT _OrderGroup::SetAddress(
  BSTR strAddressId,
  IDictionary* oAddressDict
);
[Visual Basic]
Sub SetAddress(
  strAddressId As String,
  oAddressDict As Object
)

Parameters

strAddressId [C++]
[in] A BSTR that specifies the address ID of the address to be added.
strAddressId [Visual Basic]
A String that specifies the address ID of the address to be added.
oAddressDict [C++]
[in] A pointer to the IDictionary interface that contains the address dictionary to be added.
oAddressDict [Visual Basic]
A Dictionary object that contains the address information to be added.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroup is a Commerce.OrderGroup object
' oAddDict is an address Dictionary object
oOrderGroup.SetAddress("{AABBC9CC-C33E-11D0-B8A0-00C04FB616C7}", oAddDict)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::SetAddressFromFields

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.SetAddressFromFields


_OrderGroup::SetAddressFromFields Method [C++]

OrderGroup.SetAddressFromFields Method [Visual Basic]

Use this method to set the OrderGroup address dictionary values as specified by the supplied Fields object. The column names in the field object will be mapped to dictionary keys names in the resultant address dictionary.

Definition

[C++]
HRESULT _OrderGroup::SetAddressFromFields(
  BSTR strAddressId,
  Fields* flds
);
[Visual Basic]
Sub SetAddressFromFields(
  strAddressId As String,
  flds As Object
)

Parameters

strAddressId [C++]
[in] A BSTR that specifies the address ID of the address dictionary to be added.
strAddressId [Visual Basic]
A String that specifies the address ID of the address dictionary to be added.
flds [C++]
[in] A reference to a Fields object that contains the address information to be added.
flds [Visual Basic]
A Fields object that contains the address information to be added.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOG is a Commerce.OrderGroup object
' oFlds is a Fields object
oOG.SetAddressFromFields("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    oFlds)

See Also

[C++] OrderGroup Object

[C++] _OrderGroup::SetAddress

[Visual Basic] OrderGroup Object

[Visual Basic] OrderGroup.SetAddress


_OrderGroup::SetShippingAddress Method [C++]

OrderGroup.SetShippingAddress Method [Visual Basic]

Use this method to set the shipping address id for the specified line items.

Definition

[C++]
HRESULT _OrderGroup::SetShippingAddress(
  BSTR address_id,
  VARIANT_BOOL bOverWrite,
  VARIANT nItemIndex,
  VARIANT strOrderFormName
);
[Visual Basic]
Sub SetShippingAddress(
  address_id As String,
  Optional bOverWrite As Boolean,
  Optional nItemIndex As Variant,
  Optional strOrderFormName As Variant
)

Parameters

address_id [C++]
[in] A BSTR that specifies the address ID to designate as the shipping address.
address_id [Visual Basic]
A String that specifies the address ID to designate as the shipping address.
bOverWrite [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that indicates whether to overwrite the shipping_address_id, if it already exists. A value of VT_TRUE indicates that an overwrite should occur. A value of VT_FALSE indicates that an overwrite should not occur.
bOverWrite [Visual Basic]
A Boolean that indicates whether to overwrite the shipping_address_id, if it already exists. A value of True indicates that an overwrite should occur. A value of False indicates that an overwrite should not occur.
nItemIndex [C++]
[in, optional] A VARIANT that specifies the line item index where the shipping_address_id will be set. If not specified, all line items will be set.
nItemIndex [Visual Basic]
A Variant that specifies the line item index where the shipping_address_id will be set. If not specified, all line items will be set.
strOrderFormName [C++]
[in, optional] A VARIANT that specifies the OrderForm on which to perform the operation. If not specified, all OrderForms will be used if nItemIndex is unspecified; otherwise, the "default" OrderForm will be used.
strOrderFormName [Visual Basic]
A Variant that specifies the OrderForm to perform the operation. If not specified, all OrderForms will be used if nItemIndex is unspecified; otherwise, the "default" OrderForm will be used.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The bOverWrite, nItemIndex, and strOrderFormName parameters work in a way similar to the same parameters in the PutItemValue method. Before performing the set operations, this method first ensures that the address id exists.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrdGrp is a Commerce.OrderGroup object
oOrdGrp.SetShippingAddress(("{34ECC9CC-C33E-11D0-B8A0-00C04FB616C7}", _
    True, 4, "testOrderFormName")

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup Properties [C++]

OrderGroup Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
LogFile | BSTR | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | BSTR | Specifies a key prefix that will prevent a dictionary entry from being saved to the database.
Value | VARIANT | Returns the OrderGroup object attributes.This property is read-only.
[Visual Basic]
Property | Type | Description
LogFile | String | Log file name for pipeline runs. Allows pipeline logging when set to a non-empty string. This property is read/write.
SavePrefix | String | Specifies a key prefix that will prevent a dictionary entry from being saved to the database.
Value | Variant | Returns the OrderGroup object attributes. This property is read-only.


_OrderGroup::get_LogFile, put_LogFile Property [C++]

OrderGroup.LogFile Property [Visual Basic]

The LogFile property is a read/write String that specifies the file name used for pipeline logging during the execution of the RunPipe method.

Definition

[C++]

Get method:

HRESULT _OrderGroup::get_LogFile(
  BSTR* LogFile
);

Put method:

HRESULT _OrderGroup::put_LogFile(
  BSTR LogFile
);
[Visual Basic]
Property LogFile As String

Parameters

LogFile [C++]
[in] When putting the property, a BSTR that contains the log file.
[out, retval] When getting the property, a pointer to a BSTR used to return the log file.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The LogFile parameter contains valid data only if the property is accessed successfully.

Set the LogFile parameter to an empty string ("") to disable logging.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] Set the LogFile parameter to an empty string ("") to disable logging.

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::get_SavePrefix, put_SavePrefix Property [C++]

OrderGroup.SavePrefix Property [Visual Basic]

Specifies a key prefix that will prevent a dictionary entry from being saved to the database.

Definition

[C++]

Get method:

HRESULT _OrderGroup::get_SavePrefix(
  BSTR* SavePrefix
);

Put method:

HRESULT _OrderGroup::put_SavePrefix(
  BSTR SavePrefix
);
[Visual Basic]
Property SavePrefix() As String

Parameters

SavePrefix [C++]
[in] When putting the property, a BSTR that contains the save prefix.
[out, retval] When getting the property, a pointer to a BSTR used to return the save prefix.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Value parameter contains valid data only if the property is accessed successfully.

No dictionary entry that has a key name that begins with the value of the SavePrefix roperty will be saved to the database. Assuming that the SavePrefix property is set to the underscore character ("_"), if the value of _adjusted_price is $ 200 and the value of total_price is $ 400, then $ 200 will not be persisted, but $ 400 will be persisted.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


_OrderGroup::get_Value Property [C++]

OrderGroup.Value Property [Visual Basic]

The Value property is a read-only Variant that contains the OrderGroup-level attributes as a dictionary.

Definition

[C++]
HRESULT _OrderGroup::get_Value(
  VARIANT* Value
);
[Visual Basic]
Property Value As Variant

Parameters

Value [C++]
[out, retval] A pointer to a VARIANT used to return the Value dictionary.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Value parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroup Object

[Visual Basic] OrderGroup Object


OrderGroupManager Object [C++]

OrderGroupManager Object [Visual Basic]

Use this object to manage OrderGroup objects and their contents. This object allows you to search for orders or baskets without having to use SQL queries. It also allows for OrderGroup object deletions.

ProgID: | Commerce.OrderGroupManager (Externally creatable)
COM Class Name: | OrderGroupManager
Type Library Name: | Microsoft Commerce 2002 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _OrderGroupManager
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _OrderGroupManager interface to access the properties and methods of the OrderGroupManager object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as baskets and templates.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
Find | Performs a search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADO recordset of OrderGroup object templates for the specified user. Returns an ADO recordset of the search results.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADO recordset of OrderGroup object items based on the specified SimpleFindSearchInfo object values and SimpleFindResultInfo object values. These object values contain the search criteria.
[Visual Basic]
Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as baskets and templates.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
Find | Performs a search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADO recordset of OrderGroup object templates for the specified user. Returns an ADO recordset of the search results.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADO recordset of OrderGroup object items based on the specified SimpleFindSearchInfo object values and SimpleFindResultInfo object values. These object values contain the search criteria.

Properties

[C++]
Property | Type | Description
DebugReturnSQL | VARIANT_BOOL | Determines if methods of this object will run a SQL Server query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is read/write.
OrderFormHeaderColumns | VARIANT | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | VARIANT | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | VARIANT | Returns a string of comma-separated OrderGroup table column names. This property is read-only.
[Visual Basic]
Property | Type | Description
DebugReturnSQL | Boolean | Determines if methods of this object will run a SQL Server query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is read/write.
OrderFormHeaderColumns | Variant | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | Variant | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | Variant | Returns a string of comma-separated OrderGroup table column names. This property is read-only.

See Also

[C++] Business Process Objects

[C++] OrderGroup Object

[C++] OrderForm Object

[C++] SimpleFindSearchInfo Object

[C++] SimpleFindResultInfo Object

[Visual Basic] Business Process Objects

[Visual Basic] OrderGroup Object

[Visual Basic] OrderForm Object

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] SimpleFindResultInfo Object


_OrderGroupManager Methods [C++]

OrderGroupManager Methods [Visual Basic]

Methods

[C++]
Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as baskets and templates.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
Find | Performs a search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADO recordset of OrderGroup object templates for the specified user. Returns an ADO recordset of the search results.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADO recordset of OrderGroup object items based on the specified SimpleFindSearchInfo object values and SimpleFindResultInfo object values. These object values contain the search criteria.
[Visual Basic]
Method | Description
DeleteOrderGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as baskets and templates.
DeleteReceiptGroupFromDisk | Checks whether a connection to the database has been established for the specified OrderGroup object, and then deletes the OrderGroup object and all objects contained within it from the site database. Use this method for OrderGroup objects saved as orders.
Find | Performs a search based on the specified SQL clause fragments.
FindTemplatesForUser | Finds an ADO recordset of OrderGroup object templates for the specified user. Returns an ADO recordset of the search results.
GetOrderSummary | Returns a recordset containing the summary information for the order.
Initialize | Creates a connection to the specified database.
SimpleDelete | Deletes all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.
SimpleFind | Returns an ADO recordset of OrderGroup object items based on the specified SimpleFindSearchInfo object values and SimpleFindResultInfo object values. These object values contain the search criteria.


_OrderGroupManager::DeleteOrderGroupFromDisk Method [C++]

OrderGroupManager.DeleteOrderGroupFromDisk Method [Visual Basic]

Use this method to check whether a connection to the site database has been established for the specified OrderGroup object, and then delete the OrderGroup object and all objects contained within it from the database. Use this method when the state of the OrderGroup object is set to basket or template.

Definition

[C++]
HRESULT _OrderGroupManager::DeleteOrderGroupFromDisk(
  BSTR OrderGroupID
);
[Visual Basic]
Sub DeleteOrderGroupFromDisk(
  OrderGroupID As String
)

Parameters

OrderGroupID [C++]
[in] A BSTR that contains the OrderGroup object ID.
OrderGroupID [Visual Basic]
A String that contains the OrderGroup object ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sOrderGroupID is a string containing a valid OrderGroupID
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.DeleteOrderGroupFromDisk(sOrderGroupID)

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::DeleteReceiptGroupFromDisk Method [C++]

OrderGroupManager.DeleteReceiptGroupFromDisk Method [Visual Basic]

Use this method to delete an OrderGroup object and all objects contained within it from the site database, when the state of the OrderGroup object is set to order.

Definition

[C++]
HRESULT _OrderGroupManager::DeleteReceiptGroupFromDisk(
  BSTR OrderGroupID
);
[Visual Basic]
Sub DeleteOrderGroupFromDisk(
  OrderGroupID As String
)

Parameters

OrderGroupID [C++]
[in] A BSTR that contains the OrderGroup object ID.
OrderGroupID [Visual Basic]
A String that contains the OrderGroup object ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sOrderGroupID is a string containing a valid OrderGroupID
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.DeleteReceiptGroupFromDisk(sOrderGroupID)

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::Find Method [C++]

OrderGroupManager.Find Method [Visual Basic]

Use this method to perform a search based on the specified SQL clause fragments.

Definition

[C++]
HRESULT _OrderGroupManager::Find(
  VARIANT OrderGroupCriteriaArray,
  VARIANT OrderFormCriteriaArray,
  VARIANT LineItemCriteriaArray,
  VARIANT SearchDateTimeColumn,
  VARIANT SearchDateTimeStart,
  VARIANT SearchDateTimeEnd,
  long StatusFilter,
  VARIANT_BOOL JoinOrderFormInfo,
  VARIANT_BOOL JoinLineItemInfo,
  VARIANT Columns,
  VARIANT OrderGroupSortColumn,
  VARIANT SortDirection,
  long PageSize,
  long PageNumber,
  VARIANT* outTotalRecordsFound,
  VARIANT* vtResults
);
[Visual Basic]
Function Find(
  OrderGroupCriteriaArray As Variant,
  OrderFormCriteriaArray As Variant,
  LineItemCriteriaArray As Variant,
  Optional SearchDateTimeColumn As Variant,
  Optional SearchDateTimeStart As Variant,
  Optional SearchDateTimeEnd As Variant,
  Optional StatusFilter As Long,
  Optional JoinOrderFormInfo As Boolean,
  Optional JoinLineItemInfo As Boolean,
  Optional Columns As Variant,
  Optional OrderGroupSortColumn As Variant,
  Optional SortDirection As Variant,
  Optional PageSize As Long,
  Optional PageNumber As Long,
  Optional outTotalRecordsFound As Variant
) As Variant

Parameters

OrderGroupCriteriaArray [C++]
[in] A VARIANT that contains the SQL clause used to search for a specific set of order groups.
OrderGroupCriteriaArray [Visual Basic]
A Variant that contains the SQL clause used to search for a specific set of order groups.
OrderFormCriteriaArray [C++]
[in] A VARIANT that contains the SQL clause used to search for a specific set of order forms.
OrderFormCriteriaArray [Visual Basic]
A Variant that contains the SQL clause used to search for a specific set of order forms.
LineItemCriteriaArray [C++]
[in] A VARIANT that contains the SQL clause used to search for a specific set of line items.
LineItemCriteriaArray [Visual Basic]
A Variant that contains the SQL clause used to search for a specific set of line items.
SearchDateTimeColumn [C++]
[in, optional] A VARIANT that specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria.
SearchDateTimeColumn [Visual Basic]
A Variant that specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This parameter is optional.
SearchDateTimeStart [C++]
[in, optional] A VARIANT that specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria.
SearchDateTimeStart [Visual Basic]
A Variant that specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This parameter is optional.
SearchDateTimeEnd [C++]
[in, optional] A VARIANT that specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria.
SearchDateTimeEnd [Visual Basic]
A Variant that specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This parameter is optional.
StatusFilter [C++]
[in, optional, defaultvalue (0)] A long that stores the order group status.
StatusFilter [Visual Basic]
A Long that stores the order group status. This parameter is optional.
JoinOrderFormInfo [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL indicating whether to include the OrderFormHeader table in the results.
JoinOrderFormInfo [Visual Basic]
A Boolean indicating whether to include the OrderFormHeader table in the results. This parameter is optional.
JoinLineItemInfo [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL indicating whether to include the OrderFormLineItems table in the results.
JoinLineItemInfo [Visual Basic]
A Boolean indicating whether to include the OrderFormLineItems table in the results. This parameter is optional.
Columns [C++]
[in, optional] A VARIANT that contains the names of the columns to return in addition to the default columns.
Columns [Visual Basic]
A Variant that contains the names of the columns to return in addition to the default columns. This parameter is optional.
OrderGroupSortColumn [C++]
[in, optional] A VARIANT that contains the OrderGroup column name on which to sort.
OrderGroupSortColumn [Visual Basic]
A Variant that contains the OrderGroup column name on which to sort. This parameter is optional.
SortDirection [C++]
[in, optional] A VARIANT that contains the sort direction. This parameter is optional. Possible values for this parameter are the SQL strings "ASC" or "DESC".
SortDirection [Visual Basic]
A Variant that contains the sort direction. This parameter is optional. Possible values for this parameter are the SQL strings "ASC" or "DESC".
PageSize [C++]
[in, optional, defaultvalue (20)] A long that contains the number of line items per page. With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) This parameter setting must be coordinated with the PageNumber parameter.
PageSize [Visual Basic]
A Long that contains the number of line items per page. With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) This parameter setting must be coordinated with the PageNumber parameter. This parameter is optional and has a default value of 20.
PageNumber [C++]
[in, optional, defaultvalue (1)] A long that contains the page number to jump to. With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) This parameter setting must be coordinated with the PageSize parameter.
PageNumber [Visual Basic]
A Long that contains the page number to jump to. With this method, you can implement a paging mechanism that allows you to page through your orders. (These could be viewed in a list sheet, for example.) This parameter setting must be coordinated with the PageSize parameter. This parameter is optional.
outTotalRecordsFound [C++]
[out] A pointer to a VARIANT that specifies the total number of records found.
outTotalRecordsFound [Visual Basic]
A Variant that specifies the total number of records found.
vtResults [C++]
[out, retval] A pointer to a VARIANT used to return the recordset containing the result set that meets the search criteria.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns Variant that contains the recordset containing the result set that meets the search criteria.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The vtResults parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vRecordset is a Variant
' vOrderGroupCriteriaArray is a Variant
' vOrderFormCriteriaArray is a Variant
' vLineItemCriteriaArray is a Variant
' oOrderGroupManager is a Commerce OrderGroupManager object
vRecordset = oOrderGroupManager.Find(vOrderGroupCriteriaArray, _
    vOrderFormCriteriaArray, vLineItemCriteriaArray)

See Also

[C++] OrderGroupManager Object

[C++] _OrderGroupManager::SimpleFind

[Visual Basic] OrderGroupManager Object

[Visual Basic] OrderGroupManager.SimpleFind


_OrderGroupManager::FindTemplatesForUser Method [C++]

OrderGroupManager.FindTemplatesForUser Method [Visual Basic]

Use this method to build and return an ADO recordset of OrderGroup object templates for the specified user.

Definition

[C++]
HRESULT _OrderGroupManager::FindTemplatesForUser(
  BSTR UserId,
  VARIANT SearchDateTimeColumn,
  VARIANT SearchDateTimeStart,
  VARIANT SearchDateTimeEnd,
  VARIANT_BOOL JoinOrderFormInfo,
  VARIANT_BOOL JoinLineItemInfo,
  VARIANT Columns,
  VARIANT OrderGroupSortColumn,
  VARIANT SortDirection,
  long PageSize,
  long PageNumber,
  VARIANT* outTotalRecordsFound,
  VARIANT* pvtRetVal
);
[Visual Basic]
Function FindTemplatesForUser(
  UserId As String,
  Optional SearchDateTimeColumn As Variant,
  Optional SearchDateTimeStart As Variant,
  Optional SearchDateTimeEnd As Variant,
  Optional JoinOrderFormInfo As Variant,
  Optional JoinLineItemInfo As Variant,
  Optional Columns As Variant,
  Optional OrderGroupSortColumn As Variant,
  Optional SortDirection As Variant,
  Optional PageSize As Long,
  Optional PageNumber As Long,
  Optional outTotalRecordsFound As Variant
) As Variant

Parameters

UserId [C++]
[in] A BSTR that contains the user ID globally unique identifier (GUID).
UserId [Visual Basic]
A String that contains the user ID GUID.
SearchDateTimeColumn [C++]
[in, optional] A VARIANT that contains the DateTime column name to use in the search.
SearchDateTimeColumn [Visual Basic]
A Variant that contains the DateTime column name to use in the search. This parameter is optional.
SearchDateTimeStart [C++]
[in, optional] A VARIANT that contains the search DateTime start value.
SearchDateTimeStart [Visual Basic]
A Variant that contains the search DateTime start value. This parameter is optional.
SearchDateTimeEnd [C++]
[in, optional] A VARIANT that contains the search DateTime end value.
SearchDateTimeEnd [Visual Basic]
A Variant that contains the search DateTime end value. This parameter is optional.
JoinOrderFormInfo [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that indicates whether the OrderFormHeader table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included.
JoinOrderFormInfo [Visual Basic]
A Boolean that indicates whether the OrderFormHeader table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included. This parameter is optional.
JoinLineItemInfo [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that indicates whether the OrderFormLineItem table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included.
JoinLineItemInfo [Visual Basic]
A Boolean that indicates whether the OrderFormLineItem table is included in the search. A value of True indicates that the table is included. A value of False indicates that the table is not included. This parameter is optional.
Columns [C++]
[in, optional] A VARIANT that contains the names of columns that you want returned in addition to the default columns.
Columns [Visual Basic]
A Variant that contains the names of columns that you want returned in addition to the default columns. This parameter is optional.
OrderGroupSortColumn [C++]
[in, optional] A VARIANT that contains the OrderGroup sort column.
OrderGroupSortColumn [Visual Basic]
A Variant that contains the OrderGroup sort column. This parameter is optional.
SortDirection [C++]
[in, optional] A VARIANT that contains the sort direction.
SortDirection [Visual Basic]
A Variant that contains the sort direction. This parameter is optional.
PageSize [C++]
[in, optional, defaultvalue (20)] A long that contains the page size.
PageSize [Visual Basic]
A Long that contains the page size. This parameter is optional.
PageNumber [C++]
[in, optional, defaultvalue (1)] A long that contains the page number.
PageNumber [Visual Basic]
A Long that contains the page number. This parameter is optional.
outTotalRecordsFound [C++]
[out, optional] A pointer to the VARIANT that contains the total number of records found.
outTotalRecordsFound [Visual Basic]
A Variant that contains the total number of records found. This parameter is optional. This parameter is optional.
pvtRetVal[C++]
[out, retval] A pointer to a VARIANT used to return an ADO recordset of the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains an ADO recordset of the search results.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRetVal and outTotalRecordsFound parameters point to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.FindTemplatesForUser("{11223344-1122-1122-1122- _
    AABBCCDDEEFF}")

See Also

[C++] OrderGroupManager Object

[C++] Business Process Objects

[Visual Basic] OrderGroupManager Object

[Visual Basic] Business Process Objects


_OrderGroupManager::GetOrderSummary Method [C++]

OrderGroupManager.GetOrderSummary Method [Visual Basic]

Use this method to return a recordset containing the summary information for the order.

Definition

[C++]
HRESULT _OrderGroupManager::GetOrderSummary(
  VARIANT oid
);
[Visual Basic]
Function GetOrderSummary(
  oid
)

Parameters

oid [C++]
[in] A VARIANT that contains the OrderGroup object ID.
oid [Visual Basic]
A Variant that contains the OrderGroup object ID.

Return Values

[C++] This method returns a Recordset object containing the information described.

[Visual Basic] This method returns a recordset object containing the information described.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method returns the keys saved_cy_adjust_subtotal and total_line_items for the given order_group_id.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oid is a Variant containing a valid OrderGroupID
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.GetOrderSummary(oid)

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::Initialize Method [C++]

OrderGroupManager.Initialize Method [Visual Basic]

Use this method to create a connection to the specified database.

Definition

[C++]
HRESULT _OrderGroupManager::Initialize(
  VARIANT* ConnectionString
);
[Visual Basic]
Sub Initialize(
  ConnectionString As Variant
)

Parameters

ConnectionString [C++]
[in] A pointer to a VARIANT that contains the database connection string.
ConnectionString [Visual Basic]
A Variant that contains the database connection string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vConnectionString is a Variant containing a database connection string
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.Initialize(vConnectionString)

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::SimpleDelete Method [C++]

OrderGroupManager.SimpleDelete Method [Visual Basic]

Use this method to delete all entries that meet the search criteria as specified by the supplied SimpleFindSearchInfo and SimpleFindResultInfo objects.

Definition

[C++]
HRESULT _OrderGroupManager::SimpleDelete(
  _SimpleFindSearchInfo* sfSearchInfo,
  _SimpleFindResultInfo* sfResultInfo,
);
[Visual Basic]
Sub SimpleDelete(
  sfSearchInfo As Object,
  sfResultInfo As Object
)

Parameters

sfSearchInfo [C++]
[in] A reference to a _SimpleFindSearchInfo object that contains the search criteria.
sfSearchInfo [Visual Basic]
A SimpleFindSearchInfo object that contains the search criteria.
sfResultInfo [C++]
[in] A reference to a _SimpleFindResultInfo object that contains the search criteria.
sfResultInfo [Visual Basic]
A SimpleFindResultInfo object that contains the search criteria.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vResult is a Variant
' oSimpleFindSearchInfo is a Commerce SimpleFindSearchInfo object
' oSimpleFindResultInfo is a Commerce SimpleFindResultInfo object
' oOrderGroupManager is a Commerce OrderGroupManager object
oOrderGroupManager.SimpleDelete(oSimpleFindSearchInfo, _
    oSimpleFindResultInfo)

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::SimpleFind Method [C++]

OrderGroupManager.SimpleFind Method [Visual Bas Methodic]

Use this method to retrieve an ADO recordset of OrderGroup objects based on the specified SimpleFindSearchInfo and SimpleFindResultInfo object values. These object values contain the search criteria.

Definition

[C++]
HRESULT _OrderGroupManager::SimpleFind(
  _SimpleFindSearchInfo* sfSearchInfo,
  _SimpleFindResultInfo* sfResultInfo,
  VARIANT* outTotalRecordsFound,
  VARIANT* pvtRetVal
);
[Visual Basic]
Function SimpleFind(
  sfSearchInfo As Object,
  sfResultInfo As Object,
  Optional outTotalRecordsFound As Variant
) As Variant

Parameters

sfSearchInfo [C++]
[in] A pointer to the _SimpleFindSearchInfo interface of a SimpleFindSearchInfo object that contains the search criteria.
sfSearchInfo [Visual Basic]
A SimpleFindSearchInfo object that contains the search criteria.
sfResultInfo [C++]
[in] A pointer to the _SimpleFindResultInfo interface of a SimpleFindResultInfo object that contains the search criteria.
sfResultInfo [Visual Basic]
A SimpleFindResultInfo object that contains the search criteria.
outTotalRecordsFound [C++]
[out] A pointer to a VARIANT that contains the total number of records found.
outTotalRecordsFound [Visual Basic]
A Variant that contains the total number of records found.
pvtRetVal [C++]
[out, retval] A pointer to a VARIANT used to return the search result recordset of OrderGroup items.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO recordset that contains the search result OrderGroup objects.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pvtRetVal and outTotalRecordsFound parameters point to valid data only if the method returns successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Dim oSFSearch, sReqID, oOGMgr
' oOGMgr is a Commerce.OrderGroupManager object
Set oSFSearch = Server.CreateObject("Commerce.SimpleFindSearchInfo")
' Search for this OrderGroup ID
sReqID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oSFSearch.ordergroup_id = sReqID

Dim oSFResult
Set osfResult =Server.CreateObject("Commerce.SimpleFindResultInfo")
oSFResult.JoinLineItemInfo = True
oSFResult.JoinOrderFormInfo = True

Dim oRSResults
Set oRSResults=Server.CreateObject("ADODB.Recordset")

Set oRSResults= oOGMgr.SimpleFind(oSFSearch, oSFResult)

See Also

[C++] Business Process Objects

[C++] OrderGroupManager Object

[Visual Basic] Business Process Objects

[Visual Basic] OrderGroupManager Object


_OrderGroupManager Properties [C++]

OrderGroupManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
DebugReturnSQL | VARIANT_BOOL | Determines if methods of this object will run a SQL Server query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is read/write.
OrderFormHeaderColumns | VARIANT | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | VARIANT | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | VARIANT | Returns a string of comma-separated OrderGroup table column names. This property is read-only.
[Visual Basic]
Property | Type | Description
DebugReturnSQL | Boolean | Determines if methods of this object will run a SQL Server query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is read/write.
OrderFormHeaderColumns | Variant | Returns a string of comma-separated OrderFormHeader table column names. This property is read-only.
OrderFormLineItemsColumns | Variant | Returns a string of comma-separated OrderFormLineItems table column names. This property is read-only.
OrderGroupColumns | Variant | Returns a string of comma-separated OrderGroup table column names. This property is read-only.


_OrderGroupManager::get_DebugReturnSQL, put_DebugReturnSQL Property [C++]

OrderGroupManager.DebugReturnSQL Property [Visual Basic]

The DebugReturnSQL property is a read/write Boolean that determines if the methods of the OrderGroupManager object will run a SQL Server query and return the resulting recordset, or if it will construct the SQL Server query and return the query string. This property is intended for internal use only and should not be called externally.

Definition

[C++]

Get method:

HRESULT _OrderGroupManager::get_DebugReturnSQL(
  VARIANT_BOOL DebugReturnSQL
);

Put method:

HRESULT _OrderGroupManager::put_DebugReturnSQL(
  VARIANT_BOOL DebugReturnSQL
);
[Visual Basic]
Property DebugReturnSQL () As Boolean

Parameters

DebugReturnSQL [C++]
[in] When putting a value, a VARIANT_BOOL used to determine if methods of this object will run a SQL Server query, or if they will debug the SQL Server connection string.
[out, retval] When getting a value, a VARIANT_BOOL used to determine if methods of this object will run a SQL Server query, or if they will debug the SQL Server connection string.

None.[Visual Basic]

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

If the DebugReturnSQL property is set to False, then the methods such as OrderGroupManager.Find and OrderGroupManager.SimpleFind construct the appropriate SQL Server query, run the query, and return the resulting recordset.

If the DebugReturnSQL property is set to True, then the methods such as OrderGroupManager.Find and OrderGroupManager.SimpleFind construct the appropriate SQL Server query and return the query string.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::get_OrderFormHeaderColumns Property[C++]

OrderGroupManager.OrderFormHeaderColumns Property [Visual Basic]

The OrderFormHeaderColumns property is a read-only Variant that contains a collection of OrderFormHeader table column names.

Definition

[C++]
HRESULT _OrderGroupManager::get_OrderFormHeaderColumns(
  VARIANT* OrderFormHeaderColumns
);
[Visual Basic]
Property OrderFormHeaderColumns As Variant

Parameters

OrderFormHeaderColumns [C++]
[out, retval] A pointer to a VARIANT used to return a collection of OrderFormHeader table column names.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

[C++] The OrderFormHeaderColumns parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::get_OrderFormLineItemsColumns Property [C++]

OrderGroupManager.OrderFormLineItemsColumns Property [Visual Basic]

The OrderFormLineItemsColumns property is a read-only Variant that contains a collection of OrderFormLineItems table column names.

Definition

[C++]
HRESULT _OrderGroupManager::get_OrderFormLineItemsColumns(
  VARIANT* OrderFormLineItemsColumns
);
[Visual Basic]
Property OrderFormLineItemsColumns As Variant

Parameters

OrderFormLineItemsColumns [C++]
[out, retval] A pointer to a VARIANT used to return a collection of OrderFormLineItems table column names.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

[C++] The OrderFormLineItemsColumns parameter contains valid data only if the parameter is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


_OrderGroupManager::get_OrderGroupColumns Property [C++]

OrderGroupManager.OrderGroupColumns Property [Visual Basic]

The OrderGroupColumns property is a read-only Variant that contains a collection of OrderGroup table column names.

Definition

[C++]
HRESULT _OrderGroupManager::get_OrderGroupColumns(
  VARIANT* OrderGroupColumns
);
[Visual Basic]
Property OrderGroupColumns As Variant

Parameters

OrderGroupColumns [C++]
[out, retval] A pointer to a VARIANT used to return the collection of OrderGroup column names.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

[C++] The OrderGroupColumns parameter contains valid data only if the parameter is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] OrderGroupManager Object

[Visual Basic] OrderGroupManager Object


Shipping Object [C++]

Shipping Object [Visual Basic]

Use this object to create shipping cost preview information.

ProgID: | Commerce.Shipping (Externally creatable)
COM Class Name: | Shipping
Type Library Name: | Microsoft Commerce 2002 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _Shipping
Interface ID Constant: | None
Header File: | None
[C++]

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.
[Visual Basic]
Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.


_Shipping Methods [C++]

Shipping Methods [Visual Basic]

Methods

[C++]
Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.
[Visual Basic]
Method | Description
PreviewShipments | Divides an order into shipments and produces shipping cost previews for each shipment using each method.


_Shipping::PreviewShipments Method [C++]

Shipping.PreviewShipments Method [Visual Basic]

Use this method to create shipment preview information.

Definition

[C++]
HRESULT _Shipping::PreviewShipments(
  VARIANT* orderform,
  VARIANT* context,
  VARIANT* ShipmentDistinguishers,
  VARIANT* ShippingPreview
);
[Visual Basic]
Function PreviewShipments(
  orderform As Variant,
  context As Variant,
  ShipmentDistinguishers As Variant
) As Variant

Parameters

orderform [C++]
[in] A pointer to a VARIANT containing the OrderForm dictionary for which to calculate shipping cost previews.
orderform [Visual Basic]
The OrderForm object for which to calculate shipping cost previews.
context [C++]
[in] A pointer to a VARIANT containing the Context dictionary to use to run the shipping components.
context [Visual Basic]
The Context dictionary to use to run the shipping components.
ShipmentDistinguishers [C++]
[in] A pointer to a VARIANT containing a SIMPLEARRAY of strings containing the line item attributes (keys) to use to split the order into shipments.
ShipmentDistinguishers [Visual Basic]
An array of strings containing the line item attributes (keys) to use to split the order into shipments.
ShippingPreview [C++]
[out, retval] A pointer to a VARIANT used to return a Simplelist of dictionaries, one for each shipment, which in turn contain a Simplelist of dictionaries containing the shipping cost previews, one for each shipping method.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Simplelist of dictionaries, one for each shipment, which in turn contains a Simplelist of dictionaries containing the shipping cost previews, one for each shipping method.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The ShippingPreview parameter points to valid data only if the method completes successfully.

The PreviewShipments method creates the shipping cost previews by splitting the order into individual shipments. The mechanism used is the same as the Splitter pipeline component. For more information about how shipment distinguishers are used to split shipments, see Splitter.

The PreviewShipments method returns a SimpleList of dictionaries, one for each shipment. Each shipment dictionary in turn contains a SimpleList of dictionaries each of which contains the shipping cost for using a particular shipping method.

For example code showing how to loop through the preview shipments, see Previewing Shipping Costs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oShip is a Commerce.Shipping object
' dOrder and dContext are Commerce.Dictionary objects
' ADistinguishers is an Array of strings naming line items
' slShipments is a SimpleList of dictionary or orderform objects

slShipments = oShip.PreviewShipments(dOrder, dContext, _
Distinguishers)

See Also

Previewing Shipping Costs

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodManager Object [C++]

ShippingMethodManager Object [Visual Basic]

Use this object to manage shipping methods that will be available on the site. Using the ShippingMethodManager object, you can add and remove methods, set their description, availability, and configuration.

ProgID: | Commerce.ShippingMethodManager (Externally creatable)
COM Class Name: | ShippingMethodManager
Type Library Name: | Microsoft Commerce 2002 Shipping Components Type Library
DLL Name: | shipmgr.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _ShippingMethodManager
Interface ID Constant: | None
Header File: | None
[C++]

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a recordset containing the current shipping methods.
GetMethodInfo | Returns a recordset containing information about one or more shipping methods.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves configuration information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets name/value pairs for the current method.
[Visual Basic]
Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a recordset containing the current shipping methods.
GetMethodInfo | Returns a recordset containing information about the loaded shipping method.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves configuration information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets name/value pairs for the current method.

Remarks

The shipping architecture in Commerce Server 2002 is designed so that shipping methods can be changed through the Shipping Methods module in Commerce Server Business Desk without programming or editing pipelines. To do this, Commerce Server maintains a database table, ShippingConfig, of shipping methods and the information required to configure shipping components to implement those methods.

The ShippingMethodManager object is used by Business Desk to manage the ShippingConfig database table.

For more information about shipping objects, see Multiple-shipment Shipping Architecture.


_ShippingMethodManager Methods [C++]

ShippingMethodManager Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a recordset containing the current shipping methods.
GetMethodInfo | Returns a recordset containing information about one or more shipping methods.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves configuration information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets name/value pairs for the current method.
[Visual Basic]
Method | Description
CreateMethodInstance | Creates an empty instance of a shipping method.
DeleteMethodInstance | Deletes the current shipping method instance.
GetComponentConfig | Retrieves the Configuration dictionary for the shipping component, which implements the current shipping method.
GetInstalledMethodList | Returns a recordset containing the current shipping methods.
GetMethodInfo | Returns a recordset containing information about the loaded shipping method.
Initialize | Initializes the ShippingMethodManager object and connects it to a database.
LoadMethodInstance | Loads a given shipping method to be manipulated by other methods.
SaveMethodConfig | Saves configuration information about the current method.
SetCachableComponentConfig | Saves configuration and other component information for a component.
SetMethodConfig | Sets name/value pairs for the current method.


_ShippingMethodManager::CreateMethodInstance Method [C++]

ShippingMethodManager.CreateMethodInstance Method [Visual Basic]

Use this method to create a new shipping method.

Definition

[C++]
HRESULT __ShippingMethodManager::CreateMethodInstance(
  VARIANT* bOnDisk,
  VARIANT* sMethodId
);
[Visual Basic]
Function CreateMethodInstance(
  bOnDisk As Variant
) As Variant

Parameters

bOnDisk [C++]
[in] A VARIANT containing a Boolean indicating whether or not to create the shipping method on disk. This parameter is usually set to True
bOnDisk [Visual Basic]
A Variant containing a Boolean indicating whether or not to create the shipping method on disk. This parameter is usually set to True.
sMethodId [C++]
[out, retval] A VARIANT containing a BSTR that is the method ID of the new method. Set to an empty string if the bOnDisk parameter is False.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing a string that is the method ID of the new shipping method. This method returns an empty string when the bOnDisk parameter is False.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The sMethodId parameter contains valid data only if the method completes successfully.

If the shipping method is created to be saved on disk (the bOnSaved parameter is True), the function adds a new record to the current recordset with the enabled column value set to zero (0) and the shipping_method_id column set to the new shipping method ID.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Initialize the ShippingMethodManager object.
' oSMM is a Commerce.ShippingMethodManager object.
' MSCSTransactionConfigConnStr is sConnectionString, a string containing
' the connection string.

Call oSMM.Initialize(MSCSTransactionConfigConnStr)

' Create a new shipping method.
' bOnDisk is set to True.
' sShippingMethodID is sMethodID.
sShippingMethodID = oSMM.CreateMethodInstance(True)

' Set the configuration data for the pipeline component.
' sProgID, sAction, and sActionFrientlyName are strings.
' dConfigDict is a Commerce.Dictionary object.

Call oSMM.SetCachableComponentConfig(sProgID, dConfigDict, _
                 sAction, sActionFriendlyName)

' Set properties for the shipping method.

Call oSMM.SetMethodConfig(Array("shipping_method_name", "My Shipping Method", "description", "Cheapest but slowest shipping method", "enabled", 1))

' Save the configured shipping method.
oSMM.SaveMethodConfig

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::DeleteMethodInstance Method [C++]

ShippingMethodManager.DeleteMethodInstance Method [Visual Basic]

Use this method to delete the current shipping method instance.

Definition

[C++]
HRESULT _ShippingMethodManager::DeleteMethodInstance(void);
[Visual Basic]
Sub DeleteMethodInstance()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

[Visual Basic]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object.
' sMethodId is set to sShippingMethodId,
' the method ID of the new method.

Call oSMM.LoadMethodInstance(sShippingMethodId)
oSMM.DeleteMethodInstance

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::GetComponentConfig Method [C++]

ShippingMethodManager.GetComponentConfig Method [Visual Basic]

Use this method to retrieve the Configuration dictionary for the shipping component to implement the current shipping method. The shipping method must be loaded using the LoadMethodInstance method before calling the GetComponentConfig method.

Definition

[C++]
HRESULT _ShippingMethodManager::GetComponentConfig(
  VARIANT* dConfig
);
[Visual Basic]
Function GetComponentConfig() As Variant

Parameters

dConfig [C++]
[out, retval] A pointer to a VARIANT containing the Configuration dictionary.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the Configuration dictionary for the current shipping method.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

[C++]

The dConfig parameter points to valid data only if the method completes successfully.

[Visual Basic]

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is an initialized, loaded Commerce.ShippingMethodManager object.

Set dConfig = oSMM.GetComponentConfig

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::GetInstalledMethodList Method [C++]

ShippingMethodManager.GetInstalledMethodList Method [Visual Basic]

Use this method to get a list of the current shipping methods. The GetInstalledMethodList method allows you to filter the list, select the columns to return, and to sort the list into a particular order.

Definition

[C++]
HRESULT _ShippingMethodManager::GetInstalledMethodList(
  VARIANT* Filter,
  VARIANT* OrderBy,
  VARIANT* columns,
  VARIANT* rsReturn
);
[Visual Basic]
Function GetInstalledMethodList(
  Filter As Variant,
  OrderBy As Variant,
  columns As Variant
) As Variant

Parameters

Filter [C++]
[in] A pointer to a VARIANT that contains a BSTR that becomes the WHERE clause of the query. Pass a null variant if no filtering is wanted. An example filter is "enabled = 1". This will cause the GetInstalledMethodList method to only return enabled shipping methods. To return shipping methods for a specific language, such as English, use the filter "language_id = en".
Filter [Visual Basic]
A String that becomes the WHERE clause of the query. Pass Null if no filtering is wanted. An example filter is "enabled = 1". This will cause the GetInstalledMethodList method to only return enabled shipping methods. To return shipping methods for a specific language, such as English, use "language_id = en".
OrderBy [C++]
[in] A pointer to a VARIANT that contains a BSTR that becomes the ORDER BY clause of the query. Pass a null variant if no ordering is wanted. An example OrderBy argument is "shipping_method_name". This will cause the results to be sorted by the shipping method name.
OrderBy [Visual Basic]
A String that becomes the ORDER BY clause of the query. Pass Null if no ordering is wanted. An example OrderBy argument is "shipping_method_name". This will cause the results to be sorted by the shipping method name.
columns [C++]
[in] A pointer to a VARIANT that contains a SAFEARRAY of column names of the values to retrieve. If an empty array is passed, all columns from the ShippingConfig table are returned.
columns [Visual Basic]
An Array of column names of the values to retrieve. If an empty array is passed, all columns from the ShippingConfig table are returned.
rsReturn [C++]
[out, retval] A pointer to a VARIANT containing an ADO Recordset object with the wanted values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object that contains the results of the query.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The rsResult parameter points to valid data only if the method completes successfully.

The GetInstalledMethodList method constructs a SQL query from its three parameters, runs it against the current ShippingConfig table, and returns the result in an ADO Recordset object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object.
' sFilter is set to filter.
' sOrderBy is set to null, so there will be no ordering.
' AColumns is an array of column names of the values to retrieve.
' rsMethodList is a recordset.

Set rsMethodList = oSMM.GetInstalledMethodList( _
                             "enabled = 1", _
                             Null, _
                             Array("shipping_method_name") _
                             )

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping

Multi-Lingual Shipping Methods


_ShippingMethodManager::GetMethodInfo Method [C++]

ShippingMethodManager.GetMethodInfo Method [Visual Basic]

Use this method to retrieve information about the database attributes of one or more columns in the ShippingConfig table.

Definition

[C++]
HRESULT _ShippingMethodManager::GetMethodInfo(
  VARIANT* columns,
  VARIANT* rsResult
);
[Visual Basic]
Function GetMethodInfo(
  columns As Variant
) As Variant

Parameters

columns [C++]
[in] A VARIANT containing a SAFEARRAY of BSTR strings containing names of the columns. Specify an empty array to return all columns.
columns [Visual Basic]
An Array of strings containing names of the columns. Specify an empty array to return all columns.
rsResult [C++]
[out, retval] A pointer to a VARIANT containing an ADO Recordset object that contains the information about the requested database columns.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object that contains the information about the wanted columns.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The rsResult parameter points to valid data only if the method completes successfully.

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

This method returns an ADO Recordset object containing the data type, defined size, and attributes of the requested columns in the ShippingConfig table.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is an initialized, loaded Commerce.ShippingMethodManager object
' rsResult is an ADO recordset

Set rsResult = oSMM.GetMethodInfo(Array("shipping_method_name", "description", "enabled"))

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::Initialize Method [C++]

ShippingMethodManager.Initialize Method [Visual Basic]

Use this method to initialize a ShippingMethodManager object and connect it to a database.

Definition

[C++]
HRESULT _ShippingMethodManager::Initialize(
  VARIANT* connection_string
);
[Visual Basic]
Sub Initialize(
  connection_string As Variant
)

Parameters

connection_string [C++]
[in] A pointer to a VARIANT containing a BSTR with the connection string.
connection_string [Visual Basic]
A String containing the connection string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is a Commerce.ShippingMethodManager object.
' sConnectionString is a string containing the connection
' string.

oSMM.Initialize(sConnectionString)

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::LoadMethodInstance Method [C++]

ShippingMethodManager.LoadMethodInstance Method [Visual Basic]

Use this method to load an instance of a given shipping method.

Definition

[C++]
HRESULT _ShippingMethodManager::LoadMethodInstance(
  VARIANT* methodid
);
[Visual Basic]
Sub LoadMethodInstance(
  methodid As Variant
)

Parameters

methodid [C++]
[in] A pointer to a VARIANT containing a BSTR that is the method ID of the shipping method.
methodid [Visual Basic]
A String containing the method ID of the shipping method.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method loads an instance of the requested shipping method as a single record in the current recordset.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is an initialized Commerce.ShippingMethodManager object.
' sMethodId is a string containing the method ID.

oSMM.LoadMethodInstance(sMethodId)

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SaveMethodConfig Method [C++]

ShippingMethodManager.SaveMethodConfig Method [Visual Basic]

Use this method to save the current shipping method information, which was set with the SetMethodConfig method.

Definition

[C++]
HRESULT __ShippingMethodManager::SaveMethodConfig(void);
[Visual Basic]
Sub SaveMethodConfig()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The SaveMethodConfig method saves the current shipping method configuration data.

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

[Visual Basic]

Example

' oSMM is a Commerce.ShippingMethodManager object.

oSMM.SaveMethodConfig

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SetCachableComponentConfig Method [C++]

ShippingMethodManager.SetCachableComponentConfig Method [Visual Basic]

Use this method to set the configuration data for the pipeline component, and other component information.

Definition

[C++]
HRESULT __ShippingMethodManager::SetCachableComponentConfig(
  VARIANT* progid,
  VARIANT* configdict,
  VARIANT* action,
  VARIANT* actionfriendlyname
);
[Visual Basic]
Sub SetCachableComponentConfig(
  progid As Variant,
  configdict As Variant,
  action As Variant,
  actionfriendlyname As Variant
)

Parameters

progid [C++]
[in] A pointer to a VARIANT containing a BSTR that is the ProgID of the pipeline component.
progid [Visual Basic]
A String containing the ProgID of the pipeline component.
configdict [C++]
[in] A VARIANT containing a Dictionary object holding the configuration information for the component.
configdict [Visual Basic]
A Dictionary object holding the configuration information for the component.
action [C++]
[in] A VARIANT containing a BSTR with the name of the ASP edit page for the shipping component.
action [Visual Basic]
A String containing the name of the ASP edit page for the shipping component.
actionfriendlyname [C++]
[in] A VARIANT containing a BSTR with a friendly name for the ASP edit page for the shipping component.
actionfriendlyname [Visual Basic]
A String containing a friendly name for the ASP edit page for the shipping component.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

This method takes the Configuration dictionary for the component and prepares it to be saved along with the current configuration. In addition, this method stores the ProgID, the edit page, and the page friendly names. The settings are not saved until the SaveMethodConfig method is called.

The configdict parameter is typically obtained using IPipelineComponentAdmin::GetConfigDictionary method.

This method uses the IPipelineComponentAdmin interface; therefore, all shipping components configurable by the ShippingMethodManager object must support the IPipelineComponentAdmin interface.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is a Commerce.ShippingMethodManager object.
' sProgID, sAction, and sActionFrientlyName are strings.
' dConfigDict is a Commerce.Dictionary object.

Call oSMM.SetCachableComponentConfig(sProgID, dConfigDict, _
                 sAction, sActionFriendlyName)

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


_ShippingMethodManager::SetMethodConfig Method [C++]

ShippingMethodManager.SetMethodConfig Method [Visual MethodBasic]

Use this method to set properties, such as name or description, on the current shipping method.

Definition

[C++]
HRESULT _ShippingMethodManager::SetMethodConfig(
  VARIANT* ParametersAndValues
);
[Visual Basic]
Sub SetMethodConfig(
  ParametersAndValues As Variant
)

Parameters

ParametersAndValues [C++]
[in] A pointer to a VARIANT containing a SAFEARRAY that contains name/value pairs in successive elements.
ParametersAndValues [Visual Basic]
An Array containing name/value pairs in successive elements.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method acts on the loaded shipping method. You must call the LoadMethodInstance or CreateMethodInstance method to load a shipping method into the ShippingMethodManager object before calling this method.

The parameter ParametersAndValues contains names and values in alternating elements. Odd subscripts contain the names of items, even subscripts contain the values.

Use the SaveMethodConfig method to save the configuration information entered with this method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oSMM is a Commerce.ShippingMethodManager object.

Call oSMM.SetMethodConfig(Array("shipping_method_name", "My Shipping Method", "description", "Cheapest but slowest shipping method", "enabled", 1))

See Also

Splitter

[Visual Basic] Shipping Object

[C++] Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

[Visual Basic] ShippingMethodManager Object

[C++] ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


SimpleFindResultInfo Object [C++]

SimpleFindResultInfo Object [Visual Basic]

Use this object to specify search criteria when using the SimpleFind and SimpleDelete methods of the OrderGroupManager object.

ProgID: | Commerce.SimpleFindResultInfo (Externally creatable)
COM Class Name: | SimpleFindResultInfo
Type Library Name: | Microsoft Commerce 2002 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _SimpleFindResultInfo
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _SimpleFindResultInfo interface to access the properties and methods of the SimpleFindResultInfo object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Properties

[C++]
Property | Type | Description
Columns | VARIANT | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | VARIANT_BOOLEAN | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | VARIANT_BOOLEAN | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | VARIANT | Specifies the column name to sort on.
PageNumber | Long | Specifies the page number of the resultset to show if the resultset exceeds the PageSize.
PageSize | Long | Specifies the page size.
SortDirection | VARIANT | Specifies the sort direction.
[Visual Basic]
Property | Type | Description
Columns | Variant | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | Boolean | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | Boolean | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | Variant | Specifies the column name to sort on.
PageNumber | Long | Specifies the page number of the resultset to show if the resultset exceeds the PageSize.
PageSize | Long | Specifies the page size.
SortDirection | Variant | Specifies the sort direction.

Remarks

The following table shows the data returned by the OrderGroupManager SimpleFind method when it has been passed to the SimpleFindResultInfo object with the JoinOrderFormInfo and JoinLineItemInfo properties set to the indicated values.

JoinOrderFormInfo | JoinLineItemInfo | SimpleFind Method Data Returned
False | False | One record for each OrderGroup that meets the search criteria. Returns OrderGroup data only. The default setting is False.
True | False | One record for each OrderForm that meets the search criteria. Returns OrderGroup and OrderForm data.
True | True | One record for each line item that meets the search criteria. Returns OrderGroup, OrderForm, and line item data.
False | True | One record for each line item that meets the search criteria. Returns OrderGroup, OrderForm, and line item data.

See Also

[C++] Business Process Objects

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager Object

[C++] OrderGroup Object

[C++] OrderForm Object

[Visual Basic] Business Process Objects

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager Object

[Visual Basic] OrderGroup Object

[Visual Basic] OrderForm Object


_SimpleFindResultInfo Properties [C++]

SimpleFindResultInfo Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Columns | VARIANT | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | VARIANT_BOOLEAN | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | VARIANT_BOOLEAN | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | VARIANT | Specifies the column name to sort on.
PageNumber | Long | Specifies the page number of the resultset to show if the resultset exceeds the PageSize.
PageSize | Long | Specifies the page size.
SortDirection | VARIANT | Specifies the sort direction.
[Visual Basic]
Property | Type | Description
Columns | Variant | Specifies a custom set of columns to be returned by the OrderGroupManager SimpleFind method.
JoinLineItemInfo | Boolean | Specifies whether to join the OrderFormLineItems table with the results.
JoinOrderFormInfo | Boolean | Specifies whether the OrderFormHeader table is joined in the results.
OrderGroupSortColumn | Variant | Specifies the column name to sort on.
PageNumber | Long | Specifies the page number of the resultset to show if the resultset exceeds the PageSize.
PageSize | Long | Specifies the page size.
SortDirection | Variant | Specifies the sort direction.


_SimpleFindResultInfo::get_Columns, put_Columns Property [C++]

SimpleFindResultInfo.Columns Property [Visual Basic]

The Columns property is a read/write Variant that specifies a custom set of columns to be returned by the SimpleFind method. The columns property, if specified, should be a string of comma-separated column names. If the property is left Null, SimpleFind will return a standard set of columns.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_Columns(
  VARIANT* Columns
);

Put method:

HRESULT _SimpleFindResultInfo::put_Columns(
  VARIANT* Columns
);
[Visual Basic]
Property Columns As Variant

Parameters

Columns [C++]
[in] When putting the property, a VARIANT that contains the names of the columns to return in addition to the default columns.
[out, retval] When getting the property, a VARIANT used to return the names of the columns in addition to the default columns.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Columns parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_JoinLineItemInfo, put_JoinLineItemInfo Property [C++]

SimpleFindResultInfo.JoinLineItemInfo Property [Visual Basic]

The JoinLineItemInfo property is a read/write Boolean that indicates whether to join the OrderFormLineItems table with the results.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_JoinLineItemInfo(
  VARIANT_BOOL* JoinLineItemInfo
);

Put method:

HRESULT _SimpleFindResultInfo::put_JoinLineItemInfo(
  VARIANT_BOOL JoinLineItemInfo
);
[Visual Basic]
Property JoinLineItemInfo As Boolean

Parameters

JoinLineItemInfo [C++]
[in] When putting the property, a VARIANT BOOLEAN that specifies whether the OrderFormLineItems table is to be joined with the results. A value of True specifies that the OrderFormLineItems table will be joined. A value of False specifies that it will not be joined.
[out, retval] When getting the property, a VARIANT BOOLEAN that indicates whether the OrderFormLineItems table is to be joined with the results. A value of True indicates that the OrderFormLineItems table will be joined. A value of False indicates that it will not be joined.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The JoinLineItemInfo parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_JoinOrderFormInfo, put_JoinOrderFormInfo Property [C++]

SimpleFindResultInfo.JoinOrderFormInfo Property [Visual Basic]

The JoinOrderFormInfo property is a read/write Boolean that indicates whether the OrderFormHeader table is joined in the results.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_JoinOrderFormInfo(
  VARIANT_BOOL* JoinOrderFormInfo
);

Put method:

HRESULT _SimpleFindResultInfo::put_JoinOrderFormInfo(
  VARIANT_BOOL JoinOrderFormInfo
);
[Visual Basic]
Property JoinOrderFormInfo As Boolean

Parameters

JoinOrderFormInfo [C++]
[in] When putting the property, a VARIANT BOOLEAN that specifies whether the OrderFormHeader table is to be joined with the results. A value of True specifies that the OrderFormHeader table will be joined. A value of False specifies that it will not be joined.
[out, retval] When getting the property, a VARIANT BOOLEAN that indicates whether the OrderFormHeader table is to be joined with the results. A value of True indicates that the OrderFormHeader table will be joined. A value of False indicates that it will not be joined.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The JoinOrderFormInfo parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_OrderGroupSortColumn, put_OrderGroupSortColumn Property [C++]

SimpleFindResultInfo.OrderGroupSortColumn Property [Visual Basic]

The OrderGroupSortColumn property is a read/write Variant that contains the column name on which to sort.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_OrderGroupSortColumn(
  VARIANT* OrderGroupSortColumn
);

Put method:

HRESULT _SimpleFindResultInfo::put_OrderGroupSortColumn(
  VARIANT* OrderGroupSortColumn
);
[Visual Basic]
Property OrderGroupSortColumn As Variant

Parameters

OrderGroupSortColumn [C++]
[in] When putting the property, a VARIANT that contains the name of the column on which to sort.
[out, retval] When getting the property, a VARIANT used to return the name of the column on which to sort.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The OrderGroupSortColumn parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_PageNumber, put_PageNumber Property [C++]

SimpleFindResultInfo.PageNumber Property [Visual Basic]

The PageNumber property is a read/write Long that contains the page number to jump to. This property setting must be coordinated with the PageSize property.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_PageNumber(
  long* PageNumber
);

Put method:

HRESULT _SimpleFindResultInfo::put_PageNumber(
  long PageNumber
);
[Visual Basic]
Property PageNumber As Long

Parameters

PageNumber [C++]
[in] When putting the property, a long that contains the page number.
[out, retval] When getting the property, a long used to return the page number.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The PageNumber parameter contains valid data only if the property is accessed successfully.

Use this property to implement a paging mechanism that allows you to page through your orders. (These orders could be viewed in a List Sheet, for example.)

This property is initialized to 1.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_PageSize, put_PageSize Property [C++]

SimpleFindResultInfo.PageSize Property [Visual Basic]

The PageSize property is a read/write Long that contains the page size. This property setting must be coordinated with the PageNumber property.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_PageSize(
  long* PageSize
);

Put method:

HRESULT _SimpleFindResultInfo::put_PageSize(
  long PageSize
);
[Visual Basic]
Property PageSize As Long
[Java]

Get method:

public int getPageSize();

Set method:

public void setPageSize(
  int PageSize
);

Parameters

PageSize [C++]
[in] When putting the property, a long that contains the page size.
[out, retval] When getting the property, a long used to return the page size.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The PageSize parameter contains valid data only if the property is accessed successfully.

Use this property to implement a paging mechanism that allows you to page through your orders. (These orders could be viewed in a List Sheet, for example.)

This property defaults to 20.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


_SimpleFindResultInfo::get_SortDirection, put_SortDirection Property [C++]

SimpleFindResultInfo.SortDirection Property [Visual Basic]

The SortDirection property is a read/write Variant that contains the sort direction. The value of this field can be "asc" for ascending or "desc" for descending.

Definition

[C++]

Get method:

HRESULT _SimpleFindResultInfo::get_SortDirection(
  VARIANT* SortDirection
);

Put method:

HRESULT _SimpleFindResultInfo::put_SortDirection(
  VARIANT* SortDirection
);
[Visual Basic]
Property SortDirection As Variant

Parameters

SortDirection [C++]
[in] When putting the property, a VARIANT that contains the sort direction.
[out, retval] When getting the property, a VARIANT used to return the sort direction.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The SortDirection parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++] Requirements for using this property are listed in SimpleFindResultInfo Object.

[Visual Basic] Requirements for using this property are listed in SimpleFindResultInfo Object.

See Also

[C++] SimpleFindResultInfo Object

[Visual Basic] SimpleFindResultInfo Object


SimpleFindSearchInfo Object [C++]

SimpleFindSearchInfo Object [Visual Basic]

Use this object to specify search criteria when conducting searching and deleting operations using the SimpleFind and SimpleDelete methods of the OrderGroupManager object.

ProgID: | Commerce.SimpleFindSearchInfo (Externally creatable)
COM Class Name: | SimpleFindSearchInfo
Type Library Name: | Microsoft Commerce 2002 OrderGroup Type Library
DLL Name: | requisition.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _SimpleFindSearchInfo
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _SimpleFindSearchInfo interface to access the properties and methods of the SimpleFindSearchInfo object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Properties

[C++]
Property | Type | Description
description | VARIANT | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | VARIANT | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | VARIANT | Specifies the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | VARIANT | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | VARIANT | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | VARIANT | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | VARIANT | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | VARIANT | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | long | Specifies the OrderGroup status. This property allows the user to filter the status (ie basket, template or new order). This property is read/write.
user_firstname | VARIANT | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | VARIANT | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | VARIANT | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | VARIANT | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | VARIANT | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.
[Visual Basic]
Property | Type | Description
description | Variant | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | Variant | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | Variant | Specifies the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | Variant | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | Variant | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | Variant | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | Variant | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | Variant | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | Long | Specifies the OrderGroup status. This property allows the user to filter the status (ie basket, template or new order). This property is read/write.
user_firstname | Variant | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | Variant | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | Variant | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | Variant | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | Variant | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.

See Also

[C++] Business Process Objects

[C++] SimpleFindResultInfo Object

[C++] OrderGroupManager Object

[C++] OrderGroup Object

[C++] OrderForm Object

[Visual Basic] Business Process Objects

[Visual Basic] SimpleFindResultInfo Object

[Visual Basic] OrderGroupManager Object

[Visual Basic] OrderGroup Object

[Visual Basic] OrderForm Object


_SimpleFindSearchInfo Properties [C++]

SimpleFindSearchInfo Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
description | VARIANT | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | VARIANT | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | VARIANT | Specifies the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | VARIANT | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | VARIANT | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | VARIANT | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | VARIANT | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | VARIANT | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | long | Specifies the OrderGroup status. This property allows the user to filter the status (ie basket, template or new order). This property is read/write.
user_firstname | VARIANT | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | VARIANT | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | VARIANT | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | VARIANT | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | VARIANT | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.
[Visual Basic]
Property | Type | Description
description | Variant | Specifies the product description to search for; if left null, the product description does not become part of the search criteria. This property is read/write.
order_number | Variant | Specifies the order number to search for; if left null, the order number does not become part of the search criteria. This property is read/write.
ordergroup_id | Variant | Specifies the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria. This property is read/write.
po_number | Variant | Specifies the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria. This property is read/write.
product_id | Variant | Specifies the product ID to search for; if left null, the product ID does not become part of the search criteria. This property is read/write.
SearchDateTimeColumn | Variant | Specifies the DateTime column name to search for; if left null, the DateTime column name does not become part of the search criteria. This property is read/write.
SearchDateTimeEnd | Variant | Specifies the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. This property is read/write.
SearchDateTimeStart | Variant | Specifies the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. This property is read/write.
StatusFilter | Long | Specifies the OrderGroup status. This property allows the user to filter the status (ie basket, template or new order). This property is read/write.
user_firstname | Variant | Specifies the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria. This property is read/write.
user_id | Variant | Specifies the user ID to search for; if left null, the user ID does not become part of the search criteria. This property is read/write.
user_lastname | Variant | Specifies the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria. This property is read/write.
user_org_id | Variant | Specifies the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria. This property is read/write.
user_org_name | Variant | Specifies the user organization to search for; if left null, the user organization does not become part of the search criteria. This property is read/write.


_SimpleFindSearchInfo::get_description, put_description Property [C++]

SimpleFindSearchInfo.description Property [Visual Basic]

The description property is a read/write Variant that specifies the product description to search for; if left null, the product description does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_description(
  VARIANT* description
);

Put method:

HRESULT _SimpleFindSearchInfo::put_description(
  VARIANT* description
);
[Visual Basic]
Property description As Variant

Parameters

description [C++]
[in] When putting the property, a VARIANT that contains the item description to search for.
[out, retval] When getting the property, a VARIANT used to return the item description to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The description parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_order_number, put_order_number Property [C++]

SimpleFindSearchInfo.order_number Property [Visual Basic]

The order_number property is a read/write Variant that specifies the order number to search for; if left null, the order number does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_order_number(
  VARIANT* order_number
);

Put method:

HRESULT _SimpleFindSearchInfo::put_order_number(
  VARIANT* order_number
);
[Visual Basic]
Property order_number As Variant

Parameters

order_number [C++]
[in] When putting the property, a VARIANT that contains the order number to search for.
[out, retval] When getting the property, a VARIANT used to return the order number to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The order_number parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_ordergroup_id, put_ordergroup_id Property [C++]

SimpleFindSearchInfo.ordergroup_id Property [Visual Basic]

The ordergroup_id property is a read/write Variant that contains the OrderGroup ID to search for; if left null, the OrderGroup ID does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_ordergroup_id(
  VARIANT* ordergroup_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_ordergroup_id(
  VARIANT* ordergroup_id
);
[Visual Basic]
Property ordergroup_id As Variant

Parameters

ordergroup_id [C++]
[in] When putting the property, a VARIANT that contains the OrderGroup ID to search for.
[out, retval] When getting the property, a VARIANT used to return the OrderGroup ID to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The ordergroup_id parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_po_number, put_po_number Property [C++]

SimpleFindSearchInfo.po_number Property [Visual Basic]

The po_number property is a read/write Variant that contains the OrderForm ID to search for; if left null, the OrderForm ID does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_po_number(
  VARIANT* po_number
);

Put method:

HRESULT _SimpleFindSearchInfo::put_po_number(
  VARIANT* po_number
);
[Visual Basic]
Property po_number As Variant

Parameters

po_number [C++]
[in] When putting the property, a VARIANT that contains the OrderForm ID to search for.
[out, retval] When getting the property, a VARIANT used to return the OrderForm ID to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The po_number parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_product_id, put_product_id Property [C++]

SimpleFindSearchInfo.product_id Property [Visual Basic]

The product_id property is a read/write Variant that contains the product ID to search for; if left null, the product ID does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_product_id(
  VARIANT* product_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_product_id(
  VARIANT* product_id
);
[Visual Basic]
Property product_id As Variant

Parameters

product_id [C++]
[in] When putting the property, a VARIANT that contains the product ID to search for.
[out, retval] When getting the property, a VARIANT used to return the product ID to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The product_id parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeColumn, put_SearchDateTimeColumn Property [C++]

SimpleFindSearchInfo.SearchDateTimeColumn Property [Visual Basic]

The SearchDateTimeColumn property is a read/write Variant that contains the name of the DateTime column to use in the search. If left null, the DateTime column name does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeColumn(
  VARIANT* SearchDateTimeColumn
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeColumn(
  VARIANT* SearchDateTimeColumn
);
[Visual Basic]
Property SearchDateTimeColumn As Variant

Parameters

SearchDateTimeColumn [C++]
[in] When putting the property, a VARIANT that contains the name of the DateTime column to use in the search.
[out, retval] When getting the property, a VARIANT used to return the name of the DateTime column to use in the search.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The SearchDateTimeColumn parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeEnd, put_SearchDateTimeEnd Property [C++]

SimpleFindSearchInfo.SearchDateTimeEnd Property [Visual Basic]

The SearchDateTimeEnd property is a read/write Variant that contains the DateTime end value to search for; if left null, the DateTime end value does not become part of the search criteria. Use this property in conjunction with the SearchDateTimeColumn property.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeEnd(
  VARIANT* SearchDateTimeEnd
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeEnd(
  VARIANT* SearchDateTimeEnd
);
[Visual Basic]
Property SearchDateTimeEnd As Variant

Parameters

SearchDateTimeEnd [C++]
[in] When putting the property, a VARIANT that contains the DateTime end value to search for.
[out, retval] When getting the property, a VARIANT used to return the DateTime end value to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

[C++] The SearchDateTimeEnd parameter contains valid data only if the property is accessed successfully.

[C++] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_SearchDateTimeStart, put_SearchDateTimeStart Property [C++]

SimpleFindSearchInfo.SearchDateTimeStart Property [Visual Basic]

The SearchDateTimeStart property is a read/write Variant that contains the DateTime start value to search for; if left null, the DateTime start value does not become part of the search criteria. Use this property in conjunction with the SearchDateTimeColumn property.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_SearchDateTimeStart(
  VARIANT* SearchDateTimeStart
);

Put method:

HRESULT _SimpleFindSearchInfo::put_SearchDateTimeStart(
  VARIANT* SearchDateTimeStart
);
[Visual Basic]
Property SearchDateTimeStart As Variant

Parameters

SearchDateTimeStart [C++]
[in] When putting the property, a VARIANT that contains the DateTime start value to search for.
[out, retval] When getting the property, a VARIANT used to return the DateTime start value to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The SearchDateTimeStart parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_StatusFilter, put_StatusFilter Property [C++]

SimpleFindSearchInfo.StatusFilter Property [Visual Basic]

The StatusFilter property is a read/write Variant that contains the OrderGroup status.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_StatusFilter(
  long* StatusFilter
);

Put method:

HRESULT _SimpleFindSearchInfo::put_StatusFilter(
  long StatusFilter
);
[Visual Basic]
Property StatusFilter As Long

Parameters

StatusFilter [C++]
[in] When putting the property, a long that contains the OrderGroup status.
[out, retval] When getting the property, a long used to return the OrderGroup status.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The StatusFilter parameter contains valid data only if the property is accessed successfully.

The value of the StatusFilter parameter determines whether a search is being made for a basket, an order, a template, or a combination of these. A bit field is used to determine this. The following table shows the meaning of the individual bits.

Status Type | Value
Basket | 1
Template | 2
New Order | 4
Custom | 8
Custom | 16

Note

  • Because the contents of baskets and templates are held in one table, and the contents of OrderGroups with all other status codes (codes 4 and greater) are held elsewhere, only certain values are permissible for searches.

    The following values are permissible:

    • 1 (basket search)
    • 2 (template search)
    • 3 (basket or template)
    • 4 (new order)
    • 12 ( 4 & 8)
    • 24 (8 & 16)

    The following values are not permissible:

    • 5 (basket or new order)
    • 6 (template or new order)
    • 9 (1 & 8)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_user_firstname, put_user_firstname Property [C++]

SimpleFindSearchInfo.user_firstname Property [Visual Basic]

The user_firstname property is a read/write Variant that contains the first name of the user to search for; if left null, the first name of the user does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_user_firstname(
  VARIANT* user_firstname
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_firstname(
  VARIANT* user_firstname
);
[Visual Basic]
Property user_firstname As Variant

Parameters

user_firstname [C++]
[in] When putting the property, a VARIANT that contains the first name of the user to search for.
[out, retval] When getting the property, a VARIANT used to return the first name of the user to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The user_firstname parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_user_id, put_user_id Property [C++]

SimpleFindSearchInfo.user_id Property [Visual Basic]

The user_id property is a read/write Variant that contains the user ID to search for; if left null, the user ID does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_user_id(
  VARIANT* user_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_id(
  VARIANT* user_id
);
[Visual Basic]
Property user_id As Variant

Parameters

user_id [C++]
[in] When putting the property, a VARIANT that contains the user ID to search for.
[out, retval] When getting the property, a VARIANT used to return the user ID to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The user_id parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_user_lastname, put_user_lastname Property [C++]

SimpleFindSearchInfo.user_lastname Property [Visual Basic]

The user_lastname property is a read/write Variant that contains the last name of the user to search for; if left null, the last name of the user does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_user_lastname(
  VARIANT* user_lastname
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_lastname(
  VARIANT* user_lastname
);
[Visual Basic]
Property user_lastname As Variant

Parameters

user_lastname [C++]
[in] When putting the property, a VARIANT that contains the last name of the user to search for.
[out, retval] When getting the property, a VARIANT used to return the last name of the user to search for.

[Visual Basic] None.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The user_lastname parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_user_org_id, put_user_org_id Property [C++]

SimpleFindSearchInfo.user_org_id Property [Visual Basic]

The user_org_id property is a read/write Variant that contains the user organization ID to search for; if left null, the user organization ID does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_user_org_id(
  VARIANT* user_org_id
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_org_id(
  VARIANT* user_org_id
);
[Visual Basic]
Property user_org_id As Variant

Parameters

user_org_id [C++]
[in] When putting the property, a VARIANT that contains the user organization ID to search for.
[out, retval] When getting the property, a VARIANT used to return the user organization ID to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The user_org_id parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


_SimpleFindSearchInfo::get_user_org_name, put_user_org_name Property [C++]

SimpleFindSearchInfo.user_org_name Property [Visual Basic]

The user_org_name property is a read/write Variant that contains the user organization name to search for; if left null, the user organization name does not become part of the search criteria.

Definition

[C++]

Get method:

HRESULT _SimpleFindSearchInfo::get_user_org_name(
  VARIANT* user_org_name
);

Put method:

HRESULT _SimpleFindSearchInfo::put_user_org_name(
  VARIANT* user_org_name
);
[Visual Basic]
Property user_org_name As Variant

Parameters

user_org_name [C++]
[in] When putting the property, a VARIANT that contains the user organization name to search for.
[out, retval] When getting the property, a VARIANT used to return the user organization name to search for.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++]

Remarks

The user_org_name parameter contains valid data only if the property is accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] SimpleFindSearchInfo Object

[C++] OrderGroupManager::SimpleDelete

[C++] OrderGroupManager::SimpleFind

[Visual Basic] SimpleFindSearchInfo Object

[Visual Basic] OrderGroupManager.SimpleDelete

[Visual Basic] OrderGroupManager.SimpleFind


Example Code for Order Processing Objects

This section provides examples of how to use business process objects. The code samples in this section are written as Active Server Pages (ASP) pages; they do not show extensive error checking or certain other formalities required for functional code.

Examples

Example | Description
Code to Create an Order | Describes how to create an order, instantiating and initializing the required objects.
Code to Add Address and Line Item Information to an Order | Describes how to create line items in an order and view the contents of the order.
Code to Save an Order to the Database | Describes how to save an order with a Template status to the database.
Code to Search for an Order and Display Line Item Information | Describes how to search the database for an order by using the SimpleFindSearchInfo and SimpleFindResultInfo objects.


Code to Create an Order

The following Active Server Pages (ASP) code creates an OrderForm object, an OrderGroup object, and an OrderGroupManager object. All of these objects are required in order to manipulate orders. Many of the default fields are not added to the Orderform object until the pipeline has been run, thus the order form that this code creates is an empty order form.

  1. Create the OrderGroupManager, OrderGroup, and OrderForm objects.
    Dim oOrderForm, oOrderGroup, oOGMgr, sUserID
Set oOrderForm = Server.CreateObject("Commerce.OrderForm")
Set oOrderGroup = Server.CreateObject("Commerce.OrderGroup")
Set oOGMgr = Server.CreateObject("Commerce.OrderGroupManager")
  2. Initialize the OrderGroup and OrderGroupManager objects. Note that in the following example, the connection strings have been formatted for better display.
    sUserID = "AAAABB4C-C33E-11D0-B8A0-A0C04FB616C7"

oOrderGroup.Initialize "Provider=SQLOLEDB.1;
                                      Integrated Security='SSPI';
                              InitialCatalog=""Retail_commerce"";
                                            DataSource=TESTMACH2;
                                       Network Library=dbmssocn",
                                                          sUserID

oOGMgr.Initialize "Provider=SQLOLEDB.1;
                                 Integrated Security='SSPI';
                         InitialCatalog=""Retail_commerce"";
                                       DataSource=TESTMACH2;
                                   Network Library=dbmssocn"


Code to Add Address and Line Item Information to an Order

The OrderGroup object links to one or more OrderForm objects, and to one or more Address dictionaries. The OrderForm object references zero or more Item dictionaries through the Items list.

  1. Create the Addresses dictionary object.
    Set oOrderForm.Addresses = Server.CreateObject("Commerce.Dictionary")
  2. Create two addresses, and add them to the order form.
    Set oOrderForm.Addresses.HomeSweetHome = _
    Server.CreateObject("Commerce.Dictionary")
oOrderForm.Addresses.HomeSweetHome.ship_to_state = "WA"
oOrderForm.Addresses.HomeSweetHome.ship_to_country = "USA"

Set oOrderForm.Addresses.HomeInTheRockies = _
    Server.CreateObject("Commerce.Dictionary")
oOrderForm.Addresses.HomeInTheRockies.ship_to_state = "WY"
oOrderForm.Addresses.HomeInTheRockies.ship_to_country = "USA"
  3. Create the order form items SimpleList object. Add four line item dictionaries to the SimpleList object, providing line item information for several dictionary elements.
    Set oOrderForm.Items = Server.CreateObject("Commerce.SimpleList")

Call oOrderForm.Items.Add( Server.CreateObject("Commerce.Dictionary"))
oOrderForm.Items(0).shipping_address_id = "test_ship_add_id1"
oOrderForm.Items(0).tax_id = "test_tax_id_string"
oOrderForm.Items(0).Value("_cy_oadjust_adjustedprice") = 100
oOrderForm.Items(0).Value("quantity") = 1

Call oOrderForm.Items.Add( Server.CreateObject("Commerce.Dictionary"))
oOrderForm.Items(1).shipping_address_id = "test_ship_add_id2"
oOrderForm.Items(1).tax_id = "test_tax_id_string2"
oOrderForm.Items(1).Value("_cy_oadjust_adjustedprice") = 200
oOrderForm.Items(1).Value("quantity") = 1

Call oOrderForm.Items.Add( Server.CreateObject("Commerce.Dictionary"))
oOrderForm.Items(2).shipping_address_id = "test_ship_add_id3"
oOrderForm.Items(2).tax_id = "test_tax_id_string3"
oOrderForm.Items(2).Value("_cy_oadjust_adjustedprice") = 100
oOrderForm.Items(2).Value("quantity") = 1

Call oOrderForm.Items.Add( Server.CreateObject("Commerce.Dictionary"))
oOrderForm.Items(3).shipping_address_id = "ship_add_id4"
oOrderForm.Items(3).tax_id = "test_tax_id_string4"
oOrderForm.Items(3).Value("_cy_oadjust_adjustedprice") = 300
oOrderForm.Items(3).Value("quantity") = 1
  4. Add the OrderForm object to the OrderGroup object.
    oOrderGroup.AddOrderform oOrderForm
  5. View the contents of one of the previously created items.
    Dim Item, itemVal
Set Item = oOrderGroup.GetItemInfo(1)
itemVal = Item.Value("_cy_oadjust_adjustedprice")
If Item.Value("_cy_oadjust_adjustedprice") <> 100 Then
    Response.Write "error in _cy_oadjust_adjustedprice"
Else
    Response.Write "correct _cy_oadjust_adjustedprice:" _
                   & itemVal & "<br>"
End If


Code to Save an Order to the Database

An order can be saved with the status of Basket, Order, Template, or a custom status. In this example, the order is saved to the database with a Template (Saved Order) status. The OrderGroup object is set to Nothing, in order to reuse the variable later in other examples.

This example code requires that you have already created the order and added items to it. For more information about creating an order, see Code to Create an Order. For more information about adding items to the order, see Code to Add Address and Line Item Information to an Order.

Dim ReqID
ReqID = oOrderGroup.SaveAsTemplate()
' Set object to Nothing in order to re-use
Set oOrderGroup = Nothing


Code to Search for an Order and Display Line Item Information

After an order has been saved to the database, you can search for it based on a variety of criteria. In this example, the OrderGroupID will serve as the basis for the search.

This example code requires that you have already saved the order to the database as a template as is described in Code to Save an Order to the Database. Note that in the following example, the connection strings have been formatted for better display.

  1. Create and initialize the OrderGroup object.
    Dim oOrderGroup
Set oOrderGroup = Server.CreateObject("Commerce.OrderGroup")
oOrderGroup.Initialize "Provider=SQLOLEDB.1;
                                      Integrated Security='SSPI';
                             Initial Catalog=""Retail_commerce"";
                                            DataSource=TESTMACH2;
                                       Network Library=dbmssocn",
                                                          sUserID
  2. Create the SimpleFindSearchInfo object and set it to search for a known OrderGroupID.
    Dim oSFSearch, sReqID
Set oSFSearch = Server.CreateObject("Commerce.SimpleFindSearchInfo")
sReqID ="754C40C6-EAA9-454C-A8AB-02789FBE0FB9"
oSFSearch.ordergroup_id = sReqID
  3. Create the SimpleFindResultInfo object and set it to return data from the OrderGroup, OrderFormHeader, and OrderFormLineItems tables. Setting the JoinLineItemInfo property to True will cause the returned result set to include data from the OrderFormLineItems table. Setting the JoinOrderFormInfo property to True will cause the returned result set to include data from the OrderFormHeader table.
    Dim oSFResult
Set osfResult =Server.CreateObject("Commerce.SimpleFindResultInfo")
oSFResult.JoinLineItemInfo = True
oSFResult.JoinOrderFormInfo = True
  4. Create a recordset to hold the search results.
    Dim oRSResults
Set oRSResults=Server.CreateObject("ADODB.Recordset")
  5. Execute the search using the OrderGroupManager.SimpleFind method. The parameters for this method are the SimpleFindSearchInfo and SimpleFindResultInfo objects. Write the success status of the search to the screen.
    Set oRSResults= oOGMgr.SimpleFind(oSFSearch, oSFResult)
If err.number <> 0 Then
    Response.Write "Search error"
Else
    Response.Write "Successful Search" & "<br>"
End If
  6. Iterate through the recordset, writing the OrderGroupID and the quantity ordered for each line item to the screen.
    While Not oRSResults.EOF
    vtDisplay = "OrderGroup ID = " & oRSResults("ordergroup_id") _
                & "<br>"
    Response.Write vtDisplay
    vtDisplay = "Quantity = " & oRSResults("quantity") _
                & "<br>" & "<br>"
    Response.Write vtDisplay
    oRSResults.MoveNext
WEnd


Pipeline Objects

Pipeline objects use pipeline configuration files to run a series of pipeline components. This section provides code samples showing how to use pipeline objects and pipeline components.

The Pipeline Programming Concepts topic describes what a pipeline is, the sequence of events in a pipeline, and how pipelines can be customized.

Objects

Visual Basic Reference | C++ Invocation | Description
MicroPipe | MicroPipe | Runs a single pipeline component from an ASP page without using a pipeline configuration file (.pcf).
MtsPipeline | MtsPipeline | Executes a non-transacted Microsoft Commerce Server 2002 pipeline.
MtsTxPipeline | MtsTxPipeline | Executes a transacted Microsoft Commerce Server 2002 pipeline.
OrderPipeline | OrderPipeline | Runs a Microsoft Commerce Server 2002 pipeline, and is particularly useful in the Content Selection Framework.
PooledPipeline | PooledPipeline | Executes a non-transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.
PooledTxPipeline | PooledTxPipeline | Executes a transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.

Examples

Example | Description
Code to Invoke a Single Pipeline Component | Describes how to use the Micropipe object to run a single component.
Code to Invoke a Pipeline | Provides sample code to set up the objects and dictionaries necessary to run a pipeline.


Pipeline Programming Concepts

A pipeline is an extensible software framework that defines and links together one or more stages of a business process, running them in sequence to complete a specific task. The functionality of a pipeline is based on three parts: pipeline components, pipeline configuration files, and pipeline framework objects. Pipeline components each complete a defined work item on the data and collectively process the order. Pipeline configuration files define the sequence in which the pipeline components are run. Pipeline framework objects invoke pipeline configuration files and pipeline components through the code on select Active Server Pages (ASP).

Pipeline Components

Pipeline Configuration Files

Pipeline Objects

Pipeline Components

Pipeline components are COM objects that perform a particular task and operate on business objects, such as an OrderForm or Dictionary object. Pipeline components may be customized and added to pipeline configuration files through the Pipeline Editor. Pipeline components can also be used independently of the Pipeline Editor and integrated into your existing system, or they can be replaced by third-party components.

Pipeline Configuration Files

Pipeline configuration files (.pcf) determine the order in which pipeline components are run and may provide configuration information to the components in the pipeline. Pipeline configuration files can be created and edited in the Pipeline Editor by opening a pipeline configuration template and saving it as a pipeline configuration file.

Pipeline configuration files are broken into two main categories: Order Processing pipelines (OPP) and Content Selection pipelines (CSP). Order Processing pipelines model the workflow for processing an order, breaking it down into discrete tasks. Content Selection pipelines are responsible for targeted content delivery of ads and discounts. In addition to OPPs and CSPs, there is one other type of pipeline, the Direct Mailer pipeline, used only by the Direct Mailer service. The following table shows the configuration files and templates that may be used for each of the pipeline categories. The file names listed in bold are included in the Commerce Server 2002 Solution Sites.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

Pipeline Category | Corresponding Pipeline Configuration Files | Corresponding Pipeline Configuration Templates
Order Processing pipeline | basket.pcf checkout.pcf product.pcf recvpo.pcf total.pcf | EventProcessing.pct Plan.pct Product.pct Purchase.pct
Content Selection pipeline | Advertising.pcf Discounts.pcf RecordEvent.pcf | ContentSelection.pct
Direct Mailer pipeline | DMLPipe.pcf | None

Pipeline Objects

Pipeline objects are COM objects that are responsible for running pipeline configuration files. The six pipeline objects are: MtsPipeline, MtsTxPipeline, PooledPipeline, PooledTxPipeline, OrderGroup, and OrderPipeline. For more information about how to use pipeline objects in your code, see Programmers Reference or Code to Invoke a Pipeline.


MicroPipe Object [C++]

MicroPipe Object [Visual Basic]

Use this object to run a single pipeline component from an Active Server Page (ASP) file without using a pipeline configuration file (.pcf).

ProgID: | Commerce.MicroPipe (Externally creatable)
COM Class Name: | CMicroPipeline
Type Library Name: | Microsoft Commerce 2002 MicroPipe Type Library
DLL Name: | micropipe.dll
Threading Model: | Both
[C++]
COM Interface Name: | IMicroPipeline
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the IMicroPipeline interface to access the properties and methods of the MicroPipe object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Execute | Runs the component indicated in the SetComponent method.
SetComponent | Indicates the pipeline component to load and execute.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the component indicated in the SetComponent method.
SetComponent | Indicates the pipeline component to load and execute.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The MicroPipe object does not explicitly use Microsoft Transaction Server (MTS). To use transactions, mark the page as transacted or use the standard MtsTxPipline object. Distributed transactions have no meaning in the MicroPipe object because the object contains a single component.

Many pipeline components use configuration information in addition to the Context and Order dictionaries. Two common ways of passing this information to the component are:

  • To create a dictionary and pass the dictionary to the component.
  • To set individual or multiple properties directly.

The first method applies only to pipeline components that implement the IPipelineComponentAdmin interface. The second is common for components written in Microsoft Visual Basic, which usually do not implement the IPipelineComponentAdmin interface.

The MicroPipe object is not available through the Common Language Runtime Interop Layer or the Base Class Library for use within the Commerce Server .NET Application Framework. In the Commerce Server .NET Application Framework, you can execute pipeline components directly using the runtime callable wrappers in the Microsoft.CommerceServer.Interop.Targeting.PipelineComponents and Microsoft.CommerceServer.Interop.Orders.PipelineComponents namespaces.

See Also

Pipeline Objects


IMicroPipeline Methods [C++]

MicroPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
Execute | Runs the component indicated in the SetComponent method.
SetComponent | Indicates the pipeline component to load and execute.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the component indicated in the SetComponent method.
SetComponent | Indicates the pipeline component to load and execute.
SetLogFile | Identifies the file in which to log pipeline events.


IMicroPipeline::Execute Method [C++]

MicroPipe.Execute Method [Visual Basic]

Use this method to run the pipeline component specified by the SetComponent method.

Definition

[C++]
HRESULT IMicroPipeline::Execute(
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function Execute(
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Long
) As Long

Parameters

pdispOrder [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Dictionary object is the Order dictionary that the pipeline component will run.
pdispOrder [Visual Basic]
A reference to a Dictionary object, usually an OrderForm object. The Order dictionary for the pipeline component to be run.
pdispContext [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary for the pipeline component to be run.
pdispContext [Visual Basic]
A reference to a Dictionary object. The Context dictionary for the pipeline component to be run.
lFlags [C++]
[in] A long integer. Reserved for future use. Must be set to zero (0).
lFlags [Visual Basic]
A Long integer. Reserved for future use. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to a long that returns the error level.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long integer indicating whether there were warnings or errors detected by the component. See the Error Values section for more details.

Error Values

[C++] This method returns the message S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | Success. The pipeline component ran successfully.
2 | Warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. The pipeline component failed to run.

Remarks

[Visual Basic]

After the script has used the MicroPipe object, it should release the object by assigning Nothing to the object reference.

For more information about programming with pipeline objects, including code samples, see Pipeline Objects.

[C++]

The pErrorLevel parameter points to valid data only if the method completes successfully.

Be sure to release the IMicroPipeline interface when finished.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMicroPipeline is a Commerce.MicroPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMicropipeline.Execute(dOrder, dContext, 0)

See Also

[C++] MicroPipe Object

[Visual Basic] MicroPipe Object

[C++] IMicroPipeline::SetComponent

[Visual Basic] MicroPipe.SetComponent

[C++] IMicroPipeline::SetLogFile

[Visual Basic] MicroPipe.SetLogFile


IMicroPipeline::SetComponent Method [C++]

MicroPipe.SetComponent Method [Visual Basic]

Use this method to specify the pipeline component to run.

Definition

[C++]
HRESULT IMicroPipeline::SetComponent(
  IDispatch* pdispComponent
);
[Visual Basic]
Sub SetComponent(
  pdispComponent As Object
)

Parameters

pdispComponent [C++]
[in] A pointer to the IDispatch interface of the pipeline component to be run.
pdispComponent [Visual Basic]
A reference to the pipeline component to be run.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A single MicroPipe object can be used to execute multiple components. Calling the SetComponent method on the MicroPipe object after setting and executing a different component earlier is permitted. In this case, the MicroPipe object releases the earlier component and sets up the new component in its place.

For more information about programming with pipeline objects, including code samples, see Pipeline Objects.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMicroPipeline is a Commerce.MicroPipeline object
' oCompPipe is an object that references the pipeline component
' to be run.

pMicropipeline.SetComponent(oCompPipe)

See Also

[C++] MicroPipe Object

[Visual Basic] MicroPipe Object

[C++] IMicroPipeline::Execute

[Visual Basic] MicroPipe.Execute

[C++] IMicroPipeline::SetLogFile

[Visual Basic] MicroPipe.SetLogFile


IMicroPipeline::SetLogFile Method [C++]

MicroPipe.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

[C++]
HRESULT IMicroPipeline::SetLogFile(
  BSTR bstrFileName
);
[Visual Basic]
Sub SetLogFile(
  bstrFileName As String
)

Parameters

bstrFileName [C++]
[in] A BSTR containing the file name for logging.
bstrFileName [Visual Basic]
A String containing the file name for logging.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

With logging, the MicroPipe object logs all of the read and write operations of the Dictionary and SimpleList objects. Errors are also recorded in the log. Because of the overhead involved, logging should be used only for debugging and should not be used in a production site.

The SetLogFile method should be called immediately before executing a pipeline. The SetLogFile method is exposed on the OrderGroup object as the LogFile property and should be called again before calling the RunPipe method.

For more information about programming with pipeline objects, including code samples, see Pipeline Objects.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMicroPipeline is a Commerce.MicroPipeline object

pMicroPipeline.SetLogFile("MicroPipeLog.txt")

See Also

[C++] MicroPipe Object

[Visual Basic] MicroPipe Object

[C++] IMicroPipeline::Execute

[Visual Basic] MicroPipe.Execute

[C++] IMicroPipeline::SetComponent

[Visual Basic] MicroPipe.SetComponent


MtsPipeline Object [C++]

MtsPipeline Object [Visual Basic]

Use this object to run a non-transacted Microsoft Commerce Server 2002 pipeline. The pipeline may be an Order Processing pipeline (OPP).

ProgID: | Commerce.MtsPipeline (Externally creatable)
COM Class Name: | CMtsPipeline
Type Library Name: | Microsoft Commerce 2002 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
[C++]

In C++, use the IPipeline interface to access the properties and methods of the MtsPipeline object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The MtsPipeline object is registered under Microsoft Transaction Server (MTS) as "transactions not supported." Use this pipeline where transactions are not needed. For more information about transactions and pipelines, see Pipeline Basics.

The MtsPipeline is usually created on each page in which it is used.

The MtsPipeline is not a pooled pipeline. For more information about pooled pipelines, see About Pooled Pipelines.


IPipeline Methods [C++]

MtsPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


IPipeline::Execute Method [C++]

MtsPipeline.Execute Method [Visual Basic]

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[C++]
HRESULT IPipeline::Execute(
  long lMode,
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function Execute(
  lMode As Long,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Long
) As Long

Parameters

lMode [C++]
[in] A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2000 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from running.
lMode [Visual Basic]
A Long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from running.
pdispOrder [C++]
[in] A pointer to the IDispatch interface of a Dictionary object, usually an OrderForm object. The Order dictionary that will be used by the pipeline.
pdispOrder [Visual Basic]
A reference to a Dictionary object, usually an OrderForm object. The Order dictionary that will be used by the pipeline.
pdispContext [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.
pdispContext [Visual Basic]
A reference to a Dictionary object. The Context dictionary that will be used by the pipeline.
lFlags [C++]
[in] An unused long integer parameter. Must be set to zero (0).
lFlags [Visual Basic]
An unused Long parameter. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to a long that returns the error level.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long indicating whether there were warnings or errors detected by components in the pipeline. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | Success. The pipeline ran successfully.
2 | Warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed to run.

Remarks

[C++] The pErrorLevel parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsPipeline is a Commerce.MtsPipeline object.
' dOrder and dContext are Commerce.Dictionary objects.

errVal = pMtsPipelineExecute(1, dOrder, dContext, 0)

See Also

[C++] MtsPipeline Object

[Visual Basic] MtsPipeline Object

[C++] IPipeline::LoadPipe

[Visual Basic] MtsPipeline.LoadPipe

[C++] IPipeline::SetLogFile

[Visual Basic] MtsPipeline.SetLogFile

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object


IPipeline::LoadPipe Method [C++]

MtsPipeline.LoadPipe Method [Visual Basic]

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[C++]
HRESULT IPipeline::LoadPipe(
  BSTR pszFileName
);
[Visual Basic]
Sub LoadPipe(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the pipeline configuration file name.
pszFileName [Visual Basic]
A String containing the pipeline configuration file name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file designated for transactions (for use in the MtsTxPipeline object).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsPipeline is a Commerce.MtsPipeline object.

errVal = pMtsPipeline.Load("CustomShip.pcf")

See Also

[C++] MtsPipeline Object

[Visual Basic] MtsPipeline Object

[C++] IPipeline::Execute

[Visual Basic] MtsPipeline.Execute

[C++] IPipeline::SetLogFile

[Visual Basic] MtsPipeline.SetLogFile

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object


IPipeline::SetLogFile Method [C++]

MtsPipeline.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

[C++]
HRESULT IPipeline::SetLogFile(
  BSTR pszFileName
);
[Visual Basic]
Sub SetLogFile(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the name of the file in which to log events.
pszFileName [Visual Basic]
A String containing the name of the file in which to log events.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment—it degrades performance and may compromise the security of credit card numbers in non-set transactions.

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling the method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline. The SetLogFile method is exposed on the OrderGroup object as the LogFile property and should be set before calling the RunPipe method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsPipeline is a Commerce.MtsPipeline object.

errVal = pMtsPipeline.SetLogFile("CustomShipping.log")

' pOrderGroup is an OrderGroup object.

pOrderGroup.LogFile = "CustomShipping.log"

See Also

[C++] MtsPipeline Object

[Visual Basic] MtsPipeline Object

[C++] IPipeline::Execute

[Visual Basic] MtsPipeline.Execute

[C++] IPipeline::LoadPipe

[Visual Basic] MtsPipeline.LoadPipe

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object


MtsTxPipeline Object [C++]

MtsTxPipeline Object [Visual Basic]

Use this object to run a transacted Microsoft Commerce Server 2002 pipeline configuration. The pipeline may be an Order Processing pipeline (OPP).

ProgID: | Commerce.MtsTxPipeline (Externally creatable)
COM Class Name: | CTxPipeline
Type Library Name: | Microsoft Commerce 2002 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
[C++]

In C++, use the IPipeline interface to access the properties and methods of the MtsTxPipeline object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The MtsTxPipeline is usually created on each page in which it is used.

The MtsTxPipeline object is registered under Microsoft Transaction Server (MTS) as "transactions required." This object holds a transaction that spans all components in the pipeline configuration. For more information about transactions and pipelines, see Pipeline Basics.

When used with a database, the MtsTxPipeline object requires an ODBC-compliant database that supports MTS.

The Microsoft Distributed Transaction Coordinator (MSDTC) service must be running in order to use the MtsTxPipeline object.

To verify that the Distributed Transaction Coordinator service is running

  1. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  2. Scroll to Distributed Transaction Coordinator and verify that the Status is Started.


IPipeline Methods [C++]

MtsTxPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


IPipeline::Execute Method [C++]

MtsTxPipeline.Execute Method [Visual Basic]

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[C++]
HRESULT IPipeline::Execute(
  long lMode,
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function Execute(
  lMode As Long,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Long
) As Long

Parameters

lMode [C++]
[in] A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2000 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
lMode [Visual Basic]
A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2000 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
pdispOrder [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Order dictionary that will be used by the pipeline, usually an OrderForm object.
pdispOrder [Visual Basic]
A reference to a Dictionary object. The Order dictionary that will be used by the pipeline, usually an OrderForm object.
pdispContext [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.
pdispContext [Visual Basic]
A reference to a Dictionary object. The Context dictionary that will be used by the pipeline.
lFlags [C++]
[in] An unused long integer parameter. Must be set to zero (0).
lFlags [Visual Basic]
An unused Long parameter. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to a long that returns the error level.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. For more details, see the Error Values section.

[Visual Basic] If this method completes successfully, it returns a Long indicating whether there were warnings or errors detected by components in the pipeline. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | Success. The pipeline ran successfully.
2 | Warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed to run.

Remarks

[C++] The pErrorLevel parameter points to valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object
' dOrder and dContext are Commerce.Dictionary objects

errVal = pMtsTxPipeline.Execute(1, dOrder, dContext, 0)

See Also

[C++] MtsTxPipeline Object

[Visual Basic] MtsTxPipeline Object

[C++] IPipeline::LoadPipe

[Visual Basic] MtsTxPipeline.LoadPipe

[C++] IPipeline::SetLogFile

[Visual Basic] MtsTxPipeline.SetLogFile


IPipeline::LoadPipe Method [C++]

MtsTxPipeline.LoadPipe Method [Visual Basic]

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[C++]
HRESULT IPipeline::LoadPipe(
  BSTR pszFileName
);
[Visual Basic]
Sub LoadPipe(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the pipeline configuration file (.pcf) name.
pszFileName [Visual Basic]
A String containing the pipeline configuration file (.pcf) name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a configuration file designated for non-transacted pipelines.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsTxPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.LoadPipe("CustomShip.pcf")

See Also

[C++] MtsTxPipeline Object

[Visual Basic] MtsTxPipeline Object

[C++] IPipeline::Execute

[Visual Basic] MtsTxPipeline.Execute

[C++] IPipeline::SetLogFile

[Visual Basic] MtsTxPipeline.SetLogFile


IPipeline::SetLogFile Method [C++]

MtsTxPipeline.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment: it degrades performance and may compromise the security of credit card numbers in non-set transactions.

Definition

[C++]
HRESULT IPipeline::SetLogFile(
  BSTR pszFileName
);
[Visual Basic]
Sub SetLogFile(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the name of the file in which to log events.
pszFileName [Visual Basic]
A String containing the name of the file in which to log events.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline. The SetLogFile method is also exposed on the OrderGroup object as the LogFile property and should be called before calling its RunPipe method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pMtsPipeline is a Commerce.MtsTxPipeline object

errVal = pMtsTxPipeline.SetLogFile("CustomShipping.log")

See Also

[C++] MtsTxPipeline Object

[Visual Basic] MtsTxPipeline Object

[C++] IPipeline::LoadPipe

[Visual Basic] MtsTxPipeline.LoadPipe

[C++] IPipeline::Execute

[Visual Basic] MtsTxPipeline.Execute


OrderPipeline Object [C++]

OrderPipeline Object [Visual Basic]

Use this object to run a Microsoft Commerce Server 2002 Content Selection pipeline. To create an Order Processing pipeline (OPP), use a PooledPipeline, PooledTxPipeline, MtxPipeline, or MtsTxPipeline object.

ProgID: | Commerce.OrderPipeline (Externally creatable)
COM Class Name: | COrderPipeline
Type Library Name: | Microsoft Commerce 2002 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both
[C++]
COM Interface Name: | IOrderPipeline
Interface ID Constant: | IID_IOrderPipeline
Header File: | pipeline.h, mspu_guids.h
[C++]

In C++, use the IOrderPipeline interface to access the properties and methods of the OrderPipeline object.

Methods

[C++]
Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The OrderPipeline should be used in Content Selection pipelines because Content Selection pipelines do not require transactions and because the OrderPipeline object is fully re-entrant by multiple threads. Other objects, such as MtsPipeline and MtsTxPipeline, must be used once, destroyed and recreated by each thread due to the rules of COM+ transactions.

The OrderPipeline object can create and run Content Selection pipelines or Order Processing pipelines (OPP); however, it is recommended that you use the OrderPipeline object only to create and run Content Selection pipelines. The OrderPipeline object is the only pipeline object that is not registered under COM+ Services.

The OrderPipeline object is usually created in the file Global.asa and put into an application collection.


IOrderPipeline Methods [C++]

OrderPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
OrderExecute | Runs the components in the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


IOrderPipeline::LoadPipe Method [C++]

OrderPipeline.LoadPipe Method [Visual Basic]

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[C++]
HRESULT IOrderPipeline::LoadPipe(
  BSTR pszFileName
);
[Visual Basic]
Sub LoadPipe(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the pipeline configuration file name.
pszFileName [Visual Basic]
A String containing the pipeline configuration file name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file designated for transactions (for use with the MtsTxPipeline or PooledTxPipeline objects).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pOrdPipeline is a Commerce.OrderPipeline object.

errVal = pOrdPipeline.Load("CustomShip.pcf")

See Also

[C++] OrderPipeline Object

[Visual Basic] OrderPipeline Object

[C++] IOrderPipeline::OrderExecute

[Visual Basic] OrderPipeline.OrderExecute

[C++] IOrderPipeline::SetLogFile

[Visual Basic] OrderPipeline.SetLogFile


IOrderPipeline::OrderExecute Method [C++]

OrderPipeline.OrderExecute Method [Visual Basic]

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[C++]
HRESULT IOrderPipeline::OrderExecute(
  long lMode,
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function OrderExecute(
  lMode As Long,
  pdispOrder As IDispatch,
  pdispContext As IDispatch,
  lFlags As Long
) As Long

Parameters

lMode [C++]
[in] A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
lMode [Visual Basic]
A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
pdispOrder [C++]
[in] A pointer to the IDispatch interface of a Dictionary object, usually an OrderForm object. The Order dictionary that will be used by the pipeline.
pdispOrder [Visual Basic]
A reference to a Dictionary object, usually an OrderForm object. The Order dictionary that will be used by the pipeline.
pdispContext [C++]
[in] A pointer to the IDispatch interface of a Dictionary object. The Context dictionary that will be used by the pipeline.
pdispContext [Visual Basic]
A reference to a Dictionary object. The Context dictionary that will be used by the pipeline.
lFlags [C++]
[in] An unused long integer parameter. Must be set to zero (0).
lFlags [Visual Basic]
An unused Long parameter. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to an integer that returns the error level.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long indicating whether there were warnings or errors detected by components in the pipeline. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | The pipeline ran successfully.
2 | A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3 | A pipeline component failed to run.

Remarks

[C++]

The pErrorLevel parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pOrdPipeline is a Commerce.OrderPipeline object.
' lMode is a Long.
' dOrder and dContext are Commerce.Dictionary objects.

errVal = pOrdPipeline.Execute(l, dOrder, dContext, 0)

See Also

[C++] OrderPipeline Object

[Visual Basic] OrderPipeline Object

[C++] IOrderPipeline::LoadPipe

[Visual Basic] OrderPipeline.LoadPipe

[C++] IOrderPipeline::SetLogFile

[Visual Basic] OrderPipeline.SetLogFile


IOrderPipeline::SetLogFile Method [C++]

OrderPipeline.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

[C++]
HRESULT IOrderPipeline::SetLogFile(
  BSTR pszFileName
);
[Visual Basic]
Sub SetLogFile(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the name of the file in which to log events.
pszFileName [Visual Basic]
A String containing the name of the file in which to log events.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be used in a production environment: it degrades performance and may compromise the security of credit card numbers in non-set transactions.

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pOrdPipeline is a Commerce.OrderPipeline object.

errVal = pOrdPipeline.SetLogFile("CustomShipping.log")

See Also

[C++] OrderPipeline Object

[Visual Basic] OrderPipeline Object

[C++] IOrderPipeline::LoadPipe

[Visual Basic] OrderPipeline.LoadPipe

[C++] IOrderPipeline::OrderExecute

[Visual Basic] OrderPipeline.OrderExecute


PooledPipeline Object [C++]

PooledPipeline Object [Visual Basic]

Use this object to run a Microsoft Commerce Server 2002 pipeline configuration file. The pipeline may be an Order Processing pipeline (OPP).

The PooledPipeline object uses COM+ object pooling to greatly increase the loading speed of pipelines, where the contained pipeline components support object pooling. For more information about pooled pipelines, see Pooled Pipelines.

ProgID: | Commerce.PooledPipeline (Externally creatable)
COM Class Name: | CPooledPipeline
Type Library Name: | Microsoft Commerce 2002 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both
[C++]
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
[C++]

In C++, use the IPipeline interface to access the properties and methods of the PooledPipeline object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Execute | Executes the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Executes the components in the pipeline.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The PooledPipeline object should be created on each Active Server Pages (ASP) page in which it is used rather that being held in Application or Sessions scope.

In general, use the PooledPipeline object only in production Web sites; use the MtsPipeline object when developing the site. If you use the PooledPipeline object during development, you will need to stop and restart Internet Information Services (IIS).

When you create custom poolable pipeline components, you must add the Component Object Model (COM) category, CATID_MSCSPIPELINE_POOLABLE, to the component to make it poolable. For more information about making a pipeline poolable, see Registering the ATL Component.

The PooledPipeline object is registered under COM+ as "transactions not supported." Use this pipeline where transactions are not needed. For more information about transactions and pipelines, see Pipeline Basics.


IPipeline Methods [C++]

PooledPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
Execute | Executes the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Executes the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


IPipeline::Execute Method [C++]

PooledPipeline.Execute Method [Visual Basic]

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[C++]
HRESULT IPipeline::Execute(
  long lMode,
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function Execute(
  lMode As Long,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Long
) As Long

Parameters

lMode [C++]
[in] A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
lMode [Visual Basic]
A Long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
pdispOrder [C++]
[in] A pointer to the IDispatch interface of the business object (typically a dictionary object or an order form object).
pdispOrder [Visual Basic]
A reference to a business object (typically a dictionary object or an order form object).
pdispContext [C++]
[in] A pointer to the IDispatch interface of the secondary business object (typically a context dictionary).
pdispContext [Visual Basic]
A reference to a secondary business object (typically a context dictionary).
lFlags [C++]
[in] An unused long integer parameter. Must be set to zero (0).
lFlags [Visual Basic]
An unused Long parameter. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to a long that returns the error level.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long indicating whether there were warnings or errors detected by components in the pipeline. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | Success. The pipeline ran successfully.
2 | Warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed to run.

Remarks

[C++]

The pErrorLevel parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dOrder, dContext are Commerce.Dictionary objects.
' pPooledPipeline is a Commerce.PooledPipeline object.

errVal = pPooledPipeline.Execute(1, dOrder, dContext, 0)

See Also

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object

[C++] IPipeline::LoadPipe

[Visual Basic] PooledPipeline.LoadPipe

[C++] IPipeline::SetLogFile

[Visual Basic] PooledPipeline.SetLogFile


IPipeline::LoadPipe Method [C++]

PooledPipeline.LoadPipe Method [Visual Basic]

Use this method to load a pipeline configuration file (.pcf) into a pipeline.

Definition

[C++]
HRESULT IPipeline::LoadPipe(
  BSTR pszFileName
);
[Visual Basic]
Sub LoadPipe(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the pipeline configuration file (.pcf) name.
pszFileName [Visual Basic]
A String containing the pipeline configuration file (.pcf) name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file that is designated to be used for transactions (for use in MtsTxPipeline or PooledTxPipeline).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pPooledPipeline is a Commerce.PooledPipeline object.

errVal = pPooledPipeline.LoadPipe("CustomShip.pcf")

See Also

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object

[C++] IPipeline::Execute

[Visual Basic] PooledPipeline.Execute

[C++] IPipeline::SetLogFile

[Visual Basic] PooledPipeline.SetLogFile


IPipeline::SetLogFile Method [C++]

PooledPipeline.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Definition

[C++]
HRESULT IPipeline::SetLogFile(
  BSTR pszFileName
);
[Visual Basic]
Sub SetLogFile(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the name of the file in which to log events.
pszFileName [Visual Basic]
A String containing the name of the file in which to log events.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be enabled in a production environment: it degrades performance and compromises the security of credit card numbers in non-set transactions. The file system must be configured to allow the process running the pipeline to have write access to the specified path.

When logging is set, the pipeline logs the pipeline components that are called and the error values that each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

Calling this method with an empty string turns off logging.

The SetLogFile method should be called immediately before running a pipeline.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pPooledPipeline is a Commerce.PooledPipeline object.

errVal = pPooledPipeline.SetLogFile("CustomShipping.log")

See Also

[C++] PooledPipeline Object

[Visual Basic] PooledPipeline Object

[C++] IPipeline::Execute

[Visual Basic] PooledPipeline.Execute

[C++] IPipeline::LoadPipe

[Visual Basic] PooledPipeline.LoadPipe


PooledTxPipeline Object [C++]

PooledTxPipeline Object [Visual Basic]

Use this object to execute a Microsoft Commerce Server 2002 pipeline. The pipeline may be an Order Processing pipeline (OPP). Use in place of the PooledPipeline object where you need transactions.

The PooledTxPipeline object uses COM+ object pooling to greatly increase the loading speed of pipelines. For more information about pooled pipelines, see Pooled Pipelines.

ProgID: | Commerce.PooledTxPipeline (Externally creatable)
COM Class Name: | CPooledTxPipeline
Type Library Name: | Microsoft Commerce 2002 Order Pipeline Type Library
DLL Name: | pipeline.dll
Threading Model: | Both
[C++]
COM Interface Name: | IPipeline
Interface ID Constant: | IID_IPipeline
Header File: | pipeline.h, mspu_guids.h
[C++]

In C++, use the IPipeline interface to access the properties and methods of the PooledTxPipeline object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.

Remarks

The PooledTxPipeline object is registered under COM+ as "transactions required." Use this pipeline where transactions are needed. For more information about transactions and pipelines, see Pipeline Basics.

The Microsoft Distributed Transaction Coordinator (MSDTC) service must be running in order to use the PooledTxPipeline object.

To verify that the Distributed Transaction Coordinator service is running

  1. Click Start, point to Programs, point to Administrative Tools, and then click Services.
  2. Scroll to Distributed Transaction Coordinator and verify that the Status is Started.

In general, use the PooledTxPipeline object only in production Web sites; use the MtsPipeline object when developing the site. If you use the PooledTxPipeline object during development, you will need to stop and restart Internet Information Services (IIS) in order to force the .pcf files to be re-read when you change them.

The PooledPipeline object should be created on each ASP page in which it is used rather than being held in Application or Session scope.

When you create custom poolable pipeline components, you must add the Component Object Model (COM) category, CATID_MSCSPIPELINE_POOLABLE, to the component to make it poolable. For more information about making a pipeline poolable, see Registering the ATL Component.


IPipeline Methods [C++]

PooledTxtPipeline Methods [Visual Basic]

Methods

[C++]
Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.
[Visual Basic]
Method | Description
Execute | Runs the components in the pipeline as configured by the LoadPipe method.
LoadPipe | Loads a pipeline configuration file (.pcf) into the pipeline.
SetLogFile | Identifies the file in which to log pipeline events.


IPipeline::Execute Method [C++]

PooledTxPipeline.Execute Method [Visual Basic]

Use this method to run the stages in the pipeline configuration file, which was previously specified by the LoadPipe method.

Definition

[C++]
HRESULT IPipeline::Execute(
  long lMode,
  IDispatch* pdispOrder,
  IDispatch* pdispContext,
  long lFlags,
  long* pErrorLevel
);
[Visual Basic]
Function Execute(
  lMode As Long,
  pdispOrder As Object,
  pdispContext As Object,
  lFlags As Long
) As Long

Parameters

lMode [C++]
[in] A long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
lMode [Visual Basic]
A Long indicating the mode in which to run the pipeline. This parameter is provided only for backward compatibility with Site Server 2.0 sites. For Commerce Server 2002 and later, use a value of one (1). A value of zero (0) will prevent the pipeline from executing.
pdispOrder [C++]
[in] A pointer to the IDispatch interface of the business object (typically a dictionary object or an order form object).
pdispOrder [Visual Basic]
A reference to a business object (typically a dictionary object or an order form object). The Order dictionary that will be used by the pipeline, usually an OrderForm object.
pdispContext [C++]
[in] A pointer to the IDispatch interface of the secondary business object (typically a context dictionary object).
pdispContext [Visual Basic]
A reference to a secondary business object (typically a context dictionary object).
lFlags [C++]
[in] An unused long integer parameter. Must be set to zero (0).
lFlags [Visual Basic]
An unused Long parameter. Must be set to zero (0).
pErrorLevel [C++]
[out,retval] A pointer to a long that returns the warning level.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long indicating whether components in the pipeline detected warnings or errors. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] In addition, the pErrorLevel parameter is set to one of the following three values:

[Visual Basic] In addition, the method returns one of the following three values:

Value | Description
1 | Success. The pipeline ran successfully.
2 | Warning. A pipeline component raised a warning. Generally, these are basket or user errors that would be reported to the user through the ASP page.
3+ | Failure. A pipeline component failed to run.

Remarks

[C++]

The pErrorLevel parameter points to valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dOrder, dContext are Commerce.Dictionary objects
' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.Execute(1, dOrder, dContext, 0)

See Also

[C++] PooledTxPipeline Object

[Visual Basic] PooledTxPipeline Object

[C++] IPipeline::LoadPipe

[Visual Basic] PooledTxPipeline.LoadPipe

[C++] IPipeline::SetLogFile

[Visual Basic] PooledTxPipeline.SetLogFile


IPipeline::LoadPipe Method [C++]

PooledTxPipeline.LoadPipe Method [Visual Basic]

Use this method to load a pipeline configuration file (.pcf) into the pipeline.

Definition

[C++]
HRESULT IPipeline::LoadPipe(
  BSTR pszFileName
);
[Visual Basic]
Sub LoadPipe(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the pipeline configuration file (.pcf) name.
pszFileName [Visual Basic]
A String containing the pipeline configuration file (.pcf) name.

Return Values

[C++] This method returns an HRESULT indicating whether or not it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The LoadPipe method must be called to initialize all pipelines.

The LoadPipe method fails if you attempt to load a pipeline configuration file that is not designated to be used for transactions (for use in MtsPipeline or PooledPipeline).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.LoadPipe("CustomShip.pcf")

See Also

[C++] PooledTxPipeline Object

[Visual Basic] PooledTxPipeline Object

[C++] IPipeline::Execute

[Visual Basic] PooledTxPipeline.Execute

[C++] IPipeline::SetLogFile

[Visual Basic] PooledTxPipeline.SetLogFile


IPipeline::SetLogFile Method [C++]

PooledTxPipeline.SetLogFile Method [Visual Basic]

Use this method to identify the file in which to log the operations of the pipeline component.

Note

  • This method is for use by developers who want to analyze pipeline configuration file information. Logging should never be enabled in a production environment: it degrades performance and could compromise the security of credit card numbers in non-set transactions. File systems must be configured to allow the process running the pipeline to have write access to the specified path.

Definition

[C++]
HRESULT IPipeline::SetLogFile(
  BSTR pszFileName
);
[Visual Basic]
Sub SetLogFile(
  pszFileName As String
)

Parameters

pszFileName [C++]
[in] A BSTR containing the name of the file in which to log events.
pszFileName [Visual Basic]
A String containing the name of the file in which to log events.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When logging is set, the pipeline logs the pipeline components that are called and the error values each component returns. The pipeline also logs all Dictionary and SimpleList object read and write operations.

The SetLogFile methodshould be called immediately before executing a pipeline.

Calling this method with an empty string turns off logging.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pPooledTxPipeline is a Commerce.PooledTxPipeline object

errVal = pPooledTxPipeline.SetLogFile("CustomShipping.log")

See Also

[C++] PooledTxPipeline Object

[Visual Basic] PooledTxPipeline Object

[C++] IPipeline::Execute

[Visual Basic] PooledTxPipeline.Execute

[C++] IPipeline::LoadPipe

[Visual Basic] PooledTxPipeline.LoadPipe


Example Code for Pipeline Objects

This section provides detailed examples of how to invoke a pipeline component and a pipeline.

Examples

Example | Description
Code to Invoke a Single Pipeline Component | Describes how to use the Micropipe object to run a single component.
Code to Invoke a Pipeline | Provides sample code to set up the objects and dictionaries necessary to run a pipeline.


Code to Invoke a Single Pipeline Component

The MicroPipe object is generally created and used on a per page basis. The steps to invoke the MicroPipe object are similar to those used to run any other pipeline:

  1. Create instances of the necessary dictionaries, the MicroPipe object, and the pipeline component.
  2. Set up the Order and Context dictionaries, and the Configuration dictionary (if necessary).
  3. Configure the component with either the Configuration dictionary or by setting component properties. The method used depends on the specific component.
  4. Load and run the MicroPipe object.
  5. Clean up objects created on the page.

The following examples show the MicroPipe object used with components configured with a dictionary and with properties.

Example of a component configured with a dictionary

The following example shows how to use the MicroPipe object with the SendSMTP pipeline component, which is configured with a dictionary:

' Create Order, Context, and Configuration dictionaries.
Set dOrder = Server.CreateObject("Commerce.Dictionary")
Set dContext = Server.CreateObject("Commerce.Dictionary")
Set dConfig    = Server.CreateObject("Commerce.Dictionary")

' Set values in the Configuration dictionary.
' Not all required values are shown.
dConfig("SubjectField") = "subject_field"
dConfig("BodyField") = "We will no longer accept bruised papayas" _
                       & " or mushy melons."
dConfig("BodyType") = 1

' Set values in the Order dictionary.
' Not all required values are shown.
dOrder("subject_field") = "To All Suppliers"

' Create an instance of the SendSMTP pipeline component.
Set pSMTP = Server.CreateObject("Commerce.SendSMTP")

' Create an instance of the MicroPipe object.
Set oMicropipe = Server.CreateObject("Commerce.MicroPipe")

' Configure the SendSMTP component with the Configuration dictionary.
pSMTP.SetConfigData dConfig

' Tell the MicroPipe which component to run, and run it.
oMicropipe.SetComponent pSMTP
errVal = oMicropipe.Execute(dOrder,dContext,lFlags)

' Checking for pipeline errors would be done here.

' Clean everything up.
Set dOrder = Nothing
Set dContext = Nothing
Set dConfig = Nothing
Set pSMTP = Nothing
Set oMicropipe = Nothing

Example of a component configured by setting properties

The following example shows how to use the MicroPipe object with a pipeline component, CopyValue3, configured by setting a property. The component is written as a Microsoft Visual Basic ActiveX control. The property, KeytoCopy, has as its value a key in the Order dictionary. The component creates a new key by copying the old key name, prefixing it with copy_, and then assigning to it the value of the original key:

' Create Order and Context dictionaries.
Set dOrder = Server.CreateObject("Commerce.Dictionary")
Set dContext = Server.CreateObject("Commerce.Dictionary")

' Create an instance of the CopyValue3 pipeline component.
Set pCopyValue = Server.CreateObject("My.CopyValue3")

' Set the dictionary key to copy - a property.
pCopyValue.KeytoCopy = "this_key"

' Set up the order dictionary - give the key to copy a value.
dOrder("this_key") = "...on the light fantastic toe"

' Create an instance of the MicroPipe object.
Set oMicropipe = Server.CreateObject("Commerce.MicroPipe")

' Tell the MicroPipe which component to run, and then run it.
oMicropipe.SetComponent pCopyValue
errVal = oMicropipe.Execute(dictOrder,dictContext,lFlags)

' Checking for pipeline errors would be done here.

' Clean everything up.
Set dOrder = Nothing
Set dContext = Nothing
Set pValue = Nothing
Set oMicropipe = Nothing


Code to Invoke a Pipeline

To use a pipeline configuration file in a pipeline requires a little more set up than using a single component in the MicroPipe object. Generally, in addition to the steps outlined above, you will need to create a MessageManager object and add messages to it in the Global.asa file. The documentation for each component indicates whether or not it uses the MessageManager object. The following code shows how the Application_OnStart procedure creates a MessageManager object and adds messages to it specifically for the ValidateCCNumber pipeline component:

<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
    ' Set up the MessageManager and messages.
    Set oMessageManager = _
                      Server.CreateObject("Commerce.MessageManager")
    Call oMessageManager.AddLanguage("usa",&h0409)
    oMessageManager.defaultLanguage = "usa"
    Call oMessageManager.AddMessage("pur_cc_expired", _
                                    "Credit card has expired.")
    Call oMessageManager.AddMessage("pur_badcc", _
                             "The credit-card number is not valid.")
    ' Set up the data functions.
    Set oDataFunctions = Server.CreateObject("Commerce.DataFunctions")
    oDataFunctions.Locale = &H0409
    Application.Lock
        Set Application("MSCSMessageManager") = oMessageManager
        Set Application("MSCSDataFunctions") = oDataFunctions
    Application.UnLock
End Sub
</SCRIPT>

Creating the Context dictionary and running the pipeline itself are so frequently done in a Commerce Server site that it makes sense to encapsulate this code in a one or more utility procedures contained in a separate Active Server Pages (ASP) page (for example, Util.asp):

<%
Function GetPipeContextUtil()
Set dContext = GetDictionary()
Set dContext.MessageManager = MSCSMessageManager
Set dContext.DataFunctions = MSCSDataFunctions
dContext.Language = sLanguage
Set dContext.CatalogManager = Application("MSCSCatalogManager")
Set dContext.CacheManager = Application("MSCSCacheManager")
Set dContext.ProfileService = MSCSProfileService

    Set GetPipeContextUtil = dContext
End Function
%>
<%
Function ExecPipeUtil(sPcfFile, dOrderForm, dContext)
    Dim sPcfPath
    sPcfPath = Request.ServerVariables("APPL_PHYSICAL_PATH") + _
                                                  "\config\" + _
                                                  sPcfFile)
    Set pPooled = Server.CreateObject("Commerce.PooledPipeline")
    Call pPooled.LoadPipe(sPcfPath)
    iErrLevel = pPooled.Execute(1, dOrderForm, dContext, 0)
    ExecPipeUtil = iErrLevel
End Function
%>

The following shows only the code that runs the pipeline. In a full application, more values would likely be added to the OrderForm object:

<%@ Language=VBScript %>
<!-- #include file="util.asp" -->
<%
    ' Create dictionary object orderform.

    Set dOrderForm = Server.CreateObject("Commerce.OrderForm")

    dOrderForm.[cc_type] = sCardType
    dOrderForm.[_cc_number] = sCardNumber
    dOrderForm.[_cc_expmonth] = sExpMonth
    dOrderForm.[_cc_expyear] = sExpYear

    ' Create the pipe context.

    Set dPipeContext = GetPipeContextUtil()

    ' Run the pipeline.
    iErrLevel = ExecPipeUtil("plan.pcf", dOrderForm, dPipeContext)

%>


Product Catalog Objects

The product catalog objects provide methods to create and manage catalogs, products, and categories in the Commerce Server 2002 Product Catalog System. These objects provide an interface for catalog data stored in a SQL Server database. Use data caching to improve the performance of the Product Catalog System by holding catalog data in memory and minimizing calls to the underlying database.

The Product Catalog Programming Concepts topic describes the concepts related to programming with product catalog objects.

Objects

Visual Basic reference | C++ invocation | Description
CatalogManager | CatalogManager | Allows management of catalogs across the entire Product Catalog System.
CatalogSets | CatalogSets | Allows filtering of multiple catalogs for different users and organizations.
CatalogSets2 | CatalogSets2 | Allows management of catalog sets in the Product Catalog System. Catalog sets allow for the presentation of different collections of catalogs to different users and organizations.
CatalogToVendorAssociation | CatalogToVendorAssociation | Allows a catalog to be associated with a particular vendor.
Category | Category | Allows management of a product hierarchy within a particular catalog. Also allows you to manipulate category properties and category relationships.
Product | Product | Allows manipulation of the relationships between a product variant and a product category. Also allows you to set the properties on a product.
ProductCatalog | ProductCatalog | Allows creation, deletion, and modification of catalog data.

Examples

Example | Description
Code to Activate or Deactivate a Product | Describes how to make a product visible or invisible to customers.
Code to Browse a Catalog | Describes how to implement catalog browsing functionality.
Code to Change How a Category is Displayed | Describes how to change the DisplayName property associated with a category.
Code to Find the Available Catalogs | Describes how to create a list of all catalog names.
Code to Hide Searchable Categories | Describes how to hide search categories from users.
Code to Perform a Search of a Catalog | Describes how to perform a catalog search.
Code to Join an External Table to Product Recordsets | Describes how to join a table or view of data to the product recordsets returned by methods in the Product Catalog System.
Code to Perform a Specification Search of a Catalog | Describes how to perform a specification search.
Code to Stage Products and Catalogs by Time | Describes how to set a time at which a catalog or product will be available to users.
Code to Use Caching with a Catalog | Describes how to implement caching with a catalog.

See Also

CatalogManager Object

CacheManager Object


Product Catalog Programming Concepts

The CatalogManager object is the foundation of the Product Catalog System object model. You use the CatalogManager object to create and manage the ProductCatalog, Category, and Product objects in the system. The CatalogSets and CatalogToVendorAssociation objects are managed directly by application code rather than through the CatalogManager object.

The CatalogManager object instantiates one or more ProductCatalog objects. Each ProductCatalog object represents a catalog in the Product Catalog System. A catalog can consist of a flat list of products or it can have a hierarchy of categories in which to organize the products. Each Category object represents a node in this hierarchy and contains products or other categories.

The CatalogManager object also manages a collection of properties. These properties are used to define the attributes of the objects in the Product Catalog System. Appropriate properties must be created before the CatalogManager object can create any other objects.

The Commerce Server 2002 product catalog objects are described in the following topics:

  • CatalogManager Object
  • ProductCatalog Object
  • Product Object
  • Category Object
  • CatalogSets Object
  • CatalogToVendorAssociation Object
  • Category and Product Properties

CatalogManager Object

The CatalogManager object is the first object you create to use the Commerce Server 2002 Product Catalog System. Typically, a single CatalogManager object is created in the Global.asa file and used throughout an application. This object sets and retrieves properties that apply to all the catalogs in the Product Catalog System. You also use the CatalogManager object to create properties, define their attributes, and to create product and category definitions using those properties. See Category and Product Properties for more information about the properties in the Product Catalog System.

The CatalogManager object provides methods for queries and free text searches across single or multiple catalogs. The CatalogManager object provides methods for importing or exporting catalogs in comma-separated values (CSV) or XML formats.

The CatalogManager.CreateCatalog and CatalogManager.GetCatalog methods return a ProductCatalog object representing a specific catalog. The CatalogManager.Catalogs property is a recordset of all the catalogs in the Product Catalog System.

ProductCatalog Object

The ProductCatalog object represents a single catalog in the Product Catalog System. A catalog can be created either as a base catalog that contains products or as a virtual catalog that references products in one or more base catalogs. A virtual catalog can present products in a different hierarchy than the base catalog that it references. In Commerce Server 2002, virtual catalogs replace the custom catalogs available in Commerce Server 2000. Custom catalogs are not supported in Commerce Server 2002. All the methods for supporting custom catalogs exist in Commerce Server 2002, but they return an error. An upgrade from Commerce Server 2000 to Commerce Server 2002 converts all custom catalogs to virtual catalogs. Virtual catalogs are more flexible than custom catalogs.

You use the ProductCatalog object to add new products and categories to a catalog, either directly or through inclusion rules, to retrieve the products or categories in a catalog, or to perform a specification search of a catalog. All of the methods of the ProductCatalog object are run from the context of a specific catalog. Most methods apply equally to both base and virtual catalogs. Because a virtual catalog presents products that are contained in a base catalog, you cannot create a product from within a virtual catalog. A virtual catalog can contain new categories that are used to present included products or categories in a different hierarchy. Virtual catalog rules and price rules apply only to virtual catalogs and cannot be used within a base catalog. Virtual catalogs can also be used to support multicurrency applications.

A virtual catalog can present categories and products from several base catalogs. This is referred to as an aggregated catalog. Category names, product IDs, and variant IDs must be unique within a catalog. A virtual catalog handles these identifiers differently from a base catalog to avoid name conflicts. It does this by appending the name of the containing catalog to the identifier. For example, the product ID property in "BaseCatalog1" is "ProductNumber". When the base catalog is included in "VirtualCatalog2" the property name is changed to "ProductNumber(BaseCatalog1)" within the virtual catalog. When a new category is created in the same virtual catalog with "VirtualCategory" specified as the category name, the name is changed to "VirtualCategory(VirtualCatalog2)".

A virtual catalog acts exactly like a base catalog from the perspective of your application, but is quite different from the perspective of Commerce Server Business Desk. Likewise, the run-time API methods and properties act identically, but the design-time methods and properties are quite different. Some methods apply only to base catalogs, while others apply only to virtual catalogs. For example, you can create products only in a base catalog and you can add inclusion or exclusion rules only to a virtual catalog. Some properties, such as the PrimaryParent property, can be edited only in a base catalog.

Each time a virtual catalog rule or a price rule is changed, the virtual catalog is marked as dirty. Each time a change is made to a base catalog the catalog is marked as dirty. These changes will not affect the contents of a virtual catalog until it is rebuilt. The VirtualCatalogStatus catalog attribute stores the state of the catalog.

By default, virtual catalogs are created as views. This makes it easier and quicker to edit a virtual catalog, but can reduce the run-time performance in comparison to base catalogs. You can materialize a virtual catalog to improve the run-time performance. The tradeoff is that it takes much longer to rebuild that catalog after editing it. The materialize.vbs script can be used to set or reset a catalog attribute so that the catalog will be materialized when it is rebuilt.

You can use the CatalogManager.AddCatalogAttribute method to extend the ProductCatalog object with user-defined attributes. You could, for example, store information about the product vendor as one or more attributes of a catalog. This would eliminate the need for the CatalogToVendorAssociation object.

The ProductCatalog object supports multilingual catalogs. ProductCatalog objects have a multilingual DisplayName attribute. Each multilingual property in a multilingual catalog has a separate value for each language in the catalog. Any ProductCatalog object method that returns these properties returns them in the current language of the catalog. This maintains backward compatibility with existing application code. The current language is specified in the Language property of the ProductCatalog object. The ProductCatalog.Language property also specifies the language for all product/category objects that are obtained from this ProductCatalog object.

The ProductCatalog.RootCategories method returns a recordset of categories that is the starting point for traversing the category hierarchy. Similarly, the ProductCatalog.RootProducts method returns a recordset of products that are not in the category hierarchy.

Product Object

The Product object represents a single product or product family in the catalog. A product definition is created by using the CatalogManager object and can be used across the Product Catalog System, but a product is always stored in the context of a single base catalog. Use the Product object to perform operations on a product, such as modifying properties, creating product variants, or managing relationships.

Category Object

The Category object represents a single category in the catalog. Categories provide a method for organizing products within a catalog. Use this object to perform various operations on a category, such as adding products or other categories, or managing relationships. You can also use the Category object to perform a search that is scoped to the Category object. All categories have a multilingual DisplayName attribute. This attribute supports multilingual catalogs and allows different categories to appear to have the same name. See Code to Change How a Category is Displayed for details.

The Category.ChildCategories property is a recordset containing the names of categories that exist below this category in the hierarchy. The Category.Products property is a recordset containing all the products that exist directly in this category.

CatalogSets Object

The CatalogSets object stores and manages catalog sets, which are arbitrary collections of catalogs. Catalog sets allow you to present different collections of catalogs to different users and organizations.

CatalogToVendorAssociation Object

The CatalogToVendorAssociation object stores and manages associations between catalogs and vendors (suppliers).

Category and Product Properties

Properties are created and managed by the CatalogManager object. Property names must be unique across the Product Catalog System; however, the same property can be shared by any number of product or category definitions. Each property has a number of built in attributes, such as PropertyName and Datatype. You can extend properties by adding user-defined attributes.

Properties can be language neutral or multilingual. Language neutral properties have a single value; multilingual properties have a different value for each language supported in a catalog. Multilingual string, enumeration, and text properties can have a default value for each language in the Product Catalog System. All properties have a multilingual DisplayName attribute, even if they are language neutral. Monetary properties can have an attribute to specify their currency. All properties have an IsRequired attribute. If the IsRequired attribute is True, then Commerce Server Business Desk enforces requiring a value for the property.

The collation order and word breaker can be specified on a per-language basis. This is done by editing an XML file that is also used to configure Business Desk. See Language Configuration for details about the XML configuration file.

See Also

Product Catalog Objects

Example Code for Product Catalog Objects

CatalogManager Object

ProductCatalog Object

Category Object

Product Object

CatalogSets Object

CatalogToVendorAssociation Object

Copyright © 1996–2002 Microsoft Corporation.
All rights reserved.


Programming Best Practices for Catalogs

This topic describes the best practices for common programming scenarios when working with catalogs. It is recommended that you also see Example Code for Product Catalog Objects.

  • Catalog Code Optimization
  • Specifying the Collation for a Catalog Language
  • Preventing Errors While Doing a Free Text Search
  • Combining Property Searches and Freetext Searches
  • Updating FullText Catalogs
  • Using Wordbreakers with Product Catalogs
  • Getting the Status of an XML Import Operation
  • Changing Non-Multilingual Properties to Multilingual
  • Converting Properties to Multilingual in a CSV File
  • Specifying Input Parameters for Search Conditions
  • Changing the Data Type of a Catalog Property
  • Converting a Commerce Server 2000 Multilingual Catalog to Commerce Server 2002
  • Adding Relationships Across Catalogs
  • Working with Root Categories
  • Adding User-Defined Attributes to Catalogs
  • Associating Additional Information with Catalog Properties
  • Working with Materialized and Non-Materialized Virtual Catalogs
  • Pricing Rules in Custom Catalogs and Virtual Catalogs
  • Using Current Product Prices vs Original Product Prices


Catalog Code Optimization

Several catalog object methods have been optimized to speed performance for a few special cases. The following methods have been optimized for this purpose:

CatalogManager.Search

Category.Products

CatalogManager.FreeTextSearch

CatalogManager.Query

One optimization is in place for the case where the record count is required, but the actual records are not required. Another optimization is in place for the case where the paged records are required in an unsorted manner, but the record count is not required.

Currently, most of the site code (both Retail site and International Retail site code) calls the APIs in the general mode: this means that both the paged records and the record count are requested. However, this method of calling the API is much costlier than the two options just described.

The following code samples demonstrate best practices to take advantage of the optimized features described above:

  • Paging through the products of a catalog
  • Querying catalogs
  • Implementing free text search

Paging through the products of a catalog

The following code sample illustrates catalog product paging that takes advantage of the optimized features:

' This applies only if you do not want the recordset to be sorted
' First get the total number of products under this category
Dim oCatalogManager
Dim oProductCatalog
Dim oCategory
Dim TotalRecords

Set oCatalogManager = CreateObject("Commerce.Catalogmanager")
Call oCatalogManager.Initialize("Provider=SQLOLEDB;Integrated Security='SSPI';Data Source=(local);Initial catalog=catalogdb", True)
Set oProductCatalog = oCatalogManager.GetCatalog("Mycatalog")
Set oCategory = oProductCatalog.getCategory("Mycategory")
'Get the total number of products and families under this category
Set oRs = oCategory.Products(12, , 1, 0, TotalRecords)

'Once you get TotalRecords Cache it and pass NULL for TotalRecords in subsequent calls.
'Use the following call to page through the products
'get the first 10 products. Pass Null to the TotalRecords parameter
Set oRs = oCategory.Products(12, , 1, 10, Null)
'get 10 products starting from the 50th product. Pass Null to the TotalRecords parameter
Set oRs = oCategory.Products(12, , 50, 10, Null)

Querying catalogs

The following code sample illustrates catalog querying that takes advantage of the optimized features:

'This applies only if you do not want the recordset to be sorted
' First get the total number of records
Dim oCatalogManager
Set oCatalogManager = CreateObject("Commerce.Catalogmanager")
Call oCatalogManager.Initialize("Provider=SQLOLEDB;Integrated Security='SSPI';Data Source=(local);
Initial catalog=catalogdb", True)
Set oRs = oCatalogManager.Search("cy_list_price>0", , "mycatalog", 14, "[ProductId],[VariantId],[cy_list_price],[Name],[Description]", , , 1, 0, "en-us", TotalRecords)
' Cache TotalRecords and do pass NULL for TotalRecords
' in subsequent calls.
' Use the following call to page through the query results
'get the first 10 records. Pass Null to the TotalRecords parameter
Set oRs = oCatalogManager.Search("cy_list_price>0", , "mycatalog", 14, "[ProductId],[VariantId],[cy_list_price],[Name],[Description]", , , 1, 10, "en-us", Null)
' Get 10 records starting from the 50th product.
' Pass Null to the TotalRecords parameter
Set oRs = oCatalogManager.Search("cy_list_price>0", , "mycatalog", 14, "[ProductId],[VariantId],[cy_list_price],[Name],[Description]", , , 50, 10, "en-us", Null)

Implementing free text search

The following code sample illustrates free text search that takes advantage of the optimized features:

' This applies only if you do not want the recordset to be sorted
' First get the total number of records
Dim oCatalogManager

Set oCatalogManager = CreateObject("Commerce.Catalogmanager")
Call oCatalogManager.Initialize("Provider=SQLOLEDB;Integrated Security='SSPI';Data Source=(local);Initial catalog=catalogdb", True)
Set oRs = oCatalogManager.Search(,"books" , "mycatalog",_
   14, "[ProductId],[VariantId],[cy_list_price],[Name], _
   [Description]", , , 1, 0, "en-us", TotalRecords)
' Cache TotalRecords and do pass NULL for TotalRecords
' in subsequent calls.
' Use the following call to page through the query results
' Get the first 10 records. Pass Null to the TotalRecords parameter
Set oRs = oCatalogManager.Search(,"books", "mycatalog", _
  14, "[ProductId],[VariantId],[cy_list_price],[Name],_
   [Description]", , , 1, 10, "en-us", Null)
' Get 10 records starting from the 50th record.
' Pass Null to the TotalRecords parameter
Set oRs = oCatalogManager.Search(,"books", "mycatalog",_
   14, "[ProductId],[VariantId],[cy_list_price], _
   [Name],[Description]", , , 50, 10, "en-us", Null)


Specifying the Collation for a Catalog Language

A collation specifies the bit patterns that represent each character and the rules by which characters are sorted and compared. Because Commerce Server 2002 supports multiple languages, you can specify the collation for each language to get better results.

You can specify the collation for a language by using the updatelanguageinfo.vbs script in the Program Files\Microsoft Commerce Server 2002\Support directory.

Add an attribute named collation to the Language element for which you want to specify the collation:

<?xml version = '1.0' encoding='utf-8' ?>
<Languages>
<Language culture_name="ja-JP"    display_name="Japanese - Japan" culture_code="0x0411" iso639x="JPN" collation="Japanese_CI_AS" word_breaker=""/>
</Languages>

This will use the Japanese_CI_AS collation for the culture code ja-JP.

Run the following script: UpdatelanguageInfo <path of the languages.xml file>.

SQL Server supports the following collations:

Sort order ID | SQL collation name
30 | SQL_Latin1_General_Cp437_BIN
31 | SQL_Latin1_General_Cp437_CS_AS
32 | SQL_Latin1_General_Cp437_CI_AS
33 | SQL_Latin1_General_Pref_CP437_CI_AS
34 | SQL_Latin1_General_Cp437_CI_AI
40 | SQL_Latin1_General_Cp850_BIN
41 | SQL_Latin1_General_Cp850_CS_AS
42 | SQL_Latin1_General_Cp850_CI_AS
43 | SQL_Latin1_General_Pref_CP850_CI_AS
44 | SQL_Latin1_General_Cp850_CI_AI
49 | SQL_1Xcompat_CP850_CI_AS
50 | Latin1_General_BIN
51 | SQL_Latin1_General_Cp1_CS_AS
52 | SQL_Latin1_General_Cp1_CI_AS
53 | SQL_Latin1_General_Pref_CP1_CI_AS
54 | SQL_Latin1_General_Cp1_CI_AI
55 | SQL_AltDiction_Cp850_CS_AS
56 | SQL_AltDiction_Pref_CP850_CI_AS
57 | SQL_AltDiction_Cp850_CI_AI
58 | SQL_Scandinavian_Pref_Cp850_CI_AS
59 | SQL_Scandinavian_Cp850_CS_AS
60 | SQL_Scandinavian_Cp850_CI_AS
61 | SQL_AltDiction_Cp850_CI_AS
71 | Latin1_General_CS_AS
72 | Latin1_General_CI_AS
73 | Danish_Norwegian_CS_AS
74 | Finnish_Swedish_CS_AS
75 | Icelandic_CS_AS
80 | Hungarian_BIN (or Albanian_BIN, Czech_BIN, and so on)1
81 | SQL_Latin1_General_Cp1250_CS_AS
82 | SQL_Latin1_General_Cp1250_CI_AS
83 | SQL_Czech_Cp1250_CS_AS
84 | SQL_Czech_Cp1250_CI_AS
85 | SQL_Hungarian_Cp1250_CS_AS
86 | SQL_Hungarian_Cp1250_CI_AS
87 | SQL_Polish_Cp1250_CS_AS
88 | SQL_Polish_Cp1250_CI_AS
89 | SQL_Romanian_Cp1250_CS_AS
90 | SQL_Romanian_Cp1250_CI_AS
91 | SQL_Croatian_Cp1250_CS_AS
92 | SQL_Croatian_Cp1250_CI_AS
93 | SQL_Slovak_Cp1250_CS_AS
94 | SQL_Slovak_Cp1250_CI_AS
95 | SQL_Slovenian_Cp1250_CS_AS
96 | SQL_Slovenian_Cp1250_CI_AS
104 | Cyrillic_General_BIN (or Ukrainian_BIN, Macedonian_BIN)
105 | SQL_Latin1_General_Cp1251_CS_AS
106 | SQL_Latin1_General_Cp1251_CI_AS
107 | SQL_Ukrainian_Cp1251_CS_AS
108 | SQL_Ukrainian_Cp1251_CI_AS
112 | Greek_BIN
113 | SQL_Latin1_General_Cp1253_CS_AS
114 | SQL_Latin1_General_Cp1253_CI_AS
120 | SQL_MixDiction_Cp1253_CS_AS
121 | SQL_AltDiction_Cp1253_CS_AS
124 | SQL_Latin1_General_Cp1253_CI_AI
128 | Turkish_BIN
129 | SQL_Latin1_General_Cp1254_CS_AS
130 | SQL_Latin1_General_Cp1254_CI_AS
136 | Hebrew_BIN
137 | SQL_Latin1_General_Cp1255_CS_AS
138 | SQL_Latin1_General_Cp1255_CI_AS
144 | Arabic_BIN
145 | SQL_Latin1_General_Cp1256_CS_AS
146 | SQL_Latin1_General_Cp1256_CI_AS
153 | SQL_Latin1_General_Cp1257_CS_AS
154 | SQL_Latin1_General_Cp1257_CI_AS
155 | SQL_Estonian_Cp1257_CS_AS
156 | SQL_Estonian_Cp1257_CI_AS
157 | SQL_Latvian_Cp1257_CS_AS
158 | SQL_Latvian_Cp1257_CI_AS
159 | SQL_Lithuanian_Cp1257_CS_AS
160 | SQL_Lithuanian_Cp1257_CI_AS
183 | SQL_Danish_Pref_Cp1_CI_AS
184 | SQL_SwedishPhone_Pref_Cp1_CI_AS
185 | SQL_SwedishStd_Pref_Cp1_CI_AS
186 | SQL_Icelandic_Pref_Cp1_CI_AS
192 | Japanese_BIN
193 | Japanese_CI_AS
194 | Korean_Wansung_BIN
195 | Korean_Wansung_CI_AS
196 | Chinese_Taiwan_Stroke_BIN
197 | Chinese_Taiwan_Stroke_CI_AS
198 | Chinese_PRC_BIN
199 | Chinese_PRC_CI_AS
200 | Japanese_CS_AS
201 | Korean_Wansung_CS_AS
202 | Chinese_Taiwan_Stroke_CS_AS
203 | Chinese_PRC_CS_AS
204 | Thai_BIN
205 | Thai_CI_AS
206 | Thai_CS_AS
210 | SQL_EBCDIC037_CP1_CS_AS
211 | SQL_EBCDIC273_CP1_CS_AS
212 | SQL_EBCDIC277_CP1_CS_AS
213 | SQL_EBCDIC278_CP1_CS_AS
214 | SQL_EBCDIC280_CP1_CS_AS
215 | SQL_EBCDIC284_CP1_CS_AS
216 | SQL_EBCDIC285_CP1_CS_AS
217 | SQL_EBCDIC297_CP1_CS_AS


Preventing Errors While Doing a Free Text Search

To prevent the "The query contained only ignored words" error while doing a free text search for some search phrases, use the UpdateFullTextCatalogs.vbs script in the Program Files\Microsoft Commerce Server 2002\Support folder.

Use the following command:

UpdateFullTextCatalogs.vbs –I

You need to run this script every time you create a catalog.

If you add a product to your catalog and find that when you do a free text search the product is not returned in the recordset, you must enable change tracking.

For performance reasons, by default the FullText catalogs are not enabled for change tracking. Therefore, every time you make changes to the catalog you must call the RegenerateFreeTextSearchIndex method of the ProductCatalog object to update the FullText catalogs. You can also enable change tracking by using SQL Server Enterprise Manager. By enabling change tracking, the contents of the FullText catalog are updated in response to changes made in the catalog. The CatalogGlobal table in the catalog database stores the FullText catalog that is created for each catalog.


Combining Property Searches and Free Text Searches

You can use the Search method of the CatalogManager object to combine property search with free text search. The following example searches all books with price less than 100 dollars:

oCatalogManager.Search(“cy_list_price<100”, “books”,”mycatalog”)

You can use the Search method of the Category object to restrict your search to a single category. You can also specify if you want to search recursively or not.

Sometimes the FreetextSearch and Query methods do not return an error and the recordset is null. The FreetextSearch and Query methods will write the error to the event log.

When doing a free text search, you can use the FreeTextSearch_Rank property to find out how well a row in the returned recordset matched your search phrase. You can also sort results based on this rank. For example:

oCatalogManager.FreeTextSearch(“books”,”mycatalog”, ,”[Name],[Description],[ FreeTextSearch_Rank]”,
“[FreeTextSearch_Rank]”)
 oCatalogManager.Search(,“books” ,”mycatalog”, ,”[Name],[Description],[ FreeTextSearch_Rank]”,
“[FreeTextSearch_Rank]”)

However, FreeTextSearch_Rank can be specified with the Search method only if the strFTSPhrase parameter is not blank.


Updating FullText Catalogs

If you have multiple Commerce Server 2002 catalogs in one FullText catalog, you can use the UpdateFulltextcatalogs.vbs script in the Program Files\Microsoft Commerce Server 2002\Support directory to update your FullText catalogs.

If you do not want FullText catalogs to be created when you create a catalog, you can set the value of the lNumFullTextCatalogs parameter in the CatalogManager.Initialize method to 0. For example:

oCatalogManager.Initialize “connection string” , true, 0

To prevent catalogs from being created during an XML import process, set the value of the fGenerateFullTextIndexes parameter in the CatalogManager.ImportXML method to false. For example:

oCatalogManager.ImportXML “xml file path”, true, true, false

If you are creating catalogs by using Business Desk, then you can use the Commerce Server MMC to set the value of the num_full_text_catalogs property of the Product catalog resource to 0.

You can create the FullText catalogs later by using the RegenerateFreeTextIndex method of the ProductCatalog object.


Using Wordbreakers with Product Catalogs

The Product Catalog System uses a neutral-language wordbreaker for searching language-insensitive content and a language-specific wordbreaker for each language in the catalog. You can change these wordbreakers to suit your needs.

To specify the wordbreaker to be used for a language, use the UpdateLanguageInfo.vbs script in the Program Files\Microsoft Commerce Server 2002\Support directory.

SQL Server 2000 supports the following wordbreakers:

Wordbreaker | Locale ID
Neutral | 0
Chinese_Simplified | 0x0804
Chinese_Traditional | 0x0404
Dutch | 0x0413
English_UK | 0x0809
English_US | 0x0409
French | 0x040c
German | 0x0407
Italian | 0x0410
Japanese | 0x0411
Korean | 0x0412
Spanish_Modern | 0x0c0a
Swedish_Default | 0x041d

By default, Commerce Server 2002 is configured to use the following wordbreakers for the following languages.

Language code | Wordbreaker
Neutral | Neutral
Chs, zh-CN | Chinese simplified
cht, zh-TW | Chinese traditional
Deu, de | German
Eng, en-GB | English_UK
Enu, en-US | English_US
Ens, es | Spanish
Fra, fr | French
Ita, it | Italian
Jpn, ja | Japanese
Kor, ko | Korean
nld, nl | Dutch
Sve, sv | Swedish

If you want to change this default mapping or associate a wordbreaker with a language, modify the languages.xml file in the Program Files\Microsoft Commerce Server 2002 folder as follows:

<?xml version = '1.0' encoding='utf-8' ?>
<Languages>
<Language culture_name="en-ZW"    display_name="English - Zimbabwe" culture_code="0x3009" iso639x="ENW" collation="" word_breaker="0x0409"/>
</Languages>

This will use the English wordbreaker for the culture en-ZW.

Run the following script: UpdateLanguageInfo <path of the languages.xml file>.

By default, the language-neutral data in the catalog uses the Neutral language wordbreaker. To use a different wordbreaker for the language-neutral data, add the following entry in languages.xml:

<Languages>
<Language culture_name="Neutral"    display_name="Neutral" culture_code="" iso639x="Neutral" collation="" word_breaker="0x0411"/>
</Languages>

This will use the Japanese wordbreaker for searching the language-neutral data and can be helpful on a Japanese installation.

Run the following script: UpdateLanguageInfo <path of the languages.xml file>.


Getting the Status of an XML Import Operation

When you are importing an XML file in an asynchronous mode, you need to know the status of your current import operation.

The catalog import creates a temporary table called ##CatalogImportStatusID that contains the status ID of the import operation currently in progress. This table contains a single field called StatusID. The Catalogstatus table contains the status of all the import operations. You can use the StatusID to get the status of the import operation from the Catalogstatus table.

Select @statusid =  StatusID from ##CatalogImportStatusID
Select * from catalogstatus where StatusId = @ statusid

If you have a very large XML file and you continue to get a 哲ot enough memory to complete this operation� error during import, install Microsoft XML Core Services (MSXML) 4.0.


Changing Non-Multilingual Properties to Multilingual

To change non-multilingual properties in your own catalog system to multilingual properties, use the Commerce Server 2002 Upgrade tool. Create an XML file as follows:

<?xml version="1.0" ?>
<UpgradeInfo>
<PropertyName>Description</PropertyName>
</UpgradeInfo >

Add a <PropertyName> tag for each property you want to convert to multilingual.

Use the following command:

CS2002Upgrade –L –N “connection string to the catalog database” –X “path of the XML file”


Converting Properties to Multilingual in a CSV File

If you want to make properties multilingual in your CSV file, first create these properties as multilingual properties and then import the CSV file.


Specifying Input Parameters for Search Conditions

For all input parameters that allow you to specify a search condition, the following two rules apply:

  • You should enclose all the property names in brackets. For example: [Country Of Origin] = N’some country’ And [Name] = N‘some name’.
  • If you are using Unicode values in search phrases, then they should be preceded by a capital N. For example: [Name] = N’My name’ and Description=N’some description’.

When passing values to parameters that accept a search condition, you should precede the property value by N and the property values should be enclosed in single quotes. You must do this if the values can contain Unicode characters. For example:

oCatalogManager.Search("[Name] = N'unicode_myname'")
oCatalogManager.Catalogs("[CatalogName] LIKE N'unicode_Books%'")

In the preceding example, unicode_myname and unicode_Books would be actual Unicode characters.


Changing the Data Type of a Catalog Property

To change the data type of a property from string to text, use the SetPropertyAttributes method of the CatalogManager object.


Converting a Commerce Server 2000 Multilingual Catalog to Commerce Server 2002

If your Commerce Server 2000 multilingual implementation conforms to the Commerce Server 2000 multilingual implementation documentation, you can use the Commerce Server 2002 Upgrade tool to upgrade to the Commerce Server 2002 multilingual implementation.

Create an XML file with the following schema:

<?xml version="1.0" ?>
<UpgradeInfo>
<Language languagecode="English" culture_name="en-US" />
<Language languagecode="french" culture_name="fr-FR" />
</UpgradeInfo >

This XML file maps the language code of the Commerce Server 2000 implementation to a culture code.

Use the following command:

CS2002Upgrade –L –N “connection string to the catalog database” –X “path of the XML file”


Adding Relationships Across Catalogs

Use the AddRelationshipToCategory and AddRelationshipToProduct methods of the Product and Category objects to add relationships from another catalog.


Working with Root Categories

If you pass an empty string to the GetCategory method of the ProductCatalog object, the Category object is exposed as a root category. This allows you to call some of the methods of the Category object as if you are calling them on the catalog. The following snippet shows how you can page through the root products in a catalog:

Set oProductCatalog = oCatalogManager.GetCatalog(“mycatalog”)
‘ Get the root category
Set oCategory = oProductCatalog.GetCategory(“”)
‘ Now get 10 products and product families starting from the 10th root product
Set oRs = oCategory.Products(12,”Name”,10,10, NumRootProducts)
‘ This call will return all products and variants in your catalog
Set oRs = oCategory. DescendantProducts(14,1, , NumRootProducts)

You can call the following methods on the root category:

  • CatalogName
  • CategoryName
  • ChildCategories
  • Products
  • DescendantProducts
  • Search


Adding User-Defined Attributes to Catalogs

To associate additional information with your catalogs, use the AddCatalogAttribute method of the CatalogManager object to add user-defined catalog attributes. You can also add an AttributeDefinition element in the XML file to create user-defined catalog attributes by importing an XML file. For example, you can add a VendorCode attribute and use it to associate a vendor with a catalog.

For example, following is an XML with the VendorCode attribute:

<?xml version="1.0" ?>
-    <MSCommerceCatalogCollection2 version="2.0">
-       <CatalogSchema>
<AttributeDefinition AttributeType="CatalogAttribute"
   name="VendorCode" dataType="string" maxLength =  "30" />
         <!—Properties and definitions go here ->
  </CatalogSchema>
 <Catalog name =”Mycatalog” VendorCode=”MyVendor”>
<!—Categories and  products go here ->
      </Catalog>
  </MSCommerceCatalogCollection2>


Associating Additional Information with Catalog Properties

You can use the AddPropertyAttribute method of the CatalogManager object to add user-defined property attributes. You can also add an AttributeDefinition element in the XML file to create user-defined property attributes by importing an XML file.

Following is a sample XML file in which the AttributeDefinition element is used:

<?xml version="1.0" ?>
-    <MSCommerceCatalogCollection2 version="2.0">
-       <CatalogSchema>
<AttributeDefinition Name="Unitofmeasure" dataType="string"
maxlength="20" />
<PropertyName =”myproperty” datatype = “string” Unitofmeasure=”lbs”/>
  </CatalogSchema>
  </MSCommerceCatalogCollection2>


Working with Materialized and Non-Materialized Virtual Catalogs

By default, virtual catalogs are implemented as SQL Server views. This makes it easier and faster to edit a virtual catalog, but it can reduce the run-time performance in comparison to base catalogs. To improve run-time performance of virtual catalogs, you can materialize your virtual catalogs. When you materialize a virtual catalog, the virtual catalog data is stored in tables. This improves the run-time performance of virtual catalogs.

You can materialize or non-materialize your virtual catalogs by using the MaterializeVC.vbs script. This file is installed in the Program Files\Microsoft Commerce Server 2002\Support directory.

To reflect base catalog changes to your virtual catalogs, you have to rebuild your virtual catalogs. For more information, see the RebuildAllVirtualCatalogs and RebuildVirtualCatalog methods.


Pricing Rules in Custom Catalogs and Virtual Catalogs

Commerce Server 2000 supported custom catalogs. Commerce Server 2002 supports virtual catalogs, an enhanced and more flexible form of custom catalogs.

The percentage multiplier pricing rule differs between custom catalogs and virtual catalogs as follows:

  • In a custom catalog the final price = base price * pricing amount /100.
  • In a virtual catalog the final price = base price + base price * pricing amount /100.

For example, to give a 10 percent discount on a product in a custom catalog you have to set the pricing amount to 90, whereas in a virtual catalog you have to set the pricing amount to -10.

When you upgrade, the Commerce Server 2002 Upgrade tool will convert your custom catalogs to virtual catalogs. The price rules on the custom catalogs will be applied to the virtual catalogs. The contents of the virtual catalogs, including the prices in the virtual catalogs, will be the same as in the custom catalogs.

The custom catalogs will be converted to virtual catalogs when you unpackage a Commerce Server 2000 site.


Using Current Product Prices vs Original Product Prices

The OriginalPrice property of a product is set only when the product is created. It is never changed.

While the OriginalPrice property contains the original/backup price of a product, the cy_list_price field contains the current price for the product. At run time, you mostly need to be concerned with cy_list_price.

The code in the Catalog API ensures that cy_list_price is either the product’s direct price or the pricing-category's indirect price. You do not need to pay attention to the OriginalPrice value, because it is an internal implementation detail and typically you will not need to directly read or write it.

For example:

  1. You create a product P1 with price $5. It sets both cy_list_price and OriginalPrice to $5.
  2. If you now assign this product indirect pricing (that is, assign it to a pricing category C1 with price = $2), then cy_list_price for P1 is changed to $2. The original price for P1 is not changed.
  3. Finally, if you change P1 to be directly priced (that is, remove its pricing-category assignment), then cy_list_price is set to the OriginalPrice (that is, the backed up price), in this case, $5.

The OriginalPrice property is used to store a backup of the "original" product price so that you can revert the price when the product is changed from indirect to direct pricing.


CatalogManager Object [C++]

CatalogManager Object [Visual Basic]

Use this object to work with the entire Product Catalog System. The methods and properties of this object affect all catalogs contained in the Product Catalog System.

ProgID: | Commerce.CatalogManager (Externally creatable)
COM Class Name: | CatalogManager
Type Library Name: | Microsoft Commerce 2002 Catalog Type Library v1.3
DLL Name: | Catalog.dll
Threading Model: | Both
[C++]
COM Interface Name: | ICatalogManager3
Interface ID Constant: | IID_ICatalogManager3
Header File: | Catalog.h, mspu_guids.h
[C++]

In C++, use the ICatalogManager3 interface to access the properties and methods of the CatalogManager object. The ICatalogManager interface exists in Microsoft Commerce Server 2000 and later versions. The ICatalogManager2 interface exists in Microsoft Commerce Server 2000 SP1 and later versions.The ICatalogManager3 interface is the default interface for the CatalogManager object and is backward compatible with the previous interfaces.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Exports updated catalog data as an Extensible Markup Language (XML)-formatted file.
ExportCSV | Exports catalog data as a comma-separated values (CSV)-formatted file.
ExportXML | Exports catalog data as an XML-formatted file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a CSV-formatted file as catalog data.
ImportXML | Imports an XML-formatted file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Changes the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.
[Visual Basic]
Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Exports updated catalog data as an Extensible Markup Language (XML)-formatted file.
ExportCSV | Exports catalog data as a comma-separated values (CSV)-formatted file.
ExportXML | Exports catalog data as an XML-formatted file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified product or category definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a CSV-format file as catalog data.
ImportXML | Imports an XML-formatted file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Changes the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.

Properties

[C++]
Property | Type | Description
Catalogs | _Recordset | Returns a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | _Recordset | Returns a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | _Recordset | This property is obsolete.
ProductDefinitions | _Recordset | Returns a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | _Recordset | Returns a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.
[Visual Basic]
Property | Type | Description
Catalogs | _Recordset | Returns a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | _Recordset | Returns a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | _Recordset | This property is obsolete.
ProductDefinitions | _Recordset | Returns a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | _Recordset | Returns a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.

Recordsets

Recordset | Description
PropertyAttribute | The default property definitions found in the CatalogAttributes table.

This topic also contains a list of Language Culture Names, Display Names, Culture Codes, and ISO 639x values that are used by Commerce Server. For more information, see Table of Language Culture Names, Codes, and ISO Values.

Remarks

Some methods of the CatalogManager object cannot be called in a transacted object. These methods are CreateCatalog, DeleteCatalog, GenerateCustomCatalog, ImportCSV, ImportXML, and RegenerateFreeTextSearchIndex. These methods involve the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

Binding to the CatalogManager object in a COM+ component that has either the Required or Requires New Transaction property set generates a run time error.


ICatalogManager3 Methods [C++]

CatalogManager Methods [Visual Basic]

Methods

[C++]
Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Exports updated catalog data as an Extensible Markup Language (XML)-formatted file.
ExportCSV | Exports catalog data as a comma-separated values (CSV)-formatted file.
ExportXML | Exports catalog data as an XML-formatted file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a CSV-formatted file as catalog data.
ImportXML | Imports an XML-formatted file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Changes the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.
[Visual Basic]
Method | Description
AddCatalogAttribute | Adds an attribute to a catalog.
AddDefinitionProperty | Adds a property to a definition.
AddDefinitionVariantProperty | Adds a variant property to a definition.
AddPropertyAttribute | Adds an attribute to a property.
AddPropertyValue | Adds a value to the list of defined values for this property. Only applies to enumerations.
CreateCatalog | Creates a new catalog.
CreateCategoryDefinition | Creates a new category definition.
CreateProductDefinition | Creates a new product definition.
CreateProperty | Creates a new property.
DeleteCatalog | Deletes a catalog.
DeleteDefinition | Deletes a product or category definition.
DeleteProperty | Deletes a property.
DeltaExportXML | Exports updated catalog data as an Extensible Markup Language (XML)-formatted file.
ExportCSV | Exports catalog data as a comma-separated values (CSV)-formatted file.
ExportXML | Exports catalog data as an XML-formatted file.
FreeTextSearch | Performs a free-text search of catalogs.
GetAttributes | Returns the catalog or property attributes in the Product Catalog System.
GetCatalog | Returns the specified catalog object.
GetDefinitionProperties | Returns the properties of a specified product or category definition.
GetPropertyAttributes | Returns all the attributes of a specified property.
GetPropertyValues | Returns a list of appropriate values for an enumeration property.
ImportCSV | Imports a CSV-format file as catalog data.
ImportXML | Imports an XML-formatted file as catalog data.
Initialize | Initializes the CatalogManager object.
Query | Performs queries against product, variant, and category data in one or more catalogs.
RebuildAllVirtualCatalogs | Rebuilds all virtual catalogs.
RemoveCatalogAttribute | Removes the specified attribute from a catalog.
RemoveDefinitionProperty | Removes the specified property or variant property from a definition.
RemovePropertyAttribute | Removes the specified attribute from a property.
RemovePropertyValue | Removes a defined value from an enumeration property.
RenameDefinition | Renames a definition.
RenameProperty | Renames a property.
Search | Performs language-specific searches in one or more catalogs.
SetDefinitionProperties | Changes the properties of a category or product definition.
SetJoinTable | Joins an external table to a table in the Product Catalog System.
SetPropertyAttributes | Changes the attributes of a property.
ValidateXML | Validates an XML-formatted file against the catalog definition.


ICatalogManager3::AddCatalogAttribute Method[C++]

CatalogManager.AddCatalogAttribute Method [Visual Basic]

Use this method to add an attribute to a catalog.

Definition

[C++]
HRESULT ICatalogManager3::AddCatalogAttribute(
  BSTR strAttributeName,
  CatalogDataTypeEnum eDataType,
  VARIANT varMaxLength
);
[Visual Basic]
Sub AddCatalogAttribute(
  strAttributeName As String,
  eDataType As CatalogDataTypeEnum,
  Optional varMaxLength As Variant
)

Parameters

strAttributeName [C++]
[in] A BSTR that contains the attribute name. See the Remarks section for a list of restricted characters.
strAttributeName [Visual Basic]
A String that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType [C++]
[in] An enumeration that contains the data type. See the Remarks section for valid values.
eDataType [Visual Basic]
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength [C++]
[in, optional] A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.
varMaxLength [Visual Basic]
A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C++] 0x88980117 [Visual Basic] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C++] 0x88980074 [Visual Basic] &H88980074 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C++] 0x88980040 [Visual Basic] &H88980040 | The length specified for this property does not lie between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C++] 0x889800A6 [Visual Basic] &H889800A6 | The enumeration or filename data types cannot be used for creating property attributes
E_CAT_BUILTIN_CATALOG_ATTRIBUTE | [C++] 0x889800B0 [Visual Basic] &H889800B0 | The catalog attribute that you specified is a built in catalog attribute and hence cannot be added or removed.
E_CAT_INVALID_DATATYPE | [C++] 0x88980074 [Visual Basic] &H88980074 | The datatype you specified is invalid.
E_CAT_MAX_ATTRIBUTES | [C++] 0x88980118 [Visual Basic] &H88980118 | You have exceeded the maximum limit of 100 attributes that can be created
E_CAT_CATALOG_ATTR_EXISTS | [C++] 0x88980110 [Visual Basic] &H88980110 | The catalog attribute that you specified already exists.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The varMaxLength parameter applies only when the eDataType parameter equals cscString. The minimum value is 1 and the maximum value is 4000. The varMaxLength parameter is ignored for all other data types.

Each catalog system is limited to 100 attributes.

Catalog attribute names, and therefore the strAttributeName parameter, are limited to a maximum length of 36 characters and cannot contain any of the following characters:

  • Period (.)
  • Comma (,)
  • Double quote (")
  • Left square bracket ([)
  • Right square bracket (])

The following table shows the values of the CatalogDataTypeEnum enumeration that are valid for this method, their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server money data type.
cscText | 10 | Indicates a Microsoft SQL Server Text data type.
cscInvalid | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.AddCatalogAttribute("Supplier", cscString, 100)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::AddDefinitionProperty Method [C++]

CatalogManager.AddDefinitionProperty Method [Visual Basic]

Use this method to add an existing property to an existing category or product definition.

Definition

[C++]
HRESULT ICatalogManager3::AddDefinitionProperty(
  BSTR strDefinitionName,
  BSTR strPropertyName
);
[Visual Basic]
Sub AddDefinitionProperty(
  strDefinitionName As String,
  strPropertyName As String
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition to which the property will be added.
strDefinitionName [Visual Basic]
A String that contains the name of the definition to which the property will be added.
strPropertyName [C++]
[in] A BSTR that contains the name of the property.
strPropertyName [Visual Basic]
A String that contains the name of the property.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property Names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The definition you specified does not exist.
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_IN_DEFINITION | [C++] 0x8898000 [Visual Basic] &H889800D | The property you specified is already part of that definition.
E_CAT_ERROR_VARIANT_PROP | [C++] 0x889800A [Visual Basic] &H8898003 | A variant property cannot be added to a Category definition.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method adds a property to a definition. Any products or categories created from the definition will also have the property. A property can only be added to a definition once. A property cannot be used in a product definition as both a property and a variant property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.AddDefinitionProperty "Printers", "Manufacturer"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionVariantProperty

[Visual Basic] CatalogManager.AddDefinitionVariantProperty

[C++] ICatalogManager3::RemoveDefinitionProperty

[Visual Basic] CatalogManager.RemoveDefinitionProperty


ICatalogManager3::AddDefinitionVariantProperty Method [C++]

CatalogManager.AddDefinitionVariantProperty Method [Visual Basic]

Use this method to add a variant property to a definition. This method is similar to the AddDefinitionProperty method. The properties added with this method will only be used by product variants.

Definition

[C++]
HRESULT ICatalogManager3::AddDefinitionVariantProperty(
  BSTR strDefinitionName,
  BSTR strPropertyName
);
[Visual Basic]
Sub AddDefinitionVariantProperty(
  strDefinitionName As String,
  strPropertyName As String
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition to which the specified variant property will be added.
strDefinitionName [Visual Basic]
A String that contains the name of the definition to which the specified variant property will be added.
strPropertyName [C++]
[in] A BSTR that contains the name of the property to be added to the specified definition.
strPropertyName [Visual Basic]
A String that contains the name of the property to be added to the specified definition.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The definition you specified does not exist.
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_IN_DEFINITION | [C++] 0x8898000 [Visual Basic] &H889800D | The property you specified is already part of that definition.
E_CAT_ERROR_VARIANT_PROP | [C++] 0x889800A [Visual Basic] &H8898003 | A variant property cannot be added to a category definition.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method adds a variant property to a definition. Any product variants created from the definition will also have the property. A property can only be added to a definition once. A property cannot be used in a product definition as both a property and a variant property.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.AddDefinitionVariantProperty "T-Shirts", "Size"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionProperty

[Visual Basic] CatalogManager.AddDefinitionProperty

[C++] ICatalogManager3::RemoveDefinitionProperty

[Visual Basic] CatalogManager.RemoveDefinitionProperty


ICatalogManager3::AddPropertyAttribute Method [C++]

CatalogManager.AddPropertyAttribute Method [Visual Basic]

Use this method to add an attribute to a property.

Definition

[C++]
HRESULT ICatalogManager3::AddPropertyAttribute(
  BSTR strAttrName,
  CatalogDataTypeEnum eDataType,
  VARIANT varMaxLength
);
[Visual Basic]
Sub AddPropertyAttribute(
  strAttrName As String,
  eDataType As CatalogDataTypeEnum,
  Optional varMaxLength As Variant
)

Parameters

strAttrName [C++]
[in] A BSTR that contains the attribute name. See the Remarks section for a list of restricted characters.
strAttrName [Visual Basic]
A String that contains the attribute name. See the Remarks section for a list of restricted characters.
eDataType [C++]
[in] An enumeration that contains the data type. See the Remarks section for valid values.
eDataType [Visual Basic]
An enumeration that contains the data type. See the Remarks section for valid values.
varMaxLength [C++]
[in, optional] A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.
varMaxLength [Visual Basic]
A VARIANT that contains the maximum string length if the eDataType parameter is cscString. This parameter is required if the eDataType parameter is cscString.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C++] 0x8898011 [Visual Basic] &H8898017 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C++] 0x8898007 [Visual Basic] &H8898004 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C++] 0x8898004 [Visual Basic] &H8898000 | The length specified for this property is not between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C++] 0x889800A [Visual Basic] &H8898006 | The enumeration or filename data types cannot be used for creating property attributes.
E_CAT_INBUILT_PROPERTY | [C++] 0x8898003 [Visual Basic] &H889800E | The property name you specified is used as a Catalog Management Inbuilt property name.
E_CAT_BUILTIN_ATTRIBUTE | [C++] 0x889800A [Visual Basic] &H8898007 | The property attribute that you specified is a built-in attribute and hence cannot be added or removed from the catalog system.
E_CAT_INVALID_DATATYPE | [C++] 0x8898007 [Visual Basic] &H8898004 | The datatype you specified is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_MAX_ATTRIBUTES | [C++] 0x8898011 [Visual Basic] &H8898018 | You have exceeded the maximum limit of 100 attributes that can be created.
E_CAT_ATTRIBUTE_EXISTS | [C++] 0x8898010 [Visual Basic] &H889801F | The property Attribute that you specified already exists.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The varMaxLength parameter applies only when the eDataType parameter equals cscString. The minimum value is 1 and the maximum value is 4000. The varMaxLength parameter is ignored for all other data types.

Each catalog system is limited to 100 attributes.

Property attribute names, and therefore the strAttrName parameter, are limited to a maximum length of 36 characters, and cannot contain any of the following characters:

  • Period (.)
  • Comma (,)
  • Double quote (")
  • Left square bracket ([)
  • Right square bracket (])

The following table shows the values of the CatalogDataTypeEnum enumeration that are valid for this method, their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server money data type.
cscText | 10 | Indicates a Microsoft SQL Server Text data type.
cscInvalid | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.AddPropertyAttribute("DisplayType", cscString)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::AddPropertyValue Method [C++]

CatalogManager.AddPropertyValue Method [Visual Basic]

Use this method to add a value to the list of defined values for the specified enumeration.

Definition

[C++]
HRESULT ICatalogManager3::AddPropertyValue(
  BSTR strPropertyName,
  BSTR strLegalValue
  BSTR strLang
);
[Visual Basic]
Sub AddPropertyValue(
  strPropertyName As String,
  strLegalValue As String
  Optional strLang As String
)

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the enumeration property for which a new value will be defined.
strPropertyName [Visual Basic]
A String that contains the name of the enumeration property for which a new value will be defined.
strLegalValue [C++]
[in] A BSTR that contains the new value.
strLegalValue [Visual Basic]
A String that contains the new value.
strLang [C++]
[in, optional] A BSTR that contains the culture name. The language culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_ENUMERATED_VALUE | [C++] 0x889800E [Visual Basic] &H8898009 | The value you specified for the enumerated property exceeds 128 characters
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009 [Visual Basic] &H889800E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_NOT_ENUM | [C++] 0x8898000 [Visual Basic] &H8898007 | The property you specified is not a cscEnumeration data-type. This operation can only be performed on cscEnumeration data types.
E_CAT_VALUE_ALREADY_ADDED | [C++] 0x8898000 [Visual Basic] &H8898008 | The enumerated value you specified is already present in the list for this property.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The AddPropertyValue method is used only for properties whose data type is cscEnumeration.

This method adds a new value to the list of defined values for an enumeration property. Any attempts by a client to set this property to a value other than one of the legal values will result in an error. This method is useful for automatic validation against properties that only have a small, fixed set of values. For example, a Color property may have red, green, and blue as the only defined values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.AddPropertyValue "color", "Blue"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::GetPropertyValues

[Visual Basic] CatalogManager.GetPropertyValues

[C++] ICatalogManager3::RemovePropertyValue

[Visual Basic] CatalogManager.RemovePropertyValue

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


ICatalogManager3::CreateCatalog Method [C++]

CatalogManager.CreateCatalog Method [Visual Basic]

Use this method to create a new catalog.

Definition

[C++]
HRESULT ICatalogManager3::CreateCatalog(
  BSTR strCatalogName,
  BSTR strProductID,
  VARIANT strProductVariantID,
  VARIANT lcidLocale,
  VARIANT strCurrency,
  VARIANT strWeightMeasure,
  VARIANT dtStartDate,
  VARIANT dtEndDate,
  VARIANT vrDefaultLanguage,
  VARIANT vrReportingLanguage,
  VARIANT_BOOL fVirtualCatalog,
  IProductCatalog3** ppNewCatalog
);
[Visual Basic]
Function CreateCatalog(
  strCatalogName As String,
  Optional strProductID As String,
  Optional strProductVariantID As Variant,
  Optional lcidLocale As Variant,
  Optional strCurrency As Variant,
  Optional strWeightMeasure As Variant,
  Optional dtStartDate As Variant,
  Optional dtEndDate As Variant
  Optional vrDefaultLanguage As Variant,
  Optional vrReportingLanguage As Variant,
  Optional fVirtualCatalog As Boolean
) As ProductCatalog

Parameters

strCatalogName [C++]
[in] A BSTR that contains the name of the catalog to be created. See the Remarks section for limitations on this parameter.
strCatalogName [Visual Basic]
A String that contains the name of the catalog to be created. See the Remarks section for limitations on this parameter.
strProductID [C++]
[in, optional] A BSTR that contains the product ID property. This parameter is optional when creating a base Catalog object, and ignored when creating a virtual Catalog object.
strProductID [Visual Basic]
A String that contains the product ID property. This parameter is optional when creating a base Catalog object, and ignored when creating a virtual Catalog object
strProductVariantID [C++]
[in, optional] A VARIANT that contains the product variant ID property. This parameter is optional when creating a base Catalog object.
strProductVariantID [Visual Basic]
A Variant that contains the product variant ID property. This parameter is optional when creating a base Catalog object.
lcidLocale [C++]
[in, optional] A VARIANT that contains the locale ID (LCID) of the catalog to be created.
lcidLocale [Visual Basic]
A Variant that contains the locale ID (LCID) of the catalog to be created.
strCurrency [C++]
[in, optional] A VARIANT that contains the currency type of the catalog to be created.
strCurrency [Visual Basic]
A Variant that contains the currency type of the catalog to be created.
strWeightMeasure [C++]
[in, optional] A VARIANT that contains the unit of weight or measure of the catalog to be created.
strWeightMeasure [Visual Basic]
A Variant that contains the unit of weight or measure of the catalog to be created.
dtStartDate [C++]
[in, optional] A VARIANT of subtype DATE that contains the start date.
dtStartDate [Visual Basic]
A Variant of subtype DATE that contains the start date.
dtEndDate [C++]
[in, optional] A VARIANT of subtype DATE that contains the end date.
dtEndDate [Visual Basic]
A Variant of subtype DATE that contains the end date.
vrDefaultLanguage [C++]
[in, optional] A VARIANT that contains the default culture name. The default value is the system culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
vrDefaultLanguage [Visual Basic]
A Variant that contains the ISO 639+1 default culture name. The default value is the system default culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
vrReportingLanguage [C++]
[in, optional] A VARIANT that contains the reporting culture name. If not supplied, the default value of vrReportingLanguage is set to the value of the vrDefaultLanguage parameter.
vrReportingLanguage [Visual Basic]
A Variant that that contains the reporting culture name. If not supplied, the default value of vrReportingLanguage is set to the value of the vrDefaultLanguage parameter.
fVirtualCatalog [C++]
[in, optional, default value (0)] A VARIANT_BOOL that specifies whether to create a virtual Catalog object. A value of True specifies create a virtual Catalog object. A value of False specifies create a base Catalog object.
fVirtualCatalog [Visual Basic]
A Boolean that specifies whether to create a virtual Catalog object. A value of True specifies create a virtual Catalog object. A value of False specifies create a base Catalog object. The default value is False.
ppNewCatalog [C++]
[out, retval] A pointer used to return the IProductCatalog3 interface of the new catalog.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the ProductCatalog object that was created.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog name you specified is invalid. The strCatalogNames parameter cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the following nine reserved characters: " [ ] , ' ( )#. You should not use these characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009E [Visual Basic] &H8898009E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters: .,"[]
E_CAT_PRODID_DOESNT_EXIST | [C++] 0x88980010 [Visual Basic] &H88980010 | The ProductID you requested to use for this Catalog does not exist in the Catalog System. You must first create the Property, after which you may create the Catalog that is based on it.
E_CAT_VARIANTID_DOESNT_EXIST | [C++] 0x88980061 [Visual Basic] &H88980061 | The VariantID you requested to use for this Catalog does not exist in the Catalog System. You must first create the Property, after which you may create the Catalog that is based on it.
E_CAT_PRODUCTID_MULTILINGUAL | [C++] 0x889800E2 [Visual Basic] &H889800E2 | The Property that you specified to be used as the ProductID is a Multilingual property. A multilingual property cannot be used as a ProductID for a catalog
E_CAT_INVALID_DATATYPE_FOR_PRODUCTID | [C++] 0x88980075 [Visual Basic] &H88980075 | The Property that you specified for the ProductID has a text, enumeration, filepath, float, money, datetime or boolean data type. A property with any of these data type cannot be used as a ProductID for a catalog
E_CAT_CATALOG_EXISTS | [C++] 0x88980001 [Visual Basic] &H88980001 | The Catalog name you specified already exists.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppNewCatalog parameter contains valid data only if the method completes successfully.

[Visual Basic] The ProductCatalog object returned by this method is valid only if it was created successfully.

If variants are to be used in a base catalog, you must provide a property name in the optional strProductVariantID parameter. If this parameter is not specified upon creation of the base catalog, any attempt to create a product variant in that catalog will fail. This does not apply to virtual catalogs.

If the strProductID or strProductVariantID parameters are of type cscString they are limited to a length of 256 characters. The strProductID or strProductVariantID parameters may not be multilingual properties or properties of type cscText.

Only properties of the type string, integer , biginteger and double can be used to create ProductIds and VariantIds.

The returned ProductCatalog object will be pre-initialized and ready for use.

If the CatalogManager object is initialized by setting the number of full-text catalogs to create to zero, then the full-text catalog will not be created for this catalog. You can later create a full-text catalog for this catalog by calling the RegenerateFreeTextSearchIndex method of the ProductCatalog object

This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

Catalog names, and therefore the strCatalogName parameter, are limited to 85 characters in length and cannot contain any of the following characters:

  • Pound sign (#)
  • Double quote (")
  • Single quote (')
  • Comma (,)
  • Left square bracket ([)
  • Right square bracket (])
  • Left bracket (()
  • Right bracket ())
  • Period (.)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'This example creates a base catalog
Set oNewBaseCatalog = myCatalogManager.CreateCatalog _
"BCatalog", "ItemNum", "SKU")

'This example creates a virtual catalog.
'It will only be active for a limited time and
'it has a specified default language
'but reports in the system language.

'vStDate is a variant containing the
'   date the catalog will become active.
'vEndDate is a variant containing the
'   date the catalog wiil become inactive.
'vLang is a variant containing a
'   culture name.

Set oNewVirtualCatalog = myCatalogManager.CreateCatalog _
("VCatalog", , , , , , vStDate, vEndDate, vLang, , True)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::DeleteCatalog

[Visual Basic] CatalogManager.DeleteCatalog

[C++] ICatalogManager3::GetCatalog

[Visual Basic] CatalogManager.GetCatalog


ICatalogManager3::CreateCategoryDefinition Method [C++]

CatalogManager.CreateCategoryDefinition Method [Visual Basic]

Use this method to create a new category definition.

Definition

[C++]
HRESULT ICatalogManager3::CreateCategoryDefinition(
  BSTR strDefinitionName
);
[Visual Basic]
Sub CreateCategoryDefinition(
  strDefinitionName As String
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the new category definition.
strDefinitionName [Visual Basic]
A String that contains the name of the new category definition.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C++] 0x8898000 [Visual Basic] &H889800A | The Definition you specified already exists.
E_CAT_DEFN_NAME_EXISTS_AS_PRODUCT | [C++] 0x8898004 [Visual Basic] &H8898004 | A product definition with the name you specified already exists. Definition names should be unique across Category and Product definitions.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Category and product definition names must be globally unique across the entire Product Catalog System. It is not possible to have a category definition and a product definition with the same name.

The initial definition is empty when it is created. To add individual properties to the definition, use the AddDefinitionProperty method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.CreateCategoryDefinition "Housewares"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionProperty

[Visual Basic] CatalogManager.AddDefinitionProperty

[C++] ICatalogManager3::CreateProductDefinition

[Visual Basic] CatalogManager.CreateProductDefinition

[C++] ICatalogManager3::DeleteDefinition

[Visual Basic] CatalogManager.DeleteDefinition


ICatalogManager3::CreateProductDefinition Method [C++]

CatalogManager.CreateProductDefinition Method [Visual Basic]

Use this method to create a new product definition.

Definition

[C++]
HRESULT ICatalogManager3::CreateProductDefinition(
  BSTR strDefinitionName
);
[Visual Basic]
Sub CreateProductDefinition(
  strDefinitionName As String
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the new product definition.
strDefinitionName [Visual Basic]
A String that contains the name of the new product definition.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C++] 0x8898000 [Visual Basic] &H889800A | The definition you specified already exists.
E_CAT_DEFN_NAME_EXISTS_AS_CATEGORY | [C++] 0x8898004 [Visual Basic] &H8898003 | A category definition with the name you specified already exists. Definition names should be unique across Category and Product definitions.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Category and product definition names must be globally unique across the entire Product Catalog System. It is not possible to have a category definition and a product definition with the same name.

The initial definition is empty when it is created. To add individual properties to the definition, use the AddDefinitionProperty or AddDefinitionVariantProperty method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.CreateProductDefinition "Microwave"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionProperty

[Visual Basic] CatalogManager.AddDefinitionProperty

[C++] ICatalogManager3::AddDefinitionVariantProperty

[Visual Basic] CatalogManager.AddDefinitionVariantProperty

[C++] ICatalogManager3::CreateCategoryDefinition

[Visual Basic] CatalogManager.CreateCategoryDefinition

[C++] ICatalogManager3::DeleteDefinition

[Visual Basic] CatalogManager.DeleteDefinition


ICatalogManager3::CreateProperty Method [C++]

CatalogManager.CreateProperty Method [Visual Basic]

Use this method to create a new property.

Definition

[C++]
HRESULT ICatalogManager3::CreateProperty(
  BSTR strPropertyName,
  CatalogDataTypeEnum eDataType,
  VARIANT varMaxLength,
  _Recordset** ppRSProperty
);
[Visual Basic]
Function CreateProperty(
  strPropertyName As String,
  eDataType As CatalogDataTypeEnum,
  Optional varMaxLength As Variant
) As Recordset

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the new property. This parameter cannot begin with a digit or contain a period (.); it can only contain characters that are acceptable in XML tags.
strPropertyName [Visual Basic]
A String that contains the name of the new property. This parameter cannot begin with a digit or contain a period (.); it can only contain characters that are acceptable in XML tags.
eDataType [C++]
[in] An enumeration value that specifies the data type of the new property. See the Remarks section for valid values.
eDataType [Visual Basic]
An enumeration value that specifies the data type of the new property. See the Remarks section for valid values.
varMaxLength [C++]
[in, optional] A VARIANT that contains the maximum length for the property. Even though this parameter is an optional value it must be given if the data type of the property is cscString. Properties of data type cscEnumeration have a fixed default value of 128 characters, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256 characters, which cannot be changed.
varMaxLength [Visual Basic]
A Variant that contains the maximum length for the property. Even though this parameter is an optional value it must be given if the data type of the property is cscString. Properties of data type cscEnumeration have a fixed default value of 128 characters, which cannot be changed. Properties of data type cscFilePath have a fixed default value of 256 characters, which cannot be changed.
ppRSProperty [C++]
[out, retval] A pointer used to return a Recordset object that will contain the new property.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the property attributes.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C++] 0x88980074 [Visual Basic] &H88980074 | The datatype you specified is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C++] 0x88980040 [Visual Basic] &H88980040 | The length specified for this property does not lie between 1 and 4000.
E_CAT_INVALID_DATATYPE_FOR_ATTRIBUTE | [C++] 0x889800A6 [Visual Basic] &H889800A6 | The enumeration or filename data types cannot be used for creating property attributes.
E_CAT_INBUILT_PROPERTY | [C++] 0x8898003E [Visual Basic] &H8898003E | The property name you specified is used as a Catalog Management Inbuilt property name.
E_CAT_PROP_EXISTS | [C++] 0x88980003 [Visual Basic] &H88980003 | The property name you specified already exists.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSProperty parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The Recordset object returned by this property is valid only if it is accessed successfully.

Property names, and therefore the strPropertyName parameter, are limited to a maximum length of 100 characters.

[C++] This method returns a single row Recordset object containing the newly created property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

[Visual Basic] This method returns a single row Recordset object containing the newly created property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

The following table shows the values of the CatalogDataTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server money data type.
cscFilePath | 8 | Indicates a String that holds a file path.
cscEnumeration | 9 | Indicates an Integer associated with a defined constant.
cscText | 10 | Indicates a Microsoft SQL Server Text data type.
cscInvalid | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'varMaxLength is a Variant
'cscString is an enum of type cscEnumeration
varMaxLength = 128
Set rsNewPropAttribs = myCatalogManager.CreateProperty("Format", cscString, varMaxLength)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::DeleteProperty

[Visual Basic] CatalogManager.DeleteProperty

[C++] ICatalogManager3::GetPropertyAttributes

[Visual Basic] CatalogManager.GetPropertyAttributes

[C++] ICatalogManager3::SetPropertyAttributes

[Visual Basic] CatalogManager.SetPropertyAttributes


ICatalogManager3::DeleteCatalog Method [C++]

CatalogManager.DeleteCatalog Method [Visual Basic]

Use this method to delete a catalog from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::DeleteCatalog(
  BSTR strCatalogName
);
[Visual Basic]
Sub DeleteCatalog(
  strCatalogName As String
)

Parameters

strCatalogName [C++]
[in] A BSTR that contains the name of the catalog to be deleted.
strCatalogName [Visual Basic]
A String that contains the name of the catalog to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters: " [ ] , ' ( )#. You should not use these reserved characters.
E_CAT_CATALOG_EXPORT_IN_PROGRESS | [C++] 0x88980058 [Visual Basic] &H88980058 | The catalog you specified is currently being exported or imported. This catalog or its associated languages cannot be deleted.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.DeleteCatalog "OurStore"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateCatalog

[Visual Basic] CatalogManager.CreateCatalog


ICatalogManager3::DeleteDefinition Method [C++]

CatalogManager.DeleteDefinition Method [Visual Basic]

Use this method to delete a definition from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::DeleteDefinition(
  BSTR strDefinitionName,
  VARIANT_BOOL fForceDelete
);
[Visual Basic]
Sub DeleteDefinition(
  strDefinitionName As String,
  Optional fForceDelete As Boolean
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition to be deleted.
strDefinitionName [Visual Basic]
A String that contains the name of the definition to be deleted.
fForceDelete [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to force a deletion. A value of True indicates that the definition should be deleted even if it is currently being used in a catalog. A value of False indicates that the definition should only be deleted if it is not currently being used in a catalog.
fForceDelete [Visual Basic]
A Boolean that specifies whether to force a deletion. A value of True indicates that the definition should be deleted even if it is currently being used in a catalog. A value of False indicates that the definition should only be deleted if it is not currently being used in a catalog. The default value is False.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The Definition you specified does not exist.
E_CAT_DEFINITION_USED_IN_CATALOG | [C++] 0x8898000 [Visual Basic] &H889800C | You cannot delete the Definition because it is still being used by one or more Catalogs. To delete the Definition, first remove all products and/or categories based on that Definition from all Catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use a value of True for the fForceDelete parameter with caution, as the category or product definition, and all categories and products that are based on them in all catalogs will also be deleted. This could result in data loss.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.DeleteDefinition "T-Shirts", FALSE

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateCategoryDefinition

[Visual Basic] CatalogManager.CreateCategoryDefinition

[C++] ICatalogManager3::CreateProductDefinition

[Visual Basic] CatalogManager.CreateProductDefinition


ICatalogManager3::DeleteProperty Method [C++]

CatalogManager.DeleteProperty Method [Visual Basic]

Use this method to delete a property from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::DeleteProperty(
  BSTR strPropertyName
);
[Visual Basic]
Sub DeleteProperty(
  strPropertyName As String
)

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the property to be deleted.
strPropertyName [Visual Basic]
A String that contains the name of the property to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_PROP_DOESNT_EXIST | [C++] 0x88980005 [Visual Basic] &H88980005 | The property name you specified does not exist.
E_CAT_PROP_STILL_IN_DEF | [C++] 0x88980004 [Visual Basic] &H88980004 | The property you specified still resides in one or more Product or Category Definitions. To perform this operation, first remove the property from the Product or Category Definitions.
E_CAT_PROP_IS_ID | [C++] 0x88980011 [Visual Basic] &H88980011 | The property is currently being used as either the Product or Product-Variant unique ID column in one or more Catalogs. All Catalogs using this property as its unique ID must be deleted before this property can be deleted.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.DeleteProperty "Width"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateProperty

[Visual Basic] CatalogManager.CreateProperty


ICatalogManager3::DeltaExportXML Method [C++]

CatalogManager.DeltaExportXML Method [Visual Basic]

Use this method to export updated catalog data to an Extensible Markup Language (XML) file.

Definition

[C++]
HRESULT ICatalogManager3::DeltaExportXML(
  VARIANT vrXML,
  VARIANT vrTimeStamp,
  VARIANT strCatalogsToExport,
  VARIANT_BOOL fRunSynchronously,
  CatalogXMLFmtEnum eXMLFmt
  BSTR strLang,
);
[Visual Basic]
Sub DeltaExportXML(
  vrXML As Variant,
  Optional vrTimeStamp As Variant,
  Optional strCatalogsToExport As Variant,
  Optional fRunSynchronously As Boolean,
  Optional eXMLFmt As CatalogXMLFmtEnum
  Optional strLang As String,
)

Parameters

vrXML [C++]
[in] A VARIANT that contains the XML file name or IStream object that is the target of the export.
vrXML [Visual Basic]
A Variant that contains the XML file name or IStream object that is the target of the export.
vrTimeStamp [C++]
[in, optional] A VARIANT that contains the time stamp that specifies the limit of the export. The Variant can of type Cdate or a String that can be converted to a valid date.
vrTimeStamp [Visual Basic]
A Variant that contains the time stamp that specifies the limit of the export. The Variant can of type Cdate or a String that can be converted to a valid date.
strCatalogsToExport [C++]
[in, optional] A VARIANT that contains the catalogs to export. See the Remarks section for more information.
strCatalogsToExport [Visual Basic]
A Variant that contains the catalogs to export. See the Remarks section for more information.
fRunSynchronously [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
eXMLFmt [C++]
[in, optional, defaultvalue (0)] A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
eXMLFmt [Visual Basic]
A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
strLang [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DATE | [C++] 0x889800C3 [Visual Basic] &H889800C3 | There was an error converting the date specified. Please specify a valid date.
E_CAT_INVALID_XML_FORMAT | [C++] 0x889800D9 [Visual Basic] &H889800D9 | The XML format that you specified is invalid.
E_CAT_FILE_CREATION_FAILED | [C++] 0x88980018 [Visual Basic] &H88980018 | The Catalog Export operation was unable to create the file you specified. Check that the file name you specified is valid and the directory that you specified exists and is not read-only.
E_CAT_IMPORT_IN_PROGRESS | [C++] 0x88980025 [Visual Basic] &H88980025 | This operation cannot be started because an import operation is currently in progress.

Remarks

If the strCatalogsToExport parameter is missing or contains an empty string, then all catalogs that have been changed since the specified time stamp are exported. Otherwise the strCatalogsToExport parameter is a comma-separated list of catalog names to be exported.

If the vrTimeStamp parameter is missing or contains an empty string, then the complete catalog or catalogs are exported.

If the strLang parameter is not specified then the default system language of the Web server will be used for multilingual properties.

The following table shows the values in the CatalogXMLFmtEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscFmtElementCentric | 0 | Export in Commerce Server 2000 format. (Default)
cscFmtAttributeCentric | 1 | Export in Commerce Server 2002 format.
cscFmtXDR | 2 | Export the Commerce Server 2002 schema as XDR. (No data)

This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ImportCSV or ImportXML method in progress. After the new thread is spawned, this method returns immediately, if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

Some characters are not valid in an XML attribute name. When a catalog is exported in the attribute-centric mode these characters are encoded in the form _xHHHH_ where HHHH is the hex value of the character. The following characters are encoded:

  • Back slash (\)
  • Forward slash (/)
  • Ampersand (&)
  • Left angle bracket (<)
  • Right angle bracket (>)
  • All characters in the range 0xF900 to 0xFFFE

Caution

  • If you call this method on a virtual catalog the resulting XML data will not include changes that are caused by changes in inclusion or exclusion rules. It will include changes inherited from a base catalog.
  • If you call this method from Visual Basic Scripting Edition (VBScript) with the fRunSynchronously parameter set to False, VBScript will unload the object as soon as the script ends. If the script ends before the spawned thread finishes exporting the catalog, it will be terminated prematurely and the catalog will not be exported successfully.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be stopped. Other methods should work after the interruption.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.DeltaExportXML("C:\MyXMLFile.xml", "2/27/01", "Clothes, Shoes", False, "ENU", cscFmtAttributeCentric)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::ExportXML

[Visual Basic] CatalogManager.ExportXML

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


ICatalogManager3::ExportCSV Method [C++]

CatalogManager.ExportCSV Method [Visual Basic]

Use this method to export catalog data to a comma-separated values (CSV) format file.

Definition

[C++]
HRESULT ICatalogManager3::ExportCSV(
  BSTR strCSVDestination,
  BSTR strCatalogToExport
  VARIANT_BOOL fRunSynchronously
  BSTR strLang,
);
[Visual Basic]
Sub ExportCSV(
  strCSVDestination As String,
  strCatalogToExport As String
  fRunSynchronously As Boolean
  Optional strLang As String,
)

Parameters

strCSVDestination [C++]
[in] A BSTR that contains the full path and file name of the export file to be created.
strCSVDestination [Visual Basic]
A String that contains the full path and file name of the export file to be created.
strCatalogToExport [C++]
[in] A BSTR that contains the name of the catalog to export.
strCatalogToExport [Visual Basic]
A String that contains the name of the catalog to export.
fRunSynchronously [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
strLang [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C++] 0x8898006 [Visual Basic] &H8898003 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x8898004 [Visual Basic] &H8898002 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003 [Visual Basic] &H889800D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009 [Visual Basic] &H889800E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_FILE_CREATION_FAILED | [C++] 0x8898001 [Visual Basic] &H8898008 | The Catalog Export operation was unable to create the file you specified. Check that the file name you specified is valid and the directory that you specified exists and is not read-only.
E_CAT_IMPORT_IN_PROGRESS | [C++] 0x8898002 [Visual Basic] &H8898005 | This operation cannot be started because an import operation is currently in progress.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The ExportCSV method can be used to output product data from the Product Catalog System in a format that can be used in other programs, such as Microsoft Excel.

This method can only output product data from one catalog at a time.

The CSV file generated only contains products and product families. The categories, relationships, and hierarchy are not written to the CSV file.

If the strLang parameter is not specified then the default system language of the Web server will be used for multilingual properties.

This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ImportCSV or ImportXML method in progress. After the new thread is spawned, this method returns immediately, if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be stopped. Other methods should work after the interruption.

Caution

  • If you call this method from Visual Basic Scripting Edition (VBScript) with the fRunSynchronously parameter set to False, VBScript will unload the object as soon as the script ends. If the script ends before the spawned thread finishes exporting the catalog, it will be terminated prematurely and the catalog will not be exported successfully.
  • Changes made to the catalog while an export is in progress may or may not be reflected in the output file. Additions and deletions made during the export could result in a corrupt file. Changes should be avoided during an export.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.ExportCSV "c:\exports\ourcatalog.csv", "OurStore"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::ExportXML

[Visual Basic] CatalogManager.ExportXML

[C++] ICatalogManager3::ImportCSV

[Visual Basic] CatalogManager.ImportCSV


ICatalogManager3::ExportXML Method [C++]

CatalogManager.ExportXML Method [Visual Basic]

Use this method to export catalog data to an Extensible Markup Language (XML) file.

Definition

[C++]
HRESULT ICatalogManager3::ExportXML(
  VARIANT vrXML,
  VARIANT strCatalogsToExport,
  VARIANT_BOOL fRunSynchronously,
  CatalogXMLFmtEnum eXMLFmt
  BSTR strLang,
);
[Visual Basic]
Sub ExportXML(
  vrXML As Variant,
  Optional strCatalogsToExport As Variant,
  Optional fRunSynchronously As Boolean,
  Optional eXMLFmt As CatalogXMLFmtEnum
  Optional strLang As String,
)

Parameters

vrXML [C++]
[in] A VARIANT that contains the XML file name or IStream object that is the target of the export.
vrXML [Visual Basic]
A Variant that contains the XML file name or IStream object that is the target of the export.
strCatalogsToExport [C++]
[in, optional] A VARIANT that contains the catalogs to export. See the Remarks section for more information.
strCatalogsToExport [Visual Basic]
A Variant that contains the catalogs to export. See the Remarks section for more information.
fRunSynchronously [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the export is completed. A value of False indicates that the method will return immediately after spawning the export thread. The default value is False.
eXMLFmt [C++]
[in, optional, defaultvalue (0)] A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
eXMLFmt [Visual Basic]
A CatalogXMLFmtEnum enumeration that specifies the XML format. See the Remarks section for valid values.
strLang [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name. that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that contains the culture name. The default value is (""). The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_IMPORT_IN_PROGRESS | [C++] 0x88980025 [Visual Basic] &H88980025 | There was an existing import method call that had not yet completed. This method cannot run while an import is in progress.
E_CAT_FILE_CREATION_FAILED | [C++] 0x88980018 [Visual Basic] &H88980018 | The method was unable to create the output file.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the strCatalogsToExport parameter is missing or contains an empty string, then all catalogs are exported. Otherwise the parameter strCatalogsToExport is a comma-separated list of catalog names to be exported. If you specify a virtual catalog in the strCatalogsToExport parameter, a snapshot of the virtual catalog will be exported as a base catalog.

If the strLang parameter is not specified then the default system language of the Web server will be used for multilingual properties.

The following table shows the values in the CatalogXMLFmtEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscFmtElementCentric | 0 | Export in Commerce Server 2000 format. (Default)
cscFmtAttributeCentric | 1 | Export in Commerce Server 2002 format.
cscFmtXDR | 2 | Export the Commerce Server 2002 schema as XDR. (No data)

This method runs in a separate thread. Prior to spawning the thread, it checks that there is not an existing ImportCSV or ImportXML method in progress. After the new thread is spawned, this method returns immediately, if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

Some characters are not valid in an XML attribute name. When a catalog is exported in the attribute-centric mode these characters are encoded in the form _xHHHH_ where HHHH is the hex value of the character. The following characters are encoded:

  • Back slash (\)
  • Forward slash (/)
  • Ampersand (&)
  • Left angle bracket (<)
  • Right angle bracket (>)
  • All characters in the range 0xF900 to 0xFFFE

Caution

  • If you call this method from Visual Basic Scripting Edition (VBScript) with the fRunSynchronously parameter set to False, VBScript will unload the object as soon as the script ends. If the script ends before the spawned thread finishes exporting the catalog it will be terminated prematurely and the catalog will not be exported successfully.
  • Changes made to the catalog while an export is in progress may or may not be reflected in the output file. Additions and deletions made during the export could result in a corrupt file. Changes should be avoided during an export.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.ExportXML "c:\exports\ourcatalog.xml", "OurStore"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::ExportCSV

[Visual Basic] CatalogManager.ExportCSV

[C++] ICatalogManager3::ImportXML

[Visual Basic] CatalogManager.ImportXML

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


ICatalogManager3::FreeTextSearch Method [C++]

CatalogManager.FreeTextSearch Method [Visual Basic]

You can use this method to perform a free-text search of catalogs, however the recommended method to implement this functionality is the Search method.

Definition

[C++]
HRESULT ICatalogManager3::FreeTextSearch(
  BSTR strPhrase,
  VARIANT strCatalogsToSearch,
  VARIANT eClassTypeRequired,
  VARIANT strPropertiesToReturn,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSResult
);
[Visual Basic]
Function FreeTextSearch(
  strPhrase As String,
  Optional strCatalogsToSearch As Variant,
  Optional eClassTypeRequired As Variant,
  Optional strPropertiesToReturn As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

strPhrase [C++]
[in] A BSTR that contains the search phrase.
strPhrase [Visual Basic]
A String that contains the search phrase.
strCatalogsToSearch [C++]
[in, optional] A VARIANT that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.
strCatalogsToSearch [Visual Basic]
A Variant that contains the catalogs to search in a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn [C++]
[in, optional] A VARIANT that contains the properties to return. This is a comma-delimited String.
strPropertiesToReturn [Visual Basic]
A Variant that contains the properties to return. This is a comma-delimited String.
strPropertyToSortOn [C++]

[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset. To search by rank, you must pass the FREETEXTSEARCH_RANK key to the strPropertiesToSortOn parameter. The FREETEXTSEARCH_RANK property indicates how well a row matched the search phrase. In this method, it can be used only of the strFTSPhrase parameter is specified. You can specify the FREETEXTSEARCH_RANK in the PropertiestoReturn parameter and also rank results by specifying it in the PropertiesToSortOn parameter.

strPropertyToSortOn [Visual Basic]

A Variant that contains the property on which to sort. This must be a property in the returned recordset. To search by rank, you must pass the FREETEXTSEARCH_RANK key to the strPropertiesToSortOn parameter. The FREETEXTSEARCH_RANK property indicates how well a row matched the search phrase. . In this method, it can be used only of the strFTSPhrase parameter is specified.

fSortAscending [C++]
[in, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the number of the starting record to retrieve. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the number of the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve beginning from the starting record. A value of minus one (-1) indicates return all records.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve beginning from the starting record. A value of minus one (-1) indicates return all records.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the number of records returned in the search.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the number of records returned in the search.
ppRSResult [C++]
[out, retval] A pointer to a _Recordset object that will be used to return the query results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the search results.

Error Values

If the method fails then no error will be returned. In case of an error ppRSResult will be set to Null. The error will also be written to the event log.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C++] 0x8007005 [Visual Basic] &H8007007 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011 [Visual Basic] &H889801D | The Properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011 [Visual Basic] &H889801E | The Properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | Error. The recordset will be set to NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C++] 0x8898000 [Visual Basic] &H889800F | When performing a query against multiple Catalogs, you should specify the actual properties to return.

Remarks

[C++] The plTotalRecordsInQuery and ppRSResult parameters contain valid data only if the method completes successfully.

[Visual Basic] The recordset returned by this method contains valid data only if the method completes successfully.

The FreeTextSearch method is used to perform arbitrary lexical comparisons on words or phrases in one or more catalogs. The FreeTextSearch functionality in the Product Catalog System is based on full text indexing in SQL Server, and therefore, inherits keywords and operators from SQL Server for controlling the free text search.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

The search results for multilingual catalogs will be returned in a single language. The language will be selected differently depending on the number of catalogs specified in the strCatalogsToSearch parameter. If a single catalog is specified, the results will be returned in the default language of the catalog. If multiple catalogs are specified, the results will be returned in the default system language of the web server. If a catalog does not support the selected language, data will not be returned for the language sensitive properties. The properties will be returned in the recordset.

Use the Search method to specify the search language and for doing a free-text search and a query simultaneously.

The programming rules regarding the strPropertiesToReturn parameter vary depending on whether a single catalog name is passed in the strCatalogsToSearch parameter or whether multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter. When specifying properties to return, or when specifying the strPropertyToSortOn parameter, enclose the field names in square brackets to avoid unintentional side effects in the SQL query created by this method. For example, use "[Property1], [Property2]" to specify two properties.

While doing a free-text search you can also specify FREETEXTSEARCH_RANK as a property to return and property to sort on. FREETEXTSEARCH_RANK contains a relevance ranking value for each row in the recordset.The FREETEXTSEARCH_RANK specifies the relative closeness of this row to the value passed in strPhrase parameter. You can specify the FREETEXTSEARCH_RANK in the PropertiestoReturn parameter and also rank results by specifying it in the PropertiesToSortOn parameter.

[C++] For more information, see CatalogProduct Recordset.

[Visual Basic] For more information, see CatalogProduct Recordset.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'rsFTSResults is a recordset object
'plTotalRecordsInQuery is a Variant.
'Check it after the method returns for the
'total number of records that match the query.
Set rsFTSResults = myCatalogManager.FreeTextSearch("red ribbons", "Craft Supplies", "", "Price", True, 0, 20, plTotalRecordsInQuery)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::Query

[Visual Basic] CatalogManager.Query


ICatalogManager3::GetAttributes Method [C++]

CatalogManager.GetAttributes Method [Visual Basic]

Use this method to retrieve the catalog or property attributes in the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::GetAttributes(
  CatalogAttributesEnum eAttributeType,
  VARIANT_BOOL fUserDefinedOnly,
  _Recordset** ppRSAttributes
);
[Visual Basic]
Function GetAttributes(
  eAttributeType As CatalogAttributesEnum,
  Optional fUserDefinedOnly As Boolean
) As Recordset

Parameters

eAttributeType [C++]
[in] A CatalogAttributesEnum enumeration that specifies whether to return catalog or property attributes. See the Remarks section for valid values.
eAttributeType [Visual Basic]
A CatalogAttributesEnum enumeration that specifies whether to return catalog or property attributes. See the Remarks section for valid values.
fUserDefinedOnly [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to return only user-defined attributes. A value of True (-1) specifies returning only user-defined attributes. A value of False (0) specifies returning all attributes.
fUserDefinedOnly [Visual Basic]
A Boolean that specifies whether to return only user-defined attributes. A value of True specifies returning only user-defined attributes. A value of False specifies returning all attributes. The default value is True.
ppRSAttributes [C++]
[out, retval] A pointer to a _Recordset object that will be used to return the attributes.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the attributes requested.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.

Remarks

[C++] The ppRSAttributes parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object contains valid data only if the method completes successfully.

The following table shows the values in the CatalogAttributesEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscPropertyAttributes | 0 | Returns property attributes.
cscCatalogAttributes | 1 | Returns catalog attributes.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsCatalogAttr = myCatalogManager.GetAttributes(cscCatalogAttributes, False)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] PropertyAttribute Recordset

[Visual Basic] PropertyAttribute Recordset


ICatalogManager3::GetCatalog Method [C++]

CatalogManager.GetCatalog Method [Visual Basic]

Use this method to retrieve a specified catalog from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::GetCatalog(
  BSTR strCatalogName,
  IProductCatalog3** ppCatalog
);
[Visual Basic]
Function GetCatalog(
  strCatalogName As String
) As ProductCatalog

Parameters

strCatalogName [C++]
[in] A BSTR that contains the name of the catalog to be retrieved.
strCatalogName [Visual Basic]
A String that contains the name of the catalog to be retrieved.
ppCatalog [C++]
[out] A pointer to an IProductCatalog3 interface used to return the ProductCatalog object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the ProductCatalog object that contains the catalog specified. The method may complete successfully and return an object that is Nothing. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) or S_FALSE (&H00000001) to indicate success and standard COM HRESULT error values, to indicate failure. This method may succeed and yet not return a valid output parameter. The output parameter(s) will be invalid if either and error value or S_FALSE is returned. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. This method may succeed and yet return a property or object that is Nothing due to a syntax error, such as requesting a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The Catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters: " [ ] , ' ( )#. These characters should not be used.
S_FALSE | [C++] 0x0000001 [Visual Basic] &H0000001 | The catalog does not exist

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppCatalog parameter contains valid data only if the method completes successfully. The method may complete successfully without returning valid data. See the Error Values section for more details.

[Visual Basic] The ProductCatalog object contains valid data only if the method completes successfully. The method may complete successfully and return an object that is Nothing. See the Error Values section for more details.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set oCatalog = myCatalogManager.GetCatalog("Cdcatalog")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateCatalog

[Visual Basic] CatalogManager.CreateCatalog

[C++] ICatalogManager3::DeleteCatalog

[Visual Basic] CatalogManager.DeleteCatalog


ICatalogManager3::GetDefinitionProperties Method [C++]

CatalogManager.GetDefinitionProperties Method [Visual Basic]

Use this method to return the properties of the specified catalog or product definition.

Definition

[C++]
HRESULT ICatalogManager3::GetDefinitionProperties(
  BSTR strDefinitionName,
  _Recordset** ppRSProperties
);
[Visual Basic]
Function GetDefinitionProperties(
  strDefinitionName As String
) As _Recordset

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition whose properties will be returned.
strDefinitionName [Visual Basic]
A String that contains the name of the definition whose properties will be returned.
ppRSProperties [C++]
[out, retval] A pointer to a _Recordset object used to return the properties of the definition.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset that contains the properties of the specified definition.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The Definition you specified does not exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSProperties parameter contains valid data only if the method completes successfully.

[Visual Basic] The recordset returned by this method contains valid data only if the method completes successfully.

The following tables shows the fields in the returned recordset.

Field | Data Type | Description
DefinitionID | Integer | The number that uniquely identifies the definition.
PropertyName | String 128 characters | None
PropertyOrder | Integer | None
PropertyType | Integer | Zero (0) indicates product or category, one (1) indicates variant property.
TimeStamp | timestamp | None

The rows of the recordset are sorted on the PropertyOrder field.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsDefProps = myCatalogManager.GetDefinitionProperties("T-Shirts")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionProperty

[Visual Basic] CatalogManager.AddDefinitionProperty

[C++] ICatalogManager3::AddDefinitionVariantProperty

[Visual Basic] CatalogManager.AddDefinitionVariantProperty

[C++] ICatalogManager3::RemoveDefinitionProperty

[Visual Basic] CatalogManager.RemoveDefinitionProperty


ICatalogManager3::GetPropertyAttributes Method [C++]

CatalogManager.GetPropertyAttributes Method [Visual Basic]

Use this method to return the attributes of the specified property.

Definition

[C++]
HRESULT ICatalogManager3::GetPropertyAttributes(
  BSTR strPropertyName,
  _Recordset** ppRSAttributes
);
[Visual Basic]
Function GetPropertyAttributes(
  strPropertyName As String
) As _Recordset

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the property whose attributes will be returned.
strPropertyName [Visual Basic]
A String that contains the name of the property whose attributes will be returned.
ppRSAttributes [C++]
[out] A pointer to a _Recordset object used to return the attributes of the property.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of attributes for the specified property

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]

Remarks

[C++] The ppRSAttributes parameter contains valid data only if the method completes successfully.

[Visual Basic] The recordset returned by this method contains valid data only if the method completes successfully.

[C++] This method returns a single row Recordset object containing the requested property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

[Visual Basic] This method returns a single row Recordset object containing the requested property. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsPropAttribs = myCatalogManager.GetPropertyAttributes("Size")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::SetPropertyAttributes

[Visual Basic] CatalogManager.SetPropertyAttributes


ICatalogManager3::GetPropertyValues Method [C++]

CatalogManager.GetPropertyValues Method [Visual Basic]

Use this method to return the list of values defined for an enumeration property.

Definition

[C++]
HRESULT ICatalogManager3::GetPropertyValues(
  BSTR strPropertyName,
  _Recordset** ppRSPropertyValues
);
[Visual Basic]
Function GetPropertyValues(
  strPropertyName As String
) As _Recordset

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the enumeration property for which the defined values will be returned.
strPropertyName [Visual Basic]
A String that contains the name of the enumeration property for which the defined values will be returned.
ppRSPropertyValues [C++]
[out, retval] A pointer to a _Recordset object used to return the property values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the defined values in the enumeration.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSPropertyValues parameter contains valid data only if the method completes successfully.

[Visual Basic] The returned recordset contains valid data only if the method completes successfully.

The following tables shows the fields in the returned recordset.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsEnumValues = myCatalogManager.GetPropertyValues("Color")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddPropertyValue

[Visual Basic] CatalogManager.AddPropertyValue

[C++] ICatalogManager3::RemovePropertyValue

[Visual Basic] CatalogManager.RemovePropertyValue


ICatalogManager3::ImportCSV Method [C++]

CatalogManager.ImportCSV Method [Visual Basic]

Use this method to import a comma-separated values (CSV)-formatted file as catalog data.

Definition

[C++]
HRESULT ICatalogManager3::ImportCSV(
  BSTR strCSVFileSource,
  BSTR strProductIDColumnName,
  BSTR strPriceColumnName,
  BSTR strCatalogName,
  VARIANT_BOOL fUpdateOnly
  VARIANT_BOOL fRunSynchronously
  BSTR strLang,
);
[Visual Basic]
Sub ImportCSV(
  strCSVFileSource As String,
  strProductIDColumnName As String,
  strPriceColumnName As String,
  strCatalogName As String,
  fUpdateOnly As Boolean
  fRunSynchronously As Boolean
  Optional strLang As String,
)

Parameters

strCSVFileSource [C++]
[in] A BSTR that contains the path and file name of the CSV file to import.
strCSVFileSource [Visual Basic]
A String that contains the path and file name of the CSV file to import.
strProductIDColumnName [C++]
[in] A BSTR that contains the name of the column that provides a unique ID for products to be imported into the catalog.
strProductIDColumnName [Visual Basic]
A String that contains the name of the column that provides a unique ID for products to be imported into the catalog.
strPriceColumnName [C++]
[in] A BSTR that contains the name of the column in the CSV file containing the product prices.
strPriceColumnName [Visual Basic]
A String that contains the name of the column in the CSV file containing the product prices.
strCatalogName [C++]
[in] A BSTR that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with the character "#" or consist solely of spaces. For more information about catalog name restrictions, see Catalog Name and Size Restrictions.
strCatalogName [Visual Basic]
A String that contains the name of the catalog into which the CSV file will be imported. The name of the catalog cannot begin with the character "#" or consist solely of spaces. For more information about catalog name restrictions, see Catalog Name and Size Restrictions.
fUpdateOnly [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data.
fUpdateOnly [Visual Basic]
A Boolean that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data. The default value is False.
fRunSynchronously [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread. The default value is False.
strLang [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The Catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The Catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009E [Visual Basic] &H8898009E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_FILE_OPEN_ERROR | [C++] 0x88980020 [Visual Basic] &H88980020 | Unable to open the file . Check that the file exists and you have the necessary permissions on the file.
E_CAT_IMPORT_IN_PROGRESS | [C++] 0x88980025 [Visual Basic] &H88980025 | This operation cannot be started because an import operation is currently in progress.
E_CAT_CONFLICTING_PRODUCTID | [C++] 0x88980113 [Visual Basic] &H88980113 | The ProductID property you specified for this Catalog does not match the existing PrIoductID property. When importing a catalog in the update mode the ProductID property should match the existing ProductID property

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the parameter strCatalogName specifies a catalog that does not exist, a new catalog will be created and the value of the fUpdateOnly parameter is ignored.

The strLang parameter specifies the language for multilingual properties in the imported catalog. If the strLang parameter is not specified then the default system language of the Web server will be used for multilingual properties.

The ImportCSV method is used to bring existing data from a wide variety of sources into the Product Catalog System. The CSV file must conform to the following format:

  • The first row of data must consist of column names, separated by commas. New lines in the text file delimit Rows.
  • For each column in the heading, a new property of the string data type with a maxlength of 256 will be created if the property does not exist. If the property already exists in the catalog system then the existing property will be used.
  • Each subsequent row (called a data row) must have the same number of commas as the first row. In other words, all columns in the CSV file must be defined by the first row.
  • All items in the CSV file (one row per item) are assumed to be products, and are created from a common product definition. If no product definition exists in the destination catalog, one will be created during the import process.
  • Each item must specify a value for the column specified as the ProductID column, as well as for the column specified as the Price column.
  • Two adjacent commas must represent missing data. If the data itself contains a comma then it must be enclosed in double quotes as in the example of the following 3 data items: weight, "yellow, blue, green or red", name.

This method runs in a separate thread. Prior to spawning the thread, it checks that the specified file can be opened and that there is not an existing ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately, if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

Caution

  • If you call this method from Visual Basic Scripting Edition (VBScript) with the fRunSynchronously parameter set to False, VBScript will unload the object as soon as the script ends. If the script ends before the spawned thread finishes importing the catalog, it will be terminated prematurely and the catalog will not be imported successfully.

This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.ImportCSV "c:\imports\ourcatalog.csv", "SKU", "Price", "OurCatalog", TRUE

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::ExportCSV

[Visual Basic] CatalogManager.ExportCSV

[C++] ICatalogManager3::ImportXML

[Visual Basic] CatalogManager.ImportXML

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


ICatalogManager3::ImportXML Method [C++]

CatalogManager.ImportXML Method [Visual Basic]

Use this method to import an Extensible Markup Language (XML)-formatted file as catalog data.

Definition

[C++]
HRESULT ICatalogManager3::ImportXML(
  VARIANT vrXML,
  VARIANT_BOOL fUpdateOnly,
  VARIANT_BOOL fRunSynchronously
  VARIANT_BOOL fGenerateFullTextIndexes
);
[Visual Basic]
Sub ImportXML(
  vrXML As Variant,
  Optional fUpdateOnly As Boolean,
  Optional fRunSynchronously As Boolean
  Optional fGenerateFullTextIndexes As Boolean
)

Parameters

vrXML [C++]
[in] A VARIANT that contains the XML file name or IStream object that is the target of the import.
vrXML [Visual Basic]
A Variant that contains the XML file name or IStream object that is the target of the import.
fUpdateOnly [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data.
fUpdateOnly [Visual Basic]
A Boolean that specifies whether to update an existing catalog or create a new one. A value of True indicates that if the system contains a catalog whose name is the same as the one specified in the strCatalogName parameter, it will be updated with the imported data. A value of False indicates to delete the catalog if it already exists and create a new one with the imported data. The default is False.
fRunSynchronously [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether the method should be run synchronously. A value of True indicates that the method will not return until the import is completed. A value of False indicates that the method will return immediately after spawning the import thread. The default is False.
fGenerateFullTextIndexes [C++]
[in, defaultvalue (-1)] A VARIANT_BOOL that specifies whether the method should generate full text indexes. A value of True indicates that indexes should be generated. A value of False indicates that indexes should not be generated.
fGenerateFullTextIndexes [Visual Basic]
A Boolean that specifies whether the method should generate full text indexes. A value of True indicates that indexes should be generated. A value of False indicates that indexes should not be generated. The default is True.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_FILE_OPEN_ERROR | [C++] 0x8898002 [Visual Basic] &H8898000 | Unable to open the file. Check that the file exists and you have the necessary permissions on the file.
E_CAT_IMPORT_IN_PROGRESS | [C++] 0x8898002 [Visual Basic] &H8898005 | This operation cannot be started because an import operation is currently in progress.
E_CAT_MSXML3_MISSING | [C++] 0x889800C [Visual Basic] &H8898001 | The Catalog import operation was unable to instantiate the XML parser. Please check that msxml3.dll is installed and registered on this machine. Refer to the Commerce Server installation documents for more information.
E_CAT_INVALID_XML | error | There has been an error. See the error message for more information.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When performing a partial or delta import (when updating an existing catalog by importing new or changed catalog data), it is important that the catalog definition of the data being imported matches the definition of the existing catalog. For more information about the catalog definition, see Import Semantics.

This method runs in a separate thread. Prior to spawning the thread, it checks that the specified file can be opened and that there is not an existing ImportCSV or ImportXML method in progress. Once the new thread is spawned, this method returns immediately if the parameter fRunSynchronously is False, with no errors. Any errors that occurred while importing the catalog are logged to the Windows NT Event Log. Use the Windows Event Viewer to view the Windows NT Event Log.

Caution

  • If you call this method from Visual Basic Scripting Edition (VBScript) with the fRunSynchronously parameter set to False, VBScript will unload the object as soon as the script ends. If the script ends before the spawned thread finishes importing the catalog, it will be terminated prematurely and the catalog will not be imported successfully.

This method cannot be called in a transacted object. This method involves the creation, deletion, or updating of free text indexes. SQL Server does not allow these operations in a transaction.

If there is a temporary loss of the SQL Server connection, longer than two minutes, an import or export will be aborted. Other methods should work after the interruption.

The names of catalogs in the source file cannot begin with the character "#" or consist solely of spaces.

If a property existing in the catalog has one data type and the property of the same name existing in the import file has a different data type, the import will fail. For example, the catalog has a SKU property that is a String, and the XML file being imported has a SKU property that is an Integer. This will cause an error.

Additionally, if the minimum and maximum values of a property in the XML file do not match the minimum and maximum values of a property in the catalog system and the property is used in one or more catalogs, then the import will fail; otherwise, the import will update the minimum and maximum values of that property.

[Visual Basic]

Setting the parameter fGenerateFullTextIndexes to False can significantly decrease import time when importing many catalogs from the same file. Use the ProductCatalog.RegenerateFreeTextSearchIndex method to create the indexes after the import has completed.

[C++]

Setting the parameter fGenerateFullTextIndexes to False can significantly decrease import time when importing many catalogs from the same file. Use the IProductCatalog3::RegenerateFreeTextSearchIndex method to create the indexes after the import has completed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.ImportXML "c:\imports\ourcatalog.xml", TRUE

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::ExportXML

[Visual Basic] CatalogManager.ExportXML

[C++] ICatalogManager3::ImportCSV

[Visual Basic] CatalogManager.ImportCSV


ICatalogManager3::Initialize Method [C++]

CatalogManager.Initialize Method [Visual Basic]

Use this method to initialize a CatalogManager object. This method should be called once before calling any other methods or properties.

Definition

[C++]
HRESULT ICatalogManager3::Initialize(
  BSTR strConfigString,
  VARIANT_BOOL fIsADOConnectionString
  VARIANT lNumFullTextCatalogs,
);
[Visual Basic]
Sub Initialize(
  strConfigString As String,
  fIsADOConnectionString As Boolean
  Optional lNumFullTextCatalogs As Variant,
)

Parameters

strConfigString [C++]
[in] A BSTR that contains the configuration string.
strConfigString [Visual Basic]
A String that contains the configuration string.
fIsADOConnectionString [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that determines whether the strConfigString parameter refers to an ActiveX Data Object (ADO) connection string or a site name. A value of True indicates an ADO connection string. A value of False indicates a site name.
fIsADOConnectionString [Visual Basic]
A Boolean that determines whether the strConfigString parameter refers to an ADO connection string or a site name. A value of True indicates an ADO connection string. A value of False indicates a site name. The default is False.
lNumFullTextCatalogs [C++]
[in, optional] A VARIANT that contains the maximum number of full text catalogs (indexes) to create. The default and maximum value is 256.
lNumFullTextCatalogs [Visual Basic]
A Variant that contains the maximum number of full text catalogs (indexes) to create. The default and maximum value is 256.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATMGR_ALREADY_INITIALIZED | [C++] 0x88980062 [Visual Basic] &H88980062 | The CatalogManager object has already been initialized. Each catalog manager object can be initialized only once.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid
E_CAT_INVALID_NUMFULLTEXT_CATALOGS | [C++] 0x889800E8 [Visual Basic] &H889800E8 | The number of fulltext catalogs to create should be between 0 and 256
E_CAT_CATALOGRESOURCE_INIT_FAILED | [C++] 0x88980030 [Visual Basic] &H88980030 | Unable to read the Product Catalog Resource from the site specified. Check that the Commerce.Adminhlpr component (Adminhlpr.dll) is registered, the site name is valid, and the site contains the Product Catalog Resource.
E_CAT_INVALID_CATALOG_SCHEMA | [C++] 0x889800D8 [Visual Basic] &H889800D8 | The Catalog Schema does not correspond to this version of Commerce Server 2002.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When the CatalogManager object has full text search enabled, creating or importing a product catalog will create a separate full text search-enabled catalog (index) until the number of indexes equals the value of the parameter lNumFullTextCatalogs. After the maximum number of indexes have been created, new product catalogs will share existing indexes. Each new product catalog will be assigned to whichever index is smallest at the time the product catalog is created.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.Initialize strConfigString, TRUE

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::Query Method [C++]

CatalogManager.Query Method [Visual Basic]

Use this method to perform queries against product, variant, and category data in one or more catalogs. This method is included for backward compatibility only since it does not support Commerce Server 2002 features such as multi-language catalogs. The recommended method for enabling the Query method functionality is the Search method.

Definition

[C++]
HRESULT ICatalogManager3::Query(
  BSTR strPhrase,
  VARIANT strCatalogsToSearch,
  VARIANT eClassTypeRequired,
  VARIANT strPropertiesToReturn,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSResult
);
[Visual Basic]
Function Query(
  strPhrase As String,
  Optional strCatalogsToSearch As Variant,
  Optional eClassTypeRequired As Variant,
  Optional strPropertiesToReturn As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

strPhrase [C++]
[in] A BSTR that contains the search phrase.
strPhrase [Visual Basic]
A String that contains the search phrase.
strCatalogsToSearch [C++]
[in, optional] A VARIANT that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
strCatalogsToSearch [Visual Basic]
A Variant that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired [C++]
[in, optional] A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn [C++]
[in, optional] A VARIANT that contains the properties to return as a comma-separated list.
strPropertiesToReturn [Visual Basic]
A Variant that contains the properties to return as a comma-separated list.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending [C++]
[in, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record to retrieve. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records matching the query.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of records matching the query.
ppRSResult [C++]
[out, retval] A pointer to a _Recordset object used to return the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object containing the search results.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011D [Visual Basic] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | Query failed. The recordset is now NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C++] 0x8898000F [Visual Basic] &H8898000F | When performing a query against multiple catalogs, you should specify the actual properties to return.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The plTotalRecordsInQuery and ppRSResult parameters contain valid data only if the method completes successfully.

[Visual Basic] The returned Recordset object and the plTotalRecordsInQuery parameter contain valid data only if the method completes successfully.

The Query method is used to perform arbitrary queries against product, product-variant, and category data in one or more catalogs. The strPhrase parameter is very similar to the ADO recordset Filter property. Simple queries should follow the key-operator-value convention (for example, length < 100). Queries whose value is a String data type should enclose that value in single quotes (for example, color = 'Blue'); additionally, if the string value contains unicode characters then it should be preceded with an N (for example, color = N'blue').

More sophisticated queries can be constructed by using the AND and OR operators to group multiple clauses, such as (level > 10) OR (Name = 'Bob' AND Title='CPA').

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

The search results for multilingual catalogs will be returned in a single language. The language will be selected differently depending on the number of catalogs specified in the strCatalogsToSearch parameter. If a single catalog is specified, the results will be returned in the default language of the catalog. If multiple catalogs are specified, the results will be returned in the default system language of the Web server. If a catalog does not support the selected language only language insensitive properties will be returned for that catalog.

Use the Search method to specify the search language or for doing a free-text search and a query simultaneously.

The programming rules regarding the strPropertiesToReturn parameter vary depending if a single catalog name is passed in the strCatalogsToSearch parameter, or if multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter. When specifying properties to return, or when specifying the strPropertyToSortOn parameter, enclose the field names in square brackets to avoid unintentional side effects in the SQL query created by this method. For example, use "[Property1], [Property2]" to specify two properties.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'plTotalRecordsInQuery is an existing Long.
'Examine it after the method returns to see if
'there are more records to get.
Set rsQueryResults = myCatalogManager.Query("[Productid]='blue suede'", "ShoeCatalog", cscProductClass,"Price, SKU, Size", "SKU", TRUE, 1, 25, plTotalRecordsInQuery)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::FreeTextSearch

[Visual Basic] CatalogManager.FreeTextSearch


ICatalogManager3::RebuildAllVirtualCatalogs Method [C++]

CatalogManager.RebuildAllVirtualCatalogs Method [Visual Basic]

Use this method to rebuild all the virtual catalogs in the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::RebuildAllVirtualCatalogs(
  VARIANT_BOOL fRunSynchronously,
  VARIANT_BOOL fForceRebuild
);
[Visual Basic]
Sub RebuildAllVirtualCatalogs(
  Optional fRunSynchronously As Boolean,
  Optional fForceRebuild As Boolean
)

Parameters

fRunSynchronously [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously. The default value is False.
fForceRebuild [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuild. A value of False indicates that only dirty catalogs will be rebuilt.
fForceRebuild [Visual Basic]
A Boolean that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuild. A value of False indicates that only dirty catalogs will be rebuilt. The default value is False.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.

Remarks

Virtual catalogs will only be rebuilt if there has been a rule change, a product deletion, or a category deletion that would affect the contents of the catalog unless the fForceRebuild parameter is set to True.

[C++] If you want to rebuild a specific virtual catalog or the virtual catalogs that are dependant on a specific base catalog use IProductCatalog3::RebuildVirtualCatalog.

[Visual Basic] If you want to rebuild a specific virtual catalog or the virtual catalogs that are dependant on a specific base catalog use ProductCatalog.RebuildVirtualCatalog.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RebuildAllVirtualCatalogs

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] IProductCatalog3::RebuildVirtualCatalog

[Visual Basic] ProductCatalog.RebuildVirtualCatalog


ICatalogManager3::RemoveCatalogAttribute Method [C++]

CatalogManager.RemoveCatalogAttribute Method [Visual Basic]

Use this method to remove a user-defined catalog attribute from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::RemoveCatalogAttribute(
  BSTR strAttributeName
);
[Visual Basic]
Sub RemoveCatalogAttribute(
  strAttributeName As String
)

Parameters

strAttributeName [C++]
[in] A BSTR that contains the name of the attribute to be removed.
strAttributeName [Visual Basic]
A String that contains the name of the attribute to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C++] 0x88980117 [Visual Basic] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_BUILTIN_CATALOG_ATTRIBUTE | [C++] 0x889800B0 [Visual Basic] &H889800B0 | The catalog attribute that you specified is a built in catalog attribute and hence cannot be added or removed.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_CATALOG_ATTR _DOES_NOT_EXIST | [C++] 0x88980112 [Visual Basic] &H88980112 | The catalog attribute that you specified does not exist.

Remarks

If the attribute specified in the strAttributeName parameter does not exist, the method will complete successfully and return S_OK.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RemoveCatalogAttribute("Color")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::RemoveDefinitionProperty Method [C++]

CatalogManager.RemoveDefinitionProperty Method [Visual Basic]

Use this method to remove the specified property or variant property from the specified definition.

Definition

[C++]
HRESULT ICatalogManager3::RemoveDefinitionProperty(
  BSTR strDefinitionName,
  BSTR strPropertyName
);
[Visual Basic]
Sub RemoveDefinitionProperty(
  strDefinitionName As String,
  strPropertyName As String
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition for which the specified property will be removed.
strDefinitionName [Visual Basic]
A String that contains the name of the definition for which the specified property will be removed.
strPropertyName [C++]
[in] A BSTR that contains the name of the property to be removed.
strPropertyName [Visual Basic]
A String that contains the name of the property to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property Names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The definition you specified does not exist.
E_CAT_PROP_NOT_IN_DEFINITION | [C++] 0x8898000 [Visual Basic] &H889800E | The property you specified is not part of that definition.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When you remove a property from a definition, it is also removed from any products, product-variants, or categories created from that definition.

Caution

  • Use caution when using this method. In most cases, calling this method results in the deletion of data.
  • Removing the last variant property in a product family definition will convert it to a product definition and will remove all existing product variants based on this definition.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RemoveDefinitionProperty "T-Shirts", "Color"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddDefinitionProperty

[Visual Basic] CatalogManager.AddDefinitionProperty

[C++] ICatalogManager3::AddDefinitionVariantProperty

[Visual Basic] CatalogManager.AddDefinitionVariantProperty

[C++] ICatalogManager3::GetDefinitionProperties

[Visual Basic] CatalogManager.GetDefinitionProperties


ICatalogManager3::RemovePropertyAttribute Method [C++]

CatalogManager.RemovePropertyAttribute Method [Visual Basic]

Use this method to remove a custom property attribute from the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::RemovePropertyAttribute(
  BSTR strAttrName
);
[Visual Basic]
Sub RemovePropertyAttribute(
  strAttrName As String
)

Parameters

strAttrName [C++]
[in]A BSTR that contains the name of the attribute to be removed.
strAttrName [Visual Basic]
A String that contains the name of the attribute to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B5 [Visual Basic] &H889800B5 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_ATTRIBUTE | [C++] 0x88980117 [Visual Basic] &H88980117 | The attribute name you specified is invalid. Attribute names cannot be blank and cannot exceed 36 characters. Attribute names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_DATATYPE | [C++] 0x88980074 [Visual Basic] &H88980074 | The datatype you specified is invalid
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_COLUMN_LENGTH | [C++] 0x88980040 [Visual Basic] &H88980040 | The length specified for this property is not between 1 and 4000.
E_CAT_BUILTIN_ATTRIBUTE | [C++] 0x889800A7 [Visual Basic] &H889800A7 | The property attribute that you specified is a built in attribute and hence cannot be added or removed from the catalog system.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A2 [Visual Basic] &H889800A2 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_ATTRIBUTE_DOES_NOT_EXIST | [C++] 0x88980111 [Visual Basic] &H88980111 | The property attribute that you specified does not exist

Remarks

Only custom attributes may be removed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RemovePropertyAttribute("DisplayType")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::RemovePropertyValue Method [C++]

CatalogManager.RemovePropertyValue Method [Visual Basic]

Use this method to remove a defined value from an enumeration property.

Definition

[C++]
HRESULT ICatalogManager3::RemovePropertyValue(
  BSTR strPropertyName,
  BSTR strLegalValue,
  BSTR strLang
);
[Visual Basic]
Sub RemovePropertyValue(
  strPropertyName As String,
  strLegalValue As String,
  Optional strLang As String
)

Parameters

strPropertyName [C++]
[in] A BSTR that contains the name of the enumeration property from which the specified value will be removed.
strPropertyName [Visual Basic]
A String that contains the name of the enumeration property from which the specified value will be removed.
strLegalValue [C++]
[in] A BSTR that contains the defined value to be removed as a choice from the specified enumeration property.
strLegalValue [Visual Basic]
A String that contains the defined value to be removed as a choice from the specified enumeration property.
strLang [C++]
[in, optional] A BSTR that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLang [Visual Basic]
A String that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The property name you specified is invalid. Property names cannot be blank and cannot exceed 100 characters. Property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_ENUMERATED_VALUE | [C++] 0x889800E [Visual Basic] &H8898009 | The value you specified for the enumerated property exceeds 128 characters
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_NOT_ENUM | [C++] 0x8898000 [Visual Basic] &H8898007 | The property you specified is not the "cscEnumeration" data-type. This operation can only be performed on these types of Properties.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When a value is removed from an enumeration type property all products that have that property set to that value will have the value changed to NULL.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RemovePropertyValue "Color", "blue_in_fr", "fr"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::AddPropertyValue

[Visual Basic] CatalogManager.AddPropertyValue

[C++] ICatalogManager3::GetPropertyValues

[Visual Basic] CatalogManager.GetPropertyValues

[C++] Table of Language Culture Names, Codes, and ISO Values

[Visual Basic] Table of Language Culture Names, Codes, and ISO Values


ICatalogManager3::RenameDefinition Method [C++]

CatalogManager.RenameDefinition Method [Visual Basic]

Use this method to rename a definition.

Definition

[C++]
HRESULT ICatalogManager3::RenameDefinition(
  BSTR strOldName,
  BSTR strNewName
);
[Visual Basic]
Sub RenameDefinition(
  strOldName As String,
  strNewName As String
)

Parameters

strOldName [C++]
[in] A BSTR that contains the existing name of the definition.
strOldName [Visual Basic]
A String that contains the existing name of the definition.
strNewName [C++]
[in] A BSTR that contains the new name for the definition.
strNewName [Visual Basic]
A String that contains the new name for the definition.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_EXISTS | [C++] 0x8898000 [Visual Basic] &H889800A | The Definition you specified already exists.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The Definition you specified does not exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method affects every product and category using the definition.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RenameDefinition "T-Shirts", "Tee-Shirts"

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::RenameProperty

[Visual Basic] CatalogManager.RenameProperty


ICatalogManager3::RenameProperty Method [C++]

CatalogManager.RenameProperty Method [Visual Basic]

Use this method to rename a property.

Definition

[C++]
HRESULT ICatalogManager3::RenameProperty(
  BSTR strOldPropertyName,
  BSTR strNewPropertyName
);
[Visual Basic]
Sub RenameProperty(
  strOldPropertyName As String,
  strNewPropertyName As String
)

Parameters

strOldPropertyName [C++]
[in] A BSTR that contains the existing name of the property.
strOldPropertyName [Visual Basic]
A String that contains the existing name of the property.
strNewPropertyName [C++]
[in] A BSTR that contains the new name for the property. This parameter cannot begin with a digit, or contain a period (.); it can only contain characters that are acceptable in XML tags.
strNewPropertyName [Visual Basic]
A String that contains the new name for the property. This parameter cannot begin with a digit, or contain a period (.); it can only contain characters that are acceptable in XML tags.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PROPERTY_NAME | [C++] 0x889800A [Visual Basic] &H8898002 | The PropertyName you specified is invalid. property Names cannot be blank and cannot exceed 100 characters. property names cannot begin with a digit and cannot contain one of the following five reserved characters .,"[]
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_PROP_EXISTS | [C++] 0x8898000 [Visual Basic] &H8898003 | The property name you specified already exists.
E_CAT_PROP_IS_ID | [C++] 0x8898001 [Visual Basic] &H8898001 | The property is currently being used as either the Product or Product-Variant unique ID column in one or more Catalogs. All Catalogs using this property as its unique ID must be deleted before this property can be deleted.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.RenameProperty "Weight", "Wt."

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::RenameDefinition

[Visual Basic] CatalogManager.RenameDefinition


ICatalogManager3::Search [C++]

CatalogManager.Search [Visual Basic]

Use this method to perform searches against product, variant, and category data in one or more catalogs. This method combines the abilities of the Query and FreeTextSearch methods while adding the ability to specify the language of the returned data.

Definition

[C++]
HRESULT ICatalogManager3::Search(
  VARIANT strSQLClause,
  VARIANT strFTSPhrase,
  VARIANT strCatalogsToSearch,
  VARIANT eClassTypeRequired,
  VARIANT strPropertiesToReturn,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT varLanguage,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSResult
);
[Visual Basic]
Function Search(
  Optional strSQLClause As Variant,
  Optional strFTSPhrase As Variant,
  Optional strCatalogsToSearch As Variant,
  Optional eClassTypeRequired As Variant,
  Optional strPropertiesToReturn As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional varLanguage As Variant,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

strSQLClause [C++]
[in, optional] A VARIANT that contains the SQL search query.
strSQLClause [Visual Basic]
A Variant that contains the SQL search query.
strFTSPhrase [C++]
[in, optional] A VARIANT that contains the free-text search phrase.
strFTSPhrase [Visual Basic]
A Variant that contains the free-text search phrase.
strCatalogsToSearch [C++]
[in, optional] A VARIANT that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
strCatalogsToSearch [Visual Basic]
A Variant that contains the catalogs to search as a comma-separated list. An empty string indicates search all catalogs.
eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn [C++]
[in, optional] A VARIANT that contains the properties to return as a comma-separated list.
strPropertiesToReturn [Visual Basic]
A Variant that contains the properties to return as a comma-separated list.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset. To search. by rank, you must pass the FREETEXTSEARCH_RANK key to the strPropertyToSortOn parameter.
strPropertyToSortOn [Visual Basic]

A Variant that contains the property on which to sort. This must be a property in the returned recordset. To search by rank, you must pass the FREETEXTSEARCH_RANK key to the strPropertyToSortOn parameter.

fSortAscending [C++]
[in, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record to retrieve. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
varLanguage [C++]
[in, optional] A VARIANT that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
varLanguage [Visual Basic]
A Variant that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records matching the query.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of records matching the query.
ppRSResult [C++]
[out, retval] A pointer to a _Recordset object used to return the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object containing the search results.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C++] 0x8007005 [Visual Basic] &H8007007 | One or more arguments are invalid.
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011 [Visual Basic] &H889801D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011 [Visual Basic] &H889801E | The Properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
S_FALSE | 1 | The search Failed. The recordset is now set to NULL.
E_CAT_MULTI_CAT_QUERY_NEEDS_PROPS | [C++] 0x8898000 [Visual Basic] &H889800F | When performing a query against multiple catalogs, you should specify the actual properties to return.

Remarks

[C++] The plTotalRecordsInQuery and ppRSResult parameters contain valid data only if the method completes successfully. The error will also be written to the windows event log.

[Visual Basic] The returned Recordset object and the plTotalRecordsInQuery parameter contain valid data only if the method completes successfully. The error will also be written to the windows event log.

The Search method is used to perform arbitrary lexical comparisons on both words and phrases, and product, product-variant, and category data in one or more catalogs. It combines the functionality of the Query method and the FreeTextSearch method. It also adds the varLanguage parameter, which allows you to specify the language of the search. The Category.Search method is a related method specifically for searching within a category.

The strSQLClause and strFTSPhrase parameters are both optional. If you only supply the strSQLClause parameter, this method acts like the Query method. If you only supply the strFTSPhrase parameter, this method acts like the FreeTextSearch method. If you supply both parameters, then only data that satisfies both search conditions will be returned. This allows you to construct sophisticated and very specific searches.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

If the varLanguage parameter is omitted the default value will depend on the number of catalogs specified in the strCatalogsToSearch parameter. If a single catalog is specified, the results will be returned in the default language of the catalog. If multiple catalogs are specified, the results will be returned in the default system language of the Web server. If a catalog does not support the selected language only language insensitive properties will be returned for that catalog.

The programming rules regarding the strPropertiesToReturn parameter vary depending if a single catalog name is passed in the strCatalogsToSearch parameter, or if multiple catalog names are passed. When a single catalog name is passed, the strPropertiesToReturn parameter is optional and defaults to all properties. When multiple catalog names are passed, the strPropertiesToReturn parameter is required.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter. When specifying properties to return , and when specifying the strPropertyToSortOn paramenter, enclose the field names in square brackets to avoid unintentional side effects in the SQL query created by this method. For example, use "[Property1], [Property2]" to specify two properties.

While doing a free-text search you can also specify FREETEXTSEARCH_RANK as a property to return and property to sort on. FREETEXTSEARCH_RANK contains a relevance ranking value for each row in the recordset.The FREETEXTSEARCH_RANK specifies the relative closeness of this row to the value passed in strPhrase parameter. You can specify the FREETEXTSEARCH_RANK in the PropertiestoReturn parameter and also rank results by specifying it in the PropertiesToSortOn parameter. In this method, this parameter can be used only if the srtFTSPhrase parameter is specified.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'plTotalRecordsInQuery is an existing Long.
'Examine it after the method returns to see if
'there are more records to get.
' note use of N in next line of code
Set rsQueryResults = myCatalogManager.Search("[Productid]=N'blue suede'", "slightly scuffed", "ShoeCatalog", cscProductClass,"Price, SKU, Size", "SKU", TRUE, 1, 25, "ENU", plTotalRecordsInQuery)

'The strFTSPhrase parameter supports and/or semantics.
'When multiple terms are supplied OR is implied.
Set rsQueryResults = myCatalogManager.Search(,"sneaker loafer")
Set rsQueryResults = myCatalogManager.Search(,"sneakers and loafer")

'AND takes precedence over OR. The following searches for
'(sneaker and hightop) or loafer.
Set rsQueryResults = myCatalogManager.Search(,"sneaker and hightop or loafer")
Set rsQueryResults = myCatalogManager.Search(,"sneakers loafer")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

CatalogManager.Query

CatalogManager.FreeTextSearch

Category.Search


ICatalogManager3::SetDefinitionProperties Method [C++]

CatalogManager.SetDefinitionProperties Method [Visual Basic]

Use this method to change the properties of a category or product definition.

Definition

[C++]
HRESULT ICatalogManager3::SetDefinitionProperties(
  BSTR strDefinitionName,
  Recordset* pRSProperties,
);
[Visual Basic]
Sub SetDefinitionProperties(
  strDefinitionName As _String,
  pRSNewState As _Recordset,
)

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the definition.
strDefinitionName [Visual Basic]
A String that contains the name of the definition.
pRSProperties [C++]
[in] A reference to a _Recordset that specifies the new properties.
pRSProperties [Visual Basic]
A _Recordset that specifies the new properties.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800E [Visual Basic] &H889800A | The definition name that you specified is invalid. Definition names should be between 1 and 128 characters in length.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H889800B | The definition you specified does not exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.SetDefinitionProperties "Shirt",pRSProperties

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateProperty

[Visual Basic] CatalogManager.CreateProperty


ICatalogManager3::SetJoinTable Method [C++]

CatalogManager.SetJoinTable Method [Visual Basic]

Use this method to join an external table to a table in the Product Catalog System.

For a list of the methods that support the JoinTable feature, see Code to Join an External Table to Product Recordsets.

Definition

[C++]
HRESULT ICatalogManager3::SetJoinTable(
  BSTR strTargetTableName,
  BSTR strSourceJoinKey,
  BSTR strTargetJoinKey,
  CatalogJoinTypeEnum eJoinType
);
[Visual Basic]
Sub SetJoinTable(
  strTargetTableName As String,
  strSourceJoinKey As String,
  strTargetJoinKey As String,
  eJoinType As CatalogJoinTypeEnum
)

Parameters

strTargetTableName [C++]
[in] A BSTR that contains the name of the external table or view with which to join.
strTargetTableName [Visual Basic]
A String that contains the name of the external table or view with which to join.
strSourceJoinKey [C++]
[in] A BSTR that contains the name of the product property to join on.
strSourceJoinKey [Visual Basic]
A String that contains the name of the product property to join on.
strTargetJoinKey [C++]
[in] A BSTR that contains the name of the column in the external table or view to join against.
strTargetJoinKey [Visual Basic]
A String that contains the name of the column in the external table or view to join against.
eJoinType [C++]
[in] A CatalogJoinTypeEnum enumeration that specifies the join type. See the Remarks section for valid values.
eJoinType [Visual Basic]
A CatalogJoinTypeEnum enumeration that specifies the join type. See the Remarks section for valid values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B [Visual Basic] &H8898006 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_JOIN_TYPE | [C++] 0x889800C [Visual Basic] &H8898008 | The specified join type is either invalid or not supported.
E_CAT_INVALID_TARGET_TABLE | [C++] 0x889800C [Visual Basic] &H8898009 | The target (join) table that was specified could not be found in the database.
E_CAT_INVALID_SOURCE_JOIN_KEY | [C++] 0x889800C [Visual Basic] &H889800A | The specified source join-key is invalid.
E_CAT_INVALID_TARGET_JOIN_KEY | [C++] 0x889800C [Visual Basic] &H889800B | The specified target join-key is invalid.

Remarks

After you have called the SetJoinTable method, any method that returns product data will join the normal output of the method with the external table. That is, the join will occur after any sorting or filtering specified in the method call is completed. This means that you cannot sort or filter on columns in the external table. For methods that accept the PropertiesToReturn parameter, you can specify the properties to return from the external table. If none are specified in these methods, all columns will be returned.

Join table information does not persist beyond the life of the CatalogManager object.

The following table shows the values in the CatalogJoinTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
CMS_INNER_JOIN | 0 | Returns only rows where the keys are equal.
CMS_OUTER_JOIN_LEFT | 1 | Returns all rows in the Product Catalog System and matching rows in the target table.
CMS_OUTER_JOIN_RIGHT | 2 | Returns matching rows in the Product Catalog System and all rows in the target table.
CMS_OUTER_JOIN_FULL | 3 | Returns all rows in both tables.
CMS_NO_JOIN | -1 | Turns off the join with the external table.

When you use the ProductID, VariantID, or other indexed column in the CatalogProducts table as a join key, it is recommended that you index the join key column in the external joined table for better performance.

If you pass a parameter containing spaces to the SetJoinTable method, that parameter must be enclosed by square brackets([]).

For more information about the methods to which the JoinTable feature applies, see Code to Join an External Table to Product Recordsets.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogManager.SetJoinTable ("InventoryTable", "ProductID", "SKU",
                                                CMS_OUTER_JOIN_LEFT)

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::SetPropertyAttributes Method [C++]

CatalogManager.SetPropertyAttributes Method [Visual Basic]

Use this method to change the value of attributes of properties.

Definition

[C++]
HRESULT ICatalogManager3::SetPropertyAttributes(
  _Recordset* pRSNewState,
  VARIANT fForceUpdate
);
[Visual Basic]
Sub SetPropertyAttributes(
  pRSNewState As Recordset,
  Optional fForceUpdate As Variant
)

Parameters

pRSNewState [C++]
[in] A reference to a _Recordset object that specifies the new attribute values.
pRSNewState [Visual Basic]
A Recordset object that specifies the new attribute values.
fForceUpdate [C++]
[in, optional] A VARIANT that specifies whether to force an update.
fForceUpdate [Visual Basic]
A Variant that specifies whether to force an update.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_INVALIDARG | [C++] 0x8007005 [Visual Basic] &H8007007 | One or more arguments are invalid.
E_CAT_INVALID_RECORDSET | [C++] 0x889800A [Visual Basic] &H889800E | The recordset you specified is either invalid or empty.
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_CANNOTCHANGE_DATATYPE | [C++] 0x8898010 [Visual Basic] &H889801E | The datatype of this property cannot be changed.
E_CAT_INVALID_LANG_ATTRIBUTE | [C++] 0x889800F [Visual Basic] &H8898002 | The Languagesensitive attribute of this property cannot be changed because this property is being used in one or more catalogs.
E_CAT_INVALID_ISFREETEXTSEARCHABLE_ATTRIBUTE | [C++] 0x8898003 [Visual Basic] &H889800A | The attribute IsFreeTextSearchable can be set to only String, FilePath, and Enumeration datatypes.
E_CAT_INVALID_COLUMN_LENGTH | [C++] 0x8898004 [Visual Basic] &H8898000 | The length specified for this property does not lie between 1 and 4000.
E_CAT_PROP_DOESNT_EXIST | [C++] 0x8898000 [Visual Basic] &H8898005 | The property name you specified does not exist.
E_CAT_INVALID_PROPERTY_LENGTH | [C++] 0x8898005 [Visual Basic] &H8898007 | The property you specified is being used as a ProductID or VariantID. You cannot decrease the maximum length of this property or change its data type.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use a Recordset object returned from either the GetPropertyAttributes method or the CreateProperty method as the pRSNewState parameter so that its time stamp can be compared with the time stamp of the existing property for error detection. You can change all attributes for a property except its data type and language-sensitive attribute. The only exception is that you can change a String data type to a Text data type.

You cannot change the LanguageSensitive attribute of a property. However, you can convert non-multilingual properties to multilingual properties by using the Commerce Server 2002 upgrade tool, located in /Program Files/Microsoft Commerce Server 2002/Upgrade/CS2002Upgrade.exe.

Property attribute names, and therefore the strAttrName parameter, are limited to a maximum length of 36 characters, and cannot contain any of the following characters:

  • Comma (,)
  • Double quote (")
  • Left square bracket ([)
  • Right square bracket (])

Attribute values of type String are limited to a length of 4000 characters.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'The following example changes the datatype of MyProperty to Text.
'The existing DataType attribute of MyProperty must equal cscString.

Set Rs = oCatalogManager.GetPropertyAttributes(“MyProperty”)
Rs(“DataType”) = cscText
oCatalogManager.SetPropertyAttributes rs

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateProperty

[Visual Basic] CatalogManager.CreateProperty

[C++] ICatalogManager3::GetPropertyAttributes

[Visual Basic] CatalogManager.GetPropertyAttributes


ICatalogManager3::ValidateXML Method [C++]

CatalogManager.ValidateXML [Visual Basic]

Use this method to validate an XML-formatted file without actually importing it into the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::ValidateXML(
  BSTR strXMLFilePath
  _Recordset** ppRsErrors
);
[Visual Basic]
Function ValidateXML(
  strXMLFilePath As String,
) As Recordset

Parameters

strXMLFilePath [C++]
[in] A BSTR that contains the path of the XML file.
strXMLFilePath [Visual Basic]
A String that contains the path of the XML file.
ppRsErrors [C++]
[out retval] The address of a pointer to a _Recordset that contains, on output, the first 100 errors found.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid.

Remarks

[C++]

If the XML file is valid this method will return S_OK and the ppRsErrors parameter returned by this method will be NULL. If the file contains errors, the method returns S_FALSE. The ppRsErrors parameter returned by this method contains valid error data only if the method completes successfully with a value of S_FALSE and there are errors to report.

The recordset returned by the ppRsErrors parameter has a single field, Errors, and one row for each error. This method will return a maximum of 100 errors.

[Visual Basic]

If the XML file is valid this method sets the Number property of the global Err object to S_OK, and the ppRsErrors parameter returned by this method will contain Nothing. If the method sets that value to S_FALSE the file contains errors. The returned Recordset contains valid error data only if the method completes successfully with a value of S_FALSE and there are errors to report.

The returned Recordset has a single field, Errors, and one row for each error. This method will return a maximum of 100 errors.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set RsErrors = oCatalogManager.ValidateXML ("C:\SampleFile.xml")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3 Properties [C++]

CatalogManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Catalogs | _Recordset | Returns a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | _Recordset | Returns a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | _Recordset | This property is obsolete.
ProductDefinitions | _Recordset | Returns a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | _Recordset | Returns a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.
[Visual Basic]
Property | Type | Description
Catalogs | _Recordset | Returns a recordset containing a record for each catalog contained in the Product Catalog System, including their properties. This property is read-only.
CategoryDefinitions | _Recordset | Returns a recordset containing the names of all of the category definitions that currently exist in the Product Catalog System. This property is read-only.
CustomCatalogs | _Recordset | This property is obsolete.
ProductDefinitions | _Recordset | Returns a recordset containing the names of all the product definitions that currently exist in the Product Catalog System. This property is read-only.
Properties | _Recordset | Returns a recordset containing the name of each property that currently exists in the Product Catalog System. This property is read-only.


ICatalogManager3::get_Catalogs Property [C++]

CatalogManager.Catalogs Property [Visual Basic]

The Catalogs property is a read-only recordset that describes all the catalogs in the Product Catalog System. The returned recordset includes the properties of each catalog.

Definition

[C++]
HRESULT ICatalogManager3::get_Catalogs(
  BSTR strSearchPhrase,
  VARIANT lStartingRecord,
  VARIANT lNumRecords,
  BSTR strLanguage,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** Catalogs
);
[Visual Basic]
Property Catalogs(
  Optional strSearchPhrase As String,
  Optional lStartingRecord As Variant,
  Optional lNumRecords As Variant,
  Optional strLanguage As String,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

strSearchPhrase [C++]
[in, optional] A BSTR that contains the search phrase.
strSearchPhrase [Visual Basic]
A String that contains the search phrase.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record. A value of one (1) indicates the first record.
lNumRecords [C++]
[in, optional] A VARIANT that contains the number of records requested.
lNumRecords [Visual Basic]
A Variant that contains the number of records requested.
strLanguage [C++]
[in, optional] A BSTR that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLanguage [Visual Basic]
A String that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of catalogs that match the search phrase.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of catalogs that match the search phrase.
Catalogs [C++]
[out, retval] A pointer to a _Recordset object used to return the catalogs.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant Value Description
E_CAT_CATMGR_NOT_INITIALIZED

[C++] 0x889800B5

[Visual Basic] &H889800B5

 The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER

[C++] 0x889800B7

[Visual Basic] &H889800B7

The recordset pointer that you specified is invalid.
E_INVALIDARG

[C++] 0x80070057

[Visual Basic] &H80070057

One or more arguments are invalid.
E_CAT_INVALID_SEARCH_CLAUSE

[C++] 0x8898011C

[Visual Basic] &H8898011C

The search condition that you specified is invalid for one of the following reasons
  1. It contains -- or /* which should not be used outside of property names and property values T
  2. he parenthesis in the search condition do not match in number or alignment

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Catalogs parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The recordset returned by this property is valid only if it is accessed successfully.

The following table contains the fields in the returned recordset.

Field Name | Data Type | Description
CatalogName | String 128 characters | None
Locale | Integer | None
StartDate | DateTime | None
EndDate | DateTime | None
VariantID | String 128 characters | The name of the property that uniquely identifies a product variant.
ProductID | String 128 characters | The name of the property that uniquely identifies a product.
Currency | String 128 characters | None
WeightMeasure | String 128 characters | None
TimeStamp | timestamp | None
CatalogID | Integer | The number that uniquely identifies a catalog.
CustomCatalog | Bit | Reserved for future use; this is always set to 0.
FreeTextIndexCreated | DateTime | None
ProductTableUpdated | DateTime | None
FullTextCatalog | String 128 characters | The SQL full-text catalog associated with this catalog.
DefaultLanguage | String 10 characters | The default language of the catalog.
ReportingLanguage | String 10 characters | The reporting language for this catalog.
IsVirtualCatalog | Boolean | A flag indicating whether this is a virtual catalog.
VirtualCatalogStatus | SmallInt | 0: Needs to be rebuilt 1: Catalog being rebuilt 2: An error occurred during rebuild 3: In process of rebuilding 4: In process of being materialized 5: Because you made changes to the base catalog during the rebuild, this catalog is now dirty
CatalogFields | Integer | 0: The Virtual Catalog is built as a view 1: The Virtual Catalog is materialized.

The recordset will contain a column named DisplayName which will contain the display names of the catalogs in the language specified by strLanguage parameter. If a catalog does not have a displayname in this language then NULL will be returned for that catalog

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateCatalog

[Visual Basic] CatalogManager.CreateCatalog

[C++] ICatalogManager3::DeleteCatalog

[Visual Basic] CatalogManager.DeleteCatalog


ICatalogManager3::get_CategoryDefinitions Property [C++]

CatalogManager.CategoryDefinitions Property [Visual Basic]

The CategoryDefinitions property is a read-only recordset that contains the names of all the category definitions in the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::get_CategoryDefinitions(
  _Recordset** CategoryDefinitions
);
[Visual Basic]
Property CategoryDefinitions() As _Recordset

Parameters

CategoryDefinitions [C++]
[out, retval] A pointer to a _Recordset object used to return category definitions.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid

Remarks

[C++] The CategoryDefinitions parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The recordset returned by this property is valid only if it is accessed successfully.

The returned recordset will contain a single field called DefinitionName and one row for each category definition in the Product Catalog System. This field is a 128 character String.

If no category definitions are currently in the Product Catalog System, then the EOF property of the returned recordset will be set to VARIANT_TRUE.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateCategoryDefinition

[Visual Basic] CatalogManager.CreateCategoryDefinition

[C++] ICatalogManager3::DeleteDefinition

[Visual Basic] CatalogManager.DeleteDefinition


ICatalogManager3::get_CustomCatalogs Property [C++]

CatalogManager.CustomCatalogs Property [Visual Basic]

The CustomCatalogs property is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object


ICatalogManager3::get_ProductDefinitions Property [C++]

CatalogManager.ProductDefinitions Property [Visual Basic]

The ProductDefinitions property is a read-only Recordset object that contains the names of all the product definitions in the Product Catalog System.

Definition

[C++]
HRESULT ICatalogManager3::get_ProductDefinitions(
  _Recordset** ProductDefinitions
);
[Visual Basic]
Property ProductDefinitions() As _Recordset

Parameters

ProductDefinitions [C++]
[out, retval] A pointer to a _Recordset object used to return the product definitions.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ProductDefinitions parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The Recordset object contains valid data only if the property was accessed successfully.

The returned recordset will contain a single field called DefinitionName and one row for each product definition in the Product Catalog System. This field is a 128 character String.

If no product definitions are currently in the Product Catalog System, then the EOF property of the returned recordset will be set to VARIANT_TRUE.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateProductDefinition

[Visual Basic] CatalogManager.CreateProductDefinition

[C++] ICatalogManager3::DeleteDefinition

[Visual Basic] CatalogManager.DeleteDefinition


ICatalogManager3::get_Properties Property [C++]

CatalogManager.Properties Property [Visual Basic]

The Properties property is a read-only recordset that returns the name of each property that currently exists in the Product Catalog System. If the catalog name is specified, only properties used in that catalog are returned.

Definition

[C++]
HRESULT ICatalogManager3::Properties(
  VARIANT strCatalogName,
  _Recordset** ppRSProperties
);
[Visual Basic]
Function Properties(
  Optional strCatalogName As Variant
) As _Recordset

Parameters

strCatalogName [C++]
[in, optional] A VARIANT that contains the name of the catalog for which the properties are returned. If this optional parameter is omitted, all properties are returned.
strCatalogName [Visual Basic]
A Variant that contains the name of the catalog for which the properties are returned. If this optional parameter is omitted, all properties are returned.
ppRSProperties [C++]
[out] A pointer to a _Recordset object used to return the properties.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Name | Value | Description
E_CAT_CATMGR_NOT_INITIALIZED | [C++] 0x889800B [Visual Basic] &H8898005 | The CatalogManager object has not been initialized. The CatalogManager object should be initialized before calling this method.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B [Visual Basic] &H8898007 | The recordset pointer that you specified is invalid

Remarks

[C++] The Properties parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The Recordset object contains valid data only if the property was accessed successfully.

[C++] This method returns a Recordset object containing a row for each property returned. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

[Visual Basic] This method returns a Recordset object containing a row for each property returned. For more information about the fields in this Recordset object, see PropertyAttribute Recordset.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsProps = myCatalogManager.Properties ("ShoesCatalog")

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::CreateProperty

[Visual Basic] CatalogManager.CreateProperty

[C++] ICatalogManager3::DeleteProperty

[Visual Basic] CatalogManager.DeleteProperty


PropertyAttribute Recordset [C++]

PropertyAttribute Recordset [Visual Basic]

The PropertyAttribute recordset reflects the default property definitions found in the CatalogAttributes table.

The following table shows the fields in the PropertyAttribute recordset.

Field name | Data type | Description
PropertyName | String | Indicates the unique identifying name of the property.
DataType | Small integer | Indicates the DataType of the property. Legal values and their meanings are those of the CatalogDataTypeEnum enumeration. See the following table.
u_DefaultValue | String | Indicates the default value for properties of String DataType.
u_DefaultValue_<lang> | String | Indicates the default value for properties of String DataType in a specific language. For example, DisplayName_EN-US is the display name for United States English. There will be one attribute in this form for each language in the Product Catalog schema.
i_DefaultValue | Integer | Indicates the default value for properties of Integer DataType.
dt_DefaultValue | datetime | Indicates the default value for properties of datetime DataType.
cy_DefaultValue | money | Indicates the default value for properties of money DataType.
f_DefaultValue | bit | Indicates the default value for properties of bit DataType.
fp_DefaultValue | float | Indicates the default value for properties of float DataType.
i_MinValue | Integer | Indicates the minimum value for properties of Integer DataType.
i_MaxValue | Integer | Indicates the maximum value for properties of Integer DataType.
dt_MinValue | datetime | Indicates the minimum value for properties of datetime DataType.
dt_MaxValue | datetime | Indicates the maximum value for properties of datetime DataType.
fp_MinValue | float | Indicates the minimum value for properties of float DataType.
fp_MaxValue | float | Indicates the maximum value for properties of float DataType.
IsFreeTextSearchable | bit | Indicates whether this property should be included in the full-text index, and therefore, be free text searchable. The values are 0 for False; 1 for True.
IncludeInSpecSearch | bit | Indicates whether this category is to be used for specification searches. True indicates this category will be included in the record set returned by calls to the ProductCatalog.GetSearchableCategories object. The values are 0 for False; 1 for True.
MinLength | Integer | Indicates the minimum length for properties of String DataType.
MaxLength | Integer | Indicates the maximum length for properties of String DataType.
cy_MinValue | money | Indicates the minimum value for properties of money DataType.
cy_MaxValue | money | Indicates the maximum value for properties of money DataType.
TimeStamp | timestamp | Not used.
DisplayOnSite | bit | Indicates whether this property should be shown to users visiting the Web site. The values are 0 for False; 1 for True.
DisplayName | String | Not used. See DisplayName_<lang> in this table
DisplayName_<lang> | String | Indicates the display name for the property in a specific language. For example, DisplayName_EN-US is the display name for United States English. There will be one attribute in this form for each language in the Product Catalog System.
AssignAll | bit | Indicates whether this property should automatically be assigned to product definitions as they are created through Commerce Server Business Desk. The values are 0 for False; 1 for True.
ExportToDW | bit | Indicates whether this property should be should be included in data exported to the Data Warehouse. The values are 0 for False; 1 for True.
DisplayInProductsList | bit | Indicates whether this property is to be displayed in summary lists of products in the Business Desk Catalog Editor, or in other areas where product lists are displayed. The values are 0 for False; 1 for True.
IsRequired | bit | Indicates whether a value is required for this property. The values are 0 for False; 1 for True.
LanguageSensitive | bit | Indicates whether this property is language sensitive. This attribute is only valid when the DataType attribute is cscString, cscText, cscFilename, or cscEnumeration. The values are 0 for False; 1 for True.
Currency | nvarchar(10) | Indicates the currency of the property as a three letter ISO 4217 currency code. For example "USD", "AUD", "CDN", "GBP", "DEM", "JPY". This attribute is only valid when the DataType attribute is cscCurrency (SQL data type money). The value is NULL for all other data types.

The following table shows the values of the CatalogDataTypeEnum enumeration, their associated names, and describes their use in the DataType attribute.

Name | Value | Description
cscInteger | 0 | Indicates an exact numeric value that holds whole numbers from –2[31] (-2,147,483,648) <= n <= 2[31] –1 (2,147,483,647).
cscBigInteger | 1 | Indicates an exact numeric value with precision 19 (if signed) or 20 (if unsigned), and scale 0 (signed: –2[63] <= n <= 2[63] – 1, unsigned: 0 <= n <= 2[64] – 1) [3], [9].
cscFloat | 2 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscDouble | 3 | Indicates a positive or negative floating-point number. The range of positive values is approximately 2.23E –308 through 1.79E 308, and the range of negative values is approximately –2.23E –308 through –1.79E 308.
cscBoolean | 4 | Indicates a Boolean (bit), holds either a 1 or 0. Integer values other than 1 or 0 are accepted but are always interpreted as 1.
cscString | 5 | Indicates a variable-length character string with a maximum string length of 4000 characters.
cscDateTime | 6 | Indicates a Microsoft SQL Server DateTime data type.
cscCurrency | 7 | Indicates a Microsoft SQL Server money data type.
cscFilePath | 8 | Indicates a String that holds a file path.
cscEnumeration | 9 | Indicates an Integer associated with a defined constant.
cscText | 10 | Indicates a Microsoft SQL Server Text data type.
cscInvalid | -1 | Reserved for future use.

See Also

[C++] CatalogManager Object

[Visual Basic] CatalogManager Object

[C++] ICatalogManager3::GetAttributes

[Visual Basic] CatalogManager.GetAttributes

[C++] ICatalogManager3::GetPropertyAttributes

[Visual Basic] CatalogManager.GetPropertyAttributes

[C++] ICatalogManager3::get_Properties

[Visual Basic] CatalogManager.Properties


Table of Language Culture Names, Codes, and ISO Values [C++]

Table of Language Culture Names, Codes, and ISO Values [Visual Basic]

The following table contains values for Language Culture Names, Display Names, Culture Codes, and ISO 639x Values that are used by Commerce Server.

Language Culture Name | Display Name | Culture Code | ISO 639x Value
af-ZA | Afrikaans - South Africa | 0x0436 | AFK
sq-AL | Albanian - Albania | 0x041C | SQI
ar-DZ | Arabic - Algeria | 0x1401 | ARG
ar-BH | Arabic - Bahrain | 0x3C01 | ARH
ar-EG | Arabic - Egypt | 0x0C01 | ARE
ar-IQ | Arabic - Iraq | 0x0801 | ARI
ar-JO | Arabic - Jordan | 0x2C01 | ARJ
ar-KW | Arabic - Kuwait | 0x3401 | ARK
ar-LB | Arabic - Lebanon | 0x3001 | ARB
ar-LY | Arabic - Libya | 0x1001 | ARL
ar-MA | Arabic - Morocco | 0x1801 | ARM
ar-OM | Arabic - Oman | 0x2001 | ARO
ar-QA | Arabic - Qatar | 0x4001 | ARQ
ar-SA | Arabic - Saudi Arabia | 0x0401 | ARA
ar-SY | Arabic - Syria | 0x2801 | ARS
ar-TN | Arabic - Tunisia | 0x1C01 | ART
ar-AE | Arabic - United Arab Emirates | 0x3801 | ARU
ar-YE | Arabic - Yemen | 0x2401 | ARY
hy-AM | Armenian - Armenia | 0x042B |
Cy-az-AZ | Azeri (Cyrillic) - Azerbaijan | 0x082C |
Lt-az-AZ | Azeri (Latin) - Azerbaijan | 0x042C |
eu-ES | Basque - Basque | 0x042D | EUQ
be-BY | Belarusian - Belarus | 0x0423 | BEL
bg-BG | Bulgarian - Bulgaria | 0x0402 | BGR
ca-ES | Catalan - Catalan | 0x0403 | CAT
zh-CN | Chinese - China | 0x0804 | CHS
zh-HK | Chinese - Hong Kong SAR | 0x0C04 | ZHH
zh-MO | Chinese - Macau SAR | 0x1404 |
zh-SG | Chinese - Singapore | 0x1004 | ZHI
zh-TW | Chinese - Taiwan | 0x0404 | CHT
zh-CHS | Chinese (Simplified) | 0x0004 |
zh-CHT | Chinese (Traditional) | 0x7C04 |
hr-HR | Croatian - Croatia | 0x041A | HRV
cs-CZ | Czech - Czech Republic | 0x0405 | CSY
da-DK | Danish - Denmark | 0x0406 | DAN
div-MV | Dhivehi - Maldives | 0x0465 |
nl-BE | Dutch - Belgium | 0x0813 | NLB
nl-NL | Dutch - The Netherlands | 0x0413 |
en-AU | English - Australia | 0x0C09 | ENA
en-BZ | English - Belize | 0x2809 | ENL
en-CA | English - Canada | 0x1009 | ENC
en-CB | English - Caribbean | 0x2409 |
en-IE | English - Ireland | 0x1809 | ENI
en-JM | English - Jamaica | 0x2009 | ENJ
en-NZ | English - New Zealand | 0x1409 | ENZ
en-PH | English - Philippines | 0x3409 |
en-ZA | English - South Africa | 0x1C09 | ENS
en-TT | English - Trinidad and Tobago | 0x2C09 | ENT
en-GB | English - United Kingdom | 0x0809 | ENG
en-US | English - United States | 0x0409 | ENU
en-ZW | English - Zimbabwe | 0x3009 |
et-EE | Estonian - Estonia | 0x0425 | ETI
fo-FO | Faroese - Faroe Islands | 0x0438 | FOS
fa-IR | Farsi - Iran | 0x0429 | FAR
fi-FI | Finnish - Finland | 0x040B | FIN
fr-BE | French - Belgium | 0x080C | FRB
fr-CA | French - Canada | 0x0C0C | FRC
fr-FR | French - France | 0x040C |
fr-LU | French - Luxembourg | 0x140C | FRL
fr-MC | French - Monaco | 0x180C |
fr-CH | French - Switzerland | 0x100C | FRS
gl-ES | Galician - Galician | 0x0456 |
ka-GE | Georgian - Georgia | 0x0437 |
de-AT | German - Austria | 0x0C07 | DEA
de-DE | German - Germany | 0x0407 |
de-LI | German - Liechtenstein | 0x1407 | DEC
de-LU | German - Luxembourg | 0x1007 | DEL
de-CH | German - Switzerland | 0x0807 | DES
el-GR | Greek - Greece | 0x0408 | ELL
gu-IN | Gujarati - India | 0x0447 |
he-IL | Hebrew - Israel | 0x040D | HEB
hi-IN | Hindi - India | 0x0439 | HIN
hu-HU | Hungarian - Hungary | 0x040E | HUN
is-IS | Icelandic - Iceland | 0x040F | ISL
id-ID | Indonesian - Indonesia | 0x0421 |
it-IT | Italian - Italy | 0x0410 |
it-CH | Italian - Switzerland | 0x0810 | ITS
ja-JP | Japanese - Japan | 0x0411 | JPN
kn-IN | Kannada - India | 0x044B |
kk-KZ | Kazakh - Kazakhstan | 0x043F |
kok-IN | Konkani - India | 0x0457 |
ko-KR | Korean - Korea | 0x0412 | KOR
ky-KZ | Kyrgyz - Kazakhstan | 0x0440 |
lv-LV | Latvian - Latvia | 0x0426 | LVI
lt-LT | Lithuanian - Lithuania | 0x0427 | LTH
mk-MK | Macedonian - FYROM | 0x042F | MKD
ms-BN | Malay - Brunei | 0x083E |
ms-MY | Malay - Malaysia | 0x043E |
mr-IN | Marathi - India | 0x044E |
mn-MN | Mongolian - Mongolia | 0x0450 |
nb-NO | Norwegian (Bokm虱) - Norway | 0x0414 |
nn-NO | Norwegian (Nynorsk) - Norway | 0x0814 |
pl-PL | Polish - Poland | 0x0415 | PLK
pt-BR | Portuguese - Brazil | 0x0416 | PTB
pt-PT | Portuguese - Portugal | 0x0816 |
pa-IN | Punjabi - India | 0x0446 |
ro-RO | Romanian - Romania | 0x0418 | ROM
ru-RU | Russian - Russia | 0x0419 | RUS
sa-IN | Sanskrit - India | 0x044F |
Cy-sr-SP | Serbian (Cyrillic) - Serbia | 0x0C1A |
Lt-sr-SP | Serbian (Latin) - Serbia | 0x081A |
sk-SK | Slovak - Slovakia | 0x041B | SKY
sl-SI | Slovenian - Slovenia | 0x0424 | SLV
es-AR | Spanish - Argentina | 0x2C0A | ESS
es-BO | Spanish - Bolivia | 0x400A | ESB
es-CL | Spanish - Chile | 0x340A | ESL
es-CO | Spanish - Colombia | 0x240A | ESO
es-CR | Spanish - Costa Rica | 0x140A | ESC
es-DO | Spanish - Dominican Republic | 0x1C0A | ESD
es-EC | Spanish - Ecuador | 0x300A | ESF
es-SV | Spanish - El Salvador | 0x440A | ESE
es-GT | Spanish - Guatemala | 0x100A | ESG
es-HN | Spanish - Honduras | 0x480A | ESH
es-MX | Spanish - Mexico | 0x080A | ESM
es-NI | Spanish - Nicaragua | 0x4C0A | ESI
es-PA | Spanish - Panama | 0x180A | ESA
es-PY | Spanish - Paraguay | 0x3C0A | ESZ
es-PE | Spanish - Peru | 0x280A | ESR
es-PR | Spanish - Puerto Rico | 0x500A | ES
es-ES | Spanish - Spain | 0x0C0A |
es-UY | Spanish - Uruguay | 0x380A | ESY
es-VE | Spanish - Venezuela | 0x200A | ESV
sw-KE | Swahili - Kenya | 0x0441 |
sv-FI | Swedish - Finland | 0x081D | SVF
sv-SE | Swedish - Sweden | 0x041D |
syr-SY | Syriac - Syria | 0x045A |
ta-IN | Tamil - India | 0x0449 |
tt-RU | Tatar - Russia | 0x0444 |
te-IN | Telugu - India | 0x044A |
th-TH | Thai - Thailand | 0x041E | THA
tr-TR | Turkish - Turkey | 0x041F | TRK
uk-UA | Ukrainian - Ukraine | 0x0422 | UKR
ur-PK | Urdu - Pakistan | 0x0420 | URD
Cy-uz-UZ | Uzbek (Cyrillic) - Uzbekistan | 0x0843 |
Lt-uz-UZ | Uzbek (Latin) - Uzbekistan | 0x0443 |
vi-VN | Vietnamese - Vietnam | 0x042A | VIT


CatalogSets Object [C++]

CatalogSets Object [Visual Basic]

Use this object to work with catalog sets in the Product Catalog System. Catalog sets allow you to present different collections of catalogs to different users and organizations.

ProgID: | Commerce.CatalogSets (Externally creatable)
COM Class Name: | CatalogSets
Type Library Name: | Microsoft Commerce 2002 Catalog Sets Type Library
DLL Name: | CatalogSets.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _CatalogSets
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _CatalogSets interface to access the properties and methods of the CatalogSets object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.
[Visual Basic]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.


_CatalogSets Methods [C++]

CatalogSets Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.
[Visual Basic]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.


_CatalogSets::CreateCatalogSet Method [C++]

CatalogSets.CreateCatalogSet Method [Visual Basic]

Use this method to create a new catalog set in the catalog database.

Definition

[C++]
HRESULT _CatalogSets::CreateCatalogSet(
  BSTR CatalogSetName,
  BSTR CatalogSetDescription,
  VARIANT_BOOL bWildCard,
  _Recordset* CatalogNamesRS,
  BSTR* CatalogSetID
);
[Visual Basic]
Function CreateCatalogSet(
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
) As String

Parameters

CatalogSetName [C++]
[in] A BSTR that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetName [Visual Basic]
A String that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription [C++]
[in] A BSTR that contains a description of the new catalog set.
CatalogSetDescription [Visual Basic]
A String that contains a description of the new catalog set.
bWildCard [C++]
[in] A VARIANT_BOOL that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
bWildCard [Visual Basic]
A Boolean that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS [C++]
[in, optional] A pointer to an ActiveX Data Objects (ADO) _Recordset object that specifies the catalogs to be included in the new catalog set. The _Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.
CatalogNamesRS [Visual Basic]
A reference to an ADO Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.
CatalogSetID [C++]
[out, retval] A pointer to a BSTR used to return the automatically generated ID (GUID) of the new catalog set.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the ID of the new catalog set.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The CatalogSetID parameter contains valid data only if the new catalog set was created successfully.

[Visual Basic] The returned String contains a valid ID only if the new catalog set was created successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'The following example shows the creation of a catalog set
'associated with all the catalogs in the catalog management system.
strCatalogSetID = myCatalogSets.CreateCatalogSet("PremiumCatalogs", "Premium catalog set", TRUE)

'The following example shows the creation of a catalog set
'associated with two specific catalogs.
set rsCatalogNames = CreateObject("ADODB Recordset")
call rsCatalogNames.Fields.Append("CatalogName", adBSTR)
rsCatalogNames.Open
rsCatalogNames.AddNew
rsCatalogNames.Fields("CatalogName").value = "Catalog1"
rsCatalogNames.Update
rsCatalogNames.AddNew
rsCatalogNames.Fields("CatalogName").value = "Catalog2"
rsCatalogNames.Update

strCatalogSetID = myCatalogSets.CreateCatalogSet("CombinedCatalog", "A one and a two", FALSE, rsCatalogNames)

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::DeleteCatalogSet Method [C++]

CatalogSets.DeleteCatalogSet Method [Visual Basic]

Use this method to delete an existing catalog set from the Catalog database.

Definition

[C++]
HRESULT _CatalogSets::DeleteCatalogSet(
  BSTR CatalogSetID
);
[Visual Basic]
Sub DeleteCatalogSet(
  CatalogSetID As String
)

Parameters

CatalogSetID [C++]
[in] A BSTR that contains the GUID of the catalog set to be deleted.
CatalogSetID [Visual Basic]
A String that contains the ID of the catalog set to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Deleting a catalog set does not delete the catalog set ID. Referencing an invalid catalog set ID will prevent access to the solution sites.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID1 is a GUID
myCatalogSets.DeleteCatalogSet strCatalogSetID1

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogs Method [C++]

CatalogSets.GetCatalogs Method [Visual Basic]

Use this method to return a list of all catalogs.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogs(
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogs() As Recordset

Parameters

retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of all catalogs

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsMyCatalogs = myCatalogSets.GetCatalogs()

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogSetIDForUser Method [C++]

CatalogSets.GetCatalogSetIDForUser Method [Visual Basic]

Use this method to return the catalog set ID for a specific user.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogSetIDForUser(
  IDispatch* objProfileService,
  BSTR user_id,
  BSTR defaultCatalogSetID,
  VARIANT* retVal
);
[Visual Basic]
Function GetCatalogSetIDForUser(
  objProfileService As IDispatch,
  user_id As String,
  defaultCatalogSetID As String
) As Variant

Parameters

objProfileService [C++]
[in] A pointer to the IDispatch interface to the ProfileService object.
objProfileService [Visual Basic]
A ProfileService object.
user_id [C++]
[in] A BSTR that contains the user ID.
user_id [Visual Basic]
A String that contains the user ID.
defaultCatalogSetID [C++]
[in] A BSTR that contains the default catalog set ID.
defaultCatalogSetID [Visual Basic]
A String that contains the default catalog set ID.
retVal [C++]
[out, retval] A pointer to a VARIANT used to return the catalog set ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the catalog set ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Variant returned by this method contains valid data only if the method completes successfully.

If the user defined in the objProfileService parameter has a catalog set associated with it, this method returns that ID; if not, it returns the catalog set associated with the user organization. If this catalog set does not exist, it returns the value supplied in the defaultCatalogSetID parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

strCatalogSetID = myCatalogSets.GetCatalogSetIDForUser(oProfileService, user_id, defaultCatalogSetID)

See Also

[C++] CatalogSets Object

[C++] ProfileService Object

[Visual Basic] CatalogSets Object

[Visual Basic] ProfileService Object


_CatalogSets::GetCatalogSetInfo Method [C++]

CatalogSets.GetCatalogSetInfo Method [Visual Basic]

Use this method to return the basic properties for a catalog set.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogSetInfo(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogSetInfo(
  CatalogSetID As String
) As Recordset

Parameters

CatalogSetID [C++]
[in] A BSTR that contains the catalog set ID, a GUID.
CatalogSetID [Visual Basic]
A String that contains the catalog set ID, a GUID.
retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a single row and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, maximum of 255 characters | None
CatalogSetDescription | String, maximum of 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'
set rsMyCatalogSetInfo = myCatalogSets.GetCatalogSetInfo(strCatalogSetID)

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogSets Method [C++]

CatalogSets.GetCatalogSets Method [Visual Basic]

Use this method to return a list of all catalog sets.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogSets(
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogSets() As Recordset

Parameters

retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of all catalog sets.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a row for each catalog set and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, 255 characters | None
CatalogSetDescription | String, 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsMyCatalogSets = myCatalogSets.GetCatalogSets()

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogsForUser Method [C++]

CatalogSets.GetCatalogsForUser Method [Visual Basic]

Use this method to return the list of catalogs that have been assigned to a particular user through the catalog set specified in their profile.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogsForUser(
  IDispatch* objProfileService,
  BSTR user_id,
  BSTR defaultCatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsForUser(
  objProfileService As IDispatch,
  user_id As String,
  defaultCatalogSetID As String
) As Recordset

Parameters

objProfileService [C++]
[in] A pointer to the IDispatch interface to the profile service.
objProfileService [Visual Basic]
A profile service object.
user_id [C++]
[in] A BSTR that contains the user ID.
user_id [Visual Basic]
A String that contains the user ID.
defaultCatalogSetID [C++]
[in] A BSTR that contains the default catalog set ID.
defaultCatalogSetID [Visual Basic]
A String that contains the default catalog set ID.
retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of catalogs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set associated with the user profile in the user_id parameter and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None

If the user profile object passed to this method has not been initialized, the object will return the default catalog set.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set objProfileService = Server.CreateObject("Commerce.ProfileService")
Call objProfileService.Initialize(sProfileServiceConnectionString, _
   "Profile Definitions")
set rsCatalogSet = myCatalogSets.GetCatalogsForUser(objProfileService, _
   user_id, defaultCatalogSetID)

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogsInCatalogSet Method [C++]

CatalogSets.GetCatalogsInCatalogSet Method [Visual Basic]

Use this method to return the catalogs that are included in a particular catalog set.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogsInCatalogSet(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsInCatalogSet(
  CatalogSetID As String
) As Recordset

Parameters

CatalogSetID [C++]
[in] A BSTR that contains the catalog set ID.
CatalogSetID [Visual Basic]
A String that contains the catalog set ID.
retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of catalogs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table. | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table. | String maximum of 128 characters | None

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsCatalogNames = myCatalogSets.GetCatalogsInCatalogSet(CatalogSetID)

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::GetCatalogsNotInCatalogSet Method [C++]

CatalogSets.GetCatalogsNotInCatalogSet Method [Visual Basic]

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

[C++]
HRESULT _CatalogSets::GetCatalogsNotInCatalogSet(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsNotInCatalogSet(
  CatalogSetID As String
) As Recordset

Parameters

CatalogSetID [C++]
[in] A BSTR that contains the catalog set ID.
CatalogSetID [Visual Basic]
A String that contains the catalog set ID.
retVal [C++]
[out, retval] A pointer to hold the reference to the returned _Recordset, which will contain the retVal parameter.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The retVal parameter contains valid data only if the method completes successfully.

[Visual Basic] The Recordset object returned by this method contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID is the GUID of a catalog set
set rsCatalogs = myCatalogSets.GetCatalogsNotInCatalogSet(strCatalogSetID)

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::Initialize Method [C++]

CatalogSets.Initialize [Visual Basic]

Use this method to initialize a new CatalogSet object.

Definition

[C++]
HRESULT _CatalogSets::Initialize(
  BSTR CatalogConnectionString,
  BSTR TransactionConfigConnectionString
);
[Visual Basic]
Sub Initialize(
  CatalogConnectionString As String,
  TransactionConfigConnectionString As String
)

Parameters

CatalogConnectionString [C++]
[in] A BSTR that contains the catalog connection string.
CatalogConnectionString [Visual Basic]
A String that contains the catalog connection string.
TransactionConfigConnectionString [C++]
[in] A BSTR that contains the transaction configuration connection string. Not used
TransactionConfigConnectionString [Visual Basic]
A String that contains the transaction configuration connection string. Not used.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Note

  • The TransactionConfigConnectionString parameter is required, but not used. The contents of the String are ignored. This parameter is reserved for future use.
[Visual Basic]

Example

myCatalogSets.Initialize strCatalogConnection, ""

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::RemoveCatalogFromCatalogSets [C++]

CatalogSets.RemoveCatalogFromCatalogSets [Visual Basic]

Use this method to remove a catalog from all catalog sets.

Definition

[C++]
HRESULT _CatalogSets::RemoveCatalogFromCatalogSets(
  BSTR CatalogName
);
[Visual Basic]
Sub RemoveCatalogFromCatalogSets(
  CatalogName As String
)

Parameters

CatalogName [C++]
[in] A BSTR that contains the catalog name to be removed.
CatalogName [Visual Basic]
A String that contains the catalog name to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method should be called whenever a catalog is deleted, before or after calling the CatalogManager.DeleteCatalog or ProductCatalog.DeleteCustomCatalog methods.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

MyCatalogManager.DeleteCatalog "Shoes"
myCatalogSets.RemoveCatalogFromCatalogSets "Shoes"

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


_CatalogSets::UpdateCatalogSet [C++]

CatalogSets.UpdateCatalogSet [Visual Basic]

Use this method to update an existing catalog set and its basic properties.

Definition

[C++]
HRESULT _CatalogSets::UpdateCatalogSet(
  BSTR CatalogSetID,
  BSTR CatalogSetName,
  BSTR CatalogSetDescription,
  VARIANT_BOOL bWildCard,
  _Recordset* CatalogNamesRS
);
[Visual Basic]
Sub UpdateCatalogSet(
  CatalogSetID As String,
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As Recordset
)

Parameters

CatalogSetID [C++]
[in] A BSTR that contains the catalog set ID (GUID).
CatalogSetID [Visual Basic]
A String that contains the catalog set ID (GUID).
CatalogSetName [C++]
[in] A BSTR that contains the catalog set name. The maximum length is 128 characters.
CatalogSetName [Visual Basic]
A String that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription [C++]
[in] A BSTR that contains the catalog set description.
CatalogSetDescription [Visual Basic]
A String that contains the catalog set description.
bWildCard [C++]
[in] A VARIANT_BOOL that indicates which catalogs to use. A value of TRUE indicates use all catalogs. A value of FALSE indicates use the catalogs contained in the CatalogNameRS parameter.
bWildCard [Visual Basic]
A Boolean that indicates which catalogs to use. A value of True indicates use all catalogs. A value of False indicates use the catalogs contained in the CatalogNameRS parameter.
CatalogNamesRS [C++]
[in, optional] A reference to a _Recordset object that contains the catalog names.
CatalogNamesRS [Visual Basic]
A Recordset object that contains the catalog names.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID is the GUID for the CatalogSet.
'rsCatalogNames is a Recordset as described in the parameter description.

myCatalogSets.UpdateCatalogSet strCatalogSetID, "Clothing", _
   "All soft goods", FALSE, rsCatalogNames

See Also

[C++] CatalogSets Object

[Visual Basic] CatalogSets Object


CatalogSets2 Object [C++]

CatalogSets2 Object [Visual Basic]

Use this object to work with catalog sets in the Product Catalog System. Catalog sets allow you to present different collections of catalogs to different users and organizations.

[C++]
ProgID: | Commerce.Catalogsets2 (Externally creatable)
COM Class Name: | Catalogsets2
COM Interface Name: | _Catalogsets2
Interface ID Constant: | None
Header File: | None
Type Library Name: | Microsoft Commerce 2002 Catalog Sets Type Library
DLL Name: | CatalogSets.dll
Threading Model: | Apartment
[Visual Basic]
ProgID: | Commerce.CatalogSets2 (Externally creatable)
COM Class Name: | CatalogSets2
Type Library Name: | Microsoft Commerce 2002 Catalog Sets Type Library
DLL Name: | CatalogSets.dll
Threading Model: | Apartment
[C++]

In C++, use the _CatalogSets2 interface to access the properties and methods of the CatalogSets2 object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The CatalogSets2 object properties are useful if you have changed the ProfileSchema (from the default shipped version) or if you use Active Directory. In these cases, the UserObject-OrganizationObject table join-key is different than the default one.

Methods

[C++]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.
[Visual Basic]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.

Properties

[C++]
Property | Type | Description
OrganizationObjectCatalogSetKey | BSTR | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | BSTR | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | BSTR | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | BSTR | Stores the name of the organization object. This property is read/write.
UserObjectCatalogSetKey | BSTR | Stores the CatalogSet key for the user object. This property is read/write.
UserObjectCategoryName | BSTR | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | BSTR | Stores the join key for the user object. This property is read/write.
UserObjectName | BSTR | Stores the name of the user object. This property is read/write.
UserObjectOrganizationKey | BSTR | Stores the organization key for the user object. This property is read/write.
[Visual Basic]
Property | Type | Description
OrganizationObjectCatalogSetKey | String | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | String | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | String | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | String | Stores the name of the organization object. This property is read/write.
UserObjectCatalogSetKey | String | Stores the CatalogSet key for the user object. This property is read/write.
UserObjectCategoryName | String | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | String | Stores the join key for the user object. This property is read/write.
UserObjectName | String | Stores the name of the User object. This property is read/write.
UserObjectOrganizationKey | String | Stores the organization key for the user object. This property is read/write.

Remarks

This object is similar to the CatalogSets object. It has the same methods, but adds new properties for the profile schema keys. The default values of the properties are the same as the fixed values used by the CatalogSets object.


_Catalogsets2 Methods [C++]

Catalogsets2 Methods [Visual Basic]

Methods

[C++]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.
[Visual Basic]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.

Methods

[C++]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.
[Visual Basic]
Method | Description
CreateCatalogSet | Creates a new catalog set.
DeleteCatalogSet | Deletes the specified catalog set.
GetCatalogs | Returns a list of all catalogs.
GetCatalogSetIDForUser | Returns the catalog set ID for a user.
GetCatalogSetInfo | Returns information about the specified catalog set.
GetCatalogSets | Returns a list of all catalog sets.
GetCatalogsForUser | Returns a list of catalogs associated with the specified user.
GetCatalogsInCatalogSet | Returns a list of catalogs associated with the specified catalog set.
GetCatalogsNotInCatalogSet | Returns a list of all catalogs not associated with the specified catalog set.
Initialize | Initializes the CatalogSets object.
RemoveCatalogFromCatalogSets | Remove a catalog from all catalog sets.
UpdateCatalogSet | Allows modification of an existing catalog set.


_Catalogsets2::CreateCatalogSet Method [C++]

Catalogsets2.CreateCatalogSet Method [Visual Basic]

Use this method to create a new catalog set in the catalog database.

Definition

[C++]
HRESULT _Catalogsets2::CreateCatalogSet(
  BSTR CatalogSetName,
  BSTR CatalogSetDescription,
  VARIANT_BOOL bWildCard,
  _Recordset* CatalogNamesRS,
  BSTR* CatalogSetID
);
[Visual Basic]
Function CreateCatalogSet(
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As _Recordset
) As String

Parameters

[C++]
CatalogSetName
[in] A BSTR that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
[in] A BSTR that contains a description of the new catalog set.
bWildCard
[in] A VARIANT_BOOL that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
[in, optional] A pointer to an ADO _Recordset object that specifies the catalogs to be included in the new catalog set. The _Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.
CatalogSetID
[out, retval] A pointer to a BSTR used to return the automatically generated ID (GUID) of the new catalog set.
[Visual Basic]
CatalogSetName
A String that contains a name for the new catalog set. The maximum length is 128 characters.
CatalogSetDescription
A String that contains a description of the new catalog set.
bWildCard
A Boolean that indicates whether this catalog set should automatically include all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.
CatalogNamesRS
A reference to an ADO Recordset object that specifies the catalogs to be included in the new catalog set. The Recordset object should contain a single column named CatalogName, and one row per catalog to be included. If the bWildCard parameter is True, then this parameter will be ignored.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the ID of the new catalog set.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The CatalogSetID parameter contains valid data only if the new catalog set was created successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The returned String contains a valid ID only if the new catalog set was created successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'The following example shows the creation of a catalog set
'associated with all the catalogs in the Product Catalog System.
strCatalogSetID = myCatalogsets2.CreateCatalogSet("PremiumCatalogs", "Premium catalog set", TRUE)

'The following example shows the creation of a catalog set
'associated with two specific catalogs.
set rsCatalogNames = CreateObject("ADODB Recordset")
call rsCatalogNames.Fields.Append("CatalogName", adBSTR)
rsCatalogNames.Open
rsCatalogNames.AddNew
rsCatalogNames.Fields("CatalogName").value = "Catalog1"
rsCatalogNames.Update
rsCatalogNames.AddNew
rsCatalogNames.Fields("CatalogName").value = "Catalog2"
rsCatalogNames.Update

strCatalogSetID = myCatalogsets2.CreateCatalogSet("CombinedCatalog", "A one and a two", FALSE, rsCatalogNames)

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::DeleteCatalogSet Method [C++]

Catalogsets2.DeleteCatalogSet Method [Visual Basic]

Use this method to delete an existing catalog set from the Catalog database.

Definition

[C++]
HRESULT _Catalogsets2::DeleteCatalogSet(
  BSTR CatalogSetID
);
[Visual Basic]
Sub DeleteCatalogSet(
  CatalogSetID As String
)

Parameters

[C++]
CatalogSetID
[in] A BSTR that contains the GUID of the catalog set to be deleted.
[Visual Basic]
CatalogSetID
A String that contains the ID of the catalog set to be deleted.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

Deleting a catalog set does not delete the catalog set ID. Referencing an invalid catalog set ID prevents access to the Solution Sites.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Deleting a catalog set does not delete the catalog set ID. Referencing an invalid catalog set ID prevents access to the Solution Sites.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID1 is a GUID
myCatalogsets2.DeleteCatalogSet strCatalogSetID1

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogs Method [C++]

Catalogsets2.GetCatalogs Method [Visual Basic]

Use this method to return a list of all catalogs.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogs(
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogs() As Recordset

Parameters

[C++]
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of all catalogs

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsMyCatalogs = myCatalogsets2.GetCatalogs()

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogSetIDForUser Method [C++]

Catalogsets2.GetCatalogSetIDForUser Method [Visual Basic]

Use this method to return the catalog set ID for a specific user.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogSetIDForUser(
  IDispatch* objProfileService,
  BSTR user_id,
  BSTR defaultCatalogSetID,
  VARIANT* retVal
);
[Visual Basic]
Function GetCatalogSetIDForUser(
  objProfileService As IDispatch,
  user_id As String,
  defaultCatalogSetID As String
) As Variant

Parameters

[C++]
objProfileService
[in] A pointer to the IDispatch interface to the ProfileService object.
user_id
[in] A BSTR that contains the user ID.
defaultCatalogSetID
[in] A BSTR that contains the default catalog set ID.
retVal
[out, retval] A pointer to a VARIANT used to return the catalog set ID.
[Visual Basic]
objProfileService
A ProfileService object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the catalog set ID.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

If the user defined in the objProfileService parameter has a catalog set associated with it, this method returns that ID; if not, it returns the catalog set associated with the user organization. If this catalog set does not exist, it returns the value supplied in the defaultCatalogSetID parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Variant returned by this method contains valid data only if the method completes successfully.

If the user defined in the objProfileService parameter has a catalog set associated with it, this method returns that ID; if not, it returns the catalog set associated with the user organization. If this catalog set does not exist, it returns the value supplied in the defaultCatalogSetID parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

strCatalogSetID = myCatalogsets2.GetCatalogSetIDForUser(oProfileService, user_id, defaultCatalogSetID)

See Also

[C++] Catalogsets2 Object

[C++] ProfileService Object

[Visual Basic] Catalogsets2 Object

[Visual Basic] ProfileService Object


_Catalogsets2::GetCatalogSetInfo Method [C++]

Catalogsets2.GetCatalogSetInfo Method [Visual Basic]

Use this method to return the basic properties for a catalog set.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogSetInfo(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogSetInfo(
  CatalogSetID As String
) As Recordset

Parameters

[C++]
CatalogSetID
[in] A BSTR that contains the catalog set ID, a GUID.
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.
[Visual Basic]
CatalogSetID
A String that contains the catalog set ID, a GUID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a single row and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, maximum of 255 characters | None
CatalogSetDescription | String, maximum of 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a single row and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, maximum of 255 characters | None
CatalogSetDescription | String, maximum of 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'
set rsMyCatalogSetInfo = myCatalogsets2.GetCatalogSetInfo(strCatalogSetID)

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogsets Method [C++]

Catalogsets2.GetCatalogSets Method [Visual Basic]

Use this method to return a list of all catalog sets.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogSets(
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogSets() As Recordset

Parameters

[C++]
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of all catalog sets.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a row for each catalog set and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, 255 characters | None
CatalogSetDescription | String, 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a forward-only Recordset object with a row for each catalog set and the following fields:

Field | Type | Description
CatalogSetID | GUID | None
CatalogSetName | String, 255 characters | None
CatalogSetDescription | String, 255 characters | None
bWildCard | Integer | A Boolean that indicates whether this catalog set automatically includes all catalogs, including any new catalogs that might be created in the future. A value of True indicates that this catalog set includes all existing catalogs. A value of False indicates that this catalog set only includes a specific set of catalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsMyCatalogsets2 = myCatalogsets2.GetCatalogSets()

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogsForUser Method [C++]

Catalogsets2.GetCatalogsForUser Method [Visual Basic]

Use this method to return the list of catalogs that have been assigned to a particular user through the catalog set specified in their profile.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogsForUser(
  IDispatch* objProfileService,
  BSTR user_id,
  BSTR defaultCatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsForUser(
  objProfileService As IDispatch,
  user_id As String,
  defaultCatalogSetID As String
) As Recordset

Parameters

[C++]
objProfileService
[in] A pointer to the IDispatch interface to the profile service.
user_id
[in] A BSTR that contains the user ID.
defaultCatalogSetID
[in] A BSTR that contains the default catalog set ID.
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.
[Visual Basic]
objProfileService
A ProfileService object.
user_id
A String that contains the user ID.
defaultCatalogSetID
A String that contains the default catalog set ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of catalogs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set associated with the user profile in the user_id parameter and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table | String maximum of 128 characters | None

If the user profile object passed to this method has not been initialized, the object will return the default catalog set.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set associated with the user profile in the user_id parameter and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table | String maximum of 128 characters | None

If the user profile object passed to this method has not been initialized, the object will return the default catalog set.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set objProfileService = Server.CreateObject("Commerce.ProfileService")
Call objProfileService.Initialize(sProfileServiceConnectionString, "Profile Definitions")
set rsCatalogSet = myCatalogsets2.GetCatalogsForUser(objProfileService, user_id, defaultCatalogSetID)

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogsInCatalogSet Method [C++]

Catalogsets2.GetCatalogsInCatalogSet Method [Visual Basic]

[C++] Use this method to return the catalogs that are included in a particular catalog set.

[Visual Basic] Use this method to return the catalogs that are included in a particular catalog set.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogsInCatalogSet(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsInCatalogSet(
  CatalogSetID As String
) As Recordset

Parameters

[C++]
CatalogSetID
[in] A BSTR that contains the catalog set ID.
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset object, which will contain the retVal parameter.
[Visual Basic]
CatalogSetID
A String that contains the catalog set ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the list of catalogs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table | String maximum of 128 characters | None

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

This method returns a Recordset object with a row for each catalog in the catalog set and the following fields:

Field | Type | Description
CatalogName From the CatalogSet_Catalogs table | String maximum of 255 characters | None
CatalogName From the CatalogGlobal table | String maximum of 128 characters | None

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

set rsCatalogNames = myCatalogsets2.GetCatalogsInCatalogSet(CatalogSetID)

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::GetCatalogsNotInCatalogSet Method [C++]

Catalogsets2.GetCatalogsNotInCatalogSet Method [Visual Basic]

Use this method to return the catalogs that are not included in a specified catalog set.

Definition

[C++]
HRESULT _Catalogsets2::GetCatalogsNotInCatalogSet(
  BSTR CatalogSetID,
  _Recordset** retVal
);
[Visual Basic]
Function GetCatalogsNotInCatalogSet(
  CatalogSetID As String
) As Recordset

Parameters

[C++]
CatalogSetID
[in] A BSTR that contains the catalog set ID.
retVal
[out, retval] A pointer to hold the reference to the returned _Recordset, which will contain the retVal parameter.
[Visual Basic]
CatalogSetID
A String that contains the catalog set ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter retVal contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The Recordset object returned by this method contains valid data only if the method completes successfully.

The Recordset object returned by this method has a single 128 character field, named CatalogName.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID is the GUID of a catalog set
set rsCatalogs = myCatalogsets2.GetCatalogsNotInCatalogSet(strCatalogSetID)

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::Initialize Method [C++]

Catalogsets2.Initialize Method [Visual Basic]

Use this method to initialize a new CatalogSet object.

Definition

[C++]
HRESULT _Catalogsets2::Initialize(
  BSTR CatalogConnectionString,
  BSTR TransactionConfigConnectionString
);
[Visual Basic]
Sub Initialize(
  CatalogConnectionString As String,
  TransactionConfigConnectionString As String
)

Parameters

[C++]
CatalogConnectionString
[in] A BSTR that contains the catalog connection string.
TransactionConfigConnectionString
[in] A BSTR that contains the transaction configuration connection string. The value of the BSTR is not used
[Visual Basic]
CatalogConnectionString
A String that contains the catalog connection string.
TransactionConfigConnectionString
A String that contains the transaction configuration connection string. The value of the String is not used.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The TransactionConfigConnectionString parameter is required, but not used. The contents of the BSTR are ignored. This parameter is reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

The TransactionConfigConnectionString parameter is required, but not used. The contents of the String are ignored. This parameter is reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCatalogsets2.Initialize strCatalogConnection, ""

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::RemoveCatalogFromCatalogSets Method [C++]

Catalogsets2.RemoveCatalogFromCatalogSets Method [Visual Basic]

Use this method to remove a catalog from all catalog sets.

Definition

[C++]
HRESULT _Catalogsets2::RemoveCatalogFromCatalogSets(
  BSTR CatalogName
);
[Visual Basic]
Sub RemoveCatalogFromCatalogSets(
  CatalogName As String
)

Parameters

[C++]
CatalogName
[in] A BSTR that contains the name of the catalog to be removed.
[Visual Basic]
CatalogName
A String that contains the name of the catalog to be removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method should be called whenever a catalog is deleted, before or after calling the CatalogManager.DeleteCatalog method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

MyCatalogManager.DeleteCatalog "Shoes"
myCatalogsets2.RemoveCatalogFromCatalogSets "Shoes"

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::UpdateCatalogSet Method [C++]

Catalogsets2.UpdateCatalogSet Method [Visual Basic]

Use this method to update an existing catalog set and its basic properties.

Definition

[C++]
HRESULT _Catalogsets2::UpdateCatalogSet(
  BSTR CatalogSetID,
  BSTR CatalogSetName,
  BSTR CatalogSetDescription,
  VARIANT_BOOL bWildCard,
  _Recordset* CatalogNamesRS
);
[Visual Basic]
Sub UpdateCatalogSet(
  CatalogSetID As String,
  CatalogSetName As String,
  CatalogSetDescription As String,
  bWildCard As Boolean,
  Optional CatalogNamesRS As Recordset
)

Parameters

[C++]
CatalogSetID
[in] A BSTR that contains the catalog set ID (GUID).
CatalogSetName
[in] A BSTR that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
[in] A BSTR that contains the catalog set description.
bWildCard
[in] A VARIANT_BOOL that indicates which catalogs to use. A value of TRUE indicates use all catalogs. A value of FALSE indicates use the catalogs contained in the CatalogNameRS parameter.
CatalogNamesRS
[in, optional] A reference to a _Recordset object that contains the catalog names.
[Visual Basic]
CatalogSetID
A String that contains the catalog set ID (GUID).
CatalogSetName
A String that contains the catalog set name. The maximum length is 128 characters.
CatalogSetDescription
A String that contains the catalog set description.
bWildCard
A Boolean that indicates which catalogs to use. A value of True indicates use all catalogs. A value of False indicates use the catalogs contained in the CatalogNameRS parameter.
CatalogNamesRS
A Recordset object that contains the catalog names.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strCatalogSetID is the GUID for the CatalogSet.
'rsCatalogNames is a Recordset as described in the parameter description.

myCatalogsets2.UpdateCatalogSet strCatalogSetID, "Clothing", "All soft goods", FALSE, rsCatalogNames

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2 Properties [C++]

Catalogsets2 Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
OrganizationObjectCatalogSetKey | BSTR | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | BSTR | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | BSTR | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | BSTR | Stores the name of the organization object. This property is read/write.
UserObjectCatalogSetKey | BSTR | Stores the CatalogSet key for the user object. This property is read/write.
UserObjectCategoryName | BSTR | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | BSTR | Stores the join key for the user object. This property is read/write.
UserObjectName | BSTR | Stores the name of the user object. This property is read/write.
UserObjectOrganizationKey | BSTR | Stores the organization key for the user object. This property is read/write.
[Visual Basic]
Property | Type | Description
OrganizationObjectCatalogSetKey | String | Stores the CatalogSet key for the organization object. This property is read/write.
OrganizationObjectCategoryName | String | Stores the category name for the organization object. This property is read/write.
OrganizationObjectJoinKey | String | Stores the join key for the organization object. This property is read/write.
OrganizationObjectName | String | Stores the name of the organization object. This property is read/write.
UserObjectCatalogSetKey | String | Stores the CatalogSet key for the user object. This property is read/write.
UserObjectCategoryName | String | Stores the category name for the user object. This property is read/write.
UserObjectJoinKey | String | Stores the join key for the user object. This property is read/write.
UserObjectName | String | Stores the name of the User object. This property is read/write.
UserObjectOrganizationKey | String | Stores the organization key for the user object. This property is read/write.


_Catalogsets2::get_OrganizationObjectCatalogSetKey, put_OrganizationObjectCatalogSetKey Property [C++]

Catalogsets2.OrganizationObjectCatalogSetKey Property [Visual Basic]

The OrganizationObjectCatalogSetKey property is a read/write string that contains the CatalogSet key for the organization object. This property defaults to "Org_catalog_set".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_OrganizationObjectCatalogSetKey(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_OrganizationObjectCatalogSetKey(
  BSTR UnNamedParameter
);
[Visual Basic]
Property OrganizationObjectCatalogSetKey As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the OrganizationObjectCatalogSetKey.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectCatalogSetKey.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_OrganizationObjectCategoryName, put_OrganizationObjectCategoryName Property [C++]

Catalogsets2.OrganizationObjectCategoryName Property [Visual Basic]

The OrganizationObjectCategoryName property is a read/write string that contains the category name of the organization object. This property defaults to "GeneralInfo".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_OrganizationObjectCategoryName(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_OrganizationObjectCategoryName(
  BSTR UnNamedParameter
);
[Visual Basic]
Property OrganizationObjectCategoryName As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the OrganizationObjectCategoryName.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectCategoryName.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_OrganizationObjectJoinKey, put_OrganizationObjectJoinKey Property [C++]

Catalogsets2.OrganizationObjectJoinKey Property [Visual Basic]

The OrganizationObjectJoinKey property is a read/write String that contains the join key of the Organization object. This property defaults to "org_id".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_OrganizationObjectJoinKey(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_OrganizationObjectJoinKey(
  BSTR UnNamedParameter
);
[Visual Basic]
Property OrganizationObjectJoinKey As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the OrganizationObjectJoinKey.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectJoinKey.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_OrganizationObjectName, put_OrganizationObjectName Property [C++]

Catalogsets2.OrganizationObjectName Property [Visual Basic]

The OrganizationObjectName property is a read/write String that contains the name of the organization object. This property defaults to "Organization".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_OrganizationObjectName(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_OrganizationObjectName(
  BSTR UnNamedParameter
);
[Visual Basic]
Property OrganizationObjectName As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the OrganizationObjectName.
[out, retval] When getting the property, a BSTR used to return the OrganizationObjectName.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_UserObjectCatalogSetKey, put_UserObjectCatalogSetKey Property [C++]

Catalogsets2.UserObjectCatalogSetKey Property [Visual Basic]

The UserObjectCatalogSetKey property is a read/write String that contains the CatalogSet key of the user object. This property defaults to "user_catalog_set".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_UserObjectCatalogSetKey(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_UserObjectCatalogSetKey(
  BSTR UnNamedParameter
);
[Visual Basic]
Property UserObjectCatalogSetKey As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the UserObjectCatalogSetKey.
[out, retval] When getting the property, a BSTR used to return the UserObjectCatalogSetKey.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_UserObjectCategoryName, put_UserObjectCategoryName Property [C++]

Catalogsets2.UserObjectCategoryName Property [Visual Basic]

The UserObjectCategoryName property is a read/write String that contains the category name of the user object. This property defaults to: "AccountInfo".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_UserObjectCategoryName(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_UserObjectCategoryName(
  BSTR UnNamedParameter
);
[Visual Basic]
Property UserObjectCategoryName As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the UserObjectCategoryName.
[out, retval] When getting the property, a BSTR used to return the UserObjectCategoryName.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_UserObjectJoinKey, put_UserObjectJoinKey Property [C++]

Catalogsets2.UserObjectJoinKey Property [Visual Basic]

The UserObjectJoinKey property is a read/write String that contains the join key of the user object. This property defaults to "user_id".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_UserObjectJoinKey(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_UserObjectJoinKey(
  BSTR UnNamedParameter
);
[Visual Basic]
Property UserObjectJoinKey As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the UserObjectJoinKey.
[out, retval] When getting the property, a BSTR used to return the UserObjectJoinKey.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_UserObjectName, put_UserObjectName Property [C++]

Catalogsets2.UserObjectName Property [Visual Basic]

The UserObjectName property is a read/write String that contains the name of the user object. This property defaults to "UserObject".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_UserObjectName(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_UserObjectName(
  BSTR UnNamedParameter
);
[Visual Basic]
Property UserObjectName As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the UserObjectName.
[out, retval] When getting the property, a BSTR used to return the UserObjectName.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


_Catalogsets2::get_UserObjectOrganizationKey, put_UserObjectOrganizationKey Property [C++]

Catalogsets2.UserObjectOrganizationKey Property [Visual Basic]

The UserObjectOrganizationKey property is a read/write String that contains the organization key of the user object. This property defaults to "org_id".

Definition

[C++]

Get method:

HRESULT _Catalogsets2::get_UserObjectOrganizationKey(
  BSTR* UnNamedParameter
);

Put method:

HRESULT _Catalogsets2::put_UserObjectOrganizationKey(
  BSTR UnNamedParameter
);
[Visual Basic]
Property UserObjectOrganizationKey As String

Parameters

[C++]
UnNamedParameter
[in] When putting the property, a BSTR that contains the UserObjectOrganizationKey.
[out, retval] When getting the property, a BSTR used to return the UserObjectOrganizationKey.

[Visual Basic] None.

Return Values

[C++] These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The parameter UnNamedParameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic] For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Catalogsets2 Object

[Visual Basic] Catalogsets2 Object


CatalogToVendorAssociation Object [C++]

CatalogToVendorAssociation Object [Visual Basic]

Use this object to associate catalogs with vendors.

ProgID: | Commerce.CatalogToVendorAssociation (Externally creatable)
COM Class Name: | CatalogToVendorAssociation
Type Library Name: | Microsoft Commerce 2002 Catalog Vendor Association Type Library
DLL Name: | CatalogVendorAssociation.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _CatalogToVendorAssociation
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _CatalogToVendorAssociation interface to access the properties and methods of the CatalogToVendorAssociation object.

Methods

[C++]
Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.
[Visual Basic]
Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.


_CatalogToVendorAssociation Method [C++]

_CatalogToVendorAssociation Method [Visual Basic]

Methods

[C++]
Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.
[Visual Basic]
Method | Description
GetVendorInfoForCatalog | Returns information about the vendor associated with the specified catalog.
GetVendorList | Returns a list of vendors available for association with catalogs.
Initialize | Initializes a CatalogToVendorAssociation object by connecting to the appropriate database.
SpecifyVendorForCatalog | Associates the specified vendor and catalog.
UnspecifyVendorForCatalog | Disassociates the specified vendor and catalog.


_CatalogToVendorAssociation::GetVendorInfoForCatalog Method [C++]

CatalogToVendorAssociation.GetVendorInfoForCatalog Method [Visual Basic]

Use this method to retrieve information about the vendor associated with the specified catalog.

Definition

[C++]
HRESULT _CatalogToVendorAssociation::GetVendorInfoForCatalog(
  BSTR szCatalogID,
  _Recordset** rsVendorInfo
);
[Visual Basic]
Function GetVendorInfoForCatalog(
  szCatalogID As String
) As Recordset

Parameters

szCatalogID [C++]
[in] A BSTR that contains the ID of the catalog for which vendor information will be returned.
szCatalogID [Visual Basic]
A String that contains the ID of the catalog for which vendor information will be returned.
rsVendorInfo [C++]
[out, retval] The address of a pointer used to return an ADO _Recordset object containing the requested vendor information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object containing the requested vendor information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The returned ADO RecordSet object will contain valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
set rsVendorInfo = myCatalogToVendorAssociation.GetVendorInfoForCatalog(szCatalogID)

See Also

[C++] CatalogToVendorAssociation Object

[Visual Basic] CatalogToVendorAssociation Object


_CatalogToVendorAssociation::GetVendorList Method [C++]

CatalogToVendorAssociation.GetVendorList Method [Visual Basic]

Use this method to retrieve a list of vendors associated with the passed alias qualifier and value, and associated with the input document name.

Definition

[C++]
HRESULT _CatalogToVendorAssociation::GetVendorList(
  BSTR szSourceAliasQualifier,
  BSTR szSourceAliasValue,
  BSTR szInputDocumentName,
  _Recordset** rsVendorList
);
[Visual Basic]
Function GetVendorList(
  szSourceAliasQualifier As String,
  szSourceAliasValue As String,
  szInputDocumentName As String
) As Recordset

Parameters

szSourceAliasQualifier [C++]
[in] A BSTR that contains the source alias qualifier.
szSourceAliasQualifier [Visual Basic]
A String that contains the source alias qualifier.
szSourceAliasValue [C++]
[in] A BSTR that contains the source alias value.
szSourceAliasValue [Visual Basic]
A String that contains the source alias value.
szInputDocumentName [C++]
[in] A BSTR that contains the input document name.
szInputDocumentName [Visual Basic]
A String that contains the input document name.
rsVendorList [C++]
[out, retval] The address of a pointer used to return an ADO _Recordset object containing the requested list of vendors.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object containing the requested list of vendors.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The returned ADO RecordSet object will contain valid data only if the method completed successfully.

Note

  • This method is only available when BizTalk Server is installed. It requires the BizTalKDBInternal object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
set rsVendorList = myCatalogToVendorAssociation.GetVendorList(szSourceAliasQualifier, szSourceAliasValue, szInputDocumentName)

See Also

[C++] CatalogToVendorAssociation Object

[Visual Basic] CatalogToVendorAssociation Object


_CatalogToVendorAssociation::Initialize Method [C++]

CatalogToVendorAssociation.Initialize Method [Visual Basic]

Use this method to initialize a CatalogToVendorAssociation object.

Definition

[C++]
HRESULT _CatalogToVendorAssociation::Initialize(
  BSTR vConnectionString
);
[Visual Basic]
Sub Initialize(
  vConnectionString As String
)

Parameters

vConnectionString [C++]
[in] A BSTR that contains the connection string for the database containing the catalog to vendor associations.
vConnectionString [Visual Basic]
A String that contains the connection string for the database containing the catalog to vendor associations.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
myCatalogToVendorAssociation.Initialize vConnectionString

See Also

[C++] CatalogToVendorAssociation Object

[Visual Basic] CatalogToVendorAssociation Object


_CatalogToVendorAssociation::SpecifyVendorForCatalog Method [C++]

CatalogToVendorAssociation.SpecifyVendorForCatalog Method [Visual Basic]

Use this method to associate a vendor with a particular catalog.

Definition

[C++]
HRESULT _CatalogToVendorAssociation::SpecifyVendorForCatalog(
  BSTR szCatalogID,
  BSTR szVendorQualifier,
  BSTR szVendorQualifierValue,
  BSTR szVendorName
);
[Visual Basic]
Sub SpecifyVendorForCatalog(
  szCatalogID As String,
  szVendorQualifier As String,
  szVendorQualifierValue As String,
  szVendorName As String
)

Parameters

szCatalogID [C++]
[in] A BSTR that contains the identifier of the catalog with which to associated the specified vendors.
szCatalogID [Visual Basic]
A String that contains the identifier of the catalog with which to associated the specified vendors.
szVendorQualifier [C++]
[in] A BSTR that contains the qualifier of the vendor to be associated with the specified catalog.
szVendorQualifier [Visual Basic]
A String that contains the qualifier of the vendor to be associated with the specified catalog.
szVendorQualifierValue [C++]
[in] A BSTR that contains the qualifier value of the vendor to be associated with the specified catalog.
szVendorQualifierValue [Visual Basic]
A String that contains the qualifier value of the vendor to be associated with the specified catalog.
szVendorName [C++]
[in] A BSTR that contains the name of the vendor to be associated with the specified catalog.
szVendorName [Visual Basic]
A String that contains the name of the vendor to be associated with the specified catalog.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
myCatalogToVendorAssociation.SpecifyVendorForCatalog szCatalogID, szVendorQualifier, szVendorQualifierValue, szVendorName

See Also

[C++] CatalogToVendorAssociation Object

[Visual Basic] CatalogToVendorAssociation Object


_CatalogToVendorAssociation::UnspecifyVendorForCatalog Method [C++]

CatalogToVendorAssociation.UnspecifyVendorForCatalog Method [Visual Basic]

Use this method to disassociate a catalog with any previously associated vendors.

Definition

[C++]
HRESULT _CatalogToVendorAssociation::UnspecifyVendorForCatalog(
  BSTR szCatalogID
);
[Visual Basic]
Sub UnspecifyVendorForCatalog(
  szCatalogID As String
)

Parameters

szCatalogID [C++]
[in] A BSTR that contains the identifier of the catalog for which no vendors should be associated.
szCatalogID [Visual Basic]
A String that contains the identifier of the catalog for which no vendors should be associated.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

Example

[Visual Basic]
myCatalogToVendorAssociation.UnspecifyVendorForCatalog szCatalogID

See Also

[C++] CatalogToVendorAssociation Object

[Visual Basic] CatalogToVendorAssociation Object


Category Object [C++]

Category Object [Visual Basic]

Use this object to work with relationships between categories and products. You can also use this object to manipulate parent/child relationships for a category.

ProgID: | Dependent (See Remarks for more information)
COM Class Name: | Category
Type Library Name: | Microsoft Commerce 2002 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both
[C++]
COM Interface Name: | ICategory3
Interface ID Constant: | IID_ICategory3
Header File: | Catalog.h, mspu_guids.h
[C++]

In C++, use the ICategory3 interface to access the properties and methods of the Category object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
Search | Searches product, variant, and category data within the category, its children, the children of the children,and so on.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
[Visual Basic]
Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
Search | Searches product, variant, and category data within the category, its children, the children of the children,and so on.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.

Properties

[C++]
Property | Type | Description
AncestorCategories | _Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category in the hierarchy. This property is read-only.
CatalogName | BSTR | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | BSTR | Contains the name of this category. This property is read-only.
ChildCategories | _Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | _Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | _Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | _Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | _Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | _Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | _Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.
[Visual Basic]
Property | Type | Description
AncestorCategories | Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category, in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | BSTR | Contains the name of this category. This property is read-only.
ChildCategories | Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.

Remarks

[C++]

The Category object is a dependent object. Obtain a pointer to the ICategory interface by calling one of the following methods:

  • IProductCatalog::CreateCategory
  • IProductCatalog::GetCategory
[Visual Basic]

The Category object is a dependent object. Obtain a reference to it by calling one of the following methods:

  • ProductCatalog.CreateCategory
  • ProductCatalog.GetCategory


ICategory3 Methods [C++]

Category Methods [Visual Basic]

Methods

[C++]
Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
Search | Searches product, variant, and category data within the category, its children, the children of the children,and so on.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
[Visual Basic]
Method | Description
AddChildCategory | Adds another specified category as a child of this category.
AddParentCategory | Adds another specified category as a parent of this category.
AddProduct | Adds another specified product variant as a child of this category.
AddRelationshipToCategory | Adds a relationship from another category to this category.
AddRelationshipToProduct | Adds a relationship from this category to a specified product.
RemoveChildCategory | Removes the specified category as a child of this category.
RemoveParentCategory | Removes the specified category as a parent of this category.
RemoveProduct | Removes a product from this category.
RemoveRelationshipToCategory | Removes the relationship between this category and a specified category.
RemoveRelationshipToProduct | Removes the relationship between this category and a specified product.
Search | Searches product, variant, and category data within the category, its children, the children of the children,and so on.
SetCategoryProperties | Assigns new properties to a category.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.


ICategory3::AddChildCategory Method [C++]

Category.AddChildCategory Method [Visual Basic]

Use this method to add a category as a child to this category.

Definition

[C++]
HRESULT ICategory3::AddChildCategory(
  BSTR strCategoryName
);
[Visual Basic]
Sub AddChildCategory(
  strCategoryName As String
)

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be added as a child to this category.
strCategoryName [Visual Basic]
A String that contains the name of the category to be added as a child to this category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_INVALID_CHILDCATEGORY | [C++] 0x8898005D [Visual Basic] &H8898005D | An invalid relationship has been specified. The category that you specified already exists as a parent of this category.
E_CAT_CATEGORY_ALREADY_ADDED | [C++] 0x8898002D [Visual Basic] &H8898002D | The category you specified is already added.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.AddChildCategory "shirts"

See Also

[C++] Category Object

[C++] ICategory3::AddParentCategory

[C++] ICategory3::RemoveChildCategory

[Visual Basic] Category Object

[Visual Basic] Category.AddParentCategory

[Visual Basic] Category.RemoveChildCategory


ICategory3::AddParentCategory Method [C++]

Category.AddParentCategory Method [Visual Basic]

Use this method to add the specified category as a parent of this category.

Definition

[C++]
HRESULT ICategory3::AddParentCategory(
  BSTR strCategoryName
);
[Visual Basic]
Sub AddParentCategory(
  strCategoryName As String
)

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be added as a parent to this category.
strCategoryName [Visual Basic]
A String that contains the name of the category to be added as a parent to this category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_CATEGORY_ALREADY_ADDED | [C++] 0x8898002D [Visual Basic] &H8898002D | The category you specified is already added.
E_CAT_PARENT_CAT_EXISTS_AS_CHILD | [C++] 0x88980052 [Visual Basic] &H88980052 | The category that you specified as a Parent category already exists as a child category for this category.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.AddParentCategory "Apparel"

See Also

[C++] Category Object

[C++] ICategory3::AddChildCategory

[C++] ICategory3::RemoveParentCategory

[Visual Basic] Category Object

[Visual Basic] Category.AddChildCategory

[Visual Basic] Category.RemoveParentCategory


ICategory3::AddProduct Method [C++]

Category.AddProduct Method [Visual Basic]

Use this method to add the specified product to this category.

Definition

[C++]
HRESULT ICategory3::AddProduct(
  VARIANT varProductID
);
[Visual Basic]
Sub AddProduct(
  varProductID As Variant
)

Parameters

varProductID [C++]
[in] A VARIANT that contains the product ID of the product to be added.
varProductID [Visual Basic]
A Variant that contains the product ID of the product to be added.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the ProductID is either out of range or else it does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_PRODUCT_ALREADY_ADDED | [C++] 0x88980029 [Visual Basic] &H88980029 | The product you specified is already present in this category.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A product may exist in multiple categories simultaneously, without limit.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.AddProduct "SKU4005"

See Also

[C++] Category Object

[C++] ICategory3::RemoveProduct

[Visual Basic] Category Object

[Visual Basic] Category.RemoveProduct


ICategory3::AddRelationshipToCategory Method [C++]

Category.AddRelationshipToCategory Method [Visual Basic]

Use this method to add a relationship from this category to another specified category.

Definition

[C++]
HRESULT ICategory3::AddRelationshipToCategory(
  BSTR strRelatedCategoryName,
  BSTR strRelationshipName,
  VARIANT strRelationshipDescription,
  BSTR strCatalogName
);
[Visual Basic]
Sub AddRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String,
  Optional strRelationshipDescription As Variant,
  Optional strCatalogName As String
)

Parameters

strRelatedCategoryName [C++]
[in] A BSTR that contains the name of the category to which a relationship is to be added.
strRelatedCategoryName [Visual Basic]
A String that contains the name of the category to which a relationship is to be added.
strRelationshipName [C++]
[in] A BSTR that contains a name for the relationship.
strRelationshipName [Visual Basic]
A String that contains a name for the relationship.
strRelationshipDescription [C++]
[in, optional] A VARIANT of sub type String that contains an optional description for the relationship.
strRelationshipDescription [Visual Basic]
A Variant of sub type String that contains an optional description for the relationship.
strCatalogName [C++]
[in, optional] A BSTR that contains the name of the catalog that contains the related category.
strCatalogName [Visual Basic]
A String that contains the name of the catalog that contains the related category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Constant
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | E_CAT_CATALOG_DOESNT_EXIST
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | E_CAT_INVALID_CATALOGNAME
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | E_CAT_INVALID_CATALOG_NAME_LENGTH
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | E_CAT_CHARACTER_NOT_ALLOWED

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A relationship must be given a name and may optionally be given a description. The description can include information that describes the nature of the relationship between the categories (for example, an "accessory" or "add-on"). Relationships are one way, that is, if category A has a relationship to category B, that does not create a reciprocal relationship from category B to category A.

When multiple relationships are created between the same two categories, each relationship must have a unique name.

If the strCatalogName parameter is empty or not supplied, then the catalog specified in the CatalogName property of this category is assumed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.AddRelationshipToCategory "Apparel", "Accessory", "This would go great with that!"

See Also

[C++] Category Object

[C++] ICategory3::RemoveRelationshipToCategory

[C++] ICategory3::SetRelatedCategories

[Visual Basic] Category Object

[Visual Basic] Category.RemoveRelationshipToCategory

[Visual Basic] Category.SetRelatedCategories


ICategory3::AddRelationshipToProduct Method [C++]

Category.AddRelationshipToProduct Method [Visual Basic]

Use this method to add a relationship between the specified product and this category.

Definition

[C++]
HRESULT ICategory3::AddRelationshipToProduct(
  VARIANT varRelatedProductID,
  BSTR strRelationshipName,
  VARIANT strRelationshipDescription,
  BSTR strCatalogName
);
[Visual Basic]
Sub AddRelationshipToProduct(
  varRelatedProductID As Variant,
  strRelationshipName As String,
  Optional strRelationshipDescription As Variant,
  Optional strCatalogName As String
)

Parameters

varRelatedProductID [C++]
[in] A VARIANT that contains the name of the product to which a relationship is to be added.
varRelatedProductID [Visual Basic]
A Variant that contains the name of the product to which a relationship is to be added.
strRelationshipName [C++]
[in] A BSTR that contains a name for the relationship.
strRelationshipName [Visual Basic]
A String that contains a name for the relationship.
strRelationshipDescription [C++]
[in, optional] A VARIANT that contains an optional description for the relationship.
strRelationshipDescription [Visual Basic]
A Variant that contains an optional description for the relationship.
strCatalogName [C++]
[in, optional] A BSTR that contains the name of the catalog that contains the related product.
strCatalogName [Visual Basic]
A String that contains the name of the catalog that contains the related product.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_DESC | [C++] 0x88980055 [Visual Basic] &H88980055 | The value you specified for the relationship description exceeds 256 characters. Relationship description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C++] 0x8898011B [Visual Basic] &H8898011B | A virtual catalog’s included relationships cannot be directly edited. Instead, they can be edited only in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

In order for this method to complete successfully, the product identified must already exist.

A relationship must be given a name and may optionally be given a description. The description can include information that describes the nature of the relationship between the categories (for example, an "accessory" or "add-on").

When multiple relationships are created between a category and product, each relationship must have a unique name.

If the strCatalogName parameter is empty or not supplied, then the catalog that contains this category is assumed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.AddRelationshipToProduct "SKU4005", "Accessory", "This would go great with that"

See Also

[C++] Category Object

[C++] ICategory3::RemoveRelationshipToProduct

[Visual Basic] Category Object

[Visual Basic] Category.RemoveRelationshipToProduct


ICategory3::RemoveChildCategory Method [C++]

Category.RemoveChildCategory Method [Visual Basic]

Use this method to remove a category that is a child of this category.

Definition

[C++]
HRESULT ICategory3::RemoveChildCategory(
  BSTR strCategoryName
);
[Visual Basic]
Sub RemoveChildCategory(
  strCategoryName As String
)

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be removed as a child of this category.
strCategoryName [Visual Basic]
A String that contains the name of the category to be removed as a child of this category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the RemoveChildCategory method to remove a child category from this category. If the category specified in the strCategoryName parameter does not exist, then this method will fail.

When calling this method on an inherited category in a virtual catalog, the method will have no effect if the child-category relationship is inherited from a base catalog. If the relationship was added in the virtual catalog it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.RemoveChildCategory "T-Shirts"

See Also

[C++] Category Object

[C++] ICategory3::AddChildCategory

[C++] ICategory3::RemoveParentCategory

[Visual Basic] Category Object

[Visual Basic] Category.AddChildCategory

[Visual Basic] Category.RemoveParentCategory


ICategory3::RemoveParentCategory Method [C++]

Category.RemoveParentCategory Method [Visual Basic]

Use this method to remove the specified category as a parent of this category.

Definition

[C++]
HRESULT ICategory3::RemoveParentCategory(
  BSTR strCategoryName
);
[Visual Basic]
Sub RemoveParentCategory(
  strCategoryName As String
)

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be removed as a parent to this category.
strCategoryName [Visual Basic]
A String that contains the name of the category to be removed as a parent to this category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the RemoveParentCategory method to remove a parent category from this category. If the category specified in the strCategoryName parameter does not exist, then this method will fail.

When calling this method on an inherited category in a virtual catalog, the method will have no effect if the parent-category relationship is inherited from a base catalog. If the relationship was added in the virtual catalog it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.RemoveParentCategory "Apparel"

See Also

[C++] Category Object

[C++] ICategory3::AddParentCategory

[C++] ICategory3::RemoveChildCategory

[Visual Basic] Category Object

[Visual Basic] Category.AddParentCategory

[Visual Basic] Category.RemoveChildCategory


ICategory3::RemoveProduct Method [C++]

Category.RemoveProduct Method [Visual Basic]

Use this method to remove a product from this category.

Definition

[C++]
HRESULT ICategory3::RemoveProduct(
  VARIANT varProductID
);
[Visual Basic]
Sub RemoveProduct(
  varProductID As Variant
)

Parameters

varProductID [C++]
[in] A VARIANT that contains the product ID.
varProductID [Visual Basic]
A Variant that contains the product ID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the ProductID is either out of range or else it does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

When calling this method on an inherited category in a virtual catalog, the method will have no effect if the product was added to the category in a base catalog. If the product was added in the virtual catalog it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.RemoveProduct "Widget"

See Also

[C++] Category Object

[C++] ICategory3::AddProduct

[Visual Basic] Category Object

[Visual Basic] Category.AddProduct


ICategory3::RemoveRelationshipToCategory Method [C++]

Category.RemoveRelationshipToCategory Method [Visual Basic]

Use this method to remove a relationship between the specified category and this category.

Definition

[C++]
HRESULT ICategory3::RemoveRelationshipToCategory(
  BSTR strRelatedCategoryName,
  BSTR strRelationshipName
  BSTR strCatalogName
);
[Visual Basic]
Sub RemoveRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String
  strCatalogName As String)

Parameters

strRelatedCategoryName [C++]
[in] A BSTR that contains the name of the related category.
strRelatedCategoryName [Visual Basic]
A String that contains the name of the related category.
strRelationshipName [C++]
[in] A BSTR that contains the name of the relationship.
strRelationshipName [Visual Basic]
A String that contains the name of the relationship.
strCatalogName [C++]
[in, optional] A BSTR that contains the name of the catalog containing the name of the related category.
strCatalogName [Visual Basic]
A String that contains the name of the catalog containing the name of the related category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The RemoveRelationshipToCategory method removes a relationship between this category and the category named in the strRelatedCategoryName parameter. Since more than one relationship may exist between these two categories, you must also specify the name of the relationship you want to remove in the strRelationshipName parameter. If the category specified in the strRelatedCategoryName parameter does not exist or the relationship specified in the strRelationshipName parameter does not exist, then this method will fail.

When calling this method on an inherited category in a virtual catalog, if the relationship is inherited from a base catalog, the method will return an error: "The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited." If the relationship was added in the virtual catalog, it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.RemoveRelationshipToCategory "Gadget", "Accessory"

See Also

[C++] Category Object

[C++] ICategory3::AddRelationshipToCategory

[C++] ICategory3::RemoveRelationshipToProduct

[Visual Basic] Category Object

[Visual Basic] Category.AddRelationshipToCategory

[Visual Basic] Category.RemoveRelationshipToProduct


ICategory3::RemoveRelationshipToProduct Method [C++]

Category.RemoveRelationshipToProduct Method [Visual Basic]

Use this method to remove a relationship between the specified product in the specified catalog and this category.

Definition

[C++]
HRESULT ICategory3::RemoveRelationshipToProduct(
  VARIANT varRelatedProductID,
  BSTR strRelationshipName
  BSTR strCatalogName
);
[Visual Basic]
Sub RemoveRelationshipToProduct(
  varRelatedProductID As Variant,
  strRelationshipName As String
  strCatalogName As String
)

Parameters

varRelatedProductID [C++]
[in] A VARIANT that contains the ID of the related product.
varRelatedProductID [Visual Basic]
A Variant that contains the ID of the related product.
strRelationshipName [C++]
[in] A BSTR that contains the name of the relationship.
strRelationshipName [Visual Basic]
A String that contains the name of the relationship.
strCatalogName [C++]
[in] A BSTR that contains the name of the catalog containing the name of the related product.
strCatalogName [Visual Basic]
A String that contains the name of the catalog containing the name of the related product.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog name you specified is invalid. catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The RemoveRelationshipToProduct method removes a relationship between this category and the product identified by the varRelatedProductID parameter. Since more than one relationship may exist between this category and product, you must also specify the name of the relationship you want to remove in the strRelationshipName parameter. If the product specified in the varRelatedProductID parameter does not exist or the relationship specified in the strRelationshipName parameter does not exist, then this method will fail.

When calling this method on an inherited category in a virtual catalog, if the relationship is inherited from a base catalog, the method will return an error: "The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited." If the relationship was added in the virtual catalog, it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.RemoveRelationshipToProduct "Gadget", "FeaturedProduct"

See Also

[C++] Category Object

[C++] ICategory3::AddRelationshipToProduct

[Visual Basic] Category Object

[Visual Basic] Category.AddRelationshipToProduct


ICategory3::Search Method [C++]

Category.Search Method [Visual Basic]

Use this method to perform queries against product, variant, and category data in this category, and, optionally, all of the descendent categories for this category.

Definition

[C++]
HRESULT ICategory3::Search(
  VARIANT strSQLClause,
  VARIANT strFTSPhrase,
  VARIANT_BOOL fRecursive,
  VARIANT eClassTypeRequired,
  VARIANT strPropertiesToReturn,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSResult
);
[Visual Basic]
Function Search(
  Optional strSQLClause As Variant,
  Optional strFTSPhrase As Variant,
  Optional fRecursive As Boolean,
  Optional eClassTypeRequired As Variant,
  Optional strPropertiesToReturn As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As Recordset

Parameters

strSQLClause [C++]
[in, optional] A VARIANT that contains the SQL search query.
strSQLClause [Visual Basic]
A Variant that contains the SQL search query.
strFTSPhrase [C++]
[in, optional] A VARIANT that contains the free-text search phrase.
strFTSPhrase [Visual Basic]
A Variant that contains the free-text search phrase.
fRecursive [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that specifies whether the query is recursive, that is, whether the scope of the query includes all descendent categories. A value of True (-1) indicates that the query is recursive. A value of False (0) indicates that the query is not recursive.
fRecursive [Visual Basic]
A Boolean that specifies whether the query is recursive, that is, whether the scope of the query includes all descendent categories. A value of True indicates that the query is recursive. A value of False indicates that the query is not recursive. The default value is True.
eClassTypeRequired [C++]
[in, optional] A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
strPropertiesToReturn [C++]
[in, optional] A VARIANT that contains the properties to return as a comma-separated list.
strPropertiesToReturn [Visual Basic]
A Variant that contains the properties to return as a comma-separated list.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending [C++]
[in, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True indicates that the returned recordset will be sorted in ascending order. A value of False indicates that the returned recordset will be sorted in descending order. The default value is True.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record to retrieve. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record to retrieve. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve, beginning from the starting record. A value of minus one (-1) indicates return all records.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records matching the query.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of records matching the query.
ppRSResult [C++]
[out, retval] A pointer to a _Recordset object used to return the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object containing the search results.

The following table describes the COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_SEARCH_CLAUSE | [C++] 0x8898011C [Visual Basic] &H8898011C | The search condition that you specified is invalid for one of the following reasons: It contains -- or /* which should not be used outside of property names and property values The parentheses in the search condition do not match in number or alignment.
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011D [Visual Basic] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The plTotalRecordsInQuery and ppRSResult parameters contain valid data only if the method completes successfully.

This method is very similar to the ICatalogManager3.Query method. The primary difference is that this method returns results limited to a single category, and, optionally all the descendent categories for this category. Multilingual results will be returned in the language specified by the IProductCatalog3::get_Language method of the catalog that contains this category.

[Visual Basic]

The returned Recordset object and the plTotalRecordsInQuery parameter contain valid data only if the method completes successfully.

This method is very similar to the CatalogManager.Search method. The primary difference is that this method returns results limited to a single category, and, optionally all descendent categories for this category. Multilingual results will be returned in the language specified in the ProductCatalog.Language property of the catalog that contains this category.

The Search method is used to perform arbitrary lexical comparisons on both words and phrases, product, product-variant, and category data in one or more catalogs. It combines the functionality of the Query method and the FreeTextSearch method.

The strSQLClause and strFTSPhrase parameters are both optional, but at least one of them must be supplied. If you only supply the strSQLClause parameter, this method acts like the Query method. If you only supply the strFTSPhrase parameter, this method acts like the FreeTextSearch method. If you supply both parameters, then only data that satisfies both search conditions will be returned. This allows you to construct sophisticated and very specific searches.

The strPropertiesToReturn parameter is optional and defaults to all properties.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

If no value is specified for the strPropertiesToReturn parameter the method returns all fields in the specified catalog, otherwise it returns only the fields specified in the strPropertiesToReturn parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'plTotalRecordsInQuery is an existing Long.
'Examine it after the method returns to see if
'there are more records to get.
Set rsResults = myCategory3.Query("[Productid]='blue suede'", "slightly scuffed", True, cscProductClass, "Price, SKU, Size", "SKU", TRUE, 1, 25, plTotalRecordsInQuery)

See Also

[C++] Category Object

[Visual Basic] Category Object

CatalogManager.Search


ICategory3::SetCategoryProperties Method [C++]

Category.SetCategoryProperties Method [Visual Basic]

Use this method to set values for the properties of this category.

Definition

[C++]
HRESULT ICategory3::SetCategoryProperties(
  _Recordset* pRSCategory,
  VARIANT fForceUpdate
);
[Visual Basic]
Sub SetCategoryProperties(
  pRSCategory As Recordset,
  Optional fForceUpdate As Variant
)

Parameters

pRSCategory [C++]
[in] A reference to a Recordset object that contains the properties for this category.
pRSCategory [Visual Basic]
A Recordset object that contains the properties for this category.
fForceUpdate [C++]
[in, optional] A VARIANT that causes a forced update of the category properties.
fForceUpdate [Visual Basic]
A Variant that causes a forced update of the category properties.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_CANT_EDIT_INCLUDED_CATEGORY | [C++] 0x88980105 [Visual Basic] &H88980105 | A virtual catalog’s included categories cannot be directly edited. Instead, they can be edited only in the base catalog context.
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &Hx889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_CATEGORY_CHANGED | [C++] 0x88980028 [Visual Basic] &H88980028 | The category has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C++] 0x889800B4 [Visual Basic] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties, the specified value should be between the minimum and maximum lengths defined for the property. For numeric properties, the specified value should be between minium and maximum values. For enumeration properties, the specified value should be one of the valid values defined for the property.
E_CAT_NULL_PRICE_NOT_ALLOWED | [C++] 0x8898003F [Visual Basic] &H8898003F | The list price for this category cannot be blank as this category is being used as a pricing category by other products in the catalog.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the SetCategoryProperties method to modify the properties of a category. The pRSCategory parameter specifies a Recordset object that describes the new property values for this category. Use the Recordset object returned by the GetCategoryProperties property so that its time stamp can be compared for error checking.

If the fForceUpdate parameter is set to False, and the property values in the pRSCategory parameter have changed, the method will fail.

This method will not update the built in fields in the catalog. If this category is being used as a pricing category, then this method will update the price of all the products using this category as the pricing category.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myCategory.SetCategoryProperties pRSCategory, "TRUE"

See Also

[C++] Category Object

[Visual Basic] Category Object


ICategory3::SetRelatedCategories Method [C++]

Category.SetRelatedCategories Method [Visual Basic]

Use this method to update category relationships.

Definition

[C++]
HRESULT ICategory3::SetRelatedCategories(
  _Recordset* pRSRelatedCategories
);
[Visual Basic]
Sub SetRelatedCategories(
  pRSRelatedCategories As Recordset
)

Parameters

pRSRelatedCategories [C++]
[in] A reference to a Recordset object that contains the related categories.
pRSRelatedCategories [Visual Basic]
A Recordset object that contains the related categories.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | Invalid pointer.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[C++]

The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedCategories method.

Only the RelationshipDescription field should be updated. Other changes should be made using the RemoveRelationshipToCategory and AddRelationshipToCategory methods.

[Visual Basic]

The recordset used for the pRSRelatedCategories parameter should be obtained from the RelatedCategories property.

Only the RelationshipDescription field should be updated. Other changes should be made using the RemoveRelationshipToCategory and AddRelationshipToCategory methods.

You can update multiple records in the same call to this method.

When calling this method on an inherited category in a virtual catalog, the method will fail.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedCategories method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedCategories is an existing recordset.
'It was obtained from the RelatedCategories property.

myCategory.SetRelatedCategories(pRSRelatedCategories)

See Also

[C++] Category Object

[Visual Basic] Category Object

[C++] get_RelatedCategories

[Visual Basic] RelatedCategories

[C++] RemoveRelationshipToCategory

[Visual Basic] RemoveRelationshipToCategory

[C++] AddRelationshipToCategory

[Visual Basic] AddRelationshipToCategory


ICategory3::SetRelatedProducts Method [C++]

Category.SetRelatedProducts Method [Visual Basic]

Use this method to update product relationships.

Definition

[C++]
HRESULT ICategory3::SetRelatedProducts(
  _Recordset* pRSRelatedProducts
);
[Visual Basic]
Sub SetRelatedProducts(
  pRSRelatedProducts As Recordset
)

Parameters

pRSRelatedProducts [C++]
[in] A reference to a _Recordset object that contains the related products.
pRSRelatedProducts [Visual Basic]
A Recordset object that contains the related products.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | Invalid pointer.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship (and therefore cannot be edited).
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[C++]

The recordset used for the pRSRelatedProducts parameter should be obtained from the get_RelatedProducts method.

Only the RelationshipDescription field should be updated. Other changes should be made using the RemoveRelationshipToProduct and AddRelationshipToProduct methods.

[Visual Basic]

The recordset used for the pRSRelatedProducts parameter should be obtained from the RelatedProducts property.

Only the RelationshipDescription field should be updated. Other changes should be made using the RemoveRelationshipToProduct and AddRelationshipToProduct methods.

You can update multiple records in the same call to this method.

When calling this method on an inherited category in a virtual catalog, the method will fail.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedProducts method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedProducts is an existing recordset.
'It was obtained from the RelatedProducts property.

myCategory.SetRelatedProducts(pRSRelatedProducts)

See Also

[C++] Category Object

[Visual Basic] Category Object

[C++] get_RelatedProducts

[Visual Basic] RelatedProducts

[C++] RemoveRelationshipToProduct

[Visual Basic] RemoveRelationshipToProduct

[C++] AddRelationshipToProduct

[Visual Basic] AddRelationshipToProduct


ICategory3 Properties [C++]

Category Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
AncestorCategories | _Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category in the hierarchy. This property is read-only.
CatalogName | BSTR | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | BSTR | Contains the name of this category. This property is read-only.
ChildCategories | _Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | _Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | _Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | _Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | _Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | _Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | _Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.
[Visual Basic]
Property | Type | Description
AncestorCategories | Recordset | Contains a recordset of category names that exist anywhere above this category, and that directly or indirectly contain this category, in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Category object is a member. This property is read-only.
CategoryName | BSTR | Contains the name of this category. This property is read-only.
ChildCategories | Recordset | Contains a recordset containing the child Category objects for this category. This property is read-only.
DescendantProducts | Recordset | Contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog. This property is read-only.
GetCategoryProperties | Recordset | Contains a recordset containing the property values for this category. This property is read-only.
ParentCategories | Recordset | Contains a recordset containing the names of the Category objects that are parent categories to this category. This property is read-only.
PrimaryParent | BSTR | Contains the primary parent category of this category. This property is read/write.
Products | Recordset | Contains the products that exist within this category, but not within descendant categories. This property is read-only.
RelatedCategories | Recordset | Contains a recordset that describes all of the categories and product families that have relationships to this category. This property is read-only.
RelatedProducts | Recordset | Contains a recordset that describes all the product variants and product families that have relationships to this category. This property is read-only.


ICategory3::get_AncestorCategories Property [C++]

Category.AncestorCategories Property [Visual Basic]

The AncestorCategories property is a read-only Recordset object that contains the names of categories that exist anywhere above this category in the hierarchy

Definition

[C++]
HRESULT ICategory3::get_AncestorCategories(
  _Recordset** AncestorCategories
);
[Visual Basic]
Property AncestorCategories As Recordset

Parameters

AncestorCategories [C++]
[out, retval] A _Recordset object used to return the ancestor categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

The AncestorCategories property contains valid data only if it was accessed successfully.

The AncestorCategories property is a Recordset object with a 128-character field, called Name. The recordset also contains a 128-character string column called DisplayName that contains the display name of the category in the language of the category object.

See Also

[C++] Category Object

[C++] ICategory3::get_ParentCategories

[C++] ICategory3::get_ChildCategories

[Visual Basic] Category Object

[Visual Basic] Category.ParentCategories

[Visual Basic] Category.ChildCategories


ICategory3::get_CatalogName Property [C++]

Category.CatalogName Method [Visual Basic]

The CatalogName property is a read-only String that contains the name of the catalog from which this category was retrieved.

Definition

[C++]
HRESULT ICategory3::get_CatalogName(
  BSTR* CatalogName
);
[Visual Basic]
Property CatalogName As String

Parameters

CatalogName [C++]
[out, retval] A BSTR used to return the catalog name.

[Visual Basic] None.

[C++]

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Ran out of memory.

Remarks

[C++] The CatalogName parameter contains valid data only if the property is accessed successfully.

[Visual Basic] The CatalogName property contains valid data only if the property is accessed successfully.

The CatalogName property contains the name of the catalog from which this category object is obtained.

See Also

[C++] Category Object

[Visual Basic] Category Object


ICategory3::get_CategoryName Property [C++]

Category.CategoryName Property [Visual Basic]

The CategoryName property is a read-only String that contains the name of this category.

Definition

[C++]
HRESULT ICategory3::get_CategoryName(
  BSTR* CategoryName
);
[Visual Basic]
Property CategoryName As String

Parameters

CategoryName [C++]
[out, retval] A BSTR used to return the category name.

[Visual Basic] None.

[C++]

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Ran out of memory.

Remarks

[C++] The CategoryName parameter contains valid data only if the property is accessed successfully.

[Visual Basic] The CategoryName property contains valid data only if the property is accessed successfully.

See Also

[C++] Category Object

[Visual Basic] Category Object


ICategory3::get_ChildCategories Property [C++]

Category.ChildCategories Property [Visual Basic]

The ChildCategories property is a read-only Recordset object that contains the names of categories that exist below this category in the hierarchy.

Definition

[C++]
HRESULT ICategory3::get_ChildCategories(
  _Recordset** ChildCategories
);
[Visual Basic]
Property ChildCategories As Recordset

Parameters

ChildCategories [C++]
[out, retval] A _Recordset object used to return the child categories.

[Visual Basic] None.

[C++]

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C++] The ChildCategories parameter contains valid data only if the property is accessed successfully.

[Visual Basic] The ChildCategories property contains valid data only if the property is accessed successfully.

The ChildCategories property recordset contains a row for each of the categories that are currently children of this category. The following table lists the fields for the ChildCategories property recordset.

Field | Data Type | Description
CategoryName | String maximum of 128 characters | The name of the category.
DefinitionName | String maximum of 128 characters | The name of the definition.
CatalogName | String maximum of 128 characters | The name of the catalog that contains the category.
DisplayName | String maximum of 128 characters | The display name of the category.

If this category object has no children, an empty recordset is returned whose EOF property is set to VARIANT_TRUE. Your code should check the value of this property to determine if child categories exist.

See Also

[C++] Category Object

[C++] ICategory3::get_ParentCategories

[C++] ICategory3::get_AncestorCategories

[Visual Basic] Category Object

[Visual Basic] Category.ParentCategories

[Visual Basic] Category.AncestorCategories


ICategory3::get_DescendantProducts Property [C++]

Category.DescendantProducts Property [Visual Basic]

The DescendantProducts property is a read-only Recordset object that contains all products that exist anywhere below this category. Accessing this property on the root category returns every product in the entire catalog.

Definition

[C++]
HRESULT ICategory3::get_DescendantProducts(
  VARIANT eClassTypeRequired,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** DescendantProducts
);
[Visual Basic]
Property DescendantProducts(
  Optional eClassTypeRequired As Variant,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As Recordset

Parameters

eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records in the query.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of records in the query.
DescendantProducts [C++]
[out, retval] A _Recordset object used to return the descendant products.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This property returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C++]The DescendantProducts parameter contains valid data only if the property is accessed successfully.

This property gets all the product, variant, or category data (depending on the value passed into the parameter eClassTypeRequired), which are directly or indirectly under this category.

[C++] The returned recordset contains all the fields in the CatalogProduct Recordset.

[Visual Basic] The returned recordset contains all the fields in the CatalogProduct Recordset.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Category Object

[C++] ICategory3::get_RelatedProducts

[C++] ICategory3::get_Products

[Visual Basic] Category Object

[Visual Basic] Category.RelatedProducts

[Visual Basic] Category.Products


ICategory3::get_GetCategoryProperties Property [C++]

Category.GetCategoryProperties Property [Visual Basic]

The GetCategoryProperties property is a read-only recordset that contains the properties for this category. Both the properties that are present in the definition of this category, and the built-in properties, are returned.

Definition

[C++]
HRESULT ICategory3::get_GetCategoryProperties(
  _Recordset** GetCategoryProperties
);
[Visual Basic]
Property GetCategoryProperties As Recordset

Parameters

GetCategoryProperties [C++]
[out, retval] A _Recordset object used to return the category properties.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The GetCategoryProperties parameter contains valid data only if the property is accessed successfully.

[Visual Basic] The GetCategoryProperties property contains valid data only if the property is accessed successfully.

[C++] The returned recordset contains all the common fields in the CatalogProduct Recordset. It also contains all the fields that are in the product definitions for the category. The ProductID field (the unique product identifier) is returned even if it is not part of a product definition.

[Visual Basic] The returned recordset contains all the common fields in the CatalogProduct Recordset. It also contains all the fields that are in the product definitions for the category. The ProductID field (the unique product identifier) is returned even if it is not part of a product definition.

The recordset returned is updateable, but disconnected. If this category has been deleted from the database, this property returns an error. For categories created in virtual catalogs, the category name returned in the recordset will not contain the appended catalog name.

See Also

[C++] Category Object

[C++] ICategory3::SetCategoryProperties

[Visual Basic] Category Object

[Visual Basic] Category.SetCategoryProperties


ICategory3::get_ParentCategories Property [C++]

Category.ParentCategories Property [Visual Basic]

The ParentCategories property is a read-only recordset that contains the names of the parent categories of this category.

Definition

[C++]
HRESULT ICategory3::get_ParentCategories(
  _Recordset** ParentCategories
);
[Visual Basic]
Property ParentCategories As Recordset

Parameters

ParentCategories [C++]
[out, retval] A _Recordset object used to return the parent categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C++] The ParentCategories parameter contains valid data only if the property is accessed successfully.

[Visual Basic] The ParentCategories property contains valid data only if the property is accessed successfully.

The ParentCategories property contains the names of the categories that are parent categories of this category. The recordset returned contains a 128-character string column, called Name, and one row for each parent that exists.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
Name | String Maximum of 128 characters | Name of the parent category.
DisplayName | String Maximum of 128 characters | Display name of the category.
FvirtualCatalog | bit | For a virtual catalog this field specifies if this link was inherited(value 0) or explicitly added (value 1). For a base catalog this field will always be 0.

If this category is a root category, it has no parent categories, and an empty recordset is returned whose EOF property is set to VARIANT_TRUE.

See Also

[C++] Category Object

[C++] ICategory3::get_AncestorCategories

[C++] ICategory3::get_ChildCategories

[Visual Basic] Category Object

[Visual Basic] Category.AncestorCategories

[Visual Basic] Category.ChildCategories


ICategory3::get_PrimaryParent, put_PrimaryParent Property [C++]

Category.PrimaryParent Property [Visual Basic]

The PrimaryParent property is a read/write String that contains the primary parent category.

Definition

[C++]

Get method:

HRESULT ICategory3::get_PrimaryParent(
  BSTR* PrimaryParent
);

Put method:

HRESULT ICategory3::put_PrimaryParent(
  BSTR PrimaryParent
);
[Visual Basic]
Property PrimaryParent As String

Parameters

PrimaryParent [C++]
[in] When putting the property, a BSTR that contains the primary parent.
[out, retval] When getting the property, a BSTR used to return the primary parent.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_PRIMARYPARENT_DOES_NOT_EXIST | [C++] 0x889800AC [Visual Basic] &H889800AC | The primary parent category that you specified does not exist
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_PRICING_CAT_PRICELESS | [C++] 0x8898002F [Visual Basic] &H8898002F | The category you specified has no list price. The list price of the category has to be set before using this for pricing.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

Products and categories can have multiple parent-child relationships. Specifying a primary parent for a product or category simplifies the hierarchy and clarifies the application of pricing rules. If there is no primary parent this property contains an empty string.

Note

  • This property cannot be modified in a virtual catalog. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Category Object

[Visual Basic] Category Object


ICategory3::get_Products Property [C++]

Category.Products Property [Visual Basic]

The Products property is a read-only recordset that contains product data for all of the products that exist directly within this category.

Definition

[C++]
HRESULT ICategory3::get_Products(
  VARIANT eClassTypeRequired,
  VARIANT strPropertyToSortOn,
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** Products
);
[Visual Basic]
Property Products(
  Optional eClassTypeRequired As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As Recordset

Parameters

eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration. For more information, see the Remarks section.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property to sort on. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property to sort on. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record number. A value of one (1) indicates the first record.
lStartingRecord [Visual Basic]
A Variant that contains the starting record number. A value of one (1) indicates the first record.
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve.
plTotalRecordsInQuery [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records in the query.
plTotalRecordsInQuery [Visual Basic]
A Variant used to return the total number of records in the query.
Products [C++]
[out, retval] A _Recordset object used to return the products.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

[C++] The Products parameter contains valid data only if the property is accessed successfully.

If the properties specified in the strPropertyToSortOn parameter are invalid, then the recordset will be unsorted.

If the cscCategoryClass value is specified for the eClassTypeRequired parameter, the returned recordset will contain all the products and all the child categories in this category.

The Products property contains the product data for all the products in this category.

[C++] The returned recordset contains all the fields in the CatalogProduct Recordset.

[Visual Basic] The returned recordset contains all the fields in the CatalogProduct Recordset.

If this category contains no products, then the Products property returns an empty recordset whose EOF property is set to VARIANT_TRUE.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
CscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Category Object

[C++] ICategory3::get_DescendantProducts

[C++] ICategory3::get_RelatedProducts

[Visual Basic] Category.DescendantProducts

[Visual Basic] Category Object

[Visual Basic] Category.RelatedProducts


ICategory3::get_RelatedCategories Property [C++]

Category.RelatedCategories Property [Visual Basic]

The RelatedCategories property is a read-only recordset that contains all categories in the Product Catalog System related to this category.

Definition

[C++]
HRESULT ICategory3::get_RelatedCategories(
  _Recordset** RelatedCategories
);
[Visual Basic]
Property RelatedCategories As Recordset

Parameters

RelatedCategories [C++]
[out, retval] A _Recordset object used to return the related categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The RelatedCategories parameter contains valid data only if the property is accessed successfully.

The RelatedCategories property contains information on all the relationships this category has to other categories. The recordset returned contains one row for each relationship present.

The following table shows the fields in the returned recordset.

Field | Data Type | Description
CategoryName | String maximum of 128 characters | The name of the category.
RelationshipName | String maximum of 128 characters | The name of the relationship.
RelationshipDescription | String maximum of 256 characters | The description of the relationship.
TargetCatalog | String maximum of 128 characters | The name of the target catalog.

See Also

[C++] Category Object

[C++] ICategory3::get_AncestorCategories

[C++] ICategory3::get_ChildCategories

[C++] ICategory3::get_ParentCategories

[C++] ICategory3::AddRelationshipToCategory

[C++] ICategory3::RemoveRelationshipToCategory

[C++] ICategory3::SetRelatedCategories

[Visual Basic] Category Object

[Visual Basic] Category.AncestorCategories

[Visual Basic] Category.ChildCategories

[Visual Basic] Category.ParentCategories

[Visual Basic] Category.AddRelationshipToCategory

[Visual Basic] Category.RemoveRelationshipToCategory

[Visual Basic] Category.SetRelatedCategories


ICategory3::get_RelatedProducts Property [C++]

Category.RelatedProducts Property [Visual Basic]

The RelatedProducts property is a read-only recordset containing information about all products within the Product Catalog System related to this category.

Definition

[C++]
HRESULT ICategory3::get_RelatedProducts(
  _Recordset** RelatedProducts
);
[Visual Basic]
Property RelatedProducts As Recordset

Parameters

RelatedProducts [C++]
[out, retval] A _Recordset object used to return the related products.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_OPERATION_FOR_ROOT_CATEGORY | [C++] 0x889800F8 [Visual Basic] &H889800F8 | This API cannot be called for a root category.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The RelatedProducts parameter contains valid data only if the property is accessed successfully.

The recordset returned contains one row for each relationship present.

The following table shows the fields in the returned recordset.

Field | Data Type | Description
ProductID | String maximum of 256 characters | The unique product identifier in the target catalog.
RelationshipName | String maximum of 128 characters | The name of the relationship.
RelationshipDescription | String maximum of 256 characters | The description of the relationship.
TargetCatalog | String maximum of 128 characters | The name of the target catalog.

Important

  • The ProductID field in the returned recordset is not same as the <defined ProductID field> used in this recordset in Commerce Server 2000. If you are upgrading a Commerce Server 2000 application, you may need to modify your code to accept a String data type.

See Also

[C++] Category Object

[C++] ICategory3::get_DescendantProducts

[C++] ICategory3::get_Products

[C++] ICategory3::AddRelationshipToProduct

[C++] ICategory3::RemoveRelationshipToProduct

[C++] ICategory3::SetRelatedProducts

[Visual Basic] Category Object

[Visual Basic] Category.DescendantProducts

[Visual Basic] Category.Products

[Visual Basic] Category.AddRelationshipToProduct

[Visual Basic] Category.RemoveRelationshipToProduct

[Visual Basic] Category.SetRelatedProducts


Product Object [C++]

Product Object [Visual Basic]

Use this object to work with products and variants in a catalog.

ProgID: | Dependent (See Remarks for more information)
COM Class Name: | Product
Type Library Name: | Microsoft Commerce 2002 Catalog Type Library v1.3
DLL Name: | Catalog.dll
Threading Model: | Both
[C++]
COM Interface Name: | Iproduct3
Interface ID Constant: | IID_Iproduct3
Header File: | Catalog.h, mspu_guids.h
[C++]

In C++, use the IProduct3 interface to access the properties and methods of the Product object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetProductProperties | Sets the properties for this product and all its variants.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetVariantProperties | Sets the properties for variants of this product.
[Visual Basic]
Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetProductProperties | Sets the properties for this product and all its variants.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetVariantProperties | Sets the properties for variants of this product.

Properties

[C++]
Property | Type | Description
AncestorCategories | _Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | BSTR | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | _Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | _Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | BSTR | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | BSTR | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | BSTR | Contains the unique ID for this product. This property is read-only.
RelatedCategories | _Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | _Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | VARIANT_BOOL | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | _Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.
[Visual Basic]
Property | Type | Description
AncestorCategories | Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | String | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | String | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | BSTR | Contains the unique identifier for this product This property is read-only.
RelatedCategories | Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | Boolean | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.

Remarks

[C++]

The Product object is a dependent object. Obtain a pointer to the IProduct3 interface by calling one of the following methods:

  • IProductCatalog3::CreateProduct
  • IProductCatalog3::GetProduct
[Visual Basic]

The Product object is a dependent object. Obtain a reference to it by accessing the following properties:

  • ProductCatalog.CreateProduct
  • ProductCatalog.GetProduct


IProduct3 Methods [C++]

Product Methods [Visual Basic]

Methods

[C++]
Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetProductProperties | Sets the properties for this product and all its variants.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetVariantProperties | Sets the properties for variants of this product.
[Visual Basic]
Method | Description
AddRelationshipToCategory | Adds a relationship to a specified category from this product.
AddRelationshipToProduct | Adds a relationship to another specified product from this product.
CreateVariant | Creates a new product variant.
DeleteVariant | Deletes a product variant.
GetVariantProperties | Returns the properties of a specified product variant.
RemoveRelationshipToCategory | Removes the specified relationship between this product and the specified category.
RemoveRelationshipToProduct | Removes the specified relationship between this product and the specified product.
SetProductProperties | Sets the properties for this product and all its variants.
SetRelatedCategories | Updates category relationships.
SetRelatedProducts | Updates product relationships.
SetVariantProperties | Sets the properties for variants of this product.


IProduct3::AddRelationshipToCategory Method [C++]

Product.AddRelationshipToCategory Method [Visual Basic]

Use this method to add a relationship to a specified category in a specified catalog from this product.

Definition

[C++]
HRESULT IProduct3::AddRelationshipToCategory(
  BSTR strRelatedCategoryName,
  BSTR strRelationshipName,
  VARIANT strRelationshipDescription,
  BSTR strTargetCatalogName
);
[Visual Basic]
Sub AddRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String,
  Optional strRelationshipDescription As Variant,
  strTargetCatalogName As String
)

Parameters

strRelatedCategoryName [C++]
[in] A BSTR that contains the name of the category to which a relationship is to be added.
strRelatedCategoryName [Visual Basic]
A String that contains the name of the category to which a relationship is to be added.
strRelationshipName [C++]
[in] A BSTR that contains a name for the relationship.
strRelationshipName [Visual Basic]
A String that contains a name for the relationship.
strRelationshipDescription [C++]
[in, optional] A VARIANT that optionally contains a description for the relationship. See the Remarks section for more information.
strRelationshipDescription [Visual Basic]
A Variant that optionally contains a description for the relationship. See the Remarks section for more information.
strTargetCatalogName [C++]
[in] A BSTR that contains the name of the catalog that contains the category specified in strRelatedCategoryName .
strTargetCatalogName [Visual Basic]
A String that contains the name of the catalog that contains the category specified in strRelatedCategoryName.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the Relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_RELATION_DESC | [C++] 0x88980055 [Visual Basic] &H88980055 | The value you specified for the Relationship description exceeds 256 characters. Relationship Description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The Category you specified doesn't exist.
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C++] 0x8898011B [Visual Basic] &H8898011B | A virtual catalog's included relationships cannot be directly edited. Instead, they can only be edited in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you specify in the strRelationshipDescription parameter. The description of a relationship is a multilingual attribute. Specifying the strRelationshipDescription parameter will set the description in the current language of the catalog. Use the SetRelatedCategories method to create descriptions in other languages.

[Visual Basic]

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you specify in the strRelationshipDescription parameter. The description of a relationship is a multilingual attribute. Specifying the strRelationshipDescription parameter will set the description in the current language of the catalog. Use the SetRelatedCategories method to create descriptions in other languages.

More than one relationship may be created between the same product and category; however, in this case each relationship created must be given a unique name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'vDesc is a Variant of subtype String containing the description.
myProduct.AddRelationshipToCategory "Apparel", "Accessory", vDesc, "myCat"

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::AddRelationshipToProduct

[Visual Basic] Product.AddRelationshipToProduct

[C++] IProduct3::RemoveRelationshipToCategory

[Visual Basic] Product.RemoveRelationshipToCategory

[C++] IProduct3::SetRelatedCategories

[Visual Basic] Product.SetRelatedCategories


IProduct3::AddRelationshipToProduct Method [C++]

Product.AddRelationshipToProduct Method [Visual Basic]

Use this method to add a relationship to a specified product in the specified catalog from this product.

Definition

[C++]
HRESULT IProduct3::AddRelationshipToProduct(
  VARIANT varRelatedProductID,
  BSTR strRelationshipName,
  VARIANT strRelationshipDescription,
  BSTR strTargetCatalogName
);
[Visual Basic]
Sub AddRelationshipToProduct(
  varRelatedProductID As Variant,
  strRelationshipName As String,
  Optional strRelationshipDescription As Variant,
  BSTR strTargetCatalogName
)

Parameters

varRelatedProductID [C++]
[in] A VARIANT that contains the ID of the related product.
varRelatedProductID [Visual Basic]
A Variant that contains the ID of the related product.
strRelationshipName [C++]
[in] A BSTR that contains the name of the relationship.
strRelationshipName [Visual Basic]
A String that contains the name of the relationship.
strRelationshipDescription [C++]
[in, optional] A VARIANT that optionally contains a description for the relationship.
strRelationshipDescription [Visual Basic]
A Variant that optionally contains a description for the relationship.
strTargetCatalogName [C++]
[in] A BSTR that contains the name of the catalog that contains the product specified in varRelatedProductID .
strTargetCatalogName [Visual Basic]
A String that contains the name of the catalog that contains the product specified in varRelatedProductID.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &Hx8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the Relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the productID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &Hx8898004E | The value you specified for the productID is either out of range or else does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_DESC | [C++] 0x88980055 [Visual Basic] &H88980055 | The value you specified for the Relationship description exceeds 256 characters. Relationship Description should be less than or equal to 256 characters.
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An Invalid relation is specified. Self relations are not supported.
E_CAT_VC_CANT_EDIT_INCLUDED_RELATIONSHIP | [C++] 0x8898011B [Visual Basic] &H8898011B | A virtual catalog's included relationships cannot be directly edited. Instead, they can edited only in the base catalog context.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you specify in the strRelationshipDescription parameter. The description of a relationship is a multilingual attribute. Specifying the strRelationshipDescription parameter will set the description in the current language of the catalog. Use the SetRelatedProducts method to create descriptions in other languages.

[Visual Basic]

The new relationship must have a name, which you specify in the strRelationshipName parameter. It may also optionally have a description, which you specify in the strRelationshipDescription parameter. The description of a relationship is a multilingual attribute. Specifying the strRelationshipDescription parameter will set the description in the current language of the catalog. Use the SetRelatedProducts method to create descriptions in other languages.

More than one relationship may be created between the same two products; however, in this case each relationship created must be given a unique name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'vProdID is a Variant containing the product ID.
'vDesc is a Variant of subtype String containing a description
'of the relationship.
myProduct.AddRelationshipToProduct vProdID, "Accessory", vDesc

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::AddRelationshipToCategory

[Visual Basic] Product.AddRelationshipToCategory

[C++] IProduct3::RemoveRelationshipToProduct

[Visual Basic] Product.RemoveRelationshipToProduct

[C++] IProduct3::SetRelatedProducts

[Visual Basic] Product.SetRelatedProducts


IProduct3::CreateVariant Method [C++]

Product.CreateVariant Method [Visual Basic]

Use this method to create a new product variant of the current product. Only product-specific attributes will be set in the new variant. This method applies only to base catalogs.

Definition

[C++]
HRESULT IProduct3::CreateVariant(
  VARIANT varProductVariantID,
  _Recordset** ppRSProductVariant
);
[Visual Basic]
Function CreateVariant(
  varProductVariantID As Variant
) As Recordset

Parameters

varProductVariantID [C++]
[in] A VARIANT that contains the unique ID of the product variant.
varProductVariantID [Visual Basic]
A Variant that contains the unique ID of the product variant.
ppRSProductVariant [C++]
[out, retval] A pointer to a Recordset object used to return the product variant.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the properties for the variant.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants catalog has to be created with variant identifier.
E_CAT_NO_VARIANTS_UNDER_PRODUCT | [C++] 0x88980051 [Visual Basic] &H88980051 | You cannot create a variant under a regular product. Variants can be created under product families only.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_VARIANTID | [C++] 0x8898005C [Visual Basic] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C++] 0x8898004D [Visual Basic] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C++] 0x8898004F [Visual Basic] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_EXISTS | [C++] 0x88980026 [Visual Basic] &H88980026 | The product variant you specified already exists.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The ppRSProductVariant parameter contains valid data only if the method was accessed successfully.

The value and type of the varProductVariantID parameter must be valid for the product property specified as the unique ID for product variants. This property is specified when a catalog is created, as the strProductVariantID parameter to the ICatalogManager3::CreateCatalog method.

[Visual Basic]

The returned recordset contains valid data only if the method was accessed successfully.

The value and type of the varProductVariantID parameter must be valid for the product property specified as the unique ID for product variants. This property is specified when a catalog is created, as the strProductVariantID parameter to the CatalogManager.CreateCatalog method.

If the catalog created does not support variants, that is the strProductVariantID parameter was not specified on catalog creation, an error is returned.

Upon successful completion, the method returns an ActiveX Data Object (ADO) recordset that contains fields for all the properties defined for the new product variant and an integer field named OID. The OID field is used internally by the Product Catalog System and should not be updated. The returned recordset is updateable, but disconnected. In order to modify the variant properties, pass this recordset to the SetVariantProperties method.

Product variants inherit the properties that are present in the product definition. Values for non variant-specific product properties are propagated from the Product object down to the variants, but values for variant-specific properties must be explicitly set for each variant.

The variant ID value should be unique within the product family. There can be two product variants with the same variant IDs within the same catalog, as long as they are in different product families.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsVariantProps = myProduct.CreateVariant("SKU4005XLA")

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::DeleteVariant

[Visual Basic] Product.DeleteVariant

[C++] IProduct3::SetVariantProperties

[Visual Basic] Product.SetVariantProperties


IProduct3::DeleteVariant Method [C++]

Product.DeleteVariant Method [Visual Basic]

Use this method to delete the specified product variant. This method applies to base catalogs only.

Definition

[C++]
HRESULT IProduct3::DeleteVariant(
  VARIANT varVariantID
);
[Visual Basic]
Sub DeleteVariant(
  varVariantID As Variant
)

Parameters

varVariantID [C++]
[in] A VARIANT that contains the unique ID of the variant.
varVariantID [Visual Basic]
A Variant that contains the unique ID of the variant.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants, the catalog has to be created with variant identifier.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_VARIANTID | [C++] 0x8898005C [Visual Basic] &Hx8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C++] 0x8898004D [Visual Basic] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C++] 0x8898004F [Visual Basic] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_DOESNT_EXIST | [C++] 0x8898001F [Visual Basic] &H8898001F | The product-variant you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'vVarID is a Variant containing the unique ID
'for the product variant.
myProduct.DeleteVariant vVarID

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::CreateVariant

[Visual Basic] Product.CreateVariant


IProduct3::GetVariantProperties Method [C++]

Product.GetVariantProperties Method [Visual Basic]

Use this method to retrieve the properties for a specified product variant.

Definition

[C++]
HRESULT IProduct3::GetVariantProperties(
  VARIANT varProductVariantID,
  _Recordset** ppRSProductVariant
);
[Visual Basic]
Function GetVariantProperties(
  varProductVariantID As Variant
) As Recordset

Parameters

varProductVariantID [C++]
[in] A VARIANT that contains the unique ID of the product variant.
varProductVariantID [Visual Basic]
A Variant that contains the unique ID of the product variant.
ppRSProductVariant [C++]
[out, retval] A pointer to a Recordset object used to return the product variant properties.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the variant properties.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants, the catalog has to be created with variant identifier.
E_CAT_INVALID_VARIANTID | [C++] 0x8898005C [Visual Basic] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C++] 0x8898004D [Visual Basic] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VARIANT_DOESNT_EXIST | [C++] 0x8898001F [Visual Basic] &H8898001F | The product-variant you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSProductVariant parameter contains valid data only if the method was accessed successfully.

This method returns the properties of the specified product variant. Multilingual properties will be returned in the current language of the catalog. If the product variant specified in the varProductVariantID parameter does not exist in the product, the method will fail.

A single row recordset with all the properties of the variant is returned. The fields of the returned recordset are determined by the properties associated with the definition on which it is based. Both the product properties and the variant properties are returned.

The OID field is used internally by the Product Catalog System and should not be updated.

The recordset returned is updateable, but disconnected. To modify the product properties, pass this recordset to the SetVariantProperties method.

The returned recordset contains the fields listed in the following table.

Field | Data Type
oid | int
cy_list_price | money
Timestamp | timestamp
ProductID | string

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'vVarID is a Variant containing the unique ID of the variant.
SET rsVariantProps = myProduct.GetVariantProperties(vVarID)

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::SetVariantProperties

[Visual Basic] Product.SetVariantProperties


IProduct3::RemoveRelationshipToCategory Method [C++]

Product.RemoveRelationshipToCategory Method [Visual Basic]

Use this method to remove the specified relationship between the specified category and this product.

Definition

[C++]
HRESULT IProduct3::RemoveRelationshipToCategory(
  BSTR strRelatedCategoryName,
  BSTR strRelationshipName
  BSTR strCatalogName
);
[Visual Basic]
Sub RemoveRelationshipToCategory(
  strRelatedCategoryName As String,
  strRelationshipName As String
  Optional strCatalogName As Variant)

Parameters

strRelatedCategoryName [C++]
[in] A BSTR that contains the name of the category that is to have its relationship to this product removed.
strRelatedCategoryName [Visual Basic]
A String that contains the name of the category that is to have its relationship to this product removed.
strRelationshipName [C++]
[in] A BSTR that contains the name of the relationship to be removed.
strRelationshipName [Visual Basic]
A String that contains the name of the relationship to be removed.
strCatalogName [C++]
[in, optional] A BSTR that contains the name of the catalog containing the name of the category that is to have its relationship to this product removed.
strCatalogName [Visual Basic]
A String that contains the name of the catalog containing the name of the category that is to have its relationship to this product removed.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )# . which should not be used.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the Relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

When calling this method on an inherited category in a virtual catalog, if the relationship is inherited from a base catalog, the method will return an error: "The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited." If the relationship was added in the virtual catalog, it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Remove the "Accessory" relationship this product has to
' the "Apparel" category.

myProduct.RemoveRelationshipToCategory "Apparel", "Accessory", "myCat"

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_RelatedCategories

[Visual Basic] Product.RelatedCategories

[C++] IProduct3::AddRelationshipToCategory

[Visual Basic] Product.AddRelationshipToCategory

[C++] IProduct3::RemoveRelationshipToProduct

[Visual Basic] Product.RemoveRelationshipToProduct


IProduct3::RemoveRelationshipToProduct Method [C++]

Product.RemoveRelationshipToProduct Method [Visual Basic]

Use this method to remove the specified relationship between the specified product in the specified catalog and this product.

Definition

[C++]
HRESULT IProduct3::RemoveRelationshipToProduct(
  VARIANT varRelatedProductID,
  BSTR strRelationshipName
  BSTR strCatalogName
);
[Visual Basic]
Sub RemoveRelationshipToProduct(
  varRelatedProductID As Variant,
  strRelationshipName As String
  strCatalogName As String
)

Parameters

varRelatedProductID [C++]
[in] A VARIANT that contains the unique ID of the product that is to have its relationship to this product removed.
varRelatedProductID [Visual Basic]
A Variant that contains the unique ID of the product that is to have its relationship to this product removed.
strRelationshipName [C++]
[in] A BSTR that contains the name of the relationship to be removed.
strRelationshipName [Visual Basic]
A String that contains the name of the relationship to be removed.
strCatalogName [C++]
[in] A BSTR that contains the name of the catalog containing the name of the related product.
strCatalogName [Visual Basic]
A String that contains the name of the catalog containing the name of the related product.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &Hx88980063 | The catalog name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the productID is blank or exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the productID is either out of range or else does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the productID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_RELATION_NAME | [C++] 0x88980054 [Visual Basic] &H88980054 | The value you specified for the Relationship name is blank or exceeds 128 characters. Relationship names should not be blank and should be less than or equal to 128 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The Category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship (and therefore cannot be edited).
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

When calling this method on an inherited category in a virtual catalog, if the relationship is inherited from a base catalog, the method will return an error: "The relationship that you specified either does not exist or is an inherited relationship, and therefore cannot be edited." If the relationship was added in the virtual catalog, it will be removed. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships use a Category object obtained from the base Catalog object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vProdID is a Variant containing the unique ID of the related product.
myProduct.RemoveRelationshipToProduct(vProdID, "Accessory", "myCat")

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_RelatedProducts

[Visual Basic] Product.RelatedProducts

[C++] IProduct3::AddRelationshipToProduct

[Visual Basic] Product.AddRelationshipToProduct

[C++] IProduct3::RemoveRelationshipToCategory

[Visual Basic] Product.RemoveRelationshipToCategory


IProduct3::SetProductProperties Method [C++]

Product.SetProductProperties Method [Visual Basic]

Use this method to set the properties for this product.

Definition

[C++]
HRESULT IProduct3::SetProductProperties(
  _Recordset* pRSProduct,
  VARIANT fForceUpdate
);
[Visual Basic]
Sub SetProductProperties(
  pRSProduct As Recordset,
  Optional fForceUpdate As Variant
)

Parameters

pRSProduct [C++]
[in] A pointer to a Recordset object that contains the new product properties. This should be an updated recordset returned by the GetProductProperties method.
pRSProduct [Visual Basic]
A Recordset object that contains the new product properties. This should be an updated recordset returned by the GetProductProperties method.
fForceUpdate [C++]
[in, optional] A VARIANT that determines whether to force an update of the product properties.
fForceUpdate [Visual Basic]
A Variant that determines whether to force an update of the product properties.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants. the catalog has to be created with variant identifier.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_PRODUCT_CHANGED | [C++] 0x88980027 [Visual Basic] &H88980027 | The product variant has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C++] 0x889800B4 [Visual Basic] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties the specified value should lie between the minimum and maximum lengths defined for the property.For numeric properties the specified value should lie between minium and maximum values.For enumeration properties the specified value should be one of the valid values defined for the property.
E_CAT_INVALID_LISTPRICE | [C++] 0x8898003C [Visual Basic] &H8898003C | An invalid list price is specified for this product or variant. The list price cannot be empty for the products and variants.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the SetProductProperties method to modify the properties of a product. The pRSProduct parameter specifies a Recordset object that describes the new property values for this product. This method will not update the fields derived from the catalog, such as ProductID and VariantID. If this method is called for a product family it will update the properties for all variants that belong to the product family.

Use the Recordset object returned by the GetProductProperties property so that the time stamps can be compared to the records updated by this method for error detection.

If the fForceUpdate parameter is set to False, and the property values for this product have been changed since the pRSProduct recordset was obtained from the GetProductProperties property, the method will fail.

This method will update the value of multilingual properties for the current language of the catalog.

Calling this method on a virtual catalog returns an error:E_CAT_VC_NOT_A_SUPPLIER_CATALOG "Invalid Catalog Type. This API can only be called on a Base Catalog."

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'This example changes the list price for a product.
set rsProductProps = myProduct.GetProductProperties
rsProductProps.fields("cy_list_price").value = CCur(1.398)
myProduct.SetProductProperties rsProductProps, TRUE

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::GetProductProperties

[Visual Basic] Product.GetProductProperties


IProduct3::SetRelatedCategories Method [C++]

Product.SetRelatedCategories Method [Visual Basic]

Use this method to update category relationships.

Definition

[C++]
HRESULT IProduct3::SetRelatedCategories(
  _Recordset* pRSRelatedCategories
);
[Visual Basic]
Sub SetRelatedCategories(
  pRSRelatedCategories As _Recordset
)

Parameters

pRSRelatedCategories [C++]
[in] A reference to a Recordset object that contains the related categories.
pRSRelatedCategories [Visual Basic]
A Recordset object that contains the related categories.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | Invalid pointer.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[Visual Basic] The recordset used for the pRSRelatedCategories parameter should be obtained from the RelatedCategories property.

[C++] The recordset used for the pRSRelatedCategories parameter should be obtained from the get_RelatedCategories method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedCategories method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedCategories is an existing recordset.
'It was obtained from the RelatedCategories property.

myProduct.SetRelatedCategories(pRSRelatedCategories)

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::SetRelatedProducts Method [C++]

Product.SetRelatedProducts Method [Visual Basic]

Use this method to update product relationships.

Definition

[C++]
HRESULT IProduct3::SetRelatedProducts(
  _Recordset* pRSRelatedProducts
);
[Visual Basic]
Sub SetRelatedProducts(
  pRSRelatedProducts As _Recordset
)

Parameters

pRSRelatedProducts [C++]
[in] A reference to a _Recordset object that contains the related products.
pRSRelatedProducts [Visual Basic]
A Recordset object that contains the related products.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | Invalid pointer
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_DEFN_NO_RELATIONSHIP_EXISTS | [C++] 0x88980045 [Visual Basic] &H88980045 | The relationship that you specified either does not exist or is a inherited relationship, and therefore cannot be edited.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

[Visual Basic] The recordset used for the pRSRelatedProducts parameter should be obtained from the RelatedProducts property.

[C++] The recordset used for the pRSRelatedProducts parameter should be obtained from the get_RelatedProducts method.

This method will update the value of the RelationshipDescription field for the current language of the catalog.

When calling this method on an inherited product in a virtual catalog, the method will have no effect if the relationship is inherited from a base catalog. If the relationship was added in the virtual catalog, changes will be updated. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object.

The input recordset should not contain any rows that are inherited relationships. Such rows must be removed from the recordset first if they exist, as they may be returned by the RelatedProducts method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'pRSRelatedProducts is an existing recordset.
'It was obtained from the RelatedProducts property.

myProduct.SetRelatedProducts(pRSRelatedProducts)

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::SetVariantProperties Method [C++]

Product.SetVariantProperties Method [Visual Basic]

Use this method to set the properties for a variant of this product.

Definition

[C++]
HRESULT IProduct3::SetVariantProperties(
  _Recordset* pRSNewState,
  VARIANT fForceUpdate
);
[Visual Basic]
Sub SetVariantProperties(
  pRSNewState As _Recordset,
  Optional fForceUpdate As Variant
)

Parameters

pRSNewState [C++]
[in] A pointer to a Recordset object that contains the new product variant properties. This should be a recordset returned by the GetVariantProperties property, or by the CreateVariant method.
pRSNewState [Visual Basic]
A Recordset object that contains the new product variant properties. This should be a recordset returned by the GetVariantProperties property, or by the CreateVariant method.
fForceUpdate [C++]
[in, optional] A VARIANT that determines whether to force an update of the product variant properties.
fForceUpdate [Visual Basic]
A Variant that determines whether to force an update of the product variant properties.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants, the catalog has to be created with variant identifier.
E_CAT_VARIANT_DOESNT_EXIST | [C++] 0x8898001F [Visual Basic] &H8898001F | The product-variant you specified doesn't exist.
E_CAT_PRODUCT_CHANGED | [C++] 0x88980027 [Visual Basic] &H88980027 | The product variant has been changed since it was last read.
E_CAT_INVALID_PROPERTY_VALUE | [C++] 0x889800B4 [Visual Basic] &H889800B4 | The value <value> specified for the property <property name>does not satisfy the Minimum or Maximum constraints defined for the property. For string properties, the specified value should lie between the minimum and maximum lengths defined for the property. For numeric properties, the specified value should lie between a minimum and maximum value. For enumeration properties, the specified value should be one of the valid values defined for the property.
E_CAT_INVALID_LISTPRICE | [C++] 0x8898003C [Visual Basic] &H8898003C | An invalid list price is specified for this product or variant. The list price cannot be empty for the products and variants.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[Visual Basic] Use the SetVariantProperties method to modify the properties of a product variant. The pRSNewState parameter specifies a Recordset object that describes the new property values for this product variant. Use the recordset returned by the GetVariantProperties method, or by the CreateVariant method, so that time stamps can be compared for error detection.

[C++] Use the SetVariantProperties method to modify the properties of a product variant. The pRSNewState parameter specifies a Recordset object that describes the new property values for this product variant. Use the recordset returned by the GetVariantProperties method, or by the CreateVariant method, so that time stamps can be compared for error detection.

If the fForceUpdate parameter is set to False, and the property values in the pRSNewState parameter have changed, the method will fail.

This method will update the value of multilingual properties for the current language of the catalog.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProduct.SetVariantProperties pRSNewState, fForceUpdate

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::GetVariantProperties

[Visual Basic] Product.GetVariantProperties


IProduct3 Properties [C++]

Product Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
AncestorCategories | _Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | BSTR | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | _Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | _Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | BSTR | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | BSTR | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | BSTR | Contains the unique ID for this product. This property is read-only.
RelatedCategories | _Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | _Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | VARIANT_BOOL | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | _Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.
[Visual Basic]
Property | Type | Description
AncestorCategories | Recordset | Contains a recordset of category names that exist anywhere above this product, and that directly or indirectly contain this product in the hierarchy. This property is read-only.
CatalogName | String | Contains the name of the catalog of which this Product object is a member. This property is read-only.
GetProductProperties | Recordset | Contains a recordset containing the property values for this product. This property is read-only.
ParentCategories | Recordset | Contains a recordset of categories that directly contain this product. This property is read-only.
PricingCategory | String | Contains the name of the pricing category for this product. This property is read/write.
PrimaryParent | String | Contains the name of the primary parent category for this product. This property is read/write.
ProductID | BSTR | Contains the unique identifier for this product This property is read-only.
RelatedCategories | Recordset | Contains a recordset that describes all of the categories that are related to this product. This property is read-only.
RelatedProducts | Recordset | Contains a recordset that describes all of the products that are related to this product. This property is read-only.
UseCategoryPricing | Boolean | Indicates whether the price is derived from the PrimaryParentCategory field. This property is read/write.
Variants | Recordset | Contains a recordset that describes all of the variants of this product, if any. This property is read-only.


IProduct3::get_AncestorCategories Property [C++]

Product.AncestorCategories Property [Visual Basic]

The AncestorCategories property is a read-only Recordset object that contains the names of categories that exist anywhere above this product in the hierarchy.

Definition

[C++]
HRESULT IProduct3::get_AncestorCategories(
  _Recordset** AncestorCategories
);
[Visual Basic]
Property AncestorCategories As Recordset

Parameters

AncestorCategories [C++]
[out, retval] The address of a pointer to a _Recordset object used to return the ancestor categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this property can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The AncestorCategories parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The AncestorCategories property contains valid data only if it was accessed successfully.

The AncestorCategories property is a Recordset object with a single 128-character field, called Name.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_ParentCategories

[Visual Basic] Product.ParentCategories


IProduct3::get_CatalogName Property [C++]

Product.CatalogName Property [Visual Basic]

The CatalogName property is a read-only String that contains the name of the catalog from which this product was retrieved.

Definition

[C++]
HRESULT IProduct3::get_CatalogName(
  BSTR* CatalogName
);
[Visual Basic]
Property CatalogName As String

Parameters

CatalogName [C++]
[out, retval] A BSTR used to return the catalog name.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Ran out of memory.

Remarks

[C++] The CatalogName parameter contains valid data only if the property was accessed successfully.

Products that are included in a virtual catalog appear to exist in two places in the Product Catalog System.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::get_GetProductProperties Property [C++]

Product.GetProductProperties Property [Visual Basic]

The GetProductProperties property is a read-only recordset that contains the properties of this Product object.

Definition

[C++]
HRESULT IProduct3::get_GetProductProperties(
  _Recordset** GetProductProperties
);
[Visual Basic]
Property GetProductProperties As Recordset

Parameters

GetProductProperties [C++]
[out, retval] The address of a pointer to a _Recordset object used to return the properties of this product.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this property can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The GetProductProperties parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The GetProductProperties property contains valid data only if it was accessed successfully.

[C++] The returned single-row recordset contains all the fields defined for the product definition, as well as all the common fields in the CatalogProduct Recordset. The recordset also contains the ProductID property of the catalog if the ProductID property is not a part of the product definition.

[Visual Basic] The returned single-row recordset contains all the fields defined for the product definition, as well as all the common fields in the CatalogProduct Recordset.

The recordset returned is updateable, but disconnected. To modify the product properties, pass this recordset to the SetProductProperties method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::SetProductProperties

[Visual Basic] Product.SetProductProperties


IProduct3::get_ParentCategories Property [C++]

Product.ParentCategories Property [Visual Basic]

The ParentCategories property is a read-only recordset that contains the names of categories that directly contain this product.

Definition

[C++]
HRESULT IProduct3::get_ParentCategories(
  _Recordset** ParentCategories
);
[Visual Basic]
Property ParentCategories As Recordset

Parameters

ParentCategories [C++]
[out, retval] A _Recordset object used to return the parent categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The ParentCategories parameter contains valid data only if the property was accessed successfully.

If the product is not contained in any categories, the returned recordset will be empty, and its EOF property will be set to VARIANT_TRUE.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
CategoryName | String Maximum of 128 characters | Name of the category containing this product.
DisplayName | String Maximum of 128 characters | Display name of the category.
FvirtualCatalog | bit | For a virtual catalog this field specifies if this link was inherited(value 0) or explicitly added (value 1). For a base catalog this field will always be 0.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_AncestorCategories

[Visual Basic] Product.AncestorCategories


IProduct3::get_PricingCategory, put_PricingCategory Property [C++]

Product.PricingCategory Property [Visual Basic]

The PricingCategory property is a read/write String that contains the name of the pricing category for this product.

Definition

[C++]

Get method:

HRESULT IProduct3::get_PricingCategory(
  BSTR* PricingCategory
);SET

Put method:

HRESULT IProduct3::put_PricingCategory(
  BSTR PricingCategory
);
[Visual Basic]
Property PricingCategory As String

Parameters

PricingCategory [C++]
[in] When putting the property, a BSTR that contains the pricing category.
[out, retval] When getting the property, a pointer to a BSTR used to return the pricing category.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this property can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_PRICING_CAT_PRICELESS | [C++] 0x8898002F [Visual Basic] &H8898002F | The category you specified has no list price. The list price of the category has to be set before using this for pricing.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The PricingCategory parameter contains valid data only if the property was accessed successfully.

Using a category as a Pricing category allows you to set the prices of multiple products by making a single change, rather than having to change the price for each product. Setting the Pricing category for a product family will also set the Pricing category for all the variants of the product family.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::get_PrimaryParent, put_PrimaryParent Property [C++]

Product.PrimaryParent Property [Visual Basic]

The PrimaryParent property is a read/write String that contains the primary parent category.

Definition

[C++]

Get method:

HRESULT IProduct3::get_PrimaryParent(
  BSTR* PrimaryParent
);

Put method:

HRESULT IProduct3::put_PrimaryParent(
  BSTR PrimaryParent
);
[Visual Basic]
Property PrimaryParent As String

Parameters

PrimaryParent [C++]
[in] When putting the property, a BSTR that contains the primary parent.
[out, retval] When getting the property, a BSTR used to return the primary parent.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &Hx8898001E | The product you specified doesn't exist.
E_CAT_PRIMARYPARENT_DOES_NOT_EXIST | [C++] 0x889800AC [Visual Basic] &H889800AC | The primary parent category that you specified does not exist
E_CAT_INVALID_RELATION | [C++] 0x88980039 [Visual Basic] &H88980039 | An invalid relation is specified. Self relations are not supported.
E_CAT_PRICING_CAT_PRICELESS | [C++] 0x8898002F [Visual Basic] &H8898002F | The category you specified has no list Price. The list price of the category has to be set before using this for pricing.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

Remarks

Products and categories can have multiple parent-child relationships. Specifying a primary parent for a product or category simplifies the hierarchy and clarifies the application of pricing rules.

Note

  • This property cannot be modified in a virtual catalog. Inherited hierarchy and relationship links cannot be removed or changed in inherited categories. To modify inherited relationships, use a Category object obtained from the base Catalog object. If the category being added as a primary parent is not a parent category, then it will also be added as a parent category for the product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::get_ProductID Property [C++]

Product.ProductID Property [Visual Basic]

The ProductID property is a read-only String that contains the unique ID for this product.

Definition

[C++]
HRESULT IProduct3::get_ProductID(
  BSTR* ProductID
);
[Visual Basic]
Property ProductID As String

Parameters

ProductID [C++]
[out, retval] The address of a BSTR used to return the product ID.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ProductID parameter contains valid data only if the property was accessed successfully.

The value of this property is a copy of the value of the IdentifyingProductProperty property of the catalog containing this product.

The value of this property will always be "ProductID" for a virtual catalog.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object


IProduct3::get_RelatedCategories Property [C++]

Product.RelatedCategories Property [Visual Basic]

The RelatedCategories property is a read-only Recordset object that contains the names of categories that are related to this product.

Definition

[C++]
HRESULT IProduct3::get_RelatedCategories(
  _Recordset** RelatedCategories
);
[Visual Basic]
Property RelatedCategories As Recordset

Parameters

RelatedCategories [C++]
[out, retval] A _Recordset object used to return the related categories.

[Visual Basic] None.

[C++]

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The RelatedCategories parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The RelatedCategories property contains valid data only if it was accessed successfully.

The returned recordset contains one column for each relationship present.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
CategoryName | String Maximum of 128 characters | Name of the category.
RelationshipName | String Maximum of 128 characters | Name of the relationship.
RelationshipDescription | String Maximum of 256 characters | Description of the relationship in the current language of the catalog.
TargetCatalog | String Maximum of 100 characters | Name of the catalog containing the related category.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_RelatedProducts

[Visual Basic] Product.RelatedProducts

[C++] IProduct3::AddRelationshipToCategory

[Visual Basic] Product.AddRelationshipToCategory

[C++] IProduct3::SetRelatedCategories

[Visual Basic] Product.SetRelatedCategories


IProduct3::get_RelatedProducts Property [C++]

Product.RelatedProducts Property [Visual Basic]

The RelatedProducts property is a read-only Recordset object that contains the names of products that are related to this product.

Definition

[C++]
HRESULT IProduct3::get_RelatedProducts(
  _Recordset** RelatedProducts
);
[Visual Basic]
Property RelatedProducts As Recordset

Parameters

RelatedProducts [C++]
[out, retval] A _Recordset object used to return the related products.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The RelatedProducts parameter contains valid data only if the property was accessed successfully.

[Visual Basic] The RelatedProducts property contains valid data only if it was accessed successfully.

The recordset returned contains one row for each relationship present.

The returned recordset contains the fields listed in the following table.

Field | Data Type | Description
ProductID | String Maximum of 128 characters | The unique product identifier in the target catalog.
RelationshipName | String Maximum of 128 characters | Name of the relationship.
RelationshipDescription | String Maximum of 128 characters | Description of the relationship in the current language of the catalog.
TargetCatalog | String Maximum of 100 characters | Name of the catalog containing the related product.

Important

  • The ProductID field in the returned recordset is not same as the <defined ProductID field> used in this recordset in Commerce Server 2000. If you are upgrading a Commerce Server 2000 application you may need to modify your code to accept a String data type.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::AddRelatationshipToProduct

[Visual Basic] Product.AddRelatationshipToProduct

[C++] IProduct3::SetRelatedProducts

[Visual Basic] Product.SetRelatedProducts


IProduct3::get_UseCategoryPricing, put_UseCategoryPricing Property [C++]

Product.UseCategoryPricing Property [Visual Basic]

The UseCategoryPricing property is a read/write Boolean that determines whether the price of the product will be determined from the PrimaryParent property of the product.

Definition

[C++]

Get method:

HRESULT IProduct3::get_UseCategoryPricing(
 VARIANT_BOOL* UseCategoryPricing
);

Put method:

HRESULT IProduct3::put_UseCategoryPricing(
 VARIANT_BOOL UseCategoryPricing
);
[Visual Basic]
Property UseCategoryPricing As Boolean

Parameters

UseCategoryPricing [C++]
[in] When putting the property, a VARIANT_BOOL that specifies whether to use category pricing.
[out, retval] When getting the property, a pointer to a VARIANT_BOOL used to return the value of the UseCategoryPricing property. See the Remarks section for the effects of this property.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALID_PRIMARY_PARENT | [C++] 0x889800DA [Visual Basic] &H889800DA | To use category pricing for this product, you should first set a primary parent category.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_PRICING_CAT_PRICELESS | [C++] 0x8898002F [Visual Basic] &H8898002F | The category you specified has no list price. The list price of the category has to be set before using this for pricing.

Remarks

A value of True indicates that the price of the product will be determined from the PrimaryParent category of the product. A value of False indicates that the price of the product will not be determined from the PrimaryParent category.

Note

  • If this product is inherited by a virtual catalog, the PrimaryParent property cannot be set from the virtual catalog.

[C++] If the property is set to True the PricingCategory property will be set to and become synonymous with the PrimaryParent property.

[Visual Basic] If the property is set to True the PricingCategory property will be set to and become synonymous with the PrimaryParent property.

See Also

[C++] Product Object

[Visual Basic] Product Object

[C++] IProduct3::get_PricingCategory

[Visual Basic] Product.PricingCategory

[C++] IProduct3::get_PrimaryParent

[Visual Basic] Product.PrimaryParent


IProduct3::get_Variants Property [C++]

Product.Variants Property [Visual Basic]

The Variants property is a read-only recordset that describes all of the variants of this product.

Definition

[C++]
HRESULT IProduct3::get_Variants(
  VARIANT strPropertyToSortOn,
  _Recordset** Variants
);
[Visual Basic]
Property Variants(
  Optional strPropertyToSortOn As Variant
) As Recordset

Parameters

strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which the returned Recordset object is to be sorted. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property on which the returned Recordset object is to be sorted. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
Variants [C++]
[out, retval] A pointer to a _Recordset object used to return the variants.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

Remarks

[C++] The Variants parameter contains valid data only if the property was accessed successfully.

The returned recordset will contain one row for each variant of this product. If this product has no variants, the returned recordset will be empty, and its EOF property will be set to VARIANT_TRUE.

The fields of the returned recordset are determined by the properties associated with the definition on which it is based. Both the product properties and the variant properties are returned.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET rsVariants = myProduct.Variants("Size")

See Also

[C++] Product Object

[Visual Basic] Product Object


ProductCatalog Object [C++]

ProductCatalog Object [Visual Basic]

Use this object to alter catalogs and to modify catalog contents. The ProductCatalog object is the primary object for working with catalogs in the Product Catalog System.

ProgID: | Dependent (See Remarks for more information)
COM Class Name: | ProductCatalog
Type Library Name: | Microsoft Commerce 2002 Catalog Type Library
DLL Name: | Catalog.dll
Threading Model: | Both
[C++]
COM Interface Name: | IProductCatalog3
Interface ID Constant: | IID_IProductCatalog3
Header File: | Catalog.h, mspu_guids.h
[C++]

In C++, use the IProductCatalog3 interface to access the properties and methods of the ProductCatalog object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
AddLanguage | Adds support for an additional language.
AddPriceRule | Adds a price rule for a specific product or category to a virtual catalog.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | This method is obsolete.
CreateProduct | Creates a new product or product family based on the specified product definition.
DeleteCategory | Deletes the specified category from this catalog.
DeleteCustomCatalog | This method is obsolete.
DeleteProduct | Deletes the specified product from this catalog.
GenerateCustomCatalog | This method is obsolete.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | This method is obsolete.
GetCustomCatalogAttributes | This method is obsolete.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependant on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Use this method to rebuild virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | This method is obsolete.
SetCustomCatalogAttributes | This method is obsolete.
[Visual Basic]
Method | Description
AddLanguage | Adds support for an additional language.
AddPriceRule | Adds a price rule for a specific product or category to a virtual catalog.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | This method is obsolete.
CreateProduct | Creates a new product based on the specified product definition.
DeleteCategory | Deletes the specified category from this catalog.
DeleteCustomCatalog | This method is obsolete.
DeleteProduct | Deletes the specified product from this catalog.
GenerateCustomCatalog | This method is obsolete.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | This method is obsolete.
GetCustomCatalogAttributes | This method is obsolete.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependant on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Use this method to rebuild virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | This method is obsolete.
SetCustomCatalogAttributes | This method is obsolete.

Properties

[C++]
Property | Type | Description
CatalogName | BSTR | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | BSTR | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | BSTR | Contains the name of the column used to uniquely identify product variants. This property is read-only.
Language | BSTR | Contains the active language. This property is read/write.
RootCategories | _Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | _Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | _Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.
[Visual Basic]
Property | Type | Description
CatalogName | String | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | String | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | String | Contains the name of the column used to uniquely identify product variants. This property is read-only.
Language | String | Contains the active language. This property is read/write.
RootCategories | Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.

Remarks

[C++]

Many of the methods in ProductCatalog use recordsets to return data. These methods will often use the CatalogProduct recordset. For more information, see CatalogProduct recordset.

The ProductCatalog object is a dependent object. Obtain a pointer to the IProductCatalog interface by calling one of the following methods:

  • ICatalogManager::GetCatalog
  • ICatalogManager::CreateCatalog
[Visual Basic]

Many of the methods in ProductCatalog use recordsets to return data. These methods will often use the CatalogProduct recordset. For more information, see CatalogProduct recordset.

The ProductCatalog object is a dependent object. Obtain a reference to it by calling one of the following methods:

  • CatalogManager.GetCatalog
  • CatalogManager.CreateCatalog


IProductCatalog3 Methods [C++]

ProductCatalog Methods [Visual Basic]

Methods

[C++]
Method | Description
AddLanguage | Adds support for an additional language.
AddPriceRule | Adds a price rule for a specific product or category to a virtual catalog.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | This method is obsolete.
CreateProduct | Creates a new product or product family based on the specified product definition.
DeleteCategory | Deletes the specified category from this catalog.
DeleteCustomCatalog | This method is obsolete.
DeleteProduct | Deletes the specified product from this catalog.
GenerateCustomCatalog | This method is obsolete.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | This method is obsolete.
GetCustomCatalogAttributes | This method is obsolete.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependant on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Use this method to rebuild virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | This method is obsolete.
SetCustomCatalogAttributes | This method is obsolete.
[Visual Basic]
Method | Description
AddLanguage | Adds support for an additional language.
AddPriceRule | Adds a price rule for a specific product or category to a virtual catalog.
AddSpecificationSearchClause | Adds a search constraint to the search context when performing a specification search of this catalog.
AddVirtualCatalogRule | Adds an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current catalog.
BeginSpecificationSearch | Initiates a specification search of this catalog.
CreateCategory | Creates a new category based on the specified category definition.
CreateCustomCatalog | This method is obsolete.
CreateProduct | Creates a new product based on the specified product definition.
DeleteCategory | Deletes the specified category from this catalog.
DeleteCustomCatalog | This method is obsolete.
DeleteProduct | Deletes the specified product from this catalog.
GenerateCustomCatalog | This method is obsolete.
GetCatalogAttributes | Returns the attributes of this catalog. The returned recordset is disconnected and updateable.
GetCategory | Returns the specified category.
GetCategoryCustomPrice | This method is obsolete.
GetCustomCatalogAttributes | This method is obsolete.
GetDependentCatalogs | Returns a recordset with a single field containing all of the virtual catalogs that are dependant on this catalog.
GetLanguages | Returns a recordset with a single field containing all of the supported languages.
GetPriceRules | Returns a recordset containing the specified price rules.
GetProduct | Returns the specified product.
GetProductVariant | Returns a recordset with a single row containing all of the properties for the specified product variant.
GetSpecificationSearchClauses | Returns a recordset with a single field containing all of the search clauses for a specification search.
GetVirtualCatalogRules | Returns a recordset containing the specified virtual catalog rules.
GuaranteedSpecificationSearch | Performs a specification search in which search constraints are removed until a match is found.
PerformSpecificationSearch | Performs a specification search of this catalog using the specified search context.
Purge | Removes deleted products from the catalog table.
RebuildVirtualCatalog | Use this method to rebuild virtual catalogs.
RegenerateFreeTextSearchIndex | Updates the free text search index for this catalog.
RemoveLanguage | Removes the specified language from this catalog.
RemovePriceRule | Removes the specified price rule.
RemoveSpecificationSearchClause | Removes the last search constraint from the specified search context.
RemoveVirtualCatalogRule | Removes the specified virtual catalog rule.
SetCatalogAttributes | Sets attributes for this catalog.
SetCategoryCustomPrice | This method is obsolete.
SetCustomCatalogAttributes | This method is obsolete.


IProductCatalog3::AddLanguage Method [C++]

ProductCatalog.AddLanguage Method [Visual Basic]

Use this method to add support for an additional language.

Definition

[C++]
HRESULT IProductCatalog3::AddLanguage(
  BSTR strLanguage
);
[Visual Basic]
Sub AddLanguage(
  strLanguage As String
)

Parameters

strLanguage [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name to be added. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLanguage [Visual Basic]
A String that that contains the culture name to be added. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009E [Visual Basic] &H8898009E | The value you specified for the Language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_LANGUAGE_ALREADY_EXISTS | [C++] 0x889800A0 [Visual Basic] &H889800A0 | The language you specified already exists in the catalog.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method adds the specified language to the list of languages supported by the catalog. It will use default values if default values are specified for the property and language.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.AddLanguage("FRA")

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::AddPriceRule Method [C++]

ProductCatalog.AddPriceRule Method [Visual Basic]

Use this method to add a price rule for a specific product or category to a virtual catalog. This method applies only to virtual catalogs.

Definition

[C++]
HRESULT IProductCatalog3::AddPriceRule(
  CatalogCustomPriceEnum eCustomPricingRule,
  double fpCustomPrice,
  VARIANT vrProductIDOrCategoryName,
  VARIANT vrVariantID,
  VARIANT_BOOL fCategory
);
[Visual Basic]
Sub AddPriceRule(
  eCustomPricingRule As CatalogCustomPriceEnum,
  fpCustomPrice As Double,
  vrProductIDOrCategoryName As Variant,
  Optional vrVariantID As Variant,
  Optional fCategory As Boolean
)

Parameters

eCustomPricingRule [C++]
[in] A CatalogCustomPriceEnum enumeration that specifies the type of pricing rule. See the Remarks section for valid values.
eCustomPricingRule [Visual Basic]
A CatalogCustomPriceEnum enumeration that specifies the type of pricing rule. See the Remarks section for valid values.
fpCustomPrice [C++]
[in] A double (8-byte floating point number) that contains the amount of the price adjustment.
fpCustomPrice [Visual Basic]
A Double that contains the amount of the price adjustment.
vrProductIDOrCategoryName [C++]
[in] A VARIANT that contains the product ID or category name to which the rule applies.
vrProductIDOrCategoryName [Visual Basic]
A Variant that contains the product ID or category name to which the rule applies.
vrVariantID [C++]
[in, optional] A VARIANT that contains the variant ID, if the rule is specific to a variant.
vrVariantID [Visual Basic]
A Variant that contains the variant ID, if the rule is specific to a variant.
fCategory [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product.
fCategory [Visual Basic]
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True indicates a category. A value of False indicates a product. The default value is False (0).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VC_RULE_PARAM | [C++] 0x88980103 [Visual Basic] &H88980103 | The ProductID or CategoryName is invalid. The ProductID and CategoryName should be passed using the ProductID(CatalogName) or CategoryName(CatalogName) format.
E_CAT_VC_INVALID_ITEM | [C++] 0x889800FD [Visual Basic] &H889800FD | The specified product/category/variant could not be found in the base catalog.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the fCategory parameter is True and the vrProductIDOrCategoryName parameter is an empty string then the rule applies to the entire catalog.

Categories, products, and variant products specified in the parameters of this method must already be included in the virtual catalog.

The vrVariantID parameter is only valid for products. If it is supplied, it indicates that the rule should be applied for that variant only.

The following table shows the values of the CatalogCustomPriceEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscNoCustomPrice | 0 | The custom price is the same as the base price.
cscPercentageMultiplier | 1 | The custom price = base price + (base price * (pfpCustomPriceAmount /100)) pfpCustomPriceAmount can be positive or negative
cscAddFixedAmount | 2 | The custom price is the value in the parameter pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the value in the parameter pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.AddPriceRule(eCustomPricingRule, fpCustomPrice, vrProductIDOrCategoryName, vrVariantID, fCategory)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::AddVirtualCatalogRule

[Visual Basic] ProductCatalog.AddVirtualCatalogRule


IProductCatalog3::AddSpecificationSearchClause Method [C++]

ProductCatalog.AddSpecificationSearchClause Method [Visual Basic]

Use this method to add constraints to a specification search of this catalog.

Definition

[C++]
HRESULT IProductCatalog3::AddSpecificationSearchClause(
 BSTR strClause,
 VARIANT* pstrSearchHandle
);
[Visual Basic]
Sub AddSpecificationSearchClause(
 strClause As String,
 pstrSearchHandle As Variant
)

Parameters

strClause [C++]
[in] A BSTR that contains the clause to be added to the specified specification search.
strClause [Visual Basic]
A String that contains the clause to be added to the specified specification search.
pstrSearchHandle [C++]
[in] A VARIANT that contains the state of the specification search to which the clause will be added.
[out] A VARIANT used to return the updated state of the specification search.
pstrSearchHandle [Visual Basic]
A Variant that contains the state of the specification search to which the clause will be added. This variant is also used to return the updated state of the specification search.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C++] 0x8898010D [Visual Basic] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2).

Remarks

[C++] Upon successful completion, the pstrSearchHandle parameter will contain the name of the updated specification search.

The specification clause contained in the strClause parameter will be appended to the existing clauses and sent to SQL Server without any changes when the specification search is performed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.AddSpecificationSearchClause strClause, pstrSearchHandle

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::BeginSpecificationSearch

[Visual Basic] ProductCatalog.BeginSpecificationSearch

[C++] IProductCatalog3::GetSpecificationSearchClauses

[Visual Basic] ProductCatalog.GetSpecificationSearchClauses

[C++] IProductCatalog3::PerformSpecificationSearch

[Visual Basic] ProductCatalog.PerformSpecificationSearch


IProductCatalog3::AddVirtualCatalogRule Method [C++]

ProductCatalog.AddVirtualCatalogRule Method [Visual Basic]

Use this method to add an inclusion or exclusion rule for a specific product, category, variant, or catalog to the current virtual catalog. This method applies only to virtual catalogs.

Definition

[C++]
HRESULT IProductCatalog3::AddVirtualCatalogRule(
  BSTR strCatalogName,
  VARIANT vrProductIDOrCategoryName,
  VARIANT vrVariantID,
  VARIANT_BOOL fCategory,
  VARIANT_BOOL fExclusion
);
[Visual Basic]
Sub AddVirtualCatalogRule(
  strCatalogName As String,
  vrProductIDOrCategoryName As Variant,
  Optional vrVariantID As Variant,
  Optional fCategory As Boolean,
  Optional fExclusion As Boolean
[in, optional] VARIANT vrVariantID, )

Parameters

strCatalogName [C++]
[in] A BSTR that contains the catalog name.
strCatalogName [Visual Basic]
A String that contains the catalog name.
vrProductIDOrCategoryName [C++]
[in] A VARIANT that contains the product ID or category name to which the rule applies.
vrProductIDOrCategoryName [Visual Basic]
A Variant that contains the product ID or category name to which the rule applies.
vrVariantID [C++]
[in, optional] A VARIANT that contains the variant ID to which the rule applies.
vrVariantID [Visual Basic]
A Variant that contains the variant ID to which the rule applies.
fCategory [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product.
fCategory [Visual Basic]
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).
fExclusion [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether this is an inclusion or exclusion rule. A value of True (-1) indicates an exclusion rule. A value of False (0) indicates an inclusion rule.
fExclusion [Visual Basic]
A Boolean that specifies whether this is an inclusion or exclusion rule. A value of True indicates an exclusion rule. A value of False indicates an inclusion rule. The default value is False.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &H88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C++] 0x889800FD [Visual Basic] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_TOO_MANY_BASECATALOGS | [C++] 0x88980106 [Visual Basic] &H88980106 | The limit (84) on the maximum number of base catalogs that can be included in a virtual catalog has been exceeded.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the fCategory parameter is True and the vrProductIDOrCategoryName parameter is an empty string, then the entire catalog will be included.

Exclusion rules always override inclusion rules. If you exclude a category you cannot include any category or product contained within that category. Conversely, you can exclude any category or product contained within a category you have included.

If a value is provided for the vrVariantID parameter, then the rule will apply only to that variant of the product. If any variant of a product is included, then the product will be implicitly included. It is not possible to have variant without a parent product.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' You have a "Shoe" catalog.
' It contains "Mens","Womens", and "Kids" categories.
' Each category contains categories for dress, casual, and sports.
'   For example "Mens sports"

' The following rules result in including men's and women's categories
' with their dress and casual subcategories.
' This could also be done using inclusion rules only.

myVCatalog.AddVirtualCatalogRule("Shoe", "Mens",, True, False)
myVCatalog.AddVirtualCatalogRule("Shoe", "Womens",, True, False)
myVCatalog.AddVirtualCatalogRule("Shoe", "Mens sports",, True, True)
myVCatalog.AddVirtualCatalogRule("Shoe", "Womens sports",, True, True)

'The following rules result in including the full "Mens" and "Womens" categories by including the catalog and excluding the "Kids" category.

myVCatalog.AddVirtualCatalogRule("Shoe", "",, True, False)
myVCatalog.AddVirtualCatalogRule("Shoe", "Kids",, True, True)

' If you then tried to include the Kids dress category as in:
'   AddVirtualCatalogRule("Shoe", "Kids dress",, True, False)
'   the method would return an error.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::BeginSpecificationSearch Method [C++]

ProductCatalog.BeginSpecificationSearch Method [Visual Basic]

Use this method to initialize a specification search of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::BeginSpecificationSearch(
  BSTR strCategoryName,
  VARIANT* pRSInitialPropValuesList,
  VARIANT* plTotalRecordsAvailable,
  BSTR* pstrSearchHandle
);
[Visual Basic]
Function BeginSpecificationSearch(
  strCategoryName As String,
  Optional pRSInitialPropValuesList As Variant,
  Optional plTotalRecordsAvailable As Variant
) As String

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category in which to search.
strCategoryName [Visual Basic]
A String that contains the name of the category in which to search.
pRSInitialPropValuesList [C++]
[out, optional] A pointer to a VARIANT used to return the recordset of initial property values.
pRSInitialPropValuesList [Visual Basic]
A Variant used to return the recordset of initial property values.
plTotalRecordsAvailable [C++]
[out, optional] A pointer to a VARIANT used to return the total records available.
plTotalRecordsAvailable [Visual Basic]
A Variant used to return the total records available.
pstrSearchHandle [C++]
[out, retval] A BSTR used to return the state of the specification search.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the state of this specification search.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid.
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011D [Visual Basic] &H8898011D | The properties to return that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C++] 0x88980049 [Visual Basic] &H88980049 | The category you specified does not exists or is not marked as Specification searchable.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pRSInitialPropValuesList and pstrSearchHandle parameters contain valid data only if the method was accessed successfully.

The optional parameter pRSInitialPropValuesList is a single row recordset. The returned recordset contains one field for each searchable property for the products under the specified category. Each field contains a SAFEARRAY. Each SAFEARRAY contains a set of all the distinct values found in all the products under that category. Only the properties that are marked as searchable are returned in the recordset.

If all the searchable properties contain NULL values then the pRSInitialPropValuesList parameter will be set to NULL and the plTotalRecordsAvailable parameter will be zero (0).

A category can be marked as searchable by setting the IsSearchable property to True.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'
strSearchHandle = myProductCatalog.BeginSpecificationSearch(strCategoryName, pRSInitialPropValuesList)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::AddSpecificationSearchClause

[Visual Basic] ProductCatalog.AddSpecificationSearchClause

[C++] IProductCatalog3::GetSpecificationSearchClauses

[Visual Basic] ProductCatalog.GetSpecificationSearchClauses

[C++] IProductCatalog3::PerformSpecificationSearch

[Visual Basic] ProductCatalog.PerformSpecificationSearch


IProductCatalog3::CreateCategory Method [C++]

ProductCatalog.CreateCategory Method [Visual Basic]

Use this method to create a new category.

Definition

[C++]
HRESULT IProductCatalog3::CreateCategory(
 BSTR strDefinitionName,
 BSTR strCategoryName,
 VARIANT strParentCategoryName,
 VARIANT fIsSpecificationSearchable,
 ICategory3** ppCategory
);
[Visual Basic]
Function CreateCategory(
 strDefinitioName As String,
 strCategoryName As String,
 Optional strParentCategoryName As Variant,
 Optional fIsSpecificationSearchable As Variant
) As Category

Parameters

strDefinitioName [C++]
[in] A BSTR that contains the name of the category definition on which the category is based.
strDefinitioName [Visual Basic]
A String that contains the name of the category definition on which the category is based.
strCategoryName [C++]
[in] A BSTR that contains the name of the category to be created.
strCategoryName [Visual Basic]
A String that contains the name of the category to be created.
strParentCategoryName [C++]
[in, optional] A VARIANT that contains the name of the category that will be a parent to this new category, if any.
strParentCategoryName [Visual Basic]
A Variant that contains the name of the category that will be a parent to this new category, if any.
IsSpecificationSearchable [C++]
[in, optional] A VARIANT that determines whether or not this category is to be specification searchable.
fIsSpecificationSearchable [Visual Basic]
A Variant that determines whether or not this category is to be specification searchable.
ppCategory [C++]
[out, retval] A pointer to a Category object used to return the newly created category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the newly created Category object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid..
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800EA [Visual Basic] &H889800EA | The definition name that you specified is invalid. definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000B [Visual Basic] &H8898000B | The definition you specified does not exist.
E_CAT_PRODUCT_DEFN_FOR_CATEGORY | [C++] 0x8898004B [Visual Basic] &H8898004B | The definition name that you specified is a product definition. This definition cannot be used to create the category.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_CATEGORY_EXISTS | [C++] 0x8898001D [Visual Basic] &H8898001D | The category you specified already exists.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppCategory parameter contains valid data only if the method was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET oMyCategory = myProductCatalog.CreateCategory("BasicCategoryDefinition", "T-Shirts", "Apparel", TRUE)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::GetCategory

[Visual Basic] ProductCatalog.GetCategory

[C++] IProductCatalog3::DeleteCategory

[Visual Basic] ProductCatalog.DeleteCategory


IProductCatalog3::CreateCustomCatalog Method [C++]

ProductCatalog.CreateCustomCatalog Method [Visual Basic]

The CreateCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::DeleteCustomCatalog

[Visual Basic] ProductCatalog.DeleteCustomCatalog

[C++] IProductCatalog3::GenerateCustomCatalog

[Visual Basic] ProductCatalog.GenerateCustomCatalog

[C++] IProductCatalog3::SetCategoryCustomPrice

[Visual Basic] ProductCatalog.SetCategoryCustomPrice


IProductCatalog3::CreateProduct Method [C++]

ProductCatalog.CreateProduct Method [Visual Basic]

Use this method to create a new product within the catalog according to the specified parameters. This method cannot be used with virtual catalogs.

Definition

[C++]
HRESULT IProductCatalog3::CreateProduct(
 BSTR strDefinitionName,
 VARIANT varProductID,
 CURRENCY cyListPrice,
 VARIANT strParentCategoryName,
 IProduct3** ppProduct
);
[Visual Basic]
Function CreateProduct(
 strDefinitionName As String,
 varProductID As Variant,
 cyListPrice As Currency,
 Optional strParentCategoryName As Variant
) As Product

Parameters

strDefinitionName [C++]
[in] A BSTR that contains the name of the product definition for the product.
strDefinitionName [Visual Basic]
A String that contains the name of the product definition for the product.
varProductID [C++]
[in] A VARIANT that contains the unique product ID for the product to be created. The data type must match the property used to uniquely identify products in this catalog.
varProductID [Visual Basic]
A Variant that contains the unique product ID for the product to be created. The data type must match the property used to uniquely identify products in this catalog.
cyListPrice [C++]
[in] A CURRENCY object that contains the list price of the product to be created.
cyListPrice [Visual Basic]
A Currency object that contains the list price of the product to be created.
strParentCategoryName [C++]
[in, optional] A VARIANT that contains the name of the category to be designated as the parent category of the product to be created.
strParentCategoryName [Visual Basic]
A Variant that contains the name of the category to be designated as the parent category of the product to be created.
ppProduct [C++]
[out, retval] A pointer to a Product object used to return the properties of the newly created product.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the Product object that was created.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &Hx889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid..
E_CAT_INVALID_DEFINITION_LENGTH | [C++] 0x889800EA [Visual Basic] &Hx889800EA | The definition name that you specified is invalid. definition names should be between 1 and 128 characters in length.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &Hx8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &Hx889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &Hx88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_DEFINITION_DOESNT_EXIST | [C++] 0x8898000B [Visual Basic] &H8898000B | The definition you specified does not exist.
E_CAT_CATEGORY_DEFN_FOR_PRODUCT | [C++] 0x8898004A [Visual Basic] &H8898004A | The definition name that you specified is a category definition. This definition cannot be used to create the product.
E_CAT_INVALID_PRODUCT_DEFINITION | [C++] 0x8898005F [Visual Basic] &Hx8898005F | The product definition you specified contains a variant property that is being used as the ProductID for this catalog.
E_CAT_PRODUCT_EXISTS | [C++] 0x8898001B [Visual Basic] &Hx8898001B | The product you specified already exists.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &Hx8898001C | The category you specified does not exist.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppProduct parameter contains valid data only if the method was accessed successfully.

A product family is a product that has variants.

The properties of the definition on which a new product is based will determine whether the product being created is a single product or a product family. If the definition used to create the product has variant properties, the newly created product will be a product family.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET oMyNewProduct = myProductCatalog.CreateProduct("BasicProduct", "SKU3004", cyListPrice, "Apparel")

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::DeleteProduct

[Visual Basic] ProductCatalog.DeleteProduct

[C++] IProductCatalog3::GetProduct

[Visual Basic] ProductCatalog.GetProduct


IProductCatalog3::DeleteCategory Method [C++]

ProductCatalog.DeleteCategory Method [Visual Basic]

Use this method to delete a category from the Product Catalog System.

Definition

[C++]
HRESULT IProductCatalog3::DeleteCategory(
 BSTR strCategoryName
);
[Visual Basic]
Sub DeleteCategory(
 strCategoryName As String
)

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be deleted.
strCategoryName [Visual Basic]
A String that contains the name of the category to be deleted.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_CAT_INVALID_CATEG_LENGTH | [C++] 0x88980047 [Visual Basic] &H88980047 | The category name you specified is either blank or exceeds the maximum allowed length of 128 characters or cannot be converted to a string.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_CANT_DELETE_INCLUDED_CATEGORY | [C++] 0x88980104 [Visual Basic] &H88980104 | The DeleteCategory method cannot be called for a virtual catalog's included categories.
E_CAT_CATEGORY_DOESNT_EXIST | [C++] 0x8898001C [Visual Basic] &H8898001C | The category you specified doesn't exist.
E_CAT_VC_ERROR_IN_PROPAGATING_BC_CHANGES | [C++] 0x88980101 [Visual Basic] &H88980101 | There was an error in propagating the base catalog changes to the dependent virtual catalogs

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Any products or categories that existed in the deleted category, but not in another category, will be orphaned. Categories will become root categories and products will become root products. For example: CategoryA and CategoryB are child categories of CategoryX. CategoryA is also a child of CategoryY. When CategoryX is deleted, CategoryB will become a root category, but CategoryA will not.

You cannot delete an inherited category from a virtual catalog. The following error will be returned: E_CAT_VC_CANT_DELETE_INCLUDED_CATEGORY "The DeleteCategory method cannot be called for a Virtual Catalog's included categories."

[Visual Basic] Deleted categories, like deleted products, are moved to the DeletedProducts table until the catalog is purged.

[C++] Deleted categories, like deleted products, are moved to the DeletedProducts table until the catalog is purged.

If a category is deleted from a base catalog that is included in a virtual catalog, it is not removed from the virtual catalog until the next time the virtual catalog and pricing rules are evaluated.

When a category in a base catalog is deleted and it is included in a virtual catalog, the virtual catalog is marked as dirty and will be updated the next time it is rebuilt.

[Visual Basic]

Example

myProductCatalog.DeleteCategory "Apparel"

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_RootCategories

[Visual Basic] ProductCatalog.RootCategories

[C++] IProductCatalog3::CreateCategory

[Visual Basic] ProductCatalog.CreateCategory

[C++] IProductCatalog3::GetCategory

[Visual Basic] ProductCatalog.GetCategory


IProductCatalog3::DeleteCustomCatalog Method [C++]

ProductCatalog.DeleteCustomCatalog Method [Visual Basic]

The DeleteCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateCustomCatalog

[Visual Basic] ProductCatalog.CreateCustomCatalog

[C++] IProductCatalog3::GenerateCustomCatalog

[Visual Basic] ProductCatalog.GenerateCustomCatalog


IProductCatalog3::DeleteProduct Method [C++]

ProductCatalog.DeleteProduct Method [Visual Basic]

Use this method to delete a product from the Product Catalog System. This method cannot be used with a virtual catalog.

Definition

[C++]
HRESULT IProductCatalog3::DeleteProduct(
 VARIANT varProductID
);
[Visual Basic]
Sub DeleteProduct(
 varProductID As Variant
)

Parameters

varProductID [C++]
[in] A VARIANT that contains the unique identifier of the product to be deleted.
varProductID [Visual Basic]
A Variant that contains the unique identifier of the product to be deleted.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_PRODUCT_DOESNT_EXIST | [C++] 0x8898001E [Visual Basic] &H8898001E | The product you specified doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method moves the product data from catalog tables to the deleted product table in the SQL Server database. The Product object caches information for improved performance. Because of this cache, the CatalogName and ProductID methods of the Product object will continue to return the old values after the DeleteProduct method has been called. The Variants, ParentCategories, AncestorCategories, RelatedCategories, and RelatedProducts properties will return an empty recordset and no error message.

Caution

  • Deleting a product with variants also deletes all of the variants.
[Visual Basic]

Example

myProductCatalog.DeleteProduct 654321

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateProduct

[Visual Basic] ProductCatalog.CreateProduct

[C++] IProductCatalog3::GetProduct

[Visual Basic] ProductCatalog.GetProduct


IProductCatalog3::GenerateCustomCatalog Method [C++]

ProductCatalog.GenerateCustomCatalog Method [Visual Basic]

The GenerateCustomCatalog method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateCustomCatalog

[Visual Basic] ProductCatalog.CreateCustomCatalog

[C++] IProductCatalog3::DeleteCustomCatalog

[Visual Basic] ProductCatalog.DeleteCustomCatalog

[C++] IProductCatalog3::SetCategoryCustomPrice

[Visual Basic] ProductCatalog.SetCategoryCustomPrice


IProductCatalog3::GetCatalogAttributes Method [C++]

ProductCatalog.GetCatalogAttributes Method [Visual Basic]

Use this method to retrieve the attributes of this catalog. The returned recordset is disconnected and updateable.

Definition

[C++]
HRESULT IProductCatalog3::GetCatalogAttributes(
 _Recordset** ppRSCatalogAttributes
);
[Visual Basic]
Function GetCatalogAttributes() As _Recordset

Parameters

ppRSCatalogAttributes [C++]
[out, retval] A pointer to a Recordset used to return the attributes of this catalog.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the attributes of this catalog.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[C++] The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.

Remarks

[C++] The ppRSCatalogAttributes parameter contains valid data only if the method was accessed successfully.

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
CatalogName | String 128 characters | The name of the catalog.
Locale | Integer | None
StartDate | Datetime | None
End Date | Datetime | None
VariantID | String 128 characters | The field name that uniquely identifies variants.
ProductID | String 128 characters | The field name that uniquely identifies products.
Currency | String 128 characters | None
WeightMeasure | String 128 characters | None
TimeStamp | timestamp | None
CatalogID | Integer | None
CustomCatalog | Bit | AReserved for future use.
FreeTextIndexCreated | DateTime | None
ProductTableUpdated | DateTime | None
FullTextCatalog | String 128 characters | The SQL full-text catalog associated with this catalog.
DefaultLanguage | String 10 characters | The default language for this catalog.
ReportingLanguage | String 10 characters | The reporting language for this catalog.
IsVirtualCatalog | Boolean | A flag indicating whether this is a virtual catalog. True indicates a virtual catalog.
VirtualCatalogStatus | SmallInt | Reserved for future use.
<UserDefinedAttributes> |  |
DisplayName | String 128 characters | The DisplayName for the current language of this catalog.
DisplayName_<Language> | String 128 characters | One field for each language supported by this catalog.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET rsMyCatAttribs = myProductCatalog.GetCatalogAttributes

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::SetCatalogAttributes

[Visual Basic] ProductCatalog.SetCatalogAttributes


IProductCatalog3::GetCategory Method [C++]

ProductCatalog.GetCategory Method [Visual Basic]

Use this method to retrieve the specified category from a catalog.

Definition

[C++]
HRESULT IProductCatalog3::GetCategory(
 BSTR strCategoryName,
 ICategory3** ppCategory
);
[Visual Basic]
Function GetCategory(
 strCategoryName As String
) As Category

Parameters

strCategoryName [C++]
[in] A BSTR that contains the name of the category to be returned.
strCategoryName [Visual Basic]
A String that contains the name of the category to be returned.
ppCategory [C++]
[out, retval] A pointer to a Category object used to return the specified category.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the Category object specified.

Error Values

[C++] This method returns S_OK (0x00000000) or S_FALSE (&H00000001) to indicate success and standard COM HRESULT error values, to indicate failure. This method may succeed and yet not return a valid output parameter. The output parameter(s) will be invalid if either and error value or S_FALSE is returned. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. This method may succeed and yet return a property or object that is Nothing due to a syntax error, such as requesting a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
S_FALSE | 1 | The category does not exist

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppCategory parameter contains valid data only if the method was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET oMyCategory = myProductCatalog.GetCategory "Apparel"

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateCategory

[Visual Basic] ProductCatalog.CreateCategory

[C++] IProductCatalog3::DeleteCategory

[Visual Basic] ProductCatalog.DeleteCategory


IProductCatalog3::GetCategoryCustomPrice Method [C++]

ProductCatalog.GetCategoryCustomPrice Method [Visual Basic]

The GetCategoryCustomPrice method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::SetCategoryCustomPrice

[Visual Basic] ProductCatalog.SetCategoryCustomPrice


IProductCatalog3::GetCustomCatalogAttributes Method [C++]

ProductCatalog.GetCustomCatalogAttributes Method [Visual Basic]

The GetCustomCatalogAttributes method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateCustomCatalog

[Visual Basic] ProductCatalog.CreateCustomCatalog

[C++] IProductCatalog3::SetCustomCatalogAttributes

[Visual Basic] ProductCatalog.SetCustomCatalogAttributes


IProductCatalog3::GetDependentCatalogs Method [C++]

ProductCatalog.GetDependentCatalogs Method [Visual Basic]

Use this method to return a recordset with a single field containing all of the virtual catalogs that are dependant on this catalog. This method cannot be called on a virtual catalog.

Definition

[C++]
HRESULT IProductCatalog3::GetDependentCatalogs(
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSDependentCatalogs
);
[Visual Basic]
Function GetDependentCatalogs(
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lStartingRecord [Visual Basic]
A Variant that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve.
plTotalRecordsInQuery [C++]
[in, out, optional] A pointer to a VARIANT that, if supplied, contains on output the total number of records.
plTotalRecordsInQuery [Visual Basic]
A Variant that, if supplied, contains on output the total number of records.
ppRSDependentCatalogs [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the dependent catalogs.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the dependent catalogs.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_VC_NOT_A_SUPPLIER_CATALOG | [C++] 0x889800F9 [Visual Basic] &H889800F9 | Invalid catalog type. This API can only be called on a base catalog.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSDependentCatalogs parameter contains valid data only if the method was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

x = myProductCatalog.GetDependentCatalogs(lStartingRecord, lRecordsToRetrieve, plTotalRecordsInQuery)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::GetLanguages Method [C++]

ProductCatalog.GetLanguages Method [Visual Basic]

Use this method to return a recordset with a single field containing all of the supported languages.

Definition

[C++]
HRESULT IProductCatalog3::GetLanguages(
  _Recordset** ppRSLanguages
);
[Visual Basic]
Function GetLanguages() As _Recordset

Parameters

ppRSLanguages [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the supported languages.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the supported languages.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C++] The ppRSLanguages parameter contains valid data only if the method was accessed successfully.

The following table shows the fields that the returned recordset contains.

Field Data Type Description
Language String
10 characters
A String that contains the culture name. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

Set rsLanguages = myProductCatalog.GetLanguages

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::GetPriceRules Method [C++]

ProductCatalog.GetPriceRules Method [Visual Basic]

Use this method to return a recordset containing the specified price rules. This method cannot be used with a base catalog.

Definition

[C++]
HRESULT IProductCatalog3::GetPriceRules(
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSProductPricingRules
);
[Visual Basic]
Function GetPriceRules(
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lStartingRecord [Visual Basic]
A Variant that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property on which to sort. This must be a property in the returned recordset. If not included, the returned recordset will be unsorted.
fSortAscending [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery [C++]
[in, out, optional] A pointer to a VARIANT that, if supplied, contains on output the total number of records.
plTotalRecordsInQuery [Visual Basic]
A Variant that, if supplied, contains on output the total number of records.
ppRSProductPricingRules [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the product pricing rules.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the pricing rules.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSProductPricingRules parameter contains valid data only if the method was accessed successfully.

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
AdjustmentType | CatalogCustomPriceEnum enumeration | The type of the pricing rule.
Amount | Integer | None
CategoryName | String 85 characters | None
ProductID | String 256 characters | The field name that uniquely identifies products.
VariantID | String 256 characters | The field name that uniquely identifies variants.

The following table shows the values of the CatalogCustomPriceEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscNoCustomPrice | 0 | The custom price is the same as the base price.
cscPercentageMultiplier | 1 | The custom price = basePrice + (basePrice * pfpCustomPriceAmount /100).
cscAddFixedAmount | 2 | The custom price is the value in the parameter pfpCustomPriceAmount added to the base price.
cscReplacePrice | 3 | The custom price is the value in the parameter pfpCustomPriceAmount.
cscInvalidCustomPrice | -1 | Reserved for future use.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'plTotalRecordsInQuery is a LONG.
'Examine it after the method returns to see if
'there are more records to get.
Set rsPriceRules = myProductCatalog.GetPriceRules(1, 25, strPropertyToSortOn, True, plTotalRecordsInQuery)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::GetProduct Method [C++]

ProductCatalog.GetProduct Method [Visual Basic]

Use this method to retrieve the specified product from a catalog.

Definition

[C++]
HRESULT IProductCatalog3::GetProduct(
 VARIANT varProductID,
 IProduct3** ppProduct
);
[Visual Basic]
Function GetProduct(
 varProductID As Variant
) As Product

Parameters

varProductID [C++]
[in] A VARIANT that contains the unique identifier of the product.
varProductID [Visual Basic]
A Variant that contains the unique identifier of the product.
ppProduct [C++]
[out, retval] A pointer to a Product object used to return the specified product.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the product specified.

Error Values

[C++] This method returns S_OK (0x00000000) or S_FALSE (&H00000001) to indicate success and standard COM HRESULT error values, to indicate failure. This method may succeed and yet not return a valid output parameter. The output parameter(s) will be invalid if either and error value or S_FALSE is returned. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. This method may succeed and yet return a property or object that is Nothing due to a syntax error, such as requesting a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid..
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
S_FALSE | 1 | The product does not exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppProduct parameter contains valid data only if the method completed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET oMyProduct = myProductCatalog.GetProduct("SKU4005")
' for virtual catalogs
SET oMyProduct = myVirtualCatalog.GetProduct "SKU001(MyBaseCatalog)"

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateProduct

[Visual Basic] ProductCatalog.CreateProduct

[C++] IProductCatalog3::DeleteProduct

[Visual Basic] ProductCatalog.DeleteProduct


IProductCatalog3::GetProductVariant Method [C++]

ProductCatalog.GetProductVariant Method [Visual Basic]

Use this method to retrieve the properties of a specified product variant.

Definition

[C++]
HRESULT IProductCatalog3::GetProductVariant(
 VARIANT varProductID,
 VARIANT varVariantID,
 _Recordset** ppRSVariant
);
[Visual Basic]
Function GetProductVariant(
 varProductID As Variant,
 varVariantID As Variant
) As _Recordset

Parameters

varProductID [C++]
[in] A VARIANT that contains the unique identifier of the product family.
varProductID [Visual Basic]
A Variant that contains the unique identifier of the product family.
varVariantID [C++]
[in] A VARIANT that contains the unique identifier of the product variant.
varVariantID [Visual Basic]
A Variant that contains the unique identifier of the product variant.
ppRSVariant [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the properties of the variant.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the properties of the specified variant.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_CATALOG_DOESNT_SUPPORT_VARIANTS | [C++] 0x88980032 [Visual Basic] &H88980032 | This catalog does not support variants. In order to support variants the catalog has to be created with the variant identifier.
E_CAT_INVALID_PRODUCTID | [C++] 0x8898005B [Visual Basic] &H8898005B | The value you specified for the ProductID is blank or else it exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_PRODUCTID | [C++] 0x8898004E [Visual Basic] &H8898004E | The value you specified for the ProductID is either out of range or does not satisfy the Min/Max condition.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_INVALID_VARIANTID | [C++] 0x8898005C [Visual Basic] &H8898005C | The value you specified for the VariantID exceeds the maximum allowed length of 256 characters.
E_CAT_INVALIDVALUE_FOR_VARIANTID | [C++] 0x8898004D [Visual Basic] &H8898004D | The value you specified for the VariantID is either out of range or does not satisfy the Min/Max condition.
E_CAT_BLANK_VARIANT | [C++] 0x8898004F [Visual Basic] &H8898004F | You have specified a blank value for the VariantID. A variant cannot be created with a blank value.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSVariant parameter contains valid data only if the method was accessed successfully.

A single row recordset with all the properties of the variant is returned. The fields of the returned recordset are determined by the properties associated with the definition on which it is based. Both the product properties and the variant properties are returned.

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
oid | int | Internal identifier
Cy_list_price | money | List price of the variant
TimeStamp | timestamp | None
ProductID | String 128 characters | The field name that uniquely identifies products.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET rsVariantProps = myProductCatalog.GetProductVariant("SKU4007", "Blue")

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_IdentifyingVariantProperty

[Visual Basic] ProductCatalog.IdentifyingVariantProperty


IProductCatalog3::GetSpecificationSearchClauses Method [C++]

ProductCatalog.GetSpecificationSearchClauses Method [Visual Basic]

Use this method to retrieve the specified specification search constraints.

Definition

[C++]
HRESULT IProductCatalog3::GetSpecificationSearchClauses(
 BSTR strSearchHandle,
 _Recordset** ppRSSearchClauses
);
[Visual Basic]
Function GetSpecificationSearchClauses(
 strSearchHandle As String
) As _Recordset

Parameters

strSearchHandle [C++]
[in] A BSTR that contains the specification search handle.
strSearchHandle [Visual Basic]
A String that contains the specification search handle.
ppRSSearchClauses [C++]
[out, retval] A pointer to a Recordset object used to return the search clauses.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the specification search clauses.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C++] 0x8898010D [Visual Basic] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....

Remarks

[C++] The ppRSSearchClauses parameter contains valid data only if the method completed successfully.

The returned recordset contains a single variable-length String field, called Clause, and one row for each constraint present.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch
SET rsMySearchClauses = myProductCatalog.GetSpecificationSearchClauses(strSearchHandle)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::AddSpecificationSearchClause

[Visual Basic] ProductCatalog.AddSpecificationSearchClause

[C++] IProductCatalog3::RemoveSpecificationSearchClause

[Visual Basic] ProductCatalog.RemoveSpecificationSearchClause


IProductCatalog3::GetVirtualCatalogRules Method [C++]

ProductCatalog.GetVirtualCatalogRules Method [Visual Basic]

Use this method to return a recordset containing the specified virtual catalog rules.

Definition

[C++]
HRESULT IProductCatalog3::GetVirtualCatalogRules(
  VARIANT lStartingRecord,
  VARIANT lRecordsToRetrieve,
  VARIANT strPropertyToSortOn,
  VARIANT_BOOL fSortAscending,
  VARIANT* plTotalRecordsInQuery,
  _Recordset** ppRSProductRules
);
[Visual Basic]
Function GetVirtualCatalogRules(
  Optional lStartingRecord As Variant,
  Optional lRecordsToRetrieve As Variant,
  Optional strPropertyToSortOn As Variant,
  Optional fSortAscending As Boolean,
  Optional plTotalRecordsInQuery As Variant
) As _Recordset

Parameters

lStartingRecord [C++]
[in, optional] A VARIANT that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lStartingRecord [Visual Basic]
A Variant that contains the starting record number. A value of one (1) indicates the first record. If the starting record number is not specified, then this method starts with record one (1).
lRecordsToRetrieve [C++]
[in, optional] A VARIANT that contains the number of records to retrieve.
lRecordsToRetrieve [Visual Basic]
A Variant that contains the number of records to retrieve.
strPropertyToSortOn [C++]
[in, optional] A VARIANT that contains the property on which to sort. This must be a property in the returned recordset.
strPropertyToSortOn [Visual Basic]
A Variant that contains the property on which to sort. This must be a property in the returned recordset.
fSortAscending [C++]
[in, optional, defaultvalue (-1)] A VARIANT_BOOL that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order.
fSortAscending [Visual Basic]
A Boolean that specifies whether to sort in ascending or descending order. A value of True (-1) indicates to sort in ascending order. A value of False (0) indicates to sort in descending order. The default value is True.
plTotalRecordsInQuery [C++]
[in, out, optional] A pointer to a VARIANT that, if supplied, contains on output the total number of records.
plTotalRecordsInQuery [Visual Basic]
A Variant that, if supplied, contains on output the total number of records.
ppRSProductRules [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the virtual catalog rules.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object that contains the virtual catalog rules.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid.
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_CAT_INVALID_SORT_PROPS | [C++] 0x8898011E [Visual Basic] &H8898011E | The properties to sort that you specified are invalid. Properties that contain a space should be enclosed in square brackets. Properties should not contain [ or ] and /* or -- in property names.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The ppRSProductRules parameter contains valid data only if the method was accessed successfully.

The returned recordset is disconnected and updateable. The following table shows the fields that the returned recordset contains.

Field | Data Type | Description
Type | VirtualCatalogRuleTypeEnum Enum | An enumeration that describes the type of rule. See the following table for a description of the values.
CatalogName | String 90 characters | The name of the catalog.
CategoryName | String 128 characters | The name of the category.
ProductID | String 256 characters | The field name that uniquely identifies products.
VariantID | String 256 characters | The field name that uniquely identifies variants.

The following table shows the enumeration that indicates the rule types in the returned recordset.

Name | Value | Description
VCRULETYPE_INCLUDE_PRODUCT | 1 | Indicates an inclusion rule for a product.
VCRULETYPE_EXCLUDE_PRODUCT | 2 | Indicates an exclusion rule for a product.
VCRULETYPE_INCLUDE_CATEGORY | 3 | Indicates an inclusion rule for a category.
VCRULETYPE_EXCLUDE_CATEGORY | 4 | Indicates an exclusion rule for a category.
VCRULETYPE_INCLUDE_VARIANT | 5 | Indicates an inclusion rule for a variant.
VCRULETYPE_EXCLUDE_VARIANT | 6 | Indicates an exclusion rule for a variant.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

vTotalRecords is a variant.
SET rsRules = myProductCatalog.GetVirtualCatalogRules(1, 25, strPropertyToSortOn, True, vTotalRecords )

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::GuaranteedSpecificationSearch Method [C++]

ProductCatalog.GuaranteedSpecificationSearch Method [Visual Basic]

Use this method to guarantee results when performing a specification search of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::GuaranteedSpecificationSearch(
  VARIANT* pstrSearchHandle,
  VARIANT eClassTypeRequired,
  VARIANT lDesiredRecords,
  VARIANT* plTotalRecordsAvailable,
  VARIANT* pRSNewPropValuesList,
  VARIANT vrPropertiesRequired,
  _Recordset** ppRSSearchResults
);
[Visual Basic]
Function GuaranteedSpecificationSearch(
  pstrSearchHandle As Variant,
  Optional eClassTypeRequired As Variant,
  Optional lDesiredRecords As Variant,
  Optional plTotalRecordsAvailable As Variant,
  Optional pRSNewPropValuesList As Variant,
  Optional vrPropertiesRequired As Variant
) As _Recordset

Parameters

pstrSearchHandle [C++]
[in, out] A VARIANT that contains the specification search handle. The modified search handle will be returned by this parameter.
pstrSearchHandle [Visual Basic]
A Variant that contains the specification search handle.
eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class wanted. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
lDesiredRecords [C++]
[in, optional] A VARIANT that contains the number of records wanted.
lDesiredRecords [Visual Basic]
A Variant that contains the number of records wanted.
plTotalRecordsAvailable [C++]
[out, optional] A pointer to a VARIANT used to return the total records available.
plTotalRecordsAvailable [Visual Basic]
A Variant used to return the total records available.
pRSNewPropValuesList [C++]
[out, optional] A Recordset object used to return the new property values list.
pRSNewPropValuesList [Visual Basic]
A Recordset object used to return the new property values list.
vrPropertiesRequired [C++]
[in, optional] A VARIANT that contains the properties required in a comma-delimited String.
vrPropertiesRequired [Visual Basic]
A Variant that contains the properties required in a comma-delimited String.
ppRSSearchResults [C++]
[out, retval] A Recordset object used to return the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the search results.

Error Values

[C++] This method returns S_OK (0x00000000) or S_FALSE (&H00000001) to indicate success and standard COM HRESULT error values, to indicate failure. This method may succeed and yet not return a valid output parameter. The output parameter(s) will be invalid if either and error value or S_FALSE is returned. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. This method may succeed and yet return a property or object that is Nothing due to a syntax error, such as requesting a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

In the context of this method, S_FALSE indicates:

  • The pRSNewPropValuesList parameter is specified and there are no properties in the catalog that are marked for specification search.
  • The pRSNewPropValuesList parameter is specified and there are no products under the category selected for specification search.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C++] 0x8898010D [Visual Basic] &Hx8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011D [Visual Basic] &H8898011D | The properties to return that you specified are invalid. properties that contain a space should be enclosed in square brackets. properties should not contain [ or ] and /* or -- in property names.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C++] 0x88980049 [Visual Basic] &H88980049 | The category you specified does not exists or is not marked as Specification searchable.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The pstrSearchHandle, plTotalRecordsAvailable, pRSNewPropValuesList, and ppRSSearchResults parameters contain valid data only if the method was accessed successfully.

This method is similar to the PerformSpecificationSearch method. The optional output parameter, pRSNewPropValuesList, is a single row recordset. This recordset contains one field for each searchable property for the products under the category specified in the BeginSpecificationSearch method. Each field contains a SAFEARRAY. The SAFEARRAY contains a set of distinct values for that property. The set is all the values in all the products that match the search clauses in the search handle. Only the properties that are marked as searchable are returned in the recordset. A property can be marked as searchable by setting the IncludeInSpecSearch attribute of that property to True.

This method guarantees that results will be returned from a specification search of the catalog by removing search constraints in the reverse order that they were added until a match is found. Therefore, remember to add constraints to a specification search in order of decreasing importance.

[C++] The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. If this parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

[Visual Basic] The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. If this parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

When field names begin with a number or contain spaces, they must be enclosed in brackets. Data errors occur if the field names are not formatted correctly. If the vrPropertiesRequired parameter is omitted, the data in all fields will be returned correctly.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical ORs, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch.
'The following parameters should be examined after the call returns.
'plTotalRecordsAvailable is a Long
'pRSNewPropValuesList is an empty recordset
SET rsMySearchResults = myProductCatalog.GuaranteedSpecificationSearch('strSearchHandle , 20, plTotalRecordsAvailable, pRSNewPropValuesList)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::AddSpecificationSearchClause

[Visual Basic] ProductCatalog.AddSpecificationSearchClause

[C++] IProductCatalog3::PerformSpecificationSearch

[Visual Basic] ProductCatalog.PerformSpecificationSearch

[C++] IProductCatalog3::RemoveSpecificationSearchClause

[Visual Basic] ProductCatalog.RemoveSpecificationSearchClause


IProductCatalog3::PerformSpecificationSearch Method [C++]

ProductCatalog.PerformSpecificationSearch Method [Visual Basic]

Use this method to perform a specification search of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::PerformSpecificationSearch(
  BSTR strSearchHandle,
  VARIANT eClassTypeRequired,
  VARIANT lDesiredRecords,
  VARIANT* plTotalRecordsAvailable,
  VARIANT* pRSNewPropValuesList,
  VARIANT vrPropertiesRequired,
  _Recordset** ppRSSearchResults
);
[Visual Basic]
Function PerformSpecificationSearch(
  strSearchHandle As String,
  Optional eClassTypeRequired As Variant,
  Optional lDesiredRecords As Variant,
  Optional plTotalRecordsAvailable As Variant,
  Optional pRSNewPropValuesList As Variant,
  Optional vrPropertiesRequired As Variant
) As _Recordset

Parameters

strSearchHandle [C++]
[in] A BSTR that contains the name of the search to perform.
strSearchHandle [Visual Basic]
A String that contains the name of the search to perform.
eClassTypeRequired [C++]
[in, optional] A VARIANT that contains the catalog class required. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
eClassTypeRequired [Visual Basic]
A Variant that contains the catalog class required. Valid values are from the CatalogClassTypeEnum enumeration, and are described in the Remarks section.
lDesiredRecords [C++]
[in, optional] A VARIANT that contains the records wanted.
lDesiredRecords [Visual Basic]
A Variant that contains the records wanted.
plTotalRecordsAvailable [C++]
[out, optional] A pointer to a VARIANT used to return the total number of records available.
plTotalRecordsAvailable [Visual Basic]
A Variant used to return the total number of records available.
pRSNewPropValuesList [C++]
[out, optional] A pointer to a VARIANT used to return the Recordset object of the new property values list.
pRSNewPropValuesList [Visual Basic]
A Variant used to return the Recordset object of the new property values list.
vrPropertiesRequired [C++]
[in, optional] A VARIANT that contains the properties required in a comma-delimited String.
vrPropertiesRequired [Visual Basic]
A Variant that contains the properties required in a comma-delimited String.
ppRSSearchResults [C++]
[out, retval] A pointer to hold the reference to the returned Recordset object, which will contain the search results.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a recordset that contains the search results.

Error Values

[C++] This method returns S_OK (0x00000000) or S_FALSE (&H00000001) to indicate success and standard COM HRESULT error values, to indicate failure. This method may succeed and yet not return a valid output parameter. The output parameter(s) will be invalid if either and error value or S_FALSE is returned. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. This method may succeed and yet return a property or object that is Nothing due to a syntax error, such as requesting a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

In the context of this method, S_FALSE indicates:

  • The pRSNewPropValuesList parameter is specified and there are no properties in the catalog that are marked for specification search.
  • The pRSNewPropValuesList parameter is specified and there are no products under the category selected for specification search.

The following table shows the custom COM error that this method can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid.
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C++] 0x8898010D [Visual Basic] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_INVALID_RETURN_PROPS | [C++] 0x8898011D [Visual Basic] &H8898011D | The properties to return that you specified are invalid. properties that contain a space should be enclosed in square brackets. properties should not contain [ or ] and /* or -- in property names.
E_CAT_CATEGORY_NOT_EXISTS_NOT_SEARCHABLE | [C++] 0x88980049 [Visual Basic] &H88980049 | The category you specified does not exists or is not marked as Specification searchable.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The plTotalRecordsAvailable, pRSNewPropValuesList, and ppRSSearchResults parameters contain valid data only if the method was accessed successfully.

The PerformSpecificationSearch method runs a query using all of the constraints that have been added to the specified specification search handle.

The optional output parameter, pRSNewPropValuesList, is a single row recordset. This recordset contains one field for each searchable property for the products under the category specified in the BeginSpecificationSearch method. Each field contains a SAFEARRAY. The SAFEARRAY contains a set of distinct values for that property. The set is all the values in all the products that match the search clauses in the search handle. Only the properties that are marked as searchable are returned in the recordset. A property can be marked as searchable by setting the IncludeInSpecSearch attribute of that property to True.

[C++] The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. It will always contain a CatalogName field. If the parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

[Visual Basic] The Recordset object returned by this method will contain a field for each property name in the vrPropertiesRequired parameter. It will always contain a CatalogName field. If the parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

When field names begin with a number or contain spaces, they must be enclosed in brackets. Data errors will occur if the field names are not formatted correctly. If the vrPropertiesRequired parameter is omitted, the data in all fields will be returned correctly.

The following table shows the values of the CatalogClassTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
cscCategoryClass | 1 | Requests category data.
cscProductVariantClass | 2 | Requests product variant data.
cscProductClass | 4 | Requests product data.
cscProductFamilyClass | 8 | Requests product family data.
cscProductFamilyForVariantsClass | 16 | Requests family for variant data, which means the product family of a product variant is being requested.
cscProductVariantsForFamily | 32 | Requests variants for family data, which means that all of the product variants for a product family are being requested.

The CatalogClassTypeEnum enumeration values can be combined in the eClassTypeRequired parameter with logical OR operators, so that specifying cscProductClass OR cscProductVariantClass will return both product and product variant data.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch.
'The following parameters should be examined after the call returns.
'plTotalRecordsAvailable is a Long.
'pRSNewPropValuesList is an empty recordset.
SET rsSearchResults = myProductCatalog.PerformSpecificationSearch(strSearchHandle, 20, plTotalRecordsAvailable, pRSNewPropValuesList)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::AddSpecificationSearchClause

[Visual Basic] ProductCatalog.AddSpecificationSearchClause

[C++] IProductCatalog3::BeginSpecificationSearch

[Visual Basic] ProductCatalog.BeginSpecificationSearch

[C++] IProductCatalog3::GuaranteedSpecificationSearch

[Visual Basic] ProductCatalog.GuaranteedSpecificationSearch

[C++] IProductCatalog3::RemoveSpecificationSearchClause

[Visual Basic] ProductCatalog.RemoveSpecificationSearchClause


IProductCatalog3::Purge Method [C++]

ProductCatalog.Purge Method [Visual Basic]

Use this method to remove deleted products, categories, and variants from the catalog.

Definition

[C++]
HRESULT IProductCatalog3::Purge(
);
[Visual Basic]
Sub Purge()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

In addition to standard COM errors, purge may return ADO errors.

Remarks

Commerce Server 2002 uses a two-stage delete process. When items are deleted from a catalog they are not removed from the Product Catalog System. The product rows are moved from the catalog tables to a deleted products table. This allows deletions to be exported with other changes using the DeltaExportXML method. Use the Purge method to remove the marked products from the database. The Purge method is not accessible through the user interface.

Caution

  • There is no method for recovering deleted products.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.Purge

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] ICatalogManager3::DeltaExportXML

[Visual Basic] CatalogManager.DeltaExportXML


IProductCatalog3::RebuildVirtualCatalog Method [C++]

ProductCatalog.RebuildVirtualCatalog Method [Visual Basic]

Use this method to rebuild a virtual catalog or all dependent virtual catalogs.

Definition

[C++]
HRESULT IProductCatalog3::RebuildVirtualCatalog(
  VARIANT_BOOL fRunSynchronously,
  VARIANT_BOOL fForceRebuild
);
[Visual Basic]
Sub RebuildVirtualCatalog(
  Optional fRunSynchronously As Boolean,
  Optional fForceRebuild As Boolean
)

Parameters

fRunSynchronously [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously.
fRunSynchronously [Visual Basic]
A Boolean that specifies whether to run the method synchronously. A value of True indicates that the method should be run synchronously. A value of False indicates that the method should be run asynchronously. The default value is False.
fForceRebuild [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to force a rebuild. A value of True indicates that catalogs will be rebuilt regardless of status. A value of False indicates that only dirty catalogs will be rebuilt.
fForceRebuild [Visual Basic]
A Boolean that specifies whether to force a rebuild. A value of True indicates that all catalogs will be rebuilt regardless of status. A value of False indicates that only dirty catalogs will be rebuilt. The default value is False.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.

Remarks

Virtual catalogs will only be rebuilt if there has been a rule change, a product deletion, or a category deletion that would affect the contents of the catalog unless the fForceRebuild parameter is set to True. If this method is called on a base catalog, it will apply to all virtual catalogs that include products or categories from the base catalog. If this method is called on a virtual catalog, it will apply only to the virtual catalog.

[C++] If you want to rebuild all the virtual catalogs in the Product Catalog System use ICatalogManager3::RebuildAllVirtualCatalogs.

[Visual Basic] If you want to rebuild all the virtual catalogs in the Product Catalog System use CatalogManager.RebuildAllVirtualCatalogs.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.RebuildVirtualCatalog

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] ICatalogManager3::RebuildAllVirtualCatalogs

[Visual Basic] CatalogManager.RebuildAllVirtualCatalogs


IProductCatalog3::RegenerateFreeTextSearchIndex Method [C++]

ProductCatalog.RegenerateFreeTextSearchIndex Method [Visual Basic]

Use this method to regenerate the free-text search index of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::RegenerateFreeTextSearchIndex(
 VARIANT_BOOL fGenerateIncremental
);
[Visual Basic]
Sub RegenerateFreeTextSearchIndex(
 fGenerateIncremental As Boolean
)

Parameters

fGenerateIncremental [C++]
[in, defaultvalue (0)] A VARIANT_BOOL that determines whether an incremental or a full rebuild of the free-text search index is to be performed. A value of True indicates an incremental rebuild. A value of False indicates a full rebuild. See the Remarks section for more information.
fGenerateIncremental [Visual Basic]
A Boolean that determines whether an incremental or a full rebuild of the free-text search index is to be performed. A value of True indicates an incremental rebuild. A value of False indicates a full rebuild. The default value is False. See the Remarks section for more information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_CANNOT_REFRESH | [C++] 0x8898004C [Visual Basic] &H8898004C | A catalog import operation is currently in progress. The refresh operation cannot be performed now.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The fGenerateIncremental parameter determines what type of free-text index rebuild to perform. The default is to completely rebuild the free-text index. Though this option ensures completeness, it is slower than an incremental rebuild, which appends only recently added products and categories to the index.

If the database in which Commerce Server keeps its catalog data does not have the SQL Server 2000 full-text engine installed, this method will return with no action.

This method cannot be called in a transacted object. This method involves the creating, deleting, or updating of free-text indexes. SQL Server does not allow these operations in a transaction.

This method will create a new full-text index for the catalog if it does not exist.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.RegenerateFreeTextSearchIndex TRUE

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::RemoveLanguage Method [C++]

ProductCatalog.RemoveLanguage Method Method [Visual Basic]

Use this method to remove a language from this catalog.

Definition

[C++]
HRESULT IProductCatalog3::RemoveLanguage(
  BSTR strLanguage
);
[Visual Basic]
Sub RemoveLanguage(
  strLanguage As String
)

Parameters

strLanguage [C++]
[in, optional, defaultvalue ("")] A BSTR that contains the culture name to remove. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.
strLanguage [Visual Basic]
A String that that contains the culture name to remove. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_INVALID_LANGUAGE | [C++] 0x8898009E [Visual Basic] &H8898009E | The value you specified for the language parameter is either empty or exceeds the maximum length of 10 characters.
E_CAT_LANGUAGE_NOT_ASSOCIATED | [C++] 0x889800A4 [Visual Basic] &H889800A4 | The language that you specified is not associated with this catalog.
E_CAT_CATALOG_DOESNT_EXIST | [C++] 0x88980002 [Visual Basic] &H88980002 | The catalog name you specified does not exist.
E_CAT_CANNOT_REMOVE_DEFAULT_LANG | [C++] 0x889800AA [Visual Basic] &H889800AA | The language that you specified is being used as the Default language for this catalog. It cannot be removed
E_CAT_CANNOT_REMOVE_REPORTING_LANG | [C++] 0x889800AB [Visual Basic] &H889800AB | The language that you specified is being used as the Reporting language for this catalog. It cannot be removed

Remarks

This method removes the specified language from list of languages supported by the catalog. The language will not be removed if it is the default language of the catalog; in this case, an error message will be returned.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.RemoveLanguage("FRA")

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::RemovePriceRule Method [C++]

ProductCatalog.RemovePriceRule Method [Visual Basic]

Use this method to remove a specified price rule.

Definition

[C++]
HRESULT IProductCatalog3::RemovePriceRule(
  VARIANT vrProductIDOrCategoryName,
  VARIANT vrVariantID,
  VARIANT_BOOL fCategory
);
[Visual Basic]
Sub RemovePriceRule(
  vrProductIDOrCategoryName As Variant,
  Optional vrVariantID As Variant,
  Optional fCategory As Boolean
)

Parameters

vrProductIDOrCategoryName [C++]
[in] A VARIANT that contains the product ID or category name to which the rule applies.
vrProductIDOrCategoryName [Visual Basic]
A Variant that contains the product ID or category name to which the rule applies.
vrVariantID [C++]
[in, optional] A VARIANT that contains the variant ID, if the rule is specific to a variant.
vrVariantID [Visual Basic]
A Variant that contains the variant ID, if the rule is specific to a variant.
fCategory [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product.
fCategory [Visual Basic]
A Boolean that specifies whether vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C++] 0x889800FD [Visual Basic] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_DELETION_PRICE_RULE_NOT_FOUND | [C++] 0x88980100 [Visual Basic] &H88980100 | The pricing rule could not be deleted because it doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Set the fCategory parameter to True and the vrProductIDOrCategoryName parameter to an empty string to remove the price rule for the entire catalog.

The vrVariantID parameter is only valid for products. If it is supplied, it indicates that the rule should be removed for that variant only.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

myProductCatalog.RemovePriceRule("shoes", , True)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::RemoveSpecificationSea MethodrchClause [C++]

ProductCatalog.RemoveSpecificationSearchClause Method [Visual Basic]

Use this method to remove the last constraint from a specified specification search.

Definition

[C++]
HRESULT IProductCatalog3::RemoveSpecificationSearchClause(
 VARIANT* pstrSearchHandle,
 BSTR* pstrPoppedClause
);
[Visual Basic]
Function RemoveSpecificationSearchClause(
 pstrSearchHandle As Variant
) As String

Parameters

pstrSearchHandle [C++]
[in, out] A VARIANT that contains the specification search handle from which a constraint is to be removed.
pstrSearchHandle [Visual Basic]
A Variant that contains the specification search handle from which a constraint is to be removed.
pstrPoppedClause [C++]
[out, retval] A pointer to a BSTR used to return the removed clause.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the removed clause.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_PARAMETER | [C++] 0x889800B6 [Visual Basic] &H889800B6 | The input parameter <parameter number> is invalid.
E_CAT_INVALID_SPECSEARCH_HANDLE | [C++] 0x8898010D [Visual Basic] &H8898010D | The search handle that you specified is invalid. The search handle should be of the form [CatalogName][CategoryName] AND (Search Clause1) AND (SearchClause2) ....

Remarks

[C++] The pstrSearchHandle and pstrPoppedClause parameters contain valid data only if the method was accessed successfully.

This method always removes the last constraint that was added to the search using the AddSpecificationSearchClause method. The returned string will be in the same form as the original constraint.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'strSearchHandle contains a search handle returned
'from AddSpecificationSearchClause or BeginSpecificationSearch.
'strRemovedClause will contain the removed clause after the call returns.
Set strRemovedClause = myProductCatalog.RemoveSpecificationSearchClause(strSearchHandle)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::RemoveVirtualCatalogRule Method [C++]

ProductCatalog.RemoveVirtualCatalogRule Method [Visual Basic]

Use this method to remove a virtual catalog rule.

Definition

[C++]
HRESULT IProductCatalog3::RemoveVirtualCatalogRule(
  BSTR strCatalogName,
  VARIANT vrProductIDOrCategoryName,
  VARIANT vrVariantID,
  VARIANT_BOOL fCategory
);
[Visual Basic]
Sub RemoveVirtualCatalogRule(
  strCatalogName As String,
  vrProductIDOrCategoryName As Variant,
  vrVariantID As Variant,
  Optional fCategory As Boolean
)

Parameters

strCatalogName [C++]
[in] A BSTR that contains the base catalog name.
strCatalogName [Visual Basic]
A String that contains the base catalog name.
vrProductIDOrCategoryName [C++]
[in] A VARIANT that contains the product ID or category name to which the rule applies.
vrProductIDOrCategoryName [Visual Basic]
A Variant that contains the product ID or category name to which the rule applies.
vrVariantID [C++]
[in] A VARIANT that contains the variant ID to which the rule applies.
vrVariantID [Visual Basic]
A Variant that contains the variant ID to which the rule applies.
fCategory [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product.
fCategory [Visual Basic]
A Boolean that specifies whether the parameter vrProductIDOrCategoryName is a product or a category. A value of True (-1) indicates a category. A value of False (0) indicates a product. The default value is False (0).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_CAT_VC_NOT_A_VIRTUAL_CATALOG | [C++] 0x889800FA [Visual Basic] &H889800FA | Invalid catalog type. This API can only be called on a virtual catalog.
E_CAT_INVALID_CATALOGNAME | [C++] 0x88980063 [Visual Basic] &H88980063 | The catalog Name you specified is invalid. Catalog names cannot be blank.
E_CAT_INVALID_CATALOG_NAME_LENGTH | [C++] 0x88980042 [Visual Basic] &Hx88980042 | The catalog name you specified exceeds the maximum limit of 85 characters.
E_CAT_CHARACTER_NOT_ALLOWED | [C++] 0x8898003D [Visual Basic] &H8898003D | The catalog name you specified has one of the nine reserved characters " [ ] , ' ( )#. which should not be used.
E_CAT_VC_INVALID_PROD_ID_OR_CATEGORY_NAME | [C++] 0x889800FB [Visual Basic] &H889800FB | The value you specified for the ProductID or CategoryName exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_VARIANT_ID | [C++] 0x889800FC [Visual Basic] &H889800FC | The value you specified for the VariantID exceeds the maximum allowed length of 348 characters.
E_CAT_VC_INVALID_ITEM | [C++] 0x889800FD [Visual Basic] &H889800FD | The specified product/category/variant could not be found in the base catalog.
E_CAT_VC_DELETION_RULE_NOT_FOUND | [C++] 0x889800FE [Visual Basic] &H889800FE | The rule could not be deleted because it doesn't exist.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Set the fCategory parameter to True and the vrProductIDOrCategoryName parameter to an empty string to remove the rule for the catalog specified in the strCatalogName parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' The following example removes the rule for the "Shoes" catalog.
myVCatalog.RemoveVirtualCatalogRule("Shoes", "", True)

' The following exampe removes the rule for the "Mens" category
' in the "Shoe" catalog.
myVCatalog.RemoveVirtualCatalogRule("Shoes", "Mens", True)

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::SetCatalogAttributes Method [C++]

ProductCatalog.SetCatalogAttributes Method [Visual Basic]

Use this method to set the attributes of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::SetCatalogAttributes(
 _Recordset* pRSCatalogAttributes,
 VARIANT fForceUpdate
);
[Visual Basic]
Sub SetCatalogAttributes(
 pRSCatalogAttributes As _Recordset,
 Optional fForceUpdate As Variant
)

Parameters

pRSCatalogAttributes [C++]
[in] A Recordset object containing the new attributes.
pRSCatalogAttributes [Visual Basic]
A Recordset object containing the new attributes.
fForceUpdate [C++]
[in, optional] A VARIANT that causes a forced update of the catalog attributes.
fForceUpdate [Visual Basic]
A Variant that causes a forced update of the catalog attributes.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_CAT_BLANK_LANGUAGE | [C++] 0x889800A5 [Visual Basic] &H889800A5 | The default language associated with this catalog cannot be blank.
E_CAT_CATALOG_DOESN’T_EXIST | [C++] 0x88980002 [Visual Basic] &Hx88980002 | The catalog name you specified does not exist.
E_CAT_INVALID_DEFAULT_LANGUAGE | [C++] 0x889800B3 [Visual Basic] &Hx889800B3 | The default language that you specified does not exists as one of the valid catalog languages.
E_CAT_CATALOG_CHANGED | [C++] 0x88980012 [Visual Basic] &Hx88980012 | The catalog properties has been changed since it was last read.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the GetCatalogAttributes method to get a recordset of the current attributes. After the recordset has been modified, use it as the pRSCatalogAttributes parameter to the SetCatalogAttributes method to write the changes back to the catalog. The time stamps in the recordset will be compared to the time stamps of the attributes being updated for error detection.

The following attributes cannot be changed with this method:

  • CatalogName
  • ProductID
  • CatalogID
  • VariantID
  • IsVirtualCatalog
  • ProductTableUpdated
  • CustomCatalog
  • FreeTextIndexCreated
  • TimeStamp
  • FullTextCatalog
  • DisplayName
  • VirtualCatalogStatus

The DisplayName attribute cannot be modified because the current language of the catalog determines it. To update the display name for a specific language update the DisplayName_<Language> field of the recordset.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'The following example changes the catalog display name for English.

Set rsAttrib = myProductCatalog.Getcatalogattributes
rsAttrib("DisplayName_ENU") = "My Catalog"
myProductCatalog.Setcatalogattributes rsAttrib

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::GetCatalogAttributes

[Visual Basic] ProductCatalog.GetCatalogAttributes


IProductCatalog3::SetCategoryCustomPrice Method [C++]

ProductCatalog.SetCategoryCustomPrice Method [Visual Basic]

The SetCategoryCustomPrice method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::GetCategoryCustomPrice

[Visual Basic] ProductCatalog.GetCategoryCustomPrice


IProductCatalog3::SetCustomCatalogAttributes Method [C++]

ProductCatalog.SetCustomCatalogAttributes Method [Visual Basic]

The SetCustomCatalogAttributes method is obsolete in Microsoft Commerce Server 2002. It will always return the following error:

Constant | Value | Description
E_CAT_CUSTOM_CC_NOT_SUPPORTED | [C++] 0x889800BD [Visual Basic] &H889800BD | This method is not supported.

Remarks

Custom catalogs have been replaced in Microsoft Commerce Server 2002 by virtual catalogs.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::GetCustomCatalogAttributes

[Visual Basic] ProductCatalog.GetCustomCatalogAttributes


IProductCatalog3 Properties [C++]

ProductCatalog Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
CatalogName | BSTR | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | BSTR | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | BSTR | Contains the name of the column used to uniquely identify product variants. This property is read-only.
Language | BSTR | Contains the active language. This property is read/write.
RootCategories | _Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | _Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | _Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.
[Visual Basic]
Property | Type | Description
CatalogName | String | Contains the name of this catalog. This property is read-only.
IdentifyingProductProperty | String | Contains the name of the column used to uniquely identify products and product families. This property is read-only.
IdentifyingVariantProperty | String | Contains the name of the column used to uniquely identify product variants. This property is read-only.
Language | String | Contains the active language. This property is read/write.
RootCategories | Recordset | Returns a recordset containing the names of categories that are the root categories for this catalog. This property is read-only.
RootProducts | Recordset | Returns a recordset containing the products that are part of this catalog, but are not contained in any category. This property is read-only.
SearchableCategories | Recordset | Returns a recordset with a single field that contains the names of the categories that are defined as searchable. This property is read-only.


IProductCatalog3::get_CatalogName Property [C++]

ProductCatalog.CatalogName Property [Visual Basic]

The CatalogName property is a read-only String that contains the name of this catalog.

Definition

[C++]
HRESULT IProductCatalog3::get_CatalogName(
  BSTR* CatalogName
);
[Visual Basic]
Property CatalogName As String

Parameters

CatalogName [C++]
[out, retval] A BSTR used to return the catalog name.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this property can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Ran out of memory

Remarks

[C++] The CatalogName parameter contains valid data only if the property was accessed successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object


IProductCatalog3::get_IdentifyingProductProperty Property [C++]

ProductCatalog.IdentifyingProductProperty Property [Visual Basic]

The IdentifyingProductProperty property is a read-only String that contains the name of the unique identifier field for the products in this catalog.

Definition

[C++]
HRESULT IProductCatalog3::get_IdentifyingProductProperty(
 BSTR* IdentifyingProductProperty
);
[Visual Basic]
Property IdentifyingProductProperty As String

Parameters

IdentifyingProductProperty [C++]
[out, retval] A BSTR used to return the name of the identifying product property.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this property can return.

Constant | Value | Description
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Out of memory.

Remarks

[C++] The IdentifyingProductProperty parameter contains valid data only if the property was accessed successfully.

The value of this property will always be "ProductID" for a virtual catalog.

The product ID is cached in the ProductCatalog object. Because of the cache, this method will continue to return the old value after the catalog has been deleted.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_IdentifyingVariantProperty

[Visual Basic] ProductCatalog.IdentifyingVariantProperty


IProductCatalog3::get_IdentifyingVariantProperty Property [C++]

ProductCatalog.IdentifyingVariantProperty Property [Visual Basic]

The IdentifyingProductVariantProperty property is a read-only String that contains the name of the unique identifier field for product variants in this catalog.

Definition

[C++]
HRESULT IProductCatalog3::get_IdentifyingVariantProperty(
 BSTR* IdentifyingVariantProperty
);
[Visual Basic]
Property IdentifyingVariantProperty As String

Parameters

IdentifyingVariantProperty [C++]
[out, retval] A BSTR used to return the name of the identifying variant property.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this property can return.

Constant | Value | Description
E_POINTER | [C++] 0x80004003 [Visual Basic] &H80004003 | The pointer is invalid..

Remarks

[C++] The IdentifyingVariantProperty parameter contains valid data only if the property was accessed successfully.

The value of this property will always be "VariantID" for a virtual catalog.

The variant ID is cached in the ProductCatalog object. Because of the cache, this method will continue to return the old value after the catalog has been deleted.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_IdentifyingProductProperty

[Visual Basic] ProductCatalog.IdentifyingProductProperty


IProductCatalog3::get_Language, put_Language Property [C++]

ProductCatalog.Language Property [Visual Basic]

The Language property is a read/write string that contains the active language of the catalog.

Definition

[C++]

Get method:

HRESULT IProductCatalog3::get_Language(
  BSTR* Language
);

Put method:

HRESULT IProductCatalog3::put_Language(
  BSTR Language
);
[Visual Basic]
Property Language As String

Parameters

Language [C++]
[in] When putting the property, a BSTR that contains the language.
[out, retval] When getting the property, a BSTR used to return the language.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this property can return.

Constant | Value | Description
E_OUTOFMEMORY | [C++] 0x8007000E [Visual Basic] &H8007000E | Ran out of memory.
E_INVALIDARG | [C++] 0x80070057 [Visual Basic] &H80070057 | One or more arguments are invalid.

Remarks

[C++] The Language parameter contains valid data only if the property was accessed successfully.

The Language property specifies the culture name that will be used by all methods of this Product Catalog and on the Product and Category objects that are obtained from this ProductCatalog object. The culture name follows the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>" where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Some culture names have prefixes that specify the script; for example, "Cy" specifies the Cyrillic script, and "Lt" specifies the Latin script. For more information, see . Table of Language Culture Names, Culture Codes, and ISO Values.

This value can only be one of the languages supported by the catalog. It defaults to the value of the vrDefaultLanguage parameter specified when the catalog is created.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::GetLanguages

[Visual Basic] ProductCatalog.GetLanguages

[C++] ICatalogManager3::CreateCatalog

[Visual Basic] CatalogManager.CreateCatalog


IProductCatalog3::get_RootCategories Property [C++]

ProductCatalog.RootCategories Property [Visual Basic]

The RootCategories property is a read-only recordset that contains the names of the categories that exist at the root level of this catalog.

Definition

[C++]
HRESULT IProductCatalog3::get_RootCategories(
  VARIANT vrPropertiesRequired,
  VARIANT_BOOL fAlsoGetIncludedCatalogs
  _Recordset** RootCategories
);
[Visual Basic]
Property RootCategories(
  Optional vrPropertiesRequired As Variant
..Optional fAlsoGetIncludedCatalogs As Boolean
) As _Recordset

Parameters

vrPropertiesRequired [C++]
[in, optional] A VARIANT, subtype String, that contains a comma-separated list of the required property names.
vrPropertiesRequired [Visual Basic]
A VARIANT, subtype String, that contains a comma-separated list of the required property names.
fAlsoGetIncludedCatalogs [C++]
[in, optional, defaultvalue (0)] A VARIANT_BOOL that specifies whether to return included catalogs. A value of True (-1) indicates the RootCategories recordset will contain included catalogs and the root categories. A value of False (0) indicates the RootCategories recordset will only contain the root categories.
fAlsoGetIncludedCatalogs [Visual Basic]
A Boolean that specifies whether to return included catalogs. A value of True (-1) indicates the returned recordset will contain included catalogs and the root categories. A value of False (0) indicates the returned recordset will only contain the root categories. The default value is False (0).
RootCategories [C++]
[out, retval] A Recordset object used to return the root categories.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following table describes the custom COM errors this method can return.

Constant | Value | Description
E_CAT_INVALID_RS_POINTER | [C++] 0x889800B7 [Visual Basic] &H889800B7 | The recordset pointer that you specified is invalid

Remarks

[C++] The RootCategories parameter contains valid data only if the property was accessed successfully.

Any category without parents is considered to be a root category.

[C++] The Recordset object returned by this method will contain one row for each root category, and a field for each property name in the vrPropertiesRequired parameter. If this parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

[Visual Basic] The Recordset object returned by this method will contain one row for each root category, and a field for each property name in the vrPropertiesRequired parameter. If this parameter is omitted, the Recordset object will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Leading numbers in the property names in the vrPropertiesRequired parameter will be trimmed from the corresponding field names in the returned recordset. The data will be correct; only the field names will be incorrect. If this parameter is omitted, then the field names will be correct. Enclose field names that begin with a number in brackets to avoid this problem; for example, oProductCatalog.RootCategories("[123_Prop1],[123_ Prop2]").

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_RootProducts

[Visual Basic] ProductCatalog.RootProducts


IProductCatalog3::get_RootProducts Property [C++]

ProductCatalog.RootProducts Property [Visual Basic]

The RootProducts property is a read-only recordset that contains the products that exist at the root level of a catalog.

Definition

[C++]
HRESULT IProductCatalog3::get_RootProducts(
 _Recordset** RootProducts
);
[Visual Basic]
Property RootProducts As _Recordset

Parameters

RootProducts [C++]
[out, retval] A Recordset object used to return the root products.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The RootProducts parameter contains valid data only if the property was accessed successfully.

Any product that is not contained within a category is considered to be a root product.

[C++] The Recordset object returned by this method will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

[Visual Basic] The Recordset object returned by this method will contain all of the corresponding fields. For more information about these fields, see CatalogProduct Recordset.

Products added by importing a comma-separated values (CSV) file will be root products.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

SET rsRootProducts = myProductCatalog.RootProducts

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::get_RootCategories

[Visual Basic] ProductCatalog.RootCategories


IProductCatalog3::get_SearchableCategories Property [C++]

ProductCatalog.SearchableCategories Property [Visual Basic]

The SearchableCategories property is a read-only recordset that contains the names of all searchable categories.

Definition

[C++]
HRESULT IProductCatalog3::get_SearchableCategories(
 _Recordset** SearchableCategories
);
[Visual Basic]
Property SearchableCategories As _Recordset

Parameters

SearchableCategories [C++]
[out, retval] A Recordset object used to return the names of the searchable categories.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The SearchableCategories parameter contains valid data only if the property was accessed successfully.

The SearchableCategories property returns the names of all the categories in this catalog that can be queried using a specification search. Whether or not a particular category is specification searchable is determined by the value of the IsSearchable attribute. This property can be set at the time the category is created, or can be changed at any time using the SetCategoryProperties methods of the category object.

The Recordset object returned by this property will contain a single 128-character field called Name. Each row will contain the name of a searchable category.

If there are no searchable categories, a recordset with its EOF property set to VARIANT_TRUE will be returned.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ProductCatalog Object

[Visual Basic] ProductCatalog Object

[C++] IProductCatalog3::CreateCategory

[Visual Basic] ProductCatalog.CreateCategory

[C++] IProductCatalog3::GetCategory

[Visual Basic] ProductCatalog.GetCategory


CatalogProduct Recordset [C++]

CatalogProduct Recordset [Visual Basic]

The fields in this Recordset object will vary, depending on the product definitions in the catalog. The following table contains a list of common fields that will always be part of this Recordset object. Fields for multilingual properties will contain the value for the current language of the catalog.

Field name | Data type
CategoryName | String Maximum of 128 characters
Oid | Integer
DefinitionName | String Maximum of 128 characters
IsSearchable | Small integer
Cy_list_price | Money
TimeStamp | TimeStamp
OriginalPrice | Money
i_ClassType | Integer
ProductID | String Maximum of 256 characters
VariantID | String Maximum of 256 characters
CatalogName | String Maximum of 100 characters
LastModified | datetime
PrimaryParentCategory | String Maximum of 128 characters
UseCategoryPricing | boolean

Note

  • The Oid field is used internally by the Product Catalog System and should not be updated.

See Also

[Visual Basic] ProductCatalog.GuaranteedSpecificationSearch

[Visual Basic] ProductCatalog.PerformSpecificationSearch

[Visual Basic] ProductCatalog.RootCategories

[Visual Basic] ProductCatalog.RootProducts

[C++] IProductCatalog3::GuaranteedSpecificationSearch

[C++] IProductCatalog3::PerformSpecificationSearch

[C++] IProductCatalog3::get_RootCategories

[C++] IProductCatalog3::get_RootProducts


Example Code for Product Catalog Objects

This section provides detailed examples of how to use the objects exposed by the Commerce Server 2002 Product Catalog System. The code examples do not show error checking or certain other formalities required for functional code.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.

This section contains:

  • Code to Activate or Deactivate a Product
  • Code to Browse a Catalog
  • Code to Change How a Category is Displayed
  • Code to Find the Available Catalogs
  • Code to Hide Searchable Categories
  • Code to Perform a Search of a Catalog
  • Code to Join an External Table to Product Recordsets
  • Code to Perform a Specification Search of a Catalog
  • Code to Stage Products and Catalogs by Time
  • Code to Use Caching with a Catalog


Code to Activate or Deactivate a Product

Normally, catalog data is visible to users as soon as it is placed in the Product Catalog System. It is possible to activate or deactivate a product in a catalog, that is to make it visible or hide it from users, by adding an additional property to that product, and then filtering on that property.

Use the following steps to implement this scenario:

  1. Define a new property of type number and call it IsActive. Set the AssignToAll attribute to True and the DisplayOnSite attribute to False. Set the default value to either 0 (not available) or 1 (available).
  2. When creating or editing products, a value can be specified for this property, either 0 (not available) or 1 (available).
  3. Filter any recordsets of products, such as those returned from the Category.Products, Category.Search, CatalogManager.Query, CatalogManager.FreeTextSearch, CatalogManager.Search, ProductCatalog.GuaranteedSpecificationSearch, or ProductCatalog.PerformSpecificationSearch methods by specifying an ActiveX Data Objects (ADO) filter on the recordset as "IsActive=1".

    For example, wherever you have code similar to the following:

    rsProducts = oCatalog.GetCategory(strCategoryName).Products

    You need to follow it with:

    rsProducts.filter = "IsActive=1"

Note

  • Caching of HTML can prevent products from appearing on the Web site until the cache is flushed.


Code to Browse a Catalog

This section contains code examples for some of the functions needed to implement browsing. These functions are to find categories in a catalog, to find products in a category, to find product properties, and to display the results. Parameter validation and error handling are not considered in these examples. A more extensive example can be found in the Browse.asp file in the Catalog sitelet, which is in the Commerce Server 2002 Software Development Kit (SDK). The Browse.asp file and its included files demonstrate parameter validation, error handling, and generation of links from recordsets.

The following steps show how to implement browsing:

  1. Get the CatalogManager object and the catalog.

    The CatalogManager object should already be created and initialized in the Global.asa file. Get a local reference to the CatalogManager object and the catalog, as shown in the following code:

    Dim oCatMgr
Dim oCatalog
Set oCatMgr = Application("MSCSCatalogManager")
Set oCatalog = oCatMgr.GetCatalog("Adventure Works Catalog")
  2. Set the catalog language.

    The ProductCatalog object has a language property that allows the user to set the language in which the catalog data is to be displayed. Get a local reference to the ProductCatalog object and set a language for the catalog, as shown in the following code:

    oCatalog.language = "en-us"
  3. Get the categories.

    The categories in a catalog are in a hierarchy. The root categories may or may not have child categories, but they are at the base of the hierarchy. The following example creates a recordset of the root categories:

    Dim rsCategories
Set rsCategories = oCatalog.RootCategories

    The following example shows how the category hierarchy can be traversed. Given a recordset of categories at some level in the hierarchy, the CategoryName field is used to retrieve a recordset of the child categories of the active row in the given recordset:

    Dim strName
' Return the name of the category in the active row of
' the recordset (this would usually be inside a loop).
strName = rsCategories("CategoryName")
Set oCategory = oCatalog.GetCategory(strName)

    After you have the category object, obtaining the child categories is straightforward:

    'oCategory is an existing Category object.
Set rsChildCategories = oCategory.ChildCategories
  4. Get the products.

    The following example assumes that all products are in categories. Root products, that is, products that are not in any category, can exist; however, the usual design calls for all products to belong to a category. Having all products within categories simplifies code and product management. The following code retrieves the products in the "shoes" category:

    Dim rsProducts
Set rsProducts = oCatalog.GetCategory("Boots").Products
  5. Get the details about the product.

    When displaying a product, you will typically want to display some details about that product. The following example creates a recordset of the properties of a specified product:

    ' vProductID is the unique identifier for a product. This example
' uses the ProductCode as the product ID.
Dim rsProductDetail
Set rsProductDetail = _
    oCatalog.GetProduct("AW099-15").GetProductProperties
  6. Display the results.

    The following code example demonstrates how to display a set of products contained in a recordset called rsProducts.

    <br>
<%
' Loop through the recordset of products and
' write out the properties of the products.
' The constants are field names.
Do While Not rsProducts.EOF

    Response.Write "Name: " & _
                   rsProducts("Name") & "<BR>"
    Response.Write "Product Code: " & _
                   rsProducts("ProductID") & "<BR>"
    Response.Write "Description: " & _
                   rsProducts("Description") & "<BR>"

    rsProducts.MoveNext()
Loop
%>


Code to Change How a Category is Displayed

Category names must be unique within a catalog. This prevents using multiple categories with the same category name in a single catalog. For example, if you have a catalog containing a category for men's clothing and a category for women's clothing, then you cannot have a child category named Shoes in both those categories.

All categories in Commerce Server 2002 have a built-in multilingual DisplayName property that does not have to be unique. The DisplayName property defaults to the value of the CategoryName property of the category.

The following example is typical of code in the Commerce Server Retail Solution Site. It demonstrates the simple change needed to use display names:

' CATALOG_PROP_NAME is defined in an include file as "CategoryName".
' Create a new constant for display name field.
CATALOG_DISP_NAME = "DisplayName"
' Substitute CATALOG_DISP_NAME where appropriate.
' This loop writes out the list of available categories
' from a recordset as links to another page in the application:
<%
'...
Do While Not g_rsCategories.EOF
    ' The anchor tags produced below pass the category name to the
    ' file "browse.asp", but have been modified to show the display
    ' name as the hyper text (change shown in bold text).
    %>
    <a href="browse.asp?category=
       <%= Server.URLEncode(g_rsCategories(CATALOG_PROP_NAME)) %>">
       <%= g_rsCategories(CATALOG_DISP_NAME) %>
    </a>
    <br>
    <%
    g_rsCategories.MoveNext()
Loop


Code to Find the Available Catalogs

The names and attributes of the catalogs in the Product Catalog System are available in a recordset returned by the Catalog property of the CatalogManager object. The following example creates a recordset of the available catalogs and prints out a list of the catalog names in a particular language:

Dim oCatMgr
Dim rsCatalogs
' Get a local reference to the CatalogManager
' object created in the Global.asa file.
Set oCatMgr = Application("MSCSCatalogManager")

‘ Get the list of catalogs which have a en-us DisplayName.
Set rsCatalogs = oCatMgr.Catalogs( "Not((DisplayName IS NULL) or ( DisplayName = '' ))"  , , , "en-us")

'Write out the catalog names from the recordset.
If (rsCatalogs.RecordCount > 0) Then
    rsCatalogs.MoveFirst()
    Do While Not rsCatalogs.EOF
        Response.Write rsCatalogs.Fields("DisplayName").Value
        Response.Write "<BR>"
        rsCatalogs.MoveNext()
    Loop
End If


Code to Hide Searchable Categories

For some sites, searchable categories have been defined that reflect product types that are valid across various departments. These categories are intended to facilitate searching, and are different from the hierarchy of categories that are shown to users. Displaying searchable categories on the site could confuse your users.

When displaying categories on the site, your code should first check to see whether the category has the IsSearchable attribute set to True. If so, that category should not be shown. The following example filters the "Shoes" category to remove any searchable child categories. Your code should have similar filters wherever categories are going to be displayed.

' oCatalog is an existing ProductCatalog object.
Dim rsCategories
Set rsCategories = oCatalog.GetCategory("Shoes").ChildCategories

' Remove searchable categories from the recordset.
rsCategories.filter "IsSearchable = FALSE"

After running this code, the rsCategories recordset contains only shoe categories that are appropriate for display.


Code to Perform a Search of a Catalog

The following code example shows a wrapper function that performs a search of a catalog. The code uses typical values for return properties and sorting properties, and simplifies performing a search (both free-text search and SQL WHERE clause) by building the parameters for a call to the CatalogManager.Search method.

The constants used to build the values of the sPropertiesToReturn and sPropertiesToSortOn variables will need to be defined according to your catalog definition

' Function: rsSearch
'
' Description:
'    Performs a search using typical values.
'    Returns the results as a recordset.
'    iRecordCount gets set to the number of records retrieved.
'
' Parameters:
'    sSQLWhereClause     - the SQL Where Clause to filter against.
'                          Example, "cy_list_price < 100"
'    sFTSPhrase          - the free text string to find.
'                          Example, "tent"
'    iStartingRecord     - return results starting from
'                          this record number.
'    iRecordsToRetrieve  - return maximum this many records.
'    iRecordCount        - return the actually retrieved number
'                          of records in this parameter.
'    sLanguage          - the language to search and results in.
'                          Example, "en-us"
'
' Returns:
'   Recordset with search results.
' -----------------------------------------------------------------------
Function rsSearch(ByVal sSQLWhereClause, _
                          ByVal sFTSPhrase, _
                          ByVal iStartingRecord, _
                          ByVal iRecordsToRetrieve, _
                          ByVal sLanguage, _
                          ByRef iRecordCount)

    ' Declare variables:
    Dim sPropertiesToReturn
    Dim sPropertiesToSortOn
    Dim rsResult
    Dim iClassType
    Dim sCatalogsToSearch

    ' Build the parameter strings to select
    ' properties to return and to control sorting:
    ' "name" and "description" are required product
    ' properties and cannot have null values.
    sPropertiesToReturn = PRODUCT_NAME_PROPERTY_NAME & "," & _
                          PRODUCT_DESCRIPTION_PROPERTY_NAME & "," & _
                          CATALOG_NAME_PROPERTY_NAME & "," & _
                          CATEGORY_NAME_PROPERTY_NAME & "," & _
                          CATALOG_PRODUCTID_PROPERTY_NAME & "," & _
                          CATALOG_VARIANTID_PROPERTY_NAME & "," & _
                          DEFINITION_TYPE_PROPERTY_NAME

    ' "name" is a required product property and cannot have a null value.
    sPropertiesToSortOn = CATEGORY_NAME_PROPERTY_NAME & "," & _
                         PRODUCT_NAME_PROPERTY_NAME

    ' Determine what catalogs to search.
    ' This example assumes that you will always search two catalogs:
    ' CatalogA and CatalogB. You could get this parameter by having
    ' the user select which catalogs to search, or from a function
    ' that selected catalogs based on a user profile.
    sCatalogsToSearch = "CatalogA, CatalogB"

    ' Determine the type of data wanted. This example will return
    ' categories, products, and product families.
    iClassType = cscProductFamilyForVariantsClass Or _
                 cscProductClass Or
                 cscCategoryClass

    ' Call the Search method and return the recordset.
    Set rsSearch = _
          MSCSCatalogManager. Search( _
             sSQLWhereClause, _
             sFTSPhrase, _
             sCatalogsToSearch, _
             iClassType, _
             sPropertiesToReturn, _
             sPropertiesToSortOn, _
             True, _
             iStartingRecord, _
             iRecordsToRetrieve, _
             sLanguage, _
             iRecordCount _
             )

End Function


Code to Join an External Table to Product Recordsets

If you have data that does not fit naturally into the Product Catalog System or that you are already managing separately, you can join a table or view of that data to the product recordsets returned by methods in the Product Catalog System.

Using the CatalogManager.SetJoinTable method, you can specify an external table or view, the join keys, and the type of join. Subsequent calls to the following methods will return the results of the specified join:

  • CatalogManager.FreeTextSearch
  • CatalogManager.Query
  • CatalogManager.Search
  • Category.DescendentProducts
  • Category.Products
  • Category.Search
  • Product.CreateVariant
  • Product.GetProductProperties
  • Product.GetVariantProperties
  • Product.Variants
  • ProductCatalog.GetProductVariant
  • ProductCatalog.GuaranteedSpecificationSearch
  • ProductCatalog.PerformSpecificationSearch
  • ProductCatalog.RootProducts

The following code shows how to set a join with an external table:

' oCatalogManager is CatalogManager object.
' sTargetTable is a string containing the name of the external table.
' This could be a table containing inventory of the products in the
' product catalog.  For example, sTargetTable = "ProductInventory"
' sSourceKey is a string containing the name of the key in product
' catalog.  For example, sSourceKey = "ProductID"
' sTargetKey is a string containing the name of the key in the external
' table.  For example, sTargetKey = "ProductCode"
' eJoinType is a enumeration value to specify the join type.  For
' example, eJoinType = cscOuterJoin

' Call SetJoinTable to specify the external table to join with.
oCatalogManager.SetJoinTable(sTargetTable, _
                             sSourceKey, _
                             sTargetKey, _
                             eJoinType)
' Calling the above methods after calling SetJoinTable() will join the
' results of that method with external table specified


Code to Perform a Specification Search of a Catalog

Performing a specification search is an iterative process. The ProductCatalog.PerformSpecificationSearch method can return more than the recordset of matching data. This additional information can be useful for controlling program flow.

The ProductCatalog.PerformSpecificationSearch method indicates the total number of matching records. You might need to force the user to refine a search if there are too many hits. For performance reasons, you should limit the size of the returned recordset to what can be displayed on a single page. The PerformSpecificationSearch method can provide a recordset of searchable properties and existing values for those properties in an optional parameter. Display these properties and values to the user so that the search can be refined.

The following steps demonstrate the use of the PerformSpecificationSearch method:

  1. A specification search is always in the context of a single catalog. Call the BeginSpecificationSearch method to create the search handle:
    ' oCatalog is catalog object to search.
' sCategoryName is a string containing the name of the
' category to search.
Dim bNoResults      ' Test flag.
Dim sSearchHandle   ' String to hold the accumulated search clauses.
Dim rsFields        ' Recordset to hold the searchable fields
                    ' in the category.
Dim iMatchesFound   ' Holds the number of hits.

' Call BeginSpecificationSearch to create the search handle.
sSearchHandle = oCatalog.BeginSpecificationSearch(sCategoryName, _
                                                  rsFields, _
                                                  iMatchesFound)
' Test if the category is specification searchable.
bNoResults = (rsFields Is Nothing)
If bNoResults Then
    ' Display a message to the user that the
    ' category is not specification searchable.
Else
    ' Process the rsFields recordset to find
    ' searchable Fields (see step 2).
    ' Perform the search (see step 3).
End If
  2. The rsFields recordset contains one field for each property in the category. Each field in the recordset contains a SafeArray of all the available values for that property. Display this information to the user as a series of drop-down lists. After the user has made a selection and posted the form, you add specification clauses for each selected value:
    Dim arr1, arr2
Dim bQuote
Dim sValue
Dim objField, iFieldType
Dim sSearchClause, sPropertyName
Dim iConstraintFieldsCount
Dim iNonConstraintFieldsCount

' Initialize variables.
iConstraintFieldsCount = 0
iNonConstraintFieldsCount = 0

' Separate Fields into searchable and non-searchable arrays.
' GetRequestString() is a wrapper function that strips
' illegal characters from a call to AppFrameWork.RequestString.
ReDim arr1(rsFields.Fields.Count)
ReDim arr2(rsFields.Fields.Count)
For Each objField In rsFields.Fields
    sValue = GetRequestString(objField.Name, _
                  mscsMessageManager.GetMessage( _
                       "L_STEPSEARCH_NO_PREFERENCE_TEXT", _
                       sLanguage) )

    ' sValue will contain the selected value where the user has
    ' made a selection. Where the user did not make a selection
    ' sValue will contain L_STEPSEARCH_NO_PREFERENCE_TEXT
    If sValue = mscsMessageManager.GetMessage( _
                  "L_STEPSEARCH_NO_PREFERENCE_TEXT", sLanguage) Then
        ' Field is not a search constraint.
        arr1(iNonConstraintFieldsCount) = objField.Name
        iNonConstraintFieldsCount = iNonConstraintFieldsCount + 1
    Else
        ' Field is a Search Constraint.
        sPropertyName = objField.Name
        arr2(iConstraintFieldsCount) = sPropertyName
        ' Some data types must be enclosed in quotes.
        ' Look up the DataType attribute for the property
        ' from the property attributes cache.
        iFieldType = _
            MSCSCatalogAttribs.Value(sPropertyName).Value("DataType")

        If (iFieldType = cscString) Or _
           (iFieldType = cscDateTime) Or _
           (iFieldType = cscFilePath) Or _
           (iFieldType = cscEnumeration) Then
            ' If Text OR DateTime OR FilePath OR Multiple Choice.
            bQuote = True
        Else
            bQuote = False
        End If
        ' Build the search clause for one property.
        sSearchClause = ""
        For Each sValue In Request.QueryString(sPropertyName)
            If bQuote Then sValue = """" & sValue & """"
            sSearchClause = sSearchClause & ", " & sValue
        Next
        ' Add the Specification Search Clause that you just built.
        sSearchClause = "[" & sPropertyName & "]" & _
                        " IN (" & _
                        Right(sSearchClause, _
                              Len(sSearchClause) - 2) & _
                        ")"
        Call oCatalog.AddSpecificationSearchClause(sSearchClause, _
                                                   sSearchHandle)

        iConstraintFieldsCount = iConstraintFieldsCount + 1
    End If

' Process the next Field.
Next

ReDim Preserve arr1(iNonConstraintFieldsCount)
ReDim Preserve arr2(iConstraintFieldsCount)
  3. After all the parameters have been built, perform the specification search:
    Set rsResults = _
       oCatalog.PerformSpecificationSearch(sSearchHandle, _
                                           iSearchType, _
                                           , _
                                           iMatchesFound, _
                                           rsFields, _
                                           sColList)
  4. Display the results so that the user can refine the search.


Code to Stage Products and Catalogs by Time

Normally, catalog data is visible to your users as soon as it is placed in the Product Catalog System. It is possible to automatically activate products in a catalog at a predetermined time or date by adding an additional property and then filtering on that property. A similar technique can be used to deactivate products in the Product Catalog System.

The following steps show how to stage products and catalogs by time:

  1. Define a new property of type Date and call it AvailableFrom. Set the AssignToAll attribute to True and the DisplayOnSite attribute to False.
  2. When creating or editing products, you can specify a value for the AvailableFrom property that indicates the date and time that the product should become visible on your Web site.
  3. Filter any recordsets of products, such as those returned from the Category.Products, CatalogManager.Query, CatalogManager.FreeTextSearch, ProductCatalog.GuaranteedSpecificationSearch, or ProductCatalog.PerformSpecificationSearch methods by specifying an ActiveX Data Objects (ADO) filter on the recordset as "AvailableFrom<=NOW". (Where NOW must be replaced by the current date and time, appropriately formatted.)

    For example, where you have code like:

    rsProducts = oCatalog.GetCategory(strCategoryName).Products

    You need to follow it with:

    rsProducts.filter = "AvailableFrom <= " & format(Date, General Date)

    This prevents products from being visible on your Web site until the date and time specified.

Note

  • Caching of HTML might prevent products from appearing on your Web site until the cache is flushed.


Code to Use Caching with a Catalog

This example is based on the Retail Solution Site, but has been substantially simplified for clarity. See the global_cache_lib.asp page for details about all the cache initialization in the site. See the std_cache_lib.asp page for methods that encapsulate writing to and retrieving data from the caches on the site.

A cache can be either a Dictionary or LRUCache object. The following steps demonstrate the use of an LRUCache object to store HTML fragments. Using a Dictionary object is similar, but not identical; see the source code mentioned above for details about using Dictionary objects with the CacheManager object.

You can use caches to store objects, but this approach has a significant limitation. The cache will become invalid as soon as the object goes out of scope. For example, you cannot cache any type of catalog object or recordset between page requests. The Retail site does not cache objects.

The following code demonstrates:

  • How to set up the CacheManager object in the Application_OnStart event of the Global.asa file
  • How to set up the LRUCache object in the Global.asa file.
  • How to access the cache within Active Server Pages (ASP) pages by using the CacheManager object.
  • How to store and retrieve HTML fragments on an ASP page by using the LRUCache object.
  1. Create the CacheManager object in the Global.asa file.
    Dim oCacheManager

Set oCacheManager = Server.CreateObject("Commerce.CacheManager")

' SMachineBaseUrl has been set during initialization.
' It is the fully qualified URL of the application,
' not the localhost URL
oCacheManager.AppUrl = sMachineBaseUrl

'Make the CacheManager object available throughout the application.
Set Application("MSCSCacheManager") = oCacheManager
  2. Create and register the Cache object. FLRUCache Object
    ' Create a configuration dictionary for the cache.
Set dictProductPageCacheConfig = GetDictionary()
' retrieve the connection string
' from the global configuration dictionary
dictProductPageCacheConfig("ConnectionString") = _
    dictConfig.s_TransactionConfigConnectionString dictProductPageCacheConfig("CacheSize") = _
    10000
dictProductPageCacheConfig("TableName") = _
    "CatalogCache_Virtual_Directory"
dictProductPageCacheConfig("CacheName") = _
    "CatalogCache"
dictProductPageCacheConfig("AppUrl") = _
    sMachineBaseURL

' Configure CacheManager For ProductList Fragment Caching oCacheManager.RefreshInterval("ProductPageCache") = _
    0
oCacheManager.RetryInterval("ProductPageCache") = _
    5 * 60
oCacheManager.CacheObjectProgId("ProductPageCache") = _
    "Commerce.LRUCache"
oCacheManager.LoaderProgId("ProductPageCache") = _
    "Commerce.LRUCacheFlush"
Set oCacheManager.LoaderConfig("ProductPageCache") = _
    dictProductPageCacheConfig

' Call GetCache() to register the cache with the Business Desk.
Call oCacheManager.GetCache("ProductPageCache")
  3. Obtain the cache from the CacheManager object on the ASP page.
    Dim oLRUCache
Set oLRUCache = MSCSCacheManager.GetCache("ProductPageCache")
  4. Store and retrieve HTML fragments on an ASP page by using the LRUCache object. The Retail site attempts to retrieve the fragment before rendering new HTML. If no fragment is available from the cache, the site renders new HTML and caches it.
    ' Create a key that uniquely defines the fragment, in this case a product.
Dim sCacheKey

' sCatalogName & sCategoryName & sProductID & sVariantID
' are existing strings on the Product page.
sCacheKey = sCatalogName & sCategoryName & sProductID & sVariantID

' sLanguage is the language of the page.
htmPageContent = oLRUCache.Lookup(sCacheKey & sLanguage)

' Test if a fragment was retreived from the cache.
If IsNull(htmPageContent) Then
    ' Do a lot of work that puts content in htmPageContent.
    Call oLRUCache.Insert(sCacheKey & sLanguage, htmPageContent)
End If


Profiling System Objects

Profiles represent business entities such as customers, companies, products, purchase orders, and accounts. A profile contains properties of the business entity. For example, "Joe User" is a specific customer, and the data concerning "Joe User" is stored as an instance of a customer profile. The structure of the profile is determined by its schema.

The Profile Programming Concepts topic describes the Profiles resource and the objects it exposes.

Objects

Visual Basic Reference | C++ Invocation | Description
BusinessDataAdmin2 | BusinessDataAdmin2 | Imports and exports profile catalogs from the business data store.
ProfileObject | ProfileObject | Provides run-time read/write access to profile property data and read-only access to property attributes.
ProfileService | ProfileService | Allows creation, deletion, and retrieval of instances of profile schemas.

Examples

Example | Description
Code to Connect to the Profiles Store | Describes how to connect to the Profiles store.
Code to Enumerate Errors | Describes how to enumerate all errors generated by the last Profiles resource operation.
Code to Set up Bind Credentials to Directory Stores | Describes how to bind profiles to specific users.
Code to Create a New Profile | Describes how to create a new profile.
Code to Retrieve a Profile | Describes how to retrieve a profile.
Code to Modify a Profile | Describes how to modify the data stored in a profile.
Code to Delete a Profile | Describes how to delete a profile.
Code to Retrieve XML Data and Schema | Describes how to retrieve the Extensible Markup Language (XML) representations of profile data and schemas.
Code to Perform Bulk Operations using ADO and SQL | Describes how ActiveX Data Object (ADO) and SQL are used to perform bulk operations on profile data.
Code to Delete Unused Profiles | Describes how to delete a profile that has not been used for some time.
Code to Decrypt a Persistent Cookie after the Key has changed | Describes how to decrypt old cookies when using rolling key encryption.
Code to Use the ProfileService Object or Commerce Server OLEDB Provider to Update Passwords | Describes how to use the ProfileService object and the Commerce Server OLEDB Provider to update passwords.
Code to Retrieve and Set Multi-valued Attributes | Describes how to use the ProfileService object to retrieve and set multi-valued attributes.
Code to Retrieve Extended Error Information from the Commerce Server OLEDB Provider | Describes how to retrieve extended error information from the Commerce Server OLEDB provider connection object in the event of an error.

See Also

Business Desk Profiles

Profiles Schema

Profile XML Structures

ProfileObject Object

Profile Concepts

ProfileService Object

Running the Profiles Resource

Managing Encrypted Profile Properties


Profile Programming Concepts

The topics in this section describe the components of the Profiles resource, profiles programming workflow, and the relationships between profiles.

This section contains:

  • Profile Resource Components
  • Profiles Programming Workflow
  • Relationships Between Profiles


Profile Resource Components

The following topics describe the components of the Profiles resource.

ProfileService Object

This object is used to create, retrieve, and delete ProfileObject objects. For more information, see ProfileService Object.

ProfileObject Object

This object, also referred to simply as a profile, is used to access and modify ProfileObject object properties. For more information, see ProfileObject Object.

OLE DB Provider for Commerce Server

This is used to aggregate ProfileObject object data from multiple underlying data stores and expose the data as a single OLE DB Row object. For more information, see the OLE DB 2.5 specification in MSDN and OLE DB Provider for Commerce Server.

Profile Definition Designer

Available through Commerce Server Business Desk, the Profile Definition Designer provides a user interface to extend and delete current profile schemas. For more information, see Adding Properties to a Profile Definition.

Profiles Resource

Available through Commerce Server Manager in the Microsoft Management Console (MMC), the Profiles resource provides a user interface to create new profile schemas. For more information, see Running the Profiles Resource.

Profiles Definition Store

This is a group of tables in a Microsoft SQL Server database that stores profile definitions, site terms, and named expressions.

Profiles Data Store

This is a Microsoft SQL Server database, an OLE DB compliant database, or an Active Directory storage that stores instance data for profiles.


Profiles Programming Workflow

A typical series of events involved in programming with profiles includes:

  1. Initializing the profile system: once you have connected to the profile store, you can initialize the profile system using the appropriate profiles definition. For an example, see Code to Connect to the Profiles Store.
  2. Creating a new profile: you create an empty profile using a profile schema; after this, you can populate the properties of that profile and save it to the profiles store. For an example, see Code to Create a New Profile.
  3. Retrieving profile schema information: you can retrieve a list of all defined profile schema names, then retrieve the schema corresponding to one of those names. For an example, see Code to Retrieve XML Data and Schema.
  4. Retrieving the profile by specifying the primary key value and the schema name, then setting multi-valued attributes on the profile. For an example, see Code to Retrieve a Profile.
  5. Retrieving profile schema information: you can retrieve a list of all defined profile schema names, then retrieve the schema corresponding to one of those names. For an example, see Code to Retrieve XML Data and Schema.
  6. Working with the Commerce Server OLEDB Provider to update profile information: you can use this provider to update and save profile data. For an example, see Code to Use the ProfileService Object or Commerce Server OLEDB Provider to Update Passwords.
  7. Decrypting cookies using an old encryption key: if you have stored obsolete keys, you can decrypt cookies stored with that obsolete key. For an example, see Code to Decrypt a Persistent Cookie after the Key has changed.
  8. Deleting profiles: care must be taken when deleting profiles due to possible expression dependencies on the deleted profile. For an example, see Code to Delete a Profile.


Relationships between Profiles

In Commerce Server 2002, explicit relationships between profiles are not supported. If you want to establish a relationship between profiles, you can follow one of two strategies:

  • Use a multivalued property that stores the primary key field of the related profile. An example of relating users and addresses would entail using the UserObject profile to store the AddressId values of the user shipping address, billing address, work address, and so on. This multivalued property can be written to and retrieved using the ProfileService object.
  • The second approach to establishing the relationship is by using the Commerce Server OLEDB query path. An example of this approach is to define a UserId property on the Address profile, then, using Commerce Server OLEDB queries, retrieve the recordset of addresses related to a particular user.


BusinessDataAdmin2 Object [C++]

BusinessDataAdmin2 Object [Visual Basic]

Use this object to import and export profile catalogs from the business data store.

ProgID: | Commerce.BusinessDataAdmin2 (Externally creatable)
COM Class Name: | BusinessDataAdmin2
Type Library Name: | Microsoft Commerce 2002 BizData Admin Type Library
DLL Name: | BizDataManager.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | _BusinessDataAdmin2
Interface ID Constant: | None
Header File: | None
[C++]

In C++, use the _BusinessDataAdmin2 interface to access the properties and methods of the BusinessDataAdmin2 object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
Connect | Connects the object to the profile data store.
ExportCatalogs | Exports a profile catalog from the profile data store.
GetSiteTerms | Creates an XML document containing the site terms.
ImportCatalogs | Imports a profile catalog to the profile data store.
[Visual Basic]
Method | Description
Connect | Connects the object to the profile data store.
ExportCatalogs | Exports a profile catalog from the profile data store.
GetSiteTerms | Creates an XML document containing the site terms.
ImportCatalogs | Imports a profile catalog to the profile data store.

Remarks

The BusinessDataAdmin2 object has been added to Microsoft Commerce Server 2002 to provide access to the profile data store. The BusinessDataAdmin (BDAO) object that exists in Commerce Server 2000 and all editions of Commerce Server 2002 is intended for internal use only and is intentionally not documented.


_BusinessDataAdmin2 Methods [C++]

BusinessDataAdmin2Method [Visual Basic]

Methods

[C++]
Method | Description
Connect | Connects the object to the profile data store.
ExportCatalogs | Exports a profile catalog from the profile data store.
GetSiteTerms | Creates an XML document containing the site terms.
ImportCatalogs | Imports a profile catalog to the profile data store.
[Visual Basic]
Method | Description
Connect | Connects the object to the profile data store.
ExportCatalogs | Exports a profile catalog from the profile data store.
GetSiteTerms | Creates an XML document containing the site terms.
ImportCatalogs | Imports a profile catalog to the profile data store.


_BusinessDataAdmin2::Connect Method [C++]

BusinessDataAdmin2.Connect Method [Visual Basic]

Use this method to connect the object to the profile data store.

Definition

[C++]
HRESULT _BusinessDataAdmin2::Connect(
  VARIANT* connectString,
  VARIANT* UserName,
  VARIANT* Pwd,
);
[Visual Basic]
Sub Connect(
  connectString As Variant,
  Optional UserName As Variant,
  Optional Pwd As Variant
)

Parameters

connectString [C++]
[in] A pointer to a VARIANT that contains the connection string.
connectString [Visual Basic]
A Variant that contains the connection string.
UserName [C++]
[in, optional] A pointer to a VARIANT that contains the user name. The default value is "". Use this parameter only if the connection string does not contain a user name.
UserName [Visual Basic]
A Variant that contains the user name. The default value is "". Use this parameter only if the connection string does not contain a user name.
Pwd [C++]
[in, optional] A pointer to a VARIANT that contains the password. The default value is "". Use this parameter only if the connection string does not contain a password.
Pwd [Visual Basic]
A Variant that contains the password. The default value is "". Use this parameter only if the connection string does not contain a password.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) or S_FALSE (&H00000001) to indicate success and to either standard or custom COM error values to indicate failure. If this method returns a property or object it will return Nothing on failure. The method may succeed and yet return Nothing due to a subtle syntax error or a request for a property or object that does not exist. Test the return value for Nothing before relying on it. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
ERR_MISSING_COREDLL | [C++] 0x800A00B9 [Visual Basic] &H800A00B9 (185) | The Microsoft Commerce Server Core library is missing, not registered, or could not load properly. Please reinstall Commerce Server 4.0. (File: '%0\\McscCore.dll')
ERR_WRONG_PARAM | [C++] 0x800A0072 [Visual Basic] &H800A0072 114 | Error: Wrong input parameter (check for Empty or Null input parameter)
ERR_INVALID_CONNSTR_TOKENS | [C++] 0x800A00CE [Visual Basic] &H800A00CE 206 | Operations cannot be performed against the Master database.

Remarks

This method must be called prior to calling either the ExportCatalogs or ImportCatalogs method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' strConnect is a valid connection string
' that contains the user ID and password.

myBusinessDataAdmin2.Connect strConnect

See Also

[C++] BusinessDataAdmin2 Object

[Visual Basic] BusinessDataAdmin2 Object


_BusinessDataAdmin2::ExportCatalogs Method [C++]

BusinessDataAdmin2.ExportCatalogs Method [Visual Basic]

Use this method to export the profile catalog (profile schema) in the business data store to an XML file.

Definition

[C++]
HRESULT _BusinessDataAdmin2::ExportCatalogs(
  BSTR* sFileName,
  VARIANT_BOOL* bRemoveCredentials
);
[Visual Basic]
Sub ExportCatalogs(
  sFileName As String,
  Optional bRemoveCredentials As Boolean
)

Parameters

sFileName [C++]
[in, out] A pointer to A BSTR that specifies the file that will contain the exported profile catalog. This is a local file path — it cannot be a URL.
sFileName [Visual Basic]
A String that specifies the file that will contain the exported profile catalog. This is a local file path — it cannot be a URL.
bRemoveCredentials [C++]
[in, optional] A pointer to a VARIANT_BOOL that specifies whether to remove the credentials from the connection strings in the profile catalog. A value of True indicates remove the credentials. A value of False indicates do not remove the credentials. The default value True.
bRemoveCredentials [Visual Basic]
A Boolean that specifies whether to remove the credentials from the connection strings in the profile catalog. A value of True indicates remove the credentials. A value of False indicates do not remove the credentials. The default value is True.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
ERR_NOCONNECTION | [C++] 0x800A00BF [Visual Basic] &H800A00BF 191 | No connection is open to the database. The Connect() method should be called first.
ERR_WRONG_PARAM | [C++] 0x800A0072 [Visual Basic] &H800A0072 114 | Error: Wrong input parameter (check for Empty or Null input parameter)
ERR_PROFILE_NOTFOUND | [C++] 0x800A0075 [Visual Basic] &H800A0075 117 | Cannot find profile '%0'.
ERR_SOURCE_NOTFOUND | [C++] 0x800A0071 [Visual Basic] &H800A0071 113 | Cannot find data-source '%0' in catalog '%1'.
ERR_PRIMARYKEY | [C++] 0x800A00AB [Visual Basic] &H800A00AB 171 | Profile '%0' could not be created/updated because it does not have exactly one primary key defined.
ERR_JOINKEY | [C++] 0x800A00AC [Visual Basic] &H800A00AC 172 | Profile '%0' could not be created/updated because it does not have exactly one join key defined.
ERR_INVALIDTYPE_RDNATTR | [C++] 0x800A00AD [Visual Basic] &H800A00AD 173 | The profile-property '%0' is marked as an RDN-attribute, but is not of type 'STRING'.
ERR_INVALID_HASHKEY | [C++] 0x800A00AE [Visual Basic] &H800A00AE 174 | The profile-property '%0' is marked as a hashing key, but is not of type 'STRING'.
ERR_INVALID_UNIQUEKEY | [C++] 0x800A00AF [Visual Basic] &H800A00AF 175 | The profile-property '%0' is marked as a unique, primary, and/or join key, but is not of type 'STRING' or 'NUMBER'.
ERR_INVALIDMAP | [C++] 0x800A00B3 [Visual Basic] &H800A00B3 179 | The profile property '%0' is mapped to a data member in a source which is not referenced by the join key.
ERR_DUPLICATEJOINMAP | [C++] 0x800A00B4 [Visual Basic] &H800A00B4 180 | The join key '%0' references more than one data member from a single source. A join key may map to only one member from a data object.
ERR_KEY_MULTIVALUE | [C++] 0x800A00BB [Visual Basic] &H800A00BB 187 | The property '%0' cannot be multi-valued because it is a key.
ERR_OLEDB_MULTIVAL | [C++] 0x800A00BC [Visual Basic] &H800A00BC 188 | The property '%0' cannot be marked as multi-valued. It references a data member from an OLEDB-ANSI source of type '%1'. Only members of type 'STRING' may be marked as multi-valued.
ERR_VALUE_TOO_LONG | [C++] 0x800A00B8 [Visual Basic] &H800A00B8 184 | The database field '%0' cannot be updated. The value '%1' exceeds the maximum length of %2 characters.
ERR_CACHEDPROP_IS_PRIMARYKEY | [C++] 0x800A00B5 [Visual Basic] &H800A00B5 181 | The primary key for this profile may not be a cached (non-persistent) property.
ERR_CACHEDPROP_IS_JOINKEY | [C++] 0x800A00B6 [Visual Basic] &H800A00B6 182 | The join key for this profile may not be a cached (non-persistent) property.
ERR_MULTIPLE_RDNATTRS | [C++] 0x800A008D [Visual Basic] &H800A008D 141 | The profile '%0' contains multiple properties marked as the RDN Attribute for the data source '%1'. Exactly one RDN Attribute must be defined for each LDAPv3-compliant data source.
ERR_MULTIPLE_HASHKEYS | [C++] 0x800A008E [Visual Basic] &H800A008E 142 | The profile '%0' contains multiple properties marked as the hashing key.
ERR_INVALID_RDNATTR | [C++] 0x800A008F [Visual Basic] &H800A008F 143 | The profile-property '%0' is marked as an RDN-attribute, but does not map to an LDAPv3-compliant data-source.
ERR_PROP_INVALID_HASHKEY | [C++] 0x800A0090 [Visual Basic] &H800A0090 144 | The profile-property '%0' is marked as a hashing-key, but does not map to any partitioned data-sources.
ERR_NO_RDN_ATTRIBUTE | [C++] 0x800A0091 [Visual Basic] &H800A0091 145 | The profile '%0' uses an LDAPv3-compliant data-source, but no property is marked as the RDN-attribute. Exactly one RDN Attribute must be defined for each LDAPv3-compliant data source.
ERR_INVALID_DATATYPE | [C++] 0x800A00C0 [Visual Basic] &H800A00C0 192 | The property: [%0] in profile: [%1] is mapped to an incorrect data type.
ERR_INVALID_MARKEDTYPEREF | [C++] 0x800A00C1 [Visual Basic] &H800A00C1 193 | The property: [%0] in profile: [%1] is incorrectly marked as a reference type.
ERR_INVALID_MULTI | [C++] 0x800A00C2 [Visual Basic] &H800A00C2 194 | The property: [%0] in profile: [%1] is incorrectly marked as multivalued.
ERR_INVALID_TYPEREF | [C++] 0x800A00C3 [Visual Basic] &H800A00C3 195 | The property: [%0] in profile: [%1] is referencing an invalid type.
ERR_INVALID_PROPTYPE | [C++] 0x800A00C4 [Visual Basic] &H800A00C4 196 | The property: [%0] in profile: [%1] is of incorrect type.
ERR_INVALID_MAPPEDDATA | [C++] 0x800A00C5 [Visual Basic] &H800A00C5 197 | The property: [%0] in profile: [%1] is mapped to a data member: [%2] but this data member does not exist.
ERR_INVALID_MAPPEDDATATYPE | [C++] 0x800A00C6 [Visual Basic] &H800A00C6 198 | The property: [%0] in profile: [%1] is mapped to data member: [%2] of incorrect type
ERR_INVALID_PROFILEREF | [C++] 0x800A00C7 [Visual Basic] &H800A00C7 199 | The property: [%0] in profile: [%1] is referencing a profile: [%2] that does not exist.
ERR_INVALID_SITETERMREF | [C++] 0x800A00C8 [Visual Basic] &H800A00C8 200 | The property: [%0] in profile: [%1] is referencing a siteterm: [%2] that does not exist.

Remarks

You must call the Connect method before calling this method.

The exported XML document will conform to the schema specified in file MSCSProfileSchema.xml, and will contain both site terms and profile definitions.

If the bRemoveCredentials parameter is True, then the credentials (user name and password) will be removed from all connection strings. These credentials will have to be replaced before the catalog can be imported. If the catalog is imported through Commerce Server Manager, the user must enter a user name and password for each data source partition in the catalog. See Exporting Profile Schema for more information.

If the bRemoveCredentials parameter is False, then the credentials will be exported in plain text with the rest of the catalog.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

The following example exports the profile catalog to a file:

myBusinessDataAdmin2.ExportCatalogs("C:\myfolder\myProfileCatalog.xml",_
   bRemoveCredentials)

See Also

[C++] BusinessDataAdmin2 Object

[Visual Basic] BusinessDataAdmin2 Object


_BusinessDataAdmin2::GetSiteTerms Method [C++]

BusinessDataAdmin2.GetSiteTerms Method [Visual Basic]

Use this method to create an XML document containing the site terms.

Definition

[C++]
HRESULT _BusinessDataAdmin2::GetSiteTerms(
  BSTR sEncode
  IXMLDOMDocument** unnamed parameter
);
[Visual Basic]
Function GetSiteTerms(
  Optional sEncode As String
) As DOMDocument

Parameters

sEncode [C++]
[in, optional] A BSTR that contains the document encoding.
sEncode [Visual Basic]
A String that contains the document encoding.
unnamed parameter [C++]
[out, retval] A pointer used to return a DOMDocument object that will contain the site terms.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a DOMDocument object that contains the site terms.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
ERR_NOCONNECTION | [C++] 0x800A00BF [Visual Basic] &H800A00BF 191 | No connection is open to the database. The Connect() method should be called first.
ERR_PROFILEPATH_INVALID | [C++] 0x800A007C [Visual Basic] &H800A007C 124 | Invalid profile-path '%0'.
ERR_CATALOG_NOTFOUND | [C++] 0x800A0074 [Visual Basic] &H800A0074 116 | Cannot find catalog '%0'.
ERR_PROFILE_NOTFOUND | [C++] 0x800A0075 [Visual Basic] &H800A0075 117 | Cannot find profile '%0'.
ERR_SOURCE_NOTFOUND | [C++] 0x800A0071 [Visual Basic] &H800A0071 113 | Cannot find data-source '%0' in catalog '%1'.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The unnamed parameter contains valid data only if the method completed successfully.

[Visual Basic] The DOMDocument object returned by this property is valid only if the method completed successfully.

The sEncode parameter is used to specify the encoding within the document. It inserts the following tag in the document. <xml encoding = "<sEncode>"> It does not change how the site terms are encoded or perform any validation that the encoding in the document matches the sEncode parameter.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

'
set MyDoc = myBusinessDataAdmin2.GetSiteTerms()

See Also

[C++] BusinessDataAdmin2 Object

[Visual Basic] BusinessDataAdmin2 Object


_BusinessDataAdmin2::ImportCatalogs [C++]

BusinessDataAdmin2.ImportCatalogs [Visual Basic]

Use this method to import the profile catalog (profile schema) in an XML document to the business data store.

Definition

[C++]
HRESULT _BusinessDataAdmin2::ImportCatalogs(
  BSTR* sXMLDocument
);
[Visual Basic]
Sub ImportCatalogs(
  sXMLDocument As String
)

Parameters

sXMLDocument [C++]
[in] A pointer to a BSTR that contains the XML document containing the profile catalog to be imported.
sXMLDocument [Visual Basic]
A String that contains the XML document containing the profile catalog to be imported.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
ERR_NOCONNECTION | [C++] 0x800A00BF [Visual Basic] &H800A00BF 191 | No connection is open to the database. The Connect() method should be called first.
ERR_XML_PARSE | [C++] 0x800A007A [Visual Basic] &H800A007A 122 | Parse errors in XML document '%0', line %1, col %2. Reason: %3
ERR_BAD_NAMESPACE | [C++] 0x800A00CB [Visual Basic] &H800A00CB 203 | The xml does not contain the correct namespace.
ERR_MEMBER_INVALID_NEWDELETE | [C++] 0x800A00A2 [Visual Basic] &H800A00A2 162 | One or more profile-members have invalid attributes: isNew='1' and isDeleted='1'.
ERR_MISSING_CATALOG | [C++] 0x800A00CD [Visual Basic] &H800A00CD 205 | The file does not contain any catalogs.
ERR_MEMBER_INVALID_NEWMODIFIED | [C++] 0x800A00A4 [Visual Basic] &H800A00A4 164 | One or more profile-members have invalid attributes: isNew='1' and isModified='1'.
ERR_INVALID_CATALOG_NAME | [C++] 0x800A00CC [Visual Basic] &H800A00CC 204 | The catalog '%0' is an invalid name.
ERR_CATALOG_DELETEFAILED | [C++] 0x800A0079 [Visual Basic] &H800A0079 121 | Cannot delete catalog '%0'. Source: '%1' Reason: '%2'
ERR_CATALOG_EXISTS | [C++] 0x800A006E [Visual Basic] &H800A006E 110 | Catalog '%0' already exists.
ERR_CATALOG_NOTFOUND | [C++] 0x800A0074 [Visual Basic] &H800A0074 116 | Cannot find catalog '%0'.
ERR_SOURCE_INVALIDTYPE | [C++] 0x800A00B0 [Visual Basic] &H800A00B0 176 | '%0' is not a valid source type.
ERR_NO_SRCINFOS | [C++] 0x800A0087 [Visual Basic] &H800A0087 135 | No source-infos were specified for data-source '%0'.
ERR_TOO_MANY_SRCINFOS | [C++] 0x800A0088 [Visual Basic] &H800A0088 136 | More than one source-info is specified for non-partitioned data-source '%0'. A non-partitioned data source may only have one source-info.
ERR_NOT_ONE_DEFAULT_SRCINFO | [C++] 0x800A0089 [Visual Basic] &H800A0089 137 | One source-info must be marked as default for data-source '%0'.
ERR_TOO_MANY_PARTITIONS | [C++] 0x800A00BA [Visual Basic] &H800A00BA 186 | The data source '%0' contains %1 partitions. A single data source cannot have more than %2 partitions.
ERR_SOURCE_INVALIDNAME | [C++] 0x800A00A9 [Visual Basic] &H800A00A9 169 | The data source '%0' cannot be created because the source name contains invalid characters: %1
ERR_DUPLICATE_SOURCENAME | [C++] 0x800A00BD [Visual Basic] &H800A00BD 189 | A Data-Source already exists with the name '%0'.
ERR_SOURCE_EXISTS | [C++] 0x800A0066 [Visual Basic] &H800A0066 102 | Error: The Data Source '%0' already exists and cannot be created or modified.
ERR_DUPLICATE_PARTITIONNAME | [C++] 0x800A00BE [Visual Basic] &H800A00BE 190 | A Data-Source partition already exists with the name '%0'.
ERR_SRCINFO_SRCTYPE | [C++] 0x800A00B3 [Visual Basic] &H800A00B3 178 | The source type of data-source '%0' cannot be modified.
ERR_SRCINFO_NOTFOUND | [C++] 0x800A008A [Visual Basic] &H800A008A 138 | The source-info '%1' could not be found in data-source '%0'.
ERR_ATTRIBUTE_INVALIDNAME | [C++] 0x800A00A8 [Visual Basic] &H800A00A8 168 | The attribute '%0' cannot be created because the attribute name contains invalid characters: %1
ERR_ATTRIBUTE_EXISTS | [C++] 0x800A0085 [Visual Basic] &H800A0085 133 | Duplicate names are not allowed: '%0' already exists on '%1'.
ERR_TABLE_INVALIDNAME | [C++] 0x800A00B1 [Visual Basic] &H800A00B1 177 | The data object '%0' cannot be created because the object name contains invalid characters: %1
ERR_TABLE_EXISTS | [C++] 0x800A0082 [Visual Basic] &H800A0082 130 | The data-object '%0' already exists. (Source '%1', Catalog '%2'.)
ERR_TABLE_NOTFOUND | [C++] 0x800A0083 [Visual Basic] &H800A0083 131 | The data-object '%0' could not be found. (Source '%1', Catalog '%2'.)
ERR_COLUMN_EXISTS | [C++] 0x800A007F [Visual Basic] &H800A007F 127 | The data-member '%0' already exists.
ERR_COLUMN_NOTFOUND | [C++] 0x800A007E [Visual Basic] &H800A007E 126 | The data-member '%0' could not be found.
ERR_INVALID_TYPEDEF | [C++] 0x800A0078 [Visual Basic] &H800A0078 120 | The data type '%1' for source member '%0' is invalid.
ERR_INVALID_TYPEDEF_FOR_SOURCE | [C++] 0x800A00B7 [Visual Basic] &H800A00B7 183 | The data type '%1' for source member '%0' is invalid (data type invalid for source type '%2').
ERR_MEMBER_EXISTS | [C++] 0x800A0077 [Visual Basic] &H800A0077 119 | Profile member '%1' cannot be created. A property or group named '%0' already exists within the profile.
ERR_MEMBER_NOTFOUND | [C++] 0x800A0081 [Visual Basic] &H800A0081 129 | The profile-member '%0' could not be found.
ERR_MEMBER_NOT_GROUP | [C++] 0x800A007D [Visual Basic] &H800A007D 125 | The profile-member corresponding to group '%0' in the XML document is not a group.
ERR_PRIMARYKEY | [C++] 0x800A00AB [Visual Basic] &H800A00AB 171 | Profile '%0' could not be created/updated because it does not have exactly one primary key defined.
ERR_JOINKEY | [C++] 0x800A00AC [Visual Basic] &H800A00AC 172 | Profile '%0' could not be created/updated because it does not have exactly one join key defined.
ERR_INVALIDTYPE_RDNATTR | [C++] 0x800A00AD [Visual Basic] &H800A00AD 173 | The profile-property '%0' is marked as an RDN-attribute, but is not of type 'STRING'.
ERR_INVALID_HASHKEY | [C++] 0x800A00AE [Visual Basic] &H800A00AE 174 | The profile-property '%0' is marked as a hashing key, but is not of type 'STRING'.
ERR_INVALID_UNIQUEKEY | [C++] 0x800A00AF [Visual Basic] &H800A00AF 175 | The profile-property '%0' is marked as a unique, primary, and/or join key, but is not of type 'STRING' or 'NUMBER'.
ERR_INVALIDMAP | [C++] 0x800A00B3 [Visual Basic] &H800A00B3 179 | The profile property '%0' is mapped to a data member in a source which is not referenced by the join key.
ERR_DUPLICATEJOINMAP | [C++] 0x800A00B4 [Visual Basic] &H800A00B4 180 | The join key '%0' references more than one data member from a single source. A join key may map to only one member from a data object.
ERR_KEY_MULTIVALUE | [C++] 0x800A00BB [Visual Basic] &H800A00BB 187 | The property '%0' cannot be multi-valued because it is a key.
ERR_OLEDB_MULTIVAL | [C++] 0x800A00BC [Visual Basic] &H800A00BC 188 | The property '%0' cannot be marked as multi-valued. It references a data member from an OLEDB-ANSI source of type '%1'. Only members of type 'STRING' may be marked as multi-valued.
ERR_VALUE_TOO_LONG | [C++] 0x800A00B8 [Visual Basic] &H800A00B8 184 | The database field '%0' cannot be updated. The value '%1' exceeds the maximum length of %2 characters.
ERR_CACHEDPROP_IS_PRIMARYKEY | [C++] 0x800A00B5 [Visual Basic] &H800A00B5 181 | The primary key for this profile may not be a cached (non-persistent) property.
ERR_CACHEDPROP_IS_JOINKEY | [C++] 0x800A00B6 [Visual Basic] &H800A00B6 182 | The join key for this profile may not be a cached (non-persistent) property.
ERR_MULTIPLE_RDNATTRS | [C++] 0x800A008D [Visual Basic] &H800A008D 141 | The profile '%0' contains multiple properties marked as the RDN Attribute for the data source '%1'. Exactly one RDN Attribute must be defined for each LDAPv3-compliant data source.
ERR_MULTIPLE_HASHKEYS | [C++] 0x800A008E [Visual Basic] &H800A008E 142 | The profile '%0' contains multiple properties marked as the hashing key.
ERR_INVALID_RDNATTR | [C++] 0x800A008F [Visual Basic] &H800A008F 143 | The profile-property '%0' is marked as an RDN-attribute, but does not map to an LDAPv3-compliant data-source.
ERR_PROP_INVALID_HASHKEY | [C++] 0x800A0090 [Visual Basic] &H800A0090 144 | The profile-property '%0' is marked as a hashing-key, but does not map to any partitioned data-sources.
ERR_NO_RDN_ATTRIBUTE | [C++] 0x800A0091 [Visual Basic] &H800A0091 145 | The profile '%0' uses an LDAPv3-compliant data-source, but no property is marked as the RDN-attribute. Exactly one RDN Attribute must be defined for each LDAPv3-compliant data source.
ERR_INVALID_DATATYPE | [C++] 0x800A00C0 [Visual Basic] &H800A00C0 192 | The property: [%0] in profile: [%1] is mapped to an incorrect data type.
ERR_INVALID_MARKEDTYPEREF | [C++] 0x800A00C1 [Visual Basic] &H800A00C1 193 | The property: [%0] in profile: [%1] is incorrectly marked as a reference type.
ERR_INVALID_MULTI | [C++] 0x800A00C2 [Visual Basic] &H800A00C2 194 | The property: [%0] in profile: [%1] is incorrectly marked as multivalued.
ERR_INVALID_TYPEREF | [C++] 0x800A00C3 [Visual Basic] &H800A00C3 195 | The property: [%0] in profile: [%1] is referencing an invalid type.
ERR_INVALID_PROPTYPE | [C++] 0x800A00C4 [Visual Basic] &H800A00C4 196 | The property: [%0] in profile: [%1] is of incorrect type.
ERR_INVALID_MAPPEDDATA | [C++] 0x800A00C5 [Visual Basic] &H800A00C5 197 | The property: [%0] in profile: [%1] is mapped to a data member: [%2] but this data member does not exist.
ERR_INVALID_MAPPEDDATATYPE | [C++] 0x800A00C6 [Visual Basic] &H800A00C6 198 | The property: [%0] in profile: [%1] is mapped to data member: [%2] of incorrect type
ERR_INVALID_PROFILEREF | [C++] 0x800A00C7 [Visual Basic] &H800A00C7 199 | The property: [%0] in profile: [%1] is referencing a profile: [%2] that does not exist.
ERR_INVALID_SITETERMREF | [C++] 0x800A00C8 [Visual Basic] &H800A00C8 200 | The property: [%0] in profile: [%1] is referencing a siteterm: [%2] that does not exist.

Remarks

You must call the Connect method before calling this method.

The XML data in the parameter sXMLDocument must contain a single profile catalog, and it must conform to the schema in the file MSCSProfileSchema.xml.

If the catalog you want to import was exported without credentials you will need to add credentials for each data source in the catalog before it can be imported.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

The following example imports a catalog from the file ProfileCatalog.xml:

myBusinessDataAdmin2.ImportCatalogs("C:\myFolder\ProfileCatalog.xml")

See Also

[C++] BusinessDataAdmin2 Object

[Visual Basic] BusinessDataAdmin2 Object


ProfileObject Object[C++]

ProfileObject Object [Visual Basic]

Use this object to retrieve the data in specific profile object instances and modify the property values for that profile object. In addition, use the ProfileObject object to examine and navigate the property attributes of a profile object.

ProgID: | Commerce.ProfileObject (Externally creatable)
COM Class Name: | ProfileObject
Type Library Name: | Microsoft Commerce 2002 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both
[C++]
COM Interface Name: | IProfileObject2
Interface ID Constant: | IID_IProfileObject2
Header File: | mscsups.h, mspu_guids.h
[C++]

In C++, use the IProfileObject interface to access the properties and methods of the ProfileObject object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the profile object.
Update | Saves the profile data to the underlying data store.
UpdateProfileXML | Changes the properties of the ProfileObject object.
[Visual Basic]
Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the profile object.
Update | Saves the profile data to the underlying data store.
UpdateProfileXML | Changes the properties of the ProfileObject object.

Properties

[C++]
Property | Type | Description
Fields | Fields | Stores the profile property collection. This property is read-only.
[Visual Basic]
Property | Type | Description
Fields | Object | Stores the profile property collection. This property is read-only.

Remarks

The ProfileObject object maintains backward compatibility with the AUO 1.0 object (released in Microsoft Site Server 3.0 Commerce Edition) by inheriting from the IADs interface. Refer to the MSDN ADSI documentation for descriptions of the methods of the IADs interface.

The ProfileObject object supports extended dot notation. For example, using extended dot notation, the following:

oProfileObject.Fields("Address.Zipcode")

is equivalent to:

oProfileObject.Fields("Address").Value("Zipcode")

The first technique retrieves the Zipcode value in a single call to Fields.Value, while the second technique requires two calls to retrieve the same value.

The ProfileObject object also provides smart navigation into profiles. For example, using smart navigation, the following:

oProfileObject.Address.ZipCode

is equivalent to:

oProfileObject.Fields("Address.Zipcode")

In general, the CreateProfile method of the ProfileService object is used to instantiate this object.

See Also

[C++] Profile Objects

[C++] Profile Schema

[C++] Profile XML Structures

[C++] ProfileService Object

[Visual Basic] Profile Objects

[Visual Basic] Profile Schema

[Visual Basic] Profile XML Structures

[Visual Basic] ProfileService Object


IProfileObject2 Methods [C++]

ProfileObject Methods [C++]

Methods

[C++]
Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the profile object.
Update | Saves the profile data to the underlying data store.
UpdateProfileXML | Changes the properties of the ProfileObject object.
[Visual Basic]
Method | Description
GetProfileXML | Retrieves an XML fragment representing the data structure of the profile object.
Update | Saves the profile data to the underlying data store.
UpdateProfileXML | Changes the properties of the ProfileObject object.


IProfileObject2::GetProfileXML Method [C++]

ProfileObject.GetProfileXML Method [Visual Basic]

Use this method to retrieve the XML schema and data of the profile object.

Definition

[C++]
HRESULT IProfileObject2::GetProfileXML (
  XMLRetrieveEnum eRetrieveEnum,
  VARIANT_BOOL bAttributeCentric,
  BSTR* pbstrXML
);
[Visual Basic]
Function GetProfileXML (
  eRetrieveEnum As XMLRetrieveEnum,
  bAttributeCentric As Boolean
) As String

Parameters

eRetrieveEnum [C++]
[in] An Enum that indicates whether to retrieve the XML schema, data, or both.
eRetrieveEnum [Visual Basic]
[in] An Enum that indicates whether to retrieve the XML schema, data, or both.
bAttributeCentric [C++]
[in] A VARIANT_BOOL that indicates the XML output format. Set this parameter to True (1) to retrieve the XML in an attribute-centric format, and to False (0) to retrieve the XML in an element-centric format.
bAttributeCentric [Visual Basic]
[in] A Boolean that indicates if the XML output format. Set this parameter to True (1) to retrieve the XML in an attribute-centric format, and to False (0) to retrieve the XML in an element-centric format.
pbstrXML [C++]
[out, retval] A pointer to a BSTR that contains the resulting XML fragment.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns a String containing the XML representation of the profile object.

Error Values

[C++] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

[C++]

The pbstrXML parameter contains valid data only if the method completes successfully.

The following table defines the possible values for XMLRetrieveEnum.

Name | Value | Description
psRetrieveInvalidValue | 0 | Invalid option
psRetrieveSchemaAndData | 1 | Both the schema and data are retrieved.
psRetrieveDataOnly | 2 | Only the data is retrieved.
psRetrieveSchemaOnly | 3 | Only the schema is retrieved.

For information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sXMLProfile is a String, oProfileObject is a UserObject profile

sXMLProfile = oProfileObject.GetProfileXML(psRetrieveDataOnly, True)

' The attribute-centric sXMLProfile string now contains:
   <?xml version="1.0"?>
   <ProfileDocument>
   <UserObject>
      <AccountInfo  org_id="{590858E1-08A7-11D3-B8C4-00104B95AE0E}"
         account_status="1" date_registered="2000- 6- 5T 0: 0: 0">
      </AccountInfo>
      <GeneralInfo  user_id="{590858DB-08A7-11D3-B8C4-00104B95FFFF}"
         logon_name="jilluser@microsoft.com"
         user_security_password="password" user_title="" last_name="User"
         first_name="Jill" user_id_changed_by="MyAdminID">
      </GeneralInfo>
   </UserObject>
   </ProfileDocument>

sXMLProfile = oProfileObject.GetProfileXML(psRetrieveDataOnly, False)

' The element-centric sXMLProfile string now contains:
   <?xml version="1.0"?>
   <ProfileDocument>
   <UserObject>
      <AccountInfo>
         <org_id>{590858E1-08A7-11D3-B8C4-00104B95AE0E}</org_id>
         <account_status>1</account_status>
         <date_registered>2000- 6- 5T 0: 0: 0</date_registered>
      </AccountInfo>
      <GeneralInfo
         <user_id>{590858DB-08A7-11D3-B8C4-00104B95FFFF}</user_id>
         <logon_name>jilluser@microsoft.com</logon_name>
         <user_security_password>password</user_security_password>
         <user_title></user_title>
         <last_name>User</last_name>
         <first_name>Jill</first_name>
         <user_id_changed_by>MyAdminID</user_id_changed_by>
      </GeneralInfo>
   </UserObject>
   </ProfileDocument>

See Also

[C++] ProfileObject Object

[C++] IProfileObject2::get_Fields

[C++] Profile XML Structures

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields

[Visual Basic] Profile XML Structures


IProfileObject2::Update Method [C++]

ProfileObject.Update Method [Visual Basic]

Use this method to save ProfileObject object data to the underlying data store.

Definition

[C++]
HRESULT IProfileObject2::Update(
);
[Visual Basic]
Sub Update()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

The Update method commits the object to the data store.

Any changes made using the IADs interface routines are committed to the database.

Use the Fields property to access the ProfileObject object data.

See Also

[C++] ProfileObject Object

[C++] IProfileObject2::get_Fields

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileObject2::UpdateProfileXML Method [C++]

ProfileObject2.UpdateProfileXML Method [Visual Basic]

Use this method to change the properties of the ProfileObject object.

Definition

[C++]
HRESULT IProfileObject2::UpdateProfileXML(
  BSTR bstrProfileXML,
  XMLFormatEnum eXMLFormat
);
[Visual Basic]
Sub UpdateProfileXML(
  bstrProfileXML As String,
  eXMLFormat As XMLFormatEnum
)

Parameters

bstrProfileXML [C++]
[in] A BSTR that contains the profile XML data.
bstrProfileXML [Visual Basic]
A String that contains the profile XML data.
eXMLFormat [C++]
[in] An XMLFormatEnum enumeration that contains the XML format.
eXMLFormat [Visual Basic]
An XMLFormatEnum enumeration that contains the XML format.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

Use the Update method to commit the property changes to the data store.

This method updates the properties of the ProfileObject object with the values in the bstrProfileXML parameter. A partial update is allowed. All properties provided in the XML data will be updated.

Properties that are marked as a join key cannot be updated.

The following table shows the values in the XMLFormatEnum enumeration, their associated names, and describes their use.

Name | Value | Description
eInvalid | 0 | Reserved for future use.
eAttributeCentric | 1 | Attribute centric XML format.
eElementCentric | 2 | Element centric XML format.
[Visual Basic]

Example

'sXMLProfile is a string containing:

<?xml version="1.0"?>

<User email="Joe@Cool.com" guid="123" creationDate="3/27/00" version="5" FavoriteColors="e1 e2">
  <FavoriteColors id="e1">Red</FavoriteColors>
  <FavoriteColors id="e2">Green</FavoriteColors>
  <HomeAddress address="4149 Beach Drive" city="San Diego" state="CA">
  </HomeAddress>
  <SecureInfo password="*****" creditCard="1234565">
  </SecureInfo>
</User>

myProfileObject2.UpdateProfileXML(sXMLProfile, eAttributeCentric)

See Also

[C++] ProfileObject Object

[C++] IProfileObject2::get_Fields

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileObject2 Properties [C++]

ProfileObject Properties [C++]

Properties

[C++]
Property | Type | Description
Fields | Fields | Stores the profile property collection. This property is read-only.
[Visual Basic]
Property | Type | Description
Fields | Object | Stores the profile property collection. This property is read-only.


IProfileObject2::get_Fields Property[C++]

ProfileObject.Fields Property [Visual Basic]

The Fields property is a read-only Fields collection that contains the profile property data for the ProfileObject object. Read-only refers to the inability to add or delete members (profile properties) of the Fields collection. This property is the default property of the ProfileObject object. Use this property to set and retrieve profile property values and to navigate the attribute list of the properties.

Definition

[C++]
HRESULT IProfileObject2::get_Fields(
  Fields** ppFields
);
[Visual Basic]
Property Fields As Object

Parameters

ppFields [C++]
[out, retval] The address of a pointer to a Fields collection used to return the profile object properties.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following Error Values section for more details.

Error Values

[C++] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property of the ProfileService object stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

The Fields collection is similar to an ADO Fields collection object. The following ADO Fields methods and properties are supported:

  • Count
  • Item
  • _NewEnum

A member of the Fields collection is a Field object that represents a single property or property group of a ProfileObject object. The Field object is similar to an ADO Field object. The following ADO Field methods and properties are supported:

  • Properties - Returns the read-only Attributes collection.
  • DefinedSize - Retrieves the defined size of the data type.
  • Name
  • Type
  • Value - When dealing with implementations involving the encryption of profile properties, note that the KeyIndex Field object requires special consideration in that the Value property of this object is read-only. Any assignment to the Value property will result in an error.

The Attributes collection is represented as an ADO Properties object. The following ADO Properties methods and properties are supported:

  • Count
  • Item
  • _NewEnum

Use the Update method of the ProfileObject object to save any changed profile data in the underlying data store.

The Fields property of the ProfileObject object supports extended dot notation for increased performance. For example, using extended dot notation, the following:

oProfileObject.Fields("Address.Zipcode")

is equivalent to:

oProfileObject.Fields("Address").Value("Zipcode")

For information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppFields parameter contains valid data only if the property is accessed successfully.

See Also

[C++] ProfileObject Object

[C++] ProfileService Object

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileService Object


ProfileService Object [C++]

ProfileService Object [Visual Basic]

Use this object to create, delete, and retrieve ProfileObject objects.

ProgID: | Commerce.ProfileService (Externally creatable)
COM Class Name: | ProfileService
Type Library Name: | Microsoft Commerce 2002 Profile Service Type Library
DLL Name: | mscsups.dll
Threading Model: | Both
[C++]
COM Interface Name: | IProfileService2
Interface ID Constant: | IID_IProfileService2
Header File: | mscsups.h, mspu_guids.h
[C++]

In C++, use the ProfileService2 interface to access the properties and methods of the ProfileService object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object from XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
UnBind | Clears the user credentials for accessing the underlying Profiles store.
[Visual Basic]
Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object from XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
UnBind | Clears the user credentials for accessing the underlying Profiles store.

Properties

[C++]
Property | Type | Description
Errors | Errors | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.
[Visual Basic]
Property | Type | Description
Errors | Object | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.

Remarks

The ProfileService object implements read/write run-time access for ProfileObject objects and read-only access for profile definitions.

The ProfileService object provides run-time access to a profile object, which is a specific instantiation of a profile schema. The Profile definition designer module in Commerce Server Business Desk and the Profiles resource in Commerce Server Manager provide design-time access for modifying the profile schema.

In a Web-based application context, the ProfileService object is intended to be created and initialized in the Global.asa file for the application. The ProfileObject objects are intended to be created within page scope.

If you create a COM+ application, you cannot make calls from within that application to the ProfileService object.

Call the Initialize method before you use any other ProfileService method or property.

See Also

[C++] Profile Objects

[C++] Profile Schema

[C++] Profile XML Structures

[C++] ProfileObject Object

[Visual Basic] Profile Objects

[Visual Basic] Profile Schema

[Visual Basic] Profile XML Structures

[Visual Basic] ProfileObject Object


IProfileService2 Methods [C++]

PofileService Methods [Visual Basic]

Methods

[C++]
Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object from XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
UnBind | Clears the user credentials for accessing the underlying Profiles store.
[Visual Basic]
Method | Description
BindAs | Sets the user credentials for accessing the underlying Profiles store.
CreateProfile | Creates the specified ProfileObject object.
CreateProfileXML | Creates a ProfileObject object from XML data.
DeleteProfile | Deletes a ProfileObject object specified by a primary key value from the Profiling System.
DeleteProfileByKey | Deletes a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfile | Retrieves a ProfileObject object specified by a primary key value from the Profiling System.
GetProfileByKey | Retrieves a ProfileObject object specified by a key member/value pair from the Profiling System.
GetProfileDefXML | Retrieves the XML description of the specified profile definition.
Initialize | Establishes connection to the specified Profiles store and populates the schema cache.
UnBind | Clears the user credentials for accessing the underlying Profiles store.


IProfileService2::BindAs Method [C++]

ProfileService.BindAs Method [Visual Basic]

Use this method to set the credentials used to access ProfileObject objects in the underlying Profiles store.

Definition

[C++]
HRESULT IProfileService::BindAs (
  BSTR sUserName,
  BSTR sPassword,
);
[Visual Basic]
Sub BindAs (
  sUserName As String,
  sPassword As String
)

Parameters

sUserName [C++]
[in] A BSTR that contains the user name for accessing ProfileObject objects.
sUserName [Visual Basic]
[in] A String that contains the user name for accessing ProfileObject objects.
sPassword [C++]
[in] A BSTR that contains the password for accessing ProfileObject objects.
sPassword [Visual Basic]
[in] A String that contains the password for accessing ProfileObject objects.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

This method sets the credentials used to access and modify ProfileObject objects in the underlying directory store. Any new ProfileObject objects or modifications will be bound to these credentials. The specified credentials define the security context under which all subsequent ProfileObject object operations will be performed, until the UnBind method is invoked. The credentials specified here will be used as is to bind to the underlying directory stores. It is the responsibility of the client to pass in these credentials in the appropriate format. For example, to bind to Active Directory one could pass in either the

  • Full User Principal Name (UPN) (for example, joeuser@domain.com), or
  • SAM Account Name (for example, Domain\SAMAccountName), or
  • Fully specified distinguished name of the security principal (for example, CN=joeuser, CN=Users, DC=Domain, DC=com).

For Membership Directory, you must specify the fully specified distinguished name of the security principal.

Use the UnBind method to clear the credentials.

Call the Initialize method before you use this ProfileService method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object

oProfileService.BindAs "JoeUser@microsoft.com", "MyPassword123"
oProfileService.BindAs "DomainName\JoeUser", "MyPassword123"

See Also

[C++] ProfileService Object

[C++] IProfileService::UnBind

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.UnBind


IProfileService2::CreateProfile Method [C++]

ProfileService.CreateProfile Method [Visual Basic]

Use this method to create a ProfileObject object.

Definition

[C++]
HRESULT IProfileService::CreateProfile(
  VARIANT sValue,
  BSTR bstrType,
  IProfileObject** ppProfileObject
);
[Visual Basic]
Function CreateProfile(
  sValue As Variant,
  bstrType As String
) As Object

Parameters

sValue [C++]
[in] A VARIANT that contains the primary key value for the new ProfileObject object. The variable types permitted for this variant are VT_BSTR or VT_I4.
sValue[Visual Basic]
[in] A Variant that contains the primary key value for the new ProfileObject object. The variable types permitted for this variant are String or Long.
bstrType [C++]
[in] A BSTR that contains the schema type for the new ProfileObject object.
bstrType [Visual Basic]
[in] A String that contains the schema type for the new ProfileObject object.
ppProfileObject [C++]
[out, retval] The address of a pointer to the IProfileObject interface of the newly created ProfileObject object. The pointer is set to NULL if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the newly created ProfileObject object. The object is set to Nothing if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the CreateProfile method fails on an aggregated profile (one that has multiple data sources), the DeleteProfile method must be called to clean up any entries in the data stores. In this case, the DeleteProfile method will produce an error that should be ignored.

The CreateProfile method verifies that a ProfileObject object with the specified attributes does not already exist in the database.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile or GetProfileByKey method to retrieve existing ProfileObject instances from the Profiles store.

Call the Initialize method before you use this ProfileService method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppProfileObject parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject1 and oProfileObject2 are Commerce ProfileObject objects

oProfileObject1 = oProfileService.CreateProfile _
 ("{73A4C9C1-D68D-11D0-98BF-00A0C90DC8DF}", "Address")

oProfileObject2 = oProfileService.CreateProfile _
 ("Joeuser@microsoft.com", "UserObject")

See Also

[C++] ProfileService Object

[C++] IProfileService::DeleteProfile

[C++] IProfileService::GetProfile

[C++] IProfileService::GetProfileByKey

[C++] IProfileService::Initialize

[C++] ProfileObject Object

[C++] IProfileObject::get_Fields

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.DeleteProfile

[Visual Basic] ProfileService.GetProfile

[Visual Basic] ProfileService.GetProfileByKey

[Visual Basic] ProfileService.Initialize

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileService2::CreateProfileXML Method [C++]

ProfileService.CreateProfileXML Method [Visual Basic]

Use this method to create a ProfileObject object using XML data.

Definition

[C++]
HRESULT IProfileService2::CreateProfileXML(
  VARIANT sValue,
  BSTR bstrProfileType,
  BSTR bstrProfileXML,
  XMLFormatEnum eXMLFormat,
  IProfileObject2** pIProfileObject2
);
[Visual Basic]
Function CreateProfileXML(
  sValue As Variant,
  bstrProfileType As String,
  bstrProfileXML As String,
  eXMLFormat As XMLFormatEnum
) As IProfileObject2

Parameters

sValue [C++]
[in] A VARIANT that contains the primary key value for the new ProfileObject object. The variable types permitted for this variant are VT_BSTR or VT_I4.
sValue[Visual Basic]
[in] A Variant that contains the primary key value for the new ProfileObject object. The variable types permitted for this variant are String or Long.
bstrProfileType [C++]
[in] A BSTR that contains the profile type.
bstrProfileType [Visual Basic]
A String that contains the profile type.
bstrProfileXML [C++]
[in] A BSTR that contains the profile properties in XML.
bstrProfileXML [Visual Basic]
A String that contains the profile properties in XML.
eXMLFormat [C++]
[in] An XMLFormatEnum that contains the XML format. See the Remarks section for allowed values.
eXMLFormat [Visual Basic]
An XMLFormatEnum enumeration that contains the XML format. See the Remarks section for allowed values.
pIProfileObject2 [C++]
[out, retval] The address of a pointer to the IProfileObject interface of the newly created ProfileObject object. The pointer is set to NULL if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns the newly created ProfileObject object. The object is set to Nothing if a ProfileObject object of the specified primary key and schema type already exists in the Profiles store.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the CreateProfile method fails on an aggregated profile (one that has multiple data sources), the DeleteProfile method must be called to clean up any entries in the data stores. In this case, the DeleteProfile method will produce an error that should be ignored.

Call the Update method on the returned ProfileObject object to commit the new profile to the data store. The Update method will verify that a ProfileObject object with the specified attributes does not already exist in the database.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile or GetProfileByKey method to retrieve existing ProfileObject instances from the Profiles store.

Call the Initialize method before you use this ProfileService method.

The following table shows the values in the XMLFormatEnum enumeration, their associated names, and describes their use.

Name | Value | Description
eInvalid | 0 | Reserved for future use.
eAttributeCentric | 1 | Attribute centric XML format.
eElementCentric | 2 | Element centric XML format.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppProfileObject parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject1 and oProfileObject2 are Commerce ProfileObject objects
' sXMLProfile is a string contining the profile properties

oProfileObject1 = oProfileService.CreateProfileXML _
 ("{73A4C9C1-D68D-11D0-98BF-00A0C90DC8DF}", "Address", sXMLProfile, eAttributeCentric)

oProfileObject2 = oProfileService.CreateProfileXML _
 ("Joeuser@microsoft.com", "UserObject", sXMLProfile, eAttributeCentric)

See Also

[C++] ProfileService Object

[C++] IProfileService::DeleteProfile

[C++] IProfileService::GetProfile

[C++] IProfileService::GetProfileByKey

[C++] IProfileService::Initialize

[C++] ProfileObject Object

[C++] IProfileObject::get_Fields

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.DeleteProfile

[Visual Basic] ProfileService.GetProfile

[Visual Basic] ProfileService.GetProfileByKey

[Visual Basic] ProfileService.Initialize

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileService2::DeleteProfile Method [C++]

ProfileService.DeleteProfile Method [Visual Basic]

Use this method to delete the ProfileObject object specified by a primary key value and schema type. All properties associated with the profile are purged from the system.

Definition

[C++]
HRESULT IProfileService::DeleteProfile(
  VARIANT sValue,
  BSTR bstrType
);
[Visual Basic]
Sub DeleteProfile(
  sValue As Variant,
  strType As String
)

Parameters

sValue[C++]
[in] A VARIANT that contains the primary key value.
sValue[Visual Basic]
[in] A Variant that contains the primary key value.
bstrType [C++]
[in] A BSTR that contains the profile schema type.
strType [Visual Basic]
[in] A String that contains the profile schema type.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the DeleteProfile method is called because of an error in creating a new ProfileObject object, any error message produced should be ignored.

Use the DeleteProfileByKey method to delete a profile specified by a key member/value pair and schema type.

Call the Initialize method before you use this ProfileService method.

Caution

  • Care must be taken when deleting ProfileObject objects due to possible expression dependencies. See the ExpressionStore and ExpressionEval objects for details on expressions.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfile("Joeuser@microsoft.com", "UserObject")

See Also

[C++] ProfileService Object

[C++] IProfileService::CreateProfile

[C++] IProfileService::DeleteProfileByKey

[C++] ExpressionEval Object

[C++] ExpressionStore Object

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.CreateProfile

[Visual Basic] ProfileService.DeleteProfileByKey

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionStore Object


IProfileService2::DeleteProfileByKey Method [C++]

ProfileService.DeleteProfileByKey Method [Visual Basic]

Use this method to delete the ProfileObject object specified by a key member name/value pair and schema type. All properties associated with the profile are purged from the system.

Definition

[C++]
HRESULT IProfileService::DeleteProfileByKey(
  BSTR bstrKeyMemberName,
  VARIANT sValue,
  BSTR bstrType
);
[Visual Basic]
Sub DeleteProfileByKey(
  strKeyMemberName As String,
  sValue As Variant,
  strType As String
)

Parameters

bstrKeyMemberName [C++]
[in] A BSTR that contains the key member name.
strKeyMemberName [Visual Basic]
[in] A String that contains the key member name.
sValue[C++]
[in] A VARIANT that contains the key value.
sValue[Visual Basic]
[in] A Variant that contains the key value.
bstrType [C++]
[in] A BSTR that contains the profile schema type.
strType [Visual Basic]
[in] A String that contains the profile schema type.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

Use the DeleteProfile method to delete a profile by specifying a primary key value and schema type.

Call the Initialize method before you use this ProfileService method.

Caution

  • Care must be taken when deleting ProfileObject objects due to possible expression dependencies. See the ExpressionStore and ExpressionEval objects for details on expressions.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object

oProfileService.DeleteProfileByKey("user_id",_
 "{74A38551-D6D8-FFD0-12BF-0A20C90DC8D1}" "UserObject")

See Also

[C++] ProfileService Object

[C++] IProfileService::CreateProfile

[C++] IProfileService::DeleteProfile

[C++] ExpressionEval Object

[C++] ExpressionStore Object

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.CreateProfile

[Visual Basic] ProfileService.DeleteProfile

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionStore Object


IProfileService2::GetProfile Method [C++]

ProfileService.GetProfile Method [Visual Basic]

Use this method to retrieve the ProfileObject object corresponding to the specified primary key value and schema type.

Definition

[C++]
HRESULT IProfileService::GetProfile(
  VARIANT sValue,
  BSTR bstrType,
  VARIANT_BOOL bReturnError,
  IProfileObject** ppProfileObject
);
[Visual Basic]
Function GetProfile(
  sValue as Variant,
  bstrType As String
  Optional bReturnError As Boolean
) As Object

Parameters

sValue [C++]
[in] A VARIANT that contains the primary key value.
sValue [Visual Basic]
[in] A Variant that contains the primary key value.
bstrType [C++]
[in] A BSTR that contains the profile schema type.
bstrType [Visual Basic]
[in] A String that contains the profile schema type.
bReturnError [C++]
[in, optional, defaultvalue (-1)] An optional VARIANT_BOOL.
bReturnError [Visual Basic]
[in] An optional Boolean. The default value is True (-1).
ppProfileObject [C++]
[out, retval] The address of a pointer to the IProfileObject interface of the returned ProfileObject object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a ProfileObject object corresponding to the specified primary key value and schema name.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the optional bReturnError parameter is set to True (-1) and the specified ProfileObject object is not found, an error message, E_PS_PROFILE_NOTEXISTS, is returned instead of a ProfileObject object.

If the bReturnError parameter is set to False (0) and the specified ProfileObject object is not found, an empty ProfileObject object is returned without an error message.

Properties with the IsCached attribute set to False are not loaded by this method.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfileByKey method to retrieve a profile by specifying a key member name/value pair and schema type.

Call the Initialize method before you use this ProfileService method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppProfileObject parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject is a Commerce ProfileObject object

oProfileObject = oProfileService.GetProfile("Joeuser@microsoft.com", _
 "UserObject")

See Also

[C++] ProfileService Object

[C++] IProfileService::GetProfileByKey

[C++] IProfileService::Initialize

[C++] ProfileObject Object

[C++] IProfileObject::get_Fields

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.GetProfileByKey

[Visual Basic] ProfileService.Initialize

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileService2::GetProfileByKey Method [C++]

ProfileService.GetProfileByKey Method [Visual Basic]

Use this method to retrieve a ProfileObject object that corresponds to a specified key member name/value pair and schema type.

Definition

[C++]
HRESULT IProfileService::GetProfileByKey(
  BSTR bstrKeyMemberName,
  VARIANT sValue,
  BSTR bstrType,
  VARIANT_BOOL bReturnError,
  IProfileObject** ppProfileObject
);
[Visual Basic]
Function GetProfileByKey(
  bstrKeyMemberName As String,
  sValue As Variant,
  bstrType As String
  Optional bReturnError As Boolean
) As Object

Parameters

bstrKeyMemberName [C++]
[in] A BSTR that contains the key member name.
bstrKeyMemberName [Visual Basic]
[in] A String that contains the key member name.
sValue [C++]
[in] A VARIANT that contains the key value.
sValue [Visual Basic]
[in] A Variant that contains the key value.
bstrType [C++]
[in] A BSTR that contains the schema type.
bstrType [Visual Basic]
[in] A String that contains the schema type.
bReturnError [C++]
[in, optional, defaultvalue (-1)] An optional VARIANT_BOOL.
bReturnError [Visual Basic]
[in] An optional Boolean. The default value is True (-1).
ppProfileObject [C++]
[out, retval] The address of a pointer to the IProfileObject interface of the returned ProfileObject object.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a ProfileObject object corresponding to the specified key member/value pair and schema name.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the optional bReturnError parameter is set to True (-1) and the specified ProfileObject object is not found, an error message, E_PS_PROFILE_NOTEXISTS, is returned instead of a ProfileObject object.

If the bReturnError parameter is set to False (0) and the specified ProfileObject object is not found, an empty ProfileObject object is returned without an error message.

Properties with the IsCached attribute set to False are not loaded by this method.

The Fields property of the returned ProfileObject object provides access to the profile properties.

Use the GetProfile method to retrieve a profile by specifying a primary key value and schema type.

Call the Initialize method before you use this ProfileService method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppProfileObject parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oProfileService is a Commerce ProfileService object
' oProfileObject is a Commerce ProfileObject object

oProfileObject = oProfileService.GetProfileByKey("user_id", _
 "{74A38551-D6D8-FFD0-12BF-0A20C90DC8D1}", "UserObject")

See Also

[C++] ProfileService Object

[C++] IProfileService::GetProfile

[C++] IProfileService::Initialize

[C++] ProfileObject Object

[C++] IProfileObject::get_Fields

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.GetProfile

[Visual Basic] ProfileService.Initialize

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileObject.Fields


IProfileService2::GetProfileDefXML Method [C++]

ProfileService.GetProfileDefXML Method [Visual Basic]

Use this method to retrieve the XML definition of the named profile schema type.

Definition

[C++]
HRESULT IProfileService::GetProfileDefXML(
  BSTR bstrProfileName,
  VARIANT_BOOL bNamesOnly,
  BSTR* pbstrXML
);
[Visual Basic]
Function GetProfileDefXML(
  bstrProfileName As String
  bNamesOnly As Boolean,
) As String

Parameters

bstrProfileName [C++]
[in] A BSTR that contains the name of the profile schema type.
bstrProfileName [Visual Basic]
[in] A String that contains the name of the profile schema type.
bNamesOnly [C++]
[in] A VARIANT_BOOL that determines whether the method returns the profile schema name or the profile schema definition. A value of FALSE indicates to return the profile definition. A value of TRUE indicates to return only the name of the profile schema.
bNamesOnly [Visual Basic]
[in] A Boolean that determines whether the method returns the profile schema name or the profile schema definition. A value of FALSE indicates to return the profile definition. A value of TRUE indicates to return only the name of the profile schema.
pbstrXML [C++]
[out, retval] A pointer to a BSTR that will contain the XML description.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the XML description.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

If the bstrProfileName parameter is empty and the bNamesOnly parameter is False (0), the XML descriptions of all the schema types in the catalog are returned.

If the bstrProfileName parameter is empty and the bNamesOnly parameter is True (-1), the names of all the schema types in the catalog are returned.

For information about the XML definitions, see the Profile XML Structures topic.

Call the Initialize method before you use this ProfileService method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbstrXML parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' sXML is a String
' oProfileService is a Commerce ProfileService object

sXML = oProfileService.GetProfileDefXML("UserObject", False)

See Also

[C++] ProfileService Object

[C++] Profile XML Structures

[Visual Basic] ProfileService Object

[Visual Basic] Profile XML Structures


IProfileService2::Initialize Method [C++]

ProfileService.Initialize Method [Visual Basic]

Use this method to establish a connection to the Commerce Server Profiles store and populate the schema cache with all the schemas from the specified catalog.

Definition

[C++]
HRESULT IProfileService::Initialize(
  BSTR sConfigStore,
  BSTR sCatalog
);
[Visual Basic]
Sub Initialize(
  sConfigStore As String,
  Optional sCatalog As String
)

Parameters

sConfigStore [C++]
[in] A BSTR that contains the connection string to the Profiles store.
sConfigStore [Visual Basic]
[in] A String that contains the connection string to the Profiles store.
sCatalog [C++]
[in, optional] A BSTR that identifies the catalog. If this is specified it must be "Profile Definitions".
sCatalog [Visual Basic]
[in, optional] A String that identifies the catalog. If this is specified it must be "Profile Definitions".

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

The Initialize method creates the necessary internal parameters and schema cache for profile management. A ProfileService object must connect to only one Profiles store. Multiple instances of the ProfileService object must be created to access multiple stores.

The connection string for the Profiles store may be obtained through the SiteConfigReadOnly object, or through the Commerce Server Manager console from the s_ProfileServiceConnectionString property under the key "Commerce Server Manager\Global Resources\Profiles(ComputerName SiteName)".

The connection string is comprised of the following mandatory tokens:

  • Data Source and/or Database [mandatory]. This attribute allows applications to specify the name of the underlying SQL Server containing the Profiles database. At least one of these attributes must be specified. If both of these attributes are specified, the value of the Data Source attribute takes precedence.
  • Initial Catalog and/or Server [mandatory]. This attribute allows applications to specify the name of the Profiles database containing profile definitions. At least one of these attributes must be specified. If both of these attributes are specified, the value of the Initial Catalog attribute takes precedence.
  • User ID and/or UID [mandatory]. This attribute allows applications to specify the login name to connect to the Profiles database. At least one of these attributes must be specified. If both of these attributes are specified, the value of the User ID attribute takes precedence.

The following is a sample connection string containing these attributes:

   Data Source=servername;Initial Catalog=dbname;User ID=user

Spaces are not allowed around the delimiting semi-colon, and a semi-colon is not allowed in the names of any of the tokens.

Additionally, the following optional tokens are also supported by the Profiles resource:

  • Provider [optional]. Allows applications to specify the OLE DB provider to which the Profiles resource connects. This parameter exists for consistency with standard ADO connection strings. The default value and only acceptable value for this attribute is CSOLEDB.
  • Password or PWD [optional]. Allows applications to specify the password for the user specified by the User ID or UID attribute. The default value for this attribute is NULL.
  • PsObjectCacheSize [optional]. Allows applications to specify the size of the Profiles resource object cache. This cache stores ProfileObject objects instantiated by the CreateProfile and GetProfile methods. The default value for this attribute is 16384. Setting this value to 0 (zero) does not turn off caching. Instead, this value then reverts to the default value of 1024.
  • PsSchemaCacheSize [optional]. Allows applications to specify the size of the Profile resource definition (schema) cache in entries. The acceptable range of values is from one (1) to 1024. The default is 1024. This is not a hard limit. A warning will be posted to the eventlog if the number of entries exceeds 1024.
  • PsBackgroundThread [optional]. Allows applications to control the creation of a background thread to periodically clean up entries from the Profiles resource object cache. The acceptable values for this parameter are zero (0) or one (1). Zero turns off the background thread, one turns it on. By default, the background thread is on.
  • PsObjectAgeoutPeriod [optional]. Allows applications to specify the age-out period for the Profiles resource cache entries. The age-out period is the amount of time an unreferenced object can remain in the cache without being discarded. The default value for this attribute is five minutes.
  • Integrated Security [optional]. Allows applications to connect to the Profile Service using integrated windows authentication. The value for this token should be SSPI. When this token is specified the values for User ID/UID and Password/PWD tokens are ignored.
  • Site Name [optional]. Allows applications to specify the site name under which the Profile Service counters should be logged. If no value is specified the performance counters are logged under Anonymous.
  • Connection_Retry [optional]. Allows the applications to specify the number of retry attempts if the connection to the Profile definition store is lost due to a communication failure. The default value for this attribute is 10.
  • Connection_Retry_Delay [optional]. Allows the applications to specify the delay in seconds between retry attempts if the connection to the Profile definition store is lost due to a communication failure. The default value for this attribute is 30.
  • PublicKey [optional]. This token allows the applications to specify the public key if any of the profiles defined use asymmetric encryption. The value for the token should be a hexadecimal string representation of the Public Key. The value should not be enclosed in quotes.
  • KeyIndex [optional]. This token is mandatory if the PublicKey is specified. Since Public and Privtate keys come in pairs, this token allows the applications to specify which PrivateKey token value corresponds to the PublicKey token.
  • PrivateKey1 [optional]. This token allows the applications to specify the Private key for decryption. The value for this token should be specified if the current key index is 1 and should correspond to the PublicKey. The value for the token should be a hexadecimal string representation of the Private Key. The value should not be enclosed in quotes.
  • PrivateKey2 [optional]. This token allows the applications to specify the Private key for decryption. The value for this token should be specified if the current key index is 1 and should correspond to the PublicKey. The value for the token should be a hexadecimal string representation of the Private Key. The value should not be enclosed in quotes.

Notes

  • The Initial Catalog in the connection string is the database containing the Profiles store.
  • The sCatalog parameter in the Initialize method is the catalog containing the profile schema definitions, which is "Profile Definitions".

The background thread removes the aged-out objects periodically from the cache. This means that the object may remain in the cache beyond the object age-out period. In this case, the object will be removed from the cache when the background thread processing resumes.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Connect using an explicit connection string.
' oProfileService is a Commerce ProfileService object

oProfileService.Initialize "Provider=CSOLEDB;Data Source=MyServer;" _
 & "Initial Catalog=Retail_commerce;User ID=user;Password=*****;" _
 & "PsSchemaCacheSize=128;PsObjectAgeoutPeriod=8", "Profile Definitions"

' Connect through the SiteConfigReadOnly object.
' sConn is a String
' oSCRO is an initialized SiteConfigReadOnly object

sConn = oSCRO.Fields("Profiles(ComputerName SiteName").Value _
 .Fields("s_ProfileServiceConnectionString").Value & "SCHCACHE=128"
oProfileService.Initialize sConn, "Profile Definitions"

See Also

[C++] ProfileService Object

[Visual Basic] ProfileService Object


IProfileService2::Unbind Method [C++]

ProfileService.Unbind Method [Visual Basic]

Use this method to clear the credentials that are used to access ProfileObject objects in the underlying Profiles store.

Definition

[C++]
HRESULT IProfileService::Unbind (
);
[Visual Basic]
Sub Unbind (
)

Parameters

None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see IProfileService::get_Errors.

[Visual Basic] The Errors property stores the collection of errors encountered in the last Profiles resource operation. For more information, see ProfileService.Errors.

Remarks

This method clears the credentials used to access ProfileObject objects in the underlying store. Any new profiles or modifications will not be bound to a specific user. Use this method to gain access to existing ProfileObject objects that are not bound to a specific user.

Use the Bind method to set the credentials to access ProfileObject objects that are bound to a specific user.

Call the Initialize method before you use this ProfileService method.

See Also

[C++] ProfileService Object

[C++] IProfileService::BindAs

[Visual Basic] ProfileService Object

[Visual Basic] ProfileService.BindAs


IProfileService2 Properties [C++]

ProfileService Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
Errors | Errors | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.
[Visual Basic]
Property | Type | Description
Errors | Object | Stores the collection of errors encountered in the last Profiles resource operation. This property is read-only.


IProfileService2::get_Errors Property [C++]

ProfileService.Errors Property [Visual Basic]

The Errors property is a read-only ADO Errors object that stores the collection of errors encountered in the last Profiles resource operation.

Definition

[C++]
HRESULT IProfileObject::get_Errors(
  Errors** ppErrors
);
[Visual Basic]
Property Errors As Object

Parameters

ppErrors [C++]
[out, retval] The address of a pointer to an Errors object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully.

Remarks

The Errors property collects all errors generated by a ProfileService object operation, including those that emerge from the underlying technology.

If the error is coming from the underlying data store providers (such as OLE DB Provider for SQL Server and OLE DB Provider for Microsoft Directory Services) in some cases only the Number and Source properties of the Error object are set.

For information about standard COM errors, see Standard COM Errors.

The following ADO Errors methods and properties are supported:

  • Clear
  • Count
  • Item
  • _NewEnum

The following ADO Error methods and properties are supported:

  • Description
  • HelpFile
  • Number
  • Source

Call the Initialize method before you access the Errors property.

See Also

[C++] ProfileObject Object

[C++] ProfileService Object

[Visual Basic] ProfileObject Object

[Visual Basic] ProfileService Object


Example Code for Profile Objects

This section provides detailed examples of how to use the profile definitions exposed by the Profiles resource. These samples are written in Microsoft Visual Basic, Visual Basic Scripting Edition (VBScript), or Active Server Pages (ASP), and do not show error checking or certain other formalities required for functional code.

Examples

Example | Description
Code to Connect to the Profiles Store | Describes how to connect to the Profiles store.
Code to Enumerate Errors | Describes how to enumerate all errors generated by the last Profiles resource operation.
Code to Set up Bind Credentials to Directory Stores | Describes how to bind profiles to specific users.
Code to Create a New Profile | Describes how to create a new profile.
Code to Retrieve a Profile | Describes how to retrieve a profile.
Code to Modify a Profile | Describes how to modify the data stored in a profile.
Code to Delete a Profile | Describes how to delete a profile.
Code to Retrieve XML Data and Schema | Describes how to retrieve the Extensible Markup Language (XML) representations of profile data and schemas.
Code to Perform Bulk Operations using ADO and SQL | Describes how ActiveX Data Object (ADO) and SQL are used to perform bulk operations on profile data.
Code to Delete Unused Profiles | Describes how to delete a profile that has not been used for some time.
Code to Decrypt a Persistent Cookie after the Key has changed | Describes how to decrypt old cookies when using rolling key encryption.
Code to Use the ProfileService Object or Commerce Server OLEDB Provider to Update Passwords | Describes how to use the ProfileService object and the Commerce Server OLEDB Provider to update passwords.
Code to Retrieve and Set Multi-valued Attributes | Describes how to use the ProfileService object to retrieve and set multi-valued attributes.
Code to Retrieve Extended Error Information from the Commerce Server OLEDB Provider | Describes how to retrieve extended error information from the Commerce Server OLEDB provider connection object in the event of an error.


Code to Connect to the Profiles Store

This section shows how to connect to the Profile Store. A SiteConfigReadOnly object provides access to the connection string. For more information about the connection string, see ProfileService.Initialize.

  1. Create a SiteConfigReadOnly object and initialize it for the "Retail" site.
    Dim oSiteConfigReadOnly
Set oSiteConfigReadOnly = Server.CreateObject _
 ("Commerce.SiteConfigReadOnly")
oSiteConfigReadOnly.Initialize "Retail"
  2. Retrieve the connection string to the Profile Store and release the SiteConfigReadOnly object.
    Dim sBDSConnect
sBDSConnect = oSiteConfigReadOnly.Fields("Biz Data Service") _
 .Value.Fields("s_ProfileServiceConnectionString").Value

Set oSiteConfigReadOnly = Nothing
  3. Create the ProfileService object and connect to the Profile Store. The Profile Definitions parameter is the catalog used for the profile schema definitions.
    Dim oProfileService
Set oProfileService = Server.CreateObject("Commerce.ProfileService")
oProfileService.Initialize sBDSConnect, "Profile Definitions"


Code to Enumerate Errors

This section shows how to enumerate any errors generated by the last Profiles resource operation, which includes any errors produced by the underlying technology. For more information, see ProfileService.Errors.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. Retrieve the Errors collection.
    Dim oError, oErrors
Set oErrors = oProfileService.Errors
  3. Enumerate any errors that are present.
    If oErrors.Count <> 0 Then
   For Each oError In oErrors
      Response.Write "<BR> Error number = " & oError.Number & "</BR>"
      Response.Write "<P>" & oError.Description & "</P>"
   Next
EndIf

Set oErrors = Nothing


Code to Setup Bind Credentials to Directory Stores

This section shows how to bind profiles to a specific user.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. Bind to a user using the full User Principal Name (UPN). Any profiles created after this binding will only be accessible by the user with the credentials user name = "someone@microsoft.com" and password = "mypassword".
    oProfileService.BindAs "someone@microsoft.com", "mypassword"
  3. Bind to a user using a SAM Account Name.
    oProfileService.BindAs "microsoft\someone", "mypassword"
  4. Bind to a user using the fully specified distinguished name of the security principal.
    oProfileService.BindAs "CN=someone,CN=Users,DC=microsoft,DC=com", _
 "mypassword"
  5. Clear the binding to access profiles not bound to a specific user.
    oProfileService.Unbind


Code to Create a New Profile

This section shows how to create a new profile. Two new profiles will be created, oUser1, a UserObject profile, and oAddress1, an Address profile.

Note

  • If the CreateProfile method fails on an aggregated profile (one that has multiple data sources), the DeleteProfile method must be called to clean up any entries in the data stores. In this case, the DeleteProfile method will produce an error that should be ignored.
  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. Create two new empty profiles (ProfileObject objects) using the ProfileService object, oProfileService, created in Step 1. For information about the valid profile schema types (specified as the second parameter of the CreateProfile method) and their associated properties, see Profile Schema. The primary key for the Address profile is a globally unique identifier (GUID), obtained through a GenID object.
    Dim oUser1, oAddress1

Set oUser1 = oProfileService.CreateProfile("JoeUser@microsoft.com", _
 "UserObject")
If err.number <> 0 Then
   oProfileService.DeleteProfile "JoeUser@microsoft.com", "UserObject"
EndIf

Dim oGenID, sGUID
Set oGenID = Server.CreateObject("Commerce.GenID")
sGUID = oGenID.GenGUIDString

Set oAddress1 = oProfileService.CreateProfile(sGUID, "Address")
  3. Populate the desired properties of the profiles. The logon_name property of the oUser1 profile is already specified (as the first parameter of the CreateProfile method). Note that ProfileObject objects support extended dot notation and smart navigation. For more information, see ProfileObject Object.
    oUser1.GeneralInfo.first_name = "Joe"
oUser1.GeneralInfo.last_name = "User"

oAddress1.GeneralInfo.region_code = "WA"
oAddress1.GeneralInfo.country_code = "US"
  4. Save the profiles to the underlying Profile Store.
    oUser1.Update
oAddress1.Update
  5. Release the objects.
    Set oUser1 = Nothing
Set oAddress1 = Nothing


Code to Retrieve a Profile

This section shows how to retrieve a profile.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. The profile object can be retrieved by specifying the schema name of the ProfileObject object, and either the primary key value or a key name/value pair. The UserObject schema type has a primary key of logon_name and a join key of user_id, which is a globally unique identifier (GUID). For information about the valid profile schema types, see Profile Schema. Retrieve the oUser1 profile created in Code to Create a New Profile.
    • Retrieve by specifying the primary key value and the schema name.
      Dim oUser1
Set oUser1 = oProfileService.GetProfile("JoeUser@microsoft.com", _
 "UserObject")
    • Retrieve by specifying a key name/value pair and the schema name.
      Set oUser1 = oProfileService.GetProfileByKey("user_id", _
 "{74A38551-FFFF-FFFF-FFFF-0A20C90DC8D1}", "UserObject")


Code to Modify a Profile

This section shows how to modify the data stored in a profile. To modify the schema of a profile (the data structure), use the Profile Definition Designer in Commerce Server Business Desk. For more information, see Adding Properties to a Profile Definition.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. See Code to Connect to the Profile Store.
  2. Retrieve the oUser1 profile. For more information, see Code to Retrieve a Profile.
  3. Modify the first_name and tel_number of the oUser1 profile. This example uses smart navigation instead of the Fields collection to access the profile properties. For information on the available properties for the profiles shipped with Commerce Server, see Profile Schema. Note the two different syntaxes available for accessing the properties. Both are equivalent.
    oUser1.first_name = "Joseph"
oUser1.tel_number = "(123) 456-7890"

oUser1.GeneralInfo.first_name = "Joseph"
oUser1.GeneralInfo.tel_number = "(123) 456-7890"
  4. Save the change to the Profile Store.
    oUser1.Update


Code to Delete a Profile

This section shows how to delete a profile. Care must be taken when deleting a profile due to possible expression dependencies on the deleted profile.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. The profile object can be deleted by specifying the schema name, and either the primary key value or a key name/value pair of the ProfileObject object. The UserObject schema type has a primary key of logon_name and a join key of user_id which is a globally unique identifier (GUID). For information on the valid profile schema types, see Profile Schema. Delete the oUser1 profile created in Code to Create a New Profile.
    • Delete by specifying the primary key value and the schema name.
      oProfileService.DeleteProfile "JoeUser@microsoft.com", "UserObject"
    • Delete by specifying a key name/value pair and the schema name.
      oProfileService.DeleteProfileByKey "user_id", _
 "{74A38551-FFFF-FFF6-FFFF-0A20C90DC8D1}", "UserObject"


Code to Retrieve XML Data and Schema

This section shows how to retrieve a list of all defined profile schema names, and how to retrieve the schema corresponding to one of these schema names. Then, the Extensible Markup Language (XML) data and schema representation of a ProfileObject object is obtained.

  1. If not already connected, create a ProfileService object, oProfileService, and establish a connection to the Profile Store. For information about connecting to the Profile Store, see Code to Connect to the Profile Store.
  2. Create an empty XML Document Object Model (DOM) document.
    Dim xmlDoc
Set xmlDoc = CreateObject("Microsoft.XMLDOM")
  3. Retrieve the XML string containing the list of all defined profile schema names and load it into the empty XML DOM document.
    xmlDoc.loadXML( oProfileService.GetProfileDefXML("", True) )
  4. Retrieve the collection of "ElementType" nodes that contain the names of the profile schemas.
    Dim xmlNodes
Set xmlNodes = xmlDoc.getElementsByTagName("ElementType")
  5. Retrieve the first profile schema name.
    Dim sSchemaName
sSchemaName = _
 xmlNodes.item(0).attributes.getNamedItem("name").nodeValue
  6. Retrieve the XML string for the schema corresponding to the first profile schema name.
    Dim sXMLSchema
sXMLSchema = oProfileService.GetProfileDefXML(sSchemaName, False)
  7. Retrieve the schema and data representation for the profile, oUser1, created in Code to Create a New Profile.
    Dim sXMLSchemaAndData
sXMLSchemaAndData = _
 oUser1.GetProfileXML(psRetrieveSchemaAndData, False)


Code to Perform Bulk Operations using ADO and SQL

This topic shows how to perform bulk operations on profile data using ActiveX Data Objects (ADO) and SQL. New profiles are added to the UserObject profile, one of the properties is then updated, and finally, all inactive accounts are deleted. For more information about the UserObject profile, see UserObject Profile Schema.

  1. Create a SiteConfigReadOnly object and initialize it for the "Retail" site.
    Dim oSiteConfigReadOnly
Set oSiteConfigReadOnly = Server.CreateObject _
 ("Commerce.SiteConfigReadOnly")
oSiteConfigReadOnly.Initialize "Retail"
  2. Retrieve the connection string to the Profile Store and release the SiteConfigReadOnly object.
    Dim sCSConnect
sCSConnect = oSiteConfigReadOnly.Fields("Biz Data Service") _
 .Value.Fields("s_CommerceProviderConnectionString").Value

Set oSiteConfigReadOnly = Nothing
  3. Create an ADO Connection object and an ADO Command object and open a connection to the Profile Store.
    Dim oConnection As New ADODB.Connection
Dim oCommand As New ADODB.Command
Set oCommand.ActiveConnection = oConnection
  4. Create and execute a query to add new profiles to the UserObject profile. Assume the data is stored in an array with the following format (not all fields are shown).
    Dim sQuery
Dim arNewCustomers()
arNewCustomers(0, 0) = "johndoe"             ' Unicode string
arNewCustomers(0, 1) = 1                     ' Integer
arNewCustomers(0, 2) = {d '2002-01-31'}      ' {d 'YYYY-MM-DD'}
arNewCustomers(0, 3) = {F8677EA7-1A7E-4969-8771-F917C4EA96C8} ' GUID

For i = 1 To UBound(arNewCustomers)
   sQuery = "INSERT INTO Customers (u_logon_name, " & _
                                   "i_user_type, " & _
                                   "d_date_registered, " & _
                                   "g_org_id) " & _
                       "VALUES " & (arNewCustomers(i, 0) & ", " & _
                                    arNewCustomers(i, 1) & ", " & _
                                    arNewCustomers(i, 2) & ", " & _
                                    arNewCustomers(i, 3) & ")"
   oCommand.CommandText = sQuery
   oCommand.Execute()
Next
  5. Check the procedure. If an INSERT method only partially succeeds against aggregated stores, the DeleteProfile method of the ProfileService object must be called to clean up the partially inserted data.
    Dim rsProfiles As ADODB.Recordset

sQuery = "SELECT (u_logon_name, i_user_type, d_date_registered, " & _
                  g_org_id) FROM Customers " & _
         "WHERE date_created = {d '2003-01-31'}"" & _
         "ORDER BY d_date_registered"

oCommand.CommandText = sQuery
Set rsProfiles = oCommand.Execute()
  6. Change the organization ID for the new customers.
    sQuery = "UPDATE Customers " & _
         "SET g_org_id = '{2B544800-4169-4C49-8713-1B794078B4C9}'" & _
         "WHERE date_created = {d '2003-01-31'}"" & _

oCommand.CommandText = sQuery
oCommand.Execute()
  7. Delete all inactive accounts.
    sQuery = "DELETE FROM Customers " &
         "WHERE i_account_status = 0"

oCommand.CommandText = sQuery
oCommand.Execute()
  8. Close the connection and release the objects.
    oConnection.Close
Set rsProfiles = Nothing
Set oConnection = Nothing
Set oCommand = Nothing


Code to Delete Unused Profiles

This topic shows how to use the [ProfileSystem.date_last_changed] property in the default schema to delete profiles that have been unused for some arbitrary time.

The sample script below deletes user-profile objects that were last changed on October 4 2000 or before. The date is expressed in the form {d '2001-10-5'}.

To use the script, you will need to supply the correct server name, myserver, and Password.

Dim strDSN
Dim strSQL
Dim objCN

Set objCN = WScript.CreateObject("ADODB.Connection")
Set objRS = WScript.CreateObject("ADODB.Recordset")

strDSN = "Provider=commerce.dso.1;Data Source = _
  MSCOP://INPROCCONNECT/Server=myserver:" & _
  "Catalog=Profile Definitions:Database = Retail_commerce:" & _
  " Trusted_Connection=Yes:"
objCN.Open strDSN

strSQL = "
DELETE FROM [UserObject]
WHERE [ProfileSystem.date_last_changed] < {d '2001-10-5'}
"

objCN.Execute(strSQL)

Set objCN = Nothing


Code to Decrypt a Persistent Cookie after the Key has Changed

This topic shows how to decrypt a cookie that was encrypted with an obsolete key. This is not a complete example because many of the details will be specific to your application. You will need to implement a method for storing and retrieving the obsolete keys. If you store more than one obsolete key, then you will need to change the code to try each saved key.

On Error Resume Next

'Try the current key
Dim sUserID
sUserid = auth.GetUserid(enumMSCS_ProfileTicketType)

'If the decryption fails try a stored key
if (err.number = <errcode>)
'Use the error code for NTE_BAD_DATA, NTE_BAD_KEY, or NTE_BAD_HASH as required.
{
   Dim sCookie, sOldEncryptionKey
   sOldEncryptionKey = 'code to retrieve old encryption key
   sCookie = Request.Cookies("MSCSAuth")
   sUserid = auth.GetUseridFromCookieAndKey(sCookie, sOldEncryptionKey)

   if Not ((err.number = <errcode>)
'Use the error code for NTE_BAD_DATA, NTE_BAD_KEY, or NTE_BAD_HASH as required.
   {
      auth.SetAuthTicket(sUserID, bCookieSupport, nTimeWindow)
   }
   else
   {
      'Cookie cannot be decrypted, redirect to force a new login.
   }
}

On Error Goto 0


Code to Use the ProfileService Object or Commerce Server OLEDB Provider to Update Passwords

This section describes how to update passwords using different methods.

If you are using Active Directory to store passwords, then passwords must be configured as multi-valued properties. When the passwords are changed, the sequence of values must be ('<old password>', '<new password>'). The following SQL query example illustrates this:

UPDATE UserObject
SET GeneralInfo.user_security_password = ('<old-password>', _
                                         '<new-password>')
WHERE GeneralInfo.logon_name = '<logon-name>'

If you are using the ProfileService object, an array of values must be used. The old password must be the first element of the array; the new password must be the second element. The following example illustrates this:

Dim objProfile
Dim Passwords(2)

Passwords(0) = "<old-password>"
Passwords(1) = "<new-password>"
' <Code to create and initialize ProfileService object omitted>
Set objProfile = ProfileService.GetProfile("<logon-name>", "UserObject")
objProfile.GeneralInfo.user_security_password = Passwords
objProfile.Update


Code to Retrieve Extended Error Information from the Commerce Server OLEDB Provider

This example script demonstrates retrieving extended error information from the Commerce Server OLEDB provider connection object in the event of an error. The example illustrates handling the entry of an incorrect SQL query statement: the correct statement to submit would include "GeneralInfo.logon_name", instead of "GeneralInfo.login_name" as is attempted in this example. After the errors are retrieved from the errors collection, they are displayed in a message box.

Option Explicit
' Declare the varibles and objects used.
Dim Dsn
Dim cn, rs
Dim Sql, ErrorMessage
Dim i

' Update the connection string to have the right server,
' user name and password.
Dsn="url=mscop://InProcConnect/Server=<server-name>:Database=BlankSite_COMMERCE:Catalog=Profile Definitions: Trusted_Connection=Yes:"

' Create the ADO connection and Record objects
Set cn = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Record")

' Open the connection object using the Dsn.
cn.Open Dsn

' Build up the query.
Sql = ""
Sql = "SELECT "
Sql = Sql + "[GeneralInfo.login_name],"
' Note: It should be [GeneralInfo.logon_name] and not [GeneralInfo.login_name]
Sql = Sql + "[GeneralInfo.tel_number]"
Sql = Sql+ "FROM [UserObject]"

' Set resume next condition to do custom error handling.
On error resume next

' Execute the query constructed above.
Set rs = cn.Execute(Sql)

' Check for error code.
if Err.number <> 0 then

   ' Reset custom error handling.
   On Error goto 0

   ' Set the error message to blank
   ErrorMessage = ""

   ' Loop over all the error messages in the errors collection.
   For i = cn.Errors.Count to 1 step -1
ErrorMessage = ErrorMessage & chr(10) _
   & "Error code: 0x" & CStr(Hex(cn.Errors(i-1).Number)) & chr(10) _
   & "Error description: " & cn.Errors(i-1).Description  _
   & "Source: " & cn.Errors(i-1).Source & chr(10)
   Next

   ' Display the error messages collected above.
   MsgBox ErrorMessage

end if

' Indicate that the operation completed.
MsgBox "Done!"


Code to Retrieve and Set Multi-Valued Attributes

In this example, a previous page has posted a value titled "theValue" which contains multiple values in a string separated by semicolons: "valueone;valuetwo;valuethree". This is split into an array using the VBScript Array() function and then used to update the users profile.

The following points hold for this example:

  • The Site Name is hard coded instead of being retrieved from the Application object.
  • The Profile Service object is created on the page. There is normally one instance of this object that is created in Global.asa and stored in the Application object. This global instance would normally be used on a production page.
  • The specific profile instance to update is hard coded on the page. This is rarely the case in a production page.
  • Error checking is omitted for clarity.
<html>
<body>
<%
Dim strSiteTerms, aTermArray, SiteName, oProfileService, oUser

' The Site Name would normally be retrieved from
' the Application object.
SiteName = "SupplierAD"

' The ProfileService object would normally be retrieved from the Application object.
Set oProfileService = GetProfileService(SiteName)

' Get the SiteTerms set into an array.
strSiteTerms = Request("theValue")
aTermArray = Split(strSiteTerms, ";")

' Get a profile. This would not normally be hard coded.
Set oUser = oProfileService.GetProfile("JoeUser", "UserObject")

' Modify and update the multi-valued SiteTerm with
' the information provided.
oUser.Favorites.FavoritePets = aTermArray
oUser.Update

Function GetProfileService(strSiteName)
Dim oProf, strConn
strConn = GetConnectionString(strSiteName)
Set oProf = Server.CreateObject("Commerce.ProfileService")
oProf.Initialize strConn, "Profile Definitions"
Set GetProfileService = oProf
End Function

' Get the Profile Service connection string.
Function GetConnectionString(strSiteName)
Set SiteCFG = Server.CreateObject("Commerce.SiteConfigReadOnly")
SiteCFG.Initialize strSiteName
GetConnectionString = SiteCFG.Fields("Biz Data Service").Value. _
Fields("s_BizDataStoreConnectionString").Value
End Function
%>

' The profile has been updated.
</body>
</html>


Targeting Objects

The content selection objects are used to select custom content for display on Web pages and are part of the Content Selection Framework (CSF). Although the CSF uses many different objects to select content, such as the ContentList object, the ContentListFactory object, and the CacheManager object, this section focuses on the ContentSelector object, which is the main object used to get and display targeted content. The ContentSelector object invokes different CSF pipelines to select different types of content based on the dictionary passed to the GetContent method.

The Targeting Programming Concepts topic describes the concepts related to programming with the Content Selection objects.

Objects

Visual Basic Reference | C++ Invocation | Description
ContentList | ContentList | Contains a representation of each content item eligible for a given request for content. Also provides services to Content Selection Framework (CSF) components such as filtering and sorting.
ContentListFactory | ContentListFactory | Allows creation of ContentList objects, and stores data shared by those objects.
ContentListSchema | ContentListSchema | Allows manipulation of the schema for a ContentListFactory object.
ContentSelector | ContentSelector | Allows specification and retrieval of page content.
ExpressionEval | ExpressionEval | Allows selection and evaluation of one or more expressions against a set of profiles.
ExpressionStore | ExpressionStore | Provides methods to create, save, modify, and retrieve expressions.
ExprEvalContext | ExprEvalContext | Stores a specific evaluation context (set of profiles) that can be used for multiple expression evaluation operations.
ExprFltrQueryBldr | ExprFltrQueryBldr | Translates an expression in XML form into a SQL filter query string.
ListManager | ListManager | Provides methods to create, destroy, manage, and manipulate lists.
RowCollection | RowCollection | Allows enumeration of the rows returned from the ActiveRows and AllRows properties, and the Search method, of a ContentList object, and from the AllRows property and the Search method of a ContentListFactory object.

Examples

Example | Description
Code to Support the ContentSelector Object | Contains code to include in the Global.asa file to support the ContentSelection object.
Code to Execute the ContentSelector Object | Contains code to include in the Default.asp file that you use to create the ContentSelection object, code that you use with the GetContent method, and code you use to write ads to the Web page.
Code to Connect to the Expression Store | Describes how to connect to, and disconnect from, the Expression Store.
Code to Create an Evaluation Context | Describes how to create an evaluation context that contains the data for evaluating an expression against.
Code to Evaluate an Expression Stored as an XML Fragment | Describes how to evaluate an expression stored as an XML fragment.
Code to Create a New Expression | Describes how to create a new expression.
Code to Manipulate Expressions | Describes how to retrieve or delete expressions from the Expression Store, rename an expression, or translate between expression IDs and expression names.
Code to Evaluate a Single Expression | Describes how to evaluate a single expression.
Code to Evaluate Groups of Expressions | Describes how to create a stored evaluation context and evaluate groups of expressions against this common context.
Code to Import and Export Expressions | Describes how to import and export expressions.
Code to Initialize the ListManager Object | Describes how to create and initialize the ListManager object.
Code to Create a List | Describes how to create a list from a file.
Code to Manipulate Lists | Describes the operations performed on lists such has copy, subtract, union, and export, and the procedure to add and subtract a user from a list.
Code to Enumerate Available Lists | Describes how to retrieve and enumerate the available lists and set list properties, such as the list name and description.


Targeting Programming Concepts

This section contains the following:

  • ContentSelector Programming Concepts
  • Expression Programming Concepts
  • List Management Programming Concepts


ContentSelector Programming Concepts

The ContentSelector object is used to invoke Content Selection Framework (CSF) pipelines to display dynamic, targeted content on a Web page. The ContentSelector object is a property bag that inherits the properties and methods of the Dictionary object and adds the GetContent method. The dictionary object passed to the GetContent method, the global Context dictionary for the CSF application, is used to pass global objects and other values to the pipeline. These values include the location of the redirector script (Redir.asp), the expression evaluator object, and the Content Selection pipeline that should be run to select the content. These values do not change on a per-request basis.

Certain pipeline components in the CSF pipeline expect certain values, some optional, to be set in the dictionary. For example, the CSF pipeline expects the Size, PageGroups, NumRequested, and UserProfile keys to be set in the dictionary.

Redirecting Users

Advertising Sitelet

Redirecting Users

To capture and record the final click events before users navigate away from your site, Commerce Server 2002 includes the redirector script, Redir.asp. For example, if an advertiser on your site supplies you with an ad and requests that when the ad is clicked the browser should navigate to the advertiser's site, then without a mechanism such as the redirector, Commerce Server 2002 has no way to know that the user clicked on the ad. Being able to track these final click events enables you to analyze the performance and success of targeted content on your Web site.

To implement the Redir.asp script, you must create an Event Processing pipeline in the Global.asa file. The following code creates the Event Processing pipeline and can be added to the code in Code to Support the ContentSelector Object.

Dim dCSFAdsContext
Set oPipe = Server.CreateObject ("Commerce.OrderPipeline")
oPipe.LoadPipe (oPipelineMap.RecordEvent)
Set Application ("CampaignsCSFEventPipe") = oPipe

The following code should be included in the Redir.asp script.

Notes

  • The Solution Sites and the Advertising Sitelet include versions of the Redir.asp script that you can reuse.
  • Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.
Sub Main()
    Dim oPipe, sUrl, sCacheName, oContentList
    Dim dictCache, dictOrder, dictContext
    Dim Errlvl, oFactory, ciid, sEvt

    ' Get Pipeline object.
    Set oPipe = Application("CampaignsCSFEventPipe")

    ' Get the Content cache that this event is associated with.
    sCacheName = Request.Querystring("CacheName")

    If sCacheName <> "" Then
    ' Get cache object
    Set dictCache = Application("MSCSCacheManager").GetCache(sCacheName)

        ' Get name of event to record (default is CLICK).
        sEvt = Request.Querystring("evt")
        If sEvt = "" Then sEvt = "CLICK"

        ' Set up Order and Context dictionaries and execute the pipeline.
        If ciid > 0 Then
            ' Create dictionaries
            Set dictOrder = Server.CreateObject("Commerce.Dictionary")
            Set dictContext = Server.CreateObject("Commerce.Dictionary")

            ' "_winners" is the item(s) to record the event for.
            ' (may be a simplelist or a scalar)
            dictOrder("_winners") = ciid

            ' "_event" is the name of the event to record. You cannot
            ' record more than one event name per pipeline invocation.
            dictOrder("_event") = sEvt

            ' Create a content list of items from the given cache.
            Set oFactory = dictCache("Factory")
            Set oContentList = oFactory.CreateNewContentList
            Set dictOrder("_content") = oContentList

            ' Get the in-memory dictionary of campaign item performance.
            Set dictOrder("_Performance") = dictCache("_Performance")
            dictContext("SiteName") = sCacheName

            ' Look up page group ID.
            If Request.QueryString("PageGroupId") <> "" Then
                dictContext("PageGroupId") =
                CLng(Request.QueryString("PageGroupId"))
            Else
                dictContext("PageGroupId") = 0
            End If

            ' Execute the pipeline to record the event.
            oPipe.orderExecute 1, dictOrder, dictContext, Errlvl

        End If
    End If

    ' Redirect to the supplied URL.
    sUrl = Request.Querystring("url")
    If sUrl <> "" Then
        Response.Redirect(sUrl)
    Else

        Response.Write(MSCSMessageManager.GetMessage
        ("L_NoRedirectionURLSpecified_ErrorMessage", sLanguage))
    End if
End Sub

Advertising Sitelet

Included with Commerce Server 2002 Software Development Kit (SDK) is the Advertising Sitelet. The Advertising Sitelet is an example of how ContentSelector objects can be implemented to show targeted content based on the profile of the user.

For more information about unpacking the Advertising Sitelet, see Advertising Sitelet.


Expression Programming Concepts

The Expression Evaluator Engine (EEE) consists of the evaluation core logic, the ExpressionStore, and ExpressionEval objects, and caches for loaded expressions, object properties, and expression results as shown in the following figure.

Expression Evaluation Engine

The EEE consists of the following parts:

  • Evaluation Context
  • Evaluation Core
  • Expression Cache
  • Expression Result Cache
  • ExpressionEval Object
  • ExpressionStore Object
  • Object Property Cache

Evaluation Context

An evaluation context is used to evaluate a set of expressions against the same profiles. Performance is gained when evaluation contexts are used because it allows the EEE to do more intelligent caching. Specifically, it enables caching of profile properties and expression results. This is used by the CSF EvalTargetGroups component, for example, because this component evaluates many expressions against the same profiles and many of those expressions are commonly repeated in multiple target groups.

If an evaluation context is not explicitly created, one will automatically be created each time an expression is evaluated. Such context objects are automatically released once the expression has been evaluated.

When targeting advertisements or discounts, it is possible to build targeting expressions using two profile definitions: User profile and TargetingContext profile. Typically in Commerce Server ASP-based sites, a Dictionary object is used as the run-time instantiation of the TargetingContext profile. With a Dictionary object there is no enforcement of the profile schema and it is possible to set properties on the dictionary that cannot be targeted because they are not part of the design-time view of the profile schema. It has always been possible to use true Profile objects for the TargetingContext profile at runtime, but the default schema of the TargetingContext profile in Commerce Server 2000 did not allow for this because there was no unique key property.

In Commerce Server 2002 ASP .NET-based sites, the CommerceContext.TargetingSystem.TargetingContextProfile property represents a true profile object with a strictly enforced schema. The default TargetingContext profile schema has been changed to include a unique key property, unique_id. On each page request, a unique value for this property is automatically generated by the TargetingSystemInfo class.

ASP-based sites may also optionally provide a true Profile object at runtime as the TargetingContext profile, but the site would need to use the Commerce.GenId class to manually create a new Guid for each instance of the TargetingContext profile that is created and assign that to the unique_id property.

See Also

TargetingSystemInfo.TargetingContextProfile Property

Evaluation Core

This is the core logic of the EEE. It handles the actual evaluation of the expression.

Expression Cache

Expressions are loaded from the Expression Store into this cache. When an expression is to be evaluated, the ExpressionEval object firsts looks for the expression in this cache. If the expression is not found, it is loaded. For enhanced performance at run-time, pre-load expressions into the expression cache using the LoadExpr or LoadAll methods of the ExpressionEval object.

Expression Result Cache

The result of an evaluated expression is cached so the result can be returned without re-evaluating the expression a second time for a given evaluation context.

ExpressionEval Object

This object loads and flushes the expression cache, creates the evaluation contexts against which expressions are evaluated, and performs the evaluations on the expressions. For more information, see ExpressionEval Object.

ExpressionStore Object

This object interacts with the Expression Store to create, delete, save, retrieve, query, import, and export expressions. For more information, see ExpressionStore Object.

Object Property Cache

When an expression is initially evaluated, references to the dependent profile objects are stored in this cache. During evaluation, as the object properties are accessed, they are also stored in this cache for reuse.


List Management Programming Concepts

List Types

List Manager contains the functionality to manipulate two types of lists, Generic lists and Mailing lists. Each type may also have User and Mailable attributes. Lists are designated as static or dynamic, depending on when the data is imported.

You use a Mailing list with Direct Mailer. It contains a list of recipients who have been designated to receive an e-mail ad or a list of recipients that should not receive the mailing. The default flags value indicates a Mailing list; the LISTFLAG_GENERIC flag must be set when the list is created or when the list is imported if the list you are creating is not a Generic list. A Mailing list implies a list with a specific set of column names and types. Direct Mailer uses only Mailing lists, although a Mailing list may be automatically extracted from a Generic list so long as it is a Mailable Generic list.

A Generic list may have any set of column names and types — it essentially maps to a SQL Server database table. When a list is imported into List Manager from the Analysis reporting feature or the Predictor segment viewer, it is imported as a Generic list. Generic lists may be converted to Mailing lists if they meet certain requirements. A Generic list may be imported from an SQL query but cannot be imported from a flat file.

A Mailable list is any list with an rcp_email column. When you import or create a Mailable list, you indicate that it is a Mailable list by setting the LISTFLAG_MAILABLE flag. A Generic list may or may not be Mailable; a Mailing list is always Mailable. After importing a Generic list, ListManager automatically attempts to detect a Mailable list, and sets the appropriate flag. The Mailable list flag exists for integration with Direct Mailer features, so that Direct Mailer can identify which lists to use for e-mail recipients and opt-out lists.

A User list is any list with an rcp_guid column. When you import or create a User list, you indicate that it is a User list by setting the LISTFLAG_USER flag. A Generic list may or may not be a User list; a Mailing list is always a User list. After importing a Generic list, List Manager automatically attempts to detect a User list, and sets the appropriate flag. The User list flag exists for integration with User Profile Management features. For example, it is possible to import a list from the Segment Viewer module in Commerce Server Business Desk and set a property in the user profile of each user in that list to indicate their membership in a particular segment. This information is then available for targeting by the Content Selection Framework for advertising and discounts.

Lists may be created as either static or dynamic. In a static list, records are imported at the time the list is created. A dynamic list imports records on demand when referenced by another operation.

Flag Values

The following table lists the possible flag parameter values used to determine the type of list created. Values may be combined using the logical OR operator to specify more than one flag.

List Type | Value | Description
DEFAULT | 0x0 | A Mailing list.
HIDDEN | 0x1 | The list should not be exposed in the user interface.
DYNAMIC | 0x2 | A dynamic list.
USER | 0x4 | A User list (contains an rcp_guid column).
GENERIC | 0x8 | A Generic list.
MAILABLE | 0x10 | A Mailable list (contains an rcp_email column).

Import/Export

List Manager can import lists from the following sources:

  • An SQL query run against an Open Database Connectivity (ODBC) data source.
  • A text file (comma-separated value (CSV) format).

List Manager can export lists to the following destinations:

  • A SQL Server 2000 table in an external database.
  • A text file (CSV format).

Text Files

If an absolute file path and name is not specified when importing or exporting a list, List Manager looks for the file relative to a root folder named "CommerceLists" on the local computer running the List Manager service. If the folder does not exist, an error is returned.

List Manager recognizes the following input text file format:

<Mail-to Address>,<User ID>,<Format>,<Locale>,<Source URL><cr><lf>

The only required field is Mail-to Address. The optional Format field should be one of the following: 1 - text, 2 - MIME, or 3 - MHTML. Any double quotation marks surrounding a field will be stripped. A trailing comma will produce an error.

List Manager exports text files in the same format as described above with all fields enclosed in double quotation marks.

Asynchronous Mode

List Manager allows time-consuming operations to run in an asynchronous manner. When run asynchronously, the operation returns immediately after the process has started. An application that starts an operation asynchronously has the following additional methods available:

  • The WaitOnOperation method returns when the operation is finished, or a timeout has occurred.
  • The GetOperationInfo method returns all details of the operation including its current status.
  • The CancelOperation method signals the operation to quit. If the operation does not quit in two minutes, the operation is terminated.

Database Tables

List Manager stores information about lists and operations in the lm_master and lm_master_operations database tables, respectively. For information on the format of these tables, see ListManager.GetLists and ListManager.GetOperations.


ContentList Object [C++]

ContentList Object [Visual Basic]

Use this object to access a particular collection of content items. The ContentList object provides aggregated access to the private data that it stores and to the shared data stored in the ContentListFactory object that created it. This object also flows through the Content Selection Framework (CSF) pipeline for the purpose of scoring content items.

ProgID: | Dependent (See Remarks for more information)
COM Class Name: | ContentList
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]
COM Interface Name: | IContentList
Interface ID Constant: | IID_IContentList
Header File: | cacheint.h, mspu_guids.h

[C++] In C++, use the IContentList and IDataContainer interfaces to access the methods and properties of a ContentList object.

Methods

[C++]
Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | Gets data from a specified row and column in a ContentList object in a high-performance, non-scriptable manner.
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentList object in a high-performance, non-scriptable manner.
SetScore | Sets the score of an item in a ContentList object.
[Visual Basic]
Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on all rows based on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | This method is not usable from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a collection of content items that match the search criteria.
SetData | This method is not usable from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).
SetScore | Sets the score of an item in a ContentList object.

Properties

[C++]
Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | Contains a RowCollection object containing all rows in this ContentList object. This property is read-only.
Count | long | Contains the number of rows in this ContentList object. This property is read/write.
Factory | IContentListFactory | Contains the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | Fields | Contains the Fields collection for this ContentList object. This property is read-only.
RowLimit | long | Contains the maximum number of active rows. This property is read/write.
Sorted | VARIANT_BOOL | Stores a flag that controls whether the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | float | Contains the Threshold score required for active rows. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | VARIANT_BOOL | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.
[Visual Basic]
Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | The collection of all rows in the ContentList object. This property is read-only.
Count | Long | Stores the number of rows in the ContentList object. This property is read/write.
Factory | IContentListFactory | Stores a reference to the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | Fields | The Fields collection for a particular row in the ContentList object. This property is read-only.
RowLimit | Long | Stores the maximum number of rows that can exist in the ActiveRows collection property. This property is read/write.
Sorted | Boolean | Stores a flag that controls whether the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | Float | Stores the Threshold score that items must meet to be included in the ActiveRows collection property. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | Boolean | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.

Remarks

Both the ContentList object and the ContentListFactory object implement a common interface, IDataContainer. Therefore, they share the following methods and properties, which are functionally identical on both objects:

Properties:

  • AllRows
  • Count
  • Fields

Methods:

  • BuildIndex
  • GetData
  • Search
  • SetData

The function of a ContentList object is:

  • To aggregate private data in the ContentList object with shared data in the ContentListFactory object.
  • To provide functionality for scoring, searching, and filtering the list of content.

[C++] The ContentList object is a dependent object. Create a new ContentList object and obtain a pointer to its IContentList interface by calling the method IContentListFactory::CreateNewContentList.

[Visual Basic] The ContentList object is a dependent object. Create a new ContentList object by calling the method ContentListFactory.CreateNewContentList.

Important

  • The ContentList and the ContentListFactory objects are designed to be run in-process with their clients. The GetData and SetData methods assume direct memory access for performance reasons.


IContentList Methods [C++]

ContentList Methods [Visual Basic]

Methods

[C++]
Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | Gets data from a specified row and column in a ContentList object in a high-performance, non-scriptable manner.
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentList object in a high-performance, non-scriptable manner.
SetScore | Sets the score of an item in a ContentList object.
[Visual Basic]
Method | Description
AdjustScore | Adjusts the score associated with an item in the ContentList object by applying a multiplier.
BuildIndex | Builds an index on all rows based on the specified column.
Filter | Filters items in a ContentList object based on the specified criteria.
GetData | This method is not usable from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).
GetScore | Gets the score of an item in a ContentList object.
Search | Returns a collection of content items that match the search criteria.
SetData | This method is not usable from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).
SetScore | Sets the score of an item in a ContentList object.


IContentList::AdjustScore Method [C++]

ContentList.AdjustScore Method [Visual Basic]

Use this method to adjust the score of an item in the ContentList object by applying a multiplier.

Definition

[C++]
HRESULT IContentList::AdjustScore(
 long RowNum,
 float Multiplier,
 BSTR Component,
 BSTR Description
);
[Visual Basic]
Sub AdjustScore(
 RowNum As Long,
 Multiplier As Float,
 Component As String,
 Description As String
)

Parameters

RowNum [C++]
[in] A long that contains the position of the item in the ContentList object for which the score is to be adjusted. Positions are counted from zero (0), not from one (1).
RowNum [Visual Basic]
A Long that contains the position of the item in the ContentList object for which the score is to be adjusted. Positions are counted from zero (0), not from one (1).
Multiplier [C++]
[in] A float that contains the value by which the score will be multiplied.
Multiplier [Visual Basic]
A Float that contains the value by which the score will be multiplied.
Component [C++]
[in,optional] A BSTR that contains an identifier for the pipeline component that is adjusting the score. By convention, this is the Programmatic Identifier (ProgID) of the pipeline component.
Component [Visual Basic]
An optional String that contains an identifier for the pipeline component that is adjusting the score. By convention, this is the ProgID of the pipeline component.
Description [C++]
[in,optional] A BSTR that contains a description to be appended to the score adjustment tracing string. This string should briefly describe the nature of the adjustment.
Description [Visual Basic]
An optional String that contains a description to be appended to the score adjustment tracing string. This string should briefly describe the nature of the adjustment.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Component and Description parameters are optional. They are ignored unless the TraceMode property is set to True.

This method assumes that the ContentList object has a column of type CLCOL_R4 with the CLCOL_SCORE_COLUMN flag set.

[Visual Basic]

Example

myContentList.AdjustScore 1, 1.25

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::BuildIndex Method [C++]

ContentList.BuildIndex Method [Visual Basic]

Use this method to build an index for a specific column in a ContentList object.

Definition

[C++]
HRESULT IContentList::BuildIndex(
 VARIANT vCol
);
[Visual Basic]
Sub BuildIndex(
 vCol As Variant
)

Parameters

vCol [C++]
[in] A VARIANT that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vCol [Visual Basic]
A Variant that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

S_FALSE
An index already exists on the column.

Remarks

An index can be built on any read-only, non-private column that is of type string, integer, or array of strings or integers. (CLCOL_READONLY and not CLCOL_PRIVATE). Also, only columns of type CLCOL_I2, CLCOL_I4, CLCOL_STRING, and CLCOL_VARIANTARRAY can be indexed. The non-private restriction means that the column will actually reside in the corresponding ContentListFactory object.

If a search is conducted on a column for which no index yet exists, the index is automatically created. This means that, although you are never required to call the BuildIndex method, you may want to incur the cost of creating the index at a known time for performance sake.

This method is functionally identical to the one of the same name in the ContentListFactory object.

[Visual Basic]

Example

myDataContainer.BuildIndex 10

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::Filter Method [C++]

ContentList.Filter Method [Visual Basic]

Use this method to filter items in a ContentList object. Items that do not pass the filter have their scores set to zero (0).

Definition

[C++]
HRESULT IContentList::Filter(
 VARIANT vColumn,
 VARIANT vFilterCriteria,
 FilterActionEnum FilterAction,
 BSTR Component
);
[Visual Basic]
Sub Filter(
 vColumn As Variant,
 vFilterCriteria As Variant,
 FilterAction As FilterActionEnum,
 Component As String
)

Parameters

vColumn [C++]
[in] A VARIANT that identifies the column upon which to filter. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vColumn [Visual Basic]
A Variant that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vFilterCriteria [C++]
[in] A VARIANT that contains the filter criterion. The criterion is usually a BSTR, an integer, or a SAFEARRAY of VARIANTS containing BSTRs or integers.
vFilterCriteria [Visual Basic]
A Variant that contains the filter criterion. The criterion is either a single String, an array of Strings, or an Integer.
FilterAction [C++]
[in] An enumeration value. Valid values are FILTER_REQUIRE and FILTER_EXCLUDE. See the Remarks section for more information about the consequences of these two actions.
FilterAction [Visual Basic]
An enumeration value. Valid values are FILTER_REQUIRE and FILTER_EXCLUDE. See the Remarks section for more information about the consequences of these two actions.
Component [C++]
[in,optional] A BSTR that is intended to contain the name of the pipeline component doing the filtering. This parameter is optional and is used for score tracing. Trace messages will be generated for content items that are filtered out.
Component [Visual Basic]
A String that is intended to contain the name of the pipeline component doing the filtering. This parameter is optional and is used for score tracing. Trace messages will be generated for content items that are filtered out.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

An item in the ContentList object matches the criteria if the value for the specified column exactly matches a string or number passed in the vFilterCriteria parameter. If the vFilterCriteria parameter is an array of strings, matching any one of the strings in the array is considered a match. If the FilterAction parameter is set to FILTER_REQUIRE, non-matching items have their scores set to zero (0). If the FilterAction parameter is set to FILTER_EXCLUDE, matching items have their scores set to zero (0).

For the sake of uniformity, the pipeline components provided with Commerce Server 2002 pass their own Programmatic Identifier (ProgID) for the Component parameter.

[Visual Basic]

Example

myContentList.Filter "Score", 3, FILTER_EXCLUDE

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::GetData Method [C++]

ContentList.GetData Method [Visual Basic]

[C++] Use this method to read data from a specified row and column in a ContentList object, and through aggregation, the corresponding ContentListFactory object.

[C++] This is one of the two ContentList methods that do not support a scriptable interface. The other method is SetData. They are only intended for use in C++.

[Visual Basic] Due to performance considerations and compatibility issues, this method cannot be used from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

[C++]

Definition

HRESULT IContentList::GetData(
 long iRow,
 long iCol,
 BYTE* pData
);
[C++]

Parameters

iRow
[in] A long that contains the position of the row from which the data should be read. Row positions are counted from zero (0), not one (1).
iCol
[in] A long that contains the position of the column within the specified row from which the data should be read. Column positions are counted from zero (0), not one (1).
pData
[out] A pointer to where the data should be written.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[C++]

Error Values

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[C++]

Remarks

The GetData method does not do type checking. The memory pointed to by the pData parameter must be large enough to receive the value being read. If the allotted memory is too small, memory corruption occurs.

The ContentList object stores some types of data by value and other types of data by reference. Therefore, how you use the GetData and SetData methods depends on the data type.

When you pass a pointer to a String to the SetData method, it stores the String in the ContentList object, not the pointer. The GetData method returns a pointer to the String in the ContentList object, but not the String. Do not hold a reference to the String in the ContentList object beyond the lifetime of the object, as it will be invalid after the object is destroyed. The ContentList object only stores wide character Unicode strings. ANSI strings are not supported.

When you pass an interface pointer to an object to the SetData method, it calls AddRef on the interface pointer and stores it in the ContentList object. The GetData method returns this pointer and calls AddRef on it. The caller must call release on the pointer returned by the GetData method.

When you pass a pointer to a SafeArray to the SetData method, it locks the SafeArray and stores a reference to it in the ContentList object. The GetData method returns a reference to the locked array. The caller should not unlock the array as this could invalidate the reference stored in the ContentList object. It is safe to store the array in a Variant of type VT_ARRAY or VT_VARIANT, as a call to ::VariantClear will not release the SafeArray because it is locked. When the ContentList object is being destroyed the SafeArray will be unlocked and SafeArrayDestroy will be called. Since SafeArrays have a lock count similar to reference counting the array data will be released only if the lock count is zero.

GetData reads and SetData stores all other supported data types by value.

This method is functionally identical to the one of the same name in the ContentListFactory object.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::GetScore Method [C++]

ContentList.GetScore Method [Visual Basic]

Use this method to retrieve the score of an item in a ContentList object.

Definition

[C++]
HRESULT IContentList::GetScore(
 long RowNum,
 float* Score
);
[Visual Basic]
Function GetScore(
 RowNum As Long
) As Float

Parameters

RowNum [C++]
[in] A long that contains the position of the item in the ContentList object for which the score will be returned. Positions are counted from zero (0), not from one (1).
RowNum [Visual Basic]
A Long that contains the position of the item in the ContentList object for which the score will be returned. Positions are counted from zero (0), not from one (1).
Score [C++]
[out,retval] A pointer to a float used to return the score for the specified item.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Float that contains the score for the specified item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

Example

'sngScore is a float
sngScore = myContentList.GetScore(12)

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::Search Method [C++]

ContentList.Search Property [Visual Basic]

Use this method to create a RowCollection object that allows access to each item in the ContentList object that matches the specified criterion.

Definition

[C++]
HRESULT IContentList::Search(
 VARIANT vCol,
 VARIANT vSearchCriteria,
 IRowCollection** ppIRowCollection
);
[Visual Basic]
Function Search(
 vCol As Variant,
 vSearchCriteria As Variant
) As IRowCollection

Parameters

vCol [C++]
[in] A VARIANT that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vCol [Visual Basic]
A VARIANT that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vSearchCriteria [C++]
[in] A VARIANT that contains the filter criterion. The criterion is usually a BSTR, an integer, or a SAFEARRAY of VARIANTS containing BSTRs or integers. The Search method will attempt to coerce other types to the type of the column being searched.
vSearchCriteria [Visual Basic]
A Variant that contains the filter criterion. The criterion is usually a String, an array of Strings, or an Integer. An attempt will be made to coerce other types to the type of the column being searched.
ppIRowCollection [C++]
[out,retval] A pointer to an address to receive an IRowCollection interface pointer for a new RowCollection object that allows access to the rows that match the search criteria.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a new RowCollection object that contains one row for each matching item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

The following standard COM error value has a particular meaning in the context of this method.

S_FALSE
No rows in the ContentList object matched the filter criteria. As a result, the returned RowCollection is empty.

Remarks

Columns must be shared (not private) and read-only in order to be indexed and searched. Columns must also be of type string, integer (long or short), or variant array to be searchable. The search criteria may be any variant type that can be coerced to the type of the column being searched.

When the search criteria is an array of variants, the set of rows returned contains all rows that match any of the search criteria array elements. It is a union of the matches.

This property is functionally identical to the one of the same name in the ContentListFactory object.

[Visual Basic]

Example

'myCol is a RowCollection object
Set myCol = myContentList.Search(10, "CarAds")

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::SetData Method [C++]

ContentList.SetData Property [Visual Basic]

[C++] Use this method to write data to a specified row and column in a ContentList object and, through aggregation, to the corresponding ContentListFactory object.

[C++] This is one of the two ContentList methods that do not support a scriptable interface. The other method is GetData. They are only intended for use in C++.

[Visual Basic] Due to performance considerations, this method cannot be used from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

Definition

[C++]
HRESULT IContentList::SetData(
 long iRow,
 long iCol,
 BYTE* pData
);

Parameters

[C++]
iRow
[in] A long that contains the position of the row into which the data should be written. Row positions are counted from zero (0), not one (1).
iCol
[in] A long that contains the position of the column within the specified row into which the data should be written. Column positions are counted from zero (0), not one (1).
pData
[in] A pointer to the data to write into the ContentList object.

Return Values

[C++]

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++]

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

Remarks

[C++]

The SetData method does not do type checking for the data being written. The data pointed to by the pData parameter must be of the correct type for the column. Type (and especially size) mismatches will not result in memory scribbles (which is possible with the GetData method), but some of the data may not be written into the ContentList object.

The ContentList object stores some types of data by value and other types of data by reference. Therefore, how you use the GetData and SetData methods depends on the data type.

When you pass a pointer to a String to the SetData method, it stores the String in the ContentList object, not the pointer. The GetData method returns a pointer to the String in the ContentList object, but not the String. Do not hold a reference to the String in the ContentList object beyond the lifetime of the object, as it will be invalid after the object is destroyed. The ContentList object only stores wide character Unicode strings. ANSI strings are not supported.

When you pass an interface pointer to an object to the SetData method, it calls AddRef on the interface pointer and stores it in the ContentList object. The GetData method returns this pointer and calls AddRef on it. The caller must call release on the pointer returned by the GetData method.

When you pass a pointer to a SafeArray to the SetData method, it locks the SafeArray and stores a reference to it in the ContentList object. The GetData method returns a reference to the locked array. The caller should not unlock the array as this could invalidate the reference stored in the ContentList object. It is safe to store the array in a Variant of type VT_ARRAY or VT_VARIANT, as a call to ::VariantClear will not release the SafeArray because it is locked. When the ContentList object is being destroyed the SafeArray will be unlocked and SafeArrayDestroy will be called. Since SafeArrays have a lock count similar to reference counting the array data will be released only if the lock count is zero.

GetData reads and SetData stores all other supported data types by value.

Objects must be "both threaded" and must aggregate the Free Threaded Marshaller object in order to be stored in a ContentList object. If you ignore this restriction, marshalling errors may occur.

This method is functionally identical to the one of the same name in the ContentListFactory object.

Caution

  • Because ContentList objects do not perform synchronization or locking, take caution when you are writing string, array, or object values in multi-threaded scenarios. Race conditions could exist that might result in resource leaks.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::SetScore Method [C++]

ContentList.SetScore Property [Visual Basic]

Use this method to set a new score for an item in a ContentList object.

Definition

[C++]
HRESULT IContentList::SetScore(
 long RowNum,
 float Score,
 BSTR Component,
 BSTR Description
);
[Visual Basic]
Sub SetScore(
 RowNum As Long,
 Score As Float,
 Component As String,
 Description As String
)

Parameters

RowNum [C++]
[in] A long that contains the position of the item in the ContentList object for which a new score will be set. Positions are counted from zero (0), not from one (1).
RowNum [Visual Basic]
A Long that contains the position of the item in the ContentList object for which a new score will be set. Positions are counted from zero (0), not from one (1).
Score [C++]
[in] A float that contains the new score.
Score [Visual Basic]
A Float that contains the new score.
Component [C++]
[in,optional] A BSTR that is intended to contain the name of the pipeline component that is setting the new score. This parameter is optional and is used for score tracing.
Component [Visual Basic]
A String that is intended to contain the name of the pipeline component that is setting the new score. This parameter is optional and is used for score tracing.
Description [C++]
[in,optional] A BSTR that is intended to contain the reason that the score is being set; for example, Need of Delivery. This parameter is optional and is used for score tracing.
Description [Visual Basic]
A String that is intended to contain the reason that the score is being set; for example, Need of Delivery. This parameter is optional and is used for score tracing.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Component and Description parameters are optional.

This method assumes that the ContentList object has a column of type CLCOL_R4 with the CLCOL_SCORE_COLUMN flag set.

For the sake of uniformity, pipeline components provided with Commerce Server 2002 pass the Programmatic Identifier (ProgID) of the component for the Component parameter.

[Visual Basic]

Example

'strProgID is a string
myContentList.SetScore(123456, 0.5, strProgID, "")

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList Properties [C++]

ContentList Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | Contains a RowCollection object containing all rows in this ContentList object. This property is read-only.
Count | long | Contains the number of rows in this ContentList object. This property is read/write.
Factory | IContentListFactory | Contains the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | Fields | Contains the Fields collection for this ContentList object. This property is read-only.
RowLimit | long | Contains the maximum number of active rows. This property is read/write.
Sorted | VARIANT_BOOL | Stores a flag that controls whether the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | float | Contains the Threshold score required for active rows. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | VARIANT_BOOL | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.
[Visual Basic]
Property | Type | Description
ActiveRows | IRowCollection | The collection of rows that meet the current Threshold and RowLimit properties and that have not been filtered out of the ContentList object. This property is read-only.
AllRows | IRowCollection | The collection of all rows in the ContentList object. This property is read-only.
Count | Long | Stores the number of rows in the ContentList object. This property is read/write.
Factory | IContentListFactory | Stores a reference to the ContentListFactory object that created this ContentList object. This property is read-only.
Fields | Fields | The Fields collection for a particular row in the ContentList object. This property is read-only.
RowLimit | Long | Stores the maximum number of rows that can exist in the ActiveRows collection property. This property is read/write.
Sorted | Boolean | Stores a flag that controls whether the rows in the ActiveRows collection property are returned sorted by score. This property is read/write.
Threshold | Float | Stores the Threshold score that items must meet to be included in the ActiveRows collection property. This property is read/write.
TraceMessages | ISimpleList | Stores the list of TraceMessage strings accumulated for a particular row in the ContentList object. This property is read-only.
TraceMode | Boolean | Stores the TraceMode value. A value of True enables score tracing, a value of False disables it. This property is read/write.


IContentList::get_ActiveRows Property [C++]

ContentList.ActiveRows Property [Visual Basic]

The ActiveRows property returns a RowCollection object. This property is read-only; however, the RowCollection object is read/write. Changes made to the data within the RowCollection object are also reflected in the ContentList object.

Definition

[C++]
Get method:
HRESULT IContentList::get_ActiveRows(
 IRowCollection** ActiveRows
);
[Visual Basic]
Property ActiveRows() As IRowCollection

Parameters

ActiveRows [C++]
[out,retval] The address of a pointer used to return the IRowCollection interface of a RowCollection object that allows access the set of active items in this ContentList object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The ActiveRows RowCollection object allows access to the content items of the ContentList object whose score is greater than or equal to the current threshold score contained in the Threshold property. If the value of the Threshold property is set to a negative number, even items that have been filtered out by the Filter method might be included in the ActiveRows collection. This occurs because an item being filtered out has a score set to zero, which is still greater than a negative threshold value.

Regardless of the number of items with scores above the threshold, the number of items in the ActiveRows object is limited by the RowLimit property.

The order of the rows in the ActiveRows collection is undefined unless the Sorted property is set to True.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IContentList::get_AllRows Property [C++]

ContentList.AllRows Property [Visual Basic]

The AllRows property returns a new RowCollection object that allows access to the items in the ContentList object and, through aggregation, the ContentListFactory object. The AllRows property is read-only; however, the RowCollection object is read/write. Changes made to the data in the RowCollection object are reflected in the ContentList object.

Definition

[C++]
Get method:
HRESULT IContentList::get_AllRows(
 IRowCollection** AllRows
);
[Visual Basic]
Property AllRows() As IRowCollection

Parameters

AllRows [C++]
[out,retval] The address of a pointer used to return the IRowCollection interface of a RowCollection object that contains all of the items in this ContentList object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property is functionally identical to the one of the same name to be found in the ContentListFactory object.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IContentList::get_Count, put_Count Property [C++]

ContentList.Count Property [Visual Basic]

The Count property is a read/write number that gets or sets the number of items in a ContentList object.

Definition

[C++]

Get method:

HRESULT IContentList::get_Count(
 long* Count
);

Put method:

HRESULT IContentList::put_Count(
 long Count
);
[Visual Basic]
Property Count() As Long

Parameters

Count [C++]
[in] When putting the property, a long that contains the item count.
[out,retval] When getting the property, a pointer to a long used to return the item count.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Normally, the Count property is already fixed when a ContentList object is created by a ContentListFactory object. The property may only be set for ContentList objects that are created by a ContentListFactory object that has not yet had any content items stored in it. Also, the Count property cannot be set to a number smaller than the current setting.

This property is functionally identical to the one of the same name in the ContentListFactory object.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::get_Factory Property [C++]

ContentList.Factory Property [Visual Basic]

[C++] The Factory property is a read-only pointer to the IContentListFactory interface of the ContentListFactory object that created this ContentList object.

[Visual Basic] The Factory property is a read-only reference to the ContentListFactory object that created this ContentList object.

Definition

[C++]
Get method:
HRESULT IContentList::get_Factory(
 IContentListFactory** Factory
);
[Visual Basic]
Property Factory As ContentListFactory

Parameters

Factory [C++]
[out,retval] The address of a pointer used to return the IContentListFactory interface of the ContentListFactory object that created this ContentList object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::get_Fields Property [C++]

ContentList.Fields Property [Visual Basic]

The Fields property creates a new Fields object that allows access to the fields for a specified content item. The Fields property is read-only; however, the Fields object is read/write in that changes made using this object are reflected in the ContentList object.

Definition

[C++]
Get method:
HRESULT IContentList::get_Fields(
 long RowNum,
 Fields** Fields
);
[Visual Basic]
Property Fields(
 RowNum As Long
) As Fields

Parameters

RowNum [C++]
[in] A long that contains the position of the item in the ContentList object for which a Fields object will be returned. Positions are counted from zero (0), not from one (1).
RowNum [Visual Basic]
A Long that contains the position of the item in the ContentList object for which a Fields object will be returned. Positions are counted from zero (0), not from one (1).
Fields [C++]
[out,retval] The address of a pointer used to return a Fields object for the specified row in the ContentList object.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Fields object exposes the same interface as the ActiveX Data Objects (ADO) Fields object.

This property is functionally identical to the one of the same name in the ContentListFactory object.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::get_RowLimit, put_RowLimit Property [C++]

ContentList.RowLimit Property [Visual Basic]

The RowLimit property is a read/write number that specifies the maximum number of rows that the object should select for the ActiveRows property.

Definition

[C++]

Get method:

HRESULT IContentList::get_RowLimit(
 long* RowLimit
);

Put method:

HRESULT IContentList::put_RowLimit(
 long RowLimit
);
[Visual Basic]
Property RowLimit() As Long

Parameters

RowLimit [C++]
[in] When putting the property, a long that specifies the row limit.
[out,retval] When getting the property, a pointer to a long used to return the row limit.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object

[C++] IContentList::get_ActiveRows

[Visual Basic] ContentList.ActiveRows


IContentList::get_Sorted, put_Sorted Property [C++]

ContentList.Sorted Property [Visual Basic]

The Sorted property is a read/write Boolean that determines whether the next enumeration of the ContentList object ActiveRows property will be returned in sorted order by score (highest to lowest).

Definition

[C++]

Get method:

HRESULT IContentList::get_Sorted(
 VARIANT_BOOL* Sorted
);

Put method:

HRESULT IContentList::put_Sorted(
 VARIANT_BOOL Sorted
);
[Visual Basic]
Property Sorted() As Boolean

Parameters

Sorted [C++]
[in] When putting the property, a VARIANT_BOOL that specifies whether to return the ActiveRows property in sorted order.
[out,retval] When getting the property, a pointer to a VARIANT_BOOL used to return the value of the Sorted property. See the Remarks section for the effects of this property.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A value of True indicates that the next enumeration of the ContentList object ActiveRows property should be returned in sorted order by score (highest to lowest). A value of FALSE indicates that it will not be sorted. The items do not actually change positions in the list — that is, the ordinal identifying an item never changes. Setting the value to True only effects the next enumeration of the ActiveRows property, subsequent enumerations will be unsorted unless the property is set to True again.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::get_Threshold, put_Threshold Property [C++]

ContentList.Threshold Property [Visual Basic]

The Threshold property is a read/write floating point number. This number contains a threshold score that items must meet or exceed to be included in the ActiveRows collection property.

Definition

[C++]

Get method:

HRESULT IContentList::get_Threshold(
 float* Threshold
);

Put method:

HRESULT IContentList::put_Threshold(
 float Threshold
);
[Visual Basic]
Property Threshold() As float

Parameters

Threshold [C++]
[in] When putting the property, a float that contains the new threshold score.
[out,retval] When getting the property, a pointer to a float used to return the threshold score.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


IContentList::get_TraceMessages Property [C++]

ContentList.TraceMessages Property [Visual Basic]

The TraceMessages property is a SimpleList object that contains the list of trace strings that have accumulated for the given item in a ContentList object. The TraceMessages property is read-only; however, the returned SimpleList object is read/write.

Definition

[C++]
Get method:
HRESULT IContentList::get_TraceMessages(
 long RowNum,
 ISimpleList** TraceMessages
);
[Visual Basic]
Property TraceMessages(
 RowNum As Long
) As ISimpleList

Parameters

RowNum [C++]
[in] A long that contains the position of the row for which the trace messages will be returned. Row positions start at zero (0), not one (1).
RowNum [Visual Basic]
A Long that contains the position of the row for which the trace messages will be returned. Row positions start at zero (0), not one (1).
TraceMessages [C++]
[out,retval] The address of a pointer used to return the ISimpleList interface of the SimpleList object that contains the trace messages.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The TraceMode property acts as a global switch to control whether any score tracing is performed. If it is set to True, score tracing is performed. If it is set to False, score tracing is suppressed.

[Visual Basic] The TraceMode property acts as a global switch to control whether any score tracing is performed. If it is set to True, score tracing is performed. If it is set to False, score tracing is suppressed.

When you use score tracing, you will notice a dramatic negative effect on performance; score tracing should not be used under normal circumstances. However, it can be useful when you are attempting to troubleshoot a scoring-related issue.

The list will be empty if the TraceMode property is set to False or if no score modifications have been made to the item.

Each item in the list is a string in the following format:

<component>,<operator><number>,<description>

Where the fields of the string are defined as follows:

component
The identifier of the component that made the score change, as passed to the AdjustScore, SetScore, and Filter methods.
operator
= if the score set to an absolute value by the SetScore or Filter methods, or * if a multiplier was applied to the score by the AdjustScore method.
number
The score returned by the SetScore method after any adjustments by the Filter or AdjustScore methods.
description
The reason for the score change, as passed to the AdjustScore or SetScore methods, and set by the Filter method.

An example score tracing string is:

"Commerce.AdNod,=0.9875,Need of Delivery".

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object

[C++] IContentList::get_TraceMode, put_TraceMode

[Visual Basic] ContentList.TraceMode


IContentList::get_TraceMode, put_TraceMode Property [C++]

ContentList.TraceMode Property Property [Visual Basic]

The TraceMode property is a read/write Boolean that controls whether score tracing is enabled or suppressed.

Definition

[C++]

Get method:

HRESULT IContentList::get_TraceMode(
 VARIANT_BOOL* TraceMode
);

Put method:

HRESULT IContentList::put_TraceMode(
 VARIANT_BOOL TraceMode
);
[Visual Basic]
Property TraceMode() As Boolean

Parameters

TraceMode [C++]
[out,retval] When getting the property, a pointer to a VARIANT_BOOL used to return the current trace mode setting. A value of True enables score tracing. A value of False suppresses score tracing.
[in] When putting the property, a VARIANT_BOOL that contains a new trace mode setting. A value of True enables score tracing. A value of False suppresses score tracing.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property acts as a global switch to control whether score tracing is performed. If it is set to True, a SimpleList object of trace messages will be constructed that can be accessed through the TraceMessages property. If it is set to False, score tracing is suppressed.

When you use score tracing, you will notice a dramatic negative effect on performance; score tracing should not be used under normal circumstances. However, it can be useful when you are attempting to troubleshoot a scoring-related issue.

See Also

[C++] ContentList Object

[Visual Basic] ContentList Object


ContentListFactory Object [C++]

ContentListFactory Object [Visual Basic]

Use this object to efficiently maintain lists of content items that compete with each other to be selected for display on a Web page by a Content Selection pipeline (CSP).

ProgID: | Commerce.ContentListFactory (Externally creatable)
COM Class Name: | ContentListFactory
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]
COM Interface Name: | IContentListFactory
Interface ID Constant: | IID_IContentListFactory
Header File: | cacheint.h, mspu_guids.h

[C++] In C++, use the IContentListFactory and IDataContainer interfaces to access to the methods and properties of a ContentListFactory object.

Methods

[C++]
Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADO Recordset object. The ContentListFactory object is populated with the data from the Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | Gets data from a specified row and column in a ContentListFactory object in a high-performance, non-scriptable manner.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentListFactory object in a high-performance, non-scriptable manner.
[Visual Basic]
Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADO Recordset object. The ContentListFactory object is populated with the data from the Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | This method is not usable from Visual Basic or VBScript.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | This method is not usable from Visual Basic or VBScript.

Properties

[C++]
Property | Type | Description
AllRows | IRowCollection | The collection of all rows in the ContentListFactory object. This property is read-only.
Count | long | The number of rows in the ContentListFactory object. This property is read/write.
Fields | Fields | The Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.
[Visual Basic]
Property | Type | Description
AllRows | IRowCollection | The collection of all rows in the ContentListFactory object. This property is read-only.
Count | long | Stores the number of rows in the ContentListFactory object. This property is read/write.
Fields | Fields | The Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.

Remarks

Important

  • The ContentList and the ContentListFactory objects are designed to be run in-process with their clients. The GetData and SetData methods assume direct memory access for performance reasons.

Both the ContentList object and the ContentListFactory object implement a common interface, IDataContainer. Therefore they share the following methods and properties, which are functionally identical on both objects:

Properties:

  • AllRows
  • Count
  • Fields

Methods:

  • BuildIndex
  • GetData
  • Search
  • SetData


IContentListFactory Methods [C++]

ContentListFactory Methods [Visual Basic]

Methods

[C++]
Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADO Recordset object. The ContentListFactory object is populated with the data from the Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | Gets data from a specified row and column in a ContentListFactory object in a high-performance, non-scriptable manner.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | Sets data at a specified row and column in a ContentListFactory object in a high-performance, non-scriptable manner.
[Visual Basic]
Method | Description
BuildIndex | Builds an index on the specified column.
ConstructFromRecordset | Initializes a ContentListFactory object, and creates and initializes a new ContentListSchema object, from an ADO Recordset object. The ContentListFactory object is populated with the data from the Recordset object.
CreateNewContentList | Creates a new ContentList object based on the schema in use by this ContentListFactory object. The new ContentList object has access to the shared data in the ContentListFactory object that created it.
GetData | This method is not usable from Visual Basic or VBScript.
Search | Returns a RowCollection object containing the collection of content items that match the search criteria.
SetData | This method is not usable from Visual Basic or VBScript.


IContentListFactory::BuildIndex Method [C++]

ContentListFactory.BuildIndex Method [Visual Basic]

Use this method to build an index for a specific column in a ContentListFactory object.

Definition

[C++]
HRESULT IContentListFactory::BuildIndex(
 VARIANT vCol
);
[Visual Basic]
Sub BuildIndex(
 vCol As Variant
)

Parameters

vCol [C++]
[in] A VARIANT that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vCol [Visual Basic]
A Variant that identifies the column for which the index will be built. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

S_FALSE
An index already exists on the column.

Remarks

An index can be built on any read-only, non-private column that is of type string, integer, or array of strings or integers. (CLCOL_READONLY and not CLCOL_PRIVATE). Also, only columns of type CLCOL_I2, CLCOL_I4, CLCOL_STRING, and CLCOL_VARIANTARRAY can be indexed.

If a search is conducted on a column for which no index yet exists, the index is automatically created. This means that, though you are never required to call the BuildIndex method, you may want to incur the cost of creating the index at a known time for performance sake.

This method is functionally identical to the one of the same name to be found in the ContentList object.

Example

[Visual Basic]
call myContentListFactory.BuildIndex("AdType")

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::ConstructFromRecordset Method [C++]

ContentListFactory.ConstructFromRecordset Method [Visual Basic]

Use this method to initialize a new ContentListFactory object, and create and initialize a new ContentListSchema object, from an ADO Recordset object.

Definition

[C++]
HRESULT IContentListFactory::ConstructFromRecordset(
 _Recordset* Recordset,
 VARIANT Skip,
 IContentListSchema* Add
);
[Visual Basic]
Sub ConstructFromRecordset(
 Recordset As _Recordset,
 Skip As Variant,
 Add As ContentListSchema
)

Parameters

Recordset [C++]
[in] A pointer to an ADO Recordset object from which the ContentList object will be constructed.
Recordset [Visual Basic]
A reference to an ADO Recordset object from which the ContentList object will be constructed.
Skip [C++]
[in,optional] A VARIANT that is a SimpleList object. The SimpleList object contains the names of field(s) that exist in the Recordset object but that should not have a column in the new ContentList object.
Skip [Visual Basic]
An optional Variant that is a SimpleList object. The SimpleList object contains the names of field(s) that exist in the Recordset object but that should not have a column in the new ContentList object.
Add [C++]
[in,optional] A pointer to the IContentListSchema interface of a ContentListSchema object that contains information about additional columns or new flags for existing columns that should be accounted for when the new ContentList object is created. Refer to the Remarks section for additional information.
Add [Visual Basic]
An optional reference to a ContentListSchema object that contains information about additional columns or new flags for existing columns that should be accounted for when the new ContentList object is created. Refer to the Remarks section for additional information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Skip and Add parameters are both optional.

Columns defined in the ContentListSchema object that do not exist in the Recordset object are added to the new schema for the ContentListFactory object. Schema columns defined in both the ContentListSchema object and in the Recordset object get their flag settings from the former object, overriding the default flag settings otherwise applied. Supplemental columns may be either shared or private. Data for any supplemental, shared columns should be initialized using the SetData method. Data for any supplemental, private columns cannot be provided until a corresponding ContentList object is created.

The default value for dwFlags for columns created from the fields of the Recordset object is CLCOL_READONLY.

The ContentListFactory object attempts to access the RecordCount property of the RecordSet to determine how many rows of data for which space should be allocated. Not all types of RecordSets support this. If the RecordCount property cannot be determined, the ContentListFactory object will grow the factory in chunks of 100 rows. For this reason, it is most efficient to pass a RecordSet for which the RecordCount property is defined.

The following table shows the Column types that are mapped from the Recordset object.

ADO Type | ContentList Type
adSmallInt, adUnsignedSmallInt | CLCOL_I2
adInteger, adUnsignedInt, adError | CLCOL_I4
adSingle | CLCOL_I4
adDouble | CLCOL_R8
adDBDate, adDBTime, adDBTimeStamp | CLCOL_DATE
adChar, adVarChar, adLongVarChar, adWChar, adVarWChar, adLongVarWChar | CLCOL_STRING
adChapter*, adDispatch | CLCOL_DISPATCH
adChapter | CLCOL_UNKNOWN
adBoolean | CLCOL_BOOL

*One level hierarchical Recordset objects are supported. The child Recordset objects are created in the ContentList object as a SimpleList of Dictionary objects.

Example

[Visual Basic]
'rsSource is an existing recordset.
'vSkip is a simple list of fields to ignore.
'vSchema is a ContentListSchema object.
myContentListFactory.ConstructFromRecordset rsSource, vSkip, vSchema

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::CreateNewContentList Method [C++]

ContentListFactory.CreateNewContentList Method [Visual Basic]

Use this method to create a new ContentList object based on the schema established for this ContentListFactory object. The new ContentList object provides a unified interface to the private data that it stores and to the shared data stored in the ContentListFactory object (that created it).

Definition

[C++]
HRESULT IContentListFactory::CreateNewContentList(
 IContentList** NewList
);
[Visual Basic]
Function CreateNewContentList() As ContentList

Parameters

NewList [C++]
[out, retval] The address of a pointer used to return the new ContentList object.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to the new ContentList object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The new ContentList object will be based on the established schema for this ContentListFactory object. Storage for columns marked as CLCOL_PRIVATE in the schema is allocated in the ContentList object. The ContentList object maintains a pointer back to the factory that created it, which is where the storage for "shared" columns is maintained.

A ContentList object cannot exist independently of a ContentListFactory object.

The only prerequisite for calling this method is that a schema has been established. This can be accomplished by setting the Schema property or by calling the ConstructFromRecordset method.

Example

[Visual Basic]
set oMyContentList = myContentListFactory.CreateNewContentList()

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::GetData Method [C++]

ContentListFactory.GetData Method [Visual Basic]

[C++] Use this method to read data from a specified row and column in a ContentListFactory object.

[C++] This is one of the two ContentListFactory methods that do not support a scriptable interface. The other method is SetData. They are only intended for use in C++.

[Visual Basic] Due to performance considerations, this method is not intended for use from Visual Basic or VBScript.

[C++]

Definition

HRESULT IContentListFactory::GetData(
 long iRow,
 long iCol,
 BYTE* pData
);
[C++]

Parameters

iRow
[in] A long that contains the position of the row from which the data should be read. Row positions are counted from 0, not 1.
iCol
[in] A long that contains the position of the column within the specified row from which the data should be read. Column positions are counted from 0, not 1.
pData
[out] A pointer to where the data should be written.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[C++]

Error Values

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[C++]

Remarks

The GetData method does not do any type checking. The memory pointed to by the pData parameter must be of sufficient size to receive the value being read. If the allotted memory is too small, memory corruption occurs.

The ContentListFactory object stores some types of data by value and other types of data by reference. Therefore, how you use the GetData and SetData methods depends on the data type.

When you pass a pointer to a String to the SetData method, it stores the String in the ContentListFactory object, not the pointer. The GetData method returns a pointer to the String in the ContentListFactory object, but not the String. Do not hold a reference to the String in the ContentListFactory object beyond the lifetime of the object, as it will be invalid after the object is destroyed. The ContentListFactory object only stores wide character Unicode strings. ANSI strings are not supported.

When you pass an interface pointer to an object to the SetData method, it calls the AddRef method on the interface referenced by the pointer and stores the pointer in the ContentListFactory object. The GetData method returns this pointer and calls the AddRef method on the interface referenced by it. The caller must release the pointer returned by the GetData method.

When you pass a pointer to a SafeArray to the SetData method, it locks the SafeArray and stores a reference to it in the ContentListFactory object. The GetData method returns a reference to the locked array. The caller should not unlock the array as this could invalidate the reference stored in the ContentListFactory object. It is safe to store the array in a Variant of type VT_ARRAY or VT_VARIANT, as a call to the VariantClear method will not release the SafeArray because it is locked. When the ContentListFactory object is destroyed, the SafeArray will be unlocked and the SafeArrayDestroy method will be called. Since SafeArrays have a lock count similar to reference counting the array data will be released only if the lock count is zero.

The GetData method reads all other supported data types by value.

This method is functionally identical to the one of the same name in the ContentList object.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::Search Method [C++]

ContentListFactory.Search Method [Visual Basic]

Use this method to create a RowCollection object that allows access to each item in the ContentListFactory object that matches the specified criterion.

Definition

[C++]
HRESULT IContentListFactory::Search(
 VARIANT vCol,
 VARIANT vSearchCriteria,
 IRowCollection** ppIRowCollection
);
[Visual Basic]
Function Search(
 vCol As Variant,
 vSearchCriteria As Variant
) As IRowCollection

Parameters

vCol [C++]
[in] A VARIANT that identifies the column to search. The column is identified by either a number representing a column position (starting at 0) or a string containing a column name.
vCol [Visual Basic]
A Variant that identifies the column to search. The column is identified by either a number representing a column position, starting at zero (0), or a string containing a column name.
vSearchCriteria [C++]
[in] A VARIANT that contains the filter criterion. The criterion is usually a BSTR, an array of BSTRs, or an Integer. An attempt will be made to coerce other types to the type of the column being searched.
vSearchCriteria [Visual Basic]
A Variant that contains the filter criterion. The criterion is usually a String, an array of Strings, or an Integer. An attempt will be made to coerce other types to the type of the column being searched.
ppIRowCollection [C++]
[out,retval] A pointer to an address to receive an IRowCollection interface pointer for a new RowCollection object that allows access to the rows that match the search criteria.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a new RowCollection object that contains one row for each matching item.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

S_FALSE
No rows in the ContentListFactory object matched the filter criteria. As a result, the returned RowCollection is empty.

Remarks

Columns must be shared (not private) and read-only in order to be indexed and searched. Columns must also be of type string, integer (long or short), or variant array to be searchable. The search criteria may be any variant type that can be coerced to the type of the column being searched.

When the search criteria is an array of variants, the set of rows returned contains all rows that match any of the search criteria array elements. It is a union of the matches.

This method is functionally identical to the one of the same name to be found in the ContentList object.

Example

[Visual Basic]
set oMyRowCollection = myDataContainer.Search("AdType", "CarAds")

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::SetData Method [C++]

ContentListFactory.SetData Method [Visual Basic]

[C++] Use this method to write data to a specified row and column in a ContentListFactory object.

[C++] This is one of the two ContentListFactory methods that do not support a scriptable interface. The other method is GetData. They are only intended for use in C++.

[Visual Basic] Due to performance considerations, this method is not intended for use from Visual Basic or VBScript.

[C++]

Definition

HRESULT IContentListFactory::SetData(
 long iRow,
 long iCol,
 BYTE* pData
);
[C++]

Parameters

iRow [C++]
[in] A long that contains the position of the row into which the data should be written. Row positions are counted from 0, not 1.
iCol [C++]
[in] A long that contains the position of the column within the specified row into which the data should be written. Column positions are counted from 0, not 1.
pData [C++]
[in] A pointer to the data to write into the ContentListFactory object.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[C++]

Error Values

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[C++]

Remarks

The SetData method does not do type checking for the data being written. The data pointed to by the pData parameter must be of the correct type for the column. Type (and especially size) mismatches will not result in memory scribbles (which is possible with the GetData method), but some of the data may not be written into the ContentListFactory object.

The ContentListFactory object stores some types of data by value and other types of data by reference. Therefore, how you use the GetData and SetData methods depends on the data type.

When you pass a pointer to a String to the SetData method, it stores the String in the ContentListFactory object, not the pointer. The GetData method returns a pointer to the String in the ContentListFactory object, but not the String. Do not hold a reference to the String in the ContentListFactory object beyond the lifetime of the object, as it will be invalid after the object is destroyed. The ContentListFactory object only stores wide character Unicode strings. ANSI strings are not supported.

When you pass an interface pointer to an object to the SetData method, it calls the AddRef method on the interface referenced by the pointer and stores the pointer in the ContentListFactory object. The GetData method returns this pointer and calls the AddRef method on the interface referenced by it. The caller must release the pointer returned by the GetData method.

When you pass a pointer to a SafeArray to the SetData method, it locks the SafeArray and stores a reference to it in the ContentListFactory object. The GetData method returns a reference to the locked array. The caller should not unlock the array as this could invalidate the reference stored in the ContentListFactory object. It is safe to store the array in a Variant of type VT_ARRAY or VT_VARIANT, as a call to the VariantClear method will not release the SafeArray because it is locked. When the ContentListFactory object is destroyed, the SafeArray will be unlocked and the SafeArrayDestroy method will be called. Since SafeArrays have a lock count similar to reference counting the array data will be released only if the lock count is zero.

The SetData method stores all other supported data types by value.

Objects must be "both threaded" and must aggregate the Free Threaded Marshaller in order to be stored in a ContentListFactory object. If you ignore this restriction, marshalling errors may occur.

This method is functionally identical to the one of the same name to be found in the ContentList object.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory Properties [C++]

ContentListFactory Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
AllRows | IRowCollection | The collection of all rows in the ContentListFactory object. This property is read-only.
Count | long | The number of rows in the ContentListFactory object. This property is read/write.
Fields | Fields | The Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.
[Visual Basic]
Property | Type | Description
AllRows | IRowCollection | The collection of all rows in the ContentListFactory object. This property is read-only.
Count | long | Stores the number of rows in the ContentListFactory object. This property is read/write.
Fields | Fields | The Fields collection for a particular row in the ContentListFactory object. This property is read-only.
Schema | IContentListSchema | Stores a reference to the ContentListSchema object used by this ContentListFactory object. This property is read/write.


IContentListFactory::get_AllRows Property [C++]

ContentListFactory.AllRows Property [Visual Basic]

The AllRows property returns a new RowCollection object that allows access to the items in the ContentListFactory object. The AllRows property is read-only; however, the RowCollection object is read/write in that changes made using this object are reflected in the ContentListFactory object.

Definition

[C++]
Get method:
HRESULT IContentListFactory::get_AllRows(
 IRowCollection** AllRows
);
[Visual Basic]
Property AllRows() As IRowCollection

Parameters

AllRows [C++]
[out,retval] The address of a pointer used to return the IRowCollection interface of a RowCollection object that contains all of the items in this ContentListFactory object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property is functionally identical to the one of the same name in the ContentList object.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IContentListFactory::get_Count, put_Count Property [C++]

ContentListFactory.Count Property [Visual Basic]

The Count property is a read/write number that gets or sets the number of content items in a ContentListFactory object.

Definition

[C++]

Get method:

HRESULT IContentListFactory::get_Count(
 long* Count
);

Put method:

HRESULT IContentListFactory::put_Count(
 long Count
);
[Visual Basic]
Property Count() As Long

Parameters

Count [C++]
[in] When putting the property, a long that contains the item count.
[out,retval] When getting the property, a pointer to a long used to return the item count.

[Visual Basic] None.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Count property cannot be changed once ContentList objects have been created by the ContentListFactory object. Also, the Count property cannot be set to a smaller number than its current setting.

This property is functionally identical to the one of the same name to be found in the ContentList object.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::get_Fields Property [C++]

ContentListFactory.Fields Property [Visual Basic]

The Fields property creates a new Fields object that allows access to the fields for a specified content item. The Fields property is read-only; however, the Fields object is read/write in that changes made using this object are reflected in the ContentListFactory object.

Definition

[C++]
Get method:
HRESULT IContentListFactory::get_Fields(
 long RowNum,
 Fields** Fields
);
[Visual Basic]
Property Fields(
 RowNum As Long
) As Fields

Parameters

RowNum [C++]
[in] A long that contains the position of the item in the ContentListFactory object for which a Fields object will be returned. Positions are counted from 0, not from 1.
RowNum [Visual Basic]
A Long that contains the position of the item in the ContentListFactory object for which a Fields object will be returned. Positions are counted from 0, not from 1.
Fields [C++]
[out,retval] The address of a pointer used to return a Fields object for the specified row in the ContentListFactory object.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Fields object exposes the same interface as the ADO Fields object.

This property is functionally identical to the one of the same name to be found in the ContentList object.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


IContentListFactory::get_Schema, put_Schema Property [C++]

ContentListFactory.Schema Property [Visual Basic]

The Schema property is a ContentListSchema object that contains the schema used by this ContentListFactory object. The Schema property is read/write.

Definition

[C++]

Get method:

HRESULT IContentListFactory::get_Schema(
 IContentListSchema** Schema
);

Put method:

HRESULT IContentListFactory::put_Schema(
 IContentListSchema* Schema
);
[Visual Basic]
Property Schema() As ContentListSchema

Parameters

Schema [C++]
[in] When putting the property, a pointer to the IContentListSchema interface of the ContentListSchema object that contains the new schema for this ContentListFactory object.
[out,retval] When getting the property, a pointer to an address used to return the IContentListSchema interface of the ContentListSchema object that contains the schema for this ContentListFactory object.

[Visual Basic] None.

Return Values

[C++]

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property is intended to only be set once. However, until any ContentList object is created using the CreateNewContentList method, or until rows are allocated in the ContentListFactory object by setting the Count property, it can be changed.

If this property is read before it is written, an empty ContentListSchema object will be created and returned.

See Also

[C++] ContentListFactory Object

[Visual Basic] ContentListFactory Object


ContentListSchema Object [C++]

ContentListSchema Object [Visual Basic]

Use this object to manipulate the schema for a ContentListFactory object.

ProgID: | Commerce.ContentListSchema (Externally creatable)
COM Class Name: | ContentListSchema
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]
COM Interface Name: | IContentListSchema
Interface ID Constant: | IID_IContentListSchema
Header File: | cacheint.h, mspu_guids.h

[C++] In C++, use the IContentListSchema interface to access to the methods and properties of a ContentListSchema object.

Methods

[C++]
Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the IContentList interface.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.
[Visual Basic]
Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the ContentList object.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.

Properties

[C++]
Property | Type | Description
ColumnFlags | long | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | BSTR | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | long | Stores the number of columns defined by the schema. This property is read-only.
Locked | VARIANT_BOOL | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.
[Visual Basic]
Property | Type | Description
ColumnFlags | Long | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | String | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | Long | Stores the number of columns defined by the schema. This property is read-only.
Locked | Boolean | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.
[C++]

Remarks

The methods GetSchema and SetSchema are only accessible from C++. Respectively, they get and set the entire schema associated with a ContentListSchema object. They pass the schema as an array of CLCOL_DESCRIPTOR structures, where each element in the array represents a corresponding column in the schema, in the same order that they appear in the array.

The definition of a CLCOL_DESCRIPTOR structure is as follows:

typedef struct
{
  ColumnTypeEnum  coltyp;    // column type
  ULONG           lFlags;    // column flags, represented as a bit field
  ULONG           cchName;   // length of column name
  WCHAR*          pwszName;  // column name
} CLCOL_DESCRIPTOR;

The members of the CLCOL_DESCRIPTOR structure are described in the following table.

Structure Member | Description
coltyp | Contains a value indicating the data type associated with the column. This value should be from the set of values present in the ColumnTypeEnum enumeration. For more information about this enumeration, see the Remarks section of IContentListSchema::get_ColumnType, put_ColumnType
lFlags | Contains a value indicating the column flags associated with the column, represented as a bit field.
cchName | Contains a value indicating the length of the column name string, in characters.
pwszName | Contains a pointer to a NULL-terminated string containing the name of the column.


IContentListSchema Methods

ContentListSchema Methods

Methods

[C++]
Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the IContentList interface.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.
[Visual Basic]
Method | Description
Add | Adds a new column to the schema.
FindColumn | Returns the position of a named column. Column positions are counted starting from zero (0), not one (1). This position index may be used as the Column index parameter for the GetData, SetData, Filter, and Search methods of the ContentList object.
GetSchema | Returns the entire schema in a high-performance, non-scriptable manner.
SetSchema | Sets the entire schema in a high-performance, non-scriptable manner.


IContentListSchema::Add Method [C++]

ContentListSchema.Add Method [Visual Basic]

Use this method to add a new column to a schema for use by a ContentListFactory object and its associated ContentList objects.

Definition

[C++]
HRESULT IContentListSchema::Add(
 BSTR sName,
 ColumnTypeEnum Type,
 long Flags,
 long* ColumnNum
);
[Visual Basic]
Function Add(
 sName As String,
 Type As ColumnTypeEnum,
 Flags As Long
) As Long

Parameters

sName [C++]
[in] A BSTR that contains a name for the new column.
sName [Visual Basic]
A String that contains a name for the new column.
Type [C++]
[in] A value from the ColumnTypeEnum enumeration. See the Remarks section for more details.
Type [Visual Basic]
A value from the ColumnTypeEnum enumeration. See the Remarks section for more details.
Flags [C++]
[in] A long that contains the bit mask column flag settings for the new column.
Flags [Visual Basic]
A Long that contains the bit mask column flag settings for the new column.
ColumnNum [C++]
[out,retval] A pointer to a long used to return the position of the new column. Column positions are numbered starting with zero (0), not one (1).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the position of the new column. Column positions are numbered starting with zero (0), not one (1).

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Once the Locked property has been set to True, subsequent calls to this method will fail. The ContentListFactory object will set the Locked property of its ContentListSchema object to True when one of the following conditions is met:

  • Rows of data are allocated in the factory by setting the Count property or calling the ConstructFromRecordset method.
  • The ContentListFactory object has been used to construct one or more ContentList objects using the CreateNewContentList method.

The following table shows the values of the ColumnTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
CLCOL_I2 | 2 | A 16-bit integer. This value corresponds to the VARTYPE value VT_I2.
CLCOL_I4 | 3 | A 32-bit integer. This value corresponds to the VARTYPE value VT_I4.
CLCOL_R4 | 4 | A single precision floating point number. This value corresponds to the VARTYPE value VT_R4.
CLCOL_R8 | 5 | A double precision floating point number. This value corresponds to the VARTYPE value VT_R8.
CLCOL_CY | 6 | A 64-bit integer used to store a currency value. This value corresponds to the VARTYPE value VT_CY. Monetary values stored using this type are scaled by 10,000 (4 decimal places). For example, the value 86900 would correspond to a currency value of $8.69 in the US. This is also the same as the money datatype used by SQL7.
CLCOL_DATE | 7 | A double precision floating point number used to store a date/time value. This value corresponds to the VARTYPE value VT_DATE.
CLCOL_DISPATCH | 9 | A reference to an object that supports scripting/automation (inherits from IDispatch). This value corresponds to the VARTYPE value VT_DISPATCH.
CLCOL_BOOL | 11 | A boolean value. This value corresponds to the VARTYPE value VT_BOOL. Do not confuse this with the C++ type BOOL, which is 4 bytes.
CLCOL_UNKNOWN | 13 | A pointer to an IUnknown-based interface that, presumably, does not support scripting/automation (inherits from IUnknown). This value corresponds to the VARTYPE value VT_UNKNOWN.
CLCOL_STRING | 14 | A pointer to a string in the private heap maintained by every ContentListFactory object. There is no corresponding VARTYPE value.
CLCOL_VARIANTARRAY | 15 | A pointer to a SAFEARRAY. The corresponding variant type is VT_ARRAY or VT_VARIANT.

Note

  • With the exception of CLCOL_STRING and CLCOL_VARIANTARRAY, these types are identical to the corresponding VARTYPE and share the same constant value. They may be used as a VARTYPE.
[Visual Basic]

Example

'"Color" is the column name.
'CLCOL_STRING indicates the column is of type String.
'0 indicates that no flags are applied.

dim iColumnNum as Long
iColumnNum = myContentListSchema.Add("Color", CLCOL_STRING, 0)

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::FindColumn Method [C++]

ContentListSchema.FindColumn Method [Visual Basic]

Use this method to find the position of a column specified by name.

Definition

[C++]
HRESULT IContentListSchema::FindColumn(
 BSTR sName,
 long* ColumnNum
);
[Visual Basic]
Function FindColumn(
 sName As String
) As Long

Parameters

sName [C++]
[in] A BSTR that contains the name of the column for which the position will be returned.
sName [Visual Basic]
A String that contains the name of the column for which the position will be returned.
ColumnNum [C++]
[out,retval] A pointer to a long used to return the position of the specified column.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the position of the new column.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Column positions are counted from zero (0), not one (1).

[Visual Basic]

Example

'"Color" is the column name.
Dim iColumnNum as Long

iColumnNum = myContentListSchema.FindColumn("Color")

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::GetSchema Method [C++]

ContentListSchema.GetSchema Method [Visual Basic]

[C++] Use this method to read the entire schema from a ContentListSchema object.

[C++] This is one of the two ContentListSchema methods that, in the interest of high performance, do not support a scriptable interface. The other method is SetSchema. They are only intended for use in C++.

[Visual Basic] In the interest of high performance, this method is not intended for use from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

[C++]

Definition

HRESULT IContentListSchema::GetSchema(
 long* pnCols,
 CLCOL_DESCRIPTOR** prgColDesc
);

Parameters

pnCols
[out] A pointer to a long used to return the number of columns in the schema being returned. This value will be important in processing the array of column descriptors returned in the prgColDesc parameter.
prgColDesc
[out,size_is(,*pnCols)] The address of a pointer used to return the address of an array of CLCOL_DESCRIPTOR structures. These structures represent the entire schema, where each element in the array contains information regarding the column in that same position in the schema. For more information about the column descriptor structure, see ContentListSchema Object.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

Remarks

Care must be taken in how the memory returned by calls to the GetSchema method gets released. The following code sample illustrates the proper technique:

// Declare variables for the GetSchema call.
long              cCols
CLCOL_DESCRIPTOR *pColDesc;

// Get the schema.
pContentListSchema->GetSchema(&cCols, &pColDesc);

// Use the returned schema as needed.

// When finished with the schema array,
// start by freeing the column name string memory.
for ( int i=0 ; I < cCols ; i++ ) {
    if ( NULL != pColDesc[i].pwszName ) {
        ::CoTaskMemFree(pColDesc[i].pwszName);
    }
}

// Then free the structure array memory.
::CoTaskMemFree(pColDesc);

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::SetSchema Method [C++]

ContentListSchema.SetSchema Method [Visual Basic]

[C++] Use this method to write an entire schema to a ContentListSchema object.

[C++] This is one of the two ContentListSchema methods that, in the interest of high performance, do not support a scriptable interface. The other method is GetSchema. They are only intended for use in C++.

[Visual Basic] In the interest of high performance, this method is not intended for use from Microsoft Visual Basic or Microsoft Visual Basic Scripting Edition (VBScript).

[C++]

Definition

HRESULT IContentListSchema::SetSchema(
 long nCols,
 CLCOL_DESCRIPTOR* rgColDesc
);

Parameters

nCols
[in] A long that specifies the number of columns in the column descriptor array passed in the rgColDesc parameter.
rgColDesc
[in,size_is(nCols)] A pointer to an array of CLCOL_DESCRIPTOR structures. These structures represent the entire schema, where each element in the array contains information regarding the column in that same position in the schema. For more information about the column descriptor structure, see ContentListSchema Object.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema Properties

ContentListSchema Properties

Properties

[C++]
Property | Type | Description
ColumnFlags | long | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | BSTR | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | long | Stores the number of columns defined by the schema. This property is read-only.
Locked | VARIANT_BOOL | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.
[Visual Basic]
Property | Type | Description
ColumnFlags | Long | Stores the column flags, represented as a bit field. This property is read/write.
ColumnName | String | Stores the column name. This property is read/write.
ColumnType | ColumnTypeEnum | Stores the data type of the column. This property is read/write.
Count | Long | Stores the number of columns defined by the schema. This property is read-only.
Locked | Boolean | Indicates whether this schema can be modified. This property is read/write. It is initially set to False. Once set to True, it can never be set back to False.


IContentListSchema::get_ColumnFlags, put_ColumnFlags Property [C++]

ContentListSchema.ColumnFlags Property [Visual Basic]

The ColumnFlags property is a read/write long that contains the column flags.

Definition

[C++]

Get method:

HRESULT IContentListSchema::get_ColumnFlags(
 VARIANT vColumn,
 long* ColumnFlags
);

Put method:

HRESULT IContentListSchema::put_ColumnFlags(
 VARIANT vColumn,
 long ColumnFlags
);
[Visual Basic]
Property ColumnFlags(
 vColumn As Variant
) As Long

Parameters

vColumn [C++]
[in] A VARIANT that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
vColumn [Visual Basic]
A Variant that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnFlags [C++]
[in] When setting the property, a long that contains the new column flag settings, represented as a bit field.
[out,retval] When getting the property, a pointer to a long used to return the current column flag settings, represented as a bit field.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Column flags are represented as a bit field. The following table shows the meanings of the bits that are used and the constants provided for manipulating those bits.

Bit | Constant | Description
1 | CLCOL_READONLY (= 0x01) | When the bit is set, data in the column is read-only, and cannot be updated. This will be common for data stored in the ContentListFactory object since that data is shared between multiple page requests. When the bit is cleared, data in the column is read/write, and can be freely updated. No record locking is performed, so update contention could occur when updating data in the ContentListFactory object. This is not a concern for columns that are marked Private since they exist in the individual instances of ContentList objects, and ContentList objects are typically created for and used by a single thread.
2 | CLCOL_PRIVATE (= 0x02) | When the bit is set, the data in the column is private to each ContentList object based on this schema. This means that the data is stored separately in each ContentList object that is created, and not stored in the shared columns in the corresponding ContentListFactory object.
4 | CLCOL_SCORE_COLUMN (= 0x04) | When the bit is set it indicates that the data in this column is the score value associated with the content item. The type of this column must be a single-precision floating-point type (CLCOL_R4); only one column in the schema can have this flag set. Further, since a unique score value must be associated with each individual page request, this bit can only be set in conjunction with the CLCOL_PRIVATE bit. In other words, it must be a column stored in the ContentList object, as opposed to the ContentListFactory object, that is marked as the score column.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::get_ColumnName, put_ColumnName Property [C++]

ContentListSchema.ColumnName Property [Visual Basic]

The ColumnName property is a read/write string that contains the name of the column.

Definition

[C++]

Get method:

HRESULT IContentListSchema::get_ColumnName(
 VARIANT vColumn,
 BSTR* ColumnName
);

Put method:

HRESULT IContentListSchema::put_ColumnName(
 VARIANT vColumn,
 BSTR ColumnName
);
[Visual Basic]
Property ColumnName(
 vColumn As Variant
) As String

Parameters

vColumn [C++]
[in] A VARIANT that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
vColumn [Visual Basic]
A Variant that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnName [C++]
[in] When putting the property, a BSTR that contains the new column name.
[out,retval] When getting the property, a pointer to a BSTR used to return the current column name.
[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Though using a column name as the value of the vColumn parameter in order to retrieve that same column name may be fruitless, passing a column name does make sense when changing the column name.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::get_ColumnType, put_ColumnType Property [C++]

ContentListSchema.ColumnType Property [Visual Basic]

The ColumnType property is a read/write value from the ColumnTypeEnum enumeration, specifying the data type of the specified column.

Definition

[C++]

Get method:

HRESULT IContentListSchema::get_ColumnType(
 VARIANT vColumn,
 ColumnTypeEnum* ColumnType
);

Put method:

HRESULT IContentListSchema::put_ColumnType(
 VARIANT vColumn,
 ColumnTypeEnum ColumnType
);
[Visual Basic]
Property ColumnType(
 vColumn As Variant
) As ColumnTypeEnum

Parameters

vColumn [C++]
[in] A VARIANT that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
vColumn [Visual Basic]
A Variant that contains either the column name or the column position in order to identify the column in question. Column positions are counted from zero (0), not one (1).
ColumnType [C++]
[in] When putting the property, a value from the ColumnTypeEnum enumeration. See the Remarks section for more details.

[out,retval] When getting the property, a pointer used to return a value from the ColumnTypeEnum enumeration. See the Remarks section for more details.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table shows the values of the ColumnTypeEnum enumeration, their associated names, and describes their use.

Name | Value | Description
CLCOL_I2 | 2 | A 16-bit integer. This value corresponds to the VARTYPE value VT_I2.
CLCOL_I4 | 3 | A 32-bit integer. This value corresponds to the VARTYPE value VT_I4.
CLCOL_R4 | 4 | A single precision floating point number. This value corresponds to the VARTYPE value VT_R4.
CLCOL_R8 | 5 | A double precision floating point number. This value corresponds to the VARTYPE value VT_R8.
CLCOL_CY | 6 | A 64-bit integer used to store a currency value. This value corresponds to the VARTYPE value VT_CY. Monetary values stored using this type are scaled by 10,000 (4 decimal places). For example, the value 86900 would correspond to a currency value of $8.69 in the US. This is also the same as the money datatype used by SQL7.
CLCOL_DATE | 7 | A double precision floating point number used to store a date/time value. This value corresponds to the VARTYPE value VT_DATE.
CLCOL_DISPATCH | 9 | A reference to an object that supports scripting/automation (inherits from IDispatch). This value corresponds to the VARTYPE value VT_DISPATCH.
CLCOL_BOOL | 11 | A boolean. This value corresponds to the VARTYPE value VT_BOOL. Do not confuse this with the C++ type BOOL, which is 4 bytes.
CLCOL_UNKNOWN | 13 | A pointer to an IUnknown-based interface that, presumably, does not support scripting/automation (inherits from IUnknown). This value corresponds to the VARTYPE value VT_UNKNOWN.
CLCOL_STRING | 14 | A pointer to a string in the private heap maintained by every ContentListFactory object. There is no corresponding VARTYPE value.
CLCOL_VARIANTARRAY | 15 | A pointer to a SAFEARRAY. The corresponding variant type is VT_ARRAY or VT_VARIANT.

With the exception of CLCOL_STRING and CLCOL_VARIANTARRAY, these types are identical to the corresponding VARTYPE and share the same constant value. Indeed, they may be used as a VARTYPE.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::get_Count Property [C++]

ContentListSchema.Count Property [Visual Basic]

The Count property is a read-only value that contains the current number of columns in the schema.

Definition

[C++]
Get method:
HRESULT IContentListSchema::get_Count(
 long* Count
);
[Visual Basic]
Property Count() As Long

Parameters

Count [C++]
[out,retval] A pointer to a long used to return the current number of columns in the schema.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


IContentListSchema::get_Locked, put_Locked Property [C++]

ContentListSchema.Locked Property [Visual Basic]

The Locked property is a read/write Boolean that indicates whether the ContentListSchema object can be modified. A value of True indicates that the schema is locked and cannot be modified. A value of False indicates that the schema is not locked and can be modified. Once the object is in use it can no longer be modified.

Definition

[C++]

Get method:

HRESULT IContentListSchema::get_Locked(
 VARIANT_BOOL* Locked
);

Put method:

HRESULT IContentListSchema::put_Locked(
 VARIANT_BOOL Locked
);
[Visual Basic]
Property Locked() As Boolean

Parameters

Locked [C++]
[in] When setting the property, a VARIANT_BOOL that specifies a new lock setting. Since schemas, once locked, cannot be unlocked, only the first call to this method with the Locked parameter set to True will have any effect.
[out,retval] When getting the property, a pointer to a VARIANT_BOOL used to return the state of the schema lock. A value of True indicates that the schema has been locked. A value of False indicates that the schema not yet been locked.

[Visual Basic] None.

[C++]

Return Values

These methods return an HRESULT indicating whether they completed successfully. See the Error Values section for more details.

Error Values

[C++] These methods return S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

A ContentListSchema object becomes permanently locked as soon as this property is set to True. Once locked, the contained schema cannot be modified or unlocked. ContentListFactory objects will lock the schema as soon as any rows are allocated or any ContentList objects are created, whichever occurs first.

See Also

[C++] ContentListSchema Object

[Visual Basic] ContentListSchema Object


ContentSelector Object [C++]

ContentSelector Object [Visual Basic]

Use this object to select one or more items of content for display on a Web page. The content may come from customer campaigns (ads, discounts), or from custom applications built on the Content Selection Framework (CSF).

If you want to select custom content for display on your Web pages, you can use the CSF by instantiating and using ContentSelector objects. ContentSelector objects invoke different CSF pipelines to select different types of content based on the dictionary passed to the GetContent method.

ProgID: | Commerce.ContentSelector (Externally creatable)
COM Class Name: | CContentSelector
Type Library Name: | Microsoft Commerce 2002 CSF Pipeline Component 1.0 Type Library
DLL Name: | CSFComp.dll
Threading Model: | Both
[C++]
COM Interface Name: | IContentSelector
Interface ID Constant: | IID_IContentSelector
Header File: | csf.h, mspu_guids.h
[C++]

In C++, use the IContentSelector interface to access the properties of the ContentSelector object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

The ContentSelector object implements all of the methods and properties of the Dictionary object, only the method not inherited from the Dictionary object is shown in the following table.

Methods

[C++]
Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.
[Visual Basic]
Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.

Remarks

The Context dictionary maintains a reference to a ContentSelector object in its ContextProfile entry. This ContentSelector object is used to pass arbitrary properties to the pipeline components. Arbitrary properties can be associated with the ContentSelector object because it inherits from the Dictionary object.

See Also

Targeting Objects


IContentSelector Methods [C++]

ContentSelector Methods [Visual Basic]

Methods

[C++]
Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.
[Visual Basic]
Method | Description
GetContent | Executes a Content Selection pipeline. The pipeline selects one or more content items. The selected content items are stored in a SimpleList object, formatted as strings of HTML or XML.


IContentSelector::GetContent Method [C++]

ContentSelector.GetContent Method [Visual Basic]

Use this method to execute a Content Selection pipeline and return the resulting content in a SimpleList object.

Definition

[C++]
HRESULT IContentSelector::get_GetContent(
IDictionary* pdictCSFContext,
ISimpleList** ppLstContent
);
[Visual Basic]
Function GetContent(
 dictCSFContext As IDictionary,
) As ISimpleList

Parameters

pdictCSFContext [C++]
[in] A pointer to a global context dictionary with a configuration for an instance of a CSF application. The dictionary contains global objects and configurations used by the ContentSelector object. At a minimum, the dictionary must contain the Pipeline key so that the ContentSelector object knows which pipeline to execute.
dictCSFContext [Visual Basic]
A global context dictionary with a configuration for an instance of a CSF application. The dictionary contains global objects and configurations used by the ContentSelector object. At a minimum, the dictionary must contain the Pipeline key so that the ContentSelector object knows which pipeline to execute.
ppLstContent [C++]
[out, retval] A pointer to a SimpleList object containing the selected content. The elements of the SimpleList object are HTML or XML strings.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a reference to a SimpleList object that contains the selected content. The elements of the SimpleList object are HTML or XML strings.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

This method can also return an error returned by the invoked pipeline.

Remarks

The ContentSelector object reads the Pipeline key of the passed in dictionary object to find the pipeline object to invoke. It copies the values of the dictionary passed to it into a new dictionary. The new dictionary is passed to the pipeline as the pipe Context dictionary. An empty dictionary is created and passed as the Order dictionary for the pipeline. The ContentSelector object adds a reference to itself under the ContextProfile key in the pipe Context dictionary.

When pipeline execution has completed, the ContentSelector object looks for the key _formatted in the Order dictionary, and returns the list assigned to that key as the return value. If the list assigned to the _formatted key does not exist, an empty list is created and returned. The self-reference in the pipe Context dictionary is removed to prevent a circular reference. References to the Order and Context dictionaries are added to the ContentSelector object before it returns, giving the page access to the values written into those dictionaries by the pipeline.

[Visual Basic]

Example

For example code, see the sample in Code to Support the ContentSelector Object.

See Also

[C++] CacheManager Object

[Visual Basic] CacheManager Object

Content Selection Pipelines

[C++] ContentSelector Object

[Visual Basic] ContentSelector Object


ExpressionEval Object [C++]

ExpressionEval Object [Visual Basic]

Use this object to evaluate one or more expressions against a specified context. In addition, use this object to parse and evaluate user-defined expressions written as Extensible Markup Language (XML) fragments.

ProgID: | Commerce.ExpressionEvaluator (Externally creatable)
COM Class Name: | ExpressionEval
Type Library Name: | Microsoft Commerce 2002 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both
[C++]
COM Interface Name: | IExpressionEval
Interface ID Constant: | IID_IExpressionEval
Header File: | ExprArchDLL.h, exprarch.h, mspu_guids.h
[C++]

In C++, the properties and methods of the ExpressionEval object are accessed through the IExpressionEval interface.

Methods

[C++]
Method | Description
Connect | Establishes communication between the ExpressionEval object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine if it represents a valid expression.
[Visual Basic]
Method | Description
Connect | Establishes communication between the ExpressionEval object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine if it represents a valid expression.

Properties

[C++]
Property | Type | Description
ExprCount | long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.
[Visual Basic]
Property | Type | Description
ExprCount | Long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.

Remarks

Expressions are stored in a database referred to as the Expression Store and accessed through an ExpressionStore object. When it is created, the ExpressionEval object initializes an expression cache and a context cache. Expressions must be compiled and loaded into the expression cache before being evaluated. To improve evaluation performance, use the LoadExpr or LoadAll method to preload expressions into the expression cache.

An expression is evaluated against data contained in a set of profiles. The profiles may be ProfileObject objects, Dictionary objects, or other objects that support property access through the IDispatch interface. The set of profiles is referred to as an evaluation context. If an evaluation context will be used across multiple expressions, create a stored context in the context cache using the CreateEvalContext method to increase efficiency.

The Connect method must be called before loading or evaluating expressions.

See Also

[C++] Targeting Objects

[C++] Expression Recordset

[C++] Expression XML Structures

[C++] ExpressionStore Object

[C++] ProfileObject Object

[Visual Basic] Targeting Objects

[Visual Basic] Expression Recordset

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionStore Object

[Visual Basic] ProfileObject Object


IExpressionEval Methods [C++]

ExpressionEval Methods [Visual Basic]

Methods

[C++]
Method | Description
Connect | Establishes communication between the ExpressionEval object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine if it represents a valid expression.
[Visual Basic]
Method | Description
Connect | Establishes communication between the ExpressionEval object and an expression store.
CreateEvalContext | Creates a new ExprEvalContext object in the context cache.
Eval | Evaluates an expression.
EvalInContext | Evaluates an expression in a context previously loaded into the context cache.
EvalXML | Evaluates the specified XML text as an expression.
FlushAll | Removes all expressions from the expression cache.
FlushExpr | Removes the specified expression from the expression cache.
LoadAll | Reads all expressions from the expression store and loads them into the expression cache.
LoadExpr | Reads the specified expression from the expression store and loads it into the expression cache.
ParseXML | Parses the specified XML text to determine if it represents a valid expression.


IExpressionEval::Connect Method [C++]

ExpressionEval.Connect Method [Visual Basic]

Use this method to establish communication with an expression store.

Definition

[C++]
HRESULT IExpressionEval::Connect(
 VARIANT vConnectInfo
);
[Visual Basic]
Sub Connect(
 vConnectInfo As Variant
)

Parameters

vConnectInfo [C++]
[in] A VARIANT that describes the expression store connection data. This may be a BSTR containing the connection information or a pointer to an existing ExpressionStore object.
vConnectInfo [Visual Basic]
[in] A Variant that describes the expression store connection information. This may be a String containing the connection information or a reference to an existing ExpressionStore object.

Return Values

[C++]

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic]

None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | [C++] 0x8110001E [Visual Basic] &H8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | [C++] 0x8110000F [Visual Basic] &H8110000F | Insufficient access permissions on the expression store database

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If a connection string is passed as the input parameter, the ExpressionEval object creates an ExpressionStore object that uses the connection string to access the expression store. Upon destruction, the ExpressionEval object destroys the ExpressionStore object.

The connection string for the expression store may be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the s_BizDataStoreConnectionString property under the key "Commerce Server Manager\Global Resources\Profiles".

The Connect method must be used before loading or evaluating expressions.

The ParseXML method and the flush methods may be used without connecting to an expression store.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Connect through an existing ExpressionStore object.

oExpressionEval.Connect oExpressionStore

' Connect using an explicit connection string.

oExpressionEval.Connect "Provider=SQLOLEDB;Data Source=server;" _
& "Initial Catalog=Retail_commerce;Integrated Security='SSPI'"

' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object.

sConn = oSCRO.Fields("Biz Data Service").Value _
 .Fields("s_BizDataStoreConnectionString").Value
oExpressionEval.Connect sConn

See Also

[C++] ExpressionEval Object

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] SiteConfigReadOnly Object

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] SiteConfigReadOnly Object


IExpressionEval::CreateEvalContext Method [C++]

ExpressionEval.CreateEvalContext Method [Visual Basic]

Use this method to create a new ExprEvalContext object and place it into the context cache. This allows evaluation of multiple expressions against the same set of profile objects in the most efficient manner possible.

Definition

[C++]
HRESULT IExpressionEval::CreateEvalContext(
 IDictionary* pDictObjs,
 IExprEvalContext** ppContext
);
[Visual Basic]
Function CreateEvalContext(
 pDictObjs As Object
) As Object

Parameters

pDictObjs [C++]
[in] A pointer to the IDictionary interface of a Dictionary object that contains the set of profiles to be cached.
pDictObjs [Visual Basic]
[in] A Dictionary object that contains the set of profiles to be cached.
ppContext [C++]
[out, retval] The address of the pointer to the IExprEvalContext interface of the newly created ExprEvalContext object.

Return Values

[C++]

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic]

If this method completes successfully, it returns the newly created ExprEvalContext object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The CreateEvalContext method creates an ExprEvalContext object that uniquely identifies a new evaluation context and stores the object in the context cache. Use the EvalInContext method to evaluate multiple expressions within the context defined by the ExprEvalContext object. This process is more efficient than using the Eval method which generates and destroys a new context for each expression evaluated.

A context is a set of profiles containing data to evaluate expressions against. Profiles may be ProfileObject objects, Dictionary objects, or other objects that support property access through the IDispatch interface. Initially only references to the profile objects are held in the context cache. During evaluation, when property values are read from the profiles, the property values may themselves be held in the cache for faster access during subsequent evaluations.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppContext parameter contains valid data only if the method completes successfully.

Caution

  • The state of the profile objects should not be externally changed during the lifetime of the ExprEvalContext object; doing so leads to non-deterministic evaluation results.
[Visual Basic]

Example

' dictUser1, dictAddress1, & dictProfiles are Dictionary objects
' create 2 profiles

dictUser1.firstName = "Joe"
dictUser1.lastName = "User"
dictAddress1.city = "Somewhere"
dictAddress1.state = "WA"

' add the profiles to the context Dictionary

dictProfiles.User = dictUser1
dictProfiles.Address = dictAddress1

' create the evaluation context

oExprEvalContext = oExpressionEval.CreateEvalContext(dictProfiles)

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::EvalInContext

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.EvalInContext


IExpressionEval::Eval Method [C++]

ExpressionEval.Eval Method [Visual Basic]

Use this method to evaluate an expression.

Definition

[C++]
HRESULT IExpressionEval::Eval(
 long nExprID,
 IDictionary* pDictObjs,
 VARIANT* pvResult
);
[Visual Basic]
Function Eval(
 nExprID As Long,
 pDictObjs As Object
) As Variant

Parameters

nExprID [C++]
[in] A long that contains the unique identifier for the expression in the expression store.
nExprID [Visual Basic]
[in] A Long that contains the unique identifier for the expression in the expression store.
pDictObjs [C++]
[in] A pointer to the IDictionary interface of a Dictionary object that contains a set of profiles.
pDictObjs [Visual Basic]
[in] A Dictionary object that contains a set of profiles.
pvResult [C++]
[out, retval] A pointer to a VARIANT indicating the result of evaluating the expression in the given context.

Return Values

[C++] This method returns an HRESULT indicating whether the method completed successfully. See the Error Values section for more details. The result of evaluating the expression is contained in the pvResult parameter. The result may be TRUE, FALSE, or NULL. NULL indicates the expression could not be evaluated.

[Visual Basic] This method returns a Variant indicating the result of evaluating the expression in the specified context. The result may be True, False, or Nothing. Nothing indicates the expression could not be evaluated.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors, and the standard COM errors with special meanings, that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_NOTFOUND | [C++] 0x81100012 [Visual Basic] &H81100012 | Could not find the specified expression ID, nExprID, in the expression store

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Expressions must be pre-compiled and loaded into the expression cache before being evaluated. The Eval method first checks the expression cache for the expression, and if not found, loads the expression from the expression store. Use the LoadExpr or LoadAll method to preload an expression into the expression cache and improve evaluation performance.

An expression is evaluated against data contained in a set of profiles. This set of profiles is referred to as an evaluation context. A new evaluation context is generated by the Eval method using the Dictionary object. The Eval method discards the new context after completing the evaluation. This process is not efficient if many expressions must be evaluated against the same context.

If an evaluation context will be used across multiple expressions, create a context in the context cache using the CreateEvalContext method. Use the EvalInContext method to evaluate expressions in this new common context.

The Connect method must be called before using the Eval method.

[C++]

The pvResult parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' dictUser1, dictAddress1, & dictProfiles are Dictionary objects
' create 2 profiles

dictUser1.firstName = "Joe"
dictUser1.lastName = "User"
dictAddress1.city = "Somewhere"
dictAddress1.state = "WA"

' add the profiles to the context Dictionary

dictProfiles.User = dictUser1
dictProfiles.Address = dictAddress1

' evaluate the expression, vResult is a Variant

vResult = oExpressionEval.Eval(2134, dictProfiles)

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::Connect

[C++] IExpressionEval::CreateEvalContext

[C++] IExpressionEval::EvalInContext

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Connect

[Visual Basic] ExpressionEval.CreateEvalContext

[Visual Basic] ExpressionEval.EvalInContext

[Visual Basic] ExpressionEval.LoadExpr


IExpressionEval::EvalInContext Method [C++]

ExpressionEval.EvalInContext Method [Visual Basic]

Use this method to evaluate an expression against a pre-established context stored in the context cache.

Definition

[C++]
HRESULT IExpressionEval::EvalInContext(
 long nExprID,
 IExprEvalContext* pContext,
 VARIANT* pvResult
);
[Visual Basic]
Function EvalInContext(
 nExprID As Long,
 pContext As Object
) As Variant

Parameters

nExprID [C++]
[in] A long that contains the unique identification of the expression in the expression store.
nExprID [Visual Basic]
[in] A Long that contains the unique identification of the expression in the expression store.
pContext [C++]
[in] A pointer to an IExprEvalContext interface of an ExprEvalContext object that identifies the specific context for this evaluation.
pContext [Visual Basic]
[in] An ExprEvalContext object that identifies the specific context for this evaluation.
pvResult [C++]
[out, retval] A pointer to a VARIANT indicating the result of the expression evaluated in the specified context.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details. The result of evaluating the expression is contained in the pvResult parameter. This result may be TRUE, FALSE, or NULL. NULL indicates the expression could not be evaluated.

[Visual Basic] This method returns a Variant indicating the results of evaluating the expression in the specified context. This result may be True, False, or Nothing. Nothing indicates the expression could not be evaluated.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors, and the standard COM errors with special meanings, that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_MISSINGPROP | [C++] 0x8110001D [Visual Basic] &H8110001D | Invalid ExprEvalContext object
E_EXPR_NOTFOUND | [C++] 0x81100012 [Visual Basic] &H81100012 | Could not find the specified expression ID, nExprID, in the expression store

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Eval method creates and discards an evaluation context for every evaluation. Evaluating against a stored context optimizes performance when multiple expressions need to be evaluated in the same context. Create the context for evaluation using the CreateEvalContext method.

Expression results are also stored in the context cache. If the result of a particular expression is requested multiple times from the same ExprEvalContext object using the EvalInContext method, the result is retrieved from the cache rather than by re-evaluating the expression, further increasing efficiency.

Caution

  • The state of the profile objects that comprise the context should not be externally changed during the lifetime of the ExprEvalContext object; doing so leads to non-deterministic evaluation results.

The Connect method must be called before using the EvalInContext method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pvResult parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oEvalContext is an ExprEvalContext object
' vResult is a Variant

vResult = oExpressionEval.Eval(2134, oEvalContext)

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::Connect

[C++] IExpressionEval::CreateEvalContext

[C++] IExpressionEval::Eval

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Connect

[Visual Basic] ExpressionEval.CreateEvalContext

[Visual Basic] ExpressionEval.Eval

[Visual Basic] ExpressionEval.LoadExpr


IExpressionEval::EvalXML Method [C++]

ExpressionEval.EvalXML Method [Visual Basic]

Use this method to evaluate an expression represented as an Extensible Markup Language (XML) fragment.

Definition

[C++]
HRESULT IExpressionEval::EvalXML(
 BSTR bstrXMLExpr,
 IDictionary* pDictObjs,
 VARIANT* pvResult
);
[Visual Basic]
Function EvalXML(
 bstrXMLExpr As String,
 DictObjs As Object
) As Variant

Parameters

bstrXMLExpr [C++]
[in] A BSTR that contains the XML fragment to be evaluated.
btrXMLExpr [Visual Basic]
[in] A String that contains the XML fragment to be evaluated.
pDictObjs [C++]
[in] A pointer to the IDictionary interface of a Dictionary object that contains a set of profiles.
DictObjs [Visual Basic]
[in] A Dictionary object that contains a set of profiles.
pvResult [C++]
[out, retval] A pointer to a VARIANT indicating the results of evaluating the expression in the specified context.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details. The result of evaluating the expression is contained in the pvResult parameter. The result may be TRUE, FALSE, or NULL. NULL indicates the expression could not be evaluated.

[Visual Basic] This method returns a Variant indicating the results of evaluating the expression in the specified context. This result may be True, False, or Nothing. Nothing indicates the expression could not be evaluated.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADARGTYPE | [C++] 0x81100018 [Visual Basic] &H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | [C++] 0x81100022 [Visual Basic] &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | [C++] 0x81100016 [Visual Basic] &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADOPER | [C++] 0x81100017 [Visual Basic] &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | [C++] 0x81100015 [Visual Basic] &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | [C++] 0x81100014 [Visual Basic] &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_XMLPARSE | [C++] 0x81100013 [Visual Basic] &H81100013 | XML DOM object parsing error

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The XML is parsed before being evaluated. For information on the XML format, see Expression XML Structures.

Expressions evaluated with the EvalXML method are not persistent; that is, they are not stored in the expression store or loaded into the expression cache. Use the Eval method to evaluate persistent expressions.

A new ExprEvalContext object is created and then discarded for each XML fragment that is evaluated.

The Connect method must be called before using the EvalXML method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pvResult parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' sXMLExpr is a string.
' Note that this string is not formatted properly with respect to
' quotation marks or continuation in order to increase readability.

strXMLExpr = "<CLAUSE OPER="equal">
                  <PROPERTY ID="User.firstName" TYPE="string" />
                  <IMMED-VAL TYPE="string">Jill</IMMED-VAL>
              </CLAUSE>"

' vResult is a Variant
' dictProfiles is a Dictionary object containing a set of profiles

vResult = oExpressionEval.EvalXML(sXMLExpr, dictProfiles)

See Also

[C++] Expression Recordset

[C++] Expression XML Structures

[C++] ExpressionEval Object

[C++] IExpressionEval::Connect

[C++] IExpressionEval::Eval

[C++] IExpressionEval::ParseXML

[Visual Basic] Expression Recordset

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Connect

[Visual Basic] ExpressionEval.Eval

[Visual Basic] ExpressionEval.ParseXML


IExpressionEval::FlushAll Method [C++]

ExpressionEval.FlushAll Method [Visual Basic]

Use this method to remove all expressions from the expression cache.

Definition

[C++]
HRESULT IExpressionEval::FlushAll(
);
[Visual Basic]
Sub FlushAll()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The FlushAll method removes all expressions from the expression cache and resets the read-only ExprCount property to zero (0).

Use the FlushExpr method to remove a specific expression from the expression cache.

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::get_ExprCount

[C++] IExpressionEval::FlushExpr

[C++] IExpressionEval::LoadAll

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.ExprCount

[Visual Basic] ExpressionEval.FlushExpr

[Visual Basic] ExpressionEval.LoadAll

[Visual Basic] ExpressionEval.LoadExpr


IExpressionEval::FlushExpr Method [C++]

ExpressionEval.FlushExpr Method [Visual Basic]

Use this method to remove the specified expression from the expression cache.

Definition

[C++]
HRESULT IExpressionEval::FlushExpr(
 long nExprID
);
[Visual Basic]
Sub FlushExpr(
 nExprID As Long
)

Parameters

nExprID [C++]
[in] A long that contains the identifier of the expression to be removed from the expression cache.
nExprID [Visual Basic]
[in] A Long that contains the identifier of the expression to be removed from the expression cache.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The FlushExpr method removes the specified expression from the expression cache and decrements the read-only ExprCount property by one (1).

Use the FlushAll method to remove all expressions from the expression cache.

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::get_ExprCount

[C++] IExpressionEval::FlushAll

[C++] IExpressionEval::LoadAll

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.ExprCount

[Visual Basic] ExpressionEval.FlushAll

[Visual Basic] ExpressionEval.LoadAll

[Visual Basic] ExpressionEval.LoadExpr


IExpressionEval::LoadAll Method [C++]

ExpressionEval.LoadAll Method [Visual Basic]

Use this method to pre-compile all expressions in the expression store. Each expression that pre-compiles correctly is loaded into the expression cache.

Definition

[C++]
HRESULT IExpressionEval::LoadAll(
);
[Visual Basic]
Sub LoadAll()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADARGTYPE | [C++] 0x81100018 [Visual Basic] &H81100018 | Argument data type infomation missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | [C++] 0x81100022 [Visual Basic] &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | [C++] 0x81100016 [Visual Basic] &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADOPER | [C++] 0x81100017 [Visual Basic] &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | [C++] 0x81100015 [Visual Basic] &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | [C++] 0x81100014 [Visual Basic] &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_XMLPARSE | [C++] 0x81100013 [Visual Basic] &H81100013 | XML DOM object parsing error

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Any expressions in the expression cache at the time of the call are reloaded.

If there are many expressions in the expression store, the LoadAll method may be slow. Use the LoadExpr method to load only specific expressions into the expression cache.

For every expression loaded into the expression cache, the LoadAll method increments the read-only ExprCount property by one (1).

Use the FlushAll method to remove all expressions from the expression cache.

The Connect method must be called before using the LoadAll method.

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::Connect

[C++] IExpressionEval::get_ExprCount

[C++] IExpressionEval::FlushAll

[C++] IExpressionEval::FlushExpr

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Connect

[Visual Basic] ExpressionEval.ExprCount

[Visual Basic] ExpressionEval.FlushAll

[Visual Basic] ExpressionEval.FlushExpr

[Visual Basic] ExpressionEval.LoadExpr


IExpressionEval::LoadExpr Method [C++]

ExpressionEval.LoadExpr Method [Visual Basic]

Use this method to pre-compile an expression, and if successful, load the expression into the expression cache.

Definition

[C++]
HRESULT IExpressionEval::LoadExpr(
 long nExprID
);
[Visual Basic]
Sub LoadExpr(
 nExprID As Long
)

Parameters

nExprID [C++]
[in] A positive long that contains the identifier of the expression to load into the expression cache.
nExprID [Visual Basic]
[in] A positive Long that contains the identifier of the expression to load into the expression cache.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADARGTYPE | [C++] 0x81100018 [Visual Basic] &H81100018 | Argument data type info missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | [C++] 0x81100022 [Visual Basic] &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | [C++] 0x81100016 [Visual Basic] &H81100016 | Invalid clause encountered
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified
E_EXPR_BADOPER | [C++] 0x81100017 [Visual Basic] &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | [C++] 0x81100015 [Visual Basic] &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | [C++] 0x81100014 [Visual Basic] &H81100014 | An unrecognized XML element was encountered
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_NOTFOUND | [C++] 0x81100012 [Visual Basic] &H81100012 | Could not find the specified expression ID, nExprID, in the expression store
E_EXPR_XMLPARSE | [C++] 0x81100013 [Visual Basic] &H81100013 | XML DOM object parsing error

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the specified expression is already loaded in the expression cache at the time of the call, it will be reloaded.

The LoadExpr method increments the read-only ExprCount property by one when it loads an expression into the expression cache.

With the exception of XML fragments, only expressions that exist in the expression cache may be evaluated. The Eval method loads an expression from the expression store that is not preloaded into the expression cache.

Use the LoadAll method to load all expressions into the expression cache. Use the FlushExpr method to remove an expression from the expression cache.

The Connect method must be called before using the LoadExpr method.

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::Connect

[C++] IExpressionEval::get_ExprCount

[C++] IExpressionEval::FlushAll

[C++] IExpressionEval::FlushExpr

[C++] IExpressionEval::LoadAll

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Connect

[Visual Basic] ExpressionEval.ExprCount

[Visual Basic] ExpressionEval.FlushAll

[Visual Basic] ExpressionEval.FlushExpr

[Visual Basic] ExpressionEval.LoadAll


IExpressionEval::ParseXML Method [C++]

ExpressionEval.ParseXML Method [Visual Basic]

Use this method to check whether an Extensible Markup Language (XML) fragment is a syntactically correct expression.

Definition

[C++]
HRESULT IExpressionEval::ParseXML(
 BSTR bstrXMLExpr,
 VARIANT_BOOL* pbValid
);
[Visual Basic]
Function ParseXML(
 bstrXMLExpr As String
) As Boolean

Parameters

bstrXMLExpr [C++]
[in] A BSTR that contains the XML text defining an expression.
bstrXMLExpr [Visual Basic]
[in] A String that contains the XML text defining an expression.
pbValid [C++]
[out, retval] A pointer to a VARIANT_BOOL indicating the validity of the expression.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns a Boolean value indicating the results of parsing the expression (bstrXMLExpr).

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADARGTYPE | [C++] 0x81100018 [Visual Basic] &H81100018 | Argument data type information missing from expression, or unrecognized argument data type encountered in expression
E_EXPR_BADARGVALUE | [C++] 0x81100022 [Visual Basic] &H81100022 | Invalid expression argument value, or impossible conversion
E_EXPR_BADCLAUSE | [C++] 0x81100016 [Visual Basic] &H81100016 | Invalid clause encountered
E_EXPR_BADOPER | [C++] 0x81100017 [Visual Basic] &H81100017 | Operator missing, unrecognized operator encountered, or type mismatch
E_EXPR_BADTERM | [C++] 0x81100015 [Visual Basic] &H81100015 | Term type missing, or unrecognized term type encountered
E_EXPR_BADXML | [C++] 0x81100014 [Visual Basic] &H81100014 | An unrecognized XML element was encountered
E_EXPR_XMLPARSE | [C++] 0x81100013 [Visual Basic] &H81100013 | XML DOM object parsing error

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Since this method only checks syntax, the expression may still be invalid even though the method succeeds.

The expression store is not used for XML fragments.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pbValid parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' sXMLExpr is a string.
' Note that this string is not formatted properly with respect to
' quotation marks or continuation in order to increase readability.

strXMLExpr = "<CLAUSE OPER="equal">
                  <PROPERTY ID="User.firstName" TYPE="string" />
                  <IMMED-VAL TYPE="string">Jill</IMMED-VAL>
              </CLAUSE>"

' bResult is a Boolean

bResult = oExpressionEval.ParseXML(sXMLExpr)

See Also

[C++] Expression Recordset

[C++] Expression XML Structures

[C++] ExpressionEval Object

[C++] IExpressionEval::Eval

[C++] IExpressionEval::EvalXML

[Visual Basic] Expression Recordset

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.Eval

[Visual Basic] ExpressionEval.EvalXML


IExpressionEval Properties [C++]

ExpressionEval Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
ExprCount | long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.
[Visual Basic]
Property | Type | Description
ExprCount | Long | Retrieves the number of expressions loaded into the expression cache. This property is read-only.


IExpressionEval::get_ExprCount Property [C++]

ExpressionEval.ExprCount Property [Visual Basic]

The ExprCount property is a read-only integer that indicates the number of expressions that correctly pre-compiled and loaded into the expression cache. Expressions that contain syntactic errors will fail to pre-compile correctly.

Definition

[C++]
HRESULT IExpressionEval::get_ExprCount(
 long* pExprCount);
[Visual Basic]
Property ExprCount As Long

Parameters

pExprCount [C++]
[out, retval] A pointer to a long used to return the number of expressions loaded in the expression store.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the following Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ExpressionEval Object

[C++] IExpressionEval::FlushAll

[C++] IExpressionEval::FlushExpr

[C++] IExpressionEval::LoadAll

[C++] IExpressionEval::LoadExpr

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionEval.FlushAll

[Visual Basic] ExpressionEval.FlushExpr

[Visual Basic] ExpressionEval.LoadAll

[Visual Basic] ExpressionEval.LoadExpr


ExpressionStore Object [C++]

ExpressionStore Object [Visual Basic]

Use this object to manipulate expressions contained in an expression store. An expression store is a database of expressions along with information about the expressions. There is one expression store for each commerce site.

ProgID: | Commerce.ExpressionStore (Externally creatable)
COM Class Name: | ExpressionStore
Type Library Name: | Microsoft Commerce 2002 Expression System Type Library
DLL Name: | exprarch.dll
Threading Model: | Both
[C++]
COM Interface Name: | IExpressionStore
Interface ID Constant: | IID_IExpressionStore
Header File: | ExprArchDLL.h, exprarch.h, mspu_guids.h

[C++] In C++, use the IExpressionStore interface to access the methods of the ExpressionStore object.

Methods

[C++]
Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADO Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.
[Visual Basic]
Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADO Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.

Remarks

The connection string to a valid expression store must be stored using the Connect method before calling any other method of the ExpressionStore object.

An ExpressionStore object is internally created when the Connect method of an ExpressionEval object is invoked.

[C++] Many of the methods in ExpressionStore class use the Expression recordset object. For more information, see Expression Recordset.

[Visual Basic] Many of the methods in ExpressionStore class use the Expression recordset object. For more information, see Expression Recordset.

See Also

[C++] Targeting Objects

[C++] Expression XML Structures

[C++] ExpressionEval Object

[Visual Basic] Targeting Objects

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionEval Object


IExpressionStore Methods [C++]

ExpressionStore Methods [Visual Basic]

Methods

[C++]
Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADO Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.
[Visual Basic]
Method | Description
Connect | Validates and stores the connection string to the specified expression store.
DeleteExpression | Deletes an expression from the expression store.
Disconnect | Sets the connection string to an empty string.
Export | Exports expressions from the expression store to a file.
GetAllExprs | Retrieves all expressions from the expression store.
GetExpression | Retrieves an expression from the expression store.
GetExprID | Translates an expression name into its corresponding expression ID.
GetExprName | Translates an expression ID into its corresponding expression name.
Import | Imports a set of expressions to the expression store from a file.
NewExpression | Creates a new ADO Recordset object that contains an empty expression.
Query | Queries for a list of expressions based on one or more criteria.
RenameExpression | Renames an existing expression.
SaveExpression | Saves a new or changed expression to the expression store.


IExpressionStore::Connect Method [C++]

ExpressionStore.Connect Method [Visual Basic]

Use this method to store the connection string to an expression store.

Definition

[C++]
HRESULT IExpressionStore::Connect(
 BSTR strConnStr
);
[Visual Basic]
Sub Connect(
 strConnStr As String
)

Parameters

strConnStr [C++]
[in] A BSTR that contains the database connection information for the expression store.
strConnStr [Visual Basic]
[in] A String that contains the database connection information for the expression store.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRSTORE | [C++] 0x8110001E [Visual Basic] &H8110001E | Specified database does not contain a valid expression store
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_STOREPERMISSIONS | [C++] 0x8110000F [Visual Basic] &H8110000F | Insufficient access permissions on the expression store database

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The ExpressionStore object does not maintain a persistent ADO connection. This method stores the connection string after validating that the connection string points to an actual expression store. The Disconnect method sets the connection string to an empty string.

Each method of the ExpressionStore object creates a connection when needed, and when done with it, closes the connection. This relies on ADO connection pooling and provides higher availability.

The connection string for the expression store may be obtained through the SiteConfigReadOnly object or through the Commerce Server Manager console from the s_BizDataStoreConnectionString property under the key "Commerce Server Manager\Global Resources\Profiles".

The Connect method must be successfully executed before calling any other method of an externally created ExpressionStore object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' Connect using an explicit connection string .
' oExpressionStore is a valid ExpressionStore object

oExpressionStore.Connect "Provider=SQLOLEDB;Data Source=server;" _
& "Initial Catalog=Retail_commerce;Integrated Security='SSPI'"

' Connect using a string retrieved from the SiteConfigReadOnly object.
' sConn is a String, oSCRO is an initialized SiteConfigReadOnly object.

sConn = oSCRO.Fields("Biz Data Service") _
.Value.Fields("s_BizDataStoreConnectionString").Value
oExpressionStore.Connect sConn

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Disconnect

[C++] SiteConfigReadOnly Object

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Disconnect

[Visual Basic] SiteConfigReadOnly Object


IExpressionStore::DeleteExpression Method [C++]

ExpressionStore.DeleteExpression Method [Visual Basic]

Use this method to delete an existing expression from the expression store.

Definition

[C++]
HRESULT IExpressionStore::DeleteExpression(
 long nExprID,
 long flags
);
[Visual Basic]
Sub DeleteExpression(
 nExprID As Long,
 flags As Long
)

Parameters

nExprID [C++]
[in] A long that specifies the expression to be deleted.
nExprID [Visual Basic]
[in] A Long that specifies the expression to be deleted.
flags [C++]
[in] A long that contains the optional control flags. This parameter is currently unused and should be set to zero (0).
flags [Visual Basic]
[in] A Long that contains the optional control flags. This parameter is currently unused and should be set to zero (0).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_EXPRDELFAILED | [C++] 0x81100010 [Visual Basic] &H81100010 | Delete operation failed, possibly due to other expressions having dependencies on this expression
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the specified expression has a non-zero reference count, meaning that other expressions depend on the specified expression, the expression is not deleted.

Call the Connect method before calling the DeleteExpression method.

[Visual Basic]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' 59552 is a valid expression ID retrieved by the GetExprID method.

oExpressionStore.Delete(59552, 0)

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::NewExpression

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.NewExpression


IExpressionStore::Disconnect Method [C++]

ExpressionStore.Disconnect Method [Visual Basic]

Use this method to set the connection string to the expression store to an empty string.

Definition

[C++]
HRESULT IExpressionStore::Disconnect(
);
[Visual Basic]
Sub Disconnect()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] For more information about connecting and disconnecting to an expression store, see IExpressionStore::Connect

[Visual Basic] For more information about connecting and disconnecting to an expression store, see ExpressionStore.Connect

See Also

[C++] ExpressionStore Object

[Visual Basic] ExpressionStore Object


IExpressionStore::Export Method [C++]

ExpressionStore.Export Method [Visual Basic]

Use this method to export the expressions stored in the expression store to a file.

Definition

[C++]
HRESULT IExpressionStore::Export(
 BSTR bstrFileName
);
[Visual Basic]
Sub Export(
 bstrFileName As String
)

Parameters

bstrFileName [C++]
[in] A BSTR that contains the name of the file used to store the expressions.
bstrFileName [Visual Basic]
[in] A String that contains the name of the file used to store the expressions.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The file being exported to should not exist prior to the call or the method will fail. If an absolute path is not specified, the file is placed in the \WINNT\system32 folder.

After the method successfully completes, the file contains the XML schema for the expression recordset followed by the XML representation of each expression recordset in the expression store.

Use the Import method to copy the expressions in a file to the expression store.

Call the Connect method before calling the Export method.

[Visual Basic]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Export "Expressions.xml"

See Also

[C++] Expression Recordset

[C++] Expression XML Structures

[C++] ExpressionStore Object

[C++] IExpressionStore::Import

[Visual Basic] Expression Recordset

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Import


IExpressionStore::GetAllExprs Method [C++]

ExpressionStore.GetAllExprs Method [Visual Basic]

Use this method to retrieve an ADO hierarchical Recordset object that contains all the expressions residing in the expression store.

Definition

[C++]
HRESULT IExpressionStore::GetAllExprs(
 _Recordset** ppRSExprs
);
[Visual Basic]
Function GetAllExprs() As Object

Parameters

ppRSExprs [C++]
[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains all the expressions residing in the expression store.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns an ADO hierarchical Recordset object. If successful, the Recordset object contains the expressions currently residing in the expression store. If unsuccessful, the Recordset object is set to Nothing.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] The Recordset object contains one record for each expression in the expression store. For information on the format and fields of the Recordset object, see Expression Recordset.

[Visual Basic] The Recordset object contains one record for each expression in the expression store. For information on the format and fields of the Recordset object, see Expression Recordset.

Use the GetExpression method to retrieve a single expression from the expression store.

Call the Connect method before calling the GetAllExprs method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppRSExprs parameter contains valid data only if the method completes successfully.

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetExpression

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetExpression


IExpressionStore::GetExpression Method [C++]

ExpressionStore.GetExpression Method [Visual Basic]

Use this method to retrieve an ADO hierarchical Recordset object that contains the specified expression.

Definition

[C++]
HRESULT IExpressionStore::GetExpression(
 long nExprID,
 _Recordset** ppRSExpr
);
[Visual Basic]
Function GetExpression(
 nExprID As Long
) As Object

Parameters

nExprID [C++]
[in] A long that contains the unique identifier of the expression.
nExprID [Visual Basic]
[in] A Long that contains the unique identifier of the expression.
ppRSExpr [C++]
[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains the expression.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details. If the method does not complete successfully, the address of the pointer to the Recordset object is set to NULL.

[Visual Basic] This method returns an ADO hierarchical Recordset object. If successful, the Recordset object contains the specified expression. If unsuccessful, the Recordset object is set to Nothing.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

To access all expressions in the connected expression store, use the GetAllExprs method.

Call the Connect method before calling the GetExpression method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppRSExps parameter contains valid data only if the method completes successfully.

See Also

[C++] Expression Recordset

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetAllExprs

[C++] IExpressionStore::NewExpression

[Visual Basic] Expression Recordset

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetAllExprs

[Visual Basic] ExpressionStore.NewExpression


IExpressionStore::GetExprID Method [C++]

ExpressionStore.GetExprID Method [Visual Basic]

Use this method to translate the name of an expression into its corresponding expression ID.

Definition

[C++]
HRESULT IExpressionStore::GetExprID(
 BSTR strExprName,
 long* pnExprID
);
[Visual Basic]
Function GetExprID(
 strExprName As String
) As Long

Parameters

strExprName [C++]
[in] A BSTR that contains the expression name.
strExprName [Visual Basic]
[in] A String that contains the expression name.
pnExprID [C++]
[out, retval] A pointer to a long that contains the expression ID. On failure, the expression ID is set to EXPRID_INVALID (defined as -1).

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the expression ID. On failure, the expression ID is set to EXPRID_INVALID (defined as -1).

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRNAME | [C++] 0x81100003 [Visual Basic] &H81100003 | Invalid expression name, or expression name not found in store
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the GetExprName method to translate the ID of an expression into its corresponding expression name.

Call the Connect method before calling the GetExprID method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppExprID parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' lExpressionID is a long
' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

lExpressionID = oExpressionStore.GetExprID("MyExpression")

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetExpression

[C++] IExpressionStore::GetExprName

[C++] IExpressionStore::RenameExpression

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetExpression

[Visual Basic] ExpressionStore.GetExprName

[Visual Basic] ExpressionStore.RenameExpression


IExpressionStore::GetExprName Method [C++]

ExpressionStore.GetExprName Method [Visual Basic]

Use this method to translate the ID of an expression into its corresponding expression name.

Definition

[C++]
HRESULT IExpressionStore::GetExprName(
 long nExprID,
 BSTR* pstrExprName
);
[Visual Basic]
Function GetExprName(
 nExprID As Long
) As String

Parameters

nExprID [C++]
[in] A long that contains a unique expression ID.
nExprID [Visual Basic]
[in] A Long that contains a unique expression ID.
pstrExprName [C++]
[out, retval] A pointer to a BSTR that contains the name of the expression. On failure, the expression name is set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the name of the expression. An empty String is returned if the expression ID is a Long but does not represent an existing expression.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the GetExprID method to translate the name of an expression into its corresponding expression ID.

Call the Connect method before calling the GerExprName method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The pstrExprName parameter contains valid data only if the method completes successfully.

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetExprID

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetExprID


IExpressionStore::Import Method [C++]

ExpressionStore.Import Method [Visual Basic]

Use this method to import expressions from a file into the expression store.

Definition

[C++]
HRESULT IExpressionStore::Import(
 BSTR bstrFileName
);
[Visual Basic]
Sub Import(
 bstrFileName As String
)

Parameters

bstrFileName [C++]
[in] A BSTR that contains the path and name of the file from which to import the expressions.
bstrFileName [Visual Basic]
[in] A String that contains the path and name of the file from which to import the expressions.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_NONEMPTYSTORE | [C++] 0x8110000C [Visual Basic] &H8110000C | Cannot import to a non-empty store

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The expression store must be empty in order to import expressions.

The import file must contain the XML schema for the expression recordset followed by the XML representation of each expression recordset. Expression recordsets with invalid expression bodies are imported but will cause an error upon evaluation.

Use the Export method to copy the XML schema for the expression recordset and all the expressions from the expression store to a file.

Call the Connect method before calling the Import method.

[Visual Basic]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.

oExpressionStore.Import "\SomePath\Expressions.xml"

See Also

[C++] Expression Recordset

[C++] Expression XML Structures

[C++] ExpressionStore Object

[C++] IExpressionStore::Export

[Visual Basic] Expression Recordset

[Visual Basic] Expression XML Structures

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Export


IExpressionStore::NewExpression Method [C++]

ExpressionStore.NewExpression Method [Visual Basic]

Use this method to return an ADO hierarchical Recordset object that contains an empty expression.

Definition

[C++]
HRESULT IExpressionStore::NewExpression(
 _Recordset** ppRSExpr
);
[Visual Basic]
Function NewExpression() As Object

Parameters

ppRSExpr [C++]
[out, retval] An address of a pointer to an ADO hierarchical Recordset object that contains an empty expression.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a hierarchical Recordset object that contains an empty expression.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

Remarks

[C++] Populate the returned Recordset object with data describing the new expression. For information on the format and required fields of the Recordset object, see Expression Recordset.

[Visual Basic] Populate the returned Recordset object with data describing the new expression. For information on the format and required fields of the Recordset object, see Expression Recordset.

Save the newly defined expression to the expression store using the SaveExpression method. The SaveExpression method automatically generates a new, unique expression ID and stores it with the new expression.

Call the Connect method before calling the NewExpression method.

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::SaveExpression

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.SaveExpression


IExpressionStore::Query Method [C++]

ExpressionStore.Query Method [Visual Basic]

Use this method to retrieve a Recordset object containing expressions that match the specified query conditions. At least one of the optional arguments must be specified.

Definition

[C++]
HRESULT IExpressionStore::Query(
 VARIANT vName,
 VARIANT vCategory,
 VARIANT vProfiles,
 _Recordset** ppRSExprs
);
[Visual Basic]
Function Query(
 Optional vName As Variant,
 Optional vCategory As Variant,
 Optional vProfiles As Variant
) As Object

Parameters

vName [C++]
[in, optional] When specified, a BSTR name to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vName [Visual Basic]
[in, optional] When specified, a String name to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vCategory [C++]
[in, optional] When specified, a BSTR containing the category or SAFEARRAY of category strings to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vCategory [Visual Basic]
[in, optional] When specified, a String containing the category or SAFEARRAY of category strings to match expressions against. This is used in an SQL LIKE clause that permits wildcards.
vProfiles [C++]
[in, optional] When specified, a BSTR containing the profile name or SAFEARRAY of profile names to match expressions against. Profile names must be specified without wildcards.
vProfiles [Visual Basic]
[in, optional] When specified, a String containing the profile name or SAFEARRAY of profile names to match expressions against. Profile names must be specified without wildcards.
ppRSExprs [C++]
[out, retval] An address of a pointer to a Recordset object that contains the result set of expressions. On failure, the pointer to the Recordset object will be set to NULL.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] This method returns an ADO hierarchical Recordset object. If successful, the Recordset object contains the result set of expressions. If unsuccessful, the Recordset object is set to Nothing.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

Remarks

If a combination of the optional parameters is specified, the retrieved expressions satisfy all constraints (implicit AND applied). For example, if name = "Robert%" and category = "General", only expressions with names starting with "Robert" and with a category of "General" will be returned.

When multiple profile names are specified, the query result includes expressions with profile requirements (dependencies) that include any of the listed profile names (implicit OR applied). Thus, if name = "Robert%" and the profiles "User" and "Context" are specified as profiles, the Query method will return all expressions with names starting with "Robert" and profiles requiring only "User", only "Context", or both "User" and "Context".

[C++] For details on the ADO Recordset object that represents the expression, see Expression Recordset.

[Visual Basic] For details on the ADO Recordset object that represents the expression, see Expression Recordset.

Call the Connect method before calling the Query method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[C++]

The ppRSExprs parameter contains valid data only if the method completes successfully.

[Visual Basic]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' rsExpr is a Recordset object that will contain all expressions
' with a name starting with 'Express', having a category of
' Octogenarians' and a profile dependency on 'joeuser'.

rsExpr = oExpressionStore.Query("Express%", "Octogenarians", "joeuser")

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect


IExpressionStore::RenameExpression Method [C++]

ExpressionStore.RenameExpression Method [Visual Basic]

Use this method to rename an existing expression in the expression store. The new expression name must be unique or the operation will fail.

Definition

[C++]
HRESULT IExpressionStore::RenameExpression(
 long nExprID,
 BSTR strNewName
);
[Visual Basic]
Sub RenameExpression(
 nExprID As Long,
 strNewName As String
)

Parameters

nExprID [C++]
[in] A long that contains the expression ID.
nExprID [Visual Basic]
[in] A Long that contains the expression ID.
strNewName [C++]
[in] A BSTR that contains the new name.
strNewName [Visual Basic]
[in] A String that contains the new name.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRID | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression ID specified, or expression ID not found in store
E_EXPR_BADEXPRNAME | [C++] 0x81100003 [Visual Basic] &H81100003 | Invalid expression name
E_EXPR_DUPEXPRNAME | [C++] 0x81100007 [Visual Basic] &H81100007 | Duplicate expression name
E_EXPR_INVALIDFIELDSIZE | [C++] 0x81100005 [Visual Basic] &H81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Use the GetExprID method to translate an expression name to its corresponding expression ID.

Call the Connect method before calling the RenameExpression method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' oExpressionStore is an ExpressionStore object connected to
' a valid expression store.
' 52997 is a valid expression ID retrieved from the GetExprId method.

oExpressionStore.RenameExpression(52997, "MyNewName")

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetExprID

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetExprID


IExpressionStore::SaveExpression Method [C++]

ExpressionStore.SaveExpression Method [Visual Basic]

Use this method to save a new or modified expression to the expression store. For a new expression, the SaveExpression method automatically generates a unique expression ID and stores it with the expression.

Definition

[C++]
HRESULT IExpressionStore::SaveExpression(
 _Recordset* pRSExpr
);
[Visual Basic]
Sub SaveExpression(
 pRSExpr As Object
)

Parameters

pRSExpr [C++]
[in] A pointer to the ADO hierarchical Recordset object that contains the expression.
pRSExpr [Visual Basic]
[in] A Recordset object that contains the expression.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_EXPR_BADCONNECTION | [C++] 0x8110001F [Visual Basic] &H8110001F | Invalid connection
E_EXPR_BADEXPRBODY | [C++] 0x81100004 [Visual Basic] &H81100004 | Invalid or missing expression body
E_EXPR_BADEXPRCATEGORY | [C++] 0x8110000A [Visual Basic] &H8110000A | Invalid expression category specified
E_EXPR_BADEXPRNAME | [C++] 0x81100003 [Visual Basic] &H81100003 | Invalid expression name
E_EXPR_CYCLEDETECTED | [C++] 0x81100006 [Visual Basic] &H81100006 | A cycle was detected in the expression dependencies of this expression
E_EXPR_DUPEXPRDEPS | [C++] 0x81100009 [Visual Basic] &H81100009 | Duplicate expression dependency
E_EXPR_DUPEXPRNAME | [C++] 0x81100007 [Visual Basic] &H81100007 | Duplicate expression name
E_EXPR_DUPPROFDEPS | [C++] 0x81100008 [Visual Basic] &H81100008 | Duplicate profile dependency
E_EXPR_INVALIDEXPRDEPS | [C++] 0x8110000B [Visual Basic] &H8110000B | One or more of the expression dependencies refers to an expression ID that does not exist
E_EXPR_INVALIDFIELDSIZE | [C++] 0x81100005 [Visual Basic] &H81100005 | The new name exceeds the maximum size of 30 characters
E_EXPR_NOCONNECTIONSTRING | [C++] 0x8110000D [Visual Basic] &H8110000D | No connection string specified
E_EXPR_NOPROFDEPS | [C++] 0x81100002 [Visual Basic] &H81100002 | Expression must have at least one profile-dependency to be saved

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] If the expression being saved is not currently in the expression store, the SaveExpression method generates a unique identifier and populates the ExprID field of the Recordset object. The identifier is a positive integer. For more information about the format and fields of the Recordset object, see Expression Recordset.

[Visual Basic] If the expression being saved is not currently in the expression store, the SaveExpression method generates a unique identifier and populates the ExprID field of the Recordset object. The identifier is a positive integer. For more information about the format and fields of the Recordset object, see Expression Recordset.

The ExpressionStore object performs rudimentary checks for expression dependencies when an expression is saved or deleted. This includes any direct references, a test for cyclic referencing, and any references to non-existent expressions.

Call the Connect method before calling the SaveExpression method.

See Also

[C++] ExpressionStore Object

[C++] IExpressionStore::Connect

[C++] IExpressionStore::GetExpression

[C++] IExpressionStore::NewExpression

[Visual Basic] ExpressionStore Object

[Visual Basic] ExpressionStore.Connect

[Visual Basic] ExpressionStore.GetExpression

[Visual Basic] ExpressionStore.NewExpression


Expression Recordset [C++]

Expression Recordset [Visual Basic]

An expression is a statement constructed with Boolean and relational operators that is evaluated against the data in a given set of profiles. The part of an expression that is evaluated is stored as an Extended Markup Language (XML) string in the ExprBody field of an ActiveX Data Object (ADO) Recordset object. Recordset objects are contained in a database known as the Expression Store.

This section contains:

[C++]
  • Expression Recordset Object. Describes the ADO hierarchical Recordset object that represents the expression.
  • Expression Recordset Example. Shows an example of an expression Recordset object.
[Visual Basic]
  • Expression Recordset Object. Describes the ADO hierarchical Recordset object that represents the expression.
  • Expression Recordset Example. Shows an example of an expression Recordset object.

See Also

Targeting Objects

Expression XML Structures

[Visual Basic] ExpressionEval Object

[Visual Basic] ExpressionStore Object

[C++] ExpressionEval Object

[C++] ExpressionStore Object


Expression Recordset Object [C++]

Expression Recordset Object [Visual Basic]

The ExpressionStore object represents expressions and their dependencies using an ADO shaped hierarchical Recordset object. The structure of this Recordset object consists of a parent Recordset object with pointers to two child Recordset objects.

An empty Recordset object with the prescribed structure is created by calling the NewExpression method of the ExpressionStore object. Once the fields of the Recordset object have been filled in, the SaveExpression method is used to commit the expression to the expression store. In a similar fashion, those methods of the ExpressionStore object that return expressions from the store, such as GetExpression and GetAllExprs, return the expression data in this hierarchical Recordset object structure.

Parent Recordset

The fields in the parent Recordset object are shown in the following table.

Field | Type | Requirement | Description
ExprID | Integer | Generated by the SaveExpression method of the ExpressionStore object when a new expression is saved. | Unique identifier for the expression. This is a positive integer.
ExprName | String | Required field supplied by the user. | Unique name of the expression. The following characters are not allowed: ', ", &, \, /, <, >
Category | String | Optional field supplied by the user. | Category of the expression. May be used as a filter. The following characters are not allowed: ', ", &, \, /, <, >
ExprDesc | String | Optional field supplied by the user. | Description of the expression. Maximum length is 200 characters. The following characters are not allowed: &, <, >
ExprBody | String | Required field supplied by the user. | Extensible Markup Language (XML) body of the recordset. The evaluable expression. Maximum length is 3400 characters. For more information, see Expression XML Structures.
DateCreated | Date | Generated by the system. | Date the recordset was created.
DateModified | Date | Generated by the system. | Date the recordset was last modified.
rsExprDeps | Recordset pointer | Generated by the system. | A pointer to the child Recordset object listing the expression dependencies of this expression.
rsProfDeps | Recordset pointer | Generated by the system. | A pointer to the child Recordset object listing the profile type dependencies of this expression.

Expression Dependencies Child Recordset

This Recordset object contains a record for each expression that the parent expression is immediately dependent on. The information does not include nested dependencies. If the parent expression does not depend on any expressions, this recordset may be empty.

The fields in the expression dependencies child Recordset object are shown in the following table.

Field | Type | Description
ExprID | Integer | Identifier of the parent expression.
ExprDep | Integer | Identifier of the dependent expression.

Profile Dependencies Child Recordset

This Recordset object contains a record for each profile this expression is dependent on. The user must populate at least one record when creating a new expression.

The fields in the profile dependencies Recordset object are shown in the following table.

Field | Type | Description
ExprID | Integer | Identifier of the parent expression.
ProfDep | String | Name of the dependent profile.

Remarks

The ExprId fields of the two child Recordset objects contain the same value as the ExprID field of the parent Recordset object that is generated when a new expression is saved.


Expression Recordset Example [C++]

Expression Recordset Example [Visual Basic]

The following examples shows two Recordset objects containing expressions. The first is for an expression (ID = 7) dependent on one profile (User) and no expressions. The second is for an expression (ID = 24) dependent on one other expression (ID=7) and two hypothetical profiles (Product and User). The DateCreated, DateModified, rsExprDeps, and rsProfDeps fields are not shown.

Parent Recordset for Expression7

ExprID | ExprName | Category | ExprDesc | ExprBody
7 | "Expression7" | "Hair" | "Brown" | String7

Expression Dependencies Child Recordset for Expression7

ExprID | ExprDep

Profile Dependencies Child Recordset for Expression7

ExprID | ProfDep
7 | "User"
String7 = "<CLAUSE OPER="is-true">
             <PROPERTY ID="User.GeneralInfo.hair" TYPE="string"/>
             <IMMED-VAL TYPE="string">Brown</IMMED-VAL>
           </CLAUSE>"

Parent Recordset for Expression24

ExprID | ExprName | Category | ExprDesc | ExprBody
24 | "Expression24" | "Octogenarians" | "Brown_haired_users_over_80" | String24

Expression Dependencies Child Recordset for Expression24

ExprID | ExprDep
24 | 7

Profile Dependencies Child Recordset for Expression24

ExprID | ProfDep
24 | "Product"
24 | "User"
String24 = "<TERM TYPE="and">
              <CLAUSE OPER="is-true">
                <EXPR-REF ID=7/>
              </CLAUSE>
              <CLAUSE OPER="equal">
                <PROPERTY ID="Product.name" TYPE="string"/>
                <IMMED-VAL TYPE="string">hair dye</IMMED-VAL>
              </CLAUSE>
              <CLAUSE OPER="at-least">
                <PROPERTY ID="User.GeneralInfo.age" TYPE="number"/>
                <IMMED-VAL TYPE="number">80</IMMED-VAL>
              </CLAUSE>
            </TERM>"


ExprEvalContext Object [C++]

ExprEvalContext Object [Visual Basic]

This object is created by the CreateEvalContext method of the ExpressionEval object. It is used to store a common context for evaluating multiple expressions. ExprEvalContext objects are stored in the context cache by the ExpressionEval object and deleted when the ExpressionEval object is destroyed.

Since the ExprEvalContext object is intended to be accessed solely through the ExpressionEval object, no documentation of the properties and methods of the ExprEvalContext object is provided.

Caution

  • Do not attempt to change any values internal to the ExprEvalContext object. Changing these values will corrupt the object and render it invalid. Use only the methods of the ExpressionEval object to create, access, and delete the ExprEvalContext object.

See Also

[C++] Targeting Objects

[C++] ExpressionEval Object

[Visual Basic] Targeting Objects

[Visual Basic] ExpressionEval Object


ExprFltrQueryBldr Object [C++]

ExprFltrQueryBldr Object [Visual Basic]

Use this object to translate an expression in Extensible Markup Language (XML) form into a SQL filter query string. A filter query returns a subset of items from a database based on a combination of attribute values.

ProgID: | Commerce.ExprFltrQueryBldr (Externally creatable)
COM Class Name: | ExprFltrQueryBldr
Type Library Name: | Microsoft Commerce 2002 Expression Builder Type Library
DLL Name: | exprfltrbldr.dll
Threading Model: | Apartment
[C++]
COM Interface Name: | IExprFltrQueryBldr
Interface ID Constant: | IID_IExprFltrQueryBldr
Header File: | exprfltrbldr.h, mspu_guids.h
[C++]

In C++, use the IExprFltrQueryBldr interface to access the properties and methods of the ExprFltrQueryBldr object.

Because this object is primarily intended for use within ASP script, access from C++ will not be common.

Methods

[C++]
Method | Description
ConvertExprToSqlFltrStr | Converts an expression in XML form to a SQL filter string.
ConvertExprUsingDict | Converts an expression in XML form that references a Dictionary object into a SQL filter string.
[Visual Basic]
Method | Description
ConvertExprToSqlFltrStr | Converts an expression in XML form to a SQL filter string.
ConvertExprUsingDict | Converts an expression in XML form that references a Dictionary object into a SQL filter string.

Remarks

The expression in XML form may contain a reference to a Dictionary object.

See Also

[C++] Expression XML Structures

[Visual Basic] Expression XML Structures


IXprFltrQueryBldr Methods [C++]

IXprFltrQueryBldr Methods [Visual Basic]

Methods

[C++]
Method | Description
ConvertExprToSqlFltrStr | Converts an expression in XML form to a SQL filter string.
ConvertExprUsingDict | Converts an expression in XML form that references a Dictionary object into a SQL filter string.
[Visual Basic]
Method | Description
ConvertExprToSqlFltrStr | Converts an expression in XML form to a SQL filter string.
ConvertExprUsingDict | Converts an expression in XML form that references a Dictionary object into a SQL filter string.


IExprFltrQueryBldr::ConvertExprToSqlFltrStr Method [C++]

ExprFltrQueryBldr.ConvertExprToSqlFltrStr Method [Visual Basic]

Use this method to convert an expression in Extensible Markup Language (XML) form to a SQL filter query string.

Definition

[C++]
HRESULT IExprFltrQueryBldr::ConvertExprToSqlFltrStr(
  BSTR pExpression,
  BSTR* pFilter
);
[Visual Basic]
Function ConvertExprToSqlFltrStr(
  pExpression As String
) As String

Parameters

pExpression [C++]
[in] A BSTR that contains the expression in XML form.
pExpression [Visual Basic]
A String that contains the expression in XML form.
pFilter [C++]
[out, retval] A pointer to a BSTR used to return the SQL filter string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the SQL filter string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++]

The pFilter parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' sXMLExpr and sSqlFilter are Strings.
' Note that the sXMLExpr string is not properly formatted with respect
' to quotation marks or continuation to increase readability.

sXMLExpr = "<CLAUSE OPER="at-least">
              <PROPERTY ID="user.age" TYPE="number"/>
              <IMMED-VAL TYPE="number">80</IMMED-VAL>
            </CLAUSE>"

sSqlFilter = oExprFltrQueryBldr.ConvertExprToSqlFltrStr(sXMLExpr)
' The resulting sSQLFilter string is: user.age >= 80.

See Also

[C++] ExprFltrQueryBldr Object

[Visual Basic] ExprFltrQueryBldr Object


IExprFltrQueryBldr::ConvertExprUsingDict Method [C++]

ExprFltrQueryBldr.ConvertExprUsingDict Method [Visual Basic]

Use this method to convert an expression in Extensible Markup Language (XML) form containing a reference to a Dictionary object into a SQL filter query string.

Definition

[C++]
HRESULT IExprFltrQueryBldr::ConvertExprUsingDict(
  BSTR pExpr,
  IDispatch* pDict,
  BSTR* pDest
);
[Visual Basic]
Function ConvertExprUsingDict(
  pExpr As String,
  pDict As Object
) As String

Parameters

pExpr [C++]
[in] A BSTR that contains the expression in XML form.
pExpr [Visual Basic]
A String that contains the expression in XML form.
pDict [C++]
[in] A pointer to the IDispatch interface of a Dictionary object that contains the values referenced by the expression.
pDict [Visual Basic]
A Dictionary object that contains the values referenced by the expression.
pDest [C++]
[out, retval] A pointer to a BSTR used to return the SQL filter string.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the SQL filter string.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

In the XML expression, a reference to a Dictionary object is made by preceding the value inside the IMMED-VAL tags with the keyword 'context'. If such a reference is found during conversion of the expression, the reference is replaced with the value read from the Dictionary object.

[C++]

The pDest parameter contains valid data only if the method completes successfully.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ExprFltrQueryBldr Object

[Visual Basic] ExprFltrQueryBldr Object


ListManager Object[C++]

ListManager Object [Visual Basic]

Use this object to create and manage lists of users for the Profiling System, lists of e-mail addresses for the Direct Mailer, and lists created from files and SQL queries.

ProgID: | Commerce.ListManager (Externally creatable)
COM Class Name: | ListManager
Type Library Name: | Microsoft Commerce 2002 ListManager Type Library
EXE Name: | listmanager.exe
Threading Model: | Both
[C++]
COM Interface Name: | IListManager
Interface ID Constant: | None
Header File: | None

[C++] In C++, use the IListManager interface to access the properties and methods of the ListManager object.

Methods

[C++]
Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.
[Visual Basic]
Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.

Properties

[C++]
Property | Type | Description
ConnectionString | BSTR | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | long | Stores the current status of the ListManager object. This property is read-only.
[Visual Basic]
Property | Type | Description
ConnectionString | String | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | Long | Stores the current status of the ListManager object. This property is read-only.

Remarks

List Manager has functionality to manipulate two types of lists, Generic and Mailing. Each type may also have User and Mailable attributes. Lists are designated as static or dynamic depending on when the data is imported.

A Generic list may have any set of column names and types - it essentially maps to a SQL table.

A Mailing list is a list for use with Direct Mailer. It contains a list of recipients to receive mail or a list of recipients who should be opted out of a mailing. Each mailing list has its own table.

The following table describes the columns of a Mailing list table.

Field | Type | Description
rcp_email | NVARCHAR [256] | E-mail address of the recipient.
rcp_guid | NVARCHAR [64] | (Optional) User ID. Usually a GUID which is a key to the profile of the user.
rcp_fmt | smallint | (Optional) Message format flag. Legal values are: 1 - TEXT 2 - MIME 3 - MHTML
rcp_locale | NVARCHAR[20] | (Optional) Preferred character set of the recipient. See DirectMailer specifications for details.
rcp_url | NVARCHAR[2084] | (Optional) URL used for retrieving personalized content for the user.

A Mailable list is any list with an rcp_email column.

A User list is any list with an rcp_guid column.

In a static list, records are imported at the time the list is created.

A dynamic list imports records on demand when referenced by another operation.

List Manager can import lists from the following sources:

  • An SQL query run against an ODBC data source
  • A text file (CSV format)

List Manager can export lists to the following destinations:

  • A SQL Server 2000 table in an external database
  • A text file (CSV format)

List Manager allows time consuming operations to run in an asynchronous manner wherein the operation returns immediately after the process has started and assigns an operation ID that can be used to access the operation.

List Manager stores information about lists and operations in the lm_master and lm_master_operations tables, respectively.

See Also

Targeting Objects


IListManager Methods [C++]

ListManager Methods [Visual Basic]

Methods

[C++]
Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.
[Visual Basic]
Method | Description
AddUserToMailingList | Adds a user to a mailing list.
CancelOperation | Cancels a currently running asynchronous operation.
Copy | Makes a copy of a list.
CreateEmpty | Creates an empty list for subsequent operations.
CreateFromFile | Creates a list from a file.
CreateFromSql | Creates a list from an SQL query.
Delete | Deletes a list.
ExportToFile | Exports a list to a file.
ExportToSql | Exports a list to a database table.
ExtractMailingList | Creates a new mailing list from a generic list that contains an rcp_email column.
GetListFlags | Retrieves the Flags bitmask for a list.
GetListId | Retrieves the list ID.
GetListName | Retrieves the list name.
GetListProperty | Retrieves a list property.
GetLists | Enumerates all known lists at the time of the call.
GetListUserFlags | Retrieves the UserFlags bitmask for a list.
GetOperationInfo | Retrieves information on a list operation.
GetOperations | Enumerates all operations running at the time of the call.
Initialize | Initializes the ListManager object.
RemoveUserFromMailingList | Removes a user from a mailing list.
Rename | Renames a list.
SetDesc | Assigns a description to a list.
SetListProperty | Sets a list property.
Subtract | Subtracts one list from another list, and stores the results in a third list.
Union | Produces a union of two lists (combines the lists and eliminates duplicates), and stores the results in a third list.
WaitOnOperation | Waits for an operation to complete or a timeout to occur, then returns.


IListManager::AddUserToMailingList Method [C++]

ListManager.AddUserToMailingList Method [Visual Basic]

Use this method to add a user record to a mailing list.

Definition

[C++]
HRESULT IListManager::AddUserToMailingList(
  VARIANT listID,
  VARIANT UserEmail,
  VARIANT UserGUID,
  VARIANT UserFmt,
  VARIANT UserLocale,
  VARIANT UserUrl
);
[Visual Basic]
Sub AddUserToMailingList(
  listID As Variant,
  UserEmail As Variant,
  Optional UserGUID As Variant,
  Optional UserFmt As Variant,
  Optional UserLocale As Variant,
  Optional UserUrl As Variant
)

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains ID or name of the list.
UserEmail [C++]
[in] A VARIANT that contains the e-mail address of the user.
UserEmail [Visual Basic]
A Variant that contains the e-mail address of the user.
UserGUID [C++]
[in, optional] A VARIANT that contains the ID of the user (usually a GUID).
UserGUID [Visual Basic]
A Variant that contains the ID of the user (usually a GUID).
UserFmt [C++]
[in, optional] A VARIANT that contains the message format flag. See the Remarks section for more information.
UserFmt [Visual Basic]
An optional Variant that contains the message format flag. See the Remarks section for more information.
UserLocale [C++]
[in, optional] A VARIANT that contains the locale identifier (lcid) of the preferred character set for the user.
UserLocale [Visual Basic]
An optional Variant that contains the locale identifier (lcid) of the preferred character set for the user.
UserUrl [C++]
[in, optional] A VARIANT that contains a URL used for retrieving personalized content for the user.
UserUrl [Visual Basic]
An optional Variant that contains a URL used for retrieving personalized content for the user.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | [C++] 0x8C40000D [Visual Basic] &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | [C++] 0x8C400019 [Visual Basic] &H8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | [C++] 0x8C400018 [Visual Basic] &H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | [C++] 0x8C40000E [Visual Basic] &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The UserFmt parameter specifies the format of a message used by the Direct Mailer. The possible values are: text (1), MIME (2), and MHTML (3).

To specify that one or more of the fields should be inserted as NULL, pass VT_NULL, VT_EMPTY, or VT_ERROR as the optional parameter(s).

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.AddUserToMailingList "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "JaneUser@somewhere.com", "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 2, 1033, VT_NULL

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::CancelOperation Method [C++]

ListManager.CancelOperation Method [Visual Basic]

Use this method to cancel the specified ListManager operation.

Definition

[C++]
HRESULT IListManager::CancelOperation(
 VARIANT varOpID
);
[Visual Basic]
Sub CancelOperation(
 varOpID As Variant
)

Parameters

varOpID [C++]
[in] A VARIANT that specifies the Operation ID of the operation to be cancelled.
varOpID [Visual Basic]
A Variant that specifies the Operation ID of the operation to be cancelled.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors, and the standard COM errors with special meanings, that this method can return.

Constant | Value | Description
E_LM_OPERATION_NOT_FOUND | [C++] 0x8C400004 [Visual Basic] &H8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Operation ID passed to this method in the varOpID parameter can be obtained from any of the following calls when they are executed asynchronously:

[C++]
  • Copy
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union
[Visual Basic]
  • Copy
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union

[C++] In addition, the Operation IDs of all currently active operations can be retrieved using the GetOperations method.

[Visual Basic] In addition, the Operation IDs of all known operations can be retrieved using the GetOperations method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::Copy Method [C++]

ListManager.Copy Method [Visual Basic]

Use this method to copy an existing list over another existing list.

Definition

[C++]
HRESULT IListManager::Copy(
 VARIANT srcList,
 VARIANT resList,
 BOOL bAsync,
 VARIANT* pvarOpID
);
[Visual Basic]
Sub Copy(
 srcList As Variant,
 resList As Variant,
 bAsync As Boolean,
 Optional pvarOpID As Variant
)

Parameters

srcList [C++]
[in] A VARIANT that contains the ID or name of the source list.
srcList [Visual Basic]
A Variant that contains the ID or name of the source list.
resList [C++]
[in] A VARIANT that contains the ID or name of the result list.
resList [Visual Basic]
A Variant that contains the ID or name of the result list.
bAsync [C++]
[in] A BOOL that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_COPY_LIST_OVER_SELF | [C++] 0x8C40001C [Visual Basic] &H8C40001C | Cannot copy a list over itself.
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The result list must exist prior to calling the method; however, any data in the list will be overwritten.

The flags attribute of the destination list is replaced with the flags attribute of the source list. The UserFlags attribute is not changed.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' pvarOdID is a Variant
oListManager.Copy "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", True, pvarOpID

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::CreateEmpty Method [C++]

ListManager.CreateEmpty Method [Visual Basic]

Use this method to create an empty list for subsequent operations.

Definition

[C++]
HRESULT IListManager::CreateEmpty(
 BSTR listName,
 BSTR listDesc,
 long flags,
 long userFlags,
 VARIANT* pvarID
);
[Visual Basic]
Function CreateEmpty(
 listName As String,
 listDesc As String,
 flags As Long,
 userFlags As Long
) As Variant

Parameters

listName [C++]
[in] A BSTR that provides the name for the new list.
listName [Visual Basic]
A String that provides the name for the new list.
listDesc [C++]
[in] A BSTR that provides a description for the new list.
listDesc [Visual Basic]
A String that provides a description for the new list.
flags [C++]
[in] A long that specifies the bitmask flags that control the type of list created.
flags [Visual Basic]
A Long that specifies the bitmask flags that control the type of list created.
userFlags [C++]
[in] A long that contains application specific user flags. Not used by the ListManager object.
userFlags [Visual Basic]
A Long that contains application specific user flags. Not used by the ListManager object.
pvarID [C++]
[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_INVALID_FLAGS | [C++] 0x8C400005 [Visual Basic] &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | [C++] 0x8C400007 [Visual Basic] &H8C400007 | The specified list has already been created.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is useful for creating an empty list for use as the result list of a copy, subtract, or union operation.

For a list of possible values for the flags parameter, see the GetListFlags method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vListID is a Variant
vListID = oListManager.CreateEmpty("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object

[C++] IListManager::GetListFlags

[Visual Basic] ListManager.GetListFlags


IListManager::CreateFromFile Method [C++]

ListManager.CreateFromFile Method [Visual Basic]

Use this method to create a list from a text file.

Definition

[C++]
HRESULT IListManager::CreateFromFile(
 BSTR listName,
 BSTR listDesc,
 long lFlags,
 long userFlags,
 BSTR fileName,
 long errLimit,
 BOOL bAsync,
 VARIANT* pvarOpID,
 VARIANT* pvarID
);
[Visual Basic]
Function CreateFromFile(
 listName As String,
 listDesc As String,
 lFlags As Long,
 userFlags As Long,
 fileName As String,
 errLimit As Long,
 bAsync As Boolean,
 Optional pvarOpID As Variant
) As Variant

Parameters

listName [C++]
[in] A BSTR that provides the name for the new list.
listName [Visual Basic]
A String that provides the name for the new list.
listDesc [C++]
[in] A BSTR that provides a description for the new list.
listDesc [Visual Basic]
A String that provides a description for the new list.
lFlags [C++]
[in] A long that specifies the bitmask flags that control the type of list created.
lFlags [Visual Basic]
A Long that specifies the bitmask flags that control the type of list created.
userFlags [C++]
[in] A long that contains application specific user flags. Not used by the ListManager object.
userFlags [Visual Basic]
A Long that contains application specific user flags. Not used by the ListManager object.
fileName [C++]
[in] A BSTR that contains the name of the file from which to create the new list.
fileName [Visual Basic]
A String that contains the name of the file from which to create the new list.
errLimit [C++]
[in] A long that specifies the maximum number of errors allowed before the operation is terminated. To specify no limit, set the errLimit parameter to zero (0).
errLimit [Visual Basic]
A Long that specifies the maximum number of errors allowed before the operation is terminated. To specify no limit, set the errLimit parameter to zero (0).
bAsync [C++]
[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID.
pvarID [C++]
[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors, and the standard COM errors with special meanings, that this method can return.

Constant | Value | Description
E_LM_BAD_FILE_PATH | [C++] 0x8C40000A [Visual Basic] &H8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | [C++] 0x8C400009 [Visual Basic] &H8C400009 | The ListManager service does not have permission to open the specified file.Check the permissions for the ListManager service account against the permissions for the file.
E_LM_FILE_NOT_FOUND | [C++] 0x8C400015 [Visual Basic] &H8C400015 | The specified file does not exist.
E_LM_FILESHARE_NOT_FOUND | [C++] 0x8C400016 [Visual Basic] &H8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_INVALID_FLAGS | [C++] 0x8C400005 [Visual Basic] &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | [C++] 0x8C400007 [Visual Basic] &H8C400007 | The specified list has already been created.
E_LM_LISTPARSE_NO_GOOD_ROWS | [C++] 0x8C40001B [Visual Basic] &H8C40001B | All rows in the file contained parse errors. List import failed.
E_LM_NO_GENERIC_FROM_FILE | [C++] 0x8C400014 [Visual Basic] &H8C400014 | Generic lists may not be imported from files.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If a list with the same name as the listName parameter already exists, the method fails. Lists imported from text files may not be generic lists; they are always mailing lists.

The user account that the List Manager is configured to run under must have permission to access the file. For example, if the file is on a network share, the service must be running under a domain account or must otherwise have permission to access the share.

If an absolute file path and name is not specified, List Manager will look for the file relative to a root folder named CommerceLists on the local computer running the List Manager service. If the folder does not exist, an error is returned.

List Manager recognizes the following input text file format:

   <Mail-to address>,<User ID>,<Message Format>,<Locale>,
   <Source URL><cr><lf>

Mail-to address is the only required field. The Message Format field should be one of the following: 1 = text, 2 = mime, or 3 = mhtml. The Message Format, Locale, and Source fields are provided for use with Direct Mailer.

Any of the fields may be enclosed in double quotation marks. This is required if the value in the field contains any comma or double quotation mark characters. Two double quotation marks together within a quoted field can be used to denote a double quotation mark. A trailing comma will produce an error.

For a list of possible values for the lflags parameter, see the GetListFlags method.

Rows with duplicate e-mail addresses in the file are ignored.

The parameter, pvarOpID, contains valid data only if the creation operation is performed asynchronously.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vListID is a Variant
vListID = oListManager.CreateFromFile("TequillaBuyers1", _
 "Tequilla buyers in January", 20, 0, "Tequilla.csv", 10, False)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object

[C++] IListManager::GetListFlags

[Visual Basic] ListManager.GetListFlags


IListManager::CreateFromSql Method [C++]

ListManager.CreateFromSql Method [Visual Basic]

Use this method to create a list from a SQL query.

Definition

[C++]
HRESULT IListManager::CreateFromSql(
 BSTR listName,
 BSTR listDesc,
 long lFlags,
 long userFlags,
 BSTR connStr,
 BSTR queryStr,
 long errLimit,
 BOOL bAsync,
 VARIANT* pvarOpID,
 VARIANT* pvarID
);
[Visual Basic]
Function CreateFromSql(
 listName As String,
 listDesc As String,
 lFlags As Long,
 userFlags As Long,
 connStr As String,
 queryStr As String,
 errLimit As Long,
 bAsync As Boolean,
 pvarOpID As Variant
) As Variant

Parameters

listName [C++]
[in] A BSTR that provides the name for the list.
listName [Visual Basic]
A String that provides the name for the list.
listDesc [C++]
[in] A BSTR that provides a description for the list.
listDesc [Visual Basic]
A String that provides a description for the list.
lFlags [C++]
[in] A long that specifies the bitmask flags that control the type of list created.
lFlags [Visual Basic]
A Long that specifies the bitmask flags that control the type of list created.
userFlags [C++]
[in] A long that contains application specific user flags. Not used by the ListManager object.
userFlags [Visual Basic]
A Long that contains application specific user flags. Not used by the ListManager object.
connStr [C++]
[in] A BSTR that contains the connection string for the SQL Server database.
connStr [Visual Basic]
A String that contains the connection string for the SQL Server database.
queryStr [C++]
[in] A BSTR that contains the SQL query for retrieving the contents of the new list.
queryStr [Visual Basic]
A String that contains the SQL query for retrieving the contents of the new list.
errLimit [C++]
[in] A long that is not used.
errLimit [Visual Basic]
A Long that is not used.
bAsync [C++]
[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID.
pvarID [C++]
[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_CONNECTIONFAILED | [C++] 0x8C400001 [Visual Basic] &H8C400001 | Failed to establish database connection.
E_LM_INVALID_FLAGS | [C++] 0x8C400005 [Visual Basic] &H8C400005 | Invalid flags value.
E_LM_LIST_ALREADY_EXISTS | [C++] 0x8C400007 [Visual Basic] &H8C400007 | The specified list has already been created.
E_LM_MAILABLE_LIST_NO_EMAILS | [C++] 0x8C40000D [Visual Basic] &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | [C++] 0x8C40000E [Visual Basic] &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

It is recommended to use the MSDASQL (ODBC) OLEDB provider with this method.

The CreateFromSQL method uses the T-SQL OpenRowset command to run the query against the database. Therefore, any ODBC data source may be specified with the following restriction:

If the SQLOLEDB provider is used, any object names used in the query must be fully qualified. For example, on SQL Server 7.0 databases, use "SELECT * FROM database.dbo.tablename" instead of "SELECT * FROM tablename".

For a list of possible values for the lflags parameter, see the GetListFlags method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vListID is a Variant
vListID = oListManager.CreateFromSql("LegalTequillaBuyers", _
 "Tequilla buyers at least 21", 20, 0, "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "Integrated Security='SSPI'", "SELECT * FROM dbname.dbo.Tequilla " & _
 "WHERE Age >= 21", 10, False)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object

[C++] IListManager::GetListFlags

[Visual Basic] ListManager.GetListFlags


IListManager::Delete Method [C++]

ListManager.Delete Method [Visual Basic]

Use this method to delete a list.

Definition

[C++]
HRESULT IListManager::Delete(
 VARIANT listID
);
[Visual Basic]
Sub Delete(
 listID As Variant
)

Parameters

listID [C++]
[in] A VARIANT that specifies the ID or name of the list to be deleted.
listID [Visual Basic]
A Variant that specifies the ID or name of the list to be deleted.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

To be deleted, a list cannot be busy with any operation.

The list data is also deleted.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::ExportToFile Method [C++]

ListManager.ExportToFile Method [Visual Basic]

Use this method to export a Mailing list to a text file.

Definition

[C++]
HRESULT IListManager::ExportToFile(
 VARIANT listID,
 BSTR fileName,
 BOOL bUnicode,
 BOOL bOverwrite,
 BOOL bAsync,
 VARIANT* pvarOpID
);
[Visual Basic]
Sub ExportToFile(
 listID As Variant,
 fileName As String,
 bUnicode As Boolean,
 bOverwrite As Boolean,
 bAsync As Boolean,
 Optional pvarOpID As Variant
)

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list to be exported.
listID [Visual Basic]
A Variant that contains the ID or name of the list to be exported.
fileName [C++]
[in] A BSTR that contains the name of the file.
fileName [Visual Basic]
A String that contains the name of the file.
bUnicode [C++]
[in] A BOOL that specifies the character format of the export file. A value of True indicates that Unicode characters should be used. A value of False indicates that the current system codepage character set should be used.
bUnicode [Visual Basic]
A Boolean that specifies the character format of the export file. A value of True indicates that Unicode characters should be used. A value of False indicates that the current system codepage character set should be used.
bOverwrite [C++]
[in] A BOOL that specifies whether to overwrite the data in the export file, if it exists. A value of True indicates that the data should be overwritten. A value of False causes the method to fail if the file exists.
bOverwrite [Visual Basic]
A Boolean that specifies whether to overwrite the data in the export file, if it exists. A value of True indicates that the data should be overwritten. A value of False causes the method to fail if the file exists.
bAsync [C++]
[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_BAD_FILE_PATH | [C++] 0x8C40000A [Visual Basic] &H8C40000A | The specified file path is not valid.
E_LM_FILE_ACCESS_DENIED | [C++] 0x8C400009 [Visual Basic] &H8C400009 | The ListManager service does not have permission to open the specified file.Check the permissions for the ListManager service account against the permissions for the file.
E_LM_FILE_ALREADY_EXISTS | [C++] 0x8C400010 [Visual Basic] &H8C400010 | The specified file cannot be created because it already exists.
E_LM_FILESHARE_NOT_FOUND | [C++] 0x8C400016 [Visual Basic] &H8C400016 | The network share does not exist and a full path was not specified for the file.
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | [C++] 0x8C400011 [Visual Basic] &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

If the list is a Mailable list but not a Mailing list, a temporary Mailing list is created and then exported.

If an absolute file path and name are not specified, ListManager exports the file relative to a root folder named CommerceLists on the local computer running the ListManager resource. If the folder does not exist, an error is returned.

ListManager exports the file in the following format. The is Message Format field is an integer, all other fields are strings and enclosed in double quotation marks.

   <Mail-to address>,<User ID>,<Message Format>,<Locale>,
   <Source URL><cr><lf>

The parameter pvarOpID contains valid data only if the export operation is performed asynchronously.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.ExportToFile "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Tequila.csv", False, True, False

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::ExportToSql Method [C++]

ListManager.ExportToSql Method [Visual Basic]

Use this method to export a list to the specified table in a Microsoft SQL Server database. This operation can be performed synchronously or asynchronously.

Definition

[C++]
HRESULT IListManager::ExportToSql(
 VARIANT listID,
 BSTR connStr,
 BSTR resTable,
 BOOL bOverwrite,
 long lOptions,
 BOOL bAsync,
 VARIANT* pvarOpID
);
[Visual Basic]
Sub ExportToSql(
 listID As Variant,
 connStr As String,
 resTable As String,
 bOverwrite As Boolean,
 lOptions As Long,
 bAsync As Boolean,
 Optional pvarOpID As Variant
)

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list to be exported.
listID [Visual Basic]
A Variant that contains the ID or name of the list to be exported.
connStr [C++]
[in] A BSTR that contains the connection string for the SQL Server database.
connStr [Visual Basic]
A String that contains the connection string for the SQL Server database.
resTable [C++]
[in] A BSTR that contains the name of the table into which the list will be exported.
resTable [Visual Basic]
A String that contains the name of the table into which the list will be exported.
bOverwrite [C++]
[in] A BOOL that specifies whether to overwrite the data if the table already exists. A value of True indicates that the data should be overwritten. A value of False produces an error if the tables already exist.
bOverwrite [Visual Basic]
A Boolean that specifies whether to overwrite the data in the table if the table already exists. A value of True indicates that the data should be overwritten. A value of False produces an error if the tables pre-exists.
lOptions [C++]
[in] A long that specifies the export options for use by the Direct Mail resource. Other applications should generally pass the value zero (0). A value of one (1) causes special action to be taken. See the Remarks section below.
lOptions [Visual Basic]
A Long that specifies the export options, for use by the Direct Mail resource. Other applications should generally pass the value zero (0). A value of one (1) causes special action to be taken. See the Remarks section below.
bAsync [C++]
[in] A BOOL that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the creation operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_CONNECTIONFAILED | [C++] 0x8C400001 [Visual Basic] &H8C400001 | Failed to establish database connection.
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
E_LM_TABLE_ALREADY_EXISTS | [C++] 0x8C40000F [Visual Basic] &H8C40000F | The specified table cannot be created because it already exists.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

An existing table is expected to have the same format as the exported list. If the table does not exist, it will be created.

The ExportToSQL method works by opening a connection on the destination SQL Server database and executing the T-SQL OpenRowset command to select data from the List Manager database. Because of this, some special caveats apply:

  • The destination database must have the Bulk Copy/Select Into option selected.
  • If the List Manager was initialized with a connection string containing a DSN then the SQL server computer hosting the destination database must also have the DSN configured.
  • Unlike the CreateFromSQL command, ODBC data sources other than SQL Server 7.0 or greater are not supported.

The parameter pvarOpID contains valid data only if the export operation is performed asynchronously.

The lOptions parameter specifies whether the exported list is intended for use with Direct Mailer, controlling how it is processed during the export. The following table shows the legal values of the IOptions parameter.

lOptions value | Description
0 | Do not do any special processing for Direct Mailer.
1 | Export the list for use with Direct Mailer. The list must be a Mailable list or an error is returned. If the list is not a mailing list, it is converted to one.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.ExportToSql "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "Provider=sqloledb;Data Source=TequillaServer;" & _
 "Initial Catalog=Margaritas;Integrated Security='SSPI'", _
 "Tequila", False, 0, False

See Also

[C++] ListManager Object

[C++] IListManager::ExtractMailingList

[Visual Basic] ListManager Object

[Visual Basic] ListManager.ExtractMailingList


IListManager::ExtractMailingList Method [C++]

ListManager.ExtractMailingList Method [Visual Basic]

Use this method to create a new mailing list from a generic list.

Definition

[C++]
HRESULT IListManager::ExtractMailingList(
  VARIANT srcList,
  BSTR reslistName,
  BSTR reslistDesc,
  long userFlags,
  BOOL bAsync,
  VARIANT* pvarOpID,
  VARIANT* pvarID
);
[Visual Basic]
Function ExtractMailingList(
  srcList As Variant,
  reslistName As String,
  reslistDesc As String,
  userFlags As Long,
  bAsync As Boolean,
  Optional pvarOpID As Variant
) As Variant

Parameters

srcList [C++]
[in] A VARIANT that contains the ID or name of the generic source list.
srcList [Visual Basic]
A Variant that contains the ID or name of the generic source list.
reslistName [C++]
[in] A BSTR that contains the new mailing list name.
reslistName [Visual Basic]
A String that contains the new mailing list name.
reslistDesc [C++]
[in] A BSTR that contains the description of the new mailing list.
reslistDesc [Visual Basic]
A String that contains the description of the new mailing list.
userFlags [C++]
[in] A long that contains application specific user flags. Not used by the ListManager object.
userFlags [Visual Basic]
A Long that contains application specific user flags. Not used by the ListManager object.
bAsync [C++]
[in] A BOOL that specifies whether the export operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the export operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID.
pvarID [C++]
[out, retval] A pointer to a VARIANT used to return the ID of the new list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant that contains the ID of the new list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_ALREADY_EXISTS | [C++] 0x8C400007 [Visual Basic] &H8C400007 | The specified list has already been created.
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | [C++] 0x8C40000D [Visual Basic] &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MAILABLE_REQUIRED | [C++] 0x8C400011 [Visual Basic] &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | [C++] 0x8C40000E [Visual Basic] &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The source list must be a Mailable list (contains an rcp_email column). Any duplicate e-mail addresses are removed in the result list.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vListID & pvarOpId are Variants
vListID = oListManager.ExtractMailingList("{454799A2-312B-4F5F-90A0-" & _
 "F514FBA0EC5A}", "TequilaBuyers1", "Tequilla buyers in January", 0, _
 True, pvarOpID)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetListFlags Method [C++]

ListManager.GetListFlags Method [Visual Basic]

Use this method to retrieve the flags attribute for a list.

Definition

[C++]
HRESULT IListManager::GetListFlags(
 VARIANT listID,
 long* plFlags
);
[Visual Basic]
Function GetListFlags(
 listID As Variant
) As Long

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains the ID of the ID or name of the list.
plFlags [C++]
[out, retval] A pointer to a long used to return the flags attribute.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the flags attribute.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table lists the possible flag parameter values used to determine the type of list created. Values may be OR'ed together to specify more than one flag.

Type | Value | Description
DEFAULT | 0x0 | A Mailing list
HIDDEN | 0x1 | The list should not be exposed in the user interface
DYNAMIC | 0x2 | A dynamic list
USER | 0x4 | A User list (contains an rcp_guid column)
GENERIC | 0x8 | A Generic list
MAILABLE | 0x10 | A Mailable list (contains an rcp_email column)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetListId Method [C++]

ListManager.GetListId Method [Visual Basic]

Use this method to retrieve the ID of a list given the list name.

Definition

[C++]
HRESULT IListManager::GetListId(
  BSTR listName,
  VARIANT* pvarID
);
[Visual Basic]
Function GetListId(
  listName As String
) As Variant

Parameters

listName [C++]
[in] A BSTR that contains the list name.
listName [Visual Basic]
A String that contains the list name.
pvarID [C++]
[out, retval] A pointer to a VARIANT used to return the ID (a GUID) of the list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the ID (a GUID) of the list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetListName Method [C++]

ListManager.GetListName Method [Visual Basic]

Use this method to retrieve the name of a list given the list ID.

Definition

[C++]
HRESULT IListManager::GetListName(
  VARIANT listID,
  BSTR* plistName
);
[Visual Basic]
Function GetListName(
  listID As Variant
) As String

Parameters

listID [C++]
[in] A VARIANT that contains the list ID.
listID [Visual Basic]
A Variant that contains the list ID.
plistName [C++]
[out, retval] A pointer to a BSTR used to return the name of the list.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a String that contains the name of the list.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetListProperty Method [C++]

ListManager.GetListProperty Method [Visual Basic]

Use this method to retrieve a property of a list.

Definition

[C++]
HRESULT IListManager::GetListProperty(
  VARIANT listID,
  BSTR listPropertyName,
  VARIANT* pvarListProp
);
[Visual Basic]
Function GetListProperty(
  listID As Variant,
  listPropertyName As String
) As Variant

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains the ID or name of the list.
listPropertyName [C++]
[in] A BSTR that contains the property name (column of the lm_master table).
listPropertyName [Visual Basic]
A String that contains the property name (column of the lm_master table).
pvarListProp [C++]
[out, retval] A pointer to a VARIANT used to return the value of the property.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Variant containing the value of the property.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] For information about the available list properties, see IListManager::GetLists.

[Visual Basic] For information about the available list properties, see ListManager.GetLists.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

' vSource is a Variant
vSource = _
 oListManager.GetListProperty("{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_source")

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetLists Method [C++]

ListManager.GetLists Method [Visual Basic]

Use this method to enumerate all lists known to the ListManager object.

Definition

[C++]
HRESULT IListManager::GetLists(
 IDispatch** ppRecSet
);
[Visual Basic]
Function GetLists() As Object

Parameters

ppRecSet [C++]
[out, retval] The address of a pointer to the IDispatch interface of an ADO Recordset object used to return the details of the lists known to this instance of the ListManager object.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object that contains the details of the lists known to this instance of the ListManager object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method returns an instance of a read-only ADO Recordset object that contains a record for each list in the ListManager object database. The Recordset object does not contain any lists that are not completely created at the time this method is invoked.

If there are not any lists completely created at the time this method is invoked, the method returns successfully, but the Recordset object is empty.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
list_id | uniqueidentifier | Identification number of the list.
list_name | NVARCHAR [64] | Name of the list.
list_created | datetime | Date/time the list record was created.
list_creation_type | smallint | Method used to create the list. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - CreateFromDWCalc 4 - CreateFromSegment 5 - Other (subtraction, union, extraction, etc.)
list_description | NVARCHAR [256] | List description.
list_err_limit | long | The error threshold for the list.
list_flags | int | Bit flags for the list. Can bitwise OR together to specify more than one flag. Legal values are: 0x0 - DEFAULT 0x1 - HIDDEN 0x2 - DYNAMIC 0x4 - USER 0x8 - GENERIC 0x10 - MAILABLE
list_location | NVARCHAR [256] | Location (table name) where the list data is stored.
list_query | NVARCHAR [1024] | Query used to create the list.
list_recent_operid | NVARCHAR [128] | ID of the most recent list operation. May be Null if the list is a new list created by the CreateEmpty method.
list_size | int | Number of rows in the list (-1 for dynamic lists).
list_source | NVARCHAR [512] | Name of the file, connection string, or filename used to create the list.
list_status | int | Status of the list. Legal values are: 1 - ready for processing 2 - being processed; other operations are not permitted 3 - failed
list_unique_emails | int | Number of unique rcp_email values in the list (-1 for dynamic lists).
list_unique_guids | int | Number of unique rcp_guid values in the list (-1 for dynamic lists).
list_userflags | int | Application specific. Not used by the ListManager object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetListUserFlags Method [C++]

ListManager.GetListUserFlags Method [Visual Basic]

Use this method to retrieve the UserFlags attribute for a list.

Definition

[C++]
HRESULT IListManager::GetListUserFlags(
 VARIANT listID,
 long* plUserFlags
);
[Visual Basic]
Function GetListUserFlags(
 listID As Variant
) As long

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains the ID of the ID or name of the list.
plUserFlags [C++]
[out, retval] A pointer to a long used to return the UserFlags attribute.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Long that contains the UserFlags attribute.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The UserFlags attributes are for use by applications external to the List Manager. The List Manager merely stores the flags that were passed in at the time a list was created and does not interpret the UserFlags attributes value in any way.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetOperationInfo Method [C++]

ListManager.GetOperationInfo Method [Visual Basic]

Use this method to retrieve a Recordset object containing columns describing the specified list operation.

Definition

[C++]
HRESULT IListManager::GetOperationInfo(
  VARIANT varOpID,
  IDispatch** ppRecSet
);
[Visual Basic]
Function GetOperationInfo(
  varOpID As Variant
) As Object

Parameters

varOpID [C++]
[in] A VARIANT that contains the Operation ID.
varOpID [Visual Basic]
A Variant that contains the Operation ID.
ppRecSet [C++]
[out, retval] The address of a pointer to an IDispatch interface of a Recordset object used to return the operation information.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns a Recordset object containing the operation information.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

[C++] For more information about the returned Recordset object, see IListManager::GetOperations.

[Visual Basic] For more information about the returned Recordset object, see ListManager.GetOperations.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::GetOperations Method [C++]

ListManager.GetOperations Method [Visual Basic]

Use this method to enumerate all operations known to the ListManager object.

Definition

[C++]
HRESULT IListManager::GetOperations(
 IDispatch** ppRecSet
);
[Visual Basic]
Function GetOperations() As Object

Parameters

ppRecSet [C++]
[out, retval] The address of a pointer used to return the IDispatch interface of an ADO Recordset object used to return information about the operations known to this instance of the ListManager object.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] If this method completes successfully, it returns an ADO Recordset object that contains information about the operations known to this instance of the ListManager object.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method returns an instance of a read-only ADO Recordset object that contains a record for each operation in the ListManager object database. There is a record for every operation that has ever been run on lists currently in the database. When a list is deleted, all operations associated with that list are also deleted.

The following table describes the fields returned in the Recordset object.

Field | Type | Description
op_id | NVARCHAR[128] | A "token" that identifies the operation and can be passed to the CancelOperation method to terminate the operation.
op_desc | NVCHAR[256] | A user-friendly operation description.
op_error_code | int | HRESULT of last failure associated with the list.
op_error_desc | NVARCHAR[1024] | Description of the last failure associated with the list.
op_list_destination | Nvarchar(256) | List destination (Export type operations only).
op_list_id | uniqueidentifier | The list ID on which this operation is taking place.
op_list_id_a | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_id_b | uniqueidentifier | Additional column if the operation has multiple lists involved.
op_list_param1 | int | Additional column which stores any extra parameters involved in the operation.
op_list_param2 | int | Additional column which stores any extra parameters involved in the operation.
op_list_table | nvarchar(256) | Tablename (ExportToSql type operations only).
op_progress | int | Unused.
op_status | smallint | Status of the operation. Legal values are: 0 - complete 1 - executing -1 - failed
op_time_end | datetime | Date/time the operation completed or was aborted.
op_time_start | datetime | Date/time the operation started.
op_type | int | The type of operation. Legal values are: 1 - CreateFromFile 2 - CreateFromSQL 3 - ExportToFile 4 - ExportToSQL 5 - Copy 6 - Subtract 7 - Union 8 - CreateFromDWCalc. 9 - CreateFromSegment 10 - ExtractMailingList 11 - Other (unclassified or temporary)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[C++] IListManager::CancelOperation

[Visual Basic] ListManager Object

[Visual Basic] ListManager.CancelOperation


IListManager::Initialize Method [C++]

ListManager.Initialize Method [Visual Basic]

Use this method to initialize the ListManager object.

Definition

[C++]
HRESULT IListManager::Initialize(
 BSTR bstrConnStr,
);
[Visual Basic]
Sub Initialize(
 bstrConnStr As String,
)

Parameters

bstrConnStr [C++]
[in] A BSTR that contains the connection string for the database to which the List Manager will connect.
bstrConnStr [Visual Basic]
A String that contains the connection string for the database to which the List Manager will connect.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_ALREADYINITIALIZED | [C++] 0x8C400002 [Visual Basic] &H8C400002 | The ListManager object has already been initialized and may not be re-initialized.
E_LM_CONNECTIONFAILED | [C++] 0x8C400001 [Visual Basic] &H8C400001 | Failed to establish database connection.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

Initialize the ListManager object before calling any other ListManager object method or property.

Initializing connects the ListManager object to a database. If the database does not contain the tables and procedures required by the ListManager object, they are created.

A ListManager object can be connected to only one database. To connect to a different database, instantiate a new ListManager object.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.Initialize "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "Integrated Security='SSPI'"

See Also

[C++] ListManager Object

[C++] IListManager::ExportToSQL

[Visual Basic] ListManager Object

[Visual Basic] ListManager.ExportToSQL


IListManager::RemoveUserFromMailingList Method [C++]

ListManager.RemoveUserFromMailingList Method [Visual Basic]

Use this method to remove a user from a mailing list

Definition

[C++]
HRESULT IListManager::RemoveUserFromMailingList(
  VARIANT listID,
  BSTR UserEmail
);
[Visual Basic]
Sub RemoveUserFromMailingList(
  listID As Variant,
  UserEmail As String
)

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains the ID or name of the list.
UserEmail [C++]
[in] A BSTR that contains the e-mail address of the user.
UserEmail [Visual Basic]
A String that contains the e-mail address of the user.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_LIST_NO_EMAILS | [C++] 0x8C40000D [Visual Basic] &H8C40000D | The list is designated as a Mailable list but does not contain an rcp_email column.
E_LM_MUST_BE_STATIC | [C++] 0x8C400019 [Visual Basic] &H8C400019 | The operation requires a static list and the specified list is dynamic.
E_LM_NOT_MAILING_LIST | [C++] 0x8C400018 [Visual Basic] &H8C400018 | The operation requires a Mailing list and the specified list is not a mailing list.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
E_LM_USER_LIST_NO_GUIDS | [C++] 0x8C40000E [Visual Basic] &H8C40000E | The list is designated as a User list but does not contain an rcp_guid column.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.RemoveUserFromMailingList _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", "JaneUser@somewhere.com"

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::Rename Method [C++]

ListManager.Rename Method [Visual Basic]

Use this method to rename a list.

Definition

[C++]
HRESULT IListManager::Rename(
 VARIANT listID,
 BSTR newListName
);
[Visual Basic]
Sub Rename(
 listID As Variant,
 newListName As String
)

Parameters

listID [C++]
[in] A VARIANT that specifies the ID or name of the list to be renamed.
listID [Visual Basic]
A Variant that specifies the ID or name of the list to be renamed.
newListName [C++]
[in] A BSTR that contains the new name for the list.
newListName [Visual Basic]
A String that contains the new name for the list.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_ALREADY_EXISTS | [C++] 0x8C400007 [Visual Basic] &H8C400007 | The specified list has already been created
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The new name must not be the same as any existing list name.

[Visual Basic]

Example

oListManager.Rename "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", "Tequila"

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::SetDesc Method [C++]

ListManager.SetDesc Method [Visual Basic]

Use this method to provide a new description for a list.

Definition

[C++]
HRESULT IListManager::SetDesc(
 VARIANT listID,
 BSTR newListDesc
);
[Visual Basic]
Sub SetDesc(
 listID As Variant,
 newListDesc As String
)

Parameters

listID [C++]
[in] A VARIANT that specifies the ID or name of the list.
listID [Visual Basic]
A Variant that specifies the ID or name of the list.
newListDesc [C++]
[in] A BSTR that contains the description to be associated with the list.
newListDesc [Visual Basic]
A String that contains the description to be associated with the list.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

Example

oListManager.SetDesc(listID, newListDesc)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::SetListProperty Method [C++]

ListManager.SetListProperty Method [Visual Basic]

Use this method to set a property of a list.

Definition

[C++]
HRESULT IListManager::SetListProperty(
  VARIANT listID,
  BSTR listPropertyName,
  VARIANT ListProp
);
[Visual Basic]
Sub SetListProperty(
  listID As Variant,
  listPropertyName As String,
  ListProp As Variant
)

Parameters

listID [C++]
[in] A VARIANT that contains the ID or name of the list.
listID [Visual Basic]
A Variant that contains the ID or name of the list.
listPropertyName [C++]
[in] A BSTR that contains the property name (column of the lm_master table).
listPropertyName [Visual Basic]
A String that contains the property name (column of the lm_master table).
ListProp [C++]
[in] A VARIANT that contains the value to set the property.
ListProp [Visual Basic]
A Variant that contains the value to set the property.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_MUST_BE_DYNAMIC | [C++] 0x8C400012 [Visual Basic] &H8C400012 | The operation requires a dynamic list and the specified list is not a dynamic list.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_LISTPROP_NOT_UPDATEABLE | [C++] 0x8C400013 [Visual Basic] &H8C400013 | The specified list property cannot be changed after the list has been created.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method is usually used to change properties of a dynamic list, such as the table name, connection string, or SQL query from which a dynamic list is created.

The following properties may be set by this method:

  • list_name
  • list_description
  • list_userflags
  • list_err_limit (dynamic lists only)
  • list_query (dynamic lists only)
  • list_source (dynamic lists only)

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.SetListProperty "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "list_userflags", 12)

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::Subtract Method [C++]

ListManager.Subtract Method [Visual Basic]

Use this method to subtract one mailing list from another mailing list, placing the result in a third list.

Definition

[C++]
HRESULT IListManager::Subtract(
 VARIANT srcList,
 VARIANT lessList,
 VARIANT resList,
 long errLimit,
 BOOL bAsync,
 VARIANT* pvarOpID
);
[Visual Basic]
Sub Subtract(
 srcList As Variant,
 lessList As Variant,
 resList As Variant,
 errLimit As Long,
 bAsync As Boolean,
 Optional pvarOpID As Variant
)

Parameters

srcList [C++]
[in] A VARIANT that contains the ID or name of the list from which elements will be subtracted.
srcList [Visual Basic]
A Variant that contains the ID or name of the list from which elements will be subtracted.
lessList [C++]
[in] A VARIANT that contains the ID or name of the less list.
lessList [Visual Basic]
A Variant that contains the ID or name of the less list.
resList [C++]
[in] A VARIANT that contains the ID or name of the list into which the results of the subtraction operation will be placed.
resList [Visual Basic]
A Variant that contains the ID or name of the list into which the results of the subtraction operation will be placed.
errLimit [C++]
[in] A long that is not used.
errLimit [Visual Basic]
A Long that is not used.
bAsync [C++]
[in] A BOOL that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | [C++] 0x8C400011 [Visual Basic] &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The result list must exist prior to calling the method, however, any data in the list will be overwritten.

This method keys on the rcp_email column and thus, both the source (srcList parameter) and less (lessList parameter) lists must be Mailable lists (LISTFLAG_MAILABLE set to True). Records from the source list that do not have duplicate e-mail addresses (rcp_email) in the less list are copied to the result (resList parameter) list. Any existing data in the result list is deleted.

The parameter pvarOpID contains valid data only if the subtraction operation is performed asynchronously.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.Subtract "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, False

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::Union Method [C++]

ListManager.Union Method [Visual Basic]

Use this method to produce a union of two mailing lists, placing the result in a third mailing list. A union is a combination of the two lists with any duplicates eliminated.

Definition

[C++]
HRESULT IListManager::Union(
 VARIANT srcList,
 VARIANT addList,
 VARIANT resList,
 long errLimit,
 BOOL bAsync,
 VARIANT* pvarOpID
);
[Visual Basic]
Sub Union(
 srcList As Variant,
 addList As Variant,
 resList As Variant,
 errLimit As long,
 bAsync As Boolean,
 Optional pvarOpID As Variant
)

Parameters

srcList [C++]
[in] A VARIANT that contains the ID or name of the source list.
srcList [Visual Basic]
A Variant that contains the ID or name of the source list.
addList [C++]
[in] A VARIANT that contains the ID or name of the add list.
addList [Visual Basic]
A Variant that contains the ID or name of the add list.
resList [C++]
[in] A VARIANT that contains the ID or name of the list into which the results of the union operation will be placed.
resList [Visual Basic]
A Variant that contains the ID or name of the list into which the results of the union operation will be placed.
errLimit [C++]
[in] A long that is not used.
errLimit [Visual Basic]
A Long that is not used.
bAsync [C++]
[in] A BOOL that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
bAsync [Visual Basic]
A Boolean that specifies whether the copy operation is performed synchronously or asynchronously. A value of True indicates asynchronous processing. A value of False indicates synchronous processing.
pvarOpID [C++]
[out, optional] A pointer to a VARIANT used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
pvarOpID [Visual Basic]
An optional Variant used to return an Operation ID. This Operation ID is used in subsequent processing concerning this operation.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_LIST_BUSY | [C++] 0x8C400008 [Visual Basic] &H8C400008 | The specified list is currently busy with another operation.
E_LM_LIST_IN_FAILED_STATE | [C++] 0x8C40001D [Visual Basic] &H8C40001D | The specified list is in a FAILED state and may not be used for the operation.
E_LM_LIST_NOT_FOUND | [C++] 0x8C400006 [Visual Basic] &H8C400006 | The specified list does not exist.
E_LM_MAILABLE_REQUIRED | [C++] 0x8C400011 [Visual Basic] &H8C400011 | The operation requires a mailable list and the specified list is not a mailable list.
E_LM_OPER_CANCELED | [C++] 0x8C40000B [Visual Basic] &H8C40000B | The operation was canceled.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The result list must exist prior to calling the method, however, any data in the list will be overwritten.

This method keys on the rcp_email column and thus, both the source (srcList parameter) and add (addList parameter) lists must be Mailable lists (LISTFLAG_MAILABLE set to True). All the records from the source list are copied to the result (resList parameter) list. All records from the add list that do not have duplicate e-mail addresses (rcp_email) in the source list are also copied to the result list. Any existing data in the result list is deleted.

The parameter pvarOpID contains valid data only if the union operation is performed asynchronously.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.Union "{2B544800-4169-4C49-8713-1B794078B4C9}", _
 "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", _
 "{7131B794-5448-078B-B544-799A2311B79A}", 10, False

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::WaitOnOperation Method [C++]

ListManager.WaitOnOperation Method [Visual Basic]

Use this method to wait until an operation is complete or a specified time period has elapsed.

Definition

[C++]
HRESULT IListManager::WaitOnOperation(
 VARIANT varOpID,
 unsigned long timeout
);
[Visual Basic]
Sub WaitOnOperation(
 varOpID As Variant,
 Optional timeout As Long
)

Parameters

varOpID [C++]
[in] A VARIANT that specifies the ID of the operation upon which to wait. For more information about where to obtain Operation IDs, see the Remarks section.
varOpID [Visual Basic]
A Variant that specifies the ID of the operation upon which to wait. For more information about where to obtain Operation IDs, see the Remarks section.
timeout [C++]
[in, optional] An unsigned long hat specifies a timeout. This method returns when either the specified operation completes, or when the number of seconds specified by the timeout parameter have elapsed, whichever happens first. A value of zero (the default) specifies an infinite time to wait for the operation to complete.
timeout [Visual Basic]
An optional Long that specifies a timeout. This method returns when either the specified operation completes, or when the number of seconds specified by timeout have elapsed, whichever happens first. A value of zero (the default) specifies an infinite time to wait for the operation to complete.
[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and either standard or custom COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to either standard or custom COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors.

The following table shows the custom COM errors that this method can return.

Constant | Value | Description
E_LM_OPERATION_NOT_FOUND | [C++] 0x8C400004 [Visual Basic] &H8C400004 | The operation ID does not represent a currently running operation.
E_LM_SQLERROR | [C++] 0x8C400003 [Visual Basic] &H8C400003 | Error while executing SQL/ADO operation.
OLE_E_BLANK | [C++] 0x80040007 [Visual Basic] &H80040007 | The ListManager object has not been properly initialized.

[C++] Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This method cannot be called from a scripting language such as VBScript or JScript on an ASP page. ASP pages must use alternative techniques when dealing with asynchronous operations and should never wait on them explicitly.

The Operation ID passed to this method in the varOpID parameter can be obtained from any of the following calls when they are executed asynchronously:

[C++]
  • Copy
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union
[Visual Basic]
  • Copy
  • CreateFromFile
  • CreateFromSql
  • ExportToFile
  • ExportToSql
  • Subtract
  • Union

[C++] In addition, the Operation IDs of all known operations can be retrieved using the GetOperations method.

[Visual Basic] In addition, the Operation IDs of all known operations can be retrieved using the GetOperations method.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

[Visual Basic]

Example

oListManager.WaitOnOperation "{454799A2-312B-4F5F-90A0-F514FBA0EC5A}", 900

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager Properties [C++]

ListManager Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
ConnectionString | BSTR | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | long | Stores the current status of the ListManager object. This property is read-only.
[Visual Basic]
Property | Type | Description
ConnectionString | String | Stores the connection string to the database used by the ListManager object to store lists. This value is set when passing the ConnectionString parameter to the Initialize method. This property is read-only.
Status | Long | Stores the current status of the ListManager object. This property is read-only.


IListManager::get_ConnectionString Property [C++]

ListManager.ConnectionString Property [Visual Basic]

The ConnectionString property is a read-only string that contains the database connection string the List Manager uses to store lists. This property is set by the Initialize method.

Definition

[C++]
Get method:
HRESULT IListManager::get_ConnectionString(
 BSTR* ConnectionString
);
[Visual Basic]
Property ConnectionString() As String

Parameters

[Visual Basic] None.

[C++]
ConnectionString [C++]
[out, retval] A pointer to a BSTR used to return the connection string.

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


IListManager::get_Status Property [C++]

ListManager.Status Property [Visual Basic]

The Status property is a read-only Long that contains the ListManager object status.

Definition

[C++]
Get method:
HRESULT IListManager::get_Status(
 long* Status
);
[Visual Basic]
Property Status() As Long

Parameters

Status [C++]
[out, retval] A pointer to a long is used to return the ListManager object status.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The following table shows the valid status codes and their descriptions.

Status | Value | Description
LMSTATUS_NEW | 0 | The ListManager object has been created but is not yet initialized.
LMSTATUS_READY | 1 | The ListManager object has been created and successfully initialized.
LMSTATUS_ERROR | -1 | The ListManager object failed to initialize.

For more information about memory ownership issues related to COM property and method parameters, see Managing COM Parameter Memory.

See Also

[C++] ListManager Object

[Visual Basic] ListManager Object


RowCollection Object [C++]

RowCollection Object [Visual Basic]

Use this object to access data contained in a ContentList object and its corresponding ContentListFactory object. Some RowCollection objects allow access to all of the rows in these objects. Other RowCollection objects allow access to a calculated subset of the rows in these objects.

ProgID: | Dependent (See the Remarks section for more information)
COM Class Name: | RowCollection
Type Library Name: | Microsoft Commerce 2002 Cache Manager Type Library
DLL Name: | mscscache.dll
Threading Model: | Both
[C++]
COM Interface Name: | IRowCollection
Interface ID Constant: | IID_IRowCollection
Header File: | cacheint.h, mspu_guids.h

[C++] In C++, use the IRowCollection interface to access to the methods and properties of a RowCollection object.

Methods

[C++]
Method | Description
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.
[Visual Basic]
Method | Description
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.

Properties

[C++]
Property | Type | Description
_NewEnum | IUnknown | Allows iteration through the rows in the RowCollection object using the Microsoft Visual Basic "for each Row in Collection" syntax. This property is read-only.
Count | long | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | VARIANT_BOOL | Tracks whether the current row is beyond the actual number of rows in the RowCollection object. This property is read-only.
Fields | Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | long | Stores the position of the current row, starting from zero (0). This property is read-only.
[Visual Basic]
Property | Type | Description
_NewEnum | IUnknown | Allows iteration through the rows in the RowCollection object using the Microsoft Visual Basic "for each Row in Collection" syntax. This property is read-only.
Count | long | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | VARIANT_BOOL | Tracks whether the current row is beyond the actual number of rows in the RowCollection object. This property is read-only.
Fields | Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | long | Stores the position of the current row, starting from zero (0). This property is read-only.

Remarks

[C++]

The RowCollection object is a dependent object. Obtain a pointer to the IRowCollection interface by calling one of the following methods:

  • IContentList::get_ActiveRows
  • IContentList::get_AllRows
  • IContentList::Search
  • IContentListFactory::get_AllRows
  • IContentListFactory::Search
[Visual Basic]

The RowCollection object is a dependent object. Obtain a reference to it using the following properties and methods:

  • ContentList.ActiveRows
  • ContentList.AllRows
  • ContentList.Search
  • ContentListFactory.AllRows
  • ContentListFactory.Search


IRowCollection Methods [C++]

RowCollection Methods [Visual Basic]

Methods

[C++]
Method | Description
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.
[Visual Basic]
Method | Description
MoveFirst | Sets the first row in the RowCollection object to be the current row.
MoveNext | Sets the row after the current row in the RowCollection object to be the new current row.


IRowCollection::MoveFirst Method [C++]

RowCollection.MoveFirst Method [Visual Basic]

Use this method to set the current row to be the first row in a RowCollection object.

Definition

[C++]
HRESULT IRowCollection::MoveFirst(
);
[Visual Basic]
Sub MoveFirst()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveFirst

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection::MoveNext Method [C++]

RowCollection.MoveNext Method [Visual Basic]

Use this method to set the current row to be the row that is one row beyond the current row. In other words, the next row in the collection.

Definition

[C++]
HRESULT IRowCollection::MoveNext(
);
[Visual Basic]
Sub MoveNext()

Parameters

[C++] None.

[Visual Basic] None.

Return Values

[C++] This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

[Visual Basic] None.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This method sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

[Visual Basic]

Example

'myRowCollection is a RowCollection object.
myRowCollection.MoveNext

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection Properties [C++]

RowCollection Properties [Visual Basic]

Properties

[C++]
Property | Type | Description
_NewEnum | IUnknown | Allows iteration through the rows in the RowCollection object using the Microsoft Visual Basic "for each Row in Collection" syntax. This property is read-only.
Count | long | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | VARIANT_BOOL | Tracks whether the current row is beyond the actual number of rows in the RowCollection object. This property is read-only.
Fields | Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | long | Stores the position of the current row, starting from zero (0). This property is read-only.
[Visual Basic]
Property | Type | Description
_NewEnum | IUnknown | Allows iteration through the rows in the RowCollection object using the Microsoft Visual Basic "for each Row in Collection" syntax. This property is read-only.
Count | long | Stores the number of rows in the RowCollection object. This property is read-only.
EOF | VARIANT_BOOL | Tracks whether the current row is beyond the actual number of rows in the RowCollection object. This property is read-only.
Fields | Fields | Contains the Fields collection object for the current row. This property is read-only.
RowNum | long | Stores the position of the current row, starting from zero (0). This property is read-only.


IRowCollection::get__NewEnum Property [C++]

RowCollection._NewEnum Property [Visual Basic]

The read-only _NewEnum property provides a mechanism for enumerating through the rows in a RowCollection object using the Microsoft Visual Basic "for each Row in Collection" syntax. Each row in the collection is a Fields collection object that can be used to access the individual fields in the row.

Definition

[C++]
Get method:
HRESULT IRowCollection::get__NewEnum(
 IUnknown** _NewEnum
);
[Visual Basic]
Property _NewEnum() As IUnknown

Parameters

_NewEnum [C++]
[out,retval] When getting the property, an IUnknown interface pointer used to return a pointer to an IEnumVARIANT interface, which manages the iteration of the rows in the collection.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

This property exists so that the "for each Row in Collection" syntax in Microsoft Visual Basic can be used to iterate through the rows in a RowCollection object. This property is not accessed directly.

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection::get_Count Property [C++]

RowCollection.Count Property [Visual Basic]

The Count property is a read-only Long that contains the number of rows in the collection.

Definition

[C++]
Get method:
HRESULT IRowCollection::get_Count(
 long* Count
);
[Visual Basic]
Property Count As Long

Parameters

Count [C++]
[out,retval] A long that contains the number of rows in the RowCollection object.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection::get_EOF Property [C++]

RowCollection.EOF Property [Visual Basic]

The EOF property is a read-only Boolean that returns True when the end of the collection has been reached.

Definition

[C++]
Get method:
HRESULT IRowCollection::get_EOF(
 VARIANT_BOOL* EOF
);
[Visual Basic]
Property EOF() As Boolean

Parameters

EOF [C++]
[out,retval] A pointer to a VARIANT_BOOL used to return an indication of whether row iteration is complete.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection::get_Fields Property [C++]

RowCollection.Fields Property [Visual Basic]

The Fields property is a read-only Fields collection object that contains the Field objects for the current row.

Definition

[C++]
Get method:
HRESULT IRowCollection::get_Fields(
 Fields** Fields
);
[Visual Basic]
Property Fields() As Fields

Parameters

Fields [C++]
[out,retval]A pointer to an ActiveX Data Objects (ADO) Fields object used to return the fields of the current row.

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The Fields object associated with this property corresponds to the current row in the RowCollection object. When the EOF property is True, indicating that the current row is set beyond the actual rows in the collection, accessing this property will result in an error.

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


IRowCollection::get_RowNum Property [C++]

RowCollection.RowNum Property [Visual Basic]

The RowNum property is a read-only number that contains the position of the current row within the RowCollection object. Row positions begin at zero (0), not one (1).

Definition

[C++]
Get method:
HRESULT IRowCollection::get_RowNum(
 long* RowNum
);
[Visual Basic]
Property RowNum() As Long

Parameters

RowNum [C++]
[out,retval] A long used to return the position of the current row in the RowCollection object. Row positions begin at zero (0), not one (1).

[Visual Basic] None.

[C++]

Return Values

This method returns an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

[C++] This method returns S_OK (0x00000000) to indicate success and standard COM HRESULT error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object, which can be accessed using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface may return a text description of the error.

[Visual Basic] This property sets the Number property of the global Err object to S_OK (&H00000000) to indicate success and to standard COM error values to indicate failure. For more information about standard COM errors, see Standard COM Errors. Additional information may be available using the global Err object. In particular, the Description property may contain a text description of the error.

Remarks

The value of this property corresponds to the current row in the RowCollection object. When the EOF property is True, indicating that the current row is set beyond the actual rows in the collection, accessing this property will result in an error.

See Also

[C++] RowCollection Object

[Visual Basic] RowCollection Object


Example Code Targeting Objects

This section provides detailed examples of how to use the targeting object.

Examples

Example | Description
Code to Support the ContentSelector Object | Contains code to include in the Global.asa file to support the ContentSelection object.
Code to Execute the ContentSelector Object | Contains code to include in the Default.asp file that you use to create the ContentSelection object, code that you use with the GetContent method, and code you use to write ads to the Web page.
Code to Connect to the Expression Store | Describes how to connect to, and disconnect from, the Expression Store.
Code to Create an Evaluation Context | Describes how to create an evaluation context that contains the data for evaluating an expression against.
Code to Evaluate an Expression Stored as an XML Fragment | Describes how to evaluate an expression stored as an XML fragment.
Code to Create a New Expression | Describes how to create a new expression.
Code to Manipulate Expressions | Describes how to retrieve or delete expressions from the Expression Store, rename an expression, or translate between expression IDs and expression names.
Code to Evaluate a Single Expression | Describes how to evaluate a single expression.
Code to Evaluate Groups of Expressions | Describes how to create a stored evaluation context and evaluate groups of expressions against this common context.
Code to Import and Export Expressions | Describes how to import and export expressions.
Code to Initialize the ListManager Object | Describes how to create and initialize the ListManager object.
Code to Create a List | Describes how to create a list from a file.
Code to Manipulate Lists | Describes the operations performed on lists such has copy, subtract, union, and export, and the procedure to add and subtract a user from a list.
Code to Enumerate Available Lists | Describes how to retrieve and enumerate the available lists and set list properties, such as the list name and description.


Code to Support the ContentSelector Object

The following code shows how to initialize the Content Selection Framework (CSF), set up the CacheManager object and the Expression Evaluator, create an advertising pipeline, and configure the context for CSF ads.

The Global.asa file should include the following code:

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=Server>

option explicit

' Initialize the Content Selection Framework.
Sub Application_OnStart

    ' Modify sConnStr to point to a valid Campaigns database.
    ' The Campaigns database can be created either by unpacking a site,
    ' such as blank.pup, or by running the campaign database creation
    ' scripts in the C:/Program Files/Microsoft Commerce Server/Site
    ' Create directory.
    const sConnStr = "provider=SQLOLEDB;Data Source=(local);Initial
    Catalog=Retail_commerce;Integrated Security='SSPI';"

    Dim oPipe, dCSFAdsContext
    Dim oExpressionEval, oCacheManager, dCacheConfig

    ' Set up CacheManager object.
    Set dCacheConfig = CreateObject("Commerce.Dictionary")
    dCacheConfig.ConnectionString = sConnStr
    Set oCacheManager = CreateObject("Commerce.CacheManager")
    oCacheManager.LoaderProgId("Ads") = "Commerce.CSFLoadAdvertisements"
    Set oCacheManager.LoaderConfig("Ads") = dCacheConfig
    oCacheManager.RefreshInterval("Ads") = 15 * 60 ' 15 minutes

    ' Create the Expression Evaluator and connect it to the database.
    Set oExpressionEval = CreateObject("Commerce.ExpressionEvaluator")
    Call oExpressionEval.Connect(sConnStr)

    ' Create CSF advertising context, a dictionary.
    Set dCSFAdsContext = CreateObject("Commerce.Dictionary")

    ' Create an advertising pipeline and add it to the context.
    Set oPipe = CreateObject("Commerce.OrderPipeline")
    ' Load the pipeline configuration
    oPipe.LoadPipe(Server.MapPath("Advertising.pcf"))
    ' Store a reference to the pipeline object in the Context
    ' dictionary.
    Set dCSFAdsContext("pipeline") = oPipe

    ' Other context configuration for CSF ads.
    dCSFAdsContext("RedirectUrl") = ".\redir.asp"
    ' Add a reference to an expression evaluator to the Context
    Set dCSFAdsContext("Evaluator") = oExpressionEval
    ' InitCacheManager, a routine that would appear elsewhere in the
    ' global.asa, returns a reference to a CacheManager object.
    Set dCSFAdsContext("CacheManager") = oCacheManager
    dCSFAdsContext("CacheName") = "Ads"

    ' Store a reference to the dCSFAdsContext dictionary in the
    ' Application collection.
    Set Application("CSFAdsContext") = dCSFAdsContext
End Sub

</SCRIPT>


Code to Execute the ContentSelector Object

The following code shows how ContentSelector objects are typically created, used to select the content through the GetContent method, and write that content to the Web page.

The following code should be included in a subroutine of an include file. For an example of how the ContentSelector object is used in the Solution Sites, see the files banner.inc and discount.asp located at <drive>:\Inetpub\wwwroot\<Solution Site name>\template\.

<%
    ' Create a ContentSelector object.
    Set CSO = Server.CreateObject("Commerce.ContentSelector")

    ' Use the GetContent method to get some content. Use the dictionary
    ' previously created in the Global.asa file and referenced through the
    ' Application collection.
    Set Ads = CSO.GetContent(Application("CSFAdsContext"))
    ' Ads is a SimpleList containing the selected content.
    ' Write the content to the page, if any.
    For Each Ad in Ads
        Response.Write(Ad)
    Next
%>

Other, optional properties may be set on the ContentSelector object as well. These properties depend on the components in the selection pipeline and their configuration. The most common optional properties include UserProfile, NumRequested, PageGroup, and Size.

Commerce Server Solution Sites are available at http://go.microsoft.com/fwlink/?linkid=6491.


Code to Connect to the Expression Store

A connection to the Expression Store can be made either directly through the Connect method of an ExpressionStore object or indirectly through the Connect method of an ExpressionEval object. The determining factor will be which operations need to be performed. Use an ExpressionStore object if expressions are to be created or manipulated. If evaluating existing expressions, use an ExpressionEval object. When connecting through an ExpressionStore object, use the Disconnect method to release the connection to the Expression Store. The ExpressionEval object automatically releases the connection to the Expression Store upon termination.

Connecting Using an ExpressionStore Object

Connecting Using an ExpressionEval Object

Connecting Using an ExpressionStore Object

  1. Retrieve the connection string to the Expression Store using a SiteConfigReadOnly object. Initialize the SiteConfigReadOnly object for the "Retail" site. This step should be performed in the Global.asa file and the resulting connection string cached in the Application collection or in a global dictionary for use in Active Server Pages (ASP).
    Dim sConn
Dim oSiteConfigReadOnly

Set oSiteConfigReadOnly = Server.CreateObject("Commerce.SiteConfigReadOnly")

oSiteConfigReadOnly.Initialize "Retail"

sConn = oSiteConfigReadOnly.Fields("Biz Data Service")_
.Value.Fields("s_BizDataStoreConnectionString").Value

Set oSiteConfigReadOnly = Nothing
  2. Create the ExpressionStore object and store the connection string to the Expression Store.
    Dim oExpressionStore
Set oExpressionStore = Server.CreateObject("Commerce.ExpressionStore")

oExpressionStore.Connect sConn

Connecting Using an ExpressionEval Object

Connection through the use of an ExpressionEval object can be made by passing a reference to an existing ExpressionStore object or by passing an explicit connection string, in which case a new ExpressionStore object will be created.

  1. Create the ExpressionEval object. Note that the ProgID, ExpressionEvaluator, is different than the object name.
    Dim oExpressionEval
Set oExpressionEval = Server.CreateObject("Commerce.ExpressionEvaluator")
  2. Connect to the Expression Store.
    • Connect using the previous ExpressionStore object, oExpressionStore.
      oExpressionEval.Connect oExpressionStore

    • Connect using the previously obtained connection string, sConn.

      oExpressionEval.Connect sConn

      •

    3.


Code to Create an Evaluation Context

This section describes how to create an evaluation context (a Dictionary object) that contains the data for evaluating an expression against.

  1. Retrieve the two profiles, oUser1, a UserObject object, and oAddress1, an Address object, created in Code to Create a New Profile. For more information about retrieving the profiles, see Code to Retrieve a Profile.
  2. The properties of these profiles that are evaluated in the following sections are:
    oUser1.GeneralInfo.first_name = "Joe"
oAddress1.GeneralInfo.region_code = "WA"
  3. Create a Dictionary object and insert the two profiles.
    Dim dictProfiles
Set dictProfiles = Server.CreateObject("Commerce.Dictionary")

Set dictProfiles.User = oUser1
Set dictProfiles.Address = oAddress1


Code to Evaluate an Expression Stored as an XML Fragment

This section describes how to parse and evaluate an expression stored as an Extensible Markup Langauge (XML) fragment. An XML fragment is equivalent to the ExprBody field of the expression Recordset object. The XML fragment is first parsed for syntactic correctness. This is only performed at design-time since the EvalXML method also parses the fragment. If the expression parses correctly, it is then evaluated.

  1. Create an XML expression fragment. This expression will return True when evaluated against a context containing a UserObject object and an Address object, where the first_name property of the UserObject object = "Joe" AND the region_code of the Address object = "WA". In this example, the string representing the expression is not formatted properly for scripting with respect to quotation marks and continuation in order to increase readability.
    Dim strXMLExpression

sXMLExpression =
 "<TERM TYPE="and">
    <CLAUSE OPER="equal">
       <PROPERTY ID="UserObject.GeneralInfo.first_name" TYPE="string" />
       <IMMED-VAL TYPE="string">Joe</IMMED-VAL>
    </CLAUSE>
    <CLAUSE OPER="equal">
       <PROPERTY ID="Address.GeneralInfo.region_code" TYPE="string" />
       <IMMED-VAL TYPE="string">WA</IMMED-VAL>
    </CLAUSE>
  </TERM>"

  2. Create an ExpressionEval object and parse the string to determine if it represents a syntactically valid XML expression.
    Dim bResult
Dim oExpressionEval
Set oExpressionEval = CreateObject("Commerce.ExpressionEvaluator")

bResult = oExpressionEval.ParseXML(sXMLExpression)
The result, bResult, equals True since this fragment is syntactically valid.
  1. Evaluate the XML fragment against the data contained in the dictProfiles context created in Code to Create an Evaluation Context. The properties of interest in the dictProfiles context are:
    User.GeneralInfo.first_name = "Joe"
Address.GeneralInfo.region_code = "WA"

Dim vResult
vResult = oExpressionEval.EvalXML(sXMLExpression, dictProfiles)

Set oExpressionEval = Nothing
The result of evaluating the expression, vResult, is True.


Code to Create a New Expression

This section describes how to create a new expression.

  1. Using the ExpressionStore object, oExpressionStore, created in Code to Connect to the Expression Store, create an empty recordset to contain the new expression.
    Dim rsExpr
Set rsExpr = oExpressionStore.NewExpression()
  2. The returned recordset is an ADO hierarchical Recordset object. It contains one parent and two child Recordset objects, one child for profile dependencies and one child for expression dependencies. Populate the fields in the parent recordset. The string, sXMLExpression, used for the ExprBody field, is defined in Code to Evaluate an Expression Stored as an XML Fragment. No error checking is performed on the syntax of this string when the Recordset object is saved. Use the ParseXML method to verify the correct syntax before saving the recordset. If the expression is meant to appear as a target or catalog expression in the Campaign Expressions module in Commerce Server Business Desk, the Category field must be set to "CAMPAIGNS" or "CATALOG", respectively.
    rsExpr.Fields("ExprName").Value = "Expr_WA_Joe"
rsExpr.Fields("ExprBody").Value = sXMLExpression
rsExpr.Fields("Category").Value = "WA Users"
rsExpr.Fields("ExprDesc").Value = "Is the user from WA and named Joe?"
  3. Add and populate a new record in the profile dependencies child recordset for each profile the new expression depends on. At least one profile dependency is required to evaluate the expression against.
    Dim rsDeps
Set rsDeps = rsExpr.Fields("rsProfDeps").Value

rsDeps.AddNew
rsDeps.Fields("ProfDep").Value = "User"
rsDeps.AddNew
rsDeps.Fields("ProfDep").Value = "Address"
  4. Add and populate a new record in the expression dependencies child recordset for each expression the new expression depends on. An expression does not have to depend on other expressions; thus, this step is optional.
    Set rsDeps = rsExpr.Fields("rsExprDeps").Value

rsDeps.AddNew
rsDeps.Fields("ExprDep").Value = 123
  5. Save the expression in the Expression Store and release the Recordset objects.
    oExpressionStore.SaveExpression(rsExpr)

Set rsDeps = Nothing
Set rsExpr = Nothing


Code to Manipulate Expressions

When a new expression is saved to the Expression Store, a unique expression ID is created which is used to further access the expression. This section describes how to retrieve the expression ID using the name of the expression. Once the expression ID is retrieved, the expression is renamed, which is the only operation on the expression that is supported through the API. To further manipulate the expression, the corresponding recordset is retrieved and the description of the expression is changed. Finally, the expression is deleted from the Expression Store.

  1. Using the ExpressionStore object, oExpressionStore, created in Code to Connect to the Expression Store, translate the name of the expression, "Expr_WA_Joe", created in Code to Create a New Expression into its expression ID.
    Dim lExpressionID
lExpressionID = oExpressionStore.GetExprID("Expr_WA_Joe")
  2. Rename the expression to "Expr_2001.93".
    oExpressionStore.RenameExpression lExpressionID, "Expr_2001.93"
  3. Retrieve the recordset corresponding to the expression.
    Dim rsExpression
Set rsExpression = oExpressionStore.GetExpression(lExpressionID)
  4. Change the description of the expression.
    rsExpression.Fields("ExprDesc").Value = _
 "Is the user named Joe and from WA?"
  5. When finished using the expression, delete it. If the expression has a non-zero reference count (one or more other expressions depend on this expression), the method will fail and the expression will not be deleted.
    oExpressionStore.DeleteExpression lExpressionID, 0

Set rsExpression = Nothing


Code to Evaluate a Single Expression

A single expression may be evaluated either directly against a Dictionary object containing a set of profiles or indirectly against a stored evaluation context. For information about evaluating the expression against a stored context, see Code to Evaluate Groups of Expressions.

  1. Using the ExpressionEval object, oExpressionEval, created in Code to Connect to the Expression Store, load the expression created in Code to Create a New Expression into the Expression Cache. The expression ID, lExpressionID, for this expression was retrieved in Code to Manipulate Expressions. Loading the expression is optional. If you have not preloaded the expression, the Eval method will load the expression upon execution.
    oExpressionEval.LoadExpr lExpressionID
  2. Evaluate the expression against the data contained in the dictProfiles context created in Code to Create an Evaluation Context.
    Dim vResult
vResult = oExpressionEval.Eval(lExpressionID, dictProfiles)
The result of evaluating the expression, vResult, is True.


Code to Evaluate Groups of Expressions

If a group of expressions is to be evaluated against the same context, it is more efficient to create a stored evaluation context rather than iterating the expressions through the Eval method, which creates and destroys an evaluation context for each expression evaluated.

  1. Using the ExpressionEval object, oExpressionEval, created in Code to Connect to the Expression Store, create a stored evaluation context using the dictProfiles context created in Code to Create an Evaluation Context.
    Dim oEvaluationContext
Set oEvaluationContext = _
 oExpressionEval.CreateEvalContext(dictProfiles)
  2. Load all the expressions in the Expression Store into the Expression Cache, including the expression created in Code to Create a New Expression. This step is optional. Any expressions not preloaded will be loaded by the EvalInContext method when those expressions are evaluated. If you do not want to load all the expressions, you can load individual expressions using the LoadExpr method.
    oExpressionEval.LoadAll
  3. The expression ID, lExpressionID, for the expression created in Code to Create a New Expression, was retrieved in Code to Manipulate Expressions. Evaluate this expression against the evaluation context.
    Dim vResult
vResult = oExpressionEval.EvalInContext(lExpressionID, _
 oEvaluationContext)
The result of evaluating the expression, vResult, is True.
  1. Evaluate any other expressions using the same stored context, and then release the context.
    Set oEvaluationContext = Nothing


Code to Import and Export Expressions

This section describes how to import and export groups of expressions. An import file must contain the XML expression recordset schema followed by the XML representation of each expression recordset to be imported. The format of the exported file is the same. For information about expression structures in XML, see Expression XML Structures.

  1. Using the ExpressionStore object, oExpressionStore, created in Code to Connect to the Expression Store, import the expressions from the file Expressions.xml into the Expression Store. If the Expression Store is not empty, the method will fail.
    oExpressionStore.Import "Expressions.xml"
  2. Export the expressions contained in the Expression Store to the file Exported_Expressions.xml.
    oExpressionStore.Export "Exported_Expressions.xml"


Code to Initialize the ListManager Object

  1. Create a ListManager object.
    Dim oListManager
Set oListManager = CreateObject("Commerce.ListManager")
  2. Initialize the object.
    oListManager.Initialize "Provider=sqloledb;" & _
 "Data Source=TequillaServer;Initial Catalog=Margaritas;" & _
 "Integrated Security='SSPI'"


Code to Create a List

Lists can be created from a text file, an SQL query, an analysis report, or a Predictor resource segment. This section describes how to create a list named 'Users1' from a file named Users.csv. Once the list is created, the number of unique users imported into the list is retrieved.

  1. Create the Users.csv text file. A representative section of the file follows that contains the e-mail addresses and IDs for a group of users.
    joeuser@roguecellars.com,Newuser_R121
barneyuser@fabrikam.com,Olduser_F3
bettyuser@arborshoes.com,Newuser_A872
jackuser@vigorairlines.com,Olduser_V83
jilluser@microsoft.com,Olduser_M2901
  2. Use the initialized ListManager object, oListManager, created in Code to Initialize the ListManager Object, to create a Mailable User list (userFlags = 20) from the text file.
    Dim vListID1, vOperationID
vListID1 = oListManager.CreateFromFile("Users1", "Just users", _
 20, 0, "D:\Users.csv", 0, True, vOperationID)
  3. Set the maximum time allowed for the list to be created to 10 minutes (600 seconds). If the list is not created in this time, the method will return an error.
    oListManager.WaitOnOperation vOperationID, 600
  4. When the creation operation finishes, retrieve the number of unique e-mail addresses imported.
    Dim rsOperationInfo, vOperationStatus, vUniqueUsers
Set rsOperationInfo = oListManager.GetOperationInfo(vOperationID)
vOperationStatus = rsOperationInfo("op_status")
If vOperationStatus = 0 Then
   vUniqueUsers = oListManager.GetListProperty(vListID1, _
     "list_unique_emails")
   Wscript.Echo "Number of unique users is " & vUniqueUsers & vbCrLf
ElseIf vOperationStatus = 1 Then
   Wscript.Echo "List still being created" & vbCrLf
ElseIf vOperationStatus = -1 Then
   Wscript.Echo "List creation failed" & vbCrLf
Else
   Wscript.Echo "Bad status code" & vbCrLf
End If
  5. Release the objects.
    Set oListManager = Nothing
Set rsOperationInfo = Nothing


Code to Manipulate Lists

  1. Using the initialized ListManager object, oListManager, created in Code to Initialize the ListManager Object, create a new empty list named 'Users2'.
    Dim vListID2
vListID2 = oListManager.CreateEmpty("Users2", "More users", 20, 0)
  2. Copy the list, 'Users1', created in Code to Create a List, to the new list.
    oListManager.Copy "Users1", vListID2, False
  3. Delete three members from the 'Users2' list.
    oListManager.RemoveUserFromMailingList "Users2", _
 "barneyuser@fabrikam.com"

oListManager.RemoveUserFromMailingList "Users2", _
 "jackuser@vigorairlines.com"

oListManager.RemoveUserFromMailingList "Users2", _
 "jilluser@microsoft.com"
  4. Add two new users to the 'Users2' list.
    oListManager.AddUserToMailingList "Users2", _
 "janeuser@fabrikam.com", Newuser_F554

oListManager.AddUserToMailingList "Users2", _
 "freduser@vigorairlines.com", Newuser_V919
  5. Perform a union and a subtraction on the 'Users1' and 'Users2' lists. The lists holding the results of the union and subtraction operations must exist prior to running the methods. The results are shown in the following table.
    oListManager.CreateEmpty "Union", "Unique users", 20, 0
oListManager.CreateEmpty "Subtract", "Remaining users", 20, 0
oListManager.Union "Users1", "Users2", "Union", 0, False
oListManager.Subtract "Users1", "Users2", "Subtract", 0, False
    Users1 | Users2 | Union | Subtract
    joeuser@roguecellars.com | joeuser@roguecellars.com | joeuser@roguecellars.com | barneyuser@fabrikam.com
    barneyuser@fabrikam.com | bettyuser@arborshoes.com | barneyuser@fabrikam.com | jackuser@vigorairlines.com
    bettyuser@arborshoes.com | janeuser@fabrikam.com | bettyuser@arborshoes.com | jilluser@microsoft.com
    jackuser@vigorairlines.com | freduser@vigorairlines.com | jackuser@vigorairlines.com
    jilluser@microsoft.com | jilluser@arborshoes.com
    janeuser@fabrikam.com
    freduser@vigorairlines.com
  6. Export the Union list to a SQL Server database table named NewUsers, overwriting any previous data. Once the operation is complete, delete the list.
    sConnect = "Provider=sqloledb;Data Source=TequillaServer;" & _
 "Initial Catalog=Margaritas;Integrated Security='SSPI'"

oListManager.ExportToSQL "Union", sConnect, "NewUsers", True, 0, False

oListManager.Delete "Union"


Code to Enumerate Available Lists

This section describes how to enumerate the available lists and change the properties of one of the lists, such as the list name and description.

  1. Using the initialized ListManager object, oListManager, created in Code to Initialize the ListManager Object, retrieve the Recordset object containing the lists.
    Dim rsLists
Set rsLists = oListManager.GetLists()
  2. Iterate through the list descriptions searching for the list described as Unique users. When found, change the name to UserFamily, change the description, and add some flags. Note that the recordset returned by the GetLists method is read-only.
    Dim vListID
While Not rsLists.EOF
   If rsLists("list_description") = "Unique users" Then
      vListID = rsLists("list_id")
      oListManager.SetListProperty vListID, "list_name", "UserFamily"
      oListManager.SetListProperty vListID, "list_description", _
       "Members of the User family"
      oListManager.SetListProperty vListID, "list_userflags", 255       Exit While
   rsLists.MoveNext
Wend


Alphabetic Listing of COM Objects

This list contains all of the COM objects available in Commerce Server 2002. The object reference pages and the associated code samples are grouped by functionality on COM Object Reference.

Visual Basic Reference | C++ Invocation | Description
AdminEventLog | AdminEventLog | Writes error, informational, warning, and success messages to the event log.
AdminFiles | AdminFiles | Provides read-only access to server-side binary and text files.
AdminSite | AdminSite | Provides read/write access to site configuration properties and allows site administration. This object is supplied for backward compatibility purposes only.
AdminWebServer | AdminWebServer | Allows enumeration of Web sites and their properties.
AppConfig | AppConfig | Allows retrieval of country, region codes, and names from the site configuration store.
AppFrameWork | AppFrameWork | Provides formatting and validation methods that simplify forms processing in Active Server Pages (ASP).
AsyncRpt2 | AsyncRpt2 | Provides asynchronous rendering and exporting of static reports.
Auction | Auction | Provides methods for supporting auctions.
AuthManager | AuthManager | Provides a secure, standardized, and extensible way to manage authentication of users.
BDSecurity | BDSecurity | Allows specific Commerce Server Business Desk modules to be hidden from particular users.
BusinessDataAdmin2 | BusinessDataAdmin2 | Imports and exports profile catalogs from the business data store.
CacheManager | CacheManager | Provides generic caching services.
CatalogManager | CatalogManager | Allows management of catalogs across the entire Product Catalog System.
CatalogSets | CatalogSets | Allows filtering of multiple custom catalogs for different users and organizations.
CatalogSets2 | CatalogSets2 | Allows filtering of multiple custom catalogs for different users and organizations.
CatalogToVendorAssociation | CatalogToVendorAssociation | Allows a catalog to be associated with particular vendor.
Category | Category | Allows management of a product hierarchy within a particular catalog.
ContentList | ContentList | Contains a representation of each content item eligible for a given request for content. Also provides services to Content Selection Framework (CSF) components such as filtering and sorting.
ContentListFactory | ContentListFactory | Allows creation of ContentList objects, and stores data shared by those objects.
ContentListSchema | ContentListSchema | Allows manipulation of the schema for a ContentListFactory object.
ContentSelector | ContentSelector | Allows specification and retrieval of page content.
DataFunctions | DataFunctions | Provides methods to perform locale-based data type handling and value range checking.
DBStorage | DBStorage | Provides methods for mapping Dictionary and SimpleList objects to and from a database, primarily for the storage of receipt and order information.
Dictionary | Dictionary | Supports the creation, storage, and retrieval of name/value pairs in memory.
DictionaryXMLTransforms | DictionaryXMLTransforms | Transforms data in a Dictionary object into Extensible Markup Language (XML), and XML data into a Dictionary object.
DTSCatalogImport | DTSCatalogImport | Imports catalog data into the Data Warehouse.
DTSDeleteImport | DTSDeleteImport | Deletes log file data and summarized data from the Data Warehouse.
DTSIPResolution | DTSIPResolution | Resolves Internet Protocol (IP) addresses from the imported user data.
DTSLogImport | DTSLogImport | Defines and imports Web log files into the Data Warehouse.
DTSPostImport | DTSPostImport | Populates OLAP cubes with the data that was imported, prepares the imported data for report generation, and refreshes the OLAP cubes after a deletion.
DTSSyncAdminData | DTSSyncAdminData | Synchronizes the Data Warehouse with your Commerce Server application after you make changes to configuration settings.
DTSTransactionImport | DTSTransactionImport | Runs reports to analyze transaction data.
EuroDisplay | EuroDisplay | Converts and formats currency amounts for use where multiple currencies must be displayed.
ExpressionEval | ExpressionEval | Allows selection and evaluation of one or more expressions against a set of profiles.
ExpressionStore | ExpressionStore | Provides methods to create, save, modify, and retrieve expressions.
ExprEvalContext | ExprEvalContext | Stores a specific evaluation context (set of profiles) that can be used for multiple expression evaluation operations.
ExprFltrQueryBldr | ExprFltrQueryBldr | Translates an expression in XML form into a SQL filter query string.
GenID | GenID | Provides methods to generate globally unique identifiers (GUID), and to create and maintain multiple, global sequential counters which are persisted in a database.
GlobalConfig | GlobalConfig | Provides methods for the configuration management of global resources.
GlobalConfig2 | GlobalConfig2 | Provides methods for the configuration management of global resources, including several methods not included in the GlobalConfig object.
ListManager | ListManager | Provides methods to create, destroy, manage, and manipulate lists.
LRUCache | LRUCache | Provides a least recently used (LRU) cache for the CacheManager object. It stores a limited number of entries and sorts them according to the least recently used element.
MessageManager | MessageManager | Stores text strings in multiple languages. One usage involves the Order Processing pipeline (OPP) components describing error conditions generated during order form processing.
MicroPipe | MicroPipe | Runs a single pipeline component from an ASP page without using a pipeline configuration file (.pcf).
MigrationLogObj | MigrationLogObj | Writes migration log data to the data store.
MigrationMainObj | MigrationMainObj | Coordinates migration from the Site Server 3.0 Commerce Edition Membership Directory to the Commerce Server 2002 Profile data store.
MigrationModifyObj | MigrationModifyObj | Changes data that has been read from the Site Server 3.0 Commerce Edition Membership Directory before it is migrated to the Commerce Server 2002 Profile data store.
MigrationReadObj | MigrationReadObj | Reads values for each attribute in the Site Server 3.0 Commerce Edition Membership Directory, then sends them to the MigrationProfile object.
MigrationWriteObj | MigrationWriteObj | Writes the values for each attribute in the Site Server 3.0 Commerce Edition Membership Directory to the Commerce Server 2002 Profile data store.
MtsPipeline | MtsPipeline | Executes a non-transacted Microsoft Commerce Server 2002 pipeline.
MtsTxPipeline | MtsTxPipeline | Executes a transacted Microsoft Commerce Server 2002 pipeline.
OrderForm | OrderForm | Provides in-memory storage of user and purchase information.
OrderGroup | OrderGroup | Allows management of complex orders, such as those containing items from different suppliers, and multiple shipments.
OrderGroupManager | OrderGroupManager | Provides methods to manage OrderGroup and OrderForm objects.
OrderPipeline | OrderPipeline | Runs a Microsoft Commerce Server 2002 pipeline, and is particularly useful in the Content Selection Framework.
Page | Page | Provides formatting and validation methods that simplify forms processing in ASP pages. This object is supplied for backward compatibility purposes only.
PooledPipeline | PooledPipeline | Executes a non-transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.
PooledTxPipeline | PooledTxPipeline | Executes a transacted Microsoft Commerce Server 2002 pipeline that uses COM+ object pooling for better performance.
Product | Product | Allows manipulation of the relationships between a product variant and a product category.
ProductCatalog | ProductCatalog | Allows creation, deletion, and modification of catalog data.
ProfileObject | ProfileObject | Provides run-time read/write access to profile property data and read-only access to property attributes.
ProfileService | ProfileService | Allows creation, deletion, and retrieval of instances of profile schemas.
ReportRenderer | ReportRenderer | Provides synchronous rendering and exporting of static reports.
RowCollection | RowCollection | Allows enumeration of the rows returned from the ActiveRows and AllRows properties, and the Search method, of a ContentList object, and from the AllRows property and the Search method of a ContentListFactory object.
Shipping | Shipping | Creates shipping cost preview information.
ShippingMethodManager | ShippingMethodManager | Allows management of multiple shipping methods.
SimpleFindResultInfo | SimpleFindResultInfo | Allows the specification of search criteria when using the OrderGroup and OrderGroupManager objects.
SimpleFindSearchInfo | SimpleFindSearchInfo | Allows the specification of search criteria when performing search and delete operations using the OrderGroup and OrderGroupManager objects.
SimpleList | SimpleList | Allows creation of an array of Variants that supports enumeration.
SiteConfig | SiteConfig | Provides for configuration management of site resources.
SiteConfigReadOnly | SiteConfigReadOnly | Provides methods to read global and site configuration values from the Administration database.
StandardSManager | StandardSManager | Facilitates the run time creation and retrieval of user IDs. This object is supplied for backward compatibility purposes only.


Managing COM Parameter Memory

This topic provides some high-level information about memory ownership issues as they pertain to parameters passed into and out of the properties and methods of Component Object Model (COM) objects.

Additional, more detailed information can be found at http://go.microsoft.com/fwlink/?LinkId=5161.

Parameter Direction Summary

The following general statements apply to the various types of non-scalar parameters, such as objects, and to strings, when passed into and out of the methods and properties of a COM object:

  • For [in] parameters, the caller allocates memory and is also responsible for freeing the memory after the call has returned.
  • For [out] parameters, the method or property allocates the memory and the caller is responsible for freeing the memory.
  • For [in, out] parameters, the caller allocates memory, the method or property can optionally deallocate and reallocate it, and the caller is finally responsible for deleting the memory.

Visual Basic

If you are programming in either Microsoft Visual Basic (VB) or Visual Basic Scripting Edition (VBScript), you need to remember that if a method or property returns an object and you assign a reference to that object to a variable, then you should set the variable to Nothing when you are done with it. For example:

' Assume object oCalledObject already exists.
Dim oRetObject
oCalledObject.GetAnObject(oRetObject)

' Do something with the returned object.
oRetObject.DoSomething

' Release the reference to the returned object.
Set oRetObject= Nothing

C++

If you are programming in C++, keep in mind the following issues:

  • When passing a string to a method (including get_ and put_ property methods), as a BSTR, you own the BSTR both before and after the call. If the object needs to remember the string, it will make a copy. Allocate and deallocate BSTRs from the special heap designed for that purpose, using the SysAllocString and SysFreeString family of functions.
  • When a string is returned from a method (including get_ and put_ property methods), using the BSTR pointer you provide, you now own the returned BSTR and are responsible for deallocating it using the SysFreeString family of functions. Note that the method allocated the BSTR and you are going to deallocate it.
  • Simple scalar types are passed by value, so there is nothing special to do with respect to their associated memory.
  • When a COM object (a pointer to one of its interfaces) is passed as a parameter to a method, the normal COM AddRef and Release mechanism is used to manage the lifetime of that object. The caller of the method should have called the AddRef method (perhaps indirectly) prior to the method call, and should call the Release method whenever it no longer needs to reference the object, presumably sometime after the method call has returned.

    If the object needs to retain a reference to the object beyond the return of the method call, it will call the AddRef method to record its ongoing reference. This way, even if the caller of the method calls the Release method after the method returns, the object will retain its reference and the object will not be deleted.

  • When a COM object (a pointer to one of its interfaces) is returned from a method, using the provided address of an interface pointer, the method will have called the AddRef method on behalf of the caller prior to returning. The caller need only worry about calling the Release method when they are finished with the object.
  • SAFEARRAYs need to be allocated using the special OLE allocators from the SafeArrayCreate family of routines that are provided for this purpose. For scriptable objects, the contents of the safe arrays need to be variants, not other scalars like BSTRs.
  • VARIANTs have special helper functions in the VariantInit/VariantClear family of functions to help with the handling and freeing of values.


Standard COM Errors

Many, but not all, of the properties and methods of the Commerce Server objects use standard Component Object Model (COM) HRESULT return values to communicate whether the operation was successful or not.

In C++, these values are the actual return values from the methods themselves (including property get_ and put_ methods). The program must explicitly perform error checking by examining these return values, or use some variation of structured error handling.

In Microsoft Visual Basic, and in Visual Basic Scripting Edition as used in Active Server Pages (ASP), these values are placed in the Number property of the global Err object. Error handling is either handled automatically, displaying a standard error dialog box, or explicitly by the program, checking the value of the Number property of the global Err object. The On Error Resume Next command disables automatic error handling, thereby enabling explicit error handling.

The following table shows the most common standard COM errors returned by the properties and methods of the Commerce Server objects.

Constant | Value (32-bit) | Description
S_OK | 00000000 | The standard return value used to communicate successful completion.
S_FALSE | 00000001 | An alternate success value, typically used to communicate successful, but non-standard completion. The precise meaning depends on the method or property in question.
E_UNEXPECTED | 8000FFFF | Catastrophic failure error.
E_NOTIMPL | 80004001 | Not implemented error.
E_OUTOFMEMORY | 8007000E | Out of memory error.
E_INVALIDARG | 80070057 | One or more arguments are not valid error.
E_NOINTERFACE | 80004002 | Interface not supported error.
E_POINTER | 80004003 | Pointer not valid error.
E_HANDLE | 80070006 | Handle not valid error.
E_ABORT | 80004004 | Operation aborted error.
E_FAIL | 80004005 | Unspecified error.
E_ACCESSDENIED | 80070005 | General access denied error.

Additional information may be available using the global Err object. In Visual Basic, the Description property of the Err object may contain a text description of the error.

In C++, call the API function GetErrorInfo to retrieve the most recently set IErrorInfo pointer in the current logical thread. The GetDescription method of that interface may return a text description of the error.


Interface Reference

Microsoft Commerce Server 2002 Enterprise Edition can be extended programmatically by building Component Object Model (COM) objects that support specific interfaces. This allows them to be called in a standard fashion. Such objects fall into the following two categories:

  1. Pipeline Components

    Pipeline components implement one or more specific interfaces, allowing them to be run in the context of Commerce Server pipelines, and to be configured and included in pipeline configurations through the Pipeline Editor. For more information about pipelines and their various uses within Commerce Server, see Working with Pipelines.

  2. Site Packager Components

    Commerce Server Site packager components implement the IPuP interface, allowing them to be invoked by Site Packager so that they can package and unpack custom data. Typically, this is configuration information for custom resources that store their data somewhere other than the Administration database (MSCS_Admin).

    For general information about the integration of custom resources, see Integrating Custom Resources.

    For more specific information about packaging and unpacking data stored somewhere other than the Administration database, see Packaging Other Data.

The generic persistence interfaces are a third category of standard COM interfaces that can be implemented by Commerce Server COM objects. Pipeline components often implement one or more of these interfaces. Some of these persistence interfaces are implemented by other COM objects supplied with Commerce Server. For example, the Dictionary object implements the IPersistXML interface, allowing the contents of a Dictionary object to be persisted as an XML-formatted string in a specific format. Conversely, the Dictionary object can also be initialized based on the contents of an XML-formatted string in a particular format.

This section provides more information about these interfaces so that they can be implemented by new COM objects of the relevant types.

This section contains:

  • Pipeline Component Interfaces. Describes the pipeline component interfaces through which a COM component can serve as a Commerce Server pipeline component.
  • Site Packager Interface. Describes the site packager interface through which a COM object can be told to package or unpack custom data.
  • Generic Persistence Interfaces. Describes the generic persistence interfaces through which a COM object can be told to save its data as an XML-formatted string, as a Dictionary object, or to a stream.


Pipeline Component Interfaces

Microsoft Commerce Server 2002 defines a set of Component Object Model (COM) interfaces known as pipeline interfaces. In addition, pipeline components often implement one or more generic persistence interfaces defined by Commerce Server, as well as the standard OLE interfaces ISpecifyPropertyPages and IPersistStreamInit.

Every pipeline component must support the IPipelineComponent interface. Without this interface, a Commerce Server pipeline will not be able to execute the component. The remaining interfaces are optional. They expose various types of functionality that allow new components to fit smoothly into the Commerce Server architecture.

The following table lists the required IPipelineComponent interface and the other optional interfaces.

Interface | Description
IPipelineComponent | Executes the component. This interface is required.
IPipelineComponentAdmin | Sets and retrieves the properties on a component using a Dictionary object. This interface is optional.
IPipelineComponentDescription | Uses a SAFEARRAY to identify the OrderForm object and PipeContext object elements that a component reads and writes. This interface is optional.
IPipelineComponentUI | Displays a dialog box for configuring a pipeline component. This interface is optional.
ISpecifyPipelineComponentUI | Determines the object that will be invoked through the IPipelineComponentUI interface to display the dialog box for the component. This interface is optional.
ISpecifyPropertyPages | Indicates that the object supports property pages. This is a standard OLE interface. This interface is optional.
IPersistStreamInit | Persists the data associated with an object to a stream. This is the form of persistence used in the Active Template Library (ATL) Pipeline Wizard. This is a standard OLE interface. This interface is optional.
IPersistDictionary | Persists the data associated with an object to a Dictionary object. This is a generic persistence interface defined by Commerce Server. This interface is optional.


IPipelineComponent Interface

All pipeline components must implement the IPipelineComponent interface, passing an OrderForm object interface pointer between each component. If a component returns an error, the pipeline may terminate execution and return an error to the caller.

The IPipelineComponent interface supports the following methods:

Method | Description
Execute | The entry point at which the pipeline begins executing the component.
EnableDesign | Sets the design mode on the component.

Remarks

For more information about IPipelineComponent interface code generated by the Active Template Library (ATL) Pipeline Component Wizard, see Implementing the IPipelineComponent Interface.

Header: pipecomp.h

Type Library: Microsoft Commerce 2000 Order Pipeline Type Library (pipeline.dll)

IDL File: Pipecomp.idl


IPipelineComponent::Execute Method

Use this method to execute a pipeline component.

Definition

HRESULT Execute(
..IDispatch* pDispOrder,
..IDispatch* pDispContext,
..long lFlags,
..long* plErrorLevel
);

Parameters

pDispOrder
[in] A pointer to the OrderForm object.
pDispContext
[in] A pointer to the Context object. This is a Dictionary object that contains pointers to the MessageManager object, Content object, and language information.
lFlags
[in] Reserved. This parameter should be zero (0).
plErrorLevel
[out, retval] A flag that indicates what level of errors is tolerated. See the Remarks section for information about the legal values for this parameter.

This error information is meant to supplement the HRESULT information that is returned. The pipeline maps errors returned from components (E_xxxx errors) to an error level of 2.

Remarks

The plErrorLevel parameter can be one of the following values:

Value | Meaning
1 | Success. No errors, component executed successfully.
2 | Warning. Basket or purchase errors for this operation.
3+ | Failure. Serious errors in execution of this component.

For more information about IPipelineComponent interface code generated by the Active Template Library (ATL) Pipeline Component Wizard, see Implementing the IPipelineComponent Interface.

Return Values

The method returns an HRESULT value.

See Also

IPipelineComponent Interface


IPipelineComponent::EnableDesign Method

Use this method to prepare the component for execution in one of two modes: design mode or execution mode. In design mode, which is useful for running the Pipeline Editor, errors are more easily tolerated. Execution mode (the default) is analogous to production mode.

Definition

HRESULT EnableDesign(
  BOOL fEnable
);

Parameters

fEnable
[in] Indicates whether the component should be run in design mode (True) or execution mode (False).

Return Values

The method returns an HRESULT value.

Remarks

For more information about IPipelineComponent interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see Implementing the IPipelineComponent Interface.

See Also

IPipelineComponent Interface


IPipelineComponentAdmin Interface

To support third-party components in the Pipeline Editor, components must provide their own user interface code. The IPipelineComponentAdmin interface, in combination with the IPipelineComponentUI and IPipelineComponentSpecifyUI interfaces, provides an alternative to using the ISpecifyPropertyPages interface.

The IPipelineComponentAdmin interface supports the following methods:

Method | Description
GetConfigData | Returns a Dictionary object that contains the configuration settings for a component.
SetConfigData | Sets the configuration settings on a component using the contents of a Dictionary object.

Remarks

For more information, see Deciding Which Interface to Expose.

Header: pipecomp.h

Type Library: Microsoft Commerce Pipeline StdRetComp Type Library (stdretcomp.dll)

IDL File: Pipecomp.idl


IPipelineComponentAdmin::GetConfigData Method

This method returns an IDictionary pointer for the user interface to read the configuration data for the component.

Definition

HRESULT GetConfigData(
  IDispatch** ppDict
);

Parameters

ppDict
[out] A pointer to an object from which the user interface can read the configuration data (typically using the IDictionary interface).

Return Values

The method returns an HRESULT value.

Remarks

For more information, see Deciding Which Interface to Expose.

See Also

IPipelineComponentAdmin Interface

IPipelineComponentAdmin::SetConfigData


IPipelineComponentAdmin::SetConfigData Method

This method takes a pointer to an object containing the configuration information for the component. This object must implement the IDictionary interface.

Definition

HRESULT SetConfigData(
  IDispatch* pDict
);

Parameters

pDict
[in] An interface pointer to the object containing the configuration information.

Return Values

The method returns an HRESULT value.

Remarks

For more information, see Deciding Which Interface to Expose.

See Also

IPipelineComponentAdmin Interface

IPipelineComponentAdmin::GetConfigData


IPipelineComponentDescription Interface

The IPipelineComponentDescription interface makes it possible for pipeline components to identify the values that they read from the pipeline context, and the keys and values that they read from or write to the OrderForm object.

Although pipeline components are not required to implement the IPipelineComponentDescription interface, implementing this interface makes it possible for the Pipeline Editor to identify and display the elements that your component reads or writes. This information can help developers who are troubleshooting a pipeline configuration.

The IPipelineComponentDescription interface supports the following methods:

Method | Description
ContextValuesRead | Returns a SAFEARRAY VARIANT that identifies the pipeline context values that the component reads.
ValuesRead | Returns a SAFEARRAY VARIANT that identifies the values that the component reads.
ValuesWritten | Returns a SAFEARRAY VARIANT that identifies the values that the component writes.

The methods defined in the IPipelineComponentDescription interface all take a single parameter: the address of a VARIANT out-value. The VARIANT that the IPipelineComponentDescription methods store in this address must contain a SAFEARRAY of VARIANTs that contain a BSTR variable. These BSTR variables identify the values read from or written to the pipeline context or the OrderForm object. Because the VARIANTs in this SAFEARRAY contain simple BSTR variables, you can conceivably store any kind of string information in these BSTR variables. However, for the sake of aiding developers who are attempting to troubleshoot their pipeline configurations, it is recommended that you initialize these BSTR variables to reference only elements of the PipeContext object or the OrderForm object.

Remarks

For more information about IPipelineComponentDescription interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see Enhancing Component Usability.

Header: pipecomp.h

Type Library: Microsoft Commerce Pipeline StdRetComp Type Library (stdretcomp.dll)

IDL File: Pipecomp.idl


IPipelineComponentDescription::ContextValuesRead Method

This method returns a VARIANT that contains a SAFEARRAY of VARIANTs. Each of the VARIANTs in this SAFEARRAY contains a BSTR that identifies the PipeContext object elements that the component reads.

Definition

HRESULT ContextValuesRead(
  VARIANT* pVar
);

Parameters

pVar
[out, retval] The address to which the method returns a VARIANT. This VARIANT contains a SAFEARRAY of VARIANTs, each of which contains a BSTR that identifies the elements that a component reads from the PipeContext object.

Return Values

If the function implementation does not return S_OK, the Pipeline Editor ignores the contents of the returned VARIANT variable.

Remarks

For more information about IPipelineComponentDescription interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see Enhancing Component Usability.

See Also

IPipelineComponentDescription Interface


IPipelineComponentDescription::ValuesRead Method

This method identifies the keys and values that a component reads from the OrderForm object.

Definition

HRESULT ValuesRead(
  VARIANT* pVar
);

Parameters

pVar
[out, retval] The address to which the method returns a VARIANT. This VARIANT contains a SAFEARRAY of VARIANTs, each of which contains a BSTR that identifies the keys and values that a component reads from the OrderForm object.

Return Values

If the function implementation does not return S_OK, the Pipeline Editor ignores the contents of the returned VARIANT.

Remarks

For more information about IPipelineComponentDescription interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see the Enhancing Component Usability.

See Also

IPipelineComponentDescription Interface

IPipelineComponentDescription::ValuesWritten


IPipelineComponentDescription::ValuesWritten Method

This method identifies the keys and values that a component modifies in the OrderForm object.

Definition

HRESULT ValuesWritten(
  VARIANT* pVar
);

Parameters

pVar
[out, retval] The address to which the method returns a VARIANT. This VARIANT contains a SAFEARRAY of VARIANTs, each of which contains a BSTR that identifies the modified keys and values.

Return Values

If the function implementation does not return S_OK, the Pipeline Editor ignores the contents of the returned VARIANT.

Remarks

For more information about IPipelineComponentDescription interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see Enhancing Component Usability.

See Also

IPipelineComponentDescription Interface

IPipelineComponentDescription::ValuesRead


IPipelineComponentUI Interface

The IPipelineComponentUI interface is implemented to allow a pipeline component to display a dialog box for configuration values. The interface is implemented by a separate Component Object Model (COM) object that displays the dialog box.

The IPipelineComponentUI interface supports the following method:

Method | Description
ShowProperties | Called by the Pipeline Editor to display the dialog box for the component.

Remarks

Header: pipecomp.h

Type Library: Microsoft Commerce 2000 Order Pipeline Type Library (pipeline.dll)

IDL File: Pipecomp.idl


IPipelineComponentUI::ShowProperties Method

This method is called to display the configuration dialog box for a pipeline component.

Definition

HRESULT ShowProperties(
  IDispatch* pdispComponent
);

Parameters

pdispComponent
[in] A pointer to an IPipelineComponentAdmin interface.

Return Values

Returns S_OK if the dialog box was displayed and configuration values set.

Remarks

The object implementing this interface first gets the configuration Dictionary object using the IPipelineComponentAdmin::GetConfigData method. It then uses these values to fill in the dialog box. When the user is finished with the dialog box, the object sets the configuration values using the IPipelineComponentAdmin::SetConfigData method.

See Also

IPipelineComponentUI Interface

ISpecifyPipelineComponentUI Interface


ISpecifyPipelineComponentUI Interface

The ISpecifyPipelineComponentUI interface is used by a pipeline component to specify the Component Object Model (COM) object that implements the IPipelineComponentUI interface that gets and sets configuration values.

The ISpecifyPipelineComponentUI interface supports the following method:

Method | Description
GetPipelineComponentUIProgID | Used by the pipeline component to specify the component that displays the configuration dialog box by implementing the IPipelineComponentUI interface.

Remarks

Header: pipecomp.h

Type Library: Microsoft Commerce 2000 Order Pipeline Type Library (pipeline.dll)

IDL File: Pipecomp.idl


ISpecifyPipelineComponentUI::GetPipelineComponentUIProgID Method

This method is used by the pipeline component to specify the component that displays the configuration dialog box by implementing the IPipelineComponentUI interface.

Definition

HRESULT GetPipelineComponentUIProgID(
  BSTR* pbstrProgID
);

Parameters

pbstrProgID
[out, retval] A pointer to a BSTR string used to return the programmatic identifier (ProgID) of the component that displays the configuration dialog box of the component.

Return Values

Returns S_OK if the ProgID was retrieved.

See Also

ISpecifyPipelineComponentUI Interface

IPipelineComponentUI Interface


ISpecifyPropertyPages Interface

The ISpecifyPropertyPages interface is a standard Win32 OLE interface. You implement this interface to allow the pipeline administration tool to invoke the property page user interface of the component. For more information about the ISpecifyPropertyPages interface, see the OLE Programmer's Reference.

The ISpecifyPropertyPages interface supports the following method:

Method | Description
GetPages | Fills in an array of class identifiers (CLSID) where each CLSID is the CLSID of a property page that can be displayed in the property sheet for this object.

Remarks

For more information about ISpecifyPropertyPages interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see MinMaxShip Sample Pipeline Component.

Header: ocidl.h

IDL File: ocidl.idl


ISpecifyPropertyPages::GetPages Method

This method fills a counted array of universally unique identifier (UUID) values where each UUID specifies the class identifier (CLSID) of a particular property page that can be displayed in the property sheet for this object.

The CAUUID structure is caller-allocated, but is not initialized by the caller. The ISpecifyPropertyPages::GetPages method fills the cElements field in the CAUUID structure. This method also allocates memory for the array pointed to by the pElems field in the CAUUID structure using the CoTaskMemAlloc method. Then, it fills the newly allocated array. After this method returns successfully, the structure contains a counted array of UUIDs, each UUID specifying a property page CLSID.

Definition

HRESULT GetPages(
  CAUUID* pPages
);

Parameters

pPages
[out] A pointer to a caller-allocated CAUUID structure that must be initialized and filled before returning. The pElems field in the CAUUID structure is allocated by the callee with the CoTaskMemAlloc method and freed by the caller with the CoTaskMemFree method.

Return Values

The method returns an HRESULT value.

Remarks

The CAUUID structure is defined as follows:

typedef struct tagCAUUID
{
    ULONG       cElems;
    GUID FAR *  pElems;
} CAUUID;
cElems
The size of the array pointed to by the pElems array.
pElems
A pointer to an array of UUID values, each of which specifies a CLSID of a particular property page. This array is allocated by the callee using the CoTaskMemAlloc method and is freed by the caller using the CoTaskMemFree method.

For more information about ISpecifyPropertyPages interface code generated by the Active Template Library (ATL) and the Pipeline Component Wizard, see MinMaxShip Sample Pipeline Component.

See Also

ISpecifyPropertyPages Interface


Site Packager Interface

Custom resources can be packaged into a file. A package is a specially formatted Commerce Server file. Each package is identified with a .pup extension. A package always contains a single site, which includes resource configuration data and the applications of a Commerce site. It can also include whatever files each resource chooses to package, though no special processing (such as DLL registration) will be performed during unpacking.

Custom resources do not necessarily need to do anything to be included in the packaging process. If the custom resource stores its data in the Commerce Server Administration database, that data will automatically be packaged. For more information about this low development effort approach, see Levels of Intregration for a Custom Resource.

If your custom resource stores its configuration data outside of the Administration database, or if you want other files to be included in the package, you must generally develop a custom Component Object Model (COM) component that participates in the packaging and unpacking process. For example, if your resource depends on data being placed in the Site Configuration Store, the custom COM component you develop will perform that function.

In limited circumstances, the GenericPuP object can be used instead of a newly developed COM component. For more information about using this object, see Using the GenericPuP Object.

If you must develop a custom COM component to participate in the packaging process, it must implement the IPuP interface.

The ProgIDs of custom COM components that implement the IPuP interface must be placed in the appropriate tables within the Administration database in order to be invoked.

The methods of the IPuP interface to be implemented by your custom COM component are shown in the following table.

Method | Description
CreateGroupResource | Called to create the connection between a global resource and the site-level reference to that resource. Called in conjunction with the Import method if the resource is a global resource.
Delete | Called by the Commerce Server Manager to delete custom site resource data from a computer. It also removes the configuration data for this resource from the Administration database. This method should perform whatever is required to properly delete data associated with the corresponding site resource.
DeleteGroupResource | Called to delete custom global resource data from a computer. It also removes the configuration data for this resource from the Administration database. This method should perform whatever is required to properly delete data associated with the corresponding global resource.
Export | Called to allow the custom COM component to place the files to be packaged into a specified location.
Import | Called to allow the custom COM component to retrieve the files that were packaged from a specified location.


IPuP::CreateGroupResource

If your custom resource is a global resource, you must implement this method. Since the packaged site is, by definition, using your global resource, the site must be provided with a site-level object that refers to your global resource. This method must perform the necessary processing.

When the f_ResourceFlags column indicates a global resource (the corresponding bit mask constant is IS_REFTOGROUPRES), this method is called before the Import method is called. This method is not called for site resources.

Site Packager will call this method, indicating the site name and the name of the custom resource, as it is known at the site level. Your implementation must create the global resource, and then return its name. Site Packager can then create the link between the site-level representation of the global resource, and the actual global resource. Then Site Packager will call the Import method to import any data associated with the custom global resource.

Definition

HRESULT CreateGroupResource(
  BSTR szSiteName,
  BSTR szResourceName,
  BSTR szConnStr,
  BSTR szPath,
  BOOL bSilent,
  BSTR* szGroupResourceName
);

Parameters

szSiteName
[in] A BSTR that contains the name of the site being unpacked.
szResourceName
[in] A BSTR that contains the name of the custom resource.
szConnStr
[in] A BSTR that contains the connection string.
szPath
[in] A BSTR that contains the path and name of a file for error logging.
bSilent
[in] A BOOLEAN value used to indicate whether any user interaction is allowed. A value of TRUE suppresses user interaction, allowing for unattended operation.
szGroupResourceName
[out, retval] A pointer to a BSTR to be used to return the name of the corresponding global resource.

Return Values

This method must return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method must return S_OK (0x00000000) to indicate success and a COM HRESULT error value to indicate failure. For more information about the standard COM error values that can be used, see Standard COM Errors. Additional information may be made available using the global Err object, which can be accessed by the caller using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface can be called to retrieve a text description of the error, which you can supply.

Remarks

If this method is designed to allow user interaction, the user interface used to accomplish this interaction must be capable of being suppressed. The bSilent parameter is used to indicate whether such suppression should occur. If the bSilent parameter is set to TRUE the user interface must be suppressed. If the bSilent parameter is set to FALSE, it is permissible to display the user interface and seek user interaction. This aspect of the method invocation allows for unattended operation.

The connection string includes the Data Source Name (DSN), the database login ID, and the database password for the database used by this resource. Any custom database tables must be created by the implementation of this method. Since the resource may be sharing the database with other resources, unique table names should be chosen.

See Also

Site Packager Interface

IPuP::Import


IPuP::Delete

If your custom resource is a site resource, and you want to perform custom clean up of resource data, you must implement this method.

Commerce Server Manager calls this method when it is removing a site resource from a computer. This provides an opportunity for clean up that is specific to this custom resource to be performed. After this method returns, Commerce Server Manager will continue by removing references to the custom resource, and any corresponding configuration data, from the Administration database.

Definition

HRESULT Delete(
  BSTR szSiteName,
  BSTR szResourceName,
  BOOL bKeepData,
  BOOL bSilent
);

Parameters

szSiteName
[in] A BSTR that contains the name of the site.
szResourceName
[in] A BSTR that contains the name of the custom resource.
bKeepData
[in] A BOOLEAN value used to indicate whether site resource data should be deleted or not. A value of TRUE indicates that the data should be retained, and a value of FALSE indicates that the data should be deleted.
bSilent
[in] A BOOLEAN value used to indicate whether any user interaction is allowed. A value of TRUE suppresses user interaction, allowing for unattended operation.

Return Values

This method must return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method must return S_OK (0x00000000) to indicate success and a COM HRESULT error value to indicate failure. For more information about the standard COM error values that can be used, see Standard COM Errors. Additional information may be made available using the global Err object, which can be accessed by the caller using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface can be called to retrieve a text description of the error, which you can supply.

Remarks

If this method is designed to allow user interaction, the user interface used to accomplish this interaction must be capable of being suppressed. The bSilent parameter is used to indicate whether such suppression should occur. If the bSilent parameter is set to TRUE the user interface must be suppressed. If the bSilent parameter is set to FALSE, it is permissible to display the user interface and seek user interaction. This aspect of the method invocation allows for unattended operation.

The system administrator should be able to indicate whether resource data should be retained or deleted through the user interface. The bKeepData parameter is set to TRUE or FALSE, in accordance with user input.

This method could be called from a custom script to clean up the data associated with a custom site resource.

See Also

Site Packager Interface

IPuP::DeleteGroupResource


IPuP::DeleteGroupResource

If your custom resource is a global resource, and you want to perform custom clean up of resource data, you must implement this method.

Commerce Server Manager calls this method when it is removing a global resource from a computer. This provides an opportunity for clean up that is specific to this custom resource to be performed. After this method returns, Commerce Server Manager will continue by removing references to the custom resource, and any corresponding configuration data, from the Administration database.

Definition

HRESULT DeleteGroupResource(
  BSTR szSiteName,
  BSTR szResourceName,
  BOOL bKeepData,
  BOOL bSilent
);

Parameters

szSiteName
[in] A BSTR that contains the name of the site.
szResourceName
[in] A BSTR that contains the name of the custom resource.
bKeepData
[in] A BOOLEAN value used to indicate whether site resource data should be deleted or not. A value of TRUE indicates that the data should be retained, and a value of FALSE indicates that the data should be deleted.
bSilent
[in] A BOOLEAN value used to indicate whether any user interaction is allowed. A value of TRUE suppresses user interaction, allowing for unattended operation.

Return Values

This method must return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method must return S_OK (0x00000000) to indicate success and a COM HRESULT error value to indicate failure. For more information about the standard COM error values that can be used, see Standard COM Errors. Additional information may be made available using the global Err object, which can be accessed by the caller using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface can be called to retrieve a text description of the error, which you can supply.

Remarks

If this method is designed to allow user interaction, the user interface used to accomplish this interaction must be capable of being suppressed. The bSilent parameter is used to indicate whether such suppression should occur. If the bSilent parameter is set to TRUE the user interface must be suppressed. If the bSilent parameter is set to FALSE, it is permissible to display the user interface and seek user interaction. This aspect of the method invocation allows for unattended operation.

The system administrator should be able to indicate whether resource data should be retained or deleted through the user interface. The bKeepData parameter is set to TRUE or FALSE, in accordance with user input.

This method could be called from a custom script to clean up the data associated with a custom global resource.

See Also

Site Packager Interface

IPuP::Delete


IPuP::Export

This method is call when Site Packager creates a Commerce Server Site Package. In order for your custom resource to place one or more files of its choice into this package, you must implement this method.

Definition

HRESULT Export(
  BSTR szSiteName,
  BSTR szResourceName,
  BSTR szPath,
  BOOL bExportData,
  BOOL bSilent
);

Parameters

szSiteName
[in] A BSTR that contains the name of the site.
szResourceName
[in] A BSTR that contains the name of the custom resource.
szPath
[in] A BSTR that contains the path where the custom resource is expected to place one or more files of its choice. For more information, see the Remarks section.
bExportData
[in] Reserved for future use.
bSilent
[in] A BOOLEAN value used to indicate whether any user interaction is allowed. A value of TRUE suppresses user interaction, allowing for unattended operation.

Return Values

This method must return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method must return S_OK (0x00000000) to indicate success and a COM HRESULT error value to indicate failure. For more information about the standard COM error values that can be used, see Standard COM Errors. Additional information may be made available using the global Err object, which can be accessed by the caller using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface can be called to retrieve a text description of the error, which you can supply.

Remarks

Site Packager calls this method, specifying either a file name or a folder name, based on the value of f_PupFlags column in the Resource table of the Administration database. This bit field column currently has only one bit defined for use: bit 1. If bit 1 is set to zero (0), the szPath parameter specifies a temporary file name, and if bit 1 is set to one (1), the szPath parameter specifies a temporary folder name.

If a file name is specified, this method is expected to place the data to be packaged into a single file, named as specified by the szPath parameter. After this method returns, Site Packager will add that file to the package and then delete it.

If a folder name is specified, this method is expected to place the data to be packaged into one or more files, located within the folder specified by the szPath parameter. After this method returns, Site Packager will add those files to the package and then delete them.

If this method is designed to allow user interaction, the user interface used to accomplish this interaction must be capable of being suppressed. The bSilent parameter is used to indicate whether such suppression should occur. If the bSilent parameter is set to TRUE the user interface must be suppressed. If the bSilent parameter is set to FALSE, it is permissible to display the user interface and seek user interaction. This aspect of the method invocation allows for unattended operation.

See Also

Site Packager Interface

IPuP::Import


IPuP::Import

This method is call when Site Packager unpacks a Commerce Server Site Package. In order for your custom resource to make use of one or more files from this package, you must implement this method.

Definition

HRESULT Import(
  BSTR szSiteName,
  BSTR szResourceName,
  BSTR szPath,
  BOOL bSilent
);

Parameters

szSiteName
[in] A BSTR that contains the name of the site.
szResourceName
[in] A BSTR that contains the name of the custom resource.
szPath
[in] A BSTR that contains the path where the Site Packager has deposited one or more files packaged for this resource. For more information, see the Remarks section.
bSilent
[in] A BOOLEAN value used to indicate whether any user interaction is allowed. A value of TRUE suppresses user interaction, allowing for unattended operation.

Return Values

This method must return an HRESULT indicating whether it completed successfully. See the Error Values section for more details.

Error Values

This method must return S_OK (0x00000000) to indicate success and a COM HRESULT error value to indicate failure. For more information about the standard COM error values that can be used, see Standard COM Errors. Additional information may be made available using the global Err object, which can be accessed by the caller using the API function GetErrorInfo. In particular, the GetDescription method of the IErrorInfo interface can be called to retrieve a text description of the error, which you can supply.

Remarks

Site Packager calls this method, specifying either a file name or a folder name, based on the value of f_PupFlags column in the Resource table of the Administration database. This bit field column currently has only one bit defined for use: bit 1. If bit 1 is set to zero (0), the szPath parameter specifies a temporary file name, and if bit 1 is set to one (1), the szPath parameter specifies a temporary folder name.

If a file name is specified, this method is expected to retrieve the packaged data from a single file, named as specified by the szPath parameter. Before this method returns, the data must be retrieved from that file, or the file moved to some other location known only to the custom resource. After this method returns, Site Packager will delete the temporary file.

If a folder name is specified, this method is expected to retrieve the packaged data from one or more files, located within the folder specified by the szPath parameter. Before this method returns, the data must be retrieved from these files, or the files moved to some other location known only to the custom resource. After this method returns, Site Packager will delete the temporary files.

If this method is designed to allow user interaction, the user interface used to accomplish this interaction must be capable of being suppressed. The bSilent parameter is used to indicate whether such suppression should occur. If the bSilent parameter is set to TRUE the user interface must be suppressed. If the bSilent parameter is set to FALSE, it is permissible to display the user interface and seek user interaction. This aspect of the method invocation allows for unattended operation.

See Also

Site Packager Interface

IPuP::Export

IPuP::CreateGroupResource


Generic Persistence Interfaces

Microsoft Commerce Server 2002 defines a set of generic Component Object Model (COM) interfaces related to object persistence.

The following table lists the generic interfaces.

Interface | Description
IPersistXML | Saves data to an XML-formatted string, and loads data from an XML-formatted string.
IPersistDictionary | Saves data to a Dictionary object, and loads data from a Dictionary object.
IPersistStreamInit | Saves data to a stream, and loads data from a stream. This is the form of persistence used in the ATL Pipeline Wizard.


IPersistXML Interface

The IPersistXML interface is implemented by an object that needs to read or write its data as XML-formatted text. For example, in the context of the Order Processing pipeline (OPP), it is used to map the contents of a business data object to its Extensible Markup Language (XML) equivalent.

The Dictionary object also implements this interface, allowing the entries in a Dictionary object to be converted into an XML-formatted string, and back again.

The IPersistXML interface supports the following methods:

Method | Description
LoadXML | Loads data from a string that contains the data in its XML representation.
SaveXML | Saves data in its XML representation, writing the result to a string.

Remarks

Header: commerce.h

IDL File: commerce.idl


IPersistXML::LoadXML Method

This method should load XML-formatted data from a BSTR.

Definition

HRESULT LoadXML(
  long Reserved,
  BSTR bstrXML
);

Parameters

Reserved
[in] Reserved for future use.
bstrXML
[in] A BSTR that contains object data in the XML representation expected by the object.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistXML Interface

IPersistXML::SaveXML


IPersistXML::SaveXML Method

This method should save data in an XML-formatted BSTR.

Definition

HRESULT SaveXML(
  long Reserved,
  BSTR* bstrXML
);

Parameters

Reserved
[in] Reserved for future use.
bstrXML
[out, retval] The address of a BSTR used to return object data in its XML representation.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistXML Interface

IPersistXML::LoadXML


IPersistDictionary Interface

The IPersistDictionary interface is implemented by an object that needs to read or write its data as a Dictionary object.

The IPersistDictionary interface supports the following methods:

Method | Description
GetProgID | Returns the ProgID of the object.
InitNew | Allows the object to initialize values before saved values are loaded.
IsDirty | Indicates whether the values to be saved have changed since the last save.
Load | Loads saved data from a Dictionary object.
Save | Saves data to a Dictionary object.

Remarks

Header: commerce.h

IDL File: commerce.idl


IPersistDictionary::GetProgID Method

This method should return the ProgID of the object.

Definition

HRESULT GetProgID(
  BSTR* pbstrProgID
);

Parameters

pbstrProgID
[out, retval] The address of a BSTR used to return the ProgID of the object.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistDictionary Interface


IPersistDictionary::InitNew

This method provides an opportunity for an object to initialize its state before any persisted values are loaded. You can initialize the IsDirty flag of the component within this method.

Definition

HRESULT InitNew(void);

Parameters

None.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistDictionary Interface


IPersistDictionary::IsDirty Method

This method should report whether the values of an object have changed since they were last saved. It returns the value of the IsDirty flag of the object. The flag should be cleared by the object in its implementation of the IPersistDictionary::Save method.

Definition

HRESULT IsDirty(
  long* pfDirty
);

Parameters

pfDirty
[out, retval] A pointer to a long used to return the value of the IsDirty flag.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistDictionary Interface


IPersistDictionary::Load Method

This method should load data from a Dictionary object.

Definition

HRESULT Load(
  IDispatch* pdispDict
);

Parameters

pdispDict
[in] A pointer to the IDictionary interface of the Dictionary object from which the data should be loaded.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

Remarks

The object typically uses the get_Value method on the IDictionary interface to retrieve VARIANT values. For more information about the IDictionary interface, see Dictionary Object.

See Also

IPersistDictionary Interface

IPersistDictionary::Save


IPersistDictionary::Save Method

This method should save data to a Dictionary object.

Definition

HRESULT Save(
  IDispatch* pdispDict,
  long fSameAsLoad
);

Parameters

pdispDict
[in] A pointer to the IDictionary interface of the Dictionary object in which the data should be saved.
fSameAsLoad
[in] A long that is set to TRUE if the Dictionary object pointed to by the pdispDict parameter is the same as the one from which the persisted values of the component were loaded.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

Remarks

The object typically uses the put_Value method on the IDictionary interface to save VARIANT values. For more information about the IDictionary interface, see Dictionary Object.

See Also

IPersistDictionary Interface

IPersistDictionary::Load


IPersistStreamInit Interface

The IPersistStreamInit interface is a standard Win32 OLE interface. This interface is typically implemented on any object that needs to support initialized stream-based persistence, regardless of whatever else the object does.

In the context of the Order Processing pipeline (OPP), it is used to load or save the component configuration in the pipeline configuration file (the pipeline calls this interface as appropriate). For more information about the IPersistStreamInit interface, see the OLE Programmer's Reference. Variables of type CComVariant can save and read their values from a stream and can be used to hold the values of a component that need to be saved.

The IPersistStreamInit interface supports the following methods:

Method | Description
GetClassID | Returns the class identifier (CLSID) of the object.
GetSizeMax | Returns the size needed to save the persisted values.
InitNew | Allows the object to initialize values before saved values are loaded.
IsDirty | Indicates whether the data to be saved has changed since the last save.
Load | Loads data from a stream.
Save | Saves data to a stream.

Header: ocidl.h

IDL File: ocidl.idl


IPersistStreamInit::GetClassID Method

This method should return the class identifier (CLSID) of the object.

Definition

HRESULT GetClassID(
  CLSID* pClassID
);

Parameters

pClassID
[out] The address of a CLSID variable used to return the class identifier of the object.

Returns

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

Remarks

The GetClassID method is a method of the IPersist interface from which the IPersistStreamInit interface inherits.

See Also

IPersistStreamInit Interface


IPersistStreamInit::GetSizeMax Method

This method should return the maximum size, in bytes, required in the stream to save the data to be persisted.

Definition

HRESULT GetSizeMax(
  ULARGE_INTEGER* pCbSize
);

Parameters

pCbSize
[out] The address of a ULARGE_INTEGER used to return the number of bytes the object needs in the stream to save values.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistStreamInit Interface


IPersistStreamInit::InitNew Method

This method provides an opportunity for the object to initialize its state before any persisted values are loaded. You should initialize the IsDirty flag of the object within this method.

Definition

HRESULT InitNew(void);

Parameters

None.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

See Also

IPersistStreamInit Interface


IPersistStreamInit::IsDirty Method

This method should report whether the values of an object have changed since they were last saved. It returns the value of the IsDirty flag of the object. The flag should be cleared by the object in its implementation of the IPersistStreamInit::Save method.

Definition

HRESULT IsDirty(void);

Parameters

None.

Return Values

This method must return the HRESULT value S_OK to indicate that the data has changed, and must return a value of S_FALSE to indicate that the data has not changed since the last Save operation.

See Also

IPersistStreamInit Interface


IPersistStreamInit::Load Method

This method should load object data from the specified stream.

Definition

HRESULT Load(
  LPSTREAM pStm
);

Parameters

pStm
[in] A pointer to the stream from which to load the object data.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

Remarks

The seek pointer is set as it was in the most recent IPersistStreamInit::Save method. This method can seek and read from the stream, but cannot write to it.

On exit, the seek pointer must be in the same position it was in on entry, immediately past the end of the data.

See Also

IPersistStreamInit Interface

IPersistStreamInit::Save


IPersistStreamInit::Save Method

This method should save object data to the specified stream.

Definition

HRESULT Save(
  LPSTREAM pStm,
  BOOL fClearDirty
);

Parameters

pStm
[in] A pointer to a stream in which to save the object data.
fClearDirty
[in] A BOOL value indicating whether or not to clear the IsDirty flag. If TRUE, the flag should be cleared. If FALSE, the flag should be left unchanged.

Return Values

This method must return the HRESULT value S_OK to indicate success, and should generally return one of the standard COM error values to indicate failure.

Remarks

The seek pointer is positioned at the location in the stream at which the object should begin writing its data. The object calls the IStream::Write method to write its data.

On exit, the seek pointer must be positioned immediately past the object data. The position of the seek pointer is undefined if an error returns.

See Also

IPersistStreamInit Interface

IPersistStreamInit::Load


Pipeline Component Reference

This section contains the reference material for the following pipeline components supplied with Commerce Server.

Pipeline Component Name | Description
AddAttachments | Adds attachments to a direct mail message.
AdvertisingNeedOfDelivery | Ensures advertisements are selected often enough to meet business commitments.
ComposeDMLMessage | Creates the body of a direct mail message.
CreateUPMCookie | Collects cookie data to pass to an Active Server Pages (ASP) page creating a personalized direct mail message.
CSFLoadAdvertisements | Loads advertising data for the Content Selection Framework through the CacheManager object.
CSFLoadDiscounts | Loads discount data for the Content Selection Framework through the CacheManager object.
CSFWriteEvents | Used with the CacheManager object to log Content Selection Framework events.
DBOrderPromoADO | Retrieves data about price promotions from the database and adjusts item prices accordingly.
DefaultHandlingCy, DefaultHandling | Used as placeholder handling components. They initialize the total handling for the order to zero (0).
DefaultItemPriceCy, DefaultItemPrice | Set the regular price of an item to the list price returned by pipeline components such as QueryCatalogInfo or QueryProdInfoADO.
DefaultOrderSubTotalCy, DefaultOrderSubTotal | Calculates the subtotal for the order.
DefaultPayment | Assigns a default value to the payment authorization code. This component is usually replaced by a third-party payment component.
DefaultShippingCy, DefaultShipping | Placeholder shipping components. They set the shipping cost to zero (0).
DefaultShopperInfo | Moves information from the Shopper dictionary in the Context dictionary of the pipeline to the OrderForm object.
DefaultTaxCy, DefaultTax | Set the tax fields of the order to zero (0). These components are usually replaced by third-party tax components.
DefaultTotalCy, DefaultTotal | Calculates the order total from the subtotals.
EvalTargetGroups | Used to target particular groups for advertising, content selection, and discounts. This component evaluates a list of expressions for each item in a list and adjusts item selection scores.
ExecuteProcess | Runs an external executable file.
FilterContent | Applies provided filters to a content list in a Content Selection pipeline (CSP).
FixedHandling | Adds a fixed handling charge to the order.
FixedShipping | Applies a fixed shipping charge to the order.
FlagInventory | Determines whether any items on the order form are out of stock.
FormatTemplate | Merges data from selected items and their associated templates to form formatted strings. These are usually Hypertext Markup Language (HTML) strings ready for display on the page.
HistoryPenalty | Applies penalties to content items based on how recently they have been selected.
IISAppendToLog | Records information about content selection results in the QueryString field of the Internet Information Services (IIS) log file.
InitCSFPipeline | Used at the beginning of a Content Selection pipeline (CSP) to initialize the values needed in the rest of the pipeline.
ItemPromo | Applies a promotional price adjustment to an item on the order form.
LinearHandling | Sets the handling total on the order by multiplying a field on the order form by a fixed rate.
LinearShipping | Calculates the shipping total on the order form using a fixed rate.
LoadHistory | Retrieves a history string from a user profile, an item in the ASP session collection, or a cookie.
LocalInventory | Sets the number of items backordered on the order form.
MakePO | Produces a formatted purchase order (PO) text string by merging information from the order form with a purchase order template.
MoneyConverter | Converts OrderForm keys and values from integers to the new currency type, or from the new currency type to integer.
OrderDiscount | Applies discounts scheduled in the Campaign Manager module in Commerce Server Business Desk to the shopping basket.
POtoFile | Sends a purchase order or other textual data to a file.
QueryCatalogInfo | Retrieves catalog information for every item in the order form.
QueryProdInfoADO | Retrieves product information from a database.
RecordEvent | Records event delta counts for the selected content items (the winners) in the Performance dictionary.
RecordHistory | Records the identifiers of the winning content items in the history list string.
RequiredHandlingCy, RequiredHandling | Verifies that the handling total is present in the order.
RequiredItemAdjustPriceCy, RequiredItemAdjustPrice | Ensures that the current price for each item in the order is set and that it has not been changed since the last time the basket was viewed.
RequiredItemPriceCy, RequiredItemPrice | Verifies that each item in the order form has a regular price assigned to it. Regular prices are assigned by the DefaultItemPrice pipeline component and similar components.
RequiredOrderAdjustPriceCy, RequiredOrderAdjustPrice | Adjusts the total cost of each item in the order after applying any discounts.
RequiredOrderCheck | Verifies that the order form contains at least one item.
RequiredOrderInitCy, RequiredOrderInit | Initializes the payment authorization code, order ID, totals, and subtotals in the order form.
RequiredOrderSubtotalCy, RequiredOrderSubtotal | Ensures that a subtotal exists on the order form.
RequiredPayment | Verifies that the payment authorization code exists in the order form (is not NULL).
RequiredProdInfo | Deletes items flagged for deletion by a previous Product Info stage component.
RequiredShippingCy, RequiredShipping | Verifies that the shipping total has been set.
RequiredTaxCy, RequiredTax | Verifies that the total tax and tax included appear in the order form.
RequiredTotalCy, RequiredTotal | Verifies that values on a page have not been tampered with or reset. The components compare values in the order against values in the _Verify_With dictionary.
SaleAdjust | Applies a sale price to an item. This pipeline component is used for backward compatibility only. This pipeline component has been replaced by the OrderDiscount component.
SampleRegionalTax | Use this component for calculating taxes using the multiple shipment features of Commerce Server 2002.
SaveHistory | Records the history string in one of three locations: the User Profile object, the Active Server Pages (ASP) session collection, or the Hypertext Transfer Protocol (HTTP) cookie.
SaveReceipt | Saves the order in a database table.
ScoreDiscounts | Adjusts scores of discount items to promote discounts most relevant to the current user.
Scriptor | Executes a script in a Microsoft ActiveX scripting language.
SelectWinners | Selects items based on their final scores in the Content Selection pipeline.
SendPrecomposedMessage | Sends a direct mail message composed in earlier stages in the pipeline.
SendSMTP | Sends an e-mail message to a specified recipient.
ShippingDiscountAdjust | Applies shipping discounts to the order.
ShippingManagerCache | Loads shipping data for the multiple shipments shipping architecture through the CacheManager object.
ShippingMethodRouter | The ShippingMethodRouter pipeline component looks up and runs the pipeline components that calculate shipping costs for individual shipments, and then calculates the shipping total for the entire order.
SimpleCanadaTax | Calculates the Canadian Goods and Services Tax (GST) and Provincial Sales Tax (PST).
SimpleJapanTax | Computes taxes according to the Japanese tax model.
SimpleUSTax | Applies taxes on any order sent to a specified state in the United States.
SimpleVATTax | Calculates a value-added tax (VAT).
Splitter | Divides the order into groups based on a list of item keys. Frequently used to divide the order into multiple shipments.
SQLItemADO | Runs a query for each item in the order form.
SQLOrderADO | Runs a single SQL query on the order, passing order parameters to the query.
StepwiseShipping | Calculates shipping costs for shipments in the multiple-shipment shipping architecture. This component is never directly used in a pipeline; it is run by the ShippingMethodRouter pipeline component.
TableHandlingADO | Sets the handling total on the order based on values retrieved from the database.
TableShippingADO | Sets the total shipping on the order by using values retrieved from the database.
ThrottleDMLPerformance | Controls the speed with which direct mail messages are processed by the pipeline.
ValidateCCNumber | Checks the expiration date of a credit card and performs a checksum test on the number.
VerifyMessageBody | Checks the body of a direct mail message according to the user flags.
VerifyRecipientData | Checks the data about the recipient of a direct mail message.


AddAttachments

Use this component to add attachments to a direct mail message.

Although the component appears as AddAttachments in the Pipeline Editor, its ProgID is Commerce.DMLAddAttachments.

Intended use: Direct Mailer pipeline, Compose E-mail stage.

Configuration Values

None.

Values Read

The AddAttachments component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
cdo_result | Order | The result code (an HRESULT) from the most recent Collaboration Data Objects (CDO) operation.
attachments | Order | A SimpleList of Uniform Resource Locators (URL) pointing to attachments.
cdo_message | Context | A reference to the CDO message object (CDO.Message).

Values Written

The AddAttachments component writes the following values to the Order dictionary.

Key | Description
cdo_result | The result code (an HRESULT) from the most recent CDO operation.
cdo_error | Optional. An error string from the most recent CDO operation, if any. NULL if there is no error.

Remarks

The AddAttachments component uses the CDO for Microsoft Windows 2000 to add the attachments to the message.

The component skips processing if the bypass flag (rcp_bypass) is True or if the last CDO operation did not succeed (cdo_result not equal to S_OK).

The message body should already exist before this component runs.

See Also

ComposeDMLMessage

CreateUPMCookie

SendPrecomposedMessage

ThrottleDMLPerformance

VerifyMessageBody

VerifyRecipientData


AdvertisingNeedOfDelivery

Use this component to ensure advertisements are selected often enough to meet business commitments.

Although this component appears as AdvertisingNeedOfDelivery in the Pipeline Editor, its ProgID is Commerce.CSFAdvertisingNeedofDelivery.

Intended use: Content Selection pipeline, Initial Score stage.

Configuration Values

None.

Values Read

The AdvertisingNeedOfDelivery component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_content | Order | A reference to the ContentList object containing the content items.
_performance | Order | A reference to the Performance dictionary retrieved from the cache by the InitCSFPipeline component.
_cache._LastNODRecalc | Context | The _LastNODRecalc key value is read from the _cache key, a reference to the current dictionary containing advertising information. The _LastNODRecalc value is the time that the AdvertisingNeedOfDelivery component last recomputed the need of delivery for all ads in the ContentList object.
Trace | Context | Optional. A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this flag is set to True.

The AdvertisingNeedOfDelivery component reads the following values for each item in the ContentList object referred to by the _content key.

Key | Description
need_of_delivery | The need of delivery for the item — the initial score of the item.
invalid_nod | A Boolean flag. If True, the need of delivery will be recalculated for the item.
ad_type The type of the ad. Valid types are:
  • 1 for paid ads
  • 2 for house ads
ad_weight | The current weight assigned to the ad. Used for house ads or paid ads in a campaign-level goaled campaign. Specified in the Campaign Manager module in Commerce Server Business Desk.
event_name | The name of the event.
events_scheduled | The total number of events scheduled for the item.
events_served | The total number of events served to date.
prev_events_served | The number of events served before the effective date.
eff_date_start | The effective item start date.
date_end | The item end date.
time_of_day_start | The time of day the event starts.
time_of_day_end | The time of day the event ends.
days_of_week | The days of the week bit flags.

Values Written

The AdvertisingNeedOfDelivery component writes the following values to the indicated dictionaries.

Key | Dictionary | Description
_content Order Specifically, the component writes to the following fields of the content items:
need_of_delivery
The calculated need of delivery for the ad.

invalid_nod

Reset to False because the need of delivery has been calculated.

score

The score for the item. Initialized to the need of delivery for the item or, for house ads, the ad_weight key.
_cache._LastNODRecalc | Context | The time that the AdvertisingNeedOfDelivery component last recomputed the need of delivery for all ads in the ContentList object.

Remarks

This component calculates the Need of Delivery (NOD) for ad items in the ContentList object and assigns these as the initial scores for the items. The NOD for each item is recalculated periodically or when the invalid_nod flag for that item is True. For more information about columns in the ContentList object, see CSFLoadAdvertisements.

The AdvertisingNeedOfDelivery component uses the SetScore method of the ContentList object for setting the initial scores.

The NOD value for paid advertisements is not calculated in this component. Rather, for efficiency, it is calculated in the LoadAdvertisements cache loader component, and in the RecordEvent pipeline component. For paid ads, this component copies the value in the need_of_delivery field into the score field.

The NOD for house ads is set to be equal to the weight of the house ad. The decision as to whether or not to serve house ads is made by the SelectWinners pipeline component. House ads compete only against other house ads. The run percentage for a house ad is equal to the weight of the ad divided by the sum of the weights for all house ads.

This scoring strategy is different than that used in the Site Server 3.0 Commerce Edition AdServer component. In the Site Server 3.0 Commerce Edition AdServer component each house ad was scored and selected just like paid ads, only starting at a fixed need of delivery score of 0.95.

Commerce Server 2002 uses a NOD formula for paid ads. It is designed to give each ad a fair chance of selection when the entire ad schedule is lagging. Under this formula, all ads appear at rates proportional to their goals.

The formula is:

NOD = ( Events Scheduled / Time Total ) / ( Events Served / Time Elapsed )

With the formula used, an ad meeting its delivery goals will have a NOD equal to 1.0. An ad that is lagging will have an NOD greater than 1.0. The farther behind an ad is in its delivery goal, the greater the NOD. Ads that have exceeded their delivery goals have an NOD of less than 1.0.

See Also

SelectWinners


ComposeDMLMessage

Use this component to create the body of a direct mail message.

Although the component appears as ComposeDMLMessage in the Pipeline Editor, its ProgID is Commerce.DMLComposeMessage.

Intended use: DirectMailer pipeline, Compose E-mail stage.

Configuration Values

None.

Values Read

The ComposeDMLMessage component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
use_precomposed_body | Order | Boolean. If True, the component creates the message from the plain-text body assigned to the precomposed_body key.
precomposed_body | Order | Optional. The plain-text message body. This key defaults to an empty string.
rcp_url | Order | Optional. The URL used to retrieve the mailing content. This takes precedence over default_url key.
rcp_url_isfile | Order | Optional. This is True if the URL for the content (rcp_url) is a file and not an http:// address.
rcp_url_content | Order | Optional. The content of the file pointed to by the rcp_url key if the rcp_url_isfile key is True.
from_field | Order | The "From" field for the message.
replyto_field | Order | The "Reply-to" field for the message.
rcp_email | Order | The e-mail address of the recipient.
subj_field | Order | The "Subject" field for the message.
rcp_formatting Order Determines the format of the message. The values are:

0 — Default formatting

1 — Plain text

2 — MIME

3 — MHTML

This key overrides the default formatting.
rcp_personalize Order Indicate whether or not to personalize the message for this recipient. The values are:

0 — Do not personalize

1 — Personalize

This key defaults to 1 (personalize).
rcp_locale | Order | The locale code to use for the recipient.
default_locale | Order | Optional. The locale code to use if there is no recipient locale code (rcp_locale).
cookie | Order | The dictionary containing the cookie data.
cdo_message | Context | A reference to the Collaboration Data Objects (CDO) message object (CDO.Message).
cdo_config | Context | A reference to the CDO configuration object (CDO.Configuration).
default_url | Context | Optional. The URL used to retrieve the mailing content.
default_url_isfile | Context | Optional. This is True if the default URL is a file path and not an http:// path.
default_url_content | Context | Optional. The content of the file pointed to by the default_url key if the default_url_isfile key is True.
default_formatting Context Optional. The default format for the message. The values are:

0 — Default formatting

1 — Plain text

2 — MIME

3 — MHTML
cdo_CreateMHTMLBodyFlags Context Optional. Responsible for controlling whether objects in the email message are embedded or not. If this key is not set, objects in the email are embedded. If the key is set to the appropriate value (31), the direct mail message body contains the output of the target web page as is.

For example, if MailFormat is set to 3 (MHTML), and the CreateMHTMLBodyFlags is set to 31, the mail message body snippets is:

<img src=www.microsoft.com/banner.jpg height=100 width=100>

If MailFormat is set to 3 (MHTML), and the CreateMHTMLBodyFlags is not set, the mail message body snippets is:

<img src=cid:000101c1c44f$1bf3a256$_CDOSYS2.0 height=100 width=100 />

To set this key, you typically add a scriptor component preceding the ComposeDMLMessage pipeline component to the current stage with the following code:

function MSCSExecute(config, orderform, context, flags)
context("cdo_CreateMHTMLBodyFlags") = 31
MSCSExecute = 1
end function
sub MSCSOpen(config)
end sub
sub MSCSClose()
end sub

For more information about the CreateMHTMLBody method and the CdoMHTMLFlags enumeration, see the Platform SDK in the MSDN Online Library at http://go.microsoft.com/fwlink/?LinkId=5161.

Values Written

The ComposeDMLMessage component writes the following values to the Order dictionary.

Key | Description
cdo_result | The result code (an HRESULT) from the most recent CDO operation.
cdo_error | Optional. An error string from the most recent CDO operation, if any. NULL if there is no error.

Remarks

The ComposeDMLMessage component skips processing if the bypass flag (rcp_bypass) is True. Otherwise, it uses the Collaboration Data Objects (CDO) for Microsoft Windows 2000 to create the mail message. The component checks for errors after each CDO operation.

For non-personalized messages using a simple flat file, you can set the use_precomposed_body key to True. The component will load the message body from the precomposed_body key.

For personalized messages, the ComposeDMLMessage component uses the information gathered by the CreateUPMCookie component to create the cookie string.

The ComposeDMLMessage component can process multilingual messages using locale values from the Order dictionary (the rcp_locale key or the default_locale key). The locale values are passed to the CDO without checking. If no locale code is given, the CDO default locale is used.

If a file path is used for the rcp_url key or the default_url key, Direct Mailer preloads the content of the file (into the rcp_url_content key or the default_url_content key) in order to improve performance. In this case, message content is limited to 2 megabytes for plain ASCII text and to 1 megabyte for Unicode text.

See Also

AddAttachments

CreateUPMCookie

SendPrecomposedMessage

ThrottleDMLPerformance

VerifyMessageBody

VerifyRecipientData


CreateUPMCookie

Use this component to collect cookie data to pass to an Active Server Pages (ASP) page generating a personalized message.

Although the component appears as CreateUPMCookie in the Pipeline Editor, its ProgID is Commerce.DMLCreateUPMCookie.

Intended use: DirectMailer pipeline, Create Cookies stage.

Configuration Values

None.

Values Read

The CreateUPMCookie component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
rcp_personalize | Order | Optional. Numeric. Use this key to indicate whether or not to personalize the message for this recipient. The values are: 0 — Do not personalize 1 — Personalize The default is 1 (personalize).
cookie | Order | Optional. A reference to a dictionary to hold the created cookie. This key is created if it is not present.
rcp_guid | Order | Optional. The globally unique identifier (GUID) uniquely identifying this recipient, taken from the user profile.
rcp_email | Order | The e-mail address of the recipient.
css_site | Context | The site ID string.
campaign_item | Context | Optional. The campaign item ID.
campaign_item_name | Context | Optional. The name of the campaign item.
default_url_isfile | Context | This key is True if the defaultURL is a file path and not an http:// address.

Values Written

The CreateUPMCookie component writes the following values to the Order dictionary.

Key | Description
Cookie | A dictionary containing the information that will be used in the cookie.

Remarks

The CreateUPMCookie component does nothing if the rcp_bypass key is True, if the default_url_isfile key is True, or if the rcp_personalize key is zero (0).

The CreateUPMCookie component keeps the cookie information in a dictionary. The cookie string is produced by the ComposeDMLMessage component.

If the message is not personalized, the component creates a cookie entry (assigns YES to the key Microsoft_DirectMailer) to prevent the Collaboration Data Objects (CDO) from using a locally stored cookie.

The cookie string created from the data has the following format:

MSCSProfile='encryptedstring';CampaignItemID=string;CampaignItemName=string;UserEmail=string

The items in the cookie have the following meanings.

Item | Description
MSCSProfile | String. The user profile ID, which is needed for personalizing the message.
CampaignItemID | String. The Campaign item ID, which is necessary for click tracking.
CampaignItemNames | String. The Campaign item name, which allows labeling the message for the user.
UserEmail | String. The e-mail address of the user.

The abbreviations in the table are also the keys used in the Cookie dictionary.

The user profile ID is encrypted only when the e-mail is sent as part of the campaign. In a stand-alone Direct Mailer job, the user profile ID is not encrypted.

See Also

AddAttachments

ComposeDMLMessage

SendPrecomposedMessage

ThrottleDMLPerformance

VerifyMessageBody

VerifyRecipientData


CSFLoadAdvertisements

Use this component with the CacheManager object to load advertising content from a database.

Note

  • Although the CSFLoadAdvertisements component implements two pipeline component interfaces (IPipelineComponent and IPipelineComponentAdmin), it is not a pipeline component, it does not appear in the Pipeline Editor, and it cannot be used or configured in the Pipeline Editor.

Configuration Values

None.

Values Read

None.

Values Written

None.

Remarks

You can use the CSFLoadAdvertisements component with the CacheManager object to load advertising content for use later in your application.

When run by the CacheManager object, the CSFLoadAdvertisements component uses two pipeline dictionaries (Order and Context) to determine how to run and how to return information to the CacheManager object.

The CSFLoadAdvertisements component first opens a connection to the database and gets the list of ads. The component uses a ContentListFactory object to populate a ContentList object with the data. The component then breaks the retrieved data into templates, target groups, and page groups.

The following table describes the columns in the ContentList object returned by the CSFLoadAdvertisements component. Column names appear in alphabetical order.

Column Name | Type | Flags
ad_type | short (CLCOL_I2) | 1 (CLCOL_READONLY)
ad_weight | int (CLCOL_I4) | 1 (CLCOL_READONLY)
campaign_id | int (CLCOL_I4) | 1 (CLCOL_READONLY)
customer_id | int (CLCOL_I4) | 1 (CLCOL_READONLY)
date_end | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY)
date_start | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY)
days_of_week | short (CLCOL_I2) | 1 (CLCOL_READONLY)
eff_date_start | date/time (CLCOL_DATE) | 1 (CLCOL_READONLY)
event_name | String (CLCOL_STRING) | 1 (CLCOL_READONLY)
events_scheduled | int (CLCOL_I4) | 1 (CLCOL_READONLY)
events_served | int (CLCOL_I4) | 1 (CLCOL_READONLY)
exposure_limit | int (CLCOL_I4) | 1 (CLCOL_READONLY)
height | short (CLCOL_I2) | 1 (CLCOL_READONLY)
industry | String (CLCOL_STRING) | 1 (CLCOL_READONLY)
invalid_nod | Boolean (CLCOL_BOOL) | 0 (DEFAULT)
item_id | int (CLCOL_I4) | 1 (CLCOL_READONLY)
name | String (CLCOL_STRING) | 1 (CLCOL_READONLY)
need_of_delivery | real (CLCOL_R4) | 0 (DEFAULT)
prev_events_served | int (CLCOL_I4) | 1 (CLCOL_READONLY)
score | real (CLCOL_R4) | 6 (CLCOL_PRIVATE | CLCOL_SCORE_COLUMN)
size | String (CLCOL_STRING) | 1 (CLCOL_READONLY)
target_groups | SafeArray (CLCOL_VARIANTARRAY) | 1 (CLCOL_READONLY)
template | String (CLCOL_STRING) | 1 (CLCOL_READONLY)
time_of_day_end | short (CLCOL_I2) | 1 (CLCOL_READONLY)
time_of_day_start | short (CLCOL_I2) | 1 (CLCOL_READONLY)
values | IDispatch (CLCOL_DISPATCH) | 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 for ContentListSchema.ColumnType.

Example

See the example in CacheManager Object.


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

None.

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.

Example

See the example in CacheManager Object.


CSFWriteEvents

Use this component with the CacheManager object to log event content from the Content Selection Framework.

Note

  • Although the CSFWriteEvents 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

You can determine how the CSFWriteEvents component runs by setting component properties. Use the following box on the CSFWriteEvents tab of the Component Properties dialog box to determine this information.

Box | Description
Connection String | The connection string used to connect to the database. This may be a full connection string or a name in a connection map. If blank, the default connection string is passed.

Values Read

The CSFWriteEvents component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_performance | Order | The previous event delta count for the various content items.

Values Written

None.

Remarks

You can use the CSFWriteEvents component with the CacheManager object to save event information in the database for later adjustment of advertising and other campaign schedules.

When run by the CacheManager object, the CSFWriteEvents component uses two pipeline dictionaries (Order and Context) to determine how to run and how to return information to the CacheManager object.

The CSFWriteEvents component first opens a connection to the database. It then writes the event data to the database using information stored in the Performance dictionary.

Example

See the example in CacheManager Object.


DBOrderPromoADO

Use this component to run a query to retrieve data about price promotions from the database and to adjust item prices accordingly.

Intended use: Order Processing pipeline, Order Adjust Price stage.

Note

  • The DBOrderPromoADO component should not be used for future development. The discount features of the Content Selection pipeline provide a more powerful and general mechanism for applying product discounts. For more information, see Discount Objects.

Configuration Values

You can determine where the DBOrderPromoADO component retrieves the document and where it writes the result by setting component properties. Use the following boxes on the DB Order Promo (ADO) tab of the Component Properties dialog box to determine this information.

Box | Description
Query | Type either the full SQL text of the query run by this component or the name of a query whose full SQL text is defined in the Global.asa file.
Connection string | Type the connection string to connect to the database. This may be a full data source name (DSN) or a name in a connection map. If blank, the default connection string is used.

Values Read

The DBOrderPromoADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._iadjust_currentprice | Order | The current price of the item before the promotion is applied.
item._product_* | Order | Optional. The product properties for each item.
_shopper_* | Order | Optional. The shopper properties.
item._n_unadjusted | Order | Optional. The quantity of line items that have not been discounted.
item.quantity | Order | The quantity of the item ordered.
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default query string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

The DBOrderPromoADO component writes the following values to the Order dictionary.

Key | Description
item._oadjust_adjustedprice | The total price of all the items after all the discounts have been applied. May have been adjusted by the application of a promotion.
item._n_unadjusted | The quantity of line items that have not been discounted. May have been adjusted by the application of a promotion.

Remarks

The DBOrderPromoADO component runs a query to determine if the promotional conditions defined in a database table have been met by items in the order form. If they have, the DBOrderPromoADO component applies the promotion to the OrderForm object by initializing item._oadjust_adjustedprice and item._n_unadjusted keys for the item affected by the promotion.

The item._oadjust_adjustedprice key reflects the total cost of a given item, adjusted for promotions. The item._n_unadjusted key contains the number of items that were not affected by the promotion.

Suppose, for example, that you define a promotion in which a user who purchases one of Item A gets one of Item B at half-price. Suppose further that the following conditions exist:

  • The user has purchased one of Item A.
  • The user has purchased three of Item B.
  • Item B has a regular price of 1.00.

When the DBOrderPromoADO component is run, the user will, by the terms of the promotion, get two of the items at the regular price of 1.00. However, the user will get the third item at 50 percent off. Thus, the item._oadjust_adjustedprice key for Item B will be 2.50.

In addition, because only one of the three Item B products will have been promotionally adjusted, the item._n_unadjusted key will be set to two. This is critical, because once an item has had its price adjusted, the price cannot be adjusted again.

In this example, one of Item B had its price adjusted. The other two Item B items did not. Consequently, no matter how many of the three items qualify for a promotional adjustment under a later DBOrderPromoADO component, only the two previously unadjusted Item B items can be adjusted.

Because the DBOrderPromoADO component expects the query that you supply to reference a specific group of table columns, the table in which you store promotions must have a given structure.

The database query must return the following columns not marked as Optional:

Database Column | Description
cond_column | This column contains the name of the item attribute against which the promotion condition is checked.
cond_op | A comparison operator that compares cond_column to cond_value; for example = or <>.
cond_value A value that identifies the item being promoted. For example, if the cond_column is _product_pfid, the cond_op is "=" and the cond_value is 22; then an item in the items list with a _product_pfid that evaluates to 22 meets the condition set.

If this value is a number, it must be an integer value; floating-point numbers (for example, 10.0) are not accepted.
cond_all | Optional. If set to 1 (True), any product in the set of products to be purchased will trigger this promotion. Otherwise, this promotion will be triggered only by products that meet the criteria defined in cond_column, cond_op, and cond_value (the condition set). Products are removed from the condition and award sets after they have been involved in a promotion to prevent a single product from being a participant in multiple promotions.
award_column | The award_column, coupled with the award_op and award_value columns, define the award set for the promotion. The award column contains a value indicating the key and value that defines the award criteria.
award_op | A comparison operator that compares award_column with award_value; for example = or <>.
award_value | This column indicates the value of the element referenced by the award_column column.
award_all | Optional. If set to 1 (True), then the award can be applied to any product. Otherwise, this award will be applied only to products that meet the criteria defined in the award_column, award_op, and award_value columns (the award set).
shopper_column | A value indicating the user-specific information. This can be a wildcard value (@) that indicates all users are eligible for the promotion.
shopper_op | This column should be set to = if a user is specified; otherwise, it is a wildcard value (@).
shopper_value | A value indicating the type of user; if it is any user, set it to a wildcard value (@).
shopper_all | Optional. This column indicates whether this promotion is available to all users. If this value is 0 (False), the promotion is available only to users who meet the criteria defined in the shopper_column, shopper_op, and shopper_value columns.
cond_min | This column contains a value, in cents (or other currency unit), or the number of units of the minimum purchase necessary to be eligible for the promotion. The interpretation of the cond_min column depends on the value referenced in the cond_basis column. For example, if the cond_basis column contains "P", the cond_min column is assumed to measure price. If the cond_basis column contains "Q", the cond_min column is assumed to measure quantity.
cond_basis | A value indicating whether the cond_min column is measured in price or quantity (P or Q, respectively).
award_max | The size of the award set.
disjoint_cond_award The column contains a number (1 or 0) indicating whether the award can be "disjointed." If the value is 0, the award is disjointed; otherwise, it is not. The term disjointed, in this context, refers to whether or not an item can promote itself. Where the condition set and the award set do not refer to the same item, this value is ignored.

Suppose, for example, that you have a promotion that dictates that if you purchase one of Item A, you get one of Item A at fifty percent off.

If the award is not disjointed (the column disjoint_cond_award is equal to 0), then a user needs to purchase only one of Item A to get that item at fifty percent off. If the award is disjointed (the column disjoint_cond_award is equal to 1), then a user purchasing Item A will get a second Item A at fifty percent off, but will receive no discount until the second item is added to the basket.
disc_value | A number indicating the amount of the discount.
disc_type | A type of discount, either a percent (%) or a currency ($) symbol.
date_start | Optional field. The date the promotion begins, at one second after midnight.
date_end | Optional field. The date the promotion ends, at one second after midnight. Because the date_start and date_end columns are actually date-time pairs that specify midnight, the date_end column excludes the date specified.
Connection String | The DSN connection string to be used to connect to the database.

An order promotion has three criteria: the user criterion, a condition criterion, and an award criterion. If the user does not match the user criterion, the promotion is not applied. If the user does match the user criterion, then the other two criteria are applied to all the items in the order, producing two sets: the condition set (those matching the condition criterion) and the award set (those matching the award criterion).


DefaultHandlingCy, DefaultHandling

Use these components as placeholder handling components. They initialize the total handling for an order to zero (0).

The DefaultHandling component is for backward compatibility only. The DefaultHandlingCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Handling stage.

Configuration Values

None.

Values Read

None.

Values Written

The DefaultHandlingCy component assigns a value to the following key in the Order dictionary. The DefaultHandling component assigns a value to the same key but without cy_.

Key | Description
order._cy_handling_total | The total cost for handling the order.

Remarks

The DefaultHandlingCy and DefaultHandling components assign zero (0) to the total handling cost in the Order dictionary. They are placeholder components that are replaced by other handling components in actual use.


DefaultItemPriceCy, DefaultItemPrice

Use these components to set the regular price of an item to the list price returned by components such as QueryCatalogInfo or QueryProdInfoADO.

The DefaultItemPrice component is for backward compatibility only. The DefaultItemPriceCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Item Price stage.

Configuration Values

None.

Values Read

The DefaultItemPriceCy component reads the following values from the indicated dictionaries. The DefaultItemPrice component reads the same value but without cy_.

Key | Dictionary | Description
item._product_cy_list_price | Order | The list price for the item as returned by a component such as QueryCatalogInfo or QueryProdInfoADO.

Values Written

The DefaultItemPriceCy component assigns a value to the following key in the Order dictionary. The DefaultItemPrice component assigns a value to the same key but without cy_.

Key | Description
item._cy_iadjust_regularprice | The regular price of the item.

Remarks

The DefaultItemPriceCy and DefaultItemPrice components perform the same actions although on different dictionary keys. The following discussion uses the keys for DefaultItemPriceCy.

To set the regular price to a price other than the list price, replace these components in the pipeline.

For each item in the order form (each item in the items collection), the DefaultItemPriceCy component assigns the _iadjust_regularprice key to the value stored in the _cy_product_list_price key for the item. The regular price is typically set by the QueryCatalogInfo or QueryProdInfoADO components in the Product Info stage.

If the QueryCatalogInfo or QueryProdInfoADO components do not retrieve the list price, the Item dictionary will not contain the _product_list_price key. In this case, you need to add a component (a Scriptor, for example) to retrieve the list prices so that the DefaultItemPrice component can initialize the _iadjust_regularprice key.

Stages that follow the Item Price stage in the pipeline contain components that depend on the _iadjust_regularprice key being set. If this key does not have a value, these components fail. The RequiredItemPrice component ensures that the values exist.

See Also

QueryCatalogInfo

QueryProdInfoADO

RequiredItemPriceCy, RequiredItemPrice


DefaultOrderSubTotalCy, DefaultOrderSubTotal

Use these components to calculate the subtotal for an order.

The DefaultOrderSubTotal component is for backward compatibility only. The DefaultOrderSubTotalCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Order Subtotal stage.

Configuration Values

None.

Values Read

The DefaultOrderSubTotalCy component reads the following values from the indicated dictionaries. The DefaultOrderSubTotal component reads the same key but without cy_.

Key | Dictionary | Description
item._cy_oadjust_adjustedprice | Order | The total price of all the items after all the discounts have been applied.

Values Written

The DefaultOrderSubTotalCy component assigns a value to the following key in the Order dictionary. The DefaultOrderSubTotal component assigns to the same key but without cy_.

Key | Description
_cy_oadjust_subtotal | The subtotal of all the items.

Remarks

The subtotal is calculated by summing the total cost for each item in the items SimpleList object in the OrderForm object.


DefaultPayment

Use this component to assign a default value to the payment authorization code. This component is usually replaced by a third-party payment component.

Note

  • The DefaultPayment component does not follow the component coordination rules. The component always sets the payment authorization code.

Intended use: Order Processing pipeline, Payment stage.

Configuration Values

None.

Values Read

None.

Values Written

The DefaultPayment component assigns a value to the following key in the Order dictionary.

Key | Description
_payment_auth_code | The payment authorization code.

Remarks

The DefaultPayment component assigns the value FAITH, a string, as the default authorization code.


DefaultShippingCy, DefaultShipping

Use these components as placeholder shipping components. The components set the shipping cost to zero (0).

The DefaultShipping component is for backward compatibility only. The DefaultShippingCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Note

  • The DefaultShippingCy and DefaultShipping components do not follow the component coordination rules. The components always zero the shipping total.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

None.

Values Read

None.

Values Written

The DefaultShippingCy component assigns a value to the following key in the Order dictionary. DefaultShipping assigns a value to the same key but without cy_.

Key | Description
_cy_shipping_total | The total cost for shipping the order.

Remarks

The DefaultShippingCy and DefaultShipping components set the shipping total to zero (0).


DefaultShopperInfo

Use this component to move information from the Shopper dictionary in the Context dictionary of the pipeline to the OrderForm.

Intended use: Order Processing pipeline, Shopper Information stage.

Configuration Values

None.

Values Read

The DefaultShopperInfo component reads the following value from the indicated dictionary.

Key | Dictionary | Description
Shopper | Context | The dictionary containing user information.

Values Written

The DefaultShopperInfo component reads the values of all keys in the Shopper dictionary and creates corresponding keys, prefixed with _shopper_ and with the same values, in the OrderForm object.

Remarks

If there is no Shopper dictionary in the Context dictionary, the component does nothing.


DefaultTaxCy, DefaultTax

Use these components to set the tax fields of the order to zero (0). These components are usually replaced by third-party tax components.

The DefaultTax component is for backward compatibility only. The DefaultTaxCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Note

  • The DefaultTaxCy and DefaultTax components do not follow the component coordination rules. The components always sets the total tax and the tax included in the order subtotal to zero (0).

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

None.

Values Read

None.

Values Written

The DefaultTaxCy component assigns values to the following keys in the Order dictionary. The DefaultTax component assigns a value to the same keys but without cy_.

Key | Description
_cy_tax_total | The total tax for the order.
_cy_tax_included | The amount of tax already included in the subtotal of the order.

Remarks

The components set the tax fields to zero (0).


DefaultTotalCy, DefaultTotal

Use these components to calculate the order total from the subtotals.

The DefaultTotal component is for backward compatibility only. The DefaultTotalCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Order Total stage.

Configuration Values

None.

Values Read

The DefaultTotalCy component reads the following values from the indicated dictionaries. The DefaultTotal component reads the same keys but without cy_.

Key | Dictionary | Description
_cy_oadjust_subtotal | Order | The subtotal of all of the items in the items list. Set by the DefaultSubTotal component.
_cy_shipping_total | Order | The total shipping cost for the items.
_cy_tax_total | Order | The total tax for the order.
_cy_handling_total | Order | The total cost for handling the order.

Values Written

The DefaultTotalCy component assigns a value to the following key in the Order dictionary. The DefaultTotal component assigns a value to the same key but without cy_.

Key | Description
_cy_total_total | The complete total for the order.

Remarks

These components verify that all four totals on the order have been set.

If all four values exist, they are added together and assigned to the complete total in the Order dictionary.

If any value is missing, the component stops and returns an error.


EvalTargetGroups

Use this component to target particular groups for advertising, content selection, and discounts. The component evaluates a list of expressions for each item in a list and adjusts item selection scores.

Intended use: Content Selection pipeline, Score stage.

Configuration Values

You can determine how the EvalTargetGroups component evaluates targeting expressions by setting component properties. Use the following boxes on the Eval Expressions tab of the Component Properties dialog box evaluate this information.

Row | Column | Description
Target | Match | The multiplier applied when a target expression evaluates to True. The default is 1 (one).
 | Mismatch | The multiplier applied when a target expression evaluates to False. The default is 1 (one).
Require | Match | The multiplier applied when a require expression evaluates to True. The default is 1 (one).
 | Mismatch | The multiplier applied when a require expression evaluates to False. The default is 0 (zero).
Exclude | Match | The multiplier applied when an exclude expression evaluates to True. The default is 0 (zero).
 | Mismatch | The multiplier applied when an exclude expression evaluates to False. The default is 1 (one).

Values Read

The EvalTargetGroups component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_content | Order | A reference to a ContentList object. Specifically, the target_groups field of the content items are read. The target_groups field contains an array of IDs of the target groups associated with each content item.
TargetGroups Context A dictionary of SimpleList objects. The keys are target group identifiers. Each SimpleList object contains expression name and action pairs, stored in alternating entries: the first expression name at index 0, first action at index 1; second expression name at index 2, second action at index 3; and so on.

Actions are numbers with the following meanings:

1 — Target
2 — Require
3 — Exclude
4 — Exclusive (Sponsorship)
Evaluator | Context | A reference to the ExpressionEval component to use.
ContextProfile | Context | Optional. The ContentSelector object (a dictionary) for use in expression evaluation. The dictionary contains values to test against context profile expressions entered through Commerce Server Business Desk.
UserProfile | Context | Optional. A reference to a ProfileObject object containing the profile for the current user. Used as the "UserObject" profile in evaluating the expressions.
Trace | Context | Optional. A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this key is set to True.

Values Written

The EvalTargetGroups component writes the following values to the Order dictionary.

Key | Description
_content | A reference to a ContentList object with any required adjustments made to the score fields of content items.

Remarks

The EvalTargetGroups component evaluates all of the listed target expressions for each of the content items in the list. If the expression is True, then it will apply the Match value multiplier for the indicated action, one of Target, Require, or Exclude. Similarly, if the expression is False, then it applies the Mismatch multiplier for the specified action.

A content item may have more than one target expression that applies to it. Because of this, all target expressions are evaluated for a content item but only the expression that produces the largest multiplier is applied.

Each action corresponds to a pair of multipliers. One of the multipliers is applied to the score of content items in the ContentList object. A multiplier in the pair is chosen based on the outcome of the expression: True or False.

Sponsorship is handled differently. The Sponsorship action is not a score multiplier. Rather, if any target group contains a Sponsorship expression that evaluates to True, then all target groups that do not contain a Sponsorship expression that evaluates to True are disqualified.

If an expression produces an undefined value, then the multiplier applied depends on the action associated with the expression:

Action | Multiplier Applied
Target | Mismatch multiplier
Require | Mismatch multiplier
Exclude | Match multiplier
Sponsorship | 0 (zero)

An example of an undefined expression value would be an expression that depends on the age of the user when the age of the user is unknown.

The EvalTargetGroups and ExpressionEval components both use result caching for high performance. If multiple target groups reference the same expression, the expression is evaluated only once and subsequently the cached result is used. Similarly, if multiple content items reference the same target group, the target group is evaluated only once and subsequently the cached results are used.

This component uses the ExpressionEval object to evaluate expressions.

The behavior of the PenalizeUnmatchedTargets property of the Site Server 3.0 Commerce Edition AdServer component can be replicated by changing the multiplier for Target/Mismatch to 0.95.

See Also

ExpressionEval Object


ExecuteProcess

Use this component to run an external executable file.

Intended use: Any pipeline, any stage.

Configuration Values

You can determine where the ExecuteProcess component retrieves the document and where it writes the result by setting component properties. Use the following boxes on the Execute Process tab of the Component Properties dialog box to determine this information.

Box | Description
Path Name of the executable | The complete path to the executable file to be run by this component. To locate the file, click Browse.
Arguments to the executable | The arguments to pass to the executable file. The argument may contain %1 which is replaced by the value in the OrderForm object whose name appears in the Field Name of substitutable parameter box.
Field Name of substitutable parameter | Optional. The key in the OrderForm whose value is substituted for the %1 argument and passed to the executable file.

Values Read

The value in the Order dictionary whose key is specified in the Field Name of substitutable parameter box.

Values Written

None.

Remarks

The ExecuteProcess component runs an executable file.


FilterContent

Use this component to apply provided filters to a content list in a Content Selection pipeline (CSP).

Intended use: Content Selection pipeline, Filter stage.

Configuration Values

None.

Values Read

The FilterContent pipeline component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
FilterRequire | Order | A Dictionary object specifying fields (as keys) and corresponding values that a content item must have in order to avoid having its score set to zero (0).
FilterExclude | Order | A Dictionary object specifying fields (as keys) and corresponding values that a content item must not possess in order to avoid having its score set to zero (0).
_content | Order | A key whose value is a reference to a ContentList object. The Filter method accesses various fields in the content items in the ContentList object in the course of filtering the content items.

Values Written

The FilterContent pipeline component writes the following value to the Order dictionary.

Key | Description
_content | A key whose value is a reference to a ContentList object. The Filter method may set the score field of various content items in the ContentList object to zero (0), thus eliminating them from the selection process.

Remarks

The FilterContent component applies filters to a content list in a Content Selection pipeline. The filters to apply are retrieved from FilterRequire and FilterExclude dictionaries in the Order dictionary.

This component uses the Filter method of the ContentList object. Content items may be eliminated from the selection process either by failing to meet a required condition or by meeting an exclusion condition. The Filter method is called once for each key in the dictionaries referenced by the FilterRequire and FilterExclude entries. The keys in these dictionaries should correspond to column names in the ContentList object; the values stored under the keys correspond to the values to be tested for.

Filtering is much faster than expression evaluation and it occurs at an earlier stage in Content Selection Framework (CSF) pipelines. The ContentList object builds indexes on any fields that are filtered. Because of this indexing, it is more efficient to do as much targeting as possible in the filter stage using the FilterContent component. PageGroup targeting in the Campaign Manager in Commerce Server Business Desk is an example of how a typical CSF pipeline takes advantage of this.

The list of content is contained in the ContentList object identified by the _content entry in the Order dictionary.

See Also

ContentList.Filter


FixedHandling

Use this component to add a fixed handling charge to an order.

The FixedHandling component is supplied for backward compatibility with Site Server 3.0 Commerce Edition only. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Handling stage.

Configuration Values

You can determine how the FixedHandling component applies the handling cost and the cost itself by setting component properties. Use the following boxes on the Fixed Handling tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the handling charge specified in the Cost box. The values are:
Always
Default. Specifies that the handling charge is always set to the value of the Cost box.
Equal to method
Specifies that the handling cost should be applied when the value of the shipping_method key in the Order dictionary is the same as the string specified for the Method box.
Has any value
Specifies that the handling cost is applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when value in the Apply when box is set to Equal to method.
Cost | This box specifies the handling charge.

Values Read

The FixedHandling component reads the following value from the indicated dictionary.

Key | Dictionary | Description
shipping_method | Order | This key is read when the value in the Apply when box is set to Equal to method or Has any value.

Values Written

The FixedHandling component writes the following value to the Order dictionary:

Key | Description
_handling_total | The handling total for the entire order.

Remarks

The FixedHandling component sets the value of the _handling_total key on the order form to the fixed amount specified in the Cost box.

Programmatic Use

To use the FixedHandling component outside a pipeline, you must configure it by assigning values to keys in the Configuration dictionary. The keys correspond to the indicated fields in the Component Properties dialog box.

The FixedHandlingCy component does not require configuration values when used outside of a pipeline.

For more information about using pipeline components outside of pipelines, see MicroPipe in C++ for components written in C++, or Micropipe in Visual Basic for components written in Visual Basic.


FixedShipping

Use this component to apply a fixed shipping charge to an order.

Note

  • The FixedShipping component is for backward compatibility with Site Server 3.0 only and does not support the new, extended Currency datatype.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

You can determine how the FixedShipping component applies the shipping cost by setting component properties. Use the following boxes on the Fixed Shipping tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the shipping charge specified in the Cost box. The values are:
Always
Default. Specifies that the shipping charge is always set to the value of the Cost box.
Equal to method
Specifies that the shipping cost should be applied when the value of the shipping_method key in the Order dictionary is the same as the string specified for the Method box.
Has any value
Specifies that the shipping cost is applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when the value in the Apply when box is set to Equal to method.
Cost | Specifies the shipping charge.

Values Read

The FixedShipping component reads the following value from the indicated dictionary.

Key | Dictionary | Description
shipping_method | Order | Read when the value in the Apply when box is set to Equal to method or Has any value.

Values Written

The FixedShipping component writes the following value to the Order dictionary:

Key | Description
_shipping_total | The shipping total for the entire order.

Remarks

The FixedShipping component sets the value of the _shipping_total key to the fixed amount specified in the Cost box.

You cannot specify more than one method per component. If you need to specify more than one shipping method, add a separate FixedShipping component for each method.

Example

The following example sets the shipping cost to $9.95, for items shipped by Carrier1.

Box | Value
Apply when | Equal to Method
Method | Carrier1
Cost | 995

When configuring the components in this stage, make sure that the components are in the order in which you want them run so that charges are calculated and applied in the correct order.


FlagInventory

Use this component to determine if any items on the order form are out of stock.

Intended use: Order Processing pipeline, Inventory stage.

Configuration Values

You can determine how the FlagInventory component deals with back orders by setting component properties. Use the following boxes on the Flag Inventory tab of the Component Properties dialog box to determine this information.

Box | Description
Disallow Backorder | If selected, indicates back orders are not permitted. The component will add a message to the _Purchase_Errors list when there is a back order.

Values Read

The FlagInventory component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._product_in_stock | Order | Optional. The quantity of this item in stock.
item.quantity | Order | The quantity of the item ordered.
MessageManager | Context | Dynamic. A reference to a MessageManager object. Used to retrieve the out-of-stock constant (pur_out_of_stock) in case of an error. Used only if the Disallow Backorder box is selected.

Values Written

The FlagInventory component writes the following values to the Order dictionary.

Key | Description
item._inventory_backorder | The amount back ordered to fulfill the order for this item.
_Purchase_Errors | Dynamic. Error messages are written to this SimpleList object only if the Disallow Backorder box is selected.

Errors

The component writes error messages to the _Purchase_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_out_of_stock | An item in the order is out of stock.

Remarks

When this component runs, it loops through the item list in the order form, checking the value of the _product_in_stock field for each item. If that value is zero (0), the component sets the _inventory_backorder key to the quantity ordered to indicate the shortage. In addition, if the Disallow Backorder box is selected, the component writes an out-of-stock message to the _Purchase_Errors list of the order form.

The _product_in_stock value corresponds to the in_stock column in the products database table.

This component verifies that none of the order items have the _product_in_stock value, which corresponds to the in_stock column in the products database table, set to zero (0). If any item does have this field set to zero, the FlagInventory component sets the_inventory_backorder key to the quantity ordered (indicating the shortage). If such a shortage occurs and the Disallow Backorder box is selected, the FlagInventory component will generate a pur_out_of_stock error in the _Purchase_Errors collection. This component interacts with a manual inventory control process; the product database must be updated to reflect the actual stock on hand.

If you include the FlagInventory component in your pipeline, the order form must contain a column named _product_in_stock. This value is placed in the order form by the query that is run in the Product Information stage, usually by the QueryProdInfoADO component or the QueryCatalogInfo component. Usually, this value is selected from a database column named in_stock. You can also place _product_in_stock column on the order form by manipulating the query.

This component interacts with a manual inventory control process. The product database must be updated to reflect the actual stock on hand.


FormatTemplate

Use this pipeline component to merge data from selected items and their associated templates to form formatted strings. These are usually HTML strings ready for display on the page. Items may come from the Context dictionary as well as the ContentList object in the Order dictionary.

Although this component appears as the FormatTemplate component in the Pipeline Editor, its ProgID is Commerce.CSFFormatTemplate.

Intended use: Content Selection pipeline, Format stage.

Configuration Values

None.

Values Read

The FormatTemplate component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_winnerindexes Order A SimpleList object containing the ContentList object positions of the winning content items.

If this key is present, the _winners key should not be present. If both are present, only this key is used.
_winners Order A SimpleList object containing the values from the item_id key of the winning content items.

If this entry is present, the _winnerindexes key should not be present. If both are present, only the _winners_indexes key is used.
_content | Order | A reference to the ContentList object. Multiple values are read. See the Remarks section below.
<arbitrary entry> | Context | Optional. Any arbitrary property from the Context dictionary can be a source for a substituted value in a template.
FormatTemplate Order Optional. If present, this key overrides the default format template associated with each content item being formatted. The value of this key can be:
A string
The string contains the key in the Templates dictionary of the Context dictionary. The value associated with that key is a Format Template dictionary.
A reference
A reference to a Format Template dictionary.
templates | Context | Optional. A dictionary that maps names to Format Template dictionaries. Normally, the templates key of a content item would contain a name used as a key to this dictionary, giving the proper Format Template dictionary.
ContextProfile | Context | Optional. A reference to the ContentSelector object that can be named as a source for the template substitutions performed by this component.
RedirectUrl | Context | Optional. A string containing the URL of the redirector script. Note that most templates require this key.
CacheName | Context | Optional. A string containing the name of the current content cache. Note that most templates require this key.

The FormatTemplate component reads the following values for each item in the ContentList object referred to by the _content key:

Key | Description
item_id | The identifier for the various content items.
<arbitrary fields> | A field in the ContentList object specified by a Template dictionary. Acts as the source of a value used in the template.
values | A dictionary derived from the creative_property and creative_property_values tables in the marketing database. The values in the dictionary are specific to the creative type.
template | The name of a template in the Templates dictionary. Either this value or the FormatTemplate entry in the Order dictionary must be specified.

All of these keys are optional with the exception of the item_id key.

Values Written

The FormatTemplate component writes the following values to the Order dictionary.

Key | Description
_formatted | A SimpleList object containing the formatted strings.

Remarks

A template is a string that contains substitution variables. Substitution variables can consist of letters, numbers, the underscore character, and are identified in the template string by the delimiters {% and %}. For example, {%Book_Title%} is a valid substitution variable. If for some reason you need to have a literal {% in your document, append an ampersand (&) to the sequence ({%&).

The information that replaces the substitution variables can come from several sources, including the Values dictionary in the ContentList object, the actual content item fields in the ContentList object, and from arbitrary properties in the ContentSelector object (CSO) or the Context dictionary. In addition, a default value can be supplied in the event that no value is found elsewhere. The source of the value, the default value, and how the value should be encoded, are all contained with the template string in a Format Template dictionary.

The Values dictionary is used to store variable properties of a particular type of content. For example, image ads and text ads are both ads, and should be in the same ContentList object so that they can compete with each other. But some of their properties are unique and do not apply to ads of the other type. This presents problems in the fixed schema supported by the ContentList object. The solution is a CLCOL_DISPATCH column (named Values) containing values that are references to dictionaries that contain unique keys and values. The keys and values in these dictionaries come from the creative_property and creative_property_values tables.

Format Template dictionaries are created by the LoadAdvertisements and LoadDiscounts objects from information in the marketing database. A Format Template dictionary contains a single template and information about the substitution variables in the template. It contains an entry named "text" and the value for that entry is the template string. For each substitution variable in that string, the Format Template dictionary contains three additional entries that provide the value source, the default value, and the encoding scheme for that variable. The names of these additional entries are formed by the name of the variable appended with one of the strings "_default", "_source", and "_encoding." The following table describes these additional dictionary entries.

Dictionary Entries | Description of Dictionary Entry Value
Text | The text of the template, which may include substitution variables. The other entries in the dictionary provide information about how values for the substitution variables are retrieved and formatted.
<variable>_default | A string that provides the default value, if any, for the substitution value. The default value is used if a value cannot be found in any of the specified sources.
<variable>_source A number indicating sources for the value. The name of the variable is searched for in a variety of places, indicated by one of the following numbers:
1
Looks for a value in the content item. First, the Values dictionary in the ContentList object is used, if it is present. Next, the columns of the ContentList object are examined.
2
Uses an intrinsic value, if one matches. The only currently supported intrinsic value is "unique," which causes a unique number to be generated.
3
Looks for a value in the Context dictionary. First the ContextProfile entry (the CSO) in that dictionary is examined for a matching entry name, and then the Context dictionary is examined for a matching entry name.
NULL or zero (0)
Examines all of the above sources in the order shown, stopping when the first match is found.

If no value can be found in the specified sources, the default value is used.
<variable>_encoding A number indicating the type of encoding, if any, to apply to the value. The options are:
NULL or zero
No encoding.
1
Performs full URL-encoding. An example of when this encoding is required would be a ClickUrl entry passed to the redirector.
2
Limits encoding in which space characters are encoded as plus characters. As an example, this type of encoding is useful in would-be URLs that do not go through the redirector, such as image URLs.

The resulting strings are returned in a SimpleList object assigned to the _formatted key in the Order dictionary.

See Also

CSFLoadAdvertisements

CSFLoadDiscounts


HistoryPenalty

Use this component to apply penalties to content items based on how recently they have been selected.

Although this component appears as HistoryPenalty in the Pipeline Editor, its ProgID is Commerce.CSFHistoryPenalty.

Intended use: Content Selection pipeline, Score stage.

Configuration Values

You can determine how the HistoryPenalty component applies penalties and the range of penalties by setting component properties. Use the following boxes on the History Penalty tab of the Component Properties dialog box to determine this information.

Box | Description
Apply Penalties in the range of | The minimum penalty. The default is 0.9.
To | The maximum penalty. The default is 0.5.
Number of most recent items to penalize | The number of most recent items to penalize. The default is 10.

Penalty values range between zero (0) and one (1).

Values Read

The HistoryPenalty component reads the following values from the indicated dictionary.

Key | Dictionary | Description
_content | Order | A reference to the ContentList object containing the content items that may have penalties applied to their scores. In particular the, item_id and exposure_limit keys are read.
_history | Order | The key containing the history string retrieved by the LoadHistory component.
trace | Context | A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this key is set to True.

Values Written

The HistoryPenalty component writes the following values to the Order dictionary.

Key | Description
_content | A reference to the ContentList object containing the content items that may have their scores subjected to penalties.

Remarks

This component applies penalties to the scores of content items based on how recently the items have been selected, as well as on exposure limits the items may have. Penalties are values between zero (0) and one (1), which are multiplied by the current score of an item. This tends to reduce a score and thus reduces the possibility that the item is selected.

For example, a user could configure the nine most recently selected items to be subject to penalties ranging from 0.90 to 0.1. In this example, the most recently shown item would have its current score multiplied by 0.1, reducing its score and drastically decreasing the likelihood of being selected. The second most recently shown item would have its current score multiplied by 0.2, reducing its score slightly less.

The HistoryPenalty component reads the exposure_limit and item_id keys of each item in the ContentList object referenced by the _content entry. The exposure_limit key is a hard limit on how many times a user is shown an item. Once the limit is met, the score of the item is multiplied by zero (0.0). The adjusted score of an item is assigned to the score field of the content item.


IISAppendToLog

Use this component to record information about content selection results in the QueryString key of the Internet Information Server (IIS) log file.

Although this component appears as IISAppendToLog in the Pipeline Editor, its ProgID is Commerce.CSFIISAppendToLog.

Intended use: Event Processing pipeline, Record stage.

Configuration Values

None.

Values Read

The IISAppendToLog component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_event | Order | A string containing the name of the event to log.
_eventcount | Order | Optional. A SimpleList object containing the number of events to record for each winning content item. It must contain the same number of elements as the list of winners. If this key is not present, one event will be recorded for each winning content item.
_winnerindexes | Order | A SimpleList object containing the ContentList object indexes of the winning content items. If this key is present, the _winners key should not be present. If both are present, only the _winnerindexes key is used.
_winners | Order | A SimpleList object containing the values from the item_id key of the winning content items. If this entry is present, the _winnerindexes key should not be present. If both are present, only the _winnersindexes key will be used.
ContextProfile.PageGroup | Context | The PageGroup key from the ContentSelection object stored in the dictionary referenced by the ContextProfile object.
PageGroups | Context | A dictionary that maps page group names to IDs from the identity column in the page_groups database table.

Values Written

None for the Order or Context dictionaries.

Remarks

This component appends information about the result of the content selection process in the QueryString key of the IIS log file. This log file can be imported into the Data Warehouse for use with reporting and analysis. This component can only be used in the context of IIS because it uses the AppendToLog method of the IIS Response object.

The logging format is:

&CVET={T=class, property=value, property=value1+value2}

The components and their descriptions for this logging format are listed in the following table.

Component Description
&CEVT={
 The start of a Commerce event entry in the URI_Query object.
}
 The end of a Commerce event in the URI_Query object.
T=class
 The event class as defined in the Data Warehouse event class definitions, where class is the name of the corresponding definition. The value of class is always CAMP.
Property=value
 A value associated with a particular property. Both property and value strings must be URL-encoded (the space character and the following characters are subject to encoding: { } , = & +).Typical properties include CI (campaign item), CNT (count), and EVT (event).
Property=value1+value2
 Multiple values that are associated with a particular property. Both property and value strings are URL-encoded.
, (comma)
 Used as the separator between elements.

The following lines are examples of possible log formatted strings and a description of their contents:

&CEVT={T=CAMP,CI=3,EVT=REQUEST,PG=2}

Campaign event, campaign item 3, event name=REQUEST, page group id =2

&CEVT={T=CAMP,CI=1,CNT=3,EVT=CLICK}

Campaign event, campaign item 1, count=3, event name=CLICK

&CEVT={T=CAMP,CI=3,EVT=DOWNLOAD}

Campaign event, campaign item 3, event name=DOWNLOAD


InitCSFPipeline

Use this component at the beginning of a Content Selection pipeline (CSP) to initialize the values needed in the rest of the pipeline.

Although this component appears as InitCSFPipeline in the Pipeline Editor, its ProgID is Commerce.CSFInitPipeline.

Intended use: Content Selection pipeline, LoadContext stage.

Configuration Values

None.

Values Read

The InitCSFPipeline component reads the following values from the indicated dictionary.

Key | Dictionary | Description
ContextProfile | Context | A reference to the ContentSelector object (CSO). This object can be assigned arbitrary properties and can be used to pass additional information into the pipeline. Two entries are required. For more information, see the Remarks section.

The InitCSFPipeline component reads the following values from the ContextProfile key.

Key | Description
CacheName | The name of the cache. Used to retrieve the cache from the CacheManager object.
CacheManager | A reference to the CacheManager object.
Trace | Optional. A Boolean providing the Trace setting for the entire pipeline. Set in the ContentSelector object. Use tracing only when debugging a pipeline — tracing degrades pipeline performance.
Evaluator | Optional. Reference to an expression evaluator that is copied to the Context dictionary if it is set.
PageGroup | Optional. If present, this key causes the Cache.PageGroup property to be copied into the Context dictionary. This key is also used as a key in the FilterRequire dictionary. For more information, see the Remarks section.
Size | Optional. If present, this key is created as a key in the FilterRequire dictionary. For more information, see the Remarks section.
NumRequested | Optional. The NumRequested property of the ContentSelector object: the number of content items requested. This key is copied to the Context dictionary if it is set.
UserProfile | Optional. This key is a reference to a user profile object. This key is copied to the Context dictionary if it is set.
FilterRequire | Optional. This key is copied to the Context dictionary if it is set. For more information, see the Remarks section.
FilterExclude | Optional. This key is copied the to Context dictionary if it is set. For more information, see the Remarks section.

Values Written

The InitCSFPipeline component writes the following values in the indicated dictionaries.

Key | Dictionary | Description
_content | Order | A reference to a newly created and initialized ContentList object.
Performance | Order | A reference to the Performance dictionary, retrieved from the content cache. This key is used by the AdvertisingNeedOfDelivery component later in a pipeline to select content items. See RecordEvent for information about this dictionary.
NumRequested | Order | An optional entry created only if the ContextProfile object has a NumRequested property set. This key indicates the number of content items being requested. The pipeline returns only one content item when this key is not present.
FilterRequire | Order | This key is copied from the ContextProfile.FilterRequire object if present. When present, this key causes the FilterContent component to invoke the Filter method of the ContentList object for each entry in the dictionary. The FilterAction parameter will be set to FILTER_REQUIRE for these invocations. The dictionary has keys that are the names of content fields to search and values that are the values to match.
FilterExclude | Order | This key is copied from the ContextProfile.FilterExclude object if present. When present, this key will cause the FilterContent component to invoke the Filter method of the ContentList object for each entry in the dictionary. The FilterAction parameter is set to FILTER_EXCLUDE for these invocations. The dictionary has keys that are the names of content fields to search and values that are the values to match.
_cache | Context | A reference to the Dictionary object containing the items retrieved from the cache.
Templates | Context | The templates property of the cache. A Dictionary object.
Trace | Context | The trace setting from the ContextProfile object, if any. This value is used as the value for the TraceMode property in the ContentList object, turning tracing either on or off.
Evaluator | Context | The Evaluator object from the ContextProfile object.
RedirectUrl | Context | The Uniform Resource Locator (URL) to which to redirect users.
TargetGroups | Context | The TargetGroups entry from the cache.
PageGroups | Context | The PageGroups entry from the cache.
PageHistory | Context | The PageHistory entry from the ContextProfile object, if any.
UserProfile | Context | A reference to the user profile copied from the ContentSelector object (CSO).

Remarks

The InitCSFPipeline component is responsible for setting up numerous values in the Order and Context dictionaries for use by subsequent components in a Content Selection pipeline. In addition, the component automatically generates some content filters and allows you to use FilterInclude, FilterExclude, and PageGroups dictionaries to customize filtering without writing new pipeline components.

In general, the values the InitCSFPipeline component sets up in the Order and Context dictionaries are derived from the ContextProfile entry in the Context dictionary, or from the Cache dictionary retrieved from the CacheManager object. The ContextProfile entry in the Order dictionary contains a reference to the ContentSelector object, which provides much of the information required by the pipeline.

Also, by moving the various values from the ContextProfile to the Order and Context dictionary objects, the pipeline components farther down the pipeline have much more efficient access to this data.

Perhaps the most important task performed by the InitCSFPipeline component is the creation and initialization of the ContentList object. It is within this object that content scoring is tracked during execution of the pipeline.

The InitCSFPipeline component creates the ContentList object by following these steps:

  1. Retrieve the name of the cache from ContextProfile.
  2. Retrieve the CacheManager object from ContextProfile.CacheManager property.
  3. Get the cache from the CacheManager object.
  4. Obtain the ContentListFactory object from the cache.
  5. Call the CreateNewContentList method of the ContentListFactory object and assign the new content list to the _content key in the Order dictionary.

The FilterRequire and FilterExclude dictionaries allow custom filters to be set up without writing new pipeline components. For ease of use, the InitCSFPipeline component automatically sets up some commonly used filters for page group, ad size, and (for Discount Content Selection pipelines) NoDisplay templates. If no FilterRequire or FilterExclude dictionary is explicitly passed and one of these filters is applicable, the filter dictionary will automatically be created. If the InitCSFPipeline component detects existing filters for these keys already in a filter dictionary, it will not modify the filter.

The InitCSFPipeline component creates a filter for PageGroup (unless one already exists). This filter contains the special PageGroup "All" (Run of Site), which allows any content marked to run on the whole site to pass, and it also contains the value of the PageGroup property set on the ContentSelector object making the GetContent call (if set).

This component breaks the rule of never writing data to the Context dictionary. Nevertheless, the convention should be observed as it is by the vast majority of pipeline components.

See Also

ContentList.Filter


ItemPromo

Use this component to apply a promotional price adjustment to an item on the order form.

Note

  • The ItemPromo component should not be used for future development. The discount features of the Content Selection pipeline provide a more powerful and general mechanism for applying product discounts. For more information, see Discount Objects.

Use this component to apply a promotional price adjustment to an item on the items list for the order form. The ItemPromo component first determines whether the current date falls within the time period specified by the Start Date and End Date boxes. If it does, then the component evaluates the item to determine if it meets the conditions of the promotion (specified by the combination of the Condition Order Key, Condition Operator, and Condition Value boxes). If it does, then the ItemPromo component applies the specified discount and writes the new value to the _iadjust_currentprice key on the item order form, provided that the _iadjust_currentprice key has not been initialized by a previously run component.

Intended use: Order Processing pipeline, Adjust Price stage.

Configuration Values

You can determine the discount the ItemPromo component applies and the discount type by setting component properties. Use the following boxes on the Item Promo tab of the Component Properties dialog box to determine this information.

Box | Description
Condition Order Key | The name of the item attribute that identifies the condition to meet for a promotion to be applied (for example, _product_type).
Condition Operator | An operator (<, <=, =, >=, >, or <>) used to compare the value of the Condition Order Key box with the value in the Condition Value box. The default is the equal (=) operator.
Condition Value | The product or products that must be purchased before the promotion is applied. The value in this box is compared with the value in the column name specified in the Condition Order Key box. This value can be text, an integer, or a floating-point number.
Discount Type | Shows whether the discount is a percentage-off discount or a price discount. The default is percentage-off discount.
Discount Value | The discount amount. This must be an integer value; floating-point numbers (for example, .10) are not accepted. The default is zero (0).
Start Date | Optional. The date the promotion begins, starting at 12:00:01 a.m.
End Date | Optional. The date the promotion ends, ending at 12:00:01 a.m. For example, if you want the last day of a promotion to be 3/31, you would specify an End Date of 4/1.

Values Read

The ItemPromo component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._iadjust_regularprice | Order | The regular price of the item.
item._iadjust_currentprice | Order | The current price of the item.
item.<name> | Order | Dynamic. The key specified in the Condition Order Key box.

Values Written

The ItemPromo component writes the following values to the Order dictionary.

Key | Description
item._iadjust_currentprice | The current price of the item with the discount applied.

Remarks

The ItemPromo component applies a promotional price adjustment to an item in the item list in the order form. The component performs the following steps in testing and applying the discount:

  1. The ItemPromo component first determines whether the current date falls within the period specified by the values in the Start Date and End Date boxes.
  2. If the current date is in range, the component evaluates the item to determine if it meets the condition for the promotion. The condition is specified by the combination of the values in the Condition Order Key, Condition Operator, and Condition Value boxes.
  3. If the item meets the condition, the ItemPromo component applies the specified discount and writes the new value to the _iadjust_currentprice key of the item in the order form, provided that the _iadjust_currentprice key has not been initialized by a previously run component.

The promotional comparisons specified in the Conditional Value box are case-sensitive. For example, a product ID of AW13-200 will be interpreted differently than a product ID of aw13-200.

In addition, because the Start Date and End Date boxes for a promotion specify midnight, the value in the End Date box excludes the day specified. For example, if you want the last day of a promotion to be 3/31, be sure to specify that the promotion ends on 4/1.


LinearHandling

Use this component to set the handling total on an order by multiplying a field on the order form by a fixed rate.

Note

  • The LinearHandling component is for backward compatibility only and does not support the new, extended Currency datatype.

Intended use: Order Processing pipeline, Handling stage.

Configuration Values

You can determine how the LinearHandling component applies the handling rate and the rate itself by setting component properties. Use the following boxes on the Linear Handling tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the handling charge. The values are:
Always
Default. The handling charge is always applied to the order.
Equal to method
Specifies that the handling cost should be applied when the value of shipping_method key in the Order dictionary is the same as the string specified as the value for the Method box.
Has any value
Specifies that the handling charge is applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when the value in the Apply when box is set to Equal to method.
Basis Item Key | The property of the item to use in computing the handling charge. Defaults to the sum.quantity key.
Rate | The handling rate, which is an integer value.

Values Read

The LinearHandling component reads the following value from the indicated dictionary.

Key | Dictionary | Description
item.sum_quantity | Order | Dynamic. Default shown. The property of the item to use in computing the handling charge. The key name is determined by the value in the Basis Item Key configuration box.

Values Written

The LinearHandling component writes the following value to the Order dictionary.

Key | Description
_handling_total | The handling total for the entire order.

Remarks

The LinearHandling component computes the handling charge by multiplying the value specified in the Rate box by the sum of the property specified for the Basis Item Key box. For example, you might base the linear handling charge on the quantity of the items, and the value in the Basis Item Key box might be sum.quantity key. If the order contains two items, one item with a quantity of four and the other item with a quantity of two, then the basis sum is six. The component calculates the handling charge by multiplying the value in the Rate box by six.

For more general information about basis item keys, see Specifying the Basis Item Key.


LinearShipping

Use this component to calculate the shipping total on an order form using a fixed rate.

Note

  • The LinearShipping component is for backward compatibility only and does not support the new, extended Currency datatype.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

You can determine how the LinearShipping component applies the shipping rate and the rate itself by setting component properties. Use the following boxes on the Linear Shipping tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the shipping charge. The values are:
Always
Default. Specifies that the shipping charge is always applied to the order.
Equal to method
Specifies that the shipping cost should be applied when the value of the shipping_method key in the Order dictionary is the same as the string value specified in the Method box.
Has any value
Specifies that the shipping cost is applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when the value in the Apply when box is set to Equal to method box.
Basis Item Key | The item property to use in computing the shipping charge. Defaults to the sum.quantity key.
Rate | The handling rate, which is an integer value.

Enter the value in the same currency unit in which prices are stored in the database.

Values Read

The LinearShipping component reads the following value from the indicated dictionary.

Key | Dictionary | Description
item.sum_quantity | Order | Dynamic. Default shown. The property of the item to use in computing the shipping charge. The key name is determined by the Basis Item Key configuration box.

Values Written

The LinearShipping component writes the following value to the Order dictionary.

Key | Description
_shipping_total | The shipping total for the entire order.

Remarks

The LinearShipping component computes the shipping charge by multiplying the value specified in the Rate box by the sum of the property specified in the Basis Item Key box. For example, you might base the linear shipping charge on the quantity of the items, and the value in the Basis Item Key box might be the sum.quantity key. If the order contains two items, one item with a quantity of four and the other item with a quantity of two, then the basis sum is six. The component calculates the handling charge by multiplying the value in the Rate box by six.

For more general information about basis item keys, see Specifying the Basis Item Key.


LoadHistory

Use this component to retrieve a history string from a user profile, an item in the Active Server Pages (ASP) session collection, or a cookie.

Although the component appears as LoadHistory in the Pipeline Editor, its ProgID is Commerce.CSFLoadHistory.

Intended use: Content Selection pipeline, Load Context stage.

Configuration Values

You can determine where the LoadHistory component retrieves the history string by setting component properties. Use the following boxes on the Load History tab of the Component Properties dialog box to determine this information. You must choose one of the following options.

Box | Description
User Profile Object | The property in the user profile object containing the history string.
ASP Session Collection | The key in the Session object containing the history string. Requires that the component be configured with the proper key and that the pipeline be executing in the Internet Information Server (IIS) context.
HTTP Cookie The key in the Cookies object containing the history string. Requires that the component be configured with the proper key and that the pipeline be executing in the IIS context.

Note

  • The cookie is a session cookie and will not persist across sessions.

The default user object profile that ships with Commerce Server 2002 contains a property for the history string: Advertising Info.Campaign History. This is the only method that persists the history string across user sessions on the site (required to support ExposureLimit data member properly).

Values Read

The LoadHistory component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
UserProfile | Context | A reference to the ProfileObject object for this user. This entry is optional, and is required only when the User Profile Object option is used.

Values Written

The LoadHistory component writes the following value to the Order dictionary.

Key | Description
_history | The history string, retrieved from one of the sources, as configured in the property page of the component.

Remarks

This component makes the history string easily accessible to other pipeline components by hiding its source.

If the User Profile Object option is chosen as the source for the history string, the property page requires the name of the property in the User Profile Object in which the history string is maintained.

When using the User Profile Object option, it is possible to use either a field that is mapped to a data column in a table, or a field that is not mapped. If the field is not mapped, the history string is persisted only for the duration of the user session and is later timed out of the profile cache. This method is more efficient than using the mapped method, but the mapped method allows the history string to be persisted across sessions. The unmapped option does not allow you to load balance Domain Name Server (DNS) network requests by sending the incoming requests to the next server in a list (round-robin load balancing).


LocalInventory

Use this component to set the number of items back ordered on the order form.

Intended use: Order Processing pipeline, Inventory stage.

Configuration Values

You can determine how the LocalInventory component deals with back orders by setting component properties. Use the following boxes on the Local Inventory tab of the Component Properties dialog box to determine this information.

Box | Description
Disallow Backorder | If selected, indicates that back orders are not permitted. The component adds a message to the _Purchase_Errors list if there is a back order.

Values Read

The LocalInventory component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._product_local_inventory | Order | The local inventory for this stockkeeping unit (SKU).
item.quantity | Order | The quantity of the item ordered.
item.sku | Order | A unique identifier for the product.
MessageManager | Context | Dynamic. This key is used only if the Disallow Backorder option is selected. This key is a reference to a MessageManager object, and is used to retrieve the out of stock constant (pur_out_of_stock) in case of an error.

Values Written

The LocalInventory component writes the following values to the Order dictionary.

Key | Description
item._inventory_backorder | The amount back ordered to fulfill the order for this item.
_Purchase_Errors | Dynamic. Error messages are written to this SimpleList object only if the Disallow Backorder option is selected.

Errors

The component writes error messages to the _Purchase_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_out_of_stock | An item in the order is out of stock.

Remarks

The LocalInventory component sets the value of the _inventory_backorder key on the order form to the number of items back ordered. The LocalInventory component takes the sum of the items for each SKU in the order, and then compares this number with the value of the _product_local_inventory key. If the value of the _product_local_inventory key is less than the number of items ordered, the component sets the value of the _inventory_backorder key to the difference.

The value of the item._product_local_inventory key is set from a database table by a components such as QueryProdInfoADO or QueryCatalogInfo.

See Also

FlagInventory

QueryCatalogInfo

QueryProdInfoADO


MakePO

Use this component to produce a string by merging information from the order form with a template, such as creating a purchase order formatted from a purchase order template.

Configuration Values

You can determine how the MakePO component formats the purchase order and where it is written by setting component properties. Use the following boxes on the Make PO tab of the Component Properties dialog box to determine this information.

Box | Description
Template File Name | The name of the file providing the template for the purchase order. The template is usually a Microsoft Visual Basic Scripting Edition (VBScript) file in a special format described below.
Script language for the template | The programming language used in the template. The default is VBScript.
Output Property Name | The name of a field in the order form or Transport dictionary to which the component writes the PO. The default is _po_text.
Child Object Name | Applies only when the Use Child Object option is set. A child object is an object that is referenced by a key in the Transport dictionary that is passed into the pipeline. The Child Object Name box specifies the key. In a Commerce Interchange pipeline, the order form (business data object) from which the MakePO component generates the purchase order is a child object.
Use Child Object | Determines the source from which the component reads the purchase order information. Select this option when using a Commerce Interchange pipeline so that the component reads this information from the business data object specified by the value in the Child Object Name box. Clear this check box when using an Order Processing pipeline so that the component reads this information from the order form passed directly into the pipeline.

Values Read

The MakePO component reads the file indicated in the Template File Name box. The script can read anything available to it.

Values Written

The MakePO component assigns the value to the key in the Transport dictionary indicated in the Output Property Name box. The script may also be written to write out additional values.

Remarks

The MakePO component can be used to dynamically generate a text entry on the OrderForm object (usually a purchase order). The entry is generated from a template file similar to an Active Server Pages (ASP) page. Like an ASP page, a MakePO template contains plain text interspersed with special tags containing script code. From within script, output can be done using PageGen.Print expression, or <%% = expression %%> similar to the ASP shortcut for Response.Write. The script language is configurable in the property page.

From within the MakePO template, the business object (OrderForm object, dictionary, or child object) is exposed as an object with the name Items. The library for the selected scripting language is also extended to include the members of this object as built-in properties, so that referring to the entries of the business object using the Items.xxx notation is possible. For this reason, it is best to declare any temporary variables so that they are not saved in the business object.

The following segment is an example from a template:

Item Class:<%%= item.partclasscode %%>
#:<%%= item.partnumber %%>
Qty:<%%= item.quantity %%>
Cost:<%%= item.[_display_list_price] %%>
Unit Code:<%%= item.unitcode %%>

The PO generated by the MakePO component can be saved to a file using the POtoFile component.

The MakePO component cannot output variant subtype VT_DECIMAL. Any usage of decimal or currency in the MakePO component must be wrapped with a call to the CStr method, which properly coerces the value to a string. For example:

Requisition # <%% = CStr(RequisitionID) %%>

Programmatic Use

To use this component outside of a pipeline, you must configure it by assigning values to keys in the Configuration dictionary. The keys correspond to the indicated boxes on the Component Properties dialog box.

Key | Box | Description
TemplateFileName | Template File Name | String.
TemplateScriptLanguage | Script language for the template | String.
OutPropName | Output Property Name | String.
ChildObjectName | Child Object Name | String
UseChildObject | Use Chile Object | Numeric. 0 for False, 1 for True.

For more information about using pipeline components outside of pipelines, see MicroPipe Object.

See Also

MicroPipe Object

POtoFile


MoneyConverter

Use this component to convert OrderForm object keys and values from integers to the new currency type, or from the new currency type to integers.

Intended use: Order Processing pipeline, any stage.

Configuration Values

You can determine which conversion the MoneyConverter component performs as well as the fields converted by setting component properties. Use the following boxes on the Convert Money tab of the Component Properties dialog box to determine this information.

Box | Description
Convert currency to int | Converts currency values to integer values.
Convert int to currency | Converts integer values to currency values.
Currency Fields | This box contains a space-separated list of the currency fields. The integer fields have the same name but without the cy_ prefix. Prefix item-level fields with item. and order level elements with order.. See the Remarks section for more information.

Values Read

The fields specified in the Currency Fields box.

Values Written

The fields specified in the Currency Fields box.

Remarks

Use the MoneyConverter component in pipeline stages containing Site Server 3.0 Commerce Edition and Commerce Server 2000 components, or Site Server 3.0 Commerce Edition and Commerce Server 2002 pipeline components using currency representations.

If a pipeline stage contains only Site Server 3.0 Commerce Edition objects, or only Commerce Server 2000 and Commerce Server 2002 objects, you do not need to use the MoneyConverter component. The various required components (RequiredItemPrice, for example) automatically perform currency and integer conversions at the end of a pipeline stage.

When converting values, the component gets the value of the key, converts it, and assigns it to the key of the other type. For example, suppose that you are converting the old integer currency value item._oadjust_adjustedprice. The MoneyConverter component gets the value from this key, converts it to the new currency data type, and assigns the converted value to the item._cy_oadjust_adjustedprice key. Values may be rounded during conversion. For more information about rounding, see Currency Enhancements.

The only difference between the keys is the cy_ in the name of the key holding the currency value. The currency key that is specified in the Component Properties dialog box regardless of the direction of the conversion.

See Also

DataFunctions Object


OrderDiscount

Use this component to apply discounts scheduled in the Campaign Manager module in Commerce Server Business Desk to the shopping basket.

Intended use: Order Processing pipeline, Order Adjust Price stage.

In Component Properties dialog box, on the Order Discount tab, do the following:

Use this | To do this
Apply Percent First | When two or more discounts of equal priority but different types apply to a line item, selecting this causes percentage discounts to apply before currency discounts of the same priority.
Apply Currency First | When two or more discounts of equal priority but different types apply to a line item, selecting this causes currency discounts to apply before percentage discounts of the same priority.
Apply discount to basket items | Select Least expensive first to apply discounts to the least expensive items in the basket first. Select Most expensive first to apply discounts to the most expensive items in the basket first.

Click Apply to save your changes.

For more information about discount interactions, see Order Subtotal Discount.

Configuration Values

None.

Values Read

The OrderDiscount component reads the following values from the indicated dictionaries.

Key Dictionary Description
item._cy_iadjust_currentprice
 Order Required. The current price of the line items.

Type: Currency (VT_CY)

item.quantity
 Order Required. The total quantity of a line item.

Type: Integer (VT_I4)

item._cy_oadjust_adjustedprice
 Order Optional (default is 0.0). The total price of all the items, after all the discounts have been applied.

Type: Currency (VT_CY)

Note

  • Total price for the line item can be computed using the following:

    n_unadjusted*_cy_iadjust_currentprice+_cy_oadjust_adjustedprice.

item._n_unadjusted
 Order Optional (default is equal to the quantity). The quantity of line items that have not been adjusted (line items that are eligible to serve as discount conditions and receive discount awards).

Type: Integer (VT_I4)

item._product_*
 Order The product properties for each item. The column name is appended to form the key name. For more information, see the Remarks section.
item.discounts_applied
 Order Optional. A dictionary containing the IDs of the discounts that applied to this line item the last time the OrderDiscount pipeline compoenent was run. Keys are the IDs; values are the date/timestamps of the discounts. This is normally persisted with the OrderForm object and used by the OrderDiscount object to detect discount changes and warn the user when a discount has changed or been removed.

Type: IDictionary (VT_DISPATCH)

Note

  • The format of the dictionary is a mapping from the discount ID (campaign item ID) to a last-modified timestamp (VT_DATE). The last-modified timestamp is the time the discount campaign item was last modified in Business Desk.

discounts_clicked
 Order Optional. The campaign item IDs of the click-required discounts that have been clicked.

Type: SimpleList of Integer

_discounts
 Order Optional (if null, the CacheManager and CacheName objects are used to retrieve the ContentList object of discounts from the cache automatically). A ContentList object that contains the cached list of discounts that attempt to apply to the OrderForm object. Discounts may be prefiltered from the list by setting their score property to zero.

Type: Currency

Note

  • Internally, the ActiveRows property is used to retrieve only the unfiltered discounts from the list. Therefore, the Threshold property of the ContentList object, along with each score property of the content item, can be used to control the set of discounts eligible for application for each individual request.

orderlevel_discounts_applied
 Order Optional. A dictionary with information about the discounts that were applied at the order level the previous time the OrderDiscount component was run. It is normally persisted along with the OrderForm object and is used by the OrderDiscount object to detect discount changes and warn the user when a discount has changed or been removed.

Type: IDictionary (VT_DISPATCH)

Notes

  • The format of the dictionary is a mapping from discount ID (campaign item ID) to a last-modified timestamp (VT_DATE). The last-modified timestamp is the time the discount campaign item was last modified in Business Desk.
  • This dictionary should not be used for accounting systems.

_currency_decimal_places
 Order Optional (if not set, the _currency_lcid key must be set, and the number of currency decimal places will be the default for that locale). Describes the number of digits of precision (after the decimal point) from which to round certain intermediate results, and to round to when writing currency values into the OrderForm object.

Type: Integer (VT_I4)

_currency_lcid
 Order Optional (required only if the _currency_decimal_places key is not set). Describes a locale (LCID) from which to retrieve the number of currency decimal places.

Type: Integer (VT_I4)

Evaluator
 Context Required. The expression evaluator instance used to evaluate product, targeting context, and user expressions.

Type: IExprEval (VT_DISPATCH)

_trace_discounts
 Context Optional (default is false). Determines whether the OrderDiscount component should generate tracing information.

Type: Bool (VT_BOOL)

Notes

  • When tracing is turned on, it has a minimal amount of performance overhead because the string must be generated with each aspect of the decisions made.
  • When enabled, the key_discounts_trace_information will be written to the OrderForm object.

CacheManager
 Context Optional (unless the _discounts key was not set in the OrderForm object). A CacheManager object used for retrieving the cached set of discounts eligible for application.

Type: IcacheManager (VT_DISPATCH)

CacheName
 Context Optional (unless the _discounts key was not set in the OrderForm object). The name of the CacheManager cache containing the cached set of discounts

Type: String (VT_BSTR)

MessageManager
 Context Required (only checked if one of the warnings listed under Notes is used). A reference to a MessageManager object.

Type: IMSCSMessageManager_3_0 (VT_DISPATCH)

Notes

  • The following messages may be added to the _Basket_Errors list in the OrderForm object:
    • pur_discount_removed (one or more discounts no longer apply).
    • pur_discount_changed (one or more discounts have changed).

Language
 Context Optional (unless one of the MessageManager object warnings is used) The MessageManager object language in which localized messages should be retrieved from the MessageManager object.

Type: String (VT_BSTR)

UserProfile
 Context Optional. A ProfileObject object representing the current user, which is used in evaluating discount eligibility requirement expressions.

Type: IprofileObject or IDictionary (VT_DISPATCH)

ContextProfile
 Context Optional. The TargetingContext profile to use for evaluating discount eligibility requirement expressions. This is usually a Dictionary object but may also be a Profile object.

Type: IprofileObject or IDictionary (VT_DISPATCH)

SiteName
 Context Optional. The site name, used only for reporting the SiteName as part of several limited error messages, which may be reported to the Event log.

Type: String

Values Written

The OrderDiscount component writes the following values to the Order dictionary.

Key Description
_discounts
 Not always written (if the _discounts list was set before the OrderDiscount object was run, it is not changed). A ContentList object containing the discounts from the discounts cache, which is based on the CacheName key in the pipeline context. For the structure of the ContentList object, see CSFLoadDiscounts.

Type: ContentList (VT_DISPATCH)

_winners
 Always written. A SimpleList object, which contains the campaign item IDs of all discounts applied to the basket.

Type: SimpleList (VT_DISPATCH)

Note

  • Used by the RecordEvent and IISAppendToLog components to record the fact that the campaign items were applied (SOLD events), normally in the Accept stage of the checkout pipeline.

_event
 Always written. Contains the name of the event to record, which should always be set to SOLD.

Type: String (VT_BSTR)

Note

  • This value is used by the RecordEvent and IISAppendToLog components to record the fact that the campaign items were applied (SOLD events), normally in the Accept stage of the checkout pipeline.

item._itemlevel_discounts_applied
 Not always written (only written if one or more item level discounts apply to the line item). A SimpleList of dictionaries where each dictionary contains information about an item level discount that was applied to the line item. The order of the list is significant and represents the order in which the discounts were applied to this line item.

The dictionary contains the following elements for each discount:

  • discount_id: Campaign item ID (VT_I4)
  • discount_priority: Discount priority (rank) (VT_I4)
  • discount_timestamp: Last-modified timestamp of the discount (VT_DATE)
  • cy_discount_amount: How much was actually taken off of the item (VT_CY)
  • discount_type: 1=Currency Value; 2=Percentage (VT_I4)
  • cy_discount_value: Currency value or percentage value (VT_CY)
  • discount_name: Discount name (VT_BSTR)

Type: Dictionary (VT_DISPATCH)

item._cy_itemlevel_discounts_subtotal
 Not always written (only written if one or more item level discounts apply to the line item). Sum of all item level discounts apply to this line item.

Type: Currency (VT_CY)

item._cy_oadjust_adjustedprice
 Always written. The total price of all the items, after all the discounts have been applied. An item is adjusted if it received a discount or was used as a condition for a discount where either the reuse_condition_as_condition or reuse_condition_as_award flags were set to false.

Type: Currency (VT_CY)

Note

  • Total price for the line item can be computed as the following:

    _n_unadjusted*_cy_iadjust_currentprice+_cy_oadjust_adjustedprice

item._n_unadjusted
 Always written. The number of items whose price remains unadjusted after discounts are applied. An item is adjusted if it received a discount or was used as a condition for a discount where either the reuse_condition_as_condition or reuse_condition_as_award flags was set to false.

Type: Integer (VT_I4)

item.discounts_applied
 Not always written. A dictionary containing the campaign item IDs of the discounts that applied to this item. The keys are the IDs; the values are the date-time stamps of the discounts. This is normally persisted along with the OrderForm object and used by the OrderDiscount object to detect discount changes and warn the user when a discount has changed or been removed.

Type: IDictionary (VT_DISPATCH)

Note

  • The format of the dictionary is a mapping from discount ID (campaign item ID) to a last-modified timestamp (VT_DATE). The last-modified timestamp is the time the discount campaign item was last modified in Business Desk.

_discounts_removed
 Not always written. A SimpleList object, which contains campaign item IDs of discounts that no longer apply to the basket since the last time the pipeline was run. This key is written only if some discounts no longer apply.

Type: SimpleList (VT_DISPATCH)

Note

  • If this key is set, OPPERRORLEV_WARN (2) is returned from the Execute method, and the MessageManager message pur_discount_changed is added to the _Basket_Errors list.

_discounts_changed
 Not always written. A SimpleList object, which contains campaign item IDs of discounts that have changed since the last time the pipeline was run. This key is written only if some discounts have changed.

Type: SimpleList (VT_DISPATCH)

Note

  • If this key is set, OPPERRORLEV_WARN (2) is returned from the Execute method and the MessageManager message pur_discount_changed is added to the _Basket_Errors list.

orderlevel_discounts_applied
 Not always written (written only if one or more order level discounts were applied). A dictionary with information about the discounts that applied at the order level the last time the OrderDiscount component was run. This is normally persisted along with the OrderForm object and used by the OrderDiscount object to detect discount changes and warn the user when a discount has changed or been removed.

Type: Dictionary (VT_DISPATCH)

Note

  • The format of the dictionary is a mapping from the discount ID (campaign item ID) to a last-modified timestamp (VT_DATE). The last-modified timestamp is the time the discount campaign item was last modified in Business Desk.

_orderlevel_discounts_detail
 Not always written (written only if one or more order level discounts were applied). A dictionary that maps special offer types to a list of order level discounts that applies for that special offer type. Other components such as OrderDiscountApply or ShippingDiscountAdjust are responsible for actually applying the discounts.

Each element is a dictionary. The exact format of the dictionary depends on whether the element represents a combination of percentage-off discounts of the same priority, or a single discount.

Following are the dictionary entries if the element represents a single discount:

  • discount_id: Integer (VT_I4)
  • discount_timestamp: Last_modified timestamp of the discount (VT_DATE)
  • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries if the element represents a combined percentage-off discount:

  • discounts_combined: A SimpleList object that describes each of the discounts that were combined. Each element in this list is a dictionary with the following keys:
    • discount_id: Integer (VT_I4)
    • cy_discount_percentage: Value (VT_CY)
    • discount_timestamp: Llast_modified tiemestamp of the discount (VT_DATE)
    • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries that exist in both cases:

  • discount_priority: Priority (rank)
  • discount_type: 1=Currency; 2=Percentage (VT_I4)
  • cy_discount_value: Currency or Percentage value (VT_CY). If the element represents a combined percentage-off discount, this is the total percentage.

The order the elements appear in the list is significant, because it is the order that OrderDiscount has determined they should be applied.

Type: Dictionary (VT_DISPATCH)

Note

  • A combined percentage discount will never reflect a value greater than 100 percent, even if the sum of the percentages of discounts in the discounts_combined list is greater than 100. The last contribution of the discount is considered as the only amount that will apply.

    If the combination is already discounted 100 percent, no further percentage discounts of the same priority will be considered as applied, even if they could apply. Therefore, they will not be written to the list.

_Basket_Errors
 Not always written (modified if _discounts_removed or discounts_changed is set). Error messages are written to this SimpleList object.

Type: IsimpleList (VT_DISPATCH)

Note

  • Every OrderForm object has a _Basket_Errors list that is used to report non-fatal pipline errors to the user.

_qualifying_discounts
 Not always written (written only when one or more discounts meet their qualification, but the discount has nothing to which to apply). Discount item IDs of the discounts that meet their qualifications, but for which there is nothing to award are written to this SimpleList object.

Type: IsimpleList (VT_DISPATCH)

_discounts_trace_info
 Not always written (written only if context_trace_discounts was set to true). Contains information about discount decisions.

Type: String (VT_BSTR)

_<special_offer_type>_type
 Not always written. The type of an order level discount (for example, free shipping), if one applies. Another component in the pipeline (such as ShippingDiscountAdjust) applies the discount. The key name is formed from the string stored in the special_offer_type key in the ContentList object. Possible values are:
  • 1 (money discount)
  • 2 (percentage discount)

More than one type of order level discount may apply to the same OrderForm.

Type: Currency (VT_CY)

Important

  • This is a legacy key for backward compatibility with the Commerce Server 2000 OrderDiscount component. New development should use the _orderlevel_discounts_detail dictionary.

_cy_<special_offer_type>_value
 Not always written. The value of an order level discount (for example, free shipping), if one applies. Another component in the pipeline (such as ShippingDiscountAdjust) applies the discount. This key is used only for custom discounts applied outside of the pipeline. The key name is formed from the string stored in the u_special_offer_type key in the discount database. The value of the discount comes from the offer_value field in the ContentList object.

Type: Currency (VT_CY)

Important

This is a legacy key for backward compatibility with the Commerce Server 2000 OrderDiscount component. New development should use the _orderlevel_discounts_detail dictionary.

_cy_<special_offer_type>_description
 Not always written. The description of an order level discount if one applies. This key may be used to display when the discount applies somewhere on the page. The value comes from the description field in the ContentList object.

Type: String (VT_BSTR)

Important

This is a legacy key for backward compatibility with the Commerce Server 2000 OrderDiscount component. New development should use the _orderlevel_discounts_detail dictionary or the item_orderlevel_discounts_applied dictionary to get the item IDs. It can then look up the discount descriptions from the _discounts ContentList.

Errors

The component writes error messages to the _Basket_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_discount_removed | A discount no longer applies since the pipeline was last run.
pur_discount_changed | A discount has changed since the pipeline was last run.

Remarks

The OrderDiscount component applies discounts to the shopping basket of a user. The discounts are scheduled through the Campaign Manager module in Commerce Server Business Desk. Each discount is a campaign item and has a unique campaign item ID.

You can adjust the scores of discounts that the OrderDiscount component applies by using the ScoreDiscounts component in a Content Selection pipeline. The ScoreDiscounts component adjusts the scores of discounts and saves them in the ContentList object held by the CacheManager object. That ContentList object would then be used by the OrderDiscount component in another pipeline.

The OrderDiscount component rounds at the line item level — if more than one discount applies to a line item, the discounts are combined before rounding is done. Currencies with four decimal places of precision are the exception. In this case, values are truncated to four decimal places as discounts are combined.

For a detailed discussion about how discounts are selected and applied, see Discount Objects.

The _winners and _event keys are used to record events for tracking in the campaign system and are imported into the Data Warehouse for reporting.

See Also

Discount Objects

CSFLoadDiscounts

ScoreDiscounts


OrderLevelDiscountApply

Use this component to apply order level subtotal discounts.

Intended use: Order Processing pipeline, Order Adjust Price stage, between OrderDiscount and RequiredOrderAdjustPriceCy components.

In the Component Properties dialog box, on the Order Level Discount tab, do the following:

Use this | To do this
Apply discounts to all items | Apply order level discounts to all items in the order form.
Apply discounts to items where the following key exists and the corresponding value is nonzero | Apply order level discounts only to items in the order form where the specified item dictionary key exists and the corresponding value is nonzero.

Click Apply to save your changes.

For more information about discount interactions, see Order Subtotal Discount.

Configuration Values

None.

Values Read

The OrderDiscountApply component reads the following values from the indicated dictionaries.

Key Dictionary Description
item.quantity
 Order Required. The total quantity of all the line items.

Type: Integer (VT_I4)

item._cy_iadjust_currentprice
 Order Required. The current price of all the line items.

Type: Currency (VT_CY)

item._cy_oadjust_adjustedprice
 Order Optional (default is 0.0). The total price of all the items, after all the discounts have been applied.

Type: Currency (VT_CY)

Note

  • Total price for the line item can be computed as the following:

    _n_unadjusted*_cy_iadjust_currentprice+_cy_oadjust_adjustedprice

item._n_unadjusted
 Order Optional (default is equal to the quantity). The quantity of line items that have not been adjusted bythe OrderDiscount component or other discounting components (number of line items that are eligible to serve as discount conditions and receive discount awards).

Type: Integer (VT_I4)

_orderlevel_discounts_detail
 Order Optional. A dictionary that maps special offer types to a list of order level discounts that applies for that special offer type.

Each element is a dictionary. The exact format of the dictionary depends on whether the element represents a combination of percentage-off discounts of the same priority, or a single discount.

Following are the dictionary entries if the element represents a single discount:

  • discount_id: Integer (VT_I4)
  • discount_timestamp: Last_modified timestamp of the discount (VT_DATE)
  • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries if the element represents a combined percentage-off discount:

  • discounts_combined: A SimpleList object that describes each of the discounts that were combined. Each element in this list is a dictionary with the following keys:
    • discount_id: Integer (VT_I4)
    • cy_discount_percentage: Value (VT_CY)
    • discount_timestamp: Last_modified timestamp of the discount (VT_DATE)
    • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries that exist in both cases:

  • discount_priority: Priority (rank)
  • discount_type: 1=Currency; 2=Percentage (VT_I4)
  • cy_discount_value: Currency or percentage value (VT_CY). If the element represents a combined percentage-off discount, this is the total percentage.

The order the elements appear in the list is significant, because it is the order that OrderDiscount has determined they should be applied.

Type: Currency (VT_CY)

Note

  • This is the list used by OrderDiscount to specify to other pipeline components the complete list of order level discounts that should be applied to the basket.

_currency_decimal_places
 Order Optional (if not set, the _currency_lcid key must be set, and the number of currency decimal places will be the default for that locale). Describes the number of digits of precision (after the decimal point) for which to round certain intermediate results, and to round to when writing currency values into the OrderForm object.

Type: Integer (VT_I4)

_currency_lcid
 Order Optional (required only if the _currency_decimal_places key is not set). Describes a locale (LCID) to use to retrieve the number of currency decimal places.

Type: Integer (VT_I4)

SiteName
 Context Optional. Used only for reporting the site name as part of several limited error messages, which may be reported to the Event log.

Type: String

Values Written

The OrderDiscountApply component writes the following values to the Order dictionary.

Key Description
item._cy_orderlevel_discounts_subtotal
 Not always written (only written if one or more order level discounts apply to the line item). The sum of all order level subtotal discounts applied to this line item. This key is written even if the discount applied has no impact on the price.

Type: Currency (VT_CY)

item._cy_orderlevel_discounts_applied
 Not always written. A SimpleList of dictionaries where each dictionary contains information about an item level discount that was applied to the line item. The order of the list is significant and represents the order in which the discounts were applied to this line item. This key is written even if the discount applied has no impact on the price.

The dictionary contains the following elements for each discount:

  • discount_id: Campaign item ID (VT_I4)
  • discount_priority: Discount priority (rank) (VT_I4)
  • discount_timestamp: Last-modified timestamp of the discount (VT_DATE)
  • cy_discount_amount: How much was actually taken off of the item (VT_CY)
  • discount_type: 1=Currency Value; 2=Percentage (VT_I4)
  • cy_discount_value: Currency value or percentage value (VT_CY)
  • discount_name: Discount name (VT_BSTR)

Type: Dictionary (VT_DISPATCH)

item._cy_oadjust_adjustedprice
 Not always written (default is 0.0). The total price of all the items, after all the discounts have been applied.

Type: Currency (VT_CY)

Notes

  • The price for the line item can be ccomputed as the following:

    _n_unadjusted*_cy_iadjust_currentprice+_cy_oadjust_adjustedprice

  • If a discount applies to this line item, the entire quantity is considered adjusted. Therefore, it will be the total price for the line item after all item level and order level discounts are applied.
item._n_unadjusted
 Not always written (only for items to which a discount will apply by this component). The quantity of items in this line that have not been adjusted.

Type: Integer (VT_I4)

Note

  • If a discount applies to this line item, the entire quantity is considered adjusted, so it will be set to zero.

Remarks

For information about extending the OrderLevelDiscountApply component, see Order Level Discount Pipeline Components.

See Also

Discount Objects

CSFLoadDiscounts

ScoreDiscounts

ShippingDiscountAdjust


POtoFile

Use this component to send a purchase order or other textual data to a file.

Intended use: Order Processing pipeline, Purchase Order Submit or Accept stage.

Configuration Values

You can determine where the POtoFile component retrieves the document and where it writes the result by setting component properties. Use the following boxes on the PO to File tab of the Component Properties dialog box to determine this information.

Box | Description
Source Field Name | The name of the field on the order from which the component reads the purchase order data. The default is po_text.
File Name | The full path to the file the component writes the purchase order to. To locate the file, click Browse.
File named in field | The name of the field in the OrderForm object whose value is the name of the file the component writes the purchase order to; for example, save_filename.
Temporary file, name saved in field | Specifies that the component should save the text to a temporary file, and then save the name of the temporary file in the field identified in the text box. For example, saved_filename.
Append to file instead of overwriting file | When checked, indicates that the text should be appended to the indicated file. Otherwise, the file is overwritten if it exists.

Values Read

The POtoFile component reads the value specified by the key in the Order dictionary indicated in the Source Field Name box.

Values Written

None.

Remarks

The purchase order is usually the output of the MakePO component.

The File Name, File named in field, and Temporary file boxes are mutually exclusive; that is, you can select only one of the three.

Programmatic Use

To use this component outside of a pipeline, you must configure it by assigning values to keys in the Configuration dictionary. The keys correspond to the indicated boxes in the Component Properties dialog box.

Key | Box | Description
SourceFieldName | Source Field Name | String.
SaveMode | N/A | Numeric. 0 for file name given; 1 for file name comes from SourceFieldName.
FixedSaveFileName | File Name | String.
SaveFileFieldName | File name in field | String.
TempFileFieldName | Temporary file, name saved in field | String.
IsAppendToFile | Append to file instead of overwriting file | Numeric. 0 for overwriting; 1 to append.

For more information about using pipeline components outside of pipelines, see MicroPipe Object.

See Also

MakePO


QueryCatalogInfo

Use this component to retrieve catalog information for every item in the order form.

Note

  • This component replaces the older QueryProdInfoADO component. The QueryCatalogInfo component works with the new Commerce Server 2002 catalog structure rather than performing product table lookups.

Intended use: Order Processing pipeline, Product Info stage.

Configuration Values

None.

Values Read

The QueryCatalogInfo component reads the following values from the indicated dictionary.

Key | Dictionary | Description
CacheManager | Context | A reference to a CacheManager object.
catalog_language | Context | Optional. String. The language of the data being retrieved from the catalog.
CatalogManager | Context | A reference to a CatalogManager object.
item.product_catalog | Order | String. The catalog containing the item.
item.product_id | Order | String. The product identifier.
item.product_variant_id | Order | Optional. String. An additional identifier used to distinguish variants of a particular product such as different colors of an item.
item.catalog_language | Order | Optional. String. The language of the data being retrieved from the catalog.

Values Written

The QueryCatalogInfo component writes the following values to the Order dictionary.

Key | Description
item._product_* | Optional. Product properties for each item. The column name is appended to form the key name. For more information, see the Remarks section.
item.delete | Optional. A flag indicating the item should be deleted from the order. For more information, see the Remarks section.

Remarks

The QueryCatalogInfo component retrieves product information from the catalog system for every item in the order. It adds the retrieved information to each Item dictionary in the order form.

Items are identified by a combination of the product_catalog, product_id, product_variant_id, and catalog_language keys. The product_variant_id key is required only if the product is a variant, such a particular color of an item that comes in multiple colors. The catalog_language key is required only if the product is available in more than one language.

If the catalog_language key is changed for any items while they are in the order form, the next time the Order Processing pipeline is run, it will check to see that the items are still valid in the specified language. If the language is missing, then product information is retrieved in the default language of the catalog. If the language is specified and is valid for the catalog, then the info in the specified language is retrieved. If the language is specified and not valid for that catalog, the properties of the item from the default language will be returned.

If no data is found for an item, the QueryCatalogInfo component marks the item for deletion by creating a key in the Item dictionary. The key, delete, is assigned a value of one (1). The RequiredProdInfo component checks for this flag and deletes the item if the key is found. Typically, this deletion occurs when an item in the basket is removed from a catalog.

If data for an item is found, the QueryCatalogInfo component writes an entry to the corresponding Item dictionary for every property. The name of the entry is the prefix _product_ followed by the property name. For example, a product property named "weight", would be stored as _product_weight. The value of the entry is set to the corresponding data from the catalog system.

The catalog_language key can be set individually for each line item. However, this will be slower than setting the catalog_language key at the pipe_context level. If no language is specified the default language for the catalog is used. This component does not detect when a catalog supports a given language, but localization has not occurred for the line item.

The QueryCatalogInfo component requires a CacheManager object with a QueryCatalogInfoCache data structure in its PipeContext Dictionary. The QueryCatalogInfo component uses this data structure to cache the product and category information it applies to line items

The following code is used to setup the cache in the Global.asa file:

    ' Initialize dictQCICacheConfig
    Set dictQCICacheConfig = Server.CreateObject("Commerce.Dictionary")
    dictQCICacheConfig("ConnectionString") _
     = _dictConfig.s_TransactionConfigConnectionString
    dictQCICacheConfig("CacheSize") = 10000
    dictQCICacheConfig("TableName") = "CatalogCache_Virtual_Directory"
    dictQCICacheConfig("CacheName") = "CatalogCache"
    dictQCICacheConfig("AppUrl") = sMachineBaseURL

    ' Configure CacheManager For QueryCatalogInfoCache
    oCacheManager.RefreshInterval("QueryCatalogInfoCache") = 60 * 60
    oCacheManager.RetryInterval("QueryCatalogInfoCache") = 5 * 60
    oCacheManager.CacheObjectProgId("QueryCatalogInfoCache") _
     = "Commerce.LRUCache"
    oCacheManager.LoaderProgId("QueryCatalogInfoCache") _
     = "Commerce.LRUCacheFlush"
    Set oCacheManager.LoaderConfig("QueryCatalogInfoCache") _
     = dictQCICacheConfig

See Also

RequiredProdInfo


QueryProdInfoADO

Use this component to retrieve product information from a database.

Note

  • Use the new QueryCatalogInfo for new applications to take advantage of the new Commerce Server 2002 catalog API.

Intended use: Order Processing pipeline, Product Info stage.

Configuration Values

You can determine the query the QueryProdInfoADO component runs by setting component properties. Use the following boxes on the Query Prod Info (ADO) tab of the Component Properties dialog box to determine this information.

Box | Description
Connection String | The connection string to connect to the database. This may be a full connection string or a name in a connection map. If blank, the default connection string is passed through.
Query | The full SQL text of the query this component will run, or the name of a query whose full SQL text is defined in the Global.asa file in the QueryMap key.
Parameter List | A space-separated list of the parameters to pass to the query. The stockkeeping unit (SKU) for an item (item.sku) is commonly used.

Values Read

The QueryProdInfoADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default query string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

The QueryProdInfoADO component writes the following values to the Order dictionary.

Key | Description
item._product_* | The product information for each SKU found, added to the Item dictionary in the Order dictionary. The column name is appended to form the key name.
item.delete | A deletion flag, set to one (1) for an item if it is not found. The item will be deleted from the order.

Remarks

The QueryProdInfoADO component runs a database query to retrieve data about products on the order form. If unique data for the specified query is found, then for each column retrieved by the query, the component writes the data into the item._product_columnvalue keys in the Item dictionary of the order form. This makes product information available to components later in the pipeline.

The connection string must include either the full connection string (the data source name (DSN), database login ID, and database password) or the name of a named connection stored in the connection map.

If you add new columns to the product database table, and if this information is needed by any component in the pipeline, then you must add the column to the query used by the QueryProdInfoADO component.

If data for the specified SKU is found, then for each column retrieved by the query, the QueryProdInfoADO component writes a key and value pair to the Item dictionary. The key consists of the prefix _product_, followed by the column name. Thus, for example, the data in a table column named col would be placed in the value of item._product_col. Finally, the QueryProdInfoADO component initializes the value to contain the data stored in the appropriate column.

If no rows or more than one row are returned by the query, the QueryProdInfoADO component writes a key named delete to the Item dictionary, initializes the delete item to 1 (marking it for deletion) and moves on to the next item. Items marked for deletion are removed from the order form, typically by the RequiredProdInfo component.


RecordEvent

Use this component to record event delta counts for the selected content items (the winners) in the Performance dictionary.

Although this component appears as RecordEvent in the Pipeline Editor, its ProgID is Commerce.CSFRecordEvent.

Intended use: Content Selection or Event Processing pipeline, Record stage; Order Processing pipeline, Receipt stage.

Configuration Values

None.

Values Read

The RecordEvent component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_event | Order | A string containing the name of the event to record.
_eventcount | Order | Optional. A SimpleList object containing the number of events to record for each winning content item. It must contain the same number of elements as the _winners list. One event is recorded for each winning item if this key is not present.
_winnerindexes | Order | A SimpleList object containing the ContentList object indexes of the winning content items. If this key is present, the _winners key should not be present. If both are present, only this key is used.
_winners | Order | A SimpleList object containing values from the item_id keys of the selected (winning) content items. If this key is present, the _winnerindexes key should not be present. If both are present, only the _winnerindexes key is used.
_performance | Order | Specifically, the previous event delta count for the various content items.
_content.item_id | Order | The item_id key for the various content items contained in the ContentList referenced by _content. If the _content key is present, the referenced ContentList object must have a column named item_id.

Values Written

The RecordEvent component writes the following values to the Order dictionary.

Key | Description
_performance | The Performance dictionary. This key will contain the new event delta counts for the various content items.
_content.invalid_nod | A Boolean flag for each item in the ContentList object. Set this key to True if the item needs to have the Need of Delivery (NOD) re-calculated.

Remarks

The following are the names of the pre-defined events for campaigns:

  • REQUEST. A content request event.
  • CLICK. A click event for an ad or a promotion.
  • DOWNLOAD. A download of a GIF image or other advertising asset from the Web server.
  • SOLD. An item sold event, such as for a promotion or bounty ad.

You can record custom events by adding custom event names to the event_type table in your campaigns database.

This component flags whether or not the NOD values of the winning content items need to be re-calculated. The flag is set to True if the Item dictionary has a NOD key and if the event name matches the type of event the item is scheduled by.

The NOD values can be recomputed in the absence of a ContentList object (when the _Content key is not present) if the _winners key is passed instead of the _winnerindexes key.

The Performance dictionary contains a subdictionary for each content item for which an event has occurred, keyed by the item_id key. Each subdictionary maps event names to a count of the number of new occurrences of that event. Periodically, the total in the database for each event for each content item will be incremented by this amount. The RecordEvent component is responsible for creating keys in these dictionaries as needed and incrementing the corresponding values. The WriteEvents cache component is responsible for recording the increments in the running totals in the database.


RecordHistory

Use this component to record the identifiers of the winning content items in the history list string.

Although the component appears as RecordHistory in the Pipeline Editor, its ProgID is Commerce.CSFRecordHistory.

Intended use: Content Selection pipeline, Record stage.

Configuration Values

You can determine how many items the RecordHistory component saves in the string by setting component properties. Use the following box on the Record History tab of the Component Properties dialog box to determine this information.

Box | Description
Maximum number of items to store in history string | Numeric. The maximum number of items saved in the history string. The default is 35.

Values Read

The RecordHistory component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_history | Order | The history string retrieved by the LoadHistory component.
_winnerindexes | Order | A SimpleList object containing the ContentList object indexes of the winning content items. If this entry is present, the _winners key should not be present. If both are present, only this key is used.
_winners | Order | A SimpleList object containing the values from the item_id keys of the winning content items. If this entry is present, the _winnerindexes key should not be present. If both are present, only the _winnerindexes key is used.
_content | Order | The item_id key for the various content items contained in the ContentList object referenced by the _content key. The item_id key is automatically looked up if the _winnersindexes key is passed instead of the _winners key.

Values Written

The RecordHistory component writes the following values to the Order dictionary.

Key | Description
_history | The updated history list string.

Remarks

The RecordHistory component is responsible for managing the size of the history list and truncates it when necessary. The component removes the oldest entries from the string when it exceeds the maximum length.

The property page for the RecordHistory component allows the maximum number of entries in the history to be configured. This component trims the least recent history list entries, as necessary, to assure that this limit is not exceeded.

See Also

ContentList Object

SimpleList Object


RequiredHandlingCy, RequiredHandling

Use this component to verify that the handling total is present in the order.

The RequiredHandling component is for backward compatibility only. The RequiredHandlingCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Handling stage.

Configuration Values

None.

Values Read

The RequiredHandlingCy component reads the following values from the indicated dictionaries. The RequiredHandling component reads the same key but without cy_.

Key | Dictionary | Description
_cy_handling_total | Order | The total cost for handling the order.
MessageManager | Context | A reference to a MessageManager object. This key is used to retrieve the bad-handling total constant (pur_badhandling) in case of an error.

Values Written

The RequiredHandlingCy and RequiredHandling components write the following value to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredHandlingCy and RequiredHandling components return error level 2 (OPPERRORLEV_WARN) when the handling total is not in the order form. Other errors return error level 3 (OPPERRORLEV_FAIL).

The components write error messages to the _Purchase_Errors collection. The components use a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badhandling | The handling total is not in the order form.

Remarks

The RequiredHandlingCy and RequiredHandling components verify that the order._handling_total key is present.

See Also

MessageManager Object


RequiredItemAdjustPriceCy, RequiredItemAdjustPrice

Use these components to ensure that the current price for each item in the order is set and that it has not been changed.

The RequiredItemAdjustPrice component is for backward compatibility only. The RequiredItemAdjustPriceCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Item Adjust Price stage.

Configuration Values

None.

Values Read

The RequiredItemAdjustPriceCy component reads the following values from the indicated dictionaries. The RequiredItemAdjustPrice component reads the same key but without cy_.

Key | Dictionary | Description
item._cy_iadjust_currentprice | Order | Reads the current price of each item in the items collection in the OrderForm object.
item._cy_iadjust_regularprice | Order | Reads the regular price of each item in the items collection in the OrderForm object.
item.cy_placed_price | Order | Reads the placed price of each item in the items collection in the OrderForm object. For more information, see the Remarks section.
MessageManager | Context | A reference to a MessageManager object. This key is used to retrieve the bad-handling total constant (pur_badplacedprice) in case of an error.

Values Written

The RequiredItemAdjustPriceCy component writes the following values to the Order dictionary. The RequiredItemAdjustPrice component writes the same keys but without cy_.

Key | Description
item.cy_placed_price | Writes the placed price of an item in the items collection in the OrderForm object. For more information, see the Remarks section.
item._cy_iadjust_currentprice | Writes the adjusted current price of an item in the items collection in the OrderForm object.
_Basket_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredItemAdjustPriceCy and RequiredItemAdjustPrice components return error level 2 (OPPERRORLEV_WARN) when the placed price is not equal to the current price. Other errors return error level 3 (OPPERRORLEV_FAIL).

These components write error messages to the _Basket_Errors collection. These components use a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badplacedprice | The placed price is not equal to the current price — the current price has changed since the item was added to the basket.

Remarks

The RequiredItemAdjustPriceCy and RequiredItemAdjustPrice components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredItemAdjustPriceCy component.

The RequiredItemAdjustPriceCy component verifies that the current price (_cy_iadjust_currentprice) exists for each item in the items list. If this value does not exist, the component creates it and initializes it to the regular price (_cy_iadjust_regularprice).

In addition, the component checks the placed price (cy_placed_price) against the current price (cy_iadjust_currentprice) to see if the current price has changed since the user placed the item in the basket. If the placed price does not exist, the component creates it and sets it to the current price (cy_iadjust_currentprice). If the placed price exists, but is not equal to the current price, the RequiredItemAdjustPriceCy component retrieves the warning message text for a bad placed price from the MessageManager object, and writes this message to the _Basket_Errors collection of the order form.


RequiredItemPriceCy, RequiredItemPrice

Use this component to verify that each item in the order form has a regular price assigned to it. Regular prices are assigned by the DefaultItemPrice component and similar components.

The RequiredItemPrice component is for backward compatibility only. The RequiredItemPriceCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Item Price stage.

Configuration Values

None.

Values Read

The RequiredItemPriceCy component reads the following values from the indicated dictionaries. The RequiredItemPrice component reads the same key but without cy_.

Key | Dictionary | Description
item._cy_iadjust_regularprice | Order | The regular price of an item.

Values Written

None.

Remarks

The RequiredItemPriceCy and RequiredItemPrice components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredItemPriceCy component.

The RequiredItemPriceCy component verifies that the _cy_iadjust_regularprice key has been set for each item in the items list.

Before the RequiredItemPrice component is run, the items list should have been initialized by the DefaultItemPriceCy component to contain the most current pricing information for the item.

If the _cy_iadjust_regularprice key does not contain a value, an error is raised.

See Also

DefaultItemPriceCy, DefaultItemPrice


RequiredOrderAdjustPriceCy, RequiredOrderAdjustPrice

Use these components to adjust the total cost of each item in an order after applying any discounts.

Use these components to calculate the cost of undiscounted items and the amount of a discount for all items in the order.

The RequiredOrderAdjustPrice component is for backward compatibility only. The RequiredOrderAdjustPriceCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines.

Intended use: Order Processing pipeline, Order Adjust Price stage.

Configuration Values

None.

Values Read

The RequiredOrderAdjustPriceCy component reads the following values from the indicated dictionaries. The RequiredOrderAdjustPrice component reads the same keys but without cy_.

Key | Dictionary | Description
item._n_unadjusted | Order | The quantity of this item that have not been discounted.
item._cy_iadjust_currentprice | Order | The current price of an item.
item._cy_oadjust_adjustedprice | Order | The total price of all the items, after all the discounts have been applied.
item.quantity | Order | The total quantity of an item.

Values Written

The RequiredOrderAdjustPriceCy component writes the following values to the indicated dictionaries. The RequiredOrderAdjustPrice component writes the same keys but without cy_.

Key | Description
item._cy_oadjust_adjustedprice | The total price of all the items, after all the discounts have been applied.
item._cy_oadjust_discount | The discount on an item.

Remarks

The RequiredOrderAdjustPriceCy and RequiredOrderAdjustPrice components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredOrderAdjustPriceCy component.

The RequiredOrderAdjustPriceCy component processes each item in the items collection of the OrderForm object.

For each item, the RequiredOrderAdjustPriceCy component first calculates the cost of the non-discounted quantity. It multiplies the current price of the item (_cy_iadjust_currentprice) by the undiscounted quantity of the item (_n_unadjusted) and adds it to the total cost of the item (_cy_oadjust_adjustedprice).

Next, it calculates the discount for the item (_cy_oadjust_discount) by calculating the total cost for the item (multiplying the current price of the item (_cy_iadjust_currentprice) by the total quantity (quantity)) and subtracting the previously calculated cost of the undiscounted items.

The RequiredOrderAdjustPriceCy component is visible in the Pipeline Editor only when the Editor is run in expert mode.


RequiredOrderCheck

Use this component to verify that the order form contains at least one item.

Intended use: Order Processing pipeline, Order Check stage.

Configuration Values

None.

Values Read

The RequiredOrderCheck component reads the following value from the indicated dictionary.

Key | Dictionary | Description
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the "no items in order" constant (pur_noitems) in case of an error.

Values Written

The RequiredOrderCheck component writes the following values to the Order dictionary:

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredOrderCheck component returns error level 2 (OPPERRORLEV_WARN) when there are no items in the OrderForm. Other errors return error level 3 (OPPERRORLEV_FAIL).

The components write error messages to the _Purchase_Errors collection. The components use a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_noitems | There are no items in the OrderForm object.

Remarks

The RequiredOrderCheck component ensures that the items list of the OrderForm object is not empty.

See Also

MessageManager Object


RequiredOrderInitCy, RequiredOrderInit

Use this component to initialize the payment authorization code, order ID, totals, and subtotals in an order form.

The RequiredOrderInit component is for backward compatibility only. The RequiredOrderInitCy component operates in both 3.0 compatibility mode and in 4.0 mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Order Initialization stage.

Configuration Values

None.

Values Read

The RequiredOrderInitCy and RequiredOrderInit components read the following values from the indicated dictionaries.

Key | Dictionary | Description
order_id | Order | The ID of the order.
item.quantity | Order | The quantity of an item.

Values Written

The RequiredOrderInitCy component writes the following values to the Order dictionary. The RequiredOrderInit component writes the same keys but without cy_.

Key | Description
order_id | The ID of the order.
item._cy_oadjust_adjustedprice | The total price of all the items, after all the discounts have been applied.
item._n_unadjusted | The number of items that have not been discounted.
_cy_total_total | The total cost of the order.
_cy_oadjust_subtotal | The subtotal of all items in the items list.
_cy_shipping_total | The total cost of shipping all items in the order.
_cy_tax_total | The total tax for the order.
_cy_handling_total | The total handling cost for the order.
_payment_auth_code | The payment authorization code.

Remarks

The RequiredOrderInitCy and RequiredOrderInit components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredOrderInitCy component.

First, the RequiredOrderInitCy component ensures that the order_id key has a value. If it does not, the RequiredOrderInitCy component generates a unique order ID and assigns it to this key.

Next, to ensure order integrity, the component initializes the following keys by assigning NULL to them:

_cy_total_total
_cy_oadjust_subtotal
_cy_shipping_total
_cy_tax_total
_cy_handling_total
_cy_tax_included
_payment_auth_code

Finally, for each item in the items collection, the RequiredOrderInitCy component copies the value stored in the quantity key to the _n_unadjusted key to initialize the undiscounted quantity of the item, and initializes the _oadjust_adjustedprice (the total cost of the item) key to zero (0).


RequiredOrderSubtotalCy, RequiredOrderSubtotal

Use this component to ensure that the subtotal of all items in the item list of an order exist so that order totals are properly calculated.

The RequiredOrderSubtotal component is for backward compatibility only. The RequiredOrderSubtotalCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Order Subtotal stage.

Configuration Values

None.

Values Read

The RequiredOrderSubtotalCy component reads the following value from the indicated dictionary. The RequiredOrderSubtotal component reads the same key but without cy_.

Key | Dictionary | Description
_cy_oadjust_subtotal | Order | The subtotal of all items in the item list of the order.

Values Written

None.

Remarks

Both the RequiredOrderSubtotalCy and RequiredOrderSubtotal components check the _oadjust_subtotal key in the OrderForm object to ensure that the value assigned to it is not NULL.

The RequiredOrderSubtotalCy component is visible in the Pipeline Editor only when the Editor is run in expert mode.


RequiredPayment

Use this component to verify that the payment authorization code exists in the order form (is not NULL).

Intended use: Order Processing pipeline, Payment stage.

Configuration Values

None.

Values Read

The RequiredPayment component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_payment_auth_code | Order | The payment authorization code for the order form.
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the bad payment constant (pur_bad_payment) in case of an error.

Values Written

The RequiredPayment component writes the following values to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

This component writes an error message to the _Purchase_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badpayment | The payment authorization code is missing from the order form.

Remarks

If the payment authorization code does not exist (is equal to NULL), the RequiredPayment component retrieves the error for the pur_badpayment constant from the MessageManager object, and writes this error to the _Purchase_Errors collection of the OrderForm object.

See Also

MessageManager Object


RequiredProdInfo

Use this component to delete items flagged for deletion by a previous Product Info stage component.

Intended use: Order Processing pipeline, Product Info stage.

Configuration Values

None.

Values Read

The RequiredProdInfo component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item.delete | Order | A flag on an item in the items collection of the OrderForm object. This key is created and set by another pipeline component.
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the bad stockkeeping unit (SKU) constant (pur_badsku) in case of an error.

Values Written

The RequiredProdInfo component writes the following values to the Order dictionary.

Key | Description
_Basket_Errors | Error messages are written to this SimpleList object.

Errors

The component writes an error message to the _Basket_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badsku | One or more items were deleted from the order.

Remarks

The RequiredProdInfo component checks all items in the items collection in the OrderForm object and deletes any items with a delete key set to 1 (one). Components that set this key include QueryCatalogInfo and QueryProdInfoADO.

If the RequiredProdInfo component deletes any items from the items collection, it uses the pur_badsku constant to retrieve error message text from the MessageManager object and stores this message in the _Basket_Errors collection of the OrderForm object so that the application can report the problem with the item to the user.

See Also

QueryCatalogInfo

QueryProdInfoADO


RequiredShippingCy, RequiredShipping

Use these components to verify that the shipping total has been set.

The RequiredShipping component is for backward compatibility only. The RequiredShippingCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

None.

Values Read

The RequiredShippingCy component reads the following values from the indicated dictionaries. The RequiredShipping component reads the same key but without cy_.

Key | Dictionary | Description
_cy_shipping_total | Order | The total shipping cost for the order.
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the bad-shipping total constant (pur_badshipping) in case of an error.

Values Written

The RequiredShippingCy and RequiredShipping components write the following value to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredShippingCy and RequiredShipping components return error level 2 (OPPERRORLEV_WARN) when the handling total is not in the order form. Other errors return error level 3 (OPPERRORLEV_FAIL).

The components also write an error message to the _Purchase_Errors collection. The components use a MessageManager object to retrieve error message text.

Constant | Condition
pur_badshipping | The shipping total key does not exist in the order.

Remarks

The RequiredShippingCy and RequiredShipping components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredShippingCy component.

The RequiredShippingCy component verifies that the _cy_shipping_total key exists in the order form. If the value does not exist, it uses the pur_badshipping constant to retrieve error message text from the MessageManager object and stores this message in the _Purchase_Errors collection of the OrderForm object.

See Also

MessageManager Object


RequiredTaxCy, RequiredTax

Use these components to verify that total tax and tax included appear in the order form.

The RequiredTax component is for backward compatibility only. The RequiredTaxCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

None.

Values Read

The RequiredTaxCy component reads the following values from the indicated dictionaries. The RequiredTax component reads the same key but without cy_.

Key | Dictionary | Description
_cy_tax_total | Order | The total tax for the order.
_cy_tax_included | Order | The amount of tax included in the order.
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the bad tax constant (pur_badtax) in case of an error.

Values Written

The RequiredTaxCy and RequiredTax components write the following value to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredTaxCy and RequiredTax components return error level 2 (OPPERRORLEV_WARN) when one of the tax items is missing. Other errors return error level 3 (OPPERRORLEV_FAIL).

The components also write an error message to the _Purchase_Errors collection. The components use a MessageManager order to retrieve error message text.

Constant | Condition
pur_badtax | One of the tax items is missing.

Remarks

The RequiredTaxCy and RequiredTax components perform the same actions although on different dictionary keys. The following discussion uses the keys for the RequiredTaxCy component.

The RequiredTaxCy component verifies that the _cy_tax_total and _cy_tax_included keys exist in the order form. If either value does not exist, the RequiredTaxCy component uses the pur_badtax constant to retrieve error message text from the MessageManager object and stores this message in the _Purchase_Errors collection of the OrderForm object.

See Also

MessageManager Object


RequiredTotalCy, RequiredTotal

Use these components to verify that values on a page have not been tampered with or reset. The components compare values in the order against values in the _Verify_With dictionary.

The RequiredTotal component is for backward compatibility only. The RequiredTotalCy component operates in Site Server 3.0 Commerce Edition, Commerce Server 2000, and Commerce Server 2002 compatibility mode pipelines. For more information, see Currency Enhancements.

Intended use: Order Processing pipeline, Order Total stage.

Configuration Values

None.

Values Read

The RequiredTotalCy and RequiredTotal components read the following values from the indicated dictionaries.

Key | Dictionary | Description
_Verify_With | Order | A dictionary whose keys and values will be tested against keys and values in the order form.
MessageManager | Context | A reference to a MessageManager object that is used to retrieve the verification error constant (pur_badverify) in case of an error.

Values Written

The RequiredTotalCy and RequiredTotal components write the following value to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The RequiredTotalCy and RequiredTotal components return error level 2 (OPPERRORLEV_WARN) when one or more of the keys and values in the _Verify_With dictionary do not match the corresponding order form entries. Other errors return error level 3 (OPPERRORLEV_FAIL).

The components write error messages to the _Purchase_Errors collection. The components use a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badverify | At least one of the keys and values in the _Verify_With dictionary did not match the corresponding pair in the order form.

Remarks

The RequiredTotalCy and RequiredTotal components go through the keys and values in the _Verify_With dictionary to ensure that the keys exists in the order form and have the same values.

You can use these components to verify that values on a page have not been tampered with or reset. To verify values on a page, add a hidden field for each item named _VERIFY_WITH that contains the item and the associated value. For, example to verify that the value ship_to_zip has not been altered, you would create a tag on the page similar this:

<INPUT TYPE="HIDDEN" NAME="_VERIFY_WITH"
       VALUE="<% = "ship_to_zip=" & CStr(mmsOrderForm.ship_to_zip) %>">

When the page is posted, the name and value will be added as a key and value to the _Verify_With dictionary in the OrderForm object.

You can use the VerifyWith method of the Page object to create the hidden tags. The ProcessVerifyWith method of the Page object copies the values of the hidden fields into the _Verify_With dictionary in the OrderForm object.

The Order Total stage always performs a _VERIFY_WITH check. Any fields in the post that appear as _VERIFY_WITH="value=key" will verify that the order has such a key and it is set to that value. This prevents a malicious resetting of addresses or contents. If _VERIFY_WITH is not on the order form, no check is performed.

For example, order._total_total should equal (order._VERIFY_WITH)._total_total if _total.total is in the _VERIFY_WITH clause.

See Also

Page.ProcessVerifyWith

Page.VerifyWith


SaleAdjust

Use this component to apply a sale price to an item.

This component is included for backward compatibility only. It has been replaced by the OrderDiscount component.

Intended use: Order Processing pipeline, Item Adjust Price stage.

Configuration Values

None.

Values Read

The SaleAdjust component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._product_sale_start | Order | Optional. The date the sale begins.
item._product_sale_end | Order | Optional. The date the sale ends.
item._product_sale_price | Order | The sale price of the item.

Values Written

The SaleAdjust component writes the following values to the Order dictionary.

Key | Description
item._iadjust_currentprice | The current price of the item with the promotion applied.

Remarks

The SaleAdjust component allows you to apply the sale price of an item. If the item is on sale, and if its _iadjust_currentprice key has not been initialized by a component that was previous run, the SaleAdjust component initializes _iadjust_currentprice key to the value stored in item._product_sale_price key.

The SaleAdjust component determines if an item is on sale by comparing the current date to the date values specified for the _product_sale_start key and the _product_sale_end key of the item.

The SaleAdjust component requires that the various sale values exist in the product table of the site database. Otherwise, the OrderForm object will not contain the data needed to calculate the adjusted price of the item (_iadjust_currentprice), and an error message will be generated. The product sale keys are set by the QueryProdInfoADO component in the Product Information stage.

Because the _product_sale_start and _product_sale_end keys are actually date-time pairs that specify midnight, the _product_sale_end key excludes the date specified. Thus, if you want the last day of a promotion to be 3/31, be sure to specify that the promotion ends on 4/1.

See Also

QueryProdInfoADO

OrderDiscount


SampleRegionalTax

Use this component for calculating taxes in pipelines using the multiple shipment features of Commerce Server 2002.

Note

  • The SampleRegionalTax component is not a complete solution to tax calculation. It is provided as an example of a tax component that takes full advantage of the multiple shipment features of Commerce Server 2002. Microsoft strongly recommends that you purchase a third-party tax component.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

None.

Values Read

The SampleRegionalTax component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
shipments | Order | A SimpleList object of shipments.
item._cy_oadjust_adjustedprice | Order | The total price of all the items, after all the discounts have been applied.
RegionalTaxCache | Context | A reference to a dictionary containing tax information.

In addition, the SampleRegionalTax component reads the following keys from the Addresses dictionary in the OrderForm object.

Key | Description
addresses.country_code | The ship to country/region for the address ID retrieved for the shipment.
addresses.region_code | Optional. The ship to region for the address ID retrieved for the shipment.

Values Written

The SampleRegionalTax component writes the following values to the Order dictionary.

Key | Description
item._cy_tax_total | The total tax for the item.
item._cy_tax_included | The total tax for the item included in the cost. You must set this key to zero (0).
shipment._cy_tax_total | The total tax for the shipment.
shipment._cy_tax_included | The total tax for the shipment included in the cost. You must set this key to zero (0).
_cy_tax_total | The total tax for the order.
_cy_tax_included | The total tax for the order included in the cost. You must set this key to zero (0).

Remarks

The SampleRegionalTax component computes tax for the Commerce Server 2002 shipping architecture that handles multiple shipments. For more information about how Commerce Server processes shipments, see Multiple-shipment Shipping Architecture.

For each shipment in the order, the component first gets the tax rate from the database using the CacheManager object and stores it in the SampleRegionalTaxCache component.

The SampleRegionalTax component then goes through each item in the shipment and calculates its tax based on the rate retrieved from the tax rate table. Rates are retrieved based on the country/region codes in the dictionary of addresses in the Order dictionary. For more information about the dictionary of addresses, see Multiple-shipment Shipping Architecture.

As it goes through the items and shipments in the order, the SampleRegionalTax component accumulates totals for the items, shipments, and, finally, for the entire order.

The tax rate data stored in the SampleRegionalTaxCache component is a snapshot of the RegionalTax database table. The RegionalTax table contains three columns.

Column | Data Type | Description
country_code | String, 255 characters. | The country code.
region_code | String, 255 characters. | The region code.
rate | Float, 8 bytes. | The tax rate.

You may include a wildcard entry (@) for a region code. This will match regions that would not otherwise match. If no entry is found in the RegionalTax table, the rate is zero (0).

Using a pipeline containing the SampleRegionalTax component is very similar to using a Content Selection pipeline. First, you configure the CacheManager object to use the SampleRegionalTaxCache loader in the Application_OnStart section of the Global.asa file. Then, in the Active Server Pages (ASP) page, you add an entry for the CacheManager object to the Context dictionary and invoke the pipeline.

Setup code in the Application_OnStart method:

    ' Create a Dictionary to hold configuration information.
    Set dConfig = CreateObject("Commerce.Dictionary")

    ' Add configuration information to the dictionary. SampleRegtionalTax
    ' only uses a connection string.
    dConfig("ConnectionString") = "DSN=adsamples;UID=username;PWD=******"

    ' Create a CacheManager object.
    Set CacheManager = Server.CreateObject("Commerce.CacheManager")

    ' Set the ProgID of the Loader component for the
    ' "SampleRegionalTaxCache" cache.
    CacheManager.LoaderProgId("SampleRegionalTaxCache") = _
                    "Commerce.SampleRegionalTaxCache"

    ' Set the Loader component config Dictionary for the cache.
    Set CacheManager.LoaderConfig("SampleRegionalTaxCache") = dConfig

    '
    ' Other CacheManager configuration code would appear here.
    '

    ' Store a reference to the CacheManager in the Application object.
    Set Application("CacheManager") = CacheManager

Code to run the pipeline containing the SampleRegionalTax component:

    ' Place a reference to the CacheManager in the context dictionary.
    Set dContext = Server.CreateObject("Commerce.Dictionary")
    dContext.CacheManager = Application("CacheManager")

    '
    ' Set other values and create the Order dictionary (dOrder) here.
    '

    ' Load and run the pipeline containing the tax component.
    Set pPooledPipe = Server.CreateObject("Commerce.PooledPipeline")
    pPooledPipe.LoadPipe("OrderAndTax.pcf")
    iErrVal = pPooledPipe.Execute(0, dOrder, dContext, 1)

See Also

Multiple-shipment Shipping Architecture

CacheManager Object

PooledPipeline Object

PooledTxPipeline Object


SaveHistory

Use this component to record the history string in one of three locations: the User Profile object, the ASP Session Collection, or the HTTP Cookie.

Although the component appears as SaveHistory in the Pipeline Editor, its ProgID is Commerce.CSFSaveHistory.

Intended use: Content Selection pipeline, Record stage.

Configuration Values

You can determine where the SaveHistory component saves the history string by setting component properties. Use the following boxes on the Save History tab of the Component Properties dialog box to determine this information. You must choose one of the following options.

Box | Description
User Profile Object | The property in the user profile to store the history string. The default is Advertising Info.Campaign History.
ASP Session Collection | The key in the Session object containing the history string. Requires that the component be configured with the proper key and that the pipeline be executing in IIS context. This is the default option.
HTTP Cookie | The key in the Cookies object containing the history string. This option requires that the component be configured with the proper key and that the pipeline be executing in IIS context.

Values Read

The SaveHistory component reads the following values from the indicated dictionary.

Key | Dictionary | Description
_history | Order | The history string retrieved by the LoadHistory component.

Values Written

None.

Errors

The SaveHistory component returns error level 3 (OPPERRORLEV_FAIL) when an error occurs.

Remarks

Saves the history string in one of the same three locations that the LoadHistory component can use as a source.

The property page for this component supports the same three choices as the property page for the LoadHistory component.

When using the User Profile object option, it's possible to use either a field that is mapped to a data column in a table, or a field that is not mapped. If the field is not mapped, the history string is persisted only for the duration of the user session and is later timed out of the profile cache. This method is more efficient than using the mapped method, but the mapped method allows the history string to be persisted across sessions. The unmapped option does not allow you to load balance Domain Name Server (DNS) network requests by sending the incoming requests to the next server in a list (round-robin load balancing).

See Also

LoadHistory


SaveReceipt

Use this component to save an order in a database table.

The SaveReceipt component is supplied for backward compatibility with Site Server 3.0 Commerce Edition only. In Commerce Server 2000 and Commerce Server 2002, use the SaveOrder method of the OrderGroup object to save the orders to the Transaction database.

Intended use: Order Processing pipeline, Accept stage.

Configuration Values

You can determine which items the SaveReceipt component will save in the database by setting component properties. Use the following boxes on the Save Receipt tab of the Component Properties dialog box to determine this information.

Box | Description
No Save Key Prefix | A prefix that identifies keys in the order form that should not be saved in the database table. Use this prefix to identify sensitive information such as credit-card numbers that should not be saved. The default prefix is _cc_.

Values Read

The SaveReceipt component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
ReceiptStorage | Context | A reference to a DBStorage object pointing to a database in which to save the data.
<Various Fields> | Order | The SaveReceipt component saves all fields in the order form that have a corresponding name in the database table and that do not begin with the characters specified in the No Save Key Prefix box.

Values Written

None.

Remarks

The SaveReceipt component saves an order to a database table. The name of the database table is stored in the DBStorage object. The Context dictionary key ReceiptStorage points to the object. The SaveReceipt component saves all fields on the order form that have a corresponding column name in the database table.

See Also

DBStorage Object


ScoreDiscounts

Use this component in discount promotion selection to adjust scores of discount items to promote discounts most relevant to the current user.

Although the component appears as ScoreDiscounts in the Pipeline Editor, its ProgID is Commerce.CSFScoreDiscounts.

Intended use: Content Selection pipeline, Scoring stage.

Configuration Values

None.

Values Read

The ScoreDiscounts component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_content | Order | A reference to the ContentList object. Multiple fields are read. For more information, see the Remarks section..
Evaluator | Context | A reference to the Expression Evaluator component to use.
ContextProfile | Context | Optional. The ContentSelector object (a dictionary) used in expression evaluation. A SimpleList object of dictionaries can also be read from the ContextProfile object from a key named Products. Typically, this is a list of the products the user is viewing or browsing (on the current page, for example). This product list should have the same format as the items list in an OrderForm object once the QueryCatalogInfo component has been run on it, making all product attributes available for discount expressions.
UserProfile | Context | Optional. A reference to a ProfileObject object containing the user profile for the current user that is used in expression evaluation.
Items | ContextProfile | Optional. The items collection from the OrderForm object. This list of products should have the same format as the items list in an OrderForm object once the QueryCatalogInfo component has been run on it, making all attributes of a product available for discount expressions.
trace | Context | Optional. A Boolean indicating whether score adjustment tracing is enabled. This component will not produce trace strings unless this key is set to True.

The ScoreDiscounts component reads the following values for each item in the ContentList object referred to by the _content key.

Key | Description
required_exprs | The required expressions built on User and Context profiles. This is an array of expression IDs that must be True; otherwise the discount is assigned a score of zero (0).
condition_expr | The discount condition expression.
award_expr | The award condition expression.
date_start | The date the discount becomes active.
date_end | The date the discount expires.

Values Written

The ScoreDiscounts component writes the following value to the Order dictionary.

Key | Description
_content | A reference to the ContentList object. The score key of each content item in the object is assigned a value.

Remarks

This component adjusts the score of discount content items with the goal of promoting discounts most relevant to the current user. The algorithm is based on the following considerations:

  • The start and end dates of the discount. If the discount has not started, or has expired, it is disqualified.
  • Whether the item to be discounted is in the shopping basket.
  • Whether the item to be discounted is on the page being viewed (in the products list).

The following table lists the multipliers used based on the various combinations of the conditions and awards being met in the basket, in the products list, or not met. A condition or award being "met" means that the expression evaluates to True, but not necessarily that the cost or quantity amount was met. More than one entry in the table below may be met. The first one met is the one applied.

Condition | Award | Multiplier | Description
Met in basket | Applies to all (or free shipping) | 0.5 | The user is already receiving the benefit of the discount.
Met in basket | Met in basket | 0.5 | The user is already receiving the benefit of the discount.
Met in basket | Met in products | 1.6 | The user has half the discount in the basket, and is in the part of the site with the other half.
Met in basket | Not met | 1.4 | The user has half the discount in the basket.
Met in products | Applies to all (or free shipping) | 1.2 | The user is in the part of the site with half the discount.
Met in products | Met in basket | 1.6 | The user has half the discount in the basket, and is in the part of the site with the other half.
Met in products | Met in products | 1.4 | The user is in the part of the site with both halves of the discount.
Met in products | Not met | 1.2 | The user is in the part of the site with half the discount.
Not met | Applies to all (or free shipping) | 1.0 | Neutral context.
Not met | Met in basket | 1.4 | The user has half the discount in the basket.
Not met | Met in products | 1.2 | The user is in the part of the site with half the discount.
Not met | Not met | 1.0 | Neutral context.

The OrderDiscount component applies the discounts whose scores are adjusted by the ScoreDiscounts component. The ScoreDiscounts component saves the scores in the ContentList object held by the CacheManager object. That ContentList object is then used by the OrderDiscount component in another pipeline.

See Also

Discount Objects

CSFLoadDiscounts

OrderDiscount


Scriptor

Use this component to run a script in a Microsoft ActiveX scripting language such as PerlScript from ActiveState, or Microsoft Visual Basic Scripting Edition (VBScript).

Intended use: any pipeline, any stage.

Configuration Values

You can determine where the Scriptor component reads the script and the parameters passed to it by setting component properties. Use the following boxes on the Scriptor tab of the Component Properties dialog box to determine this information.

Box | Description
Scripting Engine | Specifies the scripting language in which the script is written. The a drop-down list contains the scripting engines installed on your system.
Source Specifies whether the script is stored internally or externally. The options are:
Internal
The script is stored in the pipeline (.pcf) file itself. In the Pipeline Editor, click Edit to display the script for editing.
External
The script is stored in a file on disk. Enter the path and file name of the script in the Filename box. You can import an external script and convert it to an internal script. For more information, see Configuring a Scriptor Component.
Config | The parameters passed to the script in the form name=value.

Values Read

None.

Values Written

None.

Remarks

The Scriptor component calls three procedures in the script, in turn:

  1. The MSCSOpen procedure. The Scriptor component calls this procedure first and passes it the Configuration dictionary. You may omit this procedure.
  2. The MSCSExecute function. This is the main Scriptor component procedure and must appear in the script. The function is passed, in order, to the Configuration dictionary, the Order dictionary (usually an OrderForm object), the Context dictionary, and a flags variable.
  3. The MSCSClose handler. The Scriptor component invokes this procedure after the MSCSExecute procedure returns. It has no arguments and may be omitted.

The MSCSExecute function must return a success code. If you write the script in VBScript, the MSCSExecute routine must be a function, not a subroutine. The MSCSExcute function return values are: 1 for success, 2 for warning, and 3 for failure.

Parameters entered in the Config box of on the Scriptor tab in the Component Properties dialog box are passed to the script in the Configuration dictionary. The name is used as the key, and the value on the right of the equal sign is the value assigned to that key.

This is because the MSCSExecute function must return a success value of 1, a warning value of 2, or a failure value of 3. Subroutines cannot return 1.

If you include the Scriptor component in a pipeline using the MtsTxPipeline object, you should not call methods of the ObjectContext object in the MSCSOpen or MSCSClose procedures. Calls to ObjectContext methods may be used only in the MSCSExecute procedure.

The Microsoft Transaction Server (MTS) context is not available to a Scriptor component or to any components called by a Scriptor component. Thus context.SetComplete and context.SetAbort are not available to scripts run by the Scriptor component.

See Also

Configuring a Scriptor Component


Configuring a Scriptor Component

The script run by a Scriptor component can be stored internally, as part of a pipeline configuration file (.pcf), or externally, in a separate file called by the component when it runs.

You can write a general-purpose script that can behave differently depending on the parameters that are passed to it. Save the script itself in a file, and then configure the Scriptor component to pass the parameters.

The Microsoft Transaction Server (MTS) context is not available to a Scriptor component or to any components called by a Scriptor (that is, context.SetComplete and context.SetAbort are not available to scripts hosted by the Scriptor component).

To configure a Scriptor component

To convert a Scriptor between external and internal

To configure a Scriptor component

  1. Click Start, point to Programs, point to Microsoft Commerce Server, and then click Pipeline Editor.
  2. On the File menu, click Open. Browse to the pipeline containing the Scriptor component, and click Open.
  3. Right-click the Scriptor component you want to configure, click Properties, and then click the Scriptor tab.
  4. On the Scriptor tab, do the following:
    Use this | To do this
    Scripting Engine | Select the language in which the script was written.
    Source Select Internal, and then click Edit. In the Scriptor -- Source Code Edit screen, type or paste the script for your component, and then click OK.

    Or, select External to store the script in an external file. In the Scriptor dialog box, click No, if you do not wish to export the internal source code. Type the path and file name in the Filename box.
    Config To pass parameters to the script, type the parameters for the component in the form name=value.

    Or, leave blank.
  5. Click OK, and then click Apply.

To convert a Scriptor between external and internal

  1. Click Start, point to Programs, point to Microsoft Commerce Server, and then click Pipeline Editor.
  2. On the File menu, click Open. Browse to the pipeline containing the Scriptor component, and click Open.
  3. Right-click the Scriptor component you want to configure, click Properties, and then click the Scriptor tab.
  4. To convert to external storage if the Scriptor has already been configured for an external file, click Internal, and then click Yes to confirm that you want to import the external file.

    Or, to convert to internal storage if the Scriptor has already been configured for an internal file, click External, and then click Yes to confirm that you want to export the internal file. Specify a name for the external file, and then click Save.

  5. Click OK.


SelectWinners

Use this component to choose items based on their final scores in the Content Selection pipeline.

Although the component appears as SelectWinners in the Pipeline Editor, its ProgID is Commerce.CSFSelectWinners.

Intended use: Content Selection pipeline, Select stage.

Configuration Values

You can determine when the SelectWinners component displays house ads by setting component properties. Use the following box on the Select Winners tab of the Component Properties dialog box to determine this information.

Box | Description
Switch to house ads | The threshold at which house ads will be selected over paid ads. When the maximum Need of Delivery (NOD) for paid ads drops below this value, house ads are selected. The default is 0.95.

Values Read

The SelectWinners component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_Content | Order | A reference to the ContentList object. Multiple fields are read. For more information, see the Remarks section.
NumRequested | Order | Optional. The number of content items that should be selected for return. The default is 1 (one).
PageHistory | Context | Optional. A reference to the page-level history string. The reference allows the history to be passed between requests for content that are on the same page (can be used cross-page as well). This key is retrieved from the ContextProfile dictionary in the Context dictionary. It contains the item_ids of content items already selected on the page.

The SelectWinners component reads the following values for each item in the ContentList referred to by the _content key.

Key | Description
Score | The final scores of the various content items.
Industry | The industry tag used to prevent two content items from same industry from being selected.
need_of_delivery | The contract requirements for delivering the ad.
ad_type | A paid (1) versus house (2) ad type.
customer_id | This key is used to prevent competing ads.
ad_weight | This key is used for house ads to allow some to be displayed more frequently.

The Score key is required. Other keys are required only for ad selection.

Values Written

The SelectWinners component writes the following values to the indicated dictionaries.

Key | Dictionary | Description
_event | Order | This key is set to the string "REQUEST", unless it is already set.
PageHistory | Context | The new page history, now including items selected in the current request. The PageHistory key is in the ContextProfile dictionary in the Context dictionary.
_winnerindexes | Order | A reference to a SimpleList object containing the ContentList object indexes of selected content items.

Remarks

To communicate the winners, the SelectWinners component builds a new SimpleList object that contains the ContentList object indexes up to the requested number of winning content items.

The SelectWinners component performs the following additional actions:

  • Sets the _event key to the string "REQUEST", unless it is already set.
  • Uses the PageHistory key to prevent showing the same ad more than once on a page. This is most useful in network ad models where multiple selection requests are made from the same page.
  • Prevents competing ads from appearing on the same page. This is based on the industry setting of each ad, combined with a user identifier.

This component looks at the NumRequested key in the Order dictionary to determine how many content items to select. If that key is missing, one content item is selected. It is not considered an error to return fewer than NumRequested content items. The caller must handle this condition.

The PageHistory key is a string containing a list of IDs for content items already selected for the current page. The caller defines what constitutes a "page," and the caller is responsible for saving the PageHistory key across calls to the same page. The item_id keys from the content items in the ContentList object are written to this string in decimal form and are separated by commas. If the same ContentSelector object is used for multiple content requests on the same page, then the PageHistory key will automatically be passed between the calls.

The following list describes the selection algorithm for ads:

  • Items appearing in the PageHistory key are not eligible for selection.
  • Paid ads with a Need of Delivery (NOD) value greater than the house ad threshold will always be selected over house ads.
  • Ads that compete with another ad that was already selected, including ads in the PageHistory key, are not eligible for selection. Competing ads are defined as ads in the same industry but from different users.
  • Selection proceeds are based on score, returning higher scores first. If multiple paid ads have the same score, selection between them is random.

The following list describes the selection algorithm for content types other than ads:

  • Items appearing in the PageHistory key are not eligible for selection.
  • Selection proceeds are based on score, returning higher scores first. If multiple items have the same score, selection between them is random.

See Also

ContentList Object

ContentSelector Object


SendPrecomposedMessage

Use this component to send a direct mail message composed in earlier stages in the pipeline.

Although the component appears as SendPrecomposedMessage in the Pipeline Editor, its ProgID is Commerce.DMLSendPrecomposedMessage.

Intended use: Direct Mailer pipeline, Send E-mail stage.

Configuration Values

None.

Values Read

The SendPrecomposedMessage component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
cdo_result | Order | The result code (an HRESULT) from the most recent Collaboration Data Objects (CDO) operation.
cdo_message | Context | A reference to the CDO message object (CDO.Message).

Values Written

The SendPrecomposedMessage component writes the following values to the Order dictionary.

Key | Description
messages_sent | The total number of messages sent for this pipeline cycle.
cdo_result | The result code (an HRESULT) from the most recent CDO operation.
cdo_error | Optional. An error string from the most recent CDO operation, if any. NULL if there is no error.

Remarks

The SendPrecomposedMessage component attempts to send a direct mail message using CDO for Microsoft Windows 2000. The component skips processing the message if the bypass flag (rcp_bypass) is True or if the cdo_result key is not equal to S_OK.

The component checks for errors after each CDO operation.

See Also

AddAttachments

ComposeDMLMessage

CreateUPMCookie

ThrottleDMLPerformance

VerifyMessageBody

VerifyRecipientData


SendSMTP

Use this component to send an e-mail message to a specified recipient.

Intended use: Commerce Interchange Transmit pipeline, Transport stage.

Configuration Values

You can determine where the SendSMTP component sends the message and the information sent by setting component properties. Use the following boxes on the Send SMTP tab of the Component Properties dialog box to determine this information.

Box | Description
From (required) | The e-mail address from which the message is sent. This is the actual e-mail address rather than a key containing the e-mail address.
SMTP Host (required) | The name or Internet Protocol (IP) address of the Simple Mail Transfer Protocol (SMTP) mail server that will transmit the object. This is the actual name of the server rather than a key containing the name.
To (required) | The key in the Order dictionary containing the e-mail address to send the message to.
Cc | The key in the Order dictionary containing the e-mail addresses to send copies of the message to.
Subject | The key in the Order dictionary that contains the text to display in the Subject box of the e-mail message.
Character Set for Subject | The character set to use to encode the subject of this e-mail message. This drop-down list displays the character sets currently installed on this computer.
Message Body | The key in the Order dictionary containing the message to include in the body of the e-mail message.
MIME header and body | Indicates the business data object is already encapsulated in a Multipurpose Internet Mail Extensions (MIME) header. If you select this option, the component uses the character set and header already encapsulated with the message rather than generating its own MIME header and using the character set specified in the Character Set for Subject box.
Text Body | Indicates the business data object consists of straight ASCII text and no further processing is needed.
Binary body | Specifies that the business data object is a binary blob. The SendSMTP component will base64-encode it before sending.

Values Read

None.

Values Written

None.

Remarks

The SendSMTP component sends a business data object as an e-mail message to an SMTP mail server. If you are using Microsoft Exchange and Outlook, you can run a Visual Basic script to invoke an OrderPipeline object (but not an MtsPipeline or MtsTxPipeline object) on the Exchange server to process the received messages.

In order for the SendSMTP component to properly support character set conversion, the corresponding Windows NT code page must be installed on the computer. For example, the US version of the Windows NT installation does not include the Japanese code page (code page 932), which must be present to convert Unicode to ISO-2022-jp. For information on installing a code page, see Microsoft Knowledge Base article Q164948.

Programmatic Use

To use this component outside a pipeline, you must configure it by assigning values to keys in the Configuration dictionary. The keys correspond to the indicated boxes in the Component Properties dialog box.

Key | Box | Description
From | From | String.
SMTPHost | SMTP Host | String.
ToField | To | String.
CCField | CC | String.
SubjectField | Subject | String.
CharSet | Character Set for Subject | String.
BodyField | Message Body | String.
BodyType Message Body contains option buttons Numeric:
0
MIME header and body
1
Text body
2
Binary body

For more information about using pipeline components outside pipelines, see MicroPipe Object.

See Also

Test SendSMTP


Test SendSMTP

Use this property page to send a test e-mail message to check the configuration of the SendSMTP component.

Box | Description
Email address to send text message to | The complete e-mail address to send the message to.


ShippingDiscountAdjust

Use this component to apply shipping discounts to an order.

Intended use: Order Processing pipeline, Shipping stage, following the Commerce.ShippingMethodRouter component.

Configuration Values

None.

Values Read

The ShippingDiscountAdjust component reads the following values from the indicated dictionaries.

Key Dictionary Description
_currency_decimal_places
 Order Optional (if not set, the _currency_lcid key must be set, and the number of currency decimal places will be the default for that locale). Describes the number of digits of precision (after the decimal point) for which to round certain intermediate results, and to round to when writing currency values into the OrderForm.

Type: Integer (VT_I4)

_currency_lcid
 Order Optional (required only if the _currency_decimal_places key is not set, otherwise it is ignored). Describes a locale (LCID) to use to retrieve the number of currency decimal places.

Type: Integer (VT_I4)

_cy_shipping_total
 Order Required. The total shipping charges for the entire order as computed by a component such as ShippingMethodRouter.

Type: Currency (VT_CY)

Note

  • If the shipments key is set, then this value will not be used on input, however, it will be modified on output.

_orderlevel_discounts_detail
 Order Optional (if this key does not exist in the OrderForm, or if the shipping_discount key of this dictionary does not exist, then the _cy_shipping_discounts_total value is set to zero, and no other action is taken). A dictionary that maps special offer types to a list of order level discounts that applies for that special offer type. The SimpleList object under the shipping_discount special offer type key is used.

Each element is a dictionary. The exact format of the dictionary depends on whether the element represents a combination of percentage-off discounts of the same priority, or a single discount.

Following are the dictionary entries if the element represents a single discount:

  • discount_id: Integer (VT_I4)
  • discount_timestamp: Last_modified timestamp of the discount (VT_DATE)
  • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries if the element represents a combined percentage-off discount:

  • discounts_combined: SimpleList object that describes each of the discounts that were combined. Each element in this list is a Dictionary with the following keys:
    • discount_id: Integer (VT_I4)
    • cy_discount_percentage: Value (VT_CY)
    • discount_timestamp: Llast_modified tiemestamp of the discount (VT_DATE)
    • discount_name: Discount name (VT_BSTR)

Following are the dictionary entries that exist in both cases:

  • discount_priority: Priority (rank)
  • discount_type: 1=Currency; 2=Percentage (VT_I4)
  • cy_discount_value: Currency or Percentage value (VT_CY). If the element represents a combined percentage-off discount, this is the total percentage.

The order the elements appear in the list is significant, because it is the order that OrderDiscount has determined they should be applied.

Type: Currency (VT_CY)

Note

  • This is the list used by OrderDiscount to specify to other pipeline components the complete list of order level discounts that should be applied to the basket.

Shipments
 Order Optional (if the Splitter component is not used, the order will be treated as one single shipment for purposes of applying shipping discounts). The list of shipments in this order, as created by the Splitter component.

Type: IDictionary (VT_DISPATCH)

shipments._cy_shipping_total
 Order Required. The shipping totals for each individual shipment, as computed by a component such as ShippingMethodRouter.

Type: Currency (VT_CY)

SiteName
 Context Optional. Used only for reporting the site name as part of some limited error messages, which may be reported to the Event log.

Type: String

Values Written

The ShippingDiscountAdjust component writes the following values to the Order dictionary.

Key Description
_cy_shipping_total Not always written (modified only if one or more shipping discounts apply). The total shipping charges for the order with the discounts (if any) applied.

Type: Currency (VT_CY)

_cy_shipping_discounts_total
 Always written (if no shipping discounts apply, this is set to zero). Sum of all shipping discounts applied to the order.

Type: Currency (VT_CY)

_shipping_discounts_applied
 Not always written (only written when no shipments list exists in the OrderForm, and one or more shipping discounts apply). A SimpleList of dictionaries where each dictionary contains information about a shipping discount that was applied to this shipment. The order of the list is significant and represents the order in which the discounts were applied to the shipment.

The dictionary contains the following elements for each discount:

  • discount_id: Campaign item ID (VT_I4)
  • discount_priority: Discount priority (rank) (VT_I4)
  • discount_timestamp: Last-modified timestamp of the discount (VT_DATE)
  • cy_discount_amount: How much was actually taken off of the item (VT_CY)
  • discount_type: 1=Currency Value; 2=Percentage (VT_I4)
  • cy_discount_value: Currency value or percentage value (VT_CY)\
  • discount_name: Discount name (VT_BSTR)

Type: Dictionary (VT_DISPATCH)

shipments._cy_shipping_total
 Not always written (modified only if one or more shipping discounts apply). The total amount of shipping charges for the shipment after shipping discounts have been applied.

Type: Currency (VT_CY)

shipments._cy_shipping_discounts_subtotal
 Not always written (only written if one or more shipping discounts apply to the shipment). The sum of all shipping discounts applied to this shipment.

Type: Currency (VT_CY)

shipments._shipping_discounts_applied
 Not always written (only written if one or more shipping discounts apply to the shipment). A SimpeList of dictionaries where each dictionary contains information about a shipping discount that was applied to this shipment. The order of the list is significant and represents the order in which the discounts were applied to the shipment.

The dictionary contains the following elements for each discount:

  • discount_id: Campaign item ID (VT_I4)
  • discount_priority: Discount priority (rank) (VT_I4)
  • discount_timestamp: Last-modified timestamp of the discount (VT_DATE)
  • cy_discount_amount: How much was actually taken off of the item (VT_CY)
  • discount_type: 1=Currency Value; 2=Percentage (VT_I4)
  • cy_discount_value: Currency value or percentage value (VT_CY)\
  • discount_name: Discount name (VT_BSTR)

Type: Dictionary (VT_DISPATCH)

Remarks

In Commerce Server 2002 pipelines, the ShippingDiscountAdjust component is used to provide free shipping by writing zero (0) for the _cy_shipping_total key.

For more information about extending the ShippingDiscountAdjust component, see Order Level Discount Pipeline Components.

See Also

OrderLevelDiscountApply

Shipping Object

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingManagerCache

Use this component with the CacheManager object to load shipping data for the multiple shipments shipping architecture.

Note

  • Although the ShippingManagerCache component implements two of the pipeline component interfaces (IPipelineComponent and IPipelineComponentAdmin), it is not a pipeline component, it does not appear in the Pipeline Editor, and it cannot be used or configured from the Editor.

Configuration Values

None.

Values Read

None.

Values Written

None.

Remarks

You can use the ShippingManagerCache component with the CacheManager object to store shipping method information for the Splitter and ShippingMethodRouter pipeline components.

When run by the CacheManager object, the ShippingManagerCache component uses two pipeline dictionaries (Order and Context) to determine how to run and how to return information to the CacheManager object.

Example

See the example in the Setting Up the Pipeline and Cache section in the Shipping Objects topic.

See Also

CacheManager Object

Shipping Object

ShippingDiscountAdjust

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


ShippingMethodRouter

Use the ShippingMethodRouter component as part of the multiple-shipment shipping architecture to look up and run the components to process the shipments and calculate the shipping total for the entire order.

Note

  • Shipping components designed to be run by the ShippingMethodRouter component should never be placed directly in a pipeline.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

None.

Values Read

The ShippingMethodRouter component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
Shipments | Order | A SimpleList object of dictionaries, one shipment per dictionary.
shipments._cy_shipping_total | Order | The shipping totals for each individual shipment.
CacheManager | Context | A reference to a CacheManager object used to handle the shipping method data.
MessageManager | Context | Optional. Messages returned in case of pipeline component failure.

Values Written

The ShippingMethodRouter component writes the following values to the Order dictionary.

Key | Description
_cy_shipping_total | The total shipping for all shipments in the order.

Remarks

The shipping components (other than the Splitter component) are run by the ShippingMethodRouter component.

The component next steps through the list of shipping methods. If there are shipments using a given method, the ShippingMethodRouter, passes the shipments to the shipping component, and runs the component. The individual shipping components calculate the total shipping charges for the shipments passed to it. When all of the shipments have been processed, the ShippingMethodRouter component calculates the total of all of the shipping charges.

The ShippingMethodRouter component instantiates only the components it will use.

See Also

Multiple-shipment Shipping Architecture

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

StepwiseShipping


SimpleCanadaTax

Use this component to calculate the Canadian Goods and Services Tax (GST) and Provincial Sales Tax (PST).

Note

  • The SimpleCanadaTax component is a Site Server 3.0 Commerce Edition sample tax component. The SampleRegionalTax component is the sample tax component for Commerce Server 2000 and Commerce Server 2002. Because all tax components in the product are intended only as samples, Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by this component before you use such information for personal or business purposes.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

You can determine how the SimpleCanadaTax component calculates the tax by setting component properties. Use the following boxes on the Simple Canada Tax tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the tax. The values are:
Always
Default. Specifies that the tax is always applied to the order.
Equal to country
Specifies that the tax should be applied when the value of the ship_to_country key in the Order dictionary is the same as the string specified in the Country box.
Has any value
Specifies that the tax is applied when the ship_to_country key of the order has any non-null value.
Country | The string to compare to the ship_to_country key in the order.
GST Item Key | The key in the order form whose value is the GST rate.
PST Item Key Prefix | A prefix that the SimpleCanadaTax component prepends to the name of the province to which the item is being shipped (from the ship_to_state key in the order form). The component uses this concatenated string to look up the PST rate on the order form.
Province List | The space-separated list of provinces for which to compute the tax.

Values Read

The SimpleCanadaTax component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._oadjust_adjustedprice | Order | The total cost for an item.
ship_to_state | Order | The state to ship to.
item._product_gst | Order | Dynamic. Default shown. The GST for an item. The key name is determined by the value in the GST Item Key configuration box.
item._product_pst__* | Order | Dynamic. Default shown. The PST for an item in a given province. The province abbreviation is appended to the name and should match one in the Province List box. The key name is determined by the value in the PST Item Key Prefix configuration box.
ship_to_country | Order | The country/region to ship to.

Values Written

The SimpleCanadaTax component assigns values to the following keys in the Order dictionary.

Key | Description
item._tax_total | The total tax for items with this stockkeeping unit (SKU).
item._tax_included | The amount of tax included in the cost of the item.
_tax_total_gst | The total GST for the order.
_tax_total_pst | The total PST for the order.
_tax_total | The total tax for this order.
_tax_included | The amount of tax included in the cost of the order.

Remarks

GST is common throughout Canada and almost all goods and services have a GST. If a product is taxed, the GST rate is the same throughout Canada. However, some products are not taxed and some service merchants (making less than a given amount) may elect not to charge GST. Each province has its own PST, usually a fixed rate for all products, but the PST rate still depends on the product (although a province may elect to tax an item not taxed by another province).

When shipping from one province to another you do not pay any PST. Although not common, a product may have a PST but not a GST. The reverse may also be true.

The data used by the SimpleCanadaTax component is usually provided by the QueryCatalogInfo or QueryProdInfoADO component. The SimpleCanadaTax component always sets the _tax_included keys to zero (0) for both the items and the order. The component does not handle fractions of base currency units. All calculations are rounded to the nearest whole unit.

The combination of the Key, Apply when, and Country boxes determine whether tax should be applied, but only if the order is being shipped to one of the provinces in the Province List box.

The SimpleCanadaTax component first checks the value in the Apply when box:

  • If it is set to Always, the tax is always applied to the order.
  • If the value in the Apply when box is set to Has any value, the tax is applied to the order whenever the order form contains any value for the ship_to_country key.
  • If the value in the Apply when box is set to Equal to Country, the component does a comparison between the value of the ship_to_country key on the order form and the text string in the Country box. If there is a match, the tax is applied.

If the component determines that tax should be applied, it compares the value of the ship_to_state key on the order form to the list of provinces specified in the Province List box. If there is a match, indicating the order is going to a province where tax is collected, the component does two things. First, it retrieves the GST rate from the field on the order form identified by the GST Item Key box. Second, it prepends the prefix specified in the PST Item Key Prefix box to the name of the province to which the item is being shipped (from the ship_to_state key on the order form). The component then uses this concatenated string to look up the PST rate on the order form.

Example

To specify that a 2% GST tax rate and a 4.5% Alberta PST rate is charged for an item shipped to Alberta, Canada, do the following (assuming that you are using the QueryProdInfoADO component to retrieve product information):

  1. Add a column for the GST rate to your product table. The tax rate should be specified as a real number:
can_prod_gst_tax_rate real NOT NULL
  1. Add a column for the Alberta PST rate to your product table. The tax rate should be specified as a real number:
can_prod_pst_tax_rate_alb real NOT NULL
  1. Assign tax rates to each product in your product table using an SQL script. For this example, assign the 2% GST tax rate and the 4.5% Alberta PST tax rate to Product ABC. Type 2.0 into the can_prod_gst_tax_rate column and 4.5 into the can_prod_pst_tax_rate_alb column in the Product ABC row.
  2. Double-click the SimpleCanadaTax icon in the Pipeline Editor and enter the following in the resulting property page:
    Box | Value
    Apply when | Has any value
    Country | CAN
    GST Item Key | _product_can_prod_gst_tax_rate
    PST Item Key Prefix | _product_can_prod_pst_tax_rate
    Province List | Alb

Note that if the user types a country/region or province on the order form that is not specified in the SimpleCanadaTax component configuration, the values will not be assigned to the _tax_total and _tax_included keys in the order and the items will not be set.


SimpleJapanTax

Use this component to compute taxes according to the Japanese tax model.

Note

  • The SimpleJapanTax component is a Site Server 3.0 Commerce Edition sample tax component. The SampleRegionalTax component is the sample tax component for Commerce Server 2000 and Commerce Server 2002. Because all tax components in the product are intended only as samples, Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by this component before you use such information for personal or business purposes.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

You can determine how the SimpleJapanTax component calculates the tax by setting component properties. Use the following boxes on the Simple Japan Tax tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the tax. The values are:
Always
Default. Specifies that the tax is always applied to the order.
Equal to country
Specifies that the tax should be applied when the value of the ship_to_country key in the Order dictionary is the same as the string specified in the Country box.
Has any value
Specifies that the tax is applied when the ship_to_country key of the order has any non-null value.
Country | The string to compare to the ship_to_country key in the order to determine if tax is applied.
Include Item Key | The key in the Item dictionary that indicates whether or not tax is already included in the price of the item.
Rate Item Key | The key in the item that contains the tax rate charged for the item.

Values Read

The SimpleJapanTax component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._oadjust_adjustedprice | Order | The total cost for an item.
item._product_jpn_tax_included | Order | Dynamic. Default shown. A Boolean indicating whether tax is already included in the item cost. The key name is determined by the value in the Include Item Key configuration box.
item._product_jpn_tax_rate | Order | Dynamic. Default shown. The tax rate for an item. The key name is determined by the value in the Rate Item Key configuration box.
ship_to_country | Order | The country/region to ship to.

Values Written

The SimpleJapanTax component assigns values to the following keys in the Order dictionary.

Key | Description
item._tax_total | The total tax for items with this stockkeeping unit (SKU).
item._tax_included | The amount of tax included in the cost of the item.
_tax_total | The total tax for this order.
_tax_included | The amount of tax included in the cost of the order.

Remarks

The SimpleJapanTax component computes a tax rate for the Japanese tax model. It can be used for any country/region that uses a similar model. The component handles fractions of currency units only at the item level; order-level calculations (order._tax_total and order._tax_included) are rounded to the nearest whole unit.

The combination of the values in the Key, Apply when, and Country boxes determines whether tax should be applied, but only if tax is not already included in the price of the item.

The SimpleJapanTax component first checks the Apply when value:

  • If it is set to Always, the tax is always applied to the order.
  • If the value in the Apply when box is set to Has any value, the tax is applied to the order whenever the order form contains any value for the ship_to_country key.
  • If the value in the Apply when box is set to Equal to Country, the component compares the value of the ship_to_country key on the order form and the text string in the Country box on the property page. If they match, the component applies the tax whose value is stored in the box specified in Rate Item Key.

The key in the Include Item Key box specifies the name of the field in the Item dictionary that indicates whether tax is already included in the price of the item. This field is assumed to contain a Boolean value that indicates whether or not the tax rate is to be added to the line item (in which case the item._tax_total key is set to the tax amount and the item._tax_included key is set to zero), or whether the tax rate is included in the price (in which case the item._tax_included key is set to the tax amount and the item._tax_total key is set to zero).

Example

To specify that a 9.54% tax rate is included in the price of an item and is not included in the price of another item for items in Japan, do the following:

  1. Add a column for the included tax rate to your product table. The tax rate should be specified as a smallint number:
jpn_prod_tax_included smallint NOT NULL,
  1. Add a column for the tax rate to your product table. The tax rate should be specified as a real number:
jpn_prod_tax_rate real NOT NULL,
  1. Assign tax rates and tax included values to each product in your product table using an SQL script. This example uses two products, Product Included and Product Excluded. Assign Product Included the 9.54% tax rate with the tax included in the product price. Type 9.54 into the jpn_prod_tax_rate column and 1 (True), in the jpn_prod_tax_included column in the Product Included row. Assign Product Excluded the 9.54% tax rate with the tax not included in the product price. Type 9.54 into the jpn_prod_tax_rate column and 0 (False), in the jpn_prod_tax_included column in the Product Excluded row.
  2. Use the Pipeline Editor to enter the following in the property page of the SimpleJapanTax component:
    Box | Value
    Apply when | Has any value
    Country | JPN
    Include Item Key | _product_jpn_prod_tax_included
    Rate Item Key | _product_jpn_prod_tax_rate

If the user types a country/region in the order form that is not specified in the SimpleJapanTax component configuration, the _tax_total and _tax_included keys on the order and on the items will not be set.


# K SimpleUSTax

このページに対するフィードバックを送信する Commerce Server 2002 SDK

SimpleUSTax

Use this component to apply taxes on any order sent to a specified state in the United States.

Note

  • The SimpleUSTax component is a Site Server 3.0 Commerce Edition sample tax component. The SampleRegionalTax component is the sample tax component for Commerce Server 2000 and Commerce Server 2002. Because all tax components in the product are intended only as samples, Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by this component before you use such information for personal or business purposes.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

You can determine how the SimpleUSTax component calculates the tax by setting component properties. Use the following boxes on the Simple United States Tax tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the tax. The values are:
Always
Default. Specifies that the tax is always applied to the order.
Equal to country
Specifies that the tax should be applied when the value of the ship_to_country key in the Order dictionary is the same as the string specified for the Country box.
Has any value
Specifies that the tax is applied when the ship_to_country key of the order has any non-null value.
Country | The string to compare to the ship_to_country key in the order.
State Rate List | The list of states and tax rates, in the form state:rate, with state as the two-character postal code abbreviation and rate expressed as a decimal value. For example WA:8.6 is an 8.6% tax rate for the state of Washington. Multiple state and rate pairs are separated by spaces.

Values Read

The SimpleUSTax component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
ship_to_state | Order | The state to ship to.
item._oadjust_adjustedprice | Order | The total cost for an item.
ship_to_country | Order | The country/region to ship to.

Values Written

The SimpleUSTax component assigns values to the following keys in the Order dictionary.

Key | Description
item._tax_total | The total tax for items with this stockkeeping unit (SKU).
item._tax_included | The amount of tax included in the cost of the item.
_tax_total | The total tax for this order.
_tax_included | The amount of tax included in the cost of the order.

Remarks

The SimpleUSTax component calculates state taxes within the United States.

The combination of the values in the Key, Apply when, and Country boxes determine whether tax is applied, but only if the state to which the order is shipped appears in the State Rate List box.

The SimpleUSTax component first checks the Apply when value:

  • If it is set to Always, the tax is always applied to the order.
  • If the value in the Apply when box is set to Has any value, the tax is applied to the order whenever the order form contains any value for the ship_to_country key.
  • If the value in the Apply when box is set to Equal to Country, the component does a comparison between the value of the ship_to_country key on the order form and the text string in the Country box on this property page. If there is a match, the component applies the tax.

If the component determines that tax should be applied, it then compares the value of the ship_to_state key on the order form to the list of states specified in State Rate List box. If there is a match, indicating that the order is being shipped to a state where tax should be collected, the component applies the tax rate for that state, and sets the values for the item._tax_total, item._tax_included, order._tax_total, and order._tax_included keys.

The SimpleUSTax component always assigns zero (0) to the _tax_included keys for both the item and the order. The component does not handle fractions of base currency units; all calculations are rounded to the nearest whole unit.

If the user types a country/region or state in the order form that is not specified in the SimpleUSTax component configuration, the values of the _tax_total and _tax_included name/value pairs on the order and on the items will not be set.

You can enter an at sign (@) (the wildcard character) to represent all states that are not explicitly listed (for example: @:0).


SimpleVATTax

Use this component to calculate a Value Added Tax (VAT).

Note

  • The SimpleVATTax component is a Site Server 3.0 Commerce Edition sample tax component. The SampleRegionalTax component is the sample tax component for Commerce Server 2000 and Commerce Server 2002. Because all tax components in the product are intended only as samples, Microsoft strongly recommends that you have an independent tax professional verify all applicable tax rates and data generated by this component before you use such information for personal or business purposes.

Intended use: Order Processing pipeline, Tax stage.

Configuration Values

You can determine how the SimpleVATTax component calculates the tax by setting component properties. Use the following boxes on the Simple VAT Tax tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the tax. The values are:
Always
Default. Specifies that the tax is always applied to the order.
Equal to country
Specifies that the tax should be applied when the value of the ship_to_country key in the Order dictionary is the same as the string specified for Country box.
Has any value
Specifies that the tax is applied when the ship_to_country key of the order has any non-null value.
Country | The string to compare to the ship_to_country key in the order to determine if tax is applied.
Rate Item Key | The key in the item that contains the tax rate charged for the item.

Values Read

The SimpleVATTax component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
item._oadjust_adjustedprice | Order | The total cost for an item.
item._product_tax_rate | Order | Dynamic. Default shown. The tax rate for the product. The key name is determined by value in the Rate Item Key configuration box.

Values Written

The SimpleVATTax component assigns values to the following keys in the Order dictionary.

Key | Description
item._tax_total | The total tax for items with this stockkeeping unit (SKU).
item._tax_vat_item | The VAT for the item.
item._tax_included | The amount of tax included in the cost of the item.
_tax_total | The total tax for this order.
_tax_included | The amount of tax included in the cost of the order.

Remarks

The SimpleVATTax component calculates simple Value Added Tax (VAT).

The SimpleVATTax component always assigns zero (0) to the _tax_total keys for both the item and the order. The component does not handle fractions of currency units — all calculations are rounded to the nearest whole unit.

The combination of the values in the Key, Apply when, and Country boxes determine whether tax should be applied. The SimpleVATTax component first checks the Apply when value:

  • If it is set to Always, the tax is always applied to the order.
  • If the value in the Apply when box is set to Has any value, the tax is applied to the order whenever the order form contains any value for the ship_to_country key.
  • If the value in the Apply when box is set to Equal to Country, the component does a comparison between the value of the ship_to_country key on the order form and the text string in the Country box on this property page. If there is a match, the component applies the tax whose value is stored in the field specified in Rate Item Key.

Example

To specify that a VAT tax rate of 6.5% is charged for an item in Germany, do the following:

  1. Add a column for the VAT rate in Germany to your product table. The tax rate should be specified as a real number:

    ger_vat_tax_rate real NOT NULL

  2. Assign tax rates to each product in your product table using an SQL script. For this example, assign the 6.5% VAT rate to Product ABC. Type 6.5 into the ger_vat_tax_rate column in the Product ABC row.
  3. Enter the following values in the property page for the SimpleVATTax component in the Pipeline Editor:
    Box | Value
    Apply when | Always
    Country | GER
    Rate Item Key | _product_ger_vat_tax_rate

If the user types a country/region on the order form that is not specified in the SimpleVATTax component configuration, the values of the _tax_total and _tax_included keys in the order and in the items will not be set.


Splitter

Use this component to divide an order into groups based on a list of item keys. For example, in the Accept stage, the Splitter component can be used to divide orders by catalog and vendor; in the Shipping stage it can be used to divide an order into shipments by shipping methods and addresses.

Intended use: Order Processing pipeline, any stage.

Configuration Values

You can determine how the Splitter component divides orders by setting component properties. Use the following boxes on the OrderSplitter tab of the Component Properties dialog box to determine this information.

Box | Description
Output Structure | The name of the SimpleList object that points to the resulting dictionaries. The Splitter component creates one dictionary for each set of distinguisher values.
Input Distinguishers | A space-separated list of line item attributes (keys) to use to split the order. The defaults are the shipping_method_id and shipping_address_id keys, the distinguishers for splitting orders into multiple shipments.

Values Read

The Splitter component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
CacheManager | Context | A reference to a CacheManager object. If supplied, this component will automatically look up the shipping method name and write it to the output structure if shipping_method_id is a distinguisher.
ShipmentDistinguishers | Context | Optional. An array of strings containing the line item attributes (keys) to use to split shipments. The defaults are the shipping_method_id and shipping_address_id keys. This key is used only if no values are specified in the Input Distinguishers box. For example, Dict("ShipmentDistinguishers") = "quantity shipping_address_id name shipping_method_id ...".

Values Written

The Splitter component writes the following values to the Order dictionary.

Key | Description
dynamic (what the Output Structure is set to) | (Optional) The name of the SimpleList object that points to the resulting dictionaries. The Splitter component creates one dictionary for each set of distinguisher values. The Shipments key is used only if no other key is specified in the Output Structure box.

Remarks

For information about setting up the Splitter component to divide orders into multiple shipments, see Using the Splitter Component to Create Multiple Shipments.

Example

With the Splitter component, you can split an order any way you want. For example, you have four line items, numbered zero (0) through three (3) with the following attributes:

shipping_method_id | shipping_address_id | shipping_date | catalog |  | vendor
A | Home | ASAP |  | A |  | A
A | Home | ASAP |  | A |  | A
B | Work | ASAP |  | B |  | B
A | Work | 3/1 |  | C |  | B

If you split by shipping_method_id and shipping_address_id, to an output structure called _Shipments, you will get a SimpleList object of dictionaries on your order form called "shipments" with the following entries:

shipping_method_id | shipping_address_id | ItemIndexes
A | Home | 0,1
B | Work | 2
A | Work | 3

If you split by vendor, to an output structure called _Vendors, you will get a SimpleList object of dictionaries on your order form called "_Vendors" with the following entries:

Vendor | ItemIndexes
A | 0,1
B | 2,3

See Also

Shipping Object

Shipping Objects

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter

StepwiseShipping


SQLItemADO

Use this component to run a query for each item in an order form.

Intended use: Order Processing pipeline, Accept stage.

Configuration Values

You can determine the query the SQLItemADO component runs by setting component properties. Use the following boxes on the SQL Item (ADO) tab of the Component Properties dialog box to determine this information.

Box | Description
Connection String | The connection string to connect to the database. This may be a full connection string or a name in a connection map. If blank, the default connection string is used.
Query | The full SQL text of the query this component will run, or the name of a query whose full SQL text is defined in the Global.asa file in the QueryMap key.
Parameter List The parameters the component passes to the query. Separate multiple parameters with a single space. The following are the allowed parameters:
count
Passes the query the number of line items on the order.
index
Give the query the zero-based index number of this line item.
order.fieldname
Passes the value of the specified field in the order form.
item.fieldname
Passes the value of the specified field in the Item dictionary.
sum.fieldname
The query receives the sum of a particular field on the order.
sumq.fieldname
Passes the sum times the respective quantities.

Values Read

The SQLItemADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default query string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

None.

Remarks

The SQLItemADO component runs a query for each item in the items list, passing the specified order form fields as parameters to the query. These fields can include keys from either the Order or the Item dictionary.

The connection string must include either the full connection string (the data source name (DSN), database login ID, and database password) or the name of a named connection stored in the connection map.


SQLOrderADO

Use this component to run a single SQL query on an order, passing order parameters to the query.

Intended use: Order Processing pipeline, Accept stage.

Configuration Values

You can determine the query the SQLOrderADO component runs by setting component properties. Use the following boxes on the SQL Order (ADO) tab of the Component Properties dialog box to determine this information.

Box | Description
Connection String | The connection string to connect to the database. This may be a full connection string or a name in a connection map. If blank, the default connection string is used.
Query | The full SQL text of the query this component will run, or the name of a query whose full SQL text is defined in the Global.asa file in the QueryMap key.
Parameter List The parameters the component passes to the query. Separate multiple parameters with a single space. The following are the allowed parameters:
count
Passes the query the number of line items on the order.
order.fieldname
Passes the value of the specified field in the order form.
sum.fieldname
The query receives the sum of a particular field on the order.
sumq.fieldname
Passes the sum times the respective quantities.
Child Object Name | The name of a field that receives the data. The component uses the field only if the Use Child Object check box is selected.
Use Child Object | Indicates whether or not the component is to use the object specified in the Child Object Name box. If the check box is not selected, the component assumes there is no child object.

Values Read

The SQLOrderADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default connection string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

None.

Remarks

The SQLOrderADO component runs a SQL query once per order, passing the specified order parameters to the query. The component uses ActiveX Data Objects (ADO) to interface with the data source, and therefore supports COM+ transactions.

The connection string must include either the full connection string (the data source name (DSN), database login ID, and database password) or the name of a named connection stored in the connection map.


StepwiseShipping

Use this component in the multiple-shipment shipping architecture to calculate shipping costs for shipments. The StepwiseShipping component can handle charging for shipping by weight, by quantity, or by price.

Note

  • This component should never be inserted directly in a pipeline; it is run by the ShippingMethodRouter component.

Configuration Values

The ShippingMethodRouter component sets the following value in the Configuration dictionary before executing the StepwiseShipping component.

Key Description
mode The shipping calculation mode. The options are:
0
Use subtotal to calculate shipping.
1
Use quantity to calculate shipping.
2
Use weight to calculate shipping.

Values Read

The StepwiseShipping component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
TransactionConfigConnectionString | Context | The data connection string to the database containing the shipping rates.
shipments_to_process | Context | A SimpleList object of the shipments to process. Each shipment is represented by a dictionary.

The StepwiseShipping component also reads the following values for each item in each Shipment dictionary in the shipments_to_process SimpleList object.

Key | Description
_product_weight | Optional. The weight of an individual item. Needed only if weight is used to calculate shipping.
quantity | Optional. The quantity of an individual item. Needed only if quantity is used to calculate shipping.
_cy_oadjust_adjustedprice | Optional. The subtotal for an item. Needed only if the subtotal is used to calculate shipping.

Values Written

The StepwiseShipping component writes the following values to the Order dictionary.

Key | Description
shipments._cy_shipping_total | The shipping charges for each individual shipment.

Remarks

The StepwiseShipping component goes through the list of shipments. For each shipment, it retrieves the shipping rate from the shipping rate table, and calculates the shipping according to the mode specified.

If you use weight to calculate shipping, all items must have a weight or the component returns an error.

See Also

Shipping Object

ShippingDiscountAdjust

ShippingManagerCache

ShippingMethodManager Object

ShippingMethodRouter


TableHandlingADO

Use this component to set the handling total on an order based on values retrieved from the database.

Intended use: Order Processing pipeline, Handling stage.

Configuration Values

You can determine when the TableHandlingADO component calculates the handling charge by setting component properties. Use the following boxes on the Table Handling (ADO) tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the handling charge. The values are:
Always
Default. Specifies that the handling charge is always applied to the order.
Equal to method
The handling charge should be applied when the value of shipping_method key in the Order dictionary is the same as the string specified in the Method box.
Has any value
Specifies that the handling charge should be applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when the value in the Apply when box is set to the value in the Equal to method box.
Connection String | The connection string to connect to the database. This may be a full DSN or a name in a connection map. If blank, the default connection string is used.
Query | The full SQL text of the query this component will run, or the name of a query whose full SQL text is defined in the Global.asa file in the QueryMap key.
Parameter List The parameters the component passes to the query. Separate multiple parameters with a single space. The following are the allowed parameters:
count
Passes the query the number of line items on the order.
order.fieldname
Passes the value of the specified field in the order form.
sum.fieldname
The query receives the sum of a particular field on the order.
sumq.fieldname
Passes the sum times the respective quantities.
Column | The name of the column in the database containing the handling charge.

Values Read

The TableHandlingADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
shipping_method | Order | Optional. The shipping method as a string.
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default query string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

The TableHandlingADO component assigns a value to the following key in the Order dictionary.

Key | Description
_handling_total | The total cost for handling the order.

Remarks

The TableHandlingADO component sets the value of the _handling_total key on the order form using values retrieved from the database.

The combination of the values in the Apply when and Method boxes determine whether or not the handling charge is applied to the order.

The TableHandlingADO component first checks the Apply when value. If it is set to Always, the handling charge is always applied to the order. If the value in the Apply when box is set to Has any value, the handling charge is applied to the order whenever the order form contains any value for the shipping_method key. If the value in the Apply when box is set to Equal to Method, the component does a comparison between the value of the shipping_method key on the order form and the text string in the Method box on this property page. If there is a match, the handling charge is applied.

If the component determines that the handling charge should be applied, it runs the query specified in the Query box. The query retrieves the handling charge from the database column specified in the Column box. The component then computes the handling charge.

The connection string must include either the full connection string (the data source name (DSN), database login ID, and database password) or the name of a named connection stored in the connection map.


TableShippingADO

Use this component to set the total shipping on an order by using values retrieved from the database.

Intended use: Order Processing pipeline, Shipping stage.

Configuration Values

You can determine when the TableShippingADO component calculates the handling charge by setting component properties. Use the following boxes on the Table Shipping (ADO) tab of the Component Properties dialog box to determine this information.

Field | Description
Apply when Determines when to apply the shipping charge. The values are:
Always
Default. Specifies that the shipping charge is always applied to the order.
Equal to method
The shipping charge should be applied when the value of the shipping_method key in the Order dictionary is the same as the string specified in the Method box.
Has any value
Specifies that the shipping charge should be applied when the shipping_method key of the order has any non-null value.
Method | The shipping method to match against the value of the shipping_method key in the Order dictionary. Used when the value in the Apply when box is set to the value in the Equal to method box.
Connection String | The connection string to connect to the database. This may be a full connection string or a name in a connection map. If blank, the default connection string is used.
Query | The full SQL text of the query this component will run, or the name of a query whose full SQL text is defined in the Global.asa file in the QueryMap key.
Parameter List The parameters the component passes to the query. Separate multiple parameters with a single space. The following are the allowed parameters:
count
Passes the query the number of line items on the order.
order.fieldname
Passes the value of the specified field in the order form.
sum.fieldname
The query receives the sum of a particular field on the order.
sumq.fieldname
Passes the sum times the respective quantities.
Column | The name of the column in the database containing the handling charge.

Values Read

The TableShippingADO component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
shipping_method | Order | Optional. The shipping method as a string.
DefaultConnectionString | Context | Optional. The key in the Application dictionary containing the default query string.
ConnectionStringMap | Context | Optional. The map in which to look up the name of a mapped connection string.
QueryMap | Context | Optional. A reference to a dictionary containing a query map.

Values Written

The TableShippingADO component assigns a value to the following key in the Order dictionary.

Key | Description
_handling_total | The total cost for handling the order.

Remarks

The TableShippingADO component sets the value of the _shipping_total key on the order form using values retrieved from the database.

Be sure to remove the DefaultShipping component from the pipeline if you use the TableShippingADO component.

The combination of the values in the Key, Apply when, and Method boxes determine whether the shipping charge should be applied to the order.

The TableShippingADO component first checks the Apply when value. If it is set to Always, the shipping charge is always applied to the order. If the Apply when value is set to Has any value, the shipping charge is applied to the order whenever the order form contains any value for the shipping_method key. If the value in the Apply when box is set to the value in the Equal to Method box, the component does a comparison between the value of the shipping_method key on the order form and the text string in the Method box on this property page. If there is a match, the shipping charge is applied.

If the component determines that the shipping charge should be applied, it runs the query specified in the Query box, which retrieves the shipping charge from the database column specified in the Column box. The component then computes the shipping charge.

The value in the Parameter List box is used to specify parameters to the query, which usually includes a basis for the table lookup. The basis can be total cost of the order, or a merchant-defined value such as weight.

The following table illustrates some useful values for the Basis Item Key box.

Example Basis Item Key | Result
order._oadjust_subtotal | The subtotal on the order form.
sum.quantity | The sum of all quantities (total number of items ordered).
sum._oadjust_adjustedprice | The sum of adjusted prices.
sumq._iadjust_currentprice | The sum of current price times quantity for all items in the order.
sumq._product_weight | The total weight of order. (Assumes that the weight column exists in the product table, and that the query used by the QueryProdInfoADO component includes this field.)

For example, if the sumq._product_weight key is specified, and if the order has two items, one item weighing 2 pounds with a quantity of 3 and the other item weighing 4 pounds with a quantity of 1, then the basis value is 10 pounds.


ThrottleDMLPerformance

Use this component to control the speed the pipeline processes direct mail messages. This controls the load on the Simple Mail Transfer Protocol (SMTP) server.

Intended use: Direct Mailer pipeline, Throttle stage.

Configuration Values

None.

Values Read

The ThrottleDMLPerformance component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
delay_msec | Context | The delay between messages in milliseconds.

Values Written

None.

Remarks

An SMTP server can be overwhelmed by receiving too many messages at a time. For this reason, a direct mail pipeline may need to slow down delivery of messages to the server.

The ThrottleDMLPerformance component simply waits the number of milliseconds specified by the delay_msec key. The Direct Mailer service calculates the delay needed to maintain an appropriate delivery rate. It then sets the delay_msec value in the Context dictionary, which is read by the ThrottleDMLPerformance component.

See Also

AddAttachments

ComposeDMLMessage

CreateUPMCookie

SendPrecomposedMessage

VerifyMessageBody

VerifyRecipientData


ValidateCCNumber

Use this component to check the expiration date of a credit card and to perform a checksum test on the number. Checksum testing ensures that the format of the number is correct; it does not verify the validity of the account.

Intended use: Order Processing pipeline, Payment stage.

Configuration Values

You can determine when the ValidateCCNumber component checks the credit card by setting component properties. Use the following boxes on the Validate CC tab of the Component Properties dialog box to determine this information.

Box | Description
Apply when Determines when to apply the credit card check. The values are:
Always
Default. Specifies that the format of the credit-card number is always checked.
Equal to method
Specifies that the format of the number should be checked when the value of the payment_method key in the Order dictionary is the same as the string specified for the Method box.
Has any value
Specifies that the format of the number should be checked when the payment_method key of the order has any non-null value.
Method | The payment method to match against the value of the payment_method key in the Order dictionary. Used when the value in the Apply when is set to Equal to method box.

Values Read

The ValidateCCNumber component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
_cc_number | Order | The credit card number.
_cc_expmonth | Order | The expiration month as a string.
_cc_expyear | Order | The expiration year as a string.
cc_type | Order | The type of the credit card as a string. Must be one of the following six types: MasterCard, MC, VISA, Discover, AmericanExpress, AMEX. No other type will be validated.
MessageManager | Context | A reference to a MessageManager object, which uses the invalid credit card error constant (pur_badcc) to retrieve an error message.

Values Written

The ValidateCCNumber component writes the following values to the Order dictionary.

Key | Description
_Purchase_Errors | Error messages are written to this SimpleList object.

Errors

The ValidateCCNumber component returns error level 2 (OPPERRORLEV_WARN) when an error occurs.

The component writes error messages to the _Purchase_Errors collection. The component uses a MessageManager object to retrieve user warning message text.

Constant | Condition
pur_badcc | The credit card has expired or has a bad number.

Remarks

The ValidateCCNumber component first determines whether the credit card type specified in the order.cc_type key is one of the types accepted by this component. Accepted types are VISA, MasterCard, AmericanExpress, Discover, and the abbreviations MC and AMEX.

The ValidateCCNumber component checks the values stored in the order._cc_expmonth and order._cc_expyear keys to confirm that the credit card has not expired.

If the card is an accepted type, the component then runs a checksum on the number stored in the order._cc_number key to ensure that the number is properly formed. For example, if the specified credit card type is Discover, a well-formed number must begin with a 3 and must consist of 16 digits.

See Also

MessageManager Object


VerifyMessageBody

Use this component to check the body of a direct mail message.

Although the component appears as VerifyMessageBody in the Pipeline Editor, its ProgID is Commerce.DMLVerifyMessageBody.

Intended use: Direct Mailer pipeline, Send E-mail stage.

Configuration Values

None.

Values Read

The VerifyMessageBody component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
user_flags | Order | A bit mask indicating elements of the message to check. Only the rightmost bit is currently used.
cdo_result | Order | The result code (an HRESULT) from the most recent Collaboration Data Objects (CDO) for Microsoft Windows 2000 operation.
cdo_message | Context | A reference to the CDO message object (CDO.Message).

Values Written

The VerifyMessageBody component writes the following values to the Order dictionary.

Key | Description
rcp_bypass | Boolean. Set to True so that other components will bypass further processing if errors exist.

Remarks

The VerifyMessageBody component checks the message body according to a set of user flags (user_flags). In the current component, only the rightmost bit is tested. If set (1), the component ensures that the message body is not blank. If the user flag is not set, or if the cdo_result key is not equal to S_OK, the component does nothing.

The component also checks for attachments and for the correct number of attachments.

If the body is blank and there are no attachments, the component sets the rcp_bypass key to True.

See Also

AddAttachments

ComposeDMLMessage

CreateUPMCookie

SendPrecomposedMessage

ThrottleDMLPerformance

VerifyRecipientData


VerifyRecipientData

Use this component to check the data about the recipient of a direct mail message.

Although the component appears as VerifyRecipientData in the Pipeline Editor, its ProgID is Commerce.DMLVerifyRecipientdata.

Intended use: Direct Mailer pipeline, Preprocess Recipient stage.

Configuration Values

None.

Values Read

The VerifyRecipientData component reads the following values from the indicated dictionaries.

Key | Dictionary | Description
rcp_bypass | Order | Boolean. The component bypasses (skips) processing if True.
rcp_email | Order | The e-mail address of the recipient.
rcp_formatting Order Numeric. The format for the message. The options are:
0
Default formatting
1
Plain text
2
MIME
3
MHTML
This key overrides the default format.
default_formatting Context
Optional. Numeric. The default formatting for the message. The values are:
0
Default formatting
1
Plain text
2
MIME
3
MHTML

Values Written

The VerifyRecipientData component writes the following values to the Order dictionary.

Key | Description
rcp_bypass | Boolean. This key is set to True if there is a problem with the recipient data. This will make subsequent components skip or bypass this recipient.

Remarks

The VerifyRecipientData component checks multiple values in the pipeline dictionaries to verify data about the recipient. If any one of the checks fails, the component sets the rcp_bypass key to True so that subsequent components in the pipeline skip the recipient.

The component performs the following checks:

  • Tests the rcp_bypass key to see if it is True on entry. If True, the component does nothing further.
  • Ensures that the e-mail address key (rcp_email) is present and has a value.
  • Tests the formatting code (rcp_formatting) to see if it is empty. If empty, the component uses the default formatting.
  • Tests the formatting against text, MIME, or MHTML.

The VerifyRecipientData component does not check any of the personalization information. The direct mail sender must verify this data.

See Also

AddAttachments

ComposeDMLMessage

CreateUPMCookie

SendPrecomposedMessage

ThrottleDMLPerformance

VerifyMessageBody


OLE DB Provider for Commerce Server

An OLE DB provider is a COM component that accepts calls to the OLE DB API and processes that request against the data source. The OLE DB Provider for Commerce Server provides two distinct paths of functionality, the Profiling System and the Data Warehouse. The Fastload property passed in the connection string determines which of these functionalities is used.

The Profiling System is mainly concerned with single insertions and queries and the ability of the OLE DB Provider for Commerce Server to aggregate profile data across multiple data stores.

The Data Warehouse concentrates on bulk insertion and the ability of the OLE DB Provider for Commerce Server to automatically instantiate the parent classes when a child class is created.

This section contains:

  • Data Types Supported by OLE DB Provider. Describes the data types and their formats supported by the OLE DB Provider for Commerce Server.
  • OLE DB Interface Support. Lists the supported OLE DB 2.5 objects and interfaces.
  • Data Warehouse, Analysis, and OLE DB Provider. Describes the functionalities of the OLE DB Provider for Commerce Server as they are used by the Data Warehouse and the Business Analytics System.
  • Profiling System and OLE DB Provider. Describes the functionalities of the OLE DB Provider for Commerce Server as they are used by the Profiling System.
  • OLE DB Error Messages. Lists all the error messages associated with the OLE DB Provider for Commerce Server.

See Also

Code to Perform Bulk Operations Using ADO and SQL


Data Types Supported by OLE DB Provider

The following topics describe the supported data types and their formats:

  • DateTime Format
  • String Format
  • Supported Data Types


DateTime Format

ActiveX Data Objects (ADO), OLE DB, and Open Database Connectivity (ODBC) applications should use the following escape clauses when specifying dates for input to INSERT and UPDATE statements. Use the 24-hour time format; do not use A.M or P.M. to indicate morning or evening:

  • {ts 'YYYY-MM-DD [HH:MM:SS.FFF]'}, for example, {ts '2000-10-31 23:59:59.999'}
  • {d 'YYYY-MM-DD'}, for example, {d '2000-10-31'}
  • {t 'HH:MM:SS'} for example, {t '23:59:59'}

For further information, see Writing International Transact-SQL Statements in SQL Books Online.

On import, if one member of a multi-valued DateTime member is invalid, none of the DateTime members are imported.


String Format

The Commerce database supports strings of 4000 characters. Since the Data Warehouse only supports strings of 512 characters, any string consisting of more than 512 characters will be truncated to 512 characters when it is imported.

For multi-valued strings, the count includes one additional character (the semicolon) per element, the length of the integer specifying the number of elements, plus one.


Supported Data Types

The following table contains the valid data types supported by the OLE DB Provider for Commerce Server. The Support column specifies whether the data type is supported by the Data Warehouse, the Profiling System, or both. Binary data is not supported by the Data Warehouse, but is supported by the Profiling System in the following contexts:

  • Access by means of a ProfileService object or a Recordset object.
  • Modification by means of a ProfileService object or a Record object.
TypeName | Support | Storage Data Types for SQL (Data Warehouse only) | Description
BINARY | Profiling System | varbinary | Binary
BOOL | Both | bit | Boolean (0 or 1)
CURRENCY | Both | money | 64-bit currency
DATE | Both | datetime | Standard date
DATETIME | Both | datetime | SQL Date-time
FILETIME | Data Warehouse | datetime | Standard file date/time stamp
FLOAT | Profiling System | float | 4-byte floating point number
IDENTITY | Data Warehouse | binary(6) | 48-bit numerical identifier Does not support multi-valued members
IDENTITY6 | Data Warehouse | binary(6) | 48-bit numerical identifier Does not support multi-valued members
IMAGE | Profiling System | varbinary | limit 8,000 bytes
INT64 | Data Warehouse | bigint | 64-bit integer Does not support multi-valued members
LONG | Data Warehouse | int | 32-bit integer
LONGREAL | Data Warehouse | float(53) | 64-bit floating point number
LONGTEXT | Profiling System | text | Unicode string of length 4000 characters
NUMBER | Profiling System | int | 4-byte integer
REAL | Data Warehouse | real | 32-bit floating point number
SHORT | Data Warehouse | smallint | 16-bit integer
STRING | Profiling System | nvarchar | Standard string
TIME | Profiling System | datetime | Standard time
UINT64 | Profiling System | bigint | 64-bit unsigned integer Does not support multi-valued members
ULONG | Data Warehouse | int | 32-bit unsigned integer Does not support multi-valued members
UUID | Data Warehouse | uniqueidentifier | Packed decimal number used for globally unique identifiers (GUID)
WORD | Data Warehouse | smallint | 16-bit unsigned integer Does not support multi-valued members
WSTR | Data Warehouse | nvarchar (255) | Unicode string of length 255
WSTR8, WSTR12. WSTR16, WSTR24, WSTR32, WSTR48, WSTR64, WSTR80, WSTR96, WSTR112, WSTR128, WSTR144, WSTR160, WSTR255, WSTR400, WSTR512 | Data Warehouse | nvarchar | Unicode string of designated length, WSTR8 is nvarchar (8), WSTR12 is nvarchar (12), and so on
WSTR1K, WSTR2K, WSTR4K | Profiling System | nvarchar | Unicode string of designated length, WSTR1K is nvarchar (1000), WSTR2K is nvarchar (2000), and so on

The following figure contains the supported conversion types for consumer-requested data.

The conversion chart for data types.


OLE DB Interface Support

The following table lists the OLE DB 2.5 objects and interfaces that are supported by the OLE DB Provider for Commerce Server.

Object | Interface | Support
Binder | IBindResource | Yes
 | ICreateRow | Yes
 | IDBBinderProperties | Yes
 | ISupportErrorInfo | No
Command | IAccessor | Yes
 | IColumnsInfo | No
 | IColumnsRowset | No
 | ICommand | Yes
 | ICommandPersist | No
 | ICommandPrepare | No
 | ICommandProperties | Yes
 | ICommandText | Yes
 | ICommandWithParameters | No
 | IConnectionPointContainer | No
 | IConvertType | No
 | IDBAsynchStatus | No
 | IDBInitialize | No
 | ISupportErrorInfo | No
Data Source | IConnectionPointContainer | No
 | IDBAsynchStatus | No
 | IDBCreateSession | Yes
 | IDBDataSourceAdmin | No
 | IDBInfo | No
 | IDBInitialize | Yes
 | IDBProperties | Yes
 | IDBResetProperties | No
 | IPersist | Yes
 | IPersistFile | No
 | ISupportErrorInfo | Yes
Error | IErrorInfo | Yes
 | IErrorRecords | Yes
Multiple Results | IMultipleResults | Yes
Row | IColumnsInfo | Yes
 | IColumnsInfo2 | Yes
 | IConnectionPointContainer | No
 | IConvertType | Yes
 | ICreateRow | Yes
 | IDBAsynchStatus | No
 | IDBInitialize | No
 | IGetSession | Yes
 | IRow | Yes
 | IRowChange | Yes
 | IRowSchemaChange | No
 | IScopedOperations | No
 | ISupportErrorInfo | No
Rowset | IAccessor | Yes
 | IChapteredRowset | No
 | IColumnsInfo | Yes
 | IColumnsRowset | No
 | IConnectionPointContainer | No
 | IConvertType | Yes
 | IDBAsynchStatus | No
 | IDBInitialize | No
 | IGetRow | No
 | IRowset | Yes
 | IRowsetChange | No
 | IRowsetChapterMember | No
 | IRowsetFind | No
 | IRowsetIdentity | No
 | IRowsetIndex | No
 | IRowsetInfo | Yes
 | IRowsetLocate | No
 | IRowsetRefresh | No
 | IRowsetScroll | No
 | IRowsetUpdate | No
 | IRowsetView | No
 | ISupportErrorInfo | No
Session | IAlterIndex | No
 | IAlterTable | No
 | IBindResource | No
 | IConnectionPointContainer | No
 | ICreateRow | Yes
 | IDBASynchStatus | No
 | IDBCreateCommand | Yes
 | IDBInitialize | No
 | IDBSchemaRowset | No
 | IGetDataSource | Yes
 | IIndexDefinition | No
 | IOpenRowset | Yes
 | ISessionProperties | Yes
 | ISupportErrorInfo | Yes
 | ITableDefinition | No
 | ITransaction | No
 | ITransactionJoin | No
 | ITransactionLocal | No
 | ITransactionObject | No


Data Warehouse, Analysis, and OLE DB Provider

This section describes the functionalities of the OLE DB Provider for Commerce Server as it is used by the Data Warehouse and the Business Analytics System.

This section contains:

  • Bind URLs. Describes the commands used to bind to a Row object.
  • OLE DB Connection Strings for the Data Warehouse. Describes the connection strings recognized by the OLE DB Provider for Commerce Server.
  • Delete Syntax. Describes the syntax for deleting data from the Data Warehouse.


Bind URLs

The OLE DB Provider for Commerce Server implements a Binder object that supports direct binding to the Session object or the DSO object using the Uniform Resource Locator (URL) naming convention.

The following table lists the custom URLs that can be bound. Note that "ClassNames" is both the name of a URL and the name of a field in the returned record.

URL | Description
ClassNames | Returns a record with a ClassNames field that contains a collection of all the class names.
DimensionNames | Returns a record with a ClassNames field that contains a collection of all the dimension class names.
FactNames | Returns a record with a ClassNames field that contains a collection of all the fact class names.
RelationNames | Returns a record with a ClassNames field that contains a collection of all the class relation names.

Example

The following Microsoft Visual Basic example displays the name of each fact class. This functionality is not available in Microsoft Visual Basic Scripting Edition (VBScript) because rec("ClassNames") returns an array of Strings, not an array of Variants of String type.

Dim rec, conn, savNames, sName
Set rec = CreateObject("ADODB.Record")
Set conn = CreateObject("ADODB.Connection")

conn.Open "URL=mscop://INPROCCONNECT/Server=servername:" & _
 "Database=dbname:Catalog=dwschema:fastload=true:" & _
 "Trusted_Connection=Yes"

rec.Open "FactNames", conn

savNames = rec("ClassNames")

For Each sName In savNames
   MsgBox sName
Next

rec.Close
Set rec = Nothing
Set conn = Nothing


OLE DB Connection Strings for the Data Warehouse

Two types of connection strings are recognized by the OLE DB Provider for Commerce Server for use with the Data Warehouse. These strings are:

  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname: Catalog=DWSchema:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"
  • "Provider=commerce.dso.1;Data Source=mscop://InProcConnect/Server=myserver: Catalog=DWSchema:Database=dbname:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

For Windows NT Authentication use one of the following connection strings:

  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname:Catalog=DWSchema:Trusted_Connection=true:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"
  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname:Catalog=DWSchema:Trusted_Connection=Yes:FastLoad=True:Connection_Retry=10:Connection_Retry_Delay=30"

The name of the catalog must be "DWSchema".

The Fastload property must be set to True, which precludes the use of binary data. When the Fastload property is set to True you will not be able to read instance data in the classes, for example, select and update statements are not allowed.

The Connection_Retry option specifies the number of times the connection to the SQL provider will be retried when it encounters a problem. The Connection_Retry_Delay option specifies the seconds between each retry.


Delete Syntax

You can programmatically delete data from the Data Warehouse. A Data Deletion Data Transformation Services (DTS) task is provided for deleting all the data in the Data Warehouse, or for deleting Web log import data by using the TaskHistoryID property. For information about the Data Deletion DTS task, see Running the Data Deletion DTS Task.

The delete syntax format is:

   DELETE [FROM] BaseClassName
      [WITH (DELETEORPHANS | ONLYFACT | UPDATECHILDREN)]
      [WHERE where_clause]
BaseClassName
The name of the class containing the data to delete.
DELETEORPHANS
Specifies to delete any orphans produced by the delete operation. An orphan is an instance in a parent class (for example, a dimension class such as Date) that is not referenced by any of its child classes (for example, a fact class such as Request). You can periodically delete with the DELETEORPHAN option, but in general it is not necessary.
ONLYFACT
Specifies to only delete children of BaseClassName that are marked as FACT tables.
UPDATECHILDREN
Specifies to update the children, if any, of BaseClassName. For example, if you are deleting a parent class that has children referencing it, UPDATECHILDREN updates the child references to the default row.

where_clause - memberpath [NOT] operator testvalue [AND where_clause]

memberpath - [BaseClassName.][pathelements]MemberName
pathelements - (ParentName|RelationToParentName).[pathelements]
ParentName - the name of the class that is a parent to the class
immediately preceding it in memberpath
RelationToParentName - the name of the relation between the parent
and its base class
MemberName - the name of a class member from the rightmost class in
memberpath; this specifies the class member to test in where_clause
operator - one of the following operators:
= | <> | < | > | <= | <= | LIKE | IS LIKE | IS NULL | IS IN | NOT NULL
 | != | !>= | !<= | !> | !< | NOT LIKE | IS NOT LIKE | IS NOT NULL | IS NOT IN | NOT IN
testvalue - one of the following: value, IN valuelist, NULL
value - the value to test MemberName against in where_clause
valuelist - a comma-delimited list of values surrounded by parentheses

Delete Syntax Example

Set cmdDel = WScript.CreateObject("ADODB.Command.2.5")

cmdDel.CommandText = "DELETE FROM Request"
cmdDel.CommandText = "DELETE FROM Request
                         WHERE RequestNum > 2"
cmdDel.CommandText = "DELETE FROM Date
                         WHERE DTimestamp > '1998-10-29 00:00:00'"
cmdDel.CommandText = "DELETE FROM Date
                         WITH UPDATECHILDREN"
cmdDel.CommandText = "DELETE FROM Date
                         WITH DELETEORPHANS"
cmdDel.CommandText = "DELETE FROM Date
                         WITH UPDATECHILDREN
                         WHERE DTimestamp > '1998-10-29 00:00:00'"
cmdDel.CommandText = "DELETE FROM Date
                         WITH DELETEORPHANS
                         WHERE Date.DTimestamp > '1998-10-29 00:00:00'"
cmdDel.CommandText = "DELETE FROM Visit
                         WHERE DTimestamp > 1998-10-29 00:00:00'"
cmdDel.CommandText = "DELETE FROM Visit
                         WHERE DTimestamp
                            IN ('1999-10-29 00:00:00',
                                '1999-10-30 00:00:00')"
cmdDel.CommandText = "DELETE FROM Request
                         WHERE Request.Loguser.IPRef.Hostname = " & _
                           "'1.1.1.1'"
cmdDel.Execute


Profiling System and OLE DB Provider

This section describes the functionalities of the OLE DB Provider for Commerce Server as it is used by the Profiling System.

This section contains:

  • Aggregation Across Multiple Data Sources. Describes the ability of the OLE DB Provider for Commerce Server to manipulate objects aggregated across multiple data sources.
  • OLE DB Connection Strings for the Profiling System. Describes the connection strings recognized by the OLE DB Provider for Commerce Server.
  • SQL Queries. Describes the subset of ANSI SQL language used to manipulate objects aggregated across multiple data sources.


Aggregation Across Multiple Data Sources

This topic describes the ability of the OLE DB Provider for Commerce Server to aggregate profile object data from multiple disparate data sources into a single homogeneous OLE DB Row object.

The data aggregation layer handles requests for fetching specified properties of profile object data, inserting new profile objects, deleting profile objects, updating specified properties of profile object data, and combining the results of running search queries simultaneously across multiple data stores.

The data aggregation layer provides support for the following data source types:

  • Microsoft Active Directory directory service
  • Microsoft SQL Server 2000
  • Line-of-Business (LOB) store with the following support:
    • An OLE DB/Open Database Connectivity (ODBC) provider with support for a simple published subset of ANSI SQL

    or

    • A Lightweight Directory Access Protocol version 3 (LDAPv3) compliant directory store.

The data aggregation layer is optimized for performance and scalability against Active Directory and SQL Server stores.

The data aggregation layer is implemented as four components:

  • Aggregation layer, which is part of the OLE DB Provider for Commerce Server itself.
  • Directory component.
  • Microsoft SQL Server 2000.
  • LOB stores component.

The aggregation layer processes requests by splitting them into sub-requests appropriate to each aggregated data store and passing them to components responsible for those stores.


OLE DB Connection Strings for the Profiling System

Two types of connection strings are recognized by the OLE DB Provider for Commerce Server for use with the Profiling System:

  • "URL=mscop://InProcConnect/Server=myserver:Database=dbname:
    Catalog=Profile Definitions:Trusted_Connection=Yes"
  • "Provider=commerce.dso.1;Data Source=mscop://InProcConnect/Server=myserver:Database=dbname:
    Catalog=Profile Definitions:Trusted_Connection=Yes "

The URL-based format is the recommended format.

The name of the catalog must be "Profile Definitions".

The Fastload option (False by default) is not used by the Profiling System.


SQL Queries

This section describes the subset of ANSI SQL language used to manipulate objects aggregated across multiple data sources.

SQL Query Syntax

Restrictions

SQL Query Syntax

The following code example shows the SQL query syntax supported by the OLE DB Provider for Commerce Server:

SELECT select_list FROM class_name
   [WHERE search_condition]
   [ORDER BY order_expression]

select_list ::= member_name | member_name , member_list
search_condition ::= in_exression | predicate |
                     predicate AND search_condition
in_expression ::= member_name IN ( value1, … , valueN )
predicate ::=
      member_name { = | <> | > | >= | < | <= | LIKE } value |
      member_name IS [NOT] NULL
order_expression::= member_name*

INSERT [INTO] class_name member_list VALUES value_list

member_list ::= member_name | member_name , member_list
value_list ::= value | value , value_list

UPDATE class_name SET member_value_list WHERE search_condition

member_value_list ::= member_value | member_value , member_value_list
member_value ::= member_name = value
DELETE [FROM] class_name WHERE search_condition

Restrictions

The following restrictions apply to the query syntax:

  • All members in all queries must be specified by their fully qualified names.
  • Active Directory does not support queries using the less than (<) or greater than (>) operators. For more information, see RFC 2254, "The String Representation of LDAP Search Filters".
  • Queries cannot be ordered by multiple properties when these properties are stored in Active Directory.
  • Membership Directory does not support sorting.
  • Nonprintable characters are not supported.
  • The results set from a SELECT query is streamed back in the order in which the underlying data store returns the data.
  • All members in the WHERE or ORDER_BY clauses must belong to the same underlying data store. If both WHERE and ORDER_BY clauses are present, then all members in both clauses must map to the same underlying data store.
  • Only single-valued Number (Integer, Float), String, Currency or Date/Time/Datetime data types are supported in the WHERE clause.
  • LIKE clauses support wildcard searches through the '%' character only. All members in LIKE clauses must be of the String data type.
  • The semicolon (;) is used as the delimiter for values in a multi-valued property. Thus, values in a multi-valued property must not contain a semicolon.
  • INSERT and UPDATE commands allow multi-valued property values. The following examples illustrate the use of multi-valued properties:
    INSERT INTO UserObject (Name, Interests)
VALUES ('Joe', ('Basketball', 'Baseball'))

UPDATE UserObject
SET (Interests = ('Basketball', Baseball'))
WHERE Name = 'Joe'
  • A single quote must be escaped with another single quote.
  • A double quote does not need to be escaped with another double quote unless the query is in Visual Basic Scripting Edition (VBScript) code.


OLE DB Error Messages

This section lists all the error messages associated with the OLE DB Provider for Commerce Server.

Message IDs are 16-bit quantities and their range is divided as follows:

0x0000 : ignored

0x0001 - 0x0FFF : Metabase

0x1000 - 0x13FF : Logger

0x1400 - 0x15FF : FiltMan

0x1600 - 0x18FF : Service

0x1900 - 0x20FF : LinkChecker

0x2100 - 0x23FF : Reporting

0x3000 - 0x37FF : Utilities

0x8000 - 0x80FF : Out of memory messages range for all components

This section contains:

  • General OLE DB Error Messages
  • OLE DB Command Parsing Error Messages
  • OLE DB Row and Rowset Error Messages
  • OLE DB URL Command Error Messages
  • OLE DB Property Utility Error Messages
  • OLE DB Resolve Partitions Error Messages
  • OLE DB Catalog Error Messages
  • Schemamgr.cpp Error Messages for the OLE DB
  • SQLPathTrans.cpp Error Messages for the OLE DB
  • Bindargs.cpp Error Messages for the OLE DB
  • OLE DB Binder Property Error Messages
  • OLE DB CCommand Error Messages
  • OLE DB Data Source Error Messages
  • OLE DB Command Error Messages
  • OLE DB Object Related Error Messages
  • OLE DB Schema Manager Error Messages
  • OLE DB Enhanced Relation Data SubSystem Error Messages
  • OLE DB Create Class Factory Error Messages
  • Aggregation Layer CS SQL Provider Error Messages for the OLE DB
  • OLE DB DbConnectionPool Error Messages
  • OLE DB Utility Error Messages
  • OLE DB Calculation Renderer Error Messages
  • OLE DB Report Renderer Error Messages
  • DTS Task Error Messages for the OLE DB


General OLE DB Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_XMLLoadFailed | OutputBase = 16 Failed to load XML from file %1. Catalog now invalid. (%2). | 0xC8018001L
MSCOP_E_EqualOperatorOnly | OutputBase = 16 Only '=' operator valid in the WHERE clause when loading single rows. | 0xC8018002L
MSCOP_E_SchemaChangeModeNotEnabled | OutputBase = 16 The command '%1' requires Schema Change Mode to be enabled. | 0xC8018003L
MSCOP_E_CatalogObjListEmpty | OutputBase = 16 The catalog objects container being read is currently empty. (URL: %1). | 0xC8018004L
MSCOP_E_ErrorParseKeyMemName | Error parsing the key member name for URL '%1'. Command syntax is 'KeyMember/<Key-Name>/<Key-Member-Name>'. | 0xC8018005L
MSCOP_E_UnknownMemberName | Referenced member name '%1' is unknown. | 0xC8018006L
MSCOP_E_CtlgContainsError | The %1 operation cannot be performed because catalog is in an invalid state. Release the current session. | 0xC8018007L
MSCOP_E_XmlLibInitFailed | Failed to initialize the XML conversion library (%1) | 0xC8018008L
MSCOP_E_ReleaseXMLConversionLibraryFailed | Failed to release XML conversion library (%1) | 0xC8018009L
MSCOP_E_OutOfMemoryInCreateSiteOrHost | Unable to allocate memory in CreateSiteOrHost. | 0xC801800AL
MSCOP_E_CatalogRowAlreadyCommitted | Catalog row has already been committed. No further changes can be made. | 0xC801800BL
MSCOP_E_SetOnReadOnlyProperty | Attempt to set read only data for property: %1 | 0xC801800CL
MSCOP_E_SetOnGeneratedProperty | Attempt to set value for a generated property: %1 | 0xC801800DL


OLE DB Command Parsing Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_BulkStmtWithNoINSERT | BULK statement had no INSERT | 0xCA148010L
MSCOP_E_BulkStmtClassNotFound | Class name in BULK statement not found in Catalog | 0xCA148011L
MSCOP_E_BulkStmtNoFROM | BULK statement had no FROM clause | 0xCA148012L
MSCOP_E_BulkStmtNoDataFile | BULK statement had no data file name | 0xCA148013L
MSCOP_E_BulkStmtNoFormatFile | BULK statement had no format file name | 0xCA148014L
MSCOP_E_BulkLoadInitializeCommandFailed | BULK INSERT statement failed to initialize bulk load command (%1) | 0xCA148015L
MSCOP_E_BulkINSERTFailed | BULK INSERT statement failed to load data (%1) | 0xCA148016L
MSCOP_E_DataFormatFileInitializationFailed | Initializing the data format file failed: %1 | 0xCA148017L
MSCOP_E_BulkCommandNULLClsDef | NULL Class in Bulk Command initialization | 0xCA148018L
MSCOP_E_BulkCommandNULLDataFile | NULL Data File name in Bulk Command initialization | 0xCA148019L
MSCOP_E_BulkCommandNULLFormatFile | NULL Format File name in Bulk Command initialization | 0xCA14801AL
MSCOP_E_ProcessingDataFormatFileFailed | Failed processing the data format file: %1 | 0xCA14801BL
MSCOP_E_ImportingDataFileFailed | Failed importing the data file: %1. | 0xCA14801CL
MSCOP_E_AllMembersInORDERBYClause | Member names required in ORDER BY clause. '*' is not allowed | 0xCA14801DL
MSCOP_E_NoMembersInORDERBYClause | Member names required in ORDER BY clause. | 0xCA14801EL
MSCOP_E_UnknownValueType | Unknown value type %1 | 0xCA14801FL
MSCOP_E_ParseMemsErrorOpenParen | Syntax error: ParseMemListInParen(), expecting '(', url: %1 | 0xCA148020L
MSCOP_E_ParseMemsErrorCloseParen | Syntax error: ParseMemListInParen(), expecting ')', url: %1 | 0xCA148021L
MSCOP_E_ParseAddMemberFailed | ParseMemberNames(), couldn't add %1 to the member list | 0xCA148022L
MSCOP_E_ParseMemberFailed | ParseMemberNames(), error parsing member name. url : %1 | 0xCA148023L
MSCOP_E_ParseValsErrorOpenParen | ParseValsListInParen(), expecting '(', url: %1 | 0xCA148024L
MSCOP_E_ParseValsErrorCloseParen | ParseValsListInParen(), expecting ')', url: %1 | 0xCA148025L
MSCOP_E_ParseValSetErrorOpenParen | Error: ParseValueSet(), expecting '(' for after IN, url: %1 | 0xCA148026L
MSCOP_E_ParseValSetErrorCloseParen | Error expecting ',' or ')' after value %1 (%2) | 0xCA148027L
MSCOP_E_ParseValSetMultiValInVal | IN values cannot have multi-values (%1) | 0xCA148028L
MSCOP_E_ParseValSetParseFailure | URLCommand::ParseValueSet(), Could not parse value %1 (%2) | 0xCA148029L
MSCOP_E_ParseValSetTooManyValuesInSet | Too many values in set - max count is %1 | 0xCA14802AL
MSCOP_E_ParseValSetErrorRetrievingValue | Error retrieving value (%1) | 0xCA14802BL
MSCOP_E_ParseValSetSetMemberFailed | URLCommand::ParseCSVValuesList(), Could not set member %1 into the row. type : %2, url : %3 | 0xCA14802CL
MSCOP_E_ParseClassOrViewNameNotFound | Expecting class/view name, url: %1 | 0xCA14802DL
MSCOP_E_ParseMemberNotFound | Expecting member name, url: %1 | 0xCA14802EL
MSCOP_E_ValidateMemberLengthTooLong | URLCommand::ValidateMember, String length too long for %1 (max=%2) | 0xCA14802FL
MSCOP_E_ParseExpectingRelationalOperator | ParseSimplExpr(), expecting relational operator, url: %1 | 0xCA148030L
MSCOP_E_ParseCouldntConvertValue | ParseSimplExpr(), Couldn't convert value for member %1, url: %2 | 0xCA148031L
MSCOP_E_ParseIllegalMultiValExpression | Multi-values are not supported inside expressions for member %1, url: %2 | 0xCA148032L
MSCOP_E_ParseMemberValidationFailed | ParseSimplExpr(), Member validation failed, hr: %1, url: %2 | 0xCA148033L
MSCOP_E_ParseExprNodeErrorOpenParen | ParseExprNode(), expecting '(', url: %1 | 0xCA148034L
MSCOP_E_ParseExprNodeErrorCloseParen | ParseExprNode(), expecting ')', url: %1 | 0xCA148035L
MSCOP_E_ParseExprNested | ParseExpr(), too many nested expression terms, url: %1 | 0xCA148036L
MSCOP_E_ParseExprExpectedLogicalOperator | ParseExpr(), expecting logical operatior, url: %1 | 0xCA148037L
MSCOP_E_ParseClsDefClassNotFound | URLCommand::ParseClassDef(), Could not find class '%1' | 0xCA148038L
MSCOP_E_CommandNumberMismatch | AddUrlCmdMapEntry(), command number mismatch, name: %1, new cmd: %2, cmd: %3 | 0xCA148039L
MSCOP_E_FunctionNumberMismatch | AddUrlCmdMapEntry(), function number mismatch, name: %1, new function: %2, cmd: %3 | 0xCA14803AL
MSCOP_E_NoColonInNamespace | Expecting colon (:) in namespce | 0xCA14803BL
MSCOP_E_ToSimpleFailed | ParseSimplExpr(), ToSimple failed, hr: %1, url: %2 | 0xCA14803CL
MSCOP_E_CommandNotRegistered | Command: '%1' not registered | 0xCA14803DL
MSCOP_E_InvalidComplexExpression | Only AND is supported in complex expressions (for example, WHERE x > 1 AND y < 1) | 0xCA14803EL
MSCOP_E_AllocatingMemberInfo | Error allocating new MemberInfo structure. | 0xCA14803FL
MSCOP_E_AddingMemberInfo | Error adding MemberInfo to Member list %1 | 0xCA148040L
MSCOP_E_INSERTNoInto | INSERT statement had no INTO - url : %1 | 0xCA148041L
MSCOP_E_INSERTBadClassName | INSERT statement had a bad class name - url : %1 | 0xCA148042L
MSCOP_E_INSERTBadMemberClause | INSERT statement had bad member clause | 0xCA148043L
MSCOP_E_INSERTNoVALUESClause | INSERT statement had no VALUES clause | 0xCA148044L
MSCOP_E_InitRowImplFailed | InitRowImpl failed. Could not create row (%1) - url : %2 | 0xCA148045L
MSCOP_E_INSERTBadValues | INSERT statement had bad VALUES (%1) | 0xCA148046L
MSCOP_E_INSERTNoCommasInVALUES | INSERT VALUES must have parenthesis to delimit values | 0xCA148047L
MSCOP_E_INSERTExpectingMemberList | INSERT VALUES must have parenthesis to delimit values | 0xCA148048L
MSCOP_E_SETExpectingEQUAL | Expecting '=' operator in SET clause, url: %1 | 0xCA148049L
MSCOP_E_WHEREAddPropFailed | Couldn't add value in WHERE | 0xCA14804AL
MSCOP_E_WHEREClauseInvalid | Invalid WHERE clause | 0xCA14804BL
MSCOP_E_WHEREOnlyAND | Only 'AND' is supported in DELETE WHERE clauses. | 0xCA14804CL
MSCOP_E_DELETEFailed | DELETE operation failed. Statement: %1, SchemaVer : %2, GuidContext : %3 | 0xCA14804DL
MSCOP_E_InvalidNamespace | Invalid namespce | 0xCA14804EL
MSCOP_E_WHEREOrORDERBYClauseError | Error in WHERE or ORDER BY parsing, hr: %1, url: %2 | 0xCA148050L
MSCOP_E_ClassAttributeClassNotFound | Class Attribute command could not find Class name %1 | 0xCA148051L
MSCOP_E_ClassAttributeNotInSchemaChangeMode | Schema Change Mode is required to create a new class attribute | 0xCA148052L
MSCOP_E_ClassAttributeExpectingAttributeName | Class Attribute command expecting attribute name | 0xCA148053L
MSCOP_E_ClassAttributeExpectingClassName | Class Attribute command expecting class name | 0xCA148054L
MSCOP_E_ParseMissingClassName | In CmdClsDef::Parse(), missing class name, url:%1 | 0xCA148055L
MSCOP_E_MemberAttributeMemberNotFound | Member Attribute command could not find Member name %1 | 0xCA148056L
MSCOP_E_MemberAttributeNotInSchemaChangeMode | Schema Change Mode is required to create a new member attribute | 0xCA148057L
MSCOP_E_MemberAttributeExpectingAttributeName | Member Attribute command expecting attribute name | 0xCA148058L
MSCOP_E_MemberAttributeExpectingMemberName | Member Attribute command expecting member name | 0xCA148059L
MSCOP_E_MemberAttributeExpectingClassName | Member Attribute command expecting class name | 0xCA14805AL
MSCOP_E_PartitionDefClassNotFound | Partition def command could not find associated Class def name %1 | 0xCA14805BL
MSCOP_E_PartitionDefNotInSchemaChangeMode | Partition Def '%1' not found. Cannot create new Partition def when schema change mode not enabled | 0xCA14805CL
MSCOP_E_PartitionDefClassMismatch | The Class name '%1' is not associated with the partition '%2'. Current class is '%3'. | 0xCA14805DL
MSCOP_E_MultipleResultsEOM | SetNoResultsCommand(), Error allocating MultipleResults object - Out of memory | 0xCA148060L
MSCOP_E_MultipleResultsInitialization | SetNoResultsCommand(), Error Initializing Multiple Results Object (%2) | 0xCA148061L
MSCOP_E_UPDATEBadClass | UPDATE statement had a bad class name | 0xCA148062L
MSCOP_E_UPDATENoSet | UPDATE statement had no SET | 0xCA148063L
MSCOP_E_UPDATEExpectingWHERE | CmdClsInst::ParseUpdate(), UPDATE expecting WHERE. url : %1 | 0xCA148064L
MSCOP_E_UPDATEErrorParsingSET | CmdClsInst::ParseUpdate(), Error parsing SET values (%1) - url : %2 | 0xCA148065L
MSCOP_E_StoreOpWithoutJoinKey | Can't %1 into a class without a join key | 0xCA148066L
MSCOP_E_SingleInstanceUPDATEFailed | CmdClsInst::ParseUpdate(), Could not perform single instance UPDATE operation (%1) | 0xCA148067L
MSCOP_E_QUERYUnknownObjects | Unknown object type requested in QUERY, url: %1 | 0xCA148068L
MSCOP_E_QUERYFailed | Failure in query processing, hr: %1, url: %2 | 0xCA148069L
MSCOP_E_MEMINFOLISTAddFailed | ValidateMembers(), Could not add member %1 in class %2 to memlist (%3) | 0xCA14806AL
MSCOP_E_SELECTWithNoClass | Can't perform a SELECT operation on a class without key (ClassName: %1, Command: %2) | 0xCA14806BL
MSCOP_E_DELETEFailedCreatingGUID | Delete operation failed to create an instance of a new guid (%1) | 0xCA14806CL
MSCOP_E_AddingElementToSQLPath | Error adding element %1 to the SQL Path | 0xCA14806DL
MSCOP_E_DELETEClauseInvalidOperator | Invalid Relational Operator specified in delete where clause | 0xCA14806EL
MSCOP_E_RelationOperatorCanNotBeAppliedToSQLPath | Relational operator can not be applied to existing where path: %1 | 0xCA14806FL
MSCOP_E_InvalidMemberInWHEREClase | Invalid member specified in where clause. | 0xCA148070L
MSCOP_E_AggregatorQUERYFailed | Aggregator failed QUERY, hr: %1, url: %2 | 0xCA148071L
MSCOP_E_DELETEQueryFailed | Failed to execute delete query. SCODE: %1 | 0xCA148072L
MSCOP_E_WITHClauseMalformed | Malformed WITH clause | 0xCA148073L
MSCOP_E_WHEREClauseMalformed | Malformed WHERE clause. | 0xCA148074L
ERDS_E_UnexpectedToken | Unexpected token (%1). | 0xCA148075L
MSCOP_E_MissingValue | Missing value in query. | 0xCA148076L

Messages for the Session

Message ID | Message Text | HResult
MSCOP_E_SESSIONFailedToGetActiveCatalog | Session - Could not get the active catalog (%1) | 0xCA2A8001L
MSCOP_E_SESSIONMoreThanOneChangeSessionActive | Cannot have more than one catalog change session active | 0xCA2A8002L
MSCOP_E_SESSIONUnableToInitializeDataSourceProperties | Unable to initialize Data source Properties | 0xCA2A8003L


OLE DB Row and Rowset Error Messages

This section contains:

  • OLE DB Rowset Error Messages
  • OLE DB Row Error Messages
  • OLE DB Crow Error Messages


OLE DB Rowset Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ROWSETPropertyInitializationFailed | Error initializing Rowset properties (%1) | 0xCA278001L
MSCOP_E_ROWSETAccessorInitializationFailed | Error initializing Rowset properties (%1) | 0xCA278002L
MSCOP_E_ROWSETFailedRetrievingRowsFromStorageLayer | Rowset(%1)::Init - Error retrieving initial batch of row data from storage layer (%2), batch : %3 | 0xCA278003L
MSCOP_E_ROWSETEmptyRowsetRetrieved | In CRowset(%1)::Init(), EMPTY ROWSET RETRIEVED! | 0xCA278004L
MSCOP_E_ROWSETErrorInitializingMemDefArray | PopulateMemberArray(), Error initializing MemberDef array (%1) | 0xCA278005L
MSCOP_E_ROWSETGetRowFromHROWEOM | GetRowFromHROW(),Out of memory creating member def array | 0xCA278006L
MSCOP_E_ROWSETGetRowFromHROWInitializeRowFailed | GetRowFromHROW(), Error initializing Row (%1) | 0xCA278007L
MSCOP_E_ROWSETElementInRowCacheNULL | Element in row cache from Storage is NULL | 0xCA278008L
MSCOP_E_ROWSETGetDataEOM | GetData(), Error allocating memory (for the client) for HROW's | 0xCA278009L
MSCOP_E_ROWSETRefreshCachedRowsErrorRetrievingRowsFromStorageLayer | Rowset(%1) RefreshCachedRows() Error retrieving initial batch of row data from storage layer (%2), batch: %3 | 0xCA27800AL


OLE DB Row Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_RowImplMemberNotAlreadyLoaded | Member not in current list of loaded Members. | 0xCA248001L
MSCOP_E_RowImplGetColumnsError | Errors occurred in CRowImpl::GetColumns. (%1) | 0xCA248002L
MSCOP_E_RowImplRequiredMemberNotSet | CRowImpl::ValidateData(), Error - member %1 is a required member which isn't set | 0xCA248003L
MSCOP_E_RowImplColumnValidationFailed | Validation of the column %1 failed.(%2) | 0xCA248004L
MSCOP_E_RowImplRowValidationFailed | Validation of the row failed - Make sure required fields are set (%1) | 0xCA248005L
MSCOP_E_RowImplNoJoinKey | No Join key specified for the class %1 - cannot perform SetColumns() operation. | 0xCA248006L
MSCOP_E_RowImplNoAsyncOperations | Provider does not support Async operations | 0xCA248007L
MSCOP_E_RowImplInvalidRowForDelete | Can only delete the current row | 0xCA248008L
MSCOP_E_RowImplValueDoesNotExist | A value was not found for property (%1) in the underlying row. | 0xCA248009L
MSCOP_E_RowMemberInfoListAdditionFailure | Could not add member definition to MemberInfoList (%1) | 0xCA24800AL
MSCOP_E_RowCouldNotReadAlreadyLoadedFlag | Couldn't retrieve AlreadyLoaded flag for member. | 0xCA24800BL
MSCOP_E_RowGetColumnsFailure | Errors occurred in CRowImpl::GetColumns. (%1) | 0xCA24800CL
MSCOP_E_RowGetCRowDataCouldNotReadIsLoaded | Could not retrieve IsLoaded flag on member %1 | 0xCA24800DL
MSCOP_E_RowGetCRowDataCouldNotReadUpdated | Could not retrieve Updated flag on member %1 | 0xCA24800EL
MSCOP_E_RowGetCRowDataLoadMemberFailed | LoadMember failed for %1, hr=%2. | 0xCA24800FL
MSCOP_E_NullKeyColumn | A NULL-value key column is not valid ('%1') | 0xCA248010L


OLE DB Crow Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CRowAddMember | Error setting value into Row (%1) | 0xCA318001L
MSCOP_E_CRowMVFILETIMEConversionError | Error converting value from FILETIME to SYSTEMTIME in MV case (fy - %i64) | 0xCA318002L
MSCOP_I_CRowMVMarshallingError | Marshalling Multi-value data - VT %1 not supported | 0x4A320001L
MSCOP_E_CRowBOOLConversionError | Cannot size conversion from DBTYPE BOOL to dest CSOLEDB type %1 | 0xCA318003L
MSCOP_E_CRowBSTRConversionError | Cannot size conversion from BSTR/WSTR to dest CSOLEDB type %1 | 0xCA318004L
MSCOP_E_CRowCYConversionError | Cannot size conversion from DBTYPE CY to dest CSOLEDB type %1 | 0xCA318005L
MSCOP_E_CRowI2ConversionError | Cannot size conversion from DBTYPE I2 to dest CSOLEDB type %1 | 0xCA318006L
MSCOP_E_CRowUI1ConversionError | Cannot size conversion from DBTYPE UI1 to dest CSOLEDB type %1 | 0xCA318007L
MSCOP_E_CRowI4ConversionError | Cannot size conversion from DBTYPE I4 to dest CSOLEDB type %1 | 0xCA318008L
MSCOP_E_CRowI8ConversionError | Cannot size conversion from DBTYPE I8 to dest CSOLEDB type %1 | 0xCA318009L
MSCOP_E_CRowR8ConversionError | Cannot size conversion from DBTYPE R8 to dest CSOLEDB type %1 | 0xCA31800AL
MSCOP_E_CRowR4ConversionError | Cannot size conversion from DBTYPE R4 to dest CSOLEDB type %1 | 0xCA31800BL
MSCOP_E_CRowDataSizeConversionError | DataSize(pCol) - attempting to size DBTYPE %1 | 0xCA31800CL
MSCOP_E_CRowMVSizeError | Error sizing a multi-val property | 0xCA31800DL
MSCOP_E_CRowUnknownType | CRowHeader::CopyData(), Unknown kVT type %1 | 0xCA31800EL
MSCOP_E_CRowDBCOLUMNACCESSUnknownType | CRowHeader::CopyData(DBCOLUMNACCESS), Unknown kVT type %1 | 0xCA31800FL
MSCOP_E_CRowDBCOLUMNACCESSFailedSettingType | CRowHeader::CopyData(DBCOLUMNACCESS), failed setting kVT type %1 | 0xCA318010L
MSCOP_E_CRowConvertErrorCodeToStatus | CRowHeader::ConvertErrorCodeToStatus(), Unknown error code : %1 | 0xCA318011L
MSCOP_E_CRowCopyMVDataUnknownType | CRowHeader::CopyMVData(), unknown type %1 | 0xCA318012L
MSCOP_E_CRowDataSizeUnknownType | CRowHeader::DataSize(), unknown type %1 | 0xCA318013L
MSCOP_E_CrowReferenceDefaultValueNotSupported | Multi-value and reference default values not supported | 0xCA318014L
MSCOP_E_CRowTypeNotSupportedAsDefault | EType %1 as default value not supported | 0xCA318015L
MSCOP_E_CrowConsolidateBuffersNotImplemented | Attempting to ConsolidateBuffers -- not implemented yet | 0xCA318016L
MSCOP_E_CRowInvalidIDSize | Invalid ID size. Valid sizes are 0, 1, & 2 (%1) | 0xCA318017L
MSCOP_E_CRowDBCOLUMNACCESSGroupCreate | CRow::SetDBCOLUMNACCESS(), Can't create a group | 0xCA318018L
MSCOP_E_CRow_OutOfBuffers | Internal representation for the Row object has run out of memory buffers. Please release the object and retry operation. | 0xCA318019L


OLE DB URL Command Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_URLCmdsNoWildCard | Member names expected, '*' is not allowed for order by arguments | 0xCA2D8001L
MSCOP_E_URLCmdsOrderByNoMembers | 'order by' must be followed by valid member names | 0xCA2D8002L
MSCOP_E_URLCmdsUnknownValue | Error Unknown Value (as type %1) | 0xCA2D8003L
MSCOP_E_URLCmdsMemsErrorOpenParen | Error: ParseMemListInParen(), expecting '(', url: %1 | 0xCA2D8004L
MSCOP_E_URLCmdsMemsErrorCloseParen | Error: ParseMemListInParen(), expecting ')', url: %1 | 0xCA2D8005L
MSCOP_E_URLCmdsParseMemberFailed | ParseMemberNames(), error parsing member name. url: %1 | 0xCA2D8006L
MSCOP_E_URLCmdsValSetErrorOpenParen | Error: ParseValueSet(), expecting '(' for after IN, url: %1 | 0xCA2D8007L
MSCOP_E_URLCmdsValSetMultiValInVal | IN values cannot have multi-values (%1) | 0xCA2D8008L
MSCOP_E_URLCmdsValSetParseFailure | URLCommand::ParseValueSet(), Could not parse value %1 (%2) | 0xCA2D8009L
MSCOP_E_URLCmdsValSetErrorCloseParen | Error expecting ',' or ')' after value %1 (%2) | 0xCA2D800AL
MSCOP_E_URLCmdsValSetTooManyValuesInSet | Too many values in set - max count is %1 | 0xCA2D800BL
MSCOP_E_URLCmdsParseCSVValuesListExpectedValue | Error: Expected value. SCODE: %1 | 0xCA2D800CL
MSCOP_E_URLCmdsParseCSVValuesListFailedRetrievingValue | Error retrieving value (%1) | 0xCA2D800DL
MSCOP_E_URLCmdsParseCSVValuesSetListSetValueFailure | Error setting value into Row (%1) | 0xCA2D800EL
MSCOP_E_URLCmdsParseCSVValuesSetListSetMemberFailure | URLCommand::ParseCSVValuesList(), Could not set member %1 into the row. type : %2, url : %3 | 0xCA2D800FL
MSCOP_E_URLCmdsParseMemberExpectedMember | Error: expecting member name, url: %1 | 0xCA2D8010L
MSCOP_E_URLCmdsValidateMemberStringTooLong | URLCommand::ValidateMember, String length too long for %1 (max=%2) | 0xCA2D8011L
MSCOP_E_URLCmdsParseSimplExprExpectingRelationalOperator | Error: ParseSimplExpr(), expecting relational operator, url: %1 | 0xCA2D8012L
MSCOP_E_URLCmdsParseSimplExprConversionFailure | Error: ParseSimplExpr(), Couldn't convert value for member %1, url: %2 | 0xCA2D8013L
MSCOP_E_URLCmdsParseSimplExprMultiValNotSupported | Error: Multi-values are not supported inside expressions for member %1, url: %2 | 0xCA2D8014L
MSCOP_E_URLCmdsParseSimplExprMemberValidationFailed | Error: ParseSimplExpr(), Member validation failed, hr: %1, url: %2 | 0xCA2D8015L
MSCOP_E_URLCmdsParseSimplExprConstructNodeFailure | Error: ParseSimplExpr(), Failed to construct simple expression node. hr: %1, url: %2 | 0xCA2D8016L
MSCOP_E_URLCmdsParseSimplExprToSimpleFailure | Error: ParseSimplExpr(), ToSimple failed, hr: %1, url: %2 | 0xCA2D8017L
MSCOP_E_URLCmdsAddMemberFailed | ParseMemberNames(), couldn't add %1 to the member list | 0xCA2D8018L
MSCOP_E_URLCmdsParseExprNodeOpenParen | Error: ParseExprNode(), expecting '(', url: %1 | 0xCA2D8019L
MSCOP_E_URLCmdsParseExprNodeNestedExpressions | Error: ParseExpr(), too many nested expression terms, url: %1 | 0xCA2D801AL
MSCOP_E_URLCmdsParseExprNodeBadWHEREClause | Error: ParseExpr(), invalid query - bad WHERE clauses, hr: %1, url: %2 | 0xCA2D801BL
MSCOP_E_URLCmdsParseClassDefClassNotFound | URLCommand::ParseClassDef(), Could not find class '%1' | 0xCA2D801CL
MSCOP_E_URLCmdsAddUrlCmdMapEntryCommandNoMismatch | AddUrlCmdMapEntry(), command number mismatch, name: %1, new cmd#: %2, cmd#: %3 | 0xCA2D801DL
MSCOP_E_URLCmdsAddUrlCmdMapEntryFunctionAddrMismatch | AddUrlCmdMapEntry(), func address mismatch, name: %1 | 0xCA2D801EL
MSCOP_E_URLCmdsCreateCmdCommandNotRegistered | Command: '%1' not registered | 0xCA2D801FL
MSCOP_E_URLCmdsExtractValsOnlyAND | Only AND is supported in complex expressions (for example, WHERE x > 1 AND y < 1) | 0xCA2D8020L
MSCOP_E_URLCmdsExtractValsMemberInfoAllocationFailure | Error allocating new MemberInfo structure | 0xCA2D8021L
MSCOP_E_URLCmdsExtractValsMemberInfoListAddFailure | Error adding MemberInfo to list | 0xCA2D8022L
MSCOP_E_URLCmdsParseInsertParseFailed | ParseInsert(), Failed to parse INSERT query. url : %1, SCODE: %2 | 0xCA2D8023L
MSCOP_E_URLCmdsParseInsertBadClass | INSERT statement had a bad class name - url : %1 | 0xCA2D8024L
MSCOP_E_URLCmdsParseInsertBadMember | INSERT statement had bad member clause | 0xCA2D8025L
MSCOP_E_URLCmdsParseInsertNoVALUESClause | INSERT statement had no VALUES clause | 0xCA2D8026L
MSCOP_E_URLCmdsParseInsertCreateRowFailed | ParseInsert(), Could not create row (%1) - url: %1 | 0xCA2D8027L
MSCOP_E_URLCmdsParseInsertNotSupported | INSERT statement not supported | 0xCA2D8028L
MSCOP_E_URLCmdsParseInsertBadVALUESClause | INSERT statement had bad VALUES (%1) | 0xCA2D8029L
MSCOP_E_URLCmdsInsertVALUESNeedsParens | INSERT VALUES must have parenthesis to delimit values | 0xCA2D802AL
MSCOP_E_URLCmdsExpectingEqual | Error: Expecting '=' operator in SET clause, url: %1 | 0xCA2D802BL
MSCOP_E_URLCmdsValueParsingError | Error parsing value %1 | 0xCA2D802CL
MSCOP_E_URLCmdsValueSetError | Error setting value into Row (%1) | 0xCA2D802DL
MSCOP_E_URLCmdsSetNoResultsCommandEOM | SetNoResultsCommand(), Error allocating MultipleResults object - Out of memory | 0xCA2D802EL
MSCOP_E_URLCmdsSetNoResultsCommandInitFailure | SetNoResultsCommand(), Error Initializing Multiple Results Object (%1) | 0xCA2D802FL
MSCOP_E_URLCmdsParseUpdateBadClass | UPDATE statement had a bad class name | 0xCA2D8030L
MSCOP_E_URLCmdsParseUpdateNoSET | UPDATE statement had no SET | 0xCA2D8031L
MSCOP_E_URLCmdsParseUpdateRowCreateFailure | ParseUpdate(), Error while creating internal Row | 0xCA2D8032L
MSCOP_E_URLCmdsParseUpdateNoWHEREClause | ParseUpdate(), UPDATE expecting WHERE. url: %1 | 0xCA2D8033L
MSCOP_E_URLCmdsParseUpdateNoSETClause | ParseUpdate(), Error parsing SET values (%1) - url : %2 | 0xCA2D8034L
MSCOP_E_URLCmdsPerformStorageNoJoinKey | Can't %1 into a class without a join key | 0xCA2D8035L
MSCOP_E_URLCmdsPerformStorageUpdateFailed | PerformStorageAction(), Could not perform single instance UPDATE operation (%1) | 0xCA2D8036L
MSCOP_E_URLCmdsParseUnknownObjectType | Unknown object type requested in query, url: %1 | 0xCA2D8037L
MSCOP_E_URLCmdsParseFailure | Failure in parsing an URL command, hr: %1, url: %2 | 0xCA2D8038L
MSCOP_E_URLCmdsValidateMembersAddFailure | ValidateMembers(), Could not add member %1 in class %2 to memlist (%3) | 0xCA2D8039L
MSCOP_E_URLCmdsValidateMembersMemberNotFound | ValidateMembers(), Could not find member %1 in class %2 | 0xCA2D803AL
MSCOP_E_URLCmdsLoadInstNoKeyInClass | Can't perform a SELECT operation on a class without key (ClassName: %1, Command: %2) | 0xCA2D803BL
MSCOP_E_URLCmdsParseSelectEOM | Out of Memory in Select | 0xCA2D803CL
MSCOP_E_URLCmdsParseSelectAddElementFailed | Error adding element %1 in SELECT clause | 0xCA2D803DL
MSCOP_E_URLCmdsParseWhereEOM | Out of Memory in Select | 0xCA2D803EL
MSCOP_E_URLCmdsParseWhereAddElementFailed | Error adding element %1 in WHERE clause | 0xCA2D803FL
MSCOP_E_URLCmdsParseWhereAddElementInBracketsFailed | Error adding element %1%2 in where clause | 0xCA2D8040L
MSCOP_E_URLCmdsParseWhereInvalidRelationOperator | Invalid Relational Operator specified in delete where clause | 0xCA2D8041L
MSCOP_E_URLCmdsParseWhereRelationOperator | Relational operator can not be applied to existing where path: %1 | 0xCA2D8042L
MSCOP_E_URLCmdsParseWhereInvalidMember | Invalid NULL member specified in where clause | 0xCA2D8043L
MSCOP_E_URLCmdsParseWhereValueConversionError | Error: in where clause, Couldn't convert value for member %1, url: %2 | 0xCA2D8044L
MSCOP_E_URLCmdsParseWhereInvalidMVMember | Error: Multi-values are not supported inside expressions for member %1, url: %2 | 0xCA2D8045L
MSCOP_E_URLCmdsParseWhereInvalidWHEREClause | Invalid where clause | 0xCA2D8046L
MSCOP_E_URLCmdsParseWhereOnlyAND | Only 'AND' is supported in where clauses. | 0xCA2D8047L
MSCOP_E_URLCmdsParseWhereParseError | Error parsing where. Statement: %1, SchemaVer : %2 | 0xCA2D8048L
MSCOP_E_URLCmdsDeleteInstParseFailed | DeleteInst(), Failed to parse DELETE query. url: %1, SCODE: %2 | 0xCA2D8049L
MSCOP_E_URLCmdsDeleteInstGUIDCreateFailed | Delete operation failed to create an instance of a new guid (%1) | 0xCA2D804AL
MSCOP_E_URLCmdsDeleteInstBadWHEREClause | Malformed WITH clause. | 0xCA2D804BL
MSCOP_E_URLCmdsDeleteInstBadClauses | WITH TRUNCATE and a WHERE clause are not allowed in the same statement | 0xCA2D804CL
MSCOP_E_URLCmdsDeleteInstFailed | Delete operation failed. Statement: %1, SchemaVer: %2, GuidContext: %3 | 0xCA2D804DL
MSCOP_E_URLCmdsDoQueryGROUPNoBY | GROUP Keyword specified without BY. | 0xCA2D804EL
MSCOP_E_URLCmdsDoQueryORDERNoBY | ORDER Keyword specified without BY. | 0xCA2D804FL
MSCOP_E_URLCmdsDoQueryBadClauses | Select statement has unsupported clauses, or incorrect ordered clauses. | 0xCA2D8050L
MSCOP_E_URLCmdsDoQuerySELECTFailed | Select operation failed. Statement: %1, hr=%2 | 0xCA2D8051L
MSCOP_E_URLCmdsDoQueryMemberListParsing | Error in member list parsing, hr: %1, url: %2 | 0xCA2D8052L
MSCOP_E_URLCmdsDoQueryParsingWHEREOrORDER | Error in where/order by parsing, hr: %1, url: %2 | 0xCA2D8053L
MSCOP_E_URLCmdsDoQueryAggregatorFailed | Aggregator failed in performing query, hr: %1, url: %2 | 0xCA2D8054L
MSCOP_E_URLCmdsParseNoSrcDef | Source Attribute command could not find source definition name %1 | 0xCA2D8055L
MSCOP_E_URLCmdsParseNotInSchemaChangeMode | Schema Change Mode is required to create a new source attribute | 0xCA2D8056L
MSCOP_E_URLCmdsParseNoAttributeName | Source Attribute command expecting attribute name | 0xCA2D8057L
MSCOP_E_URLCmdsCmdClsAttribClsDefNotFound | Class Attribute command could not find class definition name %1 | 0xCA2D8058L
MSCOP_E_URLCmdsCmdClsAttribScheamaNotInSchemaChangeMode | Schema Change Mode is required to create a new class attribute | 0xCA2D8059L
MSCOP_E_URLCmdsCmdClsAttribNoAttributeName | Class Attribute command expecting attribute name | 0xCA2D805AL
MSCOP_E_URLCmdsCmdClsAttribNoClassName | Class Attribute command expecting class name | 0xCA2D805BL
MSCOP_E_URLCmdsCmdClsDefParseNoClassName | Parse(), missing class name, url:%1 | 0xCA2D805CL
MSCOP_E_URLCmdsCmdMemAttribParseNoMemberName | Member Attribute command could not find member definition name %1 | 0xCA2D805DL
MSCOP_E_URLCmdsCmdMemAttribNotInSchemaChangeMode | Schema Change Mode is required to create a new member attribute | 0xCA2D805EL
MSCOP_E_URLCmdsCmdMemAttribNoAttributeName | Member Attribute command expecting attribute name | 0xCA2D805FL
MSCOP_E_URLCmdsCmdMemAttribNoMemberName | Member Attribute command expecting member name | 0xCA2D8060L
MSCOP_E_URLCmdsCmdMemAttribNoClassName | Member Attribute command expecting class name | 0xCA2D8061L
MSCOP_E_URLCmdsCmdPartitionNoClassName | Partition def command could not find associated class def name %1 | 0xCA2D8062L
MSCOP_E_URLCmdsCmdPartitionNotInSchemaChangeMode | Partition Def '%1' not found. Cannot create new Partition Def when schema change mode not enabled | 0xCA2D8063L
MSCOP_E_URLCmdsCmdPartitionBadClassName | The Class name '%1' is not associated with the partition '%2'. Current class is '%3'. | 0xCA2D8064L
MSCOP_E_URLCmdsRelMemParseRelMemName | Error parsing the relation member name for URL '%1'. Command syntax is 'KeyMember/<Key-Name>/<Key-Member-Name>'. | 0xCA2D8065L
MSCOP_E_URLCmdsCmdGroupMemNoGroupMember | Group Member command could not find member group definition name %1 | 0xCA2D8066L
MSCOP_E_URLCmdsCmdGroupMemNotAGroup | Member %1 is not a group or subgroup | 0xCA2D8067L
MSCOP_E_URLCmdsCmdGroupMemNoMember | Group Member command could not find member definition name %1 | 0xCA2D8068L
MSCOP_E_URLCmdsCmdGroupMemNotFound | Group %1 not found. Cannot create new group when schema change mode not enabled | 0xCA2D8069L
MSCOP_E_URLCmdsCmdGroupMemNoMemberName | Group Member command expecting Member name | 0xCA2D806AL
MSCOP_E_URLCmdsCmdGroupMemNoGroupMemberName | Group Member command expecting Group member name | 0xCA2D806BL
MSCOP_E_URLCmdsCmdGroupMemNoClassName | Group Member command expecting class name | 0xCA2D806CL
MSCOP_E_URLCmdsCmdColDefNoTblDef | Column def command could not find associated table def name %1 | 0xCA2D806DL
MSCOP_E_URLCmdsCmdColDefNotInSchemaChangeMode | Column %1 not found. Cannot create new column when schema change mode not enabled | 0xCA2D806EL
MSCOP_E_URLCmdsCmdColDefBadTableName | The column '%1' is not associated with the table '%2'. Current table is '%3'. | 0xCA2D806FL
MSCOP_E_URLCmdsCmdCmdConnectParseBadConnectionString | In CmdConnect::Parse(), Missing catalog/catalog db name/catalog db server name, Server: %1, Database: %2, UserID: %3 | 0xCA2D8070L
MSCOP_E_URLCmdsCmdSynchOLEDBPropertiesNoUser | Error retrieving User from OLE DB Properties (%1) | 0xCA2D8071L
MSCOP_E_URLCmdsCmdSynchOLEDBPropertiesNoPassword | Error retrieving Password from OLE DB Properties (%1) | 0xCA2D8072L
MSCOP_E_URLCmdsCmdBulkNoINSERT | BULK statement had no INSERT | 0xCA2D8073L
MSCOP_E_URLCmdsCmdBulkBadClassName | BULK INSERT statement had a bad class name | 0xCA2D8074L
MSCOP_E_URLCmdsCmdBulkNoFROM | BULK INSERT statement had no FROM clause | 0xCA2D8075L
MSCOP_E_URLCmdsCmdBulkNoDataFile | BULK INSERT statement had no data file name | 0xCA2D8076L
MSCOP_E_URLCmdsCmdBulkNoFormatFile | BULK INSERT statement -- syntax error, no format file name | 0xCA2D8077L
MSCOP_E_URLCmdsCmdBulkInitializationFailed | BULK INSERT statement failed to initialize bulk load command (%1) | 0xCA2D8078L
MSCOP_E_URLCmdsCmdBulkDataInitializationFailed | BULK INSERT statement failed to initialize load data (%1) | 0xCA2D8079L
MSCOP_E_URLCmdsCmdBulkDataFormatFileFailure | Failed processing the data format file: %1 | 0xCA2D807AL
MSCOP_E_URLCmdsCmdBulkDataFormat0Columns | Error: Zero number of columns in format file, format file: %1 | 0xCA2D807BL
MSCOP_E_URLCmdsCmdBulkImportFailed | Failed importing the data file: % | 0xCA2D807CL
MSCOP_E_URLCmdsCmdBulkDataFileInitFailed | Failed initializing the data file: %1 | 0xCA2D807DL
MSCOP_E_URLCmdsCmdFactNamesDeleteHelperCreateFailed | Creating a delete helper row for FactNames command (%1) | 0xCA2D807EL
MSCOP_E_URLCmdsCmdDimensionNamesDeleteHelperCreateFailed | Creating a delete helper row for DimensionNames command (%1) | 0xCA2D807FL
MSCOP_E_URLCmdsCmdRelationNamesDeleteHelperCreateFailed | Creating a delete helper row for RelationNames command (%1) | 0xCA2D8080L
MSCOP_E_URLCmdsCmdClassNamesDeleteHelperCreateFailed | Creating a delete helper row for ClassNames command (%1) | 0xCA2D8081L
MSCOP_E_URLCmdsCmdDeleteAllBadWITHClause | Malformed WITH clause for DeleteAll. | 0xCA2D8082L
MSCOP_E_URLCmdsCmdDeleteAllBad | Malformed command DeleteAll. | 0xCA2D8083L
MSCOP_E_URLCmdsCmdDeleteAllGUIDCreationFailed | DeleteAll operation failed to create an instance of a new guid (%1) | 0xCA2D8084L
MSCOP_E_URLCmdsCmdDeleteAllFailure | Problem executing DeleteAll. hr = %1 | 0xCA2D8085L
MSCOP_E_URLCmdsCmdDelDateClsNamesDeleteHelperCreateFailed | Creating a delete helper row for DelDateClsNames (%1) | 0xCA2D8086L
MSCOP_E_URLCmdsCmdExpandClassNameInvalidClass | 'ExpandClassName <ClassName> <Number of Levels>' command invalid class name | 0xCA2D8087L
MSCOP_E_URLCmdsCmdExpandClassNameInvalidLevels | 'ExpandClassName <ClassName> <Number of Levels>' command invalid number of levels | 0xCA2D8088L
MSCOP_E_URLCmdsCmdExpandClassNamesDeleteHelperCreateFailed | Creating a delete helper row for ExpandClassNames (%1) | 0xCA2D8089L
MSCOP_E_JoinKeyInUpdateSetClause | Cannot update a member that's designated a JoinKey (Member: '%1', URL: '%2'). | 0xCA2D808AL
MSCOP_E_SchemaChangeModeEnabled | OutputBase = 16 The command '%1' requires Schema Change Mode to be disabled. | 0xCA2D808BL
MSCOP_E_CommitFail | Cannot commit non-schema change session. | 0xCA2D808CL
MSCOP_E_URLCmdsParseSimplExprInvalidMemberType | An invalid member type was encountered in the expression. Expressions with longtext, binary and image types are not supported. | 0xCA2D808DL


OLE DB Property Utility Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CPropUtilGetPropertyTypeMismatchLONG | CPropUtil::GetPropertyLONG(), Type Mismatch | 0xCA218001L
MSCOP_E_CPropUtilGetPropertyTypeMismatchBOOL | CPropUtil::GetPropertyBOOL(), Type Mismatch | 0xCA218002L
MSCOP_E_CPropUtilGetPropertyTypeMismatchWSTR | CPropUtil::GetPropertyWSTR(), Type Mismatch | 0xCA218003L
MSCOP_E_CPropUtilPropertySetNotFound | CPropUtil::SetBoolProp(), Could not find property set %1 | 0xCA218004L
MSCOP_E_CPropUtilSetBoolPropertyTypeMismatch | CPropUtil::SetBoolProp(), Type mismatch - %1 (Expecting %2) | 0xCA218005L
MSCOP_E_CPropUtilPropertyStingsNotInitialized | Could not initialize the property strings for %1 | 0xCA218006L
MSCOP_E_CPropUtilInternalPropertyNotFound | Could not find internal property %1 (Propset %2) | 0xCA218007L
MSCOP_E_CPropUtilNonCopyPropertyCloning | Cloning array properties in non-copy | 0xCA218008L
MSCOP_E_CPropUtilEmptyPropertyDescriptionString | Description string for Property ID %1 is empty | 0xCA218009L
MSCOP_E_CPropUtilSetPropertyFailure | Trying to set property ID %1 (%2, vt=%3, uservt=%4, opts=%5, useropt=%6), for property set %7 (Type=%8) | 0xCA21800AL
MSCOP_E_CPropUtilLoadMeasageDLLFailure | Could not load the message DLL %1 (%2) | 0xCA21800BL

Messages for AggContainer

Message ID | Message Text | HResult
MSCOP_E_AggContainerWrongTypeForExpressionMember | Wrong type for expression member: %1 | 0xCA048001L
MSCOP_E_AggContainerErrorCreatingNewpUriData | Error creating new pUriData status=%1 | 0xCA048002L
MSCOP_E_AggContainerParseLevelDirsFailure | ParseLevelDirs() failure status=%1 | 0xCA048003L
MSCOP_E_AggContainerUpdateMeasureFailure | Failed updating measure: %1 | 0xCA048004L

Messages for CtlgAggResolve

Message ID | Message Text | HResult
MSCOP_E_AggResolveMemberNotDimension | This memeber is not a dimension member. | 0xCA378005L
MSCOP_E_AggResolveMemberNotMeasure | This memeber is not a measure member. | 0xCA378006L
MSCOP_E_AggResolveInvalidBaseClass | Invalid base class for aggregation class: %1 | 0xCA378007L
MSCOP_E_AggResolveMemberAggregationFailed | Failed resolving the member aggregations for aggregation class: %1 | 0xCA378008L
MSCOP_E_AggResolveMemberWithoutExpression | Member: %1 in Class: %2 does not have an expression | 0xCA378009L
MSCOP_E_AggResolveMissingSwitchType | Missing switch type symbol: %1 | 0xCA37800AL
MSCOP_E_AggResolveUnknownSelectorForDatePart | Unknown selector for DatePart: %1 | 0xCA37800BL
MSCOP_E_AggResolveUnknownSelectorForURIPart | Unknown selector for UriPart: %1 | 0xCA37800CL
MSCOP_E_AggResolveUnknownMember | Unknown member name: %1 | 0xCA37800DL


OLE DB Resolve Partitions Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ResolvePartitionsSwitchExpressionResolveFailed | ResolvePartitions(), Failed resolving the partition switch expression: %1 for class: %2 | 0xCA378019L
MSCOP_E_ResolvePartitionsPartitionDefResolveFailed | Failed resolving the partition definition: %1 | 0xCA37801AL
MSCOP_E_ResolvePartitionsClassLookupFailed | Error: PartitionDef lookup error while processing Class name: %1. Partition name: %2, SCODE: %3 | 0xCA37801BL
MSCOP_E_ResolvePartitionsAddToClsDefFailed | Error adding Partition: %1 to ClsDef: %2 | 0xCA37801CL
MSCOP_E_ResolvePartitionsMissingSwitchType | Missing switch type symbol: %1 | 0xCA37801DL
MSCOP_E_ResolvePartitionsMissingSelectorForDatePart | Missing selector for DatePart: %1 | 0xCA37801EL
MSCOP_E_ResolvePartitionsUnknownSelectorForDatePart | Unknown selector for DatePart: %1 | 0xCA37801FL
MSCOP_E_ResolvePartitionsMissingMemberForDatePart | Missing member name for DatePart: %1 | 0xCA378020L
MSCOP_E_ResolvePartitionsUnknownMemberForDatePart | Unknown member name for DatePart: %1 | 0xCA378021L
MSCOP_E_ResolvePartitionsUnknownSwitchTypeSymbol | Unknown switch type symbol: %1 | 0xCA378022L


OLE DB Catalog Error Messages

This section contains:

  • OLE DB Catalog Handler Error Messages
  • OLE DB Catalog Resolve Error Messages
  • OLE DB Catalog Resolve To Error Messages
  • OLE DB Catalog Dump Error Messages
  • OLE DB Catalog Filter Resolve Error Messages
  • MbCatalog.cpp Error Messages for the OLE DB
  • Mbictlgchg.cpp Error Messages for the OLE DB
  • CtlgObj.cpp Errors for the OLE DB
  • CtlgObjAccess.cpp Error Messages for the OLE DB
  • CtlgObjClsKeyDef.cpp Error Messages for the OLE DB
  • CtlgObjClsDef.cpp Error Messages for the OLE DB
  • CtlgObjMemDef.cpp Error Messages for the OLE DB
  • CtlgObjRelDef.cpp Error Messages for the OLE DB
  • CtlgObjTbl.cpp Error Messages for the OLE DB
  • OLE DB Catalog Validation Error Messages
  • CtlgPersist.cpp Error Message for the OLE DB


OLE DB Catalog Handler Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CtlgHandlerUnknownMember | CtlgClsHandler::OnCreate(), ignoring unknown member in parser class def, cls: %1 %2, mem: %3 | 0xCA378015L
MSCOP_E_CtlgHandlerGetMemInfoByColNameError | CtlgClsHandler::OnCreate(), error from GetMemInfoByColName(), hr: %1, cls: %2 %3, mem: %4 | 0xCA378016L
MSCOP_E_CtlgHandlerMismatch | CtlgClsHandler::OnInst(), handler info mismatch parser class def, cls:%1, line#: %2 | 0xCA378017L
MSCOP_E_CtlgHandlerErrorGettingSettingValues | CtlgClsHandler::OnInst(), error in getting/setting values, cls:%1, line#, mem: %2 | 0xCA378018L


OLE DB Catalog Resolve Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ResolveBuffersEOM | Not enough memory to allocate buffers during Catalog Resolve | 0xCA378023L
MSCOP_E_ResolveFailure | Error: failure in catalog resolve, hr: %l1 | 0xCA378024L
MSCOP_E_ResolveNoParentKeyDefinition | Parent key definition, %1, does not exist in attempted auto-generated relation definition, %2, SCODE: %3 | 0xCA378025L
MSCOP_E_ResolveCreateRelDefForChildFailed | Error: Create RelDef instance for Child Class failed during SynthesizeRelDef. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA378026L
MSCOP_E_SynthesizeDefaultRelDefNoKey | Error: No default key in SynthesizeRelDef. Parent class name: %1, Child class name: %2 | 0xCA378027L
MSCOP_E_ResolveCreateDefaultViewFailed | Error: Failed creating default View for Class: %1, SCODE: %2 | 0xCA378028L
MSCOP_E_ResolveDBTableColIndexMapArrayOOM | Not enough memory to allocate a DB table column index mapping array for class %1 | 0xCA378029L
MSCOP_E_ResolveCreateColumnIndexInfoFailed | Failure in CMbCatalog::CreateColumnIndexInfo(), hr: %1, class: %2 | 0xCA37802AL
MSCOP_E_ResolvePartitionDefLookupFailure | Error: PartitionDef lookup error while processing Class name: %1. Partition name: %2, SCODE: %3 | 0xCA37802BL
MSCOP_E_ResolveCorruptRelDefMapByName | Corrupt RelDefMapByName structure found during Catalog Resolve. SCODE: %1 | 0xCA37802CL
MSCOP_E_ResolveTSlotArrayEOM | Not enough memory to allocate TSlotArray during Catalog Resolve. | 0xCA37802DL
MSCOP_E_ResolveDetermineParentClassesFailed | Failure in Catalog::Resolve. DetermineParentClasses failed with error, hr: %1 | 0xCA37802EL
MSCOP_E_ResolveNoKeyMems | Error: No KeyMems defined in Key: %1 | 0xCA37802FL
MSCOP_E_ResolveCreateRelMatrixFailed | Error: Failure in Catalog::CreateRelMatrix, hr = %1, class: %2 | 0xCA378030L
MSCOP_E_ResolveGenerateLinkInfoFailed | GenerateLinkInfo failed for Class: %1, Member: %2, SCODE: %3 | 0xCA378031L
MSCOP_E_ResolveGenerateValInfoFailed | GenerateValInfo failed for Class: %1, Member: %2, SCODE: %3 | 0xCA378032L
MSCOP_E_ResolveValTableLookupFailure | Error: Value Table lookup error while processing multi value Member. Member name: %1, Class name: %2, Value Table name: %3, SCODE: %4 | 0xCA378033L
MSCOP_E_ResolveMVSPGenerationFailed | Error: generation of Multi SP names failed, Member name: %1, Class name: %2, hr: %3 | 0xCA378034L
MSCOP_E_ResolveResolveFullMemNamesFailed | Error: Failed creating ResolveFullMemNames, class: %1, SCODE: %2 | 0xCA378035L
MSCOP_E_ResolveResolveRefMemsFailed | Error: Failed creating ResolveRefMems, class: %1, SCODE: %2 | 0xCA378036L
MSCOP_E_ResolveParentMemColToChildMemMapFailed | Error: Failed creating parent mem col to child mem map: %1, err: %2 | 0xCA378037L
MSCOP_E_ResolveChildMemColToChildMemMapFailed | Error: Failed creating child mem col to child mem map: %1, err: %2 | 0xCA378038L
MSCOP_E_ResolveBuildRelDefsByClassIDMapFailed | BuildRelDefsByClassIDMap(), Too many nested calls | 0xCA378039L
MSCOP_E_ResolveRelDefListsOOM | Not enough memory to allocate RelDefLists by Local ClassID Map | 0xCA37803AL


OLE DB Catalog Resolve To Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ResolveCircularReferences | Circular references found in Classes for Catalog: %1 | 0xCA37803BL
MSCOP_E_ResolveParentClassRecursionError | Error in Parent Class recursion for Class: %1 | 0xCA37803CL
MSCOP_E_ResolveCreateParentCreationInfoInvalidChildClassCount | Error: Invalid number of child classes in CreateParentCreationInfo::Create, class: %1 | 0xCA37803DL
MSCOP_E_ResolveCollectParentCreationInfoInvalidRelMatrix | CollectParentCreationInfo(), invalid rel matrix entry, parent: %1, child: %2 | 0xCA37803EL
MSCOP_E_ResolvePersistentMemberPairArrayOOM | Not enough memory to allocate Persistent MemberPairArray during Catalog Resolve. | 0xCA37803FL


OLE DB Catalog Dump Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CtlgDumpErrorsFound | %1 Errors found during validation/resolve. Dump skipped. | 0xCA37800EL


OLE DB Catalog Filter Resolve Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CtlgFilterMissingSwitchType | Missing switch type symbol: %1 | 0xCA37800FL
MSCOP_E_CtlgFilterUnknownSelectorForDatePart | Unknown selector for DatePart: %1 | 0xCA378010L
MSCOP_E_CtlgFilterUnknownSelectorForURIPart | Unknown selector for UriPart: %1 | 0xCA378011L
MSCOP_E_CtlgFilterUnknownMemberInBaseClass | Unknown member name in Base class: %1 | 0xCA378012L
MSCOP_E_CtlgFilterUnknownMember | Unknown member name: %1 | 0xCA378013L
MSCOP_E_CtlgFilterTypeMismatch | Filter type mismatch for: %1 | 0xCA378014L


MbCatalog.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CatalogInitTypeDefsCreateInstanceFailed | InitTypeDefs(), failed to create instance, type name: %1 | 0xCA340001L
MSCOP_E_CatalogInitTypeDefsCastFailed | InitTypeDefs(), failed to cast instance, type name: %1 | 0xCA340002L
MSCOP_E_CatalogInvalidStringListInDestructor | Invalid Strings list found in Catalog destructor. Catalog name: %1, SCODE: %2 | 0xCA340003L
MSCOP_E_CatalogInvalidObjectListInDestructor | Invalid Objects list found in Catalog destructor. Catalog name: %1, SCODE: %2 | 0xCA340004L
MSCOP_E_CatalogAddObjectToGlobalListFailed | Failed adding new object to Global list. Object ID: %1, SCODE: %2 | 0xCA340005L
MSCOP_E_CatalogInvalidSaveObjectList | Invalid Save Objects list found during save. Catalog name:%1 SCODE: %2 | 0xCA340006L
MSCOP_E_CatalogGetClsInfoFailed | Failed to get ClsInfo for object: %1. Catalog name: %2, SCODE: %3 | 0xCA340007L
MSCOP_E_CatalogUnableToGetTableNameForClass | Unable to get Table name for Class. Display name: %1, ClsID: %2, SCODE: %3 | 0xCA340008L
MSCOP_E_CatalogCreateTableStatementCreationFailed | Failed to create 'Table Create' statement for Catalog. Catalog name : %1, SCODE: %2 | 0xCA340009L
MSCOP_E_CatalogCreateTableStatementFailed | Create statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA34000AL
MSCOP_E_CatalogAddClsInfoIDToArrayFailed | Adding ClsInfoID to array failed during save. Catalog name:%1 SCODE: %2 | 0xCA34000BL
MSCOP_E_CatalogInsertStatementCreationFailed | Failed to create Insert statement for Catalog. Catalog name: %1, Table: %2, SCODE: %3 | 0xCA34000CL
MSCOP_E_CatalogUpdateStatementCreationFailed | Failed to create Update statement for Catalog. Catalog name: %1, Table: %2, SCODE: %3 | 0xCA34000DL
MSCOP_E_CatalogInsertUpdateStatementFailed | Insert/Update statement failed for Catalog. Catalog name: %1, Table name: %2, SCODE: %3 | 0xCA34000EL
MSCOP_E_CatalogNotSaved | Catalog not saved due to errors in loading, err count: %1 | 0xCA34000FL
MSCOP_E_CatalogSQLBufferOOM | Not enough memory to allocate buffer for SQL statements. Catalog: %1 | 0xCA340010L
MSCOP_E_CatalogSaveHStmtCreationFailed | Unable to create HStmt for Save. Connection string %1, Catalog name: %2, SCODE: %3 | 0xCA340011L
MSCOP_E_CatalogSaveBeginTransactionFailed | Begin Transaction failed for Save. Connection string %1, Catalog name: %2, SCODE: %3 | 0xCA340012L
MSCOP_E_CatalogSaveIncrementalChangeFailed | Error applying incremental Catalog change. Doing rollback SCODE: %1 | 0xCA340013L
MSCOP_E_CatalogSaveRollbackFailed | Rollback Transaction failed for Save. SCODE: %1 | 0xCA340014L
MSCOP_E_CatalogCreateTablesFailed | Error: CreateTables returned: %1 | 0xCA340015L
MSCOP_E_CatalogIDManagerInitializationFailed | Error: failure in initializing id mgr in resolve -- error code: %1 | 0xCA340016L
MSCOP_E_CatalogCommitTransactionFailed | Commit Transaction failed for Save. SCODE: %1 | 0xCA340017L
MSCOP_E_CatalogRollbackTransactionFailed | Rollback Transaction failed for Save. SCODE: %1 | 0xCA340018L
MSCOP_E_CatalogRemoveAllSaveObjectsFailed | Failed to remove all objects from save list. SCODE: %1 | 0xCA340019L
MSCOP_E_CatalogRemoveAllChangeObjectsFailed | Failed to remove all objects from change list. SCODE: %1 | 0xCA34001AL
MSCOP_E_CatalogInvalidHStmtInLoad | Invalid HStmt passed to Load. SCODE: %1 | 0xCA34001BL
MSCOP_E_CatalogGetClsInfoForCatalogFailed | Failed to get ClsInfo for Catalog. Catalog name: %1, ClsID: %2, SCODE: %3 | 0xCA34001CL
MSCOP_E_CatalogUnableToGetTableNameForClsID | Unable to get Table name for Class. ClsID: %1, SCODE: %2 | 0xCA34001DL
MSCOP_E_CatalogCreateSelectStatementFailed | Failed to create 'SELECT FROM TABLE' statement for Catalog. Catalog name: %1, Table: %2, SCODE: %3 | 0xCA34001EL
MSCOP_E_CatalogGetBCInfosFailed | Failed to get BCInfos for Catalog. Catalog name: %1, SCODE: %2 | 0xCA34001FL
MSCOP_E_CatalogExecSelectStatementFailed | 'Select' statement failed for Catalog. Catalog name: %1, Table name: %2, SCODE: %3 | 0xCA340020L
MSCOP_E_CatalogExecSelectStatementFailedDetail | Command: %s | 0xCA340021L
MSCOP_E_CatalogBindFailed | Bind failed for Catalog. Catalog name: %1, SCODE: %2 | 0xCA340022L
MSCOP_E_CatalogFetchFailed | Fetch failed for Catalog Object. Catalog name: %1, Table name: %2, SCODE: %3 | 0xCA340023L
MSCOP_E_CatalogCreateInstanceFailed | CreateInstance failed. Catalog name: %1, ClsID:%2, SCODE: %3 | 0xCA340024L
MSCOP_E_CatalogPopulateInstanceFailed | PopulateObject failed for Catalog. Catalog name: %1, SCODE: %2 | 0xCA340025L
MSCOP_E_CatalogUnableToDeleteObjectFromMap | Unable to remove an object marked for Delete from _allObjectsMapByPtr map. Object Display name: %1, ID: %2, SCODE: %3 | 0xCA340026L
MSCOP_E_CatalogUnableToAddObjectToDeleteMap | Unable to add object marked for Delete to _deleteObjectsByMapID map. Object Display name: %1, ID: %2, SCODE: %3 | 0xCA340027L
MSCOP_E_CatalogUnableToAddObjectToClassDeleteMap | Unable to add object marked for Delete to _classesWithDeletesMapByTblDefPtr map. Object Display name: %1, ID: %2, SCODE: %3 | 0xCA340028L
MSCOP_E_CatalogInvalidObjectMarkedForDelete | Invalid object marked for delete. Class ID: %1, Display name: %2 | 0xCA340029L
MSCOP_E_CatalogValidateObjectFailed | ValidateObject failed for Catalog. Catalog name: %1, Class Name: %2, Name: %3, SCODE: %4 | 0xCA34002AL
MSCOP_E_CatalogSQLBufferInitializationFailed | SQL statement buffer initialization failed. SCODE: %1 | 0xCA34002BL
MSCOP_E_CatalogCreateHStmtFailed | Unable to create HStmt for Load. Connection string %1, Catalog name: %2, SCODE: %3 | 0xCA34002CL
MSCOP_E_CatalogHStmtInitializationFailed | Failure initializing HStmt in Catalog::Load. SCODE: %1 | 0xCA34002DL
MSCOP_E_CatalogIDMgrInitializationFailed | Failure initializing ID Manager in Catalog Load. SCODE: %1 | 0xCA34002EL
MSCOP_E_CatalogInvalidObject | Invalid Objects list found in Catalog load. Catalog name: %1, SCODE: %2 | 0xCA34002FL
MSCOP_E_CatalogFastloadCatalog | Error: Catalog initialized in Fastload mode is not supported in non-Fastload mode | 0xCA340030L
MSCOP_I_CatalogLoadStart | Start loading catalog, time: %1, catalog name: %2 | 0x4A350001L
MSCOP_I_CatalogLoadEnd | End loading catalog, time: %1, catalog name: %2, hr: %3 | 0x4A350002L


Mbictlgchg.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CatalogChangeCantAddIdentityMember | Cannot add Identity Member existing class. Class name: %1, Member name: %2 | 0xCA340031L
MSCOP_E_CatalogChangeIncrementalChangeError | Error executing incremental Catalog change. SCODE: %1, Command: %2 | 0xCA340032L
MSCOP_E_CatalogChangeIncrementalChangeClearResultsError | Error clearing results for incremental Catalog change. SCODE: %1, Command: %2 | 0xCA340033L
MSCOP_E_CatalogChangeSchemaManagerObjectInitializationFailure | Initialization of Schema Manager object failed for incremental Catalog change processing. SCODE: %1 | 0xCA340034L
MSCOP_E_CatalogChangeDeletePartitionFailed | Error deleting parition %1 | 0xCA340035L
MSCOP_E_CatalogChangeInvalidSQLDeleteObjects | Invalid SQL Delete Objects list found during save. Catalog name:%1 SCODE: %2 | 0xCA340036L
MSCOP_E_CatalogChangeVersionNumberUpdateFailed | Failed adjusting Version numbers on Schema Objects. SCODE: %1 | 0xCA340037L
MSCOP_E_CatalogChangeDeleteObjectFailed | Error deleting object: %1, SCODE: %2 | 0xCA340038L
MSCOP_E_CatalogChangeInvalidChangeObjects | Invalid Change Objects list found during save. Catalog name:%1 SCODE: %2 | 0xCA340039L
MSCOP_E_CatalogChangeProcessChangeListNULLClsDef | NULL ClsDef pointer found in CMbCatalog::ProcessChangeList processing Member: %1 | 0xCA34003AL
MSCOP_E_CatalogChangeGetClsInfoFailed | Failed to get ClsInfo for object: %1. Catalog name: %2, SCODE: %3 | 0xCA34003BL
MSCOP_E_CatalogChangeProcessChangeListNULLCCtlgObj | NULL CCtlgObj pointer found in CMbCatalog::ProcessChangeList | 0xCA34003CL
MSCOP_E_CatalogChangeAddClsDefToSaveListFailed | Unable to add ClsDef to save list while processing incremental Catalog, SCODE: %1 | 0xCA34003DL
MSCOP_E_CatalogChangeAdjustVersionNumberNULLRelDef | NULL RelDef pointer found in CMbCatalog::AdjustVersionNumbers processing Class: %1 | 0xCA34003EL
MSCOP_E_CatalogChangeAdjustVersionNumberNULLChildClsDef | Null Child ClsDef pointer found in CMbCatalog::AdjustVersionNumbers. Parent Class: %1 | 0xCA34003FL
MSCOP_E_CatalogChangeLegacyTableNotFound | Error: Legacy table for Class does not exist. Class name: %1, Table name: %2, SCODE: %3 | 0xCA340040L
MSCOP_E_CatalogChangeCreateTableNULLLinkTblInfo | NULL LinkTblInfo in CMbCatalog::CreateTable for Member name: %1 | 0xCA340041L


CtlgObj.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_OOMInCopyBStrs | CopyBStrs, out of memory error in creating SAFEARRAY | 0xCA348001L
MSCOP_E_CopyToColCreateSafeArrayFailed | CopyToCol(), Error creating safe array(%1) | 0xCA348002L
MSCOP_W_GetCustomDataMoreThan1024Members | CDeleteHelper2Col::GetCustomData, Warning: Number of Members exceeds 1024 for Class: %1 | 0x8A348003L
MSCOP_W_GetCustomDataMoreThan1024Classes | CDeleteHelper2Col::GetCustomData, Warning: Number of classes exceeds 1024. | 0x8A348004L
MSCOP_E_GetCustomDataColumnTypeMismatch | CDeleteHelper1Col::GetCustomData, Column Type doesn't match column type (DBTYPE=%1, Expecting DBTYPE_VARIANT) | 0xCA348005L


CtlgObjAccess.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_StaticMemInfoFillBCInfoMemberNotPersistent | StaticMemInfo::FillBCInfo(), Member not persistent - colname: %1 | 0xCA348006L
MSCOP_E_StaticClsInfoInitZeroMembers | Error: StaticClsInfo::Init(), zero mem count, cls: %1 | 0xCA348007L
MSCOP_W_StaticClsInfoInitZeroPersistentMembers | Warning: StaticClsInfo::Init(), zero persistent mem count, cls: %1 | 0x8A348008L
MSCOP_E_StaticClsInfoInitMaxIndexExceeded | Error: StaticClsInfo::Init(), Member index exceeds max Member index, Class: %1, memIdx: %2 | 0xCA348009L
MSCOP_E_StaticClsInfoInitDuplicateMemIndex | Error: StaticClsInfo::Init(), Duplicate Member Index, Class: %1, memIdx: %2 | 0xCA34800AL
MSCOP_E_StaticClsInfoInitNULLCustomGetSetFunc | Error: StaticClsInfo::Init(), fCustomGetSet is NULL when fUseCustom, idx: %1, c++ name: %2::%3 | 0xCA34800BL
MSCOP_E_StaticClsInfoInitNULLGetSetFunc | Error: StaticClsInfo::Init(), _fnGetSet is NULL when !fUseCustom, idx: %1, c++ name: %2::%3 | 0xCA34800CL
MSCOP_E_StaticClsInfoInitPersistentMemberCountMismatch | Error: StaticClsInfo::Init(), inconsistent persistent count, cls: %1, persist Idx: %2, count: %3 | 0xCA34800DL
MSCOP_E_StaticClsInfoInitColInfoInitMemMaxExceeded | Error: StaticClsInfo::Init(), mem idx exceeds max mem idx in col info init, cls: %1, col name: %2, memIdx: %3 | 0xCA34800EL
MSCOP_E_StaticClsInfoInitColNameWithNoMember | Error: StaticClsInfo::Init(), col name with no member, cls: %1, col name: %2, memIdx: %3 | 0xCA34800FL
MSCOP_E_StaticClsInfoInitPersistentMemWithNoCol | Error: StaticClsInfo::Init(), persistent mem with no col name, c++ name= %1::%2, memIdx: %3 | 0xCA348010L
MSCOP_E_StaticClsTransferStringDataOOM | Error: ::TransferStringData(), out of memory in allocating String Buffer's for cls: %1 count: %2 | 0xCA348011L
MSCOP_E_StaticClsGetColumnInfoOOM | Error: StaticClsInfo::GetColumnInfo(), out of memory in allocating DBCOLINFO's for cls: %1 count: %2 | 0xCA348012L
MSCOP_E_StaticClsGetColumnInfoFillDBCOLUMNINFOFailed | Error: StaticClsInfo::GetColumnInfo(), Filling col: %1 cls: %2 countmax: %3 cur count: %4 | 0xCA348013L
MSCOP_E_StaticClsGetBCInfoOOM | Error: StaticClsInfo::GetBCInfo(), out of memory in allocating BCInfos count: %1 | 0xCA348014L
MSCOP_E_StaticClsGetDBTypeNameInvalidDBTypeID | Error: StaticClsInfo::GetDBTypeName(), invalid DBType id: %1 | 0xCA348015L
MSCOP_E_StaticClsGetCreateSizeAndOtherInfoInvalidDBTypeID | Error: StaticClsInfo::GetCreateSizeAndOtherInfo(), DBType: %1 | 0xCA348016L
MSCOP_E_StaticClsAddCreateMemberStmtAddStrFailed | Error: StaticClsInfo::AddCreateMemberStmt(), Adding prefix/colname : preflen : %1, collen : %2 | 0xCA348017L
MSCOP_E_StaticClsCreateTblCreateStmtAddCreateStrFailed | Error: StaticClsInfo::CreateTblCreateStmt(), Adding initial Create | 0xCA348018L
MSCOP_E_StaticClsCreateTblCreateStmtAddMemberStrFailed | Error: StaticClsInfo::CreateTblCreateStmt(), Adding Member : %1, datatype : %2 | 0xCA348019L
MSCOP_E_StaticClsGetParserTypeNameInvalidDBType | Error: StaticClsInfo::GetParserTypeName(), DBType: %1 | 0xCA34801AL
MSCOP_E_StaticClsCreateParseClsStmtGetViewableClsNameFailed | Error: StaticClsInfo::CreateParseClsStmt(), Getting viewable clsname | 0xCA34801BL
MSCOP_E_StaticClsCreateParseClsStmtAddClsDefStrFailed | Error: StaticClsInfo::CreateParseClsStmt(), Adding ClsDef | 0xCA34801CL
MSCOP_E_StaticClsCreateParseClsStmtGetParserTypeNameForDBTypeFailed | Error: StaticClsInfo::CreateParseClsStmt(), getting parser type name for dbtype : %1, col : %2 | 0xCA34801DL
MSCOP_E_StaticClsCreateParseClsStmtAddMemberStrFailed | Error: StaticClsInfo::CreateParseClsStmt(), Adding member: %1, type: %2 | 0xCA34801EL
MSCOP_E_StaticClsCreateParseClsStmtAddEOClsDefStrFailed | Error: StaticClsInfo::CreateParseClsStmt(), Adding end of ClsDef | 0xCA34801FL
MSCOP_E_StaticClsCreateSelectStmtAddColStrFailed | Error: StaticClsInfo::CreateSelectStmt(), Adding colname : %1, maxbuflen: %2, used: %3 | 0xCA348020L
MSCOP_E_StaticClsCreateSelectStmtAddWHEREStrFailed | Error: StaticClsInfo::CreateSelectStmt(), adding WHERE to buf fmt failed: %1 | 0xCA348021L
MSCOP_E_StaticClsAddUniqueIdentifierInvalidStaticClsInfoType | Error: StaticClsInfo::AddUniqueIdentifier(), unexpected StaticClsInfo type %1 | 0xCA348022L
MSCOP_E_StaticClsAddUniqueIdentifierAddStrFailed | Error: StaticClsInfo::AddUniqueIdentifier(), maxbuflen: %1, used: %2 | 0xCA348023L
MSCOP_E_StaticClsWriteLocalizationTagsFetchColFailed | Error: StaticClsInfo::WriteLocalizationTags(), Fetching col : %1, DBType: %2, Offset: %3 | 0xCA348024L
MSCOP_E_StaticClsWriteLocalizationAddColStrFailed | Error: StaticClsInfo::WriteLocalizationTags(), Adding colname : %1, maxbuflen: %2, used: %3 | 0xCA348025L
MSCOP_E_StaticClsCreateInsertStmtWriteLocalizationFailed | Error: StaticClsInfo::CreateInsertStmt() WriteLocalizationTags failed, hr: %1 | 0xCA348026L
MSCOP_E_StaticClsCreateInsertStmtAddInsertStrFailed | Error: StaticClsInfo::CreateInsertStmt(), Adding initial insert | 0xCA348027L
MSCOP_E_StaticClsCreateInsertStmtAddTblNameStrFailed | Error: StaticClsInfo::CreateInsertStmt(), Adding table name: %1 | 0xCA348028L
MSCOP_E_StaticClsCreateInsertStmtAddColNameStrFailed | Error: StaticClsInfo::CreateInsertStmt(), Adding colname : %1, maxbuflen: %2, used: %3 | 0xCA348029L
MSCOP_E_StaticClsCreateInsertStmtAddValuesTextStrFailed | Error: StaticClsInfo::CreateInsertStmt(), Adding static text: ) VALUES( SCODE: %1 | 0xCA34802AL
MSCOP_E_StaticClsCreateInsertStmtFetchColFailed | Error: StaticClsInfo::CreateInsertStmt(), Fetching col : %1, DBType: %2, Offset: %3 | 0xCA34802BL
MSCOP_E_StaticClsCreateInsertStmtAddingColFailed | Error: StaticClsInfo::CreateInsertStmt(), Adding col : %1, DBType: %2, Offset: %3 | 0xCA34802CL
MSCOP_E_StaticClsCreateDeleteStmtAddTableStrFailed | Error: StaticClsInfo::CreateDeleteStmt(), Adding initial delete table name: %1 | 0xCA34802DL
MSCOP_E_StaticClsCreateDeleteStmtAddWHEREStrFailed | Error: StaticClsInfo::CreateUpdateStmt(), Adding WHERE : %1, DBType: %2, Offset: %3 | 0xCA34802EL
MSCOP_E_StaticClsCreateXMLStmtAddVisibleNameStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding initial visible name | 0xCA34802FL
MSCOP_E_StaticClsCreateXMLStmtAddInitialUpdateStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding initial update | 0xCA348030L
MSCOP_E_StaticClsCreateXMLStmtAddColNameStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding colname : %1, maxbuflen: %2, used: %3 | 0xCA348031L
MSCOP_E_StaticClsCreateXMLStmtFetchingColFailed | Error: StaticClsInfo::CreateXMLStmt(), Fetching col : %1, DBType: %2, Offset: %3 | 0xCA348032L
MSCOP_E_StaticClsCreateXMLStmtAddColValueStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding colVAL : %1, DBType: %2, Offset: %3 | 0xCA348033L
MSCOP_E_StaticClsCreateXMLStmtAddCloseTokenStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding closing > | 0xCA348034L
MSCOP_E_StaticClsCreateXMLStmtAddEndVisibleNameStrFailed | Error: StaticClsInfo::CreateXMLStmt(), Adding end visible name | 0xCA348035L
MSCOP_E_StaticClsCreateDeleteStmtGetTableNameFailed | Error: StaticClsInfo::CreateDeleteStmt() Unable to get Table name for Class. Display name: %1, ClsID: %2, SCODE: %3 | 0xCA348036L
MSCOP_E_StaticClsCreateDeleteStmtAddDELETEStrFailed | Error: StaticClsInfo::CreateDeleteStmt(), Adding initial DELETE failed for table: %1 | 0xCA348037L
MSCOP_E_StaticClsCreateWHEREClauseAddWHEREStrFailed | Error: StaticClsInfo::CreateWHEREClause(), Adding WHERE : %1, DBType: %2, Offset: %3 | 0xCA348038L
MSCOP_E_StaticClsCreateWHEREClauseFetchingColFailed | Error: StaticClsInfo::CreateWHEREClause(), Fetching col : %1, DBType: %2, Offset: %3 | 0xCA348039L
MSCOP_E_StaticClsCreateWHEREClauseNoKeyMembers | Error: StaticClsInfo::CreateWHEREClause(), No members marked as instance keys for | 0xCA34803AL
MSCOP_E_StaticClsCreateUpdateStmtAddUPDATEStrFailed | Error: StaticClsInfo::CreateUpdateStmt(), Adding initial update for table: %1 | 0xCA34803BL
MSCOP_E_StaticClsCreateUpdateStmtAddColNameStrFailed | Error: StaticClsInfo::CreateUpdateStmt(), Adding colname : %1, maxbuflen: %2, used: %3 | 0xCA34803CL
MSCOP_E_StaticClsCreateUpdateStmtFetchingColFailed | Error: StaticClsInfo::CreateUpdateStmt(), Fetching col : %1, DBType: %2, Offset: %3 | 0xCA34803DL
MSCOP_E_StaticClsCreateUpdateStmtAddingColValFailed | Error: StaticClsInfo::CreateUpdateStmt(), Adding colVAL : %1, DBType: %2, Offset: %3 | 0xCA34803EL
MSCOP_E_StaticClsInitOOM | CMbStaticMapper::Init(), out of memory | 0xCA34803FL
MSCOP_E_StaticClsInitMapInitFailed | CMbStaticMapper::Init(), error in initialization of maps, hr: %1 | 0xCA348040L
MSCOP_E_StaticClsInitClassIDOOR | CMbStaticMapper::Init(), class idx exceeds max cls idx, name: %1, idx: %2, max.idx: %3 | 0xCA348041L
MSCOP_E_StaticClsInitDuplicateClassID | CMbStaticMapper::Init(), dup cls info, name: %1, idx: %2 | 0xCA348042L
MSCOP_E_StaticClsInitAddingColNameToMapFailed | Error: CMbStaticMapper::MapColNameToMemInfo(), failed to add col name to map, cls: %1, col: %2 | 0xCA348043L
MSCOP_E_StaticClsInitAddingMemNameToMapFailed | Error: CMbStaticMapper::MapMemNameToMemInfo(), failed to add mem name to map, cls: %1, col: %2 | 0xCA348044L
MSCOP_E_StaticClsGetClsInfoClsIDOOR | Error: CMbStaticMapper::GetClsInfo(), Requested ClsID out of range: clsid: %1, max: %2 | 0xCA348045L


CtlgObjClsKeyDef.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ClsKeyDefNULLRelDef | Error: CMbClsKeyDef::UpdatePKeyMem, NULL RelDef in Reference Key Member: %1. | 0xCA348046L


CtlgObjClsDef.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CMbClsDefAddChildMemDefToParentColToChildMemMapFailed | Failure to add child mem def to _parentColToChildMem, err: %1, child mem: %2::%3 | 0xCA348047L
MSCOP_E_CMbClsDefAddParentMemDefToParentColToChildMemMapFailed | Failure to parent mem def to _parentColToChildMem, err: %1, child mem: %2::%3 | 0xCA348048L
MSCOP_E_CMbClsDefAddParentMemDefToChildMemToParentMemMapFailed | Failure to add parent mem def to _childMemToParentMem, err: %1, child mem: %2::%3 | 0xCA348049L
MSCOP_E_CMbClsDefAddChildMemDefToChildMemToParentMemMapFailed | Failure to add child mem def to _childMemToParentMem, err: %1, child mem: %2::%3 | 0xCA34804AL
MSCOP_E_CMbClsDefResloveFullNameFailed | Error: Failed in ResolveFullName(), mem name: %1, SCODE: %2 | 0xCA34804BL
MSCOP_E_CMbClsDefAddMemDefToFullNameMapFailed | Error: Failed adding MemDef object to full name map, mem name: %1, SCODE: %2 | 0xCA34804CL
MSCOP_E_CMbClsDefChildMemDefLookupInParentColDefMapFailed | Error: Failed to get mem from given col name: cls ids: P:%01-C:%2, col: %3 | 0xCA34804DL
MSCOP_E_CMbClsDefMemDefLookupFailed | Error: Failed to retrieve member definition by name. Class: %1, Member: %2 | 0xCA34804EL
MSCOP_E_CMbClsDefCorruptRelDefsInCopyParentMembers | Error: Corrupt RelDef table found in CopyParentMembers. Class name: %1, SCODE: %2 | 0xCA34804FL
MSCOP_E_CMbClsDefCopyParentMembersFailed | Error: Failed doing CopyParentMembers() in class: %1. SCODE: %2 | 0xCA348050L
MSCOP_E_CMbClsDefFirstLevelMemDefArrayOOM | Not enough memory to allocate First Level Member def array. | 0xCA348051L
MSCOP_E_CMbClsDefMemInfoArrayOOM | Not enough memory to allocate MemberInfoArray during Catalog Resolve. | 0xCA348052L
MSCOP_E_CMbClsDefGroupMemNotFound | Error: Group Member container not found for Member. Member name: %1, Class name: %2, Group name: %3, SCODE: %4 | 0xCA348053L
MSCOP_E_CMbClsDefNoIdentityMember | Class: %1 does not have an Identity Member. | 0xCA348054L
MSCOP_E_CMbClsDefSaveMemberInfoArrayOOM | Not enough memory to allocate SaveMemberInfoArray during Catalog Resolve. | 0xCA348055L
MSCOP_E_CMbClsDefAllMembersByNameArrayOOM | Not enough memory to allocate All Members By Name array. | 0xCA348056L
MSCOP_E_CMbClsDefDefaultViewDefOOM | Not enough memory to allocate Default View Definition. | 0xCA348057L
MSCOP_E_CMbClsDefDefaultViewDefValidationFailed | Error: Validation failed for Default View. View name: %1, Class name: %2, SCODE:%3 | 0xCA348058L
MSCOP_E_CMbClsDefCorruptParentClsDefTblInCreateDefaultView | Error: Corrupt ParentClsDef table found in CreateDefaultView. Class name: %1, SCODE: %2 | 0xCA348059L
MSCOP_E_CMbClsDefAddParentClsDefToViewDefListFailed | Error: Failed adding Parent ClsDef to View Def list. SCODE: %1 | 0xCA34805AL
MSCOP_E_CMbClsDefCorruptRelDefTblInCreateDefaultView | Error: Corrupt RelDef table found in CreateDefaultView. Class name: %1, SCODE: %2 | 0xCA34805BL
MSCOP_E_CMbClsDefAddRelDefToViewDefListFailed | Error: Failed adding RelDef to View Def list. SCODE: %1 | 0xCA34805CL
MSCOP_E_CMbClsDefCorruptMemDefTblInCreateDefaultView | Error: Corrupt MemDef table found in CreateDefaultView. Class name: %1, SCODE: %2 | 0xCA34805DL
MSCOP_E_CMbClsDefCreateViewMemFailed | Error: Failed to create new ViewMem. View name: %1, SCODE: %2 | 0xCA34805EL
MSCOP_E_CMbClsDefViewMemValidationFailed | Error: View Member validation failed. View name: %1, Member name: %2, SCODE: %3 | 0xCA34805FL


CtlgObjMemDef.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CMbMemDefInvalidGroupMember | Error: Invalid Group Member. Class name: %1, Group name: %2, Group Member name: %3 | 0xCA348060L
MSCOP_E_CMbMemDefNULLCatalog | Error: NULL Catalog pointer in GroupMem object. Group Member name: %1 | 0xCA348061L
MSCOP_E_CMbMemDefClsDefLookupFailureInGroupMem | Error: ClsDef lookup error while processing Group Member. Class name: %1, Group name: %2, SCODE: %3 | 0xCA348062L
MSCOP_E_CMbMemDefGroupContainerLookupFailureInGroupMem | Error: Group container lookup error while processing Group Member. Class name: %1, Group name (container): %2, SCODE: %3 | 0xCA348063L
MSCOP_E_CMbMemDefGroupMemberLookupFailureInGroupMem | Error: Group Member lookup error while processing Group Member. Class name: %1, Group name: %2 Member name: %3, SCODE: %4 | 0xCA348064L
MSCOP_E_CMbMemDefAddGroupMemberFailed | Error: Failed adding Member object to Group: Class name: %1, Group name: %2, Member name: %3, SCODE: %4 | 0xCA348065L
MSCOP_E_CMbMemDefMultiValMemberValidationFailed | Error: Unable to set multi-val tbl/col name in member validation, err: %1, Member name: %2 | 0xCA348066L


CtlgObjRelDef.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CMbRelDefCorruptMemDefListInParentClsDef | Error: Corrupt Member list found in Parent Class during Relation processing. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA348067L
MSCOP_E_CMbRelDefCorruptKeyDefListInParentClsDef | Error: Corrupt Key Member list found in Parent Class during Relation processing. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA348068L
MSCOP_E_CMbRelDefCopyParentRefMemFailure | Error: CopyParentRefMem(), ref's rel mem has no mapping in child. Rel: %1, Parent rel: %2, Rel Mem Parent: %3, Rel Mem Child: %4 | 0xCA348069L
MSCOP_E_CMbRelDefRelMemCreationFailure | Error creating RelMem for Relation: %1, Member: %2, SCODE: %3 | 0xCA34806AL
MSCOP_E_CMbRelDefCopyAttributesFailed | Failed copying attributes for Member: %1. SCODE: %2 | 0xCA34806BL
MSCOP_E_CMbRelDefMemAttrCreationFailed | Failed creating instance of Member attribute for Member: %1 | 0xCA34806CL
MSCOP_E_CMbRelDefMemAttrValidationFailed | Validation failed for Member attribute. Member name: %1, Attribute name: %2 | 0xCA34806DL
MSCOP_E_CMbRelDefMemDefCreationFailed | Error: Failed creating new Member instance during Relation processing. Relation name: %1, mem: %2, SCODE: %3. | 0xCA34806EL
MSCOP_E_CMbRelDefRelMemArrayOOM | Not enough memory to allocate Relation Member array in Validate of Child Class Reference Member. Relation name: %1, Reference Member name: %2 | 0xCA34806FL
MSCOP_E_CMbRelDefRelMemValidationFailed | Error: Failed while Validating new Child Class Reference Member. Relation name: %1, Reference Member name: %2, SCODE: %3 | 0xCA348070L
MSCOP_E_CMbRelDefAddRelMemToCatalogListFailed | Error: Failed adding MemDef object to Catalog list: %1, Object name: %2, SCODE: %3 | 0xCA348071L
MSCOP_E_CMbRelDefRelMemAttribTransferFailed | Error transferring member attributes from Member: %1. SCODE:%2 | 0xCA348072L
MSCOP_E_CMbRelDefCreateColDefForRefMemFailed | Error: Create ColDef instance for Child Class Reference Member failed during Relation processing. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA348073L
MSCOP_E_CMbRelDefRefMemValidationFailed | Error: Failed while Validating Child Class Reference Member Definition. Relation name: %1, Parent Class Member name: %2, Child Class Member name: %3, SCODE: %4 | 0xCA348074L
MSCOP_E_CMbRelDefSetRelDefByQWORDFailed | Failed to set RelDef by QWORD during Catalog Resolve. SCODE: %1 | 0xCA348075L


CtlgObjTbl.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
*/MSCOP_E_CMbTblDefCreateColDefFailed | Error: Create ColDef instance for generated col def, col: %1::%2, SCODE: %3 | 0xCA348076L
MSCOP_E_CMbTblDefColDefValidationFailed | Error: Failed while Validating generated col def, tbl: %1, col name: %2, SCODE: %3 | 0xCA348077L


OLE DB Catalog Validation Error Messages

Error Messages

Message ID | Message Text | HResult
*/MSCOP_E_NULLCatalogName | Error: NULL Catalog name. SCODE: %1 | 0xCA3A8001L
MSCOP_E_NULLStringTableName | Error: NULL String Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8002L
MSCOP_E_NULLHistoryTableName | Error: NULL Catalog History Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8003L
MSCOP_E_NULLSourceDefTableName | Error: NULL Source Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8004L
MSCOP_E_NULLTypeDefTableName | Error: NULL Type Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8005L
MSCOP_E_NULLClsDefTableName | Error: NULL Class Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8006L
MSCOP_E_NULLMemDefTableName | Error: NULL Member Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8007L
MSCOP_E_NULLGroupDefTableName | Error: NULL Group Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8008L
MSCOP_E_NULLRelDefTableName | Error: NULL Relation Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8009L
MSCOP_E_NULLRelMemDefTableName | Error: NULL Relation Member Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800AL
MSCOP_E_NULLTblDefTableName | Error: NULL Table Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800BL
MSCOP_E_NULLColDefTableName | Error: NULL Column Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800CL
MSCOP_E_NULLClsKeyDefTableName | Error: NULL Class Key Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800DL
MSCOP_E_NULLKeyMemDefTableName | Error: NULL Key Member Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800EL
MSCOP_E_NULLIndexDefTableName | Error: NULL Index Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A800FL
MSCOP_E_NULLIndexMemDefTableName | Error: NULL Index Member Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8010L
MSCOP_E_NULLPartitionDefTableName | Error: NULL Partition Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8011L
MSCOP_E_NULLPartitionPolicyDefTableName | Error: NULL Partition Policy Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8012L
MSCOP_E_NULLIdentityCounterTableName | Error: NULL Identity Counter Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8013L
MSCOP_E_NULLViewDefTableName | Error: NULL View Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8014L
MSCOP_E_NULLViewMemDefTableName | Error: NULL View Member Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8015L
MSCOP_E_NULLAggDefTableName | Error: NULL Aggregation Definition Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8016L
MSCOP_E_NULLLinkTblInfoTableName | Error: NULL Link Table Info Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8017L
MSCOP_E_NULLValTblInfoTableName | Error: NULL Value Table Info Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8018L
MSCOP_E_NULLClsAttrTableName | Error: NULL Class Attribute Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8019L
MSCOP_E_NULLMemAttrTableName | Error: NULL Member Attribute Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801AL
MSCOP_E_NULLRelAttrTableName | Error: NULL Relation Attribute Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801BL
MSCOP_E_NULLOtherAttrTableName | Error: NULL Other Default Attribute Table name in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801CL
MSCOP_E_NULLSynthRelDefPrefix | Error: NULL Synthesized Relation Definition Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801DL
MSCOP_E_NULLReferencePrefix | Error: NULL Reference Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801EL
MSCOP_E_NULLMemNamePrefix | Error: NULL Member Name Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A801FL
MSCOP_E_NULLColNamePrefix | Error: NULL Column Name Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8020L
MSCOP_E_NULLScopePrefix | Error: NULL Scope Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8021L
MSCOP_E_NULLClsNamePrefix | Error: NULL Class Name Prefix in Catalog object. Catalog name:%1, SCODE: %2 | 0xCA3A8022L
MSCOP_E_InvalidTypeDefObject | Error: Invalid TypeDef object: Type Name: %1 | 0xCA3A8023L
MSCOP_E_NULLCatalogPointerInTypeDefObject | Error: NULL Catalog pointer in TypeDef object. Type name: %1 | 0xCA3A8024L
MSCOP_E_DuplicateTypeName | Error: Type Def with this name already exists in the Catalog map. TypeDef name: %1 | 0xCA3A8025L
MSCOP_E_TypeDefMapAddFailure | Error: Failed adding TypeDef object to Catalog TypeDef map: %1, Object name: %1, SCODE: %2 | 0xCA3A8026L
MSCOP_E_TypeDefMapByIDAddFailure | Error: Failed adding TypeDef object to Catalog TypeDef by ID map: %1, Object name: %2, SCODE: %3 | 0xCA3A8027L
MSCOP_E_TypeDefListAddFailure | Error: Failed adding TypeDef object to Catalog TypeDef list: %1, Object name: %2, SCODE: %3 | 0xCA3A8028L
MSCOP_E_NoIDNoDefaultLink | Error: Default link info generation is not supported for classes with no identity member: %1::%2 | 0xCA3A8029L
MSCOP_E_GeneratedKeyMemValidationFailure | Error: Failed while validating generated Key Mem Def, pos: %1, Key: %2, Member: %3::%4, SCODE: %4 | 0xCA3A802AL
MSCOP_E_CreateInstanceForGeneratedMVClsDefFailure | Error: Create MV ClsDef instance failed for generated Cls Def, Mem: %1::%2, SCODE: %3 | 0xCA3A802BL
MSCOP_E_GeneratedMVClsDefValidationFailure | Error: Failed while validating generated Cls Def, Mem: %1::%2, hr: %3 | 0xCA3A802CL
MSCOP_E_GeneratedMVValMemDefValidationFailure | Error: Failed while validating new MV Value Member. name: %1::%1, SCODE: %3 | 0xCA3A802DL
MSCOP_E_GeneratedMVValMemDefMapAddFailure | Error: Failed adding MemDef object to Catalog _memDefsByClsIDAndMemName list: %1, Object name: %2, SCODE: %3 | 0xCA3A802EL
MSCOP_E_InvalidMemDefObject | Error: Invalid Member object. Member name: %1, Class name: %2, Type name: %3 | 0xCA3A802FL
MSCOP_E_NULLCatalogInMemDefObject | Error: NULL Catalog pointer in MemDef object. Member name: %1 | 0xCA3A8030L
MSCOP_E_InvalidCharsInMemberName | Member name: %1 contains invalid characters | 0xCA3A8031L
MSCOP_E_ClsDefLookupInMemDefValidation | Error: ClsDef lookup error while processing Member name: %1, Class name: %2, SCODE: %3 | 0xCA3A8032L
MSCOP_E_DuplicateMemDefInMemDefValidation | Error: Member Def with this name already exists in the Class. Class name: %1, Member name: %2 | 0xCA3A8033L
MSCOP_E_TypeDefLookupInMemDefValidation | Error: TypeDef lookup error while processing Member name: %1, Class name: %2, Type name: %3, SCODE: %4 | 0xCA3A8034L
MSCOP_E_UserDefinedREFERENCEMember | Error: Invalid type for Member: %1. Only internal objects can be REFERENCE | 0xCA3A8035L
MSCOP_E_SetColumnNameFailure | Error: Unable to set default Column name in Member validation, err: %1, Member name: %2 | 0xCA3A8036L
MSCOP_E_NULLColInfoInMemDefValidation | Error: NULL Column info pointer in MemDef. Member name: %1 | 0xCA3A8037L
MSCOP_E_NULLPartDefInMemDefValidation | Error: NULL Partition Def found in Column lookup while processing Member. Member name: %1, Class name: %2, Column name: %3, SCODE: %4 | 0xCA3A8038L
MSCOP_E_NULLColNameInMemDefValidation | Invalid Member definition object Member name: %1, Class name: %2, Column name is NULL | 0xCA3A8039L
MSCOP_E_NULLGroupInfoInMemDefValidation | Error: NULL Group info pointer in MemDef name: %1 | 0xCA3A803AL
MSCOP_E_ColumnLookupFailureInMemDefValidation | Error: Column lookup error while processing Member. Member name: %1, Class name: %2, Column name: %3, SCODE: %4 | 0xCA3A803BL
MSCOP_E_MultipleIdentityColsInMemDefValidation | Error: Member name %1 has Indentity flag, but Class %2 already has Identity Member - name:%3, SCODE: %4 | 0xCA3A803CL
MSCOP_E_NULLIdentityColInfoInMemDefValidation | Error: NULL Column info pointer in Identity MemDef name: %1, Class name: %2 | 0xCA3A803DL
MSCOP_E_NULLMultiInfoInMemDefValidation | Error: NULL multi value info pointer in MemDef name: %1, Class name: %2 | 0xCA3A803EL
MSCOP_E_FailureAddingToMemDefToClsDefListInMemDefValidation | Error: Failed while adding Member to ClsDef Member list. Member name: %1, Class Name: %2, SCODE: %3 | 0xCA3A803FL
MSCOP_E_FailureAddingToMemDefToMemDefsByClsIDAndMemNameListInMemDefValidation | Error: Failed adding MemDef MemDefsByClsIDAndMemName object to Catalog list, Member name: %1, Class name: %2 SCODE: %3 | 0xCA3A8040L
MSCOP_E_FailureAddingToMemDefToMemDefsByClsIDAndFullMemNameListInMemDefValidation | Error: Failed adding MemDef object to Catalog MemDefsByClsIDAndFullName list, Member name: %1, Class name: %2, SCODE: %3 | 0xCA3A8041L
MSCOP_E_FailureAddingToMemDefToMemDefsMapByIDMapInMemDefValidation | Error: Failed adding MemDef object to Catalog MemDefMapByID map, Member name: %1, Class name: %2, SCODE: %3 | 0xCA3A8042L
MSCOP_E_FailureAddingToMemDefToMultiValueMemDefsByClsIDAndMemNameInMemDefValidation | Error: Failed adding MemDef object to Catalog MultiValueMemDefsByClsIDAndMemName list, Member name: %1, Class name: %2, SCODE: %3 | 0xCA3A8043L
MSCOP_E_PersistentSQLMemberWithoutColumInMemDefValidation | Error: Member of a Class persisted in the SQL store does not have Column defined. Member name: %1, Class name: %2 | 0xCA3A8044L
MSCOP_E_PrimaryKeyMemWithNoPrimaryKeyInMemDefValidation | Error: Member: %1 is marked as Primary Key, but there is no Primary Key defined on Class: %2 | 0xCA3A8045L
MSCOP_E_UniqueKeyMemWithNoKeyDefInMemDefValidation | Error: Member: %1 flagged as UniqueKey, but Class: %2 not flagged for GenerateKeyDefs | 0xCA3A8046L
MSCOP_E_GenerateKeyMemFailureInMemDefValidation | Error: GenerateKeyMem failed for Member: %1 in Class: %2. SCODE: %3 | 0xCA3A8047L
MSCOP_E_FailureAddingToMemDefToChangeObjectsMapByIDInMemDefValidation | Error: Failed adding MemDef object to Catalog ChangeObjectsMapByID map. Object name: %1, Class name: %2, SCODE: %3 | 0xCA3A8048L
MSCOP_E_ErrorConvertingDefaultValueInMemDefValidation | Error converting default value for Member %1 in Class %2 (Default Value=%3, EType=%4, hr=%5) | 0xCA3A8049L
MSCOP_E_NULLValueNotAllowedButNoDefaultValueInMemDefValidation | Member: %1 in Class: %2 has flag IsNullAllowed == false but no default value | 0xCA3A804AL
MSCOP_E_NULLTableNameInCValTblInfoValidation | Error: Invalid Value Table definition object, NULL Value Table name. | 0xCA3A804BL
MSCOP_E_NULLPartitionNameInCValTblInfoValidation | Error: Invalid Value Table definition object, NULL Partition name. Value Table name: %1 | 0xCA3A804CL
MSCOP_E_NULLValIDColumnNameInCValTblInfoValidation | Error: Invalid Value Table definition object, NULL ValID Column name. Value Table name: %1 | 0xCA3A804DL
MSCOP_E_InvalidClassIDAndMemberInCValTblInfoValidation | Error: Invalid Value Table definition object, Table name: %1, Class ID Column name: %2, Member ID Column name: %3 | 0xCA3A804EL
MSCOP_E_NULLCatalogInCValTblInfoValidation | Error: NULL Catalog pointer in ValTblInfo object, Table name: %1 | 0xCA3A804FL
MSCOP_E_DuplicateValTblInfoNameInCValTblInfoValidation | Error: Value Table Info lookup failure. Link Table name: %1, SCODE: %2 | 0xCA3A8050L
MSCOP_E_PartitionNotFoundInCValTblInfoValidation | Error: Partition not found in the Catalog map (by Name). Link Table name: %1, Partition name: %2, SCODE: %3 | 0xCA3A8051L
MSCOP_E_MemberLookupErrorInCValTblInfoValidation | Error: Member lookup error while processing multi value Member Value table. Table name: %1, Member name: %2, SCODE: %3 | 0xCA3A8052L
MSCOP_E_IdentityColumnNotSetOnMemberInCValTblInfoValidation | Error: Invalid Identity Column Member. Member name: %1, Identity Column flag not set. SCODE: %2 | 0xCA3A8053L
MSCOP_E_IdentityColumnLookupErrorInCValTblInfoValidation | Error: Class ID column name lookup error while processing multi value Member Value table, Table name: %1, SCODE: %2 | 0xCA3A8054L
MSCOP_E_MemberIDColumnLookupErrorInCValTblInfoValidation | Error: Member ID col name lookup error while processing multi value Member Value table, Table name: %1, SCODE: %2 | 0xCA3A8055L
MSCOP_E_FailureAddingToValTblInfoToValTableInfosByNameInCValTblInfoValidation | Error: Failed adding ValTblInfo object to Catalog valTableInfosByName map: %1, Object name: %2, SCODE: %3 | 0xCA3A8056L
MSCOP_E_FailureAddingToValTblInfoToValTableInfosByIDInCValTblInfoValidation | Error: Failed adding ValTblInfo object to Catalog valTblInfoMapByID map: %1, Object name: %2, SCODE: %3 | 0xCA3A8057L
MSCOP_E_FailureAddingToValTblInfoToValTableInfosInCValTblInfoValidation | Error: Failed adding ValTblInfo object to Catalog valTblInfo list, Object name: %1, SCODE: %2 | 0xCA3A8058L
MSCOP_E_NULLLinkTableNameInCLinkTblInfoValidation | Error: Invalid Link Table definition object. NULL Link Table name | 0xCA3A8059L
MSCOP_E_NULLPartitionNameInCLinkTblInfoValidation | Error: Invalid Link Table definition object. NULL Partition name, Link Table name: %1 | 0xCA3A805AL
MSCOP_E_NULLInstanceIDColumnNameInCLinkTblInfoValidation | Error: Invalid Link Table definition object. NULL Instance ID Column name, Link Table name: %1 | 0xCA3A805BL
MSCOP_E_NULLValueIDColumnNameInCLinkTblInfoValidation | Error: Invalid Link Table definition object. NULL Value ID Column name, Link Table name: %1 | 0xCA3A805CL
MSCOP_E_NULLMemberIDColumnNameInCLinkTblInfoValidation | Error: Invalid Link Table definition object, Link Table name: %1, Class ID Column name: %2, Member ID Column is NULL | 0xCA3A805DL
MSCOP_E_NULLCatalogInCLinkTblInfoValidation | Error: NULL Catalog pointer in LinkTblInfo object. Link Table name: %1 | 0xCA3A805EL
MSCOP_E_LinkTblInfoLookupFailureInCLinkTblInfoValidation | Error: Link Table Info lookup failure. Link Table name: %1, SCODE: %2 | 0xCA3A805FL
MSCOP_E_PartitionLookupFailureInCLinkTblInfoValidation | Error: Partition lookup failure. Link Table name: %1, Partition name: %2, SCODE: %2 | 0xCA3A8060L
MSCOP_E_ValIDColLookupFailureInCLinkTblInfoValidation | Error: Value ID column lookup error while processing multi value Member Link table. Table name: %1, Val ID Column name: %2, SCODE: %3 | 0xCA3A8061L
MSCOP_E_InstanceIDColLookupFailureInCLinkTblInfoValidation | Error: Instance ID column lookup error while processing multi value Member Link table. Table name: %1, Instance ID Colum name: %2, SCODE: %3 | 0xCA3A8062L
MSCOP_E_ChildClsIDColLookupFailureInCLinkTblInfoValidation | Error: Child Class ID column lookup error while processing multi value Member Link table. Table name: %1, Class ID Colum name: %2, SCODE: %3 | 0xCA3A8063L
MSCOP_E_ChildMemIDColLookupFailureInCLinkTblInfoValidation | Error: Child Member ID lookup error while processing multi value Member Link table. Table name: %1, Member ID Colum name: %2, SCODE: %3 | 0xCA3A8064L
MSCOP_E_FailureAddingTolinkTblInfoMapByIDInCLinkTblInfoValidation | Error: Failed adding LinkTblInfo object to Catalog _linkTblInfoMapByID map. Object name: %1, SCODE: %3 | 0xCA3A8065L
MSCOP_E_FailureAddingTolinkTableInfosByNameInCLinkTblInfoValidation | Error: Failed adding LinkTblInfo object to Catalog linkTableInfosByName map. Object name: %1, SCODE: %2 | 0xCA3A8066L
MSCOP_E_FailureAddingTolinkTblInfoListInCLinkTblInfoValidation | Error: Failed adding LinkTblInfo object to Catalog linkTblInfoList list. Object name: %1, SCODE: %2 | 0xCA3A8067L
MSCOP_E_FailureAddingToGroupMemMapByIDInCGroupMemValidation | Error: Failed adding GroupMem object to Catalog groupMemMapByID map: Object name: %1, SCODE: %2 | 0xCA3A8068L
MSCOP_E_FailureAddingToChangeObjectsMapByIDInCGroupMemValidation | Error: Failed adding ClsDef object to Catalog changeObjectsMapByID map: Object name: %1, SCODE: %2 | 0xCA3A8069L
MSCOP_E_InvalidColDefInColDefValidation | Error: Invalid Column definition object: Column name: %1, Table name: %2, Type name: %3 | 0xCA3A806AL
MSCOP_E_NULLCatalogInColDefValidation | Error: NULL Catalog pointer in ColDef object: Column name: %1 | 0xCA3A806BL
MSCOP_E_SpaceInColNameInColDefValidation | Error: Space character found in Column name: %1. Stored procedure parameters cannot contain spaces. | 0xCA3A806CL
MSCOP_E_TblDefLookupErrorInColDefValidation | Error: TblDef lookup error while processing column. Column name: %1, Table name: %2, SCODE: %3 | 0xCA3A806DL
MSCOP_E_ColNameExistsInColDefValidation | Error: Column with this name already exists in the Table. Column name: %1, Table name: %2 | 0xCA3A806EL
MSCOP_E_FailureAddingToColDefMapByIDInColDefValidation | Error: Failed adding ColDef object to Catalog colDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A806FL
MSCOP_E_FailureAddingToColDefsInColDefValidation | Error: Failed adding ColDef object to Table _colDefs list: Object name: %1, SCODE: %2 | 0xCA3A8070L
MSCOP_E_FailureAddingToColDefsByTblIDAndColNameInColDefValidation | Error: Failed adding ColDef object to Catalog _colDefsByTblIDAndColName map:Object name: %1, SCODE: %2 | 0xCA3A8071L
MSCOP_E_NULLTableNameInTblDefValidation | Error: Invalid Table definition object: NULL Table name | 0xCA3A8072L
MSCOP_E_NULLCatalogInTblDefValidation | Error: NULL Catalog pointer in TblDef object. Table name: %1 | 0xCA3A8073L
MSCOP_E_DuplicatTableNameInTblDefValidation | Error: Table with this name already exists in the Catalog. Table name: %1 | 0xCA3A8074L
MSCOP_E_FailureAddingToTblDefMapByIDInTblDefValidation | Error: Failed adding TblDef object to Catalog tblDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A8075L
MSCOP_E_FailureAddingToTblDefMapByNameInTblDefValidation | Error: Failed adding TblDef object to Catalog tblDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A8076L
MSCOP_E_FailureAddingToTblDefListInTblDefValidation | Error: adding table to Catalog Table Def list. Table name: %1, SCODE: %2 | 0xCA3A8077L
MSCOP_E_NULLViewNameInViewDefValidation | Error: Invalid View definition object. NULL View name | 0xCA3A8078L
MSCOP_E_NULLClassNameInViewDefValidation | Error: Invalid View definition object. NULL Class name. View name: %1 | 0xCA3A8079L
MSCOP_E_NULLCatalogInViewDefValidation | Error: NULL Catalog pointer in ViewDef object. View name: %1 | 0xCA3A807AL
MSCOP_E_ClsDefLookupErrorInViewDefValidation | Error: Clsdef lookup error while processing View. View name: %1, Class name: %2, SCODE: %3 | 0xCA3A807BL
MSCOP_E_DuplicateViewNameInViewDefValidation | Error: View with this name already exists in the Catalog. View name: %1 | 0xCA3A807CL
MSCOP_E_ClsDefListInitFailedInViewDefValidation | Error: Failed to initialize Parent ClsDef list for View name: %1, Class name: %2, SCODE: %3 | 0xCA3A807DL
MSCOP_E_RelDefListInitFailedInViewDefValidation | Error: Failed to initialize RelDef list for View name: %1, Class name: %2, SCODE: %3 | 0xCA3A807EL
MSCOP_E_OutOfMemoryInViewDefValidation | Error: Insufficient memory to allocate read data structures. View name: %1 | 0xCA3A807FL
MSCOP_E_FailureAddingToViewToClassInViewDefValidation | Error: Failed while adding View to Class. View name: %1, Class Name: %2, SCODE: %3 | 0xCA3A8080L
MSCOP_E_FailureAddingToViewDefsByNameInViewDefValidation | Error: Failed adding ViewDef object to Catalog viewDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A8081L
MSCOP_E_FailureAddingToViewDefsByIDInViewDefValidation | Error: Failed adding ViewDef object to Catalog viewDefMapByID map: Object name: %1, SCODE: %l2 | 0xCA3A8082L
MSCOP_E_ValidationFailureInGenerateIdentity | Error: Failed while Validating generated identity member. Mem name: %1::%2, hr: %3 | 0xCA3A8083L
MSCOP_E_CreationFailureInGenerateIdentity | Error: unable to create default identity mem def, mem: %1::%2 | 0xCA3A8084L
MSCOP_E_ValidationFailureInGenerateIternalFlag | Error: Failed while Validating generated InternalFlag member. Mem name: %1::%2, hr: %3 | 0xCA3A8085L
MSCOP_E_CreationFailureInGenerateInternalFlag | Error: unable to create default InternalFlag mem def, mem: %1::%2 | 0xCA3A8086L
MSCOP_E_CreationFailureInGenerateKeyDef | Error: unable to create key def, class: %1, key: %2, hr: %3 | 0xCA3A8087L
MSCOP_E_CreationFailureInGenerateTblDef | Error: unable to create default tbl def, class: %1 hr: %2 | 0xCA3A8088L
MSCOP_E_CreationFailureInGeneratePartition | Error: unable to create partition, class: %1, partition: %2, source: %3, table: %4 hr: %5 | 0xCA3A8089L
MSCOP_E_NoSourceNamedInGeneratePartitionDef | Error: Source name must be given to generate default partitions for classes, class: %1 | 0xCA3A808AL
MSCOP_E_SaveListAdditionFailure | Error: Failed to add Member to Save list. Object display name: %1, SCODE: %2 | 0xCA3A808BL
MSCOP_E_ChangeListAdditionFailure | Error: Failed to add object to Change list. Object display name: %1, SCODE: %3 | 0xCA3A808CL
MSCOP_E_CorruptRelDefInClsDefDeleteValidate | Error: Corrupt RelDef table found in ValidateForDelete. Class name: %1, Status: %2 | 0xCA3A808DL
MSCOP_E_NULLClassNameInClsDefValidation | Error: Invalid Class definition object. NULL Class name | 0xCA3A808EL
MSCOP_E_NULLCatalogInClsDefValidation | Error: NULL Catalog pointer in ClsDef object: Class name: %1 | 0xCA3A808FL
MSCOP_E_InvalidCharsInClassNameInClsDefValidation | Error: Class name: %1 contains invalid characters | 0xCA3A8090L
MSCOP_E_SourceDefLookupFailureInClsDefValidation | Error: Source Def lookup failure. Source name: %1, Class name: %2, SCODE: %3 | 0xCA3A8091L
MSCOP_E_NULLSourceDefInClsDefValidation | Error: Required Source name not defined for this class, Class name: %1 | 0xCA3A8092L
MSCOP_E_DuplicateClsDefInClsDefValidation | Error: Class with this name already exists in the Catalog. Class name: %1 | 0xCA3A8093L
MSCOP_E_FailureAddingToClsDefMapByIDClsDefInClsDefValidation | Error: Failed adding ClsDef object to Catalog clsDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A8094L
MSCOP_E_FailureAddingToClsDefsByNameInClsDefValidation | Error: Failed adding ClsDef object to Catalog clsDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A8095L
MSCOP_E_FailureAddingToClsDefsListInClsDefValidation | Error: Failed adding ClsDef object to Catalog clsDefList list: Object name: %1, SCODE: %2 | 0xCA3A8096L
MSCOP_E_NULLPartitionNameInPartitionDefValidation | Error: Invalid Partition definition object: NULL Partition name | 0xCA3A8097L
MSCOP_E_NULLSourceNameInPartitionDefValidation | Error: Invalid Partition definition object: NULL Source name. Partition name: %1 | 0xCA3A8098L
MSCOP_E_NULLTableNameInPartitionDefValidation | Error: Invalid Partition definition object: NULL Table name. Partition name: %1 | 0xCA3A8099L
MSCOP_E_NULLCatalogInPartitionDefValidation | Error: Invalid Partition definition object: NULL Catalog. Partition name: %1 | 0xCA3A809AL
MSCOP_E_DuplicatePartitionNameInPartitionDefValidation | Error: Partition with this name already exists in the Catalog. Partition name: %1 | 0xCA3A809BL
MSCOP_E_TblDefLookupFailureInPartitionDefValidation | Error: TblDef lookup error while processing Partition. Partition name: %1, Table name: %2, SCODE: %3 | 0xCA3A809CL
MSCOP_E_TableNameDUPWStrFailureInPartitionDefValidation | Error: Failed setting Physical table name. Partition name: %1, Source name: %2, Table name: %3, SCODE: %4 | 0xCA3A809DL
MSCOP_E_SourceDefLookupFailureInPartitionDefValidation | Error: Source Def lookup error while processing Partition. Partition name: %1, Source name: %2, SCODE: %3 | 0xCA3A809EL
MSCOP_E_ClsDefLookupFailureInPartitionDefValidation | Error: Class Def lookup error while processing Partition. Partition name: %1, Class name: %2, SCODE: %3 | 0xCA3A809FL
MSCOP_E_FailureAddingToPartitionDefMapByIDInPartitionDefValidation | Error: Failed adding PartitionDef object to Catalog partitionDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80A0L
MSCOP_E_FailureAddingToPartitionDefsByNameInPartitionDefValidation | Error: Failed adding PartitionDef object to Catalog partitionDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A80A1L
MSCOP_E_FailureAddingToPartitionDefListInPartitionDefValidation | Error: adding partition def to global partition list failed, Partition name: %1, Source name: %2, SCODE: %3 | 0xCA3A80A2L
MSCOP_E_NULLPartPolicyNameInPartitionPolicyDefValidation | Error: Invalid Partition Policy definition object: NULL Partition Policy name | 0xCA3A80A3L
MSCOP_E_NULLCatalogInPartitionPolicyDefValidation | Error: NULL Catalog pointer in PartitionPolicyDef object, Partition name: %1 | 0xCA3A80A4L
MSCOP_E_FailureAddingToPartitionPolicyDefMapByIDInPartitionPolicyDefValidation | Error: Failed adding PartitionPolicyDef object to Catalog partitionPolicyDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80A5L
MSCOP_E_NULLSourceNameInSourceDefValidation | Error: Invalid Source definition object: NULL Source name | 0xCA3A80A6L
MSCOP_E_NULLConnStringInSourceDefValidation | Error: Invalid Source definition object: NULL Connection String. Source name: %1 | 0xCA3A80A7L
MSCOP_E_NULLCatalogInSourceDefValidation | Error: NULL Catalog pointer in SourceDef object: NULL Catalog. Source name: %1 | 0xCA3A80A8L
MSCOP_E_DuplicateSourceDefInSourceDefValidation | Error: Source Def with this name already exists in the Catalog. Source name: %1 | 0xCA3A80A9L
MSCOP_E_FailureAddingToSouceDefMapByIDInSourceDefValidation | Error: Failed adding SourceDef object to Catalog sourceDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80AAL
MSCOP_E_FailureAddingToSouceDefMapByNameInSourceDefValidation | Error: Failed adding SourceDef object to Catalog srcDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A80ABL
MSCOP_E_FailureAddingToSouceDefListInSourceDefValidation | Error: Failed adding SourceDef object to Catalog srcDefList list: Object name: %1, SCODE: %3 | 0xCA3A80ACL
MSCOP_E_NULLKeyDefInKeyMemDefValidation | Error: Invalid Class Key Member definition object: NULL Key name, Key Member name: %1 | 0xCA3A80ADL
MSCOP_E_NULLMemberInKeyMemDefValidation | Error: Invalid Class Key Member definition object: NULL Key Member name, Key name %1 | 0xCA3A80AEL
MSCOP_E_NULLCatalogInKeyMemDefValidation | Error: NULL Catalog pointer in PKeyMem object: Key name: %1, Key Member name: %2 | 0xCA3A80AFL
MSCOP_E_ClsDefLookupFailureInKeyMemDefValidation | Error: ClsKeyDef Lookup error while processing Key Member. Key Member name: %1, Class Key name: %2, SCODE: %3 | 0xCA3A80B0L
MSCOP_E_MemDefLookupFailureInKeyMemDefValidation | Error: Member lookup error while processing Class Key Member. Class Key name: %1, Key Member name: %2, SCODE: %3 | 0xCA3A80B1L
MSCOP_E_DuplicateKeyMemDefInKeyMemDefValidation | Error: Key Member already exists in Class Key. Class name: %1, Class Key name: %2, Member name: %3 | 0xCA3A80B2L
MSCOP_E_NoDefaultValueForKeyMemDefInKeyMemDefValidation | Error: Key Member %1 does not have a valid default value: %2. Class name: %3 | 0xCA3A80B3L
MSCOP_E_KeyMemInMultipleKeysInKeyMemDefValidation | Error: Member used in two different keys. Not supported. Member name: %1, Class name: %2 | 0xCA3A80B4L
MSCOP_E_FailureAddingToKeyMemMapByIDInKeyMemDefValidation | Error: Failed adding KeyMem object to Catalog KeyMemMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80B5L
MSCOP_E_FailureAddingToKeyDefMemListInKeyMemDefValidation | Error: Failed adding KeyMem object to Key Def Member list: Object name: %1, SCODE: %2 | 0xCA3A80B6L
MSCOP_E_FailureAddingToClsDefPKArrayInKeyMemDefValidation | Error: Failed adding KeyMem object to ClsKey persistent Member list: %1, Object name: %2, SCODE: %3 | 0xCA3A80B7L
MSCOP_E_FailureAddingToClsKeyMemsByClsKeyIDandKeyMemNameInKeyMemDefValidation | Error: Failed adding KeyMem object to Catalog clsKeyMemsByClsKeyIDandKeyMemName list: Object name: %1, SCODE: %2 | 0xCA3A80B8L
MSCOP_E_NULLKeyNameInKeyDefValidation | Error: Invalid Class Key definition object: NULL Key name: Class name: %1 | 0xCA3A80B9L
MSCOP_E_NULLClassNameInKeyDefValidation | Error: Invalid Class Key definition object: NULL Class name: Key name: %1 | 0xCA3A80BAL
MSCOP_E_NULLDuplicateClsKeyDefInKeyDefValidation | Error: Class Key Def with this name already exists in the Catalog. ClsKeyDef name: %1 | 0xCA3A80BBL
MSCOP_E_NULLCatalogInKeyDefValidation | Error: Invalid Class Key definition object: NULL Catalog: ClsKeyDef name: %1 | 0xCA3A80BCL
MSCOP_E_ClsDefLookupErrorInKeyDefValidation | Error: Clsdef lookup error while processing Class Key. Class Key name: %1, Class name: %2, SCODE: %3 | 0xCA3A80BDL
MSCOP_E_FailureAddingToClsKeyDefMapByIDInKeyDefValidation | Error: Failed adding ClsKeyDef object to Catalog clsKeyDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80BEL
MSCOP_E_FailureAddingToClsKeyDefMapByNameInKeyDefValidation | Error: Failed adding ClsKeyDef object to Catalog clsKeyDefsByName map: Object name: %1, SCODE: %2 | 0xCA3A80BFL
MSCOP_E_ClsDefArrayInitializationFailureInKeyDefValidation | Error: Failed to initialize ClsKeyDef array in Class: %1, SCODE: %2 | 0xCA3A80C0L
MSCOP_E_FailureAddingToClsKeyDefsInKeyDefValidation | Error: Failed adding ClsKeyDef object to Catalog clsKeyDefs list: Object name: %1, SCODE: %2 | 0xCA3A80C1L
MSCOP_E_TwoKeyDefsMarkedPrimaryInKeyDefValidation | Error: Two ClsKeyDefs marked as Primary for Class: %1 | 0xCA3A80C2L
MSCOP_E_TwoKeyDefsMarkedPrimaryInKeyDefValidationDetails | KeyDef at array slot 0: %1, KeyDef at array slot %2: %3 | 0xCA3A80C3L
MSCOP_E_KeyDefSwapFailedInKeyDefValidationDetails | Error: Could not swap Primary ClsKeyDef into array slot 0 for Class: %1, SCODE: %2 | 0xCA3A80C4L
MSCOP_E_InvalidIndexDefInIndexValidation | Error: Invalid Index definition object: Internal Index name: %1, Physical Index name: %2, Class name: %3 | 0xCA3A80C5L
MSCOP_E_NULLCatalogInIndexValidation | Error: NULL Catalog pointer in IndexDef object: Index name: %1 | 0xCA3A80C6L
MSCOP_E_FailureAddingToIndexDefMapByIDInIndexValidation | Error: Failed adding IndexDef object to Catalog indexDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80C7L
MSCOP_E_InvalidKeyMemListInCreateMem | Error: Invalid Key Member structure found processing Relation name: %1, Parent Class name: %2, Status: %3 | 0xCA3A80C8L
MSCOP_E_MemberTypeMismatchInCreateMem | Type mismatch between Parent and Child Members with the same name. Parent Class %1, Child Class %2, Member name: %3, Relation Name: %4 | 0xCA3A80C9L
MSCOP_E_CreateRelMemDefFailedInCreateMem | Error: Create RelMemDef instance for Child Class failed during Relation processing. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA3A80CAL
MSCOP_E_RelMemDefArrayAllocFailedInCreateMem | Not enough memory to allocate RelMemDefArray for Member: %1, Class name: %2 | 0xCA3A80CBL
MSCOP_E_SetDisplayNameFailedInCreateMem | Error: Failed while setting Display name for Reference ID Member. Relation name: %1, Ref ID Member name: %2, SCODE: %3 | 0xCA3A80CCL
MSCOP_E_SetColumnNameFailedInCreateMem | Error: Failed while setting Column name for Reference ID Member. Relation name: %1, Ref ID Member name: %2, SCODE: %3 | 0xCA3A80CDL
MSCOP_E_CreateColDefFailedInCreateMem | Error: Create ColDef instance for Child Class Reference Member failed during Relation processing. Relation name: %1, Class name: %2, SCODE: %3 | 0xCA3A80CEL
MSCOP_E_RefIDColValidationFailedInCreateMem | Error: Failed while Validating Reference ID Column. Relation name: %1, Column name: %2, SCODE: %3 | 0xCA3A80CFL
MSCOP_E_RefIDMemValidationFailedInCreateMem | Error: Failed while Validating Reference ID Member. Relation name: %1, Member name: %2, SCODE: %3 | 0xCA3A80D0L
MSCOP_E_FailureAddingToMemDefsByClsIDAndMemNameInCreateMem | Error: Failed adding MemDef object to Catalog memDefsByClsIDAndMemName map: Object name: %1, SCODE: %2 | 0xCA3A80D1L
MSCOP_E_RelMemDefValidationFailedInCreateMem | Error: Failed while validating Relation Member Definition. Relation name: %1, Member name: %2, SCODE: %3 | 0xCA3A80D2L
MSCOP_E_RefIDRelMemValidationFailedInCreateMem | Error: Failed while validating Reference ID Relation Member Definition. Relation name: %1, Ref ID Member name: %2, SCODE: %3 | 0xCA3A80D3L
MSCOP_E_InvalidRelDefInRelDefValidation | Error: Invalid Relation definition object: Relation name: %1, Parent Class name: %2, Child Class name: %3 | 0xCA3A80D4L
MSCOP_E_ClsDefLookupFailureInRelDefValidation | Error: ClsDef Lookup error while processing Relation. Relation name: %1, Parent Class name: %2, SCODE: %3 | 0xCA3A80D5L
MSCOP_E_NoDefaultKeyForClassInRelDefValidation | Error: No default Key for Class name: %1 | 0xCA3A80D6L
MSCOP_E_DuplicateRelNameInRelDefValidation | Error: Relation with this name already exists in the Catalog. Relation name: %1 | 0xCA3A80D7L
MSCOP_E_OneToOneRelDefInRelDefValidation | Error: Relation name: %1 specifies a One to One Relation. This Relation type is not implemented. | 0xCA3A80D8L
MSCOP_E_UnknownRelTypeInRelDefValidation | Error: Relation name: %1 specifies a unknown Relation type. | 0xCA3A80D9L
MSCOP_E_NULLCatalogInRelDefValidation | Error: Invalid Relation definition object. NULL Catalog pointer in RelDef object: Relation name: %1 | 0xCA3A80DAL
MSCOP_E_ClsKeyLookupFailureInRelDefValidation | Error: ClsKeyDef Lookup error while processing Relation name: %1, Class name: %2, Key name: %3, SCODE: %4 | 0xCA3A80DBL
MSCOP_E_InvalidKeyInMMRelInRelDefValidation | Error: Parents in M-M Relations can only have one key with one member. Relation name: %1, Parent Class: %2 | 0xCA3A80DCL
MSCOP_E_FailureAddingToRelDefsByNameInRelDefValidation | Error: Failed while adding Relation to Catalog relDefsByName map. Relation name: %1, SCODE: %2 | 0xCA3A80DDL
MSCOP_E_FailureAddingToRelDefsByIDInRelDefValidation | Error: Failed adding RelDef object to Catalog relDefMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80DEL
MSCOP_E_FailureAddingToRelDefListInRelDefValidation | Error: Failed adding RelDef object to Catalog relDefList list:Object name: %1, SCODE: %2 | 0xCA3A80DFL
MSCOP_E_FailureAddingToDirectParentListInRelDefValidation | Error: Failed adding Parent ClsDef object to Child ClsDef Direct Parent list: Object name: %1, Parent Class name: %2, Child Class name: %3, SCODE: %4 | 0xCA3A80E0L
MSCOP_E_FailureAddingToPhysicalParentListInRelDefValidation | Error: Failed adding Parent ClsDef object to Child ClsDef Direct Physical Parent list:Object name: %1, Parent Class name: %2, Child Class name: %3, SCODE: %4 | 0xCA3A80E1L
MSCOP_E_InvalidRelMemDefInRelMemDefValidation | Error: Invalid Relation Member definition object: Relation name: %1, Parent Class Member name: %2, Child Class Member name: %3 | 0xCA3A80E2L
MSCOP_E_NULLCatalogInRelMemDefValidation | Error: Invalid Relation Member definition object: NULL Catalog pointer, Relation name: %1, Member name: %2 | 0xCA3A80E3L
MSCOP_E_RelDefLookupErrorInRelMemDefValidation | Error: RelDef lookup error while processing Relation Member Def. Relation name: %1, SCODE: %2 | 0xCA3A80E4L
MSCOP_E_MemDefLookupErrorInRelMemDefValidation | Error: Member lookup error while processing Relation. Relation name: %1, Member name: %2, SCODE: %3 | 0xCA3A80E5L
MSCOP_E_RelMemTypeMismatchInRelMemDefValidation | Error: Type mismatch in RelMemDef validation. Parent MemDef: %1, Child MemDef: %2 | 0xCA3A80E6L
MSCOP_E_InvalidRelMemMappingInRelMemDefValidation | Error: Invalid RelMemDef reference mapping. Parent MemDef: %1, Child MemDef: %2 | 0xCA3A80E7L
MSCOP_E_FailedAllocatingRelMemArrayInRelMemDefValidation | Error: Failed allocating Relation Member array while Validating new Child Class Reference Member. Relation name: %1, Reference Member name: %2 | 0xCA3A80E8L
MSCOP_E_FailureAddingToChildRelMemArrayInRelMemDefValidation | Error: Failed while adding Relation Member to Child Member. Relation name: %1, Member name: %2, SCODE: %3 | 0xCA3A80E9L
MSCOP_E_FailureAddingToRelDefListInRelMemDefValidation | Error: Failed while adding Relation Member to Relation Definition array. Relation name: %1, Child Member name: %2, SCODE: %3 | 0xCA3A80EAL
MSCOP_E_FailureAddingToRelMemDefMapByIDInRelMemDefValidation | Error: Failed adding RelMemDef object to Catalog relMemDefMapByID map: Object Names: %1, %2, %3, SCODE: %3 | 0xCA3A80EBL
MSCOP_E_NULLIndexMemNameInIndexMemValidation | Error: Invalid Index Member. NULL Index Member name. | 0xCA3A80ECL
MSCOP_E_NULLCatalogInIndexMemValidation | Error: Invalid Index Member. NULL Catalog in Index Member name: %1 | 0xCA3A80EDL
MSCOP_E_FailureAddingToIndexMemMapByIDInIndexMemValidation | Error: Failed adding IndexMem object to Catalog indexMemMapByID map: Object name: %1, SCODE: %2 | 0xCA3A80EEL
MSCOP_E_InvalidClsAttribInClsAttribValidation | Error: Invalid Class Attribute definition object: Class name: %1, Attribute name: %2, Attribute Type: %3 | 0xCA3A80EFL
MSCOP_E_NULLCatalogInClsAttribValidation | Error: Invalid Class Attribute definition object: NULL Catalog pointer. Attrib Member name: %1 | 0xCA3A80F0L
MSCOP_E_ClsDefLookupErrorInClsAttribValidation | Error: ClsDef lookup error while processing Class Attribute Def. Class name: %1, Attribute name: %2, SCODE: %3 | 0xCA3A80F1L
MSCOP_E_FailureAddingToClsAttribListInClsAttribValidation | Error: Failed adding Attribute object to Class Attribute list: Attribute name: %1, Class name: %2, SCODE: %3 | 0xCA3A80F2L
MSCOP_E_InvalidSrcAttribInSrcAttribValidation | Error: Invalid Source Attribute definition object: Source name: %1, Attribute name: %2, Attribute Type: %3 | 0xCA3A80F3L
MSCOP_E_NULLCatalogInSrcAttribValidation | Error: Invalid Source Attribute definition object: NULL Catalog pointer, Attrib Member name: %1 | 0xCA3A80F4L
MSCOP_E_SourceDefLookupErrorInSrcAttribValidation | Error: SrcDef lookup error while processing Source Attribute Def. Source name: %1, Attribute name: %2, SCODE: %3 | 0xCA3A80F5L
MSCOP_E_FailureAddingToSrcAttribInSrcAttribValidation | Error: Failed adding Attribute object to Source Attribute list: Attribute name: %1, SCODE: %2 | 0xCA3A80F6L
MSCOP_E_InvalidMemAttribInMemAttribValidation | Error: Invalid Member Attribute definition object:, Class name: %1, Member name: %2, Attribute name: %3, Attribute Type: %4 | 0xCA3A80F7L
MSCOP_E_NULLCatalogInMemAttribValidation | Error: Invalid Member Attribute definition object: NULL Catalog pointer, Attrib Member name: %1 | 0xCA3A80F8L
MSCOP_E_ClsDefLookupErrorInMemAttribValidation | Error: ClsDef lookup error while processing Member Attribute Def. Class name: %1, Member name: %2, Attribute name: %3, SCODE: %4 | 0xCA3A80F9L
MSCOP_E_MemDefLookupErrorInMemAttribValidation | Error: MemDef lookup error while processing Member Attribute Def. Class name: %1, Member name: %2, Attribute name: %3, SCODE: %4 | 0xCA3A80FAL
MSCOP_E_FailureAddingToMemAttribInMemAttribValidation | Error: Failed adding Attribute object to Member Attribute list: Attribute name: %1, Class name: %2, SCODE: %3 | 0xCA3A80FBL
MSCOP_E_InvalidViewMemInViewMemValidation | Error: Invalid View Member definition object: Member name: %1, View name: %2 | 0xCA3A80FCL
MSCOP_E_NULLCatalogInViewMemValidation | Error: Invalid View Member definition object: NULL Catalog pointer, View Member name: %1 | 0xCA3A80FDL
MSCOP_E_ViewDefLookupErrorInViewMemValidation | Error: ViewDef lookup error while processing View Member. View Member name: %1, View name: %2, SCODE: %3 | 0xCA3A80FEL
MSCOP_E_ViewMemDefLookupErrorInViewMemValidation | Error: View Member lookup error. Member name: %1, Class name: %2, View name: %3, SCODE: %4 | 0xCA3A80FFL
MSCOP_E_DuplicateViewMemDefInViewMemValidation | Error: View Member already exists in View. Member name: %1, Class name: %2, View name: %3 | 0xCA3A8100L
MSCOP_E_ViewMemExtAllocationFailureInViewMemValidation | Error: Not enough memory to allocate View Member Extenstion | 0xCA3A8101L
MSCOP_E_CorruptRelMemDefTableInViewMemValidation | Error: Corrupt RelMemDef table found in View Member validation. View member name: %1, Status: %2 | 0xCA3A8102L
MSCOP_E_FailureAddingToViewDefListInViewMemValidation | Error: Failed to add Member to ViewDef member list. Member name: %1, View name: %2, SCODE: %3 | 0xCA3A8103L
MSCOP_E_FailureAddingToMultiValMemDefListInViewMemValidation | Error: Failed to add Member to ViewDef multi value member list. Member name: %1, View name: %2, SCODE: %3 | 0xCA3A8104L
MSCOP_E_FailureAddingToSingleValMemDefListInViewMemValidation | Error: Failed to add Member to ViewDef single value member list. Member name: %1, View name: %2, SCODE: %3 | 0xCA3A8105L
MSCOP_E_FailureAddingToViewMemsByViewIDAndMemNameInViewMemValidation | Error: Failed adding ViewMem object to Catalog viewMemsByViewIDAndMemName list: Member name: %1, Class name: %2, View name: %3, SCODE: %4 | 0xCA3A8106L
MSCOP_E_FailureAddingToFullRelDefListInRelMemDefValidation | Error: Failed while adding Relation Member to Full Relation Definition array. Relation name: %1, Child Member name: %2, SCODE: %3 | 0xCA3A8107L
MSCOP_E_FailureAddingToFullRelDefListInRelDefValidation | Error: Failed while adding Relation to Full Relation Definition list. Relation name: %1, SCODE: %2 | 0xCA3A8108L
MSCOP_E_MajorVersionMismatch | Error: Catalog Major Version mismatch. Version in Catalog name:%1: %2, Version supported by code: %3 | 0xCA3A8109L


CtlgPersist.cpp Error Message for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_UnsupportedColumnType | Unsupported type for column def, col: %1, type: %2 | 0xCA41002FL


Schemamgr.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_SchemaMgrCreateTableCatchHR | CreateTable(), catch(hr), code: %1 | 0xCA340042L
MSCOP_E_SchemaMgrCreateTableCatch | CreateTable(), exception caught | 0xCA340043L
MSCOP_E_SchemaMgrNoColDefForMVTableCreation | No Column Definitions for multi value table creation. Table name: %1 | 0xCA340044L


SQLPathTrans.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_SQLTransPathNULLCatalog | SqlPathElement::Invalid (NULL) pointer to catalog or path specified | 0xCA340045L
MSCOP_E_SQLTransPathLastElementAlreadyMember | Last element in the list is already a member | 0xCA340046L
MSCOP_E_SQLTransPathLastInvalidElementType | SqlPathElement::Invalid element type specified for information given. ElementType = %1 | 0xCA340047L
MSCOP_E_SQLTransPathLastAmbiguousNonPersistentRelMem | Ambiguous Path to Non-Persistent RelMember | 0xCA340048L
MSCOP_E_SQLTransPathLastPathElementOOM | Not enough memory for additional path element. | 0xCA340049L
MSCOP_E_SQLTransPathAmbiguousMember | First element in path specified is a member, but exists on multiple classes. You must first specify the class which it is a member of, then it will not be ambiguous. | 0xCA34004AL
MSCOP_E_SQLTransPathAddElementOOM | Not enough memory to add element to path. | 0xCA34004BL
MSCOP_E_SQLTransPathNoPathToMember | Zero Paths available from the specified class to the specified member. | 0xCA34004CL
MSCOP_E_SQLTransPathMemberNotReachable | Internal Error: we have a match on a single member name and a single path to it, but because of possible internal corruption we got a failure and it is not reachable. | 0xCA34004DL
MSCOP_E_SQLTransPathAddIntermediatePathFailed | Unable to add intermediate elements to path to help reach member. hr=%1 | 0xCA34004EL
MSCOP_E_SQLTransPathAmbiguousParent | Ambiguous parent encountered while attempting to identify path to member. Please be more specific in your path to the member %1. | 0xCA34004FL
MSCOP_E_SQLTransPathDuplicateClsDefInPath | Ambiguous parent encountered while attempting to identify path to member. Attempted to add the same classdef named %1 twice in a row to a path - this is not allowed. | 0xCA340050L
MSCOP_E_SQLTransPathMultiplePaths | There is more than one valid path between %1 and %2 | 0xCA340051L
MSCOP_E_SQLTransPathBadElementNoBisquit | Element specified to add to path is bad. hr=%1, ElementName = %2, Path = %3 | 0xCA340052L
MSCOP_E_SQLTransPathZeroPathLength | Path is 0 length, therefore invalid | 0xCA340053L
MSCOP_E_SQLTransPathLastPathElementNotMember | Last Element of the Path is not a member | 0xCA340054L
MSCOP_E_SQLTransPathNULLCatalogInInit | Invalid (NULL) Catalog parameter Passed to CSqlPath::Init() | 0xCA340055L
MSCOP_E_SQLTransPathNoComparitiveOperator | Comparitive Operator not specified in where element. | 0xCA340056L
MSCOP_E_SQLTransPathNoINValues | Comparitive Operator is IN but there are no values specified in where element. | 0xCA340057L
MSCOP_E_SQLTransPathNULLWithValues | Comparitive Operator is NULL or NOT NULL but there are values specified in where element. | 0xCA340058L
MSCOP_E_SQLTransPathNoSingleValue | Comparitive Operator does not have 1 value. | 0xCA340059L
MSCOP_E_SQLTransPathBadBetweenClause | Comparitive Operator is BETWEEN or NOT BETWEEN but there are not two values specified in where element. | 0xCA34005AL
MSCOP_E_SQLTransPathInvalidComparitiveOperator | Comparitive Operator is invalid. | 0xCA34005BL
MSCOP_E_SQLTransPathZeroSelectPath | SQL Query must consist of at least one select path. | 0xCA34005CL
MSCOP_E_SQLTransPathBadRootClasses | SQL Query must have RootClasses the same for all things being selected or filtered. | 0xCA34005DL
MSCOP_E_SQLTransPathSQLExpressionOOM | Not enough memory to allocate virtual memory to produce SQL expression. | 0xCA34005EL
MSCOP_E_SQLTransPathInvalidPath | Invalid path encountered attempting to build query. hr=%1 Query:%2 Path:%3 | 0xCA34005FL
MSCOP_E_SQLTransPathInvalidPathCompare | Invalid path encountered attempting to build query. hr=%1 Query:%2 Compare:%3 | 0xCA340060L
MSCOP_E_SQLTransPathInvalidComparitiveOperatorBuildingExpression | Invalid Comparitive Operator encountered while building SQL expression. | 0xCA340061L
MSCOP_E_SQLTransPathTooManyValuesForOperator | Not allowed to have more than one value with this type of comparitive operator. | 0xCA340062L
MSCOP_E_SQLTransPathInvalidValueForOperator | Not allowed to have a value specified with this type of comparitive operator. | 0xCA340063L
MSCOP_E_SQLTransPathNotAbleToAddValue | Not able to add another value. | 0xCA340064L
MSCOP_E_SQLTransPathInvalidComparitiveOperatorValue | Invalid comparitive operator value. | 0xCA340065L


Bindargs.cpp Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_BindArgsOpenDataSourceInitializationFailed | In BindArgs::OpenDataSrc(), failed initializing data source (%1) | 0xCA078001L
MSCOP_E_BindArgsOpenInvalidFirstBindToRow | Can't bind to Row directly on first bind | 0xCA078002L
MSCOP_E_BindArgsCreateCatalogWithoutRequestingRow | Cannot create a catalog object without requesting a Row | 0xCA078003L
MSCOP_E_BindArgsInvalidInterfaceOnCatalogRow | Do not support interface %1 on Catalog Row | 0xCA078004L
MSCOP_E_BindArgsCannotOpenCatalogObject | Cannot open catalog object (schema session:%1, create only:%2, row change:%3) | 0xCA078005L


OLE DB Binder Property Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CImpDataSrcPropCouldNotSetFASTLOADPropertyFromBinderObject | Could not set the FASTLOAD property from the binder object (%1) | 0xCA0D8001L
MSCOP_E_CImpDataSrcPropCouldNotSetINTEGRATEDSECURITYPropertyFromBinderObject | Could not set the INTEGRATED SECURITY property from the binder object (%1) | 0xCA0D8002L
MSCOP_E_CImpDataSrcPropCouldNotSetDataSourcePropertyFromBinderObject | Could not set the Data Source property from the binder object (%1) | 0xCA0D8003L
MSCOP_E_CImpDataSrcPropCouldNotSetCONNECTIONSTRINGPropertyFromBinderObject | Could not set the CONNECTION STRING property from the binder object (%1) | 0xCA0D8004L
MSCOP_E_CImpDataSrcPropCouldNotSetUSERIDPropertyFromBinderObject | Could not set the USER ID property from the binder object (%1) | 0xCA0D8005L
MSCOP_E_CImpDataSrcPropCouldNotSetPASSWORDPropertyFromBinderObject | Could not set the PASSWORD property from the binder object (%1) | 0xCA0D8006L
MSCOP_E_CImpDataSrcPropCouldNotGetFASTLOADProperty | Could not get the FASTLOAD property (%1) | 0xCA0D8007L
MSCOP_E_CImpDataSrcPropCouldNotGetINTEGRATEDSECURITYProperty | Could not get the INTEGRATED SECURITY property (%1) | 0xCA0D8008L
MSCOP_E_CImpDataSrcPropCouldNotGetCONNECTIONSTRINGProperty | Could not get the CONNECTION STRING property (%1) | 0xCA0D8009L
MSCOP_E_CImpDataSrcPropCouldNotGetUSERIDProperty | Could not get the USER ID property (%1) | 0xCA0D800AL
MSCOP_E_CImpDataSrcPropCouldNotGetPASSWORDProperty | Could not get the PASSWORD property (%1) | 0xCA0D800BL
MSCOP_E_CImpDataSrcPropCouldNotGetCREATECATALOGProperty | Could not get the CREATECATALOG property (%1) | 0xCA0D800CL
MSCOP_E_CImpDataSrcPropCouldNotGenerateSessionContextGUID | Could not generate session context GUID for session %1 (%2) | 0xCA0D800DL
MSCOP_E_CImpDataSrcPropCouldNotSetSessionContextProperty | Could not set Session context property for session %1 (hr = %2) | 0xCA0D800EL


OLE DB CCommand Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CCommandPropertiesInitializationFailure | Error Initializing Command properties (%1) | 0xCA148077L
MSCOP_E_CCommandAllocationEOM | Error allocating new command text (%1 chars) | 0xCA148078L


OLE DB Data Source Error Messages

Error Messages

Message ID | Message Text | HResult
*/MSCOP_E_CDataSourceOpenBinaryLogFileFailure | Open binary log file failed, file: %1 | 0xCA178001L
MSCOP_E_CDataSourcePropertyInitializationFailure | Unable to initialize Data source Properties %1 | 0xCA178002L
MSCOP_E_CDataSourceSetPropertyFailure | Could not set Data Source OLE DB properties (%1) | 0xCA178003L
MSCOP_E_CDataSourceSessionCommandMapperInitializationFailure | Unable to initialize Session Command mapper (%1) | 0xCA178004L
MSCOP_E_CDataSourceCatalogLoadInitializationFailure | DataSource::Init(%1) failed on catalog load (%2) | 0xCA178005L
MSCOP_E_CDataSourceReleaseSchemaChangeCatalog | CDataSource::ReleaseSchemaChangeCatalog(), could not get active catalog (%1) | 0xCA178006L
MSCOP_E_CDataGetActiveCatalogGetPropertyBool | DataSource::GetActiveCatalog(%1) GetPropertyBOOL() for DBPROP_INIT_CATALOGCREATE failed (%2) | 0xCA178007L
MSCOP_E_CDataGetActiveCatalogGetPropertyLong | DataSource::GetActiveCatalog(%1) GetPropertyLONG() for DBPROP_INIT_MODE failed (%2) | 0xCA178008L
MSCOP_E_CDataGetActiveCatalogWriteModeNotEnabled | DataSource::GetActiveCatalog(%1) failed on catalog load (%2) - Write access mode not enabled | 0xCA178009L
MSCOP_E_CDataGetActiveCatalogNoCatalog | DataSource::GetActiveCatalog(%1) failed on catalog load (%2) - Catalog not present and CATALOG_CREATE not enabled | 0xCA17800AL
MSCOP_E_CDataGetActiveCatalogRetrieveFailed | Error retrieving the current catalog entry (%1) activelist size=%2 | 0xCA17800BL
MSCOP_E_CDataReleaseCatalogRemoveFailed | ReleaseCatalog() - Error removing entry (%1) | 0xCA17800CL
MSCOP_E_CDataReleaseCatalogNoCatalogs | ReleaseCatalog() Could not find the catalog in active list | 0xCA17800DL
MSCOP_E_CDataAddNewCatalogEntryCoreObjectServicesFailure | Could not create the Core Object Services for Data Source | 0xCA17800EL
MSCOP_E_CDataAddNewCatalogEntryOutOfMemory | Error creating new SessiontCatalogEntry -- Out of memory | 0xCA17800FL
MSCOP_E_CDataAddNewCatalogEntryAddToListFailure | Error adding new SessionCatalogEntry to the list of active catalogs (%1) | 0xCA178010L
MSCOP_E_CDataLoadCatalogCreateFailure | Could not create the catalog (%1) | 0xCA178011L
MSCOP_E_CDataLoadCatalogInitializeStringsFailure | Could not initialize catalog strings (%1) | 0xCA178012L
MSCOP_E_CDataLoadCatalogValidationFailure | Catalog validation failed, catalog: %1 (%2) | 0xCA178013L
MSCOP_E_CDataLoadCatalogLoadFailure | Catalog Load failed catalog: %1 (%2) | 0xCA178014L
MSCOP_E_CDataCreateSessionBadDataSource | Data Source not initialized correctly. | 0xCA178015L
MSCOP_E_CDataGetPropFailure | Could not get the DBINIT, %1 property (%2) | 0xCA178016L
MSCOP_E_CDataGetConnectionStringInitDataSourcePropNotFound | Error retrieving the InitDataSource property -- Not found | 0xCA178017L
MSCOP_E_CDataGetConnectionStringInitDataSourcePropBadType | Error - InitDataSource property has unexpected data type (%1) expecting VT_BSTR | 0xCA178018L
MSCOP_E_CDataGetConnectionStringCreateBinderFailure | Error creating Binder in DataSource initialization (%1) | 0xCA178019L
MSCOP_E_CDataGetConnectionStringBindFailure | Could not bind to connection string (%1) | 0xCA17801AL
MSCOP_E_CDataGetConnectionStringBadURL | Data Source URL connection string not set correctly | 0xCA17801BL
MSCOP_E_CDataGetServerConnGenIDFailure | Failed to generate connection id, SCODE: %1 | 0xCA17801CL


OLE DB CCommand Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CCommandParserInitializationFailure | Error Initializing Command properties (%1) | 0xCA148079L


OLE DB Object-Related Error Messages

This section contains:

  • OLE DB Object Change Error Messages
  • OLE DB Object Services Error Messages


OLE DB Object Change Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ObjChgsFillFixedDstMVVecConvert2Err | FillFixedDstMVVecConvert2: Could not convert from Source DBTYPE %1 to Dest DBTYPE %2 | 0xCA1A8001L
MSCOP_E_ObjChgsProcessVectorWSTRConvertErr | ProcessVector(WSTR): Could not convert from Source DBTYPE %1 to Dest DBTYPE %2 | 0xCA1A8002L
MSCOP_E_ObjChgsProcessVectorBSTRConvertErr | ProcessVector(BSTR): Could not convert from Source DBTYPE %1 to Dest DBTYPE %2 | 0xCA1A8003L


OLE DB Object Services Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_ObjSvcsOutOfMemory | Failure to allocate client object manager class instances virtual buffer, SCODE: %1 | 0xCA1D8001L
MSCOP_E_ObjSvcsCollectionAllocationErr | Failure to allocate collection, %1, hash/storage from virtual buffer, SCODE: %2 | 0xCA1D8002L
MSCOP_E_ObjSvcsCollectionInitializationErr | Failure to initialize collection, %1, hash/storage, SCODE: %2 | 0xCA1D8003L
MSCOP_E_ObjSvcsClientObjectManagerClassInstanceInfoAllocationErr | Failure to allocate client object manager class instance info array from virtual buffer, SCODE: %1 | 0xCA1D8004L
MSCOP_E_ObjSvcsClientObjectManagerClassInstanceVirtualBufferAllocationErr | Failure to allocate client object manager class instance virt buf ptr array from virtual buffer, SCODE: %1 | 0xCA1D8005L
MSCOP_E_ObjSvcsClientObjectManagerClassInstanceMVVirtualBufferAllocationErr | Failure to allocate client object manager class instance multi-val virt buf ptr array from virtual buffer, SCODE: %1 | 0xCA1D8006L
MSCOP_E_ObjSvcsNULLConnObjSvcsPointerInInit | NULL ConnObjSvcs pointer passed to CObjServices::Init | 0xCA1D8007L
MSCOP_E_ObjSvcsNULLCMbCatalogPointerInInit | NULL CMbCatalog pointer passed to CObjServices::Init | 0xCA1D8008L
MSCOP_E_ObjSvcsOLEDBConversionLibraryCreationFailure | Could not create the OLEDB Conversion library (%1) | 0xCA1D8009L
MSCOP_E_ObjSvcsDataProcessStateAllocationFailure | Failure to allocate pool of DataProcessState items, SCODE: %1 | 0xCA1D800AL
MSCOP_E_ObjSvcsOpenLogFileFailure | Open log file failed, file: %1 | 0xCA1D800BL
MSCOP_E_ObjSvcsInvalidClassID | Invalid class ID argument, SCODE: %1 | 0xCA1D800CL
MSCOP_E_ObjSvcsClassInstanceBufferFailure | Failure in attempt to obtain class instance buffers from respective buffer pools (allocsize=%1) | 0xCA1D800DL
MSCOP_E_ObjSvcsCreateObjFailure | Failure in Client Object Services CreateObj operation, SCODE: %1 | 0xCA1D800EL
MSCOP_E_ObjSvcsFlushFailure | ProcessObjChgs(), Failure in attempting to flush client object manager processed class instances | 0xCA1D800FL
MSCOP_E_ObjSvcsInstanceProcessingFailure | ProcessObjChgs(), Failure in processing of an ObjChanges instance, SCODE: %1 | 0xCA1D8010L
MSCOP_E_ObjSvcsAggFlushFailure | ProcessObjChgs(), Failure in attempting to flush aggregation buffer | 0xCA1D8011L
MSCOP_E_ObjSvcsAggInstanceProcessingFailure | ProcessObjChgs(), Failure in aggregation of an ObjChanges instance, SCODE: %1 | 0xCA1D8012L
MSCOP_E_ObjSvcsCompactedClassInstanceAllocationFailure | Failure to allocate client object manager compacted class instance info array from virtual buffer, SCODE: %1 | 0xCA1D8013L
MSCOP_E_ObjSvcsUniqueDataVirturalBufferAllocationFailure | Failure to allocate array of %1 from virtual buffer, SCODE: %2 | 0xCA1D8014L
MSCOP_E_ObjSvcsUniqueDataExtractionFailure | Failure to extract %1 information from instance of %2 hash/storage, SCODE: %3 | 0xCA1D8015L
MSCOP_E_ObjSvcsDumpBufferCreationFailure | Failed creating the virtual buffer for dumping | 0xCA1D8016L
MSCOP_E_ObjSvcsBinaryPackageWriteFailure | Failed writing the binary package into file | 0xCA1D8017L
MSCOP_E_ObjSvcsBinaryPackageHeaderWriteFailure | Failed writing the binary package file header into file | 0xCA1D8018L
MSCOP_E_ObjSvcsBinaryClassInstanceWriteFailure | Failed writing the binary class instance into file | 0xCA1D8019L
MSCOP_E_ObjSvcsBinaryUniqueDataWriteFailure | Failed writing the unique type into file | 0xCA1D801AL
MSCOP_E_ObjSvcsUniqueDataTypeOffsetWriteFailure | Failed writing the unique type offset size into file | 0xCA1D801BL
MSCOP_E_ObjSvcsPackageDumpFailure | Failed dumping the package into file | 0xCA1D801CL
MSCOP_E_ObjSvcsBinaryFilePointerSetFailure | Cannot set file pointer in the binary log file: %1 | 0xCA1D801DL
MSCOP_E_ObjSvcsBinaryFileOpenFailure | Open binary log file failed, file: %1 | 0xCA1D801EL
MSCOP_E_ObjSvcsPackageManagerNotInitialized | PackageManager not initialized | 0xCA1D801FL
MSCOP_E_ObjSvcsPackageWriteFailure | Failed writing the package into file | 0xCA1D8020L
MSCOP_E_ObjSvcsPackageFileHeaderWriteFailure | Failed writing the package file header into file | 0xCA1D8021L
MSCOP_E_ObjSvcsAggBufferFlushFailure | Failed flushing the aggregation buffer | 0xCA1D8022L
MSCOP_E_ObjSvcsURIDataAllocationFailure | Error creating new UriData data. Status=%1 | 0xCA1D8023L
MSCOP_E_ObjSvcsParseLevelDirsFailure | ParseLevelDirs() failure. status=%1 | 0xCA1D8024L


OLE DB Schema Manager Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_NoColDefForPersistentMem | There is no column definition for a persisted member of this class. | 0xCA410001L
MSCOP_E_NoIdentityCol | There is a no identity column definition in the table definition. | 0xCA410002L
MSCOP_E_UpdateStoredProcedureClassGenerationFailed | Cannot generate Update Stored Procedure for Class: %1, No Identity Member defined. | 0xCA410003L
MSCOP_E_UpdateStoredProcedureTableGenerationFailed | Generation of Update Stored Procedure failed for Table:%1 hr: %2 | 0xCA410004L
MSCOP_E_UpdateStoredProcedureTableStatementFailed | Update Stored Procedure statement failed for Table:%1. Statement: %2, hr: %3 | 0xCA410005L
MSCOP_E_StoredProcedureTableStatementFailed | Create Stored Procedure statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410006L
MSCOP_E_NoColDefsForMultiVal | No Column Definitions for multi value Table creation. Table name: %1 | 0xCA410007L
MSCOP_E_CreateStatementForTableFailed | Create statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410008L
MSCOP_E_AlterStatementForTableFailed | Alter statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410009L
MSCOP_E_CreateTableCatchHR | CreateTable(), catch(hr), code: %1 | 0xCA41000AL
MSCOP_E_CreateTableCatch | CreateTable(), exception caught | 0xCA41000BL
MSCOP_E_CreateKeyTableCatchHR | CreateTable(), catch(hr), code: %1 | 0xCA41000CL
MSCOP_E_CreateKeyTableCatch | CreateTable(), exception caught | 0xCA41000DL
MSCOP_E_MissingKeyMember | Missing key member in the class definition - %1 | 0xCA41000EL
MSCOP_E_DropStoredProcedureFailed | Drop Stored Procedure failed for Procedure:%1. Statement: %2, SCODE: %3 | 0xCA41000FL
MSCOP_E_DropTableFailed | Drop Table statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410010L
MSCOP_E_AppendFmtDataFailedForColDef | Error: AppendFmtData failed creating SQL for ColDef: %1, SCODE: %2 | 0xCA410011L
MSCOP_E_NULLHStmtInAddColumn | NULL HStmt* passed to CSchemaMgr::AddColumn | 0xCA410012L
MSCOP_E_NULLPartitionDefInADDColumn | NULL CPartitionDef* passed to CSchemaMgr::AddColumn | 0xCA410013L
MSCOP_E_NULLColDefInADDColumn | NULL CMbColDef* passed to CSchemaMgr::AddColumn | 0xCA410014L
MSCOP_E_NULLHStmtInDeleteColumn | NULL HStmt* passed to CSchemaMgr::DeleteColumn | 0xCA410015L
MSCOP_E_NULLPartitionDefInDeleteColumn | NULL CPartitionDef* passed to CSchemaMgr::DeleteColumn | 0xCA410016L
MSCOP_E_NULLColDefInDeleteColumn | NULL CMbColDef* passed to CSchemaMgr::DeleteColumn | 0xCA410017L
MSCOP_E_CreateIndexForTableFailed | Error: Create Index failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410018L
MSCOP_E_CreateLinkIndexCatchHR | CreateLinkIndex(), catch(hr), code: %1 | 0xCA410019L
MSCOP_E_CreateLinkIndexCatch | CreateLinkIndex(), exception caught | 0xCA41001AL
MSCOP_E_CreateIndexCatchHR | CreateIndex(), catch(hr), code: %1 | 0xCA41001BL
MSCOP_E_CreateIndexCatch | CreateIndex(), exception caught | 0xCA41001CL
MSCOP_E_CreateIDIndexCatchHR | CreateIDIndex(), catch(hr), code: %1 | 0xCA41001DL
MSCOP_E_CreateIDIndexCatch | CreateIDIndex(), exception caught | 0xCA41001EL
MSCOP_E_CreateKeyIndexCatchHR | CreateKeyIndex(), catch(hr), code: %1 | 0xCA41001FL
MSCOP_E_CreateKeyIndexCatch | CreateKeyIndex(), exception caught | 0xCA410020L
MSCOP_E_sp_recompileFailed | sp_recompile failed for Table:%1, SCODE: %2 | 0xCA410021L
MSCOP_E_CreateKeyIndexZeroMembers | CreateKeyIndex(), Key Def with zero persistent members, class: %1, key: %2 | 0xCA410022L
MSCOP_E_CreateKeyIndexTooManyMembers | CreateKeyIndex(), Key def with more than %1 persistent members, class: %2, key: %3 | 0xCA410023L
MSCOP_E_IndexNotCreated | Index not created | 0xCA410024L
MSCOP_E_CreateKeyIndexTooBig | Bytes in Key: %1 exceeds the SQL limit of %2 bytes | 0xCA410025L
MSCOP_E_NULLPartitionDefInCreateSearchIndexes | NULL PartitionDef found in CreateSearchIndexes for Class: %1 | 0xCA410026L
MSCOP_E_CreateForiegnKeyFailedForTable | Create Foreign Key Index failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA410027L
MSCOP_E_MissingPartitionDefInCreateClassView | Missing partition for the CreateClassView class: %1 | 0xCA410028L
MSCOP_E_CreateClassViewFailed | Failed creating the class view for Class: %1 | 0xCA410029L
MSCOP_E_CreateClassViewStatementFailed | Create class views for class:%1. Statement: %2, SCODE: %3 | 0xCA41002AL
MSCOP_E_CreatePartitionViewFailed | Failed creating the partition view for Partition: %1 | 0xCA41002BL
MSCOP_E_CreatePartitionViewStatementFailed | Create partition views for class:%1. Statement: %2, SCODE: %3 | 0xCA41002CL
MSCOP_E_CommitStatementForTableFailed | Commit statement failed for Table:%1. Statement: %2, SCODE: %3 | 0xCA41002DL
MSCOP_E_CreateForignKeyStatementFailed | Create foreign keys statement failed. Statement: %1, hr: %2 | 0xCA41002EL


OLE DB Enhanced Relation Data SubSystem Error Messages

Error Messages

Message ID | Message Text | HResult
ERDS_E_ClsInfoNotInCatalog | Class information is not in the catalog for the specified local class id, class-id: %1 | 0xCA5A0001L
ERDS_E_ExceptionInSave | General exception in Save operations, context id: %1 | 0xCA5A0002L
ERDS_E_ContextQuit | Quit is signalled in the context. | 0xCA5A0003L
ERDS_E_TooManyIdxIDs | Too many index ids while creating index map. | 0xCA5A0004L
ERDS_E_ClsInfoNotInContext | Class information is not in the class map of current context, class: %1, context-id: %2 | 0xCA5A0005L
ERDS_E_NoParentChildInCatalog | No parent child information for this class id pair, parent: %1, child: %2. | 0xCA5A0006L
ERDS_E_ParentChildNoKeyMems | This parent and child relation does not have any key members. | 0xCA5A0007L
ERDS_E_DBSearchJobBufEmpty | The database search job buffer is empty. | 0xCA5A0008L
ERDS_E_DBInsertJobBufEmpty | The database insert job buffer is empty. | 0xCA5A0009L
ERDS_E_FailedInIdxFromPathJob | There is a general failure in index from path job execution. | 0xCA5A000AL
ERDS_E_InvalidMemID | Invalid member id in initializing key member relation mapping. | 0xCA5A000BL
ERDS_E_InvalidRefSlotID | Invalid reference slot id in initializing key member relation mapping. | 0xCA5A000CL
ERDS_E_MismatchedNewEntries | There is a mismatch in number of new entries in this index map, class: %1, #entries: %2, #found: %3, cur entry: %4. | 0xCA5A000DL
ERDS_E_FailedInGenerateSequences | There is a failure in generating job sequences. | 0xCA5A000EL
ERDS_E_JobNotInMap | There is no job in the job map for given job number, parent id: %1, child id: %2 | 0xCA5A000FL
ERDS_E_MismatchMemRef | Mismatch between reference member and unique data slot information, unique slot id: %1, class: %2, member: %3 | 0xCA5A0010L
ERDS_E_InvalidMemLocalID | The local mem id in slots with unique data initialization. | 0xCA5A0011L
ERDS_E_NumOfPKeyMemsMismatch | There is a mismatch in number of key members in search format strings initialization. | 0xCA5A0012L


OLE DB Create Class Factory Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CClassFactoryCreateBinderObjectOEM | Failed to create the binder object. Out of memory | 0xCA118001L
MSCOP_E_CClassFactoryBinderObjectInitializationFailure | Failed to initialize the binder object. (%1) | 0xCA118002L
MSCOP_E_CClassFactoryDataSourceObjectEOM | Failed to create the data source object. Out of memory | 0xCA118003L
MSCOP_E_CClassFactoryDataSourceObjectInitializationFailure | Failed to initialize the data source object. (%1) | 0xCA118004L


Aggregation Layer CS SQL Provider Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_CSDWRowsetNULLDSORowParm | A NULL DSORow pointer passed to CS SQL Provider Rowset function. | 0xCA048005L
MSCOP_E_CSDWRowsetNULLDSOQryParm | A NULL DSOQuery pointer passed to CS SQL Provider Rowset function. | 0xCA048006L
MSCOP_E_CSDWBadCRowPointerInDSORow | Failed to get CRow pointer from DSORow. SCODE: %1 | 0xCA048007L
MSCOP_E_CSDWRowsetNULLMemIDArray | NULL Member ID array passed to CS SQL Provider function. | 0xCA048008L
MSCOP_E_CSDWRowsetNotEnoughMemoryForBCInfos | Not enough memory to allocate BCInfo structures. | 0xCA048009L
MSCOP_E_CSDWRowsetNULLMemDefInArray | NULL MemDef at index %1 in _pAllMembersByID array in Rowset. Class: %2 | 0xCA04800AL
MSCOP_E_CSDWRowsetNULLColDefInMemDef | NULL ColDef for MemDef: %1, Class: %2 | 0xCA04800BL
MSCOP_E_CSDWRowsetBindingColumns | Error binding Columns for Class: %1, SCODE: %2 | 0xCA04800CL
MSCOP_E_CSDWRowsetSetDBCOLUMNACCESSFailed | SetDBCOLUMNACCESS failed SCODE: %1 (name=%2, coltype=%3, memid=%4) | 0xCA04800DL
MSCOP_E_CSDWRowsetFetchFailed | Fetch from DB failed for Class: %1, SCODE: %2 | 0xCA04800EL
MSCOP_E_CSDWSessionFetchClsDefFailed | Failed while extracting ClsDef from PDSOQRY. SCODE: %1 | 0xCA04800FL
MSCOP_E_CSDWSessionFetchCommandTreeFailed | Failed while extracting Command Tree from PDSOQRY. SCODE: %1 | 0xCA048010L
MSCOP_E_CSDWSessionFetchOrderPropsFailed | Failed while extracting ORDER BY properties from PDSOQRY. SCODE: %1 | 0xCA048011L
MSCOP_E_CSDWSessionFetchPropListFailed | Failed while extracting Property List from PDSOQRY. SCODE: %1 | 0xCA048012L
MSCOP_E_CSDWSessionNotEnoughMemoryForPDSOROWSET | Not enough memory to allocate a PDSOROWSET for results. | 0xCA048013L
MSCOP_E_CSDWSessionNotEnoughMemoryForKeyStructures | Not enough memory to allocate Key structures Class: %1 | 0xCA048014L
MSCOP_E_CSDWSessionBuildKeyFailed | Unable to build Key from CRow data. SCODE: %1 | 0xCA048015L
MSCOP_W_CSDWRowsetDestroyingRowsetWithRefs | Destroying Rowset that has not been released. Ref count = %1. | 0x8A068016L
MSCOP_E_CSDWSessionClassNotFound | Class not found. Class name = %1. | 0xCA048017L
MSCOP_E_CSDWSessionNULLDSORowParm | A NULL DSORow pointer passed to CS SQL Provider Session function. | 0xCA048018L
MSCOP_E_CSDWSessionNULLDSOQryParm | A NULL DSOQuery pointer passed to CS SQL Provider Session function. | 0xCA048019L
MSCOP_E_CSDWSessionNULLMemDefInArray | NULL MemDef at index %1 in _pAllMembersByID array in Session. Class: %2 | 0xCA04801AL
MSCOP_E_CSDWSessionFetchObjectIDFailed | FetchObject failed in Session. Class: %1 | 0xCA04801BL
MSCOP_E_CSDWSessionGetPCIFailed | GetParentCreationInfo failed in Session. Class: %1 | 0xCA04801CL
MSCOP_E_CSDWSessionFetchClassInfoFailed | FetchClassInfo failed in Session. SCODE: %1 | 0xCA04801DL
MSCOP_E_CSDWSessionBadParentClsDef | GetParentClsDef failed in Session. SCODE: %1 | 0xCA04801EL
MSCOP_E_CSDWRowsetSetSValByMemIDFailed | SetSValByMemID failed in Session. SCODE: %1 | 0xCA04801FL
MSCOP_E_CSDWRowsetSetKeyPropertySELECT | Key property from SELECT in CCSDWRowset::GetNextRows | 0xCA048020L
MSCOP_E_CSDWRowsetSetInvalidPropertySet | Invalid property set in CCSDWRowset::GetNextRows | 0xCA048021L
MSCOP_E_CSDWRowsetSetNULLChildMemDef | Null Child MemDef found with Column name:%1 | 0xCA048022L
MSCOP_E_CSDWRowsetSetGetParentMemDefFailure | Failed to get Parent MemDef from Child Member name: %1 | 0xCA048023L


OLE DB DbConnectionPool Error Messages

Error Messages

Message ID | Message Text | HResult
MSCOP_E_OutOfMemoryInDbConnPool | Unable to allocate memory in Connection Pool. | 0xCA478001L
MSCOP_E_ConnPoolGetConnectionPoolFailure | Failed getting DB Connection Pool. SCODE: %1 | 0xCA478002L
MSCOP_E_ConnPoolConnectFailed | Connection allocation failed. | 0xCA478003L
MSCOP_E_ConnPoolNoMoreDbConns | Connection pool ran out of connections. | 0xCA478004L
MSCOP_E_ConnPoolAllocFailed | Connection pool's alloc connection failed, index = %1, conn str: %2 | 0xCA478005L
MSCOP_E_ConnPoolConnNotIdle | Connection on idle queue not idle, index = %1, status = %2 | 0xCA478006L
MSCOP_E_ConnPoolStmtInitFailed | Connection pool, statement initialization failed, index = %1 | 0xCA478007L
MSCOP_E_ConnPoolFreeStmtInvalidUserId | Connection pool free statement called with invalid user id. | 0xCA478008L
MSCOP_W_RollbackInFree | Connection free called in active transaction, rolling back the current transaction. | 0xCA498009L
MSCOP_InitializeGlobalConnectionPoolInfo | DbConnPool(%1/%2) Init, max conn: %3, idle time: %4 | 0x4A48800AL
MSCOP_E_DbConnPoolInitFailed | Connection pool initialization failed. | 0xCA47800BL
MSCOP_E_GetConnPoolFailed | Unable to get Global Connection pool. | 0xCA47800CL
MSCOP_W_ClearingHStmt | HStmt not cleared from previous command. - Clearing results. | 0x8A49800DL
MSCOP_E_ConnectFailure | Connect failed. fastload: %1, Server: %2, DB: %3, UserID:%4, hr: %5 | 0xCA47800DL
MSCOP_E_ReleaseICommandSemaphoreFailed | Error releasing ICommand semaphore. SCODE: %1 | 0xCA47800EL
MSCOP_E_ReleaseIRowsetFastLoadSemaphoreFailed | Error releasing IRowsetFastLoad semaphore. SCODE: %1 | 0xCA47800FL
MSCOP_E_CreateICommandSemaphoreFailed | Failed to create ICommand Connection semaphore. SCODE: %1 | 0xCA478010L
MSCOP_E_CreateIRowsetFastLoadSemaphoreFailed | Failed to create IRowsetFastLoad Connection semaphore. SCODE: %1 | 0xCA478011L
MSCOP_E_DefaultConnectionStringLookupFailed | Default connection string lookup failed. | 0xCA478012L
MSCOP_E_NULLDBProps | NULL DB Properties found. | 0xCA478013L
MSCOP_E_ServerLookupFailed | Failed to find Server in map. Server: %1 | 0xCA478014L
MSCOP_E_DBConnectionPoolPropertyObjectOOM | Not enough memory to allocate new DB Connection pool property object. | 0xCA478015L
MSCOP_E_ServerConnectionPoolPropertyObjectOOM | Not enough memory to allocate new Server Connection pool. | 0xCA478016L
MSCOP_E_ServerConnectionPoolInitializationFailed | Unable to initialize Server connection pool. Server: %1, SCODE: %2 | 0xCA478017L
MSCOP_E_DumpIErrorInfo | HRESULT: %1, Minor Code: %2, Source: %3, Description %4 | 0xCA478018L
MSCOP_E_DumpSQLError | SQL Error: %1, Description: %2 | 0xCA478019L
MSCOP_E_DumpSQLErrorState | Error state: %1, Severity: %2, Server: %3, Line#: %4, msg: %5 | 0xCA47801AL
MSCOP_E_DumpDefaultMessage | HRESULT: %1, Description: %2 | 0xCA47801BL
MSCOP_E_NULLPropertiesInHDbcConnect | NULL Properties pointer in HDbc::Connect | 0xCA47801CL
MSCOP_E_SQLServerConnectionFailed | Lost connection to SQL Server | 0xCA47801DL
MSCOP_E_SetColOrdinalsMissingColumn | SetColOrdinals(), missing col : %1 | 0xCA47801EL
MSCOP_E_InitDBIDsFromColNamesMismatch | InitDBIDsFromColNames(), mismatched named column count, cnt: %1, col: %2 | 0xCA47801FL
MSCOP_E_GetIOpenRowsetFailedForTable | Can't get IOpenRowset in table: %1 | 0xCA478020L
MSCOP_E_ICommandConnectionOOM | Not enough memory to allocate %1 ICommand connection info structures. | 0xCA478021L
MSCOP_E_IRowsetFastLoadConnectionOOM | Not enough memory to allocate %1 IRowsetFastLoad connection info structures. | 0xCA478022L
MSCOP_E_NoIRowsetFastLoadConnections | Requested an IRowsetFastLoad connection, but this pool was not initialized with any. SCODE: %1 | 0xCA478023L
MSCOP_E_NoICommandConnections | Requested an ICommand connection, but this pool was not initialized with any. SCODE: %1 | 0xCA478024L


OLE DB Utility Error Messages

This section contains:

  • Asynchronous Job Network Error Messages for the OLE DB
  • Thread Pool Error Messages for the OLE DB
  • Memory Utility Error Messages for the OLE DB
  • Time Zone Error Messages for the OLE DB
  • Performance Counter Error Messages for the OLE DB
  • Class Handler and Helper Error Messages for the OLE DB
  • Set Helper Error Messages for the OLE DB
  • String Parser Error Messages for the OLE DB
  • Unique Data Error Messages for the OLE DB
  • Data Parser Error Messages for the OLE DB
  • ID Manager Error Messages for the OLE DB
  • Import Application Error Messages for the OLE DB
  • Import Error Messages for the OLE DB


Asynchronous Job Network Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_FmtBufFull | The format buffer is full. | 0xCA441F40L
ERDS_E_NoIncrWhenJobScheduled | Job is already scheduled, but some other job is trying to make this as a dependent. | 0xCA441F41L
ERDS_E_JobNotInit | Job is not initialized. | 0xCA441F42L
ERDS_E_JobExecQueueNotInit | Job execution queue is not initialized. | 0xCA441F43L
ERDS_E_FailedInDoJobOfExecQueue | There is a general failure when executing this job. | 0xCA441F44L
ERDS_E_JobMgrInShutDown | Job manager is in shutdown state. | 0xCA441F45L
ERDS_E_ExceptionInDoJobStart | Exception in DoJob, started: %1, tid: %2, desc: %3 | 0xCA441F46L
ERDS_E_ExceptionInDoJobEnd | Exception in DoJob, in job end: %1, tid: %2, desc: %3 | 0xCA441F47L


Thread Pool Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_ThrdPoolNotInit | Thread pool is not initialized or failed to initialized. | 0xCA510001L
ERDS_E_ThrdPoolErrorRetrievingCurrentAccessToken | Error retrieving current access token (%1) | 0xCA510002L
ERDS_E_ThrdPoolExceptionInAsyncFunc | DoAsyncFuncCall(), exception in async func, seqID: %01, h: %3 | 0xCA510003L


Memory Utility Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_OpenStreamOnURLFailed | Failed to open stream on URL %1, SCODE: %2 | 0xCA441F48L


Time Zone Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_TimeZoneFailedGettingSourceTimezone | Failed getting source timezone %1 | 0xCA441F49L
ERDS_E_TimeZoneFailedGettingDestinationTimezone | Failed getting destination timezone %1 | 0xCA441F4AL
ERDS_E_TimeZoneBindError | Error binding to Timezone Info, hr: %1 | 0xCA441F4BL
ERDS_E_TimeZoneFailedRetrievingTimezone | Failed retrieving the timezone %1: %2 | 0xCA441F4CL


Performance Counter Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_PerfCounterInitialization | PerfCntrMgr::PerfCntrMgr(), initializing, ref count = %1 | 0xCA441F4DL
ERDS_E_PerfCounterObjectCreationFailed | Error: PerfCntrMgr(), Failed to create perfmon counters object. Error code: %1 | 0xCA441F4EL
ERDS_E_PerfCounterObjectInitializationFailed | Error: PerfCntrMgr(), Failed to initialize perfmon counters object. Error code: %1 | 0xCA441F4FL
ERDS_E_PerfCounterObjectDestructor | PerfCntrMgr::~PerfCntrMgr(), ref count = %1 | 0xCA441F50L


Class Handler and Helper Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_CProvClsHandlerGetMemInfoFailure | CProvClsHandler::OnCreate(), error from GetMemInfoByColName(), hr: %1, cls: %2, mem: %3 | 0xCA441F51L
ERDS_E_CProvClsHandlerHandlerInfoMismatch | CProvClsHandler::OnInst(), handler info mismatch parser class def, cls:%1, line#: %2 | 0xCA441F52L
ERDS_E_CProvClsHandlerInvalidDataIgnored | CProvClsHandler::OnInst(), ignoring invalid data in an insta cls def, class mem count (%1) != instance val count (%2), cls:%3, line#: %4 | 0xCA441F53L
ERDS_E_CProvClsHandlerErrorSettingValues | CProvClsHandler::OnInst(), error in setting values, cls:%1, line#: %2, hr: %3 | 0xCA441F54L
ERDS_E_CProvClsHandlerSessionBindError | CProvClsHandlerFactory::Init(), Error Binding to session, hr: %1 | 0xCA441F55L
ERDS_E_CProvSessionCreateBinderObjectFailure | CProvSession::Connect, error creating Binder object, hr: %1 | 0xCA441F56L
ERDS_E_CProvSessionBindFailure | CProvSession::Connect(), error Binding to session, hr: %1 | 0xCA441F57L
ERDS_E_CProvClsDefNewInstanceCreationFailure | CProvClsDef::NewInst(), failed to create a new instance. URL: %1, hr: %2 | 0xCA441F58L


Set Helper Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_SetWStringCannotConvertType | SetWString(), cannot convert DBTYPE %1 to WString | 0xCA441F59L
ERDS_E_SetFILETIMECannotConvertType | SetFILETIME(), cannot convert DBTYPE %1 to FILETIME | 0xCA441F5AL
ERDS_E_ConvertStringToERDSVariantOutOfUSHORTRange | Error - value out of range for a ushort %1 | 0xCA441F5BL
ERDS_E_ConvertStringToERDSVariantOutOfULONGRange | Error - value out of range for a ulong %1 | 0xCA441F5CL
ERDS_E_ConvertStringToERDSVariantConversionFailed | Could not convert EType %1 from string %2 | 0xCA441F5DL


String Parser Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_CStrParserErrorConvertingTimeStampToFILETIME | CStrParser::ParseDateTime(), Error converting time stamp to filetime (%1) | 0xCA441F5EL
ERDS_E_CStrParserUnknownTimeDiscriminant | Could not parse time correctly - %1 unknown time discriminant | 0xCA441F5FL
ERDS_E_CStrParserDateConvertFailure | Error: Could not convert date/time values. SCODE: %1 | 0xCA441F60L
ERDS_E_CStrParserDateParsingError | Error parsing date (%1) | 0xCA441F61L
ERDS_E_CStrParserDateParsingErrorExpectingEndBrace | Error parsing time - Expecting end brace | 0xCA441F62L


Unique Data Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_UniqueDataMapNotInit | Unique data value map is not initialized, type : %1 | 0xCA570001L
ERDS_E_UniqueDataTypeMismatch | Unique data type mismatch in data to id conversion, unique data type: %1, given type : %2 | 0xCA570002L
ERDS_E_WrongSchemaVer | Server is using different version of the catalog, server version: %1, given version: %2 | 0xCA570003L
ERDS_E_CUniqueDataLoadFromDBNotImplemented | CUniqueData::LoadFromDB() unimplemented function called, type: %1 | 0xCA570004L
ERDS_E_CUniqueDataGetUniqueDataTypeNotImplemented | GetUniqueData(), type: %1, not implemented, hr = %2 | 0xCA570005L


Data Parser Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
MSCOP_E_TknIsNull | Parsing NULL value. | 0xCA4A0001L
ERDS_E_TknNotFound | While parsing data, required token is not found, line: %1, pos: %2, file: %3 | 0xCA4A0002L
ERDS_E_ExpectingDateTime | While parsing data, date/time token is expected, line: %1, pos: %2, file: %3 | 0xCA4A0003L
ERDS_E_ExpectingDate | While parsing data, date token is expected, line: %1, pos: %2, file: %3 | 0xCA4A0004L
ERDS_E_ExpectingTime | While parsing data, time token is expected, line: %1, pos: %2, file: %3 | 0xCA441F63L
ERDS_E_ExpectingGUID | While parsing data, GUID token is expected, line: %1, pos: %2, file: %3 | 0xCA4A0005L
ERDS_E_ExpectingClsDefTag | Expecting ClsDef after /, line: %1, pos: %2, file: %3 | 0xCA4A0006L
ERDS_E_UnknownTagInClsDef | Unknown tag in ClsDef, line: %1, pos: %2, file: %3 | 0xCA4A0007L
ERDS_E_ExpectingCommaInInst | Expecting comma after a value in instance definition, line: %1, pos: %2, file: %3 | 0xCA4A0008L
ERDS_E_UnknownType | An unknown type specified for member definition, line: %1, pos: %2, file: %3 | 0xCA4A0009L
ERDS_E_ExpectingMemName | Expecting a member name, line: %1, pos: %2, file: %3 | 0xCA4A000AL
ERDS_E_ExpectedTypeName | Expecting a type name, line: %1, pos: %2, file: %3 | 0xCA4A000BL
ERDS_E_InstTooBig | Instance is too big to fit in the statically allocated size, line: %1, pos: %2, file: %3 | 0xCA4A000CL
ERDS_E_NonSupportedMemTkn | Internal inconsistency error, instance parser encountered non supported token type in member, line: %1, pos: %2, file: %3 | 0xCA4A000DL
ERDS_E_OpenFileError | Data parser unable to open the given file, line: %1, pos: %2, file: %3 | 0xCA4A000EL
ERDS_E_DataParserInitError | Initialization of data parser from IStream failed, line: %1, pos: %2, file: %3 | 0xCA4A000FL
ERDS_E_UnknownTag | Unknown tag, only ClsDef and Include are supported at highest level, line: %1, pos: %2, file: %3 | 0xCA4A0010L
ERDS_E_ExpectingNum | Expecting a number, line: %1, pos: %2, file: %3 | 0xCA4A0011L
ERDS_E_ExepectingBeginTag | Expecting a being tag '<', line: %1, pos: %2, file: %3 | 0xCA4A0012L
ERDS_E_ExpectingEndTag | Expecting an end tag '>', line: %1, pos: %2, file: %3 | 0xCA4A0013L
ERDS_E_ExpectingSymbol | Expecting a symbol, line: %1, pos: %2, file: %3 | 0xCA4A0014L
ERDS_E_ExpectingSymbolOrStr | Expecting a symbol or a string, line: %1, pos: %2, file: %3 | 0xCA4A0015L
ERDS_E_DataFileReadError | Read error while reading data from data file, line: %1, pos: %2, file: %3 | 0xCA4A0016L
ERDS_E_TokenBufFull | Token buffer is full, line: %1, pos: %2, file: %3 | 0xCA4A0017L
ERDS_E_ExpectingIncFileName | Expecting file name in include tag, line: %1, pos: %2, file: %3 | 0xCA4A0018L
ERDS_E_ExpectingInstTagSymbol | Expecting a tag name in the class instance tag definition, line: %1, pos: %2, file: %3 | 0xCA4A0019L
ERDS_E_ExpectingClsName | Expecting a class name in the class definition, line: %1, pos: %2, file: %3 | 0xCA4A001AL
ERDS_E_ExpectingAlphabet | Expecting a alphabetic character at beginning of this symbol, line: %1, pos: %2, file: %3 | 0xCA4A001BL
ERDS_E_TooBigNum | There are too many digits in this number, line: %1, pos: %2, file: %3 | 0xCA4A001CL
ERDS_E_ExpectingComma | Expecting a comma, line: %1, pos: %2, file: %3 | 0xCA4A001DL
ERDS_E_ExpectingLSQBracket | Error -- expected left SQL bracket. | 0xCA4A001EL
ERDS_E_ExpectingRSQBracket | Error -- expected right SQL bracket. | 0xCA4A001FL
ERDS_S_StopSignaled | Async job is running and stop is signaled. | 0xCA4A0020L
ERDS_E_DataParserFileFormatTag | Error parsing the FileFormatTag: hr: %1 | 0xCA4A0021L
ERDS_E_DataParserExpectingEqual | Error in parsing an instance, expecting '=', hr: %1. | 0xCA4A0022L
ERDS_E_DataParserExpectingSymbolOrString | Error in parsing for symbol or string, hr: %1 | 0xCA4A0023L
ERDS_E_DataParserExpectingBoolean | Error in parsing for boolean, hr: %1 | 0xCA4A0024L
ERDS_E_DataParserExpectingEqualForMember | Error in parsing an instance, expecting '=' after Member name -- line: %1, pos: %2, mem: %3 file: %4 | 0xCA4A0025L
ERDS_E_DataParserUnknownMemberName | Error in parsing an instance, unknown Member name -- line: %1, pos: %2, mem: %3 file: %4 | 0xCA4A0026L
ERDS_E_DataParserErrorInInstance | Error in parsing an instance -- line: %1, pos: %2, file: %3 | 0xCA4A0027L
ERDS_E_DataParserErrorInMemberInstance | Error in parsing an instance -- line: %1, pos: %2, mem: %3 file: %4 | 0xCA4A0028L
ERDS_E_CDataParserFileOpenError | CDataParser::InitFromFile(), Can't open file: %1 | 0xCA4A0029L
ERDS_E_CDataParserInitFailed | Init for CDataParser failed, hr: %1 | 0xCA4A002AL
ERDS_E_CDataParserFileReadFailed | Can't read in the next buffer in file. | 0xCA4A002BL
ERDS_E_CDataParserBufferConvertToUnicodeFailed | Failed converting buffer into unicode. | 0xCA4A002CL
ERDS_E_DataParserNameValueActivationTag | Error in parsing name value pair activation tag -- line: %1, pos: %2, file: %3 | 0xCA4A002DL
ERDS_E_DataParserDataFormatFileInitializationFailed | Failed initializing the data format file: %1, hr: %2 | 0xCA4A002EL
ERDS_E_DataParserDataUnsupportedDataType | ResolveDataType(), unsupported data type, type name: %1 | 0xCA4A002FL
ERDS_E_DataParserInvalidTerminator | ResolveTerminator(), empty terminator string, invalid terminator | 0xCA4A0030L
ERDS_E_NumberOutOfRange | Number %1, out of range for this type. | 0xCA4A0031L


ID Manager Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_IDCounterTblCreation | Cannot create ID counter table: %1 | 0xCA540001L
ERDS_S_IDCounterExists | Counter already exists in the database, no counter created: %1 | 0x4A550001L
ERDS_E_IDCounterDoesntExist | Counter %25s doesnt exist in the table %1 | 0xCA540002L
ERDS_E_ErrorInitCounter | Error initializing CIdCounter. Counter name: %1 | 0xCA540003L
ERDS_E_IdsExhausted | Ids exceeded the id range in the database, for the counter: %1 | 0xCA540004L
ERDS_E_IDMgrInvalidHStmtInInit | Error: Invalid HStmt passed to ID Manager Init. SCODE: %1 | 0xCA540005L
ERDS_E_IDMgrInvalidHStmtInCreateCounter | Error: Invalid HStmt passed to CreateCounter. SCODE: %1 | 0xCA540006L
ERDS_E_IDMgrExecFailedInCreateCounter | Exec failed in CreateCounter(), hr: %1 | 0xCA540007L
ERDS_E_IDMgrBindFailedInCreateCounter | Bind failed in CreateCounter(), hr: %1 | 0xCA540008L
ERDS_E_IDMgrMapSetAtFailedInCreateCounter | Map Set Error in CreateCounter(), hr: %1 | 0xCA540009L
ERDS_E_IDMgrExecFailedInNewIds | Exec failed in GetNewIds(), hr: %1 | 0xCA54000AL
ERDS_E_IDMgrBindFailedInNewIds | Bind failed in GetNewIds(), hr: %1 | 0xCA54000BL
ERDS_E_IDMgrFetchFailedInNewIds | Fetch failed in GetNewIds(), hr: %1 | 0xCA54000CL


Import Application Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
ERDS_E_ImpAppTooManyIncludes | Too many nested includes, depth: %1, file: %2 | 0xCA441F64L
ERDS_E_ImpAppBadIncludeFilePath | Unable compose full path for include file, cur path: %1, new file:%2 | 0xCA441F65L
ERDS_E_ImpAppProcessingError | Failed processing file: %1, line: %2, pos: %3, hr: %4 | 0xCA441F66L
ERDS_E_ImpAppSemaphoreCreateFailure | CMultiConnApp::Init(), unable to create semaphore | 0xCA441F67L
ERDS_E_ImpAppSemaphoreWaitFailure | CMultiConnApp::DoProcess(), wait for semaphore failed, result of wait: %1 | 0xCA441F68L


Import Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
RATE_STRING | Rate: %1 | 0xCB008110L
NO_FILE_ERROR | The following log data source doesn't have any log files associated with it: %1 | 0xCB008111L
NO_FTP_FILE_ERROR | The following log data source doesn't have any ftp log files associated with it: %1 | 0xCB008112L
OPEN_ALL_FILE_ERROR | Unable to open any log files associated with the following log data source : %1 | 0xCB008113L
OPEN_ALL_FTP_FILE_ERROR | Unable to open any remote files associated with the following ftp log data source: %1 | 0xCB008114L
FILE_SIZE_ERROR | Unable to obtain the size of the following log file: %1 | 0xCB008115L
FTP_FILE_SIZE_ERROR | Unable to obtain the size of the following remote log file: %1 | 0xCB008116L
TOTAL_SIZE_STRING | Total size: %1 | 0xCB008117L
INPUT_SOURCE_STRING | Log data source: %1 | 0x8B008118L
OVERLAP_ABORT_STATUS | Overlap detected. User chose to abort this import job | 0xCB008119L
OVERLAP_SKIP_STATUS | Overlap detected. User chose to skip to next log file %1 | 0xCB00811AL
NETWORK_ERROR | Unable to connect to the network %1 | 0xCB00811BL
FTP_SESSION_ERROR | Unable to build a FTP session %1 | 0xCB00811CL
CONNECT_ALL_INPUT_SOURCE_ERROR | Unable to open any log files in any log data source | 0xCB00811DL
OUT_OF_MEMORY_ERROR | Out of Memory | 0xCB00811EL
NO_INPUT_SOURCE_ERROR | There is no log data source specified %1 | 0xCB00811FL
LOCALE_INFO_WARNING | Error when getting locale information. Using United States default locale instead %1 | 0xCB008120L
ADD_SERVER_FAILED | Error writing to database while adding server : %1 | 0xCB008121L
EDIT_SERVER_FAILED | Error writing to database while editing server : %1 | 0xCB008122L
ADD_SITE_FAILED | Error writing to database while adding site : %1 | 0xCB008123L
EDIT_SITE_FAILED | Error writing to database while editing site : %1 | 0xCB008124L
LINK_SVRSITE_FAILED | Error writing to database while linking server %1 and site %2 | 0xCB008125L
UNLINK_SVRSITE_FAILED | Error writing to database while unlinking server %1 and site %2 | 0xCB008126L
ADD_INP_FAILED | Error writing to database while adding log data source : %1 | 0xCB008127L
UPD_INP_FAILED | Error writing to database while updating log data source : %1 | 0xCB008128L
LINK_INPSVR_FAILED | Error writing to database while linking log data source %1 and server %2 | 0xCB008129L
UNLINK_INPSVR_FAILED | Error writing to database while unlinking log data source %1 and server %2 | 0xCB00812AL
READ_PSUM_FAILED | Error reading database. Cannot read job history table %1 | 0xCB00812BL
DISCONNECT_FAILED | Unable to disconnect %1 | 0xCB00812CL
CONNECT_FAILED | Error when connecting to database. Driver %1, Server %2 | 0xCB00812DL
CREATE_PARSER_FAILED | Out of memory. Unable to create new parser %1 | 0xCB00812EL
LAUNCH_THREAD_FAILED | Out of memory. Unable to launch import thread %1 | 0xCB00812FL
READ_INP_FAILED | Error reading database. Cannot read log data sources %1 | 0xCB008131L
READ_SVR_FAILED | Error reading database. Cannot read servers %1 | 0xCB008132L
READ_SITE_FAILED | Error reading database. Cannot read sites %1 | 0xCB008133L
READ_SVRLNK_FAILED | Error reading database. Cannot read server links for : %1 | 0xCB008134L
READ_SITELNK_FAILED | Error reading database. Cannot read site links for : %1 | 0xCB008135L
NO_INPUT_SOURCES | Could not find any log data source %1 | 0xCB008136L
NQ_NULL_HIT_IGNORED | Internal error - Attempt to enqueue null hit ignored %1 | 0xCB008137L
INVALID_HIT_IGNORED | Internal error - Ignoring invalid hit dequeued for processing %1 | 0xCB008138L
NULL_USER_IGNORED | Internal error - Attempt to add null user ignored %1 | 0xCB008139L
USER_FINDREMOVE_FAILED | Internal error - Unable to find and remove user with the specified key %1 | 0xCB00813AL
GET_FILTER_FACTORY_ERROR | Internal error - Error when retrieving the filter factory interface pointer %1 | 0xCB00813BL
GET_DATA_FILTER_ERROR | Internal error - Error when retrieving the data filter interface pointer %1 | 0xCB00813CL
DECODE_ERROR | Error decoding a compressed buffer %1 | 0xCB00813DL
EMPTY_FILE_ERROR | Following log file is empty : %1 | 0xCB00813EL
EMPTY_FTP_ERROR | Following ftp file is empty : %1 | 0xCB00813FL
ERROR_NO_LOGFILE_MATCH | Internal error - Could not find a match for the log file format specified %1 | 0xCB008140L
OPEN_FILE_ERROR | Unable to open file: %1 | 0xCB008141L
READ_FILE_ERROR | Unable to read file: %1 | 0xCB008142L
NO_VALID_HIT_ERROR | This log file does not contain any valid hit : %1 | 0xCB008143L
LOG_FORMAT_DETECTION_ERROR | Commerce Server could not detect the log file format for the following log data source : %1 | 0xCB008144L
FINISH_STATUS | All files have been processed %1 | 0xCB008145L
ERROR_IMPORT_ABORTED_BY_USER | Import job aborted by user %1 | 0xCB008146L
IMPORT_INIT_OUT_OF_MEMORY | Error creating the DB storeit object : out of memory | 0xCB008147L
IMPORT_INIT_STORAGE_DB_ERROR | Error while initializing the DB | 0xCB008148L
IMPORT_INIT_STORAGE_SITE_ERROR | Error loading the Site Summary into the DB | 0xCB008149L
IMPORT_INIT_STORAGE_IMPORT_OPTIONS_ERROR | Error getting the Import Options from the DB | 0xCB00814AL
IMPORT_INIT_STORAGE_TASK_HISTORY_ERROR | Error inserting the TaskHistory into the DB | 0xCB00814BL
OUT_OF_MEMORY_AGG_ENGINE | Error creating the aggregation engine: Out of memory | 0xCB00814CL
OUT_OF_MEMORY_JOB_BUFFER | Error creating the JobBufferMgr: Out of memory | 0xCB00814DL
ERROR_INIT_JOB_BUFFER | Error initializing the job buffer manager | 0xCB00814EL
ERROR_AUTH_MGR_INSTANTIATION | Cannot instantiate the AuthManager object(%1) | 0xCB00814FL
OUT_OF_MEMORY_STRING_ALLOC | Failed allocating the BSTR Commerce site name: Out of memory | 0xCB008150L
ERROR_AUTH_MGR_INIT | Cannot initialize the AuthManager object(%1) for site: %2 | 0x8B008151L
ERROR_DUP_LOG_DATA_SOURCE | Duplicate Log Data Source: %1. Second instance ignored. | 0xCB008152L
OUT_OF_MEMORY_LOG_DATA_SOURCE | Error creating log data source : Out of memory | 0xCB008153L
ADD_LOG_DATA_SOURCE | Adding Log Data Source: %1 | 0x4B008154L
ERROR_ADD_LOG_DATA_SOURCE | Failed adding the log files | 0xCB008155L
ADD_LOG_FILE | Logfile Name: %1 | 0x4B008156L
WARN_NO_DATA | One element of the safearray at location: %1 contains no data | 0x8B008157L
IMPORT_OPTIONS | Import Options\n \tMaxHitsBuffer : %1\n \tBufferMaxSize : %2\n \tHashBucketSize : %3\n \tOverlapMins : %4\n \tUsersPurge : %5 | 0x4B008158L
ERROR_TIME_ZONE_INIT | Timezone initialization failed (%1) | 0xCB008159L
OUT_OF_MEMORY_HITS_PARSER_FACTORY | Could not create a Hits-Parser factory.: Out of memory | 0xCB00815AL
OUT_OF_MEMORY_HITS_PARSER_FACTORY2 | Parser Factory could not create a %1-hits parser. : Out of memory | 0xCB00815BL
BEGIN_PROCESSING | Begin Processing, Time: %1\n | 0x4B00815CL
ERROR_BEGIN_IMPORTS | Cannot begin imports - No Sites for Server %1 | 0xCB00815DL
ERROR_BEGIN_IMPORTS2 | Cannot begin imports - No Servers for LDS %1 | 0xCB00815EL
ERROR_BEGIN_IMPORTS3 | Cannot begin import - No Log Data Sources added | 0xCB00815FL
ERROR_IMPORT_DATA_SOURCE_NOT_ADDED | In Web log import No log data source loaded successfully yet | 0xCB008160L
ERROR_IMPORT_INVALID_CONFIG | Error validating configuration. status code : %1 (%2) | 0xCB008161L
ERROR_IMPORT_LAUNCH_PARSER | Error launching parser. status code : %1 (%2) | 0xCB008162L
ERROR_IMPORT_NO_HITS | Log Import Task did not import any hits | 0xCB008163L
OUT_OF_MEMORY_HITS_BUFFER_INFO | Can't allocate memory for HitBufferInfo structure :Out of memory | 0xCB008164L
ERROR_GLOBAL_MANAGER | Can't get the global job manager | 0xCB008165L
ERROR_JOB_QUEUE | Can't get the job queue | 0xCB008166L
OUT_OF_MEMORY_HITS_ARRAY | Can't create the hits array:Out of memory | 0xCB008167L
OUT_OF_MEMORY_VIRTUAL_BUFFER | Can't create the virtual buffer for the hits strings:Out of memory | 0xCB008168L
ERROR_NEW_SYNC_JOB_GROUP | Can't create a new sync group | 0xCB008169L
OUT_OF_MEMORY_USER_MAP | Can't allocate memory for UsersMap:Out of memory | 0xCB00816AL
OUT_OF_MEMORY_EVENT_PARSER | Can't allocate memory for CEventsParser:Out of memory | 0xCB00816BL
ERROR_EVENTS_PARSER_INIT | Can't init the events parser | 0xCB00816CL
OUT_OF_MEMORY_HIT_BUFFER | Can't allocate memory for HitBufferInfo's virtual buffer pointers:Out of memory | 0xCB00816DL
ERROR_PARSER_EVENT | Error creating the parser buffer event | 0xCB00816EL
ERROR_INVALID_VIRTUAL_BUFFER | Invalid virtual buffer to be used by the hits buffer | 0xCB00816FL
ERROR_JOB_DISPATCH | Error dispatching new job. status code : %1 (%2) | 0xCB008170L
ERROR_HIT_BUFFER | Error hit count == 0 and AllocElem() failed, buf adr : %1, tid: %2 | 0xCB008171L
ERROR_RETRV_NEW_BUFFER | Error retreiving new buffer. status code : %1 (%2) | 0xCB008172L
ERROR_NULL_BUFFER | Error: retreived NULL buffers | 0xCB008173L
OUT_OF_MEMORY_ALLOC_HIT_BUFFER | Error allocating element. This should never happen:Out of memory | 0xCB008174L
ERROR_IE_LAUNCH | Error launching a new IE job. %1 | 0xCB008175L
ERROR_IO_COMPLETION_PORT | Can't associate file with IO Completion Port. %1 | 0xCB008176L
ERROR_W3C_INCOMPATIBLE_LOG_FILE | This is not a valid W3C log file - %1 | 0xCB008177L
ERROR_IO_COMPLETION_PORT2 | Failed creating the IO completion port. | 0xCB008178L
ERROR_TIME_ZONE_INIT2 | Timezone initialization failed (%1) | 0xCB008179L
ERROR_CREATE_VIRTUAL_BUFFER | Failed creating the parser virtual buffer | 0xCB00817AL
ERROR_MAX_HIT_PER_BUFFER | MaxHitPerBuffer is less than 1. Not valid. | 0xCB00817BL
ERROR_TIME_RANGE | TimeRangeInSecs less 1. Not valid. | 0xCB00817CL
ERROR_CREATE_VIRTUAL_BUFFER2 | Failed creating the MultHit parser's virtual buffer | 0xCB00817DL
ERROR_CREATE_HIT_BUFFER | Failed creating the hit processing buffers | 0xCB00817EL
ERROR_CREATE_HIT_ARRAY | Failed creating the temporary hit array | 0xCB00817FL
ERROR_SYNCHRONOUS_FLUSH_STORAGE | In SynchronousFlushStorage(), CreateRow() failure. status=%1 | 0xCB008180L
ERROR_CONNECTION_POOL_INIT | DB connection pool initialization failed. SCODE: -1 | 0xCB008181L
ERROR_IMPORT_OPTIONS_LOAD | Failed loading the import options: %1 | 0xCB008182L
ERROR_BINDER | Error creating Binder object, status code : %1 | 0xCB008183L
ERROR_BINDER_SESS | Error Binding to session number %1, status code : %2 | 0xCB008184L
ERROR_SSN_ID_OUT_OF_BOUNDS | Session ID is out of bounds. Max session : %1, Requested Session : %2 | 0xCB008185L
ERROR_ID_MGR_INIT | Error Intiaizing IdMgr | 0xCB008186L
ERROR_COUNTER_CREATE | Error Creating Counter | 0xCB008187L
ERROR_NO_TABLE | Could not find table : %1 | 0xCB008188L
ERROR_BIND_LDS | Error binding to Log Data Sources. | 0xCB008189L
ERROR_SRVR_GROUP_RETRIEVE | Failed retrieving the server group row: %1 | 0xCB00818AL
ERROR_SRVR_BIND | Error binding to Servers. | 0xCB00818BL
ERROR_CP_BIND | Error binding for checkpoint. | 0xCB00818CL
ERROR_RESTART | Failed adding restart values. | 0xCB00818DL
ERROR_TASKHISTORY_BIND | Error binding to TaskHistory. | 0xCB00818EL
ERROR_SITE_BIND | Error binding to Sites. | 0xCB00818FL
ERROR_INVALID_COLUMNS | The site tables contain some invalid column(s). | 0xCB008190L
ERROR_SITE_NAME_MISMATCH | The loaded site name: %1 is different from the commerce site name: %2 | 0xCB008191L
ERROR_SITE_INIT | LoadSites(), site init failed (%1) | 0xCB008192L
ERROR_NEGATIVE_VALUE | OverlapMins cannot be negative value. Using default value %1 instead | 0xCB008193L
ERROR_INVALID_ACTION | OverlapAction invalid. Using default value %1 instead | 0xCB008194L
ERROR_MAX_EXCEEDED | Only a maximum of 256 site query parameters is supported. | 0xCB008195L
ERROR_BIND | Error binding to Crawlers. | 0xCB008196L
ERROR_BIND1 | Error binding to Qstring Config. | 0xCB008197L
ERROR_INIT_QUERYSTRING | LoadSiteQStringNames(), QueryString Init failed (%1), qstrname=%2 | 0xCB008198L
ERROR_INIT_QUERYSTRING1 | LoadSiteQStringNames(), FillQStringCol failed (%1), qstrname=%2 | 0xCB008199L
ERROR_INIT_QUERYSTRING2 | LoadSiteQStringNames(), Adding Qstring to map failed (%1), qstrname=%2 | 0xCB00819AL
ERROR_REQ_ID_CREATE | Error creating new Request ID. status=%1 | 0xCB00819BL
ERROR_URI_DATA_CREATE | Error creating new pUriData. status=%x | 0xCB00819CL
ERROR_STORE_REQUEST | In StoreRequest(), ParseLevelDirs() failure, %1. status=%2 | 0xCB00819DL
ERROR_STORE_REQUEST1 | In StoreRequest(), Failed to combine queryString to uri | 0xCB00819EL
ERROR_STORE_REQUEST2 | In StoreRequest(), CreateRow() failure. status=%1 | 0xCB00819FL
ERROR_STORE_REQUEST3 | NULL pDACommerceEventStrings referred in storeit | 0xCB0081A0L
ERROR_STORE_REQUEST4 | NULL pEventsParser referred in storeit | 0xCB0081A1L
ERROR_STORE_COMMERCE_EVENT | Could not store the commerce event (%1) | 0xCB0081A2L
ERROR_CLASS_REMOVE | Could not remove a stg class from the list. (%1) | 0xCB0081A3L
ERROR_VECTOR_REMOVE | Could not remove a value vector from the list. (%1) | 0xCB0081A4L
ERROR_STORE_PATH | In StorePath(), CreateRow() failure. status=%1 | 0xCB0081A5L
ERROR_STORE_PATH_INFO | In StorePathInfo(), CreateRow() failure. status=%1 | 0xCB0081A6L
ERROR_VISIT_ID_CREATE | Error creating new Visit ID. status=%1 | 0xCB0081A7L
ERROR_CREATE_ROW_INSERTUSERVISIT | Cannot createRow in InsertUserVisit. status=%1 | 0xCB0081A8L
ERROR_SET_COLUMNS_INSERTUSERVISIT | Cannot SetColumns in InsertUserVisit. status=%1 | 0xCB0081A9L
ERROR_CREATE_ROW_INSERTSUBTASK | Cannot createRow in InsertLogImportSubTask. status=%1 | 0xCB0081AAL
ERROR_SET_COLUMNS_INSERTSUBTASK | Cannot SetColumns in InsertLogImportSubTask. status=%1 | 0xCB0081ABL
ERROR_BINDING_TO_COMMERCE_EVENT | Error binding to Commerce Event Config. | 0xCB0081ACL
ERROR_WRAPPER | Initialization of Memdef Wrapper failed, URL : %1, Status Code :%2 | 0xCB0081ADL
ERROR_MEMBER_DEF | Error filling member definition. (%1) | 0xCB0081AEL
ERROR_BIND_IMPORT_OPTIONS | Error binding to Import Options. | 0xCB0081AFL
ERROR_IMPORT_OPTIONS_FETCH | Error fetching to Import Options. Check your database | 0xCB0081B0L
ERROR_CREATE_OPEN_USER_VISIT | Error creating new open user visit ID. status=%1 | 0xCB0081B1L
ERROR_CREATE_ROW_INSERT_OPEN_USER_VISIT | Cannot createRow in InsertOpenUserVisit. status=%1 | 0xCB0081B2L
ERROR_SET_COLUMNS_INSERT_OPEN_USER_VISIT | Cannot SetColumns in InsertOpenUserVisit. status=%1 | 0xCB0081B3L
ERROR_BIND_OPEN_USER_VISIT | Error binding to Open User Visits. | 0xCB0081B4L
ERROR_ADD_USER_LOAD_OPEN_USER_VISIT | Failed re-add open user in LoadOpenUserVisit. status=%1 | 0xCB0081B5L
ERROR_NEW_ID_CREATE | Error creating new Task ID. status=%1 | 0xCB0081B6L
ERROR_SITE_SUMMARY_BIND | Error binding to Site Summary. | 0xCB0081B7L
ERROR_BIND_COMMERCE_EVENT_MEMBER | Commerce Event configuration is misconfigured for %1. | 0xCB0081B8L
ERROR_COOKIE_DECODING | Error(0x%1): Failed decoding the cookie %2 | 0xCB0081B9L
ERROR_NULL_HITS_BUFFER | Null hits buffer, tid=0x%1 | 0xCB0081BAL
ERROR_NULL_HITS_PROCESSING | Error processing hit in the inference engine=0x%1 | 0xCB0081BBL
ERROR_COMMIT_USER | Error commiting user | 0xCB0081BCL
ERROR_MATCH_CONTENT_CALLED | MatchContent called | 0xCB0081BDL
ERROR_ADDING_COMMERCE_STRINGS | Couldn't add commerce event string to the array(0x%1) | 0xCB0081BEL
ERROR_PARSE_REQUEST | ParseRequestQueryString2:Could not resolve Query parameter to ID after buffer full (0x%1) | 0xCB0081BFL
ERROR_PARSE_REQUEST_STRING | ParseRequestQueryString2:Could not resolve Query parameter to ID (0x%1) | 0xCB0081C0L
ERROR_FILL_STRING | Error filling multi-value query string column (0x%1) | 0xCB0081C1L
ERROR_RESOLVE_ID | Error resolving multi-value ID's (0x%1) | 0xCB0081C2L
ERROR_QUERY_STRING_PARAMETERS | Too many query string parameters (32K Unique Name & Value strings only) | 0xCB0081C3L
ERROR_RESOLVE_PARAMETERS | ParseRequestQueryString2:Could not resolve Query parameter to ID for Parm name (0x%1) | 0xCB0081C4L
ERROR_RESOLVE_PARAMETERS_ID | ParseRequestQueryString2:Could not resolve Query parameter to ID for Parm value (0x%1) | 0xCB0081C5L
ERROR_RESOLVE_PARAMETERS_VALUE | ParseRequestQueryString2:Could not resolve Query value to ID (0x%1) | 0xCB0081C6L
ERROR_RESOLVE_MULTI_VALUE | Could not resolve multi-value ID to string (0x%1) | 0xCB0081C7L
ERROR_TRUNCATION | More than 255 multi-values are truncated to 255 values for property %1 (%2) | 0xCB0081C8L
ERROR_VECTOR | Cannot convert more than 255 strings in a vector | 0xCB0081C9L
ERROR_RESOLVE_MV_STRING | Could not resolve MV string to ID (%1) | 0xCB0081CAL
ERROR_DB_ARRAY | Error converting DB Vector array to IDs (0x%1) | 0xCB0081CBL
ERROR_RESOLVE_MULTI_VALUE_STRING_REP | Could not re-resolve multi-value string representation to ID (0x%1) | 0xCB0081CCL
ERROR_RERESOLVE_MULTI_VALUE | Could not re-resolve multi-value name to ID (%1, 0x%2) | 0xCB0081CDL
ERROR_RESOLVE_ARRAY_VALUE | Error resolving array of values IDs to ID (0x%1) | 0xCB0081CEL
ERROR_PARSE_REQUEST_QUERY_STRING | ParseRequestQueryString2:Could not reset query cache (0x%1) | 0xCB0081CFL
ERROR_RESOLVE_STRING_TO_ID_OUTOFMEMORY | ResolvedStringToId:Out of memory error allocating new Unique buffer | 0xCB0081D0L
ERROR_RESOLVE_STRING_TO_ID_BUFFER_INIT | ResolvedStringToId:Error initializing unique buffer (0x%1) | 0xCB0081D1L
ERROR_RESOLVE_STRING_TO_ID_UNIQUE_DATA | ResolvedStringToId:Error getting unique data for %1 (0x%2) | 0xCB0081D2L
ERROR_RESOLVE_STRING_TO_ID_QUERY_PARAMS | ResolvedStringToId:Error removing query parms from the map (0x%1) | 0xCB0081D3L
ERROR_RESOLVE_STRING_TO_ID_STRING_CONVERT | ResolvedStringToId:Error DataToId converting string %1 (0x%2) | 0xCB0081D4L
ERROR_BSTR_ALLOC | Failed allocating the BSTR encoded cookie | 0xCB0081D5L
ERROR_COOKIE_DECODE | In ParseCookie2: URL decoding for cookie value failed | 0xCB0081D6L
ERROR_COMMITING_USER | Error commiting user B#: %1 | 0xCB0081D7L
ERROR_SOURCE_TIMEZONE | Failed getting source timezone %1 | 0xCB0081D8L
ERROR_DESTINATION_TIMEZONE | Failed getting destination timezone %1 | 0xCB0081D9L
ERROR_BINDING_TIMEZONE | Error binding to Timezone Info. | 0xCB0081DAL
ERROR_RETRIEVING_TIMEZONE | Failed retrieving the timezone %1: 0x%2 | 0xCB0081DBL
ERROR_ALLOCATING_VSTRING | Error allocating from VString's virtual buffer | 0xCB0081DCL
ERROR_DB_CONNECTION_POOL_INIT | DB connection pool initialization failed. SCODE: -1 | 0xCB0081DDL
ERROR_ADD_DATA | AddData failed for the Class %1 | 0xCB0081DEL
ERROR_ADD_DATA_MEMBER | AddData falied for the Class : %1, Member : %2 | 0xCB0081DFL
ERROR_QUERYING_EXPORT | Error in querying exportable categories | 0xCB0081E0L
ERROR_WRITING | Error writing categories and products | 0xCB0081E1L
ERROR_PROVIDER_WRAPPER | Cannot initilaize the provider wrapper | 0xCB0081E2L
ERROR_TIME_ZONE | Cannot set the timezones | 0xCB0081E3L
ERROR_ADDING_COLUMNS | Error Adding column info for the Column : %1 | 0xCB0081E4L
IMPORT_CANCEL | User chose to cancel import. | 0xCB0081E5L
ERROR_CHECKPOINT_JOB | Error in creating checkpoint job | 0xCB0081E6L
ERROR_CHECKPOINT | Error in checkpoint initialization | 0xCB0081E7L
ERROR_OUTOFMEM | Out of memory | 0xCB0081E8L


OLE DB Calculation Renderer Error Messages

Error Messages

Message ID | Message Text | HResult
CALC_OUTPUT_TYPE | Calculation renderer : Calculation Output type is not set or invalid | 0xCB00A000L
CALC_INVALID_AGGR_TYPE | Calculation renderer : Invalid aggregation type specified | 0xCB00A001L
CALC_OUTPUT_FILE_TYPE | Calculation renderer : Output file property for the Calcrenderer is not set | 0xCB00A002L
CALC_ROLLUP_VIEW | Calculation renderer : Cannot create the rollupview. %1 | 0xCB00A003L
CALC_ROW_AGGR | Calculation renderer : Cannot rollup aggregates | 0xCB00A004L
CALC_TABLE_CPY | Calculation renderer : Cannot copy the source table to the destination database. %1 | 0xCB00A006L
CALC_RENDER_AGGR | Calculation renderer : Couldnt not aggregate and render in RenderCalc(). %1 | 0xCB00A007L
CALC_RENDER_CALC | Calculation renderer : Render calculation failed. %1 | 0xCB00A008L
CALC_DISKFULL | Calculation renderer : %1 | 0xCB00A009L
CALC_ERR_FASTRENDER | Calculation renderer : Error in fastrendering %1 | 0xCB00A00AL
CALC_RENDERCSV | Calculation renderer : Error in rendering a CSV file %1 | 0xCB00A00BL
CALC_RENDERHTML | Calculation renderer : Error rendering an HTML file %1 | 0xCB00A00CL
CALC_OUTPUT_TABLE | Calculation renderer : Ouput table name is not set. | 0xCB00A00DL
CALC_DEST_DSN | Calculation renderer : Destination DSN is not set. | 0xCB00A00EL
CALC_RENDER_INTO_DB_TABLE | Calculation renderer : Error rendering into a DB table %1 | 0xCB00A00FL
CALC_OUTPUT_FILENAME | Calculation renderer : Output table name is not set | 0xCB00A010L
CALC_RENDER_SUCCESS | Calculation renderer : Calculation rendering successful | 0xCB00A011L
CALC_INVALID_FILE_PATH | Calculation renderer : Invalid file name or path : %1 | 0xCB00A012L
CALC_SQLSERVER_NOTFOUND | Calculation renderer : Please check the SQL connection information. %1 | 0xCB00A013L
CALC_OLAPSERVER_NOTFOUND | Calculation renderer : Please check the OLAP connection information. %1 | 0xCB00A014L
CALC_MDX_NOTSUPPORTED | Calculation renderer : MDX query not supported. %1 | 0xCB00A015L
CALC_MDX_ZERO_X_DIM | Calculation renderer : Cannot render report, cellset does not contain positions in column dimension. %1 | 0xCB00A016L


OLE DB Report Renderer Error Messages

Error Messages

Message ID | Message Text | HResult
RPT_RENDER_SUCCESS | Report renderer : Report rendering successful. %1 | 0x4B00AE00L
RPT_RENDER_FAILURE | Report renderer : Report renderer failed. %1 | 0xCB00AE01L
RPT_DWCONN_FAILURE | Report renderer : Report renderer failed to connect to data warehouse. %1 | 0xCB00AE02L
RPT_DESTCONNSTR_MISSING | Report renderer : Connection string for report export destination is missing. %1 | 0x8B00AE03L
RPT_DESTTABLE_MISSING | Report renderer : Table name for report export is missing. %1 | 0x8B00AE04L
RPT_DEFINITION_MISSING | Report renderer : Report definition is missing from data warehouse. %1 | 0x8B00AE05L
RPT_CALCRENDERER_MISSING | Report renderer : Calc renderer is missing or not registered. %1 | 0xCB00AE06L
RPT_CALCRENDERER_INITFAILED | Report renderer : Calc renderer initialization failed. %1 | 0xCB00AE07L
RPT_CALCRENDERER_ADDCOLDIMFAILED | Report renderer : Calc renderer failure adding column dimension. %1 | 0x8B00AE08L
RPT_CALCRENDERER_ADDROWDIMFAILED | Report renderer : Calc renderer failure adding row dimension. %1 | 0x8B00AE09L
RPT_CALCRENDERER_ADDMEASUREFAILED | Report renderer : Calc renderer failure adding measure. %1 | 0x8B00AE0AL
RPT_CALCRENDERER_FAILED | Report renderer : Calc renderer failed. %1 | 0xCB00AE0BL
RPT_RENDERING_FAILED | Report renderer : Error rendering report. %1 | 0xCB00AE0CL
RPT_INSTANCE_MISSING | Report renderer : Report instance missing. %1 | 0xCB00AE0DL
RPT_INVALID_REPORTNAME | Report renderer : Invalid report name. %1 | 0xCB00AE0EL
RPT_PARAMETER_ERROR | Report renderer : Error processing report parameters. %1 | 0xCB00AE0FL
RPT_QUERY_ERROR | Report renderer : Error executing report query. %1 | 0xCB00AE10L
RPT_TYPE_INVALID | Report renderer : Report type is invalid. %1 | 0xCB00AE11L


DTS Task Error Messages for the OLE DB

This section contains:

  • Catalog Data Import DTS Task Error Messages for the OLE DB
  • Transaction Data Import DTS Task Error Messages for the OLE DB
  • Report Preparation DTS Task Error Messages for the OLE DB
  • Web Log Import, Data Deletion, IP Resolution, and Configuration Syncronization DTS Task Error Messages for the OLE DB


Catalog Data Import DTS Task Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
CATALOG_DTS_FAILED | Catalog DTS task: Import failed | 0xCB009000L
CLTG_PROPERY_BAG_LOAD_ERR | Catalog DTS task: cannot load the properties from the property bag | 0xCB009001L
CLTG_PROPERY_BAG_SAVE_ERR | Catalog DTS task: cannot save the properties into the property bag | 0xCB009002L
CLTG_DTS_ERR_WRTITING_STATUS | Catalog DTS task: cant write the status into the taskhistory table | 0xCB009003L
CLTG_DTS_ERR_READING_LAST_MOD_DATE | Catalog DTS task : task cant read the last modified date | 0xCB009004L
CTLG_DTS_ERR_READADMIN | Catalog DTS task : cant read the admin information | 0xCB009005L
CTLG_DTS_INFO_SUCCESS | Catalog DTS task : successfully imported the data | 0x4B009006L
CTLG_DTS_ERR_CREATING_ID_COUNTER | Catalog DTS task : Error creating the ID counter | 0xCB009007L
CTLG_DTS_ERR_TIME_CONV | Catalog DTS task : Cannot convert systemtime to filetime, while trying to convert current time to the GMT | 0xCB009008L
CTLG_DTS_ERR_OPEN_REC_FAILED | Catalog DTS task : OpenRecordSet() failed in the catalog DTS task : %1 | 0xCB009009L
CTLG_DTS_CTLGGLOBAL | Catalog DTS task : Error Transfering the CatalogGlobal data | 0xCB00900AL
CTLG_DTS_CATHRCHY | Catalog DTS task : Error Transfering the hierarchical data | 0xCB00900BL
CANT_READ_TIMEZONE | Catalog DTS task : Error reding the timeZone info from the admin store | 0xCB00900CL
CTLG_DTS_NO_SITES_FOUND | Catalog DTS task : no sites found to be associated with the product catalog | 0xCB00900DL


Transaction Data Import DTS Task Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
TRANS_DTS_ERR_READING_ADMIN | Transaction DTS task : Error reading from the admin store | 0xCB0097FFL
TRANS_DTS_PARSEDSN | Transaction DTS task :Error parsing the DSN | 0xCB009800L
TRANS_DTS_QUERYCOLINFO | Transaction DTS task :cannot query the transaction database | 0xCB009801L
TRANS_DTS_EXEC_FAILED | Transaction DTS task :Execution failed | 0xCB009802L
TRANS_DTS_GMTTIME | Transaction DTS task :Error converting the current time to GMT | 0xCB009803L
TRANS_DTS_SRC_TIMEZONE | Transaction DTS task :Error reading the source timezone | 0xCB009805L
TRANS_DTS_SRC_DSN | Transaction DTS task :cannot connect to source database %1 | 0xCB009806L
TRANS_DTS_EXEC_SUCCESS | Transaction DTS task :successfully imported the data | 0xCB009807L
DTS_ERR_BINDING | Trans-Cltl DTS task provider wrapper : Error Binding to schema session , status code : %1 | 0xCB009808L
DTS_IDCOUNTER | Trans-Cltl DTS task provider wrapper : Error creating the ID counter : %1 | 0xCB009809L
DTS_SESS_CREATE_CMD | Trans-Cltl DTS task provider wrapper : Session does not support CreateCommand : %1 | 0xCB00980AL
DTS_CREATE_CMD_TXT | Trans-Cltl DTS task provider wrapper : Command does not support Command Text interface : %1 | 0xCB00980BL
DTS_CMD_OBJ | Trans-Cltl DTS task provider wrapper : Provider Command object does not support the command interface : %1 | 0xCB00980CL
DTS_CMD_TXT_ERR | Trans-Ctlg DTS task provider wrapper : Could not set command text : %1 | 0xCB00980DL
DTS_CMD_SCHEMA_MODE_ERR | Trans-Ctlg DTS task provider wrapper : Execute of SchemaModeOn failed : %1 | 0xCB00980EL
DTS_ERR_ALLOC_COLUMNINFO | Trans-Ctlg DTS task provider wrapper : Cannot Allocate ClassInfo in AdddColumnInfo : %1 | 0xCB00980FL
DTS_ERR_ADDING_TO_MAP | Trans-Ctlg DTS task provider wrapper : Error while setting into map in AddColumnInfo() : %1 | 0xCB009810L
DTS_OUTOFMEMORY | Trans-Ctlg DTS task provider wrapper : Out of memory : %1 | 0xCB009811L
DTS_ERR_ADDING_TO_LIST | Trans-Ctlg DTS task provider wrapper : Error while Adding list in AddColumnInfo() : %1 | 0xCB009812L
DTS_DONT_EXIST_IN_MAP | Trans-Ctlg DTS task provider wrapper : Error in Adddata(), class doesnt exist in the map : %1 | 0xCB009813L
DTS_LOOKUP_MEMB_ERR | Trans-Ctlg DTS task provider wrapper : Error doing a lookup for the ClassName %1, MemberName %2 | 0xCB009814L
DTS_TIME_CONV_ERR | Trans-Ctlg DTS task provider wrapper : Time conversion error | 0xCB009815L
DTS_GMT_TIMECONVERT_ERR | Trans-Ctlg DTS task provider wrapper : Error converting the Time from Local to the GMT | 0xCB009816L
DTS_MAP_LOOKUP_ERR | Trans-Ctlg DTS task provider wrapper : Error in Writedata, class %1, doesnt exist in the map | 0xCB009817L
DTS_FILLCOLS | Trans-Ctlg DTS task provider wrapper :Cannot find ids in the Fillscols() | 0xCB009818L
DTS_CONN_POOL_ERR | Trans-Ctlg DTS task provider wrapper :DB connection pool initialization failed | 0xCB009819L
DTS_IDCOUNTER_ERR | Trans-Ctlg DTS task provider wrapper : Cannot create ID counter | 0xCB00981AL
DTS_TIMEZONE | Trans-Ctlg DTS task provider wrapper : Cannot Init timezone object | 0xCB00981BL


Report Preparation DTS Task Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
PREPAREREPORTS_DTS_SRC_DSN | Prepare Reports DTS task :cannot connect to source database %1 | 0xCB00B000L
PREPAREREPORTS_GENERAL_ERROR | Prepare Reports DTS task : %1 | 0xCB00B001L
PREPAREREPORTS_PARTITIONANALYZER_ERROR | Prepare Reports DTS task : Failed to initialize PartitionAnalyzer: %1 | 0xCB00B002L
PREPAREREPORTS_DTS_INFO_SUCCESS | Prepare Reports DTS task : succesfully completed | 0x4B00B003L
PREPAREREPORTS_DTS_INFO_FAILED | Prepare Reports DTS task : failed to complete | 0x4B00B004L


Web Log Import, Data Deletion, IP Resolution, and Configuration Syncronization DTS Task Error Messages for the OLE DB

Error Messages

Message ID | Message Text | HResult
IPRES_DTS_INITIALIZE | Ip Resolution Task :Failed to initialize, invalid connection information %1 | 0xCB00C000L
IPRES_DTS_RESOLVE | Ip Resolution Task :Failed to Resolve IP addresses: %1 | 0xCB00C001L
DELETE_DTS_INITIALIZE | Delete Task :Failed to initialize, invalid connection information: %1 | 0xCB00C002L
DELETE_DTS_CRITERIA | Delete Task :Task failed because no delete criteria was selected | 0xCB00C003L
SYNC_DTS_INITIALIZE | Sync Task :Failed to initialize, invalid connection information: %1 | 0xCB00C004L
IMPORT_DTS_INITIALIZE | Log Import Task :Failed to initialize, invalid connection information: %1 | 0xCB00C005L
IMPORT_DTS_DIR | Log Import Task :Directory not found: %1 | 0xCB00C006L
IMPORT_DTS_LOGPERIOD | Log Import Task :Not a valid LogFile rotation period: %1 | 0xCB00C007L
IMPORT_DTS_NOLOGS | Log Import Task :No Logs files were selected for import | 0xCB00C008L
IMPORT_DTS_INIT | Log Import Task :Failed to initialize, either the connection information is invalid or the Data Warehouse is in an incorrect state | 0xCB00C009L
MBTOADMIN_INIT | DW Pup :Permission denied, error importing webserver properties from the IIS metabase for: %1 | 0xCB00C00AL
MBTOADMIN_INVALIDSITENAME | DW Pup :Invalid Web Server name: %1 | 0xCB00C00BL
IMPORT_DTS_NOTINITIALIZED | Web Log Import task not initialized successfully yet. | 0xCB00C00CL
IMPORT_DTS_INVALIDCONFIG | Error validating configuration. status code : %1 (%2) | 0xCB00C00DL
IMPORT_DTS_INIT_SERVER | Initialiazing servers with the following parameters. DWServer: %1, SQLServer: %2, DB: %3, Ctlg: %4, Sitename: %5 | 0x4B00C00EL
MBTOADMIN_ERR_OLAPDB_CREATE | DW Pup :Error craeting OLAP database, make sure the current user is a member of OLAP Administrator Group: | 0xCB00C00FL
LOGIMPORT_SUCCESS | Log Import Task :Log Import task executed successfully | 0x4B00C010L
IPRES_SUCCESS | Ip Resolution Task :Ip Resolution Task executed successfully | 0x4B00C011L
DELETE_SUCCESS | Delete Task : Delete Task executed successfully | 0x4B00C012L
SYNC_SUCCESS | Sync Task : Sync Task executed successfully | 0x4B00C013L


Business Desk Reference

Commerce Server Business Desk provides a framework within which third party developers can add their own functionality. The different aspects of the framework can be categorized as follows:

  • A well-defined way in which new modules make themselves known.
  • A number of HTML Components (HTCs) that provide a standardized user interface for the display and manipulation of data.
  • A large number of constants, global variables, and utility routines that provide a common basis for module development.

This section provides detailed information about these different aspects of the Business Desk Framework, presented in a reference format.

For conceptual information about building a new Business Desk module, see Building Business Desk Modules.

For information about the cascading style sheets that control the look of Business Desk, see Style Sheet Reference.

This section contains:

  • XML Structures. Describes the Extensible Markup Language (XML) structures that are used with Business Desk for module and category configuration, and for HTC configuration. This includes links to the XML Reference section for details about these structures.
  • HTML Components. Describes the HTML Components that are used for data presentation and manipulation within Business Desk. Provides detailed information about the various properties, methods, and events associated with these HTCs, as well as links to the XML Reference topics describing the structure of their configuration information.
  • Include Files. Describes the include files that define the constants, global variables, and utility routines that constitute much of the Business Desk Framework. Explains when to include and when to not include each of these files.
  • Constants. Describes the constants defined in the various Business Desk include files. Defines which constants are available in client-side script and which constants are available in server-side script.
  • Global Variables. Describes the global variables defined in the various Business Desk include files. Defines which global variables are available in client-side script and which global variables are available in server-side script.
  • Utility Routines. Describes the routines defined in the various Business Desk include files. Defines which routines are available in client-side script and which routines are available in server-side script.
  • Debugging Business Desk. Describes debugging aids built into the HTCs and framework routines.


XML Structures

The Commerce Server Business Desk Framework and HTML Components (HTCs) make extensive use of Extensible Markup Language (XML) in specific, pre-defined structures. The following table briefly describes these structures and provides links to more detailed information in Business Desk XML Structures.

XML Structure | Description
Master Configuration File | The XML structure of the master configuration file that ties all other module configuration files together.
Module Configuration Files | The XML structure of the module configuration files that specify the details of each individual module.
HTML Component Data Representation | The XML structure in which many of the HTCs expect data to be represented. These HTCs include DynamicTable, EditField, EditSheet, ListEditor, and ListSheet.
DynamicTable Configuration | The XML structure of the configuration information for the DynamicTable HTC.
EditField Configuration | The XML structure of the configuration information for one or more EditField HTCs.
EditSheet Configuration | The XML structure of the configuration information for the EditSheet HTC.
ExpressionBuilder Configuration | The XML structure of the configuration information for the ExpressionBuilder HTC.
ListEditor Configuration | The XML structure of the configuration information for the ListEditor HTC.
ListSheet Configuration | The XML structure of the configuration information for the ListSheet HTC.
QueryBuilder Configuration | The XML structure of the configuration information for the QueryBuilder HTC.
TreeView Configuration | The XML structure of the combined data and configuration information used by the TreeView HTC.


HTML Components

The Commerce Server Business Desk Framework includes a number of HTML Components (HTCs) that are used extensively by the modules that ship with Commerce Server. These same HTCs should be used in new Business Desk modules, wherever appropriate, to preserve a consistent look-and-feel within all modules.

This section contains:

  • DynamicTable. Describes the HTC used for editing tabular data where editing is limited to the columns being displayed. Record editing is performed in a special row above the column headings.
  • EditField. Describes the HTC used for editing individual items of data of various types. This control is often embedded within other tabular controls to provide the actual editing functionality for individual cells in the table.
  • EditSheet. Describes the HTC used to bundle together other HTCs that are used to edit data.
  • ExpressionBuilder. Describes the HTC used for creating named expressions that can be used for targeting. The ExpressionBuilder HTC makes use of an embedded version of the QueryBuilder HTC.
  • ListBox.
  • ListEditor. Describes the HTC used for editing tabular data where the editing of individual records occurs in a separate table below the table containing the list. The table used for record editing may allow editing of fields other than those displayed in the list table. The ListEditor HTC makes use of an embedded version of the EditSheet and ListSheet HTCs.
  • ListSheet. Describes the read-only HTC used to display a list of records and allows selection of one or more of those records for editing. The editing itself is always performed within one of the other HTCs.
  • MenuControl. Describes the HTC used to control a context menu.
  • QueryBuilder. Describes the HTC used to build a simple query.
  • TreeView. Describes the HTC used to display an expandable tree structure that provides a mechanism for both navigation and selection.


DynamicTable

The DynamicTable HTML Component (HTC) displays a table of data where each row represents a record and each column represents a particular field from the record. Above each column in the table is an EditField HTC that allows the corresponding field of the selected record to be edited. The column that is designated as the key is displayed as the first column. The remaining columns are displayed in the order that they are specified in the configuration data.

Unlike the ListEditor HTC, the DynamicTable HTC only allows the editing of data displayed in the columns of the table. Like the ListEditor HTC, the DynamicTable HTC returns its result as an XML list document.

Data is passed to the DynamicTable HTC in the form of XML data-islands. This includes the configuration data that provides, for example, the display names for data columns. It also includes the data itself, contained in a different XML data-island. Configuration data varies from HTC to HTC, depending on the specific characteristics of each type of HTC. In contrast, the data itself is essentially always the same — one or more records, each containing individual fields of data. Because of this, most of the HTCs accept data in the same generalized format. For more information about this data format, see Getting Data to the Client.

Note

  • You can change the height of the DynamicTable HTC by changing a setting in the customizable style sheet file Bizdesk.css. Search for the style setting ".dtTableStyle DIV.dtContainer" and change the default HEIGHT setting of "70" to a value of your choice.

This section contains:

  • OverX Feature. Describes the OverX feature supported by the DynamicTable HTC.
  • Events. Describes the events supported by the DynamicTable HTC.
  • Properties. Describes the properties supported by the DynamicTable HTC.
  • Methods. Describes the methods supported by the DynamicTable HTC.
  • Container Attributes. Describes the attributes that the DynamicTable HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the DynamicTable HTC via the ID used as the value of the MetaXML container attribute.
  • Instantiation Example. Demonstrates how the DynamicTable HTC is instantiated in script on an Active Server Pages (ASP) page.


OverX Feature

The OverX feature of the DynamicTable HTC is primarily intended for use in the Shipping Methods module in Commerce Server Business Desk. It is a very specialized feature with severe limitations that may not make it suitable for use in other pages.

The Shipping Methods module in Business Desk uses a special row in the shipping method data table to compute the shipping charges in cases where the key value is larger than the highest set value for all rows.

For example, a shipping method that sets the shipping rate by the subtotal of the order could have the following rates:

  • $.50 for subtotals from $0 to $5.00
  • $2.00 for subtotals from $5.00 to $20.00
  • $5.00 for subtotals from $20.00 to $50.00
  • $10.00 for subtotals over $50.00

The way that the over $50.00 rate is set is by using the OverX feature of the DynamicTable HTC. The "over $50.00" row subtotal value is represented in the underlying data by "-1".

The following limitations apply to this feature:

  • All fields in the OverX row are required for the DynamicTable HTC to be valid. This is because the shipping component of the Order Processing pipeline must have data in this row to function properly.
  • The OverX row will always display as the last row in the table.
  • To achieve the correct behavior with the OverX feature, the DynamicTable HTC must be set to sort by key. This is because the keys are assumed to be in ascending order, culminating in the OverX row that represents a value for all items with a key value greater than the highest key in the table.
  • When the OverX row is displayed in the control, the key field will display as "Over X", where X is the value of the last row above it in the table (or zero if there are no other rows).
  • When the XMLList object is returned from the DynamicTable HTC, the OverX row key will always contain "-1".
  • Because the OverX row is internally represented by a value of "–1", the key value for a DynamicTable HTC using the OverX feature must consist of numeric values of zero or greater. Key fields of type date, time, text, Boolean, or select are not supported when using this feature.
  • When the OverX feature is turned on, the OverX row will be added even if it is not represented in the original data passed to the control. This is because the OverX row is required.


Events

The DynamicTable HTC supports the following events:

  • OnChange
  • OnError
  • OnRequire
  • OnValid

OnChange

The OnChange event fires when the user clicks either the Done button or the Remove button.

The event object property window.event.XMLList is a standard XMLList object hierarchy, including the state attribute in the record elements. For more information, see XMLList and XMLRecord Properties.

The event object property window.event.XMLRecord is a standard XMLRecord object that contains a copy of the changed record. For more information, see XMLList and XMLRecord Properties.

When the OverX feature is used, the OverX record key will have the value '-1'. For more information about the OverX feature, see OverX Feature.

Return to top

OnError

The OnError event fires when the HTC encounters a developer error condition. In addition, if the m_bDebug variable in the HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur if you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnRequire

The OnRequire event fires whenever the list changes from required to not required, or from not required to required.

The event object property window.event.required is set to True if the required attribute of the global element in the configuration data for the HTC is set to "Yes" and there are no rows in the table display. Otherwise it is set to False.

If the OverX feature is used, the table is required even if there are rows in the table as long as the OverX row is not completely filled in. For more information about the OverX feature, see OverX Feature.

Return to top

OnValid

The OnValid event fires whenever the user starts editing a row and again when editing is complete.

The event object property window.event.valid is set to False when the event is fired because a row is being edited. When editing is complete (when either the Cancel or Accept button is clicked), the value will be True.

This assures that the HTC cannot be saved when the user is in the middle of an edit.

Return to top


Properties

The DynamicTable HTC supports the following properties:

  • dirty
  • required
  • XMLList

dirty

The dirty property returns True if a row has been added, removed, or edited, and False otherwise.

This property is read-only.

Return to top

required

The required property returns True if the HTC is marked as required and currently has no rows in the table display, and False otherwise.

If using the OverX feature, the required property is False even when there are rows in the table display as long as the OverX row is not completely filled in. For more information about the OverX feature, see OverX Feature.

This property is read-only.

Return to top

XMLList

The XMLList property is a standard XMLList object hierarchy, containing the list currently in use by the HTC, and including the state attribute in the record elements. For more information, see XMLList and XMLRecord Properties.

This property is read-only.

Return to top


Methods

The DynamicTable HTC supports the following methods:

  • cleanup
  • field

cleanup

The cleanup method removes all records marked as deleted, as indicated by the state attribute, and clears the state attribute for all remaining records.

Example: elDynamicTable.cleanup

Return to top

field(sFieldId)

The field method retrieves a particular EditField HTC embedded within the DynamicTable HTC. The EditField HTC is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

The returned HTMLElement has an attached EditField HTC. If the parameter does not match any of the id attributes, NULL is returned.

The returned HTMLElement allows access to any of the properties or methods of the EditField HTC.

Example: set elEditField = elDynamicTable.field(sFieldId)

Return to top


Container Attributes

In order to pass data to the DynamicTable HTC, the following attributes must be set on the element that is using the DynamicTable behavior (note that this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the data to be displayed.
MetaXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the configuration information for this instance of the DynamicTable HTC.


Configuration Data

The DynamicTable HTC requires that its configuration information be passed to it in the form of an XML data-island. This information consists primarily of details about each column to be displayed. For example, the type of the data in the column, the name to use in the column heading, and the element name used for the corresponding data in the DataXML data-island. In addition, there is some global configuration information, such as whether the New and Remove operations should be available.

For detailed information about the structure of this XML data-island, see DynamicTable Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a DynamicTable HTC within a DIV element. The Class attribute specifies that the DynamicTable HTC behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the DynamicTable HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML and MetaXML attributes specify the data and configuration data-islands, respectively, that are defined elsewhere within the document. The Language attribute specifies that the DynamicTable HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the DynamicTable HTC.

Finally, temporary text is provided to inform the user that the DynamicTable HTC is loading.

  <DIV Id='myDynamicTable'
       Class='DynamicTable'
       Language='VBScript'
       DataXML='DataIslandID'
       MetaXML='MetaDataIslandID'
       OnChange='ChangeHandler()'
       OnError='ErrorHandler()'
       OnRequire='RequireHandler()'
       OnValid='ValidHandler()'
  >Loading DynamicTable, please wait...</DIV>


EditField

The EditField HTML Component (HTC) provides a mechanism for editing simple data types. It provides validation of input according to supplied limits. EditField HTCs are used in a variety of circumstances: embedded within the DynamicTable, EditSheet, and ListEditor HTCs, or by themselves on a page. Validation of input is built into the control.

Data is passed to the EditField HTC in the form of XML data-islands. This includes the configuration data that provides, for example, minimum and maximum values for input validation. It also includes the data itself, contained in a different XML data-island. Configuration data varies slightly from HTC to HTC, depending on the specific characteristics of each type of HTC. In contrast, the data itself is essentially always the same — one or more records, each containing individual fields of data. Because of this, most of the HTCs accept data in the same generalized format. For more information about this data format, see Getting Data to the Client.

This section contains:

  • Data Types. Describes the different data types, and thus different controls, supported by the EditField HTC.
  • Events. Describes the events supported by the EditField HTC.
  • Properties. Describes the properties supported by the EditField HTC.
  • Methods. Describes the methods supported by the EditField HTC.
  • Container Attributes. Describes the attributes that the EditField HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the EditField HTC via the ID used as the value of the MetaXML container attribute.
  • Instantiation Example. Demonstrates how the EditField HTC is instantiated in script on an Active Server Pages (ASP) page.


Data Types

The EditField HTC presents a different user interface for editing data based on the specified type of the data. The basic type of the data is specified by the name of the element specifying the configuration information for that data. Some of the basic types also have subtypes.

The EditField HTC supports the following data/control types (and sub-types):

  • boolean
  • date
  • numeric (currency)
  • numeric (float)
  • numeric (integer)
  • select
  • text (long)
  • text (password)
  • text (short)
  • time

boolean

A box containing a check box on the left side, followed by a label indicating some condition that is True when the check box is checked and False when the check box is unchecked. Unlike the HTML check box control, which only returns a value when checked, this control always returns a 1 (one) when checked or a 0 (zero) when unchecked.

Return to top

date

A box containing a date in one of several pre-defined, configurable formats. It might also contain a prompt to enter a date. At the right end of the box is a drop-down arrow, which when pressed reveals a calendar control for picking a date. Minimum and maximum dates can be specified for use in validation checking.

Return to top

numeric (currency)

A box containing a currency value or a prompt to enter a currency value. Currency values can be input in one of several configurable formats, and illegal formats are either not accepted as input, or caught as errors. Minimum and maximum currency values can be specified for use in validation checking.

Return to top

numeric (float)

A box containing a decimal number or a prompt to enter a number. Decimal numbers can be input in one of several configurable formats, and illegal formats are either not accepted as input, or caught as errors. Minimum and maximum decimal numbers can be specified for use in validation checking.

Return to top

numeric (integer)

A box containing a whole number or a prompt to enter a number. Whole numbers can be input in one of several configurable formats, and illegal formats are either not accepted as input, or caught as errors. Minimum and maximum whole numbers can be specified for use in validation checking.

Return to top

select

A box allowing one of a number of distinct choices or containing a prompt to make a selection. At the right end of the box is a drop-down arrow, which when pressed reveals a drop-down list containing the available choices. Unlike the normal HTML select control, this control is not windowed and so can be drawn over using Dynamic Hypertext Markup Language (DHTML).

When the data does not specify an item in the list of choices, a prompt is displayed.

Return to top

text (long)

A four line, scrollable text box that allows carriage returns to be entered. A maximum length and a minimum length may be specified.

A character mask can be specified for use in validation checking to force valid input to conform to a particular format. If no character mask is provided, a default character mask is used.

The default regular expression representing long text does not allow entering '<', '>', and '&' characters:

^[^<>&]*$

Return to top

text (password)

A single line text box that does not allow carriage returns to be entered. Entered characters are displayed in the box as the asterisk ('*') so that the password remains hidden. A maximum length and a minimum length may be specified.

A character mask can be specified for use in validation checking to force valid input to conform to a particular format. If no character mask is provided, a default character mask is used.

The default regular expression representing password text does not allow entering '<', '>', and '&' characters:

^[^<>&]*$

Return to top

text (short)

A single line text box that does not allow carriage returns to be entered. A maximum length and a minimum length may be specified.

A character mask can be specified for use in validation checking to force valid input to conform to a particular format. If no character mask is provided, a default character mask is used.

The default regular expression representing short text does not allow entering '<', '>', and '&' characters:

^[^<>&]*$

Return to top

time

A box containing a time of day expressed in the 24-hour format HH:MM. It may also contain a prompt to enter a time. Minimum and maximum times can be specified for use in validation checking.

Return to top


Events

The EditField HTC supports the following events:

  • OnBeginChange
  • OnBrowse
  • OnChange
  • OnError
  • OnRequire
  • OnValid

OnBeginChange

The OnBeginChange event fires immediately whenever the value in the EditField HTC changes, such as with each change made using the keyboard. It does not wait for the EditField HTC to lose focus before firing. This event does not fire when the EditField HTC is disabled.

Return to top

OnBrowse

The OnBrowse event fires when the Browse button to the right of the input box is clicked. The Browse button will only be enabled and visible if browsing has been enabled by setting one of the two attributes onbrowse or browse.

The event object property window.event.value contains the current value of the EditField HTC.

Though any of the EditField types may be configured to have a Browse button and whatever custom browse functionality is appropriate, it is far more common to associate Browse buttons with some EditField types than with others. For example, a Boolean field is unlikely to need a Browse button.

Return to top

OnChange

The OnChange event fires whenever the EditField HTC loses focus and the value it contains has changed. This event does not fire when the EditField HTC is disabled.

Return to top

OnError

The OnError event fires when the EditField HTC encounters a developer error condition. In addition, if the m_bDebug variable in the EditField HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur if you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnRequire

The OnRequire event fires whenever the EditField HTC changes from required to not required, or from not required to required.

The event object property window.event.required is set to True if the EditField HTC is configured as required and is empty. Otherwise it is set to False. This event does not fire when the EditField HTC is hidden by setting the display style property to "none".

The Required property of a disabled EditField HTC is automatically set to True, even if it is empty.

EditField HTCs of type select and boolean do not fire the onRequire event and the required property is always False. The select type can be invalid (current value does not match any choices in the list of options) or valid.

Return to top

OnValid

The OnValid event fires whenever the EditField HTC changes from valid to not valid, or from not valid to valid.

The event object property window.event.valid is set to True if the value in the EditField HTC is valid. Otherwise it is set to False. This event does not fire when the EditField HTC is hidden by setting the display style property to "none".

EditField HTCs of type boolean do not fire the onValid event and the valid property is always True.

Return to top


Properties

The EditField HTC supports the following properties:

  • dirty
  • disabled
  • displayvalue
  • options
  • prompt
  • readonly
  • required
  • selected
  • valid
  • value

dirty

The dirty property tracks whether the value in the EditField HTC has changed. Legal values are True and False. A value of True indicates that the value of the EditField HTC has changed, and False indicates that the value of the EditField HTC has not changed.

This property is read-only.

Return to top

disabled

The disabled property tracks whether the EditField HTC has been disabled. Legal values are True and False. A value of True indicates that the EditField HTC has been disabled, and False indicates that the EditField HTC has not been disabled.

Disabled controls are dimmed, including both text entry and button portions of the control, if present, and input is not accepted.

This property is read/write.

Return to top

displayvalue

The displayvalue property, which should only be accessed when the type of the EditField HTC is select, contains the display name for the current value.

This property is read-only.

Return to top

options

The options property, which should only be accessed when the type of the EditField HTC is select, contains the collection of option elements (HTML Div elements) for use in iterative loops.

This property is read-only.

Return to top

prompt

The prompt property is used to set and retrieve the prompt that is displayed when the EditField HTC has no value.

Note that EditField HTCs of the select type will only display the prompt when the current value is not associated with any of the select options.

By default, the prompt property has a distinct default value for each of the EditField types. If no prompt is needed, set the prompt property to an empty string.

This property is read/write.

Return to top

readonly

The readonly property tracks whether the EditField HTC has been set to read-only. Legal values are True and False. A value of True indicates that the EditField HTC has been set to read-only, and False indicates that the EditField HTC has not been set to read-only.

The background color for read-only controls is gray, and the button portion of the control, if present, is removed.

This property is read/write.

Return to top

required

The required property tracks whether the EditField HTC requires user input. Requiring input is defined as being configured as required, but having no current value. Legal values are True and False. A value of True indicates that user input is required, and False indicates that user input is not required.

Required controls with an empty value have a yellow background color.

The OnRequire event fires whenever the value of this property changes. When the disabled property is set to True, the required property is automatically set to False and the onRequire event is fired.

The required property is always False for EditField HTCs of type select and boolean.

This property is read-only.

Return to top

selected

The selected property, which should only be accessed when the type of the EditField HTC is select, returns the option element (HTML Div element) currently selected in the list of options.

This property is read-only.

Return to top

valid

The valid property tracks whether the current value in the EditField is valid according to constraints imposed by the configuration information. Legal values are True and False. A value of True indicates that the current value is valid, and False indicates that the current value is not valid.

Controls with a value that is not valid have a yellow background color after the control loses focus.

The OnValid event fires whenever the value of this property changes.

The valid property is always True for EditField HTCs of type boolean.

This property is read-only.

Return to top

value

The value property contains the value currently in the EditField, if any.

The OnChange event fires whenever the value of this property changes and the EditField HTC loses focus.

This property is read/write.

Return to top


Methods

The EditField HTC supports the following methods:

  • addItem
  • focus
  • reload
  • removeItem
  • resetDefault

addItem(sValue, sDisplayValue)

The addItem method is used to add a new option to a select drop-down list. This method should not be called unless the control type is set to select.

The required parameter sValue specifies the underlying value for the new item. The required parameter sDisplayValue specifies the display value for the new item.

This method has no return value.

Return to top

focus

The focus method sets focus to the EditField HTC and selects the contents, assuming the control is not disabled. When the EditField is of the select type, the drop-down button gets the focus and the box contents are not selected.

Similar behavior occurs when an EditField HTC is configured with the browsereadonly attribute set to "Yes" — the Browse button is given the focus and the box contents are not selected.

This method does not take any parameters and does not return any value.

Return to top

reload(sDataID)

The reload method is used to reload a different set of enumerated values in a select drop-down list. This method should not be called unless the control type is set to select.

The parameter sDataID specifies a field in the data-island specified by the MetaXML container attribute from which the new set of enumerated values should be retrieved.

This method has no return value.

Return to top

removeItem(sValue)

The removeItem method is used to remove an option from a select drop-down list. This method should not be called unless the control type is set to select.

The required parameter sValue specifies the underlying value for the item to remove.

This method has no return value.

Return to top

resetDefault

The resetDefault method is used to reset the control value to the default.

This method has no return value.

Return to top


Container Attributes

In order to pass data to the EditField , the following attributes must be set on the element that is using the EditField behavior (this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the Extensible Markup Language (XML) data-island containing the data to be displayed. The EditField HTC will always access and display the value of the field in the first record in the DataXML data-island.
MetaXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the configuration information for this instance of the EditField HTC.
ID
The value of this attribute should be set to the value of the id attribute of one of the child elements of the fields element within the MetaXML data-island that corresponds to this instance of the EditField HTC.

The child element is from the set boolean, date, numeric, select, text, and time. It is the type of the element that establishes the type of the EditField HTC.

The value of the ID attribute will also be the same as the name of the element containing the corresponding data in the first record of the DataXML data-island.


Configuration Data

The EditField HTC requires that its configuration information be passed to it in the form of an XML data-island. This information consists primarily of details about each column to be displayed. For example, the type of the data in the column, minimum and maximum values for validation purposes, and the element name used for the corresponding data in the DataXML data-island.

The configuration XML data-island can contain configuration information for multiple EditFields, using the ID container attribute to identify which individual EditField configuration information should be used for each instance of an EditField HTC.

For detailed information about the structure of this XML data-island, see EditField Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of an EditField HTC within a DIV element. The Class attribute specifies that the EditField behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the EditField HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML and MetaXML attributes specify the data and configuration data data-islands, respectively, that are defined elsewhere within the document. The ID attribute specifies the same value as assigned to the id attribute of a particular child element of the fields element within the MetaXML data-island. This ID attribute is also the same string used for the name of the element containing the corresponding data value in the DataXML data-island. The Language attribute specifies that the EditField HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the EditField HTC. The OnBrowse event handler should only be defined if the EditField HTC is configured to include a Browse button.

Finally, temporary text is provided to inform the user that the EditField HTC is loading.

  <DIV Id='myEditField'
       Class='EditField'
       Language='VBScript'
       DataXML='DataIslandID'
       MetaXML='MetaDataIslandID'
       ID='FieldIdInMetaXML'
       OnBeginChange='BeginChangeHandler()'
       OnChange='ChangeHandler()'
       OnError='ErrorHandler()'
       OnRequire='RequireHandler()'
       OnBrowse='BrowseHandler()'
       OnValid='ValidHandler()'
  >Loading EditField, please wait...</DIV>


EditSheet

The EditSheet HTML component (HTC) provides the bulk of the functionality required on an edit page. It can display an editable form in a pre-formatted table, with fields displayed according to their order in the configuration data. The editable form can also be displayed according to a template of free-form Dynamic Hypertext Markup Language (DHTML). The EditSheet HTC also enables sophisticated control of each field.

Data is passed to the EditSheet HTC in the form of Extensible Markup Language (XML) data-islands. This includes the configuration data that provides, for example, the display names for data fields. It also includes the data itself, contained in a different XML data-island. Configuration data varies from HTC to HTC, depending on the specific characteristics of each type of HTC. In contrast, the data itself is essentially always the same — one or more records, each containing individual fields of data. Because of this, most of the HTCs, including the EditSheet HTC, accept data in the same generalized format. For more information about this data format, see Getting Data to the Client.

In the EditSheet HTC, a single record is manipulated, displayed as one field per row in a pre-formatted table, or freely formatted when using a template.

This section contains:

  • Events. Describes the events supported by the EditSheet HTC.
  • Properties. Describes the properties supported by the EditSheet HTC.
  • Methods. Describes the methods supported by the EditSheet HTC.
  • Container Attributes. Describes the attributes that the EditSheet HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the EditSheet HTC via the ID used as the value of the MetaXML container attribute.
  • Instantiation Example. Demonstrates how the EditSheet HTC is instantiated in script on an Active Server Pages (ASP) page.


Events

The EditSheet HTC supports the following events:

  • OnChange
  • OnError
  • OnRequire
  • OnValid

OnChange

The OnChange event fires whenever the value in an embedded field changes.

Return to top

OnError

The OnError event fires when the EditSheet HTC encounters a developer error condition. In addition, if the m_bDebug variable in the HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur if you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnRequire

The OnRequire event fires whenever an embedded field changes from required to not required, or from not required to required.

The event object property window.event.required is set to True if any embedded field is marked as required and has no value. Otherwise it is set to False.

Return to top

OnValid

The OnValid event fires whenever an embedded field changes from valid to not valid, or from not valid to valid.

The event object property window.event.valid is set to False if the value in any embedded EditField HTC is not valid. Otherwise it is set to True.

Return to top


Properties

The EditSheet HTC supports the following properties:

  • dirty
  • required
  • valid

dirty

The dirty property tracks whether the value in any embedded field has changed. Legal values are True and False. A value of True indicates that the value of some embedded field has changed, and False indicates that none of the values in the embedded fields have changed.

This property is read-only.

Return to top

required

The required property tracks whether any embedded field requires user input. Requiring input is defined as being configured as required, but having no current value. Legal values are True and False. A value of True indicates that user input is required, and False indicates that user input is not required.

The OnRequire event fires whenever the value of this property changes.

This property is read-only.

Return to top

valid

The valid property tracks whether the current values in all embedded fields are valid according to constraints imposed by the configuration information. Legal values are True and False. A value of False indicates that at least one current value is not valid, and True indicates that all current values are valid.

The OnValid event fires whenever the value of this property changes.

This property is read-only.

Return to top


Methods

The EditSheet HTC supports the following methods:

  • field
  • focus
  • hidden
  • hide
  • resetDefault
  • resetDirty
  • show

field(sFieldId)

The field method retrieves a particular field element embedded within the EditSheet HTC. The field element is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

The returned HTMLElement has an attached field element. If the parameter does not match any of the id attributes, NULL is returned.

The returned HTMLElement allows access to any of the properties or methods of the field element.

Example: set elEditField = elEditSheet.field(sFieldId)

Return to top

focus

The focus method sets focus to the EditSheet HTC, assuming it is not disabled.

This method does not have parameters or a return value.

Return to top

hidden(sFieldId)

The hidden method returns True if the specified field is hidden and False if not.

The field element is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

This method is only meant for use with the standard table layout; it cannot report whether or not a field within a template is hidden.

Return to top

hide(sFieldId)

The hide method hides the label and control for a field within the standard table layout.

The field element is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

This method is only meant for use with the standard table layout; it cannot hide a field within a template. Hidden fields will not fire onRequire or onValid events when their values are changed programmatically.

This method has no return value.

Return to top

resetDefault

The resetDefault method sets all fields in the EditSheet HTC back to their default values. This method also resets the dirty property to False.

This method does not have parameters or a return value.

Return to top

resetDirty

The resetDirty method resets the dirty property to False.

This method does not have parameters or a return value.

Return to top

show(sFieldId)

The show method shows the label and control for a hidden field within the standard table layout.

The field element is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

This method is only meant for use with the standard table layout; it cannot show a field within a template.

This method has no return value.

Return to top


Container Attributes

In order to pass data to the EditSheet HTC, the following attributes must be set on the element that is using the EditSheet behavior (this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the Extensible Markup Language (XML) data-island containing the data to be displayed.
MetaXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the configuration information for this instance of the EditSheet HTC.


Configuration Data

The EditSheet HTC requires that its configuration information be passed to it in the form of an Extensible Markup Language (XML) data-island. This information consists primarily of details about each editable field to be displayed. For example, the type of the data in the field, the name to use as the field label, and the element name used for the corresponding data in the DataXML data-island. In addition, there is some global configuration information, such as whether the EditSheet should be initially displayed as opened or closed.

The configuration XML data-island is also known as the MetaXML data-island.

For detailed information about the structure of this XML data-island, see EditSheet Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following code shows a typical instantiation of an EditSheet HTC within a DIV element. The Class attribute specifies that the EditSheet behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the EditSheet HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML and MetaXML attributes specify the data and metadata data-islands that are defined elsewhere within the document. The Language attribute specifies that the EditSheet HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the EditSheet HTC.

Finally, temporary text is provided to inform the user that the EditSheet HTC is loading.

  <DIV Id='myEditSheet'
       Class='EditSheet'
       Language='VBScript'
       DataXML='DataIslandID'
       MetaXML='MetaDataIslandID'
       OnChange='ChangeHandler()'
       OnError='ErrorHandler()'
       OnRequire='RequireHandler()'
       OnValid='ValidHandler()'
  >Loading EditSheet, please wait...</DIV>


ExpressionBuilder

The ExpressionBuilder HTML component (HTC) provides users with an easy and intuitive manner in which to build expressions used for targeting. These expressions are given names and are saved in an Extensible Markup Language (XML) representation in the Expression Store. The ExpressionBuilder HTC makes use of the QueryBuilder HTC for the manipulation of the expression bodies.

This section contains:

  • Events. Describes the events supported by the ExpressionBuilder HTC.
  • Properties. Describes the properties supported by the ExpressionBuilder HTC.
  • Methods. Describes the methods supported by the ExpressionBuilder HTC.
  • Container Attributes. Describes the attributes that the ExpressionBuilder HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the ExpressionBuilder HTC via the ID used as the value of the XMLCfgID container attribute.
  • Instantiation Example. Demonstrates how the ExpressionBuilder HTC is instantiated in script on an Active Server Pages (ASP) page.


Events

The ExpressionBuilder HTC supports the following events:

  • OnComplete
  • OnError
  • OnReady

OnComplete

The OnComplete event fires when the ExpressionBuilder HTC has successfully terminated. This can happen when the user presses the Save button or the Cancel button and the associated processing does not encounter any errors.

Return to top

OnError

The OnError event fires when activation of the ExpressionBuilder HTC fails. This event can occur after returning from a successful call to the Activate method. This indicates the occurrence of an unexpected error later in the activation process.

Return to top

OnReady

The OnReady event fires when the ExpressionBuilder HTC is fully loaded and initialized, indicating that its programmatic interface is ready to use. No methods or properties of the ExpressionBuilder HTC should be used before this event fires.

Return to top


Properties

The ExpressionBuilder HTC supports the following properties:

  • IsActive
  • IsReady

IsActive

The IsActive property indicates whether the ExpressionBuilder HTC is currently active. The value of this property is True when the ExpressionBuilder HTC is active. The ExpressionBuilder HTC is defined as 'active' when a user can interact with it. The value is False when the control is inactive.

This property is read-only.

Return to top

IsReady

The IsReady property indicates whether the ExpressionBuilder HTC is ready to use. The value of this property is False before the OnReady event fires, and True after that event fires. It allows polling to be used to determine whether the ExpressionBuilder HTC is ready to use.

This property is read-only.

Return to top


Methods

The ExpressionBuilder HTC supports the following methods:

  • Activate
  • Deactivate
  • GetResults
  • Save
  • Cancel

Activate(strMode, nExprID)

The Activate method activates the ExpressionBuilder HTC, indicating success with a return value of True, and failure with a return value of False.

The required strMode parameter indicates the mode in which the expression indicated by the required nExprID parameter, if any, is loaded. Legal values are 'create', 'createfrom', 'edit', and 'view'. If the value of strMode is 'create', the value of the nExprID parameter is ignored. Otherwise, the value of the nExprID parameter must be the ID of an expression in the expression store.

Example:

bResult = elExpBuilder.Activate("create", -1)

After calling the Activate method, you should wait for the IsReady event to fire or the IsReady property to become True. If the OnError event fires first, an asynchronous activation error has occurred.

Return to top

Deactivate

The Deactivate method deactivates the ExpressionBuilder HTC. It does not take any parameters, and the current expression information is not cleared.

Return to top

GetResults

The GetResults method returns the current ExpressionBuilder HTC status and results using a Scripting.Dictionary object. This Dictionary object contains the following entries:

  • The SavedExpr dictionary entry is set to True if the current expression has been successfully saved, and False otherwise. Expressions are saved as a result of successful create and save operations.
  • The ExprID dictionary entry contains the ID of the expression being manipulated. It is set to –1 (EXPR_INVALID) if the expression has not yet been saved.
  • The ExprName dictionary entry contains the current name of the expression, regardless of whether expression editing is complete.
  • The ExprBody dictionary entry contains the current XML representation of the expression, regardless of whether expression editing is complete.

The GetResults method does not take any parameters.

Example: oDictionary = elExpBuilder.GetResults()

Return to top

Save

Assuming that the activation mode is not 'view', the Save method saves the current expression. It returns True if the save operation is successful, and False otherwise.

Calling this method is equivalent to the user clicking the Save button. If successful, it fires the OnComplete event.

Return to top

Cancel

The Cancel method discards any unsaved editing of the current expression and disables the Expression Builder user interface. It does not return any value.

Calling this method is equivalent to the user clicking the Cancel button. If the user does not abort the cancellation, this method fires the OnComplete event.

Return to top


Container Attributes

In order to pass data to the ExpressionBuilder HTC, the following attribute must be set on the element that is using the ExpressionBuilder behavior (this element is typically a DIV):

XMLCfgID
The value of this attribute must be set to the ID of the Extensible Markup Language (XML) data-island containing the configuration data for the ExpressionBuilder HTC.


Configuration Data

The ExpressionBuilder HTC requires that its configuration information be passed to it in the form of an Extensible Markup Language (XML) data-island. This information consists partly of configuration information specific to the embedded QueryBuilder HTC, which is ignored by the ExpressionBuilder HTC, and partly of configuration information specific to the ExpressionBuilder HTC.

For detailed information about the structure of this XML data-island, see ExpressionBuilder Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a ExpressionBuilder HTC within a DIV element. The Style attribute specifies that the ExpressionBuilder HTC behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the ExpressionBuilder HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The XMLCfgID attribute specifies the configuration data-island that is defined elsewhere within the document. The Language attribute specifies that the ExpressionBuilder HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the ExpressionBuilder HTC.

Finally, temporary text is provided to inform the user that the ExpressionBuilder HTC is loading.

  <DIV Id='myExpressionBuilder'
       Class='clsExprBldr'
       Style='behavior:url(/widgets/exprbldrHTC/ExprBldr.htc); width:100%'
       Language='VBScript'
       XMLCfgID='DataIslandID'
       OnComplete='CompleteHandler()'
       OnError='ErrorHandler()'
       OnReady='ReadyHandler()'
  >Loading ExpressionBuilder, please wait...</DIV>


ListBox

The ListBox HTML component (HTC) allows easy list operations on a nested DIV element. A common use of the ListBox HTC occurs when a pair of them are used side by side, with the one on the left listing available choices and the one on the right listing those choices already made. Typically, several buttons are placed between the lists, providing the ability to move items from one list to the other.

Data is initially specified to populate the ListBox HTC as attribute and data values to DIV elements nested within the DIV element that specifies the 'ListBox' value for the Class attribute. After that, additional data is added and removed from the ListBox HTC using methods provided for that purpose. Unlike the other Commerce Server HTCs, the ListBox HTC does not require any pre-existing XML data-islands to provide configuration information.

This section contains:

  • Events. Describes the events supported by the ListBox HTC.
  • Properties. Describes the properties supported by the ListBox HTC.
  • Methods. Describes the methods supported by the ListBox HTC.
  • Container Attributes. Describes the attributes that the ListBox HTC expects to be set on the element in which it is contained.
  • Initial Data Population. Describes how the data used to initially populate the ListBox HTC is provided.
  • Instantiation Example. Demonstrates how the ListBox HTC is instantiated in script on an Active Server Pages (ASP) page.


Events

The ListBox HTC supports the following events:

  • OnChange
  • OnSelect
  • OnSelectAll
  • OnUnselect
  • OnUnselectAll

OnChange

The OnChange event fires when one or more items is added to, or removed from, the list.

There are no event object properties associated with this event.

Return to top

OnSelect

The OnSelect event fires when one or more items are selected.

There are no event object properties associated with this event.

Return to top

OnSelectAll

The OnSelectAll event fires when all items are selected via the SelectAll method.

There are no event object properties associated with this event.

Return to top

OnUnselect

The OnUnselect event fires when an item is unselected.

There are no event object properties associated with this event.

Return to top

OnUnselectAll

The OnUnselectAll event fires when all items are unselected via the UnselectAll method.

There are no event object properties associated with this event.

Return to top


Properties

The ListBox HTC supports the following properties:

  • disabled
  • selected
  • text
  • value

disabled

The disabled property returns True when the ListBox HTC has been disabled, and False otherwise. While disabled, the ListBox HTC will be dimmed and removed from the tab order.

This property is read/write.

Return to top

selected

The selected property returns the selected HTML element.

When in multi-select mode, this property returns a single HTML element, even if multiple elements are selected. It returns either the first or the last selected item in the list. Therefore, you should not rely on this property when in multi-select mode.

This property is read-only.

Return to top

text

The text property returns the display name associated with the currently selected item.

When in multi-select mode, this property returns a single display name, even if multiple items are selected. It returns the display name of either the first or the last selected item in the list. Therefore, you should not rely on this property when in multi-select mode.

This property is read/write.

Return to top

value

The value property returns the value associated with the currently selected item, represented as a string. When in multi-select mode, this property returns the value associated with either the last selected item or the first selected item from the list.

This property is read/write.

Return to top


Methods

The ListBox HTC supports the following methods:

  • add
  • addItem
  • movedown
  • moveup
  • remove
  • select
  • SelectAll
  • unselect
  • UnselectAll

add(xmlNodes)

The add method adds one or more items to the list, based on the data contained in the xmlNodes object passed via the required xmlNodes parameter. This xmlNodes object must have the same format as that returned by the remove method. Beyond that, no other format assumptions should be made.

This method does not return any value.

This method is most useful when moving one or more items from one ListBox HTC to another ListBox HTC.

Return to top

addItem(sValue, sText)

The addItem method adds a single item to the list based on the values of the required parameters sValue and sText. The sValue parameter specifies the value associated with the new item, and the sText parameter specifies the display name of the new item.

This method does not return any value.

Return to top

movedown

The movedown method moves the selected item to the next lower position in the list.

When in multi-select mode, this property moves a single selected item down one position, even if multiple items are selected. It moves either the first or the last selected item in the list. Therefore, you should not rely on this method when in multi-select mode.

This method does not return any value.

Return to top

moveup

The moveup method moves the selected item to the next higher position in the list.

When in multi-select mode, this property moves a single selected item up one position, even if multiple items are selected. It moves either the first or the last selected item in the list. Therefore, you should not rely on this method when in multi-select mode.

This method does not return any value.

Return to top

remove

The remove method removes all selected items from the list and returns those items in XML representation. The returned xmlNodes object has the same format as that required by the add method. Beyond that, no other format assumptions should be made.

This method is most useful when moving one or more items from one ListBox HTC to another ListBox HTC.

Example: set xmlNodes = elListBox.remove

Return to top

select(sValue)

The select method selects the first item found that has a value equal to the required sValue parameter. If nothing is found, nothing is selected (this is not considered an error, so no error is returned).

This method does not return any value.

Return to top

SelectAll

The SelectAll method selects all of the items in the list. It does not take any parameters or return any value.

Return to top

unselect(sValue)

The unselect method unselects the first item found that has a value equal to the required sValue parameter. If nothing is found, nothing is unselected (this is not considered an error, so no error is returned).

This method does not return any value.

Return to top

UnselectAll

The UnselectAll method unselects all of the items in the list. It does not take any parameters or return any value.

Return to top


Container Attributes

Unlike most of the other Commerce Server HTCs, the ListBox HTC does not use Extensible Markup Language (XML) data-islands, specified using container attributes, for its data and configuration information. Instead, it uses a container attribute and an additional Class attribute value for some simple configuration, as follows:

selection
The value of this attribute specifies whether the ListBox HTC will allow single selection or multiple selection. Legal values are 'single' and 'multi'. The default is single selection.
lbDisabled
Specifying this Class attribute value, in addition to the 'ListBox' Class attribute value, causes the ListBox HTC to initially be displayed as disabled.


Initial Data Population

The ListBox HTC allows its initial set of data to be specified using DIV elements, one per item, that are nested within the DIV element that specifies the ListBox HTC itself. These inner DIV elements must include a VALUE attribute, the value of which specifies the value to be associated with the list item. They must also include data, which provides the string to be displayed for the item in the ListBox HTC. The following example shows this DIV element structure:

  <DIV Class='ListBox'   . . . >
      <DIV VALUE='value1'>display value 1</DIV>
      <DIV VALUE='value2'>display value 2</DIV>
      . . .
      <DIV VALUE='valueN'>display value N</DIV>
  </DIV>


Instantiation Example

The following HTML code shows a typical instantiation of a ListBox HTC within a DIV element. The first Class attribute value specifies that the ListBox behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the ListBox HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The nested DIV elements specify the initial list box data. The second Class attribute value and the Selection attribute specify that the list box should be initially disabled, and allow multiple selection, respectively. The Language attribute specifies that the ListBox HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the ListBox HTC.

  <DIV Class='ListBox lbDisabled'
       Language='VBScript'
       Selection='multi'
       OnChange='ChangeHandler()'
       OnSelect='SelectHandler()'
       OnSelectAll='SelectAllHandler()'
       OnUnselect='UnselectHandler()'
       OnUnselectAll='UnselectAllHandler()'>
         <DIV VALUE='value1'>display value 1</DIV>
         <DIV VALUE='value2'>display value 2</DIV>
         . . .
         <DIV VALUE='valueN'>display value N</DIV>
  </DIV>


ListEditor

The ListEditor HTML component (HTC) displays a table of data, known as the list area, where each row represents a record and each column represents a particular field from the record. The list area table can be configured to allow paging and sorting. Below this table is another table, known as the edit area, which displays and allows editing of the record selected in the first table. This second table has two columns. The first column contains field names and the second column contains the field data itself, displayed within the appropriate embedded EditField HTC.

Data is passed to the ListEditor HTC in the form of Extensible Markup Language (XML) data-islands. This includes the configuration data that provides, for example, the display names for columns in the list area, and various characteristics of the fields displayed in the edit area. It also includes the data itself, contained in a different XML data-island. Configuration data varies from HTC to HTC, depending on the specific characteristics of each type of HTC. In contrast, the data itself is essentially always the same — one or more records, each containing individual fields of data. Because of this, most of the HTCs, including the ListEditor HTC, accept data in the same generalized format. For more information about this data format, see Getting Data to the Client.

Unlike the DynamicTable HTC, the ListEditor HTC can be configured to allow the editing of data that is not displayed in the columns of the list table. Like the DynamicTable HTC, the ListEditor HTC returns its result as an XML list document.

This section contains:

  • Events. Describes the events supported by the ListEditor HTC.
  • Properties. Describes the properties supported by the ListEditor HTC.
  • Methods. Describes the methods supported by the ListEditor HTC.
  • Container Attributes. Describes the attributes that the ListEditor HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the ListEditor HTC via the ID used as the value of the MetaXML container attribute.
  • Instantiation Example. Demonstrates how the ListEditor HTC is instantiated in script on an Active Server Pages (ASP) page.


Events

The ListEditor HTC supports the following events:

  • OnCancel
  • OnChange
  • OnEdit
  • OnError
  • OnHeaderClick
  • OnNew
  • OnNewPage
  • OnValid

OnCancel

The OnCancel event fires when the user clicks the Cancel button or cancels the selection of a row in the list table.

Return to top

OnChange

The OnChange event fires when the user clicks either the Done button or the Remove button.

The event object property window.event.XMLList is a standard XMLList object hierarchy, including the state attribute in the record elements. For more information, see XMLList and XMLRecord Properties.

The event object property window.event.recordNumber contains a positive integer indicating the relative position of the last record changed (starting from zero).

Return to top

OnEdit

The OnEdit event fires when a user clicks a row to edit it and the associated values have been placed into the fields in the edit area.

The event object property window.event.recordNumber contains a positive integer indicating the relative position of the record being edited (starting from zero).

The event object property window.event.XMLRecord is a standard XMLRecord object hierarchy corresponding to the row being edited. For more information, see XMLList and XMLRecord Properties.

Return to top

OnError

The OnError event fires when the ListEditor HTC encounters a developer error condition. In addition, if the m_bDebug variable in the HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur if you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnHeaderClick

The OnHeaderClick event fires when one of the column headings is clicked, allowing a sorting routine to be invoked. This event will not fire if sorting has been disabled (by setting the sort attribute to "no" in the metadata).

Two event object properties are set when the event is fired. The window.event.sortcol property contains a string that is set to the value of the id attribute of the (columns) column element corresponding to the heading that was clicked.

Note

  • When using the XMLHTTP sort operation there is no need to trap this event because sort runs automatically.

The event object property window.event.sortdir contains one of the two strings 'asc' or 'desc', indicating the new sorting direction (ascending or descending, respectively).

Return to top

OnNew

The OnNew event fires when the user clicks the New button and the fields in the edit area have been cleared.

The event object property window.event.recordNumber contains the value –1 to indicate that a new record is being added. New records are always added to the end of the list.

The event object property window.event.XMLRecord is a standard XMLRecord object hierarchy consisting of a new and empty record element. For more information, see XMLList and XMLRecord Properties.

Return to top

OnNewPage

The OnNewPage event fires when one of the page navigation buttons is clicked (First, Previous, Next, and Last), or when the page number is explicitly changed.

Note

  • When using the XMLHTTP page operation there is no need to trap this event because the page operation runs automatically.

The event object property window.event.page contains a positive integer that indicates the new page to be displayed. Page numbers start at one, not zero.

Return to top

OnValid

The OnValid event fires whenever the user starts editing a row and again when editing is complete.

The event object property window.event.valid is set to False when the event is fired because a row is being edited. When editing is complete (when either the Cancel or Accept button is clicked), the value is set to True.

This assures that the HTC cannot be saved when the user is in the middle of an edit.

Return to top


Properties

The ListEditor HTC supports the following properties:

  • dirty
  • page
  • recordcount
  • XMLList

dirty

The dirty property returns True if a row has been added, deleted, or edited, and False otherwise.

This property is read-only.

Return to top

page

The page property reads and writes the page number that is displayed in the page controls.

Writing a new page property does not fire the OnNewPage event, or do anything with regard to retrieving the data associated with the new page.

This property is read/write.

Return to top

recordcount

The recordcount property reads and writes the current number of records, and when written, the ListSheet HTC recalculates the page controls.

Setting this property to –1 causes the Last button to be disabled, and indicates that the number of records is not known.

Setting this property to 0 (zero) or any number less than or equal to the page size causes the page controls to be hidden.

This property is read/write.

Return to top

XMLList

The XMLList property is a standard XMLList object hierarchy, containing the list currently in use by the HTC, and including the state attribute in the record elements. For more information, see XMLList and XMLRecord Properties.

This property is read-only.

Return to top


Methods

The ListEditor HTC supports the following method:

field(sFieldId)

The field method retrieves a particular field element being used by the ListEditor HTC. The field is identified by the required sFieldId parameter, which specifies the value of the id attribute of one of the child elements of the fields element in the MetaXML data-island.

The returned HTMLElement has an attached EditField HTC. If the parameter does not match any of the id attributes, NULL is returned.

The returned HTMLElement allows access to any of the properties or methods of the EditField HTC.

Example: set elEditField = elListEditor.field(sFieldId)


Container Attributes

In order to pass data to the ListEditor HTC, the following attributes must be set on the element that is using the ListEditor behavior (this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the data to be displayed.
MetaXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the configuration information for this instance of the DynamicTable HTC.


Configuration Data

The ListEditor HTC requires that its configuration information be passed to it in the form of an Extensible Markup Language (XML) data-island. This information consists of details about each column and row to be displayed in the list area and the edit area, respectively. For example, the type of the data in the column or row, minimum and maximum values for validation purposes, and the element name used for the corresponding data in the DataXML data-island.

For detailed information about the structure of this XML data-island, see ListEditor Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a ListEditor HTC within a DIV element. The Class attribute specifies that the ListEditor behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the ListEditor HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML and MetaXML attributes specify the data and configuration data-islands that are defined elsewhere within the document. The Language attribute specifies that the ListEditor HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the ListEditor HTC.

Finally, temporary text is provided to inform the user that the ListEditor HTC is loading.

  <DIV Id='myListEditor'
       Class='ListEditor'
       Language='VBScript'
       DataXML='DataIslandID'
       MetaXML='MetaDataIslandID'
       OnCancel=CancelHandler()'
       OnChange=ChangeHandler()'
       OnEdit='EditHandler()'
       OnError='ErrorHandler()'
       OnHeaderClick='HeaderClickHandler()'
       OnNewPage='NewPageHandler()'
       OnNew='NewHandler()'
       OnValid='ValidHandler()'
  >Loading ListEditor, please wait...</DIV>


ListSheet

The ListSheet HTML component (HTC) is the primary control for presenting data on a list page, and is used mainly to present data for viewing and selection. It displays data in a configurable, tabular format that allows paging and sorting. It can be configured to allow multiple selection, or it can be limited to a single selection.

In most of the available modes, data is presented in a hierarchical manner, allowing details to be shown or hidden by clicking in the row containing the higher-level information. When the arrow is pointing to the right, the details are hidden; when the arrow is pointing down, the details are shown.

Data is passed to the ListSheet HTC in the form of Extensible Markup Language (XML) data-islands. This includes the configuration data that provides, for example, the display names for data columns. It also includes the data itself, contained in a different XML data-island. Configuration data varies from HTC to HTC, depending on the specific characteristics of each type of HTC. In contrast, the data itself is essentially always the same — one or more records, each containing individual fields of data. Because of this, most of the HTCs, including the ListSheet HTC, accept data in the same generalized format. For more information about this data format, see Getting Data to the Client.

This section contains:

  • Modes of Operation. Describes the different modes in which the ListSheet HTC can be used.
  • Events. Describes the events supported by the ListSheet HTC.
  • Properties. Describes the properties supported by the ListSheet HTC.
  • Methods. Describes the methods supported by the ListSheet HTC.
  • Container Attributes. Describes the attributes that the ListSheet HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the ListSheet HTC via the ID used as the value of the MetaXML container attribute.
  • Instantiation Example. Demonstrates how the ListSheet HTC is instantiated in script on an Active Server Pages (ASP) page.


Modes of Operation

There are five distinct modes in which the ListSheet HTC can be configured, based on settings in the configuration data XML data-island. These five modes can be classified as belonging to one of three basic types: flat lists, homogeneous grouped lists, and heterogeneous grouped lists. The five modes are:

  • Flat List
  • Two-Level Homogeneous Grouped List
  • Three-Level Homogeneous Grouped List
  • List-Style Heterogeneous Grouped List
  • Properties-Style Heterogeneous Grouped List

Flat List

This is the most basic mode of the ListSheet HTC. The data is presented as a simple table with no expand/collapse capabilities. The id2 and id3 attributes of the column elements are not used. Also, the subobject element within the columns element is not used.

In this mode the ListSheet HTC expects a single-tiered DataXML data-island. Any extra tiers are ignored.

Return to top

Two-Level Homogeneous Grouped List

Two-level homogeneous lists are appropriate when there are two levels of data to display, and the same set of columns (specifically, column headings) can serve for the data at both levels.

Any given column need not contain data for both levels, and can be left blank or otherwise filled in such a way as to indicate that no data is expected in that column for that level of data. Some existing Commerce Server Business Desk modules use the hyphen ('-') character to indicate such a lack of data.

In two-level homogeneous grouped lists, the id2 attribute of the column (child of columns) elements are used to identify detail data in the second tier of records in the DataXML data-island. The subobject element and its embedded column elements are not used.

In this mode the ListSheet HTC expects a two-tiered DataXML data-island. Any extra tiers are ignored.

Return to top

Three-Level Homogeneous Grouped List

Three-level homogeneous lists are appropriate when there are three levels of data to display, and the same set of columns (specifically, column headings) can serve for the data at all three levels.

Any given column need not contain data for all three levels, and can be left blank or otherwise filled in such a way as to indicate that no data is expected in that column for that level of data. Some existing Business Desk modules use the hyphen ('-') character to indicate such a lack of data.

In three-level homogeneous grouped lists, the id2 and id3 attributes of the column (child of columns) elements are used to identify detail data in the second and third tiers of records, respectively, in the DataXML data-island. The subobject element and its embedded column elements are not used.

In this mode the ListSheet HTC expects a three-tiered DataXML data-island. Three is the greatest number of tiers that is supported.

Return to top

List-Style Heterogeneous Grouped List

Heterogeneous lists are appropriate where the data presented in columns in the group rows is different than the detailed data, and the sharing of column headings would not be appropriate. In list-style heterogeneous grouped lists, the detailed data is presented in what appears to be an embedded ListSheet HTC, typically displaying multiple records. Sub-items in a heterogeneous list are not selectable.

The subobject element and its column elements are used to describe the detailed data columns to be displayed. This includes the identity of the detail data to be displayed, which must exist in the second tier of records in the DataXML data-island. The id2 and id3 attributes of the (columns) column element are not used.

In this mode the ListSheet HTC expects a two-tiered DataXML data-island. Any extra tiers are ignored.

Return to top

Properties-Style Heterogeneous Grouped List

Heterogeneous lists are appropriate where the data presented in columns in the group rows is different than the detailed data, and the sharing of column headings would not be appropriate. In properties-style heterogeneous grouped lists, the detailed data is presented in what appears to be an embedded EditSheet HTC, displaying a single record. Sub-items in a heterogeneous list are not selectable.

The subobject element and its column elements are used to describe the detailed data rows to be displayed. This includes the identity of the detail data to be displayed, which must exist in the second tier of records in the DataXML data-island. The id2 and id3 attributes of the (columns) column element are not used.

In this mode the ListSheet HTC expects a two-tiered DataXML data-island. Any extra tiers are ignored.

Return to top


Events

The ListSheet HTC supports the following events:

  • OnAllRowsSelect
  • OnAllRowsUnselect
  • OnContextClick
  • OnDblClick
  • OnError
  • OnGroupOpen
  • OnHeaderClick
  • OnNewPage
  • OnRowSelect
  • OnRowUnselect

OnAllRowsSelect

The OnAllRowsSelect event fires when all rows are selected together using the Select All button.

No event object properties are set for this event.

The firing of this event indicates that all rows have been selected, including those on pages that are not currently being displayed.

Return to top

OnAllRowsUnselect

The OnAllRowsUnselect event fires when all rows are unselected together using the Deselect All button.

No event object properties are set for this event.

The firing of this event indicates that all rows have been unselected, including those on pages that are not currently being displayed.

Return to top

OnContextClick

The OnContextClick event fires when a task is chosen from the right-click context menu.

No event object properties are set for this event.

When a right-click task context menu is enabled for a ListSheet HTC, this event should be set to the utility routine execTaskFromContextMenu that is implemented in the file ActionPageUtil.asp.

Return to top

OnDblClick

The OnDblClick event fires when the user double-clicks on a row in the ListSheet HTC.

No event object properties are set for this event.

When a right-click task context menu is enabled for a ListSheet HTC, this event should be set to the utility routine execDefaultTask that is implemented in the file ActionPageUtil.asp.

Return to top

OnError

The OnError event fires when the ListSheet HTC encounters a developer error condition. In addition, if the m_bDebug variable in the HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur when you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnGroupOpen

The OnGroupOpen event fires when a group row is opened to display sub-item rows or a sub-object table.

The event object property window.event.XMLRecord is a standard XMLRecord object hierarchy corresponding to the opened group row. For more information, see XMLList and XMLRecord Properties.

Return to top

OnHeaderClick

The OnHeaderClick event fires when one of the column headings is clicked, allowing a sorting routine to be invoked. This event will not fire if sorting has been disabled (by setting the sort attribute to "no" in the metadata).

Two event object properties are set when the event is fired. The window.event.sortcol property contains a string that is set to the value of the id attribute of the (columns) column element corresponding to the heading that was clicked.

Note

  • When using the XMLHTTP sort operation there is no need to trap this event because sort runs automatically.

The event object property window.event.sortdir contains one of the two strings 'asc' or 'desc', indicating the new sorting direction (ascending or descending, respectively).

Return to top

OnNewPage

The OnNewPage event fires when one of the page navigation buttons is clicked (First, Previous, Next, and Last), or when the page number is explicitly changed.

Note

  • When using the XMLHTTP page operation there is no need to trap this event because the page operation runs automatically.

The event object property window.event.page contains a positive integer that indicates the new page to be displayed. Page numbers start at one, not zero.

Return to top

OnRowSelect

The OnRowSelect event fires when a row is selected.

The event object property window.event.XMLRecord is a standard XMLRecord object hierarchy corresponding to the selected row. For more information, see XMLList and XMLRecord Properties.

Return to top

OnRowUnselect

The OnRowUnselect event fires when a row is unselected.

The event object property window.event.XMLRecord is a standard XMLRecord object hierarchy corresponding to the row that has been unselected. For more information, see XMLList and XMLRecord Properties.

Return to top


Properties

The ListSheet HTC supports the following properties:

  • page
  • recordcount
  • XMLList

page

The page property reads and writes the page number that is displayed in the page controls.

Writing a new page property does not fire the OnNewPage event, or do anything with regard to retrieving the data associated with the new page.

This property is read/write.

Return to top

recordcount

The recordcount property reads and writes the current number of records, and when written, the ListSheet HTC recalculates the page controls.

Setting this property to –1 causes the Last button to be disabled, and indicates that the number of records is not known.

Setting this property to 0 (zero) or any number less than or equal to the page size causes the page controls to be hidden.

This property is read/write.

Return to top

XMLList

The XMLList property is a standard XMLList object hierarchy, containing the list currently in use by the HTC. For more information, see XMLList and XMLRecord Properties.

This property is read-only.

Return to top


Methods

The ListSheet HTC supports the following methods:

  • reload
  • selectAllRows
  • unselectAllRows

reload(sOp, sArgs)

The reload method reloads the data into the ListSheet HTC using an operation configured in the MetaXML data-island. This type of operation, known as an XMLHTTP operation, retrieves and displays new data from the server without reloading the current page.

The operation is identified by the required sOp parameter, which specifies the name of a child element of the operations element in the MetaXML data-island. The element name can be one of the pre-defined operations: page, sort, or sublist, or it can be a completely custom operation.

The formid attribute of the matching operation element identifies the form that is posted as a result of this operation. The action attribute of the form specifies the page to which the form is posted.

Since the form will be posted in XML format, response pages should use the utility routine dGetRequestXMLAsDict to retrieve the posted XML as a Dictionary object. In addition, response pages should include the file BDXMLHeader.asp, which sets the response.contentType to 'text/xml' and inserts the processing instruction node to set the XML version and charset.

The sArgs parameter specifies a list of URL-encoded page arguments that are passed to the page being posted. In addition, any child elements of the form are sent with the form posting.

Finally, the pre-defined operations result in certain, pre-defined arguments being included:

  • Page operations: 'op', 'prevpage', 'page', 'column', and 'direction'
  • Sort operations: 'op', 'page', 'column' and 'direction'
  • SubList operation: 'op' and 'xmlrecord'

This method returns False if any error nodes are present in the returned XML, or if nothing is returned. It returns True if a valid XML record list is returned with no error nodes.

Example:

bRetVal = elListSheet.reload("double_sort")

The Sort operation automatically resets the current page number to 1 (one) and will run automatically when a column header is clicked. The Page operation automatically resets the current page number to whatever new page is requested and runs automatically when any of the page controls are clicked or if a new page number is entered into the page number input field. For some custom operations, it may be necessary to set the current page number of the ListSheet HTC to some new value before calling the reload method, based on the nature of the custom operation. The page property of the ListSheet HTC is provided for this purpose. For more information about the page property, see page.

Return to top

selectAllRows

The selectAllRows method selects all rows in the list. It does not take any parameters and does not have any return value.

This method selects all rows, including those on pages not currently being displayed.

Return to top

unselectAllRows

The unselectAllRows method unselects all rows in the list. It does not take any parameters and does not have any return value.

This method unselects all rows, including those on pages not currently being displayed.

Return to top


Container Attributes

In order to pass data to the ListSheet HTC, the following attributes must be set on the element that is using the ListSheet behavior (note that this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the Extensible Markup Language (XML) data-island containing the data to be displayed.

Depending on the mode in which the ListSheet HTC is configured to run, this data-island may have one, two, or three tiers of record elements within it.

MetaXML
The value of this attribute must be set to the value of the id attribute of the XML data-island containing the configuration information for this instance of the ListSheet HTC.


Configuration Data

The ListSheet HTC requires that its configuration information be passed to it in the form of an XML data-island. This information consists primarily of details about each column to be displayed. For example, the type of the data in the column, minimum and maximum values for validation purposes, and the element name used for the corresponding data in the DataXML data-island.

For detailed information about the structure of this XML data-island, see ListSheet Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a ListSheet HTC within a DIV element. The Class attribute specifies that the ListSheet behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the ListSheet HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML and MetaXML attributes specify the data and configuration data-islands that are defined elsewhere within the document. The Language attribute specifies that the ListSheet HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the ListSheet HTC.

Finally, temporary text is provided to inform the user that the ListSheet HTC is loading.

  <DIV Id='myListSheet'
       Class='ListSheet'
       Language='VBScript'
       DataXML='DataIslandID'
       MetaXML='MetaDataIslandID'
       OnAllRowsSelect='AllRowsSelectHandler()'
       OnAllRowsUnselect='AllRowsUnselectHandler()'
       OnContextClick='execTaskFromContextItem()'
       OnDblClick='execDefaultTask()'
       OnError='ErrorHandler()'
       OnHeaderClick='HeaderClickHandler()'
       OnGroupOpen='GroupOpenHandler'
       OnNewPage='NewPageHandler()'
       OnRowSelect='RowSelectHandler()'
       OnRowUnselect='RowUnselectHandler()'
  >Loading ListSheet, please wait...</DIV>


MenuControl

The MenuControl HTML component (HTC) provides users with an easy and intuitive manner in which to control a context menu.

This section contains:

  • Instantiation Example Demonstrates how the MenuControl HTC is instantiated in script on an Active Server Pages (ASP) page.


Instantiation Example

The following is an example of the nested DIV structure used to construct a context menu:

  <DIV ID='mycontextmenu'
       CLASS='bdcontextmenu'
       TABINDEX=0
       STYLE='DISPLAY: none; BEHAVIOR: url(/widgets/listHTC/menucontrol.htc)'
       LANGUAGE=VBScript
       ONCLICK='clickContextMenuItem'
       ONHIGHLIGHT='toggleContextMenuHighlight'
       ONUNHIGHLIGHT='toggleContextMenuHighlight'
       ONCLOSE ='closeContextMenu'>
    <DIV ID='myopen'
         CLASS='bdcontextmenuitem'
         LANGUAGE=VBScript
         ONCONTEXTCLICK='myOpenHandler'>Open
    </DIV>
    <DIV ID='mydelete'
         CLASS='bdcontextmenuitem'
         LANGUAGE=VBScript
         ONCONTEXTCLICK='myDeleteHandler'>Delete
    </DIV>
  </DIV>

The routines myOpenHandler and myDeleteHandler will be run when the user clicks on the corresponding item in the menu.

To attach the above menu to an HTML element on your page simply add the routine showContextMenu to handle the onContext menu event:

  <LABEL ID='mylabel'
         LANGUAGE=VBScript
         ONCONTEXTMENU='showContextMenu'>
         Right-clickable text goes here
  </LABEL>

For more information about working with context menus, see the reference topics for the following routines:

  • clickContextMenuItem (client-side)
  • closeContextMenu (client-side)
  • showContextMenu (client-side)
  • toggleContextMenuHighlight (client-side)


QueryBuilder

The QueryBuilder HTML component (HTC) provides users with an easy and intuitive manner in which to build queries.

Queries are built from one or more clauses combined with logical operators. Clauses are operations or comparisons performed on one or more profiles. The QueryBuilder HTC currently supports a variety of property types and operators. The types and operators supported by the QueryBuilder HTC can be customized as well.

The queries are represented in an Extensible Markup Language (XML) format that can be used as is, or that can be converted (via Extensible Stylesheet Language (XSL) transforms or other methods) to other formats, such as SQL that can be used against an actual database.

This section contains:

  • Events. Describes the events supported by the QueryBuilder HTC.
  • Properties. Describes the properties supported by the QueryBuilder HTC.
  • Methods. Describes the methods supported by the QueryBuilder HTC.
  • Container Attributes. Describes the attributes that the QueryBuilder HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the QueryBuilder HTC via the ID used as the value of the XMLCfgID container attribute.
  • Instantiation Example. Demonstrates how the QueryBuilder HTC is instantiated in script on an ASP page.


Events

The QueryBuilder HTC supports the following events:

  • OnActive
  • OnError
  • OnQueryChange
  • OnReady

OnActive

The OnActive event fires when the QueryBuilder HTC enters the active state as a result of the Activate method being called and successfully run. This event is most useful when the QueryBuilder HTC is being activated as part of the activation of a containing control, which itself cannot be successfully activated unless all of its sub-controls have been successfully activated.

Return to top

OnError

The OnError event fires when activation of the QueryBuilder HTC fails.

Return to top

OnQueryChange

The OnQueryChange event fires when the current query changes, such as when a clause is added, deleted, or modified.

Return to top

OnReady

The OnReady event fires when the QueryBuilder HTC is fully loaded and initialized, indicating that its programmatic interface is ready to use. No properties or methods (including the Activate method) of the QueryBuilder HTC should be called before this event fires.

Return to top


Properties

The QueryBuilder HTC supports the following properties:

  • IsActive
  • IsReady

IsActive

The IsActive property indicates whether the QueryBuilder HTC is currently active. The value of this property is True when the QueryBuilder control is active, that is, when the user can interact with it. The value is False when the control is inactive.

This property is read-only.

Return to top

IsReady

The IsReady property indicates whether the QueryBuilder HTC is ready for programmatic access. The value of this property is False before the OnReady event fires, and True after that event fires. It allows polling to be used to determine whether the control is ready.

This property is read-only.

Return to top


Methods

The QueryBuilder HTC supports the following methods:

  • Activate
  • Deactivate
  • GetExprBody
  • GetExprBodyXML
  • GetProfileList
  • SetExprBody
  • SetExprBodyXML
  • SetExprListXML

Activate(bEdit)

The Activate method activates the QueryBuilder HTC. When the bEdit parameter is True, editing of the displayed query is allowed. If the bEdit parameter is False, editing is not allowed.

This method returns False if a fatal error occurs, and True otherwise.

Return to top

Deactivate

The Deactivate method deactivates the user interface of the QueryBuilder HTC without clearing the current query. It does not take any parameters or return a value.

Return to top

GetExprBody

The GetExprBody method returns a string containing an XML representation of the current query. If there is no current query, it returns NULL.

Return to top

GetExprBodyXML

The GetExprBodyXML method returns an XML DOMDocument object that represents the current query. If there is no current query, it returns nothing.

Return to top

GetProfileList

The GetProfileList method returns a Microsoft Visual Basic Scripting Edition (VBScript) SAFEARRAY containing the names of all of the profiles that are currently loaded in the QueryBuilder HTC. It does not take any parameters.

Return to top

SetExprBody(strExprBody)

The SetExprBody method allows the current query to be set. The only parameter is a string containing XML that specifies the query to be set. It returns True if it can successfully parse the query, and False if the parsing fails.

An empty string or NULL can be passed to clear the current query.

Return to top

SetExprBodyXML(xmlExprBody)

The SetExprBodyXML method allows the current query to be set. The only parameter is an XML DOMDocument object that specifies the query to be set. It returns True if it can successfully parse the query, and False if the parsing fails.

An empty XML DOMDocument object, or the "Nothing" keyword, can be passed to clear the current query.

Return to top

SetExprListXML

The SetExprListXML method allows the caller to provide the QueryBuilder HTC with a list of named expressions from which the QueryBuilder HTC can build other expressions. This method is not likely to be used when the QueryBuilder HTC is being used by itself. Rather, it exists primarily for use by the ExpressionBuilder HTC when it needs to provide the QueryBuilder HTC with a list of named expressions.

Return to top


Container Attributes

In order to pass data to the QueryBuilder HTC, the following attributes must be set on the element that is using the QueryBuilder behavior (this element is typically a DIV):

XMLCfgID
The value of this attribute must be set to the value of the id attribute of the Extensible Markup Language (XML) data-island containing the configuration information for this instance of the QueryBuilder HTC.
AutoActivate
The value of this attribute controls whether the QueryBuilder HTC automatically activates when loading is complete. Legal values are True and False. A value of True causes auto-activation to occur, and a value of False suppresses auto-activation. The default value is False.

Automatic activation allows editing of the displayed query.


Configuration Data

The QueryBuilder HTC requires that its configuration information be passed to it in the form of an Extensible Markup Language (XML) data-island. This information consists of configuration information that controls the behavior of the QueryBuilder HTC, such as what profiles and site terms are available for use in building queries.

For detailed information about the structure of this XML data-island, see QueryBuilder Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a QueryBuilder HTC within a DIV element. The Style attribute specifies that the QueryBuilder behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the QueryBuilder HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The XMLCfgID attribute specifies a configuration data-island that is defined elsewhere within the document. The Language attribute specifies that the QueryBuilder HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the QueryBuilder HTC. Since the AutoActivate attribute is not present, the Activate method must be called explicitly.

Finally, temporary text is provided to inform the user that the QueryBuilder HTC is loading.

  <DIV Id='myQueryBuilder'
       Class='clsQueryBldr'
       Style='behavior:url(/widgets/exprbldrHTC/QueryBuilder.htc); width:100%'
       Language='VBScript'
       XMLCfgID='DataIslandID'
       OnAction='ActionHandler()'
       OnError='ErrorHandler()'
       OnQueryChange='QueryChangeHandler()'
       OnReady='ReadyHandler()'
  >Loading QueryBuilder, please wait...</DIV>


TreeView

The TreeView HTML Component (HTC) directly translates an Extensible Markup Language (XML) hierarchy into an expandable tree structure for use in selection.

It is important to note that the TreeView HTC makes a distinction between a tree item being selected and being active. Selection is visible to the user. The most recently clicked item is the active item, which may or may not cause the item to be selected as well. The active item can also be changed programmatically without changing the selected item. Programmatically setting an active node enables you to then use several methods without having to specify the node again (enableActive, expandActive, and so on).

This section contains:

  • Events. Describes the events supported by the TreeView HTC.
  • Methods. Describes the methods supported by the TreeView HTC.
  • Container Attributes. Describes the attributes that the TreeView HTC expects to be set on the element in which it is contained.
  • Configuration Data. Describes the data passed to the TreeView HTC via the ID used as the value of the DataXML container attribute.
  • Instantiation Example. Demonstrates how the TreeView HTC is instantiated in script on an Active Server Pages (ASP) page.

The TreeView HTC does not expose any properties.


Events

The TreeView HTC supports the following events:

  • OnError
  • OnItemClose
  • OnItemExecute
  • OnItemOpen
  • OnItemSelect
  • OnItemUnselect

OnError

The OnError event fires when the TreeView HTC encounters a developer error condition. In addition, if the m_bDebug variable in the HTC is set to True, an alert box appears. This switch can be very helpful in debugging problems that occur when you get the error message "The control could not load."

The event object property window.event.error contains a string with details about the error.

Return to top

OnItemClose

The OnItemClose event fires when a container item in the tree is closed.

The event object property window.event.XMLitem contains the XML node for the item that has been closed.

Return to top

OnItemExecute

The OnItemExecute event fires when an item in the tree is double-clicked.

The event object property window.event.XMLitem contains the XML node for the item that has been double-clicked.

Return to top

OnItemOpen

The OnItemOpen event fires when a container item in the tree is opened.

The event object property window.event.XMLitem contains the XML node for the item that has been opened.

When the item being opened contains the subordinate element expand (and no other subordinate elements), the event handling routine for this event must attach arguments to the corresponding form element. When it completes, the TreeView HTC calls the reload method with its sOp parameter set to 'expand'. The tree data returned by the form response then replaces the expand element itself in the DataXML data-island, which completes the deferred loading of that section of the tree.

Return to top

OnItemSelect

The OnItemSelect event fires when an item in the tree is selected.

The event object property window.event.XMLitem contains the XML node for the item that has been selected.

Return to top

OnItemUnselect

The OnItemUnselect event fires when a selected item in the tree becomes unselected.

The event object property window.event.XMLitem contains the XML node for the item that is no longer selected.

Return to top


Methods

The TreeView HTC supports the following methods:

  • areRelated
  • enableActive
  • expandActive
  • expandAll
  • hideActive
  • reload
  • selectNode
  • setActive
  • unselectAll

areRelated(sFrom, sTo)

The areRelated method is used to determine whether the two tree items specified by the required parameters sFrom and sTo are related. In other words, one is a descendent of the other. If they are related, this method returns True. If they are not related, this method returns False.

The parameters sFrom and sTo can be either the data contained by the item, or the value of the caption attribute, in the DataXML data-island.

Return to top

enableActive(bEnable)

The enableActive method is used to enable and disable the active item based on the value of the required parameter bEnable. Legal values for bEnable are True and False. A value of True causes the active node to be enabled. A value of False causes it to be disabled.

Return to top

expandActive(bExpand)

The expandActive method is used to expand or collapse the active item based on the value of the required parameter bExpand. Legal values for bExpand are True and False. A value of True causes the active node to be expanded. A value of False causes it to be collapsed.

Return to top

expandAll(bExpand)

The expandAll method is used to expand or collapse the entire tree based on the value of the required parameter bExpand. Legal values for bExpand are True and False. A value of True causes the entire tree to be expanded. A value of False causes the entire tree to be collapsed.

Return to top

hideActive(bHide)

The hideActive method is used to hide and show the active item and its children based on the value of the required parameter bHide. Legal values for bHide are True and False. A value of True causes the active node and its children to be hidden. A value of False causes them to be shown.

Return to top

reload(sOp)

The reload method reloads the data into the TreeView HTC using an operation configured in the DataXML data-island.

The operation is identified by the required sOp parameter, which specifies the name of a child element of the operations element in the DataXML data-island. In general, the element name is an arbitrary name associated with a custom operation.

The exception is a special operation indicated by the expand element. This operation does not reload the entire tree. Rather, it replaces a particular occurrence of an expand element with the data returned from the server, effectively expanding a previously closed section of the tree. Such expansion typically occurs only once for each expand element.

The formid attribute of the matching operation element identifies the form that is posted as a result of this operation. The action attribute of the form specifies the page to which the form is posted.

Any child elements of the form are sent with the form posting.

This method does not have any return values.

Example:

elTreeView.reload("alpha_sort")

Return to top

selectNode(sValue)

The selectNode method selects the first item in the tree that has a data value or caption matching the string passed in the required parameter sValue. If no match is found, no item is selected. This method does not have any return value.

Return to top

setActive(sValue)

The setActive method looks for an item in the tree that has a data value or caption matching the string passed in the required parameter sValue, and sets the first such item as the active item. If no match is found, the currently active item, if any, remains active. This method does not have any return value.

Return to top

unselectAll

The unselectAll method unselects all items in the tree. It does not take any parameters and does not have any return value.

Return to top


Container Attributes

In order to pass data to the TreeView HTC, the following attribute must be set on the element that is using the TreeView behavior (this element is typically a DIV):

DataXML
The value of this attribute must be set to the value of the id attribute of the Extensible Markup Language (XML) data-island containing the combination of operations configuration and data to be displayed.


Configuration Data

The TreeView HTC requires that the tree to be displayed be passed to it in the form of an Extensible Markup Language (XML) data-island. This data-island contains the data to be displayed in the tree, configuration attributes about how that data should be displayed, and configuration information about any custom operations defined for this instance of the TreeView HTC. The container attribute DataXML is set to the value of the id attribute of this data-island.

It is important to note that the TreeView HTC is the only Commerce Server Business Desk HTC for which configuration information is combined into the same data-island with the data itself. In other words, there is no MetaXML container attribute to specify for the TreeView HTC. Data and configuration information are provided in a single data-island, specified by the DataXML container attribute. The nested nature of the elements provides the nesting shown in the displayed tree.

The names of all of the elements in the data-island for the TreeView HTC are arbitrary, though there are circumstances where the element name itself is displayed to the user. The XML elements and attributes in the TreeView HTC configuration may be expressed in uppercase or lowercase letters. The arbitrary elements may contain data, but need not.

For detailed information about the structure of this XML data-island, see TreeView Configuration.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.


Instantiation Example

The following HTML code shows a typical instantiation of a TreeView HTC within a DIV element. The Class attribute specifies that the TreeView behavior be associated with this DIV element.

Note

  • In order for the Class attribute to properly identify the TreeView HTC, you must make sure that your pages use the Bizdesk.css style sheet.

The DataXML attribute specifies the ID of the data-island that specifies the tree structure, behavior, and any special operations defined for the tree. This data-island must be defined elsewhere within the document. The Language attribute specifies that the TreeView HTC event handlers are implemented in Microsoft Visual Basic Scripting Edition (VBScript). The remaining attributes associate methods defined elsewhere with the specific events supported by the TreeView HTC.

Finally, temporary text is provided to inform the user that the TreeView HTC is loading.

  <DIV Id='myTreeView'
       Class='TreeView'
       Language='VBScript'
       DataXML='DataIslandID'
       OnError='ErrorHandler()'
       OnItemSelect='ItemSelectHandler()'
       OnItemUnselect='ItemUnselectHandler()'
       OnItemExecute='ExecuteHandler()'
       OnItemOpen='OpenHandler()'
       OnItemClose='CloseHandler()'
  >Loading TreeView, please wait...</DIV>


Include Files

The Commerce Server Business Desk Include directory contains a number of files that provide a variety of functionality for use within Business Desk modules. Not all of them are relevant to authors of Business Desk modules. The following table provides a brief description of the purpose of each relevant file in the Include directory.

File name | Description
ActionPageUtil.asp This Active Server Pages (ASP) file contains much of the implementation of the Business Desk Framework. It contains both server-side and client-side utility functions, constants, and global variables that are useful for module development.

It also performs certain universal action page initialization tasks, such as displaying the taskbar. Note that most of the functions inserted with the taskbar call into the parent frame (bizdesk.asp) in order to decreace the client code download size.

Nested include files: BizDeskPaths.asp, BizDeskStrings.asp, SharedStrings.asp.
ASPUtil.asp This ASP file contains miscellaneous functions that are useful on pages that do not need all of the display-related code that is in the file ActionPageUtil.asp. An example is a page that performs server-side processing and then redirects to another page.

This file contains localizable strings.

Nested include files: None. The file ASPUtil.asp is not dependent on code in any other file.
BDHALUtil.htm This ASP file contains code to resize buttons and select controls to uniform sizes. It is primarily intended for use in HTML dialog boxes.

Nested include files: None. The file BDHALUtil.asp is not dependent on code in any other file.
BDHeader.asp This ASP file contains code to set the codepage, response headers, and script language for HTML pages. It should be included at the top of any page that displays HTML in the Business Desk content pane.

Nested include files: None. The file BDHeader.asp is not dependent on code in any other file.
BDXMLHeader.asp This ASP file contains code to set the codepage, response headers, script language, and XML declaration node for pages that return XML. It should be included at the top of any page that returns XML to one of the Business Desk HTML Components (HTCs) that run XMLHTTP operations (for example, the ListSheet HTC and the TreeView HTC).

Nested include files: None. The file BDXMLHeader.asp is not dependent on code in any other file.
BizDesk.css This file is the cascading style sheet for Business Desk. Global changes to how Business Desk appears, such as the colors and fonts used, should be made in this file. All module action pages should specify this file as their style sheet so that they participate in any such global changes. This enhances the overall consistency of Business Desk as new modules are added.

The content for this file is generated by importing the file styles\bizdesk_css.asp. This file is determines which CSS file in the include\styles folder to use by concatenating the current theme prefix and "bizdesk.css".
BizDeskObjects.asp The routines in this file are intended for internal framework use only.

This file contains localizable strings for Business Desk developer errors that show only when initially loading the application in DEVELOPER mode.

Nested include files: None. The file BizDeskObjects.asp is not dependent on code in any other file.
BizDeskPaths.asp This ASP file contains the declarations of a number of server-side global variables that store Business Desk paths and Internet Information Server (IIS) virtual roots useful to module code. For more information about these global variables, see Server-Side Global Variables.

Nested include files: None. The file BizDeskPaths.asp is not dependent on code in any other file.
BizDeskStrings.asp This ASP file contains the definitions of string constants used within the Business Desk Framework, greatly reducing the effort required to translate the Business Desk Framework into other languages.

Refer to the include file itself for the particular constants and corresponding strings, as well as documentation about the naming convention used for the constants.

This file contains localizable strings.

Nested include files: None. The file BizDeskStrings.asp is not dependent on code in any other file.
BizDeskUtil.asp This ASP file is normally included by Business Desk module action pages. Its main purpose is to consolidate the inclusion of several other files.

It also contains code to prevent module action pages from being browsed outside the Business Desk Framework. If this code does not detect the Business Desk Framework, it redirects the page to Business Desk.

Nested include files: DBUtil.asp, ASPUtil.asp, ActionPageUtil.asp.
ClientDateUtil.asp This ASP file contains several client-side routines for working with dates.

Nested include files: None. The file ClientDateUtil.asp is not dependent on code in any other file. You must explicitly include this file to use the functions in it.
DBUtil.asp This ASP file contains a number of server-side functions for creating ActiveX Data Objects (ADO) connections, performing SQL queries, and then converting the data in the resultant Recordset objects into XML data-islands. It also provides numerous ADO constant definitions.

Nested include files: None. The file DBUtil.asp is not dependent on code in any other file.
DialogUtil.asp This ASP file is normally included by Business Desk module dialog pages. Its main purpose is to consolidate the inclusion of several other files, without the redirect code in the file BizDeskUtil.asp.

Nested include files: DBUtil.asp, ASPUtil.asp, ActionPageUtil.asp.
dlg_confirm.asp This ASP file is useful for showing a standard confirmation dialog box, and can be passed as an argument to the showModalDialog DOM method. See the file ActionPageUtil.asp for examples.

Nested include files: BDHeader.asp, SharedStrings.asp, BizDeskStrings.asp, BizDeskPaths.asp, ASPUtil.asp.
dlg_debug.htm This ASP file is useful for showing a standard debug dialog box, and can be passed as an argument to the showModalDialog DOM method. See the file HTTPXMLUtil.htm for examples.

Nested include files: None. The file dlg_debug.htm is not dependent on code in any other file.
dlg_error.asp This ASP file is useful for showing a standard error dialog box, and can be passed as an argument to the showModalDialog DOM method. See the file ActionPageUtil.asp for examples.

Nested include files: BDHeader.asp, SharedStrings.asp, BizDeskPaths.asp, ASPUtil.asp.
dlg_permissions.asp This ASP file is useful for showing a standard Business Desk permissions dialog box, and can be passed as an argument to the showModalDialog DOM method. See the file ActionPageUtil.asp for examples.

Nested include files: BDHeader.asp, DialogUtil.asp, HTTPXMLUtil.asp.
dlg_warn.asp This ASP file is useful for showing a standard warning dialog box, and can be passed as an argument to the showModalDialog DOM method. See the file ActionPageUtil.asp for examples.

Nested include files: BDHeader.asp, SharedStrings.asp, BizDeskStrings.asp, BizDeskPaths.asp, ASPUtil.asp.
HTTPXMLUtil.asp This ASP file contains a number of server-side functions for creating XML documents, adding nodes to a document in a standard way, converting an XML document to a Dictionary object and vice versa. It also provides functions for retrieving XML posted to an XMLHTTP response page.

Nested include files: None. The file HTTPXMLUtil.asp is not dependent on code in any other file.
HTTPXMLUtil.htm This HTM file contains a number of client-side functions for creating XML documents, adding nodes to a document in a standard way, converting an XML document to a Dictionary object and vice versa. It also provides functions for posting XML to an XMLHTTP response page and various server-side state routines as well (using the response_session.asp response page).

Nested include files: None. The file HTTPXMLUtil.htm is not dependent on code in any other file. You must explicitly include this file to use the functions in it.
NavTree.css This style sheet file is used by the navigation pane frame and is not intended to be linked to by any other Business Desk files.

The content for this file is generated by importing the file styles\navtree_css.asp. This file is determines which CSS file in the include\styles folder to use by concatenating the current theme prefix and "navtree.css".
response_permissions.asp | This file contains code used to set Business Desk permissions using XMLHTTP. This file is intended for internal framework use only.
response_session.asp | This file contains code used to set, get, and clear server state using XMLHTTP. Routines in this file are intended for internal framework use only.
ServerSecurityUtil.asp | This file contains routines used for server-side security.
SharedStrings.asp This ASP file contains the definitions of string constants used within multiple Business Desk modules that ship as part of Commerce Server 2002. Having such string constants centralized greatly reduces the effort required to translate them into other languages.

Refer to the include file itself for the particular constants and corresponding strings, as well as documentation about the naming convention used for the constants.

Module writers who are authoring multiple modules that share strings or functions can easily add another file for their shared code in the Common folder, provided for this purpose. Microsoft discourages adding code to the file SharedStrings.asp since this may create multiple versions for different third parties.

This file contains localizable strings.

Nested include files: None. The file SharedStrings.asp is not dependent on code in any other file.


Constants

The Commerce Server Business Desk Framework defines a variety of client-side and server-side constants that provide a means to symbolically express values that are likely to be useful when writing Business Desk modules. Wherever possible, module developers should use these constants rather than defining their own equivalent constants or using the underlying values directly.

This section contains:

  • Client-Side Constants. Provides an alphabetized list of all client-side constants provided by the Business Desk Framework.
  • Server-Side Constants. Provides an alphabetized list of all server-side constants provided by the Business Desk Framework.


Client-Side Constants

The Commerce Server Business Desk Framework defines the following client-side constants:

Error Type Constants (from file ActionPageUtil.asp):
Constants to use as the nErrorType parameter of the client-side routine ShowErrorDlg. The passed value communicates the type of the error and the type of error icon displayed by the routine.

Constants:

ERROR_ICON_ALERT, ERROR_ICON_CRITICAL, ERROR_ICON_QUESTION, ERROR_ICON_INFORMATION

Key Code Constants (from file ActionPageUtil.asp):
Constants to use as values of the window.event.keyCode variable in "onKey" handler routines, allowing the pressed key to be determined.

Constants:

KEYCODE_LEFT, KEYCODE_UP, KEYCODE_RIGHT, KEYCODE_DOWN, KEYCODE_BACKSPACE, KEYCODE_F1, KEYCODE_F2, KEYCODE_F3, KEYCODE_F4, KEYCODE_F5, KEYCODE_F6, KEYCODE_F7, KEYCODE_F8, KEYCODE_F9, KEYCODE_F10, KEYCODE_F11, KEYCODE_F12

XML DOM Element Type Constants (from file ActionPageUtil.asp):
Constants to use as values for the CreateNode method of the XMLDOM.

Constants:

NODE_ELEMENT, NODE_ATTRIBUTE, NODE_TEXT, NODE_CDATA_SECTION, NODE_ENTITY_REFERENCE, NODE_ENTITY, NODE_PROCESSING_INSTRUCTION, NODE_COMMENT, NODE_DOCUMENT, NODE_DOCUMENT_TYPE, NODE_DOCUMENT_FRAGMENT, NODE_NOTATION

Webdings Font Arrow Constants (from file ActionPageUtil.asp):
Character-code constants for elements formatted with the Webdings FONT-FAMILY. These constants correspond to left, right, up, and down arrows.

Constants:

LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW


Server-Side Constants

The Commerce Server Business Desk Framework defines the following server-side constants:

Environment Mode Constants (from file BizDeskUtil.asp):
Constants used to set the MSCSEnv variable in the Global.asa file. PRODUCTION mode sets all debug flags to values that should be used for Business Desk in a production environment. DEVELOPMENT mode sets the debug flags to allow greater feedback and functionality useful when developing new Business Desk modules.

Constants:

PRODUCTION, DEVELOPMENT

These two constants control the inidividual settings of the following six Boolean variables that control various aspects of the Business Desk behavior: VERBOSE_OUTPUT, SHOW_OBJECT_ERRORS, AUTO_REDIRECT_ENABLED, FORCE_HTA_ONLY, ALLOW_CONTEXT_MENUS, and SHOW_DEBUG_TEXT. Refer to the file Global.asa for additional details.

Error Type Constants (from file ASPUtil.asp):
Constants to use as the nErrorType parameter of the server-side routine SetError. The passed value communicates the type of the error and the type of error icon displayed by the routine.

Constants:

ERROR_ICON_ALERT, ERROR_ICON_CRITICAL, ERROR_ICON_QUESTION, ERROR_ICON_INFORMATION

Key Code Constants (from file ActionPageUtil.asp):
Constants to use as values of the window.event.keyCode variable in "onKey" handler routines, allowing the pressed key to be determined.

Constants:

KEYCODE_LEFT, KEYCODE_UP, KEYCODE_RIGHT, KEYCODE_DOWN, KEYCODE_BACKSPACE, KEYCODE_F1, KEYCODE_F2, KEYCODE_F3, KEYCODE_F4, KEYCODE_F5, KEYCODE_F6, KEYCODE_F7, KEYCODE_F8, KEYCODE_F9, KEYCODE_F10, KEYCODE_F11, KEYCODE_F12

XML DOM Element Type Constants (from file ActionPageUtil.asp):
Constants to use as values for the CreateNode method of the XMLDOM.

Constants:

NODE_ELEMENT, NODE_ATTRIBUTE, NODE_TEXT, NODE_CDATA_SECTION, NODE_ENTITY_REFERENCE, NODE_ENTITY, NODE_PROCESSING_INSTRUCTION, NODE_COMMENT, NODE_DOCUMENT, NODE_DOCUMENT_TYPE, NODE_DOCUMENT_FRAGMENT, NODE_NOTATION

ADO Constants (from file DBUtil.asp):
Constants to use with ActiveX Data Objects (ADO), such as command types, cursor types, lock types, and so on.

Constants:

Refer to the file DBUtils.asp for details.
Special Date Splitting Constants (from file DBUtil.asp):
A special constant to use in the formatting Dictionary object passed to the Recordset-to-XML conversion routines. It is used to indicate that a single ADO datatime field should be split into two separate fields for separate editing in date and time EditField HTCs. The date portion will be placed in an Extensible Markup Language (XML) element named date_colId and the time portion will be placed in an XML element named time_colId.

Constants:

COMMERCE_SPLIT_DATE

XML Conversion Routine Constant (from file DBUtil.asp):
Constant to use as the recordcount parameter to Recordset-to-XML conversion routines, indicating that the recordset should not be counted.

Constants:

TOO_BIG_TO_COUNT

Locale Constants (from file DBUtil.asp):
Constants to use with the DataFunctions object GetLocaleInfo method.

Constants:

LOCALE_SDECIMAL, LOCALE_STHOUSAND

Webdings Font Arrow Constants (from file ActionPageUtil.asp):
Character-code constants for elements formatted with the Webdings FONT-FAMILY. These constants correspond to left, right, up, and down arrows.

Constants:

LEFT_ARROW, RIGHT_ARROW, UP_ARROW, DOWN_ARROW


Global Variables

The Commerce Server Business Desk Framework defines a variety of client-side and server-side global variables that are initialized to values that are useful when writing Business Desk modules. Wherever possible, module developers should use the values already in these global variables rather than constructing their own equivalents.

This section contains:

  • Client-Side Global Variables. Provides an alphabetized list of all client-side global variables provided by the Business Desk Framework.
  • Server-Side Global Variables. Provides an alphabetized list of all server-side global variables provided by the Business Desk Framework.


Client-Side Global Variables

The Commerce Server Business Desk Framework defines the following client-side global variables:

g_bDirty
A Boolean value indicating whether any fields on the page have changed since the last save operation. True indicates that changes have been made since the last save operation, and False indicates that no changes have been made.

This variable is declared and initialized to False in the file ActionPageUtil.asp, and its scope is the action page itself.

g_bRequired
A Boolean value indicating whether any fields on the page still require values to be provided. True indicates that at least one required field does not yet have a value, and False indicates that all required fields have values.

This variable is declared and initialized to False in the file ActionPageUtil.asp, and its scope is the action page itself.

g_bUnloading
A Boolean used to indicate when the page is unloading because a task button was clicked. This forces the framework to suppress the display of the normal Internet Explorer unloading page warning that is displayed after the user clicks the close button for Business Desk.
g_bValid
A Boolean value indicating whether any fields on the page contain values that are not valid. False indicates that one or more fields have a value that is not valid, and True indicates that all fields contain valid values.

This variable is declared and initialized to True in the file ActionPageUtil.asp, and its scope is the action page itself.

g_nFindByHeight
An integer height in pixels for the find pane, initially set to 55 pixels. This variable is set by the SetFindByHeight routine before the ShowFindBy routine is called to display it.


Server-Side Global Variables

The Commerce Server Business Desk Framework defines the following server-side global variables:

ALLOW_CONTEXT_MENUS
A Boolean value that controls whether normal right-click menus will be disabled within Business Desk. A value of True allows normal right-click menus, and a value of False suppresses normal right-click menus.

In the Global.asa file, when the variable MSCSEnv is set to PRODUCTION, the variable ALLOW_CONTEXT_MENUS is set to False. When the variable MSCSEnv is set to DEVELOPMENT, the variable ALLOW_CONTEXT_MENUS is set to True.

There is also an Application object variable with the same name as this global variable.

AUTO_REDIRECT_ENABLED

A Boolean value that controls whether action pages can be displayed outside the Business Desk Framework. A value of True causes any such attempt to be redirected to Business Desk, and a value of False suppresses this redirection behavior.

In the Global.asa file, when the variable MSCSEnv is set to PRODUCTION, the variable AUTO_REDIRECT_ENABLED is set to True. When the variable MSCSEnv is set to DEVELOPMENT, the variable AUTO_REDIRECT_ENABLED is set to False.

There is also an Application object variable with the same name as this global variable.

FORCE_HTA_ONLY
A Boolean value that controls whether an attempt to run Business Desk outside of an HTML application (HTA) environment will result in an error being displayed. A value of True causes any such attempt to result in an error being displayed, and a value of False suppresses this error display behavior.

In the Global.asa file, when the variable MSCSEnv is set to PRODUCTION, the variable FORCE_HTA_ONLY is set to True. When the variable MSCSEnv is set to DEVELOPMENT, the variable FORCE_HTA_ONLY is set to False.

There is also an Application object variable with the same name as this global variable.

By default, when the Business Desk is in Production mode, you must use the HTML Application. However, you can change this by editing the Global.asa in the Business Desk virtual directory; the following line must be changed:

' original Global.asa code disallowing linking in production mode
FORCE_HTA_ONLY = true

To link to the Business Desk at Business Desk at http: //<servername>/<Business Desk Site name>/bizdesk.asp, change this line of code to:

' revised Global.asa code allowing linking in production mode
FORCE_HTA_ONLY = false
g_dActionPage
A reference to a Dictionary object containing the configuration information for the current page, such as the tasks associated with the action that the page implements.

The Dictionary object accessed through this global variable is created in the file ActionPageUtil.asp by calling the routine dGetAction. The scope of the variable is the action page itself.

g_imgInvalid
A string containing HTML that displays the icon used to indicate a value is not valid in edit pages.
g_imgLoadingAnimation
A string containing HTML that displays the loading animation icon.
g_imgRequired
A string containing HTML that displays the required icon used in edit pages.
g_imgWorld
A string containing HTML that displays the world (multi-lingual) icon used in edit pages.
g_MSCSAdminEventLog
A reference to an object (ProgID = Commerce.AdminEventLog) that provides a mechanism for writing errors to the event log. For more information, see AdminEventLog Object.

Do not call the Initialize method on this shared object.

The object accessed through this global variable is created and initialized in the ActionPageUtil.asp file, and its scope is Session.

g_MSCSAppConfig
A reference to an object (ProgID = Commerce.AppConfig) that provides a mechanism for reading application configuration values. For more information, see AppConfig Object.

Do not call the Initialize method on this shared object.

The object accessed through this global variable is created and initialized in the Global.asa file, and its scope is Application.

g_MSCSBizDeskRoot
A string containing the virtual root name for the current instance of Business Desk.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSBizDeskRoot, which is read from the file Csapp.ini in the Global.asa file.

g_MSCSBizDeskSecurity
A reference to an object (ProgID = Commerce.BizDeskSecurity) that provides a mechanism for filtering the contents of the navigation frame based on the identity of the user. For more information, see BizDeskSecurity Object.

The object accessed through this global variable is created and initialized in the Global.asa file, and its scope is Session.

g_MSCSConfiguration
A reference to an object (ProgID = Commerce.SiteConfigReadOnly) that is instantiated with the site name and is used to retrieve site configuration information from the site store. For more information, see SiteConfigReadOnly Object.

Do not call the Initialize method on this shared object.

The object accessed through this global variable is created and initialized in the Global.asa file, and its scope is Application.

g_MSCSCurrencyLocale
The currency locale ID (LCID) from the Site Configuration Store.

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSCurrencyLocale, which is read from the site store in the Global.asa file.

The global variable g_DBCurrencyLocale, set in the file DBUtil.asp, contains the same value.

g_MSCSDataFunctions
A reference to an object (ProgID = Commerce.DataFunctions) that provides generic data functions, such as for data formatting and validation. For more information, see DataFunctions Object.

Do not reset the locale property on this shared object.

The object accessed through this global variable is created and initialized in the Global.asa file, and its scope is Application.

g_MSCSDefaultLocale
The default LCID from the Site Configuration Store.

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSDefaultLocale, which is read from the site store in the Global.asa file.

The global variable g_DBDefaultLocale, set in the file DBUtil.asp, contains the same value.

g_MSCSEnv
A number set to one of the server-side constants PRODUCTION or DEVELOPMENT.

Based on the setting of the MSCSEnv variable in the Global.asa file, the default values for the following global variables are established:

VERBOSE_OUTPUT

SHOW_OBJECT_ERRORS

AUTO_REDIRECT_ENABLED

FORCE_HTA_ONLY

ALLOW_CONTEXT_MENU

This global variable is defined and initialized in the file BizDeskUtil.asp. It is initialized to the value of the Application object variable MSCSEnv, which is set in the Global.asa file.

g_MSCSMessageManager
Contains a reference to an object (ProgID = Commerce.MessageManager) that provides a mechanism for retrieving user interface strings from a centralized location. For more information, see MessageManager Object.

Do not reset the DefaultLanguage property on this shared object.

The object accessed through this global variable is created and initialized in the Global.asa file, and its scope is Application.

g_mscsPage
A reference to an object (ProgID = Commerce.Page) that contains useful page helper functions. For more information, see Page Object.

The object accessed through this global variable is created and initialized in the file ActionPageUtil.asp, and the scope of the variable is the action page itself.

g_MSCSSiteName
A string containing the name of the site corresponding to this instance of Business Desk.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSSiteName, which is read from the file Csapp.ini in the Global.asa file.

g_sActionId
A string that contains the Uniform Resource Locator (URL) path and query string of the current page, relative to the Business Desk root folder. This string is known as the Action ID. This value corresponds to the id attribute of one of the action elements in one of the module configuration files.

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself.

g_sBDAssetRoot
A string containing the complete URL path to the Business Desk Assets folder where all shared images are stored.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is constructed by appending the name of the assets folder ('Assets/') to the end of the string contained in the global variable g_sBizDeskRoot.

g_sBDConfigPath
A string containing the complete file system path to the Business Desk configuration folder where all Business Desk XML configuration files are stored.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is the file system path equivalent of the virtual path specified by the global variable g_sBizDeskRoot.

g_sBDConfigRoot
A string containing the complete URL path to the Business Desk configuration folder where all XML configuration files are stored.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is constructed by appending the name of the configuration folder ('Config/') to the end of the string contained in the global variable g_sBizDeskRoot.

g_sBDIncludeRoot
A string containing the complete URL path to the Business Desk include folder.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is constructed by appending the name of the include folder ('Include/') to the end of the string contained in the global variable g_sBizDeskRoot.

g_sBizDeskRoot
A string containing the complete URL path to the Business Desk folder.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is constructed by adding slash characters ('/') to the beginning and end of the string contained in the global variable g_MSCSBizDeskRoot.

g_sBizDeskRootPage
A string containing the complete URL path to the master start page of the Business Desk.

This variable is declared and initialized in the file BizDeskPaths.asp, and its scope is the action page itself. It is constructed by appending the name of the master start page (Bizdesk.asp) to the end of the string contained in the global variable g_sBizDeskRoot.

g_sContextDefault
A string containing the value of the id attribute of the task element that will be shown as the default context menu item for a Business Desk module.

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value "open", but can be set to another value prior to the routine InsertTaskBar being called. The corresponding task definition must also have its type attribute set to "context".

g_sMSCSCurrencyFormat
A string containing a currency format to be used as the data associated with the format element within a numeric element of the currency subtype in the metadata for an HTML component (HTC).

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting MSCSCurrencyFormat, which the Global.asa file reads from the site store.

g_sMSCSDateFormat
A string containing a date format to be used as the data associated with the format element within a date element in the metadata for an HTML component (HTC).

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting MSCSDateFormat, which the Global.asa file reads from the site store.

g_sMSCSNumberFormat
A string containing a number format to be used as the data associated with the format element within a numeric element of the integer or float sub-type in the metadata for an HTML component (HTC).

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSNumberFormat, which the Global.asa file reads from the site store.

g_sMSCSWeekStartDay
A string specifying the first day of the week, to be used as the data associated with the firstday attribute of a date element in the metadata for an HTML component (HTC).

This variable is declared and initialized in the file ActionPageUtil.asp, and its scope is the action page itself. It is initialized to the value of the Application object setting the variable MSCSWeekStartDay, which is obtained from the DataFunctions object using the site default locale.

SHOW_DEBUG_TEXT
A Boolean value that controls whether debug text is displayed during certain routines. A value of True causes the debug text to be displayed, and a value of False suppresses the display of the debug text.

In the Global.asa file, when the variable MSCSEnv is set to PRODUCTION, SHOW_DEBUG_TEXT is set to False. When MSCSEnv is set to DEVELOPMENT, SHOW_DEBUG_TEXT is set to True.

There is also an Application object variable with the same name as this global variable.

SHOW_OBJECT_ERRORS
A Boolean value that controls whether object loading errors are displayed in a dialog box upon completion of loading. A value of True causes the dialog box to be displayed, and a value of False suppresses the display of the dialog box.

In the Global.asa file, when the variable MSCSEnv is set to PRODUCTION, SHOW_OBJECT_ERRORS is set to False. When MSCSEnv is set to DEVELOPMENT, SHOW_OBJECT_ERRORS is set to True.

There is also an Application object variable with the same name as this global variable.

VERBOSE_OUTPUT
A Boolean value that controls whether verbose output is provided while page objects are loading for the first time after an Internet Information Service (IIS) reset. A value of True provides verbose output, and a value of False suppresses verbose output.

By default, both possible settings of the variable MSCSEnv in the Global.asa file, PRODUCTION and DEVELOPMENT, result in VERBOSE_OUTPUT being set to False. Modify the Global.asa file as necessary to set this variable to True.

There is also an Application object variable with the same name as this global variable.


Utility Routines

The Commerce Server Business Desk Framework defines a variety of client-side and server-side utility routines that provide standard functionality to Business Desk modules. Wherever possible, module developers should use these routines rather than writing their own.

This section contains:

  • Client-Side Routines. Provides an alphabetized list of all client-side utility routines provided by the Business Desk Framework.
  • Server-Side Routines. Provides an alphabetized list of all server-side utility routines provided by the Business Desk Framework.


Client-Side Routines

The Commerce Server Business Desk Framework defines the following client-side routines for use by modules developers.

Routine Description
AddCDATANode Adds a CDATA type item node to the specified Extensible Markup Language (XML) document.

Defined in the file HTTPXMLUtil.htm.
AddClass Adds an additional customizable style sheet (CSS) class to an HTML element.

Defined in the file ActionPageUtil.asp.
AddItemNode Adds an item node to the specified XML document.

Defined in the file HTTPXMLUtil.htm.
BDHALsizeButtons Ensures that all button elements in the specified collection with the specified class name have the same width.

Defined in the file BDHALUtil.htm.
BDHALsizeSelects Ensures that all EditField elements of type 'select' in the specified collection with the specified class name have the same width.

Defined in the file BDHALUtil.htm.
bGetPubRequired Returns a Boolean that indicates whether data publication has been flagged as required.

Defined in the file ActionPageUtil.asp.
bHasClass Determines whether an HTML element has a specific CSS class associated with it.

Defined in the file ActionPageUtil.asp.
bIsDate Determines whether a string contains a valid date.

Defined in the file ClientDateUtil.asp.
ChangeControlStylesheet Resets style sheet for edit controls so that input can be in a different language than specified by the main style sheet.

Defined in the file ActionPageUtil.asp.
ClearStatusText Clears the text in the status bar.

Defined in the file ActionPageUtil.asp.
ClearTemp Removes a value from the Client State Dictionary.

Defined in the file ActionPageUtil.asp.
clickContextMenuItem Runs the routine specified by the onContextClick attribute for a clicked context menu item. This routine should be set as the value of the onClick attribute of the context menu element so it will act on all child menu items.

Defined in the file ActionPageUtil.asp.
closeContextMenu Hides the context menu and releases the mouse. Use this routine as the value of the onClose attribute for a context menu element.

Defined in the file ActionPageUtil.asp.
dClearServerState Clears the server-state Dictionary object stored in the Session object on the server.

Defined in the file HTTPXMLUtil.htm.
dDictFromXML Converts a standard XML document into a Dictionary object.

Defined in the file HTTPXMLUtil.htm.
dGetServerState Makes a client-side copy of the server-state Dictionary object stored in the Session object on the server.

Defined in the file HTTPXMLUtil.htm.
DisableTask Disables the specified task.

Defined in the file ActionPageUtil.asp.
DisableTaskMenuItem Disables the specified task menu item.

Defined in the file ActionPageUtil.asp.
dSetServerState Saves a client-side version of the server-state Dictionary object to the Session object on the server.

Defined in the file HTTPXMLUtil.htm.
dtGetDate Formats a date string into a date variant.

Defined in the file ClientDateUtil.asp.
elGetTaskBtn Returns the specified task button element.

Defined in the file ActionPageUtil.asp.
EnableAllTaskMenuItems Enables or disables all menu items for the specified task.

Defined in the file ActionPageUtil.asp.
EnableAllTasks Enables or disables all tasks.

Defined in the file ActionPageUtil.asp.
EnableTask Enables the specified task.

Defined in the file ActionPageUtil.asp.
EnableTaskMenuItem Enables the specified task menu item.

Defined in the file ActionPageUtil.asp.
execDefaultTask Serves as the handler for the ListSheet onDblClick event.

Defined in the file ActionPageUtil.asp.
execTaskFromContextMenu Serves as the handler for the ListSheet onContextClick event.

Defined in the file ActionPageUtil.asp.
GetTemp Returns a specific value from the Client State Dictionary.

Defined in the file ActionPageUtil.asp.
HideFindBy Hides the find pane.

Defined in the file ActionPageUtil.asp.
HideStatusAnimation Hides the status animation and text.

Defined in the file ActionPageUtil.asp.
HideStatusLegend Hides the status legend in the status bar.

Defined in the file ActionPageUtil.asp.
HideWaitDisplay Hides the wait display.

Defined in the file ActionPageUtil.asp.
nGetDay Returns the day from a date string, as a number.

Defined in the file ClientDateUtil.asp.
nGetMonth Returns the month from a date string, as a number.

Defined in the file ClientDateUtil.asp.
nGetYear Returns the year from a date string, as a number.

Defined in the file ClientDateUtil.asp.
OpenEditPage Opens a nested edit page.

Defined in the file ActionPageUtil.asp.
OpenHelp Opens the help window and displays the specified topic.

Defined in the file ActionPageUtil.asp.
RemoveClass Removes a specified CSS class from an HTML element.

Defined in the file ActionPageUtil.asp.
ReplaceClass Replaces one CSS class with another within an HTML element.

Defined in the file ActionPageUtil.asp.
ResetSaveBtns Enables or disables the save buttons (Save, SaveBack, and SaveNew) based on the dirty, valid, and required states.

Defined in the file ActionPageUtil.asp.
SetDirty Sets the dirty flag for the page and establishes a confirmation message.

Defined in the file ActionPageUtil.asp.
SetFindByHeight Sets the height of the find pane.

Defined in the file ActionPageUtil.asp.
SetPageTitleText Sets the page title.

Defined in the file ActionPageUtil.asp.
SetPubRequired Flags data publication as required so that a warning dialog displays.

Defined in the file ActionPageUtil.asp.
SetRequired Sets the required flag for the page and establishes a warning message.
Defined in the file ActionPageUtil.asp.
SetStatusText Displays a specified string in the status area.

Defined in the file ActionPageUtil.asp.
SetTaskTooltip Sets a tooltip string for the specified task.

Defined in the file ActionPageUtil.asp.
SetTemp Stores a value in the Client State Dictionary.

Defined in the file ActionPageUtil.asp.
SetValid Sets the valid flag for the page and establishes a warning message.

Defined in the file ActionPageUtil.asp.
SetWaitDisplayText Sets new text in the wait display.

Defined in the file ActionPageUtil.asp.
sFormatString Performs string formatting using a format string with variable insertion points, similar to the C++ printf function.

Defined in the file ActionPageUtil.asp.
sGetFormattedDate Returns a date string constructed from numbers representing day, month, and year.

Defined in the file ActionPageUtil.asp.
sGetScriptError Formats a script error into a string containing HTML table formatting directives.

Defined in the file ActionPageUtil.asp.
sGetXMLError Formats an XML error into a string containing HTML table formatting directives.

Defined in the file ActionPageUtil.asp.
showContextMenu Displays a right-click context menu under the current mouse position. This routine should be set as the value of the onContextMenu attribute for the element to which you want to attach a context menu.

Defined in the file ActionPageUtil.asp.
ShowErrorDlg Displays a standard error dialog box.

Defined in the file ActionPageUtil.asp.
ShowFindBy Shows the find pane.

Defined in the file ActionPageUtil.asp.
showPermissionsDialog Displays the permissions dialog box.

Defined in the file ActionPageUtil.asp.
ShowWaitDisplay Shows the wait display.

Defined in the file ActionPageUtil.asp.
ShowXMLNodeErrors Displays an error dialog box for each error node in the specified XML document.

Defined in the file HTTPXMLUtil.htm.
sMergeGroups2 Merges two single-tiered XML documents in the standard XML data record format into a single two-tiered XML document in the same format, returning the result as a string.

Defined in the file ActionPageUtil.asp.
sMergeGroups3 Merges three single-tiered XML documents in the standard XML data record format into a single three-tiered XML document in the same format, returning the result as a string.

Defined in the file ActionPageUtil.asp.
toggleContextMenuHighlight Toggles the highlight for a context menu item. Use this routine as the value of the onHighlight and onUnhighlight attributes of a context menu element.

Defined in the file ActionPageUtil.asp.
ToggleFindBy Displays or hides the find pane to the opposite of its current display state.

Defined in the file ActionPageUtil.asp.
ToggleTask Toggles the enabled/disabled state of the specified task.

Defined in the file ActionPageUtil.asp.
xmlGetSiteTermsValue Displays a standard Site Terms Picker dialog box, allowing the user to choose one of several values for a given property.

Defined in the file ActionPageUtil.asp.
xmlGetXMLDOMDoc Returns an empty XML DOM Document.

Defined in HTTPXMLUtil.htm.
xmlMergeGroups2 Merges two single-tiered XML documents in the standard XML data record format into a single two-tiered XML document in the same format, returning the result as an XML document node.

Defined in the file ActionPageUtil.asp.
xmlMergeGroups3 Merges three single-tiered XML documents in the standard XML data record format into a single three-tiered XML document in the same format, returning the result as an XML document node.

Defined in the file ActionPageUtil.asp.
xmlMergeGroupsByID2 Merges two single-tiered XML data-islands in the standard XML data record format into a single two-tiered XML document in the same format, returning the result as an XML document node.

Defined in the file ActionPageUtil.asp.
xmlMergeGroupsByID3 Merges three single-tiered XML data-islands in the standard XML data record format into a single three-tiered XML document in the same format, returning the result as an XML document node.

Defined in the file ActionPageUtil.asp.
xmlPostFormViaXML Posts a form via XMLHTTP transfer and then returns the XML response from the action page.

Defined in the file HTTPXMLUtil.htm.
xmlXMLFromDict Converts a Dictionary object into a standard XML document.

Defined in the file HTTPXMLUtil.htm.
xmlXMLFromForm Converts the element values within a form element to a standard XML format.

Defined in the file HTTPXMLUtil.htm.

The following lists show client-side routines that are not intended to be called by module code, organized alphabetically and by the include file in which they appear.

ActionPageUtil.asp
CloseMenu, DoTask, ExecuteTask, GotoAction, PosttoAction, RemoveSelection, SetEditMode, SetSelection, doc_onContextMenu, doc_onDragStart, doc_onKeyDown, doc_onSelectStart, InsertContextMenu, menu_onClick, menu_onKeyDown, menu_onMouseMove, menu_onMouseOver, oGetAdminEventLog, task_onKeyDown, task_onMouseDown, task_onMouseOut, task_onMouseOver, task_onMouseUp, taskWindow_onBeforeUnload, taskWindow_onClick, taskWindow_onLoad, winerr1_onLoad
ClientDateUtil.asp
nGetDatePart
dlg_confirm.asp
closeWindow
dlg_error.asp
closeWindow, sFormatString, toggleDetails
dlg_warn.asp
closeWindow
HTTPXMLUtil.asp
xmlUpdateServerState


AddCDATANode (client-side)

Use this routine to add a CDATA type item element to the specified XML document, using the passed strings to initialize the element.

Definition

sub AddCDATANode(byRef xmlDoc,
                 byVal sName,
                 byVal sValue)

Parameters

xmlDoc
A reference to the XML DOMDocument object to which the new node is added.
sName
A string containing a value assigned to the name attribute of the new item element.
sValue
A string containing the value to be placed within the CDATA construct that is assigned as the text of the item element.

Return Value

None.

Remarks

The string version of the added element has the following form:

<item name="sName"><![CDATA[sValue]]></item>

This routine is available in the include file HTTPXMLUtil.htm.

There is a functionally equivalent version of this routine defined for server-side use in the file HTTPXMLUtil.asp. Note that this other routine does not make use of the xmlDoc parameter, but instead adds the CDATA node to a globally accessible XML document.

See Also

Client-Side Routines

AddItemNode (client-side)

xmlGetXMLDOMDoc (client-side)

Server-Side Routines

AddCDATANode (server-side)


AddClass (client-side)

Use this routine to add a customizable style sheet (CSS) class to the space-delimited list of classes associated with the className attribute of a specific HTML element.

Definition

sub AddClass(elItem,
             sNewClass)

Parameters

elItem
An HTML element to which the specified CSS class will be added.
sNewClass
A string containing the name of the CSS class to be added to the specified HTML element.

Return Value

None.

Remarks

The new CSS class is added to any existing CSS classes, the latter of which are not affected.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

bHasClass (client-side)

RemoveClass (client-side)

ReplaceClass (client-side)

Server-Side Routines


AddItemNode (client-side)

Use this routine to add an item element to the specified XML document using the passed parameters.

Definition

sub AddItemNode(byRef xmlDoc,
                byVal sName,
                byVal sValue)

Parameters

xmlDoc
A reference to the XML DOMDocument object to which the new item element will be added.
sName
A string containing the value to be assigned to the name attribute of the new item element.
sValue
A string containing the value to be assigned to the value attribute of the new item element.

Return Value

None.

Remarks

The string version of the added element has the following form:

<item name="sName" value="sValue"/>

This routine is available in the include file HTTPXMLUtil.htm.

There is a functionally equivalent version of this routine defined for server-side use in the file HTTPXMLUtil.asp. Note that this other routine does not make use of the xmlDoc parameter, but instead adds the CDATA node to a globally accessible XML document.

See Also

Client-Side Routines

AddCDATANode (client-side)

xmlGetXMLDOMDoc (client-side)

Server-Side Routines

AddItemNode (server-side)


BDHALsizeButtons (client-side)

Use this routine to ensure that all buttons in the specified collection with the specified class name have the same width.

Definition

sub BDHALsizeButtons(elButtons,
                     sButtonClass,
                     bEnforceMinWidth)

Parameters

elButtons
A collection of HTML button elements.
sButtonClass
A string containing the name of the class of button elements for which the width will be adjusted.
bEnforceMinWidth
A Boolean value, where True means that a minimum width should be enforced, and False means that a minimum width should not be enforced.

Return Value

None.

Remarks

The standard minimum button width is 74 pixels.

This routine is available in the include file BDHALUtil.htm.

See Also

Client-Side Routines

BDHALsizeSelects (server-side)

Server-Side Routines


BDHALsizeSelects (client-side)

Use this routine to ensure that all EditFields of type 'select' in the specified collection with the specified class name have the same width.

Definition

sub BDHALsizeSelects(elSelects,
                     sSelectClass)

Parameters

elSelects
A collection of elements containing EditField HTCs of type 'select'.
sSelectClass
A string containing the name of the class of elements containing EditField HTCs of type 'select' for which the width will be adjusted.

Return Value

None.

Remarks

This routine is available in the include file BDHALUtil.htm.

See Also

Client-Side Routines

BDHALsizeButtons (client-side)

Server-Side Routines


bGetPubRequired (client-side)

Use this routine to return a Boolean that indicates whether data publication has been flagged as required.

Definition

function bGetPubRequired(sModule)

Parameters

sModule
A string that specifies the name of the module for which the publication requirement is being requested.

Return Value

A Boolean value indicating whether the "publication required" flag has been set for the specified module. A return value of True indicates that the requested "publication required" flag has been set, and a return value of False indicates it has not been set.

Remarks

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

SetPubRequired (client-side)

Server-Side Routines


bHasClass (client-side)

Use this routine to determine whether a particular customizable style sheet (CSS) class is associated with a specific HTML element.

Definition

function bHasClass(elItem,
                   sClass)

Parameters

elItem
An HTML element to be checked for the specified CSS class.
sClass
A string containing the name of the CSS class for which to check.

Return Value

A Boolean value indicating whether the specified CSS class is associated with the specified HTML element. A return value of True indicates that the CSS class was found in the className attribute of the element, and a return value of False indicates it was not found.

Remarks

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

AddClass (client-side)

RemoveClass (client-side)

ReplaceClass (client-side)

Server-Side Routines


bIsDate (client-side)

Use this routine to test whether a specified string contains a valid date in the format of the default locale for the site.

Definition

function bIsDate(sValue)

Parameters

sValue
A string containing the date to be tested against the format indicated by the global variable g_sMSCSDateFormat.

Return Value

A Boolean value indicating whether the passed date string is formatted appropriately for the default locale of the site. A return value of True indicates that the date is valid. A return value of False indicates that the date is not valid.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

dtGetDate (client-side)

nGetDay (client-side)

nGetMonth (client-side)

nGetYear (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


ChangeControlStylesheet (client-side)

Use this routine to change the style sheet for edit controls so that input can be in a different language than specified by the main style sheet.

Definition

sub ChangeControlStylesheet(sLanguage)

Parameters

sLanguage
A string that specifies the name of the new language-specific style sheet file to be used for the edit controls.

Return Value

None.

Remarks

The sLanguage parameter should be one of the file names shown in the following table, or the name of an equivalent file defined for another language and placed in the include\styles folder.

Style Sheet File | Description
chs_widgets.css | Style sheet for Chinese (Simplified) edit control input.
cht_widgets.css | Style sheet for Chinese (Traditional) edit control input.
en_widgets.css | Style sheet for English (Western Europe) edit control input.
jp_widgets.css | Style sheet for Japanese edit control input.
ko_widgets.css | Style sheet for Korean edit control input.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

Server-Side Routines

InsertControlStylesheet (server-side)


ClearStatusText (client-side)

Use this routine to clear the text in the status area.

Definition

sub ClearStatusText()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by invoking either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

HideStatusAnimation (client-side)

HideStatusLegend (client-side)

SetStatusText (client-side)

Server-Side Routines


ClearTemp (client-side)

Use this routine to remove a value or object from the Client State Dictionary stored in the parent frame. A specific key is passed to identify the value or object.

Definition

sub ClearTemp(sName)

Parameters

sName
A string used as the key of the value or object to be removed from the Client State Dictionary.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by invoking either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

GetTemp (client-side)

SetTemp (client-side)

Server-Side Routines


clickContextMenuItem (client-side)

Runs the routine specified by the onContextClick attribute for a clicked context menu item. This routine should be set as the value of the onClick attribute of the context menu element so it will act on all child menu items.

Definition

sub clickContextMenuItem()

Parameters

None.

Return Value

None.

Remarks

For more information about how context menus are configured, see MenuControl.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

closeContextMenu (client-side)

execTaskFromContextMenu (client-side)

showContextMenu (client-side)

toggleContextMenuHighlight (client-side)

Server-Side Routines


closeContextMenu (client-side)

Hides the context menu and releases the mouse. Use this routine as the value of the onClose attribute for a context menu element.

Definition

sub closeContextMenu()

Parameters

None.

Return Value

None.

Remarks

For more information about how context menus are configured, see MenuControl.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

clickContextMenuItem (client-side)

execTaskFromContextMenu (client-side)

showContextMenu (client-side)

toggleContextMenuHighlight (client-side)

Server-Side Routines


dClearServerState (client-side)

Use this routine to clear a server-state Dictionary object stored in the Session object on the server.

Definition

function dClearServerState(byVal sDictName)

Parameters

sDictName
A string containing the name of session variable with which the server-state Dictionary object is associated.

Return Value

An empty Dictionary object.

Remarks

This routine clears the Dictionary object by posting an XML request to the server, removing the Commerce Dictionary object from the session, and then returning an empty Scripting Dictionary object. This routine posts to the file response_session.asp.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

dGetServerState (client-side)

dSetServerState (client-side)

Server-Side Routines


dDictFromXML (client-side)

Use this routine to convert an XML document with child nodes of the form <item name="keyname" value="value"/> into a Dictionary object.

Definition

function dDictFromXML(byRef xmlDOMDoc)

Parameters

xmlDOMDoc
An XML DOMDocument object to be converted.

Return Value

A Dictionary object containing the converted XML document contents.

Remarks

Each name and value attribute becomes an entry in the Dictionary object where the name is the key and the value attribute contains the value.

This routine is available in the include file HTTPXMLUtil.htm.

There is a functionally equivalent version of this routine defined for server-side use in the file HTTPXMLUtil.asp.

See Also

Client-Side Routines

xmlXMLFromDict (client-side)

xmlXMLFromForm (client-side)

Server-Side Routines

dDictFromXML (server-side)


dGetServerState (client-side)

Use this routine to make a client-side copy of a server-state Dictionary object stored in the Session object on the server.

Definition

function dGetServerState(byVal sDictName)

Parameters

sDictName
Name of the session variable associated with the server-state Dictionary object.

Return Value

A Dictionary object initialized with the current values set in the specified Dictionary object stored in the Session object on the server.

Remarks

This routine gets the Dictionary object by posting an XML request to the server, converting the Commerce Dictionary object stored in the Session object to XML, and then returning it to the client where the XML is converted back to a scripting Dictionary object. This routine posts to the file response_session.asp.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

dClearServerState (client-side)

dSetServerState (client-side)

Server-Side Routines


DisableTask (client-side)

Use this routine to disable a specific task, dimming the button associated with the task.

Definition

sub DisableTask(sID)

Parameters

sID
A string that matches the id attribute of the corresponding task element in the relevant module configuration file.

Return Value

None.

Remarks

Given the ID of a task button element, this routine disables the task by setting the following attributes of the task element to the indicated values:

  • disabled set to True
  • className with "bdtaskdisabled" appended

This routine is only available after the taskbar has been inserted by calling either the InsertTaskBar method or the InsertEditTaskBar method.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

EnableAllTasks (client-side)

EnableTask (client-side)

ToggleTask (client-side)

Server-Side Routines


DisableTaskMenuItem (client-side)

Use this routine to disable a specific task menu item.

Definition

sub DisableTaskMenuItem(sID,
                        nItem)

Parameters

sID
A string that matches the id attribute of the corresponding task element in the relevant module configuration file.
nItem
A number indicating the position of the menu item to be disabled, counting from 0 (zero) rather than 1 (one).

Return Value

None.

Remarks

Given the ID of a task button menu element and the zero-based position of an item in the menu, this routine disables the task menu item by setting the following attributes of the task element menu to the indicated values:

  • className with "bdtaskdisabled" appended

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

EnableAllTaskMenuItems (client-side)

EnableTaskMenuItem (client-side)

Server-Side Routines


dSetServerState (client-side)

Use this routine to store the contents of a client-side Dictionary object in a server-side Dictionary object saved within the Session object on the server.

Definition

function dSetServerState(byVal sDictName,
                         byRef dServerState)

Parameters

sDictName
A string containing the session variable name to associate with the stored Dictionary object.
dServerState
A Dictionary object containing the entries to be copied to an equivalent Dictionary object on the server.

Return Value

A Dictionary object containing a copy of the current state of the Server State Dictionary in the Session object.

Remarks

This routine transfers the Dictionary object by converting it to XML, posting to the server, converting the XML to a Commerce Dictionary object, and then adding it to the Session object using the given name. This routine posts to the file response_session.asp.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

dClearServerState (client-side)

dGetServerState (client-side)

Server-Side Routines


dtGetDate (client-side)

Use this routine to convert a date string into a date variant.

Definition

function dtGetDate(sValue)

Parameters

sValue
A string containing a date in the format indicated by the g_sMSCSDateFormat global variable, from which the day is retrieved.

Return Value

A date variant initialized to the same date as provided in the passed string. If an error is encountered, the date variant is initialized to the current date.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

bIsDate (client-side)

nGetDay (client-side)

nGetMonth (client-side)

nGetYear (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


elGetTaskBtn (client-side)

Use this routine to retrieve a specific task button element.

Definition

function elGetTaskBtn(sID)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.

Return Value

The task button element corresponding to the specified identifier.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

Server-Side Routines


EnableAllTaskMenuItems (client-side)

Use this routine to either enable or disable all menu items for a specified task. Menu items are enabled or disabled based on a passed Boolean parameter.

Definition

sub EnableAllTaskMenuItems(sID,
                           bEnable)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.
bEnable
A Boolean value that specifies whether all menu items for the specified task should be enabled or disabled. A value of True enables all menu items; a value of False disables all menu items.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

DisableTaskMenuItem (client-side)

EnableTaskMenuItem (client-side)

Server-Side Routines


EnableAllTasks (client-side)

Use this routine to either enable or disable all tasks. The tasks are enabled or disabled based on a passed Boolean parameter.

Definition

sub EnableAllTasks(bEnable)

Parameters

bEnable
A Boolean value that specifies whether all tasks should be enabled or disabled. A value of True enables all tasks; a value of False disables all tasks.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

DisableTask (client-side)

EnableTask (client-side)

ToggleTask (client-side)

Server-Side Routines


EnableTask (client-side)

Use this routine to enable the specified task, undimming the button associated with the task.

Definition

sub EnableTask(sID)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.

Return Value

None.

Remarks

Given the ID of a task button element, this routine enables the task by setting the following attributes of the task element to the indicated values:

  • disabled set to False
  • className with "bdtaskdisabled" removed

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

DisableTask (client-side)

DisableTaskMenuItem (client-side)

EnableAllTaskMenuItems (client-side)

EnableAllTasks (client-side)

EnableTaskMenuItem (client-side)

ToggleTask (client-side)

Server-Side Routines


EnableTaskMenuItem (client-side)

Use this routine to enable a specific task menu item.

Definition

sub EnableTaskMenuItem(sID,
                       nItem)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.
nItem
The position of the menu item to be enabled, counting from 0 (zero) rather than 1 (one).

Return Value

None.

Remarks

Given the ID of a task button menu element and the zero-based position of an item in the menu, this routine enables the task menu item by setting the following attributes of the task element menu to the indicated values:

  • className with "bdtaskdisabled" removed

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

DisableTaskMenuItem (client-side)

EnableAllTaskMenuItems (client-side)

EnableTask (client-side)

Server-Side Routines


execDefaultTask (client-side)

Use this routine as the handler for the ListSheet HTML component (HTC) onDblClick event.

Definition

sub execDefaultTask()

Parameters

None.

Return Value

None.

Remarks

When defining the DIV element for ListSheet HTC, specify this routine as the handler for the onDblClick event, as follows:

<DIV CLASS='listSheet' ID=...
     DataXML=...
     MetaXML=...
     ...
     OnDblClick='execDefaultTask()'
     ...>
     Loading...
</DIV>

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

execTaskFromContextMenu (client-side)

Server-Side Routines


execTaskFromContextMenu (client-side)

Use this routine as the handler for the ListSheet HTML component (HTC) onContextClick event.

Definition

sub execTaskFromContextMenu()

Parameters

None.

Return Value

None.

Remarks

When defining the DIV element for ListSheet HTC, specify this routine as the handler for the onContextClick event, as follows:

<DIV CLASS='listSheet' ID=...
     DataXML=...
     MetaXML=...
     ...
     OnContextClick='execTaskFromContextItem()'
     ...>
     Loading...
</DIV>

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

clickContextMenuItem (client-side)

closeContextMenu (client-side)

showContextMenu (client-side)

toggleContextMenuHighlight (client-side)

execDefaultTask (client-side)

Server-Side Routines


FinishWithXMLSecurityError (server-side)

Use this routine on an XML response page to return the XML security error and discontinue processing of the page (Response.End).

Definition

sub FinishWithXMLSecurityError()

Parameters

None.

Return Value

This routine returns XML text containing the XML security error.

Remarks

This routine is available in the include file ServerSecurityUtil.asp.

See Also

Client-Side Routines


GetTemp (client-side)

Use this routine to retrieve a value or object from the Client State Dictionary stored in the parent frame. A specific key is passed as a parameter to identify the value or object.

Definition

function GetTemp(sName)

Parameters

sName
A string used as the key of the value or object to be retrieved from the Client State Dictionary.

Return Value

The value or object being retrieved from the Client State Dictionary. If the key is not found, Nothing is returned.

Remarks

This routine is only available after the taskbar has been inserted by invoking either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

ClearTemp (client-side)

SetTemp (client-side)

Server-Side Routines


HideFindBy (client-side)

Use this routine to hide the find pane.

Definition

sub HideFindBy()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

ShowFindBy (client-side)

ToggleFindBy (client-side)

SetFindByHeight (client-side)

Server-Side Routines


HideStatusAnimation (client-side)

Use this routine to hide the status animation icon and the text in the status area.

Definition

sub HideStatusAnimation()

Parameters

None.

Return Value

None.

Remarks

This routine is called automatically by the taskbar upon loading.

You may want to show the status animation while the page is busy, and then use this routine to hide it again when the page becomes idle.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

ClearStatusText (client-side)

HideStatusLegend (client-side)

SetStatusText (client-side)

Server-Side Routines


HideStatusLegend (client-side)

Use this routine to hide the status legend in the status area.

Definition

sub HideStatusLegend()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

ClearStatusText (client-side)

HideStatusAnimation (client-side)

SetStatusText (client-side)

Server-Side Routines


HideWaitDisplay (client-side)

Use this routine to hide the wait display.

Definition

sub HideWaitDisplay()

Parameters

None.

Return Value

None.

Remarks

This routine is called automatically by the taskbar upon loading.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

SetWaitDisplayText (client-side)

ShowWaitDisplay (client-side)

Server-Side Routines


nGetDay (client-side)

Use this routine to retrieve the day portion of a specified date string, returned as a number between 1 and 31.

Definition

function nGetDay(sValue)

Parameters

sValue
A string containing a date in the format indicated by the g_sMSCSDateFormat global variable, from which the day is retrieved.

Return Value

A number representing the day portion of the specified date string. A return value of –1 indicates an error.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

bIsDate (client-side)

dtGetDate (client-side)

nGetMonth (client-side)

nGetYear (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


nGetMonth (client-side)

Use this routine to retrieve the month portion of a specified date string, returned as a number between 1 and 12.

Definition

function nGetMonth(sValue)

Parameters

sValue
A string containing a date in the format indicated by the g_sMSCSDateFormat global variable, from which the month is retrieved.

Return Value

A number representing the month portion of the specified date string. A return value of –1 indicates an error.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

bIsDate (client-side)

dtGetDate (client-side)

nGetDay (client-side)

nGetYear (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


nGetYear (client-side)

Use this routine to retrieve the year portion of a specified date string, returned as a four-digit number.

Definition

function nGetYear(sValue)

Parameters

sValue
A string containing a date in the format indicated by the g_sMSCSDateFormat global variable, from which the year is retrieved.

Return Value

A number representing the year portion of the specified date string. A return value of –1 indicates an error.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

bIsDate (client-side)

dtGetDate (client-side)

nGetDay (client-side)

nGetMonth (client-side)

sGetFormattedDate (client-side)

Server-Side Routines


OpenEditPage (client-side)

Use this routine to display a nested edit page in a new frame, hiding the frame of the calling edit page. This routine also records the callback routine to be invoked when the nested edit page is closed.

Definition

sub OpenEditPage(sPage,
                 fnCallback)

Parameters

sPage
The URL of the nested edit page, including any appended arguments. The URL can be relative or absolute.
fnCallback
The name of a callback routine to be invoked when the nested edit page is closed.

Return Value

None.

Remarks

Since this routine does not support posting to a form, any arguments needed by the nested edit page must be appended to its URL.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

OpenHelp (client-side)

dGetServerState (client-side)

dSetServerState (client-side)

dClearServerState (client-side)

Server-Side Routines


OpenHelp (client-side)

Use this routine to open the help window to the specified topic.

Definition

sub OpenHelp(sHelpTopicPage)

Parameters

sHelpTopicPage
The (pathless) name of the help topic page in the folder 'bizdesk\docs\htm'.

Return Value

None.

Remarks

If the topic string is empty, the help window is opened to the initial page.

The name of the help topic page must include the '.htm' extension.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

Server-Side Routines


RemoveClass (client-side)

Use this routine to remove a class from the space-delimited list of classes associated with the className attribute of a specific HTML element.

Definition

sub RemoveClass(elItem,
                sClass)

Parameters

elItem
The HTML element for which the specified class will be removed.
sClass
A string containing the name of the class to be removed from the specified HTML element.

Return Value

None.

Remarks

The specified class is removed from the existing set of classes without affecting any of the other classes.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

AddClass (client-side)

bHasClass (client-side)

ReplaceClass (client-side)

Server-Side Routines


ReplaceClass (client-side)

Use this routine to replace one class with another class in the space-delimited list of classes associated with the className attribute of a specific HTML element.

Definition

sub ReplaceClass(elItem,
                 sOldClass,
                 sNewClass)

Parameters

elItem
The HTML element for which a new class will replace an existing class.
sOldClass
A string containing the name of the class being replaced in the specified HTML element.
sNewClass
A string containing the name of the class to replace the class specified by the sOldClass parameter.

Return Value

None.

Remarks

The new class replaces the specified old class without affecting any other existing classes.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

AddClass (client-side)

bHasClass (client-side)

RemoveClass (client-side)

Server-Side Routines


ResetSaveBtns (client-side)

Enables or disables the save buttons (Save, SaveBack, and SaveNew) based on the current dirty, valid, and required states.

Definition

sub ResetSaveBtns()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is automatically called by the routines SetDirty, SetRequired, and SetValid after they update their corresponding flags.

If the page is not marked as dirty and all required data is present and valid, the save buttons are enabled. Otherwise they are disabled.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

SetDirty (client-side)

SetRequired (client-side)

SetValid (client-side)

Server-Side Routines


SetDirty (client-side)

Use this routine to set the dirty flag for the page and set a confirmation message to be displayed in the event that the page is closed without having been saved.

Definition

sub SetDirty(sConfirmMsg)

Parameters

sConfirmMsg
A string containing a confirmation message phrased as "Save XXX before exiting?" For example, "Save product description before exiting?"

Return Value

None.

Remarks

There are three common ways in which this routine can be called:

  • Directly from script code on the page when the page logic determines that something must be saved before the page is closed.
  • As the handler of the OnChange event of the master EditSheet for the page (set as an attribute of the container element of the EditSheet HTC):
    onchange='SetDirty("Save product description before exiting?")'
  • From within the handler of the OnChange event of the master EditSheet for the page.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

SetRequired (client-side)

SetValid (client-side)

Server-Side Routines


SetFindByHeight (client-side)

This routine sets the height of the find pane to the specified number of pixels.

Definition

sub SetFindByHeight(nNewHeight)

Parameters

nNewHeight
An integer that specifies a new height, in pixels, for the find pane.

Return Value

None.

Remarks

The default height of the find pane is 55 pixels.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

HideFindBy (client-side)

ShowFindBy (client-side)

Server-Side Routines


SetPageTitleText (client-side)

Use this routine to display specific text in the title bar of the page.

Definition

sub SetPageTitleText(sText)

Parameters

sText
A string containing text to be displayed in the title bar of the page.

Return Value

None.

Remarks

The page title to be displayed cannot contain HTML tags.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

SetStatusText (client-side)

SetWaitDisplayText (client-side)

Server-Side Routines


SetPubRequired (client-side)

Use this routine to set the "publication required" flag so that a warning dialog displays if the user exits Business Desk without publishing the data changes.

Definition

sub SetPubRequired(sModule,
                   bRequired)

Parameters

sModule
A string that contains the name of the module for which the "publication required" flag will be set.
bRequired
A Boolean value that specifies whether or not publication is required. A value of True indicates that data changes requiring publication have been made. A value of False indicates that no such changes have been made since the last publication operation.

Return Value

None.

Remarks

Normally, this routine should be called with the bRequired parameter set to True when data changes requiring publication have been made, and called with the bRequired parameter set to False after a publication operation.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

bGetPubRequired (client-side)

Server-Side Routines


SetRequired (client-side)

Use this routine to set the required flag for the page and set a warning message to be displayed in the event that an attempt is made to save the page when one or more required fields are empty.

Definition

sub SetRequired(sWarnMsg)

Parameters

sWarnMsg
A string containing a warning message phrased as "You have made incomplete changes to properties. Click 'OK' to discard the changes and exit."

Return Value

None.

Remarks

There are two common ways in which this routine can be called:

  • As the handler of the OnRequire event of the master EditSheet for the page (set as an attribute of the container element of the EditSheet HTC):
    sWarnMsg = "You have made incomplete changes to properties. " & _
           "Click 'OK' to discard the changes and exit."
. . .
onrequire="SetRequired(sWarnMsg)"
  • From within the handler of the OnRequire event of the master EditSheet for the page.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

SetDirty (client-side)

SetValid (client-side)

Server-Side Routines


SetStatusText (client-side)

Use this routine to display the specified text in the status area of the page.

Definition

sub SetStatusText(sText)

Parameters

sText
A string containing a status message to be displayed in the status area.

Return Value

None.

Remarks

The status message to be displayed cannot contain HTML tags.

Any status text displayed is automatically cleared after approximately 10 seconds.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

ClearStatusText (client-side)

HideStatusAnimation (client-side)

HideStatusLegend (client-side)

Server-Side Routines


SetTaskTooltip (client-side)

Use this routine to set a new tooltip for a specific task.

Definition

sub SetTaskTooltip(sID,
                   sTooltip)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.
sTooltip
A string containing the new tooltip to be associated with the specified task.

Return Value

None.

Remarks

This routine sets the title attribute of the specified task element to the specified string. This string is displayed as the tooltip for the associated task button.

The string passed as the sTooltip parameter should not contain any HTML markup directives.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

SetPageTitleText (client-side)

SetStatusText (client-side)

SetWaitDisplayText (client-side)

Server-Side Routines


SetTemp (client-side)

Use this routine to save a value or object in the Client State Dictionary stored in the parent frame.

Definition

sub SetTemp(sName,
            oValue)

Parameters

sName
A string used as the dictionary key for the value to be stored. This key is used for retrieval of the value at a later time.
oValue
Any Variant value (string, numeric, array, object, and so on) to be stored in the Client State Dictionary for later retrieval.

Return Value

None.

Remarks

If another value with the specified key already exists in the dictionary, it is overwritten with the new value.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

ClearTemp (client-side)

GetTemp (client-side)

Server-Side Routines


SetValid (client-side)

Use this routine to set the valid flag for the page and set a warning message to be displayed in the event that an attempt is made to save the page when one or more fields have values that are not valid.

Definition

sub SetValid(sWarnMsg)

Parameters

sWarnMsg
A string containing a warning message phrased as "You have made incomplete changes to properties. Click 'OK' to discard the changes and exit."

Return Value

None.

Remarks

There are two common ways in which this routine can be called:

  • As the handler of the OnValid event of the master EditSheet for the page (set as an attribute of the container element of the EditSheet HTC):
    sWarnMsg = "You have made incomplete changes to properties. " & _
           "Click 'OK' to discard the changes and exit."
. . .
onvalid="SetValid(sWarnMsg)"
  • From within the handler of the OnValid event of the master EditSheet for the page.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

SetDirty (client-side)

SetRequired (client-side)

Server-Side Routines


SetWaitDisplayText (client-side)

Use this routine to set new text in the wait display.

Definition

sub SetWaitDisplayText(sWaitText)

Parameters

sWaitText
A string that contains the new text to be displayed.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

HideWaitDisplay (client-side)

ShowWaitDisplay (client-side)

SetStatusText (client-side)

Server-Side Routines


sFormatString (client-side)

Use this routine to insert arguments into a string in a manner similar to that used by the C++ printf function. It is useful for formatting strings in a way that is much easier to localize than some other hard-coded methods.

Definition

function sFormatString(byVal sFormat,
                             aArgs)

Parameters

sFormat

A string containing a combination of text and sequentially-numbered variables in the format %1, %2, and so forth. These variables are replaced with the elements from the corresponding positions in the aArgs array.

aArgs
An array of strings to be inserted into the string specified by the sFormat parameter, in the positions of the sequentially-numbered variables. Any extra arguments are ignored, and any extra variables in the string remain unchanged.

Return Value

A string containing the contents of the sFormat parameter with the appropriate substitutions performed.

Remarks

The following example shows how the string "A and B" is returned and assigned to the variable sFormattedString:

sFormattedString = sFormatString("%1 and %2", Array("A", "B"))

The returned string can easily be changed to "B and A" by changing the format string to "%2 and %1" (without changing the array).

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

The sFormat parameter is passed by value so that the original string is not modified.

This routine is available in the include file ActionPageUtil.asp.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sGetFormattedDate (client-side)

Server-Side Routines

sFormatString (server-side)


sGetFormattedDate (client-side)

Use this routine to create a date string out of integer values representing the day, month, and year. The string returned is in the default locale format.

Definition

function sGetFormattedDate(nYear,
                           nMonth,
                           nDay)

Parameters

nYear
A number representing the year portion of the date being constructed.
nMonth
A number representing the month portion of the date being constructed.
nDay
A number representing the day portion of the date being constructed.

Return Value

A string containing the constructed date, or an empty string if a valid date string could not be constructed.

Remarks

This routine is available in the include file ClientDateUtil.asp.

See Also

Client-Side Routines

bIsDate (client-side)

dtGetDate (client-side)

nGetDay (client-side)

nGetMonth (client-side)

nGetYear (client-side)

Server-Side Routines


sGetScriptError (client-side)

Use this routine to format particular properties of the global Microsoft Visual Basic Scripting Edition (VBScript) Err object into an HTML table. The table includes the following property values from the object, in the order shown: ASPCode, number, description, source, fileName, and lineNumber. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine ShowErrorDlg.

Definition

function sGetScriptError(oErr)

Parameters

oErr
The VBScript Err object to be formatted.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The following is an example of the table to be displayed.

Script Error
Number | 0x345
Description | xxx
Source | xxx
Help file | xxx
Help context | xxx

This routine is available in the include file ActionPageUtil.asp.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sGetXMLError (client-side)

ShowErrorDlg (client-side)

Server-Side Routines

sGetADOError (server-side)

sGetASPError (server-side)

sGetErrorById (server-side)

sGetScriptError (server-side)

sGetXMLError (server-side)


sGetXMLError (client-side)

Use this routine to format particular properties of the XMLDOMParseError object into an HTML table. The table includes the following property values from the object, in the order shown: errorCode, filePos, line, linePos, reason, srcText, and URL. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine ShowErrorDlg.

Definition

function sGetXMLError(oXMLDocParseError)

Parameters

oXMLDocParseError
The XMLDOMParseError object to be formatted.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The XMLDOMParseError object is retrieved by calling the parseError method of an XML document.

The following is an example of the table to be displayed.

XML Error
Error code | 123
File pos | 456
Line | 789
Line pos | 123
Source text | xxx
URL | xxx

This routine is available in the include file ActionPageUtil.asp.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sGetScriptError (client-side)

ShowErrorDlg (client-side)

Server-Side Routines

sGetADOError (server-side)

sGetASPError (server-side)

sGetErrorById (server-side)

sGetScriptError (server-side)

sGetXMLError (server-side)


showContextMenu (client-side)

Displays a right-click context menu under the current mouse position. This routine should be set as the value of the onContextMenu attribute for the element to which you want to attach a context menu.

Definition

sub showContextMenu(elContextMenu,
                    sWidth)

Parameters

elContextMenu
An element formatted as a context menu.
sWidth
A string that contains a number specifying the width of the context menu. This value can contain a "px" unit suffix.

Return Value

None.

Remarks

For more information about how context menus are configured, see MenuControl.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

clickContextMenuItem (client-side)

closeContextMenu (client-side)

execTaskFromContextMenu (client-side)

toggleContextMenuHighlight (client-side)

Server-Side Routines


ShowErrorDlg (client-side)

Use this routine to display an error dialog box. The passed strings and error type specify the details of the error.

Definition

sub ShowErrorDlg(sErrorTitle,
                 sFriendlyError,
                 sErrorDetails,
                 nErrorType)

Parameters

sErrorTitle
A string to be displayed in the title bar of the error dialog box.
sFriendlyError
A string containing a plain-language description of the error that has been encountered.
sErrorDetails
A string containing details about the error that has been encountered, often formatted as an HTML table using one of the error formatting routines: sGetScriptError or sGetXMLError. This string can also be formatted using other methods.
nErrorType
A number that corresponds to the severity of the error, and which determines the type of icon displayed in the error dialog box. See Remarks for more information about constants provided for use as this parameter.

Return Value

None.

Remarks

The following constants are provided as the valid values for the nErrorType parameter:

ERROR_ICON_ALERT, ERROR_ICON_CRITICAL,

ERROR_ICON_INFORMATION, ERROR_ICON_QUESTION

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

sGetScriptError (client-side)

sGetXMLError (client-side)

Server-Side Routines

SetError (server-side)


ShowFindBy (client-side)

Use this routine to show the find pane.

Definition

sub ShowFindBy()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

HideFindBy (client-side)

SetFindByHeight (client-side)

ToggleFindBy (client-side)

Server-Side Routines


showPermissionsDialog (client-side)

Use this routine to display the permissions dialog box.

Definition

function showPermissionsDialog(sEntityID,
                               sElementID,
                               sRightID,
                               sEntityName,
                               sElementName,
                               sRightName)

Parameters

sEntityID
A string that specifies the ID of the entity for which the permissions dialog is displayed.
sElementID
A string that specifies the ID of the element for which the permissions dialog is displayed.
sRightID
A string that specifies the ID of the right for which the permissions dialog is displayed.
sEntityName
A string that specifies the display name of the entity for which the permissions dialog is displayed.
sElementName
A string that specifies the display name of the element for which the permissions dialog is displayed.
sRightName
A string that specifies the display name of the right for which the permissions dialog is displayed.

Return Value

The string returned from the routine showModalDialog.

Remarks

When changes are made in the Permissions dialog, they are automatically saved using WebDAV.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

ShowErrorDlg (client-side)

Server-Side Routines


ShowWaitDisplay (client-side)

Use this routine to show the wait display.

Definition

sub ShowWaitDisplay()

Parameters

None.

Return Value

None.

Remarks

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

HideWaitDisplay (client-side)

SetWaitDisplayText (client-side)

Server-Side Routines


ShowXMLNodeErrors (client-side)

Use this routine to display information from XML error nodes in error dialog boxes.

Definition

sub ShowXMLNodeErrors(xmlErrorNodes)

Parameters

xmlErrorNodes
A collection of error nodes from an XML document.

Return Value

None.

Remarks

This routine displays one error dialog box per error node.

This routine expects XML in the format output by the server routine AddErrorNode. Usually that routine is used to add error nodes to return XML in response to a ListSheet XMLHTTP operation or a form post from the routine xmlPostFormViaXML.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

xmlPostFormViaXML (client-side)

Server-Side Routines

AddErrorNode (server-side)


sMergeGroups2 (client-side)

Use this routine to merge two sets of XML records containing different information about the same entities, returning the result as a string containing XML tagging.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. The other set of records, known as the detail set, contains more detailed information about the same set of entities. Both sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing two tiers. The first tier contains the higher-level information, and the second tier contains the detailed information.

Definition

function sMergeGroups2(xmlMaster,
                       xmlDetail,
                       sKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are presumably considered to contain higher-level information.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are presumably considered to contain more detailed information.
sKeyId
A string that corresponds to the name of a field element that exists in both of the XML documents passed as the other parameters. The values for this element are used to match up records from one XML document with the records in the other.

Return Value

A string that contains the merged, two-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a two-tiered XML data record structure for use by a two-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in file bizdesk.asp is called using the "parent." notation.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sMergeGroups3 (client-side)

xmlMergeGroups2 (client-side)

xmlMergeGroups3 (client-side)

xmlMergeGroupsByID2 (client-side)

xmlMergeGroupsByID3 (client-side)

Server-Side Routines

sMergeGroups2 (server-side)


sMergeGroups3 (client-side)

Use this routine to merge three sets of XML records containing different information about the same entities, returning the result as a string containing XML tagging.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. A second set of records, known as the group set, contains more detailed information about the same set of entities. A third set of records, known as the detail set, contains the most detailed information about the same set of entities. All three sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing three tiers. The first tier contains the higher-level information, the second tier contains the group level of detail, and the third tier contains the most detailed information.

Definition

function sMergeGroups3(xmlMaster,
                       xmlGroup,
                       xmlDetail,
                       sMasterKeyId,
                       sDetailKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are presumably considered to contain higher-level information.
xmlGroup
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are presumably considered to contain information of a medium level of detail.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the third tier of the resulting standard XML data record format, and are presumably considered to contain the most detailed information.
sMasterKeyId
A string that corresponds to the name of a data element that exists in both the xmlMaster and xmlGroup XML documents. The values for this element are used to match up records in one XML document with records in the other.
sDetailKeyId
A string that corresponds to the name of a data element that exists in both the xmlGroup and xmlDetail XML documents. The values for this element are used to match up records in one XML document with records in the other.

Return Value

A string that contains the merged, three-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a three-tiered XML data record structure for use by a three-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in file bizdesk.asp is called using the "parent." notation.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sMergeGroups2 (client-side)

xmlMergeGroups2 (client-side)

xmlMergeGroups3 (client-side)

xmlMergeGroupsByID2 (client-side)

xmlMergeGroupsByID3 (client-side)

Server-Side Routines

sMergeGroups3 (server-side)


toggleContextMenuHighlight (client-side)

Toggles the highlight for a context menu item. Use this routine as the value of the onHighlight and onUnhighlight attributes of a context menu element.

Definition

sub toggleContextMenuHighlight()

Parameters

None.

Return Value

None.

Remarks

For more information about how context menus are configured, see MenuControl.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

clickContextMenuItem (client-side)

closeContextMenu (client-side)

execTaskFromContextMenu (client-side)

showContextMenu (client-side)

Server-Side Routines


ToggleFindBy (client-side)

Use this routine to display or hide the find pane to the opposite of its current display state. In other words, if it is currently hidden, display it, and if it is currently displayed, hide it.

Definition

sub ToggleFindBy()

Parameters

None.

Return Value

None.

Remarks

This routine toggles the display state of the find pane by calling either the ShowFindBy routine or the HideFindBy routine, depending on the current state.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

HideFindBy (client-side)

ShowFindBy (client-side)

SetFindByHeight (client-side)

Server-Side Routines


ToggleTask (client-side)

Use this routine to toggle the enabled/disabled state of a task, changing it from enabled to disabled, or from disabled to enabled. The button for the task reflects the changed state, dimming when disabled.

Definition

sub ToggleTask(sID)

Parameters

sID
A string identifier that matches the id attribute of the corresponding task element in the relevant module configuration file.

Return Value

None.

Remarks

This routine toggles the enabled/disabled state of the task by calling either the EnableTask routine or the DisableTask routine, depending on the current state.

This routine is only available after the taskbar has been inserted by calling either InsertTaskBar or InsertEditTaskBar.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

DisableTask (client-side)

EnableAllTasks (client-side)

EnableTask (client-side)

Server-Side Routines


xmlGetSiteTermsValue (client-side)

Use this routine to display the Site Terms Picker dialog box using a specific site terms property. A default selection can be supplied.

Definition

function xmlGetSiteTermsValue(xmlSiteTermNode,
                              sSelected)

Parameters

xmlSiteTermNode
A site terms PROPERTY element (an XML XMLDOMElement object), with its choices as subordinate ATTRIBUTE elements (also XML XMLDOMElement objects).
sSelected
A string that is matched against the displayvalue attribute of each child ATTRIBUTE element. If a match is found, that attribute initially displays as selected.

Return Value

The site terms ATTRIBUTE element (an XML XMLDOMElement object) selected by the user.

Remarks

To prevent an initial selection in the Site Terms Picker dialog box, pass a string for the sSelected parameter that does not match the displayname attribute of any of the ATTRIBUTE elements within the specified PROPERTY element.

This routine is available in the include file ActionPageUtil.asp.

See Also

Client-Side Routines

Server-Side Routines


xmlGetXMLDOMDoc (client-side)

Use this routine to create an XML DOMDocument object with an empty documentElement property.

Definition

function xmlGetXMLDOMDoc()

Parameters

None.

Return Value

An XML DOMDocument object with an empty documentElement property.

Remarks

The string version of the returned document has the following form:

<document />

This routine is available in the include file HTTPXMLUtil.htm.

There is a functionally equivalent version of this routine defined for server-side use in the file HTTPXMLUtil.asp.

See Also

Client-Side Routines

AddCDATANode (client-side)

AddItemNode (client-side)

Server-Side Routines

xmlGetXMLDOMDoc (server-side)


xmlMergeGroups2 (client-side)

Use this routine to merge two sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. The other set of records, known as the detail set, contains more detailed information about the same set of entities. Both of these sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing two tiers. The first tier contains the higher-level information, and the second tier contains the detailed information.

Definition

function xmlMergeGroups2(xmlMaster,
                         xmlDetail,
                         sKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain more detailed information.
sKeyId
A string that corresponds to the name of a field element that exists in both of the XML documents passed as the other parameters. The values for this element are used to match up records from one XML document with the records in the other.

Return Value

An XML document that contains the merged, two-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a two-tiered XML data record structure for use by a two-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to create two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in file bizdesk.asp is called using the "parent." notation.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sMergeGroups2 (client-side)

sMergeGroups3 (client-side)

xmlMergeGroups3 (client-side)

xmlMergeGroupsByID2 (client-side)

xmlMergeGroupsByID3 (client-side)

Server-Side Routines

xmlMergeGroups2 (server-side)


xmlMergeGroups3 (client-side)

Use this routine to merge three sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. A second set of records, known as the group set, contains more detailed information about the same set of entities. A third set of records, known as the detail set, contains the most detailed information about the same set of entities. All three sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing three tiers. The first tier contains the higher-level information, the second tier contains the group level of detail, and the third tier contains the most detailed information.

Definition

function xmlMergeGroups3(xmlMaster,
                         xmlGroup,
                         xmlDetail,
                         sMasterKeyId,
                         sDetailKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlGroup
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain information of a medium level of detail.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the third tier of the resulting standard XML data record format, and are considered to contain the most detailed information.
sMasterKeyId
A string that corresponds to the name of a data element that exists in both the xmlMaster and xmlGroup XML documents. The values for this element are used to match up records in one XML document with records in the other.
sDetailKeyId
A string that corresponds to the name of a data element that exists in both the xmlGroup and xmlDetail XML documents. The values for this element are used to match up records in one XML document with records in the other.

Return Value

An XML DOMDocument object that contains the merged, three-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a three-tiered XML data record structure for use by a three-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to create two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in file bizdesk.asp is called using the "parent." notation.

There is a functionally equivalent version of this routine defined for server-side use in the file ASPUtil.asp.

See Also

Client-Side Routines

sMergeGroups2 (client-side)

sMergeGroups3 (client-side)

xmlMergeGroups2 (client-side)

xmlMergeGroupsByID2 (client-side)

xmlMergeGroupsByID3 (client-side)

Server-Side Routines

xmlMergeGroups3 (server-side)


xmlMergeGroupsByID2 (client-side)

Use this routine to merge two sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. The other set of records, known as the detail set, contains more detailed information about the same set of entities. Both of these sets of records are contained in XML data-islands in the current document.

The records from each set are matched up and merged into a resulting set of records containing two tiers. The first tier contains the higher-level information, and the second tier contains the detailed information.

Definition

function xmlMergeGroupsByID2(sMaster,
                             sDetail,
                             sKeyId)

Parameters

sMaster
A string that matches the id attribute of an XML data-island containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
sDetail
A string that matches the id attribute of an XML data-island containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain more detailed information.
sKeyId
A string that corresponds to the name of a field element that exists in both of the XML data-islands whose id attributes are passed as the other parameters. The values for this element are used to match up records from one XML data-island with the records in the other.

Return Value

An XML DOMDocument object that contains the merged, two-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a two-tiered XML data record structure for use by a two-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to create two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

sMergeGroups2 (client-side)

sMergeGroups3 (client-side)

xmlMergeGroups2 (client-side)

xmlMergeGroups3 (client-side)

xmlMergeGroupsByID3 (client-side)

Server-Side Routines


xmlMergeGroupsByID3 (client-side)

Use this routine to merge three sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. A second set of records, known as the group set, contains more detailed information about the same set of entities. A third set of records, known as the detail set, contains the most detailed information about the same set of entities. All three sets of records are contained in XML data-islands in the current document.

The records from each set are matched up and merged into a resulting set of records containing three tiers. The first tier contains the higher-level information, the second tier contains the group level of detail, and the third tier contains the most detailed information.

Definition

function xmlMergeGroupsByID3(sMaster,
                             sGroup,
                             sDetail,
                             sMasterKeyId,
                             sDetailKeyId)

Parameters

sMaster
A string that matches the id attribute of an XML data-island containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
sGroup
A string that matches the id attribute of an XML data-island containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain information of a medium level of detail.
sDetail
A string that matches the id attribute of an XML data-island containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the third tier of the resulting standard XML data record format, and are considered to contain the most detailed information.
sMasterKeyId
A string that corresponds to the name of a field element that exists in both the xmlMaster and xmlGroup XML documents. The values for this element are used to match up records in one XML document with records in the other.
sDetailKeyId
A string that corresponds to the name of a field element that exists in both the xmlGroup and xmlDetail XML documents. The values for this element are used to match up records in one XML document with records in the other.

Return Value

An XML DOMDocument object that contains the merged, three-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a three-tiered XML data record structure for use by a three-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to create two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ActionPageUtil.asp.

To minimize the size of action page downloads, this routine is a wrapper function that calls a function with the same name in the file bizdesk.asp. The version in bizdesk.asp takes an additional parameter (oWindow) as its first parameter, and is called using the "parent." notation.

See Also

Client-Side Routines

sMergeGroups2 (client-side)

sMergeGroups3 (client-side)

xmlMergeGroups2 (client-side)

xmlMergeGroups3 (client-side)

xmlMergeGroupsByID2 (client-side)

Server-Side Routines


xmlPostFormViaXML (client-side)

Use this routine to post elements within the specified form element to the server as an XML document.

Definition

function xmlPostFormViaXML(byRef elForm)

Parameters

elForm
A form element on the page.

Return Value

An XML DOMDocument object returned from the page specified by the ACTION attribute of the form element.

Remarks

Converts form elements to XML where each element name becomes a name attribute and each element value becomes a value attribute on child item elements of the document. These items are posted to the action page as XML and then the routine returns any response XML.

This routine is useful when posting arguments to an HTTPXML response page.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

Server-Side Routines

dGetRequestXMLAsDict (server-side)


xmlXMLFromDict (client-side)

Use this routine to convert a Dictionary object into an XML document.

Definition

function xmlXMLFromDict(byRef dDict)

Parameters

dDict
A Dictionary object to be converted to XML.

Return Value

An XML DOMDocument object containing an item element for each entry in the Dictionary object.

Remarks

Each item element is given two attributes, name and value, initialized to the name and value of each entry in the Dictionary object, as follows:

<item name="keyname" value="value"/>

This routine is available in the include file HTTPXMLUtil.htm.

There is a functionally equivalent version of this routine defined for server-side use in the file HTTPXMLUtil.asp.

See Also

Client-Side Routines

xmlXMLFromForm (client-side)

Server-Side Routines

dDictFromXML (server-side)

xmlXMLFromDict (server-side)


xmlXMLFromForm (client-side)

Use this routine to convert form elements to items in an XML document.

Definition

function xmlXMLFromForm(byRef elForm)

Parameters

elForm
A form element on the page.

Return Value

An XML DOMDocument object containing the copied contents of the form elements.

Remarks

This routine converts the child elements of a form element to XML where each element name becomes a name attribute and each element value becomes a value attribute on child item elements of the document.

This routine is available in the include file HTTPXMLUtil.htm.

See Also

Client-Side Routines

xmlPostFormViaXML (client-side)

xmlXMLFromDict (client-side)

Server-Side Routines

xmlXMLFromDict (server-side)


Server-Side Routines

The Commerce Server Business Desk Framework defines the following server-side routines:

Routine Name | Description
AddCDATANode | Adds a CDATA type item node to the specified XML document. Defined in the file HTTPXMLUtil.asp.
AddErrorNode | Adds an error node to the specified XML document, causing the ListSheet HTC to display an error dialog box. Defined in the file HTTPXMLUtil.asp.
AddItemNode | Adds an item node to the specified XML document. Defined in the file HTTPXMLUtil.asp.
AddWarningNode | Adds a warning node to the specified XML document, causing the ListSheet HTC to display a warning dialog box. Defined in the file HTTPXMLUtil.asp.
bDenySecurityForTask | Returns permissions for the current user and the given task page and task.
bDenySecurityForElement | Returns permissions for the current user and the given entity, element, and right.
bInAdministratorGroup | Returns a Boolean that indicates whether the current user is in the Administrators group. Defined in the file ActionPageUtil.asp.
CheckSecurityForModule | Checks permissions for the current user and the given module, and redirects to the access error page if this user is denied access.
dDictFromXML | Converts a standard XML document into a Dictionary object. Defined in the file HTTPXMLUtil.asp.
dGetAction | Creates a Dictionary object and initializes it with the configuration information for a particular action page. Defined in the file ActionPageUtil.asp.
dGetRequestXMLAsDict | Returns the XML posted with a request as a Dictionary object. Defined in the file HTTPXMLUtil.asp.
FinishWithXMLSecurityError | Returns the XML security error and discontinue processing of the page.
GetSiteConfigField | Retrieves a value from the Site Configuration store. Defined in the file ASPUtil.asp.
InsertControlStylesheet | Inserts a style sheet for edit controls so that input can be in a different language than specified by the main style sheet. Defined in the file ActionPageUtil.asp.
InsertEditTaskBar | Causes Business Desk to display the action page in edit mode, with the navigation frame hidden, including the display of the task buttons and initial status message. Defined in the file ActionPageUtil.asp.
InsertTaskBar | Causes Business Desk to display the action page in list mode, with the navigation frame visible, including the display of the task buttons and initial status message. Defined in the file ActionPageUtil.asp.
oGetADOCommand | Creates and initializes an ADO Command object. Defined in the file DBUtil.asp.
oGetADOConnection | Creates and opens an ADO Connection object. Defined in the file DBUtil.asp.
rsGetRecordset | Retrieves an ADO Recordset object based on the specified connection string, query, cursor, and lock type. Defined in the file DBUtil.asp.
SetError | Saves server-side error information for synchronized display in the client. Defined in the file ASPUtil.asp.
sFormatString | Performs string formatting using a format string with variable insertion points, similar to the C++ printf function. Defined in the file ASPUtil.asp.
sGetADOError | Formats an ADO error into a string containing HTML table formatting directives. Defined in the file ASPUtil.asp.
sGetASPError | Formats an ASP error into a string containing HTML table formatting directives. Defined in the file ASPUtil.asp.
sGetErrorById | Retrieves an error message from the Message Manager. Defined in the file ASPUtil.asp.
sGetScriptError | Formats a script error into a string containing HTML table formatting directives. Defined in the file ASPUtil.asp.
sGetXMLError | Formats an XML error into a string containing HTML table formatting directives. Defined in the file ASPUtil.asp.
sMergeGroups2 | Merges two single-tiered XML documents in the standard XML data record format into a single two-tiered XML document in the same format, returning the result as a string. Defined in the file ASPUtil.asp.
sMergeGroups3 | Merges three single-tiered XML documents in the standard XML data record format into a single three-tiered XML document in the same format, returning the result as a string. Defined in the file ASPUtil.asp.
sRelURL2AbsURL | Converts a URL that is relative to the folder of an action page into its equivalent absolute URL. Defined in the file ASPUtil.asp.
xmlGetCurrencies | Retrieves an XML DOM object that contains information about various currencies. Defined in the file ASPUtil.asp.
xmlGetLanguages | Retrieves an XML DOM object that contains information about various languages. Defined in the file ASPUtil.asp.
xmlGetRequestXML | Returns the XML posted with a request as an XML DOMDocument object. Defined in the file HTTPXMLUtil.asp.
xmlGetResource | Loads and caches an XML DOM object that contains the contents of the specified XML file. Defined in the file ASPUtil.asp.
xmlGetXMLDOMDoc | Returns an empty XML DOMDocument object. Defined in the file HTTPXMLUtil.asp.
xmlGetXMLFromQuery | Creates an XML document node and populates it with record nodes corresponding to all of the records returned by the specified query. Defined in the file DBUtil.asp.
xmlGetXMLFromQueryEx | Creates an XML document node and populates it with record nodes corresponding to some or all of the records returned by the specified query. Defined in the file DBUtil.asp.
xmlGetXMLFromRS | Creates an XML document node and populates it with record nodes corresponding to all of the records in the specified ADO Recordset object. Defined in the file DBUtil.asp.
xmlGetXMLFromRSEx | Creates an XML document node and populates it with record nodes corresponding to some or all of the records in the specified ADO Recordset object. Defined in the file DBUtil.asp.
xmlMergeGroups2 | Merges two single-tiered XML documents in the standard XML data record format into a single two-tiered XML document in the same format, returning the result as an XML document node. Defined in the file ASPUtil.asp.
xmlMergeGroups3 | Merges three single-tiered XML documents in the standard XML data record format into a single three-tiered XML document in the same format, returning the result as an XML document node. Defined in the file ASPUtil.asp.
xmlXMLFromDict | Converts a Dictionary object into a standard XML document. Defined in the file HTTPXMLUtil.asp.

The following lists show server-side routines that are not intended to be called by module code, organized alphabetically and by the include file in which they appear:

ActionPageUtil.asp
dGetPermissionDict, InsertHelpIconBtn, InsertIconBtn, InsertIconBtns, InsertNonClientArea
ASPUtil.asp
dGetErrorDict, oGetAdminEventLog, sESCErrorText, sStripHTML
BizDeskObjects.asp
BDError, dGetCategory, DumpDict, DumpList, DumpResults, DumpSubObject, LoadActions, LoadCategories, LoadModuleConfigs, LoadModules, LoadObjects, LoadTasks, PutObjectsInApp, SetDumpStyles, sGetChildText, ShowProgress, sObjFormatString, ValidateActions, VBError, XMLError, xmlLoadConfig
DBUtil.asp
AddEmptyRecordNode, AddField, AddFormattedNode, sESCText, sStripGroupName
response_permissions.asp
setPermissions
response_session.asp
xmlGetResponseFromRequest, xmlGetResponseXML


AddCDATANode (server-side)

Use this routine to add a CDATA type item node to a global XML document, setting the name attribute and element data to the values passed.

Definition

sub AddCDATANode(byVal sName,
                 byVal sValue)

Parameters

sName
A string containing the name of the item.
sValue
A string containing the value of the item.

Return Value

None.

Remarks

The new item will be added to the XML document retrieved from the documentElement property of the DOMDocument object referenced by the global variable g_xmlReturn.

The string version of the added element has the following form:

<item name="sName"><![CDATA[sValue]]></item>

This routine is available in the include file HTTPXMLUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file HTTPXMLUtil.htm. Note that this other routine does not add the CDATA node to a globally accessible XML document, but instead is passed an xmlDoc parameter that references the XML document to which the node will be added.

See Also

Server-Side Routines

AddErrorNode (server-side)

AddItemNode (server-side)

AddWarningNode (server-side)

xmlGetXMLDOMDoc (server-side)

Client-Side Routines

AddCDATANode (client-side)


AddErrorNode (server-side)

Use this routine to add an ERROR element to the specified XML document.

Definition

sub AddErrorNode(byRef xmlDOMDoc,
                 byVal sId,
                 byVal sSource,
                 byVal sDetail)

Parameters

xmlDOMDoc
A reference to the XML DOMDocument object to which the ERROR element is added.
sId
A string containing a value for the id attribute of the element.
sSource
A string containing a value for the source attribute of the element.
sDetail
An HTML string containing the error details, assigned as the innerHTML of the element.

Return Value

None.

Remarks

This routine adds a node of the form:

<ERROR id="id" source="source">detail</ERROR>

This is the format expected by client routine ShowXMLNodeErrors.

This routine is available in the include file HTTPXMLUtil.asp.

See Also

Server-Side Routines

AddCDATANode (server-side)

AddItemNode (server-side)

AddWarningNode (server-side)

xmlGetXMLDOMDoc (server-side)

Client-Side Routines

ShowXMLNodeErrors (client-side)


AddItemNode (server-side)

Use this routine to add an item element to a global XML document, establishing name and value attributes using the passed parameters.

Definition

sub AddItemNode(byVal sName,
                byVal sValue)

Parameters

sName
A string containing a value for the name attribute of the item.
sValue
A string containing a value for the value attribute of the item.

Return Value

None.

Remarks

The new item will be added to the XML document retrieved from the documentElement property of the DOMDocument object referenced by the global variable g_xmlReturn.

The string version of the added element has the following form:

<item name="sName" value="sValue"/>

This routine is available in the include file HTTPXMLUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file HTTPXMLUtil.htm. Note that this other routine does not add the CDATA node to a globally accessible XML document, but instead is passed an xmlDoc parameter that references the XML document to which the node will be added.

See Also

Server-Side Routines

AddCDATANode (server-side)

AddErrorNode (server-side)

AddWarningNode (server-side)

xmlGetXMLDOMDoc (server-side)

Client-Side Routines

AddItemNode (client-side)


AddWarningNode (server-side)

Use this routine to add a WARNING element to the specified XML document.

Definition

sub AddWarningNode(byRef xmlDoc,
                   byVal sMessage)

Parameters

xmlDoc
A reference to the XML DOMDocument object to which the WARNING element is added.

A string containing the error details, assigned as the text of with the element.

sMessage
A string containing a warning message, assigned as the text of the element.

Return Value

None.

Remarks

This routine adds a node of the form:

<WARNING>sMessage</WARNING>

This routine is available in the include file HTTPXMLUtil.asp.

See Also

Server-Side Routines

AddCDATANode (server-side)

AddErrorNode (server-side)

AddItemNode (server-side)

xmlGetXMLDOMDoc (server-side)

Client-Side Routines


bDenySecurityForElement (server-side)

Use this routine to determine permissions for the current user and the given entity, element and right.

Definition

function bDenySecurityForElement(sEntity, sElement, sRight)

Parameters

sEntity
A String containing the entity ID.
sElement
A String containing the element ID.
sRight
A String containing the right ID.

Return Value

This routine returns True if the user is denied, and False if the user is allowed.

Remarks

This routine is available in the include file ServerSecurityUtil.asp.

See Also

Client-Side Routines


bDenySecurityForTask (server-side)

Use this routine to determine permissions for the current user and the given task page and task.

Definition

function bDenySecurityForTask(sTaskPage, sTaskID)

Parameters

sTaskPage
A String containing the page path relative to the Business Desk root directory.
sTaskID
A String containing the task ID from the module XML configuration.

Return Value

This routine returns True if the user is denied, and False if the user is allowed.

Remarks

The sTaskID must match the id attribute on the corresponding task node in the module XML configuration file of the module. The sTaskPage must match the action attribute on the corresponding goto or postto node under the corresponding task node.

This routine is available in the include file ServerSecurityUtil.asp.

See Also

Client-Side Routines


bInAdministratorGroup (server-side)

Use this routine to return a Boolean that indicates whether the current user is in the Administrators group.

Definition

function bInAdministratorGroup()

Parameters

None.

Return Value

A Boolean value indicating whether the current user is in the Administrators group. A return value of True indicates that the current user is an administrator, and a return value of False indicates that the current user is not an administrator.

Remarks

This routine is available in the include file ActionPageUtil.asp.

See Also

Server-Side Routines

Client-Side Routines


CheckSecurityForModule (server-side)

Use this routine to check permissions for the current user and the given module, and to redirect to the access error page if this user is denied access.

Definition

sub CheckSecurityforModule(sModuleID)

Parameters

sModuleID
A String containing the module ID.

Return Value

None.

Remarks

The sModuleID must match the id attribute on the corresponding module node in the module’s XML configuration file.

This routine is available in the include file ServerSecurityUtil.asp.

See Also

Client-Side Routines


dDictFromXML (server-side)

Use this routine to convert an XML document with child nodes of the form <item name="keyname" value="value"/> into a Dictionary object.

Definition

function dDictFromXML(byRef xmlDOMDoc)

Parameters

xmlDOMDoc
The XML DOMDocument object to be converted.

Return Value

A Dictionary object containing the converted XML document contents.

Remarks

Each name and value attribute becomes an entry in the Dictionary object where the name is the key and the value attribute contains the value.

This routine is available in the include file HTTPXMLUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file HTTPXMLUtil.htm.

See Also

Server-Side Routines

xmlXMLFromDict (server-side)

Client-Side Routines

dDictFromXML (client-side)

xmlXMLFromDict (client-side)


dGetAction (server-side)

Use this routine to create a Dictionary object containing the configuration information for an action page.

Definition

function dGetAction(byVal sLookupActionID)

Parameters

sLookupActionID
A string containing the action ID, which is the path and file name of the action page relative to the Commerce Server Business Desk root.

Return Value

A Dictionary object containing the action page configuration.

Remarks

This routine returns a Dictionary object containing all of the action page configuration information, such as name, tooltip, and associated tasks. The tasks associated with this action page are relatively complex, and are returned using a subordinate SimpleList object.

This routine is available in the include file ActionPageUtil.asp.

See Also

Server-Side Routines

Client-Side Routines


dGetRequestXMLAsDict (server-side)

Use this routine to retrieve the XML in a request as a Dictionary object.

Definition

function dGetRequestXMLAsDict()

Parameters

None.

Return Value

A Dictionary object containing the values expressed using XML in the request.

Remarks

This routine expects XML in the form that is posted by the client routine xmlPostFormViaXML. The Dictionary object returned can be treated like the Internet Information Services (IIS) Request object.

This routine is available in the include file HTTPXMLUtil.asp.

See Also

Server-Side Routines

dDictFromXML (server-side)

xmlGetRequestXML (server-side)

Client-Side Routines

xmlPostFormViaXML (client-side)


GetSiteConfigField (server-side)

Use this routine to retrieve a field value from the Site Configuration store.

Definition

function GetSiteConfigField(sResourceName,
                            sPropertyName)

Parameters

sResourceName
A string containing the name of the resource associated with the field being requested.
sPropertyName
A string containing the name of the property corresponding to the field being requested.

Return Value

The value currently associated with the sPropertyName property of the sResourceName resource in the Site Configuration store.

Remarks

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

Client-Side Routines


InsertControlStylesheet (server-side)

Use this routine to insert a style sheet for edit controls so that input can be in a different language than specified by the main style sheet.

Definition

sub InsertControlStylesheet(sLanguage)

Parameters

sLanguage
A string that specifies the name of the language-specific style sheet file to be used for the edit controls.

Return Value

None.

Remarks

The sLanguage parameter should be one of the file names shown in the following table, or the name of an equivalent file defined for another language and placed in the include\styles folder.

Style Sheet File | Description
chs_widgets.css | Style sheet for Chinese (Simplified) edit control input.
cht_widgets.css | Style sheet for Chinese (Traditional) edit control input.
en_widgets.css | Style sheet for English (Western Europe) edit control input.
jp_widgets.css | Style sheet for Japanese edit control input.
ko_widgets.css | Style sheet for Korean edit control input.

This routine is available in the include file ActionPageUtil.asp.

See Also

Server-Side Routines

Client-Side Routines

ChangeControlStylesheet (client-side)


InsertEditTaskBar (server-side)

Use this routine to insert the configured taskbar and display the page in edit mode, that is, with the module navigation frame hidden and the action page frame expanded to the left.

Definition

sub InsertEditTaskBar(sPageTitle,
                      sStatusText)

Parameters

sPageTitle
A string containing the text to be displayed in the title bar at the top of the expanded action page frame.
sStatusText
A string containing the text to be initially displayed in the status bar at the bottom of the expanded action page frame.

Return Value

None.

Remarks

The title bar and status bar are displayed in the color red, indicating that Commerce Server Business Desk is in edit mode, from which modification of data values can occur.

It is common for an action page to overwrite the initial status text using the routine SetStatusText.

This routine should be invoked immediately after the opening BODY element in the action page.

This routine is available in the include file ActionPageUtil.asp.

See Also

Server-Side Routines

InsertTaskBar (server-side)

Client-Side Routines


InsertTaskBar (server-side)

Use this routine to insert the configured taskbar and display the page in list mode, that is, with the module navigation frame visible to the left of the action page frame.

Definition

sub InsertTaskBar(sPageTitle,
                  sStatusText)

Parameters

sPageTitle
A string containing the text to be displayed in the title bar at the top of the action page frame.
sStatusText
A string containing the text to be initially displayed in the status bar at the bottom of the action page frame.

Return Value

None.

Remarks

The title bar and status bar are displayed in the color blue, indicating that Commerce Server Business Desk is in list mode, from which no modification of data values can occur.

It is common for an action page to overwrite the initial status text using the routine SetStatusText.

This routine should be invoked immediately after the opening BODY element in the action page.

This routine is available in the include file ActionPageUtil.asp.

See Also

Server-Side Routines

InsertEditTaskBar (server-side)

Client-Side Routines


oGetADOCommand (server-side)

Use this routine to create an ActiveX Data Object (ADO) Command object, and initialize it with the specified connection and command types.

Definition

function oGetADOCommand(oConn,
                        nCommandType)

Parameters

oConn
An ADO Connection object to be set as the active connection for the newly created Command object. This is usually the object returned from a call to the oGetADOConnection routine.
nCommandType
A number containing a valid value representing an ADO command type to be set for the newly created Command object.

Return Value

An ADO Command object, ready to use.

Remarks

The following constants for ADO parameter values are defined in the file DBUtil.asp:

Command Types
AD_CMD_TEXT

AD_CMD_TABLE

AD_CMD_STORED_PROC

AD_CMD_UNKNOWN

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

oGetADOConnection (server-side)

rsGetRecordset (server-side)

Client-Side Routines


oGetADOConnection (server-side)

Use this routine to create and open an ActiveX Data Object (ADO) connection, and establish connection and command timeouts of 15 and 30 seconds, respectively.

Definition

function oGetADOConnection(sConnectionString)

Parameters

sConnectionString
A string containing an ADO connection string describing the database with which to connect. This is usually a property retrieved from a resource in the Site Configuration Store using the GetSiteConfigField routine in the file ASPUtil.asp.

Return Value

An ADO Connection object, ready to use.

Remarks

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

oGetADOCommand (server-side)

rsGetRecordset (server-side)

Client-Side Routines


rsGetRecordset (server-side)

Use this routine to retrieve an ActiveX Data Object (ADO) recordset based on a specified connection string, query, and cursor and lock types.

Definition

function rsGetRecordset(sConnectionString,
                        sQuery,
                        nCursorType,
                        nLockType)

Parameters

sConnectionString
A string containing an ADO connection string describing the database with which to connect. This is usually a property retrieved from a resource in the Site Configuration Store using the GetSiteConfigField routine in the file ASPUtil.asp.
sQuery
A string containing a valid SQL query.
nCursorType
A number containing a valid value representing an ADO cursor type.
nLockType
A number containing a valid value representing an ADO lock type.

Return Value

An ADO Recordset object containing the results of the query.

Remarks

The following constants for ADO parameter values are defined in the file DBUtil.asp:

Cursor Types
AD_OPEN_FORWARD_ONLY

AD_OPEN_KEYSET

AD_OPEN_DYNAMIC

AD_OPEN_STATIC

Lock Types
AD_LOCK_READ_ONLY

AD_LOCK_PESSIMISTIC

AD_LOCK_OPTIMISTIC

AD_LOCK_BATCH_OPTIMISTIC

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

xmlGetXMLFromRS (server-side)

xmlGetXMLFromRSEx (server-side)

Client-Side Routines


SetError (server-side)

Use this routine to save information about errors that occur in server-side code for display to the user. The error information is saved in the Active Server Pages (ASP) Session object, and used to automatically call the client-side routine ShowErrorDialog the next time the taskbar is displayed.

Definition

sub SetError(byVal sErrorTitle,
             byVal sFriendlyError,
             byVal sErrorDetails,
             byVal nErrorType)

Parameters

sErrorTitle
A string to be displayed in the title bar of the error dialog box.
sFriendlyError
A string containing a plain-language description of the error that has been encountered.
sErrorDetails
A string containing details about the error that has been encountered, often formatted as an HTML table using one of the error formatting routines: sGetASPError, sGetADOError, sGetScriptError, or sGetXMLError. This string can also be formatted using other methods.
nErrorType
A number that corresponds to the severity of the error, and which determines the type of icon displayed in the error dialog box. See Remarks for more information about constants provided for use as this parameter.

Return Value

None.

Remarks

The following constants are provided as the valid values for the nErrorType parameter:

ERROR_ICON_ALERT, ERROR_ICON_CRITICAL,

ERROR_ICON_INFORMATION, ERROR_ICON_QUESTION

If the error type is ERROR_ICON_ALERT or ERROR_ICON_CRITICAL, then the error is logged to the application event log.

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

sGetADOError (server-side)

sGetASPError (server-side)

sGetErrorById (server-side)

sGetScriptError (server-side)

sGetXMLError (server-side)

Client-Side Routines

ShowXMLNodeErrors (client-side)


sFormatString (server-side)

Use this routine to insert arguments into a string in a manner similar to that used by the C++ printf function. It is useful for formatting strings in a way that is much easier to localize than some other hard-coded methods.

Definition

function sFormatString(byVal sFormat,
                             aArgs)

Parameters

sFormat
A string containing a combination of text and sequentially-numbered variables in the format %1, %2, and so forth. These variables are replaced with the elements from the corresponding positions in the aArgs array.
aArgs
An array of strings to be inserted into the string specified by the sFormat parameter, in the positions of the sequentially-numbered variables. Any extra arguments are ignored, and any extra variables in the string remain unchanged.

Return Value

A string containing the contents of the sFormat parameter with the appropriate substitutions performed.

Remarks

The following example shows how the string "A and B" is returned and assigned to the variable sFormattedString:

sFormattedString = sFormatString("%1 and %2", Array("A", "B"))

The returned string can easily be changed to "B and A" by changing the format string to "%2 and %1" (without changing the array at all).

The sFormat parameter is passed by value so that the original string is not modified.

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

Client-Side Routines

sFormatString (client-side)


sGetADOError (server-side)

Use this routine to format particular properties of an ADO Error object into an HTML table. The table includes the following property values from the object, in the order shown: number, description, source, SQLState, and NativeError. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine SetError.

Definition

function sGetADOError(oConnectionErrorsError)

Parameters

oConnectionErrorsError
The ADO Error object to be formatted.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The following is an example of the table to be displayed.

ADO Error
Number | 0x456
Description | xxx
Source | xxx
SQL state | xxx
Native error | xxx

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

SetError (server-side)

sGetASPError (server-side)

sGetScriptError (server-side)

sGetXMLError (server-side)

Client-Side Routines

sGetScriptError (client-side)


sGetASPError (server-side)

Use this routine to format particular properties of the object returned by a call to the Internet Information Services (IIS) routine GetLastError into an HTML table. The table includes the following property values from the object, in the order shown: number, description, source, helpFile, and helpContext. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine SetError.

Definition

function sGetASPError(oServerGetLastError)

Parameters

oServerGetLastError
The object returned by the IIS routine GetLastError, which this routine uses to format the HTML table.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The following is an example of the table to be displayed.

ASP Error
Asp code | xxx
Number | 345
Description | xxx
Source | xxx
File name | xxx
Line number | 432

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

SetError (server-side)

sGetADOError (server-side)

sGetScriptError (server-side)

sGetXMLError (server-side)

Client-Side Routines


sGetErrorById (server-side)

Use this routine to retrieve an error string from the global MessageManager object corresponding to a specific identifier. This routine is typically called to get a string to use as the sFriendlyError parameter of the routine SetError.

Definition

function sGetErrorById(sErrorId)

Parameters

sErrorId
A string that uniquely identifies a particular error string in the global MessageManager object.

Return Value

A string containing the retrieved error text.

Remarks

This routine helps enable simplified localization of a Web site by providing access to a centralized message store that can be localized independently from the code.

This routine retrieves strings from the global MessageManager object referenced by the global variable g_MSCSMessageManager.

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

SetError (server-side)

sFormatString (server-side)

Client-Side Routines


sGetScriptError (server-side)

Use this routine to format particular properties of a Microsoft Visual Basic Scripting Edition (VBScript) Err object into an HTML table. The table includes the following property values from the object, in the order shown: number, description, source, helpFile, and helpContext. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine SetError.

Definition

function sGetScriptError(oErr)

Parameters

oErr
The VBScript Err object to be formatted.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The following is an example of the table to be displayed.

Script Error
Number | 0x345
Description | xxx
Source | xxx
Help file | xxx
Help context | xxx

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

SetError (server-side)

sFormatString (server-side)

sGetADOError (server-side)

sGetASPError (server-side)

sGetXMLError (server-side)

Client-Side Routines

sGetScriptError (client-side)


sGetXMLError (server-side)

Use this routine to format particular properties of the XML parseError object into an HTML table. The table includes the following property values from the object, in the order shown: errorCode, filePos, line, linePos, reason, srcText, and URL. The table is returned as an HTML-formatted string. This routine is typically called to construct a string to use as the sErrorDetail parameter of the routine SetError.

Definition

function sGetXMLError(oXMLDocParseError)

Parameters

oXMLDocParseError
The XML parseError object to be formatted.

Return Value

A string containing the HTML that displays the formatted table.

Remarks

The XML parseError object is retrieved by calling the parseError method of an XML document.

The following is an example of the table to be displayed.

XML Error
Error code | 123
File pos | 456
Line | 789
Line pos | 123
Source text | xxx
URL | xxx

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

SetError (server-side)

sGetADOError (server-side)

sGetASPError (server-side)

sGetScriptError (server-side)

Client-Side Routines

sGetXMLError (client-side)


sMergeGroups2 (server-side)

Use this routine to merge two sets of XML records containing different information about the same entities, returning the result as an XML string.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. The other set of records, known as the detail set, contains more detailed information about the same set of entities. Both sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing two tiers. The first tier contains the higher-level information, and the second tier contains the detailed information.

Definition

function sMergeGroups2(xmlMaster,
                       xmlDetail,
                       sKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain more detailed information.
sKeyId
A string that corresponds to the name of a data element that exists in both of the XML documents passed as the other parameters. The values for this element are used to match up records from one XML document with the records in the other.

Return Value

A string that contains the merged, two-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a two-tiered XML data record structure for use by a two-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

sMergeGroups3 (server-side)

xmlMergeGroups2 (server-side)

xmlMergeGroups3 (server-side)

Client-Side Routines

sMergeGroups2 (client-side)


sMergeGroups3 (server-side)

Use this routine to merge three sets of XML records containing different information about the same entities, returning the result as an XML string.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. A second set of records, known as the group set, contains more detailed information about the same set of entities. A third set of records, known as the detail set, contains the most detailed information about the same set of entities. All three sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing three tiers. The first tier contains the higher-level information, the second tier contains the group level of detail, and the third tier contains the most detailed information.

Definition

function sMergeGroups3(xmlMaster,
                       xmlGroup,
                       xmlDetail,
                       sMasterKeyId,
                       sDetailKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlGroup
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain information of a medium level of detail.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the third tier of the resulting standard XML data record format, and are considered to contain the most detailed information.
sMasterKeyId
A string that corresponds to the name of a data element that exists in both the xmlMaster and xmlGroup XML documents. The values for this element are used to match up records in one XML document with records in the other.
sDetailKeyId
A string that corresponds to the name of a data element that exists in both the xmlGroup and xmlDetail XML documents. The values for this element are used to match up records in one XML document with records in the other.

Return Value

A string that contains the merged, three-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a three-tiered XML data record structure for use by a three-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

sMergeGroups2 (server-side)

xmlMergeGroups2 (server-side)

xmlMergeGroups3 (server-side)

Client-Side Routines

sMergeGroups3 (client-side)


sRelURL2AbsURL (server-side)

Use this routine to convert a Uniform Resource Locator (URL) that is relative to the folder of the current action page into an absolute URL.

Definition

function sRelURL2AbsURL(sRelURL)

Parameters

sRelURL
A string containing a URL that is relative to the folder of the current action page.

Return Value

A string containing an absolute URL that is functionally equivalent to the relative URL passed in the sRelURL parameter.

Remarks

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

Client-Side Routines


xmlGetCurrencies (server-side)

Use this routine to retrieve an XML DOM object that contains information about various currencies.

Definition

function xmlGetCurrencies()

Parameters

None.

Return Value

An XML DOMDocument object (ProgID: Microsoft.FreeThreadedXMLDOM) containing the contents of the file config\currencies.xml, potentially cached in the Application object during a prior invocation.

Remarks

This routine uses the routine xmlGetResource to accomplish its task, passing the string "MSCSCurrencies" as the name of the Application object variable under which the file contents are cached cached as an XML DOM object.

This routine is available in the include file ASPUtil.asp.

This routine was created for use by the Catalog modules.

See Also

Server-Side Routines

xmlGetLanguages (server-side)

xmlGetResource (server-side)

Client-Side Routines


xmlGetLanguages (server-side)

Use this routine to retrieve an XML DOM object that contains information about various languages.

Definition

function xmlGetLanguages()

Parameters

None.

Return Value

An XML DOMDocument object (ProgID: Microsoft.FreeThreadedXMLDOM) containing the contents of the file config\languages.xml, potentially cached in the Application object during a prior invocation.

Remarks

This routine uses the routine xmlGetResource to accomplish its task, passing the string "MSCSLanguages" as the name of the Application object variable under which the file contents are cached as an XML DOM object.

This routine is available in the include file ASPUtil.asp.

This routine was created for use by the Catalog modules.

See Also

Server-Side Routines

xmlGetCurrencies (server-side)

xmlGetResource (server-side)

Client-Side Routines


xmlGetRequestXML (server-side)

Use this routine to copy the XML in the request to an XML document.

Definition

function xmlGetRequestXML()

Parameters

None.

Return Value

An XML DOMDocument object containing the XML in the request.

Remarks

This routine expects XML in the form sent by the client routine xmlPostFormViaXML.

This routine is available in the include file HTTPXMLUtil.asp.

See Also

Server-Side Routines

dGetRequestXMLAsDict (server-side)

Client-Side Routines

xmlPostFormViaXML (client-side)


xmlGetResource (server-side)

Use this routine to retrieve an XML DOM object that contains the contents of the specified XML file, potentially cached in the Application object during a prior invocation.

Definition

function xmlGetResource(byRef sResourceName,
                        byRef sResourceFile)

Parameters

sResourceName
A string containing the name of an Application object variable under which the contents of the file will be cached as an XML DOM object, or through which the previously cached XML DOM object will be retrieved from the Application object.
sResourceFile
A string containing the name of the file from which the XML DOM object will be loaded, in the event that it is not already cached in the Application object.

Return Value

An XML DOMDocument object (ProgID: Microsoft.FreeThreadedXMLDOM) containing the contents of the specified file, potentially cached in the Application object during a prior invocation.

Remarks

This routine is used by the routines xmlGetCurrencies and xmlGetLanguages to load and cache the contents of the XML files config\currencies.xml and config\languages.xml, respectively. It is general purpose in nature, and could be used to load and cache the contents of arbitrary XML files.

This routine is available in the include file ASPUtil.asp.

See Also

Server-Side Routines

xmlGetCurrencies (server-side)

xmlGetLanguages (server-side)

Client-Side Routines


xmlGetXMLDOMDoc (server-side)

Use this routine to create an XML DOMDocument object with an empty documentElement property.

Definition

function xmlGetXMLDOMDoc()

Parameters

None.

Return Value

An XML DOMDocument object with an empty documentElement property.

Remarks

The string version of the returned document has the following form:

<document />

This routine is available in the include file HTTPXMLUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file HTTPXMLUtil.htm.

See Also

Server-Side Routines

AddCDATANode (server-side)

AddErrorNode (server-side)

AddItemNode (server-side)

AddWarningNode (server-side)

Client-Side Routines

xmlGetXMLDOMDoc (client-side)


xmlGetXMLFromQuery (server-side)

Use this routine to create an XML document element and populate it with record elements corresponding to all of the records returned by the specified query.

This conversion process results in an XML XMLDOMElement object containing the standard XML data record format.

Definition

function xmlGetXMLFromQuery(sConnectionString,
                            sQuery)

Parameters

sConnectionString
A string containing an ActiveX Data Object (ADO) connection string describing the database with which to connect. This is usually a property retrieved from a resource in the Site Configuration Store using the GetSiteConfigField routine in the file ASPUtil.asp.
sQuery
A string containing a valid SQL query.

Return Value

An XMLDOMElement object containing record nodes that mirrors the data returned by the specified query.

Remarks

The conversion results in all of the data returned by the specified query being represented as an XML document element (an XMLDOMElement object) containing a number of record elements (more XMLDOMElement objects).

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

xmlGetXMLFromQueryEx (server-side)

xmlGetXMLFromRS (server-side)

xmlGetXMLFromRSEx (server-side)

Client-Side Routines


xmlGetXMLFromQueryEx (server-side)

Use this routine to create an XML document element and populate it with record elements corresponding to some or all of the records returned by the specified query.

This conversion process results in an XML XMLDOMElement object containing the standard XML data record format.

Definition

function xmlGetXMLFromQueryEx(sConnectionString,
                              sQuery,
                              nStartRecord,
                              nPageSize,
                              nExRecordCount,
                              dFormats)

Parameters

sConnectionString
A string containing an ActiveX Data Object (ADO) connection string describing the database with which to connect. This is usually a property retrieved from a resource in the Site Configuration store using the GetSiteConfigField routine in the file ASPUtil.asp.
sQuery
A string containing a valid SQL query.
nStartRecord
A number specifying the position in the query results of the first record to be converted. Positions are counted from 0 (zero). A value of –1 causes this parameter to be ignored, which has the same effect as passing a value of 0 (zero).
nPageSize
A number specifying the number of consecutive records to convert. A value of –1 causes all records in the recordset to be converted.
nExRecordCount
A number specifying a record count to override the count from the recordset. A value of –1 causes this parameter to be ignored, resulting in the record count from the Recordset object being used. Pass a value of 'TOO_BIG_TOO_COUNT' when the number of records makes it unreasonable to count them all.
dFormats
A Dictionary object that contains information used for special date/time mapping between ADO date/time formats and Commerce Server Business Desk date/time formats.

Return Value

An XML XMLDOMElement object containing record elements that mirror all or part of the data returned by the specified query.

Remarks

The conversion results in all or part of the data returned by the specified query being represented as an XML document element (an XMLDOMElement object) containing a number of record elements (more XMLDOMElement objects).

The dFormats parameter specifies a Dictionary object that is used to do special date and time related format mapping. The keys in this Dictionary object are the names of fields, and the values are either ActiveX Data Object (ADO) data type values, or a special value corresponding to the constant COMMERCE_SPLIT_DATE. Field names are looked up in this Dictionary object to determine the proper value to pass as the sType parameter of the routine AddFormattedNode. The following table shows these mappings.

Dictionary Value for Field Name Key | sType Value and Processing
AD_DATE, AD_DB_DATE, AD_DB_TIMESTAMP, AD_DB_TIME | sType parameter set to corresponding Dictionary object value.
COMMERCE_SPLIT_DATE Two calls to the AddFormattedNode routine are made with the following parameters:
  1. sName = <ADO field name>_date
    sValue = <ADO field value>
    sType = AD_DB_DATE
  2. sName = <ADO field name>_time
    sValue = <ADO field value>
    sType = AD_DB_TIME
All others. | sType parameter set to corresponding ADO Field type property.

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

xmlGetXMLFromQuery (server-side)

xmlGetXMLFromRS (server-side)

xmlGetXMLFromRSEx (server-side)

Client-Side Routines


xmlGetXMLFromRS (server-side)

Use this routine to create an XML document element and populate it with record elements corresponding to all of the records in the specified ActiveX Data Object (ADO) Recordset object.

This conversion process results in an XML XMLDOMElement object containing the standard XML data record format.

Definition

function xmlGetXMLFromRS(rsQuery)

Parameters

rsQuery
An ADO Recordset object, from which the records to be converted are retrieved.

Return Value

An XML XMLDOMElement object containing record elements that mirror the data in the specified ADO Recordset object.

Remarks

The conversion results in all of the data in the specified ADO recordset being represented as an XML document element (an XMLDOMElement object) containing a number of record elements (more XMLDOMElement objects).

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

xmlGetXMLFromQuery (server-side)

xmlGetXMLFromQueryEx (server-side)

xmlGetXMLFromRSEx (server-side)

Client-Side Routines


xmlGetXMLFromRSEx (server-side)

Use this routine to create an XML document element and populate it with record elements corresponding to some or all of the records in the specified ActiveX Data Object (ADO) Recordset object.

This conversion process results in an XML XMLDOMElement object containing the standard XML data record format.

Definition

function xmlGetXMLFromRSEx(rsQuery,
                           nStartRecord,
                           nPageSize,
                           nExRecordCount,
                           dFormats)

Parameters

rsQuery
An ADO Recordset object, from which the records to be converted are retrieved.
nStartRecord
A number specifying the position in the recordset of the first record to be converted. Positions are counted from 0 (zero). A value of –1 causes this parameter to be ignored, which has the same effect as passing a value of 0 (zero).
nPageSize
A number specifying the number of consecutive records to convert. A value of –1 causes all records in the recordset to be converted.
nExRecordCount
A number specifying a record count to override the count from the recordset. A value of –1 causes this parameter to be ignored, resulting in the record count from the Recordset object being used. Pass a value of 'TOO_BIG_TOO_COUNT' when the number of records makes it unreasonable to count them all.
dFormats
A Dictionary object that contains information used for special date/time mapping between ADO date/time formats and Commerce Server Business Desk date/time formats.

Return Value

An XML XMLDOMElement object containing record elements that mirror all or part of the data in the specified ADO Recordset object.

Remarks

The conversion results in all or part of the data in the specified ADO recordset being represented as an XML document element (an XMLDOMElement object) containing a number of record elements (more XMLDOMElement objects).

The dFormats parameter specifies a Dictionary object that is used to do special date and time related format mapping. The keys in this Dictionary object are the names of fields, and the values are either ActiveX Data Object (ADO) data type values, or a special value corresponding to the constant COMMERCE_SPLIT_DATE. Field names are looked up in this Dictionary object to determine the proper value to pass as the sType parameter of the routine AddFormattedNode. The following table shows these mappings.

Dictionary Value for Field Name Key | sType Value and Processing
AD_DATE, AD_DB_DATE, AD_DB_TIMESTAMP, AD_DB_TIME | sType parameter set to corresponding Dictionary object value.
COMMERCE_SPLIT_DATE Two calls to the AddFormattedNode routine are made with the following parameters:
  1. sName = <ADO field name>_date
    sValue = <ADO field value>
    sType = AD_DB_DATE
  2. sName = <ADO field name>_time
    sValue = <ADO field value>
    sType = AD_DB_TIME
All others. | sType parameter set to corresponding ADO Field type property.

This routine is available in the include file DBUtil.asp.

See Also

Server-Side Routines

xmlGetXMLFromQuery (server-side)

xmlGetXMLFromQueryEx (server-side)

xmlGetXMLFromRS (server-side)

Client-Side Routines


xmlMergeGroups2 (server-side)

Use this routine to merge two sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. The other set of records, known as the detail set, contains more detailed information about the same set of entities. Both of these sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing two tiers. The first tier contains the higher-level information, and the second tier contains the detailed information.

Definition

function xmlMergeGroups2(xmlMaster,
                         xmlDetail,
                         sKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain more detailed information.
sKeyId
A string that corresponds to the name of a data element that exists in both of the XML documents passed as the other parameters. The values for this element are used to match up records from one XML document with the records in the other.

Return Value

An XML DOMDocument object that contains the merged, two-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a two-tiered XML data record structure for use by a two-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

sMergeGroups2 (server-side)

sMergeGroups3 (server-side)

xmlMergeGroups3 (server-side)

Client-Side Routines

xmlMergeGroups2 (client-side)


xmlMergeGroups3 (server-side)

Use this routine to merge three sets of XML records containing different information about the same entities, returning the result as an XML document.

One set of records, known as the master set, contains higher-level information about each entity represented in the set. A second set of records, known as the group set, contains more detailed information about the same set of entities. A third set of records, known as the detail set, contains the most detailed information about the same set of entities. All three sets of records are contained in XML documents.

The records from each set are matched up and merged into a resulting set of records containing three tiers. The first tier contains the higher-level information, the second tier contains the group level of detail, and the third tier contains the most detailed information.

Definition

function xmlMergeGroups3(xmlMaster,
                         xmlGroup,
                         xmlDetail,
                         sMasterKeyId,
                         sDetailKeyId)

Parameters

xmlMaster
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the first tier of the resulting standard XML data record format, and are considered to contain higher-level information.
xmlGroup
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the second tier of the resulting standard XML data record format, and are considered to contain information of a medium level of detail.
xmlDetail
An XML DOMDocument object containing a set of record elements and associated data elements in the standard XML data record format. These record elements contain the data that appears in the third tier of the resulting standard XML data record format, and are considered to contain the most detailed information.
sMasterKeyId
A string that corresponds to the name of a data element that exists in both the xmlMaster and xmlGroup XML documents. The values for this element are used to match up records in one XML document with records in the other.
sDetailKeyId
A string that corresponds to the name of a data element that exists in both the xmlGroup and xmlDetail XML documents. The values for this element are used to match up records in one XML document with records in the other.

Return Value

An XML DOMDocument object that contains the merged, three-tiered set of records, represented in the standard XML data record format.

Remarks

This routine is useful for preparing a three-tiered XML data record structure for use by a three-level ListSheet HTC. For more information about how the ListSheet HTC expects its data in one-, two-, and three-tiered data record structures, see ListSheet and HTML Component Data Representation.

For more information about how single-tiered XML data record structures are merged to created two- and three-tiered XML data record structures, see XML Data Merging.

This routine is available in the include file ASPUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file ActionPageUtil.asp.

See Also

Server-Side Routines

sMergeGroups2 (server-side)

sMergeGroups3 (server-side)

xmlMergeGroups2 (server-side)

Client-Side Routines

xmlMergeGroups3 (client-side)


xmlXMLFromDict (server-side)

Use this routine to convert a Dictionary object into an XML document.

Definition

function xmlXMLFromDict(byRef dDict)

Parameters

dDict
A Dictionary object to be converted to XML.

Return Value

An XML DOMDocument object containing an item element for each entry in the Dictionary object.

Remarks

Each item element is given two attributes, name and value, initialized to the name and value of each entry in the Dictionary object, as follows:

<item name="keyname" value="value"/>

This routine is available in the include file HTTPXMLUtil.asp.

There is a functionally equivalent version of this routine defined for client-side use in the file HTTPXMLUtil.htm.

See Also

Server-Side Routines

dDictFromXML (server-side)

Client-Side Routines

dDictFromXML (client-side)

xmlXMLFromDict (client-side)

xmlXMLFromForm (client-side)


Debugging Business Desk

The Business Desk Framework includes a number of debugging capabilities of which you should be aware. There are also some miscellaneous factors that you should keep in mind. These can be divided into the following categories:

  • XML Configuration File Changes
  • Debugging HTC Problems
  • XMLHTTP Debugging in Framework Routines
  • XMLHTTP Debugging in the ListSheet and TreeView HTCs
  • Global Flags for Debugging

XML Configuration File Changes

Remember that after making changes to XML configuration files in the Config folder, you must restart the Internet Information Services (IIS) application before the changes will be visible in the user interface.

The output generated by the SHOW_OBJECT_ERRORS and VERBOSE_OUTPUT flags will only display the first time Commerce Server Business Desk is run after the IIS application is restarted. See Global Flags for Debugging for more information.

Debugging HTC Problems

The m_bDebug variable in each HTC file, when set to True, will show developer errors in alerts. You should try this technique whenever an HTC fails to load on the page.

Whenever you change settings in the HTCs, you may want to verify that Internet Explorer is configured to load pages every time they are requested.

To verify that Internet Explorer is configured to load pages every time they are requested

  1. In Internet Explorer, on the Tools menu, click Internet Options.
  2. On the General tab, in the Temporary Internet Files section, click Settings.
  3. In the Settings dialog box, verify that the Every visit to the page option is selected.

XMLHTTP Debugging in Framework Routines

The bDebug variable in the routines xmlPostFormViaXML and xmlUpdateServerState in the file HTTPXMLUtil.htm, when set to True, displays the data being sent and received when using XMLHTTP to post to server. These debug messages are displayed using the dlg_debug.htm page.

XMLHTTP Debugging in the ListSheet and TreeView HTCs

The m_bDebugHTTPXML variable in the HTC files ListSheet.htc and TreeView.htc, when set to True, will display debug information from within the routine xmlPostToServer. It will display the data being sent and received when using XMLHTTP operations. It will display three alerts for each XMLHTTP fetch operation: one for the data that is sent, one for the returned text, and one for the returned XML.

Whenever you change settings in the HTCs, you may want to verify that Internet Explorer is configured to load pages every time they are requested.

To verify that Internet Explorer is configured to load pages every time they are requested

  1. In Internet Explorer, on the Tools menu, click Internet Options.
  2. On the General tab, in the Temporary Internet Files section, click Settings.
  3. In the Settings dialog box, verify that the Every visit to the page option is selected.

Global Flags for Debugging

The MSCSEnv variable in the Global.asa file for Business Desk, when changed from PRODUCTION to DEVELOPMENT, or vice versa, will modify many of the following debug flags at once:

VERBOSE_OUTPUT
When set to True, shows detailed output while loading the XML configuration upon application start, then shows tables representing Dictionary objects stored in the application. Select Refresh in the context menu or click F5 to load Business Desk when you are done looking at the output.
SHOW_OBJECT_ERRORS
When set to True, shows XML and other errors in a modeless dialog box upon loading the XML configuration.
AUTO_REDIRECT_ENABLED
When set to True, keeps users from loading a Business Desk page outside the normal Business Desk frame structure (which is enforced in the file BizDeskUtil.asp).
FORCE_HTA_ONLY
When set to True, disallows browsing Business Desk outside of the HTML Application (HTA) provided by the client installation. Setting this variable to False allows you to use the URL "//servername/bizdeskrootname/bizdesk.asp" to run Business Desk in a normal browser.
ALLOW_CONTEXT_MENUS
When set to True, allows right-click context menus so that you can use Refresh and View Source to investigate page failures.
SHOW_DEBUG_TEXT
When set to True, shows a variety of debug information in various ways, as follows:
1. Task button and module link targets on mouseover.
2. Disabled modules as ERROR (usually file not found) or FILTERED (by the security mechanism) rather than removing them altogether.
3. Contents of the Request, Session, and Application objects in legend area of status bar.
4. The state of the g_bDirty, g_bRequired, and g_bValid flags for the page in the title bar.


XML Reference

Extensible Markup Language (XML) is used extensively by Microsoft Commerce Server 2002. Different features use XML in different ways, resulting in a variety of defined XML structures. This section provides reference documentation for these various XML structures.

This section contains:

  • Catalog XML Structures. Describes the XML structure in which product catalogs must be represented in order to be imported into the Product Catalog System.
  • Business Desk XML Structures. Describes the various XML structures used by Commerce Server Business Desk, including those used to define category and module structure, those used by the various HTML Components (HTCs), and those used for security and international configuration.
  • Expression XML Structures. Describes the XML structure used by the expression architecture.
  • Profile XML Structures. Describes the XML schemas and data structures used by the Profile service.


Analysis/Reporting XML Structures

This section describes the minimal Extensible Markup Language (XML) structure needed for creating a dynamic report.

For online analytical processing (OLAP) reports, the cube name must be supplied. For SQL reports, a query must be provided.

After the report is displayed, the layout can be dynamically modified and the results saved from Commerce Server Business Desk.

The XML structure should not be directly edited after the report is initially created. Make any modifications to the report using the pivot control available through Business Desk.

XML Structure

<xml xmlns:x=''urn:schemas-microsoft-com:office:excel''>
<x:PivotTable>
   <x:OWCVersion>9.0.0.3821</x:OWCVersion>
   <x:DisplayFieldList/>
      <x:FieldListTop>300</x:FieldListTop>
      <x:FieldListLeft>800</x:FieldListLeft>
      <x:FieldListBottom>700</x:FieldListBottom>
      <x:FieldListRight>1000</x:FieldListRight>
   <x:CacheDetails/>
   <x:ConnectionString>ConnectionString</x:ConnectionString>
   [<x:CommandText>QueryString</x:CommandText>]
   [<x:DataMember>CubeName</x:DataMember>]
</x:PivotTable>
</xml>

The CommandText element is used only for SQL reports and contains the SQL query.

The DataMember element is used only for OLAP reports and contains the cube name.

The ConnectionString is one of the following types:

  • For SQL reports: "Provider=SQLOLEDB;Data Source=;Initial Catalog=;Integrated Security=SSPI"
  • For MDX reports: "Provider=MSOLAP;Data Source=;Initial Catalog=;Client Cache Size=25;Auto Synch Period=10000"

The values of the Data Source and Initial Catalog attributes are not specified in the connection string. These values are obtained from the Administration database at report run time.

See Also

Analysis/Reporting Schema

AsyncRpt2 Object

ReportRender2 Object

Running Reports


Catalog XML Structures

The Microsoft Commerce Server 2002 Catalog Extensible Markup Language (XML) format is designed to represent product catalogs in a format suitable for exchange between applications and for transport over the Internet.

The format itself is defined in an XML data schema, allowing it to be used with XML data-aware tools such, as BizTalk Server mapping tools.

The Commerce Server 2002 Catalog XML format is intended to represent a large variety of product catalogs, and for this reason uses the notion of a "meta-schema." That is, the way that a certain product may be represented in the format itself is defined in a schema definition section. This schema definition section defines the types of attributes that the catalog (or rather, catalog collection) stores to describe both products and categories, and defines the attributes recorded against different types of products and categories.

The Commerce Server Catalog XML format does not propose any fixed representation of particular types of products, but provides a means by which almost any product description can be recorded in a rich form.

The format also allows for multiple catalogs to be represented in one XML file.

This section contains:

  • XML Structure. Shows the XML structure.
  • XML Elements. Describes the XML elements and their relations.
  • Import Semantics. Describes the semantics that apply when importing a Commerce Server Catalog XML file.
  • XDR Schema. Shows the XML Data-Reduced (XDR) schema used to define the XML elements, attributes, and relations.


XML Structure

This section describes the Extensible Markup Language (XML) structure, elements, and attributes in a Microsoft Commerce Server catalog. In the following example, names that are not in italic refer to the elements of the XML structure. The first occurrence of each element is linked to documentation on that element. Names in italic are attributes associated with each element.

<MSCommerceCatalogCollection2 version>
   <CatalogSchema>
      <Definition name DefinitionType
                />
         <DefProperty />
         <DefVariantProperty />
      <Property AssignAll currency
                dataType DisplayInProductsList DisplayOnSite
                ExportToDW id IncludeInSpecSearch IsFreeTextSearchable
                IsRequired MinValue MaxValue Multilingual name />
            <DefaultValue language Value />
            <displayName language Value />
            <PropertyValue displayName language />
      </Property>
      <AttributeDefinition dataType                 MaxLength name AttributeType />
   </CatalogSchema>
   <Catalog name currency DateChanged DefaultLanguage
            endDate languages locale productUID
            ReportingLanguage startDate VariantUID weight_measuring_unit >
      <displayName language Value />
      <Category action DateChanged Definition                id isSearchable name PrimaryParentCategory
               listprice >
         <displayName value language />
         <ParentCategory />
         <Relationship name
                  relation targetCatalog targetCategory targetProduct />
            <RelationshipDescription
                     language Value />
      </Category>
      <Product action DateChanged Definition id listprice
               PrimaryParentCategory UseCategorypricing >
         <ParentCategory />
         <ProductVariant action DateChanged id listprice >
         </ProductVariant>
         <Relationship name relation targetCatalog
                  targetCategory targetProduct />
            <RelationshipDescription value language />
      </Product>
   </Catalog>
</MSCommerceCatalogCollection2>


XML Elements

The Microsoft Commerce Server Catalog Extensible Markup Language (XML) elements are divided into three groups:

  • MSCommerceCatalogCollection2. The root node for a Commerce Server Catalog XML file.
  • Catalog Schema Elements. These elements are used to extend the catalog: CatalogSchema, AttributeDefinition, Definition, Property, and PropertyValue.
  • Catalog Data Elements. These elements are used for the actual catalog and its members: Catalog, Category, Product, ProductVariant, and Relationship.

AttributeDefinition

Defines an attribute that can be used to describe an aspect of a property, such as its display name. This allows additional attributes to be defined on top of the built in ones.

Parent Elements: CatalogSchema

Child Elements: None

Attributes:

Name | Type | Description
dataType | enumeration | Valid types are: datetime money number string bignumber real float currency boolean text
MaxLength | number | The maximum length for string values of this attribute, not valid for other data types.
name | string | The name of the attribute definition.
AttributeType | enumeration | Valid types are: PropertyAttribute (default) CatalogAttribute

Catalog

Defines an individual catalog.

Parent Elements: MSCommerceCatalogCollection2

Child Elements: Category, Product, displayName

Attributes:

Name | Type | Description
name | string | The name of the catalog.
currency | string | The currency used in the catalog, expressed as a three letter ISO 4217 currency code. For example, USD, AUD, CDN, GBP, DEM, JPY.
DefaultLanguage | string | The culture code indicating the default language of the catalog.
endDate | string | The date the catalog validity expires. Used for documentation purposes only—Commerce Server does not apply any logic to this value.
languages | string | A comma-separated list of culture codes indicating the languages supported by the catalog.
locale | string | The locale of the catalog specified using a Windows Locale ID (LCID).
productUId | string | The name of the property that uniquely identifies products (or product families) in the catalog.
ReportingLanguage | string | Theculture code indicating the language to be used for catalog reporting.
startDate | string | The date the catalog is valid. Used for documentation purposes only—Commerce Server does not apply any logic to this value.
VariantUId | string | The name of the property that uniquely identifies product variants in the catalog. If the catalog does not contain products with variants, set this attribute to the same value as the value in the productIdentifier attribute.
Optional user defined attributes |  | Attributes created by the user with the CatalogManager AddCatalogAttribute method.

CatalogSchema

Contains the schema definition elements for the Catalog collection.

Parent Elements: MSCommerceCatalogCollection2

Child Elements: AttributeDefinition, Definition, Property

Attributes: None

Category

Defines an instance of a type of category.

Parent Elements: Catalog

Child Elements: Relationship, ParentCategory, displayName

Attributes:

Name | Type (default=string) | Description
action | string | A value of delete specifies that this element is to be deleted when the catalog is imported. If the value is unspecified then this element will be added or updated as appropriate.
DateChanged | datetime | The date and time this category was last changed.
Definition | string | The name of the category definition upon which the category is based.
id | string | The unique identifier of the category.
isSearchable | string | Indicates whether this category is to be used as a starting point for specification searches. True indicates this category will be included in the record set returned by calls to the ProductCatalog.GetSearchableCategories object. The values are 0 for False; 1 for True.
name | string | The name of the category. This name must be unique for all categories in the same catalog.
PrimaryParentCategory | string | The primary parent category of this category.
listprice | string | The price that should be applied to any products that reference this category as their pricing category. Units for this value are determined by the currency attribute of the containing catalog.
Optional user defined attributes |  | The properties that the user has added to the category definition for this category.

DefaultValue

Defines a language default value for an enumeration type property.

Parent Elements: Property

Child Elements: None

Attributes:

Attribute name | Type | Description
value | string | Text of the default value.
language | string | Theculture code indicating the language to which the default value applies.

Definition

Defines a type of product or category.

Parent Elements: CatalogSchema

Child Elements: DefProperty, DefVariantProperty

Attributes:

Name | Type | Description
DefinitionType | enumeration | The type of the definition — either product or category.
Name | string | The name of the property. This name must be unique within the XML document.

DefProperty

Contains the name of property that is part of a Definition.

Parent Elements: Definition

Child Elements: none

Attributes: none

DefVariantProperty

Contains the name of variant property that is part of a Definition.

Parent Elements: Definition

Child Elements: none

Attributes: none

displayName

Defines a language-specific display name for a property, category, or catalog.

Parent Elements: Property, Category, Catalog

Child Elements: None

Attributes:

Attribute name | Type (default=string) | Description
value | string | The display name text.
language | string | culture code indicating the language to which the display name applies.

MSCommerceCatalogCollection2

The root node for a Commerce Server Catalog XML file.

Parent Elements: None

Child Elements: CatalogSchema, Catalog

Attributes:

Attribute name | Type | Description
version | string | The version of the schema. "2.0" indicates the Commerce Server 2002 schema.

ParentCategory

Contains the name of a category that has a parent relationship to the containing product or category element.

Parent Elements: Category, Product

Child Elements: none

Product

Defines an instance of a type of product.

Parent Elements: Catalog

Child Elements: ParentCategory, ProductVariant, Relationship, <UserDefinedMultilingualProperty>

Attributes:

Name | Type | Description
action | string | A value of delete specifies that this element is to be deleted when the catalog is imported. If the value is unspecified then this element will be added or updated as appropriate.
DateChanged | datetime | The date and time that the product was last changed.
Definition | string | The name of the product definition upon which the product is based.
id | string | The XML ID for the product element.
listprice | string | The price for this product. Units for this value are determined by the currency attribute of the containing catalog. This attribute is required.
PrimaryParentCategory | string | The XML ID of the category to which the product belongs.
UseCategorypricing | boolean | Specifies whether the price of this product should be inherited from the PrimaryParentCategory of this product. A value of 1 (one) indicates to inherit the price from the PrimaryParentCategory.
Optional user defined attributes |  | The properties that the user has added to the product definition for this product.

ProductVariant

Defines an instance of a variant of a product.

Parent Elements: Product

Child Elements: <UserDefinedMultilingualProperty>

Attributes:

Name | Type | Description
action | string | A value of delete specifies that this element is to be deleted when the catalog is imported. If the value is unspecified then this element will be added or updated as appropriate.
DateChanged | datetime | The date and time that the product variant was last changed.
id | string | The XML ID for the variant element.
listprice | string | The price for this product variant. Units for this value are determined by the currency attribute of the containing catalog. This attribute is required.

Property

Defines a property that can be used to describe an aspect of a product or category.

Parent Elements: CatalogSchema

Child Elements: DefaultValue, displayName, PropertyValue.

Attributes:

Name | Type | Description
AssignAll | boolean | Indicates whether this property should automatically be assigned to product definitions as they are created through Commerce Server Business Desk. The values are: "1" (True) or "0" (False).
Currency | string | The currency used in the catalog, expressed as a three letter ISO 4217 currency code. For example, USD, AUD, CDN, GBP, DEM, JPY. This attribute is only valid when the DataType attribute is money.
DataType | string | Legal values are: datetime enumeration filename float money number string bignumber currency boolean real text
DisplayInProductsList | boolean | Indicates whether this property is to be displayed in summary lists of products in the Business Desk Catalog Editor, or in other areas where product lists are displayed. The values are: "1" (True) or "0" (False)
DisplayOnSite | boolean | Indicates whether this property should be shown to users visiting the Web site. The values are: "1" (True) or "0" (False).
ExportToDW | boolean | Indicates whether the Catalog DTS task should export this property into the Data Warehouse. Properties with this attribute set to True will be available for use in reports and data analysis. The values are: "1" (True) or "0" (False)
id | string | A unique ID for each node in the document. May not contain spaces (an XML requirement).
IncludeInSpecSearch | boolean | Indicates whether this property should be exposed to specification searches. The values are: "1" (True) or "0" (False)
IsFreeTextSearchable | boolean | Indicates whether this property should be included in the full-text index, and therefore, be free text searchable. The values are: "1" (True) or "0" (False)
IsRequired | boolean | Indicates whether a value is required for this property. This rule is enforced by Bizdesk and not by the catalog objects The values are: "1" (True) or "0" (False)
MaxValue | string | The maximum legal value for number data types, and the maximum length for string data types.
MinValue | string | The minimum legal value for number data types, and the minimum length for string data types.
Multilingual | string | Indicates whether this property is multilingual. This attribute is only valid when the DataType attribute is string, text, filename, or enumeration. The values are: "1" (True) or "0" (False)
name | string | The unique name of the property.

PropertyValue

Defines a legal value for a property.

Parent Elements: Property

Child Elements: None

Attributes:

Name | Type | Description
displayName | string | A legal value for the containing property.
Language | string | ISO 639+1 code indicating the language to which the property value applies.

Relationship

Defines a relationship between one product or category and another product or category.

Parent Elements: Category, Product

Child Elements: RelationshipDescription

Attributes:

Name | Type | Description
name | string | The name of the relationship.
targetCatalog | string | The name of the catalog containing the target of this relationship, if the relationship is to an item in a different catalog. Not used if the relationship attribute is used to define a relationship to an item in the same catalog.
targetCategory | string | The name of the category that is the target of this relationship. Not used if the relationship attribute is used to define a relationship to an item in the same catalog.
targetProduct | string | The ID of the product that is the target of this relationship. Not used if the relationship attribute is used to define a relationship to an item in the same catalog.

RelationshipDescription

Defines a language specific description for a relationship.

Parent Elements: Relationship

Child Elements: None

Attributes:

Attribute name | Type (default=string) | Description
value | string | The display name text.
language | string | ISO 639+1 code indicating the language to which the display name applies.

<UserDefinedMultilingualProperty>

Defines a name and value pair for a multilingual property.

Parent Elements: Category, Product, ProductVariant

Child Elements: None

Attributes:

Name | Type | Description
Value | string | The text value of the property.
language | string | ISO 639+1 code indicating the language to which the property applies.


Import Semantics

This section describes the semantics that apply when importing a Commerce Server Catalog XML file. Commerce Server can import XML files exported from previous versions of Commerce Server. The import method will automatically detect the schema version.

Catalog Schema Semantics

Catalog Data Semantics

Catalog Schema Semantics

Schema defined in the XML file must not conflict with any schema elements (product, category, and property definitions) that are already defined in the catalog database. If there is a conflict then a descriptive error will be written to the application event log and the import will fail. Schema conflicts can include:

  • Redefining a property to use a different data type than it is already defined as.
  • Redefining a property to use different minimum and maximum values.
  • Redefining a product or category definition to have a different set of member properties.
  • Redefining a language-neutral property as multilingual, or redefining a multilingual property as language neutral.
  • Importing a catalog in an update mode with different product and variant identifiers.

Schema elements are never deleted as a result of importing an XML-formatted catalog — only new schema is added.

The data types that are referenced in the Commerce Server Catalog XML format are mapped to SQL Server data types as follows:

Catalog XML data type | SQL data type
string | nvarchar
number | int
Bignumber | bigint
datetime | datetime
Currency | money
Money | money
boolean | bit
Enumeration | nvarchar(128)
Real | real
Float | decimal
Filename | nvarchar(256)
Text | ntext

Note

  • The bignumber, boolean, and real data types are not currently supported by Commerce Server Business Desk.

Catalog Data Semantics

An XML-formatted catalog file can define new catalogs or it can define updates to catalogs that already exist in the catalog database.

If a catalog that you want to import already exists in the catalog database, the existing catalog can be replaced by the imported catalog, or you can merge the two catalogs. Keep in mind the following if you decide to merge the catalogs:

  • Products can be modified or added.
  • Product variants can be modified or added.
  • Categories can be modified or added.
  • Products, product variants, and categories can only be deleted if the schema of the catalog XML file is version 1.5 or 2.0. The version 1.0 schema, the version used by Commerce Server 2002, does not support deletions.
  • Be aware that a product element that has the same identifying properties as a product that already exists will cause the existing product to be updated. This product element can specify only a subset of the properties that apply to that product in order to update certain properties (for example, to update only the description property or the price).
  • If a product that you want to import already exists in the catalog database (for example, it has the same identifier as an existing product), but is based on a different definition, then the existing product in the database will be deleted and replaced with the new product.
  • If a product being imported already exists in the catalog database you must specify all the parent categories and all the relationships each time the product is imported (or else those relationships will be deleted).


XDR Schema

The XML-Data Reduced (XDR) schema defines the individual elements, attributes, and relations used in the XML structure.

  <?xml version="1.0" ?>
- <Schema name="MSCommerceCatalogCollection2" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns="urn:schemas-microsoft-com:xml-data">
  <AttributeType name="name" dt:type="string" required="yes" />
  <AttributeType name="id" dt:type="string" required="no" />
  <AttributeType name="dataType" dt:type="enumeration" dt:values="string number bignumber datetime money real float currency boolean enumeration filename text" required="yes" />
  <AttributeType name="Value" dt:type="string" required="no" />
  <AttributeType name="language" dt:type="string" required="no" />
  <AttributeType name="Definition" dt:type="string" required="no" />
  <AttributeType name="DateChanged" dt:type="datetime" required="no" />
  <AttributeType name="action" dt:type="enumeration" dt:values="add delete" required="no" />
  <AttributeType name="pricingCategory" dt:type="string" required="no" />
  <AttributeType name="MaxLength" dt:type="number" required="no" />
  <AttributeType name="Artist" dt:type="string" required="no" />
  <AttributeType name="Author" dt:type="string" required="no" />
  <AttributeType name="Benefits" dt:type="string" required="no" />
  <AttributeType name="Binding" dt:type="string" required="no" />
  <AttributeType name="City" dt:type="string" required="no" />
  <AttributeType name="Classification" dt:type="number" required="no" />
  <AttributeType name="ClassificationDomain" dt:type="string" required="no" />
  <AttributeType name="Color" dt:type="string" required="no" />
  <AttributeType name="ColorPrinting" dt:type="string" required="no" />
  <AttributeType name="Cordless" dt:type="string" required="no" />
  <AttributeType name="Country_x0020_of_x0020_Origin" dt:type="string" required="no" />
  <AttributeType name="Description" dt:type="string" required="no" />
  <AttributeType name="DPI" dt:type="number" required="no" />
  <AttributeType name="EventDate" dt:type="datetime" required="no" />
  <AttributeType name="Features" dt:type="string" required="no" />
  <AttributeType name="Gender" dt:type="string" required="no" />
  <AttributeType name="Image_filename" dt:type="string" required="no" />
  <AttributeType name="Image_height" dt:type="number" required="no" />
  <AttributeType name="Image_width" dt:type="number" required="no" />
  <AttributeType name="ISBN" dt:type="string" required="no" />
  <AttributeType name="JeansColor" dt:type="string" required="no" />
  <AttributeType name="JeansSize" dt:type="string" required="no" />
  <AttributeType name="Label" dt:type="string" required="no" />
  <AttributeType name="Licencetype" dt:type="string" required="no" />
  <AttributeType name="Manufacturer" dt:type="string" required="no" />
  <AttributeType name="ManufacturerPartID" dt:type="string" required="no" />
  <AttributeType name="MinutesDuration" dt:type="number" required="no" />
  <AttributeType name="Name" dt:type="string" required="no" />
  <AttributeType name="Os" dt:type="string" required="no" />
  <AttributeType name="PPM" dt:type="number" required="no" />
  <AttributeType name="PrintingTechnology" dt:type="string" required="no" />
  <AttributeType name="prodid" dt:type="string" required="no" />
  <AttributeType name="product_name" dt:type="string" required="no" />
  <AttributeType name="producturl" dt:type="string" required="no" />
  <AttributeType name="Publication_x0020_Year" dt:type="number" required="no" />
  <AttributeType name="Publisher" dt:type="string" required="no" />
  <AttributeType name="RemotelyConfigurable" dt:type="string" required="no" />
  <AttributeType name="ScrollWheel" dt:type="string" required="no" />
  <AttributeType name="SKU" dt:type="string" required="no" />
  <AttributeType name="System_Requirements" dt:type="string" required="no" />
  <AttributeType name="Title" dt:type="string" required="no" />
  <AttributeType name="UN_x002f_SPSC" dt:type="string" required="no" />
  <AttributeType name="Unit_x0020_of_x0020_measure" dt:type="string" required="no" />
  <AttributeType name="Unit_of_measure" dt:type="string" required="no" />
  <AttributeType name="UNSPSC" dt:type="string" required="no" />
  <AttributeType name="Vendor_x0020_Code" dt:type="string" required="no" />
  <AttributeType name="Venue" dt:type="string" required="no" />
  <AttributeType name="Voltage" dt:type="number" required="no" />
  <AttributeType name="Watts" dt:type="number" required="no" />
  <AttributeType name="Weight" dt:type="float" required="no" />
- <ElementType name="MSCommerceCatalogCollection2">
  <AttributeType name="version" dt:type="string" required="yes" />
  <element type="CatalogSchema" minOccurs="1" maxOccurs="1" />
  <element type="Catalog" minOccurs="0" maxOccurs="*" />
  <attribute type="version" />
  </ElementType>
- <ElementType name="CatalogSchema">
  <element type="Property" minOccurs="0" maxOccurs="*" />
  <element type="Definition" minOccurs="0" maxOccurs="*" />
  <element type="AttributeDefinition" minOccurs="0" maxOccurs="*" />
  </ElementType>
- <ElementType name="Property" model="open">
  <AttributeType name="MinValue" dt:type="string" required="no" />
  <AttributeType name="MaxValue" dt:type="string" required="no" />
  <AttributeType name="IsFreeTextSearchable" dt:type="boolean" required="no" />
  <AttributeType name="IncludeInSpecSearch" dt:type="boolean" required="no" />
  <AttributeType name="DisplayOnSite" dt:type="boolean" required="no" />
  <AttributeType name="AssignAll" dt:type="boolean" required="no" />
  <AttributeType name="ExportToDW" dt:type="boolean" required="no" />
  <AttributeType name="DisplayInProductsList" dt:type="boolean" required="no" />
  <AttributeType name="currency" dt:type="string" required="no" />
  <AttributeType name="IsRequired" dt:type="boolean" required="no" />
  <AttributeType name="Multilingual" dt:type="string" required="no" />
  <attribute type="name" />
  <attribute type="id" />
  <attribute type="dataType" />
  <attribute type="DateChanged" />
  <attribute type="MinValue" />
  <attribute type="MaxValue" />
  <attribute type="IsFreeTextSearchable" />
  <attribute type="IncludeInSpecSearch" />
  <attribute type="DisplayOnSite" />
  <attribute type="AssignAll" />
  <attribute type="ExportToDW" />
  <attribute type="DisplayInProductsList" />
  <attribute type="currency" />
  <attribute type="IsRequired" />
  <attribute type="Multilingual" />
  <element type="DefaultValue" minOccurs="0" maxOccurs="*" />
  <element type="displayName" minOccurs="0" maxOccurs="*" />
  <element type="PropertyValue" minOccurs="0" maxOccurs="*" />
  </ElementType>
- <ElementType name="PropertyValue">
  <AttributeType name="displayName" dt:type="string" required="yes" />
  <attribute type="language" />
  <attribute type="displayName" />
  </ElementType>
- <ElementType name="AttributeDefinition">
  <attribute type="name" />
  <attribute type="dataType" />
  <attribute type="MaxLength" />
  </ElementType>
- <ElementType name="Definition">
  <AttributeType name="DefinitionType" required="yes" dt:type="enumeration" dt:values="product category" />
  <attribute type="name" />
  <attribute type="DefinitionType" />
  <attribute type="DateChanged" />
  <element type="DefProperty" />
  <element type="DefVariantProperty" />
  </ElementType>
  <ElementType name="DefProperty" />
  <ElementType name="DefVariantProperty" />
  <ElementType name="ParentCategory" />
- <ElementType name="Category">
  <AttributeType name="isSearchable" dt:type="boolean" required="no" />
  <AttributeType name="listprice" dt:type="string" required="no" />
  <AttributeType name="PrimaryParentCategory" dt:type="string" required="no" />
  <attribute type="Definition" />
  <attribute type="name" />
  <attribute type="id" />
  <attribute type="DateChanged" />
  <attribute type="action" />
  <attribute type="isSearchable" />
  <attribute type="listprice" />
  <attribute type="PrimaryParentCategory" />
  <attribute type="Description" />
  <attribute type="Image_filename" />
  <attribute type="Image_height" />
  <attribute type="Image_width" />
  <element type="ParentCategory" minOccurs="0" maxOccurs="*" />
  <element type="displayName" minOccurs="0" maxOccurs="*" />
  <element type="Relationship" minOccurs="0" maxOccurs="*" />
  </ElementType>
- <ElementType name="Product">
  <AttributeType name="PrimaryParentCategory" dt:type="string" required="no" />
  <AttributeType name="listprice" dt:type="string" required="yes" />
  <attribute type="Definition" />
  <attribute type="id" />
  <attribute type="PrimaryParentCategory" />
  <attribute type="pricingCategory" />
  <attribute type="DateChanged" />
  <attribute type="action" />
  <attribute type="listprice" />
  <attribute type="Artist" />
  <attribute type="Author" />
  <attribute type="Benefits" />
  <attribute type="City" />
  <attribute type="Classification" />
  <attribute type="ClassificationDomain" />
  <attribute type="ColorPrinting" />
  <attribute type="Cordless" />
  <attribute type="Country_x0020_of_x0020_Origin" />
  <attribute type="Description" />
  <attribute type="EventDate" />
  <attribute type="Features" />
  <attribute type="Image_filename" />
  <attribute type="Image_height" />
  <attribute type="Image_width" />
  <attribute type="Label" />
  <attribute type="Licencetype" />
  <attribute type="Manufacturer" />
  <attribute type="ManufacturerPartID" />
  <attribute type="MinutesDuration" />
  <attribute type="Name" />
  <attribute type="Os" />
  <attribute type="PPM" />
  <attribute type="PrintingTechnology" />
  <attribute type="prodid" />
  <attribute type="product_name" />
  <attribute type="producturl" />
  <attribute type="Publication_x0020_Year" />
  <attribute type="Publisher" />
  <attribute type="RemotelyConfigurable" />
  <attribute type="ScrollWheel" />
  <attribute type="SKU" />
  <attribute type="System_Requirements" />
  <attribute type="Title" />
  <attribute type="Unit_of_measure" />
  <attribute type="Venue" />
  <attribute type="Weight" />
  <element type="ParentCategory" minOccurs="0" maxOccurs="*" />
  <element type="Relationship" minOccurs="0" maxOccurs="*" />
  <element type="ProductVariant" minOccurs="0" maxOccurs="*" />
  </ElementType>
- <ElementType name="ProductVariant">
  <AttributeType name="listprice" dt:type="string" required="yes" />
  <attribute type="Binding" />
  <attribute type="Color" />
  <attribute type="ISBN" />
  <attribute type="JeansColor" />
  <attribute type="JeansSize" />
  <attribute type="SKU" />
  <attribute type="listprice" />
  <attribute type="id" />
  <attribute type="DateChanged" />
  <attribute type="action" />
  </ElementType>
- <ElementType name="Catalog">
  <AttributeType name="currency" dt:type="string" required="no" />
  <AttributeType name="DefaultLanguage" dt:type="string" required="no" />
  <AttributeType name="ReportingLanguage" dt:type="string" required="no" />
  <AttributeType name="languages" dt:type="string" required="no" />
  <AttributeType name="locale" dt:type="string" required="no" />
  <AttributeType name="startDate" dt:type="string" required="no" />
  <AttributeType name="endDate" dt:type="string" required="no" />
  <AttributeType name="productUID" dt:type="string" required="yes" />
  <AttributeType name="variantUID" dt:type="string" required="no" />
  <AttributeType name="weight_measuring_unit" dt:type="string" required="no" />
  <element type="Category" minOccurs="0" maxOccurs="*" />
  <element type="Product" minOccurs="0" maxOccurs="*" />
  <element type="displayName" minOccurs="0" maxOccurs="*" />
  <attribute type="name" />
  <attribute type="currency" />
  <attribute type="DefaultLanguage" />
  <attribute type="ReportingLanguage" />
  <attribute type="languages" />
  <attribute type="locale" />
  <attribute type="startDate" />
  <attribute type="endDate" />
  <attribute type="productUID" />
  <attribute type="variantUID" />
  <attribute type="weight_measuring_unit" />
  </ElementType>
- <ElementType name="Relationship">
  <AttributeType name="targetCatalog" required="no" dt:type="string" />
  <AttributeType name="targetCategory" required="no" dt:type="string" />
  <AttributeType name="targetProduct" required="no" dt:type="string" />
  <attribute type="name" />
  <attribute type="targetCatalog" />
  <attribute type="targetCategory" />
  <attribute type="targetProduct" />
  <element type="RelationshipDescription" minOccurs="0" maxOccurs="*" />
  </ElementType>
- <ElementType name="RelationshipDescription">
  <attribute type="language" />
  <attribute type="Value" />
  </ElementType>
- <ElementType name="displayName">
  <attribute type="language" />
  <attribute type="Value" />
  </ElementType>
- <ElementType name="DefaultValue">
  <attribute type="language" />
  <attribute type="Value" />
  </ElementType>
  </Schema>


Order XML Structures

The Microsoft Commerce Server 2002 Order Extensible Markup Language (XML) format is designed to represent an order in a format suitable for exchange between applications and for transport over the Internet.

The format itself is defined in an XML data schema, allowing it to be used with XML data-aware tools such, as BizTalk Server mapping tools.

This section contains:

  • XML Elements. Describes the XML elements and their relations.
  • XDR Schema. Shows the XML-Data Reduced (XDR) schema defines the individual elements, attributes, and relations.


XML Elements

The following table describes some of the elements used in the Commerce Server 2002 order form:

Name | Description
Payment Method | The supported payment method. For example, credit card or check.
Billing_Address_ID | The Address Dictionary key for the billing address. For information about Address Dictionary key see the Address element.
Order ID | The order reference ID of the sender.
Order Date | The order date of the sender or the buyer.
Billing_Currency | The billing currency code. For example, USD, YEN, or CSD.
From/Identity | The trading partner identification. For example, the trading partner number.
From/Organization Name | The trading partner organization name.
From/SharedSecret | The secret shared with the trading partner (second password).
To/Identity | The identification of the supplier.
To/SharedSecret | The secret shared with supplier (second password).
Sender/Identity | The identification of the buyer.
Sender/SharedSecret | The secret shared with the trading partner (second password).
Address | The Address element can be used for both Billing address and Shipping address. AddressDictKey is the unique id that identifies the different addresses.
Address/AddressDicKey | The unique Id that identifies the given address.
Items/quantity | The quantity of the product.
Items/Vendorid | The vendor Id (if it exists) of the product.
Items/ProductId | The product Id of the product. This should match with the product id in the product catalog.
Item/Product_variant_id | Variant Id of the particular product. Again should match with the catalog.
Item/Product_Name | The name of the product.
Items/Product_Catalog | The name of the catalog that contains the product.
Items/Product _category | The category of the product.
Items/Description | The description of the product .
Items/Shipping_address_id | The AddressDictKey for the shipping address.
Items/Shipping_method_id | The shipping method Id.
Items/Shipping_Method_Name | The name of the shipping method. For example, ground or next day air.
Items/d_DateCreated | The date the supplier order was created.
Items/cy_Lineitem_total | The line item total.
Items/RequestedDeliveryDate | The requested delivery date of the product by the buyer.
Items/UnitOfMeasure | The unit of measure for the product. For example, pounds or grams.


XDR Schema

The XML-Data Reduced (XDR) schema defines the individual elements, attributes, and relations used in the XML structure of the Commerce Server 2002 Order From.

<?xml version="1.0" ?>
- <Schema name="orderform" b:BizTalkServerEditorTool_Version="1.0" b:root_reference="orderform" b:version="1.5" b:standard="XML" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes" xmlns:b="urn:schemas-microsoft-com:BizTalkServer">
  <b:SelectionFields />
- <ElementType name="orderform" content="eltOnly" model="open">
  <b:RecordInfo />
- <AttributeType name="payment_method">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="billing_currency">
  <description>currency code</description>
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="billing_amount">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="billing_address_id">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="PayloadID">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="OrderID">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="OrderDate">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="payment_method" required="no" />
  <attribute type="billing_address_id" required="no" />
  <attribute type="PayloadID" required="no" />
  <attribute type="OrderID" required="no" />
  <attribute type="OrderDate" required="no" />
  <attribute type="billing_currency" required="no" />
  <attribute type="billing_amount" required="no" />
  <element type="From" maxOccurs="1" minOccurs="0" />
  <element type="To" maxOccurs="1" minOccurs="0" />
  <element type="Sender" maxOccurs="1" minOccurs="0" />
  <element type="Addresses" maxOccurs="*" minOccurs="0" />
  <element type="Items" maxOccurs="*" minOccurs="0" />
  </ElementType>
- <ElementType name="To" content="empty" model="closed">
  <b:RecordInfo />
- <AttributeType name="SharedSecret">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="Identity">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="Identity" required="no" />
  <attribute type="SharedSecret" required="no" />
  </ElementType>
- <ElementType name="Sender" content="empty" model="closed">
  <b:RecordInfo />
- <AttributeType name="SharedSecret">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="Identity">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="Identity" required="no" />
  <attribute type="SharedSecret" required="no" />
  </ElementType>
- <ElementType name="Items" content="empty" model="open">
  <b:RecordInfo />
- <AttributeType name="vendorid">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="shipping_method_name">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="shipping_method_id">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="shipping_address_id">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="quantity" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="product_variant_id">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="product_name" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="product_id">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="product_category">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="product_catalog">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="description">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="d_DateCreated">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="cy_lineitem_total" dt:type="float">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="UnitOfMeasure">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="RequestedDeliveryDate">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="quantity" required="no" />
  <attribute type="vendorid" required="no" />
  <attribute type="product_id" required="no" />
  <attribute type="product_variant_id" required="no" />
  <attribute type="product_name" required="no" />
  <attribute type="product_catalog" required="no" />
  <attribute type="product_category" required="no" />
  <attribute type="description" required="no" />
  <attribute type="shipping_address_id" required="no" />
  <attribute type="shipping_method_id" required="no" />
  <attribute type="shipping_method_name" required="no" />
  <attribute type="d_DateCreated" required="no" />
  <attribute type="cy_lineitem_total" required="no" />
  <attribute type="RequestedDeliveryDate" required="no" />
  <attribute type="UnitOfMeasure" required="no" />
  </ElementType>
- <ElementType name="From" content="empty" model="closed">
  <b:RecordInfo />
- <AttributeType name="SharedSecret">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="OrganizationName" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="Identity">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="Identity" required="no" />
  <attribute type="OrganizationName" required="no" />
  <attribute type="SharedSecret" required="no" />
  </ElementType>
- <ElementType name="Addresses" content="empty" model="open">
  <b:RecordInfo />
- <AttributeType name="region_code" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="postal_code" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="phone_ext" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="phone" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="last_name" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="first_name" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="country_name" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="country_code" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="city" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="address_name" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="address_line2" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="address_line1" dt:type="string">
  <b:FieldInfo />
  </AttributeType>
- <AttributeType name="AddressesDictKey">
  <b:FieldInfo />
  </AttributeType>
  <attribute type="first_name" required="no" />
  <attribute type="last_name" required="no" />
  <attribute type="address_name" required="no" />
  <attribute type="address_line1" required="no" />
  <attribute type="address_line2" required="no" />
  <attribute type="city" required="no" />
  <attribute type="region_code" required="no" />
  <attribute type="postal_code" required="no" />
  <attribute type="country_code" required="no" />
  <attribute type="country_name" required="no" />
  <attribute type="phone" required="no" />
  <attribute type="phone_ext" required="no" />
  <attribute type="AddressesDictKey" required="no" />
  </ElementType>
  </Schema>


Business Desk XML Structures

The Extensible Markup Language (XML) structures used by Commerce Server Business Desk can be divided into five categories:

  • Module Configuration. XML structures used for category and module configuration. These need to be modified only when a new module is added to Business Desk, or in the event that existing modules are rearranged or removed.
  • HTML Component Data Representation. XML structures used to represent the data that is displayed within the various HTML components (HTCs) that are provided as part of the Business Desk Framework. For the most part, a single standard format is used, although it can be nested more deeply for some controls than for others. In general, an XML data-island with this structure is one of two data-islands that must exist for a particular HTC to operate correctly.

    The other XML structure in this category is used to represent the nodes in the TreeView HTC. This structure is unique because the data and configuration information are embedded into the same XML structure.

  • HTML Component Configuration. XML structures used to provide metadata about the data being displayed. For example, if the data is displayed in columns, this structure specifies information about each of those columns, such as the column heading, how the data itself should be formatted, the column width, and whether the column can be sorted. In general, an XML data-island of this type is one of two data-islands that must exist for a particular HTC to operate correctly.
  • Security Configuration. XML structures used to provide security information for Business Desk.
  • International Configuration. XML structures used to provide internationalization information for Business Desk.


Module Configuration

Extensible Markup Language (XML) structures are used by Commerce Server Business Desk for category and module configuration. These XML structures need to be modified only when a new module is added to Business Desk, or in the event that existing modules are rearranged or removed.

A master configuration file is used to link multiple module configuration files together into an overall structure. This section defines the structures of the master configuration file and the module configuration files.

This section contains:

  • Master Configuration File. Describes the XML structure of the master configuration file that ties all other module configuration files together, including their organization into categories.
  • Module Configuration Files. Describes the XML structure of the module configuration files that specify the details of each individual module.


Master Configuration File

The master configuration file, which contains XML, is the focal point of category and module configuration for Commerce Server Business Desk. For the sake of modularity, the specific configuration of each module or set of modules is isolated in other XML configuration files, called module configuration files, each of which is referenced by a moduleconfig element within the master configuration file. The module configuration files can be thought of as include files for the master configuration file.

This topic explains the contents of the master configuration file. Specifically, it shows the XML structure. Each element name is a link to a description of the contents of that element; the attributes of each element are shown in italic, without the equal sign and value that normally accompanies them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

The XML schema for the master configuration file can be found in the file Bdconfig-schema.xml in the Business Desk Config folder.

Note

  • The XML elements and attributes in the master configuration file must be expressed in lowercase letters.

XML Structure

<?xml version = '1.0' encoding='windows-1252' ?>
<config>
  <categories>
    <category id>
      <name>name with underlined access key</name>
      <key>access key from above</key>
      <tooltip>category tooltip</tooltip>
    </category>
    ...
    <category id>
      <name>name with underlined access key</name>
      <key>access key from above</key>
      <tooltip>category tooltip</tooltip>
    </category>
  </categories>
  <moduleconfigs>
    <moduleconfig category id />
    ...
    <moduleconfig category id />
  </moduleconfigs>
</config>

config

This required element contains all configuration information in the master configuration file.

Parent Element
None (document root).
Required Child Elements
categories, moduleconfigs
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

categories

This required element contains one or more category elements.

Parent Element
config
Required Child Elements
category (at least one, but typically more)
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

category

This required element identifies and describes a Commerce Server Business Desk category.

Parent Element
categories
Required Child Elements
name, key, tooltip
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
id | Provides an identifier for the category. Required. Legal values: Generally one word, all lowercase, with no underscores or other special characters. Default value: None. This identifier is also used as the value of the category element of the moduleconfig element to associate a module configuration file with each defined category. The value of the id attribute for each category must be unique.

Return to XML Structure

name

This required element specifies the name of the category as the Commerce Server Business Desk user sees it.

Parent Element
category
Required Child Elements
None.
Optional Child Elements
None.
Data
The category name, as the Business Desk user sees it.
Attributes
None.

Remarks

The specified category name must identify the accessibility key by underlining one of the characters in the name. Properly escaped HTML must be used to implement the underlining: the appropriate character must be preceded by the string &lt;U&gt; and followed by the string &lt;/U&gt;.

For example, if the category name is Content and the accessibility key is "c", the name must be specified as &lt;U&gt;C&lt;/U&gt;ontent. This results in the HTML string <U>C</U>ontent, which appears in the browser as Content.

Return to XML Structure

key

This required element specifies a character that serves as the accessibility key associated with the category.

Parent Element
category
Required Child Elements
None.
Optional Child Elements
None.
Data
The accessibility key, which the Commerce Server Business Desk user sees as an underlined character in the category name.
Attributes
None.

Remarks

The accessibility key for the category should specify the same character identified with underlining in the category name. For example, if the category name is specified such that the user sees the string Content, the character "c" must appear between the <key> and </key> tags.

Return to XML Structure

tooltip

This required element provides a brief description of the purpose of the modules contained within the category, and should be more descriptive than the category name itself.

Parent Element
category
Required Child Elements
None.
Optional Child Elements
None.
Data
The category tooltip string, which the Commerce Server Business Desk user sees when the cursor is over the category name.
Attributes
None.

Return to XML Structure

moduleconfigs

This required element contains references to the various module configuration files specified for this instance of Commerce Server Business Desk.

Parent Element
config
Required Child Elements
moduleconfig (typically contains at least one for each category element defined within the categories element)
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

Multiple modules per category can be defined in two ways. First, multiple moduleconfig elements identifying the same category but different module configuration files can be defined. Modules are shown in the category in the same order that the moduleconfig elements appear.

Second, multiple modules can be defined in a single module configuration file, and linked to a category with a single moduleconfig element.

The two approaches can be combined.

Return to XML Structure

moduleconfig

This required element specifies a specific module configuration file for use in this instance of Commerce Server Business Desk.

Parent Element
moduleconfigs
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
category | Specifies the identifier of the category associated with the modules defined in the module configuration file specified by the id attribute. Required. Legal values: This identifier must match the value of the id attribute specified for one of the category elements. Default value: None.
id | Specifies the (pathless) name of the XML file containing the configuration information for the modules in the specified category. Required. Legal values: The name of an existing module configuration file. Default value: None.

Return to XML Structure


Module Configuration Files

The module configuration files, which contain XML, specify the configuration information at the module level for Commerce Server Business Desk. Each module configuration file is referenced by a moduleconfig element in the master configuration file, together making up the overall configuration of categories and modules for a particular instance of Business Desk. The module configuration files can be thought of as include files for the master configuration file.

This topic explains the contents of the module configuration files. Specifically, it shows the XML structure, where each element name is a link to a description of the contents of that element, and where the attributes of each element are shown in italic, without the equal sign and value that normally accompanies them. Required elements and attributes are shown in bold; optional elements and attributes are not bolded.

The XML schema for the master configuration file can be found in a file Bdmodule-schema.xml in the Business Desk Config folder.

Note

  • The XML elements and attributes in the module configuration files must be expressed in lowercase letters.

XML Structure

<?xml version = '1.0' encoding='windows-1252' ?>
<config>
  <actions>
    <action id helptopic>
      <name>action name</name>
      <tooltip>action tooltip</tooltip>
      <tasks>
        <task icon id type>
          <goto action>menu item name</goto>
          <postto action formname>menu item name</postto>
          <name>task name</name>
          <key>access key from above</key>
          <tooltip>task tooltip</tooltip>
        </task>
        ...
        <task icon id type>
          ...
        </task>
      </tasks>
    </action>
    ...
    <action id helptopic>
      ...
    </action>
  </actions>
  <modules>
    <module id>
      <name>module name</name>
      <tooltip>module tooltip</tooltip>
    </module>
    ...
    <module id>
      ...
    </module>
  </modules>
</config>

config

This required element contains all configuration information in the module configuration files.

Parent Element
None (document root).
Required Child Elements
actions, modules
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

actions

This required element contains one or more action elements specified for the modules defined in this module configuration file.

Parent Element
config
Required Child Elements
action (at least one)
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

action

This required element specifies a particular action available within the module. This includes the URL of the ASP page associated with the action, and identifies the appropriate Help topic and the tasks available within the action.

Parent Element
actions
Required Child Elements
name, tooltip, tasks
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
helptopic | Specifies the name of the Help file that corresponds to this action. Required. Legal values: The name of an existing HTML Help file, specified without a path or a file extension. Default value: None.
id | Specifies the URL of the entry point ASP page for this action. Required. Legal values: The URL of an existing entry point ASP page, specified relative to the Commerce Server Business Desk root. Default value: None.

Remarks

Every ASP page that is referenced as the target of a task or module must be identified with an action element. This is required for the Business Desk Framework to properly manage navigation between modules and between the action pages in a module.

Return to XML Structure

name

This required element provides a name for this action.

Parent Element
action
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the action.
Attributes
None.

Remarks

If the specific action name contains any HTML formatting directives, proper escaping must be used. For example, the string &lt; must be used for the "<" character, the string &gt; must be used for the ">" character, and the string &amp; must be used for the "&" character.

This element will be used to display in the task button details page in the security Permissions module.

Return to XML Structure

tooltip

This required element provides text that is used as the title attribute for the action.

Parent Element
action
Required Child Elements
None.
Optional Child Elements
None.
Data
The tooltip string associated with the action, which is displayed when the cursor is over the task button.
Attributes
None.

Return to XML Structure

tasks

This required element contains zero or more task elements defined for this action.

Parent Element
action
Required Child Elements
None.
Optional Child Elements
task
Data
None.
Attributes
None.

Remarks

A tasks element does not typically contain zero elements. This corresponds to an action page with no tasks.

There cannot be more than 22 task elements specified within any given tasks element.

Return to XML Structure

task

This required element specifies a particular task available from this action. This includes a specification of one or more ASP pages that serve as entry points to the task, and provides the task name and tooltip information.

Parent Element
tasks
Required Child Elements
name, key, tooltip, goto, postto

(goto and postto are mutually exclusive)

Optional Child Elements
task
Data
None.

Attributes

Attribute Description
icon Specifies the (pathless) name of an icon file to display in the corresponding task button.

Optional.

Legal values: The name of an existing icon file, specified without a path.

Default value: None.

If no icon file is supplied, the value of the name element contained in the task element is used as button text.
id Specifies an identifier for the task, which is typically set to the same value as the icon attribute, but without the "task" prefix.

Required.

Legal values: A unique string to distinguish the task from other tasks.

Default value: None.

The following id attribute values result in special framework behavior: "save", "saveback", "savenew", "back", and "find":

find: stays on the same page and toggles the display of the find pane on the page.

back: always re-enabled after a task is run.

save, saveback and savenew: enabled/disabled automatically by the framework if you have set the proper event handlers on the associated events in the master EditSheet HTC.
type Specifies either that a task menu should be used to distinguish between multiple sub-tasks, or that a non-menu task should be shown in the task context menu.

Optional.

Legal values: Either the string "menu" or the string "context".

Default value: None.

This attribute should be set to the value "menu" when multiple goto or postto elements are provided and a task menu is to be used to choose between the available sub-tasks. Otherwise, this attribute can be set to "context" when the task should also appear in the task context menu.

Remarks

Each task appears as a task button at the top of the page when the action page is displayed.

Return to XML Structure

goto

This element specifies one of possibly several ASP pages that serve as entry points to this task. Every task must contain at least one goto or postto element, and may contain more than one. However, goto and postto elements cannot both appear in the same task.

Parent Element
task
Required Child Elements
None.
Optional Child Elements
None.
Data
When a task menu is being used, the element data is used as the task menu item name corresponding to this choice.

Attributes

Attribute Description
action Specifies the URL of one of possibly several entry point ASP pages for this task.

Required.

Legal values: The URL of an existing entry point ASP page, specified relative to the Commerce Server Business Desk root.

Default value: None.

This value must correspond to the value of the id attribute for one of the action elements specified in this module configuration file.

Remarks

When multiple goto elements are specified, the preferred method for allowing the user to decide between them is to use a task menu. The type attribute of the task element should be set to the value "menu", and the multiple goto elements should each contain data to be used as the name of that choice in the drop-down task menu.

When task menus are used, the icon specified by the icon attribute should specify that the task is a task menu. For more information about task icons, and task menu icons in particular, see Icons.

When task menus are used, there cannot be more than 30 task menu items (goto elements) specified.

Another method lets users choose in a selection dialog box provided by the module. At times, however, the choice is determined by other factors, such as the type of item selected in a ListSheet HTC.

Return to XML Structure

postto

This element specifies one of possibly several ASP pages that serve as entry points to this task. Every task must contain at least one postto or goto element, and may contain more than one. However, both postto and goto elements must not appear in the same task.

Parent Element
task
Required Child Elements
None.
Optional Child Elements
None.
Data
When a task menu is being used, the element data is used as the task menu item name corresponding to this choice.

Attributes

Attribute Description
action Specifies the URL of one of possibly several entry point ASP pages for this task.

Required.

Legal values: The URL of an existing entry point ASP page, specified relative to the Commerce Server Business Desk root.

Default value: None.

This value must correspond to the value of the id attribute for one of the action elements specified in this module configuration file.
formname Specifies the name of the form that is posted to the URL specified by the action attribute.

Required.

Legal values: The name of an existing form element.

Default value: None.

Remarks

When multiple postto elements are specified, the preferred method for allowing the user to decide between them is to use a task menu. The type attribute of the task element should be set to the value "menu", and the multiple postto elements should each contain data to be used as the name of that choice in the drop-down task menu.

When task menus are used, the icon specified by the icon attribute should be of the correct type to specify that the task is a task menu. For more information about task icons, and task menu icons in particular, see Icons.

When task menus are used, there cannot be more than 30 task menu items (postto elements) specified.

At times, however, the choice is determined by other factors, such as the type of item selected in a ListSheet HTC. At times, however, the choice is determined by other factors, such as the type of item selected in a ListSheet HTC.

Return to XML Structure

name

This required element specifies the name of this task.

Parent Element
task
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the task.
Attributes
None.

Remarks

This name is used as the button text if no icon file is specified for this task. Otherwise the name is not used.

If the specific task name contains any HTML formatting directives, proper escaping must be used. For example, the string &lt; must be used for the "<" character, the string &gt; must be used for the ">" character, and the string &amp; must be used for the "&" character.

Return to XML Structure

key

This required element specifies a character that serves as the accessibility key associated with the task.

Parent Element
task
Required Child Elements
None.
Optional Child Elements
None.
Data
The single character that serves as the accessibility key for this task, which should correspond to an underlined character in the task name.
Attributes
None.

Remarks

The accessibility key for the task should specify the same character identified with underlining in the task name. For example, if the task name is specified such that the user sees the string Delete, the character "d" must appear between the <key> and </key> tags.

Return to XML Structure

tooltip

This optional element provides a very brief description of the purpose of this task, and should be more descriptive than the task name itself. The provided text is set as the title attribute for the task button, and is visible when the cursor is over the task.

Parent Element
task
Required Child Elements
None.
Optional Child Elements
None.
Data
The task tooltip, as shown when the cursor is over the task button.
Attributes
None.

Return to XML Structure

modules

This required element contains one or more module elements.

Parent Element
config
Required Child Elements
module
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

module

This required element provides information used in the display of a module entry below a category in the navigation pane. It also identifies a corresponding action. Together, this information defines the entry points into a module.

Parent Element
modules
Required Child Elements
name, tooltip
Optional Child Elements
None.
Data
None.

Attributes

Attribute Description
id Specifies the URL of the entry point ASP page for this module.

Required.

Legal values: The URL of an existing entry point ASP page, specified relative to the Commerce Server Business Desk root.

Default value: None.

This value must correspond to the value of the id attribute for one of the action elements specified in this module configuration file.

Remarks

A given (conceptual) module may have more than one entry point action associated with it.

Return to XML Structure

name

This required element specifies the name of the module as the Commerce Server Business Desk user sees it in the navigation pane.

Parent Element
module
Required Child Elements
None.
Optional Child Elements
None.
Data
The module name, as the user sees it.
Attributes
None.

Remarks

If the specific module name contains any HTML formatting directives, proper escaping must be used. For example, the string &lt; must be used for the "<" character, the string &gt; must be used for the ">" character, and the string &amp; must be used for the "&" character.

Return to XML Structure

tooltip

This optional element provides a very brief description of the purpose of this module, and should be more descriptive than the module name itself. The provided text is set as the title attribute for the module entry in the navigation pane.

Parent Element
module
Required Child Elements
None.
Optional Child Elements
None.
Data
The module tooltip, as shown when the cursor is over the module name.
Attributes
None.

Return to XML Structure


HTML Component Data Representation

Extensible Markup Language (XML) structures are used by Commerce Server Business Desk to represent the data that is displayed within the various HTML components (HTCs) that are provided as part of the Business Desk Framework. For the most part, a single standard format is used, though it can be nested more deeply for some controls than for others. In general, an XML data-island with this structure is one of two data-islands that must exist for a particular HTC to operate correctly.

Many of the HTML components (HTCs) in the Commerce Server Business Desk Framework expect the data they display to be provided in this standard XML data record format, available as an XML document on the page. These HTCs include DynamicTable, EditField, EditSheet, ListEditor, and ListSheet. In general, this XML structure contains a single tier of record elements, where each record element contains the same set of child elements. Child element names are arbitrary (shown as dataidN in the structures below), but they do need to correspond to the value of certain id attributes in the corresponding configuration information for the HTC in question.

Note

  • Certain types of ListSheet HTCs expect more than a single tier of record elements, as described below.

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The other XML structure in this category is used to represent the nodes in the TreeView HTC. This structure is unique because the data and configuration information are embedded into the same XML structure. For more information about the TreeView HTC combined data and configuration structure, see TreeView Configuration.

This section contains:

  • Mapping Data to Metadata. Describes how items of data from the DataXML data-island are mapped to the data descriptions provided in the MetaXML data-island.
  • Multi-Tiered Data Record Formats. Introduces two- and three-tiered data record formats, and describes which varieties of the ListSheet HTC expect which format.
  • Standard Data Record XML Structure. Provides detailed information about the elements and attributes of the standard data record format.
  • XMLList and XMLRecord Properties. Discusses two variations of the standard data record format that are used as event object properties and normal HTC properties by the DynamicTable, ListEditor, and ListSheet HTCs.


Mapping Data to Metadata

The following table shows how the names of the elements that are children of the record element correspond to attribute settings in the configuration information for various HTCs.

HTC Using One-Tier XML Data Data Mapping
DynamicTable

EditField

EditSheet

ListEditor

 The dataid element names contained in the record elements in the XML data should correspond to the value of the id attribute for the child elements of the fields element in the XML metadata.

The child elements of the fields element are the set: boolean, date, numeric, select, text, and time.
ListSheet

ListEditor

 The dataid element names contained in the record elements in the XML data should correspond to the value of the id attribute for the column elements in the XML meta data.

Note

  • In the ListSheet HTC, this is the column element that is a child of the columns element, not the column element that is a child of the subobject element.

ListSheet HTCs that use this form of data display flat lists. In this case the meta data subobject element should not be used.

Note

  • Since the ListEditor HTC embeds both a ListSheet HTC and an EditSheet HTC, and its metadata contains both field elements and column elements, the dataid element is interpreted both ways.


Multi-Tiered Data Record Formats

More complex forms of the ListSheet HTC make use of two- and three-tiered XML structures for their data. Essentially, these alternate structures allow nested record elements to two and three levels, respectively. Both of these alternate structures are shown below.

The following table shows how the ListSheet HTC makes use of the two- and three-tiered XML structures for the various types of ListSheet HTCs. Since there are two types of column elements in the metadata for the ListSheet HTC (child elements of the columns and subobject elements, respectively), the following table qualifies instances of the column element with the appropriate parent element in parentheses.

Types of ListSheet HTC | Data Mapping
Flat List | Uses the one-tiered XML structure for data, as described above.
Two-level Homogeneous Grouped List | The dataid element names contained in the second-level record elements in the XML data should correspond to the value of the id2 attribute for the column (columns) elements in the XML metadata. There should not be a third level in the data XML structure, and the id3 attribute of the metadata column (columns) element is not used. In this case the metadata subobject element should not be used.
Three-level Homogeneous Grouped List | The dataid element names contained in the second-level and third-level record elements in the XML data should correspond to the values of the id2 and id3 attributes for the column (columns) elements, respectively, in the XML metadata. In this case the metadata subobject element should not be used.
List-style Heterogeneous Grouped List and Properties-style Heterogeneous Grouped List | The dataid element names contained in the second-level record elements in the XML data should correspond to the value of the id attribute for the column (subobject) elements in the XML metadata. There should not be a third level in the data XML structure, and the id2 and id3 attribute of the column (columns) element is not used.


Standard Data Record XML Structure

The following XML structures show the one-, two-, and three-tiered versions of the data record format, where element names link to a description of the contents of that element, and where the attributes of each element are shown in italic, without the equal sign and value that normally accompanies them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the standard data record format must be expressed in lowercase letters.

XML Structure

One-Tier Format

<document recordcount>
    <record>
        <dataid1>Value</dataid1>
        <dataid2>Value</dataid2>
        <dataid3>Enumeration value</dataid3>
        <dataid3_displayname>Display name for value</dataid3_displayname>
        ...
        <dataidN>Value</dataidN>
    </record>
    ...
    <record>
        <dataid1>Value</dataid1>
        <dataid2>Value</dataid2>
        <dataid3>Enumeration value</dataid3>
        <dataid3_displayname>Display name for value</dataid3_displayname>
        ...
        <dataidN>Value</dataidN>
    </record>
    <error id source>Detailed error message</error>
    <warning>Warning message</warning>
</document>

Two-Tier Format

<document recordcount>
    <record>
        <dataid1>Value</dataid1>
        <dataid2>Value</dataid2>
        <record>
            <dataid21>Value</dataid21>
            <dataid22>Value</dataid22>
        </record>
    </record>
    <error id source>Detailed error message</error>
    <warning>Warning message</warning>
</document>

Three-Tier Format

<document recordcount>
    <record>
        <dataid1>Value</dataid1>
        <dataid2>Value</dataid2>
        <record>
            <dataid21>Value</dataid21>
            <dataid22>Value</dataid22>
            <record>
                <dataid31>Value</dataid31>
                <dataid32>Value</dataid32>
            </record>
        </record>
    </record>
    <error id source>Detailed error message</error>
    <warning>Warning message</warning>
</document>

document

This required element is the XML root element within the XML data-island and contains the record elements, potentially nested to three levels in depth.

Parent Element
None (document root).
Required Child Elements
record (one or more)
Optional Child Elements
None.
Data
None.

Attributes

Attribute Description
recordcount Specifies the number of (top level) record elements contained by this element.

Required only by the ListSheet HTC so that it can properly update the page controls when using HTTP fetch operations. It is not used by any other HTCs and is ignored if present.

Legal values: positive integers, 0, and -1.

A value of 0 indicates an empty list. Such a list must contain a single record element containing empty sub-elements.

A value of –1 indicates a list of unknown size. The ListSheet HTC displays such lists as a multi-page list with an unknown number of pages.

Default value: None.

Return to XML Structure

record

This required element contains all the data for a particular record. This data is represented as a series of contained elements, one for each field in the record.

Parent Element
document
Required Child Elements
None.
Optional Child Elements
dataid, record
Data
None.
Attributes
None.

Remarks

There can be one or more record elements. The record element contains dataid elements, and for two- and three-tiered XML structures, other record elements.

Return to XML Structure

dataid

These elements contain the data to be displayed in a particular field in the associated HTC. No element with a particular name is required, though a record element without any contained dataid elements would not be a very interesting record.

Parent Element
record
Required Child Elements
None.
Optional Child Elements
None.
Data
The actual data value.
Attributes
None.

Remarks

The names of these elements typically originate as field names in the ADO Recordset object from which this XML structure is derived. The standard set of functions used to convert ADO Recordset objects to XML use the Recordset field name as the corresponding element name in the produced XML.

These names are also used to associate each data value with a particular column being displayed in a particular HTC. All HTCs that are passed a data-island in this format are also passed a corresponding data-island identified by the MetaXML container attribute. Data-islands of this latter type have elements that correspond to the data to be displayed. These elements describe the data, including such information as their data types. They also include an id attribute. The value of the id attribute should be the same as the name of the dataid element in the data-island associated with the DataXML container attribute.

The following table shows, for each HTC using a DataXML data-island of this format, the MetaXML element whose id attribute corresponds to the name of a dataid element in that data-island.

HTCs | MetaXML Elements | Notes
DynamicTable | id attribute of boolean, date, numeric, select, text, and time elements. | The value of the id attribute of one of the child elements of the fields element corresponds to a dataid element in the DataXML data-island.
EditField | id attribute of boolean, date, numeric, select, text, and time elements. | The value of the id attribute of one of the child elements of the fields element corresponds to a dataid element in the DataXML data-island. It also corresponds to the value of the DataID container attribute.
EditSheet | id attribute of boolean, date, numeric, select, text, and time elements. | The value of the id attribute of one of the child elements of the fields element corresponds to a dataid element in the DataXML data-island.
ListEditor | id attribute of boolean, date, numeric, select, text, and time elements. | The value of the id attribute of one of the child elements of the fields element corresponds to a dataid element in the DataXML data-island.
ListSheet | id attribute of column (columns) element. id2 attribute of column (columns) element. id3 attribute of column (columns) element. id attribute of column (subobject) element. | The value of the dataid element can occur in these four distinct places in the corresponding MetaXML data-island, depending on the type of ListSheet HTC being employed. For more information, see the detailed explanation at the beginning of this topic.

Return to XML Structure

dataid_displayname

These elements contain enumerated data to be displayed in a particular field in the associated HTC. No such element pairs sharing a particular name root (dataid) are required.

Parent Element
record
Required Child Elements
None.
Optional Child Elements
None.
Data
dataid: The actual data value.

dataid_displayname: The display name associated with the dataid element.

Attributes
None.

Remarks

Data for enumerated types is handled somewhat differently than other data types within the data-islands corresponding to the DataXML container attribute. The data value itself is formatted the same as the other types — as data contained within an element whose name serves to identify that data.

A display name associated with the enumerated type may be supplied in the data-island as data for another, sibling XML element. The name of the sibling element is the same as for the corresponding value, with the string "_displayname" appended to it.

For example, suppose that for a select element within the MetaXML data-island associated with an EditSheet HTC (or a column element with its format attribute set to "select" within the MetaXML data-island associated with a ListSheet HTC), the id attribute is set to "eyecolor". In the corresponding DataXML data-island, there should be elements that look like the first line in the following example, and there can optionally be lines like the second line in the following example:

    <eyecolor>3</eyecolor>
    <eyecolor_displayname>Blue</eyecolor_displayname>

In this example, the value "3" corresponds to blue eyes, and the string "Blue" is displayed to the user.

If the DataXML data-island does not contain the _displayname variety of elements, the HTC inserts such elements into the DataXML data-island. This is accomplished through the following series of steps:

  1. Search the MetaXML data-island for a select element with an id attribute that matches the data element name from the DataXML data-island.
  2. If such a select element is found, search its option elements for one that has a value attribute with a value equal to the actual data in the DataXML data-island.
  3. If such an option element is found, use its data value as the data contained in the newly inserted data_element_name_displayname element.

In some situations the page itself will have to set the proper _displayname elements because there are more than one possible select elements within the MetaXML data-island that might need to be searched. Which one should be used probably depends on some other setting on the page, which only that page is in a position to know. For an example of this behavior, see the page Regionaltax.asp in the Tax module. This page contains a DynamicTable HTC with two select fields that must be kept synchronized.

Return to XML Structure

error

This optional element contains information used to format a client error dialog using the utility routine ShowXMLNodeErrors. For more information about this routine, see ShowXMLNodeErrors (client-side).

Parent Element
document
Required Child Elements
None.
Optional Child Elements
None.
Data
A detailed error message to be displayed. This is usually constructed using one of the following routines: sGetScriptError, sGetADOError, sGetASPError, or sGetXMLError. For more information about these routines, see sGetScriptError (server-side), sGetADOError (server-side), sGetASPError (server-side), and sGetXMLError (server-side), respectively.

Attributes

Attribute | Description
id | Reserved for future use. Optional (for now). Legal values: An integer value. Default value: None.
source | Specifies a friendly error message to show to the user. Required. Legal values: Valid strings. Default value: None.

Remarks

There can be zero or more error elements.

The ListSheet and TreeView HTCs will automatically display any error nodes in data returned from a fetch operation.

Error nodes can be easily added to your XML document using the utility routine AddErrorNode. For more information about this routine, see AddErrorNode (server-side).

Return to XML Structure

warning

This optional element contains information that can be used to format a client warning (non-fatal) dialog.

Parent Element
document
Required Child Elements
None.
Optional Child Elements
None.
Data
A warning message to be display.
Attributes
None.

Remarks

There can be zero or more warning elements.

The ListSheet and TreeView HTCs will automatically display any warning nodes in data returned from a fetch operation.

Error nodes can be easily added to your XML document using the utility routine AddWarningNode. For more information about this routine, see AddWarningNode (server-side).

Return to XML Structure


XMLList and XMLRecord Properties

Certain properties associated with HTML Component (HTC) events, and certain properties of the HTCs themselves, return two different variations of the standard data record format, as nested XML DOM objects starting with an XMLDOMElement object. The two variations are an XMLList, which contains multiple records, and an XMLRecord, which contains a single record.

The following table shows the circumstances under which the relevant HTCs make use of properties of these forms.

HTC XMLList and XMLRecord Usage
DynamicTable HTC XMLList:
  • XMLList property of the window.event object in the OnChange event.
  • XMLList HTC property.

XMLRecord:

  • XMLRecord property of the window.event object in the OnChange event.
ListEditor HTC XMLList:
  • XMLList property of the window.event object in the OnChange event.
  • XMLList HTC property.

XMLRecord:

  • XMLRecord property of the window.event object in the OnEdit event.
  • XMLRecord property of the window.event object in the OnNew event.
ListSheet HTC XMLList:
  • XMLList HTC property.

XMLRecord:

  • XMLRecord property of the window.event object in the OnRowSelect event.
  • XMLRecord property of the window.event object in the OnRowUnselect event.

This section contains:

  • XMLList Property Structure. Describes the XML structure of the XMLList property.
  • XMLRecord Property Structure. Describes the XML structure of the XMLRecord property.


XMLList Property Structure

The structure of the XMLList property is as follows. The top level node is an XMLDOMELement object with its tagName property set to "document".

<document>
    <record state>
        <dataid1>data</dataid1>
        <dataid2>data</dataid2>
        . . .
    </record>
    <record state>
        <dataid1>data</dataid1>
        <dataid2>data</dataid2>
        . . .
    </record>
    . . .
</document>

When used as a property in the DynamicTable and ListEditor HTCs, both of which allow changes to the data, an additional attribute, named state, is associated with each record element. The state attribute can have one of the following four possible values:

  • An empty string indicating that the record is unchanged
  • The value "added", indicating that the record is new
  • The value "changed", indicating that the record has been changed
  • The value "deleted", indicating that the record has been deleted. Records marked as deleted are no longer shown in the list.


XMLRecord Property Structure

The structure of the XMLRecord property is as follows. The top level node is an XMLDOMELement object with its tagName property set to "record".

<record state>
    <dataid1>data</dataid1>
    <dataid2>data</dataid2>
    . . .
</record>

When used as a property in the DynamicTable and ListEditor HTCs, both of which allow changes to the data, an additional attribute, named state, is associated with each record element. The state attribute can have one of the following four possible values:

  • An empty string indicating that the record is unchanged
  • The value "added", indicating that the record is new
  • The value "changed", indicating that the record has been changed
  • The value "deleted", indicating that the record has been deleted. Records marked as deleted are no longer shown in the list.


HTML Component Configuration

Extensible Markup Language (XML) structures are used by Commerce Server Business Desk to provide metadata about the data being displayed. For example, if the data is displayed in columns, this structure specifies information about each of those columns, such as the column heading, how the data itself should be formatted, the column width, and whether the column can be sorted. In general, an XML data-island of this type is one of two data-islands that must exist for a particular HTML component (HTC) to operate correctly.

This section contains:

  • DynamicTable Configuration. Describes the XML structure of the configuration information for the DynamicTable HTC. Since the DynamicTable HTC makes use of embedded EditField HTCs, much of the configuration information is shared between the two. For more details, see EditField Configuration.
  • EditField Configuration. Describes the XML structure of the configuration information for one or more EditField HTCs.
  • EditSheet Configuration. Describes the XML structure of the configuration information for the EditSheet HTC. Because the EditSheet HTC makes use of embedded EditField HTCs, much of the configuration information is shared between the two. For more details, see EditField Configuration.
  • ExpressionBuilder Configuration. Describes the XML structure of the configuration information for the ExpressionBuilder HTC.
  • ListEditor Configuration. Describes the XML structure of the configuration information for the ListEditor HTC. Because the ListEditor HTC makes use of embedded EditField HTCs, much of the configuration information is shared between the two. For more details, see EditField Configuration.
  • ListSheet Configuration. Describes the XML structure of the configuration information for the ListSheet HTC.
  • QueryBuilder Configuration. Describes the XML structure of the configuration information for the QueryBuilder HTC.
  • TreeView Configuration. Describes the XML structure of the combined data and configuration information used by the TreeView HTC.


DynamicTable Configuration

The XML data-island identified by the MetaXML container attribute contains the configuration information used by the DynamicTable HTML component (HTC).

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the MetaXML data-island for the DynamicTable HTC must be expressed in lowercase letters.

XML Structure

<dynamictable>
  <global removebutton keycol newbutton overx
          required sortbykey uniquekey />
  <fields>
    <boolean browse browsereadonly default disabled hide
             id onbrowse onchange onerror readonly width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <name>Column heading name</name>
      <label>Checkbox label</label>
    </boolean>
    <date browse browsereadonly default disabled firstday
          hide id max min onbrowse onchange onerror
          onrequire onvalid readonly required width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <format>Date format to use</format>
      <error>Validation error message</error>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
    </date>
    <numeric browse browsereadonly default disabled hide id
             max min onbrowse onchange onerror onrequire
             onvalid readonly required subtype width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <format>Number format to use</format>
      <error>Validation error message</error>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
    </numeric>
    <select browse browsereadonly default disabled
            hide htmloptions id multilingual onbrowse
            onchange onerror onvalid readonly width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
      <select id>
        <option value>Item display name</option>
      </select>
      ...
      <select id>
        <option value>Item display name</option>
      </select>
    </select>
    <text browse browsereadonly default disabled hide id
          maxlen minlen multilingual onbrowse onchange onerror
          onrequire onvalid readonly required subtype width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <charmask>Validation character mask</charmask>
      <error>Validation error message</error>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
    </text>
    <time browse browsereadonly default disabled hide
          id max min onbrowse onchange onerror
          onrequire onvalid readonly required width
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <error>Validation error message</error>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
    </time>
  </fields>
</dynamictable>

dynamictable

This required element serves as the container for the DynamicTable configuration data that identifies it as intended for use with a DynamicTable HTC.

Parent Element
None (document root).
Required Child Elements
global, fields
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

global

This required element provides configuration information that affects the general behavior of the DynamicTable HTC.

Parent Element
dynamictable
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
removebutton | Specifies whether the Remove button will be displayed. Optional. Legal values: "yes" and "no". Default value: "yes". If the value is "no", the Remove button will not be displayed.
keycol | Specifies the ID of the field that will be used as the record key for sorting, unique key checks, and so forth. Required. Each field type for which sorting is allowed (numeric and text types only) has the required attribute id; this attribute must be set to one of those id values.
newbutton | Specifies whether the New button will be displayed. Optional. Legal values: "yes" and "no". Default value: "yes". If the value is "no", the New button will not be displayed.
overx | Controls the display of the last row in the table. Optional. Legal values: "yes" and "no". Default value: "no". If the value is "yes", the last row in the table is manipulated after each sort operation based on the value in the field specified by the keycol attribute. If the value of this field in the last row is "–1", the field is displayed as "Over X", where "X" is the value in the same field, one row above. If the value of this field in the last row is not "-1", a new row is inserted with "Over X" text in that field and all other fields being empty. In the case where there are no rows, a row is inserted with "Over 0" displayed in the key column. For more information about the OverX feature of the DynamicTable HTC, see OverX Feature.
required | Specifies whether the table can be empty, and controls the display of the "required" icon. Optional. Legal values: "yes" and "no". Default value: "no". If the value is "yes", the table cannot be empty.
sortbykey | Specifies whether the table is re-sorted according to the values in the field specified by the keycol attribute when the Done button is pressed. Optional. Legal values: "yes" and "no". Default value: "no". If the value is "yes", the re-sorting is performed.
uniquekey | Specifies whether the uniqueness of values in the key column should be enforced. Optional. Legal values: "yes" and "no". Default value: "no". If the value is "yes", uniqueness validation is performed.

Return to XML Structure

fields

This required element contains the elements that specify the fields to be displayed in the DynamicTable HTC.

Parent Element
dynamictable
Required Child Elements
None.
Optional Child Elements
boolean, date, numeric, select, text, time
Data
None.
Attributes
None.

Remarks

The fields element must contain at least one child element, though in general it will contain several such elements, corresponding to a DynamicTable HTC with several columns.

Child elements within the fields element are displayed as columns in the DynamicTable HTC. The field specified as the key is always displayed as the first column; all other fields are displayed in the order in which they appear within the fields element.

The child elements of the fields element are essentially the same as the elements that can be defined as child elements of the editfield element in the configuration data for the EditField HTC. The primary difference is that sometimes there are some additional attributes that can be defined for the child elements when they occur within the context of the DynamicTable HTC. For information about shared attributes, see Shared EditField Attributes.

Return to XML Structure

boolean

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing Boolean values.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, label
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, onbrowse, onchange, onerror, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Return to XML Structure

date

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing date values.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, error, format, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
firstday | Specifies the day of the week that is considered to be the first day of the week. Optional. Legal values: Integers between 0 (Sunday) and 6 (Saturday), inclusive. Default value: 0 (Sunday)
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Return to XML Structure

numeric

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing numeric values.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, error, format, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Return to XML Structure

select

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing a fixed set of choices.

Parent Element
fields
Required Child Elements
name, select
Optional Child Elements
browsetooltip, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, htmloptions, multilingual, onbrowse, onchange, onerror, onvalid, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Return to XML Structure

text

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing text values.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, charmask, error, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, maxlen, minlen, multilingual, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Return to XML Structure

time

This optional element provides configuration and validation information about a particular column in a DynamicTable HTC containing time values.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, error, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
width | Specifies an initial width for the column corresponding to this element, expressed as a percentage of the total width. Optional. Legal values: Integers between 0 and 100. Default value: Total width divided by the number of displayed columns.

Remarks

The format of fields associated with the time element is fixed. Hours and minutes are displayed in 24-hour format, separated by the colon character (":"). Seconds are not supported.

Return to XML Structure

browsetooltip, charmask, error, format, label, name, prompt, select, option

These nine elements are used to qualify or extend the behavior of one or more of the EditField elements of various data types, embedded within the DynamicTable HTC. For more information, see Shared EditField Child Elements.

Return to XML Structure


EditField Configuration

The XML data-island identified by the MetaXML container attribute contains the configuration information used by one or more EditField HTML components (HTCs).

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the MetaXML data-island for the EditField HTC must be expressed in lowercase letters.

XML Structure

<editfield>
  <boolean browse browsereadonly default disabled hide
           id onbrowse onchange onerror readonly
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <label>Checkbox label</label>
  </boolean>
  <date browse browsereadonly default disabled firstday
        hide id max min onbrowse onchange onerror
        onrequire onvalid readonly required
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <error>Validation error message</error>
    <format>Date format to use</format>
    <prompt>Empty control prompt</prompt>
  </date>
  <numeric browse browsereadonly default disabled hide id
           max min onbrowse onchange onerror onrequire
           onvalid readonly required subtype
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <error>Validation error message</error>
    <format>Number format to use</format>
    <prompt>Empty control prompt</prompt>
  </numeric>
  <select browse browsereadonly default disabled hide
          htmloptions id multilingual onbrowse
          onchange onerror onvalid readonly
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <prompt>Empty control prompt</prompt>
    <select id>
      <option value>Item display name</option>
    </select>
    ...
    <select id>
      <option value>Item display name</option>
    </select>
  </select>
  <text browse browsereadonly default disabled hide id
        maxlen minlen multilingual onbrowse onchange onerror
        onrequire onvalid readonly required subtype
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <charmask>Validation character mask</charmask>
    <error>Validation error message</error>
    <prompt>Empty control prompt</name>
  </text>
  <time browse browsereadonly default disabled hide
        id max min onbrowse onchange onerror
        onrequire onvalid readonly required
    <browsetooltip>Tooltip for browse button</browsetooltip>
    <error>Validation error message</error>
    <prompt>Empty control prompt</prompt>
  </time>
</editfield>

editfield

This required element provides a container for the configuration data associated with one or more EditField HTCs. This allows multiple EditField HTCs to share a single XML editfield data-island, accessing different configuration information using distinct id attribute values.

Parent Element
None (document root).
Required Child Elements
None.
Optional Child Elements
boolean, date, numeric, select, text, time

(at least one is required; order not important)

Data
None.

Attributes

None.

Return to XML Structure

boolean

This optional element provides configuration and validation information about an EditField HTC of the Boolean type.

Parent Element
editfield
Required Child Elements
None.
Optional Child Elements
browsetooltip, label
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, onbrowse, onchange, onerror, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

date

This optional element provides configuration and validation information about an EditField HTC of the Date type.

Parent Element
editfield
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
firstday | Specifies the day of the week that is considered to be the first day of the week. Optional. Legal values: Integers between 0 (Sunday) and 6 (Saturday), inclusive. Default value: 0 (Sunday)

Return to XML Structure

numeric

This optional element provides configuration and validation information about an EditField HTC of the Numeric type.

Parent Element
editfield
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

select

This optional element provides configuration and validation information about an EditField HTC of the Select type.

Parent Element
editfield
Required Child Elements
select
Optional Child Elements
browsetooltip, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, htmloptions, multilingual, onbrowse, onchange, onerror, onvalid, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

text

This optional element provides configuration and validation information about an EditField HTC of the Text type.

Parent Element
editfield
Required Child Elements
None.
Optional Child Elements
browsetooltip, charmask, error, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, maxlen, minlen, multilingual, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

time

This optional element provides configuration and validation information about an EditField HTC of the Time type.

Parent Element
editfield
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, prompt
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Remarks

The format of fields associated with the time element is fixed. Hours and minutes are displayed in a 24-hour format, separated by the colon character (":"). Seconds are not supported.

Return to XML Structure

browsetooltip, charmask, error, format, label, prompt, select, option

These eight elements are used to qualify or extend the behavior of one or more of the EditField elements of various data types. For more information, see Shared EditField Child Elements.

Return to XML Structure


Shared EditField Child Elements

A number of elements specify EditField HTCs of different data types: boolean, date, numeric, select, text, and type. These elements may be present in the configuration information for EditField HTCs themselves. They may also be present in EditField HTCs embedded within the DynamicTable, EditSheet, and ListEditor HTCs. These shared elements include a number of child elements that alter or extend their behavior. The following table lists these child elements, and lists the EditField data types to which they apply.

EditField Child Elements | Relevant EditField Types
browsetooltip | boolean, date, numeric, select, text
charmask | text
error | date, numeric, text
format | date, numeric
label | boolean
name | boolean, date, numeric, select, text Required in the DynamicTable HTC; optional in the EditSheet and ListEditor HTCs; not applicable to the EditField HTC.
option | select Actually a child element of the select child element: <select> <select> <option>
prompt | date, numeric, select, text
select | select The option element is a child element of this element.
tooltip | boolean, date, numeric, select, text Optional in the EditSheet and ListEditor HTCs; not applicable in the DynamicTable and EditField HTCs.

browsetooltip

This optional element specifies a ToolTip for the browse button associated with an EditField HTC, whether embedded in another HTC or not.

Parent Elements
boolean, date, numeric, select, text, time

(can be a child of any of the element types shown)

Required Child Elements
None.
Optional Child Elements
None.
Data
The tooltip text.
Attributes
None.

Remarks

The browsetooltip element is ignored if a browse button is not specified.

Return to Shared Editfield Child Elements

charmask

This optional element provides a mask of characters, specified in VBScript regular expression syntax, which is used for input validation of text.

Parent Element
text
Required Child Elements
None.
Optional Child Elements
None.
Data
The charmask text, specified in VBScript regular expression syntax.
Attributes
None.

Remarks

The regular expression string provided as the data to the charmask element should be expressed such that valid input matches the regular expression, but that no sub-string of valid input matches the regular expression. One way to accomplish is by surrounding the specified regular expression with the regular expression symbols for the beginning of the expression (^) and the end of the expression ($).

The charmask element being present, but without any data, is treated the same as if it is not present.

If the charmask element is not present, the following default character mask is used for all three subtypes of the text element:

^[^<>&]*$

For more information about regular expressions, see http://go.microsoft.com/fwlink/?LinkId=5161

Return to Shared Editfield Child Elements

error

This optional element specifies an error message to be displayed to the user if data validation for the field fails.

Parent Elements
date, numeric, text, time

(can be a child of any of the element types shown)

Required Child Elements
None.
Optional Child Elements
None.
Data
The error message text.
Attributes
None.

Remarks

The error element is present, but without any data, and is treated the same as if it is not present.

If the error element is not present, the following default error messages are used for the various element types that use error messages.

Elements That Display Errors | Default Error Message
Date | Validation error in date (m/d/yyyy)
Numeric (Integer subtype) | Validation error in number
Numeric (Float subtype) | Validation error in float
Numeric (Currency subtype) | Validation error in currency
Text (all subtypes) | Validation error in text (cannot contain "<", ">", or "&")
Time | Validation error in time (hh:mm – 24hr)

The default error message for dates will show a different format if one is specified using the format element.

Return to Shared Editfield Child Elements

format

This optional element specifies valid input formats for a particular date or numeric EditField HTC, whether embedded in another HTC or not.

Parent Elements
date, numeric

(can be a child of either of the element types shown)

Required Child Elements
None.
Optional Child Elements
None.
Data
The format specification text.
Attributes
None.

Remarks

Valid formats for dates are "m/d/yyyy", "d/m/yyyy", and "yyyy/m/d". The default is "m/d/yyyy". The separator can be specified as any of the following three characters: forward slash ("/"), hyphen ("-"), and period ("."). The default separator is forward slash ("/"). Any number of the characters "m", "d", and "y" may be specified without affecting displayed dates; months and days will never be displayed with leading zeros, and years will always be displayed using four digits.

Valid formats for numbers depend on the subtype of number being displayed: integer, float, or currency. The following table describes valid formats for each.

Numeric Subtype Numeric Formats
integer A string that specifies the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), or it can be parentheses around the number.

Even though the format is specified as a decimal number, values that are not whole numbers cannot be entered into the HTC when the subtype is "integer".

Examples:

1.1 -1.1 1.1- (1.1)
float A string that specifies the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), or it can be parentheses around the number.

Examples:

1.1 -1.1 1.1- (1.1)
currency A string that specifies the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), or it can be parentheses around the number.

No currency symbol should be specified as part of this format.

Examples:

1.1 -1.1 1.1- (1.1)

Return to Shared Editfield Child Elements

label

This optional element provides text to be displayed after the checkbox in a Boolean EditField HTC, whether embedded in another HTC or not.

Parent Element
boolean
Required Child Elements
None.
Optional Child Elements
None.
Data
The check box label text.
Attributes
None.

Remarks

When the label element is absent, the check box will be labeled with the word "Yes" by default.

Return to Shared Editfield Child Elements

name

This element, which is required in some circumstances (see table in Notes), specifies the name associated with an EditField HTC in some situations where it is embedded in another HTC.

Parent Elements
boolean, date, numeric, select, text, time

(can be a child of either of the element types shown)

Required Child Elements
None.
Optional Child Elements
None.
Data
The EditField HTC name.
Attributes
None.

Remarks

The following table shows the situations in which the name element is used, including whether it is required or optional.

HTC with embedded EditFields | Use of the <name> element
DynamicTable | The value of the name element is used as the name of the column associated with the containing element. The name element is required in this situation.
EditSheet | When no template element is specified, the value of the name element is used as the name displayed to the left of the embedded EditField HTC. The name element is optional in this situation. If no name is specified, the field is displayed without a label.
ListEditor | The value of the name element is used as the name displayed to the left of the embedded EditField HTC in the edit area of the ListEditor HTC. The name element is optional in this situation. If no name is specified, the field is displayed without a label.

If the hide attribute of the containing element is set to "yes", the name element is superfluous and need not be present.

Return to Shared Editfield Child Elements

option

This required element specifies the display name and the underlying value for a multiple choice EditField HTC, whether embedded in another HTC or not.

Parent Element
select
(which is itself a child of the higher level select element)
Required Child Elements
None.
Optional Child Elements
None.
Data
The text to be displayed in the selection drop down list. If the htmloptions attribute is set to "yes", HTML elements can be embedded in this text to provide a richer user experience. For example, an IMG element could be included to provide an icon with the text.

Attributes

Attribute | Description
value | Specifies the value associated with a particular choice. Required. Legal values: Any. Default value: None. It is up to the author of the XML configuration information to ensure that no two value attribute values for the option elements within the same select element are the same. The Commerce Server Business Desk Framework performs no uniqueness checking in this regard.

Remarks

At least one option element is required, and in general, at least two option elements will be specified.

If an option element is specified with a value attribute set to an empty string, then that option is considered the chosen option when the field is empty.

The select field will display its prompt whenever the current data value does not correspond to the value attribute value of any of the option elements.

Return to Shared Editfield Child Elements

prompt

This optional element provides text to be displayed within an EditField HTC, whether embedded in another HTC or not, when there is no value present. The purpose of such text is to prompt the user for input. Once the user begins entering data, the prompt is replaced by that data.

Parent Elements
date, numeric, select, text, time

(can be a child of either of the element types shown)

Required Child Elements
None.
Optional Child Elements
None.
Data
The prompt text.
Attributes
None.

Remarks

When the prompt element is absent, a default prompt is displayed. To avoid having a prompt displayed, an empty prompt element must be present.

The following table shows the default prompts for the different types of EditField HTCs.

Type of EditField HTC | Default Prompt
boolean | None.
date | <enter date (m/d/yyyy)>.
numeric | <enter number>
select | <select one>
text | <enter text>
time | <enter time (hh:mm)>

The default prompt for dates will show a different format if one is specified using the format element.

Return to Shared Editfield Child Elements

select

This required element contains a set of choices that are available for a multiple choice EditField HTC, whether embedded in another HTC or not. These choices are expressed as a set of option elements.

Parent Element
select
(the higher-level select element )
Required Child Elements
option
(at least one)
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
id | Specifies an identifier for this select element. Required, unless there are no sibling select elements. Legal values: Must be unique with respect to the id attributes of any sibling select elements. Default value: None. The value of this attribute can be used as the value of the sID parameter to the reload method of the EditField HTC to dynamically change the set of choices offered to those specified by the child option elements of this select element. (Use the field method of the DynamicTable HTC to retrieve the EditField HTC for which the reload method will be called.)

Remarks

At least one select element is required, but more than one select element may be supplied for situations where the set of choices changes based on some other control setting or circumstance.

Return to Shared Editfield Child Elements

tooltip

This optional element specifies a ToolTip for the left-hand column label, if any, associated with an EditField HTC that is embedded within an EditSheet or ListEditor HTC.

Parent Elements
boolean, date, numeric, select, text, time
(can be a child of either of the element types shown)
Required Child Elements
None.
Optional Child Elements
None.
Data
The ToolTip text.
Attributes
None.

Return to Shared Editfield Child Elements


Shared EditField Attributes

The following table shows the attributes of the various types of EditField elements that are shared.

Attribute
Applicable EditField Types
Description
browse Boolean, Date, Numeric, Select, Text, Time Specifies that a browse button will be available for use with this field.

Optional.

Legal values: "yes" and "no". A value of "yes" specifies that browsing is provided for this field.

Default value: "no".

For more information about the various attributes that work together to control browsing, see EditField.
browsereadonly Boolean, Date, Numeric, Select, Text, Time Specifies whether browsing will be the only way to specify a value for this field.

Optional.

Legal values: "yes" and "no". A value of "yes" specifies that browsing is the only way to provide a value for this field.

Default value: "no".

For more information about the various attributes that work together to control browsing, see EditField.
default Boolean, Date, Numeric, Select, Text, Time Specifies a default value for this field when the data passed to it is an empty string.

Optional.

Legal values: Depend on the type of the field, and are validated in the same way as values passed in as data.

Default value: None.
disabled Boolean, Date, Numeric, Select, Text, Time Specifies whether this field is disabled.

Optional.

Legal values: "yes" and "no". A value of "yes" specifies that this field is disabled.

Default value: "no".
hide Boolean, Date, Numeric, Select, Text, Time Specifies whether display of the field should be suppressed.

Optional.

Legal values: "yes" and "no". A value of "yes" suppresses the display of the field.

Default value: "no".
htmloptions Select Specifies whether the option node data should be displayed as HTML or plain text.

Optional.

Legal values: "yes" and "no". A value of 土es� will display HTML markup like bold and italic as option display values. Even images can be displayed in this way.

Default value: "no".
id Boolean, Date, Numeric, Select, Text, Time Provides an identifier used to associate this field with the corresponding data in the DataXML container attribute.

Required.

Legal values: Must be unique relative to the other id attribute values within the current HTC.

Default value: None.
max Date, Numeric, Time Provides a maximum value that is used when validating field input.

Optional.

Legal values: Must match the specified data format, if any.

Default value: None.
maxlen Text Provides the maximum length of input allowed in a text field, specified in characters.

Optional.

Legal values: Positive integers.

Default value: None.
min Date, Numeric, Time Provides a minimum value that is used when validating field input.

Optional.

Legal values: Must match the specified data format, if any.

Default value: None.
minlen Text Provides the minimum length of input allowed in a text field, specified in characters.

Optional.

Legal values: Positive integers.

Specifying a positive integer as the value of the minlen attribute also forces the field to be required.
multilingual Select, Text Specifies whether to display a multilingual icon (a globe) on the corresponding input field, indicating that multilingual input is supported.

Optional.

Legal values: "yes" and "no". A value of "yes" will display a multilingual icon (a globe) to the right of the control.

Default value: "no".
onbrowse Boolean, Date, Numeric, Select, Text, Time Specifies the function name of the browse handler.

Optional.

Legal values: Must specify a valid function name.

Default value: None.

If this attribute is set, the browse attribute need not be set.

For more information about the various attributes that work together to control browsing, see EditField.
onchange Boolean, Date, Numeric, Select, Text, Time Specifies the function name of the change handler.

Optional.

Legal values: Must specify a valid function name.

Default value: None.
onerror Boolean, Date, Numeric, Select, Text, Time Specifies the function name of the error handler.

Optional.

Legal values: Must specify a valid function name.

Default value: None.
onrequire Date, Numeric, Text, Time Specifies the function name of the require handler.

Optional.

Legal values: Must specify a valid function name.

Default value: None.
onvalid Date, Numeric, Select, Text, Time Specifies the function name of the valid handler.

Optional.

Legal values: Must specify a valid function name.

Default value: None.
readonly Boolean, Date, Numeric, Select, Text, Time Specifies whether this field is read-only.

Optional.

Legal values: "yes" and "no". A value of "yes" prevents the field value from being changed.

Default value: "no".
required Date, Numeric, Text, Time Specifies whether data must be supplied for this field.

Optional.

Legal values: "yes" and "no". A value of "yes" specifies that data must be supplied.

Default value: "no".
subtype Numeric, Text Specifies further refinement of the data type specified by the element containing this attribute.

Optional.

Legal values:

numeric: "integer", "float", "currency"

text: "short", "long", "password"

Default value:

numeric: "integer"

text: "short"


EditSheet Configuration

The XML data-island identified by the MetaXML container attribute contains the configuration information used by the EditSheet HTML component (HTC).

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the MetaXML data-island for the EditSheet HTC must be expressed in lowercase letters.

XML Structure

<editsheets>
  <editsheet>
    <global expanded title>
      <name>Editsheet name goes here<name>
      <key>Access key for editsheet goes here</key>
    </global>
    <template fields register>
      <![CDATA[
        HTML template goes here
      ]]>
    </template>
    <fields>
      <boolean browse browsereadonly default disabled hide
               id onbrowse onchange onerror readonly
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <name>Name of field in left-hand column</name>
        <label>Checkbox label</label>
        <tooltip>Tooltip for left-hand column label</tooltip>
      </boolean>
      <date browse browsereadonly default disabled firstday
            hide id max min onbrowse onchange onerror
            onrequire onvalid readonly required
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <format>Date format to use</format>
        <error>Name of field in left-hand column</error>
        <name>Column heading name</name>
        <prompt>Empty control prompt</prompt>
        <tooltip>Tooltip for left-hand column label</tooltip>
      </date>
      <numeric browse browsereadonly default disabled hide id
               max min onbrowse onchange onerror onrequire
               onvalid readonly required subtype
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <format>Number format to use</format>
        <error>Validation error message</error>
        <name>Name of field in left-hand column</name>
        <prompt>Empty control prompt</prompt>
        <tooltip>Tooltip for left-hand column label</tooltip>
      </numeric>
      <select browse browsereadonly default disabled hide
              htmloptions id multilingual onbrowse
              onchange onerror onvalid readonly
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <name>Name of field in left-hand column</name>
        <prompt>Empty control prompt</prompt>
        <tooltip>Tooltip for left-hand column label</tooltip>
        <select id>
          <option value>Item display name</option>
        </select>
        ...
        <select id>
          <option value>Item display name</option>
        </select>
      </select>
      <text browse browsereadonly default disabled hide id
            maxlen minlen multilingual onbrowse onchange onerror
            onrequire onvalid readonly required subtype
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <charmask>Validation character mask</charmask>
        <error>Validation error message</error>
        <name>Name of field in left-hand column</name>
        <prompt>Empty control prompt</prompt>
        <tooltip>Tooltip for left-hand column label</tooltip>
      </text>
      <time browse browsereadonly default disabled hide
            id max min onbrowse onchange onerror
            onrequire onvalid readonly required
        <browsetooltip>Tooltip for browse button</browsetooltip>
        <error>Validation error message</error>
        <name>Name of field in left-hand column</name>
        <prompt>Empty control prompt</prompt>
        <tooltip>Tooltip for left-hand column label</tooltip>
      </time>
    </fields>
  </editsheet>
  <editsheet>
    another editsheet specification goes here
  </editsheet>
</editsheets>

editsheets

This optional element is used to contain multiple editsheet elements, if present. Otherwise a single editsheet element is used.

Parent Element
None (document root).
Required Child Elements
editsheet

(at least one is required, but normally two or more are present)

Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

editsheet

This required element contains the configuration information for a single EditSheet HTC.

Parent Elements
None (document root), editsheets
(can be one or the other)
Required Child Elements
global, fields
Optional Child Elements
template
Data
None.
Attributes
None.

Remarks

It can be used as the sole child of the XML data-island when a single EditSheet HTC is being used, or can occur within the editsheets element when configured as one of several EditSheet HTCs.

For more information about how an XML document can be included on a page (creating an XML data-island) see XML Data-Islands.

Return to XML Structure

global

This required element specifies global information about the display of an EditSheet HTC.

Parent Element
editsheet
Required Child Elements
name, key

(Required in some circumstances)

Optional Child Elements
name, key

(Optional in some circumstances)

Data
None.

Attributes

Attribute | Description
expanded | Specifies whether the EditSheet HTC is initially displayed as open or closed. Optional. Legal values: "yes" and "no". A value of "yes" causes the EditSheet HTC to initially display as open. Default value: "no". The value of this attribute is irrelevant if the title attribute is set to "no".
title | Controls whether the EditSheet HTC is shown with a title bar containing the expand/collapse control and its name. Optional. Legal values: "yes" and "no". A value of "no" suppresses the display of the title bar. Default value: "yes". If the title attribute is set to "no", then the expanded attribute is automatically set to "yes". Also, if the title attribute is set to "no", then the name and key (sub) elements need not be specified.

Return to XML Structure

name

This element, which is required in some circumstances, provides the name of the EditSheet HTC.

Parent Element
global
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the editsheet.

Attributes

None.

Remarks

This name is sometimes called the group name.

This name is typically displayed in the title bar. This behavior can be suppressed by setting the title attribute to "no"; in this case this element is not required. If the title attribute of the containing global element is not set to "no", this element is required.

If the specific EditSheet name contains any HTML formatting directives, proper escaping must be used. For example, the string &lt; must be used for the "<" character, the string &gt; must be used for the ">" character, and the string &amp; must be used for the "&" character.

Return to XML Structure

key

This element, which is required in some circumstances, specifies a character that serves as the accessibility key associated with the EditSheet HTC.

Parent Element
global
Required Child Elements
None.
Optional Child Elements
None.
Data
The accessibility key, as indicated in the editsheet name with underlining.

Attributes

None.

Remarks

If the title attribute of the containing global element is not set to "no", this element is required.

The accessibility key for the EditSheet HTC must specify the same character identified with underlining in the EditSheet name, if any.

For example, if the EditSheet name is specified such that the user sees the string "Department", the character "d" must appear between the <key> and </key> tags.

Return to XML Structure

template

This optional element contains an HTML template for the EditSheet HTC that can contain sub-instances of Commerce Server Business Desk HTCs within it, often EditSheet and EditField HTCs.

Parent Element
editsheet
Required Child Elements
None.
Optional Child Elements
None.
Data
An HTML template expressed as character data (CDATA).

Attributes

Attribute | Description
fields | Specifies a space-delimited list of the IDs of any contained EditField HTCs that should be loaded using the same data and metadata as the parent EditSheet HTC. Optional. Legal values: Valid IDs of contained EditField HTCs, separated by spaces. Default value: None. When the EditSheet HTC creates the template, it will attach the correct behavior for those EditField HTCs and also enable their OnChange, OnValid, and OnRequire events to be passed to the outer EditSheet HTC. These EditField HTCs should not have the CLASS attribute value "EditField" set on their DIV element.
register | Specifies a space-delimited list of the IDs of any contained HTCs that should have their OnChange, OnValid, and OnRequire events passed to the outer EditSheet HTC. Optional. Legal values: Valid IDs of contained HTCs, separated by spaces. Default value: None. Standard HTML input elements can also be registered so that their OnChange events will be passed to the outer EditSheet HTC. However, it is important to remember that HTML radio and check box type input elements do not fire the OnChange event.

Remarks

The register attribute is used to allow OnChange and OnRequire events generated by these sub-controls to be passed to the outer EditSheet HTC.

The fields attribute is used to create EditField HTCs for elements within the template without requiring that the EditField HTCs load their own metadata.

Passing the OnRequire event to the outer EditSheet HTC allows the icon indicating required data to be displayed for templated sub-controls.

Passing the OnValid event to the outer EditSheet HTC allows the icon that indicates data is not valid to be displayed for templated sub-controls.

Passing the OnChange event to the outer EditSheet HTC allows proper tracking of whether changes have been made.

The following example illustrates how to create a template that contains an EditSheet HTC, an EditField HTC, and a check box as sub-controls. Note how the IDs of the EditSheet and EditField HTCs are specified in the fields and register attributes of the template element:

  <template fields="esSubControl2" register="esSubControl1">
    <![CDATA[
      <DIV ID='esSubControl1'
           CLASS='editSheet'
           MetaXML='esMeta1'
           DataXML='esData'>
        <H3 ALIGN="center">Loading Property Group...</H3>
      </DIV>
      <B>File Name 5:</B>
      <DIV ID='esSubControl2'
           STYLE='WIDTH:300px'
           MetaXML='esMeta1'
           DataXML='esData'>
        <H3 ALIGN="center">Loading Property...</H3>
      </DIV>
      <INPUT type="checkbox" id=checkbox1 name=checkbox1>
      <LABEL FOR=checkbox1>additional HTML controls</LABEL>
    ]]>
  </template>

Return to XML Structure

fields

This required element contains the elements that specify the fields to be displayed in the EditSheet HTC.

Parent Element
editsheet
Required Child Elements
None.
Optional Child Elements
boolean, date, numeric, select, text, time
Data
None.
Attributes
None.

Remarks

When the template element is not present, elements defined within the fields element are displayed as rows in the EditSheet HTC, in the order in which they appear within the fields element. For example, the first element defines the top row and the last element defines the bottom row.

The child elements of the fields element are essentially the same as the elements that can be defined as child elements of the editfield element in the configuration data for the EditField HTC. The primary difference is that child elements of the fields element in the EditSheet HTC can include additional child elements, namely the name and tooltip elements. For information about shared attributes, see Shared EditField Attributes.

Return to XML Structure

boolean

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a Boolean value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, label, name, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, onbrowse, onchange, onerror, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

date

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a date value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
firstday | Specifies the day of the week that is considered to be the first day of the week. Optional. Legal values: Integers between 0 (Sunday) and 6 (Saturday), inclusive. Default value: 0 (Sunday)

Return to XML Structure

numeric

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a numeric value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

select

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a fixed set of choices.

Parent Element
fields
Required Child Elements
select (at least one, but generally two or more)
Optional Child Elements
browsetooltip, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, htmloptions, multilingual, onbrowse, onchange, onerror, onvalid, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

text

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a text value.

Parent Element
fields
Required Child Elements
name
Optional Child Elements
browsetooltip, charmask, error, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, maxlen, minlen, multilingual, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

time

This optional element provides configuration and validation information about a particular field in an EditSheet HTC containing a time value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
Remarks

The format of fields associated with the time element is fixed. Hours and minutes are displayed in a 24-hour format, separated by the colon character (":"). Seconds are not supported.

Return to XML Structure

browsetooltip, charmask, error, format, label, name, option, prompt, select, tooltip

These ten elements are used to qualify or extend the behavior of one or more of the EditField elements of various data types, embedded within the EditSheet HTC. For more information, see Shared EditField Child Elements.

Return to XML Structure


ExpressionBuilder Configuration

The XML data-island identified by the XMLCfgID container attribute contains the configuration information used by the ExpressionBuilder HTML component (HTC).

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The ExpressionBuilder HTC includes an embedded QueryBuilder HTC. Because of this, a number of the configuration elements passed to the ExpressionBuilder HTC are actually used by the embedded QueryBuilder HTC. Each of the elements discussed in this topic will be identified as being used to configure the ExpressionBuilder HTC, the embedded QueryBuilder HTC, or both.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the MetaXML data-island for the ExpressionBuilder HTC must be expressed in uppercase letters.

XML Structure

<EBCONFIG>
  <EXPR-ASP>relative URL of exprarch folder</EXPR-ASP>
  <PROFILE-LIST>
    <PROFILE>profile name</PROFILE>
    <PROFILE SRC />
  </PROFILE-LIST>
  <SITE-TERMS URL NOLOAD />
  <EEE-INTRINSICS />
  <DEBUG />
  <RENAME>no</RENAME>
  <HIDEBUTTONS />
  <TYPESOPS>path to xml file</TYPEOPS>
  <MESSAGE>alternate message</MESSAGE>
  <FILTER-CATEGORIES>
    <CATEGORY>category name</CATEGORY>
  </FILTER-CATEGORIES>
  <SAVE-CATEGORY>save category name</SAVE-CATEGORY>
  <EDIT-NESTED>always, warn, or never</EDIT-NESTED>
  <DATE-FORMAT>date format</DATE-FORMAT>
  <DATE-FIRSTDAY>first day of week</DATE-FIRSTDAY>
  <NUMBER-FORMAT>number format</NUMBER-FORMAT>
  <CURRENCY-FORMAT>currency format</CURRENCY-FORMAT>
  <HELPTOPIC>help topic URL</HELPTOPIC>
  <ADVANCED />
  <FILTER-PROPERTIES>XSL expression</FILTER-PROPERTIES>
</EBCONFIG>

EBCONFIG

This required element contains the configuration information for an instance of the ExpressionBuilder HTC.

Parent Element
None (document root)
Required Child Elements
EXPR-ASP, PROFILE-LIST
Optional Child Elements
ADVANCED, CURRENCY-FORMAT, DATE-FIRSTDAY, DATE-FORMAT, DEBUG, EDIT-NESTED, EEE-INTRINSICS, FILTER-CATEGORIES, FILTER-PROPERTIES, HELPTOPIC, HIDEBUTTONS, MESSAGE, NUMBER-FORMAT, RENAME, SAVE-CATEGORY, SITE-TERMS, TYPESOPS
Data
None.
Attributes
None.

Remarks

The EBCONFIG element is used by both the ExpressionBuilder HTC and the embedded QueryBuilder HTC.

Return to XML Structure

EXPR-ASP

This required element specifies the relative URL of the Exprarch folder, which is required for the proper functioning of the ExpressionBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The relative URL of the Exprarch folder.
Attributes
None.

Remarks

The EBCONFIG element is used by both the ExpressionBuilder HTC and the embedded QueryBuilder HTC.

Return to XML Structure

PROFILE-LIST

This required element contains the specifications of the various profiles used by this instance of the ExpressionBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
PROFILE (at least one is required)
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

The PROFILE-LIST element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

PROFILE

This required element specifies a profile in one of two ways. For Profile Definitions defined within Commerce Server, the name of the profile is specified as data associated with the element. For profiles not defined within Commerce Server, the URL of a valid XML document containing one or more profiles is specified as the value of the SRC attribute.

Parent Element
PROFILE-LIST
Required Child Elements
None.
Optional Child Elements
None.
Data
When the SRC attribute is not present, the name of the profile is specified as data within the PROFILE element. Otherwise, no data is present.

Attributes

Attribute | Description
SRC | Provides the URL of a valid XML document that contains one or more profiles not defined within Commerce Server. Optional. Legal values: A valid URL. Default value: None. When this attribute is specified, the PROFILE element should not contain any data.

REMARKS

When the name of a Profile Definition defined within Commerce Server is specified as data for this element, the name must be of the form "CatalogName.ProfileName". For example, "UserProfiles.UserObject".

When a profile not defined within Commerce Server is specified using the SRC attribute, it must conform to a defined XML structure for profile specification. For more information about this structure, see Specifying Profiles and Site Terms in the QueryBuilder HTC.

The PROFILE element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

SITE-TERMS

This optional element specifies alternate information about whether the ExpressionBuilder HTC should load site-terms, and, if so, from where.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
NOLOAD | Suppresses the loading of site-terms for this instance of the ExpressionBuilder HTC (when set to "1"). Optional. Legal values: "1". Default value: None. If site-term loading is suppressed and expression bodies containing site-terms are passed to the ExpressionBuilder HTC, errors will result. This attribute should not be specified in combination with the URL attribute.
URL | Provides the URL of a valid XML document that contains alternate site-terms for use in this instance of the ExpressionBuilder HTC. Optional. Legal values: A valid URL. Default value: None. This attribute should not be specified in combination with the NOLOAD attribute.

REMARKS

When the SITE-TERMS element is present, either the NOLOAD attribute or the URL attribute (but not both) must be specified.

When the SITE-TERMS element is not present, site terms are loaded from the same folder specified by the required EXPR-ASP element.

When an alternate set of site terms is specified using the URL attribute, it must conform to the defined XML structure for site term specification. For more information about this structure, see Specifying Profiles and Site Terms in the QueryBuilder HTC.

The SITE-TERMS element is used only by the embedded QueryBuilder HTC.

Return to XML Structure

EEE-INTRINSICS

This optional element, when present, causes the ExpressionBuilder HTC to expose the intrinsic properties of the Expression Evaluator as a profile in its drop-down menus.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

The EEE-INTRINSICS element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

DEBUG

This optional element, when present, causes the ExpressionBuilder HTC to display debugging information.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

The DEBUG element is used by both the ExpressionBuilder HTC and the embedded QueryBuilder HTC.

Return to XML Structure

RENAME

This optional element controls whether the ExpressionBuilder HTC will allow the renaming of expressions during editing.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
Typically, the string "no".
Attributes
None.

Remarks

If the string "no" appears as data associated with this element, renaming of expressions is not allowed. Given any other data string, or the absence of the RENAME element, renaming is allowed.

If the ExpressionBuilder HTC is activated in either the create or the createfrom mode, the RENAME element is ignored and renaming is always allowed.

The RENAME element is only used by the ExpressionBuilder HTC.

Return to XML Structure

HIDEBUTTONS

This optional element, when present, causes the ExpressionBuilder HTC to hide the Save, Cancel, and Help buttons.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

  • The HIDEBUTTONS element is only used by the ExpressionBuilder HTC.

Return to XML Structure

TYPESOPS

This optional element, when present, specifies a types and operators XML file for the ExpressionBuilder HTC to use.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The relative path to the XML types and operators file.
Attributes
None.

Remarks

If this element is not specified, the default types and operators file is /Widgets/ExprbldrHTC/TypesOpsA.xml.

The TYPESOPS element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

MESSAGE

This optional element, when present, specifies an alternate message to be displayed above the expression-selector area.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The alternate message.
Attributes
None.

Remarks

When the MESSAGE element is not present, the default message is "Target according to the following conditions".

The MESSAGE element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

FILTER-CATEGORIES

This optional element, when present, contains a list of expression categories. When the ExpressionBuilder HTC builds a list of expressions that can be used to create new expressions, and the FILTER-CATEGORIES element has been specified, only expressions belonging to a specified category are included in the expression list. If the FILTER-CATEGORIES element is not present, all expressions are included in the expression list.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
category (typically at least one is present)
Data
None.
Attributes
None.

Remarks

If there are no CATEGORY elements contained in the FILTER-CATEGORIES element, it is treated as though the latter element is not present.

The FILTER-CATEGORIES element is only used by the ExpressionBuilder HTC.

Return to XML Structure

CATEGORY

This optional element is used to specify a category of expressions to be included in the expression list presented by the ExpressionBuilder HTC. Multiple CATEGORY elements can be used to specify that multiple expression categories be presented.

Parent Element
FILTER-CATEGORY
Required Child Elements
None.
Optional Child Elements
None.
Data
The expression category name.
Attributes
None.

Remarks

In general, at least one CATEGORY element will be present when the FILTER-CATEGORIES element is present. When all categories are to be included, the FILTER-CATEGORIES element may or may not be present.

The CATEGORY element is only used by the ExpressionBuilder HTC.

Return to XML Structure

SAVE-CATEGORY

This optional element, when present, specifies the category in which this expression will be saved.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of expression category with which the current expression will be associated when it is saved.
Attributes
None.

Remarks

When the SAVE-CATEGORY element is specified, the value specified as data for this element takes precedence over any previous category associated with the expression.

If the SAVE-CATEGORY element is not specified, the expression will not be associated with any category, regardless of any previous association.

The SAVE-CATEGORY element is only used by the ExpressionBuilder HTC.

Return to XML Structure

EDIT-NESTED

This optional element, when present, specifies whether editing of nested expressions is allowed or prevented, or allowed only if the user explicitly allows it in response to a warning dialog box.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
One of the three values "always", "warn", or "never". See Remarks for more details.
Attributes
None.

Remarks

Specifying "always" results in the nested expression being opened in edit mode. In general, this is not recommended.

Specifying "warn" results in a warning dialog box that offers the choice between opening the nested expression in edit mode or view mode.

Specifying "never" results in the nested expression being opened in view mode.

The default behavior, in the event that the EDIT-NESTED element is not present or contains an illegal data value, is to not allow the editing of nested expressions.

The EDIT-NESTED is only relevant when an expression is being created or edited.

The EDIT-NESTED element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

DATE-FORMAT

This optional element, when present, specifies the display format for dates.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for dates.
Attributes
None.

Remarks

Valid formats for dates are "m/d/yyyy", "d/m/yyyy", and "yyyy/m/d". The default is "m/d/yyyy". The separator can be specified as any of the following three characters: forward slash ("/"), hyphen ("-"), and period ("."). The default separator is forward slash ("/"). Any number of the characters "m", "d", and "y" may be specified without affecting displayed dates; months and days will always be displayed without a leading zero, and years will always be displayed using 4 digits.

The DATE-FORMAT element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

DATE-FIRSTDAY

This optional element, when present, specifies the day of the week that will be considered the first day of the week.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
A number in the range 0 (Sunday) to 6 (Saturday).
Attributes
None.

Remarks

Days of the week are represented by numbers between 0 and 6, as follows: 0 = Sunday; 1 = Monday; 2 = Tuesday, 3 = Wednesday; 4 = Thursday; 5 = Friday, and 6 = Saturday.

If this element is not present, the default first day of the week is Sunday.

The DATE-FIRSTDAY element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

NUMBER-FORMAT

This optional element, when present, specifies the display format for numbers.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for numbers.
Attributes
None.

Remarks

Valid formats for numbers are specified using a string that indicates the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), space-separated from the number or not, or it can be parentheses around the number.

If this element is not present, the default format is "–1.1".

Examples:

1.1 -1.1 1.1- (1.1)

The NUMBER-FORMAT element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

CURRENCY-FORMAT

This optional element, when present, specifies the display format for currency.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for currency.
Attributes
None.

Remarks

Valid formats for currency are specified using a string that indicates the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), space-separated from the number or not, or it can be parentheses around the number.

If this element is not present, the default format is "–1.1".

No currency symbol should be specified as part of this format.

Examples:

1.1 -1.1 1.1- (1.1)

The CURRENCY-FORMAT element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

HELPTOPIC

This optional element, when present, specifies a help topic for this instance of the QueryBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The absolute URL of the corresponding help topic.
Attributes
None.

Remarks

If this element is present, the QueryBuilder HTC will display a help button, which when clicked will display the specified help topic.

Use the server-side utility routine sRelURL2AbsURL to generate the absolute URL required by this element. For example:

<HELPTOPIC><%=sRelURL2AbsURL("../docs/htm/yourhelpfile.htm")%></HELPTOPIC>

The HELPTOPIC element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

ADVANCED

This optional element, when present, specifies that advanced editing will be allowed. Advanced editing allows the use of the OR operator in expressions.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

If this element is not present, advanced editing is not allowed.

The ADVANCED element is only used by the embedded QueryBuilder HTC.

Return to XML Structure

FILTER-PROPERTIES

This optional element, when present, specifies an Extensible Stylesheet Language (XSL) pattern fragment used for filtering properties from the profile. If this element is present, the provided XSL pattern will be applied to the properties in each profile that is loaded. Any properties that do not conform to the XSL pattern will not be shown when creating or editing expressions.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The XSL pattern fragment.
Attributes
None.

Remarks

The default XSL pattern fragment is: not(@isActive) || @isActive != '0'

The data values supplied for this element are actually XSL pattern fragments because they are surrounded by the strings "Property[" and "]" to achieve the actual XSL pattern. For example, the actual default XSL pattern, shown with the added strings in bold, is as follows:

Property[not(@isActive) || @isActive != '0']

Element attributes return "0" when they are not defined. Therefore, it is recommended the XSL pattern fragments specified as data for this element check for the presence of an attribute as well as for the attribute value being set to zero. The default XSL pattern is an example of both of these conditions being checked.

The FILTER-PROPERTIES element is only used by the embedded QueryBuilder HTC.

Return to XML Structure


ListEditor Configuration

The XML data-island identified by the MetaXML container attribute contains the configuration information used by the ListEditor HTML component (HTC).

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not bolded.

Note

  • The XML elements and attributes in the MetaXML data-island for the ListEditor HTC must be expressed in lowercase letters.

XML Structure

<listeditor>
  <global pagecontrols pagesize sort/>
  <columns>
    <column format hide id width>Column name</column>
  </columns>
  <operations>
    <newpage formid />
    <sort formid />
    <custom_op formid />
  </operations>
  <fields>
    <boolean browse browsereadonly default disabled hide
             id onbrowse onchange onerror readonly
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <name>Name of field in left-hand column</name>
      <label>Checkbox label</label>
      <tooltip>Tooltip for the left-hand column label</tooltip>
    </boolean>
    <date browse browsereadonly default disabled firstday
          hide id max min onbrowse onchange onerror
          onrequire onvalid readonly required
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <format>Date format to use</format>
      <error>Name of field in left-hand column</error>
      <name>Column heading name</name>
      <prompt>Empty control prompt</prompt>
      <tooltip>Tooltip for the left-hand column label</tooltip>
    </date>
    <numeric browse browsereadonly default disabled hide id
             max min onbrowse onchange onerror onrequire
             onvalid readonly required subtype
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <format>Number format to use</format>
      <error>Validation error message</error>
      <name>Name of field in left-hand column</name>
      <prompt>Empty control prompt</prompt>
      <tooltip>Tooltip for the left-hand column label</tooltip>
    </numeric>
    <select browse browsereadonly default disabled hide
            htmloptions id multilingual onbrowse
            onchange onerror onvalid readonly
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <name>Name of field in left-hand column</name>
      <prompt>Empty control prompt</prompt>
      <tooltip>Tooltip for the left-hand column label</tooltip>
      <select id>
        <option value>Item display name</option>
      </select>
      ...
      <select id>
        <option value>Item display name</option>
      </select>
    </select>
    <text browse browsereadonly default disabled hide id
          maxlen minlen multilingual onbrowse onchange onerror
          onrequire onvalid readonly required subtype
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <charmask>Validation character mask</charmask>
      <error>Validation error message</error>
      <name>Name of field in left-hand column</name>
      <prompt>Empty control prompt</prompt>
      <tooltip>Tooltip for the left-hand column label</tooltip>
    </text>
    <time browse browsereadonly default disabled hide
          id max min onbrowse onchange onerror
          onrequire onvalid readonly required
      <browsetooltip>Tooltip for browse button</browsetooltip>
      <error>Validation error message</error>
      <name>Name of field in left-hand column</name>
      <prompt>Empty control prompt</prompt>
      <tooltip>Tooltip for the left-hand column label</tooltip>
    </time>
  </fields>
</listeditor>

listeditor

This required element contains the configuration information for a ListEditor HTC.

Parent Element
None (document root).
Required Child Elements
columns, fields
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

global

This optional element specifies sorting and paging characteristics, if any, of a ListEditor HTC.

Parent Element
listeditor
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
pagecontrols | Specifies whether or not page controls are displayed. Optional. Legal values: "yes" and "no". If the value is "no", the display of page controls is suppressed. Default value: "yes".
pagesize | Specifies the number of records displayed per page. Optional. Legal values: Integers. Default value: 20. This value is used to calculate the number of pages available for display.
sort | Specifies whether clicking on a column heading sorts the records according to the values in that column. Optional. Legal values: "yes" and "no". If the value is "no", column sorting is disabled and the firing of the OnPage event is suppressed. Default value: "no".

Return to XML Structure

columns

This required element contains the descriptions of the various columns that the ListEditor HTC displays in the list area.

Parent Element
listeditor
Required Child Elements
column

(at least one is required, but normally two or more are present)

Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

column

This required element provides configuration information about a particular column in the list area of a ListEditor HTC.

Parent Element
columns
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the column as the user sees it.

Attributes

Attribute Description
format Specifies how the data in this column should be formatted.

Optional.

Legal values: "select", "password", and "float". See below for additional details.

Default value: None.

When the format attribute is set to "select", the embedded ListSheet HTC will look for a select element in the metadata corresponding to the id attribute and look up the display value to display for the value in the column.

When the format attribute is set to "password", the value will be masked just like in a password type HTML element.

When the format attribute is set to "float", the value will be normalized. For example, "2.00" displays as "2".
hide Specifies whether this column should be displayed.

Optional.

Legal values: "yes" and "no". If the value is "yes", the column is not displayed.

Default value: "no".
id Provides an identifier used to associate this column with the corresponding data in the DataXML container attribute.

Required.

The value of this attribute may or may not correspond to the value of the id attribute for one of the field elements.
width Specifies an initial width for the column corresponding to this element.

Optional.

Legal values: Integers between 0 and 100, representing column width as a percentage of control width. The specified widths of all columns are normalized if they do not add up to 100.

Default value: If a width is not specified, the width percentage is calculated as the total width divided by the number of displayed columns.

Remarks

At least one column element is required.

Return to XML Structure

operations

This optional element contains other elements that, when present, cause certain standard XMLHTTP operations to be performed when specific events are fired. This set of operations can also be extended with custom operations.

Parent Element
listeditor
Required Child Elements
None.
Optional Child Elements
page, sort, custom_op
Data
None.
Attributes
None.

Remarks

All child elements, including custom child elements, represent different operations that will be performed when different events occur.

If the operations element is present but contains no child elements, it will be ignored.

The operations corresponding to the child elements are known as XMLHTTP operations. For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

Return to XML Structure

newpage

This optional element corresponds to a standard XMLHTTP operation available with the ListEditor HTC. When this element is present, the entire list reloads with new data after the OnNewPage event fires. The new data is returned from a page on the server and must not contain anything except the data in the standard XML data format.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnNewPage event fires. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form must be set to the post page (the page that returns the new page of data).

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "newpage". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to the OnNewPage event. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.
prevpage | The value of this attribute is set to the number of the page currently being displayed, soon to be the previous page displayed.
page | The value of this attribute is set to the number of the new page to be displayed.
column | The value of this attribute is set to the ID of the sort column for the new page of data. This ID is the name of the relevant child element of the record element.
direction | The value of this attribute is set to either "asc" or "desc", depending on whether the new page of data should be sorted in the ascending direction or the descending direction, respectively.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

sort

This optional element corresponds to a standard XMLHTTP operation available with the ListEditor HTC. When this element is present, the entire list reloads with new data after the OnHeaderClick event fires. The new data is returned from a page on the server and must not contain anything except the data in the standard XML data format.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnHeaderClick event fires. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form should be set to the post page (the page that returns the first page of data, re-sorted as specified).

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "sort". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to the OnHeaderClick event. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.
page | The value of this attribute is always set to 1. This operation does not permit re-sorting the list without returning to the beginning of the list, where the "top" of the sort will be displayed.
column | The value of this attribute is set to the ID of the sort column for the new page of data. This ID is the name of the relevant child element of the record element.
direction | The value of this attribute is set to either "asc" or "desc", depending on whether the new page of data should be sorted in the ascending direction or the descending direction, respectively.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

custom_op

Custom operation elements, which are optional, correspond to custom XMLHTTP operations defined for a ListEditor HTC. When a custom operation element is present, the entire list reloads when the reload method is called with its sOp parameter set to the custom name for this element.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the reload method is called with its sOp parameter set to the custom name for this element. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For example, if the element double_sort is included as a custom operation, and the reload method is called with its sOp parameter set to "double_sort", the form with the specified identifier will be posted, as in the following code:

bRetVal = elListEditor.reload("double_sort")

The reload method returns False if no XML is returned or if any error elements are present, and True otherwise.

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form should be set to the post page, the page that returns the new data.

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "custom_op". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to a particular invocation of the reload method. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.

In some situations it might be appropriate to include other parameters in the posted form as part of fetching the correct XML response. For example, suppose a response page is designed to be shared by several different pages, returning different results based on which page calls it. In this case, the form might have a hidden element containing the page name so the response page will know which page called it.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

fields

This required element contains the elements that specify the various fields to be displayed in the edit area of the ListEditor HTC.

Parent Element
listeditor
Required Child Elements
None.
Optional Child Elements
boolean, date, numeric, select, text, time
Data
None.
Attributes
None.

Remarks

It must contain at least one such element, though in general it will contain several such elements, corresponding to a ListEditor HTC with several fields in the edit area.

Elements defined within the fields element are displayed as rows in the edit area of the ListEditor, in the order in which they appear within the fields element. For example, the first element defines the top row and the last element defines the bottom row.

The child elements of the fields element are essentially the same as the elements that can be defined as child elements of the editfield element in the configuration data for the EditField HTC. The primary difference is that child elements of the ListEditor HTC can include additional child elements, namely the name and tooltip elements. For information about the attributes that are shared, see Shared EditField Attributes.

Return to XML Structure

boolean

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a Boolean value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, label, name, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, onbrowse, onchange, onerror, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

date

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a date value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

numeric

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a numeric value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, format, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

select

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a fixed set of choices.

Parent Element
fields
Required Child Elements
select (at least one, but generally two or more)
Optional Child Elements
browsetooltip, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, htmloptions, multilingual, onbrowse, onchange, onerror, onvalid, readonly | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

text

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a text value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, charmask, error, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, maxlen, minlen, multilingual, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required, subtype | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.

Return to XML Structure

time

This optional element provides configuration and validation information about a particular field in a ListEditor HTC containing a time value.

Parent Element
fields
Required Child Elements
None.
Optional Child Elements
browsetooltip, error, name, prompt, tooltip
Data
None.

Attributes

Attribute | Description
id, browse, browsereadonly, default, disabled, hide, max, min, onbrowse, onchange, onerror, onrequire, onvalid, readonly, required | The id attribute is required. All others are optional. For more information about these attributes, see Shared EditField Attributes.
Remarks

The format of fields associated with the time element is fixed. Hours and minutes are displayed in a 24-hour format, separated by the colon character (":"). Seconds are not supported.

Return to XML Structure

browsetooltip, charmask, error, format, label, name, option, prompt, select, tooltip

These ten elements are used to qualify or extend the behavior of one or more of the EditField elements of various data types, embedded within the ListEditor HTC. For more information, see Shared EditField Child Elements.

Return to XML Structure


ListSheet Configuration

The XML data-island identified by the MetaXML container attribute contains the configuration information used by the ListSheet HTML component (HTC).

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not in bold.

Note

  • The XML elements and attributes in the MetaXML data-island for the ListSheet HTC must be expressed in lowercase letters.

XML Structure

<listsheet>
  <global contextmenuid contextmenuwidth curpage headers
          pagecontrols pagesize recordcount scroll
          selectall selection selectionbuttons sort/>
  <columns>
    <column format hide id id2
            id3 sortdir width>Column heading name</column>
    <subobject datawidth labelwidth type>
      <column format hide id width>Column heading name</column>
    </subobject>
  </columns>
  <operations>
    <page formid />
    <sort formid />
    <sublist formid />
    <custom_op formid />
  </operations>
</listsheet>

listsheet

This required element contains the configuration information for a ListSheet HTML component (HTC).

Parent Element
None (document root).
Required Child Elements
columns, global
Optional Child Elements
operations
Data
None.
Attributes
None.

Return to XML Structure

global

This required element specifies global characteristics of a ListSheet HTC, allowing ListSheet HTCs to exhibit different behavior in different situations.

Parent Element
listsheet
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
contextmenuid | Specifies that the ListSheet HTC should provide a right-click task context menu, and that a double-click should run the default task (as specified by the global variable g_sContextDefault) for the selected item in the list. Optional. Legal values: Most modules will use the menu with the ID "bdcontextmenu", ilt by inserting the taskbar. However, custom context menus can be built and used instead. Setting a value here enables the onContentClick event. Default value: None.
contextmenuwidth | Specifies the width of the right-click task context menu. Optional. Legal values: A legal CSS length value in pixels. A suffix of "px" is not required. Default value: "220px".
curpage | Specifies the current page number. Optional. Legal values: Integers. Default value: 1.
headers | Specifies whether column headings are displayed. Optional. Legal values: "yes" and "no". If the value is "no", the display of column headings is suppressed. Default value: "yes".
pagecontrols | Specifies whether or not page controls are displayed. Optional. Legal values: "yes" and "no". If the value is "no", the display of page controls is suppressed. Default value: "yes".
pagesize | Specifies the number of records displayed per page. Optional. Legal values: Integers. Default value: 20. This value is used to calculate the number of pages available for display.
recordcount | Specifies the total number of records in all pages. Optional. Legal values: Integers. Default value: None. This value is used to calculate the number of pages available for display. If it is set to -1 and page controls are displayed, then no last page display or validation is performed.
scroll | Controls whether or not scroll bars are available to display the entire list. Optional. Legal values: "yes" and "no". If the value is "no", the display of scroll bars is suppressed, resulting in a ListSheet HTC that is the height of the entire list (scrolling in the browser might be required in this case). Default value: "yes".
selectall | Specifies whether the ListSheet HTC will show all items as selected. Optional. Legal values: "yes" and "no". If the value is "yes", all items are selected. Default value: "no".
selection | Specifies whether multiple selection is allowed in this instance of the ListSheet HTC. Optional. Legal values: "single" and "multi". Default value: "single". The Select All and Unselect All buttons are only displayed when the value is "multi".
selectionbuttons | Specifies whether the Select All and Unselect All buttons are displayed. Optional. Legal values: "yes" and "no". If the value is "no", display of the Select All and Unselect All buttons is suppressed. Default value: "yes".
sort | Specifies whether clicking on a column heading sorts the records according to the values in that column. Optional. Legal values: "yes" and "no". If the value is "no", column sorting is disabled and the firing of the OnPage event is suppressed. Default value: "yes".

Return to XML Structure

columns

This required element contains the descriptions of the various columns displayed by the ListSheet HTC.

Parent Element
listsheet
Required Child Elements
column (at least one)
Optional Child Elements
subobject
Data
None.
Attributes
None.

Return to XML Structure

column

This required element provides configuration information about a particular column in a ListSheet HTC.

Parent Element
columns
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the column as the user sees it.

Attributes

Attribute Description
format Specifies that special formatting should be used for this column.

Optional.

Legal values: "select", "password", "float". See below for additional details.

Default value: None.

The value "select" will look up the display value from a select list within the metadata.

The value "password" will mask the display in the same manner as an HTML password input element.

The value "float" will display the data as a normalized decimal number.
hide Specifies whether the column is displayed.

Optional.

Legal values: "yes" and "no". If the value is "yes", display of this column is suppressed.

Default value: "no".
id Provides the identifier used to associate this column with its corresponding first-level data.

Required.

Legal values: A string that uniquely identifies the corresponding first-level data in the XML data island identified by the DataXML container attribute.

Default value: None.

The ListSheet HTC expects to find this identifier as an XML element in the first-level of the data to be displayed.
id2 Provides the identifier used to associate this column with its corresponding second-level data.

Optional.

Legal values: A string that uniquely identifies the corresponding second-level data in the XML data island identified by the DataXML container attribute.

Default value: None.

The ListSheet HTC expects to find this identifier as an XML element in the second-level of the data to be displayed.

This attribute must be present for each column to be displayed as the second-level of a two- or three-tiered list.
id3 Provides the identifier used to associate this column with its corresponding third-level data.

Optional.

Legal values: A string that uniquely identifies the corresponding third-level data in the XML data island identified by the DataXML container attribute.

Default value: None.

The ListSheet HTC expects to find this identifier as an XML element in the third-level of the data to be displayed.

This attribute must be present for each column to be displayed as the third-level of a two- or three-tiered list.
sortdir When present, specifies the initial sort column and the direction of the sort.

Optional.

Legal values: "asc" and "desc" (ascending or descending, respectively).

Default value: None.

If more than one column has this attribute set, only the first one has any effect.
width Specifies an initial width for the column.

Optional.

Legal values: An integer between 0 and 100, representing column width as a percentage of control width. The specified widths of all columns are normalized if they do not add up to 100.

Default value: None.

If a width is not specified, the width percentage is calculated as the total width divided by the number of displayed columns.

Remarks

At least one column element is required, though typically several column elements will be specified.

Return to XML Structure

subobject

This optional element specifies details about the data displayed in the detail rows of heterogeneous grouped lists. This data is always specified as the second-level data in the DataXML container attribute, and can be displayed in either the list-style or the properties-style, as specified by the type attribute.

Parent Element
columns
Required Child Elements
column
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
datawidth | Specifies an initial width for the data column when the type attribute is set to "properties". Optional. Legal values: An integer between 0 and 100, representing data column width as a percentage of control width. Default value: 50. When the type attribute is set to "list", this attribute is irrelevant and is ignored if present.
labelwidth | Specifies an initial width for the label column when the type attribute is set to "properties". Optional. Legal values: An integer between 0 and 100, representing label column width as a percentage of control width. Default value: 30. When the type attribute is set to "list", this attribute is irrelevant and is ignored if present.
type | Specifies which type of heterogeneous grouped list will be displayed. Required. Legal values: "list" and "properties". Default value: None.

Remarks

Typically, more than one column element will be specified.

The presence of the subobject element indicates that the ListSheet HTC will display as a heterogeneous grouped list. In this case, the id2 and id3 attributes of the top-level column elements are not used.

When the subobject element is absent, the ListSheet HTC will display as either a flat list, a two-level homogeneous grouped item list, or a three-level homogeneous grouped item list, depending on how many of the attributes id, id2, and id3 are specified.

Return to XML Structure

column

This required element provides configuration information about a particular row or column in a ListSheet displaying a heterogeneous grouped list. Whether it is a column or row depends on whether the type attribute of the subobject element is set to "list" or "properties", respectively.

Parent Element
subobject
Required Child Elements
None.
Optional Child Elements
None.
Data
The name of the column or the label on the row as the user sees it.

Attributes

Attribute Description
format Specifies that special formatting should be used for this column or row.

Optional.

Legal values: "select", "password", "float". See below for additional details.

Default value: None.

The value "select" will look up the display value from a select list within the metadata.

The value "password" will mask the display in the same manner as an HTML password input element.

The value "float" will display the data as a normalized decimal number.
hide Specifies whether the column or row is displayed.

Optional.

Legal values: "yes" and "no". If the value is "yes", display of this column or row is suppressed.

Default value: "no".
id Provides the identifier used to associate this column or row with its corresponding second-level data.

Required.

Legal values: A string that uniquely identifies the corresponding second-level data in the XML data island identified by the DataXML container attribute.

Default value: None.

The ListSheet HTC expects to find this identifier as an XML element in the second-level of the data to be displayed.
width Specifies an initial width for the data column when the type attribute of the subobject element is set to "list".

Optional.

Legal values: An integer between 0 and 100, representing data column width as a percentage of control width. The specified widths of all columns are normalized if they do not add up to 100.

Default value: Calculated by dividing the number of subobject columns by 80, resulting in uniform column width in the right-hand 80% of the overall width of the ListSheet HTC.

When the type attribute of the subobject control is set to "properties", this attribute is irrelevant and is ignored if present.

Remarks

If the subobject element is present, at least one column element is required, though in general, multiple column elements will be specified.

Return to XML Structure

operations

This optional element contains other elements that, when present, cause certain standard XMLHTTP operations to be performed when specific events are fired. This set of operations can also be extended with custom operations.

Parent Element
listsheet
Required Child Elements
None.
Optional Child Elements
page, sort, sublist, custom_op
Data
None.
Attributes
None.

Remarks

All child elements, including custom child elements, represent different operations that will be performed when different events occur.

If the operations element is present but contains no child elements, it will be ignored.

The operations corresponding to the child elements are known as XMLHTTP operations. For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

Return to XML Structure

page

This optional element corresponds to a standard XMLHTTP operation available with the ListSheet HTC. When this element is present, the entire list reloads with new data after the OnNewPage event fires. The new data is returned from a page on the server and must not contain anything except the data in the standard XML data format.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnNewPage event fires. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form must be set to the post page: the page that returns the new page of data.

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "page". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to the OnNewPage event. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.
prevpage | The value of this attribute is set to number of the page currently being displayed, soon to be the previous page displayed.
page | The value of this attribute is set to the number of the new page to be displayed.
column | The value of this attribute is set to the ID of the sort column for the new page of data. This ID is the name of the relevant child element of the record element.
direction | The value of this attribute is set to either "asc" or "desc", depending on whether the new page of data should be sorted in the ascending direction or the descending direction, respectively.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

sort

This optional element corresponds to a standard XMLHTTP operation available with the ListSheet HTC. When this element is present, the entire list reloads with new data after the OnHeaderClick event fires. The new data is returned from a page on the server and must not contain anything except the data in the standard XML data format.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnHeaderClick event fires. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form should be set to the post page: the page that returns the first page of data, re-sorted as specified.

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "sort". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to the OnHeaderClick event. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.
page | The value of this attribute is always set to 1. This operation does not permit re-sorting the list without returning to the beginning of the list, where the "top" of the sort will be displayed.
column | The value of this attribute is set to the ID of the sort column for the new page of data. This ID is the name of the relevant child element of the record element.
direction | The value of this attribute is set to either "asc" or "desc", depending on whether the new page of data should be sorted in the ascending direction or the descending direction, respectively.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

sublist

This optional element corresponds to a standard XMLHTTP operation available with the ListSheet HTC. When this element is present, the list under the currently selected item loads with data when this operation is invoked using the reload method, which should be called in the OnGroupOpen event handling routine. This means that the retrieval of detail data can be deferred until it needs to be displayed.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnGroupOpen event fires. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form should be set to the post page, the page that returns the detail data.

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this argument is set to "sublist". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to the OnGroupOpen event. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.
xmllist | The value of this argument is set to the XML of the list item that was clicked, so that the post page knows what sub-items to return.

In some situations it might be appropriate to include other parameters in the posted form as part of fetching the correct XML response. For example, suppose a response page is designed to be shared by several different pages, returning different results based on which page calls it. In this case, the form might have a hidden element containing the page name so the response page will know which page called it.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

custom_op

Custom operation elements, which are optional, correspond to custom XMLHTTP operations defined for a ListSheet HTC. When a custom operation element is present, the entire list reloads when the reload method is called with its sOp parameter set to the custom name for this element.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the reload method is called with its sOp parameter set to the custom name for this element. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For example, if the element double_sort is included as a custom operation, and the reload method is called with its sOp parameter set to "double_sort", the form with the specified identifier will be posted. For example:

bRetVal = elListSheet.reload("double_sort")

The reload method returns False if no XML is returned or if any error elements are present, and True otherwise.

For more information about XMLHTTP operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute. The action attribute of the form should be set to the post page, the page that returns the new data.

The following table shows the arguments that are sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "custom_op". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to a particular invocation of the reload method. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.

In some situations it might be appropriate to include other parameters in the posted form as part of fetching the correct XML response. For example, suppose a response page is designed to be shared by several different pages, returning different results based on which page calls it. In this case, the form might have a hidden element containing the page name so the response page will know which page called it.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure


QueryBuilder Configuration

The XML data-island identified by the XMLCfgID container attribute contains the configuration information used by the QueryBuilder HTML component (HTC).

For more information about how an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not bolded.

Note

  • The XML elements and attributes in the MetaXML data-island for the QueryBuilder HTC must be expressed in uppercase letters.

XML Structure

<EBCONFIG>
  <EXPR-ASP>relative URL of exprarch directory</EXPR-ASP>
  <PROFILE-LIST>
    <PROFILE>profile name</PROFILE>
    <PROFILE SRC />
  </PROFILE-LIST>
  <SITE-TERMS URL NOLOAD />
  <EEE-INTRINSICS />
  <DEBUG />
  <TYPESOPS>path to xml file</TYPESOPS>
  <MESSAGE>alternate message</MESSAGE>
  <EDIT-NESTED>always, warn, or never</EDIT-NESTED>
  <DATE-FORMAT>date format</DATE-FORMAT>
  <DATE-FIRSTDAY>first day of week</DATE-FIRSTDAY>
  <NUMBER-FORMAT>number format</NUMBER-FORMAT>
  <CURRENCY-FORMAT>currency format</CURRENCY-FORMAT>
  <HELPTOPIC>help topic URL</HELP-TOPIC>
  <ADVANCED />
  <FILTER-PROPERTIES>XSL expression</FILTER-PROPERTIES>
</EBCONFIG>

EBCONFIG

This required element contains the configuration information for an instance of the QueryBuilder HTC.

Parent Element
None (document root)
Required Child Elements
EXPR-ASP, PROFILE-LIST
Optional Child Elements
ADVANCED, CURRENCY-FORMAT, DATE-FIRSTDAY, DATE-FORMAT, DEBUG, EDIT-NESTED, EEE-INTRINSICS, FILTER-PROPERTIES, HELPTOPIC, MESSAGE, NUMBER-FORMAT, SITE-TERMS, TYPESOPS
Data
None.
Attributes
None.

Return to XML Structure

EXPR-ASP

This required element specifies the relative URL of the Exprarch folder, which is required for the proper functioning of the QueryBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

PROFILE-LIST

This required element contains the specifications of the various profiles used by this instance of the QueryBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
PROFILE (at least one is required)
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

PROFILE

This required element specifies a profile in one of two distinct ways. For profile definitions defined within Commerce Server, the name of the profile is specified as data associated with the element. For profiles not defined within Commerce Server, the URL of a valid XML document containing one or more profiles is specified as the value of the SRC attribute.

Parent Element
PROFILE-LIST
Required Child Elements
None.
Optional Child Elements
None.
Data
When the SRC attribute is not present, the name of the profile is specified as data within the PROFILE element. Otherwise, no data is present.

Attributes

Attribute | Description
SRC | Provides the URL of a valid XML document that contains one or more profiles not defined within Commerce Server. Optional. Legal values: A valid URL. Default value: None. When this attribute is specified, the PROFILE element should not contain any data.

Remarks

When the name of a Profile Definition defined within Commerce Server is specified as data for this element, the name must be of the form "CatalogName.ProfileName". For example, "UserProfiles.UserObject".

When a profile not defined within Commerce Server is specified using the SRC attribute, it must conform to a defined XML structure for profile specification. For more information about this structure, see Specifying Profiles and Site Terms in the QueryBuilder HTC.

Return to XML Structure

SITE-TERMS

This optional element specifies alternate information about whether the QueryBuilder HTC should load site-terms, and if so, from where.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
NOLOAD | Suppresses the loading of site-terms for this instance of the QueryBuilder HTC (when set to "1"). Optional. Legal values: "1". Default value: None. If site-term loading is suppressed and queries containing site-terms are passed to the QueryBuilder HTC, errors will result. This attribute should not be specified in combination with the URL attribute.
URL | Provides the URL of a valid XML document that contains alternate site-terms for use in this instance of the QueryBuilder HTC. Optional. Legal values: A valid URL. Default value: None. This attribute should not be specified in combination with the NOLOAD attribute.

REMARKS

When the SITE-TERMS element is present, either the NOLOAD attribute or the URL attribute (but not both) must be specified.

When the SITE-TERMS element is not present, site terms are loaded from the same folder specified by the required EXPR-ASP element.

When an alternate set of site terms is specified using the URL attribute, it must conform to the defined XML structure for site term specification. For more information about this structure, see Specifying Profiles and Site Terms in the QueryBuilder HTC.

Return to XML Structure

EEE-INTRINSICS

This optional element, when present, causes the QueryBuilder HTC to expose the intrinsic properties of the Expression Evaluator as a profile in its drop-down menus.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

DEBUG

This optional element, when present, causes the QueryBuilder HTC to display debugging information.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Return to XML Structure

TYPESOPS

This optional element, when present, specifies a types and operators XML file for the QueryBuilder HTC to use.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The relative path to the XML types and operators file.
Attributes
None.

Remarks

If this element is not specified, the default types and operators file is /Widgets/ExprbldrHTC/TypesOpsA.xml.

Return to XML Structure

MESSAGE

This optional element, when present, specifies an alternate message to be displayed above the expression-selector area.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The alternate message.
Attributes
None.

Remarks

When the MESSAGE element is not present, the default message is "Target based to the following conditions:".

Return to XML Structure

EDIT-NESTED

This optional element, when present, specifies whether editing of nested expressions is allowed or prevented, or only allowed if the user explicitly allows it in response to a warning dialog box.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
One of the three values "always", "warn", or "never". See Remarks for more details.
Attributes
None.

Remarks

Specifying "always" results in the nested expression being opened in edit mode. In general, this is not recommended.

Specifying "warn" results in a warning dialog box that offers the choice between opening the nested expression in edit mode or view mode.

Specifying "never" results in the nested expression being opened in view mode.

The default behavior, in the event that the EDIT-NESTED element is not present or contains an illegal data value, is to not allow the editing of nested expressions.

The EDIT-NESTED is only relevant when an expression is being created or edited.

Return to XML Structure

DATE-FORMAT

This optional element, when present, specifies the display format for dates.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for dates.
Attributes
None.

Remarks

Valid formats for dates are "m/d/yyyy", "d/m/yyyy", and "yyyy/m/d". The default is "m/d/yyyy". The separator can be specified as any of the following three characters: forward slash ("/"), hyphen ("-"), and period ("."). The default separator is forward slash ("/"). Any number of the characters "m", "d", and "y" may be specified without affecting displayed dates; months and days will always be displayed without a leading zero, and years will always be displayed using 4 digits.

Return to XML Structure

DATE-FIRSTDAY

This optional element, when present, specifies the day of the week that will be considered the first day of the week.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
A number in the range 0 (Sunday) to 6 (Saturday).
Attributes
None.

Remarks

Days of the week are represented by numbers between 0 and 6, as follows: 0 = Sunday; 1 = Monday; 2 = Tuesday, 3 = Wednesday; 4 = Thursday; 5 = Friday, and 6 = Saturday.

If this element is not present, the default first day of the week is Sunday.

Return to XML Structure

NUMBER-FORMAT

This optional element, when present, specifies the display format for numbers.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for numbers.
Attributes
None.

Remarks

Valid formats for numbers are specified using a string that indicates the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), space-separated from the number or not, or it can be parentheses around the number.

If this element is not present, the default format is "–1.1".

Examples:

1.1 -1.1 1.1- (1.1)

Return to XML Structure

CURRENCY-FORMAT

This optional element, when present, specifies the display format for currency.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The display format for currency.
Attributes
None.

Remarks

Valid formats for currency are specified using a string that indicates the manner in which negative values will be indicated (or not), relative to the placement of digits. The negative value indicator can be a leading or trailing hyphen ("-"), space-separated from the number or not, or it can be parentheses around the number.

If this element is not present, the default format is "–1.1".

No currency symbol should be specified as part of this format.

Examples:

1.1 -1.1 1.1- (1.1)

Return to XML Structure

HELPTOPIC

This optional element, when present, specifies a help topic for this instance of the QueryBuilder HTC.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The absolute URL of the corresponding help topic.
Attributes
None.

Remarks

If this element is present, the QueryBuilder HTC will display a help button, which when clicked will display the specified help topic.

Use the server-side utility routine sRelURL2AbsURL to generate the absolute URL required by this element. For example:

<HELPTOPIC><%=sRelURL2AbsURL("../docs/htm/yourhelpfile.htm")%></HELPTOPIC>

Return to XML Structure

ADVANCED

This optional element, when present, specifies that advanced editing will be allowed. Advanced editing allows the use of the OR operator in expressions.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

If this element is not present, advanced editing is not allowed.

Return to XML Structure

FILTER-PROPERTIES

This optional element, when present, specifies an XSL pattern fragment used for filtering properties from the profile. If this element is present, the provided XSL pattern will be applied to the properties in each profile that is loaded. Any properties that do not conform to the XSL pattern will not be shown when creating or editing expressions.

Parent Element
EBCONFIG
Required Child Elements
None.
Optional Child Elements
None.
Data
The XSL pattern fragment.
Attributes
None.

Remarks

The default XSL pattern fragment is: not(@isActive) || @isActive != '0'

The data values supplied for this element are actually XSL pattern fragments because they are surrounded by the strings "Property[" and "]" to achieve the actual XSL pattern. For example, the actual default XSL pattern, shown with the added strings in bold, is as follows:

Property[not(@isActive) || @isActive != '0']

Element attributes return "0" when they are not defined. Therefore, it is recommended the XSL pattern fragments specified as data for this element check for the presence of an attribute as well as for the attribute value being set to zero. The default XSL pattern is an example of both of these conditions being checked.

Return to XML Structure


Specifying Profiles and Site Terms in the QueryBuilder HTC

Both the PROFILE and SITE-TERMS elements, which are part of the MetaXML for the ExpressionBuilder and QueryBuilder HTCs, can be configured to use alternative profiles and site terms, respectively. These alternative profiles and site terms are specified by providing the URL of an XML file, as the value of the SRC attribute of the PROFILE element and the URL attribute of the SITE-TERMS element, respectively.

The XML structure used to specify alternative profiles and site terms for the QueryBuilder HTC consists of a subset of the more general XML schema used for profiles within Commerce Server. The QueryBuilder HTC is not concerned with all of the elements and attributes of the more general schema, and will ignore those elements and attributes that are not of interest to it.

The XML structures used to specify profiles and site terms are similar enough that they are described here together. In terms of elements, they are the same except for the type of child element that must be present for the Property element.

In the case of profiles, the Property element typically contains one DataRef element, representing the data-member to which the property maps.

In the case of site terms, the Property element contains at least one, and typically several, Attribute elements, each representing one of the choices available for that site term.

In both profile and site term specification, the Group element can be used to organize properties and site terms into a hierarchy. This can be beneficial when there are a large number of properties or site-terms present.

The descriptions of each element and attribute specify whether they are relevant for only profiles, or only site terms.

XML Structure

<Profile name displayName description>
  <Property name displayName description propType
            referenceString isActive isMultiValue isSearchable>
    <DataRef idref />
    . . .
    <DataRef />
    <Attribute name displayName description />
    . . .
    <Attribute />
  </Property>
  . . .
  <Property> . . .</Property>
  <Group name displayName description>
    <Property/>
    <Group/>
  </Group>
  . . .
  <Group> . . .</Group>
</Profile>

Profile

This required element represents a profile definition or the definition of a set of site terms.

Parent Element
None (document root)
Required Child Elements
None.
Optional Child Elements
Property, Group
(At least one is required.)
Data
None.

Attributes

Attribute | Description
name | Provides a programmatic name for this profile or set of site terms, used when accessing it from code. Required. Legal values: Any string up to 30 characters in length. Default value: None.
displayname | Provides a friendly name for the profile or set of site terms, used when it is displayed in a user interface. Required. Legal values: Any string up to 30 characters in length. Default value: Most tools default this value to be the same as name attribute. The value of this attribute may be locale-specific.
description | Stores additional information about the purpose of a set of site terms. If this attribute is present in a profile specification, it is ignored by the QueryBuilder HTC. Optional. Legal values: Any string up to 200 characters in length. Default value: None (an empty string). The value of this attribute may be locale-specific.
defaultTableName, isNew, isModified, isDeleted | These attributes, which may appear in the more general profile schema, are not relevant to site term specification for the QueryBuilder HTC.

Return to XML Structure

Property

This required element represents a single property in a profile definition, or a single site term within a set of site terms.

Parent Elements
Profile, Group
Required Child Elements
None.
Optional Child Elements
DataRef (profiles), Attribute (site terms)
(at least one of the relevant type is required.)
Data
None.

Attributes

Attribute | Description
name | Provides a programmatic name for this property or site term, used when accessing it from code. Required. Legal values: Any string up to 30 characters in length. Default value: None.
displayname | Provides a friendly name for the property or site term, used when it is displayed in a user interface. Required. Legal values: Any string up to 30 characters in length. Default value: Most tools default this value to be the same as name attribute. The value of this attribute may be locale-specific.
description | Stores additional information about the purpose of a site term. If this attribute is present in a profile specification, it is ignored by the QueryBuilder HTC. Optional. Legal values: Any string up to 200 characters in length. Default value: None (an empty string). The value of this attribute may be locale-specific.
propType | Stores the data type of a property. If this attribute is present in a set of site terms, it is ignored by the QueryBuilder HTC. Required. Legal values: STRING, SITETERM, PASSWORD, NUMBER, BOOL, DATE, TIME, DATETIME, PROFILE. Default value: None. The values SITETERM and PASSWORD are strings, but with specific semantics applied. The values DATE, TIME, and DATETIME are all stored as a single date-time data type, but with different semantics applied.
referenceString | Stores supplementary information about the data type of a property. If this attribute is present in a set of site terms, it is ignored by the QueryBuilder HTC. Optional. Legal values: The name of a profile. Default value: None. If the propType attribute specifies a profile, this attribute must specify the name of a profile.
isActive | Indicates whether the value of this property is loaded by the Profile Service. If this attribute is present in a set of site terms, it is ignored by the QueryBuilder HTC. Optional. Legal values: "true" and "false". If the value is "true", the value of this property is loaded by the Profile Service. If the value is "false", the value of this property is not loaded by the Profile Service. Default value: "true".
isMultiValue | Indicates whether this property is multi-valued, that is, consists of a list of values. If this attribute is present in a set of site terms, it is ignored by the QueryBuilder HTC. Optional. Legal values: "true" and "false". If the value is "true", this property is multi-valued. If the value is "false", this property is multi-valued. Default value: "false".
isSearchable | Indicates whether fast searching can be performed on this property. If this attribute is present in a set of site terms, it is ignored by the QueryBuilder HTC. Optional. Legal values: "true" and "false". If the value is "true", fast searching can be performed on this property. If the value is "false", searching on this property can still be performed, but may be slower. Default value: "false".
keyDef, defaultValue, isCached, isDefaultNull, isExported, isHidden, isPrivate, isReadOnly, isRequired, isUpdatable, isNew, isModified, isDeleted | These attributes, which may appear in the more general profile schema, are not relevant to the QueryBuilder HTC. This is true with respect to both profile and site term specification.

Return to XML Structure

Attribute

With respect to the QueryBuilder HTC, this element is only relevant in the specification of sets of site terms. It represents one of the choices available for the site term. In general, there will be several Attribute elements specified, representing a corresponding set of choices.

In the more general profile schema, it may appear as a child element of Profile, Group, Property, and SourceInfo elements.

Parent Element
Property (in site term specifications)
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
name | Provides a programmatic name for this site term choice, used when accessing it from code. Required. Legal values: Any string up to 30 characters in length. Default value: None.
displayname | Provides a friendly name for this site term choice, used when it is displayed in a user interface. Required. Legal values: Any string up to 30 characters in length. Default value: Most tools default this value to be the same as name attribute. The value of this attribute may be locale-specific.
description | Stores additional information about the purpose of a site term choice. Optional. Legal values: Any string up to 200 characters in length. Default value: None (an empty string). The value of this attribute may be locale-specific.
value, isNew, isModified, isDeleted | These attributes, which may appear in the more general profile schema, are not relevant to site term specification for the QueryBuilder HTC.

Return to XML Structure

DataRef

With respect to the QueryBuilder HTC, this element is only relevant in the specification of profiles. In the more general profile schema, it may appear as a child element of Profile, Group, Property, and SourceInfo elements.

This element contains the mapping information about its parent property. Each DataRef element contains a reference to a data member in a data object exposed by a data source. When a profile property is mapped to multiple data members (as when the property is an aggregated property), it will contain multiple DataRef child elements.

Parent Element
Property (in profile specifications)
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
idref | Specifies the data-member to which the parent Property element maps. Required. Legal values: Strings of the form sourceName.objectName.memberName. Default value: None.
isRDNAttribute, isModified | These attributes, which may appear in the more general profile schema, are not relevant to site term specification for the QueryBuilder HTC.

Return to XML Structure

Group

This element represents a logical grouping of properties or site terms, and potentially subgroups, in a profile definition or set of site terms.

Parent Elements
Profile, Group
Required Child Elements
None.
Optional Child Elements
Group, Property
(at least one is required.)
Data
None.

Attributes

Attribute | Description
name | Provides a programmatic name for this group, used when accessing it from code. Required. Legal values: Any string up to 30 characters in length. Default value: None.
displayname | Provides a friendly name for this group, used when it is displayed in a user interface. Required. Legal values: Any string up to 30 characters in length. Default value: Most tools default this value to be the same as name attribute. The value of this attribute may be locale-specific.
description | Stores additional information about the purpose of a group. Optional. Legal values: Any string up to 200 characters in length. Default value: None (an empty string). The value of this attribute may be locale-specific.
isNew, isModified, isDeleted | These attributes, which may appear in the more general profile schema, are not relevant to the QueryBuilder HTC. This is true with respect to both profile and site term specification.

Return to XML Structure


TreeView Configuration

The TreeView control requires that the tree to be displayed be passed to it in the form of an XML data-island. The container attribute DataXML is set to the ID of this data-island.

For more information about the ways in which an XML document can be included on a page (creating an XML data-island), see XML Data-Islands.

It is important to note that the TreeView HTC is the only Commerce Server Business Desk HTC that does not have any configuration data. In other words, there is no MetaXML container attribute that must be specified for the TreeView HTC. Only data is provided, using the DataXML container attribute. The nested nature of the elements provides the nesting shown in the displayed tree.

The structure of this data-island is shown below, with links to more detailed explanations of each element. Element attributes are shown in italic and without the values that are normally associated with them. Required elements and attributes are shown in bold; optional elements and attributes are not bolded.

Note

  • The XML elements and attributes, not including the arbitrarily named elements, in the MetaXML data-island for the TreeView HTC must be expressed in lowercase letters.

XML Structure

<document selection>
  <level_1_element caption closed
                   enabled hidden
                   queryid selected
                   skip>data that might be displayed
    <level_2_element caption closed
                     enabled hidden
                     queryid selected
                     skip>data that might be displayed
      <level_3_element caption closed
                       enabled hidden
                       queryid selected
                       skip>data that might be displayed

Note that levels can go to an arbitrary depth...

      </level_3_element>
    </level_2_element>
  </level_1_element>
  <another_level_1_element caption closed
                           enabled hidden
                           queryid selected
                           skip>data that might be displayed
    <another_level_2_element caption closed
                             enabled hidden
                             queryid selected
                             skip>data that might be displayed
      <expand />
    </another_level_2_element>
  </another_level_1_element>
  <operations>
    <expand formid />
    <custom_op formid />
  </operations>
</document>

document

This required element contains the configuration information for a TreeView HTML Component (HTC).

Parent Element
None (document root)
Required Child Elements
None.
Optional Child Elements
operations, arbitrary_tree_nodes
Data
None.

Attributes

Attribute | Description
selection | Specifies whether multiple selection will be allowed. Optional. Legal values: "single" and "multi", allowing single and multiple selection, respectively. Default value: "single".

Remarks

To be meaningful, the document element must contain one or more elements besides the operations element. The names of these other elements is arbitrary, and in certain circumstances these names are used as the display string for the corresponding tree node shown to the user.

Return to XML Structure

level_N_element

Other than the document element, the two types of expand elements, and the operations element, the names of all elements in the data-island for the TreeView HTC are arbitrary. There are circumstances where the element name itself is displayed in the control; in such cases extra care must be taken with regard to the element names. Otherwise, they can be truly arbitrary with no effect on the functioning of the TreeView HTC. The arbitrary elements may contain data and may contain the caption attribute, but need not.

Parent Element
document, arbitrary_tree_element
Required Child Elements
None.
Optional Child Elements
arbitrary_tree_element
Data
Optionally, a string that will be displayed to the user as the name of the tree node, if no caption attribute value is provided for this element.

Attributes

Attribute | Description
caption Provides the highest precedence choice for text to be displayed to the user.

Optional.

If present, it overrides both data supplied with the element and the element name itself.
closed When set to "yes", the tree item corresponding to this element will initially be displayed as closed.

Optional.

If not present, or set to any other value, and assuming that the element has child elements, the corresponding item is initially displayed as open.
enabled When set to "no", the tree item corresponding to this element will be disabled.

Optional.

Disabled items are dimmed, and their events are suppressed.

Further, even if they have child items, they cannot to be opened and closed.

If this attribute is not present, or set to any other value, the item is enabled, resulting in normal display and operation.
hidden When set to "yes", the tree item corresponding to this element will be hidden.

Optional.

Any child items are hidden as well.

If this attribute is not present, or set to any other value, the item is visible.
queryid | This attribute is reserved for use by the TreeView HTC itself and should not be set prior to invoking the TreeView HTC.
selected When set to "yes", the tree item corresponding to this element will be initially displayed as selected.

Optional.

Legal values are "yes" and "no".

After initial loading, this attribute continues to be maintained. In other words, it is set to either "yes" or "no" as the corresponding tree item is selected and deselected, respectively.
skip When set to "yes", the corresponding element will be skipped when building the tree structure.

Optional.

If this attribute is not present, or set to any other value, the element is not skipped and results in an item in the tree being displayed (subject to other effects of other attributes).

Unlike the hidden attribute, setting the skip attribute for an element to "yes" does not prevent its child elements from being displayed.

Remarks

The text that is displayed to the user for a particular item in the tree can come from one of three places, with a specific order of precedence, as follows:

  1. If the element has a caption attribute, the value of that attribute is displayed.
  2. Otherwise, if the element contains data, that data is displayed.
  3. Otherwise, the element name itself is displayed.

For example, consider the following XML tree structure, which shows the actual text to be displayed in bold font. Note the presence of the expand element, which allows deferred loading of portions of the tree.

<Item1A>
  <LevelTwo caption=Item2A>Data that will not be displayed
    <LevelThree>Item3A</LevelThree>
    <LevelThree>Item3B</LevelThree>
  </LevelTwo>
</Item1A>
<Item1B>
  <LevelTwo caption=Item2B>More text that will not be displayed
    <LevelThree>Item3C</LevelThree>
    <LevelThree>Item3D</LevelThree>
  </LevelTwo>
  <LevelTwo>Item2C
    <expand />
  </LevelTwo>
</Item1B>
<Item1C>
  <LevelTwo caption=Item2D />
</Item1B>

Given the XML tree structure above, the TreeView HTC displays the following tree when fully expanded, and assuming that the one expand element resulted in a single item named "Item3E (retrieved using expand operation)" being returned.

[-] Item1A

[-] Item2A

Item3A

Item3B

[-] Item1B

[-] Item2B

Item3C

Item3D

[-] Item2C

Item3E (retrieved using expand operation)

[-] Item1C

Item2D

Return to XML Structure

expand

This optional element marks a place in the tree structure where the loading of subordinate tree elements is deferred until the element in question is actually expanded by the user.

Parent Element
arbitrary_element
Required Child Elements
None.
Optional Child Elements
None.
Data
None.
Attributes
None.

Remarks

There are two distinct types of expand elements that can occur in the DataXML data-island. This is the first type, which can occur within the arbitrarily named tree elements, and which serves as a placeholder for where the loading of a section of the tree has been deferred, and thus where expansion can occur.

Together, the two types of expand elements are used to perform a special type of XMLHTTP Operation available with the TreeView HTC. This operation allows the loading of the subordinate tree items to be deferred until the containing tree item is opened. In circumstances involving large numbers of items, such deferral can drastically improve the performance of the initial loading and display of the tree.

This element, when present as the sole child element of another element, causes that element to be displayed as a containing item. In other words, with a plus sign indicating the (potential) presence of one or more subordinate items that are not currently being shown. The containing item must be initially closed because the subordinate items have not yet been retrieved. Indeed, the presence of the expand element implies that the closed attribute of its containing element is set to "yes".

When a tree item is opened by a user, the OnItemOpen event fires. If the data for the item being opened is already loaded, no event handler need be assigned to this event. On the other hand, if this event fires and the TreeView HTC finds an expand element rather than the requisite data, an event handling routine needs to be in place. This routine is responsible for adding arguments to the form so that the response page knows which node is being expanded. If no event handling routine has been assigned to the OnItemOpen event and an expand element is encountered, no arguments will be added to the form, and the operation is not likely to return the proper data.

Arguments are added to the form in the standard fashion: hidden input elements are embedded in the form, and the event handling routine simply assigns the appropriate values to those input elements. For example, suppose there is a form element with its id attribute set to "tvform" and it contains a hidden input element with its id attribute set to "category". The event handling routine can assign the value "chocolate" to that input element with the following line of code:

tvform.category.value = 'chocolate'

Once the event handling routine, if any, has run, and if the TreeView HTC has found an expand element where it needs to show a newly expanded section of the tree, the TreeView HTC will call the reload method with the sOp parameter set to "expand".

For more information about XMLHTTP Operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as the formid attribute of the other expand element, the one that is subordinate to the operations element. Unless you were to change the value of this attribute dynamically, all expansion must be handled by the same form. On the response page at the server, the passed arguments must be used to determine the item being expanded, so that the correct data can be returned.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

operations

This optional element contains other elements that, when present, cause certain custom XMLHTTP Operations to be performed when the reload method is invoked with certain parameter values.

Parent Element
document
Required Child Elements
None.
Optional Child Elements
expand, arbitrary_operations_elements
Data
None.
Attributes
None.

Remarks

If the operations element is present but contains no child elements, it is ignored.

Return to XML Structure

expand

This optional element identifies the form element that will be used to post the expansion request to the server.

Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the OnItemOpen event fires and its handler calls the reload method with the sOp parameter set to "expand". Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

There are two distinct types of expand elements that can occur in the DataXML data-island. This is the second type, which can occur within the operations element, and which serves to identify the form element that will be used to post the expansion request to the server.

Together, the two types of expand elements are used to perform a special type of XMLHTTP Operation available with the TreeView HTC. This operation allows the loading of the subordinate tree items to be deferred until the containing tree item is opened. In circumstances involving large numbers of items, such deferral can drastically improve the performance of the initial loading and display of the tree.

If any of the other type of expand elements exist in the DataXML data-island, then this expand element must be present, providing the ID of the form used to handle deferred item loading. The action attribute of this form must be set to the post page, the page that returns the new, expand section of the tree.

Like other HTTP/XML Operations, the new data returned from the post page on the server must not contain anything except the data in the standard XML data format.

The returned set of subordinate items actually replaces the expand element in the tree. This means that a particular expand operation will normally only occur once for each instantiation of the TreeView HTC.

For more information about XMLHTTP Operations, see XMLHTTP Operations and Fetch Pages.

This type of expand element is optional, but must be present if any of the other type of expand elements are present.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure

custom_op

Custom operation elements correspond to custom XMLHTTP Operations defined for a TreeView HTC. When a custom operation element is present, the entire tree reloads when the reload method is called with its sOp parameter set to the custom name for the element.

For example, if the element alpha_sort is included as a custom operation, and the reload method is called with its sOp parameter set to "alpha_sort", the form with the specified identifier will be posted. For example,

elTreeView.reload("alpha_sort")
Parent Element
operations
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
formid | Specifies the identifier of the form that will be posted when the reload method is called with its sOp parameter set to the custom name for this element. Required. Legal values: Valid id attribute of a form element. Default value: None.

Remarks

For more information about XMLHTTP Operations, see XMLHTTP Operations and Fetch Pages.

The identifier of the corresponding form is set as an attribute. The action attribute of the form should be set to the post page, the page that returns the new tree data.

The following table shows the arguments that are automatically sent when the form is posted.

Argument | Description
op | The value of this attribute is set to "custom_op". This argument, combined with the post page specified as an attribute of the form, allows specific server-side code to be run in response to a particular invocation of the reload method. The op argument allows the same post page to process more than one operation, branching to perform different operations based on the value of this argument.

Additional arguments can be added to the form in the standard fashion: hidden input elements are embedded in the form, and the appropriate argument values are assigned to those input elements prior to the form being posted.

Custom operation elements are optional.

For more information about how the posting of forms is used to perform operations on the server, including saving changes to data, see Saving Changes to Data.

Return to XML Structure


Security Configuration

Extensible Markup Language (XML) structures are used by Commerce Server Business Desk to provide security information.

A master security configuration file is used to link multiple area security configuration files together into an overall structure. This section defines the structures of the master security configuration file and the area security configuration files.

This section contains:

  • Master Security Configuration File. Describes the XML structure of the master security configuration file that ties all area security configuration files together.
  • Area Security Configuration Structure and Files. Describes the XML structure of the area security configuration files that specify the security details of each individual area, and describes the ASP files that are used to generate the security information for the catalog and profile areas.


Master Security Configuration File

The file config\master_security_config.xml defines various security areas that are known to Commerce Server Business Desk. In addition to the one implicit security area for the Business Desk Framework (which is not specified in this file), Commerce Server 2002 defines two security areas: "catalog" and "profile". The specific security definitions for these two areas are provided by the ASP files config\bd_catalog_security_config.asp and config\bd_users_security_config.asp, respectively.

XML Structure

<config>
  <areas>
    <area definition_url name />
    . . .
  </areas>
</config>

config

This required element contains the security configuration information for Business Desk.

Parent Element
None (document root).
Required Child Elements
areas
Optional Child Elements
None.
Data
None.

Attributes

None.

Return to XML Structure

areas

This required element contains the definitions of the security areas for Business Desk.

Parent Element
config
Required Child Elements
None.
Optional Child Elements
area
Data
None.

Attributes

None.

Remarks

To be meaningful, the areas element must contain one or more area elements.

Return to XML Structure

area

This optional element defines a Business Desk security area and specifies the URL of the file that provides the security configuration for that area.

Parent Element
areas
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute Description
definition_url Specifies the URL of a security area file.

Required.

Legal values: Valid strings that evaluate to an XML or ASP file that returns a valid security configuration.

Default value: None.

For example, the URLs for the pre-defined security areas are:

  • bd_catalog_security_config.asp
  • bd_users_security_config.asp
name Specifies a name for the security area.

Required.

Legal values: Valid strings.

Default value: None.

For example, the pre-defined security areas are named "catalog" and "profile". There is also an implicit security area for the Business Desk Framework.

Remarks

For the security configuration to be meaningful, at least one area element must exist within the areas element.

Return to XML Structure


Area Security Configuration Structure and Files

The file config\master_security_config.xml specifies ASP files that define the specific security definitions for various security areas. These ASP files provide security definitions for their corresponding areas by returning XML in the structure defined in this topic. Commerce Server 2002 includes two such files: config\bd_catalog_security_config.asp and config\bd_users_security_config.asp, which define the security definitions for the security areas "catalog" and "profile", respectively. Refer to these files as models for creating similar files for any new security areas you define.

XML Structure

<config>
  <area displayname>
    <entities/>
      <entity display_name id >
        <elements>
          <element display_name id />
          . . .
        </elements>
        <rights>
          <right display_name id />
          . . .
        </rights>
      </entity>
      . . .
    </entities>
    . . .
  </area>
</config>

config

This required element contains the security configuration information for a particular security area.

Parent Element
None (document root).
Required Child Elements
area (at least one).
Optional Child Elements
None.
Data
None.

Attributes

None.

Return to XML Structure

area

This required element defines a Business Desk security area and contains all the elements and rights for that area.

Parent Element
None (document root).
Required Child Elements
entities
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
displayname | Specifies a display name for this security area. Required. Legal values: Valid strings. Default value: None. This display name will be used in the Business Desk Security module.

Return to XML Structure

entities

This required element contains the definitions of the security entities for this security area.

Parent Element
area
Required Child Elements
entity (at least one is required).
Optional Child Elements
None.
Data
None.

Attributes

None.

Remarks

Security entities are conceptual categories of things that can be secured. For example, in the Business Desk Framework the built-in entities are "bdfw_category", "bdfw_module", and a dynamically-named entity for each task on an action page.

Return to XML Structure

entity

This required element contains the definitions of the security elements and rights for this entity.

Parent Element
entities
Required Child Elements
elements, rights (one of each)
Optional Child Elements
None.
Data
None.

Attributes

Attribute Description
displayname Specifies a display name for this security entity.

Required.

Legal values: Valid strings.

Default value: None.

This display name will be used in the Business Desk Security module.
id Specifies an internal identifier for this security entity.

Required.

Legal values: Valid strings.

Default value: None.

This identifier must be unique across all entities, regardless of the security area for which it is defined. This is why the Business Desk Framework, Profiling System, and the Product Catalog System all of define entities with a prefix that will make them unique: for instance the Catalog System defines 田atalog_properties� instead of just 菟roperties�.

This identifier will be returned as the Entity field in Recordset objects returned by the methods of the BizDeskSecurity object.

Remarks

A security entity is a conceptual category of things that can be secured. For example, the catalog "area" pre-defines the entities "property" and "catalog".

Return to XML Structure

elements

This required element contains the security elements defined for a particular security entity.

Parent Element
entity
Required Child Elements
element (at least one is required).
Optional Child Elements
None.
Data
None.

Attributes

None.

Remarks

Security elements are particular instances of a particular kind of security entity. For example, in the Business Desk Framework each of the modules defined in the module configuration files are security elements associated with the security entity "module".

Return to XML Structure

element

This required element specifies a particular security element for a particular security entity.

Parent Element
elements
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
displayname | Specifies a display name for a security element associated with a particular security entity. Required. Legal values: Valid strings. Default value: None. This display name will be used in the Business Desk Security module.
id | Specifies an internal identifier for this security element. Required. Legal values: Valid strings. Default value: None. This identifier will be returned as the Element field in Recordset objects returned by the methods of the BizDeskSecurity object.

Remarks

A security element is a particular instance of a particular kind of security entity. For example, the catalog "area" pre-defines the element "SKU" for its "property" entity.

Return to XML Structure

rights

This required element contains the security rights defined for a particular security entity.

Parent Element
entity
Required Child Elements
right (at least one is required).
Optional Child Elements
None.
Data
None.

Attributes

None.

Remarks

Security rights represent the various actions that are subject to being allowed or denied for a particular kind of security entity. For example, the catalog "area" only defines a single type of right, "edit", for both of its entities.

Return to XML Structure

right

This required element defines a type of action that will be allowed or denied for a particular security element of a particular security entity.

Parent Element
rights
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
displayname | Specifies a display name for a security right associated with a particular security element of a particular security entity. Required. Legal values: Valid strings. Default value: None. This display name will be used in the Business Desk Security module.
id | Specifies an internal identifier for this security right. Required. Legal values: Valid strings. Default value: None. This identifier will be returned as the Right field in Recordset objects returned by the methods of the BizDeskSecurity object.

Remarks

Because security rights define actions that can be allowed or denied, their display names are most commonly expressed as verbs, such as "edit" or "read".

Return to XML Structure


International Configuration

Extensible Markup Language (XML) structures are used by Commerce Server Business Desk to provide internationalization information. There are separate files for configuring information about different currencies and different languages, both of which are discussed in this section. This information is made available to modules through the xmlGetCurrencies() function in ASPUtil.asp. This routine returns an XML document resulting from an XSL transform of this file.

This section contains:

  • Currency Configuration. Describes the XML structure of the currency configuration file that provides information about different currencies.
  • Language Configuration. Describes the XML structure of the language configuration file that provides information about different languages.


Currency Configuration

The file config\currencies.xml defines various currencies that are known to Commerce Server Business Desk and which are available for modules to use.

XML Structure

<Currencies>
  <Currency display_name iso4217 />
  . . .
</Currencies>

Currencies

This required element contains the currency configuration information for Commerce Server Business Desk.

Parent Element
None (document root).
Required Child Elements
None.
Optional Child Elements
Currency
Data
None.

Attributes

None.

Remarks

To be meaningful, the Currencies element must contain one or more Currency elements.

Return to XML Structure

Currency

This optional element contains the configuration information about a single currency known to Business Desk.

Parent Element
Currencies
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
display_name | Specifies a display name for the corresponding currency. Required. Legal values: Valid strings. Default value: None. For example, the display name for US dollars is "United States Dollar".
iso4217 | Specifies the three-character ISO currency code for the corresponding currency. Required. Legal values: Valid ISO 4217 currency codes. Default value: None. The ISO 4217 currency code is usually composed of a two-character ISO 3166 country/region code followed by a one-character currency designator. Continuing the US dollar example, the code for US Dollars is simply the two-character ISO 3166 code for the United States (US) followed by a one-character currency designator (D), yielding "USD".

Remarks

For the currency configuration to be meaningful, at least one Currency element must exist within the Currencies element.

Return to XML Structure


Language Configuration

The file config\languages.xml defines various languages that are known to Commerce Server Business Desk and which are available for modules to use. This information is made available to modules through the xmlGetLanguages()function in ASPUtil.asp. This routine returns an XML document resulting from an XSL transform of this file.

XML Structure

<Languages>
  <Language collation browser_language display_name
            iso639x primary_language word_breaker />
  . . .
</Languages>

Valid values are the LCIDs of the languages for which wordbreakers are provided by SQL Server.

The hexadecimal numbers in the below table are valid values. The text represents the wordbreaker for that language.

0 Neutral 0x0804 Chinese_Simplified
0x0404 Chinese_Traditional
0x0413 Dutch
0x0809 English_UK
0x0409 English_US
0x040c French
0x0407 German
0x0410 Italian
0x0411 Japanese
0x0412 Korean
0x0c0a Spanish_Modern
0x041d Swedish_Default

Languages

This required element contains the language configuration information for Commerce Server Business Desk.

Parent Element
None (document root).
Required Child Elements
None.
Required Child Elements
Language
Data
None.

Attributes

None.

Remarks

To be meaningful, the Languages element must contain one or more Language elements. Multilingual aspects of the catalog system are configured using this information. Examples include: the set of languages associated with a multilingual property, or the set of default values for that property, and the set of languages associated with a catalog. Usually interaction with the catalog occurs within the context of a certain language, either through a user interface selection or a programmatic setting. This means that all multilingual properties will expose (to a user interface) or return values associated with the current language selection or setting for that catalog.

Return to XML Structure

Language

This optional element contains the configuration information about a single language known to Business Desk.

Parent Element
Languages
Required Child Elements
None.
Optional Child Elements
None.
Data
None.

Attributes

Attribute | Description
collation | Specifies the SQL collation identifier for the corresponding language. Optional. Legal values: Valid SQL collation identifiers. Default value: None. If this attribute is not specified, as is the default, collation will default to the SQL default for the corresponding language.
culture_name | Specifies the culture name and follow the RFC 1766 standard in the format "<languagecode2>-<country/regioncode2>", where <languagecode2> is a lowercase two-letter code derived from ISO 639-1 and <country/regioncode2> is an uppercase two-letter code derived from ISO 3166. Required. Legal values: Valid RFC 1766 culture identifiers. For example, U.S. English is "en-US". Some culture names have prefixes that specify the script; for example, "Cy-" specifies the Cyrillic script, "Lt-" specifies the Latin script.
culture_code | Specifies the locale identifier (or LCID) following the RFC 1766 standard. This is represented as a four digit hex value prefixed with �0x�. Required. Legal values: Valid RFC 1766 locale identifiers. For example, U.S. English is "0x0409".
display_name | Specifies a display name for the corresponding language. Required. Legal values: Valid strings. Default value: None. For example, the display name for US English is "English (United States)".
iso639x | Specifies the ISO 639 two-character language code (plus an optional third character as used by Windows to identify sublanguages) for the corresponding language. Required. Legal values: Valid ISO 639x language codes. Default value: None. For example, the iso639x code for US English is "ENU".
word_breaker | Specifies the SQL word breaker to be used for the corresponding language. Optional. Legal values: Valid SQL word breakers. Default value: None. If this attribute is not specified, as is the default, the word breaker will default to the SQL default for the corresponding language.

Remarks

For the language configuration to be meaningful, at least one Language element must exist within the Languages element.

Return to XML Structure


Expression XML Structures

The expression Extensible Markup Language (XML) schema defines the form of expressions that can be used in Commerce Server 2002. The part of the expression that can be evaluated is stored as an XML string in the ExprBody field of an ActiveX Data Object (ADO) Recordset object. The Recordset objects are contained in a group of tables in the Commerce database known as the Expression Store. (See the PROFILES database table EX_ExprInfo.)

This section contains:

  • Expression Recordset Schema. Describes the XML expression recordset schema.
  • Expression Body Structure. Describes the XML structure, elements, and attributes of the expression body of the expression recordset. This is the evaluable part of the recordset.
  • Data Types and Operators. Describes the valid data types and operators.
  • Intrinsics. Describes the intrinsics, which are time and date properties evaluated on the server.
  • Expression Example. Provides an example of a valid XML expression.

See Also

Targeting Objects

Expression Recordset

ExpressionEval Object

ExpressionStore Object


Expression Recordset Schema

This section provides the Extensible Markup Language (XML) expression recordset schema. The evaluable part of an expression is contained in the ExprBody field of the recordset. For more information, see Expression Recordset. This schema is output when exporting expressions from the Expression Store and is required for importing expressions into the Expression Store from a file.

<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
   xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
   xmlns:rs='urn:schemas-microsoft-com:rowset' xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
   <s:ElementType name='row' content='eltOnly' rs:CommandTimeout='300'
      rs:ReshapeName='DSRowset1'>
      <s:AttributeType name='ExprID' rs:number='1'>
         <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
            rs:fixedlength='true' rs:maybenull='false'/>
      </s:AttributeType>
      <s:AttributeType name='ExprName' rs:number='2'
         rs:writeunknown='true'>
         <s:datatype dt:type='string' dt:maxLength='30'
            rs:maybenull='false'/>
      </s:AttributeType>
      <s:AttributeType name='Category' rs:number='3' rs:nullable='true'
         rs:writeunknown='true'>
         <s:datatype dt:type='string' dt:maxLength='30'/>
      </s:AttributeType>
      <s:AttributeType name='ExprDesc' rs:number='4' rs:nullable='true'
         rs:writeunknown='true'>
         <s:datatype dt:type='string' dt:maxLength='200'/>
      </s:AttributeType>
      <s:AttributeType name='ExprBody' rs:number='5'
         rs:writeunknown='true'>
         <s:datatype dt:type='string' dt:maxLength='3400'
            rs:maybenull='false'/>
      </s:AttributeType>
      <s:AttributeType name='DateCreated' rs:number='6'
         rs:writeunknown='true'>
         <s:datatype dt:type='dateTime' rs:dbtype='timestamp'
            dt:maxLength='16' rs:scale='3' rs:precision='23'
            rs:fixedlength='true' rs:maybenull='false'/>
      </s:AttributeType>
      <s:AttributeType name='DateModified' rs:number='7'
         rs:writeunknown='true'>
         <s:datatype dt:type='dateTime' rs:dbtype='timestamp'
            dt:maxLength='16' rs:scale='3' rs:precision='23'
            rs:fixedlength='true' rs:maybenull='false'/>
      </s:AttributeType>
      <s:ElementType name='rsExprDeps' content='eltOnly'
         rs:CommandTimeout='300' rs:ReshapeName='DSRowset2'
         rs:relation='010000000100000000000000'>
         <s:AttributeType name='ExprID' rs:number='1'
            rs:writeunknown='true'>
            <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
               rs:fixedlength='true' rs:maybenull='false'/>
         </s:AttributeType>
         <s:AttributeType name='ExprDep' rs:number='2'
            rs:writeunknown='true'>
            <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
               rs:fixedlength='true' rs:maybenull='false'/>
         </s:AttributeType>
         <s:extends type='rs:rowbase'/>
      </s:ElementType>
      <s:ElementType name='rsProfDeps' content='eltOnly'
         rs:CommandTimeout='300' rs:ReshapeName='DSRowset3'
         rs:relation='010000000100000000000000'>
         <s:AttributeType name='ExprID' rs:number='1'
            rs:writeunknown='true'>
            <s:datatype dt:type='int' dt:maxLength='4' rs:precision='10'
               rs:fixedlength='true' rs:maybenull='false'/>
         </s:AttributeType>
         <s:AttributeType name='ProfDep' rs:number='2'
            rs:writeunknown='true'>
            <s:datatype dt:type='string' dt:maxLength='128'
               rs:maybenull='false'/>
         </s:AttributeType>
         <s:extends type='rs:rowbase'/>
      </s:ElementType>
      <s:extends type='rs:rowbase'/>
   </s:ElementType>
</s:Schema>

For more information, see Expression Recordset.


Expression Body Structure

This section describes the Extensible Markup Language (XML) structure, elements, and attributes of the expression body of the expression recordset. The expression body is the evaluable part of the recordset and is generally referred to as the expression. All elements and attributes are specified in uppercase. The only exception to this rule is the <PROPERTY> element.

In the following example, capitalized names refer to the elements of the XML structure. The first occurrence of each element is linked to documentation on that element. Names in italic are attributes associated with each element. Bold italic signifies attributes that are required. Lowercase values represent data that is contained between the opening and closing element tags. For more information, see Expression Example.

<TERM TYPE>
   <CLAUSE OPER>
      <PROPERTY ID TYPE SUBTYPE />
      <IMMED-VAL TYPE SUBTYPE MULTIVAL>
         <VALUE>value1</VALUE>
         <VALUE>value2</VALUE>
      </IMMED-VAL>
   </CLAUSE>
   <CLAUSE OPER>
      <EXPR-REF ID />
   </CLAUSE>
   <TERM TYPE>
      <CLAUSE OPER>
         <PROPERTY ID TYPE SUBTYPE />
         <IMMED-VAL TYPE SUBTYPE MULTIVAL>immediate value</IMMED-VAL>
      </CLAUSE>
      <CLAUSE OPER>
      </CLAUSE>
   </TERM>
</TERM>

CLAUSE

CLAUSE elements are the building blocks of expressions and evaluate to either True or False. CLAUSE elements contain an operator attribute and one or two arguments listed as child elements. CLAUSE elements can be grouped together by TERM elements to create more complex expressions. A CLAUSE element along with its child elements represents one of the following operations:

  • [profile property] [operator] [immediate value]
  • [profile property] [operator] [profile property]
  • [profile property] [operator]
  • [intrinsic] [operator] [immediate value]
  • [intrinsic] [operator]
  • [expression] [operator]

Parent Elements: TERM

Child Elements: EXPR-REF, IMMED-VAL, PROPERTY

Attributes:

Name | Description
OPER | Required. Specifies the operator to be used to evaluate the child arguments.

See Also

TERM

EXPR-REF

IMMED-VAL

PROPERTY

EXPR-REF

Expressions can be built from other expressions, allowing larger, more complex expressions. Expressions are referred to by their unique IDs (an integer value), not their names. The only valid operators for the EXPR-REF element are "is-true" and "is-false".

Parent Elements: CLAUSE

Child Elements: None

Attributes:

Name | Description
ID | Required. An integer that is the ID of the expression to evaluate.

See Also

CLAUSE

IMMED-VAL

The IMMED-VAL element represents a hard-coded value used to check the preceding profile PROPERTY element against. For example, the number "25" and the string "Joe" are both immediate values. Immediate values can be either single-valued or multi-valued, and have a specific data type.

Parent Elements: CLAUSE

Child Elements: VALUE (when MULTIVAL = "True")

Data: Valid types - bool, currency, date, number, siteterm, string, time

Attributes:

Name | Description
TYPE | Required. Valid types are: bool, currency, date, datetime, number, siteterm, string, and time.
SUBTYPE | Specifies the sub-type of the property, if appropriate. For example, when TYPE = "siteterm", the value of the SUBTYPE attribute is the appropriate path for accessing the site-term in the Site Terms store. The default is "".
MULTIVAL | A bool that defaults to False. In this case, a single value is specified between the opening and closing tags. True indicates that the immediate value is multi-valued. In this case, the list of values is specified as a sequence of VALUE tags between the opening and closing tags.

See Also

CLAUSE

VALUE

PROPERTY

The PROPERTY element represents a profile property, a catalog property, or intrinsic that is the actual data being evaluated. This is the property which helps differentiate expressions into its two types: Target Expressions and Catalog Expressions.

Profile properties can be either single-valued or multi-valued, and have a specific data type. When a profile property is specified as the only argument (child element) of a CLAUSE element, the only valid operators are "is-defined" and "not-defined". An exception to the all uppercase syntax rule, this element is specified as <Property> if an expression containing it should appear in the Campaign Expressions module in Business Desk.

Note

  • When building an expression, all profile properties in the expression must be from the same data source (for example, all from SQL Server databases, or all from Active Directory).

Parent Elements: TERM

Child Elements: CODE, EXPR-REF, IMMED-VAL, PROPERTY

Attributes:

Name | Description
ID | Required. Specifies the profile property or intrinsic.
TYPE | Required. Valid types are: bool, currency, date, datetime, number, siteterm, string, and time. A generic type is also supported for the "is-defined" and "not-defined" operators.
SUBTYPE | Specifies the sub-type of the property, if appropriate. For example, when TYPE = "siteterm", the value of the SUBTYPE attribute may be "Site Terms.Products.Cars.Colors". The default is "".

See Also

TERM

EXPR-REF

IMMED-VAL

Intrinsics

TERM

The TERM element evaluates a group of CLAUSE elements according to some logic function. Currently, the expression architecture supports the following Boolean logic operations: AND, OR, and NOT. TERM elements can be further grouped together, along with additional CLAUSE elements, to form more complex expressions.

Parent Elements: TERM

Child Elements: CLAUSE, TERM

Attributes:

Name | Description
TYPE | Required. This attribute specifies how the containing TERM elements and CLAUSE elements are logically combined. Valid values are: AND, OR, NOT

See Also

CLAUSE

VALUE

The VALUE element is used to specify the individual values of a multi-valued IMMED-VAL element.

Parent Elements: IMMED-VAL

Child Elements: None

Data: Valid types - bool, currency, date, datetime, number, siteterm, string, and time

Attributes: None

See Also

IMMED-VAL

Copyright © 1996–2002 Microsoft Corporation.
All rights reserved.


Data Types and Operators

This section describes the valid data types and operators used in the expression body of the expression recordset. An operator is applied to the child element(s) of the CLAUSE element. The following structure:

      <CLAUSE OPER>
         <PROPERTY />
         <IMMED-VAL></IMMED-VAL>
      </CLAUSE>

represents an operation of the form:

      Operator
         Argument1
         Argument2

which is easier to interpret as:

      Argument1 Operator Argument2

For example:

      <CLAUSE OPER="equal" >
         <PROPERTY ID="user.hair.color" TYPE="string" />
         <IMMED-VAL TYPE="string">"brown"</IMMED-VAL>
      </CLAUSE>

results in the evaluation of the expression:

      "user.hair.color" = "brown" ?

Data types are specified in the PROPERTY and IMMED-VAL elements, which are child elements of the CLAUSE element. The expression architecture supports the following data types: bool, currency, date, datetime, number, siteterm, string, and time. A generic data type (not recognized as from the previous list) may be used, but with a limited set of operators. For CLAUSE elements with two arguments, the data types must match.

The valid operators for each data type are specified in the following tables. The MV column specifies which arguments, if any, can be multi-valued. All operators must be specified in lowercase.

Bool

Operator | MV | Description
equal | None | Returns true if arg1 = arg2
not-equal | None | Returns true if arg1 != arg2

Currency, Number

Operator | MV | Description
equal | None | Returns true if arg1 = arg2
not-equal | None | Returns true if arg1 != arg2
greater-than | None | Returns true if arg1 > arg2
less-than | None | Returns true if arg1 < arg2
at-least | None | Returns true if arg1 >= arg2
at-most | None | Returns true if arg1 <= arg2
in | Arg2 | Returns true if arg1 appears anywhere in the list in arg2
not-in | Arg2 | Returns true if arg1 appears nowhere in the list in arg2
contains | Arg1 | Returns true if arg2 appears anywhere in the list in arg1
not-contains | Arg1 | Returns true if arg2 appears nowhere in the list in arg1
intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is not the empty set
not-intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is the empty set

Date, Time, Datetime

Operator | MV | Description
equal | None | Returns true if arg1 = arg2
not-equal | None | Returns true if arg1 != arg2
before | None | Returns true if arg1 is before arg2
after | None | Returns true if arg1 is after arg2
on-or-before | None | Returns true if arg1 is the same as or before arg2
on-or-after | None | Returns true if arg1 is the same as or after arg2
in | Arg2 | Returns true if arg1 appears anywhere in the list in arg2
not-in | Arg2 | Returns true if arg1 appears nowhere in the list in arg2
contains | Arg1 | Returns true if arg2 appears anywhere in the list in arg1
not-contains | Arg1 | Returns true if arg2 appears nowhere in the list in arg1
intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is not the empty set
not-intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is the empty set

Expression

An expression is not a data type of the PROPERTY and IMMED-VAL elements. An expression is an integer value that is evaluated as part of the EXPR-REF element. It is included in the following table for completeness in describing the available operators.

Operator | MV | Description
is-true | None | Returns true if specified expression is true
is-false | None | Returns true if specified expression is false

Generic

If a profile PROPERTY element is specified as the only argument (child element) of a CLAUSE element, any generic data type can be used with the operators listed in the following table.

Operator | MV | Description
is-defined | None | Returns true if the property is defined. Returns false if this argument is missing.
not-defined | None | Returns true if the property is not defined or if this argument is missing.

Siteterm

Operator | MV | Description
equal | None | Returns true if arg1 = arg2
not-equal | None | Returns true if arg1 != arg2
in | Arg2 | Returns true if arg1 appears anywhere in the list in arg2
not-in | Arg2 | Returns true if arg1 appears nowhere in the list in arg2
contains | Arg1 | Returns true if arg2 appears anywhere in the list in arg1
not-contains | Arg1 | Returns true if arg2 appears nowhere in the list in arg1
intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is not the empty set
not-intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is the empty set

String

Operator | MV | Description
equal | None | Returns true if arg1 = arg2.
not-equal | None | Returns true if arg1 != arg2.
contains | None | Returns true if arg2 appears anywhere in arg1. (For example, "Donnie" contains "nn".)
not-contains | None | Returns true if arg2 does not appear anywhere in arg1. (For example, "flintstone" does not contain "stones".)
begins-with | None | Returns true if the first part of arg2 matches arg1.
not-begins-with | None | Returns true if the first part of arg2 does not match arg1.
in | Arg2 | Returns true if arg1 appears anywhere in the list in arg2.
not-in | Arg2 | Returns true if arg1 appears nowhere in the list in arg2.
contains | Arg1 | Returns true if arg2 appears anywhere in the list in arg1.
not-contains | Arg1 | Returns true if arg2 appears nowhere in the list in arg1.
intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is not the empty set.
not-intersects | Both | Returns true if the intersection of the lists arg1 and arg2 is the empty set.


Intrinsics

Intrinsics are time and date properties that are evaluated on the server. They are specified in the ID attribute of the Property element. The following table lists the available intrinsics, what they resolve to, and the data types they are evaluated against.

Name | Resolves to | Type/SubType
eee.currDate | date | date
eee.currTime | time | time
eee.currDayOfWeek | 0 - Sunday 1 - Monday 2 - Tuesday 3 - Wednesday and so on | siteterm/CalendarSiteTerms.Days (number)
eee.currMonth | 0 - January 1 - February 2 - March and so on | siteterm/CalendarSiteTerms.Months (number)
eee.currYear | number | number
eee.yesterday | date | date

Internally, dates and times are handled in variant time format. For more information about the variant time format, see MSDN.

Intrinsic Examples

The following example tests whether the current day of the week is Wednesday:

      <CLAUSE OPER="equal">
         <PROPERTY ID="eee.currDayOfWeek" TYPE="siteterm" />
         <IMMED-VAL TYPE="siteterm" SUBTYPE="CalendarSiteTerms.Days">
            3</IMMED-VAL>
      </CLAUSE>


Expression Example

The following example, based on a hypothetical User profile, evaluates to True for all users with the following attributes:

  • Baseball and jai alai are their favorite sports,
  • They are at least 65 years old, and
  • They either have a home area code of 425, or
  • The expression with an ID of 34 is True

Another way of representing these attributes is:

(Baseball and jai alai are their favourite sports AND [They are at least 65 years old AND{They either have a home are code of 425 OR The expression with an ID of 34 is True}])

<TERM TYPE="and">
   <CLAUSE OPER="in">
      <PROPERTY ID="User.FavoriteSports" TYPE="string" />
      <IMMED-VAL TYPE="string" MULTIVAL="True">
         <VALUE>baseball</VALUE>
         <VALUE>jai alai</VALUE>
      </IMMED-VAL>
   </CLAUSE>

   <TERM TYPE="and">
      <CLAUSE OPER="at-least">
         <PROPERTY ID="User.Age" TYPE="number" />
         <IMMED-VAL TYPE="number">65</IMMED-VAL>
      </CLAUSE>

      <TERM TYPE="or">
         <CLAUSE OPER="begins-with">
            <PROPERTY ID="User.ContactInfo.HomePhone" TYPE="string" />
            <IMMED-VAL TYPE="string">425</IMMED-VAL>
         </CLAUSE>
         <CLAUSE OPER="is-true">
            <EXPR-REF ID="34" />
         </CLAUSE>
      </TERM>
   </TERM>
</TERM>

The following is a catalog example:

Manufacturer equal to Apparel Inc. AND productID equals A1234 AND (isDiscountable is equal to 1 OR onSale is equal to 1)

<TERM TYPE="and">
<CLAUSE OPER="equal">
<Property ID="product._product_Manufacturer" TYPE="STRING"/>
<IMMED-VAL TYPE="string"><![CDATA[Apparel Inc.]]></IMMED-VAL>
</CLAUSE>
<CLAUSE OPER="equal">
<Property ID="product._product_ProductID" TYPE="STRING"/>
<IMMED-VAL TYPE="string"><![CDATA[A1234]]></IMMED-VAL>
</CLAUSE>
<TERM TYPE="or">
<CLAUSE OPER="equal">
<Property ID="product._product_OnSale" TYPE="NUMBER"/>
<IMMED-VAL TYPE="number">1</IMMED-VAL>
</CLAUSE>
<CLAUSE OPER="equal">
<Property ID="product._product_isDiscountable" TYPE="NUMBER"/>
<IMMED-VAL TYPE="number">1</IMMED-VAL>
</CLAUSE>
</TERM>
</TERM>


Profile XML Structures

This document contains the XML representations of the profile schemas and run time instances for the profiles (Address, Organization, and UserObject) defined in Microsoft Commerce Server 2002. The ProfileService and ProfileObject objects expose methods that return these representations.

This section contains:

  • Schemas. Shows the XML representation of the profile schemas.
  • Run Time Representations. Shows the XML run time representation for the profiles.

See Also

Profiling System Objects

Profiles Schema

ProfileObject Object

ProfileService Object


Schemas

This section shows the attribute-centric Extensible Markup Language (XML) schema definitions for the profiles defined in Commerce Server 2002. These definitions are identical to what is returned by the GetProfileDefXML method (with the bNamesOnly parameter set to False) of the ProfileService object, and to what is returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveSchemaOnly) of the ProfileObject object.

This section contains:

  • Address Schema. Shows the attribute-centric schema for the Address profile, which stores both user and organization addresses.
  • Organization Schema. Shows the attribute-centric schema for the Organization profile, which stores information about organizations (trading partners, home companies, subsidiaries, and so forth).
  • UserObject Schema. Shows the attribute-centric schema for the UserObject profile, which stores information about both registered and anonymous users.


Address Schema

This topic shows the attribute-centric schema for the Address profile, which stores both user and organization addresses. This schema is identical to what is returned by the GetProfileDefXML method (with the bNamesOnly parameter set to False) of the ProfileService object, and to what is returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveSchemaOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
   xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="Address">
   <attributeType name="address_id" dt:type="string" required="yes"/>
   <attributeType name="id" dt:type="string"/>
   <attributeType name="last_name" dt:type="string"/>
   <attributeType name="first_name" dt:type="string"/>
   <attributeType name="address_name" dt:type="string"/>
   <attributeType name="address_type" dt:type="int"/>
   <attributeType name="description" dt:type="string"/>
   <attributeType name="address_line1" dt:type="string" required="yes"/>
   <attributeType name="address_line2" dt:type="string"/>
   <attributeType name="city" dt:type="string"/>
   <attributeType name="region_code" dt:type="string" required="yes"/>
   <attributeType name="region_name" dt:type="string"/>
   <attributeType name="postal_code" dt:type="string" required="yes"/>
   <attributeType name="country_code" dt:type="string" required="yes"/>
   <attributeType name="country_name" dt:type="string"/>
   <attributeType name="tel_number" dt:type="string"/>
   <attributeType name="tel_extension" dt:type="string"/>
   <attributeType name="locale" dt:type="int"/>
   <attributeType name="user_id_changed_by" dt:type="string"/>
   <attributeType name="date_last_changed" dt:type="datetime"/>
   <attributeType name="date_created" dt:type="datetime"/>
<ElementType name="GeneralInfo" content="eltOnly">
   <attribute type="address_id"/>
   <attribute type="id"/>
   <attribute type="last_name"/>
   <attribute type="first_name"/>
   <attribute type="address_name"/>
   <attribute type="address_type"/>
   <attribute type="description"/>
   <attribute type="address_line1"/>
   <attribute type="address_line2"/>
   <attribute type="city"/>
   <attribute type="region_code"/>
   <attribute type="region_name"/>
   <attribute type="postal_code"/>
   <attribute type="country_code"/>
   <attribute type="country_name"/>
   <attribute type="tel_number"/>
   <attribute type="tel_extension"/>
   <attribute type="locale"/>
   <attribute type="user_id_changed_by"/>
</ElementType>
<ElementType name="ProfileSystem" content="eltOnly">
   <attribute type="date_last_changed"/>
   <attribute type="date_created"/>
</ElementType>
   <element type="GeneralInfo"/>
   <element type="ProfileSystem"/>
</ElementType>
</Schema>
</ProfileDocument>


Organization Schema

This topic shows the attribute-centric schema for the Organization profile, which stores information about organizations (trading partners, home companies, subsidiaries, and so on). This schema is identical to what is returned by the GetProfileDefXML method (with the bNamesOnly parameter set to False) of the ProfileService object, and to what is returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveSchemaOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
   xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="Organization">
   <attributeType name="org_id" dt:type="string" required="yes"/>
   <attributeType name="name" dt:type="string" required="yes"/>
   <attributeType name="trading_partner_number" dt:type="string"/>
   <attributeType name="user_id_admin_contact" dt:type="string"/>
   <attributeType name="user_id_receiver" dt:type="string"/>
   <attributeType name="org_catalog_set" dt:type="string"/>
   <attributeType name="user_id_changed_by" dt:type="string"/>
   <attributeType name="date_last_changed" dt:type="datetime"/>
   <attributeType name="date_created" dt:type="datetime"/>
   <attributeType name="user_id_purchasing_manager" dt:type="string"/>
<ElementType name="GeneralInfo" content="eltOnly">
   <attribute type="org_id"/>
   <attribute type="name"/>
   <attribute type="trading_partner_number"/>
   <attribute type="user_id_admin_contact"/>
   <attribute type="user_id_receiver"/>
   <attribute type="org_catalog_set"/>
   <attribute type="user_id_changed_by"/>
</ElementType>
<ElementType name="ProfileSystem" content="eltOnly">
   <attribute type="date_last_changed"/>
   <attribute type="date_created"/>
</ElementType>
<ElementType name="Purchasing" content="eltOnly">
   <attribute type="user_id_purchasing_manager"/>
</ElementType>
   <element type="GeneralInfo"/>
   <element type="ProfileSystem"/>
   <element type="Purchasing"/>
</ElementType>
</Schema>
</ProfileDocument>


UserObject Schema

This topic shows the attribute-centric schema for the UserObject profile, which stores information about both registered and anonymous users. This schema is identical to what is returned by the GetProfileDefXML method (with the bNamesOnly parameter set to False) of the ProfileService object, and to what is returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveSchemaOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
   xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="UserObject">
   <attributeType name="org_id" dt:type="string"/>
   <attributeType name="account_status" dt:type="int" required="yes"/>
   <attributeType name="user_catalog_set" dt:type="string"/>
   <attributeType name="date_registered" dt:type="datetime"/>
   <attributeType name="campaign_history" dt:type="string"/>
   <attributeType name="partner_desk_role" dt:type="int"/>
   <attributeType name="user_id" dt:type="string" required="yes"/>
   <attributeType name="logon_name" dt:type="string" required="yes"/>
   <attributeType name="user_security_password" dt:type="string" required="yes"/>
   <attributeType name="email_address" dt:type="string"/>
   <attributeType name="user_type" dt:type="int"/>
   <attributeType name="user_title" dt:type="string"/>
   <attributeType name="last_name" dt:type="string"/>
   <attributeType name="first_name" dt:type="string"/>
   <attributeType name="tel_number" dt:type="string"/>
   <attributeType name="tel_extension" dt:type="string"/>
   <attributeType name="fax_number" dt:type="string"/>
   <attributeType name="fax_extension" dt:type="string"/>
   <attributeType name="user_id_changed_by" dt:type="string"/>
   <attributeType name="date_last_changed" dt:type="datetime"/>
   <attributeType name="date_created" dt:type="datetime"/>
<ElementType name="AccountInfo" content="eltOnly">
   <attribute type="org_id"/>
   <attribute type="account_status"/>
   <attribute type="user_catalog_set"/>
   <attribute type="date_registered"/>
</ElementType>
<ElementType name="Advertising" content="eltOnly">
   <attribute type="campaign_history"/>
</ElementType>
<ElementType name="BusinessDesk" content="eltOnly">
   <attribute type="partner_desk_role"/>
</ElementType>
<ElementType name="GeneralInfo" content="eltOnly">
   <attribute type="user_id"/>
   <attribute type="logon_name"/>
   <attribute type="user_security_password"/>
   <attribute type="email_address"/>
   <attribute type="user_type"/>
   <attribute type="user_title"/>
   <attribute type="last_name"/>
   <attribute type="first_name"/>
   <attribute type="tel_number"/>
   <attribute type="tel_extension"/>
   <attribute type="fax_number"/>
   <attribute type="fax_extension"/>
   <attribute type="user_id_changed_by"/>
</ElementType>
<ElementType name="ProfileSystem" content="eltOnly">
   <attribute type="date_last_changed"/>
   <attribute type="date_created"/>
</ElementType>
   <element type="AccountInfo"/>
   <element type="Advertising"/>
   <element type="BusinessDesk"/>
   <element type="GeneralInfo"/>
   <element type="ProfileSystem"/>
</ElementType>
</Schema>
</ProfileDocument>


Run Time Representations

This section shows the attribute-centric Extensible Markup Language (XML) run time representations for the profiles defined in Commerce Server 2002. These representations are identical to the XML structures returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveDataOnly) of the ProfileObject object.

This section contains:

  • Address Run Time Representation. Shows the attribute-centric run time representation for the Address profile, which stores both user and organization addresses.
  • Organization Run Time Representation. Shows the attribute-centric run time representation for the Organization profile, which stores information about organizations (trading partners, home companies, subsidiaries, and so forth).
  • UserObject Run Time Representation. Shows the attribute-centric run time representation for the UserObject profile, which stores information about both registered and anonymous users.


Address Run Time Representation

This topic shows the XML attribute-centric run time representation for the Address profile, which stores both user and organization addresses. This definition is identical to the XML structures returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveDataOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<Address>
   <GeneralInfo address_id id last_name first_name address_name
      address_type description address_line1 address_line2 city
      region_code region_name postal_code country_code country_name
      tel_number tel_extension locale />
   </GeneralInfo>
   <ProfileSystem date_last_changed date_created>
   </ProfileSystem>
</Address>
</ProfileDocument>


Organization Run Time Representation

This topic shows the XML attribute-centric run time representation for the Organization profile, which stores information about organizations (trading partners, home companies, subsidiaries, and so on). This definition is identical to the XML structures returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveDataOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<Organization>
   <GeneralInfo org_id name trading_partner_number user_id_admin_contact
      user_id_receiver org_catalog_set user_id_changed_by>
   </GeneralInfo>
   <ProfileSystem date_last_changed date_created>
   </ProfileSystem>
   <Purchasing user_id_purchasing_manager>
   </Purchasing>
</Organization>
</ProfileDocument>


UserObject Run Time Representation

This topic shows the XML attribute-centric run time representation for the UserObject profile, which stores information about both registered and anonymous users. This definition is identical to the XML structures returned by the GetProfileXML method (with the eRetrieveEnum parameter set to psRetrieveDataOnly and the bAttributeCentric parameter set to True) of the ProfileObject object.

<?xml version="1.0"?>
<ProfileDocument>
<UserObject>
   <AccountInfo org_id account_status user_catalog_set date_registered>
   </AccountInfo>
   <BusinessDesk partner_desk_role>
   </BusinessDesk>
   <GeneralInfo user_id logon_name user_security_password email_address
      user_type user_title last_name first_name tel_number tel_extension
      fax_number fax_extension user_id_changed_by>
   </GeneralInfo>
   <ProfileSystem date_last_changed date_created>
   </ProfileSystem>
</UserObject>
</ProfileDocument>


Schema Reference

Microsoft Commerce Server 2002 uses databases in many different capacities. It is important for programmers to have knowledge of the schema employed by some of these databases.

This section contains:

  • Analysis/Reporting Schema. Describes the schema used to create reports in Commerce Server.
  • Profiles Schema. Describes the pre-defined profile schemas: Address, Organization, and UserObject.


Analysis/Reporting Schema

This section describes the schema used to create reports in Commerce Server 2002.

This section contains:

  • Analysis/Reporting Architecture. Describes the overall architecture of the analytics/reporting features in the Business Analytics System.
  • Parameterization. Describes the parameters used to create the parameterized queries in static reports.
  • Report Tables. Describes the tables used to create reports and their relations.

See Also

Analysis/Reporting XML Structures

AsyncRpt2 Object

ReportRender2 Object

Running Reports


Analysis/Reporting Architecture

Analysis and reporting in Commerce Server 2002 is built on an open architecture designed to allow total content control by business managers. The business manager is free to add, delete, and modify report content.

Static or dynamic reports can be based on either SQL or multidimensional expression (MDX) queries of SQL or OLAP databases, respectively. Static reports are HTML-based; dynamic reports use Microsoft Office XP Web Components (OWC).

Static report definitions consist of a query with dimension and parameter definitions. The parameter definitions are optional. When a static report is run, the parameters are presented to the operator and then passed to a rendering component. The rendering component generates an HTML document from the query results. Completed static reports are stored as HTML files on the Internet Information Services (IIS) computer hosting the Commerce Server Business Desk Analysis Completed Reports module. These reports can be opened through Business Desk and are displayed in Microsoft Internet Explorer.

Dynamic report definitions contain several properties including the pivot table view, which is stored in Extensible Markup Language (XML) in the Data Warehouse. Report results are displayed in the Pivot Table component.

Definitions for the pre-defined reports are contained in the CSReports.sql and CSReports2.sql files found in the Commerce Server installation directory. These files populate the report tables in the Commerce Server Data Warehouse. You use the Report preparation Data Transformation Services (DTS) task to process OLAP cubes and run stored procedures to prepare imported data for reporting.

See Also

Analysis Reporting

Scripts for Securing Databases Accessed by Reports

Accessing the Analysis Server Over HTTPS


Parameterization

This section describes the parameters and constants used to create the parameterized query entries in the ReportParam table.

This section contains:

  • Parameter Types. Describes the available parameter types and their valid operands and values.
  • Constants. Lists the constants available for use in creating reports.


Parameter Types

The following table lists the available parameter types and their valid operands and values. The SingleValue parameter type can appear anywhere in a query. The SelectOrder parameter type is used in the Select clause of the query. The remaining parameter types appear in the Where clause of the query.

Paramtype Operand1 Value1 Operand2 Value2
ParamType_DateRange DateRangeOpnd_All

DateRangeOpnd_From

DateRangeOpnd_OnOrBefore

DateRangeOpnd_Today

DateRangeOpnd_ThisWeek

DateRangeOpnd_ThisMonth

DateRangeOpnd_ThisQuarter

DateRangeOpnd_ThisYear

DateRangeOpnd_Yesterday

DateRangeOpnd_LastWeek

DateRangeOpnd_LastMonth

DateRangeOpnd_LastQuarter

DateRangeOpnd_LastYear

 Required for the DateRangeOpnd_From or DateRangeOpnd_OnOrBefore operand.

For the DateRangeOpnd_From operand, the beginning date of a range to return.

For the DateRangeOpnd_OnOrBefore operand, the last date to include.

Not applicable for the other operand types.

Date format = MM/DD/YYYY

 Not applicable. Required for the DateRangeOpnd_From operand.

The end date of a range to return.

Not applicable for the other operand types.
ParamType_Expression ExpOpnd_All

ExpOpnd_Equals

ExpOpnd_NotEquals

ExpOpnd_IsNull

ExpOpnd_IsNotNull

ExpOpnd_LessThan (only used for numeric types)

ExpOpnd_LessThanOrEquals (only used for numeric types)

ExpOpnd_GreaterThan (only used for numeric types)

ExpOpnd_GreaterThanOrEquals (only used for numeric types)

ExpOpnd_Like (only used for String types)

ExpOpnd_NotLike (only used for String types)

 Not applicable for the ExpOpnd_None operand.

Required for the other parameter types.

Valid types are:

  • Currency
  • Float
  • Integer
  • String
 Same operand types as Operand1.

Not applicable for the ExpOpnd_None operand.

Optional for the other operand types.

Required if Operand2 is specified.
ParamType_SelectOrder SelectOrderOpnd_All (SQL only)

SelectOrderOpnd_Distinct (SQL only)

SelectOrderOpnd_Top

SelectOrderOpnd_Bottom (MDX only)

Required for the SelectOrderOpnd_Top or SelectOrderOpnd_Bottom operand.

An Integer specifying the number of rows to return.

Not applicable for the SelectOrderOpnd_All operand.

 Not applicable. Not applicable.
ParamType_SingleValue Not applicable Required String value.

The value for this operand is a text field that can accommodate any type of entry. Two examples are: booleanVal = "True" and Time = "12:59:59".

 Not applicable. Not applicable.
ParamType_SiteName
(SQL query only) 		SiteNameOpnd_All

SiteNameOpnd_Equals

SiteNameOpnd_NotEquals

SiteNameOpnd_Like

SiteNameOpnd_NotLike

 Not applicable for the SiteNameOpnd_All operand.

Required String value for the others.

 Not applicable. Not applicable.


Constants

The following tables list the constants defined in the CSReports.sql file for use in creating parameterized reports:

  • DataType
  • ParamType
  • ParamType_DateRange Operand
  • ParamType_Expression Operand
  • ParamType_SelectOrder Operand
  • ParamType_SiteName Operand

DataType

The following table lists the valid data types.

Data type | Value
DataType_date | 1
DataType_integer | 2
DataType_float | 3
DataType_currency | 4
DataType_text | 5

ParamType

The following table lists the valid parameter types. The Constraint column lists where the parameter type is used in the query.

Parameter type | Value | Constraint
ParamType_SingleValue | 0 | Anywhere
ParamType_Expression | 1 | WHERE clause
ParamType_SelectOrder | 2 | SELECT clause
ParamType_DateRange | 3 | WHERE clause
ParamType_SiteName | 4 | WHERE clause

ParamType_DateRange Operand

The following table lists the valid date range operands.

Operand | Value
DateRangeOpnd_All | 0
DateRangeOpnd_From | 1
DateRangeOpnd_OnOrBefore | 2
DateRangeOpnd_Today | 3
DateRangeOpnd_ThisWeek | 4
DateRangeOpnd_ThisMonth | 5
DateRangeOpnd_ThisQuarter | 6
DateRangeOpnd_ThisYear | 7
DateRangeOpnd_Yesterday | 8
DateRangeOpnd_LastWeek | 9
DateRangeOpnd_LastMonth | 10
DateRangeOpnd_LastQuarter | 11
DateRangeOpnd_LastYear | 12

ParamType_Expression Operand

The following table lists the valid expression operands.

Operand | Value | Constraint
ExpOpnd_All | 0 | None
ExpOpnd_Equals | 1 | None
ExpOpnd_NotEquals | 2 | None
ExpOpnd_IsNull | 3 | None
ExpOpnd_IsNotNull | 4 | None
ExpOpnd_LessThan | 5 | Numeric data types only
ExpOpnd_LessThanOrEquals | 6 | Numeric data types only
ExpOpnd_GreaterThan | 7 | Numeric data types only
ExpOpnd_GreaterThanOrEquals | 8 | Numeric data types only
ExpOpnd_Like | 9 | Char data type only
ExpOpnd_NotLike | 10 | Char data type only

ParamType_SelectOrder Operand

The following table lists the valid select order operands.

Operand | Value | Constraint
SelectOrderOpnd_All | 0 | SQL only
SelectOrderOpnd_Distinct | 1 | SQL only
SelectOrderOpnd_Top | 2 | SQL and MDX
SelectOrderOpnd_Bottom | 3 | MDX only

ParamType_SiteName Operand

The following table lists the valid site name operands. The ParamType_SiteName operand is applicable only for SQL queries.

Operand | Value
SiteNameOpnd_All | 0
SiteNameOpnd_Equals | 1
SiteNameOpnd_NotEquals | 2
SiteNameOpnd_Like | 3
SiteNameOpnd_NotLike | 4


Report Tables

This section contains information about the reporting schema and the report tables used in the Data Warehouse. This section also contains a table that describes report table usage by report type.

The following figure identifies the report tables and their relations. Each table is described in the subsequent sections.

Reporting Schema

This section contains:

  • Report Table. Describes the attributes used in the main report definition table.
  • ReportDimension Table. Describes the attributes used to add a dimension to a report.
  • ReportInstanceDbObject Table. Describes instances of database objects created for use in a static report.
  • ReportInstanceParam Table. Describes the attributes used to store the parameters entered through the user interface for use in query expressions.
  • ReportParam Table. Describes the attributes used to add a parameterized query expression to a static report.
  • ReportStatus Table. Describes the attributes used to supply status information about a static report.
  • GroupReportDbObject Table. Describes the temporary objects created during grouped report generation.
  • GroupReportJob Table. Describes the attributes used to track the grouped report jobs that have been run.
  • GroupReportStatus Table. Describes the attributes used to keep track of the individual reports that have been generated when a grouped report is run.
  • CubeProcInfo Table. Describes the attributes used by the Report preparation DTS task to process cubes.
  • CubePartitionInfo Table. Describes the attributes used track the processing state of data within the cube.
  • DimProcInfo Table. Describes the attributes used by the Report preparation DTS task to process shared dimensions.
  • StoredProcInfo Table. Describes the attributes used by the Report preparation DTS task to run stored procedures.
  • ReportPreExec Table. Describes the attributes used by the Report caching DTS task to run OLAP reports.
  • Table Usage by Report Type. Describes report table usage by report type.


Report Table

The following table describes the attributes used in the main report definition table.

Attribute name | Data type | Constraint | Default | Description
ReportID | int | None | None | Unique identifier.
AggregationType | tinyint | NULL | None | Not used.
Category | nvarchar (128) | NULL | None | Category of the report.
ChartType | int | None | 3 | See "Chart Types" table immediately following.
CommerceBuild | nvarchar (128) | NULL | None | Commerce Server build number.
CreatedBy | nvarchar (128) | NULL | None | Name of the user who created the report.
CreatedTime | datetime | NULL | getdate() | Date and time the report was created.
Definition | ntext | NULL | None | Long description.
Description | nvarchar (128) | NULL | None | Short description.
DisplayName | nvarchar (128) | NULL | None | Name displayed in the user interface.
DmExport | bit | None | False (0) | If True (1), the report contains the rcp_Email field, which can be exported to List Manager for use by Direct Mailer.
HelpFileRef | nvarchar (256) | None | None | Help file name.
LastModifiedBy | nvarchar (128) | NULL | None | Name of the user who last modified the report.
LastRunBy | nvarchar (128) | NULL | None | Name of the user who last ran the report.
LastRunDateTime | datetime | NULL | None | Date and time the report was last run.
MajorVersion | int | NULL | None | None.
MinorVersion | int | NULL | None | None.
ModifiedTime | datetime | NULL | None | Date and time the report was last modified.
OrderBy | nvarchar(512) | None | None | Used to order the static SQL report results.
Private | bit | None | False (0) | Not used.
Protected | bit | None | False (0) | True (1) indicates the report may not be overwritten or deleted. True for all system reports.
Query | nvarchar (2000) | NULL | None | The executable SQL query.
ReportType | tinyint | NULL | None | See "Report Types" table immediately following.
SeriesInColumns | bit | None | True (1) | Inverts the chart (swaps x and y).
ShowChart | bit | None | False (0) | True indicates to show the chart.
ShowDefinition | bit | NOT NULL | None | True indicates to show the definition.
ShowLegend | bit | None | True (1) | True indicates to show the chart legend.
ShowPivot | bit | None | True (1) | True indicates to show the pivot control.
UPMExport | bit | None | False (0) | If True (1), the report contains the rcp_GUID field, which can be exported to List Manager for use by the Profiling system.
XMLData | ntext | NULL | None | PivotTable XML data.

Chart Types

Most Microsoft Office XP Web Components charts can be used with reports created by Commerce Server. The following table lists a few of the more common chart types. The chart type can be selected directly in the Chart control.

ChartType | Value
Column: Clustered | 0
Bar: Clustered | 3
Line | 6
Pie | 18

Report Types

The following table lists the valid report type values.

ReportType | Value
Dynamic_SQL | 0
Dynamic_MDX | 1
Static_SQL | 2
Static_MDX | 3
Static_Grouped_SQL | 4
Static_Grouped_MDX | 5


ReportDimension Table

The following table describes the attributes used to add a dimension to a static report.

Attribute name | Data type | Constraint | Default | Description
ReportID | int | NOT NULL | None | ID of the report with which the dimension is associated.
AggregationType | tinyint | None | 0 | Not used.
DimensionType | tinyint | NOT NULL | None | 0 = Column 1 = Row 2 = Measure
DisplayName | nvarchar (128) | NULL | None | Name displayed in the user interface.
FieldName | nvarchar (128) | NOT NULL | None | Field name displayed in the report query result.
GroupDim | bit | NULL | None | Used in grouped reports to specify that the dimension is to be used for grouping.
Ordinal | tinyint | NOT NULL | None | Used to specify the user interface rendering order.


ReportInstanceDbObject Table

The following table describes instances of database objects created for use in a static report. This table is created at report run time.

Attribute name | Data type | Constraint | Default | Description
ReportStatusID | int | NOT NULL | None | ID of the report instance.
DateCreated | datetime | NOT NULL | None | Date and time the object was instantiated.
DbObjectInstanceName | nvarchar (128) | NULL | None | Name of the table or view.
DbObjectType | nvarchar (128) | NULL | None | 0 = Table 1 = TempTable 2 = View


ReportInstanceParam Table

The following table stores an instance of the parameterized query expression. This table is created at report run time.

Attribute name | Data type | Constraint | Default | Description
ReportStatusID | int | NOT NULL | None | ID of the report instance.
AllowNull | bit | NOT NULL | False (0) | Reserved for future use.
Automatic | bit | NOT NULL | False (0) | Reserved for future use.
DataType | nvarchar (128) | NULL | None | Data type of Val1 and Val2. 0 = int 1 = float 2 = datetime 3 = char
FieldName | nvarchar (128) | NULL | None | Field in query used for expression.
Opnd1 | tinyint | NULL | 0 | First operand.
Opnd2 | tinyint | NULL | 0 | Second operand.
ParamName | nvarchar (128) | NULL | None | Tag name.
ParamType | tinyint | NULL | None | Type of parameter.
Val1 | nvarchar (128) | NULL | None | First value.
Val2 | nvarchar (128) | NULL | None | Second value.


ReportParam Table

The following table describes the attributes used to create a parameterized query for a static report.

Attribute name | Data type | Constraint | Default | Description
ReportID | int | NOT NULL | None | ID of the report with which the parameter is associated.
AllowNull | bit | NOT NULL | False (0) | Reserved for future use.
Automatic | bit | NOT NULL | False (0) | Reserved for future use.
DataType | tinyint | NULL | None | Data type of Val1 and Val2. 0 = int 1 = float 2 = datetime 3 = char
FieldName | nvarchar (128) | NULL | None | Field in query used for expression.
Opnd1 | tinyint | NULL | None | First operand.
Opnd2 | tinyint | NULL | None | Second operand.
Ordinal | tinyint | NULL | None | Used to specify the user interface rendering order.
ParamDescription | nvarchar (128) | NOT NULL | None | Text displayed on the clickable bar.
ParamName | nvarchar (128) | NOT NULL | None | Tag name.
ParamType | tinyint | NOT NULL | 0 | Type of parameter.
Val1 | nvarchar (128) | NULL | None | First value.
Val2 | nvarchar (128) | NULL | None | Second value.


ReportStatus Table

The following table describes the attributes used to supply status information about a report. This table is populated at report run time.

Attribute name | Data type | Constraint | Default | Description
ReportStatusID | int | None | None | Unique identifier.
ReportID | int | NULL | None | ID of the report with which the status is associated.
DisplayName | nvarchar (128) | NULL | None | Name displayed in the user interface.
ExecutionState | tinyint | NOT NULL | 0 | 0 = None 1 = Failed 2 = Pending 3 = Completed
Exported | bit | NULL | False (0) | True specifies the report was exported.
LocationName | nvarchar (255) | NULL | None | Name of the report.
LocationPath | nvarchar (255) | NULL | None | Path to the report.
RunBy | nvarchar (255) | NULL | None | Name of the person running the report.
RunDateTime | datetime | NULL | None | Date the report was run.
SiteName | nvarchar (256) | NULL | None | Name of the site.


GroupReportDbObject Table

The following table describes the attributes used to create the temporary objects during grouped report generation. This table is populated at report run time.

Attribute name | Data type | Constraint | Default | Description
GroupReportJobID | int | NOT NULL | None | ID of the report job with which the parameter is associated.
DbObjectType | nvarchar (128) | NULL | None | 0 = Table 1 = TempTable 2 = View
DbObjectInstanceName | nvarchar (128) | NULL | None | Name of the database object.
DateCreated | datetime | NOT NULL | None | Date and time the object was instantiated.


GroupReportJob Table

The following table describes the attributes used to keep track of the grouped report jobs that have been run. This table is populated at report run time.

Attribute name | Data type | Constraint | Default | Description
GroupReportJobID | int | NOTNULL | None | ID of the report job with which the parameter is associated.
DisplayName | nvarchar (128) | NULL | None | Name displayed in the user interface.
ExecutionState | tinyint | NOT NULL | None | 0 = None 1 = Failed 2 = Pending 3 = Completed
GroupReportQuantity | int | NOT NULL | None | Number of reports generated for this grouped report.
LocationName | nvarchar (255) | NULL | None | Name of the report.
LocationPath | nvarchar (512) | NULL | None | Path to the report.
RunDateTime | datetime | NOT NULL | None | Date the report was run.


GroupReportStatus Table

The following table describes the attributes used to track the individual reports that have been generated when a grouped report is run. This table is populated at report run time.

Attribute name | Data type | Constraint | Default | Description
GroupReportJobID | int | NOT NULL | None | ID of the report job with which the parameter is associated.
GroupDim1Name | nvarchar (128) | NULL | None | First grouping dimension name.
GroupDim1Value | nvarchar (128) | NULL | None | First grouping dimension value.
GroupDim2Name | nvarchar (128) | NULL | None | Second grouping dimension name.
GroupDim2Value | nvarchar (128) | NULL | None | Second grouping dimension value.
GroupDim3Name | nvarchar (128) | NULL | None | Third grouping dimension name.
GroupDim3Value | nvarchar (128) | NULL | None | Third grouping dimension value.
Location | nvarchar (512) | NULL | None | The report path.
RunDateTime | datetime | NULL | None | Date the report was run.


CubeProcInfo Table

The following table contains information used by the Report preparation DTS task to process cubes. This table should be updated when cubes are added or deleted.

Attribute name | Data type | Constraint | Default | Description
AutoPartition | bit | NOT NULL | 1 | If set to True (1), new partitions will be added to the cube as needed by the Report preparation DTS task. If set to False (0), partitions will not be automatically created for the cube.
CubeName | nvarchar (50) | NOT NULL | None | Name of the cube to be processed.
FactTable | Sysname | NULL |  | Name of the fact table associated with the cube name.
IncEnabled | bit | NOT NULL | None | If True (1), the cube will be processed incrementally if the Report preparation task is running in incremental mode. If False (0), data for the cube will always be fully refreshed when the Report preparation task is run.
IsVirtual | bit | NOT NULL | 0 | If False (0) the cube is standard. If True (1) the cube is virtual.
Optimization | tinyint | NULL |  | Indicates targeted optimization percentage for the Report preparation DTS task when run in full mode and aggregations are designed for the cube. If set to NULL, no aggregations will be designed.
PartitioningKey | Sysname | NULL |  | Specifies the name of the column in the table defined in PartitionKeySource, which will be used to partition data within the cube. This column is used by auto-partitioning if the AutoPartition bit is set to 1.
PartitionKeySource | Sysname | NULL |  | Specifies the name of the table that provides partition key values.
PartitionSize | Bigint | NULL | Validate that PartitionSize is greater than zero (0). | Specifies the key range that will be covered by the next partition added to the cube by auto-partitioning.
ProcessingEnabled | bit | NOT NULL | 1 | If True (1), the cube will be processed. If False (0), the cube will not be processed.
ProcessingKey | Sysname | NULL |  | Specifies the name of the column in the table defined in ProcessingKeySource, which will be used to identify new rows that have been added to this table. This column is used by incremental processing if the IncEnabled bit is set to 1.
ProcessingKeySource | Sysname | NULL |  | Specifies the name of the table that provides processing key values.
ProcessingPass | int | NOT NULL | 0 | The Report preparation DTS task groups cube processing operations into separate passes. All cubes in one pass are processed before cubes in the next pass are processed.


CubePartitionInfo Table

The CubePartitionInfo table defines the actual partitions within the cube and is used to track the processing state of data within the cube.

Attribute name | Data type | Constraint | Default | Description
CubeName | nvarchar (50) | NOT NULL |  | Specifies the name of the cube to be processed.
LastKeyProcessed | Sql_variant | NULL |  | Contains the maximum value of the fact table ProcessingKey that was added to this partition.
LastProcessedDate | datetime | NULL |  | Contains the datetime at which the last attempt to process the partition was made.
LastProcessedDescr | nvarchar (255) | NULL |  | Contains text describing the result of the last attempt to process the partition.
LastProcessedStatus | int | NULL |  | Contains the status of the last attempt to process the partition. Zero (0) for success.
LastSuccessfulDate | datetime | NULL |  | Contains the datetime of the last successful attempt to process the partition.
MaxVal | Sql_variant | NOT NULL |  | The maximum value for partitioning column values. Fact table rows with partitioning column values equal to or less than this value will be added to the partition.
MinVal | Sql_variant | NOT NULL |  | The minimum value for partitioning column values. Fact table rows with partitioning column values equal to or greater than this value will be added to the partition.
PartitionId | int | NOT NULL |  | Used internally to assign sequential partition names. This value does not necessarily correspond with the partition ordinal within the cube.
PartitionName | nvarchar(50) | NOT NULL |  | Specifies the name of the partition to be processed.
ProcessingEnabled | bit | NOT NULL | 1 | If True (1), the cube will be processed by the Report preparation DTS task. If False (0), the cube is not processed.
ProcessingState | int | NULL | 0 | Used internally by the Report preparation DTS task. If set to True (1), the processing state of the partition is indeterminate. All data within a partition will be refreshed if the ProcessingState is set to True (1).


DimProcInfo Table

The following table contains information used by the Report preparation DTS task to process shared dimensions. This table should be updated when shared dimensions are added or deleted.

Attribute name | Data type | Constraint | Default | Description
DimName | nvarchar (50) | NOT NULL | None | Dimension name.
IncEnabled | bit | NOT NULL | 1 | If True (1), the dimension will be processed incrementally. If False (0), the dimension data will always be fully refreshed, regardless of the task settings.
LastSuccessfulDate | datetime | NULL | None | Date and time that the dimension was last processed successfully.
LastProcessedDate | datetime | NULL | None | Date and time of the last attempt to process the dimension.
LastProcessedDescr | nvarchar (255) | NULL | None | Contains text describing the result of the last attempt to process the dimension.
LastProcessedStatus | int | NULL | None | Status of the last attempt to process the dimension. If 0, the cube was processed successfully.
Ordinal | int | NULL | None | Specifies the order in which the dimension is to be processed by the Report preparation DTS task.
ProcessingEnabled | bit | NOT NULL | 1 | If True (1), the dimension will be processed. If False (0), the dimension will not be processed.


StoredProcInfo Table

The following table contains information used by the Report preparation DTS task to run stored procedures. This table should be updated when stored procedures needed for reporting are added or deleted.

Attribute name | Data type | Constraint | Default | Description
Name | nvarchar (150) | NULL | None | Name of the stored procedure.
Ordinal | int | NULL | None | Specifies the order in which the stored procedure will be processed by the Report preparation DTS task.
ProcessingEnabled | bit | NULL | 1 | If True (1), the stored procedure will be processed. If False (0), the procedure will not be processed.


ReportPreExec Table

The following table contains information used by the Report caching DTS task to run OLAP reports. To change the reports or the order in which the Report caching DTS task runs, you add, remove, or change rows in the ReportPreExec table.

Attribute name | Data type | Constraint | Default | Description
ReportID | int | NOT NULL |  | The report ID to be run. Any report ID can be specified, but only reports of type 1 (dynamic OLAP) will be processed by the Report caching DTS task.
Ordinal | int | NOT NULL |  | The order in which to run reports.


Table Usage by Report Type

The following table shows which report tables are used to create the different report types.

Report type | StaticSQL | StaticMDX | DynamicSQL | DynamicMDX | GroupedSQL | GroupedMDX
Design-time table |  |  |  |  |  |
Report | X | X | X | X | X | X
ReportDimension | X | X |  |  | X | X
ReportParam | X | X |  |  | X | X
Run-time table |  |  |  |  |  |
GroupReportJob |  |  |  |  | X | X
GroupReportStatus |  |  |  |  | X | X
GroupReportDbObject |  |  |  |  | X | X
ReportInstanceDbObject | X |  |  |  | X |
ReportInstanceParam | X | X |  |  | X | X
ReportStatus | X | X |  |  |  |


Profiles Schema

The profiles schema defines the structure of profiles. Profiles represent business objects (site users, customers, trading partners, and so on) and correspond to classes in the Commerce Server Data Warehouse.

This topic describes the profiles schema included with Microsoft Commerce Server 2002. The ability to extend or delete these schemas is available through the Profile Designer in Commerce Server Business Desk. The Profiles resource in Commerce Server Manager provides the functionality to create new schemas.

This section contains:

  • Conventions. Explains the table entries used to describe the profiles.
  • Address Profile Schema. Defines a structure for address entities.
  • Organization Profile Schema. Defines a structure for organization entities.
  • UserObject Profile Schema. Defines a structure for registered and anonymous user entities.

See Also

Profiling System Objects

Profile XML Structures

ProfileObject Object

ProfileService Object


Conventions

This section explains the table entries used to describe the logical profiles schema.

Data Type

This column indicates the data type of the property. For pre-defined profiles, a logical property is mapped to a physical property of the same name, prefixed with the first letter of the data type and an underscore (for example, the logical address_id, a GUID data type, is mapped to the physical g_address_id).

Exported (Exp)

True (1) indicates the property is exported into the Data Warehouse by the Commerce Server 2002 User Import DTS Task. The DTS task extends the Data Warehouse schema to accommodate any new properties. This property is set in the IsExported attribute of the Property element of the XML representation. If IsExported is set to True (1) for at least one property of the profile definition, then the date_last_changed property must be defined on the profile definition.

Group

A group is a collection of related profile properties, for example, a group named GeneralInfo could be a group containing Name, Address, and Phone properties. Group names must be unique to the profile. Property names, even across different groups, must also be unique. Profile properties are accessed either by their names or in combination with their group name in the format Group.Property (for example, GeneralInfo.address_line1).

Required (Req)

This column indicates whether the property is required.


Address Profile Schema

An instance of this profile schema stores both user and organization addresses. The profile is mapped to the physical Addresses table. The Commerce Server 2002 User Import DTS Task extends and exports data into the Data Warehouse for properties with the Exported (Exp) attribute marked as True (1). The Data Warehouse class into which the Address profiles are exported is set through the DWClassName attribute of the Address profile, and defaults to Address. For information about the table entries, see Conventions.

Property Name | Data Type | Req | Exp | Group | Display Name/ Description
address_id (primary and join key) | GUID | T | T | General Info | Address ID Supplied by the system
address_line1 | Unicode String | T | F | General Info | Address line 1
address_line2 | Unicode String | F | F | General Info | Address line 2
address_name | Unicode String | F | T | General Info | Address name
address_type | Integer | F | T | General Info | Address type 0 – Address 1 – ShipTo address 2 – BillTo address
city | Unicode String | F | T | General Info | City
country_code | Unicode String | T | T | General Info | Country/region (ISO) code
country_name | Unicode String | F | T | General Info | Country/region name
date_created | Date Time | F | T | Profile System | Date created The default is getdate()
date_last_changed | Date Time | F | T | Profile System | Date last changed The default is getdate()
description | Unicode String | F | F | General Info | Description
first_name | Unicode String | F | T | General Info | (User) first name
id | GUID | F | F | General Info | ID of the organization/user to which this entry refers
last_name | Unicode String | F | T | General Info | (User) last name
locale | Integer | F | F | General Info | Locale ID Locale (character set) in which to render the address form
postal_code | Unicode String | T | T | General Info | Postal (ZIP) code
region_code | Unicode String | T | T | General Info | Country/region or state/province code
region_name | Unicode String | F | T | General Info | Country/region or state/province name
tel_extension | Unicode String | F | T | General Info | Telephone (number) extension
tel_number | Unicode String | F | T | General Info | Telephone number at this address
user_id_changed_by | Unicode String | F | F | General Info | Changed by Person making the last change


Organization Profile Schema

An instance of this profile schema stores data about organizations (trading partners, home companies, subsidiaries, and so on). This profile is not imported into the Data Warehouse by default. For information about the table entries, see Conventions.

Property Name | Data Type | Req | Exp | Group | Display Name/ Description
org_id (join key) | GUID | T | F | General Info | Organization ID Supplied by the system
name (primary key) | Unicode String | T | F | General Info | Name
date_created | Date Time | F | F | Profile System | Date created The default is getdate()
date_last_changed | Date Time | F | F | Profile System | Date last changed The default is getdate()
org_catalog_set | Unicode String | F | F | General Info | Organization catalog set Specific to the organization
trading_partner_number | Unicode String | F | F | General Info | Trading partner number Assigned by the supplier to the customer organization to represent an account number
user_id_admin_contact | GUID | F | F | General Info | Administrative contact
user_id_changed_by | GUID | F | F | General Info | Changed by Person making the last change
user_id_purchasing_manager | GUID | F | F | Purchasing | Purchasing manager of the buying organization
user_id_receiver | GUID | F | F | General Info | Receiver The default person to receive products shipped from the supplier


UserObject Profile Schema

An instance of this profile schema stores information about both registered and anonymous users. The Commerce Server 2002 User Import DTS task extends and exports data into the Data Warehouse for properties with the Exported (Exp) attribute marked as True (1). The Data Warehouse class into which the UserObject profiles are exported is set through the DWClassName attribute of the UserObject profile, and defaults to RegisteredUser. For information about the table entries, see Conventions.

Property Name | Data Type | Req | Exp | Group | Display Name/ Description
user_id (join key) | GUID | T | T | General Info | User ID Supplied by the system by default
logon_name (primary key) | Unicode String | T | T | General Info | Logon name User principal name (Commerce Server Business Desk/Partner Desk sets to e-mail by default)
account_status | Integer | F | T | Account Info | Account status Windows account status bitmask (including active/inactive)
date_created | Date Time | F | T | Profile System | Date created The default is getdate()
date_last_changed | Date Time | F | T | Profile System | Date changed The default is getdate()
date_registered | Date Time | F | T | Account Info | Date (and time) registered on the site
email_address | Unicode String | F | T | General Info | E-mail (address)
fax_extension | Unicode String | F | F | General Info | Fax (number) extension
fax_number | Unicode String | F | F | General Info | Fax number
first_name | Unicode String | F | T | General Info | First name
last_name | Unicode String | F | T | General Info | Last name
org_id | GUID | F | F | General Info | Organization ID to which the user belongs
partner_desk_role | Integer | F | F | Business Desk | PartnerDeskRoleFlags Role ID for the user
tel_extension | Unicode String | F | F | General Info | Telephone extension
tel_number | Unicode String | F | T | General Info | Telephone number
user_catalog_set | Unicode String | F | F | Account Info | User catalog set
user_id_changed_by | GUID | F | F | General Info | Changed by Person making the last change
user_security_password | Unicode String | F | F | General Info | User password To identify and authenticate the user
user_title | Unicode String | F | F | General Info | User title (For example, "Purchase Manager")
user_type | Integer | F | T | General Info | User type 0 = Anonymous 1 = Registered (default)


Style Sheet Reference

Customizable style sheets, found in files with .css extensions, allow the appearance of whole classes of visual HTML elements to be controlled from one centralized location. Commerce Server Business Desk and Dynamic Reports make extensive use of style sheet files to control the look of the content and navigation panes, to define distinct style themes, and to provide alternative language input for certain HTML controls (HTCs).

Notes

  • Extreme care should be exercised when changing styles since unwanted effects may be caused in other areas of Business Desk.
  • Some of the styles defined in these two .css files are no longer used. If they are not listed in this reference, you should assume that they are obsolete.

Since there are hundreds of styles defined in these two files, this reference provides a logical division and brief explanation of these styles.

This section contains:

  • Business Desk Styles.
  • Dynamic Report Styles.


Business Desk Styles

This section contains:

  • Business Desk Style Files. Provides information about the style sheet and ASP files that are used in the Business Desk to define styles, themes, and alternative language input for HTCs.
  • Content Pane Styles. Provides information about the styles designed for controlling the look of the content pane, as defined in the files default_bizdesk.css and hicont_bizdesk.css.
  • Navigation Pane Styles. Provides information about the styles designed for controlling the look of the navigation pane, as defined in the files default_navtree.css and hicont_navtree.css.


Business Desk Style Files

The following table describes the various files that are related to the definition and management of styles for Commerce Server Business Desk.

File name | Description
include\bizdesk.css | Included by action pages to define the styles that they use within the content pane. This file imports the file bizdesk_css.asp, which in turn will include the content pane styles for the theme that the user has chosen (or to the default theme).
include\navtree.css | Included by the file navtree.asp to define the styles that it uses within the navigation pane. This file imports the file navtree_css.asp, which in turn will include the navigation pane styles for the theme that the user has chosen (or to the default theme).
include\styles\bizdesk_css.asp | Imported by the file bizdesk.css, this file will redirect to the content pane style sheet file corresponding to the theme that the user has chosen (or to the default theme).
include\styles\navtree_css.asp | Imported by the file navtree.css, this file will redirect to the navigation pane style sheet file corresponding to the theme that the user has chosen (or to the default theme).
include\styles\default_bizdesk.css | Defines the default styles for the Commerce Server Business Desk content pane. For specific information about these styles, see Content Pane Styles.
include\styles\default_navtree.css | Defines the default styles for the Business Desk navigation pane. For specific information about these styles, see Navigation Pane Styles.
include\styles\hicont_bizdesk.css | Defines the high contrast styles for the Business Desk content pane. For specific information about these styles, see Content Pane Styles. High contrast styles are provided to improve accessibility.
include\styles\hicont_navtree.css | Defines the high contrast styles for the Business Desk navigation pane. For specific information about these styles, see Navigation Pane Styles. High contrast styles are provided to improve accessibility.
include\styles\en_widgets.css | Defines English language styles (fonts, and so on) for various HTML control (HTC) input fields.
include\styles\chs_widgets.css | Defines SimplifiedChinese language styles (fonts, and so on) for various HTML control (HTC) input fields.
include\styles\cht_widgets.css | Defines Traditional Chinese language styles (fonts, and so on) for various HTML control (HTC) input fields.
include\styles\jp_widgets.css | Defines Japanese language styles (fonts, and so on) for various HTML control (HTC) input fields.
include\styles\ko_widgets.css | Defines Korean language styles (fonts, and so on) for various HTML control (HTC) input fields.
welcome.asp | Contains the code that provides the theme choice drop-down list on the Business Desk welcome page. This file contains instructional comments about how to add new, custom themes to Business Desk.


Content Pane Styles

The customizable style sheet file (CSS), Bizdesk.css, indirectly defines the styles used within the content pane of Commerce Server Business Desk. It imports a file, bizdesk_css.asp, that contains a small amount of code that redirects to one of several other CSS files that define the actual styles used in the content pane. These latter files have names of the form "*_bizdesk.css". Two such files are included in Commerce Server 2002: default_bizdesk.css and hicont_bizdesk.css. The former defines the default content pane styles and the latter defines high contrast versions of the content panes styles that improve accessibility. New themes are created by creating additional files that conform to the naming scheme and that define the contained styles differently.

The content pane styles can be divided into two broad categories. First, those styles that apply directly to the action page being displayed in the content pane. And second, those styles that apply to one of the HTML components (HTCs) that are commonly used in the action pages.

This section provides further detail about each of these categories.

This section contains:

  • Action Page Styles. Describes the action page styles defined in the CSS files with names of the form "*_bizdesk.css".
  • HTML Component Styles. Describes the HTC styles defined in the CSS files with names of the form "*_bizdesk.css".


Action Page Styles

Action page styles can be divided into five basic categories: styles that apply to the overall action pages, title bar styles, task bar styles, status bar styles, and find pane styles. This section provides further details based on this division.

This section contains:

  • Base Action Page Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply directly to the action page.
  • Title Bar Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply to the title bar.
  • Task Bar Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply directly to the task bar.
  • Status Bar Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply directly to the status bar.
  • Find Pane Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply directly to the find pane.
  • Context Menu Styles. Provides information about the styles in the CSS files with names of the form "*_bizdesk.css" that apply directly to the task context menu.

Base Action Page Styles

Action pages in Commerce Server Business Desk have certain basic styles to which they conform, allowing them to be changed centrally, in the file Bizdesk.css.

These styles are defined for certain HTML elements, and also for elements associated with particular class and id attribute values. These three categories of styles are discussed separately below.

Element Styles

A
Defines style characteristics used when rendering an anchor element.
BODY
Defines base style characteristics used when rendering a body element.
BUTTON
Defines style characteristics used when rendering a button element.
DIV
Defines style characteristics used when rendering a DIV element.
FORM
Defines style characteristics used when rendering a form.
H1
Defines style characteristics used when rendering a first-level heading.
H2
Defines style characteristics used when rendering a second-level heading.
H3
Defines style characteristics used when rendering a third-level heading.
H4
Defines style characteristics used when rendering a fourth-level heading.
H5
Defines style characteristics used when rendering a fifth-level heading.
H6
Defines style characteristics used when rendering a sixth-level heading.
INPUT
Defines style characteristics used when rendering a single line text box element.
LABEL
Defines style characteristics used when rendering a label element.
OPTION
Defines style characteristics used when rendering a selection option element.
P
Defines style characteristics used when rendering a paragraph.
SELECT
Defines style characteristics used when rendering a selection element.
SPAN
Defines style characteristics used when rendering a span element.
SPAN.bdexpandicon
Defines style characteristics used when rendering a span element that has had the class "bdexpandicon" associated with it. The "bdexpandicon" class is used for elements that contain the characters "3", "4", "5", or "6" that are displayed with the Webdings font to produce left, right, up, or down arrows, respectively.
STRONG
Defines style characteristics used when rendering the content that has been designated as strong.
TD
Defines style characteristics used when rendering a normal table cell.
TEXTAREA
Defines style characteristics used when rendering a multi-line text box element.
TH
Defines style characteristics used when rendering a table heading cell.

Class Styles

.bdbutton
Defines a base style for shared characteristics used when rendering buttons in the content pane. This class should be used for any buttons displayed anywhere in Business Desk.
.bdDebug
Defines style characteristics applied to debug text when debugging is enabled by setting the global variable SHOW_DEBUG_TEXT to True in the file Global.asa.
.editPageContainer
Defines style characteristics used when rendering the main page containing element (usually a DIV) on an edit page.
.waitDisplay
Defines style characteristics used when rendering the wait display in the content pane, the ExpressionBuilder HTC, or the ListSheet HTC.
.waitDisplay SPAN
Defines style characteristics used when rendering the wait display within a SPAN element in the content pane, ExpressionBuilder HTC, or ListSheet HTC.
.webdings
Defines style characteristics used when rendering an element using the webding font. The "webdings" class is most often used for elements that contain the characters "3", "4", "5", or "6" that are displayed with the Webdings font to produce left, right, up, or down arrows, respectively.

ID Styles

#bdcontentarea
Defines style characteristics used when rendering the content area containing element (usually a DIV) on an action page, located between the task bar and the status bar.
#bdwaitdisplay IMG
Defines style characteristics used when rendering the wait display image in the content pane.

Title Bar Styles

The following styles are associated with the title bar, using the class and id attributes.

Class Styles

.bdcolorbar
Defines style characteristics used when rendering the colored title bar and status bar that distinguishes list pages from edit pages.
.bdcolorbar IMG
Defines style characteristics used to show or hide the title bar image within the colored title bar.
.bdeditmode .bdcolorbar
Defines style characteristics used when rendering the colored title bar and status bar on edit pages.
.bdeditmode .bdcolorbar IMG
Defines style characteristics used when rendering the page title bar image within the colored title bar on edit pages.

ID Styles

#bdtitlebar
Defines style characteristics used when rendering the title bar.
#bdtitletext
Defines style characteristics used when rendering the page title text within the title bar.

Task Bar Styles

The following styles are associated with the task bar, using the class and id attributes.

Class Styles

.bdtaskbutton
Defines style characteristics used when rendering a task button without text.
.bdtaskbutton IMG
Defines style characteristics used when rendering the task icon image within a task button without text.
.bdtaskbuttonmenu
Defines style characteristics used when rendering a drop-down task button without text.
.bdtaskbuttonmenu IMG
Defines style characteristics used when rendering the task icon image within a drop-down task button without text.
.bdtasktextbutton
Defines style characteristics used when rendering a task button with text.
.bdtasktextbutton IMG
Defines style characteristics used when rendering the task icon image within a task button with text.
.bdtasktextbuttonmenu
Defines style characteristics used when rendering a drop-down task button with text.
.bdtasktextbuttonmenu IMG
Defines style characteristics used when rendering the task icon image within a drop-down task button with text.
.bdtaskdisabled
Defines style characteristics used when rendering a task as disabled.
.bdtaskdisabled IMG
Defines style characteristics used when rendering the task icon image within a disabled task.
.bdtaskmenu
Defines style characteristics used when rendering a task menu.
.bdtaskmenu DIV
Defines style characteristics used when rendering a menu item within a task menu.
.bdtaskpress
Defines style characteristics used when rendering a pressed (clicked) task button.
.bdtasktable
Defines style characteristics used when rendering the table that contains the task buttons.
.bdtasktable TD
Defines style characteristics used when rendering the cells within the table that contains the task buttons.
.bdtasktextbutton
Defines style characteristics used when rendering text-based task button (when no task icon is defined).
BUTTON.bdtaskdisabled
Defines style characteristics used when rendering a task button as disabled.
BUTTON.bdtaskover
Defines style characteristics used when rendering a task button with the mouse hovering over it.

ID Styles

#bdhelparea
Defines style characteristics used when rendering the help button area, located at the right end of the task bar.
#bdlanguageselect
Defines style characteristics used when rendering the language choice select control, located to the left of the module-specific task buttons and to the right of the help button. Most modules do not add any content to this control, keeping it from appearing; catalog and shipping modules are the exceptions.
#bdtaskarea
Defines style characteristics used when rendering the task button area, located at the left end of the task bar.
#bdtaskbar
Defines style characteristics used when rendering the entire task area, including the areas associated with the id attribute values "bdtaskarea" and "bdhelparea".
#bdtaskbtnhelp
Defines style characteristics used when rendering the help button, located at the right end of the task bar.

Status Bar Styles

The following styles are associated with the status bar, using the class and id attributes.

Class Styles

.bdcolorbar
Defines style characteristics used when rendering the colored title bar and status bar that distinguishes list pages from edit pages.
.bdcolorbar IMG
Defines style characteristics used to show or hide the title bar image within the colored title bar.
.bdeditmode .bdcolorbar
Defines style characteristics used when rendering the colored title bar and status bar on edit pages.
.bdeditmode .bdcolorbar IMG
Defines style characteristics used when rendering the page title bar image within the colored title bar on edit pages.

ID Styles

#bdstatusbar
Defines style characteristics used when rendering the status bar at the bottom of the right pane.
#bdstatusbar IMG
Defines style characteristics used when rendering the animated loading image within the status bar.
#bdstatusbar NOBR
Defines style characteristics used when rendering text within a NOBR element in the status bar.

Find Pane Styles

The following styles are associated with the find pane, using the class and id attributes.

Class Styles

DIV.filtertext
Defines style characteristics used when rendering a DIV element associated with the class attribute value "filtertext". This class is used to format the "Filtered View" text displayed over a filtered list.
.findByContent
Defines style characteristics used to render the element that will be displayed in the find pane. This style should be used on an element of a list page that has the class attribute value "bdfindbycontent" and contains all the UI controls to be displayed in the find pane.

ID Styles

#bdfindbybody
Defines style characteristics used when rendering the portion of the find pane below the title. This is the container drawn by the InsertTaskBar and InsertEditTaskbar routines within which the "id=bdfindbycontent" element for a list page will be displayed.
#bdfindbyclose
Defines style characteristics used when rendering the right-hand portion of the find pane containing the close button.
#bdfindbycontent
Defines style characteristics used when rendering the find by content on a page within the find pane. The element with id "bdfindbycontent" should contain all the UI controls to be displayed in the find pane. It should also have "findByContent" set as its class attribute.
#bdfindbytitle
Defines style characteristics used when rendering the portion of the title text on the left side of the find pane title bar.
#bdfindbytitlebar
Defines style characteristics used when rendering the portion of the find pane containing the title text and the close button.
DIV#bdfindby
Defines style characteristics used when rendering the DIV element containing the entire find pane including the title bar and find content area.
#bdtaskbtnfindclose
Defines style characteristics used when rendering the find pane close button (the "x" in the upper right corner of the find pane).

Context Menu Styles

The following styles are associated with the context menu, using the class attributes.

Class Styles

.bdcontextmenu
Defines style characteristics used when rendering a task context menu for an action page.
.bdcontextmenuitem
Defines style characteristics used when rendering an item within a task context menu.
.bdcontextmenuitem U
Defines style characteristics used when rendering any underlined portions of an item within a task context menu. Specifically, the underlining is suppressed.
.bdcontextmenuitemhighlight
Defines style characteristics used when rendering a highlighted item within a task context menu.
.bdcontextmenuitemhighlight U
Defines style characteristics used when rendering any highlighted and underlined portions of an item within a task context menu. Specifically, the underlining is suppressed.


HTML Component Styles

HTML Component (HTC) styles can be divided into basic categories according to the type of HTC to which they apply. This section provides further details based on this division.

This section contains:

  • Calendar HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the Calendar HTC used in the drop-down list for the date type EditField HTC.
  • DynamicTable HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the DynamicTable HTC.
  • EditField HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the EditField HTC.
  • EditSheet HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the EditSheet HTC.
  • ExpressionBuilder HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the ExpressionBuilder HTC.
  • ListBox HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the ListBox HTC.
  • ListEditor HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the ListEditor HTC.
  • ListSheet HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the ListSheet HTC.
  • QueryBuilder HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the QueryBuilder HTC.
  • TreeView HTC Styles. Provides information about the styles in the file Bizdesk.css that apply to the TreeView HTC.

Calendar HTC Styles

The following styles are associated with the Calendar HTC, using the class attribute. Add the "calendar" class attribute value to an element to create a Calendar HTC instance.

Class Styles

.calendar
Associates an element with the DHTML behavior implemented in the file Calendar.htc. This is used to create a calendar control within the drop-down of the date type EditField HTC.
.WholeCalendar
Defines style characteristics used when rendering the containing table that makes up the Calendar HTC as a whole.
.WholeCalendar .CalTable
Defines style characteristics used when rendering the table containing the grid of days in the Calendar HTC.
.WholeCalendar .DateControls
Defines style characteristics used when rendering the table cell that contains the month and year controls at the top of the Calendar HTC.
.WholeCalendar .Day
Defines style characteristics used when rendering a day cell that is a day in the current month being displayed, and which is not currently selected.
.WholeCalendar .DaySelected
Defines style characteristics used when rendering the currently selected day cell in the Calendar HTC.
.WholeCalendar .DayTitle
Defines style characteristics used when rendering the weekday title cells at the top of the day grid in the Calendar HTC.
.WholeCalendar .OffDay
Defines style characteristics used when rendering a day cell that is either one of the last days of the previous month or one of the first days of the next month instead of a day in the month currently being displayed.

DynamicTable HTC Styles

The following styles are associated with the DynamicTable HTC, using the class attribute. Add the "dynamictable" class attribute value to an element to create a DynamicTable HTC instance.

Class Styles

.dtBtn
Defines style characteristics used when rendering the Accept, Cancel, New, and Remove buttons within the DynamicTable HTC.
.dtContainer
Defines style characteristics used when rendering the main container DIV element for the DynamicTable HTC.
.dtDataRow TD.dtCell
Defines style characteristics used when rendering a normal table cell in the data table for the DynamicTable HTC.
.dtHeaderTable TD
Defines style characteristics used when rendering a normal table cell in the header row of the DynamicTable HTC.
.dtHeaderTable TR
Defines style characteristics used when rendering the header row of the DynamicTable HTC.
.dtTableStyle
Defines style characteristics used when rendering the main table element for the DynamicTable HTC.
.dtTableStyle .dtDataRow
Defines style characteristics used when rendering a row of data in the DynamicTable HTC.
.dtTableStyle .efDisabled
Defines style characteristics used when rendering a disabled EditField HTC in the control row of the DynamicTable HTC.
.dtTableStyle .lsRowOver TD
Defines style characteristics used when rendering normal table data with the mouse hovering over it within the DynamicTable HTC.
.dtTableStyle DIV.dtContainer
Defines style characteristics used when rendering the main container DIV element within the DynamicTable HTC.
.dtTableStyle TH.dtCell
Defines style characteristics used when rendering a table heading cell in the DynamicTable HTC.
.dtTableStyle TR.lsRowSelected INPUT
Defines style characteristics used when rendering a selected single line text box in the DynamicTable HTC (an HTML INPUT element of type "password" is used to display data in a password type column so that "*" characters are displayed instead of the password text).
.dtTableStyle TR.lsRowSelected TD
Defines style characteristics used when rendering a selected data table cell.
.dynamicTable
Associates an element with the DHTML behavior implemented in the file DynamicTable.htc.
.efField
Defines common style characteristics used when rendering various types of EditField HTCs within the EditSheet and DynamicTable HTCs.
.efHide
Defines style characteristics used when hiding EditField HTC cells in the DynamicTable HTC.

EditField HTC Styles

The following styles are associated with the EditField HTC, using the class attribute. Add the "editfield" class attribute value to an element to create an EditField HTC instance. The node type in the EditField metadata used to describe a particular instance will determine which sub-control type HTC will be associated with the instance (for example, "efText", "efDate", and so on).

Class Styles

.editField
Associates an element with the DHTML behavior implemented in the file EditField.htc.
.efBoolean
Associates an element with the DHTML behavior implemented in the file efBoolean.htc.
.efBoolean INPUT
Defines style characteristics used when rendering the check box that is the child of a Boolean type EditField HTC.
.efBorderless
Defines style characteristics that eliminate any borders on the input element within and EditField HTC.
.efBrowseReadOnly
Defines style characteristics used when rendering elements within any EditField HTC that are defined to require the use of a corresponding browse button.
.efBrowseReadOnly INPUT
Defines style characteristics used when rendering single line text boxes that are defined to require the use of a corresponding browse button within any EditField HTC.
.efBrowseReadOnly TEXTAREA
Defines style characteristics used when rendering multi-line text boxes that are defined to require the use of a corresponding browse button within any EditField HTC.
.efDate
Associates an element with the DHTML behavior implemented in the file efDate.htc.
.efDatePicker
Defines style characteristics used when rendering the dropdown in the date type EditField HTC that reveals the calendar when clicked.
.efDisabled
Defines style characteristics used when rendering an EditField HTC element that has been designated as disabled.
.efDisabled INPUT
Defines style characteristics used when rendering a single line text box within an EditField HTC that has been designated as disabled.
.efDisabled LABEL
Defines style characteristics used when rendering a LABEL element within a Boolean type EditField HTC that has been designated as disabled.
.efDisabled TD DIV
Defines style characteristics used when rendering a display name within a select type EditField HTC that has been designated as disabled.
.efDisabled TEXTAREA
Defines style characteristics used when rendering a multi-line text box within a long text type EditField HTC that has been designated as disabled.
.efDownBtn
Defines style characteristics used when rendering the down button associated with the calendar and select type EditField HTCs.
.efDropDown
Defines style characteristics used when rendering the dropdown DIV element associated with the calendar and select type EditField HTCs.
.efEllipsisBtn
Defines style characteristics used when rendering the browse button that can be associated with any of the EditField HTCs.
.efField
Defines common style characteristics used when rendering various types of EditField HTCs within the EditSheet and DynamicTable HTCs.
.efHide
Defines style characteristics used when hiding EditField HTC cells in the DynamicTable HTC.
.efInvalid
Defines style characteristics used when rendering EditField HTCs that contain invalid data or are required and contain an empty value.
.efInvalid INPUT
Defines style characteristics used when rendering a single line text box that contains invalid data or is required and contain an empty value.
.efInvalid LABEL
Defines style characteristics used when rendering a label associated with a Boolean check box that contains invalid data and contains an empty value.
.efInvalid TD DIV
Defines style characteristics used when rendering a display name within a select type EditField HTC that contains invalid data or is required and contains an empty value.
.efInvalid TEXTAREA
Defines style characteristics used when rendering a multi-line text box within a long text type EditField HTC that contains invalid data or that is required and contains an empty value.
.efNumeric
Associates an element with the DHTML behavior implemented in the file efNumeric.htc.
.efOption
Defines style characteristics used when rendering options in a select type EditField HTC dropdown list.
.efOptionSelect
Defines style characteristics used when rendering selected options in a select type EditField HTC dropdown list.
.efPrompt
Defines style characteristics used when rendering prompt text within an EditField HTC.
.efReadOnly
Defines style characteristics used when rendering read-only EditField HTCs.
.efReadOnly INPUT
Defines style characteristics used when rendering a read-only single line text box in an EditField HTC.
.efReadOnly LABEL
Defines style characteristics used when rendering a label associated with a read-only Boolean check box in an EditField HTC.
.efReadOnly TD DIV
Defines style characteristics used when rendering a display name within a read-only select type EditField HTC.
.efReadOnly TEXTAREA
Defines style characteristics used when rendering a read-only multi-line text box in a long text type EditField HTC.
.efReadWrite
Defines style characteristics used when rendering read/write EditField HTCs.
.efSelect
Associates an element with the DHTML behavior implemented in the file efSelect.htc.
.efSelectScroll
Defines style characteristics used when rendering a scrollable select type EditField HTC. Select type EditField HTCs that have more than six options will use this style while ones that have fewer options will not.
.efText
Associates an element with the DHTML behavior implemented in the file efText.htc when the subtype is "short" or "password", and defined to be one line tall.
.efTextLong
Associates an element with the DHTML behavior implemented in the file efText.htc when the subtype is "long", and defined to be multiple lines tall.
.efTextLong .efPrompt
Defines style characteristics used when rendering the prompt text within a long text type EditField HTC.
.efTextLong TEXTAREA
Defines style characteristics used when rendering the multi-line text box within a long text EditField HTC.
.efTime
Associates an element with the DHTML behavior implemented in the file efTime.htc.

EditSheet HTC Styles

The following styles are associated with the EditSheet HTC, using the class attribute. Add the "editsheet" class attribute value to an element to create an EditSheet HTC instance.

Class Styles

DIV.esCollapsed
Defines style characteristics used when rendering a collapsed edit group in an EditSheet HTC.
DIV.esCollapsed DIV.esEditgroup
Defines style characteristics used when rendering an edit group within a collapsed DIV element in an EditSheet HTC.
DIV.esContainer
Defines style characteristics used when rendering the container DIV element for an edit group within an EditSheet HTC.
DIV.esEdittitle
Defines style characteristics used when rendering the title DIV element for an edit group within an EditSheet HTC.
DIV.esExpanded
Defines style characteristics used when rendering an expanded edit group in an EditSheet HTC.
DIV.esExpanded DIV.esEditgroup
Defines style characteristics used when rendering an edit group within an expanded DIV element in an EditSheet HTC.
.editSheet
Associates an element with the DHTML behavior implemented in the file EditSheet.htc.
.efField
Defines common style characteristics used when rendering various types of EditField HTCs within the EditSheet and DynamicTable HTCs.
.esEditgroup
Defines style characteristics used when rendering an edit group within an EditSheet HTC.
.esEditgroup DIV.esContainer
Defines style characteristics used when rendering a nested EditSheet HTC container DIV element within an edit group of another EditSheet HTC.
.esEditgroup DIV.esEdittitle
Defines style characteristics used when rendering a nested EditSheet HTC title DIV element within an edit group of another EditSheet HTC.
.esEditgroup SPAN.bdexpandicon
Defines style characteristics used when rendering a span containing the expand icon in a nested EditSheet HTC within an edit group of another EditSheet HTC.
.esEditgroup SPAN.esEditbar
Defines style characteristics used when rendering the span containing the title bar for a nested EditSheet HTC within an edit group of another EditSheet HTC.
.esTableStyle .esDataCell
Defines style characteristics used when rendering a normal data cell (right side of standard layout in an EditSheet HTC) within tables that have their class attribute set to "esTableStyle".
.esTableStyle .esLabelCell
Defines style characteristics used when rendering a label cell (left side of standard layout in an EditSheet HTC) within tables that have their class attribute set to "esTableStyle".
.esTableStyle .reqIcon
Defines style characteristics used when rendering the required icon table cell within tables that have their class attribute set to "esTableStyle".
SPAN.esEditbar
Defines style characteristics used when rendering the span containing the title bar for an EditSheet HTC.
TABLE.esTableStyle
Defines style characteristics used when rendering tables with which the "esTableStyle" class attribute value is associated.

ExpressionBuilder HTC Styles

The following styles are associated with the ExpressionBuilder HTC, using the class and id attributes.

Class Styles

.clsBtnDrop
Defines style characteristics used when rendering the button associated with a dropdown list in the ExpressionBuilder HTC.
.clsClauseBldr
Defines style characteristics used when rendering the QueryBuilder HTC within the ExpressionBuilder HTC.
.clsClauseInput
Defines style characteristics used when rendering a text input element within the ExpressionBuilder HTC.
.clsClauseList
Defines style characteristics used when rendering the clause list within the ExpressionBuilder HTC.
.clsClauseList TR
Defines style characteristics used when rendering a table row within the clause list in the ExpressionBuilder HTC.
.clsDropDown
Defines style characteristics used when rendering the text box associated with a dropdown list in the ExpressionBuilder HTC.
.clsExprBldr
Defines style characteristics used when rendering the ExpressionBuilder HTC.
.clsExprBldr TD
Defines style characteristics used when rendering a normal table cell within the ExpressionBuilder HTC.
.clsExprBldr TH
Defines style characteristics used when rendering a table heading cell within the ExpressionBuilder HTC.
.clsExprRef
Defines style characteristics used when rendering a nested expression reference within the ExpressionBuilder HTC.

ID Styles

#pmGroup
Used internally by the QueryBuilder HTC (and also within the ExpressionBuilder HTC). Do not modify.
#pmMarker
Used internally by the QueryBuilder HTC (and also within the ExpressionBuilder HTC). Do not modify.
#pmProfile
Used internally by the QueryBuilder HTC (and also within the ExpressionBuilder HTC). Do not modify.

ListBox HTC Styles

The following styles are associated with the ListBox HTC, using the class attribute. Add the "listbox" class attribute value to an element to create a ListBox HTC instance.

Class Styles

.lbDisabled
Defines style characteristics used when rendering a disabled ListBox HTC.
.listBox
Associates an element with the DHTML behavior implemented in the file Listbox.htc.
.listBox .lbHighlighted
Defines style characteristics used when rendering a highlighted item within a ListBox HTC.

ListEditor HTC Styles

The following styles are associated with the ListEditor HTC, using the class and id attributes. Add the "listeditor" class attribute value to an element to create a ListEditor HTC instance.

Class Styles

.listEditor
Associates an element with the DHTML behavior implemented in the file ListEditor.htc.
.listEditor .listSheetF
Defines style characteristics used when rendering a ListSheet HTC embedded within a ListEditor HTC.
.listEditor .lsNoSort
Defines style characteristics used when rendering a non-sortable column heading within a ListEditor HTC.
Defines style characteristics when rendering page scrolling button control in the lower part of the ListSheet HTC that is embedded within a ListEditor HTC.
Defines style characteristics when rendering buttons on the page scrolling button control in the lower part of the ListSheet HTC that is embedded within a ListEditor HTC.
.listSheetF
Associates an element with the DHTML behavior implemented in the file ListSheetF.htc. This is a stripped down version of the ListSheet that does not support hierarchical lists, paging or multi-selection. This HTC is embedded within the ListEditor HTC.
.listSheetF .lsPageButton
Defines style characteristics used when rendering page buttons within the list portion of a ListEditor HTC.
.listSheetF .lsPageText
Defines style characteristics used when rendering page number text box within the list portion of a ListEditor HTC.
.listSheetF .lsSelectButtons
Defines style characteristics used when rendering the selection buttons within the list portion of a ListEditor HTC.
.listSheetF TR
Defines style characteristics used when rendering a data table row in the ListSheet HTC used in the ListEditor HTC.

ID Styles

.listEditor #leListContainer
Defines style characteristics used when rendering the container element for the ListSheet HTC embedded within a ListEditor HTC.

ListSheet HTC Styles

The following styles are associated with the ListSheet HTC, using the class and id attributes. Add the "listsheet" class attribute value to an element to create a ListSheet HTC instance.

Class Styles

.listSheet
Associates an element with the DHTML behavior implemented in the file ListSheet.htc.

.listSheet .lsPageButton

Defines style characteristics used when rendering page buttons in a ListSheet HTC.

.listSheet .lsPageText
Defines style characteristics used when rendering page number text box in a ListSheet HTC.
Defines style characteristics when rendering rectangular area in lower part of the ListSheet HTC.
Defines style characteristics when rendering rectangular area in lower part of the ListSheet HTC that is embedded within a ListEditor HTC.
Defines style characteristics when rendering page scrolling button control in the lower part of the ListSheet HTC.
Defines style characteristics when rendering page scrolling button control in the lower part of the ListSheet HTC that is embedded within a ListEditor HTC.
Defines style characteristics when rendering buttons on the page scrolling button control in the lower part of the ListSheet HTC.
Defines style characteristics when rendering buttons on the page scrolling button control in the lower part of the ListSheet HTC that is embedded within a ListEditor HTC.
.listSheet .lsSelectButtons
Defines style characteristics used when rendering the selection buttons in a ListSheet HTC.
.listSheetF
Associates an element with the DHTML behavior implemented in the file ListSheetF.htc. This is a stripped down version of the ListSheet that does not support hierarchical lists, paging or multi-selection. This HTC is embedded within the ListEditor HTC.
.listSheetF .lsPageButton
Defines style characteristics used when rendering page buttons within the list portion of a ListEditor HTC.
.listSheetF .lsPageText
Defines style characteristics used when rendering page number text box within the list portion of a ListEditor HTC.
.listSheetF .lsSelectButtons
Defines style characteristics used when rendering the selection buttons within the list portion of a ListEditor HTC.
.listSheetF TR
Defines style characteristics used when rendering a data table row in the ListSheet HTC used in the ListEditor HTC.
.lsListArea
Defines style characteristics used when rendering the scrollable area containing rows of data in a ListSheet HTC.
.lsSpacer
Defines style characteristics used when rendering the column resizing controls in the heading row of a ListSheet HTC.
.lsTableStyle .lsNoSort
Defines style characteristics used when rendering a non-sortable column heading within a ListSheet HTC.
.lsTableStyle .lsRowClosed TD
Defines style characteristics used when rendering normal table cells in a closed row of a ListSheet HTC.
.lsTableStyle .lsRowOver TD.lsCell
Defines style characteristics used when rendering cells within a table row that is not selected in a ListSheet HTC when the mouse is hovering over it.
.lsTableStyle .lsRowSelected TD.lsCell
Defines style characteristics used when rendering cells within a selected table row in a ListSheet HTC.
.lsTableStyle .lsSortButton
Defines style characteristics used when rendering a column heading sort button in a ListSheet HTC.
.lsTableStyle TD.lsCell
Defines style characteristics used when rendering cells within a table row that is not selected in a ListSheet HTC.
.lsTableStyle TD.lsCell SPAN
Defines style characteristics used when rendering a data-bound span within a table cell in a ListSheet HTC.
.lsTableStyle TD.lsCell SPAN.bdexpandicon
Defines style characteristics used when rendering a expand icon span within a table cell in a ListSheet HTC. This renders as a right arrow when the group is closed and a down arrow when the group is expanded.
.lsTableStyle TD.lsObjectCell
Defines style characteristics used when rendering a sub-object table cell in the detail row of a two-tiered ListSheet HTC.
.lsTableStyle TH.lsCell
Defines style characteristics used when rendering a table heading cell within a ListSheet HTC.
.lsTableStyle THEAD TR
Defines style characteristics used when rendering a table heading row within a ListSheet HTC.
.lsTableStyle TR TR.lsRowClosed TD
Defines style characteristics used when rendering a normal table cell within a closed row in a ListSheet HTC.
.lsTableStyle TR.lsRowOver
Defines style characteristics used when rendering a table row within a ListSheet HTC when the mouse is hovering over it.
.lsTableStyle TR.lsRowOverSel TD.lsCell
Defines style characteristics used when rendering cells within a selected table row in a ListSheet HTC when the mouse is hovering over it.
.lsTableStyle TR.lsRowSelected
Defines style characteristics used when rendering a selected table row within a ListSheet HTC.
.lsTableStyle TR.lsRowSelected INPUT
Defines style characteristics used when rendering a selected table row within a ListSheet HTC that contains a single-line text box (an HTML INPUT element of type "password" is used to display data in a password type column so that "*" characters are displayed instead of the password text).
TABLE.lsTableStyle
Defines style characteristics used when rendering the table within a ListSheet HTC.
TABLE.selected #objectTable TR .lsCell
Defines style characteristics used when rendering cells within a sub-object table under a selected row in a ListSheet HTC.
TABLE.selected #objectTable TR TH.lsNoSort
Defines style characteristics used when rendering table heading cells as non-sortable in a sub-object table under a selected row in a ListSheet HTC.
TABLE.selected TD.lsCell
Defines style characteristics used when rendering normal data cells within a selected table within a ListSheet HTC.
#objectTable TR TH.lsNoSort
Defines style characteristics used when rendering table heading cells as non-sortable within a detail row in a sub-object table within a ListSheet HTC.
.selected
Defines style characteristics used when rendering ListSheet HTC elements that are in selected rows.
.selected INPUT
Defines style characteristics used when rendering a selected single line text box in a ListSheet HTC (password columns are displayed using an INPUT element set to type "password" so the value is replaces with "*" characters).
.wait DIV
.wait SPAN
.wait TD
.wait TH
.wait BUTTON
.wait INPUT
Defines style characteristics used when rendering elements that are of the "wait" class, and DIV elements, spans, normal table cells, table heading cells, buttons, and single line text boxes that are children of such elements. This class is used to add a wait cursor to all elements of a ListSheet when it is loading.

ID Styles

.listSheet #btnSelectAll
Defines style characteristics used when rendering the Select All button in a ListSheet HTC.
.listSheet #btnUnselectAll
Defines style characteristics used when rendering the Deselect All button in a ListSheet HTC.

QueryBuilder HTC Styles

The following styles are associated with the QueryBuilder HTC, using the class attribute. Add the "/widgets/exprbldHTC/querybuilder.htc" behavior style to an element to create a QueryBuilder HTC instance.

Class Styles

.clsQueryBldr
Defines style characteristics used when rendering the QueryBuilder HTC as a whole.
.clsQueryBldr .clsDisabled
Defines style characteristics used when rendering child elements of the QueryBuilder HTC that have been classified as disabled.
.clsQueryBldr .clsDisabled A
Defines style characteristics used when rendering anchor elements within disabled child elements of the QueryBuilder HTC.
.clsQueryBldr .clsSelected
Defines style characteristics used when rendering child elements of the QueryBuilder HTC that have been classified as selected.
.clsQueryBldr .clsSelected TD
Defines style characteristics used when rendering normal table cells within child elements of the QueryBuilder HTC that have been classified as selected.
.clsQueryBldr TD
Defines style characteristics used when rendering normal table cells within the QueryBuilder HTC.
.clsQueryBldr TR
Defines style characteristics used when rendering table rows within the QueryBuilder HTC.

ID Styles

.clsQueryBldr #menuitem
Defines style characteristics used when rendering menu items in a dropdown list within the QueryBuilder HTC.
.clsQueryBldr #popupmenu
Defines style characteristics used when rendering a pop-up (sub) menu within the QueryBuilder HTC.
.clsQueryBldr #submenumark
Defines style characteristics used when rendering the arrow that indicates the presence of a submenu within the QueryBuilder HTC.

TreeView HTC Styles

The following styles are associated with the TreeView HTC, using the class attribute. Add the "treeview" class attribute value to an element to create a TreeView HTC instance.

Class Styles

.treeView
Associates an element with the DHTML behavior implemented in the file TreeView.htc.
.treeView DIV DIV
Defines style characteristics used when rendering a second-level DIV element within the TreeView HTC.
.treeView DIV.tvClosed DIV
Defines style characteristics used when rendering a second-level DIV element in a closed first-level DIV element in the TreeView HTC.
.treeView DIV.tvDisabled
Defines style characteristics used when rendering a disabled DIV element in the TreeView HTC.
.treeView DIV.tvGroupOver
Defines style characteristics used when rendering a highlighted DIV element that is not a leaf node in the TreeView HTC.
.treeView DIV.tvHide
Defines style characteristics used when hiding a DIV element in the TreeView HTC.
.treeView DIV.tvOver
Defines style characteristics used when rendering a highlighted DIV element that is a leaf node in the TreeView HTC.
.treeView DIV.tvSkip DIV
Defines style characteristics used when rendering a DIV element within a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV DIV
Defines style characteristics used when rendering a second-level DIV element under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV LABEL
Defines style characteristics used when rendering a label under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV SPAN
Defines style characteristics used when rendering a span within a DIV element under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV.tvClosed DIV
Defines style characteristics used when rendering a DIV element within a closed DIV element under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV.tvDisabled DIV
Defines style characteristics used when rendering a DIV element within a disabled DIV element under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip DIV.tvHide DIV
Defines style characteristics used when rendering a DIV element within a hidden DIV element under a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip LABEL
Defines style characteristics used when rendering a label within a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView DIV.tvSkip SPAN
Defines style characteristics used when rendering a span within a skipped DIV element in the TreeView HTC. Styles including the "tvSkip" class are used to format data elements within a skipped element.
.treeView LABEL
Defines style characteristics used when rendering a label within the TreeView HTC.
.treeView LABEL.tvSelected
Defines style characteristics used when rendering a selected label within the TreeView HTC.
.treeView SPAN
Defines style characteristics used when rendering a span within the TreeView HTC.


Navigation Pane Styles

The customizable style sheet file (CSS), navtree.css, indirectly defines the styles used within the navigation pane of Commerce Server Business Desk. It imports a file, navtree_css.asp, that contains a small amount of code that redirects to one of several other CSS files that define the actual styles used in the navigation pane. These latter files have names of the form "*_navtree.css". Two such files are included in Commerce Server 2002: default_navtree.css and hicont_navtree.css. The former defines the default navigation pane styles and the latter defines high contrast versions of the navigation panes styles that improve accessibility. New themes are created by creating additional files that conform to the naming scheme and that define the contained styles differently.

The navigation pane style definitions included both element styles and class styles. Element styles are those that apply to an element regardless of any class or id attribute settings on that element. Class styles are those that apply to one or more element types only if the class attribute has the particular value that is indicated. Often, the situations in which the styles apply are restricted according to some characteristic of a parent or grandparent element.

The remainder of this topic provides further detail about each of these style categories.

Element Styles

.bdcategory NOBR
Defines style characteristics used when rendering text without line breaks in the category level of the navigation pane.
BODY
Defines base style characteristics used when rendering the contents of the body element in the navigation pane.
.categoryhighlight NOBR
Defines style characteristics used when rendering text without line breaks in a highlighted category level entry in the navigation pane.
.categoryhighlight NOBR SPAN
Defines style characteristics used when rendering a span within text without line breaks in a highlighted category level entry in the navigation pane.
DIV.bdcs4 A
Defines style characteristics used when rendering the anchor element with the link to www.microsoft.com in the navigation pane.
DIV.bdmenu UL
Defines style characteristics used when rendering category-level unordered list elements within the navigation tree.
DIV.bdmenu UL DIV
Defines style characteristics used when rendering DIV elements within the first-level unordered list elements within the navigation tree.
DIV.bdmenu UL UL
Defines style characteristics used when rendering module-level unordered list elements within the navigation tree.
DIV.bdmenu UL UL DIV
Defines style characteristics used when rendering DIV elements within the module-level unordered list elements within the navigation tree.
.expanded NOBR
Defines style characteristics used when rendering text without line breaks within an expanded category in the navigation tree.
HTML
Defines base style characteristics used when rendering any HTML in the navigation pane.

Class Styles

.bdDebug
Defines style characteristics applied to debug text when debugging is enabled by setting the global variable SHOW_DEBUG_TEXT to True in the file Global.asa.
.bdmodule
Defines style characteristics used when rendering a module entry in the navigation pane.
.collapsed SPAN.bdcollapseicon
Defines style characteristics used when rendering the collapsed icon when a category is collapsed in the navigation pane.
.collapsed SPAN.bdexpandicon
Defines style characteristics used to suppress rendering of the expanded icon when a category is collapsed in the navigation pane.
.collapsed UL.bdmodulelist
Defines style characteristics used to suppress rendering of the corresponding modules when a category is collapsed in the navigation pane.
DIV.bdfooter
Defines style characteristics used when rendering the footer area in the navigation pane, which contains the link to Microsoft.com
DIV.bdlogo
Defines style characteristics used when rendering the logo area in the navigation pane, which contains the link to the About dialog box.
DIV.bdmenu
Defines style characteristics used when rendering the DIV element that contains the entire navigation tree in the navigation pane.
DIV.bdscrollwindow
Defines style characteristics used when rendering the scrollable window that contains the entire navigation tree.
.expanded
Defines style characteristics used when rendering an expanded category in the navigation pane.
.expanded SPAN.bdcollapseicon
Defines style characteristics used to suppress rendering of the collapsed icon when a category is expanded in the navigation pane.
.expanded SPAN.bdexpandicon
Defines style characteristics used when rendering the expanded icon when a category is expanded in the navigation pane.
.expanded UL.bdmodulelist
Defines style characteristics used when rendering the corresponding modules when a category is expanded in the navigation pane.
.modulehighlight
Defines style characteristics used when rendering a module that has been highlighted in the navigation pane.
.moduleselect
Defines style characteristics used when rendering a module that has been selected in the navigation pane.
.scrollbtn
Defines style characteristics used when rendering a scroll button at the top or bottom of the navigation pane.

ID Styles

#bdhome
Defines style characteristics used when rendering the home page link in the navigation pane.
#bdhome IMG
Defines style characteristics used when rendering the home page link image in the navigation pane.
#bdhome.moduleselect
Defines style characteristics used when rendering the home page link in the navigation pane when it is selected.


Dynamic Report Styles

This topic contains:

  • Dynamic Report Style Files. Provides information about the style sheet and ASP files that are used in the dynamic reports to define styles, themes, and alternative language input for HTCs.
  • Dynamic Report Style Reference. Provides information about the styles designed for controlling the look of the pivot table and graph for the dynamic reports, as defined in the files Styles10.css and Reports.css.


Dynamic Report Style Files

The following table describes the various files that are related to the definition and management of styles for Dynamic Reports.

File name | Description
analysis\Styles10.css | Included by the file analysis_dynamic_reporting10.asp to define the styles that are used when rendering a dynamic report.
FormatControls10.scp | Included by the file analysis_dynamic_reporting10.asp to read and apply styles defined in Styles10.css to the dynamic report.


Dynamic Report Style Reference

The customizable style sheet files (CSS) Styles10.css, indirectly defines the styles used when rendering the Dynamic Reports in the Reports category of the Analysis module in Business Desk. The FormatControls10.scp file is used to apply the styles to the pivot table and chart.

The style definitions include element styles, class styles, and ID styles. Element styles are those that apply to an element regardless of any class or id attribute settings on that element. Class styles are those that apply to one or more element types only if the class attribute has the particular value that is indicated. Often, the situations in which the styles apply are restricted according to some characteristic of a parent or grandparent element.

The remainder of this topic provides further detail about each of these style categories.

Element Styles

The following figure uses the Ad Frequency report to show the element styles used in a dynamic report table.

Depicts a report table with callouts identifying which tags control which part of the table.

The following figure uses the Ad Frequency report to show the element styles used in a dynamic report graph.

Depicts a report graph with callouts identifying which tags contol which part of the graph.

The following is a list of the standard element styles used in the dynamic report style sheets: A, A:link, A:visited, ADDRESS, B, BODY, BUTTON, CITE, DIV, EM, H1, H2, H3, H4, H5, H6, I, INPUT, LABEL, OPTION, P, SELECT, SPAN, STRONG, TEXTAREA, TD, TH, VAR.

The following list contains information about custom elements used in the dynamic report style sheets.

ChartPlotArea

Background color of the plot area for the chart.

ChartSpace

Background color for the chart.

ChartSpaceDropZones

Font size and background color for the filter dimensions, row dimensions, column dimensions, and data drop zones in the chart.

ChartSpaceLegend

Font size and background color for the chart legend.

ChartSpaceTitle

Font size and background color for the chart title.

ColumnSubtotalsLevel1

Text and background color for the first level column subtotal fields in the pivot table.

ColumnSubtotalsLevel2

Text and background color for the second level column subtotal fields in the pivot table.

GrandTotals

Text and background color for the grand totals in the pivot table.

PivotAxis

Not used.

PivotColumnMembers

Text and background color for the column dimension fields on the pivot table.

PivotDataFields

Text and background color for the filter dimension and the measures on the pivot table.

PivotFields

Text and background color for the filter, row, and column dimension header fields on the pivot table.

PivotMembers

Text and background color for the pivot dimension members on the pivot table.

PivotRowMembers

Text and background color for the row dimension fields on the pivot table.

PivotTable

Background color for the pivot table.

PivotTitleBar

Text and background color for the pivot table title bar on the pivot table.

PivotTotals

Text and background color for the pivot totals on the pivot table.

Profit

Not used.

RowSubtotalsLevel1

Text and background color for the first level row subtotals on the pivot table.

RowSubtotalsLevel2

Text and background color for the second level row subtotals on the pivot table.

Sales

Not used.

Sales Average

Not used.

Store Cost

Not used.

Store Sales

Not used.

Store Sales Net

Not used.

Unit Sales

Not used.

Class Styles

.DATAHEADINGS

Defines style characteristics used when rendering the heading in the table in the body of the static report.

.DATATABLE

Defines style characteristics used when rendering the data in the table in the body of static reports.

.DATATABLE1

Defines style characteristics used when rendering the data in the table in the body of static reports. Used to provide the alternating row colors in the static OLAP reports.

.DATATABLE2

Defines style characteristics used when rendering the data in the table in the body of static reports. Used to provide the alternating row colors in the static OLAP reports.

.DESCRIPTION

Defines style characteristics used when rendering the report description, run by, and run date area of the header

.GRAPHICCEL

Defines style characteristics used when rendering the report logo image.

.STATIC1

Not used.

.TITLEMAIN

Defines style characteristics used when rendering the report name at the top of the report.

.USERINFO

Not used.

ID Styles

#btnNewReport

Defines style characteristics used when rendering the New Report button.

#btnReportHelp

Defines style characteristics used when rendering the Report Help button.

#btnSaveReport

Defines style characteristics used when rendering the Save Report button.

#btnPivotDisplay

Defines style characteristics used when rendering the Show/Hide Pivot button.

#btnChartDisplay

Defines style characteristics used when rendering the Show/Hide Chart button.

#btnDefinitionDisplay

Defines style characteristics used when rendering the Show/Hide Long Definition button.


Commerce Server のトラブルシューティング

ここでは、Microsoft Commerce Server 2002 を使用しているときによく起きる問題について説明します。

テクニカル サポートについて、Microsoft では Web サイトを通じてオンライン ニュースグループを運営しています。Commerce Server ニュースグループの詳細については、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=5816

また、Microsoft Commerce Server 2002 Readme も参照してください。Readme は、このバージョンの Commerce Server に関する既知の問題と最新情報の一覧が記載されており、Commerce Server 2002 のインストール CD-ROM に含まれています。

ここでは、次のトピックについて説明します。

  • アプリケーションのトラブルシューティング アプリケーションとビジネス デスクの開発および管理中に発生する可能性のある問題について説明し、その解決方法を示します。
  • サイト パッケージャのトラブルシューティング Commerce Server サイト パッケージャの使用中に発生する可能性のある問題について説明し、その解決方法を示します。
  • データ ウェアハウスのインポート処理のトラブルシューティング Commerce Server DTS タスクを使ってデータをデータ ウェアハウスにインポート中に発生する可能性のある問題について説明します。さらに、それらの問題の解決方法についても説明します。
  • Commerce Server リソースのトラブルシューティング DTS タスク、予測リソース、プロファイル リソース、およびダイレクト メーラーの使用中に発生する可能性のある問題について説明し、その解決方法を示します。
  • Commerce Server マネージャ タスクパッドのトラブルシューティング Commerce Server とオペレーティング システムの言語が同期していない場合に、Commerce Server マネージャ タスクパッドで発生する可能性のある問題について説明します。
  • イベント メッセージ 既知のイベント メッセージの一覧です。各イベント メッセージについて、メッセージ ID、重要度、およびコメントを示します。
  • トラブルシューティングに関する追加情報 システム管理者が利用できる、その他のトラブルシューティングの一覧を示します。


アプリケーションのトラブルシューティング

ここでは、アプリケーションおよび Commerce Server ビジネス デスクの開発および管理中に発生する可能性のある問題について説明します。

ここでは、次のトピックについて説明します。

  • SQL インスタンスのルートにインストールしようとするとセットアップが失敗する
  • Kerberos と Windows 統合セキュリティが機能しない
  • Supplier サイト : 削除されたユーザーがいる場合にサイトのプロファイル キャッシュを正しく更新できない
  • モデル ビューで複数のモデルを選択すると削除オプションが無効になる
  • Recordset オブジェクトを使った後は RecordSet Close() メソッドを使う
  • RecordSet オブジェクトに含まれるデータを DataSet オブジェクトにコピーする
  • Windows .NET Server 使用時に ADODB.Connection.2.5 を使うとエラーが生成される
  • IIS 6.0 を使うと ASP ページの処理が無効になる
  • ソリューション サイトで IIS 6.0 を使うとエラーが生成される
  • 可用性を高めるために 64 ビット通貨を使用する
  • 合計 1,000 万通貨単位を超える注文に失敗する
  • Web サーバーの [コンピュータを委任に対して信頼する] を有効にする
  • OLAP/SQL Server が Windows NT の認証を要求する
  • スナップインを初期化できない
  • 広告または割引が Web サイトに表示されない
  • インポートに失敗するとカタログ データが不完全な状態になる
  • ユーザーが Web サイトのカタログを検索できない
  • カタログ キャッシュを更新できない
  • Web アプリケーションに管理者としてログオンできない
  • コンピュータ名を変更すると Commerce Server が停止する
  • システムの日付区切り記号を変更するとエラーが返される
  • ヘルプの検索機能で検索結果が返されない
  • 一部の DLL が自動登録をサポートしていない
  • 新しい管理データベースを作成する
  • ビジネス デスク : 管理パスワードを変更するとビジネス デスク クライアントの接続が切断される
  • ビジネス デスク : Active Directory に新しいユーザーを追加しようとすると認証エラーが発生する
  • ビジネス デスク : 更新した構成が反映されない
  • ビジネス デスク : リスト マネージャまたはユーザー モジュールにデータが表示されない
  • ビジネス デスク : "ライブラリは登録されていません"または regexp のその他の問題
  • ビジネス デスク : 管理者権限を持つユーザーがビジネス デスクのデータにアクセスできない
  • ビジネス デスク : ビジネス デスクへのアクセス中にランタイム エラーが発生する
  • ビジネス デスク : Internet Explorer でインターネット サイトを開くことができない
  • レポート : バイヤーの参照の状況レポートのエラー
  • レポート : 動的 SQL レポートを表示できない
  • レポート : 静的レポートの日付の値が地域のオプションの設定と合っていない

アプリケーションのデバッグについては、次のトピックを参照してください。

  • Debugging Business Desk
  • Content Selection Framework Concepts


SQL Server インスタンスのルートにインストールしようとするとセットアップが失敗する

Commerce Server 2002 のインストール先を既存の SQL Server インスタンスのルートと同じ場所にして、ポート番号も SQL Server インスタンスと同じものにすると、セットアップに失敗することがあります。

解決方法

SQL Server を実行しているコンピュータで、サーバー ネットワーク ユーティリティを開きます ([スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をクリックし、[サーバー ネットワーク ユーティリティ] をクリックします)。個々のインスタンスを選択して、各インスタンスのポート番号が一意になるように番号を変更します。変更が終了したら、すべての SQL Server インスタンスを再起動します。


Kerberos と Windows 統合セキュリティが機能しない

Kerberos、インターネット インフォメーション サービス (IIS) 5.0、および Windows 統合セキュリティを利用している環境のトラブルシューティングを行う場合は、次に示す、推奨される解決方法を参照してください。

解決方法

サービス プリンシパル名は存在していますか。コンピュータの名前を変更した場合、ホストの NetBIOS 名と DNS 名が設定されていないことがあります。この場合には、ホストのサービス プリンシパル名を再設定する必要があります。

  • コンピュータは信頼される側のドメインにありますか。これは必須条件です。
  • TCP/IP を削除したために、SQL Server のサーバー ネットワーク ユーティリティを実行したときに、使われているのが名前付きパイプだけになっていませんか。
  • 接続文字列の中に Network Library=DBMSSOCN がありますか。この文字列があると、Kerberos が機能しなくなります。
  • Web サーバーは、委任に対して信頼されていますか。これは必須条件です。


Supplier サイト : 削除されたユーザーがいる場合にサイトのプロファイル キャッシュを正しく更新できない

サイトで削除コマンドを実行してユーザーを削除すると、サイトのプロファイル キャッシュが更新されません。サイトで同じ名前のユーザーをもう一度作成すると、2 つのエラー メッセージのうちいずれか 1 つが表示されます。ユーザーをサイト上で削除した場合は "Active Directory グループにユーザーを追加中に、エラーが発生しました。" が、ユーザーをビジネス デスクで削除した場合は "ユーザーは既に存在します" が表示されます。

解決方法

サイトのプロファイル キャッシュを更新するには、ビジネス デスクの "プロファイルの発行" モジュールを使います。


モデル ビューで複数のモデルを選択すると削除オプションが無効になる

"モデル" ビューで複数のモデルを選択すると、削除オプションが無効になります。

解決方法

[モデル ビュー] タブをクリックすると、削除オプションが表示されるようになります。この問題は、予測リソースおよび Commerce Server に起因するものではありません。問題の原因は Microsoft 管理コンソール (MMC) にあります。


Recordset オブジェクトを使った後は RecordSet Close() メソッドを使う

ASP ページから SQL Server データベースにアクセスする場合によく使われるのは、ActiveX Data Object (ADO) の RecordSet オブジェクトを使う方法です。RecordSet オブジェクトは、使い終わった後に明示的に閉じないと、予期しないエラーやパフォーマンス低下の原因になります。

解決方法

パフォーマンスを最大限まで高めて、さらに予期しないエラーを防ぐには、RecordSet オブジェクトが不要になった時点で Close() メソッドを呼び出すようにします。


RecordSet オブジェクトに含まれるデータを DataSet オブジェクトにコピーする

頻繁に実行する処理の 1 つに、Commerce Server の関数から返され、RecordSet オブジェクトに格納されているデータを ADO.NET の DataSet オブジェクトにコピーする処理があります。この処理は、DataSet オブジェクトをデータ バインドする場合や、データを XML に変換する場合などに役立ちます。

解決方法

次に示すのは、このコピー機能を実現する C# コードの一例です。

// get a Recordset
CatalogManager cm;
_Recordset rs = cm.Catalogs;

// copy Recordset data into DataSet
DataSet ds = new DataSet();
OleDbDataAdapter myLoader = new OleDbDataAdapter();
myLoader.Fill(ds, rs, "Catalogs");


Windows .NET Server 使用時に ADODB.Connection.2.5 を使うとエラーが生成される

Windows .NET Server を使う場合は、ソリューション サイトで次のようなコードを使わないようにしてください。

Server.CreateObject("ADODB.Connection.2.5")

このコードを使うと、サイトで次のエラー コードが表示されます。

Server object, ASP 0177 (0x800401F3) Invalid ProgID

解決方法

Windows .NET Server では ActiveX Data Objects (ADO) 2.7 が実行されていますが、この ADO 2.7 では、ADO 2.5 に規定されている接続が行われません。この非互換性の問題を回避するには、コードを次のように変更します。

Server.CreateObject("ADODB.Connection")


IIS 6.0 を使うと ASP ページの処理が無効になる

インターネット インフォメーション サービス (IIS) 6.0 を使う場合、既定の設定では ASP ページの処理が無効になっています。この問題は、IIS Lockdown ツールを起動し、ASP ページを有効にし、IIS を再起動すると解決します。

IIS Lockdown ツールを使うと、この問題が解決するだけでなく、インターネット サービス マネージャにある不要なリンク (スクリプト、イメージ、iisHelp、iisadmin、msadc など) をすべて削除することもできます。

解決方法

  1. http://go.microsoft.com/fwlink/?LinkId=5592 を参照して、IIS Lockdown ツールをダウンロードします。
  2. IIS を再起動します。


ソリューション サイトで IIS 6.0 を使うとエラーが生成される

インターネット インフォメーション サービス (IIS) 5.0 ではなく IIS 6.0 を使用している場合は、ユーザーがサイトの ASP ページにアクセスしたときに、ユーザーに対して次のエラー メッセージが表示されることがあります。

Error Type:
Active Server Pages, ASP 0131 (0x80004005)
The Include file '../include/helper.asp' cannot contain '..' to indicate the parent directory.
/svt/account/login.asp, line 10

IIS 6.0 では、ASP のインクルードに '..' を使用できません。Retail サイトの ASP ファイルには、Supplier サイトの場合と同様に '..' が使用されることがよくあります。

解決方法

Retail、Supplier、または Blank のソリューション サイトを使って開発されたサイトでは、IIS 6.0 を使用しないようにします。


可用性を高めるために 64 ビット通貨を使用する

ユーザーが合計 1,000 万通貨単位を超える項目の入ったバスケットを作成すると、バスケットが使用できなくなります。ユーザーに対して次のメッセージが表示されます。

"'_product_list_price' を計算中にオーバーフローが発生しました。範囲の拡張情報に関するヘルプを参照してください。"

このユーザーのその後の注文は、すべて失敗します。

解決方法

パイプライン エディタで通貨サポートを 32 ビットから 64 ビットへアップグレードします。

64 ビット通貨を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[パイプライン エディタ] をクリックします。
  2. ツール バーの 開く をクリックし、パイプライン ファイルの場所へ移動します。パイプライン ファイルをダブルクリックして開きます。
  3. [編集] メニューの [プロパティ] をクリックします。
  4. [パイプラインのプロパティ] ダイアログ ボックスの [通貨モード] ボックスで [通貨 (有効桁数)] を選択し、[OK] をクリックします。

    注

    • 有効桁数モードでパイプラインを実行するには、パイプラインに Microsoft Site Server 3.0 Commerce Edition のパイプライン コンポーネントが含まれていないことが必要です。Site Server 3.0 のパイプライン コンポーネントの詳細については、「Pipeline Component Reference」を参照してください。
  5. Web サーバーを再起動します。

関連項目

合計 1,000 万通貨単位を超える注文に失敗する


合計 1,000 万通貨単位を超える注文に失敗する

ユーザーが合計 1,000 万通貨単位を超える項目の入ったバスケットを作成すると、バスケットが使用できなくなります。ユーザーに対して次のメッセージが表示されます。

"'_product_list_price' を計算中にオーバーフローが発生しました。範囲の拡張情報に関するヘルプを参照してください。"

このユーザーのその後の注文は、すべて失敗します。

解決方法

1,000 万通貨単位を超える注文のサポートを有効にするには、パイプライン エディタの通貨サポートを 32 ビットから 64 ビットへアップグレードする必要があります。

64 ビット通貨を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[パイプライン エディタ] をクリックします。
  2. ツール バーの 開く をクリックし、パイプライン ファイルの場所へ移動します。パイプライン ファイルをダブルクリックして開きます。
  3. [編集] メニューの [プロパティ] をクリックします。
  4. [パイプラインのプロパティ] ダイアログ ボックスの [通貨モード] ボックスで [通貨 (有効桁数)] を選択し、[OK] をクリックします。

    注

    • 有効桁数モードでパイプラインを実行するには、パイプラインに Microsoft Site Server 3.0 Commerce Edition のパイプライン コンポーネントが含まれていないことが必要です。Site Server 3.0 のパイプライン コンポーネントの詳細については、「Pipeline Component Reference」を参照してください。
  5. Web サーバーを再起動します。


Web サーバーの [コンピュータを委任に対して信頼する] を有効にする

Web サーバーで実行している Active Server Pages (ASP) ページが、Active Directory ディレクトリ サービスに格納されているユーザーのパスワードを設定およびリセットできるのは、当該の Web サーバーが委任に対して信頼されている場合だけです。

解決方法

このオプションを有効にするには、Active Directory でコンピュータ アカウントのプロパティ シートを開き、[コンピュータを委任に対して信頼する] チェック ボックスがオンになっていることを確認します。

[コンピュータを委任に対して信頼する] オプションを設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[Active Directory ユーザーおよびコンピュータ] をクリックします。
  2. 設定する必要のあるコンピュータ アカウント、たとえば、Active Directory ユーザーとコンピュータ/<ドメイン名>/Computers/<コンピュータ名> に移動します。
  3. 右側のウィンドウの一覧で、コンピュータ名をダブルクリックします。[アカウント] タブの [アカウントは委任に対して信頼する] チェック ボックスをオンにし、[OK] をクリックします。

この設定を有効にするには、関連付けられた Web サーバーの再起動が必要な場合があります。


OLAP/SQL Server が Windows NT の認証を要求する

SQL Server を実行しているコンピュータに別のドメインまたはワークグループからリモートで接続すると、Commerce Server サイト パッケージャが、データ ウェアハウスのオンライン分析処理 (OLAP) 接続のために OLE DB を作成しようとしたときに失敗します。

解決方法

データ ウェアハウスのオンライン分析処理 (OLAP) 接続のための OLE DB には、Microsoft Windows NT の認証が必要です。

これを確立するには、ワークグループ SQL Server コンピュータに同じアカウントを作成する必要があります。たとえば、<コンピュータ名>\share がデータ ウェアハウスに接続できるように、<コンピュータ名>\share を作成します。

注

  • SQL Server が信頼されるドメインにある場合、そのドメインのアカウントは、OLAP 管理アカウントの一部である必要があります。

Commerce Server ビジネス デスク モジュールが Active Directory の共通名に格納されているデータに依存している場合、文字列の長さは最大 64 文字です。また、Active Directory に格納される組織名には、グループ名 (11 文字の _Admingroup、または 10 文字の _Usergroup) が含まれます。

関連項目

Windows 認証を有効にする

解決方法

組織名を Active Directory に格納する場合は、組織名とグループ名は合わせて最大 64 文字になります。名前の長さがこの制限範囲内に収まっていることを確認してください。


スナップインを初期化できない

特定の条件下で Commerce Server マネージャを開こうとすると、"スナップインを初期化できませんでした。" というエラー メッセージが表示されます。このエラーが発生するのは、クラスタの 2 つのノードに Commerce Server 2002 をフルインストールし、ダイレクト メールと予測をクラスタ リソースとして設定していて、SQL Server がクラスタ上にない場合です。

解決方法

管理しようとするコンピュータを、ターミナル サービスを使って再起動します。


広告または割引が Web サイトに表示されない

作成され、Web サイトに表示されるはずの広告または割引が表示されません。

解決方法

この問題は、次の 2 つの方法のいずれかで解決できます。

  • TraceScores.asp ファイルを使うには
  • DumpContentList.asp ファイルを使う

TraceScores.asp ファイルを使うには

  1. TraceScores.asp ファイルを Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Debug からサイトの仮想ディレクトリへコピーします。
  2. ContentSelector オブジェクトを作成するコードを変更し、TraceScores.asp ファイルを組み込む行を追加します。
  3. Trace プロパティを True に設定する行を追加します。
  4. TraceScores サブルーチンを呼び出す行を追加します。

コード例

次の TraceScores.asp ファイルのコード例では、追加する行は太字で示してあります。

<!-- #include file="TraceScores.asp" -->

<%
    ' Create a ContentSelectorObject
    Set CSO = Server.CreateObject("Commerce.ContentSelector")
    CSO.Trace = true
    ' Use the GetContent method to get some content. Use the dictionary
    ' previously created in the Global.asa and referenced through the
    ' Application collection.
    Set Ads = CSO.GetContent(Application("CSFAdsContext"))
    ' Ads is a SimpleList containing the selected content.
    ' Write the content to the page, if any.
    For Each Ad in Ads
        Response.Write(Ad)
    Next
    Response.Write("<P>")
    Call TraceScores(CSO)
%>

出力例

追跡が有効になると、コンテンツの項目に対する変更がすべて追跡されます。TraceScores.asp ファイルが発見した広告の変更は、次の例で太字で示しています。

ad: Volcano erupts (item_id=1) score: 1.028331

Commerce.CSFAdvertisingNeedOfDelivery,=1.89,Paid Ad Need of Delivery.
Commerce.CSFHistoryPenalty,*0.54,Reselect penalty applied

ad: Cuckoo clock (item_id=2) score: 1.112223

Commerce.CSFAdvertisingNeedOfDelivery,=1.89,Paid Ad Need of Delivery.
Commerce.CSFHistoryPenalty,*0.59,Reselect penalty applied

ad: MSPress (item_id=3) score: 1.012156

Commerce.CSFAdvertisingNeedOfDelivery,=2.02,Paid Ad Need of Delivery.
Commerce.CSFHistoryPenalty,*0.50,Reselect penalty applied

ad: Trey Research (item_id=4) score: 1

Commerce.CSFAdvertisingNeedOfDelivery,=1.00,House Ad Need of Delivery (Weight)

表示されるはずの広告が追跡の中にない場合は、キャッシュに読み込まれていません。Commerce Server ビジネス デスクのキャンペーンの発行モジュールで、再びキャンペーンをサーバーに発行します。それでも広告が表示されない場合は、次の点を確認してください。

  • 広告の開始日および終了日を確認します。
  • 顧客、キャンペーン、およびキャンペーン項目がアクティブであることを確認します。

注

  • TraceScores フラグが On に設定されていると、コンテンツ選択フレームワーク (CSF) パイプラインのパフォーマンスは大幅に低下します。

DumpContentList.asp ファイルを使う

DumpContentList.asp ファイルは、スレッドおよび割引機能の問題を解決するために使用できるもう 1 つのツールです。このツールは、現在メモリに読み込まれているすべての広告または割引と、そのプロパティをすべて表示します。また、ContentList オブジェクトのスキーマを表示します。これは、ContentList オブジェクトまたは ContentListFactory オブジェクトのコンテンツのダンプに使用できます。

DumpContentList.asp を使うには

  1. DumpContentList.asp ファイルを Program Files\Microsoft Commerce Server\SDK\Samples\Marketing\Debug からサイトの仮想ディレクトリへコピーします。
  2. ContentSelector オブジェクトを作成するコードを変更し、DumpComtentList.asp ファイルを組み込む行を追加します。
  3. DumpContentList サブルーチンを呼び出す行を追加します。

コード例

次の例では、追加する行は太字で示してあります。

<!-- #include file="DumpContentList.asp" -->

<%
    ' Create a ContentSelectorObject
    Set CSO = Server.CreateObject("Commerce.ContentSelector")
    ' Use the GetContent method to get some content. Use the dictionary
    ' previously created in the Global.asa and referenced through the
    ' Application collection.
    Set Ads = CSO.GetContent(Application("CSFAdsContext"))
    ' Ads is a SimpleList containing the selected content.
    ' Write the content to the page, if any.
    For Each Ad in Ads
        Response.Write(Ad)
    Next
    Response.Write("<P>")
    Call DumpContentList(CSO.Value("Order").Value("_Content"))
%>

関連項目

キャンペーン項目が Web サイトに予想どおりに表示されない

Tracing and debugging


インポートに失敗するとカタログ データが不完全な状態になる

カタログをインポートするスクリプトの実行中に、そのスクリプトが停止 (失敗) した場合、カタログ データが完全にはインポートされないことがあります。スクリプトが失敗する可能性があるのは、たとえば、カタログ データのインポート中に Web サーバーが SQL Server に接続できない場合です。

解決方法

イベント ログ ファイルを調べて、停止の原因 (SQL Server との接続が失われた、など) を確認します。停止の原因を取り除いて、カタログをインポートするプロセスをもう一度実行します。


ユーザーが Web サイトのカタログを検索できない

ctlg_CatalogReaderRole グループのメンバは、MSCS_CatalogScratch データベースについての db_owner アクセス許可を持っている必要があります。MSCS_CatalogScratch データベースは一時データベースであり、データを永続的に保持するものではありません。ユーザーにアクセス許可を付与しても、セキュリティ上の問題はありません。サイトを訪問するユーザーが MSCS_CatalogScratch データベースについてのアクセス許可を持っていない場合、そのユーザーは商品カタログを検索できません。

解決方法

CatalogSecurityRoles.sql スクリプトを実行して、ユーザーに適切なアクセス許可を付与します。


カタログ キャッシュを更新できない

ビジネス デスクのカタログ エディタで、[最新の情報に更新] をクリックすると次のエラー メッセージが表示されます。
"以下に対するカタログ キャッシュの更新中にエラーが発生しました : <BR><BR><B>%1</B>。"

解決方法

Commerce Server 2000 から移行したサイトを使っている場合は、更新済みの BDRefresh.asp ファイルをコピーする必要があります。このファイルは、Commerce Server 2002 の更新済み Retail サイトにあります。

また、キャッシュが正しく構成されていない場合もあります。キャッシュの名前付けと構成を Retail ソリューション サイトのものと比較し、確認してください。


Web アプリケーションに管理者としてログオンできない

Commerce Server ビジネス デスクには管理者としてログオンできますが、他の Commerce Server アプリケーションに管理者としてログオンできません。

解決方法

この問題の原因は、ビジネス デスクと Windows ドメイン名の競合です。この問題を避けるには、ビジネス デスクでユーザーを作成し、そのユーザーを適切なドメイン グループに置くことによってアクセス特権を割り当てます。ビジネス デスクにアクセスする必要のあるユーザーは、ドメイン管理者として追加でき、標準のユーザー名を使ってビジネス デスクにアクセスできます。


コンピュータ名を変更すると Commerce Server が停止する

コンピュータ名を変更すると、SQL Server が自動的に管理データベースを検索しない場合があります。次のメッセージが表示されることがあります。

"2735 CA_ADMIN_ValidateDB"

解決方法

Commerce Server マネージャで必要な接続文字列の設定を変更し、新しいコンピュータ名を使うようにします。変更する設定は、Commerce Server の配置に使われたトポロジによって異なります。管理データベースのフィールドを手動で新しい名前に編集します。

また、現在の SQL Server の登録情報を削除し、新しい SQL Server のインスタンスを登録する必要があります。管理データベースの SQL Server ログインとパスワードを変更する必要があります。このためには、現在の SQL Server の登録情報を削除し、新しい SQL Server のインスタンスを登録します。新しい SQL Server のインスタンスを登録するには、次の手順を実行します。

管理データベースの SQL Server ログインとパスワードを変更するには

  1. Microsoft Commerce Server マネージャのコンソールで、[Commerce Server マネージャ] を右クリックし、[プロパティ] をクリックします。
  2. [Commerce Server マネージャーのプロパティ] ダイアログ ボックスの [管理データベース] タブで、[変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

  3. [データ リンク プロパティ] ダイアログ ボックスの内容を必要時応じて変更し、[OK] をクリックします。

注

  • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] ヘルプ ファイルを開いてください。


システムの日付区切り記号を変更するとエラーが返される

システムの日付区切り記号をスラッシュ (/)、ピリオド (.)、またはダッシュ (-) 以外の文字に変更し、Commerce Server ビジネス デスクを開こうとすると、次のエラー メッセージが表示されます。

"ビジネス デスクを読み込み中にエラーが発生しました。"

このエラーは、インターネット インフォメーション サービス (IIS) 5.0 を再起動した後にのみ発生します。

解決方法

ビジネス デスクを閉じ、システムの日付区切り記号をスラッシュ (/) に戻します。

システムの日付区切り記号を変更するには

  1. [スタート] ボタンをクリックし、[設定] をポイントします。次に [コントロール パネル] をクリックします。
  2. [地域のオプション] をダブルクリックし、次に [日付] タブをクリックします。
  3. [区切り記号] ボックスの [/] をクリックし、[OK] をクリックします。

    注意

    • インターネット インフォメーション サービス (IIS) を再起動すると、Web サイトの機能が一時的に停止します。先へ進む前に IIS を再起動する必要があるので、注意してください。詳細については、「IIS と Commerce Server サービスを再起動する」を参照してください。
  4. IIS を再起動します。
  5. 再びビジネス デスクを開きます。

IIS を再起動するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[インターネット サービス マネージャ] をクリックします。
  2. プラス記号 (+) をクリックし、サーバー名のグループを展開します。
  3. [既定の Web サイト] を右クリックし、[停止] をクリックします。
  4. [既定の Web サイト] を右クリックし、[開始] をクリックします。

IIS が再起動し、再びビジネス デスクを開くことができます。


ヘルプの検索機能で検索結果が返されない

Commerce Server ビジネス デスクのオンライン ヘルプで語句またはトピックを検索した場合、検索結果が返されません。次のエラー メッセージが表示されます。

"そのクエリには、これ以上ドキュメントはありません。"

解決方法

Web サーバーでインデックス サービスを起動します。インデックス サービスが起動してから、ビジネス デスクのオンライン ヘルプのコンテンツを格納したフォルダが利用可能になるまでに長い遅延時間がある場合があるため、インデックス サービスは必ず "自動起動" に設定してください。

詳細については、Windows 2000 Server のオンライン ヘルプで、「インデックス サービス」を参照してください。


一部の DLL が自動登録をサポートしていない

一部のダイナミック リンク ライブラリ (DLL) ファイルは、Regsvr32.exe ファイルを使って自動登録しようとすると失敗します。このような DLL ファイルを以下に示します。

BizDataManager.dll
CalcRenderer.dll
CatalogSets.dll
CatalogVendorAssociation.dll
CSDWDTSCatalogImp.dll
CSDWDTSDelete.dll
CSDWDTSIpResolution.dll
CSDWDTSLogImports.dll
CSDWDTSPostImport.dll
CSDWDTSSyncAdmin.dll
CSDWDTSTransImport.dll
DictionaryXMLTransforms.dll
DWMBToAdmin.dll
DWSyncAdmin.dll
Dyntablemarshaler.dll
GenericPup.dll
MSCSCfg.dll
GenericPup.dll
Regionaltax.dll
ReportRenderer.dll
Requisition.dll
Shipmgr.dll
Splitter.ocx


新しい管理データベースを作成する

前の管理データベースにロール バックするか、または新しい管理データベースを作成する必要がありますが、Commerce Server を再インストールできません。Commerce Server セットアップを修復モードで実行しても、再インストールできません。

解決方法

MSCS_Admin という名前の新しいデータベースを作成し、それに対して SQL Query Analyzer を使って Adminschema.sql ファイルを実行します。新しい管理データベースが作成されます。このスクリプトを実行すると、管理データベースのスキーマは設定されますが、リソースは作成されません。

新しい管理データベースを作成するには

  1. 必要があれば、既存の管理データベースを削除するか、または名前を変更します。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  3. [Enterprise Manager] で [Microsoft SQL Servers] を展開し、[SQL Server グループ] を展開します。次に、新しい管理データベースを作成しようとするサーバー名を展開します。
  4. [データベース] を右クリックし、[新しいデータベース] をクリックします。
  5. [データベース プロパティ] ダイアログ ボックスの [全般] タブで、[名前] ボックスに「MSCS_Admin」と入力します。
  6. [OK] をクリックします。

新しいデータベースが作成されます。次の手順では、Admin_schema.sql ファイルを実行します。

Admin_schema.sql ファイルを実行するには

  1. Enterprise Manager で MSCS_Admin データベースをクリックします。
  2. [ツール] メニューの [SQL クエリ アナライザ] をクリックします。
  3. [ファイル] メニューの [開く] をクリックします。
  4. Program Files\Microsoft Commerce Server を参照し、Admin_schema ファイルを選択します。次に、[開く] をクリックします。
  5. [クエリ] メニューの [実行] をクリックします。

再びサイトをアンパックし、Commerce Server セットアップを使ってダイレクト メーラーを再インストールする必要があります。

注

  • サイトをインストールした直後、および Commerce Server の配置の構成を変更したときはいつでも、別の名前を使って管理データベースのバックアップをとる必要があります。このコピーは、後から行った変更をロール バックするときに使用できます。


ビジネス デスク : 管理パスワードを変更するとビジネス デスク クライアントの接続が切断される

Commerce Server ビジネス デスクがインストールされているサーバーで管理パスワードを変更すると、ビジネス デスク クライアント コンピュータがビジネス デスクにアクセスしようとしたときにエラーが発生します。次のエラー メッセージが表示されることがあります。

  • "ビジネス デスクを読み込み中にエラーが発生しました。"
  • "ビジネス デスク アプリケーションの読み込み中にエラーが発生しました。"

解決方法

サーバーで Commerce Server の管理パスワードを変更する場合は、Commerce Server のパスワードも変更し、次に Global.asa ファイルを保存する必要があります。

Commerce Server のパスワードを変更するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [管理ツール] をポイントし、[コンポーネント サービス] をクリックします。
  2. ノードを展開して次のパスを開きます。
    コンポーネント サービス/コンピュータ/マイ コンピュータ/COM+ アプリケーション/Commerce Event Logging
  3. [Commerce Event Logging] を右クリックし、[プロパティ] をクリックします。
  4. [Commerce Event Logging のプロパティ] ダイアログ ボックスの [ID] タブで、[パスワード] ボックスに新しいパスワードを入力します。
  5. [パスワードの確認入力] ボックスに新しいパスワードをもう一度入力し、[OK] をクリックします。

パスワードが更新され、ビジネス デスクを開けるようになります。

Global.asa ファイルを保存するには

  1. ビジネス デスクの仮想ディレクトリへ移動します。たとえば、C:\Inetpub\wwwroot\retailbusinessdesk に移動します。
  2. Global.asa ファイルをメモ帳で開きます。
  3. パスワードの変更を保存するには、[ファイル] メニューで [上書き保存] をクリックし、次に [メモ帳の終了] をクリックします。

Global.asa ファイルへの変更が保存されます。パスワードの変更を更新するには、すべてのユーザーがビジネス デスクを閉じ、再び開く必要があります。

注

  • リスト マネージャ、ダイレクト メーラー、および予測リソースなどの Commerce Server サービスのパスワードも変更する必要があります。
  • リスト マネージャやダイレクト メーラーなどの Commerce Server サービスのパスワードも変更する必要があります。

関連項目

サービスのアカウントまたはパスワードを変更する


ビジネス デスク : Active Directory に新しいユーザーを追加しようとすると認証エラーが発生する

Active Directory にユーザー データを格納している場合、リモートのビジネス デスク クライアントで新しいユーザーを追加しようとしたときに、次のエラー メッセージが表示されることがあります。

"エラー : ユーザーの資格情報が無効です。"

このエラーは、リモートのビジネス デスク クライアントで、ビジネス デスク アプリケーションの IP アドレスが使用されている場合に発生します。たとえば http//172.30.250.91/supplieradbizdesk のような場合です。

解決方法

クライアント コンピュータで、IP アドレスの代わりにコンピュータ名を使って、たとえば http//csserver1/supplieradbizdesk として、ビジネス デスク クライアントを再インストールします。


ビジネス デスク : 更新した構成が反映されない

Commerce Server ビジネス デスクの構成を変更し、Web サイトの停止および開始を順次行っても、ビジネス デスクがこの変更によって更新されません。アプリケーションの再読み込みが行われず、古い .xml ファイルがそのまま使われます。

解決方法

ビジネス デスクの構成を変更した後、その変更を反映するには、Web サーバーでビジネス デスクを再起動する必要があります。これには、Global.asa ファイルを開いて保存することにより、"最終更新" 時刻を変更し、構成の更新をビジネス デスクに反映する必要があります。

Global.asa ファイルを開いて保存するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[アクセサリ] をポイントし、[メモ帳] をクリックします。
  2. [ファイル] メニューの [開く] をクリックします。Global.asa ファイルへ移動し、ファイルをダブルクリックして開きます。[ファイル] メニューの [上書き保存] をクリックし、Global.asa ファイルを変更せずに保存します。
  3. メモ帳を終了するには、[ファイル] メニューの [メモ帳の終了] をクリックします。

ビジネス デスクの構成の変更が保存されます。構成の変更を表示するには、すべてのビジネス デスク クライアント ユーザーがビジネス デスクを閉じ、再び開く必要があります。


ビジネス デスク : リスト マネージャまたはユーザー モジュールにデータが表示されない

ユーザー モジュールおよび組織モジュールで、大量のユーザー データ セットに対する一括更新操作または検索操作を実行すると、処理タイムアウトが発生することがあります。

大量のデータ セットに対してリスト マネージャ モジュールを使ってユーザー リストを構築する場合にも、同じタイムアウト エラーが発生することがあります。

操作のタイムアウトはさまざまな要因によって発生し、データを表示できないこともあります。多数のエンティティが取得されることも、要因の 1 つとなりえます。

その他、このタイムアウトの要因には次のものがあります。

  • サーバーの構成 (Active Directory のみか、SQL のみか、Active Directory と SQL か)
  • ネットワークの帯域幅
  • システム構成 (コンピュータが低速か、高速か)

解決方法

OLE DB Provider for Commerce Server に対するカスタム スクリプトを使って一括更新操作を実行する必要が生じる場合があります。カスタム スクリプトは、ASP 固有の Session オブジェクトに対する Session.Timeout プロパティの制限は受けません。Session.Timeout プロパティは、次のように設定できます。
<% Session.Timeout = 10 %>
これによって、セッション タイムアウトは 10 分に設定されます。Session.Timeout プロパティの最大値は 24 時間です。

一括操作用のカスタム スクリプト作成の詳細については、「Code to Perform Bulk Operations Using ADO and SQL」を参照してください。

関連項目

ListManager.WaitOnOperation


ビジネス デスク : "ライブラリは登録されていません" または regexp のその他の問題

Commerce Server ビジネス デスクを使っているときに、"ライブラリは登録されていません"、または regexp (正規表現) COM オブジェクトに問題があるというその他のメッセージが表示された場合は、サーバーの Windows System32 フォルダにある VBscript.dll ファイルの登録を解除し、再登録する必要がある場合があります。

このエラー メッセージは、テキスト編集コントロール (EditField) があるどのページでも発生する可能性があります。

解決方法

VBScript.dll ファイルの登録を解除し、再登録します。次の手順は、Windows が C:\winnt にインストールされていることを前提としています。

VBScript.dll ファイルの登録を解除するには

  • コマンド プロンプトで、次のように入力します。

    regsvr32.exe c:/winnt/system32/VBScript.dll /u

VBScript.dll ファイルを再登録するには

  • コマンド プロンプトで、次のように入力します。

    regsvr32.exe c:/winnt/system32/VBScript.dll


ビジネス デスク : 管理者権限を持つユーザーがビジネス デスクのデータにアクセスできない

Windows で Everyone ユーザー グループ サービス アカウントを削除するか、またはこのグループへのアクセス許可を拒否すると、管理者ユーザーが Commerce Server ビジネス デスクからロック アウトされます。

解決方法

Everyone ユーザー グループを削除したり、既定の権利を変更したりしないでください。サービスのアカウントまたはパスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。


ビジネス デスク : ビジネス デスクへのアクセス中にランタイム エラーが発生する

Commerce Server ビジネス デスクにアクセスすると、次のいずれかのエラーが発生します。

  • "ランタイム エラーが発生しました。"
  • "デバッグしますか?"

解決方法

ビジネス デスクのルート フォルダが、Web 共有を許可するように構成されていることを確認してください。特に指定しない限り、Commerce Server は 3 個のフォルダに対する Web 共有を許可します。ビジネス デスクのフォルダに対する Web 共有を許可するには、次の手順を実行します。

ビジネス デスクのフォルダに対する Web 共有を許可するには

  1. Windows エクスプローラで、ビジネス デスク アプリケーションのあるフォルダへ移動します。既定では、このフォルダは C:\Inetpub\wwwroot フォルダにあります。
  2. フォルダ名 (既定では、Commerce Server に含まれている Blank ソリューション サイトは、このフォルダに blankbizdesk という名前を付けます) を右クリックし、[プロパティ] をクリックします。
  3. [プロパティ] ダイアログ ボックスの [Web 共有] タブをクリックします。
  4. [Web 共有] タブで、[このフォルダを共有する] をクリックします。
  5. [エイリアス] ボックスで [blankbizdesk] を選択し、次に [プロパティの編集] をクリックします。
  6. [エイリアスの編集] ダイアログ ボックスの [アクセス許可] ボックスで、次の説明に従ってこのエイリアスのアクセス許可を選択します。

    [読み取り] ユーザーにこのサイトのファイルの読み取りを許可します。これが選択されていることを確認してください。

    [書き込み] ユーザーにこのサイトへのファイルの書き込みを許可します。

    [スクリプト ソース アクセス] ユーザーにスクリプト ソース コードへのアクセスを許可します。

    [ディレクトリの参照] ユーザーにこのフォルダの内容の参照を許可します。

  7. [実行アクセス許可] ボックスで、次の説明に従ってアプリケーションのアクセス許可を選択します。

    [なし] ユーザーがこのフォルダでアプリケーション ファイルを実行できないようにします。

    [スクリプト] ユーザーがこのフォルダでアプリケーションは実行できないが、スクリプトは実行できるようにします。

    [実行 (スクリプトを含む)] ユーザーがこのフォルダでスクリプトとアプリケーションを実行できるようにします。

  8. [OK] をクリックします。[プロパティ] ダイアログ ボックスで、共有エイリアスの一覧を確認し、もう一度 [OK] をクリックします。


ビジネス デスク : Internet Explorer でインターネット サイトを開くことができない

ビジネス デスクをデバッグ モードで実行し、問題を再発させてみます。ページで有効になっている HTML コンポーネント (HTC) は ListSheet HTC だけです。ListSheet のデバッグ フラグを反転させます。より詳細なエラー メッセージが表示されるので、トラブルシューティングに利用してください。

解決方法

ビジネス デスクには、ビジネス デスクで作成したユーザー アカウントを使ってログオンします。このアカウントには、適切なアクセス特権があることを確認してください。必要があれば、ビジネス デスク ユーザーを Administrators グループに追加します。


レポート : バイヤーの参照の状況レポートのエラー

バイヤーの参照の状況レポートを実行し、エラー メッセージが表示された場合は、MSCSProfile チケットが無効になっている可能性があります。このため、登録済みユーザーのデータがデータ ウェアハウスにインポートされず、登録済みユーザー データが BuyerVisits キューブに追加されません。登録済みユーザー データは、バイヤーの参照の状況レポートに利用できません。

解決方法

これは、3 つの方法のいずれかで解決できます。

  1. MSCSProfile チケットを有効にし、ユーザー データをデータ ウェアハウスにインポートします。次に、レポート準備データ変換サービス (DTS) タスクを実行します。バイヤーの参照の状況レポートを再び実行します。
  2. 匿名登録済みユーザーについて、登録済みユーザーによる買い物客の利用状況について報告するカスタム静的レポートを追加します。匿名登録済みユーザーは、dbo.RegisteredUser テーブルのログオン名が NULL 値になっています。バイヤーの参照の状況レポートの代わりに、このレポートを実行します。
  3. Basket キューブと Web Usage キューブから、RegisteredUser 共有ディメンションを削除します。MSCSProfile チケットが再び有効になったら、RegisteredUser 共有ディメンションを元に戻すことができます。バイヤーの参照の状況レポートを再び実行します。レポートには登録済みユーザーのデータは表示されません。


レポート : 動的 SQL レポートを表示できない

データ ファイルとログ ファイルをデータ ウェアハウスへインポートし、レポート準備データ変換サービス (DTS) タスクを実行した後、動的 SQL Server レポートを実行すると、ピボット コントロールが次のエラー メッセージを返します。

"ピボットテーブル リスト 'Pivot Table' はデータ ソースに接続できませんでした。データ ソースについては、ファイルの作成者に相談してください (0x80040e4d)。"

読み取りまたは書き込みアクセス許可を与えられていない SQL Server データベースにアクセスしている動的レポートを表示しようとすると、レポートを表示できません。この問題は、動的オンライン分析処理 (OLAP) レポートには影響しません。

次のレポートには影響します。

  • 広告の表示回数とヒット率 (キャンペーン別)
  • 広告の表示回数とヒット率 (キャンペーン項目別)
  • 広告の表示回数とヒット率 (日単位)
  • キャンペーン項目の要約
  • ユーザー数と訪問数 (週単位)
  • ユーザー数 (日単位)
  • 登録済みユーザー数 (登録日別)
  • ユーザー登録までの日数
  • ユーザーの登録状況
  • 訪問数 (ブラウザ/バージョン/OS 別)

解決方法

レポートがアクセスするデータベースに対する読み取りおよび書き込み特権が必要です。Microsoft Windows 2000 のユーザー グループで、SQL Server データベースへの読み取り/書き込み特権を定義できます。次に、これらの特権を必要とするユーザーを追加できます。

ユーザー グループに読み取り/書き込み特権を定義するには

  1. Windows 2000 で新しいユーザー グループを作成します。このグループに含めるユーザーを追加します。
  2. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  3. コンソールのルート ノードを展開して次のパスを開きます。
    Microsoft SQL Servers/<サーバー名>/セキュリティ/ログイン
  4. [ログイン] を右クリックし、[新規ログイン] をクリックします。
  5. [SQL Server ログインのプロパティ - 新規ログイン] ダイアログ ボックスの [全般] タブで、[名前] ボックスに新しいグループのログイン名を入力します。

    または、 [省略記号] をクリックして新しいグループ名を参照します。

  6. [SQL Server 認証] を選択し、グループのパスワードを入力します。
  7. [データベース アクセス] タブで、アクセス許可を与えるデータベース、たとえば、Retail_dw の [権限] オプションを選択します。

    User 列に新しいグループ ログイン名が表示されます。

  8. [データベース ロール] ボックスで、[db_datareader] および [db_datawriter] のチェック ボックスをオンにし、[OK] をクリックします。

自分と任意のユーザーをこのグループに追加することで、動的 SQL Server レポートにアクセスできます。


レポート : 静的レポートの日付の値が地域のオプションの設定と合っていない

静的レポートのヘッダーの日付、およびデータ自体の日付の値が、地域のオプションの設定で指定されている日付の形式や区切り記号で表されていません。

動的レポートの場合は、地域のオプションの設定で指定されている形式で表されます。

解決方法

これは仕様です。Office Web コンポーネントで利用できるロケール プロパティはありません。Office Web コンポーネントでは、クライアント コンピュータから読み取られたプロパティが常に使用されます。これとは異なり、ビジネス デスクの他のコンポーネントでは、ロケール プロパティが設定可能で、そのプロパティが静的レポートを含めた他のビジネス デスク ページに伝達されます。


サイト パッケージャのトラブルシューティング

ここでは、Commerce Server サイト パッケージャの使用中に発生する可能性のある問題について説明し、その解決方法を説明します。

ここでは、次のトピックについて説明します。

  • サイト パッケージャのエラー メッセージ
  • "ランタイム エラー -2147319779 (8002801d) オートメーション エラー、ライブラリは登録されていません"
  • カタログ キャッシュを更新できない
  • データ ウェアハウスのアンパック中に "ユーザーはログインできませんでした" というエラーが表示される
  • サイトを Web サーバーへアンパックできない
  • サイトのアンパック中に "指定したパスは、存在しません。" というエラーが表示される
  • サイトのアンパッケージ中に "... の Import API を ... に対して呼び出し中にエラーが発生しました" というエラーが表示される
  • サイトをアンパックした後に "Profile missing" というエラーが表示される
  • サイトをアンパックした後にデータベースが表示されない
  • pup.exe でパッケージを作成するときは、IIS アプリケーションに付ける名前に制約がある
  • データ ウェアハウス構成ウィザードではサイト名に DBCS 文字が含まれていてはならない


サイト パッケージャのエラー メッセージ

ここでは、Commerce Server サイト パッケージャを使うときに、サイト パッケージャのイベント ログの記録 (Pup.log) ファイルに記録されることのあるいくつかのエラー メッセージについて情報を提供します。

<アプリケーション> <エラー番号> : <エラーの説明> のディレクトリを検索中にエラーが発生しました

インターネット インフォメーション サービス (IIS) 5.0 のメタベースのエントリからアプリケーションを検索するとき、または物理パスを検索するときにエラーが発生しました。このエラーは、存在しないディレクトリをメタベースが参照している場合、またはメタベースのアプリケーションのエントリが削除されている場合に発生します。このエラーはパッケージ処理中にのみ発生します。

<アプリケーション名> の IIS オブジェクトを検索中にエラーが発生しました : <エラーの説明>

<アプリケーション名> のインターネット インフォメーション サービス (IIS) 設定にアクセスするときにエラーが発生しました。メタベースが壊れているか、または存在しない仮想ディレクトリをアプリケーションが参照しています。

パッケージのアプリケーションが、実際に存在する仮想ディレクトリを参照していることを確認してください。

Error importing URL for <アプリケーション名> <エラー番号> : <エラーの説明>

アプリケーションの仮想ディレクトリを作成するときか、またはアプリケーション ファイルをフォルダにコピーするときにエラーが発生しました。

インターネット インフォメーション サービス (IIS) の設定を変更する管理者特権があることを確認してください。

<リソース名> のオブジェクトを <ファイル名> <エラー番号> : <エラーの説明> にエクスポート中にエラーが発生しました

リソースまたはアプリケーションのデータをエクスポートするときにエラーが発生しました。データが存在しないか、またはオートメーション エラーが発生しています。このエラー メッセージは、パッケージ処理中にのみ表示されます。

<リソース名> のオブジェクトをファイル <ファイル名> <エラー番号> : <エラーの説明> からインポート中にエラーが発生しました

リソースまたはアプリケーションのデータをインポートするときにエラーが発生しました。データが壊れているか、またはオートメーション エラーが発生しています。このエラー メッセージは、アンパッケージ処理中にのみ表示されます。

参照リソース <参照リソース> を <グローバル リソース> <エラー番号> : <エラーの説明> のために作成中にエラーが発生しました

指定されたグローバル リソースに対するグローバル リソース ポインタを作成するときにエラーが発生しました。

問題を特定して修正した後、再びサイト パッケージャを実行し、カスタム モードを使ってリソースを既存のアプリケーションに追加します。

関連項目

サイト パッケージャについて


ランタイム エラー -2147319779 (8002801d) オートメーション エラー、ライブラリは登録されていません

このページに対するフィードバックを送信する Commerce Server 2002

ランタイム エラー –2147319779 (8002801d) オートメーション エラー、ライブラリは登録されていません

Retail ソリューション サイトのアンパック中に、次のエラーが表示されます。

"ランタイム エラー -2147319779 (8002801d)
オートメーション エラー
ライブラリは登録されていません"

解決方法

これは Commerce Server の外部の問題です。主要な DLL が登録されていないので、コンピュータを再構築する必要があります。

このエラーは VBScript.dll の VBScript.RegExp によって生成されます。VBScript.dll は、システムの DLL および Msvcrt.dll のみに依存します。


カタログ キャッシュを更新できない

ビジネス デスクのカタログ エディタで、[最新の情報に更新] をクリックすると次のエラー メッセージが表示されます。

"以下に対するカタログ キャッシュの更新中にエラーが発生しました : <BR><BR><B>%1</B>。"

解決方法

Commerce Server 2000 から移行したサイトを使っている場合は、更新済みの BDRefresh.asp ファイルをコピーする必要があります。このファイルは、Commerce Server 2002 の更新済み Retail サイトにあります。

また、キャッシュが正しく構成されていない可能性もあります。ビジネス デスク キャッシュの名前付けと構成を Retail ソリューション サイトのものと比較し、確認してください。


データ ウェアハウスのアンパッケージ中に "ユーザーはログインできませんでした" というエラーが表示される

Commerce Server サイト パッケージャを使ってカスタム モードでデータ ウェアハウスをアンパックしているときに、"ユーザー <ユーザー名> はログインできませんでした。" というエラー メッセージが表示されます。[OK] をクリックすると、[データ ウェアハウスのプロパティ] ダイアログ ボックスが表示されます。

解決方法

アンパックを継続するには

  • [データ ウェアハウスのプロパティ] ダイアログ ボックスで、[パスワード] ボックスのアスタリスク (**) を削除し、パスワードを入力します。次に、[OK] をクリックします。

    パスワードを設定しない場合は、このボックスを空白のままにします。

Commerce Server サイト パッケージャがサイトのアンパックを完了します。


サイトを Web サーバーへアンパックできない

Commerce Server をコンピュータ A にインストールし、データ ウェアハウスをコンピュータ B にインストールした場合、コンピュータ A にはサイトをアンパックできません。

解決方法

データベース サーバーが Web サーバーとセキュリティ コンテキストを共有していない場合、この問題が発生します。この問題を解決するには、データベース サーバーで次のコマンドを実行します。

net use \\<Web_server_name> /u:<local_computer_name>\administrator *

入力を求められたら、SQL Server のパスワードを入力します。

もう 1 つ確認すべき項目は、コンピュータで許可されている SQL 接続の数です。Microsoft SQL Server をインストールすると、特に指定しない限り、SQL Server 接続の数は 0 (ゼロ) に設定されます。これは、接続数が無制限であることを意味します。接続数を変更する場合、Commerce Server 環境の各コンピュータに 4 つの接続を割り当てます。

注

  • サイトをアンパックするには、少なくとも 20 の接続を利用可能にすることをお勧めします。

現在使用している SQL Server 接続の数を確認するには

SQL Server 接続を設定するには

現在使用している SQL Server 接続の数を確認するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [クエリ] ウィンドウに次のクエリを入力します。
    select * from master..sysprocesses where hostname <>''

    '' は単一引用符 2 個です。

  3. ツール バーの [クエリ実行] ボタンをクリックします。

クエリ アナライザが、現在使用している SQL Server 接続の数を表示します。行の数が SQL Server 接続の数に相当します。

SQL Server 接続を設定するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[Enterprise Manager] をクリックします。
  2. 接続を追加する SQL Server を右クリックし、[プロパティ] をクリックします。次に、[接続] タブをクリックします。
  3. [接続] タブの [同時ユーザー接続の最大数 (0 = 無制限)] ボックスに必要な接続数を入力し、[OK] をクリックします。


サイトのアンパッケージ中に "指定したパスは、存在しません。" というエラーが表示される

サイトをアンパックしようとすると、次のエラーが表示されます。

"指定したパスは、存在しません。パスを確認し、もう一度やり直してください。"

特殊文字を含むフォルダにサイトをアンパックしようとすると、このエラーが発生することがあります。たとえば、Commerce Server サイト パッケージャは、My commerce $$% という名前のフォルダにはアンパックしません。

Commerce Server は特殊文字を含むフォルダにインストールできますが、このフォルダにサイトをアンパックできません。

解決方法

パッケージを別のディレクトリにコピーし、アンパックしてください。


サイトのアンパック中に "... の Import API を ... に対して呼び出し中にエラーが発生しました" というエラーが表示される

サイトをアンパックしようとすると、次のエラーが表示されます。

"Commerce.CatalogPUP の Import API を商品カタログ 80040E14 に対して呼び出し中にエラーが発生しました : ソース : Microsoft OLE DB Provider for SQL Server 説明 : フルテキストサービス (Microsoft Search) は使用できません。システム管理者がこのサービスを起動する必要があります。"

Commerce Server サイト パッケージャがカタログを作成するためにスクリプトを実行したときに、Microsoft Search サービスが実行されていないと、このエラーが発生します。

解決方法

Microsoft Search サービスを起動します。次に、サイトを削除して再びアンパックするか、またはカタログ リソースを削除してアンパックします。

Microsoft Search サービスを起動するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[管理ツール] をポイントし、[サービス] をクリックします。
  2. [サービス] ダイアログ ボックスで、[Microsoft Search] を選択します。
  3. [Microsoft Search] を右クリックし、[開始] をクリックします。


サイトをアンパッケージした後に "Profile missing" というエラーが表示される

このエラー メッセージは、Supplier ソリューション サイトの場合に表示されます。このエラーは、プロファイル サービスが Active Directory ディレクトリ サービスでユーザーを見つけられなかった場合に発生します。

"The user name might not be included in the following Active Directory containers : OU=MSCS_40_Root and OU=site_name."

解決方法

推奨される解決方法は、エラー メッセージがいつ表示されるかによって異なります。

Microsoft Commerce Server 2002 ランタイム コンポーネントで作成された名前を使って Supplier サイトにログオンします。

サイトをアンパックした直後にこのエラーが発生した場合

この場合は、サイトが既定で Windows 統合認証を使っており、ユーザーが Commerce Server ビジネス デスクやプロファイル サービスで作成されたものではないログイン名を使おうとしたことがエラーの原因です。

ビジネス デスクを使ってユーザー アカウントを作成し、その新しく作成されたユーザーとしてサーバーにログオンします。次に、Supplier サイトにアクセスできます。

もう 1 つの解決方法は、Supplier サイトでインターネット インフォメーション サービス (IIS) 5.0 の基本認証を有効にすることです。サイトにログオンします。ユーザー名を入力するときに、必ず次のいずれかの形式を使います。

  • <ドメイン名>\<ユーザー名>
  • <ユーザー名>@<完全修飾ドメイン名>

Windows 認証モードで認証フィルタを使っているときにこのエラー (または同様のエラー) が発生した場合

ログイン ページで GetProfileByKey メソッドが正しく機能しているかどうかを判断します。このメソッドが不正な認証モードのエラー メッセージを発生させている場合、匿名ユーザーには、ユーザー プロファイルを取得するか、または読み取るアクセス許可がありません。詳細については、「IProfileService::GetProfileByKey」を参照してください。

このような場合は、ユーザーが、Active Directory からユーザー プロファイル プロパティを取得して読み取るためのアクセス許可を有する Windows ユーザー アカウントを持っていることを確認します。

もう 1 つの解決方法は、Internet Server API (ISAPI) フィルタである認証フィルタがなくてもサイトにアクセスできるようにすることです。

認証フィルタを使わずにサイトにアクセスするには

  1. インターネット サービス マネージャでフィルタを削除します。
  2. Supplier サイトについてのみ、セキュリティ モードを基本認証に設定し、IIS をリセットします。
  3. 正しい資格情報を使ってサイトへのアクセスを試行します。

成功しなかった場合は、ビジネス デスクでユーザー アカウントを作成し、それが有効になっていることを確認します。


サイトをアンパックした後にデータベースが表示されない

コンピュータ A でサイトをアンパックし、コンピュータ B でリソースのデータベースを作成すると、サイトのアンパックが完了した後、コンピュータ B に新しいデータベースが表示されません。

解決方法

数分間待機します。サイト パッケージャはコンピュータ A で実行されているため、ネットワークに輻輳があると、リソースが作成されるまでに遅延時間が生じることがあります。また、再び Commerce Server サイト パッケージャを実行し、コンピュータ A ではなくコンピュータ B にデータベースを作成したことを確認することもできます。


Pup.exe で作成された IIS アプリケーションには名前付けに制約がある

サイト パッケージャでカスタム パスを指定してサイトをアンパックできるようにする場合には、インターネット インフォメーション サービス (IIS) アプリケーションに付ける名前に制約があります。既存リソースのプログラム上の参照名と同じ名前や、パッケージ内にある他のリソースのプログラム上の参照名と同じ名前は使用できません。

解決方法

ブロック (予約) されている既存リソース名は、次のとおりです。

  • アプリケーション既定の構成
  • トランザクション
  • トランザクションの構成
  • キャンペーン
  • 商品カタログ
  • ダイレクト メール
  • 予測
  • Site Data Warehouse
  • Global Data Warehouse
  • BDSecurity
  • Biz Data Service
  • Site CS Authentication

ブロックされる名前としては、製品の内部にハードコードされている上記のリソースの名前だけでなく、ユーザーがアンパックしようとするパッケージに含まれている他のリソースの名前もあります。さらに、一部のサード パーティ製リソースの名前も含まれます。それらの名前を事前に知る方法はありません。


データ ウェアハウス構成ウィザードではサイト名に DBCS 文字が含まれていてはならない

新しいサイトをアンパックし、データ ウェアハウス構成ウィザード (DWC) で 2 バイト文字セット (DBCS) を含むサイト名を指定すると、エラー メッセージが表示されます。

解決方法

サイト名には DBCS 文字を使用できません。データ ウェアハウス構成ウィザード (DWC) では、DBCS 文字を含む名前はサポートされていません。


データ ウェアハウスのインポート処理のトラブルシューティング

ここでは、Commerce Server データ変換サービス (DTS) タスクを使ってデータ ウェアハウスにデータをインポートしているときに発生する可能性のある問題について説明し、その解決方法を示します。

ここでは、次のトピックについて説明します。

  • DTS タスク : Commerce Server を新しいエディションにアップグレードしたら、保存した DTS パッケージが機能しなくなった
  • DTS タスク : レポート準備タスクが失敗する
  • DTS タスク : レポート準備タスクで "エラー キューブの処理 (完全)" および "完了できませんでした" が返される
  • DTS タスク : レポート準備タスクで "ソース データに行が含まれていません" というエラーが返される
  • DTS タスク : ターミナル サービスとレポート準備タスクの互換性がない
  • インポートしたログ ファイルで訪問数の数値がさまざまに異なる


DTS タスク : Commerce Server を新しいエディションにアップグレードしたら、保存した DTS パッケージが機能しなくなった

Commerce Server 2000 でデータ変換サービス (DTS) パッケージを作成した後、Microsoft Commerce Server 2002 にアップグレードした場合、プログラム ID が変更されているために、保存した DTS パッケージは機能しなくなります。

解決方法

新しい DTS パッケージを作成します。


DTS タスク : レポート準備タスクが失敗する

システムのリアルタイム スキャンを実行するソフトウェア (たとえば、ウイルス対策ソフトウェア) を実行しているコンピュータにデータ ウェアハウスをインストールした場合、レポート準備データ変換サービス (DTS) タスクを正常に実行できない場合があります。

解決方法

この問題を解決するには、Windows 2000 のタスク マネージャを使って、スキャン ソフトウェアを実行しているプロセスを終了します。


DTS タスク : レポート準備タスクで "エラー キューブの処理 (完全)" および "完了できませんでした" が返される

レポート準備 DTS タスクを実行中に、次の 2 つのメッセージが表示されます。

     Source: CSDataWareHouse
     Category: None
     Event ID: 45057
     Description: Report Preparation DTS task : Error Cube Process Full :
     Buyer Visits : Processing error [Source data contains no rows] 'Buyer
     Visits^BuyerType'S'

続いて、次のメッセージが表示されます。

     Source: CSDataWareHouse
     Category: None
     Event ID: 45060
     Description: Report Preparation DTS task : failed to complete

これらのメッセージは、次のいずれか 2 つの状況で表示されます。

  • 処理の対象となるデータがない。
  • ディメンションまたはキューブが処理されなかった。

解決方法

処理対象となるデータがデータ ウェアハウスに存在しているかどうかを確認する必要があります。次の操作を行います。

  • レポート準備 DTS タスクで処理するデータがインポートされていない場合は、インポート DTS タスクを実行してから、レポート準備 DTS タスクを再実行します。
  • データがインポートされた場合は、イベント ログや CubeProcInfo テーブルおよび DimProcInfo テーブルを調べて、ディメンションまたはキューブの処理が失敗したかどうかを判断します。


DTS タスク : レポート準備タスクで "ソース データに行が含まれていません" というエラーが発生する

OLAP ディメンションおよびキューブにデータを作成するために必要な情報がデータ ウェアハウスにインポートされていない場合、OLAP ディメンションおよびキューブを処理するときに、レポート準備タスクによってエラーが表示されることがあります。エラー メッセージは、次の形式で表示されます。

処理エラー [ソース データに行が含まれていません] <オブジェクト名>

解決方法

データのサブセットをデータ ウェアハウスにインポートする (たとえば、キャンペーン データ インポート タスクを実行していない) 場合、データのない OLAP ディメンションおよびキューブの処理を無効にすることができます。これにより、"ソース データに行が含まれていません" というエラー メッセージが表示されなくなります。

Analysis Services オブジェクトの処理を無効にするには、処理を無効にするキューブおよびディメンションの CubeProcInfo および DimProcInfo で、"ProcessingEnabled" フラグを "0" に設定します。


DTS タスク : ターミナル サービスとレポート準備タスクの互換性がない

レポート準備データ変換サービス (DTS) タスクは、サーバーで直接実行する必要があります。ターミナル サービスから実行するパッケージからは実行しないでください。実行した場合は、DTS にエラーが発生します。

また、この解決方法はサイトをアンパックする場合にも当てはまります。データ ウェアハウスをアンパックするときに、OLAP データベースが正しく作成されない可能性があります。


インポートしたログ ファイルで訪問数の数値がさまざまに異なる

ログ ファイルに含まれている一意の区切り項目の数や、復帰改行の位置が適切でない場合は、Commerce Server 2000 と Commerce Server 2002 とで、出力される訪問数に違いが生じることがあります。これは、ログ ファイルの解析方法が変更されているためです。また、正の整数値 (送信バイト数、受信バイト数、状況コードなど) を含むフィールドがある場合、そのフィールドが破損していると、その整数フィールドの値は Commerce Server 2002 では有効なフィールドとして受け渡しされません。また、整数値の上限を超える整数は拒否されます。


Commerce Server リソースのトラブルシューティング

ここでは、Commerce Server リソースの使用中に発生する可能性のある問題について説明し、その解決方法を説明します。

ここでは、次のトピックについて説明します。

  • 予測 : MMC のメニューで、予測サービスのヘルプ オプションが表示されない
  • プロファイル リソース : ユーザーのログインに失敗する
  • プロファイル リソース : プロファイル グローバル リソースが重複している
  • ダイレクト メーラー : クラスタにインストールしたらサービスが起動しない
  • ダイレクト メーラー : ジョブがエラー メッセージを返さずに失敗する
  • ダイレクト メーラー : ジョブのエラーの詳細を調べる


予測 : MMC のメニューで、予測サービスのヘルプ オプションが表示されない

Microsoft 管理コンソール (MMC) のメニューで、予測リソースを選択し、[ヘルプ] をクリックして [予測のヘルプ] をクリックしても、予測リソースのヘルプが表示されません。

解決方法

予測サービスのヘルプにアクセスするには、[予測] を右クリックし、[ヘルプ] をクリックします。予測リソースのヘルプが表示されます。


プロファイル リソース : ユーザーのログインに失敗する

次のエラー メッセージが表示されます。

"Microsoft OLE DB Provider for SQL Server : ユーザー <ユーザー名> のログインに失敗しました。"

プロファイル リソースに関連付けられた SQL Server データベース テーブルをバックアップし、それらを同じ SQL Server の別のデータベース、または別にインストールした SQL Server に復元した場合、新しい SQL Server に復元した後のデータベース テーブルへの文字列が有効ではない可能性があるため、プロファイル リソースが初期化されないことがあります。ログオン資格情報が有効ではないか、インストールされた SQL Server にデータベースがないか、またはその両方の理由により、接続文字列が有効ではない可能性があります。

注

  • データベースを直接バックアップし、復元することはお勧めしません。代わりに、Commerce Server サイト パッケージャを使ってデータベースをバックアップ、および復元してください。

解決方法

プロファイル システムは、s_CommerceProviderConnectionString 接続文字列に依存しています。この接続文字列は、OLE DB Provider for Commerce Server によって使われ、Commerce Server 管理データベースの中に格納されています。データベースのバックアップから管理データベースを復元した場合、この接続文字列が間違ったものになる場合があり、リセットする必要があります。

s_CommerceProviderConnectionString 接続文字列をリセットするには

  1. [Commerce Server マネージャ] を展開し、[グローバル リソース] を展開します。次に、[Profiles] を右クリックし、[プロパティ] をクリックします。
  2. [プロファイルのプロパティ] ダイアログ ボックスの [接続文字列] タブで [s_CommerceProvideConnectionString] を選択し、[変更] をクリックします。
  3. [データ リンク プロパティ] ダイアログ ボックスの内容を必要に応じて変更し、[OK] をクリックします。

    注

    • [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプを開いてください。


プロファイル リソース : プロファイル グローバル リソースが重複している

サイトを削除し、次に、その削除したサイトを作成したときと同じ .pup パッケージ ファイルを使って新しいサイトを追加すると、Commerce Server マネージャに 2 つのプロファイル グローバル リソースが存在することになります。

解決方法

元のプロファイル グローバル リソースを Commerce Server マネージャから手動で削除する必要があります。

プロファイル グローバル リソースを削除するには

  1. [Commerce Server マネージャ]、[グローバル リソース] の順に展開します。次に、削除する [Profiles] リソースを右クリックし、[削除] をクリックします。
  2. [Commerce Server マネージャ] ダイアログ ボックスで、[はい] をクリックしてリソースの削除を確認します。

元のリソースが完全に削除されます。


ダイレクト メーラー : クラスタにインストールしたらサービスが起動しない

ダイレクト メーラーまたは予測でクラスタ セットアップをするときに、先頭に 0 が入力されていると、サービスが開始されません。詳細については、http://go.microsoft.com/fwlink/?LinkId=5593 のサポート技術情報の記事「Ping と FTP は最初にゼロのある IP アドレスを 8 進数とする」を参照してください。


ダイレクト メーラー : ジョブがエラー メッセージを返さずに失敗する

ダイレクト メーラー ジョブを実行するスケジュールが設定されている場合、SQL Server Agent が停止していると、そのジョブは実行されません。ジョブの起動に失敗したことを示すメッセージは表示されず、ログ ファイルにエラー メッセージは記録されません。

解決方法

実行されなかったジョブを起動するには、SQL Enterprise Manager の SQL Server Agent コントロールから手動でジョブを起動する必要があります。

ダイレクト メール ジョブを手動で起動するには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server 2000] をポイントし、[Enterprise Manager] をクリックします。
  2. ノードを展開して次のパスを開きます。
    \Microsoft SQL Servers\SQL Server Group\<SQL Server 名>\Management\SQL Server Agent\Jobs
    次に、[ジョブ] をクリックします。

    SQL Server Enterprise Manager の右側のウィンドウに、ダイレクト メーラー ジョブが表示されます。


ダイレクト メーラー : ジョブのエラーの詳細を調べる

ダイレクト メーラー ジョブが完了すると、ダイレクト メーラーはアプリケーション イベント ログの記録にイベントを記録します。このイベントには、ジョブ番号、ジョブの開始時刻、ジョブの終了時刻、メールの受信者の総数、および発生したエラーの件数が含まれます。

エラーに関してより詳細な情報を得るには、ダイレクト メーラー データベースの dml_job_erros テーブルを調べる必要があります。

解決方法

イベント ビューアを開き、ダイレクト メーラーが記録したアプリケーション イベント ログの記録を探します。

イベント ビューアを開くには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft Commerce Server] をポイントし、[Commerce Server マネージャ] をクリックします。
  2. [イベント ビューア] ノードを展開し、[アプリケーション] をダブルクリックします。
  3. イベントの一覧で、[ソース] が [Commerce Server ダイレクト メーラー]、[イベント ID] が [18] のイベントを探します。
  4. 見つかったイベント メッセージをダブルクリックして、[イベントのプロパティ] ダイアログ ボックスを開きます。
  5. [イベントのプロパティ] ダイアログ ボックスで、ジョブ番号をクリップボードにコピーします。次に SQL Server クエリ アナライザを開きます。

SQL Server クエリ アナライザを開くには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に、[Microsoft SQL Server] をポイントし、[クエリ アナライザ] をクリックします。
  2. [SQL Server の接続] ダイアログ ボックスで、サーバーの実行対象として構成されているダイレクト メーラー データベースに接続します。
  3. [クエリ アナライザ] で、次のクエリを入力します。
    "SELECT * FROM dml_job_errors WHERE job_id = '<job id>'

    <job id> は、「イベント ビューアを開くには」の手順 5. でコピーしたジョブ番号です。

返された結果セットは、ダイレクト メーラー ジョブの処理中に発生した各エラーのエラー コードと説明を示しています。


Commerce Server マネージャ タスクパッドのトラブルシューティング

オペレーティング システムとは異なる言語のバージョンの Commerce Server 2002 をインストールすると、Commerce Server マネージャ タスクパッドが機能しません。これは Microsoft 管理コンソール 1.2 で既知の問題です。タスクパッドでは、単一の言語のコンテキスト メニューが参照されます。このため、コンソール ファイルとオペレーティング システムの言語が同期していないと、タスクパッドは機能しません。

解決方法

サイトをアンパックするには

  1. [スタート] ボタンをクリックし、[プログラム] をポイントします。次に [Microsoft Commerce Server 2002] をポイントし、[Commerce サイト パッケージャ] をクリックします。

    [Commerce Server サイト パッケージャ] 画面が表示されます。

  2. [パッケージ ファイルからアンパックする] を選択し、[次へ] をクリックします。

サイト パッケージャのダイアログ ボックスが表示されるので、その指示に従って操作します。詳細については、「サイトをアンパックする」を参照してください。

パスワードを変更するには

  • [Commerce Server マネージャ] を右クリックし、[すべてのタスク] をクリックします。次に、[パスワードの変更] をクリックします。

パスワードを変更する方法については、「サービスのアカウントまたはパスワードを変更する」を参照してください。

管理データベースの接続文字列を変更するには

  1. [Commerce Server マネージャ] を右クリックし、[プロパティ] をクリックします。

    [Commerce Server マネージャのプロパティ] ダイアログ ボックスが表示されます。

  2. [管理データベース] タブの [変更] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスが表示されます。

  3. [データ リンク プロパティ] ダイアログ ボックスの内容を必要時応じて変更し、[OK] をクリックします。

    [データ リンク プロパティ] ダイアログ ボックスの各項目の設定方法については、[データ リンク プロパティ] ダイアログ ボックスの [ヘルプ] をクリックして [Microsoft データ リンク] のヘルプを開いてください。

注

  • Commerce Server マネージャでプロパティを変更したら、その値を使用するサービスはすべて再起動する必要があります。操作手順については、「IIS と Commerce Server サービスを再起動する」を参照してください。


イベント メッセージ

ここでは、既知のイベント メッセージの一覧を示します。各イベント メッセージについて、メッセージ ID、重要度、およびコメントを示します。

ここでは、次のトピックについて説明します。

  • 一般的なイベント メッセージ
  • 機能分野 : ユーザー プロファイルの管理
  • 機能分野 : 分析
  • 機能分野 : 認証フィルタ
  • 機能分野 : カタログ
  • 機能分野 : コンポーネント
  • 機能分野 : コア
  • 機能分野 : 汎用
  • 機能分野 : マーケティング
  • 機能分野 : Pers Perf
  • 機能分野 : プロファイル システム
  • 機能分野 : 予測
  • 機能分野 : SiteConfig
  • 機能分野 : ダイレクト メーラー
  • 機能分野 : モデル ビルダ DTS タスク


一般的なイベント メッセージ

次の表は、一般的なイベント メッセージの一覧です。

イベント ID | イベント メッセージ | コメント
0x8011 | (<内部 ID>:<スレッド ID>)cls:<ストレージ クラス名>, S:エラーによるバッチ終了の通知 : 0x4, 時刻 : | このイベントは、記憶領域層がデータベース内の品目を検索しようとしたときに発生します。このイベントが発生するのは、クエリの形式が正しくないか、基になる SQL に何らかのエラーがある場合です。 別のコマンド ウィンドウで "CSDWDBGSRV.EXE -f Trace" プロセスを実行したまま、このプロセスをもう一度実行し、そのレポートを製品サポートに送付して問題の解決を依頼してください。
0x8014 | (<内部 ID>:<スレッド ID>)cls:<ストレージ クラス名>, I:例外 : エラーによるバッチ終了の通知 : 0x4, 時刻 : | このイベントは、記憶領域層がデータベースにデータを挿入しようとしたときに発生します。このイベントが発生するのは、データベースの内容が変更されていた場合や、何らかの理由でデータベース スキーマが一致せず、基になる SQL でエラーが発生した場合です。 別のコマンド ウィンドウで "CSDWDBGSRV.EXE -f Trace" プロセスを実行したまま、このプロセスをもう一度実行し、そのレポートを製品サポートに送付して問題の解決を依頼してください。
0xC018 | ログのインポート タスク : サイトに対するログをインポートできませんでした : <ファイル名> | Web サーバー ログ インポート DTS の処理が失敗した場合によく発生するエラーです。
0xC008 | ログのインポート タスク : サイトに対してインポートするために選択したログ ファイルがありません : <ファイル名> | 使用できるログ ファイルがありません。
0x81D2 | ParseCookie2 で、cookie 値の URL デコードに失敗しました | 無効な cookie をデコードしようとしています。
0XC009 | ログのインポート タスク : 接続情報が無効であるか、データ ウェアハウスの状態が無効なので初期化に失敗しました | 接続文字列が無効なものであるか、データ ウェアハウス データベースがオフラインです。


機能分野 : ユーザー プロファイルの管理

次の表は、ユーザー プロファイル管理に関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
15360 | エラー | 何らかの無効な演算子が検出されました。クエリの WHERE 句の中に、UPM データ集計層で処理できない演算子が検出されました。
15361 | エラー | 何らかの無効なデータ型が検出されました。クエリの中に、UPM データ集計層で認識されないデータ型を持つプロパティが検出されました。
15363 | エラー | DSO プロバイダから発生したエラーがあります。推奨されない処理を示しているだけなので、無視できます。このエラーは、UPM データ集計層の ANSI-SQL コンポーネントまたは LDAP-v3 コンポーネントでエラーが発生したことを示しているだけです。エラー スタック内の他のエラーに、さらに関連性の高い有効な情報があります。
15364 | エラー | 集計層で何らかの内部エラーが発生しました。このエラーは、UPM データ集計層の中で内部エラーが発生したことを示しています。このエラーが発生した場合は、開発を担当される方が Microsoft に報告してください。
15365 | エラー | ソースの種類が無効です。UPM データ集計層で、無効なソースの種類が検出されました。
15366 | エラー | 操作の種類が無効です。UPM データ集積層で、無効な操作の種類が検出されました。
15367 | エラー | スタック領域が不足しています。UPM データ集計層で、スタック用のメモリを割り当てることができませんでした。コール スタックにある直前のコンポーネントが、スタック用のメモリ チャンクを大量に割り当てた可能性があります。
15368 | エラー | クラス定義が無効です。UPM データ集計層で、無効なクラス定義が検出されました。
15369 | エラー | クエリの種類が無効です。
15370 | エラー | リストの並べ替え順が無効です。
15371 | エラー | カタログ データ構造体でエラーが見つかりました。
15372 | エラー | 無効なクエリです。
15373 | エラー | このソースに指定したテーブル名は無効です。
15374 | エラー | 利用できるパーティションの最大数を超えました。プロファイル システムがサポートできる UPM パスでのパーティションの数は、最大で 128 個です。このエラーは、プロファイル システムが検出したプロファイル定義ストアに 129 個以上のパーティションがあった場合に発生します。
15375 | エラー | オブジェクトは既に存在します。基になるストアの中に、キー メンバ値の一致しているオブジェクトが既に 1 つ以上存在しているので、作成操作または更新操作に失敗しました。
16000 | エラー | ディレクトリ プロバイダで何らかの内部エラーが発生しました。
16001 | エラー | 総称 ADSI エラーです。
16002 | エラー | スタック領域が不足しています。LDAPv3 UPM データ集計層コンポーネントで、スタック用のメモリを割り当てることができませんでした。コール スタックにある直前のコンポーネントが、スタック用のメモリ チャンクを大量に割り当てた可能性があります。
16003 | エラー | 該当するオブジェクトはサーバーにはありません。検索対象のオブジェクトはサーバー上に存在していません。
16004 | エラー | パスワードが無効です (このエラーはよく発生します)。パスワードの設定操作または変更操作に失敗しました。 考えられる原因は次のとおりです。 (a) AD ドメイン内のコンピュータ (クライアントとサーバー) が適切に構成されていませんでした。この問題を解決するためのヒントについては、リソース キットを参照してください。 (b) 操作を実行しているセキュリティ コンテキストは、この操作を実行するための十分な特権を持っていません。
16005 | エラー | RDN 属性の値が欠落しています。オブジェクトの RDN 属性が指定されていませんでした。
16006 | エラー | 無効な演算子が検出されました。
16007 | エラー | ディレクトリ コンポーネントの中に無効なデータ型が検出されました。
16264 | エラー | パスワードのプロパティに指定した値の数字は無効です。LDAPv3 UPM データ集計層コンポーネントで想定されているパスワード プロパティの値の個数は、オブジェクト作成パスでは 1 つだけ、オブジェクト更新パスでは 2 つだけです。この条件を満たしていない場合には、このエラーが発生します。
16265 | エラー | 必要なキー メンバ用の値が見つかりません。
16256 | エラー | サード パーティ プロバイダで内部エラーが発生しました。
16257 | エラー | サード パーティ プロバイダに無効なデータ型があります。
16258 | エラー | サード パーティ プロバイダに無効な操作があります。
16259 | エラー | 挿入しようとしているデータが大きすぎます。


機能分野 : 分析

次の表は、分析に関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
12288 | エラー | ユーザーのインポート タスク : Commerce Server パフォーマンス カウンタ コンポーネントを作成できませんでした。
12289 | エラー | ユーザーのインポート タスク : Commerce Server パフォーマンス カウンタ コンポーネントを初期化できませんでした。
12290 | エラー | ユーザーのインポート タスク : Commerce Server OLEDB プロバイダ コンポーネントを作成できませんでした。
12291 | エラー | ユーザーのインポート タスク : URL の接続をバインドできませんでした。
12292 | エラー | ユーザーのインポート タスク : BizDataStore のクエリを作成できませんでした。
12293 | エラー | ユーザーのインポート タスク : データ ウェアハウスでスキーマの変更を実行できませんでした。
12294 | エラー | ユーザーのインポート タスク : データ ウェアハウスにデータを転送できませんでした。
12295 | エラー | ユーザーのインポート タスク : クラス URL にバインドできませんでした。
12296 | エラー | ユーザーのインポート タスク : 何らかのクラスを開くことができませんでした。
12297 | エラー | ユーザーのインポート タスク : クラス名は既にデータ ウェアハウスに存在しますが、ビジネス データ カタログ クラスにマップされていません。
12298 | エラー | ユーザーのインポート タスク : クラスをメンバに追加できませんでした。
12299 | エラー | ユーザーのインポート タスク : クラス名はデータ ウェアハウスに存在しますが、ビジネス データ カタログ クラスにマップされていません。
12300 | エラー | ユーザーのインポート タスク : タイムゾーン変換オブジェクトを作成できませんでした
12301 | エラー | ユーザーのインポート タスク : クラスのデータ メンバを読み込めませんでした。
12302 | エラー | ユーザーのインポート タスク : エクスポート エンジンは初期化されませんでした。
12303 | エラー | ユーザーのインポート タスク : オブジェクトを作成できませんでした
12304 | エラー | ユーザーのインポート タスク :
12305 | エラー | ユーザーのインポート タスク : TaskHistory テーブルから値を取得できませんでした。
12306 | エラー | ユーザーのインポート タスク : TaskHistory テーブルに値を設定できませんでした。
12307 | エラー | ユーザーのインポート タスク : タイムゾーン変換オブジェクトを初期化できませんでした。
12308 | エラー | ユーザーのインポート タスク : タイム ゾーンの変換に失敗しました。
12309 | エラー | ユーザーのインポート タスク : DTS タスク プロパティ ダイアログの読み込み中にエラーが発生しました。
12310 | エラー | ユーザーのインポート タスク : データ ウェアハウスに存在するクラスにマップされていないクラスに対して、主キーをエクスポートする必要があります。プロファイルはエクスポートされません。
12311 | エラー | ユーザーのインポート タスク : プロファイルとデータ ウェアハウス間にマップしている 1 つ以上の無効なデータ型が見つかりました。
12312 | エラー | ユーザーのインポート タスク : プロファイルのメンバのデータ型が、データ ウェアハウス クラスにマップされたメンバのデータ型と不整合です。スキーマがランタイム ストアとデータ ウェアハウス ストアとで一致していません。


機能分野 : 認証フィルタ

次の表は、認証フィルタに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
19474 | エラー | UPM-AUTHFILTER : 認証フィルタのパスワード キャッシュがいっぱいです (キャッシュ サイズを大きくするか、IIS またはアプリケーションを再起動する必要があります)。
19475 | エラー | UPM-AUTHFILTER : 認証フィルタのパスワード キャッシュが空か、作成されていません。
19476 | エラー | UPM-AUTHFILTER : サイト名が空です。このサイトが Commerce Server サイトではないか、Csapp.ini にサイト名が含まれていません。
19477 | エラー | UPM-AUTHFILTER : 暗号化が有効な場合、暗号化キーを NULL または空にできません。サイトで暗号化が有効になっていましたが、暗号化キーが指定されていませんでした。
19478 | エラー | UPM-AUTHFILTER : SiteConfig キャッシュに新しいエントリを挿入できません。
19479 | エラー | UPM-AUTHFILTER : SiteConfig キャッシュの SiteConfig エントリを見つけられません。
19480 | エラー | UPM-AUTHFILTER : チケットを暗号化できません。
19481 | エラー | UPM-AUTHFILTER : チケットの暗号化を解除できません (未使用)。
19482 | エラー | UPM-AUTHFILTER : チケット データをフォーマットできません。
19483 | エラー | UPM-AUTHFILTER : リダイレクト (HTTP : 302) の送信に失敗しました。サイトのグローバル リソースに指定されている URL を確認してください。
19484 | エラー | UPM-AUTHFILTER : cookie の設定に失敗しました。
19485 | エラー | UPM-AUTHFILTER : パスワードのキーの生成に失敗しました。
19486 | エラー | UPM-AUTHFILTER : URL デコーディングに失敗しました。URL の形式が正しくありません。
19487 | エラー | UPM-AUTHFILTER : パスワードのキャッシュ検索に失敗したか、エントリが見つかりませんでした (内部)。
19488 | エラー | UPM-AUTHFILTER : クエリ文字列の解析中にエラーが発生しました。URL の形式が正しくありません。
19489 | エラー | UPM-AUTHFILTER : キャッシュのクリーンアップ スレッドに失敗しました。
19490 | エラー | UPM-AUTH : 認証フィルタでエラーが発生しました。
19491 | エラー | UPM-AUTH : 無効な文字 (; % =) がユーザー ID またはプロパティ名/値に存在します。
19492 | エラー | UPM-AUTH : この API は ASP 内のみで呼ばれる必要があります。このエラーを返すメソッドは、ASP の組み込みオブジェクトに依存しています。このため、ASP ページから呼び出す必要があります。
19493 | エラー | UPM-AUTH : エラー : 必要なチケットが設定されていません。
19494 | エラー | UPM-AUTH : 暗号化キーを生成中にエラーが発生しました。
19495 | エラー | UPM-AUTH : カスタム プロパティの名前または値が無効です。
19496 | エラー | UPM-AUTH : チケットのプロパティのフォーマットに失敗しました。
19497 | エラー | UPM-AUTHF : チケット データの暗号化に失敗しました。
19498 | エラー | UPM-AUTH : チケット データの暗号化を解除できませんでした。
19499 | エラー | UPM-AUTH : 暗号化の管理プロパティの設定が間違っています (暗号化を有効にする場合、暗号化キーを正しく設定する必要があります)。
19500 | エラー | UPM-AUTH : ローカル SiteConfig キャッシュに SiteConfig エントリを追加できませんでした。
19501 | エラー | UPM-AUTH : ローカル SiteConfig キャッシュから SiteConfig エントリを削除できませんでした。
19502 | エラー | UPM-AUTH : ローカル SiteConfig キャッシュから SiteConfig エントリを取得できませんでした。
19503 | エラー | UPM-AUTH : CryptoAPI はパスワードからセッション キーを生成できませんでした。
19504 | エラー | UPM-AUTH : 暗号化/暗号化解除コンポーネントの初期化中にエラーが発生しました。
19505 | エラー | UPM-AUTHFILTER : Windows 認証モードでパスワード キャッシュのメモリ プール (cpool) の初期化に失敗しました。
19506 | エラー | UPM-AUTHFILTER : Windows 認証モードでパスワード キャッシュの LKRHash の初期化中にエラーが発生しました。
19507 | エラー | UPM-AUTHFILTER : SiteConfig キャッシュの LKRHash の初期化中にエラーが発生しました。
19508 | エラー | UPM-AUTH : SiteConfig キャッシュの LKRHash の初期化中にエラーが発生しました。
19509 | 参考情報 | UPM-AUTHFILTER : SiteConfig キャッシュの初期化中にエラーが発生しました。
19510 | 参考情報 | UPM-AUTHFILTER : パスワード キャッシュの初期化中にエラーが発生しました。
19511 | 参考情報 | UPM-AUTHFILTER : パスワード キャッシュのメモリ プールの初期化中にエラーが発生しました。
19512 | 参考情報 | UPM-AUTHFILTER : パスワード キャッシュのクリーンアップ スレッドを作成できませんでした。
19513 | エラー | UPM-AUTHFILTER : パスワード キャッシュのクリーンアップ スレッドの作成に失敗しました。
19514 | 参考情報 | UPM-AUTHFILTER : サイトの CommerceServer-UPM-PerfCounter オブジェクトを作成できませんでした。
19515 | 参考情報 | UPM-AUTHFILTER : Windows 認証を初期化できませんでした。
19516 | 参考情報 | UPM-AUTHFILTER : CacheCleanupThread オブジェクトを初期化できませんでした。
19517 | 参考情報 | UPM-AUTHFILTER : パスワード キャッシュのクリーンアップ スレッドが正常に開始されました。
19518 | エラー | UPM-AUTH : 空のパスワード キーは使用できません。
19519 | エラー | UPM-AUTH : サイトの CommerceServer-UPM-PerfCounter オブジェクトを作成できませんでした。


機能分野 : 認証マネージャ

次の表は、認証マネージャに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
19456 | エラー | UPM-AUTH : エラー : 必要なプロパティが認証チケットに存在しません。
19457 | 警告 | UPM-AUTH : 警告 : Authticket TimeWindow は期限が切れています。ユーザーを再認証する必要がある可能性があります。
19458 | エラー | UPM-AUTH : エラー : 認証されていないユーザーです。ユーザーを再認証する必要があります。
19459 | 警告 | UPM-AUTH : エラー : 認証チケットが cookie に設定されていません。
19460 | 警告 | UPM-AUTH : 警告 : 認証チケットが設定されていません。
19461 | エラー | UPM-AUTH : 警告 : 認証チケットが空です。
19462 | 警告 | UPM-AUTH : エラー : cookie 設定中にエラーが発生しました。
19463 | 警告 | UPM-AUTH : 警告 : 認証済みユーザーの cookie を設定する必要があります。
19464 | エラー | UPM-AUTH : 警告 : 匿名ユーザーの cookie を設定する必要があります。
19465 | エラー | UPM-AUTH : エラー : 登録されたユーザーの cookie を設定中にエラーが発生しました。
19466 | エラー | UPM-AUTH : エラー : 匿名ユーザーの cookie を設定中にエラーが発生しました。
19467 | エラー | UPM-AUTH : エラー : 登録されたユーザーの cookie を取得中にエラーが発生しました。
19468 | エラー | UPM-AUTH : エラー : 匿名ユーザーの cookie を取得中にエラーが発生しました。
19469 | エラー | UPM-AUTH : エラー : 匿名ユーザーのクエリ文字列を取得中にエラーが発生しました。
19470 | エラー | UPM-AUTH : エラー : 認証済みユーザーのクエリ文字列を取得中にエラーが発生しました。
19471 | エラー | UPM-AUTH : エラー : チケット データのアンパック中にエラーが発生しました。
19472 | エラー | UPM-AUTH : エラー : インストールされたサイト名で初期化する必要があります。
19473 | エラー | UPM-AUTH : エラー : AuthManager::CryptoAPI_Initialize は失敗しました。


機能分野 : カタログ

次の表は、カタログに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
20480 | エラー | 2 つの文字列と、置換パラメータを持つメッセージ テキストです。
20481 | エラー | XML ファイルが無効です。
20482 | エラー | 商品 ID またはバリエーション ID として使用されているプロパティが <CatalogSchema> にありません。
20483 | エラー | データを、文字列から必要なデータ型へと変換できませんでした。
20484 | エラー | カタログ システムのテキスト インデックスを更新できませんでした。
20485 | エラー | 商品/カテゴリ/商品バリエーションに必要な一意 ID がありません。
20486 | 警告 | Commerce Server カタログのインポートを開始しました。
20487 | 警告 | Commerce Server カタログのインポートが完了しました。
20489 | エラー | データベースの操作に失敗しました。
20490 | エラー | カタログ定義の追加/更新中にエラーが発生しました。
20491 | エラー | カタログ テーブルへの列の追加で何らかの操作が失敗しました。
20492 | エラー | カタログ階層の追加/更新中にエラーが発生しました。
20493 | エラー | カタログ関連付けの追加/更新中にエラーが発生しました。
20495 | エラー | 新しい商品/カテゴリの追加で何らかの操作が失敗しました。
20496 | エラー | 商品/カテゴリの更新で何らかの操作が失敗しました。
20497 | エラー | XML ファイルに存在しない商品/カテゴリ/プロパティへの参照があります。
20498 | 警告 | カタログをインポート中です。
20499 | 警告 | ファイルを作成できません
20500 | 警告 | Microsoft Commerce Server カタログのエクスポートが開始されました。
20501 | 警告 | Microsoft Commerce Server カタログのエクスポートが完了しました。
20502 | 警告 | Microsoft Commerce Server のカタログをエクスポート中です。
20503 | エラー | 無効なプロパティが商品で使われています。原因として、文字列のプロパティに対するプロパティ値がプロパティの長さを超えていること、列挙されたプロパティに対して列挙した値が存在しないこと、日付プロパティに対する日付が指定した日付範囲に当てはまらないことが考えられます。
20504 | エラー | ファイルを開くことまたは作成することができません。
20505 | エラー | ファイルの中に無効なデータがあります。
20512 | エラー | 新しいインポート/エクスポート操作は進行中のインポートが完了するまで開始できません。
20513 | エラー | 価格 (cy_list_price) の更新に失敗しました。
20514 | エラー | 元のデータ型から文字列へとデータを変換できませんでした。
20515 | エラー | 0.01
20516 | エラー | 指定した文字列は使用できない予約されている文字の 1 つです。
20517 | エラー | フルテキスト インデックスを作成しています。
20518 | エラー | 当該カテゴリはカタログに既に存在します。カタログのカテゴリ名は一意である必要があります。
20519 | エラー | 当該商品はカタログに既に存在します。カタログの商品名は一意である必要があります。
20520 | エラー | 当該商品バリエーションはカタログに既に存在します。カタログの商品バリエーション名は一意である必要があります。
20521 | エラー | 当該カタログは存在しません。
20522 | エラー | 定義名とは別の名前である必要があります。有効なカタログ名を指定してください。
20523 | エラー | プロパティの値が整数値の最小値～最大値の範囲を超えています。このプロパティで有効な値は、-2147483648 ～ 2147483647 です。
20524 | エラー | プロパティの値が、Big Integer 値の最小値～最大値の範囲を超えています。このプロパティで有効な値は、-9223372036854775808 ～ 9223372036854775807 です。
20525 | エラー | Big Integer 型は SQL Server 2000 以降のバージョンのみでサポートされています。このエラーは、XML ファイルの内部で発生しました。
20526 | エラー | 未定義のプロパティ : 当該定義のカタログ プロパティは XML ファイルで定義されていません。
20527 | エラー | ファイルを開けません。システムのメモリが不足しています。
20528 | エラー | CSV ファイルに含まれている属性は catalogproducts テーブルに組み込まれた列です。属性の名前を変更する必要があります。この CSV ファイルは無効です。
20529 | エラー | 商品カタログの中に、無効なプロパティが使われています。原因として、文字列のプロパティに対するプロパティ値が、プロパティの長さを超えている、列挙されたプロパティに対して列挙された値が存在しない、または日付のプロパティに対する日付が指定した範囲に当てはまらない、ということが考えられます。
20530 | エラー | カタログ内の何らかの商品が、複数の価格を持つカテゴリの中にあります。この商品には価格ルールが適用されず、元の価格が保持されます。


機能分野 : コンポーネント

次の表は、コンポーネントに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
4096 | 警告 | AdminEventLog オブジェクトの WriteWarningEvent メソッドが使うイベントです。
4097 | エラー | AdminEventLog オブジェクトの WriteErrorEvent メソッドが使うイベントです。
4098 | 参考情報 | AdminEventLog オブジェクトの WriteInformationalEvent メソッドが使うイベントです。
4100 | エラー | Windows : カタログなどの一部のコンポーネントにより、ログに記録されます。ほとんど利用されません。Win32 システム エラーを報告するために使われます。
4101 | エラー | Commerce Server : 各種 Commerce エラーを報告するために、カタログなどの一部のコンポーネントにより、ログに記録されます。ほとんど利用されません。
4103 | エラー | 接続エラー : (未使用)
4104 | エラー | (エラーがコンポーネントにある場合) コンポーネントの実行が失敗しました。このイベントは、すべてのパイプライン/コンポーネント実行エラーの報告に使われます。
4105 | エラー | [OrderDiscount] : 当該 ID を持つ割引は、フィールドに対して有効な値を持っていません。割引は無効です。ContentList の中に無効な割引が検出されました。OrderDiscount はこの割引をアクティブでないものとして処理するので、割引を適用できないことをこのイベントによって警告します。
4106 | エラー | WIN32 システム エラーです。この問題が繰り返し発生する場合は、ソース ファイル名、行番号、WIN32_Error 番号を添えて Microsoft サポート技術者に連絡してください。
4107 | エラー | COM システム エラーです。この問題が繰り返し発生する場合は、ソース ファイル名、行番号、COM_HRESULT 値を添えて Microsoft サポート技術者に連絡してください。
4108 | エラー | CoCreateInstance(CLSID_StdGlobalInterfaceTable) の呼び出しに失敗しました。CS40 パイプラインには、Windows NT4.0 SP3 以降が必要です。このシステム要件が満たされていない場合は、ログにこのイベントが記録されます。
4109 | エラー | COM+ アプリケーションを登録できませんでした。ログに HRESULT が示されます。このイベントは、パイプラインの COM+ アプリケーション登録コード (通常はセットアップ中に実行されます) によってログに記録されます。
4110 | エラー | COM+ コンポーネントを登録できませんでした。ログに HRESULT が示されます。このイベントは、パイプラインの COM+ アプリケーション登録コード (通常はセットアップ中に実行されます) によってログに記録されます。
4111 | エラー | COM+ アプリケーションを登録できませんでした。ログに HRESULT が示されます。このイベントは、パイプライン COM+ アプリケーション登録コード (通常はセットアップ中に実行されます) によってログに記録されます。


機能分野 : コア

次の表は、コアに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
4112 | エラー | Commerce Server 2000 パフォーマンス カウンタが、制限の 2000 を超えています。サーバーのパフォーマンス カウンタが監視できるパイプライン コンポーネントは、最大で 2000 個までです。


機能分野 : 汎用

次の表は、既知の汎用イベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
32768 | エラー | Commerce Server 2000 の評価期間は終了しています。Contact Microsoft に連絡して、ライセンスされたバージョンの Commerce Server 2000 を入手してください。期限が満了しました。
32769 | エラー | BizTalk Server 2000 の評価期間は終了しました。Microsoft に連絡して、ライセンスされたバージョンの BizTalk Server 2000 を入手してください (未使用)。
32770 | エラー | この製品の評価期間は終了しました。Microsoft に連絡して、ライセンスされたバージョンのこの製品を入手してください (未使用)。
32771 | 警告 | Commerce Server 2000 の評価期間は 10 日以内で終了します。Microsoft に連絡して、ライセンスされたバージョンの Commerce Server 2000 を入手してください。期限がまもなく満了になります。
32772 | 警告 | BizTalk Server 2000 の評価期間は 10 日以内で終了します。Microsoft に連絡して、ライセンスされたバージョンの BizTalk Server 2000 を入手してください (未使用)。


機能分野 : マーケティング

次の表は、マーケティングに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
8192 | エラー | キャッシュの更新中に CacheManager でエラーが発生しました。キャッシュ更新中のエラーはこのメソッドによって報告されます。ログに記録されるエラー メッセージの中に、ソース コンポーネントと説明が記述されています。
8193 | 警告 | Commerce.WriteEvents : パフォーマンス ディクショナリが見つかりませんでした。イベント データ (要求とクリック) を含むディクショナリがキャッシュ内にありませんでした。これが存在しないと、WriteEvents は処理を行うことができません。
8194 | 警告 | Commerce.WriteEvents : 当該 ID を持つキャンペーン項目がありません (未使用)。
8195 | 警告 | Commerce.LoadAdvertisements : クエリはアクティブな広告を返しませんでした。このメッセージを表示されないようにするには、自社広告のスケジュール設定を見直してください。データベースにアクティブな広告がない場合、アプリケーションの起動後最初の更新時点で CSFLoadAdvertisements によって警告メッセージがログに記録されます。
8196 | エラー | 実際のエラー メッセージは、発生した特定のエラーに基づいてリソースから取得されます。すべての ListManager のエラーがログに記録されます。
8197 | エラー | マーケティング DTS : 次の URL で Commerce OLEDB プロバイダにバインドできません。OLEDB エラーです。
8198 | エラー | マーケティング DTS : マーケティング DTS タスクで発生したさまざまな致命的エラーを報告するために使われます。挿入される実際のメッセージはエラーによって異なります。
8199 | エラー | キャンペーンの接続文字列を設定できません。put_ConnectionString への ADO 呼び出しに失敗しました
8200 | エラー | マーケティング DTS のインポートを開始しました。
8201 | エラー | 次のクラスのデータベース列アクセス構造へのエラーです。 <エラーの説明> OLEDB エラー
8202 | エラー | OLEDB エラーです。
8203 | エラー | マーケティング DTS インポートが正常に終了しました。マーケティング DTS タスクの正常終了をログに記録しました。
8204 | 警告 | リスト マネージャ サービス コントロールの通知 : サービスの開始と終了をログに記録しました。


機能分野 : Pers Perf

次の表は、Pers Perf に関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
28672 | エラー | CSPerfCounters コンポーネント : 安全性の属性を初期化できませんでした。
28673 | エラー | CSPerfCounters コンポーネント : 作成できなかったものがあります。
28674 | エラー | CSPerfCounters コンポーネント : ini ファイルを読み取り中にエラーが発生しました。
28675 | エラー | CSPerfCounters コンポーネント : レジストリに伴うエラーです。


機能分野 : プロファイル システム

次の表は、プロファイル システムに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
16384 | エラー | 内部エラーがプロファイル サービス コンポーネントで発生しました。
16385 | エラー | プロファイル サービスのデータ型を基になるデータ記憶域の内部のデータ型に変換できない、または内部のデータ型から変換できません。
16386 | エラー | プロファイル サービス コンポーネントで無効な操作が実行されました。
16387 | エラー | 現在の操作は削除されたオブジェクト上で実行されているので、完了できません。この削除されたオブジェクトに対するハンドルを開放してください。
16388 | エラー | 現在の操作は無効なプロファイルの種類を使用して実行されています。
16389 | エラー | 結合キー プロパティである場合、このプロパティの値を更新できません。結合キー プロパティは、固定されたオブジェクトの場合は変更不可能です。このエラーは、固定されたオブジェクトの結合キーを変更しようとしたときに返されます。
16390 | エラー | プロファイル サービス オブジェクトを再初期化できません。プロファイル サービス コンポーネントの初期化は、複数回実行することはできません。
16392 | エラー | 無効な接続文字列がプロファイル サービス オブジェクトに渡されています。
16393 | エラー | プロファイルの定義が無効です。
16394 | エラー | プロファイル サービス コンポーネントのスタック領域が不足しています。
16395 | エラー | プロファイル オブジェクトは既に存在します。
16396 | エラー | プロファイル オブジェクトが見つかりません。キー メンバ名とメンバ値を確認し、再試行してください。
16397 | エラー | プロファイル サービス オブジェクトは初期化されていません。
16398 | エラー | プロファイル サービスの初期化メソッドに渡されたプロファイル定義のカタログ名が無効です。
16399 | エラー | プロファイル定義で複数の値を持つプロパティをキーとしてマークすることはできません。
16400 | エラー | キー メンバに指定した値は無効です。
16401 | エラー | プロファイル オブジェクト キャッシュで、回復可能な競合が発生しました。再試行してください。このエラーが発生する状況は 2 つ考えられます。 (a) 複数のスレッドが、プロファイル オブジェクト キャッシュに存在しないプロファイル オブジェクトを同時に取得しようとして、このオブジェクトをキャッシュに挿入しようと試みると、最初のスレッドを除くすべてのスレッドがこのエラーを返します。この状況では、このエラーには実害がないので無視できます。 (b) プロファイル オブジェクト データがプロファイル定義ルールに従っていません。たとえば、複数のオブジェクトで、一意キーとして設定されたプロパティに同じプロパティ値が保持されています。
16402 | エラー | プロファイル オブジェクト キャッシュがいっぱいになりました。ダーティ エントリを解放し、操作を再度やり直してください。引き続き問題が発生する場合は、プロファイル サービスに関するマニュアルを参照してください。


機能分野 : 予測

次の表は、予測に関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
24577 | 警告 | 予測サービス : モデルを構築しているときに <ケースの個数> ケースだけ見つかりました。モデルの構築には構成 '<構成名>' を使用しました。少なくとも <ケースの個数> ケースをお勧めします。このエラーは、データのサイズ (識別可能なケースの数) が小さすぎる場合に発生します。
24578 | エラー | 予測サービス : 当該モデルは既に存在します。ビルドは開始されませんでした。
24579 | 参考情報 | 予測サービス : ハンドラがインストールされていません。予測機能なしで Commerce Server をインストールした場合、リモートの予測サービスに接続しようとすると、エラーが発生します。
24580 | 参考情報 | 予測サービスを停止しました。
24581 | 参考情報 | 予測サービスを開始しました。
24582 | 参考情報 | 予測サービス : サービス要求が適切ではありません。予測サービスに接続しようとしたときに方法が適切でないと、エラーが発生します。
24583 | エラー | 予測サービス : モデルの構築が特定のモデル構成を使用して開始されました。
24584 | エラー | 予測サービス : モデル構成からモデルを構築中にエラーが発生しました。エラーの説明があります。
24590 | エラー | 予測サービス : モデル構成を削除中にエラーが発生しました。エラーの説明があります。
24591 | エラー | 予測サービス : モデル構成名を変更中にエラーが発生しました。エラーの説明があります。
24592 | エラー | 予測サービス : モデル構成を削除中にエラーが発生しました。エラーの説明があります。
24593 | エラー | 予測サービス : モデル構成名を変更中にエラーが発生しました。エラーの説明があります。
24594 | 参考情報 | 予測サービス : モデルは削除されました。
24595 | 参考情報 | 予測サービス : モデル名が変更されました。
24596 | 参考情報 | 予測サービス : モデル構成は削除されました。
24597 | 参考情報 | 予測サービス : モデル構成名が変更されました。


機能分野 : SiteConfig

次の表は、SiteConfig に関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
36865 | エラー | MSCSSiteConfig.cls::Initialize でエラーが発生しました。
36866 | エラー | MSCSSiteConfigAdmin.cls::ImportResource でエラーが発生しました。
36867 | エラー | MSCSSiteConfigAdmin.cls::ExportResource でエラーが発生しました。
36868 | エラー | MSCSSiteConfigAdmin.cls::AddRefToGroupComponent でエラーが発生しました。
36869 | エラー | Commerce SiteAdmin Object Error でエラーが発生しました。


機能分野 : ダイレクト メーラー

次の表は、ダイレクト メーラーに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
10 | 参考情報 | サービスが開始されました。ダイレクト メーラー サービスが開始されました。
11 | 参考情報 | サービスが停止されました。ダイレクト メーラー サービスが停止されました。
12 | 参考情報 | ジョブの実行が完了しました。ジョブ名 : 開始時刻 : 終了時刻 : 受信者数 : エラー数 : ジョブ完了メッセージ。
256 | 警告 | 無効な制限要求です。無効なサービス制御要求が受信されました。
257 | 警告 | ログ ファイルを開いているとき、またはログ ファイルに追加しているときにエラーが発生しました。この時点でログの記録が無効になります。ログへの記録操作中にエラーが発生しました。ログへの記録を終了しました。
258 | 警告 | 致命的なエラーが発生したか、またはジョブのエラー数が制限を超えたため、ジョブは中止されました。
259 | 警告 | システムのシャットダウン要求によりジョブは中止されました。シャットダウン要求によりジョブは中止されました。
260 | 警告 | DirectMailer データベースに接続できませんでした。構成設定とデータベース サーバーの状態を確認してください。データベース接続エラーです。
261 | 警告 | DirectMailer データベースが利用できないので、ジョブを中止しました。ジョブ名 : 開始時刻 : 終了時刻 : 受信者数 : エラー数 : データベースが再びオンラインになったとしても、ジョブは (3) の実行状態を引き続き表示します。ジョブを再開するには、"dmlrun.exe /run:" を使用するか、またはダイレクト メーラー サービスを再開してください。SQL データベースが利用できなくなり、再試行が回数分終了したために、ジョブは終了しました。
262 | 警告 | ジョブは実行を完了する前に終了されました。ジョブ名 : 開始時刻 : 終了時刻 : 受信者数 : エラー数 : ジョブは完了する前に終了されました。回復は可能です。
512 | エラー | サービスを開始できません :サービス ハンドラがインストールされていません。サービス開始時に致命的なエラーが発生しました。
513 | エラー | エラーによりサービスを開始できません。問題を修正してサービスを再起動してください。サービス開始時のエラーです。
514 | エラー | サービスを初期化できません。不明な例外が発生しました。対応できないエラーがサービス開始時に発生しました。
515 | エラー | エラーによりサービスの構成情報にアクセスできません。問題を修正してサービスを再起動してください。サービスの構成を読み取り中にエラーが発生しました。
516 | エラー | サービスの構成にアクセスできません。不明な例外が発生しました。サービスの構成を読み取り中に対応できないエラーが発生しました。
517 | エラー | 対応できないエラーがモジュールで発生しました。モジュールの実行を終了しました。対応できないエラーがサービスで発生しました。終了しています。
518 | エラー | サービスは初期化されましたがデータベースに接続できませんでした。問題を修正してサービスを再起動してください。サービスは開始時に複数回接続を試みて失敗します。
519 | エラー | CDO を初期化できませんでした (未使用)。
520 | エラー | ADO を初期化できませんでした (未使用)。
521 | エラー | DirectMailer データベース フィールドへの ADO 接続に失敗しました。構成設定を確認してください (未使用)。
522 | エラー | 問題があるため ADO コマンドを実行できませんでした。構成設定を確認してください。ADO コマンドの実行に失敗したとき数箇所にログインしました。
523 | エラー | 無効な構成パラメータです (未使用)。
524 | エラー | Commerce Site Server のコア オブジェクトを作成中または操作中にエラーが発生しました。エラー コードが示されます。SimpleList エラーを報告するために初期化中に 1 箇所で使われます。
525 | エラー | 内部オブジェクトを作成中または操作中にエラーが発生しました。実行を終了しました。実際にメモリ不足になる状況を報告するために初期化中に 1 箇所で使われます。


機能分野 : モデル ビルダ DTS タスク

次の表は、モデル ビルダ DTS タスクに関する既知のイベント メッセージの一覧です。

メッセージ ID | 重要度 | コメント
26625 | 参考情報 | モデル ビルダ DTS タスク : <メッセージ>。 モデル構築の開始を報告するメッセージです。<メッセージ> の部分は、ビルド番号とモデル名から成るメッセージに置き換えられます。"1 回目のモデル "test" の構築を開始しました" などとなります。
26626 | エラー | モデル ビルダ DTS タスク : <メッセージ>。 モデル構築のエラーを報告するメッセージです。<メッセージ> の部分は、エラー メッセージと再試行メッセージに置き換えられます。"構築失敗 - 30 秒間で 1/5 回再試行" などとなります。
26627 | 参考情報 | モデル ビルダ DTS タスク : <メッセージ>。 構築の終了を報告するメッセージです。<メッセージ> の部分は、モデル名を含むメッセージに置き換えられます。"モデル "test" の構築は正常に終了しました" などとなります。


トラブルシューティングに関する追加情報

トラブルシューティングに関する追加情報については、次の資料を参照してください。

資料 | 場所
Commerce Server 2002 ヘルプのデバッグに関する項目
  • Debugging Business Desk
  • Content Selection Framework Concepts
Commerce Server 2002 Readme | Microsoft Commerce Server 2002 インストール CD
Microsoft Commerce Server Web サイト | http://go.microsoft.com/fwlink/?LinkId=945
Commerce Server ソリューション サイト 技術情報および Commerce Server ソリューション サイトのダウンロード版があります。

http://go.microsoft.com/fwlink/?LinkId=6767
TechNet 電子商取引 Web サイトの計画、開発、配置、および管理に役立つ技術情報とツールがあります。

Commerce Server の詳細については、画面左側の [Products & Technologies] メニューの [Commerce Server] を選択してください。

http://go.microsoft.com/fwlink/?LinkId=5160
Microsoft Commerce Server 2002 Software Development Kit (SDK) | Commerce Server アプリケーション プログラミング インターフェイス (API) と統合する必要のあるプログラム、またはインテリジェント Web ページを作成する開発者向けの技術情報があります。SDK には、プログラマー向けのガイドと、Commerce Server および商取引の各種技術の紹介があります。また、プログラムの作成に使用できるサンプルとヘッダー ファイルも含まれています。Commerce Server 2002 に含まれています。
Microsoft Commerce Server 2000 リソース キット | 『Commerce Server 2000 リソース キット』には、電子商取引 Web サイトの計画、開発、配置、および管理に役立つ技術情報とツールがあります。Microsoft Press から入手できます。
MSDN 情報 Commerce Server およびその他の Microsoft .NET Enterprise Server に関する情報があります。このサイトには定期的にアクセスすることをお勧めします。関連文書およびホワイト ペーパーを検索するには、[このサイトの検索] ボックスに「Commerce Server」と入力します。

http://go.microsoft.com/fwlink/?LinkId=5161
Microsoft Servers サイト IT 専門家、開発者、およびインターネット専門家向けの Microsoft サーバー製品全種類のガイドです。

http://go.microsoft.com/fwlink/?LinkId=6732
ニュースグループ Microsoft ニュースグループにアクセスする方法については、次の Web ページを参照してください。
http://go.microsoft.com/fwlink/?LinkId=5816
プレミアサポート・サービス プレミアサポート・サービスでは、ビジネスの価値を最大化し、トータル コストを最小化するために、企業で必要となる専門的な技術情報を提供しています。詳細なサービス内容等については、次の Web ページを参照してください。
http://www.microsoft.com/japan/support/supportnet/premier.asp
  • マイクロソフト プレミアサポート・サービス
  • マイクロソフト プレミアパートナー・サポート・サービス
  • マイクロソフト プレミア OEM サポート・サービス
  • マイクロソフト オーソライズド プレミアサポート


用語集

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z あ か さ た な は ま や ら わ

記号・数字

.NET Framework

Web サービスおよびアプリケーションを構築、配置、および実行するプラットフォーム。非常に生産性が高く、標準に基づいた、多言語に対応可能な環境を提供し、企業の既存の投資内容と次世代のアプリケーションおよびサービスを統合します。また、インターネット規模のアプリケーションの配置および運用を可能にします。.NET Framework は、共通言語ランタイム、統合クラス ライブラリの階層的なセット、および ASP.NET と呼ばれるコンポーネント化された ASP の 3 つの主要な要素で構成されます。

関連項目 : ASP.NET、Common Language Runtime

2 重のキー

主キーと結合キーの組み合わせから成るキーの種類。2 重のキーは、Commerce Server ビジネス デスクでプロファイルの属性を追加するときに使用できます。「結合キー」と「主キー」も参照してください。

関連項目 : 主キー、結合キー

3 層アーキテクチャ

ネットワーク対応のアプリケーションを、3 つの論理領域へと分割するアーキテクチャ。3 つの論理領域とは、ユーザー インターフェイス層 (上位層)、ビジネス ロジック層 (中間層)、およびデータベース層 (下位層) です。各層には、1 つ以上のコンポーネントがあります。たとえば、上位層には 1 つ以上のユーザー インターフェイスが存在する場合があります。また、各ユーザー インターフェイスはビジネス ロジック層の複数のアプリケーションと同時に通信でき、ビジネス ロジック層のアプリケーションは複数のデータベースを同時に使用できます。1 つの層のコンポーネントを他の層から独立したコンピュータで実行し、ネットワーク経由で他のコンポーネントと通信させることができます。

A

Active Directory

Windows NT 4.0 および Windows 2000 Server 用のディレクトリ サービス。Active Directory には、ネットワーク上のオブジェクトに関する情報が格納され、権限を持つシステム管理者とユーザーに公開されます。これにより、ネットワーク ユーザーは 1 つのログオン プロセスを使って、ネットワーク上の任意の許可されているリソースにアクセスできます。また、システム管理者はネットワークを直感階層的に表示できるので、すべてのネットワーク オブジェクトを集中管理できます。

Active Directory Service Interfaces (ADSI)

Component Object Model (COM) ベースのディレクトリ サービス モデル。ADSI 準拠のクライアント アプリケーションは、単一の、標準的なインターフェイスを使って、Windows のディレクトリ サービス、Lightweight Directory Access Protocol (LDAP)、Novell Directory Services (NDS) などのさまざまな種類のディレクトリ プロトコルにアクセスできます。ADSI は、クライアント アプリケーションを、基になるデータ ストアやプロトコルの実装および処理の詳細から見えなくします。

Active Server Page Extension (ASPX)

ASP.NET で記述された ASP ページで使われるファイル拡張子。

関連項目 : ASP.NET

Active Server Pages (ASP)

動的な Web ページの作成や Web アプリケーションの構築に使われる、サーバー側のスクリプト環境。ASP ページは、HTML タグ、テキスト、およびスクリプト コマンドを含むファイルです。ASP ページから Component Object Model (COM) コンポーネントを呼び出すと、データベースへの接続や業務計算などの処理を実行できます。ASP を使って、Web ページに対話型のコンテンツを追加したり、顧客とのインターフェイスに HTML ページを使う Web アプリケーション全体を構築することができます。

Active Template Library (ATL)

小さく効率的な COM コンポーネントの開発に役立つ、C++ テンプレートのライブラリ。ATL は Microsoft が開発したライブラリで、Visual C++ に組み込まれています。

Active User Object (AUO)

すべてのユーザー プロファイル情報に対する単一の、統一されたアクセス機能を提供し、スクリプトの作成者がユーザー ID やプロファイルの格納場所の指定をしなくても済むようにするフレームワーク。システム管理者は、コンピュータを構成してプロファイル情報の仮想的な名前空間を定義し、さまざまなソースのプロファイル データへのアクセスに必要な構成情報を指定できます。

AUO は、技術的には ADSI オブジェクトのコンテナです。システム管理者は、AUO に含まれるオブジェクトの数を定義し、そのオブジェクトの管理に使用する情報を提供します。これにより、新しいストア プロバイダや代替プロファイル ソースを追加するための拡張可能モデルを利用できるようになります。ADSI のプロバイダを作成または再利用することで、どのストアにあるプロファイル情報にもアクセスできます。

ActiveX Data Objects (ADO)

データ アプリケーション用に最適化された、高レベルで言語に依存しない、オブジェクト ベースのデータ アクセス インターフェイス。ADO を利用すると、クライアント アプリケーションから OLE DB プロバイダを通じて、データベース サーバーのデータにアクセスして操作できます。

関連項目 : ActiveX Data Objects (Multidimensional) (ADO MD)

ActiveX Data Objects (Multidimensional) (ADO MD)

マルチディメンション データ アプリケーション用に最適化された、高レベルで言語に依存しない、オブジェクト ベースのデータ アクセス インターフェイス。Visual Basic などのオートメーション言語は、マルチディメンション データ記憶域へのデータ アクセス インターフェイスとして ADO MD が使われます。ADO MD は、ADO 2.0 以降のバージョンに組み込まれています。

関連項目 : ActiveX Data Objects (ADO)

ADO

「ActiveX Data Objects」を参照してください。

ADO MD

「ActiveX Data Objects (Multidimensional)」を参照してください。

ADSI

「Active Directory Service Interfaces」を参照してください。

AE

「非対称型の暗号化」を参照してください。

AggregateColumn

高密度テーブルや低密度 テーブルの列の 1 つ。PivotColumn 列で指定されたプロパティに値を割り当てます。たとえば、PivotColumn 列に商品の在庫保管単位 (SKU) が入っている場合には、各商品が購入された回数が保持されます。PivotColumn 列に PageGroupID が入っている場合には、 各ページ グループが参照された回数が保持されます。PivotColumn 列に AdID 列に AdID が入っている場合には、各広告がクリックされた回数が保持されます。この列は PredictorDataTables テーブルに指定します。

関連項目 : ページ グループ、CaseColumn、低密度テーブル、高密度テーブル、PivotColumn

Application Center 2000

Windows 2000 上に構築された可用性の高い Web アプリケーションを配置および管理するための、Microsoft のツール。

ASP

「Active Server Pages」を参照してください。

ASP.NET

サーバー ベースの Web アプリケーションを構築するためのフレームワーク。Active Server Pages (ASP) がマネージド コード スペースに発展したものです。

関連項目 : マネージド コード、.NET Framework、Active Server Pages Extension (ASPX)

ASPX

「Active Server Page Extension」を参照してください。

ATL

「Active Template Library」を参照してください。

ATL パイプライン コンポーネント ウィザード

ATL と追加のテンプレートを使って、パイプライン コンポーネントの開発を容易にする Visual C++ のウィザード。

AUO

「Active User Object」を参照してください。

B

Base Class Library (BCL)

Commerce Server .NET Application Framework に含まれる、クラス、インターフェイス、および ValueType の集合。このライブラリは、ランタイム Commerce Server 機能へのアクセスを提供し、.NET ベースの Commerce Server アプリケーション、コンポーネント、およびコントロールを構築する基盤となるよう設計されています。

BCL

「Base Class Library」を参照してください。

BCP

「一括コピー プログラム (BCP)」を参照してください。

Biz Data Service

pup.log ファイルに表示されるプロファイル リソースの名前。

関連項目 : プロファイル リソース

BizTalk Server 2000

ビジネス文書の処理に使用するアプリケーションの種類にかかわらず、さまざまなプラットフォームやオペレーティング システムの間でビジネス文書を交換するために必要なツールとインフラストラクチャを提供する Microsoft 製品。

B2B サイト

既に取引関係がある企業間で、注文書の作成と送信を行うために設計された Commerce Web サイト。Supplier (サプライヤ) サイトまたは Business to Business サイトとも呼ばれます。

B2C サイト

一般の買い物客に対して小売りを行うための Commerce Web サイト。Retail (リテール) サイトまたは Business to Consumer サイトとも呼ばれます。

Buy Now

衝動買いを誘うために Commerce Server で使われるテンプレート。ユーザーは、インターネット上のどの Web ページからでも商品を購入できます。ユーザーが商品のイメージをクリックすると、送付先とクレジット カード情報の入力を求めるダイアログ ボックスが表示されます。

C

CaseColumn

高密度テーブルや低密度テーブルの中にある、ケースを識別するための列。たとえば、ケースがユーザー情報を保持している場合は、UserID を保持する列が CaseColumn です。この列は PredictorDataTables テーブルに指定します。

関連項目 : ケース、低密度テーブル、PivotColumn、高密度テーブル、AggregateColumn

CCW

「COM Callable Wrapper」を参照してください。

CLS

「Common Language Specification」を参照してください。

COM

「Component Object Model」を参照してください。

COM Callable Wrapper (CCW)

実行時に生成されるプロキシ オブジェクト。既存の COM アプリケーションで、.NET Framework クラスなどのマネージド クラスを利用できるようにするためのオブジェクトです。

Commerce Server ビジネス デスク

Commerce Server 2002 で利用できる Web ベースのサイト管理ツール。Commerce サイトの管理および分析に使用するビジネス管理モジュールのホストになります。たとえば、カタログの価格情報を更新したり、新しい広告の対象を特定のユーザーに指定することができます。さらに、レポートを実行して、これらの変更がサイトの生産性に及ぼす影響を測定できます。Commerce Server ビジネス デスクには、Microsoft Internet Explorer 5.5 を実行しているすべてのコンピュータからアクセスできます。また、このツールは Web ベースであるため、ローカル アクセスもリモート アクセスも可能です。

特に指定しない限り、すべての Commerce Server Web サイトにビジネス デスクの個別のインスタンスが関連付けられます。フレームワークは、主に Dynamic Hypertext Markup Language (DHTML) で実装されます。サイト開発者は、ビジネス デスクに備わっている管理機能を変更したり拡張することができます。

Commerce Server ビジネス デスク フレームワーク

ビジネス デスク モジュールで使うための一連のサービス。これらのサービスには、ナビゲーション、セキュリティ、ユーザー インターフェイスの各コントロールが含まれます。また、フレームワークには Commerce Server ビジネス デスクのモジュールを統合する方法を規定する、標準化されたしくみも用意されています。

Commerce Server ダイレクト メーラー

Windows 2000 のサービスでもあるグローバル リソース。ダイレクト メーラーは、ダイレクト メール キャンペーンを実行します。ダイレクト メーラーは受信者リストを処理し、Web ページまたは静的ファイルからパーソナライズされたメッセージ本文を作成し、メール メッセージを受信者に送信します。ダイレクト メーラーの構成と管理、およびダイレクト メーラー データベースへのデータベース接続文字列の指定を行うには、Commerce Server マネージャを使います。Web サーバー インストールまたは完全インストールを実行するか、またはカスタム インストールでダイレクト メーラーを選択すると、ダイレクト メーラーとダイレクト メーラー データベースがインストールされます。

関連項目 : パーソナライズ、ダイレクト メーラー データベース

Commerce Server マネージャ

Commerce Server のリソース、サイト、アプリケーション、および Web サーバーの管理と構成を行うためのシステム管理ツール。Web サーバー インストールまたは完全インストールを実行するか、またはカスタム インストールで管理ツール機能を選択すると、Commerce Server マネージャが自動的にインストールされます。Microsoft 管理コンソール (MMC) が Commerce Server マネージャのホストになります。

Commerce Server サイト パッケージャ

サイト、アプリケーション、およびリソースを 1 つのファイル (.拡張子は pup です) にパッケージ化し、他のコンピュータに移動するための配置ツール。サイト パッケージャを使うと、分散環境の複数のコンピュータにサイトを配置できます。Web サーバー インストールまたは完全インストールを実行するか、またはカスタム インストールで Runtime オブジェクト機能を選択すると、Commerce Server サイト パッケージャは自動的にインストールされます。

Commerce アプリケーション

「アプリケーション」を参照してください。

Commerce 以外の Web サーバー

Commerce Server がインストールされていない Web サーバー。この Web サーバーが生成する W3C 形式のログ ファイルは、データ ウェアハウスにインポートして分析に使用できます。Commerce 以外の Web サーバーでは、インターネット インフォメーション サービス (IIS) が実行されている場合と実行されていない場合があります。

Commerce 以外のアプリケーション

アプリケーションの一般的なプロパティが設定された、Commerce 以外の Web サーバーのコンテナ。Commerce アプリケーションと、その Commerce Web サーバーのメンバに相当します。

Commerce モジュール

ASP.NET HTTP モジュール フレームワークを拡張するモジュール。.NET に基づいた Commerce Server アプリケーション固有のランタイム サービスの初期化を担当します。Commerce モジュールは、Microsoft.CommerceServer.Runtime.CommerceModule 基本クラスに基づいて作成します。Commerce モジュールは HTTP モジュールです。

関連項目 : HTTP モジュール

Common Language Runtime

マネージド コードの実行で中心的役割を果たすエンジン。マネージド コードに対して、複数言語間での統合、コードに対するアクセスのセキュリティ、オブジェクトの有効期間の管理、およびデバッグやプロファイルのサポートなどのサービスを提供します。

関連項目 : .NET Framework

Common Language Specification (CLS)

さまざまなプログラミング言語で作成されたタイプの相互運用を制御するための、プログラムによって評価可能なルールのセット。コンポーネントやツールを CLS に準拠させることで、CLS に準拠する他のコンポーネントやツールとの相互運用が保証されます。

Component Object Model (COM)

1 つのアプリケーション内または複数のアプリケーション間でオブジェクトが対話する方法を定義する、オブジェクト指向のプログラミング モデル。COM では、クライアント ソフトウェアがインターフェイス (関連するプロパティとメソッドの集合) へのポインタを通じてオブジェクトにアクセスします。

Component Object Model (COM) コンポーネント

1 つ以上のクラス ファクトリ、COM クラス、レジストリ エントリ機構、読み込みコードなどのコードを含むバイナリ ファイル。

cookie

ファイルに保存された ID 番号、パスワード、クリック履歴、サイトを訪問した回数など、ユーザーに関する情報。cookie には、チケット データも保存できます。Commerce Server では、固定 cookie と非固定 cookie の両方がサポートされています。固定 cookie は、ユーザーのコンピュータ上に保存されます。非固定 cookie は、サイトを訪問する認証済みユーザーの利用状況を追跡するときに使います。セッションが終了すると、非固定 cookie は削除されます。

関連項目 : チケット

CryptoAPI

Microsoft Windows に 1 機能として提供されているアプリケーション プログラミング インターフェイス (API)。CryptoAPI に含まれている関数をアプリケーションで利用すると、データをさまざまな手法で暗号化できるほか、ユーザーの機密情報である秘密キー データを保護できます。暗号化処理を実際に行うのは、暗号化サービス プロバイダ (CSP) と呼ばれる独立モジュールです。

CS 認証リソース

グローバル レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。CS 認証は、サイトの認証オプションを構成するときに使います。

CSF

「コンテンツ選択フレームワーク」を参照してください。

csv

「コンマ区切り値ファイル (CSV)」を参照してください。

D

Dictionary オブジェクト

メモリ内の名前と値の対の作成、格納、および取得のサポートに使用されるオブジェクト。Dictionary オブジェクトの要素はすべてバリアント型 (Variant) なので、他の Dictionary オブジェクトを含む、ほぼすべての種類の値から成る Dictionary オブジェクトを作成できます。また、同じ Dictionary オブジェクトに、どのような組み合わせのバリアント型 (Variant) でも格納できます。

DTC

「デザイン時コントロール」を参照してください。

DTS

「データ変換サービス」を参照してください。

DWC

「データ ウェアハウス構成ウィザード」を参照してください。

DynamicTable HTML コンポーネント (HTC)

表形式のデータに表示される列を編集するための HTML コンポーネント (HTC)。

E

EDI

「電子データ交換」を参照してください。

EditField HTML コンポーネント (HTC)

さまざまな種類のデータの個々の項目を編集するための HTML コンポーネント (HTC)。EditField HTC は、DynamicTable、EditSheet、ListEditor などの他の HTC に埋め込まれることが多いコンポーネントです。

EditSheet HTML コンポーネント (HTC)

データの編集に使用されるコントロールを束ねるための HTML コンポーネント (HTC)。

ExpressionBuilder HTML コンポーネント (HTC)

名前付きの式を作成するための HTML コンポーネント (HTC)。作成した式は対象化に使用できます。ExpressionBuilder HTC では、埋め込み版の QueryBuilder HTC を利用します。

F

FrontPage server extensions

FrontPage 拡張 Web サイトの管理、作成、および参照に使用できる一連のプログラム。

G

GUID

「グローバル一意識別子」を参照してください。

H

HTA

「HTML アプリケーション」を参照してください。

HTC

「HTML コンポーネント」を参照してください。

HTML アプリケーション (HTA)

HTML をスタンドアロンのアプリケーションとして表示するための Internet Explorer のしくみ。Commerce Server ビジネス デスクは HTA として実装され、通常のブラウザ インスタンス内で実行されないようにするコードを含んでいます。

HTML コンポーネント (HTC)

Internet Explorer DHTML の動作を使って実装されるコントロール。HTC は、Commerce Server ビジネス デスク モジュールで、データの表示と操作を行う場合に使われます。

HTTP

「ハイパーテキスト転送プロトコル」を参照してください。

HTTP モジュール

ランタイム サービスの初期化と、ランタイム サービスへのアクセスの提供を担当するモジュール。コンポーネントの初期化をカプセル化すると共に、ASP .NET が提供するコア ランタイム サービスを拡張します。Commerce モジュールは HTTP モジュールであり、System.Web.IhttpModule インターフェイスを実装しています。

関連項目 : Commerce モジュール

I

IIS

「インターネット インフォメーション サービス」を参照してください。

IIS アプリケーション

「アプリケーション」を参照してください。

IME

「入力方式エディタ」を参照してください。

ISAPI フィルタ

Web サーバーが HTTP 要求を受け取ったときに応答を返すプログラム。ISAPI フィルタがアプリケーションと異なる点は、アプリケーションが、クライアントからの要求ではなく Web サーバーでのイベントに基づいて処理を開始することにあります。ただし、このイベントの中にはクライアントからの要求も含みます。ISAPI フィルタを特定の Web サーバー イベントと関連付けておくと、そのイベントが発生するたびに、フィルタに通知が送られます。

ISP

「インターネット サービス プロバイダ」を参照してください。

ISV

「独立系ソフトウェア ベンダ」を参照してください。

L

LCID

「通貨ロケール ID」を参照してください。

ListBox HTML コンポーネント (HTC)

リストからリストへのコピーおよび移動の操作に使用される HTML コンポーネント (HTC)。

ListEditor HTML コンポーネント (HTC)

表形式のデータを編集するための HTML コンポーネント (HTC)。個々のレコードの編集は、リストが含まれるテーブルの下の別のテーブルで行います。

ListSheet HTML コンポーネント (HTC)

レコードのリストを表示し、その中から 1 つ以上のレコードを選択して編集するための HTML コンポーネント (HTC)。ListSheet HTC は読み取り専用です。

M

MD5 ハッシュ アルゴリズム

業界標準の一方向 128 ビット ハッシュ方式。RSA Data Security Inc. 社が考案したもので、暗号化認証で利用されます。ハッシュ方式は、パスワードなどのデータを変換する手法の 1 つです。この方式を利用した変換の結果は、一意なものになり、さらに元の形に復元できないという特徴があります。

MDX

「マルチディメンション式」を参照してください。

MHTML

「MIME Encapsulation of Aggregate HTML (MHTML) ドキュメント」を参照してください。

Microsoft Intermediate Language (MSIL)

各種コンパイラで出力として使われ、ジャスト イン タイム (JIT) コンパイラで入力として使われる言語。ランタイムには、MSIL をネイティブ コードに変換するための JIT コンパイラがいくつか組み込まれています。

関連項目 : マネージド コード

Microsoft 管理コンソール (MMC)

コンソールと呼ばれる管理ツールのホストの働きをするフレームワーク。コンソールには、ツール、フォルダ、その他のコンテナ、Web ページ、およびその他の管理項目が含まれます。これらの項目は、コンソールの左側のウィンドウに表示され、コンソール ツリーと呼ばれます。コンソールには、コンソール ツリーを表示できる 1 つ以上のウィンドウがあります。メインの MMC ウィンドウには、コンソールを作成するためのコマンドとツールが用意されています。

関連項目 : スナップイン

MIME

「Multipurpose Internet Mail Extensions」を参照してください。

MIME Encapsulation of Aggregate HTML Documents (MHTML)

ダイレクト メーラーでサポートされているメッセージ形式の 1 つ。ダイレクト メーラー メッセージを MHTML で書式設定すると、Web ページの一部または全体をメッセージとして送信することができます。メッセージには、HTML 書式、画像、および元の Web ページに含まれるその他の要素のすべて、または一部を含めることができます。

関連項目 : Multipurpose Internet Mail Extensions (MIME)

MMC

「Microsoft 管理コンソール」を参照してください。

MSCSAuth チケット

「認証チケット」を参照してください。

MSCSProfile チケット

「プロファイル チケット」を参照してください。

MSIL

「Microsoft Intermediate Language」を参照してください。

Multipurpose Internet Mail Extensions (MIME)

Simple Mail Transfer Protocol (SMTP) を拡張して、ビデオ、サウンド、バイナリ ファイルなどのデータを ASCII 形式に変換せずにインターネットの電子メールで送信できるようにする規格。

関連項目 : MIME Encapsulation of Aggregate HTML Documents (MHTML)

N

NOD

「表示頻度」を参照してください。

O

OLAP

「オンライン分析処理」を参照してください。

Orderform ヘッダー

OrderForm のルートにあり、Commerce Server データ ウェアハウスの OrferFormHeader テーブルにマップされるフィールドを論理上のグループにまとめたもの。

P

PE ファイル

「Portable Executable (PE) ファイル」を参照してください。

PIA

「プライマリ相互運用機能アセンブリ (PIA)」を参照してください。

PivotColumn

高密度テーブルまたは低密度テーブルにあり、予測で使われるプロパティの識別用データを保持する列。ここに保持されるのは、たとえば商品を予測する場合には在庫保管単位 (SKU)、ページ グループを予測する場合は PageGroupID、広告を予測する場合は AdID になります。この列は PredictorDataTables テーブルに指定します。

関連項目 : AggregateColumn、CaseColumn、高密度テーブル、低密度テーブル

Portable Executable (PE) ファイル

実行可能プログラムや、互いにリンクさせることで実行可能プログラムを形成するファイル群で使われるファイル形式。

ProfileDesigner HTML コンポーネント (HTC)

ユーザー プロファイルなどのプロファイルを編集するための HTC。

ProgID

「プログラム ID (ProgID)」を参照してください。

PUP

「Commerce Server サイト パッケージャ」を参照してください。

Q

QueryBuilder HTML コンポーネント (HTC)

簡単なクエリを作成するための HTML コンポーネント (HTC)。

R

Runtime Callable Wrapper

.NET ベースのアプリケーションが COM コンポーネントと対話することを可能にするラッパー クラス。Runtime Callable Wrapper が担当するのは、COM オブジェクトの初期化、オブジェクト参照の管理、インターフェイス メソッドの呼び出し、および戻り値の引き渡しです。

関連項目 : プライマリ相互運用機能アセンブリ (PIA)

S

server extensions

FrontPage 拡張 Web サイトの管理、作成、および参照をサポートする、Web サーバーの一連のプログラム。

SID

「セキュリティ識別子 (SID)」を参照してください。

SKU

在庫保管単位。Commerce Server では、SKU は商品の一意識別子で、通常は英数字が使われます。SKU を使うと、在庫管理のために商品を追跡できます。SKU は、購入可能なあらゆる項目に関連付けることができます。たとえば、スタイル番号が 3726 でサイズが 8 号のシャツには、3726-8 などの SKU を関連付けます。

T

TreeView HTML コンポーネント (HTC)

拡張マークアップ言語 (XML) 構造を、展開可能なツリー形式で表示するための HTML コンポーネント (HTC)。

TRUSTe

インターネットのユーザーの信用と信頼を築くために、公正な情報の実践という TRUSTe の理念を推進している独立した非営利団体。Microsoft は TRUSTe の後援企業で、TRUSTe プライバシー プログラムのメンバーです。

U

Uniform Resource Locator (URL)

インターネットでアクセス可能なファイル (リソース) のアドレス。リソースの種類は、インターネット アプリケーション プロトコルによって異なります。たとえば、Web で使われるハイパーテキスト転送プロトコル (HTTP) であれば、リソースは HTML ページ、イメージ ファイル、Common Gateway Interface (CGI) アプリケーションや Java アプレットなどのプログラム、または HTTP でサポートされるその他のファイルになります。URL には、リソースへのアクセスに必要なプロトコル名、インターネット上の特定のコンピュータを識別するドメイン名、およびコンピュータ上のファイルの場所を示す階層型の記述が含まれます。

Universal Character Set Transformation Code (UTF-8)

マルチバイトの拡張 Unicode 文字を、可変長のシングルバイト値へと変換するための規約。シングルバイトの ASCII 値に依存し、他の値を認識しない従来のファイル システム、パーサー、およびその他のソフトウェアとの互換性を維持することが目的です。Commerce Server Enterprise Edition では、UTF-8 形式のログ ファイルをインポートすることができます。

URI

「統一リソース識別子」を参照してください。

URL

「Uniform Resource Locator」を参照してください。

UTF-8

「Universal Character Set Transformation Format (UTF-8)」を参照してください。

W

Web アプリケーション

「アプリケーション」を参照してください。

Web サーバー

一般的には、HTTP などのインターネット プロトコルを使って、伝送制御プロトコル/インターネット プロトコル (TCP/IP) ネットワーク上で Web クライアントの要求に応じるサーバー ソフトウェアがインストールされたコンピュータを意味します。

Commerce Server では、Web サーバーはインターネット インフォメーション サービス (IIS) 5.0 を実行している物理的なサーバー コンピュータで、IIS Web サイトからプロパティを継承します。Web サーバーは、Commerce Server マネージャ コンソールで、アプリケーションの下に表示されます。1 つの Commerce アプリケーションから、そのアプリケーションのさまざまな種類のコンテンツを配信する複数の Web サーバーを使用できます。

Web サーバー コントロール

ASP.NET ページや Web フォームへと配信できる要素の 1 つ。階層構造を持ち、動作の変更や再利用が可能なサーバー側オブジェクトです。ユーザー インターフェイスを持つことも、持たないこともあります。

Web サイト

一般的には、特定のテーマや題材を扱い、特定の人または組織によって管理され、Web アドレスを通じてアクセスされるファイルとアプリケーションの集合を意味します。Web サイトは、Web ネットワークに接続されたサーバー上で運用され、世界中のユーザーが昼夜を問わずいつでも利用できるコンテンツを提供します。Web サイトでは、通常、HTML を使って、情報の書式設定と掲載が行われ、ユーザーがサイト内や Web 全体を移動するためのナビゲーション機能が提供されます。インターネット インフォメーション サービス (IIS) 5.0 では、Web サイトは特に仮想サーバーを意味します (既定の Web サイトなど)。仮想サーバーは、HTTP サーバー上で稼動する仮想的なコンピュータですが、ユーザーからは独立した HTTP サーバーに見えます。1 台のコンピュータで複数の仮想サーバーを稼働させて、各仮想サーバーで個別のプログラムを実行したり、入力デバイスや周辺デバイスに個別にアクセスすることができます。各仮想サーバーは、独自のインターネット ドメイン名とインターネット プロトコル (IP) アドレスを持ちます。

Web ファーム

リソースと要求負荷を共有するために接続された 2 台以上の Web サーバー。Web ファームは、通常、負荷分散、フォールト トレランス、およびフェールオーバーをサポートし、ユーザーからは単一のインターネット プロトコル (IP) アドレスを持つ単独のサーバーに見えます。サーバー ファームまたはサーバー クラスタとも呼ばれます。

関連項目 : クラスタ、サーバー クラスタ

Web フォーム

Web ブラウザ上に HTML ユーザー インターフェイスを作成するためのサーバー側コントロールをサポートする ASP .NET ページ フレームワーク。ASP .NET ページとも呼ばれます。

Windows アカウント

ユーザーを Windows 2000 に定義するための全情報で構成されるレコード。各ユーザーの Windows アカウントや SQL Server ログインは、データベース内のユーザー アカウントにマップされます。システム管理者は、Windows アカウントを作成すると共に、ビジネス デスク アクセス許可モジュールを使って、ユーザー アカウントまたはグループ アカウントにアクセス許可を設定します。

関連項目 : アクセス許可モジュール

Windows スクリプト ホスト (WSH)

32 ビットの Windows プラットフォーム用の、言語に依存しないスクリプト環境。特に指定しない限り、Windows 2000 と IIS と共にインストールされます。WSH を使うと、任意のスクリプト言語を使ってサーバー上の管理作業を自動化できます。

Windows メディア サービス広告

高品質のオーディオとビデオによる広告を表示する広告。

WSH

「Windows スクリプト ホスト」を参照してください。

X

XDR

用語定義の参照 :XML Data Reduced

XML

「拡張マークアップ言語」を参照してください。

XML Data Reduced

XML スキーマの定義に関する標準。

XML Web サービス

他のアプリケーションにデータやサービスを提供するアプリケーション ロジックの集まり。標準の Web プロトコルおよびデータ形式である HTTP、XML、SOAP などを利用して XML Web サービスにアクセスするアプリケーションは、個々の Web サービスの実装形態には影響を受けません。XML Web サービスは、Microsoft .NET プログラミング モデルの基礎となるものです。

XML データアイランド

「拡張マークアップ言語 (XML) データアイランド」を参照してください。

XMLHTTP 操作

「拡張マークアップ言語/ハイパーテキスト転送プロトコル (XMLTHHP) 操作」を参照してください。

あ

アーク

依存関係ネットワークで表示されるように、統計的関係をグラフィックで表したもの。たとえば、ノード A からノード B へのアークは、属性 A が属性 B の予測に役立つことを意味しますが、属性 B が属性 A の予測に役立つことは意味しません。

関連項目 : 依存関係ネットワーク

アクセス許可モジュール

各 Commerce Server ビジネス デスク モジュールにセキュリティ アクセス許可を設定するときに使うビジネス デスク モジュール。

関連項目 : エリア、エンティティ、要素、Windows アカウント

アクセス許可リソース

「ビジネス デスク アクセス許可リソース」を参照してください。

アセンブリ

単一の実装単位 (1 つまたは複数のファイル) として作成、バージョン管理、および配置が行われる機能の集まり。アセンブリは、.NET アプリケーションの主要な構築ブロックです。タイプやリソースはすべて、自身が属する実装単位の中でのみアクセス可能なものか、実装単位の外側で利用するためのエクスポート対象のどちらかになります。コードの実行時には、要求を解決するための名前スコープをアセンブリが確立し、参照可能な範囲を決めます。タイプはすべてアセンブリのコンテキストに読み込まれるので、実行されているオブジェクトのためのアセンブリがどれで、どの位置にあるかは、すべてランタイムが特定できます。

関連項目 : 名前空間、プライマリ相互運用機能アセンブリ (PIA)

値

プロファイル プロパティに割り当てられる実際のデータ。たとえば、プロファイル プロパティの "First Name" には "John" などの値が割り当てられます。

アップセル

ユーザーが表示中またはバスケットに入れた商品を、より良い商品に交換するように勧める、特定の種類の関連セル。サイトにアップセル機能を追加するには、Software Development Kit を使います。

関連項目 : インテリジェント クロスセル

アパートメント スレッド コンポーネント

単一の実行スレッドに存在する COM コンポーネント。アパートメント スレッド コンポーネントは、COM を利用してコンポーネントへの呼び出しを同期させます。Visual Basic で作成する COM オブジェクトは、すべてアパートメント スレッドです。

アフィニティ リスト

トランザクション、商品参照、およびトランザクションとデモグラフィックスの結合の 3 つの予測モデルのうちの 1 つから作成されたユーザー リスト。アフィニティ リストは、ビジネス デスクで作成し、リスト マネージャにエクスポートします。その後、特定の商品を購入する可能性のあるユーザーを対象にダイレクト メール キャンペーンを作成することができます。

関連項目 : キャンペーン マネージャ モジュール、アフィニティ リスト モジュール

アフィニティ リスト モジュール

トランザクション、商品参照、およびトランザクションとデモグラフィックスの結合の 3 つの予測モデルのうちの 1 つからユーザー リストを作成するために使う Commerce Server ビジネス デスク モジュール。リストをリスト マネージャにエクスポートして、これらのユーザーを対象としたダイレクト メール キャンペーンを作成することができます。

関連項目 : アフィニティ リスト

アプリケーション

Commerce Server 2002 においては、1 つの Uniform Resource Locator (URL) を通じてアクセスできる ASP アプリケーションを意味します。アプリケーションは、Commerce Server と IIS の両方のコンソール ツリーに表示されます。Commerce Server マネージャのコンソール ツリーに表示されるアプリケーションは、IIS のアプリケーションを論理的に表したものです。

アプリケーション既定の構成リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。アプリケーション既定の構成リソースは、通貨のオプション、請求のオプション、BizTalk Server の統合などの領域で、サイトの機能を指定するプロパティを設定するときに使います。

アプリケーションのキャッシュ

頻繁に使用される文書、イメージ、Common Gateway Interface (CGI) スクリプトや ASP スクリプト、または Internet Server API (ISAPI) 拡張ダイナミック リンク ライブラリ (DLL) をメモリに保存し、パフォーマンスを向上させること。詳細については、IIS ヘルプの「アプリケーションをキャッシュする」を参照してください。ファイル キャッシュまたは文書キャッシュとも呼ばれます。

アンマネージド コード

ランタイムでの表記規則や要件を考慮することなく記述されたコード。アンマネージド コードは共通言語ランタイム環境で実行され、最小限のサービスしか提供されません。たとえば、ガーベジ コレクションは利用できず、デバッグ手段も限られています。

依存関係ネットワーク

予測モデルに含まれる予測関係 (依存関係) をグラフィックで表した要約。依存関係ネットワークを表示するには、予測モデル ビューアを使います。

関連項目 : アーク、判断ツリー

一意キー

テーブルの各レコードに対応する一意識別子が含まれるフィールド。たとえば、社会保険番号のフィールドは、社員のレコードに対応する一意キーです。

関連項目 : 主キー、参照整合性、外部キー

一意のユーザー

指定した期間中に、一意だと判断されるユーザー。たとえば、あるユーザーが 1 か月の間にサイトを 130 回訪問したとします。Commerce Server では、そのユーザーは 1 回だけ一意のユーザーとしてカウントされます。一方、そのユーザーは同じ 1 か月の間に、(一意でない) ユーザーとしては 130 回カウントされます。

関連項目 : ユーザー

一方向のハッシュ

1 まとまりのデータのハッシュ値を生成するアルゴリズム。このアルゴリズムが "一方向" と呼ばれるのは、ハッシュしたデータを後で復号化する必要がないためです。

一覧ページ

Commerce Server ビジネス デスクの 2 種類の主要な操作ページの 1 つ。一覧ページには、いくつかの種類のデータが読み取り専用で表示され、通常はそのデータに対してフィルタ処理、並べ替え、選択、およびその他の操作を行うことができます。通常、一覧ページは ListSheet HTC と、場合によっては ListSheet HTC 上部の検索ペインで構成されます。一覧ページとナビゲーション ペインは、ビジネス デスクのワークスペースを共有します。

関連項目 : 編集ページ

一括コピー プログラム (BCP)

コマンド プロンプトで利用する一括コピー ユーティリティ。SQL Server のデータをユーザー指定形式のオペレーティング システム ファイルにコピーする場合や、その逆の操作を行う場合に使います。

イベント

ユーザーが実行する特定のアクションの発生。代表的なイベントには、キーボードによるキー入力、マウスのクリックによるボタンの選択などがあります。イベントは、発生した時刻と共に記録されます。プログラマは、これらのアクションに応答するコードを記述します。

関連項目 : 頻度

イメージ

イラスト、写真、背景テクスチャなど、Web ページで使用されるビジュアルな要素。Web ベースのイメージは、通常、.gif または .jpg 形式です。

インターネット

ゲートウェイで結合された異種コンピュータ ネットワークの集合。ゲートウェイは、送信側のネットワークから受信側のネットワークが使用するプロトコルへのデータ転送とメッセージ変換を処理します。これらのネットワークとゲートウェイでは、伝送制御プロトコル/インターネット プロトコル (TCP/IP) のプロトコル群が使われます。

インターネット アドレス

「インターネット ドメイン名」を参照してください。

インターネット インフォメーション サービス (IIS)

Web サイトの作成、構成、管理、およびその他のインターネット機能をサポートする Windows 2000 のサービス。Commerce Server をインストールする前に、サーバーに IIS をインストールしておく必要があります。

インターネット サービス プロバイダ (ISP)

インターネットへのリモート接続の公共プロバイダ。ISP は、ダイヤルアップ接続を提供するか、または専用線を設置して、リモート ユーザーがインターネットにアクセスできるようにする企業です。ISP が 1 つのサーバーまたはサーバー クラスタ上で複数のサイトを運用し、顧客企業の代わりに Commerce サイトのホストを務める場合があります。ISP では、顧客がリモート コンピュータからサイトをある程度管理できるようにしながら、インフラストラクチャを提供し、すべてのサイトに共通する管理作業を行います。

インターネット ドメイン名

インターネット上でサイトを運用するために使用する名前。インターネット ドメイン名は、ピリオド (.) で区切られた、セカンド レベルのドメイン名 ("Microsoft" など) とトップ レベルのドメイン名 ("com" や "net" など) の組み合わせで構成されます。企業は、インターネット上で Commerce サイトを開設する前に、認定されたドメイン ネーム システム (DNS) 登録機関にセカンドレベルのドメイン名を申請し、登録する必要があります。この名前は、外部 DNS 名の要件を満たしている必要があります。また、既に登録または使用されている名前は使用できません。名前を登録するには、インターネットで使用できる有効なインターネット プロトコル (IP) アドレスを最低 1 つ、およびインターネットで現在アクティブになっている DNS サーバーの IP アドレスを最低 2 つ取得する (またはインターネット サービス プロバイダ (ISP) に代行取得してもらう) 必要があります。インターネット アドレス、ドメイン名、または URL とも呼ばれます。

インテリジェント クロスセル

過去の購入行動と、ユーザーが表示またはバスケットに追加した商品に基づいて、ユーザーに表示する推奨商品を動的に適応させる方法。Web サイトにインテリジェント クロスセル機能を追加するには、予測リソースを使います。

関連項目 : 関連セル、アップセル

イントラネット

会社または組織内の情報処理用に設計されたネットワーク。イントラネットは、文書の配布、ソフトウェアの配布、データベースへのアクセス、トレーニングなどの用途に使われます。イントラネットという名前は、一般に Web ページ、Web ブラウザ、ファイル転送プロトコル (FTP) サイト、電子メール、ニュースグループ、メーリング リストなどのインターネット関連のアプリケーションが使われるものの、社内または組織内からしかアクセスできないことに由来します。

ウエイト

特定の顧客のすべてのキャンペーン項目との相関関係で、キャンペーン項目をいつ表示するかを決める方法。キャンペーンでは、キャンペーン レベルで目標が設定されている広告にのみウエイトが適用されます。自社広告では、ウエイトは、すべての顧客とすべてのキャンペーンに対する他のすべての自社広告と相関関係にあります。有料広告では、ウエイトは同じキャンペーンの他の有料広告との相関関係になります。割引キャンペーン項目を表示するタイミングを決めるには、ウエイトではなく優先順位を使います。

関連項目 : 自社広告、有料広告

エクステント

テーブルやインデックスなどの SQL Server オブジェクトに割り当てられる領域の単位。これらのオブジェクトで追加領域が必要になると割り当てられます。SQL Server 2000 では、連続する 8 ページが 1 エクステントです。

エクストラネット

サプライヤや顧客とのコミュニケーションを促進するために、Web の技術を使って会社のイントラネットを拡張したもの。エクストラネットを利用すると、顧客やサプライヤが一定の制限内で会社のイントラネットにアクセスできるため、コミュニケーションの速度が向上し、取引関係が効率化します。

エリア

ビジネス デスク内でセキュリティを設定できる、カスタム モジュール セキュリティ エンティティのグループ。ビジネス デスクには、カタログとプロファイルの 2 つの既定のエリアが含まれています。カスタマイズされた他のグループが必要な場合は、システム管理者がビジネス デスクにエリアを追加することができます。

関連項目 : アクセス許可モジュール、エンティティ、要素

エンティティ

セキュリティの設定対象となる、ビジネス デスクの最上位項目。ビジネス デスク モジュール、またはカタログやプロファイルのプロパティのどちらかです。セキュリティを設定できるエンティティの例としては、ユーザー プロファイルのプロパティ、組織プロファイルのプロパティ、レポートなどがあります。エンティティには、複数の要素が含まれていることもあります。

関連項目 : エリア、アクセス許可モジュール、要素

エンベロープ

特定のビジネス文書を表す一連の名前付きプロパティ。エンベロープのプロパティにはエンベロープ書式が含まれ、場合によってはエンベロープ仕様へのポインタが含まれます。また、電子ビジネス データを転送用にカプセル化するヘッダーとフッターの情報、またはヘッダーの情報だけが含まれることもあります。

オープン ビジット

ビジネス デスク レポートで、ログによるデータ収集が停止するときにまだ進行中であった訪問。たとえば、ログ ファイルを 1 日単位で循環させるように設定してあり、サイトの状況を記録するログ ファイルが、毎日午前 12 時 00 分 01 秒に新しいものへと切り替わるとします。あるユーザーが月曜日の夜にサイトを参照し始めて、火曜日の午前 12 時 00 分 01 秒にまだサイトを参照していた場合、レポートでは、そのユーザーにオープン ビジットがあることを月曜日のログ ファイルの中に記録できます。

関連項目 : ログ ファイル、クローズド ビジット、訪問

親カテゴリ

商品の集合を階層にまとめるためにカタログで使用されるエンティティ。たとえば、Music は親カテゴリで、Rock、Jazz、および Classical は子カテゴリです。親カテゴリと子カテゴリを作成し、サイトで表示される商品を整理します。

関連項目 : 先祖カテゴリ、子孫カテゴリ、ルート カテゴリ、子カテゴリ、親カテゴリ

オンライン分析処理 (OLAP)

最新のデータにその都度アクセスし分析できるように設計された技術の一種。OLAP データは、マルチディメンション データベースに格納されます。このデータベースは、各データ属性 (商品、地理的な営業区域、期間など) を個別のディメンションと見なします。OLAP データは、共有ディメンションごとにグループ化され、キューブにまとめられます。データ ウェアハウスは、インポートされたデータを OLAP キューブを使って格納します。これにより、レポートとクエリ処理の速度が向上します。

関連項目 : ディメンション、キューブ

か

外部キー

保持する値が、同じテーブルまたは他のテーブルの主キー (一意キー) と一致している列。1 つのテーブルに複数存在することもあります。

関連項目 : 主キー、一意キー、参照整合性

価格カテゴリ

すべての商品がカテゴリから価格を取得するカテゴリ。つまり、商品レベルで割り当てられた価格にカテゴリが優先します。

拡張

Web サーバーまたはサーバー クラスタの処理能力を拡張して、サイトのトラフィックの増加に対処し、サイトのパフォーマンスを向上させること。

拡張マークアップ言語 (XML)

Web 上での構造化文書交換用のデータ形式。HTML のような固定形式ではないため、拡張マークアップ言語と呼ばれます。XML は、Web 上で Standard Generalized Markup Language (SGML) を利用できるように設計されています。XML は単体のマークアップ言語ではありません。作成者がマークアップ言語を設計できるメタ言語です。通常のマークアップ言語では、特定の種類の文書 (HTML など) で情報を記述する方法を定義します。XML では、作成者がさまざまな種類の文書用にカスタマイズしたマークアップ言語を定義できます。

拡張マークアップ言語 (XML) データアイランド

ASP ページに含まれているか、または ASP ページからアクセスできる XML データ。XML データアイランドの定義には、xml とスクリプトの 2 つの要素のいずれかが使われます。特定の XML データアイランドの参照には、これらの要素の ID 属性が使われます。データ自体がこれらの要素の中に存在することが多いですが、ソース属性を使って代わりの場所の Uniform Resource Locator (URL) を提供するときは、データは他の場所に存在していてもかまいません。

拡張マークアップ言語/ハイパーテキスト転送プロトコル (XMLHTTP) 操作

ListSheet HTML コンポーネント (HTC) と TreeView HTC が、サーバーから XML データを取得するためのしくみ。データが表示されているページ全体を再表示することなく、新しいデータを表示できます。

確率分布

離散型の確率変数 X の場合は、各 X の値に対応する確率の集合のこと。

連続型の確率変数 X の場合、X の値が a から b までのときの確率は、ある関数を a から b まで積分して求めます。この関数のことを X の確率分布または確率密度関数と呼びます。

カスタム カタログ

基本カタログと同じカテゴリおよび商品を含み、さらに商品に対する独自の価格設定ルールも含むカタログ。Commerce Server 2000 の機能の 1 つです。 Commerce Server 2002 では仮想カタログに置き換えられています。

関連項目 : 仮想カタログ

仮想カタログ

1 つまたは複数の基本カタログの商品データを参照するカタログです。基本カタログに商品を追加すると、包含ルールによっては、関連付けられた仮想カタログにもその商品が表示される場合があります。商品は複数の仮想カタログに表示されていても、データベースには 1 度しか表示されません。仮想カタログには、基本カタログのすべての言語が継承されます。仮想カタログには、3 つの主要な用途があります。複数のカタログを集計し、1 つのカタログとしてユーザーに表示すること、複数の通貨で商品の価格を設定すること、および特別価格や商品のサブセットを特定のグループのユーザーに提供することです。

関連項目 : 基本カタログ、カタログ、カタログ セット、特別価格、具現化、集合カタログ、カスタム カタログ

仮想サーバー

Web サイトとも呼ばれます (既定の Web サイトなど)。HTTP サーバー上で動作するものの、ユーザーからは独立した HTTP サーバーに見える仮想的なコンピュータです。1 台のコンピュータで複数の仮想サーバーを稼働させて、各仮想サーバーで個別のプログラムを実行したり、入力デバイスや周辺デバイスに個別にアクセスすることができます。

各仮想サーバーは、独自のインターネット ドメイン名とインターネット プロトコル (IP) アドレスを持ち、ユーザーからは独立した Web サイトに見えます。独自のドメイン名の使用を希望する顧客のために、仮想サーバーを使っているインターネット サービス プロバイダ (ISP) もあります。ISP では複数の インターネット インフォメーション サービス (IIS) 5.0 Web サイトを作成し、個々の IIS Web サイトに顧客ごとの Commerce アプリケーションをアンパッケージします。個別の IIS Web サイトの下で実行される Commerce アプリケーションは、グローバル リソースを共有できます。

仮想ディレクトリ

サーバーの物理ディレクトリに対応する、Web アドレスで使用されるディレクトリ名。URL マッピングと呼ばれることもあります。インターネット インフォメーション サービス (IIS) 5.0 では、仮想ディレクトリは Microsoft 管理コンソール (MMC) の階層の Web サイト (仮想サーバー) のすぐ下にある項目で、Web サイトからプロパティを継承します。継承されるプロパティには、仮想ディレクトリ レベルで設定を変更できるものとできないものがあります。Commerce Server アプリケーションをはじめとするアプリケーションは、IIS の仮想ディレクトリ レベルにあり、Web サイトとの間で同じ親子関係を持ちます。

カタログ

カテゴリと商品の集まり。カタログにはそれぞれ一意の名前が付いています。Commerce Server でサポートされているカタログは、基本カタログと仮想カタログの 2 種類です。

関連項目 : 仮想カタログ、基本カタログ

カタログ エディタ モジュール

カタログの編集と管理を行うための Commerce Server ビジネス デスク モジュール。カタログ エディタ モジュールでは、商品とカテゴリの追加、編集、削除に加えて、カタログのインポートとエクスポート、およびフルテキスト インデックスの更新もサポートされています。

カタログ式

カタログのどの商品に割引を適用するかを指定する式。

カタログ セット

特定のユーザーや組織に公開する 1 つ以上のカタログのグループ。たとえば、特定の組織のメンバーに表示する 2 つのカタログを作成し、さらに他の組織に公開する他のカタログを 2 つ作成します。これにより、2 つのカタログ セットに分類された 4 つのカタログが作成されます。基本カタログ、仮想カタログ、および集合カタログは、カタログ セットのメンバであることがあります。

関連項目 : 集合カタログ、基本カタログ、仮想カタログ

カタログ セット モジュール

カタログ セット作成と管理を行うための Commerce Server ビジネス デスク モジュール。

カタログ定義

カテゴリ定義、商品定義、およびプロパティ定義を指定するカタログの記述。1 つの定義を複数のカタログで共有できます。カタログ定義の管理には、カタログ定義デザイナ モジュールを使います。

カタログ定義デザイナ モジュール

カタログ定義の作成と管理を行うための Commerce Server ビジネス デスク モジュール。カタログ定義は、カテゴリ定義、商品定義、およびプロパティ定義で構成されます。これらのコンポーネントが、カタログ内のカテゴリ、商品、およびプロパティの基礎になります。

カタログ データ

カタログの内容。個々の商品項目と項目が属するカテゴリに関するデータが含まれます。

カタログ プロパティ

名前、開始日、終了日、通貨、計量単位、商品の一意の ID など、カタログを表す基本的なプロパティ。カタログ プロパティの管理には、カタログ エディタ モジュールを使います。

カテゴリ

商品またはサブカテゴリのコンテナ。各カテゴリは、カテゴリ定義の個々のインスタンスです。たとえば、Description と Manager というプロパティを含む "Department" カテゴリ定義に基づいたカテゴリには、Hardware という名前と、Power Tools (Description) および Frank Lee (Manager) というプロパティが設定されます。カテゴリの管理には、カタログ エディタ モジュールを使います。

カテゴリ (Commerce Server ビジネス デスク)

ナビゲーション ペイン内で使われる組織構造。関連性のある Commerce Server ビジネス デスク モジュールをグループ化できます。

カテゴリ階層

1 つのカテゴリが親に指定され、1 つ以上のカテゴリが子になる、カテゴリ内の階層。1 つのカテゴリが、同じカテゴリの親と子 (子孫) の両方になることはできません。

カテゴリ定義

特定の種類のカテゴリで利用できるプロパティ。1 つのカテゴリ定義は複数のカテゴリで使用できます。たとえば、Department カテゴリ定義に Description と Manager というプロパティが含まれる場合があります。カテゴリ定義の管理には、カタログ定義デザイナ モジュールを使います。

カテゴリの関連付け

1 つの商品を他の商品またはカテゴリと関連付ける方法。カテゴリの関連付けには、名前、説明、および対象があります。カテゴリは、他のカテゴリに関連付けることができます (Jeans カテゴリから Belts カテゴリへの関連付けなど)。また、カテゴリを個々の商品に関連付けることもできます (カテゴリ内の目玉商品への関連付けなど)。カテゴリには、他のカテゴリや商品との複数の関連付けを設定できます。

カテゴリ プロパティ

カテゴリ定義を形成するプロパティ。たとえば、Department カテゴリ定義は、Description と Manager というプロパティを持ちます。カテゴリ プロパティの管理には、カタログ定義デザイナ モジュールを使います。

加入

ユーザーがメーリング リストに登録するために行う操作。

可用性

コンピュータ、サーバー クラスタ、またはシステムとそのプログラムのフォールト トレランスの尺度。可用性の高いコンピュータやシステムとは、許容できるサービス レベルで最低 99.9% の時間は動作し続けるコンピュータまたはシステムのことです。

監査

指定した種類のイベントをサーバーまたはワークステーションのセキュリティ ログに記録して、ユーザーの利用状況を追跡すること。

完成したレポート モジュール

実行中の静的レポートおよび完了したレポートを表示するための Commerce Server ビジネス デスク モジュール。

間接価格

価格カテゴリに関連付けられた価格。商品レコードの価格フィールドは無視されます。

関連項目 : 直接価格

管理者

「システム管理者」を参照してください。

管理データベース

Commerce Server の同じ (論理) インストール環境の一部として実行されている、すべてのコンピュータの構成データを格納する SQL Server データベース。Commerce Server セットアップで、このデータベースが作成されます。

関連

「クラスの関連」と「クラス メンバの関連」を参照してください。

関連セル

ユーザーが表示中の商品またはバスケットに入れた商品と、他の関連商品との関連付けを作成して、ユーザーにその他の商品を表示する宣伝活動の一種。サイトにアップセルとクロスセルの機能を追加するには、Commerce Server 2002 Software Development Kit を使います。インテリジェント クロスセルの機能を追加するには、予測リソースを使います。

関連項目 : クロスセル、インテリジェント クロスセル

キー

データ ファイルのレコードまたはレコード グループの識別子。キーは、レコード内のフィールドまたはフィールド セットの特殊なプロパティを示します。使用できるキーの種類には、2 重のキー、結合キー、主キー、および一意キーがあります。

関連項目 : クラス キー

既定の確信

購入の確率を表す値。この数値を上回る購入の確率を持つ項目だけが返されます。

既定のコンポーネント

ステージにとって重要な値が存在するかどうかを確認する Component Object Model (COM) サーバー オブジェクト。既定のコンポーネントは、通常、ステージの先頭近くに表示されます。

関連項目 : ステージ

既定のパス

1 つ以上のカテゴリのメンバになっているカテゴリまたは商品へと移動するための正確な経路。カテゴリや商品の既定のパスは、それらのプライマリ親カテゴリによって決まります。したがって、カテゴリや商品が持つプライマリ親カテゴリは 1 つだけです。カテゴリや商品の既定のパスは、Web サイトを訪問するユーザーに表示することができます。たとえば、ページの先頭に表示して、カタログの全体的な構成をユーザーに提示します。

関連項目 : プライマリ親カテゴリ

基本カタログ

仮想カタログの基になるソース カタログ。

関連項目 : カタログ、カタログ セット、仮想カタログ、具現化

基本通貨

すべてのビジネス トランザクションを記録するために使う通貨。または、銀行と取引する主要通貨。基本通貨は一般的に、請求通貨、使用通貨、記帳通貨とも呼ばれます。注文処理パイプラインでは、常に Web サイトの基本通貨を使って注文が処理されます。基本通貨は、バイヤー通貨やサプライヤ通貨とは異なる場合があります。基本通貨は、注文フォーム ヘッダーの billing_currency フィールドに格納されます。

関連項目 : バイヤー通貨、複数通貨注文、複数通貨トランザクション、サプライヤ通貨

キャッシュ

頻繁に使用されるデータ値を複製し、すばやくアクセスできるようにするメモリ サブシステム。キャッシュには、頻繁にアクセスされる RAM の場所の内容と、そのデータ項目が格納されているアドレスが格納されます。プロセッサがメモリのアドレスを参照すると、キャッシュは自分がそのアドレスを保持しているかどうかを調べます。保持している場合は、データをプロセッサに返します。保持していない場合は、通常のメモリ アクセスが発生します。

キャッシュされたメモリはメインの RAM メモリより高速なので、マイクロプロセッサの速度に比べて RAM のアクセスが遅いときにはキャッシュが役立ちます。Commerce Server ビジネス デスクを使うと、サイトのプロファイル データ、カタログ データ、トランザクション データ、およびキャンペーン データが格納されているキャッシュを空にできます。次に Commerce Server がこのデータに対する要求を受け取ると、更新されたデータがキャッシュに読み込まれます。

関連項目 : キャンペーンの発行モジュール、プロファイルの発行モジュール、注文コードの発行モジュール

キャッシュ ライタ

CacheManager オブジェクトがキャッシュの Dictionary オブジェクトから利用状況データを書き込むときに使うコンポーネント。このコンポーネントはパイプライン コンポーネントとして実装されますが、パイプラインのコンテキストでは実行されません。

キャッシュ ローダー

CacheManager オブジェクトがキャッシュの Dictionary オブジェクトにデータを読み込むときに使用するコンポーネント。このコンポーネントはパイプライン コンポーネントとして実装されますが、パイプラインのコンテキストでは実行されません。

キャパシティ プラン

予想されるサイトのトラフィックをサポートし、サイトのパフォーマンス目標を達成するために、必要なアプリケーション、ハードウェア、およびネットワークの計画を立てること。

キャンペーン

さまざまなコミュニケーション手段 (広告やダイレクト メールなど) を使って、市場シェアの拡大、新商品の発売、顧客の維持など、特定の目的を達成するマーケティング プログラム。

キャンペーン項目

キャンペーンの特定の目的を実現するために使用されるコミュニケーション手段。Commerce Server では、広告、ダイレクト メール、割引の 3 種類のキャンペーン項目を作成できます。サードパーティの製品を使うと、他の種類のキャンペーン項目も作成できます。

キャンペーン項目 ID

キャンペーン項目に対してコンピュータが生成する ID 番号。

キャンペーン式モジュール

式の作成と管理を行うための Commerce Server ビジネス デスク モジュール。

関連項目 : パーソナライズ

キャンペーンの発行モジュール

新しいキャンペーン情報を使ってサイトを更新するための Commerce Server ビジネス デスク モジュール。キャンペーンの発行モジュールは、サイトのキャンペーン情報が格納されているキャッシュを空にします。次回 Commerce Server がキャンペーン データに対する要求を受け取ると、更新されたデータがキャッシュに読み込まれます。

関連項目 : キャッシュ

キャンペーン マネージャ モジュール

顧客のアカウントを作成し、その後で広告キャンペーン、割引キャンペーン、ダイレクト メール キャンペーンの作成と管理を行うための Commerce Server ビジネス デスク モジュール。

関連項目 : アフィニティ リスト

キャンペーン目標設定

特定の時間内に配信する広告の数を決めること。目標は、クリック数や販売金額など、任意のイベント単位で設定できます。Commerce Server では、広告の目標設定はサポートされていますが、割引の目標設定はサポートされていません。Commerce Server ビジネス デスクを使うと、キャンペーン レベルまたは広告レベルでキャンペーンの目標を設定できます。

たとえば、キャンペーン レベルで目標を設定していて、顧客から 25,000 回の広告要求の注文を受けたとします。キャンペーン項目レベルでは、一方の広告が広告要求の 60% 表示されるように設定し、もう一方の広告が広告要求の 40% 表示されるように設定します。たとえば、顧客が広告要求の数を 40,000 回に変更した場合でも、広告が表示される回数を手動で変更する必要はありません。表示回数は 60% と 40% のままになります。キャンペーン項目レベルで目標を設定する場合は、広告要求の目標を広告ごとに設定します。

関連項目 : 広告要求、有料広告、目標の達成率

キャンペーン リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを使って管理します。キャンペーン データが格納されているデータベースへの接続文字列を構成するときに使います。

キューブ

Commerce Server データ ウェアハウスのデータのサブセットを含む構造体。共有のディメンションとメジャーによって定義されます。Commerce Server のキューブはアンパッケージ処理時に作成され、レポート準備 DTS タスクの実行時にデータが取り込まれて、データ取得用に処理されます。キューブにデータを格納すると、データ取得の速度が向上します。

関連項目 : オンライン分析処理 (OLAP)

業種コード

自動車、航空機、飲料など、特定の業種に対応する識別子。業種コードは参照テーブル モジュールを使って作成します。業種コードを使うと広告の関連業種を識別できるため、同じ業種で競合する広告主の広告が同じページに表示されるのを防ぐことができます。業種コードは、顧客レベルでキャンペーンに関連付けられるため、その顧客のすべての広告キャンペーンに業種コードが既定で使われます。業種コードを顧客レベルで関連付けない場合は、広告レベルで関連付ける必要があります。

行ディメンション

動的レポートの中にある、レポート行のデータを定義するディメンション。列ディメンションや行ディメンションにするディメンションは、任意に選択できます。

関連項目 : ディメンション、フィルタ ディメンション、列ディメンション

共用型ホスティング

アプリケーション サービス プロバイダ (ASP) が提供するサービスの 1 種。ASP 側の 1 台の Web サーバーが、複数の Web サイトのホストとして動作します。Web サイトは、独自のインターネット ドメイン名を持っていても、持っていなくてもかまいません。共用型ホスティングは、企業が低コストで Web アプリケーションの作成と管理を実現できる方法の 1 つです。

クエリ

データの取得、変更、または削除を行うための特定の要求。

具現化

仮想カタログのスナップショットを基本カタログへと変換すること。具現化した仮想カタログは、検索や参照を行ったときのパフォーマンスは基本カタログと完全に同等ですが、編集時には仮想カタログとして扱われます。パフォーマンスを良くするために、すべての集合仮想カタログを具現化することをお勧めします。仮想カタログを具現化するには、システム管理者が materialize.vbs スクリプトを実行する方法があります。このスクリプトは、サイトのパブリケーション処理の一環として実行することができます。または、システム管理者が商品カタログ システムの API を使って、仮想カタログの CatalogFlags 属性を 1 に設定する方法もあります。このように設定した仮想カタログは、再構築のたびに具現化されます。

関連項目 : 仮想カタログ、基本カタログ、集合カタログ

国/地域コード

商品の送付先や取引先の国/地域を識別するために、Commerce Server ビジネス デスクで使われる 3 文字のデータ コード。ビジネス デスクの税率モジュールを使うには、国/地域コードを設定する必要があります。

クライアント

クライアントとサーバーの関係で、要求を行う側のプログラムまたはユーザー。たとえば、Commerce Server ビジネス デスクを使用するユーザーは、ビジネス デスク サーバーにクライアントとして情報を要求します。

クラス

関連するデータ メンバの論理コレクション。クラスは通常、物理オブジェクト (ユーザー、商品) または概念上のエンティティ (訪問、Web のヒット) をモデル化します。クラスのインスタンスは、Commerce Server データ ウェアハウスにインポートされるユーザー データを表します。クラスは、基になるリレーショナル データベースのテーブル定義にマップされます。

関連項目 : データ メンバ

クラス キー

クラスのインスタンスを一意に識別する値を持つ、クラスのデータ メンバのサブセット。

関連項目 : キー

クラス キー メンバ

複数の値を持つクラス キーのメンバの 1 つ。

クラスタ

Commerce Server の予測機能で、特定のプロファイル特性を共有するユーザーのグループ。クラスタは予測リソースによって識別され、セグメント ビューア モジュールを使って表示できます。

関連項目 : Web ファーム

クラスの関連

2 つのクラス間の親子関係による結びつきです。関連によって、各クラスのインスタンスの数が定義されます。Commerce Server データ ウェアハウスでは、ほぼすべてのクラスの関連が多対一です。つまり、親に子がない場合も、1 つ以上の子がある場合もあります。

クラス メタデータ

Commerce Server データ ウェアハウス論理スキーマのクラスを作成するために指定する属性を表す概念モデル。

クラス メンバの関連

クラスの関連における 2 つのクラスの特定データ メンバ間の関連。

クリエイティブ

広告スケジュールに配置されるコンテンツ。広告業界では、クリエイティブがコンテンツの所有権を示します。実行中の広告を所有している会社の承認なしでは、広告のどの部分も変更できません。

クリックした割合

広告がクリックされた回数を、広告が表示された回数で除算したもの。キャンペーン項目の要約レポートに表示されます。たとえば、ある広告がサイトに 100 回表示され、ユーザーによって 25 回クリックされたとします。キャンペーン項目の要約レポートを実行すると、クリックした割合は 25% と報告されます。

関連項目 : 広告クリック

クリック時のリンク先

ユーザーが Web サイトのコンテンツをクリックするか、またはダイレクト メール メッセージの内容をクリックすると表示される URL。

クリックの頻度

クリックの回数をクリックの達成数で割った値。

関連項目 : 達成数

グループ

折りたたみ可能な見出しを含む Commerce Server ビジネス デスク画面内の領域。ユーザーは必要に応じて、その領域の情報を表示したり、非表示にすることができます。セクションとも呼ばれます。

グループ化されたレポート

同時に作成され、個々のレポートにそれぞれ固有のデータが保持されている一連のレポート。各レポートのデータ ビューは、1 つ以上のディメンションに基づいて生成されます。たとえば、ユーザー ディメンションのビューを定義した "ユーザーごとの売上高" レポートを実行すると、各ユーザーの売り上げに関するレポートが作成されます。ユーザー ディメンションと年ディメンションのビューを定義した "ユーザーごとの年間売上高" レポートを実行すると、売り上げのあった年それぞれについて、各ユーザーの年間売り上げレポートが作成されます。グループ化されたレポートは、レポートに提示されるデータを限定して、特定のユーザーについてのデータ ビューを作成する場合に使います。たとえば、サイトに複数の広告主が出稿している場合は、広告キャンペーンの結果をすべての広告主に通知するのではなく、広告を出稿したスポンサーにだけ通知することが望まれます。グループ化されたレポートはこのような場合に使います。

関連項目 : ディメンション、メジャー

クローズド ビジット

ログ ファイルへのデータ収集が停止する前に完了した訪問。

関連項目 : オープン ビジット、ログ ファイル、訪問

グローバル一意識別子 (GUID)

グローバルに一意であることが保証されている 128 ビットの数字。以前から、GUID は Guidgen.exe コマンド ライン プログラムを使って作成されてきました。Guidgen.exe プログラムは、何度実行しても、何台のコンピュータで実行しても、同じ数字を 2 度生成することは決してありません。Commerce Server では、GenID オブジェクトを使って GUID を生成できます。

グローバル リソース

すべてのサイトで利用できるリソース。グローバル リソースは、Commerce Server マネージャのグローバル レベル、およびグローバル リソースを使用するサイトのサイト レベルで、オブジェクトを公開します。グローバル リソースのプロパティは、グローバル レベルで構成されます。

Commerce Server に組み込まれているグローバル リソースには、ダイレクト メーラーと予測 (これらは Windows 2000 のサービスでもあります)、CS 認証、ビジネス データ サービス、およびデータ ウェアハウスがあります。Commerce Server で機能する独自のグローバル リソースをサード パーティが開発することもできます。グローバル リソースの管理には、Commerce Server マネージャを使います。

関連項目 : リソース

グローバル リソース ポインタ

サイト レベルで公開されるリソース オブジェクトで、そのサイトで使用されているグローバル リソースを参照する働きをします。このようなグローバル リソースは、他のサイトから参照および使用されることもあります。

クロスセル

ユーザーが既にバスケットに入れた商品に関連した商品をユーザーに勧める、特定の種類の関連セル。サイトにクロスセル機能を追加するには、Commerce Server 2002 Software Development Kit (SDK) を使います。

関連項目 : 関連セル

掲載単位

「広告要求」を参照してください。

継承

新しく作成されたオブジェクトが、既存のオブジェクトのプロパティを自動的に受け継ぐ機能。たとえば、新しく作成された子ディレクトリは、親ディレクトリのアクセス制御設定を継承できます。

ケース

ユーザー プロファイル データやトランザクション履歴など、特定のユーザーに関してわかっているすべての情報。個々のケースは、Commerce Server データ ウェアハウスのデータを基に作成されます。ケースは Commerce Server が予測モデルを構築する際の情報源になります。

関連項目 : 測定精度サンプル値、サンプル サイズ、低密度テーブル、CaseColumn、高密度テーブル

ケース ID

ユーザーごとに一意の ID。

ケース エクストラクタ

Commerce Server データ ウェアハウスからデータを読み込んで、モデル構築用のケースを生成するコンポーネント。

結合キー

1 つのテーブルまたはクエリのフィールドと、他のテーブルまたはクエリの同じデータ型のフィールドとの関連付け。Commerce Server では、結合キーを使って、プロファイル リソースが使う 1 つのデータ ストアのデータを、やはりプロファイル リソースが使う他のデータ ストアのデータに関連付けます。たとえば、User Name プロパティに存在する結合キーが、Active Directory のデータに保存された User Name フィールドを、SQL Server テーブルのデータに保存された User Name フィールドに関連付ける場合などがあります。Commerce Server では、結合キーを使うことによって、商品カタログのデータを Commerce Server の外部にあるデータ ストアのデータと関連付けることができます。たとえば、CatalogManager.SetJoinTable メソッドを使って外部データをカタログ検索の対象にしたり、外部の在庫管理システムにあるテーブルへの結合キーを作成して、在庫のある商品だけを検索の対象にしたりできます。

関連項目 : 2 重のキー

権限

ユーザーが Web ページやデータベースなどのリソースにアクセスするための適切なアクセス許可を持っているかどうか、またはバックアップなどの作業を実行するための適切な権限を持っているかどうかを確認する処理。権限は、通常、システム管理者かサイト開発者が設定し、コンピュータによってチェックおよび許可されます。ユーザーは、コード番号やパスワードなど、コンピュータが内部レコードと照合する特定の種類の識別情報を提示します。

検索ペイン

Commerce Server ビジネス デスクで、一覧ページのモジュール コンテンツ ペインの上部にある領域。検索ペインには検索条件を入力します。入力した条件は検索処理で使われます。ほとんどの場合、モジュール コンテンツ ペインの下部は ListSheet HTC で構成され、ここに検索処理の結果が表示されます。

公開キー

公開キー アルゴリズムで利用される 1 組の暗号キーのうち、外部に公開される方のキー。通常は、データを暗号化するときに使います。暗号化したデータは、対応する秘密キーを使って復号化できます。

関連項目 : 秘密キー

広告

表示頻度 (NOD) と呼ばれる配信用の特定の計算式に基づいて Commerce Server が配信するコンテンツ。

広告 ID

広告に対してコンピュータが生成する ID 番号。この番号は、キャンペーン マネージャ モジュールを使って Commerce Server に追加されます。

広告キャンペーン目標設定

「キャンペーン目標設定」を参照してください。

広告クリック

Web ページに表示される、広告またはリンクが設定された要素をユーザーがクリックする操作。この操作はサーバーに記録され、クリックによって新しいページやコンテンツが表示されます。

関連項目 : 広告クリック率、クリックした割合

広告クリック率

広告クリックに結び付いた広告要求の割合。

関連項目 : 広告クリック、広告要求

広告対象

広告の対象になる状況またはユーザー グループ。式で表します。

広告要求

Web サイトの訪問者に広告の要素を配信する機会。要求は、特定のページに対する要求や特定の品目の購入など、サイト上のイベントによって発生します。要求を満たすために使用される広告は、表示頻度 (NOD) によって決定されます。キャンペーン マネージャ モジュールを使ってキャンペーンまたはキャンペーン項目を作成するときに、Commerce Server で記録するそのキャンペーンやキャンペーン項目に対する広告要求数またはクリック数を入力できます。

関連項目 : 広告クリック率、キャンペーン目標設定、表示頻度 (NOD)、有料広告、目標の達成率

更新

フルテキスト インデックスを再構築すること。Commerce Server ビジネス デスクのカタログ エディタ モジュールでのみ使われます。

構成セクション ハンドラ

IConfigurationSectionHandler インターフェイスを実装しているクラス。Commerce Server .NET に基づいたアプリケーションの設定を構成するための情報が保持されます。この情報は、Commerce Server .NET ベースのアプリケーションを実行したときに読み取られます。

購読

ユーザーが、コンテンツを受信するために自分の電子メール アドレスをリスト マネージャのリストに追加する処理。または、コンテンツを取得したりサービスやサイトにアクセスするために、登録情報を入力する処理。

高密度テーブル

情報を高い密度で保持しているテーブル。たとえば、1 行に 1 ユーザーの情報を保持し、そのユーザーの職業、年齢、性別などについてのプロパティ列を持つテーブルがこれにあたります。高密度テーブルを基にしてケースを作成すると、高密度テーブルの列は、PredictorDataTables テーブルでは CaseColumn、PivotColumn、または AggregateColumn のいずれかになります。モデル構成で参照できる高密度テーブルの数は一度に 1 つだけです。

関連項目 : AggregateColumn、ケース、CaseColumn、PivotColumn、低密度テーブル

コード値

国/地域、都道府県/州、注文状況など、プロパティに関する文字情報を表すために使用される略語。たとえば、WA はワシントン州のコード値です。

子カテゴリ

商品の集合を階層にまとめるためにカタログで使用されるエンティティ。子カテゴリは、親カテゴリに従属します。たとえば、Music は親カテゴリで、Rock、Jazz、および Classical は子カテゴリです。親カテゴリと子カテゴリを作成し、サイトで表示される商品を整理します。

関連項目 : 先祖カテゴリ、子孫カテゴリ、親カテゴリ、ルート カテゴリ

顧客

キャンペーンの実施対象になる企業または個人。顧客は、代理店、広告主、または自社のビジネスの場合もあります。

固定レート

静的な変換レート。変換レートがあらかじめ設定されているので、関係者 (買い物客、Web サイト、またはサプライヤ) は支払う額や受け取る額を正確に知ることができます。

関連項目 : 変換レート、変換時刻、変換の種類、変動レート

コンソール ツリー

Microsoft 管理コンソール (MMC) インターフェイスの左側のウィンドウ。コンソールに含まれている項目が表示されます。特に指定しない限り、コンソール ウィンドウの左側に表示されますが、非表示にすることもできます。コンソール ツリーの項目とその階層構造によって、コンソールの機能が決まります。

コンテンツ サイズ

コンテンツの高さと幅をピクセル単位で表した値。新しいコンテンツ サイズを定義する場合は、参照テーブル モジュールを使います。コンテンツ サイズを作成または変更すると、更新した情報がキャンペーン マネージャ モジュールの [コンテンツ サイズ] ボックスの一覧に表示されます。

コンテンツ選択スコア

コンテンツ選択フレームワーク (CSF) 内で、広告や割引などの対象化されたコンテンツを選択する際の基準になる数値。Initial Scoring ステージで、各項目に初期スコアが割り当てられます。値が設定されていない場合、初期スコアは既定値の 1 になります。このスコアは、項目が対象化の条件に一致する度合いに応じて調整されます。SelectWinners コンポーネントが、最も高いスコアに調整された項目を選択し、Web サイトのユーザーに表示します。スコアがゼロ (0) の項目は選択されません。

コンテンツ選択パイプライン

コンテンツの収集、フィルタ処理、スコア計算、および選択に必要となるステージとパイプライン コンポーネントとをつなぐためのインフラストラクチャ。

関連項目 : パイプライン、パイプライン コンポーネント、ステージ

コンテンツ選択フレームワーク (CSF)

対象化したコンテンツの配信のための開発フレームワーク。コンテンツ選択フレームワーク (CSF) には、ビジネス固有のメッセージング システムを構築するためのコンポーネントが備わっています。CSF は、コンテンツをユーザーに対象化する決定を迅速に下すためのプラットフォームを提供します。

コンテンツ ペイン

Commerce Server ビジネス デスクで、操作ページが表示されるウィンドウ。

コンテンツ レプリケーション

Web サイトのコンテンツを 1 つのサーバー ノードから他のサーバー ノードにコピーする方法。ファイルを手動でコピーすることも、レプリケーション ソフトウェアを使ってコンテンツを自動的にコピーすることもできます。レプリケーションは、フォールト トレランスを実現する上でクラスタリングに必須の機能です。

コンマ区切り値ファイル (.csv)

列またはデータベース フィールドの区切り文字にコンマを使用するテキスト ファイル。大部分のデータベースやその他のプログラムでは CSV ファイルをエクスポートおよびインポートできるため、1 つのプログラムで作成したデータベース ファイルを他のプログラムで利用できます。

コンマ区切りファイル

「コンマ区切り値ファイル (CSV)」を参照してください。

さ

サーバー クラスタ

リソースと要求負荷を分担するために接続された、2 台以上のコンピュータ。サーバー クラスタの各メンバをノードと呼びます。サーバー クラスタのノードは、個別に記憶デバイスを持つことも、共通デバイスを共有することもできます。サーバー クラスタは、通常、負荷分散、フォールト トレランス、およびフェールオーバーのサポートを行います。

関連項目 : Web ファーム

サーバー ファーム

「サーバー クラスタ」と「Web ファーム」を参照してください。

サービス

特定のシステム機能を実行して、他のプログラム、特に低レベルの (ハードウェアに近い) プログラムをサポートするプログラム、ルーチン、またはプロセス。サービスをネットワーク経由で提供する場合は、サービスを Active Directory で公開して、サービス中心の管理と利用を促進できます。各サービスは、共通の管理機能を備えています。たとえば、サービスは開始、停止、一時停止、または再開することができます。サービスの開始パラメータは変更できます。また、コマンド ライン ユーティリティとスクリプトを使ってサービスを管理できます。Commerce Server のリソースのうち、サービスとしても動作するものには、ダイレクト メーラー、予測、およびリスト マネージャがあります。

関連項目 : リソース

サイト

Commerce Server マネージャで、Commerce Server アプリケーションとサイト レベルのリソース用のコンテナ。たとえば、Retail サイトには、B2C Web サイトと B2C Commerce Server ビジネス デスクの 2 つのアプリケーションが含まれ、どちらも同じサイト レベルのリソースを共有します。

サイト開発者

Web サイト用の HTML/ASP コードを記述し、ビジネスに合わせてサイトをカスタマイズする人。サイト開発者は、レポートをカスタマイズしたり、ビジネス デスク モジュールの追加または変更を行い、独自のビジネス ニーズに合わせて機能を拡張することもあります。

サイト構成ストア

基本通貨、代替通貨、SMTP サーバー名など、サイトの構成設定が格納されている管理データベース。

サイトの準備

新しいサイトをホスト環境へと配置する過程。サイトの準備に含まれる作業としては、アプリケーションのアンパック、サイトが使用するデータベースの作成、ビジネス マネージャがサイトを管理できるようにするための適切なアクセス許可の割り当てなどがあります。

サイト パッケージャ

「Commerce Server サイト パッケージャ」を参照してください。

サイト ボキャブラリ

Site Server 3.0 で、ユーザーとコンテンツの属性用に階層型に配置された選択値。Commerce Server 2002 では、サイト ボキャブラリがサイト用語になります。

関連項目 : サイト用語

サイト用語

サイトに関係する特定の値のリスト。サイト用語を使って、用語と呼ばれるこの値のリストを、プロパティのデータ型としてプロファイル プロパティに割り当てます。たとえば、"性別" という名前のサイト用語を作成し、"女性" や "男性" などの選択値を定義できます。"性別" という名前のプロファイル プロパティを作成し、性別のサイト用語を型参照として割り当てると、ユーザーは Web サイトの性別のプロパティに対応して表示されるドロップダウン リストから、[女性] または [男性] を選択できるようになります。ユーザーは、プロパティの選択値から 1 つの値だけを選択できます。

サイト用語をプロファイル プロパティに割り当てて、Commerce Server 全体で使用できる共通の用語を設定することで、たとえば広告の内容をユーザーに合わせて対象化できます。

関連項目 : サイト用語エディタ モジュール、サイト ボキャブラリ

サイト用語エディタ モジュール

サイト用語の追加と編集を行うための Commerce Server ビジネス デスク モジュール。

関連項目 : サイト用語

サイト リソース

特定のサイトで利用できるリソース。サイトで使用するリソースはすべて、Commerce Server マネージャのサイト レベルでオブジェクトを公開します。たとえば、グローバル リソースはサイト リソースになることもできます。その場合、サイトで使用するグローバル リソースは、サイト レベルでオブジェクトを公開します。オブジェクトが公開する唯一のプロパティは、グローバル レベルの関連するグローバル リソースへのポインタです。

サイト リソースは、すべてのプロパティをサイト レベルで持つことも、すべてのプロパティをグローバル レベルで持つこともできますが、両方で持つことはできません。サイト リソースのプロパティはサイト レベルで設定します。Commerce Server には、一連のサイト リソースが含まれています。また、サード パーティがカスタム サイト リソースを開発することもできます。サイト リソースの管理には、Commerce Server マネージャを使います。

関連項目 : リソース

サプライヤ

B2B サイトの取引先。サプライヤをサイトに追加するには、Microsoft BizTalk Server を使います。製造元とも呼ばれます。

サプライヤ通貨

Web サイトに物品を供給する企業の基本通貨。サプライヤ通貨は、バイヤー通貨や基本通貨とは異なる場合があります。supplier_currency フィールドは、注文フォームの品目に格納されます。

関連項目 : バイヤー通貨、複数通貨注文、基本通貨、複数通貨トランザクション

参照整合性

データベース内にある外部キーの値が、すべて有効である状態。外部キーの値が有効とされるのは、NULL である場合か、その外部キーが参照する主キー列または一意キー列にある既存のキー値である場合です。

関連項目 : 主キー、一意キー、外部キー

参照テーブル モジュール

コンテンツ サイズ、業種コード、およびページ グループの作成と管理を行うための Commerce Server ビジネス デスク モジュール。

サンプル サイズ

分析モデルの構築に使われるケースの数。

関連項目 : ケース、測定精度サンプル値

式

プロファイルに対して評価され、コンテンツを配信するか、またはその他のアクションを実行するかを決定する条件。たとえば、"ユーザー訪問回数 > 100" (user.totalvisit > 100) のように指定します。この式の評価結果が "True" であれば、特定のコンテンツがユーザーに表示されます。式の作成にはキャンペーン式モジュールを使用し、式を評価した後で実行するアクションに式を結合します。

関連項目 : 式ビルダ

式ストア

式の情報を格納する Commerce Server データベースのテーブル。

関連項目 : ストア

式ビルダ

式を作成するためのツール。式ビルダには、よく使われる式のリストが用意されています。この中から式を選択して、対象とするプロパティを定義できます。式ビルダは、キャンペーン式モジュールから新しい対象式またはカタログ式を作成するときに使います。

関連項目 : 式

識別

サポートされている識別スキーマにオブジェクトをマッピングするか、または一意のユーザー ID (UID) を取得する処理。通常は、オペレーティング システム、IIS、または Commerce Server によってこの識別が提供されます。

自社広告

有料広告がその表示頻度のスケジュールに先行して配信されている場合に配信される広告。たとえば、顧客が 1,000 回の有料広告を 4 か月かけて配信する注文をしているにもかかわらず、最初の 2 か月で 850 回の広告が配信されたとします。この場合、表示頻度のスケジュールを調整するために、自社広告を配信します。また、要求に適した有料広告がない場合にも、自社広告が配信されます。

たとえば、すべての有料広告が、要求される対象に適さない場合や、除外に該当している場合は、自社広告が配信されます。自社広告は、売れ残りの在庫を割引価格で販売するためにも使います。また、サイトの広告が特定の配信目標を持たないものの、指定したウエイトで広告を実行する場合にも使います。

関連項目 : ウエイト

システム管理者

Commerce Server マネージャの主要なユーザー。システム管理者は、Commerce Server のインストール、構成、および管理を行う責任を負います。

子孫カテゴリ

1 つ以上の親子関係を通じて、別のカテゴリに従属するカテゴリ。子カテゴリは子孫カテゴリであり、子カテゴリの子カテゴリも子孫カテゴリです。

関連項目 : 先祖カテゴリ、派生商品、ルート カテゴリ、親カテゴリ、子カテゴリ

実売価格

正確な金額を指定する特別価格。実売価格は、基本カタログで指定された価格に優先します。

支払い

Web サイトでの購入を完了させる処理。たとえば、顧客が Web サイトで買い物をするときは、いくつかの品目を選択し、それらを買い物バスケットに保存します。買い物が終わると、顧客は支払いリンクまたはグラフィックで表されたボタンをクリックして、名前、請求先、支払いの種類、および送料の情報を入力するオンライン フォームに移動します。

集計

オンライン分析処理 (OLAP) キューブ用にあらかじめ計算されたデータを含むテーブルまたは構造体。集計では、マルチディメンション データベースの高速で効率的なクエリ処理がサポートされます。

集合カタログ

2 つ以上のカタログからコンテンツを表示する仮想カタログ。たとえば、複数のサプライヤからのコンテンツを販売する場合で、各サプライヤから 1 つまたは複数のカタログが送信される場合は、コンテンツを 1 つの集合カタログに結合できます。集合カタログは、サイトを訪問するユーザーには 1 つのカタログとして表示されます。カタログ セットは、どのユーザーまたは組織がカタログ セットを表示可能かを指定します。この点で、集合カタログはカタログ セットとは異なります。集合カタログは、すべてのユーザーが利用できます。パフォーマンスを良くするために、すべての集合仮想カタログを具現化することをお勧めします。

関連項目 : 具現化、仮想カタログ、カタログ セット

主キー

テーブル内の各レコードを一意に識別する値を持つ 1 つ以上のフィールド (列など)。主キーに Null 値は指定できず、常に一意のインデックスを指定する必要があります。主キーは、テーブルを他のテーブルの外部キーに関連付けるときに使います。

関連項目 : 一意キー、2 重のキー、参照整合性、外部キー

出力プロパティ値

分析モデルによって予測されるプロパティの割合。たとえば、デモグラフィックス プロパティを使う分析モデルを利用して、購入される商品を予測するとします。このとき、入力プロパティ値を 0.5 に設定すると、重要度が高いものから順に、50% の購入商品だけが予測されます。

関連項目 : 入力プロパティ値

条件指定検索

カテゴリ、商品、プロパティなどのパラメータ制約を指定して、徐々に対象を絞り込みながら商品を検索できる検索方法。条件指定検索を実行する場合は、検索条件に一致する商品の数を徐々に減らしていきながら、プロパティを検索します。条件指定検索は、すべての商品からプロパティを検索せず、その代わりに商品のグループを特定する必要がある場合に役立ちます。

条件指定検索可能

プロパティ定義の "はい/いいえ" フラグ。条件指定検索を通じてそのプロパティを検索できるようにするかどうかを指定します。

商品

カタログ内で販売される品目。各商品は、商品定義の個々のインスタンスです。たとえば、"Author"、"Title"、および "List Price" というプロパティを含む Book 商品定義に基づく商品には、"Bill Gates"、"The Road Ahead"、"1500 円" などのプロパティが設定されます。商品の管理には、ビジネス デスクのカタログ エディタ モジュールを使います。

商品 ID

在庫保管単位 (SKU) など、カタログ内の商品を一意に識別する必須プロパティ。商品 ID を商品定義から削除することはできません。

商品価格

特定の商品について、特定のユーザーに請求する代金を決めること。

商品カタログ リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。商品カタログ リソースは、カタログ データが格納されているデータベースへの接続文字列を構成するときに使います。

商品グループ

商品バリエーションを持つ商品。たとえば、"Women's Thermal Shirts" という商品グループには、red shirt、blue shirt、green shirt などの商品バリエーションが含まれます。商品グループには、商品名など、常に一意の識別子があります。

商品定義

特定の種類の商品で利用できるプロパティ。各商品は、商品定義に関連付けられます。たとえば、"書籍" プロファイル定義には、"著者名"、"書名"、"価格" などのプロパティを定義します。商品定義は、在庫保管単位 (SKU) などの商品 ID を 1 つ持つ必要があります。また、常に List Price プロパティを持ちます。商品定義の管理には、ビジネス デスクのカタログ定義デザイナ モジュールを使います。

商品の関連付け

カタログ内の 1 つの商品を他の商品またはカテゴリと関連付ける方法。たとえば、プリンタを、他のカテゴリにあるプリンタ リボンやインク カートリッジと関連付けることができます。商品の関連付けには、関連付けの種類を示す名前 ("アクセサリ" など) があります。また、関連付ける側の商品またはカテゴリと、関連付けられる側の商品またはカテゴリがあります。商品の関連付けの管理には、ビジネス デスクのカタログ定義デザイナ モジュールを使います。

商品バリエーション

関連性のあるバリエーションでグループ化され、まとまって 1 つの商品を形成する特定の項目。バリエーションでは、通常、互いに 1 つ以上のプロパティが異なります。たとえば、サイズが M、色がグリーン、在庫保管単位 (SKU) が 14678 のシャツは、Shirt 商品の 1 つの商品バリエーションです。この場合、サイズ、色、および SKU がまとまって 1 つの商品バリエーションを形成します。商品バリエーションには、SKU などの一意の識別子と価格が必ず含まれます。各商品バリエーションは、同じ商品定義に基づいています。

商品バリエーション プロパティ

商品バリエーション間で異なるプロパティ。たとえば、サイズが M で色がグリーンのシャツの商品バリエーションには、サイズと色の 2 つの商品バリエーション プロパティがあります。

商品プロパティ

商品定義を形成するプロパティ。たとえば、"書籍" プロファイル定義には、"著者名"、"書名"、"価格" などの商品プロパティを定義します。商品プロパティの管理には、ビジネス デスクのカタログ定義デザイナ モジュールを使います。

シングルトン方式

1 つのリソースのインスタンスを 1 つしか作成しない設計方式。

関連項目 : 複数インスタンス方式

信頼区間

予測した値が特定の範囲内に収まる確率を示す数字。

信頼性

障害が発生する間隔の尺度 (平均故障時間)。この場合の障害は、アプリケーション、コンピュータ システム、またはネットワーク システムに対する満足なサービスを受けられなくなる状態と定義されます。これに対して可用性には、信頼性に加えて、障害の発生 (または定期点検やアップグレードによる停止) からシステムを通常の運用状態に戻すのに必要な時間も含まれます。Commerce Server のインストールを計画する際には、必要なレベルの信頼性が得られるように、ハードウェア、ネットワーク、および運用手順を計画します。

推奨スコア

クロスセル用の商品の推奨に使用された分析モデルの品質を測定する値。このスコアで、モデルから返されたランク付き推奨リストの品質を測定します。

関連項目 : スコア

垂直方向拡張

サーバー クラスタ内のサーバーの物理的な設置面積と台数は変えずに、たとえば RAM やプロセッサの追加など、ハードウェアをアップグレードして Web サイトの処理能力を向上させること。スケール アップとも呼ばれます。

関連項目 : 水平方向拡張

水平方向拡張

サーバー クラスタにサーバーを追加して、Web サイトの処理能力を向上させること。スケール アウトとも呼ばれます。

関連項目 : 垂直方向拡張

スケール アウト

「水平方向拡張」を参照してください。

スケール アップ

「垂直方向拡張」を参照してください。

スコア

分析モデルが新しいデータをどの程度正確に予測しているかの測定。これらのスコアを使って、[モデル構築のプロパティ] ダイアログ ボックスの [サンプル サイズ]、[入力属性分数]、[出力属性分数] の各パラメータに使用されている値を調整しながら、分析モデルの効果を測定します。

関連項目 : データ フィット スコア、推奨スコア、測定精度サンプル値

ステージ

コンポーネントを論理的にまとめる働きをする、パイプラインの一部分。たとえば、税ステージは、特定の注文に適用する税の計算に関連するパイプライン コンポーネントをまとめます。

関連項目 : 既定のコンポーネント、ダイレクト メーラー パイプライン、コンテンツ選択パイプライン、ステージの関連性

ステージの関連性

特定のステージ内で機能できるコンポーネントの特性。コンポーネントが関連性を持つステージを指定するには、新しいコンポーネントのクラス ID を Microsoft Windows レジストリの \HKEY_CLASSES_ROOT\CLSID\component_classid\implemented categories\stage_catid キーに書き込みます。stage_cat_id は、コンポーネントが関連性を持つステージのグローバル一意識別子 (GUID) です。component_class_id は、コンポーネント自体のクラス ID です。

関連項目 : ステージ

ステータス バー

Commerce Server ビジネス デスクのコンテンツ ペインの一番下にある、高さは低く幅の広い表示領域。ここには、読み込み中のメッセージなどの現在のタスクの状態と、操作ページの HTML コンポーネント (HTC) で使用されている重要情報が表示されます。

関連項目 : 操作ページ

ストア

データベースの特定のテーブル群。

関連項目 : 式ストア

ストライプ

データを複数の物理ディスクに分散して格納する処理。ストライプ ボリュームにあるデータは、複数のストライプ ディスクの中に交互かつ均等に (分散して) 割り当てられます。ストライプ ボリュームのパフォーマンスは、Windows 2000 で利用できるボリュームの中では最も良好ですが、ストライプ ボリュームはフォールト トレラントではありません。ストライプ ボリュームを構成するディスクが 1 台でも故障すると、そのボリュームに格納されているデータはすべて失われます。ストライプ ボリュームを作成できるのは、ダイナミック ディスク上のみです。ストライプ ボリュームは、ミラー化することも拡張することもできません。Windows NT 4.0 では、ストライプ ボリュームはストライプ セットと呼ばれています。

ストレス テスト

Commerce Server アプリケーションが、予想される数の同時ユーザーをサポートし、ピーク時のユーザー負荷を処理しながら、必要なレベルのパフォーマンスを維持できるかどうかを確認するテスト。ストレス テストは、システム管理者が定めた負荷を生成し、予想されるサイトの利用パターンを模倣するストレス ツールを使って実施します。負荷テストとも呼ばれます。

スナップイン

Microsoft 管理コンソール (MMC) でサポートされているコンソールに追加できるツールの一種。スタンドアロン スナップインは単独で追加できます。拡張スナップインは、他のスナップインの機能を拡張する場合にのみ追加できます。

関連項目 : Microsoft 管理コンソール (MMC)

スポンサー

サイトの特定のセクションまたはページで広告を実行し、他のすべての広告を除外することに対して代金を支払う広告主。これらの広告は、対象を指定した広告を含めて、他のすべての広告に優先します。多くの場合、これらの広告は、たとえば "の提供でお届けします" というメッセージ付きの切り替え広告のように、コンテンツに独占的に統合されたメッセージになっています。スポンサーは、ページと対象の両方に設定できます。この種類の広告を設定するには、ビジネス デスクの対象グループ モジュールを使って、対象式でスポンサー アクションを指定します。

静的リスト

要求に応じて直ちに作成されるユーザー レコードのリストで、リスト マネージャ データベースに格納されます (リストの作成に必要な情報だけがリスト マネージャ データベースに格納される動的リストとは、この点が異なります)。静的リストは、まれに実行するダイレクト メール キャンペーンに使ったり、受信者リストが頻繁に変更されない場合に使います。

関連項目 : 動的リスト

静的レポート

要求に応じて直ちに実行されるレポートで、データと共にデータ ウェアハウスに格納されます。レポートの作成に必要な情報だけがデータ ウェアハウスに格納される動的レポートとは、この点が異なります。また、静的レポートのデータは、ビジネス デスクのリスト マネージャ モジュールにエクスポートできます。静的レポートの実行にはレポート モジュールを使用し、表示には完了レポート モジュールを使います。

税率モジュール

Web サイトの税テーブルと税率を更新するための Commerce Server ビジネス デスク モジュール。

セキュリティ識別子 (SID)

ユーザー、グループ、およびコンピュータ アカウントを識別するための一意の番号。ネットワーク上のアカウントには、作成時に一意の SID が必ず発行されます。Windows 2000 の内部プロセスがユーザーやグループのアカウントを参照するときは、アカウントの名前ではなく、アカウントの SID を参照します。ビジネス デスク アクセス許可モジュールでは、組み込みの SID またはユーザー定義の SID によってユーザーまたはグループを参照することができます。

セグメント

セグメント ビューア モジュールで、類似のプロファイル プロパティを共有するユーザーのグループ。

セグメント化

互いに類似するケースのグループを識別する、データ マイニングの手法。セグメント化を行うには、セグメント ビューア モジュールを使います。

セグメント階層

セグメント ビューア モジュールで、子セグメント内のすべてのユーザーが親セグメントに含まれる、セグメントとセグメント グループの階層型の配置。最上位のセグメント グループは、ユーザー全体を表します。

セグメント グループ

セグメント ビューア モジュールで、類似したセグメントの集まり。

セグメント比較

セグメント ビューア モジュールで、選択したセグメントどうしの違いを示す表示。

セグメント ビューア モジュール

利用状況の動向を確認し、ユーザー間の類似性に基づいてマーケティングの決定を下すための Commerce Server ビジネス デスク モジュール。

セグメント モデル

セグメント ビューア モジュールで、セグメント化のアルゴリズムが使用するデータの要約。セグメント モデルを表示するには、Commerce Server ビジネス デスクのセグメント ビューア モジュールを使います。

セグメント要約

セグメント ビューア モジュールで、セグメントの特性を表す最も重要なプロパティを基準に並べ替えたリスト。

接続文字列

セミコロン (;) で区切られた一連の引数。データベースの場所とその接続方法を定義します。

先祖カテゴリ

1 つ以上の親子関係を通じて、ルート カテゴリにより近い位置にあるカテゴリ。親カテゴリは先祖カテゴリであり、同様に親カテゴリの親カテゴリも先祖カテゴリになります。

関連項目 : 親カテゴリ、ルート カテゴリ、子カテゴリ、子孫カテゴリ

相互認証

クライアントとサーバーの双方が、自分の身元を相手に対して証明する認証方式。相互認証は、証明書の認証プロセスを利用することで実現されます。クライアント コンピュータは証明書をサーバーに提示し、サーバーは自身の証明書をクライアント コンピュータに提示します。

操作データ

毎日、または一定期間ごとに、通常はログ ファイルに収集されるデータ。収集された操作データは、多くの場合、データ ウェアハウスにインポートされます。

操作ページ

Commerce Server ビジネス デスクのモジュールに関連付けられた機能の特定の側面を提供する、単一の ASP ファイル。たとえば、特定の商品のプロパティを定義する場合などに使います。操作ページは、通常、ナビゲーション ペインでモジュール名をクリックするか、または同じモジュールの他の操作ページにあるタスク ボタンをクリックすると表示されます。

関連項目 : ステータス バー

送付方法モジュール

送付方法を重量、数量、または小計のいずれかで定義するための Commerce Server ビジネス デスク モジュール。

属性

プロパティ、オブジェクト、または個人を表す特性。属性には、プロパティのデータ型 (数値、テキスト、10 進など)、プロパティを Commerce Server データ ウェアハウスにエクスポートするかどうか、プロパティをユーザーに対して表示するかどうか、プロパティをフルテキスト インデックス化するかどうかなどの情報を含めることができます。属性では、髪の毛の色や年齢などの値のセットを参照できます。表されるプロパティやオブジェクトの種類によっては、属性は変数、列、またはディメンションと呼ばれることもあります。

関連項目 : ノード

測定精度サンプル値

分析モデルのスコアを計算するときに使われるサンプル データの割合 (%)。

関連項目 : ケース、スコア、サンプル サイズ

組織

ビジネス文書の交換で、送付元または送付先として Commerce Server ビジネス デスク内で指定する、会社、部門、課、または会社内のその他の業務単位。文書の電子交換に関連する組織の主な特性を表す一連のプロパティは、組織プロファイルと呼ばれます。また、組織はユーザーの集まりでもあります。

関連項目 : 組織モジュール

組織プロファイル

会社、部門、課、または会社内のその他の業務単位を表す一連のプロパティ。たとえば、名前、アカウント番号、支出限度、企業割引などはすべて、1 つの組織プロファイルを構成するプロパティです。Commerce Server ビジネス デスクでは、取引関係のある会社の組織プロファイルを設定できます。

組織モジュール

組織プロファイルの追加、変更、または削除を行うための Commerce Server ビジネス デスク モジュール。

関連項目 : 組織

ソリューション サイト

特定のサイト環境に合わせてあらかじめ構成され、パッケージ ファイルにバンドルされている Commerce Server の機能。Commerce Server には、Blank ソリューション サイトが同梱されています。他にも、Retail と Supplier の 2 つのサイトを、http://go.microsoft.com/fwlink/?LinkId=6491 からダウンロードできます。各ソリューション サイトは、アンパッケージしてから、サイトのニーズに合わせてカスタマイズできるように設計されています。

ソルト

ハッシュを実行する前にユーザー データの先頭に付ける 32 ビットの乱数。ソルトを付け加えることで、ハッシュ暗号化方式のセキュリティが強化されます。

た

ダイジェスト認証

IIS の既定の Web サイトまたはアプリケーション レベルで設定できる認証方式の 1 つ。ダイジェスト認証では、平文のパスワードの代わりに、ハッシュ値がネットワーク経由で送信されます。この方式は、プロキシ サーバー間とファイアウォール間で機能する、認証されたアクセスの高度なセキュリティ形態です。

対象

どこで、いつ、だれにコンテンツを表示するかを識別する 1 つ以上の式。特定のユーザー層、Web サイトのセクション、またはその両方を対象に指定できます。

関連項目 : 対象式、対象グループ

対象アクション

対象に適合しないときよりも、対象に適合するときにより多くコンテンツを表示することを指定するオプション。対象アクションは、キャンペーン項目の対象化目標に対する配信が難しい場合 (たとえば、そのコンテンツの表示を必要とする対象が十分にいない場合) に使います。たとえば、アラスカ州に住むユーザーに 1000 の広告要求を配信することになっていて、アラスカ州にユーザーが 15 人しかいない場合は、アラスカ州以外に住むユーザーにもその広告を配信する必要があります。式の対象アクションを指定するには、ビジネス デスクの対象グループ モジュールを使います。

対象化

特定のコンテンツを特定のユーザーに配信すること。

対象グループ

コンテンツを表示する対象の集合。対象グループを作成するときは、2 つ以上の式を組み合わせます。対象グループで式を組み合わせることにより、OR ステートメントを使った式を作成し、より幅広い客層を効果的に対象化できます。

関連項目 : パーソナライズ、対象

対象グループ モジュール

対象グループを管理するための Commerce Server ビジネス デスク モジュール。

対象式

Commerce Server のキャンペーンでは、いつ、どこで、だれにコンテンツを表示するかを識別する式。たとえば、特定のプロファイル プロパティを持つユーザーをコンテンツの対象に設定できます。Web サイトの特定のセクションをコンテンツの対象にすることもできます。たとえば、スポーツのページにのみ特定の広告を表示する対象式を作成できます。

関連項目 : パーソナライズ、対象

代替通貨

サイトで 2 種類の通貨を表示するために、第 2 通貨への変換とその設定を行う通貨単位。通常、このプロパティは、EuroDisplay オブジェクトを使って基本通貨とユーロの両方の形式で価格を表示するヨーロッパのサイトで使われます。

代替テキスト

Web ページの読み込み中、グラフィックスが表示されていないとき、またはユーザーがイメージ自体をマウスでポイントしたときに、イメージの代わりに表示されるテキスト文字列。グラフィックス対応のブラウザを使っていないユーザーや、グラフィックスのダウンロードを無効にしているユーザーは、表示されないグラフィックスを代替テキスト文字列で識別できます。

ダイレクト メーラー

「Commerce Server ダイレクト メーラー」を参照してください。

ダイレクト メーラー ジョブ ファイル

パーソナライズされたメッセージ本文を配信するかどうか、メール メッセージ ヘッダーの形式、受信者リストの場所など、ダイレクト メーラー ジョブに関する情報を指定するテキスト ファイル。ダイレクト メーラー ジョブ ファイルは、スタンドアロン モードのダイレクト メーラーにのみ使われます。

ダイレクト メーラー データベース

電子メール メッセージの本文、イベント データ、およびジョブ データが格納される SQL Server データベース。Commerce Server ダイレクト メーラーをインストールすると、ダイレクト メーラー データベースもインストールされます。このデータベースは、ダイレクト メーラーと同じコンピュータにインストールされます。ダイレクト メーラーからダイレクト メーラー データベースへの接続文字列を指定するには、Commerce Server マネージャを使います。

関連項目 : Commerce Server ダイレクト メーラー

ダイレクト メーラー パイプライン

ダイレクト メールの処理に必要なステージとパイプライン コンポーネントとをつなぐためのインフラストラクチャ。

関連項目 : ダイレクト メール、パイプライン コンポーネント、パイプライン、ステージ

ダイレクト メール

特定のユーザーに向けて送信され、ダイレクト メール キャンペーンの特定の要件を満たすメール メッセージ。

関連項目 : ダイレクト メーラー パイプライン

ダイレクト メール キャンペーン

対象となるユーザー グループに電子メール メッセージの広告を配信するキャンペーン。配信したメールから高い応答率を得ることが目的となります。

タスク

Commerce Server ビジネス デスクで、操作ページから実行する操作。多くの場合、この操作によって、タスクの詳細を実行する他の操作ページが表示されます。タスクは、タスク ボタンをクリックして起動します。タスクの中には、編集や削除のように状況依存のものがあります。これらのタスクは、現在の操作ページで選択されている項目に適用されます。

タスクパッド

Commerce Server マネージャ内にあるツリーの特定のノードについて、詳細や関連するタスクを示すビュー。たとえば、[Commerce サイト] ノードのタスクパッド ビューには、サイトと、サイトに対して実行できるタスクが表示されます。タスクパッドを使って、サイトのパッケージ化、サイトの削除、サイトへのリソースの追加などのタスクを実行できます。

達成数

特定の広告をクリックするなど、特定のアクションを実行した一意のユーザーの数。

関連項目 : 頻度、クリックの頻度

脱退

ユーザーがメーリング リストへの登録を解除するために行う操作。この操作を行ったユーザーは脱退リストに追加されます。

脱退リスト

メーリング リストへの登録を解除したユーザーのリスト。

チケット

ユーザーに関する認証やその他の情報を格納するためのプロパティと値の対になった文字列。たとえば、"userID/joeuser" はプロパティ/値の対ということになります。チケット データは、cookie または URL クエリ文字列に格納できます。

関連項目 : 認証チケット、cookie、プロファイル チケット

チャネル

文書のソースを識別し、特定の処理手順を定義する一連の名前付きプロパティ。この処理は、チャネルが関連付けられているメッセージ ポートで指定された送信先に文書が配信される前に、BizTalk Server によって実行されます。

注文

ユーザーが Web サイトに送信したオンラインでの購入。注文には、通常、1 つ以上の品目、ユーザーの名前と住所、および支払いフォームが含まれます。

注文コードの発行モジュール

新しい税率や送付方法などの新しいトランザクション情報を使ってサイトを更新するための Commerce Server ビジネス デスク モジュール。注文コードの発行モジュールは、サイトでの取引の情報が格納されているキャッシュを空にします。次回 Commerce Server が注文コード データに対する要求を受け取ると、更新されたデータがキャッシュに読み込まれます。

関連項目 : キャッシュ

注文状況コード

Web サイトで使用されている注文状況の種類を識別するために、Commerce Server ビジネス デスクで使用される数値のデータ コード。たとえば、保存した注文、削除した注文、または未処理の注文を定義する注文状況コードを作成できます。

注文状況モジュール

注文状況の情報を確認し、注文ヘッダーや品目情報など、注文に関連するすべての詳細を表示するための Commerce Server ビジネス デスク モジュール。

注文処理パイプライン

複数のコンポーネントを連結し、それらを順に実行するソフトウェア インフラストラクチャ。Commerce Server には、商品、計画、購入の 3 つの注文処理パイプラインが用意されています。

注文フォーム オブジェクト

特定のユーザーの購入に関する、現在の、また場合によってはそれまでの状況データを格納するオブジェクト。

重複しないユーザー

「一意のユーザー」を参照してください。

直接価格

価格カテゴリではなく、カタログの特定の商品に関連付けられた価格。

関連項目 : 間接価格

追跡 (トレース)

デバッグ手段の 1 つ。Trace クラスを使って、実行中のアプリケーションに関する詳細を追跡し、表出させます。この方法は、Trace プロパティを実装するすべての ASP.NET クラスで利用できます。

通貨の有効桁数

Site Server 3.0 Commerce Edition で使われていた 32 ビットの整数に対して、64 ビットの整数で表され 10000 で位取りされる通貨の値。Commerce Server 2002 の表現では、$1.99 は 19900 として表されます。通貨の有効桁数が割り当てられているキーには、cy_ というプレフィックスが付きます。たとえば、_oadjust_adjustedprice というキーに通貨の有効桁数が割り当てられると、_cy_oadjust_adjustedprice になります。

通貨ロケール ID (LCID)

通貨処理のロケールを識別します。既定値はゼロ (0) で、この場合はサーバーの既定のロケール ID が使われます。

ツール バー

コンテンツ ペインが表示されているときに、Commerce Server ビジネス デスクの画面の最上部にボタンが並んで表示されている水平な列。これらのボタンを使って、そのビジネス デスクの画面から利用できる機能にアクセスします。

ディシジョン ツリー

履歴データに基づいて 1 つのイベントが次のイベントを導きだす確率を示す、予測ルールの集合をグラフィックで表したもの。属性 X のディシジョン ツリーは、確率分布 p( X | X を予測する属性) をエンコードします。

関連項目 : 依存関係ネットワーク

低密度テーブル

情報を低い密度で保持しているテーブル。たとえば、CustomerID 列、ProductID 列、および Quantity 列を保持するトランザクション履歴テーブルなどです。このテーブルでは、1 回の購入に 1 つの行が割り当てられます。1 人のユーザーが 3 つの商品を購入した場合や、1 つの商品を 3 人のユーザーが購入した場合には、それぞれの情報が 3 つの行を使って格納されます。低密度テーブルを基にしてケースを作成すると、低密度テーブルの列は、PredictorDataTables テーブルでは CaseColumn、PivotColumn、または AggregateColumn のいずれかになります。モデル構成では、複数の低密度テーブルを参照したり、CaseColumn、PivotColumn、AggregateColumn など毎回違う列を使って、1 つの低密度テーブルを複数回参照したりすることが可能です。

関連項目 : AggregateColumn、ケース、CaseColumn、高密度テーブル、PivotColumn

ディメンション

メジャーの記述的属性。通常は文字形式で離散型です。たとえば、ディメンションが購入数を表す場合があります。数値がメジャーになります。

関連項目 : オンライン分析処理 (OLAP)、メジャー、グループ化されたレポート、列ディメンション、フィルタ ディメンション、行ディメンション

データ ウェアハウス

Commerce Server で、SQL Server データベース、オンライン分析処理 (OLAP) データベース、およびシステム管理者が複数のデータ ソースから大量のデータをインポートして管理するために使用する一連のプロセスの組み合わせ。

データ ウェアハウス構成ウィザード (DWC)

Commerce Server セットアップから利用できる構成ウィザード。このウィザードを使って、データ ウェアハウスの分散インストール、および Commerce 以外のアプリケーションや Web サーバーを構成することができます。

データ ウェアハウス メタモデル

データ ウェアハウス論理スキーマのクラス、データ メンバ、関連、およびキーの作成方法を表す概念モデル。

データ ウェアハウス リソース

グローバル レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。データ ウェアハウス リソースは、データ ウェアハウス データベースへのデータベース接続文字列を指定するときに使います。

データ ウェアハウス論理スキーマ

「論理スキーマ」を参照してください。

データ型

使用できる値の範囲を指定するデータの定義。データ型には、Number、Decimal、Text などがあります。

データ コード

国/地域、都道府県/州、注文状況など、プロパティに関する文字情報を表すために使用されるコード値。たとえば、WA はワシントン州のデータ コードです。

データ コード モジュール

注文状況コード、都道府県/州コード、および国/地域コードを追加したり維持するための Commerce Server ビジネス デスク モジュール。国/地域コードと都道府県/州コードは、税率モジュールを使って税テーブルを更新する前に設定する必要があります。

データ ストア

登録済みユーザー、商品、広告に関する情報など、Commerce サイトで使用するデータが格納されている、SQL Server データベースまたはその他のデータベース。また、データが格納されているサーバー (データ ストア サーバー) を表す場合もあります。

データ制約

プロパティに使用できる値の制限。データ制約はデータ型によって異なります。たとえば、数値の場合は、最小値や最大値などの制約があります。

データ フィット スコア

欠落したデータを埋めるときに分析モデルが行った予測の品質を測定する値。

関連項目 : スコア

データベース層

ビジネス ロジック層とデータをやり取りする 1 つ以上のデータベース。Commerce Server をインストールした環境の場合、データベース層には管理データベースとダイレクト メーラー データベースがあります。この 2 つは、カタログやプロファイルなどの Commerce Server コンポーネントのためのデータベースです。データ ウェアハウスもこの層に属します。

データ変換サービス (DTS)

異なるデータ ソースからのデータのインポート、エクスポート、および変換に使用する SQL Server コンポーネント。Commerce Server には、Commerce Server データ ウェアハウスにデータをインポートするための一連の DTS タスクが用意されています。

関連項目 : パッケージ、データ変換サービス (DTS) タスク

データ変換サービス (DTS) タスク

データ変換処理の一環として実行される一連のデータ操作を定義したデータ変換サービス (DTS) オブジェクト。

関連項目 : データ変換サービス (DTS) タスク、パッケージ

データ マーシャリング

データを記憶領域に保存しておき、後からアンパック処理によって抽出できるようにアンパックする方法。Commerce Server では、データ マーシャリングを使って Dictionary オブジェクトの内容をデータベースに保存します。

データ メンバ

データの格納に使用されるクラスのメンバ。データ メンバは、基になるデータ ウェアハウスのリレーショナル データベースの列にマップされます。

関連項目 : クラス

データバインド式ビルダ

Microsoft Visual Studio .NET を通じて利用できるツール。Commerce Server 2002 もインストールされている必要があります。Commerce Server の 3 つのシステム (商品カタログ システム、注文システム、プロファイル システム) に基づいてデータバインド式を生成します。

テキスト ファイル

テキスト文字で構成されたファイル。テキスト ファイルは、ワード プロセッサで作成されたファイルの場合も、ほぼすべてのコンピュータで読み取り可能な形式でエンコードされたプレーンの ASCII ファイルの場合もあります。キャンペーン マネージャ モジュールでは、テキストは広告と割引に利用できる表示の種類の 1 つです。この種類の広告は、数行のテキストとしてページに表示されます。

デザイン時コントロール (DTC)

編集環境でテキストの生成に使用する特殊な種類の ActiveX コントロール。通常は、コントロールのいくつかの選択肢がユーザーに示されます。ユーザーが選択する項目によって、編集中のページに配置されるスクリプト コードまたは HTML のセクションの詳細が変わります。

電子商取引

インターネットを介して商品やサービスを売買する手順。

電子データ交換 (EDI)

インターネットなどのネットワークを使った、異なる企業間でのデータの転送。インターネットに接続する企業の増加に伴い、企業が情報を購入、販売、および交換するしくみとしての EDI が、ますます重要性を帯びてきています。

統一リソース識別子 (URI)

インターネット上のコンテンツの位置を識別します。コンテンツには、テキストのページ、ビデオ クリップまたはサウンド クリップ、イメージ、プログラムなどがあります。最もよく使用される形式の URI は、Uniform Resource Locator (URL) とも呼ばれる Web ページのアドレスです。URI は、通常、リソースのファイル名、リソースが置かれているコンピュータの名前、およびリソースへのアクセスに使うプロトコルで構成されます。たとえば、http://www.microsoft.com/sql/techinfo/security/password.htm のように指定します。

統合 Windows 認証

IIS の Web サイトまたはアプリケーション レベルで設定できる認証方式の 1 つ。この方式では、認証に Windows のログオン ユーザー名とパスワードを使いますが、現在のログオンの認証が失敗しない限り、ユーザーがこの情報の入力を求められることはありません。この方式は、プロキシ接続経由では機能せず、イントラネットのプライベート領域で使われます。

動的リスト

リスト データをエクスポートするときなど、リストが必要になったときに、リスト マネージャ サービスが実行時に作成するユーザー レコードのリスト。リストが要求されるたびに、リスト マネージャはデータ ウェアハウスにある最新データを収集します。リスト マネージャ データベースには、リストの作成に必要な情報が格納されます(ユーザー レコードのリスト全体がリスト マネージャ データベースに格納される静的リストとは、この点が異なります)。動的リストは、頻繁に実行するダイレクト メール キャンペーンに使ったり、受信者のリストが頻繁に更新される場合に使います。

関連項目 : 静的リスト

動的レポート

実行時に作成されるレポート。レポートを実行するたびに、データ ウェアハウスにある最新データが収集されます。時間が経過しても変化しないレポート定義だけが保存されます。レポートがデータと共にデータ ウェアハウスに格納される静的レポートとは、この点が異なります。動的レポートは、ピボットテーブルまたはピボットグラフに表示できます。動的レポートを実行するには、レポート モジュールを使います。

関連項目 : ドリルスルー レポート

登録済みユーザー

Web サイトを訪問し、名前、住所、電話番号などの個人情報を自らの意志で開示したユーザー。この情報はサーバーに送信され、男性と女性の顧客数、特定の品目を購入した人数、常に同じ商品を注文する顧客などの詳細な情報を知るために利用できます。

特別価格

仮想カタログの商品に適用される特定の価格設定ルール。特別価格には、値引率、値引額、および実売価格の 3 種類があります。

関連項目 : 仮想カタログ

匿名アクセス

「匿名認証」を参照してください。

匿名認証

Web サイトまたは IIS のアプリケーション レベルで設定できる認証方式の 1 つ。匿名認証は、ユーザー名やパスワードを入力せずに匿名の Web (HTTP) 接続を確立するときに使われます。インターネット サイトの公開領域で一般的に使用される認証方式です。サイトで匿名認証が有効になっていると、認証されたアクセスが同時に有効になっている場合でも、要求される個々のファイルに対して制限のより厳しい NTFS アクセス許可が設定されていない限り、匿名の接続が行われます。匿名アクセスとも呼ばれます。

匿名ユーザー

ユーザー ログイン名とパスワードを入力せずに Web サイトのコンテンツにアクセスするユーザー。ゲスト ユーザーと呼ばれることもあります。

独立系ソフトウェア ベンダ (ISV)

Commerce Server に組み込んで機能を拡張できる、税、送料、在庫ソフトウェアなどのソフトウェアを開発するサード パーティ ベンダ。ソリューション プロバイダは、ISV とは異なり、Commerce Server を特定の顧客または垂直市場向けにカスタマイズし、システムの設計と導入を行います。

都道府県/州コード

商品の送付先となる州または都道府県を識別するために、Commerce Server ビジネス デスクで使用される 3 文字のデータ コード。Commerce Server ビジネス デスクの税率モジュールで、都道府県や州ごとに異なる税率を設定する場合は、都道府県/州コードをあらかじめ設定しておく必要があります。

トランザクション

ログに記録され、エラーが発生した場合は必要に応じて元に戻すことができる一連の操作。Commerce Server 2002 には、トランザクションをサポートするパイプライン オブジェクトが用意されています。

トランザクション構成リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。トランザクション構成リソースは、トランザクション メタデータが格納されているデータベースへの接続文字列を構成するときに使います。

トランザクション データ

ユーザーがサイトから商品を購入するときに生成されるデータ。トランザクション データには、商品ページ、バスケット ページ、支払いページのいずれかで記録されたユーザーの利用状況を含めることができます。たとえば、名前、送付先、日時、購入商品、および注文金額合計を含めることができます。

トランザクション パイプライン

COM+ トランザクションをサポートしているパイプライン。トランザクションをサポートしているオブジェクトは、MtsTxPipeline と PooledTxPipeline だけです。トランザクション パイプラインのいずれかのコンポーネントが失敗すると、パイプラインのそれ以前のコンポーネントの処理は元に戻され、オブジェクトがトランザクションを終了させます。

関連項目 : 非トランザクション パイプライン、パイプライン、パイプライン オブジェクト

トランザクション リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。トランザクション リソースは、トランザクション メタデータが格納されているデータベースへの接続文字列を構成するときに使います。

取引先

組織が電子データを交換する相手の外部組織。取引先間でのデータの交換は、組織と取引先の間で作成されるアグリーメント、パイプライン、および配布リストに基づいて管理されます。取引先間でのデータの交換は、Microsoft BizTalk Server 2000 によって処理されます。

ドリルスルー レポート

動的レポートの一種。このレポートでは、クリックされたディメンションが含まれるキューブのディメンションすべてに関する詳細な情報を表示できます。Commerce Server では、商品別売り上げレポートと買い物バスケット イベント レポートという 2 つの動的レポートでドリルスルー機能が有効です。ドリルスルーの最大レコード数に対する制限は、プログラムによって設定できます。また、他のレポートでもドリルスルー機能を有効にすることができます。

関連項目 : 動的レポート

な

ナビゲーション ペイン

Commerce Server ビジネス デスクで、一覧ページの左側にあるウィンドウ。カテゴリとモジュールの階層が表示されます。

名前空間

互いに関連のあるタイプに論理上の名前を付けて、グループ化するためのしくみ。たとえば .NET Framework では、階層構造の名前付け方式でタイプをグループ化して、関連する機能を論理上のカテゴリに分けています。分類の例としては、分散アプリケーション開発機能である ASP .NET アプリケーション フレームワークなどがあります。設計ツールでは、名前空間を利用してコードを記述すれば、コード内にあるタイプを開発者が簡単に見つけて、参照できるようになります。名前空間は、アセンブリという概念と直交する概念です。アセンブリには複数のタイプを含めることができます。それぞれのタイプが階層構造の名前を持っていたり、名前空間のルートが互いに異なっていたりしてもかまいません。したがって、1 つの論理名前空間のルートが複数のアセンブリにわたっていてもかまいません。.NET Framework における名前空間は、設計時に論理上の名前を付けるための規則です。それに対して、アセンブリでは実行時にタイプの名前スコープが確立されます。

関連項目 : アセンブリ

入力方式エディタ (IME)

アジア言語の文章で使われる多種多様な文字を、101 キーボードを使って入力するためのプログラム。キー入力を表音文字や表意文字に変換するエンジンと、よく使われる語句を集めた辞書から構成されます。ユーザーがキーを打つと、IME のエンジンは変換後の文字または単語を特定しようとします。

入力プロパティ値

作成した分析モデルから返されるプロパティを予測するときに使われるプロパティの割合。たとえば、在庫保管単位 (SKU) を使う分析モデルによってデモグラフィックス プロパティを予測する場合に、入力プロパティ値を 0.5 に設定するとします。この場合は、重要度が高いものから順に 50% の SKU だけが予測に使われます。

関連項目 : 出力プロパティ値

認証サービス

「CS 認証リソース」を参照してください。

認証されたアクセス

IIS の既定の Web サイトまたはアプリケーション レベルで設定できるユーザー アクセス オプション。匿名アクセスとは反対に、認証されたアクセスでは、サイトにアクセスするユーザーが有効なアカウントとパスワードを持っている必要があります。認証されたアクセスには、基本認証、ダイジェスト認証、および統合 Windows 認証の 3 種類があります。

認証チケット

登録済みユーザー用に Commerce Server が作成するチケット。MSCSAuth チケットとも呼ばれます。

関連項目 : チケット、プロファイル チケット

人気ペナルティ

予測に適用され、人気のある (よく知られた) 項目が推奨される確率を減らすペナルティ。

値引額

標準価格を特別価格にするために差し引く金額。

値引率

標準価格を特別価格にするために差し引く金額の割合。たとえば、20% を差し引くと、価格は標準価格の 80% になります。

値増額

標準価格を特別価格にするために上乗せする金額。

ノード

予測モデル ビューアに表示されるように、属性をグラフィックスで表したもの。

関連項目 : 属性

は

パーソナライズ

ユーザー プロファイルのデータと、ユーザーが以前に要求したコンテンツに基づいて、Web ベースのコンテンツや電子メールのメッセージを各ユーザー向けにすることができる機能。

関連項目 : 対象グループ、キャンペーン式モジュール、Commerce Server ダイレクト メーラー、予測リソース、対象式

ハイパーテキスト転送プロトコル (HTTP)

Web 上のすべてのデータの送信と受信に使用されるクライアント/サーバー プロトコル。ブラウザに URL を入力すると、実際には情報のページに対する HTTP 要求が Web サーバーに送られます。

パイプライン

1 ステージ以上のビジネス プロセスを定義して相互にリンクし、それらを連続して実行し、特定のタスクを完了するソフトウェア インフラストラクチャ。パイプラインの各ステージには、1 つ以上のパイプライン コンポーネント (COM オブジェクト) が含まれ、それらをサイト独自の要件に合わせて構成できます。

関連項目 : 非トランザクション パイプライン、パイプライン オブジェクト、トランザクション パイプライン、ダイレクト メーラー パイプライン、コンテンツ選択パイプライン

パイプライン エディタ

Commerce Server パイプライン構成 (.pcf) ファイルの作成と編集を行うためのアプリケーション。パイプライン エディタでは、パイプラインがパイプのグラフィックスで表示され、パイプラインの各ステージはパイプのセグメントとして表示されます。ステージで使用されるコンポーネントは、バルブとして表示されます。

パイプライン オブジェクト

パイプライン構成ファイルを使って一連のコンポーネントを実行するオブジェクト。Commerce Server 2002 には、パイプラインを実行するためのオブジェクトが 6 つ用意されています。MtsPipeline、MtsTxPipeline、PooledPipeline、PooledTxPipeline、OrderGroup、および OrderPipeline です。MtsPipeline オブジェクトと PooledPipeline オブジェクトは、COM+ トランザクションをサポートしていません。

関連項目 : 非トランザクション パイプライン、パイプライン、トランザクション パイプライン

パイプライン構成テンプレート

新しいパイプラインの作成に使用されるテンプレート ファイル。パイプライン構成テンプレートを使って作成したパイプラインは、パイプライン構成 (.pct) ファイルとして保存されます。このテンプレートは、カスタム パイプラインを作成する際の基盤となります。ステージとコンポーネントの追加、削除、または名前の変更は、どのテンプレートでも行うことができます。

パイプライン構成ファイル

パイプラインの構成データが含まれているファイル。このファイルで指定されたパイプラインが作成され、パイプライン オブジェクトによって実行されます。ファイルに含まれるステージとコンポーネントは、パイプライン エディタを使ってカスタマイズできます。

パイプライン コンポーネント

必要なパイプライン コンポーネント インターフェイスを実装する Component Object Model (COM) サーバー オブジェクト。各コンポーネントは、OrderForm オブジェクトまたは Dictionary オブジェクトをパイプラインの次のコンポーネントまたはステージに送る前に、オブジェクトの一部に対する処理を行います。

関連項目 : ダイレクト メーラー パイプライン、コンテンツ選択パイプライン

バイヤー通貨

ユーザーが選択する、サイト上の価格を表示するための通貨。バイヤー通貨が基本通貨と異なる場合、買い物客の通貨は、表示のためだけに使われます。注文処理パイプラインでは、常に Web サイトの基本通貨で注文が処理されます。buyer_curency フィールドは、注文フォーム ヘッダーに格納されます。

関連項目 : 基本通貨、サプライヤ通貨、複数通貨注文

バスケット

ユーザーが Commerce Web サイトから選択して購入する品目のリスト。このリストは、通常、ファイルにまとめられます。

関連項目 : バスケット マネージャ モジュール

バスケット マネージャ モジュール

Web サイトを訪問するユーザーの買い物バスケットを管理するための Commerce Server ビジネス デスク モジュール。ユーザーは、後でサイトに戻って品目を購入できるように、買い物バスケットを保存しておくことができます。放棄されたバスケット (保存されたまま長期間非アクティブなバスケット) を検索して削除するには、バスケット マネージャを使います。

関連項目 : バスケット

派生商品

1 つのカテゴリまたはそのいずれかの子孫カテゴリに関連付けられた商品。

関連項目 : 子孫カテゴリ

パッケージ

Commerce Server サイト パッケージャ配置ツールで作成したファイル。このファイルには、サイトを他のコンピュータに配置するために必要なすべてのデータが含まれます。その中には、管理データベースに格納されたリソース プロパティの設定をはじめとする、アプリケーションとリソースも含まれます。パッケージには、コンピュータに固有のプロパティの設定 (接続文字列など) は含まれません。パッケージ ファイルの拡張子は .pup です。また、DTS タスクの特定の構成も含まれます。

関連項目 : データ変換サービス (DTS)、データ変換サービス (DTS) タスク

ハッシュ キー

巨大なリストから項目をすばやく検索するために使われる一意のキー。通常は、データベースにある 1 つの列または列のグループです。

バリエーション

商品に利用できる属性の 1 つの組み合わせ。たとえば、特定の種類のシャツであれば、色、サイズ、および一意の在庫保管単位 (SKU) のそれぞれの組み合わせがバリエーションになります。各商品バリエーションには、在庫保管単位 (SKU) などの一意識別子と価格が必ず含まれます。各商品バリエーションは、同じ商品定義に基づいています。

汎用プロファイル

"ユーザー オブジェクト" プロファイル定義や組織プロファイル定義を利用していないプロファイル。たとえば、"住所" プロファイル定義に基づいて作成した "住所" は汎用プロファイルになります。

ビジネス デスク

「Commerce Server ビジネス デスク」を参照してください。

ビジネス デスク アクセス許可リソース

サイト レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。ビジネス デスク アクセス許可リソースは、ビジネス デスク アクセス許可データが格納されているデータベースへの接続文字列を構成するときに使います。

ビジネス デスクのモジュール

Commerce Server ビジネス デスクのナビゲーション ペインから選択できる項目。たとえば、キャンペーン マネージャ、カタログ定義デザイナ、レポート モジュールなどを選択できます。ビジネス デスクの各モジュールは、特定の種類の関連機能を提供し、ナビゲーション ペインからの 1 つ以上のエントリ ポイントで組織化される ASP ファイルの集合です。

ビジネス デスク フレームワーク

HTML コンポーネント (HTC)、ユーティリティ ルーチン、インクルード ファイル、構成ファイル、ナビゲーションのしくみ、および規則の集合。ビジネス デスク モジュールを、より簡単に、より標準化された方法で実装できるようにします。

ビジネス マネージャ

Commerce Server ビジネス デスクの主要なユーザー。ビジネス マネージャは、通常、優れた電子商取引 Web サイトの作成と運用に必要な、事業目標、戦略、および処理に関する知識を備えています。

ビジネス ロジック層

ユーザー インターフェイス層およびデータベース層と通信する、単一または複数のアプリケーション。ビジネス ロジック層に含まれる Commerce Server コンポーネントは、ビジネス分析システム、商品カタログ システム、プロファイル システム、対象化システム、リスト マネージャ、予測クライアント、およびパイプライン コンポーネントです。

非対称型の暗号化 (AE)

数学的に関連性のある 2 つの暗号化キーを使って暗号化する手法。1 つ目のキーは秘密キーと呼ばれ、外部には公開されません。もう一方のキーは公開キーと呼ばれ、すべての通信相手に渡されます。公開キーと秘密キーとの関係は、2 つのキーの長さが一定以上であれば非常に複雑になります。したがって、一方のキーの値がわかっていても、他方のキーの値を計算によって特定することは不可能です。

ヒット

広告のクリックなど、ユーザーが Web サイトで行う単一のアクション。これにより、Web サーバー ログ ファイルにデータが 1 行追加されます。

非トランザクション パイプライン

COM+ トランザクションをサポートしていないパイプライン。非トランザクション パイプラインをサポートしているオブジェクトは、MtsPipeline と PooledPipeline だけです。

関連項目 : パイプライン、パイプライン オブジェクト、トランザクション パイプライン

必須コンポーネント

ステージを出るデータの整合性を確保する Component Object Model (COM) サーバー オブジェクト。必須コンポーネントは、すべての Site Server 3.0 Commerce Edition コンポーネントを含むステージが、すべての Commerce Server 2002 コンポーネントを含むステージと共に正しく実行されるように、通貨と整数の変換も行います。

ビネット広告

広告を表示するイメージと、それに隣接して表示されるテキストで構成される広告。テキストは、広告イメージの左側、右側、または上部に配置できます。

ピボットグラフ レポート

対話型のグラフに表示されるレポート。ピボットテーブル レポートと同じような方法で、チャートを使ってデータをグラフィック表示したり、再配置することができます。Commerce Server では、動的レポートをピボットグラフ レポートとして表示できます。ピボットグラフ レポートを表示するには、Commerce Server ビジネス デスクのレポート モジュールを使います。

ピボットテーブル レポート

対話型のテーブルに表示されるレポート。テーブルの行と列を回転させて、ソース データのさまざまな要約を表示したり、データをフィルタ処理したり、さまざまな分野の詳細なデータを表示することができます。Commerce Server では、動的レポートをピボットテーブル レポートとして表示できます。ピボットテーブル レポートを表示するには、Commerce Server ビジネス デスクのレポート モジュールを使います。

秘密キー

公開キー アルゴリズムで利用される 1 組の暗号キーのうち、外部に公開されない方のキー。通常は、対応する公開キーを使って暗号化したデータを復号化するために使います。

関連項目 : 公開キー

表示上限回数

1 回のセッション中にユーザーにコンテンツを表示できる回数。特に指定しない限り、表示上限回数は無制限に設定されます。表示上限回数は、1 セッション 1 ユーザーあたり 10 回以内にすることをお勧めします。

表示頻度 (NOD)

Commerce Server が、コンテンツを配信する時間と頻度を決めるために使用する計算式。この計算式では、配信するコンテンツの合計数と、その数量を配信する期間が考慮に入れられます。表示頻度は、コンテンツ選択フレームワークによる広告要求の処理が終わった後で、広告要求ごとに計算されます。表示頻度は有料広告にのみ適用され、自社広告には適用されません。

関連項目 : 広告要求、有料広告、目標の達成率

頻度

イベントの数をイベントの達成数で割った値。

関連項目 : イベント、達成数

ファイアウォール

イントラネットをインターネット (またはインターネット グループ) から切り離すセキュリティ チェックポイント。特定のデータだけがファイアウォールを通過できます。

ファイル

SQL Server がデータベースにデータを格納する際の基本単位。1 つのデータベースを複数のファイルに分けて格納することもあります。SQL Server で利用されるファイルには 3 つの種類があります。データを格納するデータ ファイル、トランザクション ログを格納するログ ファイル、およびデータベースのバックアップを格納するバックアップ ファイルです。

ファイル キャッシュ

「アプリケーションのキャッシュ」を参照してください。

ファイル グループ

SQL Server で、1 つ以上のファイルの集まりに名前を付けたもの。1 つの割り当て単位を形成し、データベースの管理作業で利用されます。

フィルタ ディメンション

動的レポートで、レポートの結果をフィルタ処理するために使われるフィルタ。たとえば、レポートに特定のサイトだけを表示する場合に使います。フィルタ ディメンションを使うことによって、サイト A、B、C だけを表示し、サイト D、E、F を非表示にすることができます。

関連項目 : ディメンション、行ディメンション、列ディメンション

プールされたパイプライン

COM+ に登録され、オブジェクト プーリングを利用するパイプライン オブジェクト。

フェールオーバー

一方のサーバー クラスタ ノードでリソースを個別に、またはまとめてオフライン状態にし、もう一方のノードでオンライン状態に戻す処理。オフラインとオンラインの移行は、あらかじめ決められた順序で行われます。他のリソースに依存するリソースは、依存先のリソースよりも前にオフライン状態にされ、依存先のリソースよりも後でオンライン状態に戻されます。

フェッチ ページ

標準の拡張マークアップ言語 (XML) データ形式のデータが含まれる XML 文書を返す Active Server Pages (ASP) ページの種類。返されるページには XML データだけが存在します。ListSheet HTC と TreeView HTC は、XMLHTTP 操作を実行しているときに、このデータ形式が返されることを期待します。

負荷テスト

「ストレス テスト」を参照してください。

負荷分散

クライアントの要求をサーバー クラスタ内の複数のサーバー間で分散することにより、サーバー ベースのプログラム (Web サーバーなど) のパフォーマンスを向上させること。各ホストで処理する負荷の割合を指定することも、負荷をすべてのホストで均等に分散することもできます。1 台のホストで障害が発生すると、負荷は残りのホスト間で動的に再分散されます。ネットワーク負荷分散は Windows クラスタリングで使われる負荷分散ソリューションで、Windows 2000 Advanced Server で利用できます。

複数インスタンス方式

1 つのリソースのインスタンスを複数作成することを許容する設計方式。

関連項目 : シングルトン方式

複数選択プロパティ

あらかじめ定義された値を含むプロパティ。たとえば、Shirt_Size という名前の複数選択プロパティを作成して、S、M、L という選択値を定義できます。

複数通貨注文

互いに異なる通貨で価格が設定されている複数の項目をオンラインで購入すること。たとえば、企業が製造業者に部品を注文した場合に、一部の部品が米国ドルで価格設定されていて、他の部品がスイス フランで価格設定されているときは複数通貨注文になります。サイトで複数通貨注文をサポートするには、開発者が注文処理パイプラインをカスタマイズする必要があります。

関連項目 : バイヤー通貨、変換の種類、基本通貨、サプライヤ通貨

複数通貨トランザクション

買い物客またはサプライヤの使用通貨と Web サイトの基本通貨が異なっているときに、物品またはサービスを金銭と交換すること。買い物客と企業との間で、企業が保有する Web サイトを介して行われるもの、またはサプライヤと企業との間で、それぞれの保有する Web サイトを介して行われるものを指します。

関連項目 : サプライヤ通貨、基本通貨

物理ストア

データ ウェアハウスを構成する物理データベース。

プライマリ親カテゴリ

商品やカテゴリへの既定のパスを調べたり、カテゴリ レベルの価格設定ルールを商品やカテゴリに適用したりするには、その商品またはカテゴリのプライマリ親カテゴリを使います。プライマリ親カテゴリを指定するのは、親カテゴリに商品やカテゴリを割り当てるときです。プライマリ親カテゴリは、カテゴリや商品ごとに 1 つだけ当てることができます。商品が複数のカテゴリに属している場合、その商品への既定のパスはプライマリ親カテゴリによって決まります。

関連項目 : 既定のパス、親カテゴリ

プライマリ相互運用機能アセンブリ (PIA)

COM タイプ ライブラリに記述されている既存の COM タイプを記述するためのメタデータを保持するアセンブリ。タイプ ライブラリに定義されているタイプを使う場合は、そのタイプをインポートしたり、もう一度定義したりするのではなく、該当するタイプ ライブラリのプライマリ相互運用機能アセンブリを参照するようにします。プライマリ以外の相互運用アセンブリを使うことは避けてください。

関連項目 : Runtime Callable Wrapper、アセンブリ

フリースレッド コンポーネント

複数の実行スレッドに存在できる COM コンポーネント。このコンポーネントは複数のクライアントからのアクセスをサポートしており、コンポーネントへの呼び出しの同期に COM を利用しません。

フリーテキスト検索

プロパティ定義の "はい/いいえ" フラグ。フリーテキスト検索でそのプロパティを検索できるかどうかを指定します。このフラグを "はい" に設定するには、プロパティのデータ型が文字列または Enumerated であることが必要です。フリーテキスト検索では、指定した単語と、その単語から語形変化する語句が検出されます。たとえば、"drive" という単語を検索すると、drives、drove、driving、および driven に一致する語句が検出されます。

フルテキスト インデックス

特定のテーブルのすべてのフルテキスト語句とその場所が格納される、フルテキスト カタログの部分。商品の追加や削除、フリーテキスト検索フィールドの値の変更など、カタログに変更を加えた場合は、フルテキスト インデックスを更新して変更を反映する必要があります。

フルテキスト カタログ

データベースのフルテキスト インデックスが格納される SQL Server オブジェクト。

フルテキスト検索

全テキスト データの中から抜粋したキーワードではなく、実際のテキスト データ全体を対象として、1 つ以上のドキュメント、レコード、または文字列を検索すること。

プロキシ サーバー

ローカル エリア ネットワーク (LAN) を出入りするインターネット トラフィックを管理し、文書のキャッシングやアクセス制御などの機能を備える、ファイアウォール コンポーネント。プロキシ サーバーを利用すると、アクセスの多い Web ページなど、頻繁に要求されるデータをキャッシュしておいて直接配信することで、パフォーマンスを向上させることができます。また、専有ファイルへの不正なアクセス要求など、所有者が不適切と考える要求をフィルタ処理して破棄することもできます。

プログラム ID (ProgID)

プログラムまたは Component Object Model (COM) オブジェクトを識別する一意の名前。グローバル一意識別子 (GUID) と異なり、プログラム ID には通常、"Commerce.Dictionary" などの明瞭な意味を持つ英数字の文字列が使われます。

プロパティ

商品、カテゴリ、またはプロファイルの特性。すべてのプロパティには、名前とデータ型 (たとえば、名前が "説明" でデータ型が "テキスト" 型のプロパティなど) があります。

プロパティ定義

プロファイル定義、カテゴリ定義、または商品定義で利用できるプロパティの仕様。たとえば、文字列型で "説明" という名前のプロパティ定義を作成できます。または、"性別" という名前のプロパティ定義を Enumerated 型で作成し、"男性" または "女性" という 2 つの値だけを受け付けるようにする方法もあります。プロパティ定義の管理には、ビジネス デスクのカタログ定義デザイナ モジュールとプロファイル定義デザイナ モジュールを使います。

プロパティによる検索

値が特定の条件を満たしているプロパティ (Price > 2000 (価格 > 2,000 円)、Color = blue (色 = 青) など) を持つ商品をカタログから検索できる検索方法。

プロファイル

ユーザー、会社、ビジネス プロセスなど、ビジネスに関連する項目を定義する特性。各プロファイルは、プロファイル定義の個々のインスタンスです。たとえば、"新しいユーザー" というプロファイル定義に基づくプロファイルは、Amy Egert、52 歳、女性などのプロパティが含まれます。ユーザー モジュールがサイトを訪問するユーザーについて収集するプロファイル データを指定できます。この情報には、名前、年齢、性別、住所などが含まれると考えられます。

プロファイル チケット

Commerce Server が匿名 (ゲスト) ユーザー用に作成するチケット。MSCSProfile チケットとも呼ばれます。

関連項目 : 認証チケット、チケット

プロファイル定義

特定の種類のプロファイルで利用できるプロパティ。各プロファイルは、プロファイル定義に関連付けられます。たとえば、"新しいユーザー" プロファイル定義には、住所、氏名、年齢、性別などのプロパティを定義します。プロファイル定義の管理には、ビジネス デスクのプロファイル定義デザイナ モジュールを使います。

プロファイル定義デザイナ モジュール

プロファイル定義の追加と変更を行うための Commerce Server ビジネス デスク モジュール。

プロファイルの発行モジュール

新しいプロファイル情報を使ってサイトを更新するための Commerce Server ビジネス デスク モジュール。プロファイルの発行モジュールは、サイトのプロファイル情報が格納されているキャッシュを空にします。次回 Commerce Server がプロファイル データに対する要求を受け取ると、更新されたデータがキャッシュに読み込まれます。

関連項目 : キャッシュ

プロファイル プロパティ

ユーザーが Web サイトを訪問したときに、どのプロファイル データを収集するかを指定する特性。たとえば、"名" プロパティでは、ユーザーの名を収集することを指定します。プロファイル プロパティの管理には、ビジネス デスクのプロファイル定義デザイナ モジュールを使います。

プロファイル プロパティ属性

プロファイル プロパティを表す特性。プロファイル プロパティ属性には、プロファイル プロパティのデータ型 (数値、テキスト、10 進など)、プロパティが単一の値 (たとえば、"名" には 1 つの値しか指定できません) か複数の値か、Web サイトを訪問するユーザーがこのプロパティを使って検索を実行できるかどうかなどの情報が含まれます。

プロファイル リソース

グローバル レベルのプロパティを持つ Commerce Server リソース。Commerce Server マネージャを通じて管理します。プロファイル リソースは、ユーザー プロファイル データが格納されているデータベースへのデータベース接続文字列を指定するときに使います。また、プロファイル プロパティとプロファイルの作成、編集、および削除にも使います。SQL Server データベースや Active Directory データ ソースなどのデータ ソースを追加したり削除することができます。

関連項目 : Biz Data Service

ページ グループ

ビジネス デスクの参照テーブル モジュールを使って作成する、関連性のある Web ページの集合。たとえば、新聞のサイトを運用している場合は、トップ記事用に 1 つとローカル ニュース用に 1 つ、スポーツのページ グループを作成できます。ページ グループ単位で広告料を設定したり、レポートを実行してページ グループに対するヒット数の合計を表示したり、広告が特定のページ グループで実行されるように対象を指定することができます。サイト開発者は、Web ページをページ グループに割り当てる前に、Web ページの広告表示を有効にする必要があります。

関連項目 : AggregateColumn

変換時刻

取引に変換レートが適用される時刻です。変換の種類が固定レートである場合は、注文の受付時刻と常に等しくなります。変換の種類が変動レートである場合には、銀行が変換を実施した時刻です。

関連項目 : 変換レート、変換時刻、変動レート、固定レート

変換の種類

バイヤー通貨を Web サイトの基本通貨に変換するとき、およびサプライヤ通貨を複数通貨トランザクションでの基本通貨に変換するときの通貨変換の種類。固定 (静的) レートまたは変動 (動的) レートのいずれかです。

関連項目 : 変換レート、変換時刻、変動レート、固定レート、複数通貨注文

変換レート

Web サイトの基本通貨をバイヤー通貨やサプライヤ通貨に変換するときに使う乗数。変換レートは SDK の注文サイトレットに収められていますが、これは参考例としてのみ利用してください。運用 Web サイトには、サード パーティ製のオプション コンポーネントや会計システムを通じて実装します。

関連項目 : 変動レート、変換時刻、変換の種類、固定レート

編集ページ

Commerce Server ビジネス デスクの 2 種類の主要な操作ページの 1 つ。編集ページには、ビジネス デスクでデータを変更するためのしくみが備わっています。編集ページとナビゲーション ペインは、ビジネス デスクのワークスペースを共有しません。編集ページが表示されているときはナビゲーションウィンドウが非表示になるため、編集ページを閉じて一覧ページに戻るまで、ユーザーは他のモジュールに移動できません。

関連項目 : 一覧ページ

ベンダ

「サプライヤ」を参照してください。

変動レート

実際に変換するときまで設定されない、動的な変換レート。為替相場の変動によって、顧客がサイトで商品を購入した時点と変換時とで、レートに差異が生じる可能性があります。このため、Web サイトの基本通貨以外で価格を表示する商品については、概算価格であることを示すようにしてください。

関連項目 : 変換レート、変換時刻、変換の種類、固定レート

訪問

ユーザーによる一連の要求。訪問は、ユーザーがリンク経由でサイトに移動してきたとき、またはユーザーがブラウザにサイトの URL を入力したときに開始します。サイトへの新たな要求がないまま、指定した時間 (既定では 30 分) が経過すると、訪問は終了します。

関連項目 : クローズド ビジット、オープン ビジット

訪問時間

訪問の最初の要求から最後の要求までの時間。この時間には、ユーザーが訪問の最後の要求を表示する時間は含まれません。

ポート

「メッセージ ポート」を参照してください。

ホスト ヘッダー

ブラウザで指定されたドメイン名に基づいて IIS が要求を解決できるようにするための、1 まとまりの情報。IP アドレスとポート番号に基づく要求以外にも対応できるようにします。たとえば、http://www.microsoft.com という URL のホスト ヘッダー名は www.microsoft.com です。ホスト ヘッダー名を利用すると、1 組の IP アドレスとポート番号を複数の IIS Web サイトに使うことができます。

ま

マスタ構成ファイル

Commerce Server ビジネス デスクの特定のインスタンス内で利用できるカテゴリとモジュールを定義する XML 構成ファイル。各モジュール エントリは、そのモジュールの構成情報を含むモジュール構成ファイルを識別します。

マネージド コード

ランタイムとの "相互運用に関する契約" を前提に動作するコード。マネージド コードは、最低限必要なメタデータを提供して、ランタイムがサービスを提供できるようにしなければなりません。ランタイムが提供するサービスの例としては、メモリ管理、複数言語間での統合、コードに対するアクセスのセキュリティ、オブジェクトの有効期間の制御などがあります。Microsoft Intermediate Language (MSIL) に基づいたコードは、すべてマネージド コードとして実行されます。

関連項目 : Microsoft Intermediate Language (MSIL)、ASP.NET

マルチディメンション式 (MDX)

OLAP サーバー キューブに格納されているマルチディメンション データのクエリおよび操作に使用される式。

未登録ユーザー

Web サイトを訪問し、登録に必要な個人情報または識別情報を自らの意志で開示していないユーザー。

明示対象化

サイトを参照するユーザーに関する既存の情報を使って、対象を指定したコンテンツを配信すること。

明示プロファイル

Web サイトを訪問するユーザーに、自分自身に関するプロファイル データを開示してもらう情報収集処理。たとえば、オンライン フォームにユーザーの名前、住所、電話番号などの情報を入力してもらいます。

関連項目 : 黙示プロファイル

メーラブル リスト

ユーザーの電子メール アドレスが含まれる rcp_email 列があるリスト。

メーリング リスト

ダイレクト メーラーで使用するリスト。メーリング リストには、rcp_email、rcp_guid、rcp_fmt、rcp_locale、および rcp_url という 5 つの標準的なフィールドが含まれています。

メジャー

ビジネス イベントを測定する、通常は数値のデータ。たとえば、ユーザーによる購入の数はメジャーです。

関連項目 : ディメンション、グループ化されたレポート

メタデータ

他のデータを表すために使用されるデータ。たとえば、データ型はプロパティを表すメタデータの 1 つです。

メッセージ ヘッダー

電子メール メッセージの先頭部分。受信者のアドレス、メッセージ形式、言語、および必要に応じてグローバル一意識別子 (GUID) を指定します。

メッセージ ポート

BizTalk メッセージ マネージャを使って構成する一連のルール。これによって、文書をどのようにエンベロープ化し、保護し、指定した宛先の組織に転送するかを指示できます。

メッセージ本文

電子メール メッセージで配信される内容。

黙示対象化

既存のユーザー データを使って、サイトを参照するユーザーに関する未知の情報を推測し、対象を指定したコンテンツを配信すること。Commerce Server では、予測リソースを使ってユーザーをセグメント化し、黙示対象化を行うことができます。

黙示プロファイル

Web サイトを訪問するユーザーがサイト内を移動したりサイトと対話するときに、その操作や動作を記録する情報収集処理。

関連項目 : 明示プロファイル、予測リソース

目標設定

「キャンペーン目標設定」を参照してください。

目標の達成率

キャンペーン マネージャ モジュールのキャンペーン目標設定に指定した広告要求数で、実際の広告要求数を除算したもの。ビジネス デスク レポートに表示されます。サイトに掲示する広告など、1 まとまりのコンテンツの表示回数は、サイトに記録されている広告要求数やその広告の表示頻度 (NOD) を分析することで特定されます。広告を一定の期間実施したら、キャンペーン項目の要約レポートを実行して、目標の達成率を割り出してみてください。サイトで実施したその広告キャンペーンの効果を見ることができます。

関連項目 : 広告要求、表示頻度 (NOD) キャンペーン目標設定

モジュール構成ファイル

Commerce Server ビジネス デスク モジュール (またはモジュール群) のアクション、タスク、およびエントリ ポイントを定義する XML 構成ファイル。モジュールのエントリ ポイントは、そのエントリ ポイントが関連付けられているカテゴリを識別します。

や

ユーザー

少なくとも一度は Commerce サイトを訪問した人。ユーザーとは、登録済みかどうかにかかわらず、サイトでマウスをクリックしたあらゆる人を意味します。

関連項目 : 一意のユーザー

ユーザー インターフェイス層

ユーザーがコンピュータとの対話に使う 1 つ以上のプログラム。Commerce Server をインストールした環境でユーザー インターフェイス層に属するものとしては、電子商取引 Web アプリケーションとビジネス デスク アプリケーションがあります。

ユーザー プロファイル

ユーザーの特性を表すあらかじめ定義された一連のプロパティ。たとえば、名前、住所、および性別のプロパティでユーザー プロファイルを構成できます。

ユーザー モジュール

ユーザー レコードを変更し、ユーザー情報の追加と削除を行うための Commerce Server ビジネス デスク モジュール。

ユーザー リスト

ユーザー ID が含まれる rcp_guid 列があるリスト。

有料広告

掲示される広告のうちで、配信目標が定められている広告。広告を所定の時刻に掲示するかどうかは、表示頻度の計算結果に基づいて決定されます。この計算では、配信するコンテンツの総量、つまり広告の総数と、広告の掲示期間が考慮されます。したがって、有料広告を掲示するかどうかの基準を指定することは、キャンペーン レベルまたは広告項目レベルで、有料広告の "目標を設定する" ことになります。有料広告の目標をキャンペーン レベルで設定する場合は、それぞれの広告にウエイトを指定します。広告項目レベルで目標を設定する場合は、キャンペーン内にあるそれぞれの広告について、達成すべき広告要求数またはクリック数を指定します。

関連項目 : 広告要求、キャンペーン目標設定、表示頻度 (NOD)、ウエイト

要求

URL からのコンテンツの取得を求めるインターネット サイトへの接続。ヒットと異なり、要求はコンテンツとユーザーの操作に関連付けられます。たとえば、3 つのグラフィックス ファイルが含まれる HTML ページをユーザーが要求すると、Web サーバーは 3 つのグラフィックス ファイルと HTML ページのログ エントリを作成し、また場合によってはオーバーヘッドの数行を追加します。ただし、ビジネス デスクの分析モジュールで実行されるレポートの場合は、1 つの要求だけがカウントされます。Web 要求または HTTP 要求とも呼ばれます。

要求時間

同じ訪問で、2 つの連続する要求の間の時間。

要素

ビジネス デスク アクセス許可モジュールで、セキュリティの設定対象となるエンティティのインスタンス。要素はエンティティのサブセットで、ビジネス デスクのタスク、またはカタログやプロファイルのエンティティを説明する項目のどちらかです。たとえば、"保存"、"税率"、および "価格" は "カタログのプロパティ" の要素です。"住所欄 1" は "住所" エンティティを説明する要素です。これらの各要素は、どれもセキュリティを設定することができます。

関連項目 : エリア、エンティティ、アクセス許可モジュール

予測モデル

予測のアルゴリズムで使用されるデータの要約。予測モデルを表示するには、Commerce Server マネージャの予測モデル ビューアを使います。

予測モデル構成

予測モデルまたはセグメント モデルに使用されるデータの、ユーザー定義の記述。

予測モデル ビューア

予測モデルの依存関係ネットワークと個々のディシジョン ツリーの両方を表示するためのブラウザ ツール。

予測リソース

Windows 2000 のサービスでもあるグローバル リソース。予測リソースは、Commerce Server マネージャを通じて管理され、強力なデータ マイニング エンジンで構成されます。これを使って、サイトを訪問するユーザー全体のプロパティの集計を基に、Web サイトに予測機能を追加できます。予測リソースを使って分析モデルを構築し、それを Web サイトに配置してユーザー情報を分析します。

関連項目 : 黙示プロファイル、パーソナライズ

ら

リスト マネージャ サービス

Commerce Server ビジネス デスクのリスト マネージャ モジュールで指定した作業を行う Windows 2000 のサービス。たとえば、ユーザー レコードのリストの作成、削除、インポート、エクスポート、コピーおよびマージを行うことができます。リストを作成するときには、データをフラット ファイル、SQL Server データベース、データ ウェアハウス、および予測リソースのセグメントからインポートできます。リストは、フラット ファイルと SQL Server データベースにエクスポートできます。

リスト マネージャ データベース

ユーザー レコードのリストが格納されるデータベース。ユーザー レコードのリストの作成には、Commerce Server ビジネス デスクのリスト マネージャ モジュールを使います。ダイレクト メーラで、このリストを使ってダイレクト メール キャンペーンを実行できます。また、ビジネス デスクのユーザー モジュールで使用することもできます。

リスト マネージャ モジュール

ユーザー レコードのリストの作成、インポート、エクスポート、コピー、削除、およびマージを行うための、Commerce Server ビジネス デスク モジュール。たとえば、ダイレクト メール キャンペーンの受信者リストを作成できます。

リソース

Commerce Server サイトのアプリケーションに機能を提供するエンティティ。リソースには、1 つ以上の COM オブジェクトがあります。これらの COM オブジェクトは、アプリケーションの Web ページでリソースの機能にアクセスするために使われます。リソースは、グローバル プロパティまたはサイト レベルのプロパティを持つことがありますが、その両方を持つことはありません。リソースのプロパティは、管理データベースに格納されます。リソースは Commerce Server に同梱されますが、その一部は Windows 2000 のサービスでもあります。Commerce Server で機能するカスタム リソースをサード パーティが開発することもできます。リソースの管理には、Commerce Server マネージャを使います。

関連項目 : グローバル リソース、サービス、サイト リソース

利用状況プロファイル

サイトのトラフィック パターンを表す一連のプロパティ。たとえば、利用状況プロファイルには、特定のページを参照したユーザーの数、参照者に対する購入者の割合、および品目をバスケットに追加後、削除したユーザーの数が表示されます。システム管理者は利用状況プロファイルを使って、必要な Web サーバーの数を判断し、サイトを構成します。

ルート カテゴリ

他のどのカテゴリの子カテゴリにもなっていないカテゴリ。ルート カテゴリには子カテゴリがある場合とない場合がありますが、親カテゴリはありません。

関連項目 : 親カテゴリ、先祖カテゴリ、子カテゴリ、子孫カテゴリ

ルート商品

カタログ内でどのカテゴリにも関連付けられていない商品。

列ディメンション

動的レポートの中にある、列見出しのデータを定義するディメンション。列ディメンションや行ディメンションにするディメンションは、任意に選択できます。

関連項目 : ディメンション、フィルタ ディメンション、行ディメンション

レプリケーション

コンテンツ、構成、またはその両方を、 1 つのサーバー ノードから他のサーバー ノードにコピーする処理。ファイルを手動でコピーすることも、レプリケーション ソフトウェアを使って自動的にコピーすることもできます。レプリケーションは、フォールト トレランスを実現する上でサーバー クラスタリングに必須の機能です。

レポート定義

レポートの実行時にデータが設定されるフィールドとクエリ。レポートには、それぞれ独自のレポート定義があります。レポートをカスタマイズするときには、データが含まれるレポートではなく、レポート定義をカスタマイズします。

レポート モジュール

レポートを選択し実行するための Commerce Server ビジネス デスク モジュール。

ログ ファイル

コンピュータ システムで発生するトランザクションや利用状況の記録。ファイルは、テキスト ファイルまたはデータベース ファイルになります。Commerce Server では、ログ ファイルがデータ ウェアハウスにインポートされるため、Commerce Server ビジネス デスクの分析モジュールを使ってサイトの利用状況を分析できます。

関連項目 : オープン ビジット、クローズド ビジット、ログ ファイル マスク

ログ ファイル マスク

Web サーバー ログのファイル名を指定するためのプロパティ。このファイル名は、時間の経過またはファイル サイズの増大に伴って交換されます。たとえば、IIS ログ ファイルを毎日交換させる場合には exyymmdd.log と指定します。このように指定すると、ログ ファイル名は、ex というプレフィックス、2 桁の年、2 桁の月、および 2 桁の日で構成されます。ログ ファイル マスクの設定は、Web サーバーを構成するときに Commerce Server マネージャを使って行います。

関連項目 : ログ ファイル

論理スキーマ

データ ウェアハウスで、物理ストアのデータにマップされ、データをわかりやすい形で表示する概念モデル。開発者は、データ ウェアハウスのデータにアクセスしたり、データを変更するためのコードを作成するときに、論理スキーマと対話します。Commerce Server は、論理スキーマを通じてデータ ウェアハウスのアクセス データを処理します。

わ

割引

買物客が一定の条件を満たす場合に、特定の商品または商品グループを安い価格で購入できるようにする、特定の種類の販売促進活動。Commerce Server の割引には、対象化コンポーネントと表示コンポーネントがあります。

割増率

標準価格を特別価格にするために上乗せする金額の割合。たとえば、20% を上乗せすると、価格は標準価格の 120% になります。


オンライン サポート
と情報

* | Microsoft Commerce Server Web サイト
* | Microsoft セキュリティ Web サイト
* | Commerce Server ISV Partners Web サイト
* | Commerce Server Solution Sites Web サイト
* | Microsoft 製品サポート サービス Web サイト
* | MSDN Online (英語)
* | MSDN Online (日本語)
* | MSDN Online Library (英語)
* | MSDN Online Library (日本語)
* | Microsoft COM Web サイト
* | Microsoft SQL Server Web サイト
* | Microsoft アクセシビリティ Web サイト


著作権情報

このソフトウェアの仕様およびマニュアルに記載されている事柄は、将来予告なしに変更することがあります。特に記載していない場合、このソフトウェアおよびマニュアルで使用している会社、組織、製品、ドメイン名、電子メール アドレス、ロゴ、人物、キャラクタ、データなどの名称は架空のものです。実在する商品名、団体名、個人名などとは一切関係ありません。このソフトウェアおよびマニュアルは、本製品の使用許諾契約書のもとでのみ使用することができます。このソフトウェアおよびマニュアルのいかなる部分も、米国 Microsoft Corporation の書面による許諾を受けることなく、その目的を問わず、どのような形態であっても、複製または譲渡することは禁じられています。ここでいう形態とは、複写や記録など、電子的な、または物理的なすべての手段を含みます。

マイクロソフトは、このマニュアルに記載されている内容に関し、特許、特許申請、商標、著作権、またはその他の無体財産権を有する場合があります。このマニュアルはこれらの特許、商標、著作権、またはその他の無体財産権に関する権利をお客様に許諾するものではありません。

© 1996-2002 Microsoft Corporation.All rights reserved.

Microsoft、Active Directory、ActiveX、BackOffice、BizTalk、Developer Studio、FrontPage、Hotmail、JScript、MSDN、MS-DOS、MSN、Outlook、PivotChart、PivotTable、Verdana、Visual Basic、Visual C++、Visual Studio、Webdings、Win32、Windows、Windows Media、および Windows NT は、米国 Microsoft Corporation の米国およびその他の国における登録商標または商標です。

記載されている会社名、製品名には、各社の商標のものもあります。